@mattermost/compass-ui 0.1.0-alpha.4 → 0.1.0-alpha.5

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 (226) hide show
  1. package/dist/compass-ui-standalone.css +10 -0
  2. package/dist/compass-ui.css +2 -0
  3. package/dist/components/action-button/ActionButton.cjs +1 -1
  4. package/dist/components/action-button/ActionButton.cjs.map +1 -1
  5. package/dist/components/action-button/ActionButton.d.ts +2 -1
  6. package/dist/components/action-button/ActionButton.d.ts.map +1 -1
  7. package/dist/components/action-button/ActionButton.js +22 -12
  8. package/dist/components/action-button/ActionButton.js.map +1 -1
  9. package/dist/components/action-button/ActionButton.module.css +1 -1
  10. package/dist/components/action-button/ActionButton.module.scss.cjs +1 -1
  11. package/dist/components/action-button/ActionButton.module.scss.js +5 -5
  12. package/dist/components/attachment-card/AttachmentCard.cjs +1 -1
  13. package/dist/components/attachment-card/AttachmentCard.cjs.map +1 -1
  14. package/dist/components/attachment-card/AttachmentCard.d.ts +3 -1
  15. package/dist/components/attachment-card/AttachmentCard.d.ts.map +1 -1
  16. package/dist/components/attachment-card/AttachmentCard.js +92 -82
  17. package/dist/components/attachment-card/AttachmentCard.js.map +1 -1
  18. package/dist/components/attachment-card/AttachmentCard.module.css +1 -1
  19. package/dist/components/attachment-card/AttachmentCard.module.scss.cjs +1 -1
  20. package/dist/components/attachment-card/AttachmentCard.module.scss.js +19 -18
  21. package/dist/components/attachment-card/AttachmentCard.module.scss.js.map +1 -1
  22. package/dist/components/button/Button.module.css +1 -1
  23. package/dist/components/button/Button.module.scss.cjs +1 -1
  24. package/dist/components/button/Button.module.scss.js +15 -15
  25. package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs +1 -1
  26. package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs.map +1 -1
  27. package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts +4 -1
  28. package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts.map +1 -1
  29. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js +112 -92
  30. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js.map +1 -1
  31. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.css +1 -1
  32. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.cjs +1 -1
  33. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.js +22 -20
  34. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.js.map +1 -1
  35. package/dist/components/checkbox/Checkbox.cjs +1 -1
  36. package/dist/components/checkbox/Checkbox.cjs.map +1 -1
  37. package/dist/components/checkbox/Checkbox.d.ts +3 -3
  38. package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
  39. package/dist/components/checkbox/Checkbox.js +21 -20
  40. package/dist/components/checkbox/Checkbox.js.map +1 -1
  41. package/dist/components/checkbox/Checkbox.module.css +1 -1
  42. package/dist/components/checkbox/Checkbox.module.scss.cjs +1 -1
  43. package/dist/components/checkbox/Checkbox.module.scss.js +7 -7
  44. package/dist/components/chip/Chip.cjs +1 -1
  45. package/dist/components/chip/Chip.cjs.map +1 -1
  46. package/dist/components/chip/Chip.d.ts +3 -5
  47. package/dist/components/chip/Chip.d.ts.map +1 -1
  48. package/dist/components/chip/Chip.js +90 -48
  49. package/dist/components/chip/Chip.js.map +1 -1
  50. package/dist/components/chip/Chip.module.css +1 -1
  51. package/dist/components/chip/Chip.module.scss.cjs +1 -1
  52. package/dist/components/chip/Chip.module.scss.js +9 -9
  53. package/dist/components/chip/ChipGroup.cjs +2 -0
  54. package/dist/components/chip/ChipGroup.cjs.map +1 -0
  55. package/dist/components/chip/ChipGroup.d.ts +16 -0
  56. package/dist/components/chip/ChipGroup.d.ts.map +1 -0
  57. package/dist/components/chip/ChipGroup.js +112 -0
  58. package/dist/components/chip/ChipGroup.js.map +1 -0
  59. package/dist/components/chip/ChipGroup.module.css +1 -0
  60. package/dist/components/chip/ChipGroup.module.scss.cjs +2 -0
  61. package/dist/components/chip/ChipGroup.module.scss.cjs.map +1 -0
  62. package/dist/components/chip/ChipGroup.module.scss.js +7 -0
  63. package/dist/components/chip/ChipGroup.module.scss.js.map +1 -0
  64. package/dist/components/chip/index.cjs +1 -1
  65. package/dist/components/chip/index.d.ts +2 -0
  66. package/dist/components/chip/index.d.ts.map +1 -1
  67. package/dist/components/chip/index.js +4 -2
  68. package/dist/components/chip/index.js.map +1 -1
  69. package/dist/components/combobox/Combobox.cjs +1 -1
  70. package/dist/components/combobox/Combobox.cjs.map +1 -1
  71. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  72. package/dist/components/combobox/Combobox.js +115 -109
  73. package/dist/components/combobox/Combobox.js.map +1 -1
  74. package/dist/components/combobox/Combobox.module.css +1 -1
  75. package/dist/components/combobox/Combobox.module.scss.cjs +1 -1
  76. package/dist/components/combobox/Combobox.module.scss.js +27 -29
  77. package/dist/components/date-range-picker/DateRangePicker.cjs +1 -1
  78. package/dist/components/date-range-picker/DateRangePicker.cjs.map +1 -1
  79. package/dist/components/date-range-picker/DateRangePicker.js +154 -154
  80. package/dist/components/date-range-picker/DateRangePicker.js.map +1 -1
  81. package/dist/components/date-range-picker/DateRangePicker.module.css +1 -1
  82. package/dist/components/date-range-picker/DateRangePicker.module.scss.cjs +1 -1
  83. package/dist/components/date-range-picker/DateRangePicker.module.scss.js +28 -45
  84. package/dist/components/dropdown/Dropdown.cjs +1 -1
  85. package/dist/components/dropdown/Dropdown.cjs.map +1 -1
  86. package/dist/components/dropdown/Dropdown.js +1 -1
  87. package/dist/components/dropdown/Dropdown.js.map +1 -1
  88. package/dist/components/dropdown/Dropdown.module.css +1 -1
  89. package/dist/components/dropdown/Dropdown.module.scss.cjs +1 -1
  90. package/dist/components/dropdown/Dropdown.module.scss.js +15 -16
  91. package/dist/components/global-banner/GlobalBanner.module.css +1 -1
  92. package/dist/components/global-banner/GlobalBanner.module.scss.cjs +1 -1
  93. package/dist/components/global-banner/GlobalBanner.module.scss.js +10 -10
  94. package/dist/components/icon-button/IconButton.cjs +1 -1
  95. package/dist/components/icon-button/IconButton.cjs.map +1 -1
  96. package/dist/components/icon-button/IconButton.d.ts +1 -1
  97. package/dist/components/icon-button/IconButton.d.ts.map +1 -1
  98. package/dist/components/icon-button/IconButton.js +14 -14
  99. package/dist/components/icon-button/IconButton.js.map +1 -1
  100. package/dist/components/icon-button/IconButton.module.css +1 -1
  101. package/dist/components/icon-button/IconButton.module.scss.cjs +1 -1
  102. package/dist/components/icon-button/IconButton.module.scss.js +15 -15
  103. package/dist/components/image-preview/ImagePreview.cjs +1 -1
  104. package/dist/components/image-preview/ImagePreview.cjs.map +1 -1
  105. package/dist/components/image-preview/ImagePreview.d.ts +2 -1
  106. package/dist/components/image-preview/ImagePreview.d.ts.map +1 -1
  107. package/dist/components/image-preview/ImagePreview.js +70 -52
  108. package/dist/components/image-preview/ImagePreview.js.map +1 -1
  109. package/dist/components/image-preview/ImagePreview.module.css +1 -1
  110. package/dist/components/image-preview/ImagePreview.module.scss.cjs +1 -1
  111. package/dist/components/image-preview/ImagePreview.module.scss.js +15 -15
  112. package/dist/components/menu-item/MenuItem.cjs +1 -1
  113. package/dist/components/menu-item/MenuItem.cjs.map +1 -1
  114. package/dist/components/menu-item/MenuItem.js +11 -11
  115. package/dist/components/menu-item/MenuItem.js.map +1 -1
  116. package/dist/components/menu-item/MenuItem.module.css +1 -1
  117. package/dist/components/menu-item/MenuItem.module.scss.cjs +1 -1
  118. package/dist/components/menu-item/MenuItem.module.scss.js +16 -16
  119. package/dist/components/message/Message.module.css +1 -1
  120. package/dist/components/message/Message.module.scss.cjs +1 -1
  121. package/dist/components/message/Message.module.scss.js +20 -20
  122. package/dist/components/message-reactions/MessageReactions.module.css +1 -1
  123. package/dist/components/message-reactions/MessageReactions.module.scss.cjs +1 -1
  124. package/dist/components/message-reactions/MessageReactions.module.scss.js +12 -12
  125. package/dist/components/more-unreads-banner/MoreUnreadsBanner.module.css +1 -1
  126. package/dist/components/more-unreads-banner/MoreUnreadsBanner.module.scss.cjs +1 -1
  127. package/dist/components/more-unreads-banner/MoreUnreadsBanner.module.scss.js +5 -5
  128. package/dist/components/pagination-dots/PaginationDots.module.css +1 -1
  129. package/dist/components/pagination-dots/PaginationDots.module.scss.cjs +1 -1
  130. package/dist/components/pagination-dots/PaginationDots.module.scss.js +8 -8
  131. package/dist/components/radio/Radio.cjs +1 -1
  132. package/dist/components/radio/Radio.cjs.map +1 -1
  133. package/dist/components/radio/Radio.d.ts +3 -3
  134. package/dist/components/radio/Radio.d.ts.map +1 -1
  135. package/dist/components/radio/Radio.js +11 -11
  136. package/dist/components/radio/Radio.js.map +1 -1
  137. package/dist/components/radio/Radio.module.css +1 -1
  138. package/dist/components/radio/Radio.module.scss.cjs +1 -1
  139. package/dist/components/radio/Radio.module.scss.js +11 -11
  140. package/dist/components/search-input/SearchInput.cjs +1 -1
  141. package/dist/components/search-input/SearchInput.cjs.map +1 -1
  142. package/dist/components/search-input/SearchInput.d.ts +2 -0
  143. package/dist/components/search-input/SearchInput.d.ts.map +1 -1
  144. package/dist/components/search-input/SearchInput.js +78 -64
  145. package/dist/components/search-input/SearchInput.js.map +1 -1
  146. package/dist/components/search-input/SearchInput.module.css +1 -1
  147. package/dist/components/search-input/SearchInput.module.scss.cjs +1 -1
  148. package/dist/components/search-input/SearchInput.module.scss.js +16 -23
  149. package/dist/components/search-input/SearchInput.module.scss.js.map +1 -1
  150. package/dist/components/select/Select.cjs +1 -1
  151. package/dist/components/select/Select.cjs.map +1 -1
  152. package/dist/components/select/Select.d.ts.map +1 -1
  153. package/dist/components/select/Select.js +64 -64
  154. package/dist/components/select/Select.js.map +1 -1
  155. package/dist/components/select/Select.module.css +1 -1
  156. package/dist/components/select/Select.module.scss.cjs +1 -1
  157. package/dist/components/select/Select.module.scss.js +24 -26
  158. package/dist/components/switch/Switch.cjs +1 -1
  159. package/dist/components/switch/Switch.cjs.map +1 -1
  160. package/dist/components/switch/Switch.d.ts.map +1 -1
  161. package/dist/components/switch/Switch.js +2 -2
  162. package/dist/components/switch/Switch.js.map +1 -1
  163. package/dist/components/switch/Switch.module.css +1 -1
  164. package/dist/components/switch/Switch.module.scss.cjs +1 -1
  165. package/dist/components/switch/Switch.module.scss.js +15 -15
  166. package/dist/components/tabs/Tabs.cjs +1 -1
  167. package/dist/components/tabs/Tabs.cjs.map +1 -1
  168. package/dist/components/tabs/Tabs.d.ts +4 -0
  169. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  170. package/dist/components/tabs/Tabs.js +47 -31
  171. package/dist/components/tabs/Tabs.js.map +1 -1
  172. package/dist/components/tabs/Tabs.module.css +1 -1
  173. package/dist/components/tabs/Tabs.module.scss.cjs +1 -1
  174. package/dist/components/tabs/Tabs.module.scss.js +8 -7
  175. package/dist/components/tabs/Tabs.module.scss.js.map +1 -1
  176. package/dist/components/tag/Tag.module.css +1 -1
  177. package/dist/components/tag/Tag.module.scss.cjs +1 -1
  178. package/dist/components/tag/Tag.module.scss.js +15 -15
  179. package/dist/components/text-area/TextArea.cjs +1 -1
  180. package/dist/components/text-area/TextArea.cjs.map +1 -1
  181. package/dist/components/text-area/TextArea.d.ts.map +1 -1
  182. package/dist/components/text-area/TextArea.js +57 -56
  183. package/dist/components/text-area/TextArea.js.map +1 -1
  184. package/dist/components/text-area/TextArea.module.css +1 -1
  185. package/dist/components/text-area/TextArea.module.scss.cjs +1 -1
  186. package/dist/components/text-area/TextArea.module.scss.js +12 -17
  187. package/dist/components/text-input/TextInput.cjs +1 -1
  188. package/dist/components/text-input/TextInput.cjs.map +1 -1
  189. package/dist/components/text-input/TextInput.d.ts.map +1 -1
  190. package/dist/components/text-input/TextInput.js +59 -58
  191. package/dist/components/text-input/TextInput.js.map +1 -1
  192. package/dist/components/text-input/TextInput.module.css +1 -1
  193. package/dist/components/text-input/TextInput.module.scss.cjs +1 -1
  194. package/dist/components/text-input/TextInput.module.scss.js +16 -24
  195. package/dist/components/thread-footer/ThreadFooter.cjs +1 -1
  196. package/dist/components/thread-footer/ThreadFooter.cjs.map +1 -1
  197. package/dist/components/thread-footer/ThreadFooter.d.ts +7 -8
  198. package/dist/components/thread-footer/ThreadFooter.d.ts.map +1 -1
  199. package/dist/components/thread-footer/ThreadFooter.js +59 -62
  200. package/dist/components/thread-footer/ThreadFooter.js.map +1 -1
  201. package/dist/components/thread-footer/ThreadFooter.module.css +1 -1
  202. package/dist/components/thread-footer/ThreadFooter.module.scss.cjs +1 -1
  203. package/dist/components/thread-footer/ThreadFooter.module.scss.js +17 -17
  204. package/dist/components/thread-footer/index.d.ts +7 -1
  205. package/dist/components/thread-footer/index.d.ts.map +1 -1
  206. package/dist/components/thread-list-item/ThreadListItem.cjs +1 -1
  207. package/dist/components/thread-list-item/ThreadListItem.cjs.map +1 -1
  208. package/dist/components/thread-list-item/ThreadListItem.d.ts +1 -1
  209. package/dist/components/thread-list-item/ThreadListItem.d.ts.map +1 -1
  210. package/dist/components/thread-list-item/ThreadListItem.js +102 -87
  211. package/dist/components/thread-list-item/ThreadListItem.js.map +1 -1
  212. package/dist/components/thread-list-item/ThreadListItem.module.css +1 -1
  213. package/dist/components/thread-list-item/ThreadListItem.module.scss.cjs +1 -1
  214. package/dist/components/thread-list-item/ThreadListItem.module.scss.js +26 -23
  215. package/dist/components/thread-list-item/ThreadListItem.module.scss.js.map +1 -1
  216. package/dist/components/toast/Toast.module.css +1 -1
  217. package/dist/components/toast/Toast.module.scss.cjs +1 -1
  218. package/dist/components/toast/Toast.module.scss.js +6 -6
  219. package/dist/components/tour-point/TourPoint.module.css +1 -1
  220. package/dist/components/tour-point/TourPoint.module.scss.cjs +1 -1
  221. package/dist/components/tour-point/TourPoint.module.scss.js +28 -28
  222. package/dist/index.cjs +1 -1
  223. package/dist/index.css +31 -29
  224. package/dist/index.js +156 -154
  225. package/dist/index.js.map +1 -1
  226. package/package.json +1 -1
@@ -1,137 +1,157 @@
1
- import { jsxs as c, jsx as e } from "react/jsx-runtime";
2
- import __B from "@mattermost/compass-icons/components/globe.js";const B=__B&&__B.default?__B.default:__B;
3
- import __O from "@mattermost/compass-icons/components/lock-outline.js";const O=__O&&__O.default?__O.default:__O;
4
- import __j from "@mattermost/compass-icons/components/message-text-outline.js";const j=__j&&__j.default?__j.default:__j;
5
- import __w from "@mattermost/compass-icons/components/send-outline.js";const w=__w&&__w.default?__w.default:__w;
1
+ import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
+ import __j from "@mattermost/compass-icons/components/globe.js";const j=__j&&__j.default?__j.default:__j;
3
+ import __$ from "@mattermost/compass-icons/components/lock-outline.js";const $=__$&&__$.default?__$.default:__$;
4
+ import __w from "@mattermost/compass-icons/components/message-text-outline.js";const w=__w&&__w.default?__w.default:__w;
5
+ import __M from "@mattermost/compass-icons/components/send-outline.js";const M=__M&&__M.default?__M.default:__M;
6
6
  import __P from "@mattermost/compass-icons/components/chart-line.js";const P=__P&&__P.default?__P.default:__P;
7
7
  import __S from "@mattermost/compass-icons/components/circle-multiple-outline.js";const S=__S&&__S.default?__S.default:__S;
8
8
  import __T from "@mattermost/compass-icons/components/phone-in-talk.js";const T=__T&&__T.default?__T.default:__T;
9
9
  import __A from "@mattermost/compass-icons/components/dots-vertical.js";const A=__A&&__A.default?__A.default:__A;
10
10
  import __G from "@mattermost/compass-icons/components/dialpad.js";const G=__G&&__G.default?__G.default:__G;
11
- import K from "../user-avatar/UserAvatar.js";
11
+ import H from "../user-avatar/UserAvatar.js";
12
12
  import U from "../mention-badge/MentionBadge.js";
13
- import $ from "../icon-button/IconButton.js";
14
- import n from "./ChannelSidebarItem.module.scss.js";
15
- function k({
16
- leadingVisual: o,
17
- memberCount: l,
18
- avatarSrc: a,
19
- avatarAlt: s,
20
- showAvatarStatus: r
13
+ import q from "../icon-button/IconButton.js";
14
+ import a from "./ChannelSidebarItem.module.scss.js";
15
+ function F({
16
+ leadingVisual: t,
17
+ memberCount: c,
18
+ avatarSrc: n,
19
+ showAvatarStatus: s
21
20
  }) {
22
- switch (o) {
21
+ switch (t) {
23
22
  case "private":
24
- return /* @__PURE__ */ e(O, { size: 16 });
23
+ return /* @__PURE__ */ e($, { size: 16 });
25
24
  case "group-message":
26
- return /* @__PURE__ */ e("div", { className: n["channel-sidebar-item__group-icon"], children: l ?? 2 });
25
+ return /* @__PURE__ */ e("div", { className: a["channel-sidebar-item__group-icon"], children: c ?? 2 });
27
26
  case "direct-message":
28
27
  return /* @__PURE__ */ e(
29
- K,
28
+ H,
30
29
  {
31
- src: a ?? "",
32
- alt: s ?? "",
30
+ src: n ?? "",
31
+ alt: "",
33
32
  size: "20",
34
- status: !!r
33
+ status: !!s
35
34
  }
36
35
  );
37
36
  case "drafts":
38
- return /* @__PURE__ */ e(w, { size: 16 });
37
+ return /* @__PURE__ */ e(M, { size: 16 });
39
38
  case "insights":
40
39
  return /* @__PURE__ */ e(P, { size: 16 });
41
40
  case "threads":
42
- return /* @__PURE__ */ e(j, { size: 16 });
41
+ return /* @__PURE__ */ e(w, { size: 16 });
43
42
  case "dial-pad":
44
43
  return /* @__PURE__ */ e(G, { size: 16 });
45
44
  case "public":
46
45
  default:
47
- return /* @__PURE__ */ e(B, { size: 16 });
46
+ return /* @__PURE__ */ e(j, { size: 16 });
48
47
  }
49
48
  }
50
49
  function ne({
51
- className: o,
52
- name: l,
53
- hideLeadingVisual: a = !1,
50
+ className: t,
51
+ name: c,
52
+ hideLeadingVisual: n = !1,
54
53
  leadingVisual: s = "public",
55
- status: r = "read",
56
- active: m = !1,
57
- muted: b = !1,
58
- callActive: u = !1,
59
- sharedChannel: _ = !1,
60
- mentionCount: v,
61
- memberCount: I,
62
- avatarSrc: N,
63
- avatarAlt: z,
54
+ status: d = "read",
55
+ active: o = !1,
56
+ muted: _ = !1,
57
+ callActive: N = !1,
58
+ sharedChannel: v = !1,
59
+ mentionCount: l,
60
+ memberCount: z,
61
+ avatarSrc: I,
64
62
  showAvatarStatus: g = !1,
65
- customStatusEmoji: d,
66
- onClick: i
63
+ customStatusEmoji: h,
64
+ onClick: x,
65
+ onMenuClick: m
67
66
  }) {
68
- const h = !a && s === "direct-message", f = !a && s === "drafts", p = f && r === "unread" ? "read" : r, x = p === "mention", C = !a && ["public", "private", "group-message", "direct-message"].includes(
67
+ const p = !n && s === "direct-message", u = !n && s === "drafts", i = u && d === "unread" ? "read" : d, C = i === "mention", B = !n && ["public", "private", "group-message", "direct-message"].includes(
69
68
  s
70
69
  ), D = [
71
- n["channel-sidebar-item"],
72
- a ? n["channel-sidebar-item--text-only"] : "",
73
- m ? n["channel-sidebar-item--active"] : "",
74
- b ? n["channel-sidebar-item--muted"] : "",
75
- n[`channel-sidebar-item--status-${p.toLowerCase()}`],
76
- f ? n["channel-sidebar-item--drafts"] : "",
77
- o
78
- ].filter(Boolean).join(" "), y = [
79
- n["channel-sidebar-item__icon-container"],
80
- h ? n["channel-sidebar-item__icon-container--dm"] : ""
81
- ].filter(Boolean).join(" "), M = n["channel-sidebar-item__right"];
82
- return /* @__PURE__ */ c(
83
- "div",
84
- {
85
- role: "button",
86
- tabIndex: 0,
87
- className: D,
88
- onClick: i,
89
- onKeyDown: (t) => {
90
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), i == null || i());
91
- },
92
- children: [
93
- m && /* @__PURE__ */ e("div", { className: n["channel-sidebar-item__active-border"] }),
94
- /* @__PURE__ */ c("div", { className: n["channel-sidebar-item__left"], children: [
95
- !a && /* @__PURE__ */ e("div", { className: y, children: /* @__PURE__ */ e(
96
- k,
70
+ a["channel-sidebar-item"],
71
+ n ? a["channel-sidebar-item--text-only"] : "",
72
+ o ? a["channel-sidebar-item--active"] : "",
73
+ _ ? a["channel-sidebar-item--muted"] : "",
74
+ a[`channel-sidebar-item--status-${i.toLowerCase()}`],
75
+ u ? a["channel-sidebar-item--drafts"] : "",
76
+ t
77
+ ].filter(Boolean).join(" "), O = [
78
+ a["channel-sidebar-item__icon-container"],
79
+ p ? a["channel-sidebar-item__icon-container--dm"] : ""
80
+ ].filter(Boolean).join(" "), y = a["channel-sidebar-item__right"], b = i === "mention" ? `${l ?? 1} mention${(l ?? 1) === 1 ? "" : "s"}` : i === "unread" ? "unread" : void 0;
81
+ return /* @__PURE__ */ r("div", { className: D, children: [
82
+ o && /* @__PURE__ */ e("div", { className: a["channel-sidebar-item__active-border"] }),
83
+ /* @__PURE__ */ r(
84
+ "button",
85
+ {
86
+ type: "button",
87
+ className: a["channel-sidebar-item__left"],
88
+ onClick: x,
89
+ "aria-current": o ? !0 : void 0,
90
+ children: [
91
+ !n && /* @__PURE__ */ e("div", { className: O, "aria-hidden": !0, children: /* @__PURE__ */ e(
92
+ F,
97
93
  {
98
94
  leadingVisual: s,
99
- memberCount: I,
100
- avatarSrc: N,
101
- avatarAlt: z,
95
+ memberCount: z,
96
+ avatarSrc: I,
102
97
  showAvatarStatus: g
103
98
  }
104
99
  ) }),
105
- /* @__PURE__ */ c("div", { className: n["channel-sidebar-item__content"], children: [
106
- /* @__PURE__ */ e("span", { className: n["channel-sidebar-item__name"], children: l }),
107
- _ && /* @__PURE__ */ e("span", { className: n["channel-sidebar-item__shared-icon"], children: /* @__PURE__ */ e(S, { size: 12 }) }),
108
- h && d && /* @__PURE__ */ e("span", { className: n["channel-sidebar-item__custom-status"], children: d })
100
+ /* @__PURE__ */ r("div", { className: a["channel-sidebar-item__content"], children: [
101
+ /* @__PURE__ */ e("span", { className: a["channel-sidebar-item__name"], children: c }),
102
+ b && /* @__PURE__ */ e("span", { className: a["channel-sidebar-item__status-hint"], children: b }),
103
+ v && /* @__PURE__ */ e(
104
+ "span",
105
+ {
106
+ className: a["channel-sidebar-item__shared-icon"],
107
+ "aria-hidden": !0,
108
+ children: /* @__PURE__ */ e(S, { size: 12 })
109
+ }
110
+ ),
111
+ p && h && /* @__PURE__ */ e(
112
+ "span",
113
+ {
114
+ className: a["channel-sidebar-item__custom-status"],
115
+ "aria-hidden": !0,
116
+ children: h
117
+ }
118
+ )
109
119
  ] })
110
- ] }),
111
- /* @__PURE__ */ c("div", { className: M, children: [
112
- u && /* @__PURE__ */ e("div", { className: n["channel-sidebar-item__call"], children: /* @__PURE__ */ e(T, { size: 12 }) }),
113
- x && /* @__PURE__ */ e("span", { className: n["channel-sidebar-item__mention-badge"], children: /* @__PURE__ */ e(
120
+ ]
121
+ }
122
+ ),
123
+ /* @__PURE__ */ r("div", { className: y, children: [
124
+ N && /* @__PURE__ */ e("div", { className: a["channel-sidebar-item__call"], "aria-hidden": !0, children: /* @__PURE__ */ e(T, { size: 12 }) }),
125
+ C && /* @__PURE__ */ e(
126
+ "span",
127
+ {
128
+ className: a["channel-sidebar-item__mention-badge"],
129
+ "aria-hidden": !0,
130
+ children: /* @__PURE__ */ e(
114
131
  U,
115
132
  {
116
- count: v ?? 1,
133
+ count: l ?? 1,
117
134
  location: "sidebar",
118
135
  size: "medium"
119
136
  }
120
- ) }),
121
- C && /* @__PURE__ */ e("span", { className: n["channel-sidebar-item__menu-button"], children: /* @__PURE__ */ e(
122
- $,
123
- {
124
- size: "x-small",
125
- style: "inverted",
126
- icon: /* @__PURE__ */ e(A, { size: 12 }),
127
- "aria-label": "Channel options",
128
- onClick: (t) => t.stopPropagation()
129
- }
130
- ) })
131
- ] })
132
- ]
133
- }
134
- );
137
+ )
138
+ }
139
+ ),
140
+ B && /* @__PURE__ */ e("span", { className: a["channel-sidebar-item__menu-button"], children: /* @__PURE__ */ e(
141
+ q,
142
+ {
143
+ className: a["channel-sidebar-item__menu-icon"],
144
+ size: "x-small",
145
+ style: "inverted",
146
+ icon: /* @__PURE__ */ e(A, { size: 12 }),
147
+ "aria-label": "Channel options",
148
+ onClick: (f) => {
149
+ f.stopPropagation(), m == null || m(f);
150
+ }
151
+ }
152
+ ) })
153
+ ] })
154
+ ] });
135
155
  }
136
156
  export {
137
157
  ne as default
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelSidebarItem.js","sources":["../../../src/components/channel-sidebar-item/ChannelSidebarItem.tsx"],"sourcesContent":["import GlobeIcon from '@mattermost/compass-icons/components/globe';\nimport LockOutlineIcon from '@mattermost/compass-icons/components/lock-outline';\nimport MessageTextOutlineIcon from '@mattermost/compass-icons/components/message-text-outline';\nimport SendOutlineIcon from '@mattermost/compass-icons/components/send-outline';\nimport ChartLineIcon from '@mattermost/compass-icons/components/chart-line';\nimport CircleMultipleOutlineIcon from '@mattermost/compass-icons/components/circle-multiple-outline';\nimport PhoneInTalkIcon from '@mattermost/compass-icons/components/phone-in-talk';\nimport DotsVerticalIcon from '@mattermost/compass-icons/components/dots-vertical';\nimport DialpadIcon from '@mattermost/compass-icons/components/dialpad';\nimport UserAvatar from '@/components/user-avatar/UserAvatar';\nimport MentionBadge from '@/components/mention-badge/MentionBadge';\nimport IconButton from '@/components/icon-button/IconButton';\nimport styles from './ChannelSidebarItem.module.scss';\n\nexport type ChannelSidebarItemLeadingVisual =\n | 'public'\n | 'private'\n | 'group-message'\n | 'direct-message'\n | 'drafts'\n | 'insights'\n | 'threads'\n | 'dial-pad';\n\nexport type ChannelSidebarItemStatus = 'read' | 'unread' | 'mention';\n\nexport interface ChannelSidebarItemProps {\n className?: string;\n /** Channel or user display name. */\n name: string;\n /**\n * Text-only row (e.g. System Console navigation): no channel glyph or\n * overflow menu; name aligns with channel sidebar label padding.\n */\n hideLeadingVisual?: boolean;\n /** Leading visual type. Default: Public. Ignored when `hideLeadingVisual`. */\n leadingVisual?: ChannelSidebarItemLeadingVisual;\n /** Read/unread/mention state. Default: Read. */\n status?: ChannelSidebarItemStatus;\n /** Highlighted as the currently active item. */\n active?: boolean;\n /** Muted channel — reduces visual prominence. */\n muted?: boolean;\n /** Shows a call-in-progress indicator on the right. */\n callActive?: boolean;\n /** Shows the shared-channel icon after the name. */\n sharedChannel?: boolean;\n /** Mention count shown in the badge when status='mention'. */\n mentionCount?: number;\n /** Member count shown in the group icon when leadingVisual='group-message'. */\n memberCount?: number;\n /** Avatar image URL for leadingVisual='direct-message'. */\n avatarSrc?: string;\n /** Avatar alt text for leadingVisual='direct-message'. */\n avatarAlt?: string;\n /** Shows status badge on the avatar when leadingVisual='direct-message'. */\n showAvatarStatus?: boolean;\n /** Custom status emoji shown after the name for leadingVisual='direct-message'. */\n customStatusEmoji?: string;\n onClick?: () => void;\n}\n\nfunction LeadingVisualContent({\n leadingVisual,\n memberCount,\n avatarSrc,\n avatarAlt,\n showAvatarStatus,\n}: {\n leadingVisual: ChannelSidebarItemLeadingVisual;\n memberCount: number | undefined;\n avatarSrc: string | undefined;\n avatarAlt: string | undefined;\n showAvatarStatus: boolean | undefined;\n}) {\n switch (leadingVisual) {\n case 'private':\n return <LockOutlineIcon size={16} />;\n case 'group-message':\n return (\n <div className={styles['channel-sidebar-item__group-icon']}>\n {memberCount ?? 2}\n </div>\n );\n case 'direct-message':\n return (\n <UserAvatar\n src={avatarSrc ?? ''}\n alt={avatarAlt ?? ''}\n size=\"20\"\n status={!!showAvatarStatus}\n />\n );\n case 'drafts':\n return <SendOutlineIcon size={16} />;\n case 'insights':\n return <ChartLineIcon size={16} />;\n case 'threads':\n return <MessageTextOutlineIcon size={16} />;\n case 'dial-pad':\n return <DialpadIcon size={16} />;\n case 'public':\n default:\n return <GlobeIcon size={16} />;\n }\n}\n\n/**\n * The Channel Sidebar Item is the row people use to move between channels, DMs, and group\n * messages. It compresses a lot of state — channel type, unread, mention count, mute,\n * in-call — into a single, scannable line.\n */\nexport default function ChannelSidebarItem({\n className,\n name,\n hideLeadingVisual = false,\n leadingVisual = 'public',\n status = 'read',\n active = false,\n muted = false,\n callActive = false,\n sharedChannel = false,\n mentionCount,\n memberCount,\n avatarSrc,\n avatarAlt,\n showAvatarStatus = false,\n customStatusEmoji,\n onClick,\n}: ChannelSidebarItemProps) {\n const isDM = !hideLeadingVisual && leadingVisual === 'direct-message';\n const isDrafts = !hideLeadingVisual && leadingVisual === 'drafts';\n const effectiveStatus = isDrafts && status === 'unread' ? 'read' : status;\n const hasMentionBadge = effectiveStatus === 'mention';\n const isChannelOrDM =\n !hideLeadingVisual &&\n ['public', 'private', 'group-message', 'direct-message'].includes(\n leadingVisual,\n );\n\n const rootClass = [\n styles['channel-sidebar-item'],\n hideLeadingVisual ? styles['channel-sidebar-item--text-only'] : '',\n active ? styles['channel-sidebar-item--active'] : '',\n muted ? styles['channel-sidebar-item--muted'] : '',\n styles[`channel-sidebar-item--status-${effectiveStatus.toLowerCase()}`],\n isDrafts ? styles['channel-sidebar-item--drafts'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const iconContainerClass = [\n styles['channel-sidebar-item__icon-container'],\n isDM ? styles['channel-sidebar-item__icon-container--dm'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const rightClass = styles['channel-sidebar-item__right'];\n\n return (\n <div\n role=\"button\"\n tabIndex={0}\n className={rootClass}\n onClick={onClick}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick?.();\n }\n }}\n >\n {active && (\n <div className={styles['channel-sidebar-item__active-border']} />\n )}\n <div className={styles['channel-sidebar-item__left']}>\n {!hideLeadingVisual && (\n <div className={iconContainerClass}>\n <LeadingVisualContent\n leadingVisual={leadingVisual}\n memberCount={memberCount}\n avatarSrc={avatarSrc}\n avatarAlt={avatarAlt}\n showAvatarStatus={showAvatarStatus}\n />\n </div>\n )}\n <div className={styles['channel-sidebar-item__content']}>\n <span className={styles['channel-sidebar-item__name']}>{name}</span>\n {sharedChannel && (\n <span className={styles['channel-sidebar-item__shared-icon']}>\n <CircleMultipleOutlineIcon size={12} />\n </span>\n )}\n {isDM && customStatusEmoji && (\n <span className={styles['channel-sidebar-item__custom-status']}>\n {customStatusEmoji}\n </span>\n )}\n </div>\n </div>\n <div className={rightClass}>\n {callActive && (\n <div className={styles['channel-sidebar-item__call']}>\n <PhoneInTalkIcon size={12} />\n </div>\n )}\n {hasMentionBadge && (\n <span className={styles['channel-sidebar-item__mention-badge']}>\n <MentionBadge\n count={mentionCount ?? 1}\n location=\"sidebar\"\n size=\"medium\"\n />\n </span>\n )}\n {isChannelOrDM && (\n <span className={styles['channel-sidebar-item__menu-button']}>\n <IconButton\n size=\"x-small\"\n style=\"inverted\"\n icon={<DotsVerticalIcon size={12} />}\n aria-label=\"Channel options\"\n onClick={(e) => e.stopPropagation()}\n />\n </span>\n )}\n </div>\n </div>\n );\n}\n"],"names":["LeadingVisualContent","leadingVisual","memberCount","avatarSrc","avatarAlt","showAvatarStatus","jsx","LockOutlineIcon","styles","UserAvatar","SendOutlineIcon","ChartLineIcon","MessageTextOutlineIcon","DialpadIcon","GlobeIcon","ChannelSidebarItem","className","name","hideLeadingVisual","status","active","muted","callActive","sharedChannel","mentionCount","customStatusEmoji","onClick","isDM","isDrafts","effectiveStatus","hasMentionBadge","isChannelOrDM","rootClass","iconContainerClass","rightClass","jsxs","e","CircleMultipleOutlineIcon","PhoneInTalkIcon","MentionBadge","IconButton","DotsVerticalIcon"],"mappings":"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"}
1
+ {"version":3,"file":"ChannelSidebarItem.js","sources":["../../../src/components/channel-sidebar-item/ChannelSidebarItem.tsx"],"sourcesContent":["import type { MouseEvent } from 'react';\nimport GlobeIcon from '@mattermost/compass-icons/components/globe';\nimport LockOutlineIcon from '@mattermost/compass-icons/components/lock-outline';\nimport MessageTextOutlineIcon from '@mattermost/compass-icons/components/message-text-outline';\nimport SendOutlineIcon from '@mattermost/compass-icons/components/send-outline';\nimport ChartLineIcon from '@mattermost/compass-icons/components/chart-line';\nimport CircleMultipleOutlineIcon from '@mattermost/compass-icons/components/circle-multiple-outline';\nimport PhoneInTalkIcon from '@mattermost/compass-icons/components/phone-in-talk';\nimport DotsVerticalIcon from '@mattermost/compass-icons/components/dots-vertical';\nimport DialpadIcon from '@mattermost/compass-icons/components/dialpad';\nimport UserAvatar from '@/components/user-avatar/UserAvatar';\nimport MentionBadge from '@/components/mention-badge/MentionBadge';\nimport IconButton from '@/components/icon-button/IconButton';\nimport styles from './ChannelSidebarItem.module.scss';\n\nexport type ChannelSidebarItemLeadingVisual =\n | 'public'\n | 'private'\n | 'group-message'\n | 'direct-message'\n | 'drafts'\n | 'insights'\n | 'threads'\n | 'dial-pad';\n\nexport type ChannelSidebarItemStatus = 'read' | 'unread' | 'mention';\n\nexport interface ChannelSidebarItemProps {\n className?: string;\n /** Channel or user display name. */\n name: string;\n /**\n * Text-only row (e.g. System Console navigation): no channel glyph or\n * overflow menu; name aligns with channel sidebar label padding.\n */\n hideLeadingVisual?: boolean;\n /** Leading visual type. Default: Public. Ignored when `hideLeadingVisual`. */\n leadingVisual?: ChannelSidebarItemLeadingVisual;\n /** Read/unread/mention state. Default: Read. */\n status?: ChannelSidebarItemStatus;\n /** Highlighted as the currently active item. */\n active?: boolean;\n /** Muted channel — reduces visual prominence. */\n muted?: boolean;\n /** Shows a call-in-progress indicator on the right. */\n callActive?: boolean;\n /** Shows the shared-channel icon after the name. */\n sharedChannel?: boolean;\n /** Mention count shown in the badge when status='mention'. */\n mentionCount?: number;\n /** Member count shown in the group icon when leadingVisual='group-message'. */\n memberCount?: number;\n /** Avatar image URL for leadingVisual='direct-message'. */\n avatarSrc?: string;\n /** Avatar alt text for leadingVisual='direct-message'. */\n avatarAlt?: string;\n /** Shows status badge on the avatar when leadingVisual='direct-message'. */\n showAvatarStatus?: boolean;\n /** Custom status emoji shown after the name for leadingVisual='direct-message'. */\n customStatusEmoji?: string;\n onClick?: () => void;\n /** Overflow menu (kebab). Sibling of the channel control so it is keyboard-reachable. */\n onMenuClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n}\n\nfunction LeadingVisualContent({\n leadingVisual,\n memberCount,\n avatarSrc,\n showAvatarStatus,\n}: {\n leadingVisual: ChannelSidebarItemLeadingVisual;\n memberCount: number | undefined;\n avatarSrc: string | undefined;\n showAvatarStatus: boolean | undefined;\n}) {\n switch (leadingVisual) {\n case 'private':\n return <LockOutlineIcon size={16} />;\n case 'group-message':\n return (\n <div className={styles['channel-sidebar-item__group-icon']}>\n {memberCount ?? 2}\n </div>\n );\n case 'direct-message':\n return (\n <UserAvatar\n src={avatarSrc ?? ''}\n alt=\"\"\n size=\"20\"\n status={!!showAvatarStatus}\n />\n );\n case 'drafts':\n return <SendOutlineIcon size={16} />;\n case 'insights':\n return <ChartLineIcon size={16} />;\n case 'threads':\n return <MessageTextOutlineIcon size={16} />;\n case 'dial-pad':\n return <DialpadIcon size={16} />;\n case 'public':\n default:\n return <GlobeIcon size={16} />;\n }\n}\n\n/**\n * The Channel Sidebar Item is the row people use to move between channels, DMs, and group\n * messages. It compresses a lot of state — channel type, unread, mention count, mute,\n * in-call — into a single, scannable line.\n */\nexport default function ChannelSidebarItem({\n className,\n name,\n hideLeadingVisual = false,\n leadingVisual = 'public',\n status = 'read',\n active = false,\n muted = false,\n callActive = false,\n sharedChannel = false,\n mentionCount,\n memberCount,\n avatarSrc,\n showAvatarStatus = false,\n customStatusEmoji,\n onClick,\n onMenuClick,\n}: ChannelSidebarItemProps) {\n const isDM = !hideLeadingVisual && leadingVisual === 'direct-message';\n const isDrafts = !hideLeadingVisual && leadingVisual === 'drafts';\n const effectiveStatus = isDrafts && status === 'unread' ? 'read' : status;\n const hasMentionBadge = effectiveStatus === 'mention';\n const isChannelOrDM =\n !hideLeadingVisual &&\n ['public', 'private', 'group-message', 'direct-message'].includes(\n leadingVisual,\n );\n\n const rootClass = [\n styles['channel-sidebar-item'],\n hideLeadingVisual ? styles['channel-sidebar-item--text-only'] : '',\n active ? styles['channel-sidebar-item--active'] : '',\n muted ? styles['channel-sidebar-item--muted'] : '',\n styles[`channel-sidebar-item--status-${effectiveStatus.toLowerCase()}`],\n isDrafts ? styles['channel-sidebar-item--drafts'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const iconContainerClass = [\n styles['channel-sidebar-item__icon-container'],\n isDM ? styles['channel-sidebar-item__icon-container--dm'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const rightClass = styles['channel-sidebar-item__right'];\n\n const statusHint =\n effectiveStatus === 'mention'\n ? `${mentionCount ?? 1} mention${(mentionCount ?? 1) === 1 ? '' : 's'}`\n : effectiveStatus === 'unread'\n ? 'unread'\n : undefined;\n\n return (\n <div className={rootClass}>\n {active && (\n <div className={styles['channel-sidebar-item__active-border']} />\n )}\n <button\n type=\"button\"\n className={styles['channel-sidebar-item__left']}\n onClick={onClick}\n aria-current={active ? true : undefined}\n >\n {!hideLeadingVisual && (\n <div className={iconContainerClass} aria-hidden>\n <LeadingVisualContent\n leadingVisual={leadingVisual}\n memberCount={memberCount}\n avatarSrc={avatarSrc}\n showAvatarStatus={showAvatarStatus}\n />\n </div>\n )}\n <div className={styles['channel-sidebar-item__content']}>\n <span className={styles['channel-sidebar-item__name']}>{name}</span>\n {statusHint && (\n <span className={styles['channel-sidebar-item__status-hint']}>\n {statusHint}\n </span>\n )}\n {sharedChannel && (\n <span\n className={styles['channel-sidebar-item__shared-icon']}\n aria-hidden\n >\n <CircleMultipleOutlineIcon size={12} />\n </span>\n )}\n {isDM && customStatusEmoji && (\n <span\n className={styles['channel-sidebar-item__custom-status']}\n aria-hidden\n >\n {customStatusEmoji}\n </span>\n )}\n </div>\n </button>\n <div className={rightClass}>\n {callActive && (\n <div className={styles['channel-sidebar-item__call']} aria-hidden>\n <PhoneInTalkIcon size={12} />\n </div>\n )}\n {hasMentionBadge && (\n <span\n className={styles['channel-sidebar-item__mention-badge']}\n aria-hidden\n >\n <MentionBadge\n count={mentionCount ?? 1}\n location=\"sidebar\"\n size=\"medium\"\n />\n </span>\n )}\n {isChannelOrDM && (\n <span className={styles['channel-sidebar-item__menu-button']}>\n <IconButton\n className={styles['channel-sidebar-item__menu-icon']}\n size=\"x-small\"\n style=\"inverted\"\n icon={<DotsVerticalIcon size={12} />}\n aria-label=\"Channel options\"\n onClick={(e) => {\n e.stopPropagation();\n onMenuClick?.(e);\n }}\n />\n </span>\n )}\n </div>\n </div>\n );\n}\n"],"names":["LeadingVisualContent","leadingVisual","memberCount","avatarSrc","showAvatarStatus","jsx","LockOutlineIcon","styles","UserAvatar","SendOutlineIcon","ChartLineIcon","MessageTextOutlineIcon","DialpadIcon","GlobeIcon","ChannelSidebarItem","className","name","hideLeadingVisual","status","active","muted","callActive","sharedChannel","mentionCount","customStatusEmoji","onClick","onMenuClick","isDM","isDrafts","effectiveStatus","hasMentionBadge","isChannelOrDM","rootClass","iconContainerClass","rightClass","statusHint","jsxs","CircleMultipleOutlineIcon","PhoneInTalkIcon","MentionBadge","IconButton","DotsVerticalIcon","e"],"mappings":"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"}
@@ -1 +1 @@
1
- ._channel-sidebar-item_1e5ys_2{position:relative;display:flex;align-items:center;height:32px;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}._channel-sidebar-item__menu-button_1e5ys_11{display:none}._channel-sidebar-item_1e5ys_2:hover{background:rgba(var(--sidebar-text-rgb),.08)}._channel-sidebar-item_1e5ys_2:hover ._channel-sidebar-item__menu-button_1e5ys_11{display:contents}._channel-sidebar-item_1e5ys_2:hover ._channel-sidebar-item__mention-badge_1e5ys_20{display:none}._channel-sidebar-item_1e5ys_2:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--sidebar-text-active-border)}._channel-sidebar-item__active-border_1e5ys_27{flex-shrink:0;width:2px;align-self:stretch;border-radius:0 2px 2px 0;background:var(--sidebar-text-active-border)}._channel-sidebar-item__left_1e5ys_34{display:flex;align-items:center;flex:1;min-width:0;gap:var(--spacing-xxxxs);padding:var(--spacing-xxxxs) var(--spacing-xs) var(--spacing-xxxxs) 18px}._channel-sidebar-item__icon-container_1e5ys_42{display:flex;align-items:center;flex-shrink:0;padding:var(--spacing-xxxs);color:var(--sidebar-text);opacity:.64}._channel-sidebar-item__icon-container--dm_1e5ys_50{padding:var(--spacing-xxxxs);opacity:1;--status-badge-bg: var(--sidebar-bg)}._channel-sidebar-item__group-icon_1e5ys_55{width:var(--icon-size-16);height:var(--icon-size-16);display:flex;align-items:center;justify-content:center;background:rgba(var(--sidebar-text-rgb),.16);border-radius:var(--radius-s);font-family:var(--font-family-body);font-size:var(--font-size-50);font-weight:var(--font-weight-semibold);line-height:var(--line-height-25);letter-spacing:.01em;color:var(--sidebar-text);opacity:.72}._channel-sidebar-item__content_1e5ys_71{display:flex;align-items:center;flex:1;min-width:0;gap:var(--spacing-xs);padding:2px var(--spacing-xxxxs)}._channel-sidebar-item__name_1e5ys_79{font-family:var(--font-family-body);font-size:var(--font-size-100);font-weight:var(--font-weight-regular);line-height:var(--line-height-100);letter-spacing:.02em;color:var(--sidebar-text);opacity:.72;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:144px}._channel-sidebar-item__shared-icon_1e5ys_92{display:flex;align-items:center;flex-shrink:0;padding:var(--spacing-xxxs) 0;color:var(--sidebar-text);opacity:.72}._channel-sidebar-item__custom-status_1e5ys_100{display:flex;align-items:center;flex-shrink:0;font-size:var(--font-size-200);line-height:var(--line-height-25);opacity:.8}._channel-sidebar-item__right_1e5ys_108{display:flex;align-items:center;justify-content:flex-end;flex-shrink:0;gap:var(--spacing-xxxxs);padding-right:var(--spacing-l);color:var(--sidebar-text)}._channel-sidebar-item__call_1e5ys_117{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xxxs);border-radius:var(--radius-s)}._channel-sidebar-item--text-only_1e5ys_127 ._channel-sidebar-item__left_1e5ys_34{gap:0}._channel-sidebar-item--active_1e5ys_130{background:rgba(var(--sidebar-text-rgb),.12)}._channel-sidebar-item--active_1e5ys_130 ._channel-sidebar-item__left_1e5ys_34{padding-left:var(--spacing-l)}._channel-sidebar-item--active_1e5ys_130 ._channel-sidebar-item__name_1e5ys_79,._channel-sidebar-item--status-unread_1e5ys_139 ._channel-sidebar-item__icon-container_1e5ys_42,._channel-sidebar-item--status-mention_1e5ys_139 ._channel-sidebar-item__icon-container_1e5ys_42{opacity:1}._channel-sidebar-item--status-unread_1e5ys_139 ._channel-sidebar-item__name_1e5ys_79,._channel-sidebar-item--status-mention_1e5ys_139 ._channel-sidebar-item__name_1e5ys_79{font-weight:var(--font-weight-semibold);opacity:1}._channel-sidebar-item--drafts_1e5ys_146 ._channel-sidebar-item__icon-container_1e5ys_42{opacity:.64}._channel-sidebar-item--drafts_1e5ys_146 ._channel-sidebar-item__name_1e5ys_79{font-weight:var(--font-weight-regular);opacity:.72}._channel-sidebar-item--drafts_1e5ys_146 ._channel-sidebar-item__mention-badge_1e5ys_20>*{background-color:transparent;color:var(--sidebar-text);padding-left:0;padding-right:var(--spacing-xxs)}._channel-sidebar-item--drafts_1e5ys_146._channel-sidebar-item--active_1e5ys_130 ._channel-sidebar-item__name_1e5ys_79{opacity:1}._channel-sidebar-item--muted_1e5ys_162 ._channel-sidebar-item__icon-container_1e5ys_42,._channel-sidebar-item--muted_1e5ys_162 ._channel-sidebar-item__name_1e5ys_79,._channel-sidebar-item--muted_1e5ys_162 ._channel-sidebar-item__shared-icon_1e5ys_92{opacity:.4}
1
+ ._channel-sidebar-item_goy1t_2{position:relative;display:flex;align-items:center;height:32px;overflow:hidden;-webkit-user-select:none;user-select:none}._channel-sidebar-item__menu-button_goy1t_10{display:flex;opacity:0;pointer-events:none;transition:opacity var(--duration-quick) var(--ease-transition)}._channel-sidebar-item__mention-badge_goy1t_16{transition:opacity var(--duration-quick) var(--ease-transition)}._channel-sidebar-item_goy1t_2 ._channel-sidebar-item__menu-icon_goy1t_19{--focus-ring-color: var(--sidebar-text-active-border)}._channel-sidebar-item_goy1t_2:hover,._channel-sidebar-item_goy1t_2:focus-within{overflow:visible}._channel-sidebar-item_goy1t_2:hover ._channel-sidebar-item__menu-button_goy1t_10,._channel-sidebar-item_goy1t_2:focus-within ._channel-sidebar-item__menu-button_goy1t_10{opacity:1;pointer-events:auto}._channel-sidebar-item_goy1t_2:hover ._channel-sidebar-item__mention-badge_goy1t_16,._channel-sidebar-item_goy1t_2:focus-within ._channel-sidebar-item__mention-badge_goy1t_16{opacity:0;pointer-events:none}._channel-sidebar-item_goy1t_2:hover:not(._channel-sidebar-item--active_goy1t_33),._channel-sidebar-item_goy1t_2:focus-within:not(._channel-sidebar-item--active_goy1t_33){background:rgba(var(--sidebar-text-rgb),.08)}._channel-sidebar-item__active-border_goy1t_36{flex-shrink:0;width:2px;align-self:stretch;border-radius:0 2px 2px 0;background:var(--sidebar-text-active-border)}._channel-sidebar-item__left_goy1t_43{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;border:none;background:transparent;display:flex;align-items:center;flex:1;min-width:0;align-self:stretch;gap:var(--spacing-xxxxs);padding:var(--spacing-xxxxs) var(--spacing-xs) var(--spacing-xxxxs) 18px;cursor:pointer;font:inherit;color:inherit;text-align:left}._channel-sidebar-item__left_goy1t_43:focus{outline:none}._channel-sidebar-item__left_goy1t_43:focus-visible{box-shadow:inset 0 0 0 2px var(--sidebar-text-active-border)}._channel-sidebar-item__icon-container_goy1t_66{display:flex;align-items:center;flex-shrink:0;padding:var(--spacing-xxxs);color:var(--sidebar-text);opacity:.64}._channel-sidebar-item__icon-container--dm_goy1t_74{padding:var(--spacing-xxxxs);opacity:1;--status-badge-bg: var(--sidebar-bg)}._channel-sidebar-item__group-icon_goy1t_79{width:var(--icon-size-16);height:var(--icon-size-16);display:flex;align-items:center;justify-content:center;background:rgba(var(--sidebar-text-rgb),.16);border-radius:var(--radius-s);font-family:var(--font-family-body);font-size:var(--font-size-50);font-weight:var(--font-weight-semibold);line-height:var(--line-height-25);letter-spacing:.01em;color:var(--sidebar-text);opacity:.72}._channel-sidebar-item__content_goy1t_95{display:flex;align-items:center;flex:1;min-width:0;gap:var(--spacing-xs);padding:2px var(--spacing-xxxxs)}._channel-sidebar-item__name_goy1t_103{font-family:var(--font-family-body);font-size:var(--font-size-100);font-weight:var(--font-weight-regular);line-height:var(--line-height-100);letter-spacing:.02em;color:var(--sidebar-text);opacity:.72;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:144px}._channel-sidebar-item__status-hint_goy1t_116{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}._channel-sidebar-item__shared-icon_goy1t_127{display:flex;align-items:center;flex-shrink:0;padding:var(--spacing-xxxs) 0;color:var(--sidebar-text);opacity:.72}._channel-sidebar-item__custom-status_goy1t_135{display:flex;align-items:center;flex-shrink:0;font-size:var(--font-size-200);line-height:var(--line-height-25);opacity:.8}._channel-sidebar-item__right_goy1t_143{display:flex;align-items:center;justify-content:flex-end;flex-shrink:0;gap:var(--spacing-xxxxs);padding-right:var(--spacing-l);color:var(--sidebar-text)}._channel-sidebar-item__call_goy1t_152{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xxxs);border-radius:var(--radius-s)}._channel-sidebar-item--text-only_goy1t_162 ._channel-sidebar-item__left_goy1t_43{gap:0}._channel-sidebar-item--active_goy1t_33{background:rgba(var(--sidebar-text-rgb),.12)}._channel-sidebar-item--active_goy1t_33 ._channel-sidebar-item__left_goy1t_43{padding-left:var(--spacing-l)}._channel-sidebar-item--active_goy1t_33 ._channel-sidebar-item__name_goy1t_103,._channel-sidebar-item--status-unread_goy1t_174 ._channel-sidebar-item__icon-container_goy1t_66,._channel-sidebar-item--status-mention_goy1t_174 ._channel-sidebar-item__icon-container_goy1t_66{opacity:1}._channel-sidebar-item--status-unread_goy1t_174 ._channel-sidebar-item__name_goy1t_103,._channel-sidebar-item--status-mention_goy1t_174 ._channel-sidebar-item__name_goy1t_103{font-weight:var(--font-weight-semibold);opacity:1}._channel-sidebar-item--drafts_goy1t_181 ._channel-sidebar-item__icon-container_goy1t_66{opacity:.64}._channel-sidebar-item--drafts_goy1t_181 ._channel-sidebar-item__name_goy1t_103{font-weight:var(--font-weight-regular);opacity:.72}._channel-sidebar-item--drafts_goy1t_181 ._channel-sidebar-item__mention-badge_goy1t_16>*{background-color:transparent;color:var(--sidebar-text);padding-left:0;padding-right:var(--spacing-xxs)}._channel-sidebar-item--drafts_goy1t_181._channel-sidebar-item--active_goy1t_33 ._channel-sidebar-item__name_goy1t_103{opacity:1}._channel-sidebar-item--muted_goy1t_197 ._channel-sidebar-item__icon-container_goy1t_66,._channel-sidebar-item--muted_goy1t_197 ._channel-sidebar-item__name_goy1t_103,._channel-sidebar-item--muted_goy1t_197 ._channel-sidebar-item__shared-icon_goy1t_127{opacity:.4}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./ChannelSidebarItem.module.css');const e={"channel-sidebar-item":"_channel-sidebar-item_1e5ys_2","channel-sidebar-item__menu-button":"_channel-sidebar-item__menu-button_1e5ys_11","channel-sidebar-item__mention-badge":"_channel-sidebar-item__mention-badge_1e5ys_20","channel-sidebar-item__active-border":"_channel-sidebar-item__active-border_1e5ys_27","channel-sidebar-item__left":"_channel-sidebar-item__left_1e5ys_34","channel-sidebar-item__icon-container":"_channel-sidebar-item__icon-container_1e5ys_42","channel-sidebar-item__icon-container--dm":"_channel-sidebar-item__icon-container--dm_1e5ys_50","channel-sidebar-item__group-icon":"_channel-sidebar-item__group-icon_1e5ys_55","channel-sidebar-item__content":"_channel-sidebar-item__content_1e5ys_71","channel-sidebar-item__name":"_channel-sidebar-item__name_1e5ys_79","channel-sidebar-item__shared-icon":"_channel-sidebar-item__shared-icon_1e5ys_92","channel-sidebar-item__custom-status":"_channel-sidebar-item__custom-status_1e5ys_100","channel-sidebar-item__right":"_channel-sidebar-item__right_1e5ys_108","channel-sidebar-item__call":"_channel-sidebar-item__call_1e5ys_117","channel-sidebar-item--text-only":"_channel-sidebar-item--text-only_1e5ys_127","channel-sidebar-item--active":"_channel-sidebar-item--active_1e5ys_130","channel-sidebar-item--status-unread":"_channel-sidebar-item--status-unread_1e5ys_139","channel-sidebar-item--status-mention":"_channel-sidebar-item--status-mention_1e5ys_139","channel-sidebar-item--drafts":"_channel-sidebar-item--drafts_1e5ys_146","channel-sidebar-item--muted":"_channel-sidebar-item--muted_1e5ys_162"};exports.default=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./ChannelSidebarItem.module.css');const e={"channel-sidebar-item":"_channel-sidebar-item_goy1t_2","channel-sidebar-item__menu-button":"_channel-sidebar-item__menu-button_goy1t_10","channel-sidebar-item__mention-badge":"_channel-sidebar-item__mention-badge_goy1t_16","channel-sidebar-item__menu-icon":"_channel-sidebar-item__menu-icon_goy1t_19","channel-sidebar-item--active":"_channel-sidebar-item--active_goy1t_33","channel-sidebar-item__active-border":"_channel-sidebar-item__active-border_goy1t_36","channel-sidebar-item__left":"_channel-sidebar-item__left_goy1t_43","channel-sidebar-item__icon-container":"_channel-sidebar-item__icon-container_goy1t_66","channel-sidebar-item__icon-container--dm":"_channel-sidebar-item__icon-container--dm_goy1t_74","channel-sidebar-item__group-icon":"_channel-sidebar-item__group-icon_goy1t_79","channel-sidebar-item__content":"_channel-sidebar-item__content_goy1t_95","channel-sidebar-item__name":"_channel-sidebar-item__name_goy1t_103","channel-sidebar-item__status-hint":"_channel-sidebar-item__status-hint_goy1t_116","channel-sidebar-item__shared-icon":"_channel-sidebar-item__shared-icon_goy1t_127","channel-sidebar-item__custom-status":"_channel-sidebar-item__custom-status_goy1t_135","channel-sidebar-item__right":"_channel-sidebar-item__right_goy1t_143","channel-sidebar-item__call":"_channel-sidebar-item__call_goy1t_152","channel-sidebar-item--text-only":"_channel-sidebar-item--text-only_goy1t_162","channel-sidebar-item--status-unread":"_channel-sidebar-item--status-unread_goy1t_174","channel-sidebar-item--status-mention":"_channel-sidebar-item--status-mention_goy1t_174","channel-sidebar-item--drafts":"_channel-sidebar-item--drafts_goy1t_181","channel-sidebar-item--muted":"_channel-sidebar-item--muted_goy1t_197"};exports.default=e;
2
2
  //# sourceMappingURL=ChannelSidebarItem.module.scss.cjs.map
@@ -1,24 +1,26 @@
1
1
  import './ChannelSidebarItem.module.css';const e = {
2
- "channel-sidebar-item": "_channel-sidebar-item_1e5ys_2",
3
- "channel-sidebar-item__menu-button": "_channel-sidebar-item__menu-button_1e5ys_11",
4
- "channel-sidebar-item__mention-badge": "_channel-sidebar-item__mention-badge_1e5ys_20",
5
- "channel-sidebar-item__active-border": "_channel-sidebar-item__active-border_1e5ys_27",
6
- "channel-sidebar-item__left": "_channel-sidebar-item__left_1e5ys_34",
7
- "channel-sidebar-item__icon-container": "_channel-sidebar-item__icon-container_1e5ys_42",
8
- "channel-sidebar-item__icon-container--dm": "_channel-sidebar-item__icon-container--dm_1e5ys_50",
9
- "channel-sidebar-item__group-icon": "_channel-sidebar-item__group-icon_1e5ys_55",
10
- "channel-sidebar-item__content": "_channel-sidebar-item__content_1e5ys_71",
11
- "channel-sidebar-item__name": "_channel-sidebar-item__name_1e5ys_79",
12
- "channel-sidebar-item__shared-icon": "_channel-sidebar-item__shared-icon_1e5ys_92",
13
- "channel-sidebar-item__custom-status": "_channel-sidebar-item__custom-status_1e5ys_100",
14
- "channel-sidebar-item__right": "_channel-sidebar-item__right_1e5ys_108",
15
- "channel-sidebar-item__call": "_channel-sidebar-item__call_1e5ys_117",
16
- "channel-sidebar-item--text-only": "_channel-sidebar-item--text-only_1e5ys_127",
17
- "channel-sidebar-item--active": "_channel-sidebar-item--active_1e5ys_130",
18
- "channel-sidebar-item--status-unread": "_channel-sidebar-item--status-unread_1e5ys_139",
19
- "channel-sidebar-item--status-mention": "_channel-sidebar-item--status-mention_1e5ys_139",
20
- "channel-sidebar-item--drafts": "_channel-sidebar-item--drafts_1e5ys_146",
21
- "channel-sidebar-item--muted": "_channel-sidebar-item--muted_1e5ys_162"
2
+ "channel-sidebar-item": "_channel-sidebar-item_goy1t_2",
3
+ "channel-sidebar-item__menu-button": "_channel-sidebar-item__menu-button_goy1t_10",
4
+ "channel-sidebar-item__mention-badge": "_channel-sidebar-item__mention-badge_goy1t_16",
5
+ "channel-sidebar-item__menu-icon": "_channel-sidebar-item__menu-icon_goy1t_19",
6
+ "channel-sidebar-item--active": "_channel-sidebar-item--active_goy1t_33",
7
+ "channel-sidebar-item__active-border": "_channel-sidebar-item__active-border_goy1t_36",
8
+ "channel-sidebar-item__left": "_channel-sidebar-item__left_goy1t_43",
9
+ "channel-sidebar-item__icon-container": "_channel-sidebar-item__icon-container_goy1t_66",
10
+ "channel-sidebar-item__icon-container--dm": "_channel-sidebar-item__icon-container--dm_goy1t_74",
11
+ "channel-sidebar-item__group-icon": "_channel-sidebar-item__group-icon_goy1t_79",
12
+ "channel-sidebar-item__content": "_channel-sidebar-item__content_goy1t_95",
13
+ "channel-sidebar-item__name": "_channel-sidebar-item__name_goy1t_103",
14
+ "channel-sidebar-item__status-hint": "_channel-sidebar-item__status-hint_goy1t_116",
15
+ "channel-sidebar-item__shared-icon": "_channel-sidebar-item__shared-icon_goy1t_127",
16
+ "channel-sidebar-item__custom-status": "_channel-sidebar-item__custom-status_goy1t_135",
17
+ "channel-sidebar-item__right": "_channel-sidebar-item__right_goy1t_143",
18
+ "channel-sidebar-item__call": "_channel-sidebar-item__call_goy1t_152",
19
+ "channel-sidebar-item--text-only": "_channel-sidebar-item--text-only_goy1t_162",
20
+ "channel-sidebar-item--status-unread": "_channel-sidebar-item--status-unread_goy1t_174",
21
+ "channel-sidebar-item--status-mention": "_channel-sidebar-item--status-mention_goy1t_174",
22
+ "channel-sidebar-item--drafts": "_channel-sidebar-item--drafts_goy1t_181",
23
+ "channel-sidebar-item--muted": "_channel-sidebar-item--muted_goy1t_197"
22
24
  };
23
25
  export {
24
26
  e as default
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelSidebarItem.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ChannelSidebarItem.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("react/jsx-runtime"),t=require("react"),v=require("../../hooks/use-controllable.cjs"),O=require("../icon/Icon.cjs"),__E=require("@mattermost/compass-icons/components/check.js"),E=__E?.default??__E,__M=require("@mattermost/compass-icons/components/minus.js"),M=__M?.default??__M,R=require("../../utils/string.cjs"),e=require("./Checkbox.module.scss.cjs"),S={small:"10",medium:"12",large:"16"},y={check:E,minus:M};function z({className:b="",indeterminate:n=!1,size:l="medium",valid:u=!0,children:a,id:x,checked:i,defaultChecked:r,disabled:f,onChange:m,...C}){const d=t.useRef(null),_=t.useId(),h=x??_,[k,p]=v.useControllable(i,r,m),c=n?"minus":k?"check":null;t.useEffect(()=>{const o=d.current;o&&(o.indeterminate=n)},[n]);const j=e.default[`checkbox--size-${R.toKebab(l)}`],I=u?"":e.default["checkbox--invalid"],g=n?e.default["checkbox--indeterminate"]:"",N=[e.default.checkbox,j,I,g,b].filter(Boolean).join(" "),q=S[l];return s.jsxs("label",{className:N,htmlFor:h,children:[s.jsx("input",{ref:d,id:h,type:"checkbox",className:e.default.checkbox__input,checked:i,defaultChecked:r,disabled:f,"aria-invalid":u?void 0:!0,onChange:p,...C}),s.jsx("span",{className:e.default.checkbox__box,children:c!==null&&(()=>{const o=y[c];return s.jsx("span",{className:e.default.checkbox__icon,children:s.jsx(O.default,{glyph:s.jsx(o,{}),size:q})},c)})()}),a!=null&&s.jsx("span",{className:e.default.checkbox__label,children:a})]})}exports.default=z;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("react/jsx-runtime"),t=require("react"),v=require("../../hooks/use-controllable.cjs"),O=require("../icon/Icon.cjs"),__E=require("@mattermost/compass-icons/components/check.js"),E=__E?.default??__E,__M=require("@mattermost/compass-icons/components/minus.js"),M=__M?.default??__M,R=require("../../utils/string.cjs"),e=require("./Checkbox.module.scss.cjs"),S={small:"10",medium:"12",large:"16"},y={check:E,minus:M};function z({className:x="",indeterminate:c=!1,size:l="medium",invalid:a=!1,children:u,id:b,checked:i,defaultChecked:r,disabled:f,onChange:m,...C}){const d=t.useRef(null),_=t.useId(),h=b??_,[k,p]=v.useControllable(i,r,m),n=c?"minus":k?"check":null;t.useEffect(()=>{const o=d.current;o&&(o.indeterminate=c)},[c]);const j=e.default[`checkbox--size-${R.toKebab(l)}`],I=a?e.default["checkbox--invalid"]:"",g=c?e.default["checkbox--indeterminate"]:"",N=[e.default.checkbox,j,I,g,x].filter(Boolean).join(" "),q=S[l];return s.jsxs("label",{className:N,htmlFor:h,children:[s.jsx("input",{ref:d,id:h,type:"checkbox",className:e.default.checkbox__input,checked:i,defaultChecked:r,disabled:f,"aria-invalid":a?!0:void 0,onChange:p,...C,...c?{"aria-checked":"mixed"}:{}}),s.jsx("span",{className:e.default.checkbox__box,children:n!==null&&(()=>{const o=y[n];return s.jsx("span",{className:e.default.checkbox__icon,children:s.jsx(O.default,{glyph:s.jsx(o,{}),size:q})},n)})()}),u!=null&&s.jsx("span",{className:e.default.checkbox__label,children:u})]})}exports.default=z;
2
2
  //# sourceMappingURL=Checkbox.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.cjs","sources":["../../../src/components/checkbox/Checkbox.tsx"],"sourcesContent":["import type { InputHTMLAttributes } from 'react';\nimport { useRef, useEffect, useId } from 'react';\nimport { useControllable } from '@/hooks/use-controllable';\nimport Icon from '@/components/icon/Icon';\nimport type { IconSize } from '@/components/icon/Icon';\nimport type { ElementType } from 'react';\nimport CheckIcon from '@mattermost/compass-icons/components/check';\nimport MinusIcon from '@mattermost/compass-icons/components/minus';\nimport { toKebab } from '@/utils/string';\nimport styles from './Checkbox.module.scss';\n\nexport type CheckboxSize = 'small' | 'medium' | 'large';\n\nexport interface CheckboxProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'type'\n> {\n /** Optional CSS class name. */\n className?: string;\n /** When true, shows indeterminate (minus) state. Syncs to native input.indeterminate. */\n indeterminate?: boolean;\n /** Size variant. Figma: Small (12px), Medium (16px), Large (20px). Default: Medium. */\n size?: CheckboxSize;\n /** When false, uses error/destructive styling (red fill when checked). Default: true. */\n valid?: boolean;\n /** Label content. Rendered next to the checkbox. */\n children?: React.ReactNode;\n}\n\n/** Icon size from design system scale for each checkbox size (fits inside box). */\nconst CHECKBOX_ICON_SIZE: Record<CheckboxSize, IconSize> = {\n small: '10',\n medium: '12',\n large: '16',\n};\n\n/** Compass icon component per checked/indeterminate state. */\nconst ICON_COMPONENT: Record<'check' | 'minus', ElementType> = {\n check: CheckIcon,\n minus: MinusIcon,\n};\n\n/**\n * A Checkbox lets people pick any number of options from a set, or toggle a single setting\n * on or off. Each box represents one independent choice — pick none, some, or all.\n */\nexport default function Checkbox({\n className = '',\n indeterminate = false,\n size = 'medium',\n valid = true,\n children,\n id: idProp,\n checked,\n defaultChecked,\n disabled,\n onChange,\n ...rest\n}: CheckboxProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const [resolvedChecked, handleChange] = useControllable(\n checked,\n defaultChecked,\n onChange,\n );\n\n const showingIcon = indeterminate\n ? 'minus'\n : resolvedChecked\n ? 'check'\n : null;\n\n useEffect(() => {\n const input = inputRef.current;\n if (input) input.indeterminate = indeterminate;\n }, [indeterminate]);\n\n const sizeClass = styles[`checkbox--size-${toKebab(size)}`];\n const invalidClass = valid ? '' : styles['checkbox--invalid'];\n const indeterminateClass = indeterminate\n ? styles['checkbox--indeterminate']\n : '';\n\n const rootClass = [\n styles.checkbox,\n sizeClass,\n invalidClass,\n indeterminateClass,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const iconSize = CHECKBOX_ICON_SIZE[size];\n\n return (\n <label className={rootClass} htmlFor={id}>\n <input\n ref={inputRef}\n id={id}\n type=\"checkbox\"\n className={styles['checkbox__input']}\n checked={checked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n aria-invalid={valid ? undefined : true}\n onChange={handleChange}\n {...rest}\n />\n <span className={styles['checkbox__box']}>\n {showingIcon !== null &&\n (() => {\n const IconComponent = ICON_COMPONENT[showingIcon];\n return (\n <span key={showingIcon} className={styles['checkbox__icon']}>\n <Icon glyph={<IconComponent />} size={iconSize} />\n </span>\n );\n })()}\n </span>\n {children != null && (\n <span className={styles['checkbox__label']}>{children}</span>\n )}\n </label>\n );\n}\n"],"names":["CHECKBOX_ICON_SIZE","ICON_COMPONENT","CheckIcon","MinusIcon","Checkbox","className","indeterminate","size","valid","children","idProp","checked","defaultChecked","disabled","onChange","rest","inputRef","useRef","generatedId","useId","id","resolvedChecked","handleChange","useControllable","showingIcon","useEffect","input","sizeClass","styles","toKebab","invalidClass","indeterminateClass","rootClass","iconSize","jsxs","jsx","IconComponent","Icon"],"mappings":"2aA8BMA,EAAqD,CACzD,MAAO,KACP,OAAQ,KACR,MAAO,IACT,EAGMC,EAAyD,CAC7D,MAAOC,EACP,MAAOC,CACT,EAMA,SAAwBC,EAAS,CAC/B,UAAAC,EAAY,GACZ,cAAAC,EAAgB,GAChB,KAAAC,EAAO,SACP,MAAAC,EAAQ,GACR,SAAAC,EACA,GAAIC,EACJ,QAAAC,EACA,eAAAC,EACA,SAAAC,EACA,SAAAC,EACA,GAAGC,CACL,EAAkB,CAChB,MAAMC,EAAWC,EAAAA,OAAyB,IAAI,EACxCC,EAAcC,EAAAA,MAAA,EACdC,EAAKV,GAAUQ,EACf,CAACG,EAAiBC,CAAY,EAAIC,EAAAA,gBACtCZ,EACAC,EACAE,CAAA,EAGIU,EAAclB,EAChB,QACAe,EACE,QACA,KAENI,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAQV,EAAS,QACnBU,MAAa,cAAgBpB,EACnC,EAAG,CAACA,CAAa,CAAC,EAElB,MAAMqB,EAAYC,EAAAA,QAAO,kBAAkBC,EAAAA,QAAQtB,CAAI,CAAC,EAAE,EACpDuB,EAAetB,EAAQ,GAAKoB,EAAAA,QAAO,mBAAmB,EACtDG,EAAqBzB,EACvBsB,UAAO,yBAAyB,EAChC,GAEEI,EAAY,CAChBJ,EAAAA,QAAO,SACPD,EACAG,EACAC,EACA1B,CAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,EAEL4B,EAAWjC,EAAmBO,CAAI,EAExC,OACE2B,EAAAA,KAAC,QAAA,CAAM,UAAWF,EAAW,QAASZ,EACpC,SAAA,CAAAe,EAAAA,IAAC,QAAA,CACC,IAAKnB,EACL,GAAAI,EACA,KAAK,WACL,UAAWQ,EAAAA,QAAO,gBAClB,QAAAjB,EACA,eAAAC,EACA,SAAAC,EACA,eAAcL,EAAQ,OAAY,GAClC,SAAUc,EACT,GAAGP,CAAA,CAAA,EAENoB,MAAC,QAAK,UAAWP,EAAAA,QAAO,cACrB,SAAAJ,IAAgB,OACd,IAAM,CACL,MAAMY,EAAgBnC,EAAeuB,CAAW,EAChD,OACEW,EAAAA,IAAC,OAAA,CAAuB,UAAWP,EAAAA,QAAO,eACxC,SAAAO,MAACE,EAAAA,QAAA,CAAK,YAAQD,EAAA,CAAA,CAAc,EAAI,KAAMH,CAAA,CAAU,GADvCT,CAEX,CAEJ,IAAG,CACP,EACCf,GAAY,MACX0B,EAAAA,IAAC,OAAA,CAAK,UAAWP,EAAAA,QAAO,gBAAqB,SAAAnB,CAAA,CAAS,CAAA,EAE1D,CAEJ"}
1
+ {"version":3,"file":"Checkbox.cjs","sources":["../../../src/components/checkbox/Checkbox.tsx"],"sourcesContent":["import type { InputHTMLAttributes } from 'react';\nimport { useRef, useEffect, useId } from 'react';\nimport { useControllable } from '@/hooks/use-controllable';\nimport Icon from '@/components/icon/Icon';\nimport type { IconSize } from '@/components/icon/Icon';\nimport type { ElementType } from 'react';\nimport CheckIcon from '@mattermost/compass-icons/components/check';\nimport MinusIcon from '@mattermost/compass-icons/components/minus';\nimport { toKebab } from '@/utils/string';\nimport styles from './Checkbox.module.scss';\n\nexport type CheckboxSize = 'small' | 'medium' | 'large';\n\nexport interface CheckboxProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'type'\n> {\n /** Optional CSS class name. */\n className?: string;\n /** When true, shows indeterminate (minus) state. Syncs to native input.indeterminate. */\n indeterminate?: boolean;\n /** Size variant. Figma: Small (12px), Medium (16px), Large (20px). Default: Medium. */\n size?: CheckboxSize;\n /** When true, uses error/destructive styling (red fill when checked). */\n invalid?: boolean;\n /** Label content. Rendered next to the checkbox. */\n children?: React.ReactNode;\n}\n\n/** Icon size from design system scale for each checkbox size (fits inside box). */\nconst CHECKBOX_ICON_SIZE: Record<CheckboxSize, IconSize> = {\n small: '10',\n medium: '12',\n large: '16',\n};\n\n/** Compass icon component per checked/indeterminate state. */\nconst ICON_COMPONENT: Record<'check' | 'minus', ElementType> = {\n check: CheckIcon,\n minus: MinusIcon,\n};\n\n/**\n * A Checkbox lets people pick any number of options from a set, or toggle a single setting\n * on or off. Each box represents one independent choice — pick none, some, or all.\n */\nexport default function Checkbox({\n className = '',\n indeterminate = false,\n size = 'medium',\n invalid = false,\n children,\n id: idProp,\n checked,\n defaultChecked,\n disabled,\n onChange,\n ...rest\n}: CheckboxProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const [resolvedChecked, handleChange] = useControllable(\n checked,\n defaultChecked,\n onChange,\n );\n\n const showingIcon = indeterminate\n ? 'minus'\n : resolvedChecked\n ? 'check'\n : null;\n\n useEffect(() => {\n const input = inputRef.current;\n if (input) input.indeterminate = indeterminate;\n }, [indeterminate]);\n\n const sizeClass = styles[`checkbox--size-${toKebab(size)}`];\n const invalidClass = invalid ? styles['checkbox--invalid'] : '';\n const indeterminateClass = indeterminate\n ? styles['checkbox--indeterminate']\n : '';\n\n const rootClass = [\n styles.checkbox,\n sizeClass,\n invalidClass,\n indeterminateClass,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const iconSize = CHECKBOX_ICON_SIZE[size];\n\n return (\n <label className={rootClass} htmlFor={id}>\n <input\n ref={inputRef}\n id={id}\n type=\"checkbox\"\n className={styles['checkbox__input']}\n checked={checked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n aria-invalid={invalid ? true : undefined}\n onChange={handleChange}\n {...rest}\n {...(indeterminate ? { 'aria-checked': 'mixed' as const } : {})}\n />\n <span className={styles['checkbox__box']}>\n {showingIcon !== null &&\n (() => {\n const IconComponent = ICON_COMPONENT[showingIcon];\n return (\n <span key={showingIcon} className={styles['checkbox__icon']}>\n <Icon glyph={<IconComponent />} size={iconSize} />\n </span>\n );\n })()}\n </span>\n {children != null && (\n <span className={styles['checkbox__label']}>{children}</span>\n )}\n </label>\n );\n}\n"],"names":["CHECKBOX_ICON_SIZE","ICON_COMPONENT","CheckIcon","MinusIcon","Checkbox","className","indeterminate","size","invalid","children","idProp","checked","defaultChecked","disabled","onChange","rest","inputRef","useRef","generatedId","useId","id","resolvedChecked","handleChange","useControllable","showingIcon","useEffect","input","sizeClass","styles","toKebab","invalidClass","indeterminateClass","rootClass","iconSize","jsxs","jsx","IconComponent","Icon"],"mappings":"2aA8BMA,EAAqD,CACzD,MAAO,KACP,OAAQ,KACR,MAAO,IACT,EAGMC,EAAyD,CAC7D,MAAOC,EACP,MAAOC,CACT,EAMA,SAAwBC,EAAS,CAC/B,UAAAC,EAAY,GACZ,cAAAC,EAAgB,GAChB,KAAAC,EAAO,SACP,QAAAC,EAAU,GACV,SAAAC,EACA,GAAIC,EACJ,QAAAC,EACA,eAAAC,EACA,SAAAC,EACA,SAAAC,EACA,GAAGC,CACL,EAAkB,CAChB,MAAMC,EAAWC,EAAAA,OAAyB,IAAI,EACxCC,EAAcC,EAAAA,MAAA,EACdC,EAAKV,GAAUQ,EACf,CAACG,EAAiBC,CAAY,EAAIC,EAAAA,gBACtCZ,EACAC,EACAE,CAAA,EAGIU,EAAclB,EAChB,QACAe,EACE,QACA,KAENI,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAQV,EAAS,QACnBU,MAAa,cAAgBpB,EACnC,EAAG,CAACA,CAAa,CAAC,EAElB,MAAMqB,EAAYC,EAAAA,QAAO,kBAAkBC,EAAAA,QAAQtB,CAAI,CAAC,EAAE,EACpDuB,EAAetB,EAAUoB,UAAO,mBAAmB,EAAI,GACvDG,EAAqBzB,EACvBsB,UAAO,yBAAyB,EAChC,GAEEI,EAAY,CAChBJ,EAAAA,QAAO,SACPD,EACAG,EACAC,EACA1B,CAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,EAEL4B,EAAWjC,EAAmBO,CAAI,EAExC,OACE2B,EAAAA,KAAC,QAAA,CAAM,UAAWF,EAAW,QAASZ,EACpC,SAAA,CAAAe,EAAAA,IAAC,QAAA,CACC,IAAKnB,EACL,GAAAI,EACA,KAAK,WACL,UAAWQ,EAAAA,QAAO,gBAClB,QAAAjB,EACA,eAAAC,EACA,SAAAC,EACA,eAAcL,EAAU,GAAO,OAC/B,SAAUc,EACT,GAAGP,EACH,GAAIT,EAAgB,CAAE,eAAgB,SAAqB,CAAA,CAAC,CAAA,EAE/D6B,MAAC,QAAK,UAAWP,EAAAA,QAAO,cACrB,SAAAJ,IAAgB,OACd,IAAM,CACL,MAAMY,EAAgBnC,EAAeuB,CAAW,EAChD,OACEW,EAAAA,IAAC,OAAA,CAAuB,UAAWP,EAAAA,QAAO,eACxC,SAAAO,MAACE,EAAAA,QAAA,CAAK,YAAQD,EAAA,CAAA,CAAc,EAAI,KAAMH,CAAA,CAAU,GADvCT,CAEX,CAEJ,IAAG,CACP,EACCf,GAAY,MACX0B,EAAAA,IAAC,OAAA,CAAK,UAAWP,EAAAA,QAAO,gBAAqB,SAAAnB,CAAA,CAAS,CAAA,EAE1D,CAEJ"}
@@ -7,8 +7,8 @@ export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement
7
7
  indeterminate?: boolean;
8
8
  /** Size variant. Figma: Small (12px), Medium (16px), Large (20px). Default: Medium. */
9
9
  size?: CheckboxSize;
10
- /** When false, uses error/destructive styling (red fill when checked). Default: true. */
11
- valid?: boolean;
10
+ /** When true, uses error/destructive styling (red fill when checked). */
11
+ invalid?: boolean;
12
12
  /** Label content. Rendered next to the checkbox. */
13
13
  children?: React.ReactNode;
14
14
  }
@@ -16,5 +16,5 @@ export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement
16
16
  * A Checkbox lets people pick any number of options from a set, or toggle a single setting
17
17
  * on or off. Each box represents one independent choice — pick none, some, or all.
18
18
  */
19
- export default function Checkbox({ className, indeterminate, size, valid, children, id: idProp, checked, defaultChecked, disabled, onChange, ...rest }: CheckboxProps): import("react/jsx-runtime").JSX.Element;
19
+ export default function Checkbox({ className, indeterminate, size, invalid, children, id: idProp, checked, defaultChecked, disabled, onChange, ...rest }: CheckboxProps): import("react/jsx-runtime").JSX.Element;
20
20
  //# sourceMappingURL=Checkbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAWjD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAExD,MAAM,WAAW,aAAc,SAAQ,IAAI,CACzC,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,GAAG,MAAM,CAChB;IACC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yFAAyF;IACzF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uFAAuF;IACvF,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,yFAAyF;IACzF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAeD;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,SAAc,EACd,aAAqB,EACrB,IAAe,EACf,KAAY,EACZ,QAAQ,EACR,EAAE,EAAE,MAAM,EACV,OAAO,EACP,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,aAAa,2CAqEf"}
1
+ {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAWjD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAExD,MAAM,WAAW,aAAc,SAAQ,IAAI,CACzC,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,GAAG,MAAM,CAChB;IACC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yFAAyF;IACzF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uFAAuF;IACvF,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAeD;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,SAAc,EACd,aAAqB,EACrB,IAAe,EACf,OAAe,EACf,QAAQ,EACR,EAAE,EAAE,MAAM,EACV,OAAO,EACP,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,aAAa,2CAsEf"}
@@ -16,33 +16,33 @@ const S = {
16
16
  };
17
17
  function A({
18
18
  className: h = "",
19
- indeterminate: n = !1,
20
- size: t = "medium",
21
- valid: l = !0,
19
+ indeterminate: c = !1,
20
+ size: l = "medium",
21
+ invalid: t = !1,
22
22
  children: i,
23
23
  id: p,
24
- checked: r,
25
- defaultChecked: a,
24
+ checked: a,
25
+ defaultChecked: r,
26
26
  disabled: f,
27
27
  onChange: b,
28
- ...C
28
+ ...x
29
29
  }) {
30
- const m = E(null), x = j(), u = p ?? x, [d, k] = z(
31
- r,
30
+ const m = E(null), C = j(), u = p ?? C, [d, k] = z(
32
31
  a,
32
+ r,
33
33
  b
34
- ), c = n ? "minus" : d ? "check" : null;
34
+ ), n = c ? "minus" : d ? "check" : null;
35
35
  y(() => {
36
36
  const s = m.current;
37
- s && (s.indeterminate = n);
38
- }, [n]);
39
- const _ = o[`checkbox--size-${R(t)}`], I = l ? "" : o["checkbox--invalid"], N = n ? o["checkbox--indeterminate"] : "", g = [
37
+ s && (s.indeterminate = c);
38
+ }, [c]);
39
+ const _ = o[`checkbox--size-${R(l)}`], I = t ? o["checkbox--invalid"] : "", N = c ? o["checkbox--indeterminate"] : "", g = [
40
40
  o.checkbox,
41
41
  _,
42
42
  I,
43
43
  N,
44
44
  h
45
- ].filter(Boolean).join(" "), O = S[t];
45
+ ].filter(Boolean).join(" "), O = S[l];
46
46
  return /* @__PURE__ */ v("label", { className: g, htmlFor: u, children: [
47
47
  /* @__PURE__ */ e(
48
48
  "input",
@@ -51,17 +51,18 @@ function A({
51
51
  id: u,
52
52
  type: "checkbox",
53
53
  className: o.checkbox__input,
54
- checked: r,
55
- defaultChecked: a,
54
+ checked: a,
55
+ defaultChecked: r,
56
56
  disabled: f,
57
- "aria-invalid": l ? void 0 : !0,
57
+ "aria-invalid": t ? !0 : void 0,
58
58
  onChange: k,
59
- ...C
59
+ ...x,
60
+ ...c ? { "aria-checked": "mixed" } : {}
60
61
  }
61
62
  ),
62
- /* @__PURE__ */ e("span", { className: o.checkbox__box, children: c !== null && (() => {
63
- const s = w[c];
64
- return /* @__PURE__ */ e("span", { className: o.checkbox__icon, children: /* @__PURE__ */ e(B, { glyph: /* @__PURE__ */ e(s, {}), size: O }) }, c);
63
+ /* @__PURE__ */ e("span", { className: o.checkbox__box, children: n !== null && (() => {
64
+ const s = w[n];
65
+ return /* @__PURE__ */ e("span", { className: o.checkbox__icon, children: /* @__PURE__ */ e(B, { glyph: /* @__PURE__ */ e(s, {}), size: O }) }, n);
65
66
  })() }),
66
67
  i != null && /* @__PURE__ */ e("span", { className: o.checkbox__label, children: i })
67
68
  ] });
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sources":["../../../src/components/checkbox/Checkbox.tsx"],"sourcesContent":["import type { InputHTMLAttributes } from 'react';\nimport { useRef, useEffect, useId } from 'react';\nimport { useControllable } from '@/hooks/use-controllable';\nimport Icon from '@/components/icon/Icon';\nimport type { IconSize } from '@/components/icon/Icon';\nimport type { ElementType } from 'react';\nimport CheckIcon from '@mattermost/compass-icons/components/check';\nimport MinusIcon from '@mattermost/compass-icons/components/minus';\nimport { toKebab } from '@/utils/string';\nimport styles from './Checkbox.module.scss';\n\nexport type CheckboxSize = 'small' | 'medium' | 'large';\n\nexport interface CheckboxProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'type'\n> {\n /** Optional CSS class name. */\n className?: string;\n /** When true, shows indeterminate (minus) state. Syncs to native input.indeterminate. */\n indeterminate?: boolean;\n /** Size variant. Figma: Small (12px), Medium (16px), Large (20px). Default: Medium. */\n size?: CheckboxSize;\n /** When false, uses error/destructive styling (red fill when checked). Default: true. */\n valid?: boolean;\n /** Label content. Rendered next to the checkbox. */\n children?: React.ReactNode;\n}\n\n/** Icon size from design system scale for each checkbox size (fits inside box). */\nconst CHECKBOX_ICON_SIZE: Record<CheckboxSize, IconSize> = {\n small: '10',\n medium: '12',\n large: '16',\n};\n\n/** Compass icon component per checked/indeterminate state. */\nconst ICON_COMPONENT: Record<'check' | 'minus', ElementType> = {\n check: CheckIcon,\n minus: MinusIcon,\n};\n\n/**\n * A Checkbox lets people pick any number of options from a set, or toggle a single setting\n * on or off. Each box represents one independent choice — pick none, some, or all.\n */\nexport default function Checkbox({\n className = '',\n indeterminate = false,\n size = 'medium',\n valid = true,\n children,\n id: idProp,\n checked,\n defaultChecked,\n disabled,\n onChange,\n ...rest\n}: CheckboxProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const [resolvedChecked, handleChange] = useControllable(\n checked,\n defaultChecked,\n onChange,\n );\n\n const showingIcon = indeterminate\n ? 'minus'\n : resolvedChecked\n ? 'check'\n : null;\n\n useEffect(() => {\n const input = inputRef.current;\n if (input) input.indeterminate = indeterminate;\n }, [indeterminate]);\n\n const sizeClass = styles[`checkbox--size-${toKebab(size)}`];\n const invalidClass = valid ? '' : styles['checkbox--invalid'];\n const indeterminateClass = indeterminate\n ? styles['checkbox--indeterminate']\n : '';\n\n const rootClass = [\n styles.checkbox,\n sizeClass,\n invalidClass,\n indeterminateClass,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const iconSize = CHECKBOX_ICON_SIZE[size];\n\n return (\n <label className={rootClass} htmlFor={id}>\n <input\n ref={inputRef}\n id={id}\n type=\"checkbox\"\n className={styles['checkbox__input']}\n checked={checked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n aria-invalid={valid ? undefined : true}\n onChange={handleChange}\n {...rest}\n />\n <span className={styles['checkbox__box']}>\n {showingIcon !== null &&\n (() => {\n const IconComponent = ICON_COMPONENT[showingIcon];\n return (\n <span key={showingIcon} className={styles['checkbox__icon']}>\n <Icon glyph={<IconComponent />} size={iconSize} />\n </span>\n );\n })()}\n </span>\n {children != null && (\n <span className={styles['checkbox__label']}>{children}</span>\n )}\n </label>\n );\n}\n"],"names":["CHECKBOX_ICON_SIZE","ICON_COMPONENT","CheckIcon","MinusIcon","Checkbox","className","indeterminate","size","valid","children","idProp","checked","defaultChecked","disabled","onChange","rest","inputRef","useRef","generatedId","useId","id","resolvedChecked","handleChange","useControllable","showingIcon","useEffect","input","sizeClass","styles","toKebab","invalidClass","indeterminateClass","rootClass","iconSize","jsxs","jsx","IconComponent","Icon"],"mappings":";;;;;;;;AA8BA,MAAMA,IAAqD;AAAA,EACzD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT,GAGMC,IAAyD;AAAA,EAC7D,OAAOC;AAAA,EACP,OAAOC;AACT;AAMA,SAAwBC,EAAS;AAAA,EAC/B,WAAAC,IAAY;AAAA,EACZ,eAAAC,IAAgB;AAAA,EAChB,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,UAAAC;AAAA,EACA,IAAIC;AAAA,EACJ,SAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GAAkB;AAChB,QAAMC,IAAWC,EAAyB,IAAI,GACxCC,IAAcC,EAAA,GACdC,IAAKV,KAAUQ,GACf,CAACG,GAAiBC,CAAY,IAAIC;AAAA,IACtCZ;AAAA,IACAC;AAAA,IACAE;AAAA,EAAA,GAGIU,IAAclB,IAChB,UACAe,IACE,UACA;AAEN,EAAAI,EAAU,MAAM;AACd,UAAMC,IAAQV,EAAS;AACvB,IAAIU,QAAa,gBAAgBpB;AAAA,EACnC,GAAG,CAACA,CAAa,CAAC;AAElB,QAAMqB,IAAYC,EAAO,kBAAkBC,EAAQtB,CAAI,CAAC,EAAE,GACpDuB,IAAetB,IAAQ,KAAKoB,EAAO,mBAAmB,GACtDG,IAAqBzB,IACvBsB,EAAO,yBAAyB,IAChC,IAEEI,IAAY;AAAA,IAChBJ,EAAO;AAAA,IACPD;AAAA,IACAG;AAAA,IACAC;AAAA,IACA1B;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,GAEL4B,IAAWjC,EAAmBO,CAAI;AAExC,SACE,gBAAA2B,EAAC,SAAA,EAAM,WAAWF,GAAW,SAASZ,GACpC,UAAA;AAAA,IAAA,gBAAAe;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAKnB;AAAA,QACL,IAAAI;AAAA,QACA,MAAK;AAAA,QACL,WAAWQ,EAAO;AAAA,QAClB,SAAAjB;AAAA,QACA,gBAAAC;AAAA,QACA,UAAAC;AAAA,QACA,gBAAcL,IAAQ,SAAY;AAAA,QAClC,UAAUc;AAAA,QACT,GAAGP;AAAA,MAAA;AAAA,IAAA;AAAA,IAEN,gBAAAoB,EAAC,UAAK,WAAWP,EAAO,eACrB,UAAAJ,MAAgB,SACd,MAAM;AACL,YAAMY,IAAgBnC,EAAeuB,CAAW;AAChD,aACE,gBAAAW,EAAC,QAAA,EAAuB,WAAWP,EAAO,gBACxC,UAAA,gBAAAO,EAACE,GAAA,EAAK,yBAAQD,GAAA,CAAA,CAAc,GAAI,MAAMH,EAAA,CAAU,KADvCT,CAEX;AAAA,IAEJ,KAAG,CACP;AAAA,IACCf,KAAY,QACX,gBAAA0B,EAAC,QAAA,EAAK,WAAWP,EAAO,iBAAqB,UAAAnB,EAAA,CAAS;AAAA,EAAA,GAE1D;AAEJ;"}
1
+ {"version":3,"file":"Checkbox.js","sources":["../../../src/components/checkbox/Checkbox.tsx"],"sourcesContent":["import type { InputHTMLAttributes } from 'react';\nimport { useRef, useEffect, useId } from 'react';\nimport { useControllable } from '@/hooks/use-controllable';\nimport Icon from '@/components/icon/Icon';\nimport type { IconSize } from '@/components/icon/Icon';\nimport type { ElementType } from 'react';\nimport CheckIcon from '@mattermost/compass-icons/components/check';\nimport MinusIcon from '@mattermost/compass-icons/components/minus';\nimport { toKebab } from '@/utils/string';\nimport styles from './Checkbox.module.scss';\n\nexport type CheckboxSize = 'small' | 'medium' | 'large';\n\nexport interface CheckboxProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'type'\n> {\n /** Optional CSS class name. */\n className?: string;\n /** When true, shows indeterminate (minus) state. Syncs to native input.indeterminate. */\n indeterminate?: boolean;\n /** Size variant. Figma: Small (12px), Medium (16px), Large (20px). Default: Medium. */\n size?: CheckboxSize;\n /** When true, uses error/destructive styling (red fill when checked). */\n invalid?: boolean;\n /** Label content. Rendered next to the checkbox. */\n children?: React.ReactNode;\n}\n\n/** Icon size from design system scale for each checkbox size (fits inside box). */\nconst CHECKBOX_ICON_SIZE: Record<CheckboxSize, IconSize> = {\n small: '10',\n medium: '12',\n large: '16',\n};\n\n/** Compass icon component per checked/indeterminate state. */\nconst ICON_COMPONENT: Record<'check' | 'minus', ElementType> = {\n check: CheckIcon,\n minus: MinusIcon,\n};\n\n/**\n * A Checkbox lets people pick any number of options from a set, or toggle a single setting\n * on or off. Each box represents one independent choice — pick none, some, or all.\n */\nexport default function Checkbox({\n className = '',\n indeterminate = false,\n size = 'medium',\n invalid = false,\n children,\n id: idProp,\n checked,\n defaultChecked,\n disabled,\n onChange,\n ...rest\n}: CheckboxProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const [resolvedChecked, handleChange] = useControllable(\n checked,\n defaultChecked,\n onChange,\n );\n\n const showingIcon = indeterminate\n ? 'minus'\n : resolvedChecked\n ? 'check'\n : null;\n\n useEffect(() => {\n const input = inputRef.current;\n if (input) input.indeterminate = indeterminate;\n }, [indeterminate]);\n\n const sizeClass = styles[`checkbox--size-${toKebab(size)}`];\n const invalidClass = invalid ? styles['checkbox--invalid'] : '';\n const indeterminateClass = indeterminate\n ? styles['checkbox--indeterminate']\n : '';\n\n const rootClass = [\n styles.checkbox,\n sizeClass,\n invalidClass,\n indeterminateClass,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const iconSize = CHECKBOX_ICON_SIZE[size];\n\n return (\n <label className={rootClass} htmlFor={id}>\n <input\n ref={inputRef}\n id={id}\n type=\"checkbox\"\n className={styles['checkbox__input']}\n checked={checked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n aria-invalid={invalid ? true : undefined}\n onChange={handleChange}\n {...rest}\n {...(indeterminate ? { 'aria-checked': 'mixed' as const } : {})}\n />\n <span className={styles['checkbox__box']}>\n {showingIcon !== null &&\n (() => {\n const IconComponent = ICON_COMPONENT[showingIcon];\n return (\n <span key={showingIcon} className={styles['checkbox__icon']}>\n <Icon glyph={<IconComponent />} size={iconSize} />\n </span>\n );\n })()}\n </span>\n {children != null && (\n <span className={styles['checkbox__label']}>{children}</span>\n )}\n </label>\n );\n}\n"],"names":["CHECKBOX_ICON_SIZE","ICON_COMPONENT","CheckIcon","MinusIcon","Checkbox","className","indeterminate","size","invalid","children","idProp","checked","defaultChecked","disabled","onChange","rest","inputRef","useRef","generatedId","useId","id","resolvedChecked","handleChange","useControllable","showingIcon","useEffect","input","sizeClass","styles","toKebab","invalidClass","indeterminateClass","rootClass","iconSize","jsxs","jsx","IconComponent","Icon"],"mappings":";;;;;;;;AA8BA,MAAMA,IAAqD;AAAA,EACzD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT,GAGMC,IAAyD;AAAA,EAC7D,OAAOC;AAAA,EACP,OAAOC;AACT;AAMA,SAAwBC,EAAS;AAAA,EAC/B,WAAAC,IAAY;AAAA,EACZ,eAAAC,IAAgB;AAAA,EAChB,MAAAC,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,UAAAC;AAAA,EACA,IAAIC;AAAA,EACJ,SAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GAAkB;AAChB,QAAMC,IAAWC,EAAyB,IAAI,GACxCC,IAAcC,EAAA,GACdC,IAAKV,KAAUQ,GACf,CAACG,GAAiBC,CAAY,IAAIC;AAAA,IACtCZ;AAAA,IACAC;AAAA,IACAE;AAAA,EAAA,GAGIU,IAAclB,IAChB,UACAe,IACE,UACA;AAEN,EAAAI,EAAU,MAAM;AACd,UAAMC,IAAQV,EAAS;AACvB,IAAIU,QAAa,gBAAgBpB;AAAA,EACnC,GAAG,CAACA,CAAa,CAAC;AAElB,QAAMqB,IAAYC,EAAO,kBAAkBC,EAAQtB,CAAI,CAAC,EAAE,GACpDuB,IAAetB,IAAUoB,EAAO,mBAAmB,IAAI,IACvDG,IAAqBzB,IACvBsB,EAAO,yBAAyB,IAChC,IAEEI,IAAY;AAAA,IAChBJ,EAAO;AAAA,IACPD;AAAA,IACAG;AAAA,IACAC;AAAA,IACA1B;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,GAEL4B,IAAWjC,EAAmBO,CAAI;AAExC,SACE,gBAAA2B,EAAC,SAAA,EAAM,WAAWF,GAAW,SAASZ,GACpC,UAAA;AAAA,IAAA,gBAAAe;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAKnB;AAAA,QACL,IAAAI;AAAA,QACA,MAAK;AAAA,QACL,WAAWQ,EAAO;AAAA,QAClB,SAAAjB;AAAA,QACA,gBAAAC;AAAA,QACA,UAAAC;AAAA,QACA,gBAAcL,IAAU,KAAO;AAAA,QAC/B,UAAUc;AAAA,QACT,GAAGP;AAAA,QACH,GAAIT,IAAgB,EAAE,gBAAgB,YAAqB,CAAA;AAAA,MAAC;AAAA,IAAA;AAAA,IAE/D,gBAAA6B,EAAC,UAAK,WAAWP,EAAO,eACrB,UAAAJ,MAAgB,SACd,MAAM;AACL,YAAMY,IAAgBnC,EAAeuB,CAAW;AAChD,aACE,gBAAAW,EAAC,QAAA,EAAuB,WAAWP,EAAO,gBACxC,UAAA,gBAAAO,EAACE,GAAA,EAAK,yBAAQD,GAAA,CAAA,CAAc,GAAI,MAAMH,EAAA,CAAU,KADvCT,CAEX;AAAA,IAEJ,KAAG,CACP;AAAA,IACCf,KAAY,QACX,gBAAA0B,EAAC,QAAA,EAAK,WAAWP,EAAO,iBAAqB,UAAAnB,EAAA,CAAS;AAAA,EAAA,GAE1D;AAEJ;"}