@mattermost/compass-ui 0.1.0-alpha.3 → 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 (290) 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/admin-panel/AdminPanel.d.ts +1 -1
  13. package/dist/components/attachment-card/AttachmentCard.cjs +1 -1
  14. package/dist/components/attachment-card/AttachmentCard.cjs.map +1 -1
  15. package/dist/components/attachment-card/AttachmentCard.d.ts +3 -1
  16. package/dist/components/attachment-card/AttachmentCard.d.ts.map +1 -1
  17. package/dist/components/attachment-card/AttachmentCard.js +92 -82
  18. package/dist/components/attachment-card/AttachmentCard.js.map +1 -1
  19. package/dist/components/attachment-card/AttachmentCard.module.css +1 -1
  20. package/dist/components/attachment-card/AttachmentCard.module.scss.cjs +1 -1
  21. package/dist/components/attachment-card/AttachmentCard.module.scss.js +19 -18
  22. package/dist/components/attachment-card/AttachmentCard.module.scss.js.map +1 -1
  23. package/dist/components/button/Button.module.css +1 -1
  24. package/dist/components/button/Button.module.scss.cjs +1 -1
  25. package/dist/components/button/Button.module.scss.js +15 -15
  26. package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs +1 -1
  27. package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs.map +1 -1
  28. package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts +4 -1
  29. package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts.map +1 -1
  30. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js +112 -92
  31. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js.map +1 -1
  32. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.css +1 -1
  33. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.cjs +1 -1
  34. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.js +22 -20
  35. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.js.map +1 -1
  36. package/dist/components/channels-sidebar/channelsSidebarModel.d.ts +1 -1
  37. package/dist/components/checkbox/Checkbox.cjs +1 -1
  38. package/dist/components/checkbox/Checkbox.cjs.map +1 -1
  39. package/dist/components/checkbox/Checkbox.d.ts +3 -3
  40. package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
  41. package/dist/components/checkbox/Checkbox.js +21 -20
  42. package/dist/components/checkbox/Checkbox.js.map +1 -1
  43. package/dist/components/checkbox/Checkbox.module.css +1 -1
  44. package/dist/components/checkbox/Checkbox.module.scss.cjs +1 -1
  45. package/dist/components/checkbox/Checkbox.module.scss.js +7 -7
  46. package/dist/components/chip/Chip.cjs +1 -1
  47. package/dist/components/chip/Chip.cjs.map +1 -1
  48. package/dist/components/chip/Chip.d.ts +3 -5
  49. package/dist/components/chip/Chip.d.ts.map +1 -1
  50. package/dist/components/chip/Chip.js +90 -48
  51. package/dist/components/chip/Chip.js.map +1 -1
  52. package/dist/components/chip/Chip.module.css +1 -1
  53. package/dist/components/chip/Chip.module.scss.cjs +1 -1
  54. package/dist/components/chip/Chip.module.scss.js +9 -9
  55. package/dist/components/chip/ChipGroup.cjs +2 -0
  56. package/dist/components/chip/ChipGroup.cjs.map +1 -0
  57. package/dist/components/chip/ChipGroup.d.ts +16 -0
  58. package/dist/components/chip/ChipGroup.d.ts.map +1 -0
  59. package/dist/components/chip/ChipGroup.js +112 -0
  60. package/dist/components/chip/ChipGroup.js.map +1 -0
  61. package/dist/components/chip/ChipGroup.module.css +1 -0
  62. package/dist/components/chip/ChipGroup.module.scss.cjs +2 -0
  63. package/dist/components/chip/ChipGroup.module.scss.cjs.map +1 -0
  64. package/dist/components/chip/ChipGroup.module.scss.js +7 -0
  65. package/dist/components/chip/ChipGroup.module.scss.js.map +1 -0
  66. package/dist/components/chip/index.cjs +1 -1
  67. package/dist/components/chip/index.d.ts +2 -0
  68. package/dist/components/chip/index.d.ts.map +1 -1
  69. package/dist/components/chip/index.js +4 -2
  70. package/dist/components/chip/index.js.map +1 -1
  71. package/dist/components/combobox/Combobox.cjs +1 -1
  72. package/dist/components/combobox/Combobox.cjs.map +1 -1
  73. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  74. package/dist/components/combobox/Combobox.js +115 -109
  75. package/dist/components/combobox/Combobox.js.map +1 -1
  76. package/dist/components/combobox/Combobox.module.css +1 -1
  77. package/dist/components/combobox/Combobox.module.scss.cjs +1 -1
  78. package/dist/components/combobox/Combobox.module.scss.js +27 -29
  79. package/dist/components/date-range-picker/DateRangePicker.cjs +1 -1
  80. package/dist/components/date-range-picker/DateRangePicker.cjs.map +1 -1
  81. package/dist/components/date-range-picker/DateRangePicker.js +154 -154
  82. package/dist/components/date-range-picker/DateRangePicker.js.map +1 -1
  83. package/dist/components/date-range-picker/DateRangePicker.module.css +1 -1
  84. package/dist/components/date-range-picker/DateRangePicker.module.scss.cjs +1 -1
  85. package/dist/components/date-range-picker/DateRangePicker.module.scss.js +28 -45
  86. package/dist/components/dropdown/Dropdown.cjs +1 -1
  87. package/dist/components/dropdown/Dropdown.cjs.map +1 -1
  88. package/dist/components/dropdown/Dropdown.js +1 -1
  89. package/dist/components/dropdown/Dropdown.js.map +1 -1
  90. package/dist/components/dropdown/Dropdown.module.css +1 -1
  91. package/dist/components/dropdown/Dropdown.module.scss.cjs +1 -1
  92. package/dist/components/dropdown/Dropdown.module.scss.js +15 -16
  93. package/dist/components/empty-state/EmptyState.d.ts +2 -2
  94. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.d.ts +2 -2
  95. package/dist/components/global-banner/GlobalBanner.module.css +1 -1
  96. package/dist/components/global-banner/GlobalBanner.module.scss.cjs +1 -1
  97. package/dist/components/global-banner/GlobalBanner.module.scss.js +10 -10
  98. package/dist/components/icon-button/IconButton.cjs +1 -1
  99. package/dist/components/icon-button/IconButton.cjs.map +1 -1
  100. package/dist/components/icon-button/IconButton.d.ts +1 -1
  101. package/dist/components/icon-button/IconButton.d.ts.map +1 -1
  102. package/dist/components/icon-button/IconButton.js +14 -14
  103. package/dist/components/icon-button/IconButton.js.map +1 -1
  104. package/dist/components/icon-button/IconButton.module.css +1 -1
  105. package/dist/components/icon-button/IconButton.module.scss.cjs +1 -1
  106. package/dist/components/icon-button/IconButton.module.scss.js +15 -15
  107. package/dist/components/image-preview/ImagePreview.cjs +1 -1
  108. package/dist/components/image-preview/ImagePreview.cjs.map +1 -1
  109. package/dist/components/image-preview/ImagePreview.d.ts +2 -1
  110. package/dist/components/image-preview/ImagePreview.d.ts.map +1 -1
  111. package/dist/components/image-preview/ImagePreview.js +70 -52
  112. package/dist/components/image-preview/ImagePreview.js.map +1 -1
  113. package/dist/components/image-preview/ImagePreview.module.css +1 -1
  114. package/dist/components/image-preview/ImagePreview.module.scss.cjs +1 -1
  115. package/dist/components/image-preview/ImagePreview.module.scss.js +15 -15
  116. package/dist/components/menu-item/MenuItem.cjs +1 -1
  117. package/dist/components/menu-item/MenuItem.cjs.map +1 -1
  118. package/dist/components/menu-item/MenuItem.js +11 -11
  119. package/dist/components/menu-item/MenuItem.js.map +1 -1
  120. package/dist/components/menu-item/MenuItem.module.css +1 -1
  121. package/dist/components/menu-item/MenuItem.module.scss.cjs +1 -1
  122. package/dist/components/menu-item/MenuItem.module.scss.js +16 -16
  123. package/dist/components/message/Message.d.ts +1 -1
  124. package/dist/components/message/Message.module.css +1 -1
  125. package/dist/components/message/Message.module.scss.cjs +1 -1
  126. package/dist/components/message/Message.module.scss.js +20 -20
  127. package/dist/components/message-reactions/MessageReactions.module.css +1 -1
  128. package/dist/components/message-reactions/MessageReactions.module.scss.cjs +1 -1
  129. package/dist/components/message-reactions/MessageReactions.module.scss.js +12 -12
  130. package/dist/components/modal/Modal.cjs +1 -1
  131. package/dist/components/modal/Modal.cjs.map +1 -1
  132. package/dist/components/modal/Modal.d.ts +9 -1
  133. package/dist/components/modal/Modal.d.ts.map +1 -1
  134. package/dist/components/modal/Modal.js +30 -20
  135. package/dist/components/modal/Modal.js.map +1 -1
  136. package/dist/components/modal/Modal.module.css +1 -1
  137. package/dist/components/modal/Modal.module.scss.cjs +1 -1
  138. package/dist/components/modal/Modal.module.scss.js +18 -17
  139. package/dist/components/modal/Modal.module.scss.js.map +1 -1
  140. package/dist/components/modal/index.d.ts +1 -1
  141. package/dist/components/modal/index.d.ts.map +1 -1
  142. package/dist/components/more-unreads-banner/MoreUnreadsBanner.module.css +1 -1
  143. package/dist/components/more-unreads-banner/MoreUnreadsBanner.module.scss.cjs +1 -1
  144. package/dist/components/more-unreads-banner/MoreUnreadsBanner.module.scss.js +5 -5
  145. package/dist/components/pagination-dots/PaginationDots.module.css +1 -1
  146. package/dist/components/pagination-dots/PaginationDots.module.scss.cjs +1 -1
  147. package/dist/components/pagination-dots/PaginationDots.module.scss.js +8 -8
  148. package/dist/components/radio/Radio.cjs +1 -1
  149. package/dist/components/radio/Radio.cjs.map +1 -1
  150. package/dist/components/radio/Radio.d.ts +3 -3
  151. package/dist/components/radio/Radio.d.ts.map +1 -1
  152. package/dist/components/radio/Radio.js +11 -11
  153. package/dist/components/radio/Radio.js.map +1 -1
  154. package/dist/components/radio/Radio.module.css +1 -1
  155. package/dist/components/radio/Radio.module.scss.cjs +1 -1
  156. package/dist/components/radio/Radio.module.scss.js +11 -11
  157. package/dist/components/right-sidebar/RightSidebarHeader/RightSidebarHeader.d.ts +1 -1
  158. package/dist/components/search-input/SearchInput.cjs +1 -1
  159. package/dist/components/search-input/SearchInput.cjs.map +1 -1
  160. package/dist/components/search-input/SearchInput.d.ts +2 -0
  161. package/dist/components/search-input/SearchInput.d.ts.map +1 -1
  162. package/dist/components/search-input/SearchInput.js +78 -64
  163. package/dist/components/search-input/SearchInput.js.map +1 -1
  164. package/dist/components/search-input/SearchInput.module.css +1 -1
  165. package/dist/components/search-input/SearchInput.module.scss.cjs +1 -1
  166. package/dist/components/search-input/SearchInput.module.scss.js +16 -23
  167. package/dist/components/search-input/SearchInput.module.scss.js.map +1 -1
  168. package/dist/components/select/Select.cjs +1 -1
  169. package/dist/components/select/Select.cjs.map +1 -1
  170. package/dist/components/select/Select.d.ts.map +1 -1
  171. package/dist/components/select/Select.js +64 -64
  172. package/dist/components/select/Select.js.map +1 -1
  173. package/dist/components/select/Select.module.css +1 -1
  174. package/dist/components/select/Select.module.scss.cjs +1 -1
  175. package/dist/components/select/Select.module.scss.js +24 -26
  176. package/dist/components/switch/Switch.cjs +1 -1
  177. package/dist/components/switch/Switch.cjs.map +1 -1
  178. package/dist/components/switch/Switch.d.ts.map +1 -1
  179. package/dist/components/switch/Switch.js +2 -2
  180. package/dist/components/switch/Switch.js.map +1 -1
  181. package/dist/components/switch/Switch.module.css +1 -1
  182. package/dist/components/switch/Switch.module.scss.cjs +1 -1
  183. package/dist/components/switch/Switch.module.scss.js +15 -15
  184. package/dist/components/tabs/Tabs.cjs +1 -1
  185. package/dist/components/tabs/Tabs.cjs.map +1 -1
  186. package/dist/components/tabs/Tabs.d.ts +4 -0
  187. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  188. package/dist/components/tabs/Tabs.js +47 -31
  189. package/dist/components/tabs/Tabs.js.map +1 -1
  190. package/dist/components/tabs/Tabs.module.css +1 -1
  191. package/dist/components/tabs/Tabs.module.scss.cjs +1 -1
  192. package/dist/components/tabs/Tabs.module.scss.js +8 -7
  193. package/dist/components/tabs/Tabs.module.scss.js.map +1 -1
  194. package/dist/components/tag/Tag.module.css +1 -1
  195. package/dist/components/tag/Tag.module.scss.cjs +1 -1
  196. package/dist/components/tag/Tag.module.scss.js +15 -15
  197. package/dist/components/text-area/TextArea.cjs +1 -1
  198. package/dist/components/text-area/TextArea.cjs.map +1 -1
  199. package/dist/components/text-area/TextArea.d.ts.map +1 -1
  200. package/dist/components/text-area/TextArea.js +57 -56
  201. package/dist/components/text-area/TextArea.js.map +1 -1
  202. package/dist/components/text-area/TextArea.module.css +1 -1
  203. package/dist/components/text-area/TextArea.module.scss.cjs +1 -1
  204. package/dist/components/text-area/TextArea.module.scss.js +12 -17
  205. package/dist/components/text-input/TextInput.cjs +1 -1
  206. package/dist/components/text-input/TextInput.cjs.map +1 -1
  207. package/dist/components/text-input/TextInput.d.ts.map +1 -1
  208. package/dist/components/text-input/TextInput.js +59 -58
  209. package/dist/components/text-input/TextInput.js.map +1 -1
  210. package/dist/components/text-input/TextInput.module.css +1 -1
  211. package/dist/components/text-input/TextInput.module.scss.cjs +1 -1
  212. package/dist/components/text-input/TextInput.module.scss.js +16 -24
  213. package/dist/components/thread-footer/ThreadFooter.cjs +1 -1
  214. package/dist/components/thread-footer/ThreadFooter.cjs.map +1 -1
  215. package/dist/components/thread-footer/ThreadFooter.d.ts +7 -8
  216. package/dist/components/thread-footer/ThreadFooter.d.ts.map +1 -1
  217. package/dist/components/thread-footer/ThreadFooter.js +59 -62
  218. package/dist/components/thread-footer/ThreadFooter.js.map +1 -1
  219. package/dist/components/thread-footer/ThreadFooter.module.css +1 -1
  220. package/dist/components/thread-footer/ThreadFooter.module.scss.cjs +1 -1
  221. package/dist/components/thread-footer/ThreadFooter.module.scss.js +17 -17
  222. package/dist/components/thread-footer/index.d.ts +7 -1
  223. package/dist/components/thread-footer/index.d.ts.map +1 -1
  224. package/dist/components/thread-list-item/ThreadListItem.cjs +1 -1
  225. package/dist/components/thread-list-item/ThreadListItem.cjs.map +1 -1
  226. package/dist/components/thread-list-item/ThreadListItem.d.ts +2 -2
  227. package/dist/components/thread-list-item/ThreadListItem.d.ts.map +1 -1
  228. package/dist/components/thread-list-item/ThreadListItem.js +102 -87
  229. package/dist/components/thread-list-item/ThreadListItem.js.map +1 -1
  230. package/dist/components/thread-list-item/ThreadListItem.module.css +1 -1
  231. package/dist/components/thread-list-item/ThreadListItem.module.scss.cjs +1 -1
  232. package/dist/components/thread-list-item/ThreadListItem.module.scss.js +26 -23
  233. package/dist/components/thread-list-item/ThreadListItem.module.scss.js.map +1 -1
  234. package/dist/components/thread-list-item/index.d.ts +1 -1
  235. package/dist/components/toast/Toast.module.css +1 -1
  236. package/dist/components/toast/Toast.module.scss.cjs +1 -1
  237. package/dist/components/toast/Toast.module.scss.js +6 -6
  238. package/dist/components/tour-point/TourPoint.module.css +1 -1
  239. package/dist/components/tour-point/TourPoint.module.scss.cjs +1 -1
  240. package/dist/components/tour-point/TourPoint.module.scss.js +28 -28
  241. package/dist/hooks/use-anchored-popup-portal.cjs +1 -1
  242. package/dist/hooks/use-anchored-popup-portal.cjs.map +1 -0
  243. package/dist/hooks/use-anchored-popup-portal.d.ts +1 -1
  244. package/dist/hooks/use-anchored-popup-portal.d.ts.map +1 -0
  245. package/dist/hooks/use-anchored-popup-portal.js +1 -1
  246. package/dist/hooks/use-anchored-popup-portal.js.map +1 -0
  247. package/dist/hooks/use-controllable.cjs +1 -1
  248. package/dist/hooks/use-controllable.cjs.map +1 -0
  249. package/dist/hooks/use-controllable.d.ts +1 -1
  250. package/dist/hooks/use-controllable.d.ts.map +1 -0
  251. package/dist/hooks/use-controllable.js +1 -1
  252. package/dist/hooks/{useControllable.cjs.map → use-controllable.js.map} +1 -1
  253. package/dist/hooks/use-exit-animation.cjs +1 -1
  254. package/dist/hooks/use-exit-animation.cjs.map +1 -0
  255. package/dist/hooks/use-exit-animation.d.ts +1 -1
  256. package/dist/hooks/use-exit-animation.d.ts.map +1 -0
  257. package/dist/hooks/use-exit-animation.js +1 -1
  258. package/dist/hooks/use-exit-animation.js.map +1 -0
  259. package/dist/hooks/use-outside-close.cjs +1 -1
  260. package/dist/hooks/use-outside-close.cjs.map +1 -0
  261. package/dist/hooks/use-outside-close.d.ts +1 -1
  262. package/dist/hooks/use-outside-close.d.ts.map +1 -0
  263. package/dist/hooks/use-outside-close.js +1 -1
  264. package/dist/hooks/use-outside-close.js.map +1 -0
  265. package/dist/hooks/use-popover-transition.cjs +1 -1
  266. package/dist/hooks/use-popover-transition.cjs.map +1 -0
  267. package/dist/hooks/use-popover-transition.d.ts +1 -1
  268. package/dist/hooks/use-popover-transition.d.ts.map +1 -0
  269. package/dist/hooks/use-popover-transition.js +1 -1
  270. package/dist/hooks/use-popover-transition.js.map +1 -0
  271. package/dist/index.cjs +1 -1
  272. package/dist/index.css +32 -30
  273. package/dist/index.d.ts +96 -96
  274. package/dist/index.js +156 -154
  275. package/dist/index.js.map +1 -1
  276. package/package.json +12 -12
  277. package/dist/hooks/useAnchoredPopupPortal.cjs.map +0 -1
  278. package/dist/hooks/useAnchoredPopupPortal.d.ts.map +0 -1
  279. package/dist/hooks/useAnchoredPopupPortal.js.map +0 -1
  280. package/dist/hooks/useControllable.d.ts.map +0 -1
  281. package/dist/hooks/useControllable.js.map +0 -1
  282. package/dist/hooks/useExitAnimation.cjs.map +0 -1
  283. package/dist/hooks/useExitAnimation.d.ts.map +0 -1
  284. package/dist/hooks/useExitAnimation.js.map +0 -1
  285. package/dist/hooks/useOutsideClose.cjs.map +0 -1
  286. package/dist/hooks/useOutsideClose.d.ts.map +0 -1
  287. package/dist/hooks/useOutsideClose.js.map +0 -1
  288. package/dist/hooks/usePopoverTransition.cjs.map +0 -1
  289. package/dist/hooks/usePopoverTransition.d.ts.map +0 -1
  290. package/dist/hooks/usePopoverTransition.js.map +0 -1
@@ -1,10 +1,10 @@
1
- import { jsxs as x, jsx as l } from "react/jsx-runtime";
2
- import { forwardRef as Ie, useId as xe, useRef as E, useCallback as y, useState as k, useMemo as q, useEffect as J } from "react";
3
- import __we from "@mattermost/compass-icons/components/chevron-down.js";const we=__we&&__we.default?__we.default:__we;
1
+ import { jsxs as w, jsx as l } from "react/jsx-runtime";
2
+ import { forwardRef as xe, useId as we, useRef as E, useCallback as N, useState as k, useMemo as q, useEffect as J } from "react";
3
+ import __Ie from "@mattermost/compass-icons/components/chevron-down.js";const Ie=__Ie&&__Ie.default?__Ie.default:__Ie;
4
4
  import __ke from "@mattermost/compass-icons/components/check.js";const ke=__ke&&__ke.default?__ke.default:__ke;
5
5
  import W from "../icon/Icon.js";
6
6
  import De, { PopoverMenuScroll as Pe } from "../popover-menu/PopoverMenu.js";
7
- import a from "../menu-item/MenuItem.module.scss.js";
7
+ import i from "../menu-item/MenuItem.module.scss.js";
8
8
  import { useAnchoredPopupPortal as je } from "../../hooks/use-anchored-popup-portal.js";
9
9
  import { useOutsideClose as Be } from "../../hooks/use-outside-close.js";
10
10
  import { usePopoverTransition as Se } from "../../hooks/use-popover-transition.js";
@@ -14,47 +14,47 @@ const Q = 280;
14
14
  function Oe({
15
15
  option: r,
16
16
  listboxId: p,
17
- selected: N,
17
+ selected: y,
18
18
  active: D,
19
19
  onSelect: v,
20
20
  onHover: P
21
21
  }) {
22
- const u = [
23
- a["menu-item"],
24
- D ? a["menu-item--active"] : ""
22
+ const d = [
23
+ i["menu-item"],
24
+ D ? i["menu-item--active"] : ""
25
25
  ].filter(Boolean).join(" ");
26
26
  return /* @__PURE__ */ l(
27
27
  "li",
28
28
  {
29
29
  id: `${p}-option-${r.value}`,
30
30
  role: "option",
31
- className: [n.select__option, u].filter(Boolean).join(" "),
32
- "aria-selected": N,
31
+ className: [n.select__option, d].filter(Boolean).join(" "),
32
+ "aria-selected": y,
33
33
  "aria-disabled": r.disabled || void 0,
34
34
  onMouseDown: (g) => g.preventDefault(),
35
35
  onMouseEnter: P,
36
36
  onPointerUp: () => {
37
37
  r.disabled || v(r);
38
38
  },
39
- children: /* @__PURE__ */ x(
39
+ children: /* @__PURE__ */ w(
40
40
  "div",
41
41
  {
42
42
  className: [
43
- a["menu-item__content"],
43
+ i["menu-item__content"],
44
44
  r.disabled ? n["select__option-content--disabled"] : ""
45
45
  ].filter(Boolean).join(" "),
46
46
  children: [
47
- r.leadingVisual != null && /* @__PURE__ */ l("div", { className: a["menu-item__left"], children: /* @__PURE__ */ l("span", { className: a["menu-item__leading-visual"], children: r.leadingVisual }) }),
48
- /* @__PURE__ */ x("div", { className: a["menu-item__middle"], children: [
49
- /* @__PURE__ */ l("div", { className: a["menu-item__top-row"], children: /* @__PURE__ */ l("span", { className: a["menu-item__label"], children: r.label }) }),
50
- r.secondaryLabel != null && /* @__PURE__ */ l("div", { className: a["menu-item__bottom-row"], children: /* @__PURE__ */ l("span", { className: a["menu-item__secondary-label-below"], children: r.secondaryLabel }) })
47
+ r.leadingVisual != null && /* @__PURE__ */ l("div", { className: i["menu-item__left"], children: /* @__PURE__ */ l("span", { className: i["menu-item__leading-visual"], children: r.leadingVisual }) }),
48
+ /* @__PURE__ */ w("div", { className: i["menu-item__middle"], children: [
49
+ /* @__PURE__ */ l("div", { className: i["menu-item__top-row"], children: /* @__PURE__ */ l("span", { className: i["menu-item__label"], children: r.label }) }),
50
+ r.secondaryLabel != null && /* @__PURE__ */ l("div", { className: i["menu-item__bottom-row"], children: /* @__PURE__ */ l("span", { className: i["menu-item__secondary-label-below"], children: r.secondaryLabel }) })
51
51
  ] }),
52
- N && /* @__PURE__ */ l("div", { className: a["menu-item__right"], children: /* @__PURE__ */ l(
52
+ y && /* @__PURE__ */ l("div", { className: i["menu-item__right"], children: /* @__PURE__ */ l(
53
53
  "span",
54
54
  {
55
55
  className: [
56
- a["menu-item__trailing-visual"],
57
- a["menu-item__trailing-visual--check"]
56
+ i["menu-item__trailing-visual"],
57
+ i["menu-item__trailing-visual--check"]
58
58
  ].join(" "),
59
59
  children: /* @__PURE__ */ l(W, { glyph: /* @__PURE__ */ l(ke, {}), size: "16" })
60
60
  }
@@ -65,13 +65,13 @@ function Oe({
65
65
  }
66
66
  );
67
67
  }
68
- const Le = Ie(function({
68
+ const Le = xe(function({
69
69
  options: p,
70
- value: N,
70
+ value: y,
71
71
  defaultValue: D = "",
72
72
  onChange: v,
73
73
  placeholder: P,
74
- label: u,
74
+ label: d,
75
75
  leadingIcon: g,
76
76
  size: Y = "medium",
77
77
  invalid: O = !1,
@@ -82,13 +82,13 @@ const Le = Ie(function({
82
82
  "aria-label": V,
83
83
  portalContainer: le = null,
84
84
  zIndex: te
85
- }, I) {
86
- const ne = xe(), j = Z ?? ne, h = `${j}-listbox`, $ = E(null), H = E(null), M = E(null), se = y(
85
+ }, x) {
86
+ const ne = we(), j = Z ?? ne, h = `${j}-listbox`, $ = E(null), H = E(null), M = E(null), se = N(
87
87
  (e) => {
88
- M.current = e, typeof I == "function" ? I(e) : I && (I.current = e);
88
+ M.current = e, typeof x == "function" ? x(e) : x && (x.current = e);
89
89
  },
90
- [I]
91
- ), B = N !== void 0, [oe, ie] = k(D), m = B ? N : oe, [s, A] = k(!1), [ae, C] = k(!1), [d, f] = k(-1), S = q(
90
+ [x]
91
+ ), B = y !== void 0, [oe, ae] = k(D), m = B ? y : oe, [s, A] = k(!1), [ie, C] = k(!1), [u, f] = k(-1), S = q(
92
92
  () => p.find((e) => e.value === m),
93
93
  [p, m]
94
94
  ), o = q(
@@ -105,9 +105,9 @@ const Le = Ie(function({
105
105
  maxHeightCap: Q,
106
106
  portalContainer: le,
107
107
  zIndex: te
108
- }), b = y(() => {
108
+ }), b = N(() => {
109
109
  A(!1), f(-1);
110
- }, []), w = y(() => {
110
+ }, []), I = N(() => {
111
111
  _ || A(!0);
112
112
  }, [_]);
113
113
  Be($, s, b, U), J(() => {
@@ -116,72 +116,72 @@ const Le = Ie(function({
116
116
  if (e >= 0 && e < o.length) return e;
117
117
  const t = o.findIndex((c) => c.value === m);
118
118
  if (t >= 0) return t;
119
- const i = o.findIndex((c) => !c.disabled);
120
- return i >= 0 ? i : 0;
119
+ const a = o.findIndex((c) => !c.disabled);
120
+ return a >= 0 ? a : 0;
121
121
  });
122
122
  }, [s, o, m]);
123
- const K = y(
123
+ const K = N(
124
124
  (e) => {
125
- B || ie(e), v == null || v(e);
125
+ B || ae(e), v == null || v(e);
126
126
  },
127
127
  [B, v]
128
- ), T = y(
128
+ ), T = N(
129
129
  (e) => {
130
130
  var t;
131
131
  e.disabled || (K(e.value), b(), (t = M.current) == null || t.focus());
132
132
  },
133
133
  [K, b]
134
- ), L = y(
134
+ ), L = N(
135
135
  (e) => {
136
- const t = o.map((i, c) => ({ o: i, i: c })).filter(({ o: i }) => !i.disabled);
136
+ const t = o.map((a, c) => ({ o: a, i: c })).filter(({ o: a }) => !a.disabled);
137
137
  if (t.length === 0) {
138
138
  f(-1);
139
139
  return;
140
140
  }
141
- f((i) => {
142
- const c = t.findIndex(({ i: ge }) => ge === i), Ne = c < 0 ? e > 0 ? 0 : t.length - 1 : (c + e + t.length) % t.length;
143
- return t[Ne].i;
141
+ f((a) => {
142
+ const c = t.findIndex(({ i: ge }) => ge === a), ye = c < 0 ? e > 0 ? 0 : t.length - 1 : (c + e + t.length) % t.length;
143
+ return t[ye].i;
144
144
  });
145
145
  },
146
146
  [o]
147
147
  );
148
148
  J(() => {
149
- if (!s || d < 0) return;
150
- const e = o[d];
149
+ if (!s || u < 0) return;
150
+ const e = o[u];
151
151
  if (!e) return;
152
152
  const t = document.getElementById(`${h}-option-${e.value}`);
153
153
  t == null || t.scrollIntoView({ block: "nearest" });
154
- }, [s, d, o, h]);
154
+ }, [s, u, o, h]);
155
155
  const fe = (e) => {
156
156
  var t;
157
157
  if (!_)
158
158
  switch (e.key) {
159
159
  case "ArrowDown":
160
- e.preventDefault(), s ? L(1) : w();
160
+ e.preventDefault(), s ? L(1) : I();
161
161
  break;
162
162
  case "ArrowUp":
163
- e.preventDefault(), s ? L(-1) : w();
163
+ e.preventDefault(), s ? L(-1) : I();
164
164
  break;
165
165
  case "Home":
166
166
  if (s && o.length > 0) {
167
167
  e.preventDefault();
168
- const i = o.findIndex((c) => !c.disabled);
169
- f(i >= 0 ? i : 0);
168
+ const a = o.findIndex((c) => !c.disabled);
169
+ f(a >= 0 ? a : 0);
170
170
  }
171
171
  break;
172
172
  case "End":
173
173
  if (s && o.length > 0) {
174
174
  e.preventDefault();
175
- for (let i = o.length - 1; i >= 0; i--)
176
- if (!((t = o[i]) != null && t.disabled)) {
177
- f(i);
175
+ for (let a = o.length - 1; a >= 0; a--)
176
+ if (!((t = o[a]) != null && t.disabled)) {
177
+ f(a);
178
178
  break;
179
179
  }
180
180
  }
181
181
  break;
182
182
  case "Enter":
183
183
  case " ":
184
- e.preventDefault(), s && d >= 0 && o[d] ? T(o[d]) : s || w();
184
+ e.preventDefault(), s && u >= 0 && o[u] ? T(o[u]) : s || I();
185
185
  break;
186
186
  case "Escape":
187
187
  s && (e.preventDefault(), b());
@@ -190,45 +190,45 @@ const Le = Ie(function({
190
190
  b();
191
191
  break;
192
192
  }
193
- }, pe = ae || s || F, G = (S == null ? void 0 : S.label) ?? P ?? "", ve = !F && G !== "", X = d >= 0 ? o[d] : void 0, _e = s && X != null ? `${h}-option-${X.value}` : void 0, he = n[`select--size-${Ee(Y)}`], be = [
193
+ }, pe = ie || s || F, G = (S == null ? void 0 : S.label) ?? P ?? "", ve = !F && G !== "", X = u >= 0 ? o[u] : void 0, _e = s && X != null ? `${h}-option-${X.value}` : void 0, he = n[`select--size-${Ee(Y)}`], be = [
194
194
  n.select,
195
195
  he,
196
196
  O ? n["select--invalid"] : "",
197
- u != null && pe ? n["select--label-floated"] : "",
197
+ d != null && pe ? n["select--label-floated"] : "",
198
198
  g != null ? n["select--has-leading-icon"] : "",
199
199
  s ? n["select--open"] : "",
200
200
  _ ? n["select--disabled"] : "",
201
201
  ee
202
- ].filter(Boolean).join(" "), ye = [
202
+ ].filter(Boolean).join(" "), Ne = [
203
203
  n.select__control,
204
204
  ve ? n["select__control--placeholder"] : ""
205
205
  ].filter(Boolean).join(" ");
206
- return /* @__PURE__ */ x("div", { className: be, ref: $, children: [
207
- /* @__PURE__ */ x("div", { className: n.select__wrapper, ref: H, children: [
208
- u != null && /* @__PURE__ */ l("label", { className: n.select__label, htmlFor: j, children: u }),
209
- /* @__PURE__ */ x(
206
+ return /* @__PURE__ */ w("div", { className: be, ref: $, children: [
207
+ /* @__PURE__ */ w("div", { className: n.select__wrapper, ref: H, children: [
208
+ d != null && /* @__PURE__ */ l("label", { className: n.select__label, htmlFor: j, children: d }),
209
+ /* @__PURE__ */ w(
210
210
  "button",
211
211
  {
212
212
  ref: se,
213
213
  id: j,
214
214
  type: "button",
215
215
  role: "combobox",
216
- className: ye,
216
+ className: Ne,
217
217
  disabled: _,
218
218
  "aria-haspopup": "listbox",
219
219
  "aria-expanded": s,
220
220
  "aria-controls": h,
221
221
  "aria-activedescendant": _e,
222
222
  "aria-invalid": O ? !0 : void 0,
223
- "aria-label": V ?? (typeof u == "string" ? u : void 0),
224
- onClick: () => s ? b() : w(),
223
+ "aria-label": V,
224
+ onClick: () => s ? b() : I(),
225
225
  onFocus: () => C(!0),
226
226
  onBlur: () => C(!1),
227
227
  onKeyDown: fe,
228
228
  children: [
229
- g != null && /* @__PURE__ */ l("span", { className: n.select__leadingIcon, "aria-hidden": !0, children: g }),
229
+ g != null && /* @__PURE__ */ l("span", { className: n["select__leading-icon"], "aria-hidden": !0, children: g }),
230
230
  /* @__PURE__ */ l("span", { className: n.select__value, children: G }),
231
- /* @__PURE__ */ l("span", { className: n.select__trailingIcon, "aria-hidden": !0, children: /* @__PURE__ */ l(W, { size: "12", glyph: /* @__PURE__ */ l(we, {}) }) })
231
+ /* @__PURE__ */ l("span", { className: n["select__trailing-icon"], "aria-hidden": !0, children: /* @__PURE__ */ l(W, { size: "12", glyph: /* @__PURE__ */ l(Ie, {}) }) })
232
232
  ]
233
233
  }
234
234
  )
@@ -251,14 +251,14 @@ const Le = Ie(function({
251
251
  id: h,
252
252
  className: n.select__list,
253
253
  role: "listbox",
254
- "aria-label": typeof u == "string" ? u : V ?? "Options",
254
+ "aria-label": typeof d == "string" ? d : V ?? "Options",
255
255
  children: o.map((e, t) => /* @__PURE__ */ l(
256
256
  Oe,
257
257
  {
258
258
  option: e,
259
259
  listboxId: h,
260
260
  selected: e.value === m,
261
- active: t === d,
261
+ active: t === u,
262
262
  onSelect: T,
263
263
  onHover: () => f(t)
264
264
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../../src/components/select/Select.tsx"],"sourcesContent":["import type { KeyboardEvent, ReactNode } from 'react';\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport ChevronDownIcon from '@mattermost/compass-icons/components/chevron-down';\nimport CheckIcon from '@mattermost/compass-icons/components/check';\nimport Icon from '@/components/icon/Icon';\nimport PopoverMenu, {\n PopoverMenuScroll,\n} from '@/components/popover-menu/PopoverMenu';\nimport menuItemStyles from '@/components/menu-item/MenuItem.module.scss';\nimport { useAnchoredPopupPortal } from '@/hooks/use-anchored-popup-portal';\nimport { useOutsideClose } from '@/hooks/use-outside-close';\nimport { usePopoverTransition } from '@/hooks/use-popover-transition';\nimport { toKebab } from '@/utils/string';\nimport styles from './Select.module.scss';\n\nexport type SelectSize = 'small' | 'medium' | 'large';\n\nexport type SelectOption = {\n value: string;\n label: string;\n disabled?: boolean;\n leadingVisual?: ReactNode;\n secondaryLabel?: string;\n};\n\nexport interface SelectProps {\n options: SelectOption[];\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n /** Shown on the trigger when no value is selected. Empty-value options are not listed in the menu. */\n placeholder?: string;\n label?: ReactNode;\n leadingIcon?: ReactNode;\n size?: SelectSize;\n invalid?: boolean;\n disabled?: boolean;\n id?: string;\n name?: string;\n className?: string;\n 'aria-label'?: string;\n /** Portal mount node for the menu; defaults to `document.body`. */\n portalContainer?: HTMLElement | null;\n /** Stacking order for the portaled menu. */\n zIndex?: number;\n}\n\nconst POPUP_MAX_HEIGHT = 280;\n\nfunction SelectOptionRow({\n option,\n listboxId,\n selected,\n active,\n onSelect,\n onHover,\n}: {\n option: SelectOption;\n listboxId: string;\n selected: boolean;\n active: boolean;\n onSelect: (option: SelectOption) => void;\n onHover: () => void;\n}) {\n const rowClass = [\n menuItemStyles['menu-item'],\n active ? menuItemStyles['menu-item--active'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <li\n id={`${listboxId}-option-${option.value}`}\n role=\"option\"\n className={[styles.select__option, rowClass].filter(Boolean).join(' ')}\n aria-selected={selected}\n aria-disabled={option.disabled || undefined}\n onMouseDown={(ev) => ev.preventDefault()}\n onMouseEnter={onHover}\n onPointerUp={() => {\n if (!option.disabled) onSelect(option);\n }}\n >\n <div\n className={[\n menuItemStyles['menu-item__content'],\n option.disabled ? styles['select__option-content--disabled'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {option.leadingVisual != null && (\n <div className={menuItemStyles['menu-item__left']}>\n <span className={menuItemStyles['menu-item__leading-visual']}>\n {option.leadingVisual}\n </span>\n </div>\n )}\n <div className={menuItemStyles['menu-item__middle']}>\n <div className={menuItemStyles['menu-item__top-row']}>\n <span className={menuItemStyles['menu-item__label']}>\n {option.label}\n </span>\n </div>\n {option.secondaryLabel != null && (\n <div className={menuItemStyles['menu-item__bottom-row']}>\n <span className={menuItemStyles['menu-item__secondary-label-below']}>\n {option.secondaryLabel}\n </span>\n </div>\n )}\n </div>\n {selected && (\n <div className={menuItemStyles['menu-item__right']}>\n <span\n className={[\n menuItemStyles['menu-item__trailing-visual'],\n menuItemStyles['menu-item__trailing-visual--check'],\n ].join(' ')}\n >\n <Icon glyph={<CheckIcon />} size=\"16\" />\n </span>\n </div>\n )}\n </div>\n </li>\n );\n}\n\n/**\n * { value: 'town-square', label: 'Town Square' }, { value: 'off-topic', label: 'Off-Topic'\n * }, { value: 'design', label: 'Design' }, ];\n */\nconst Select = forwardRef<HTMLButtonElement, SelectProps>(function Select(\n {\n options,\n value: valueProp,\n defaultValue = '',\n onChange,\n placeholder,\n label,\n leadingIcon,\n size = 'medium',\n invalid = false,\n disabled = false,\n id: idProp,\n name,\n className = '',\n 'aria-label': ariaLabel,\n portalContainer = null,\n zIndex,\n },\n ref,\n) {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const listboxId = `${id}-listbox`;\n\n const rootRef = useRef<HTMLDivElement>(null);\n const anchorRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n\n const setButtonRef = useCallback(\n (node: HTMLButtonElement | null) => {\n buttonRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n },\n [ref],\n );\n\n const isControlled = valueProp !== undefined;\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const value = isControlled ? valueProp! : uncontrolledValue;\n\n const [isOpen, setIsOpen] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n const [activeIndex, setActiveIndex] = useState(-1);\n\n const selectedOption = useMemo(\n () => options.find((o) => o.value === value),\n [options, value],\n );\n\n const listOptions = useMemo(\n () => options.filter((o) => o.value !== ''),\n [options],\n );\n\n const hasValue = value !== '';\n\n const { mounted: popupMounted, visible: popupVisible } =\n usePopoverTransition(isOpen);\n\n const {\n placement,\n maxHeight,\n style: popupStyle,\n portalRef,\n renderPortal,\n } = useAnchoredPopupPortal(anchorRef, popupMounted, {\n preferredHeight: POPUP_MAX_HEIGHT,\n maxHeightCap: POPUP_MAX_HEIGHT,\n portalContainer,\n zIndex,\n });\n\n const close = useCallback(() => {\n setIsOpen(false);\n setActiveIndex(-1);\n }, []);\n\n const open = useCallback(() => {\n if (disabled) return;\n setIsOpen(true);\n }, [disabled]);\n\n useOutsideClose(rootRef, isOpen, close, portalRef);\n\n useEffect(() => {\n if (!isOpen) return;\n setActiveIndex((prev) => {\n if (listOptions.length === 0) return -1;\n if (prev >= 0 && prev < listOptions.length) return prev;\n const selectedIdx = listOptions.findIndex((o) => o.value === value);\n if (selectedIdx >= 0) return selectedIdx;\n const firstEnabled = listOptions.findIndex((o) => !o.disabled);\n return firstEnabled >= 0 ? firstEnabled : 0;\n });\n }, [isOpen, listOptions, value]);\n\n const commitValue = useCallback(\n (next: string) => {\n if (!isControlled) setUncontrolledValue(next);\n onChange?.(next);\n },\n [isControlled, onChange],\n );\n\n const selectOption = useCallback(\n (option: SelectOption) => {\n if (option.disabled) return;\n commitValue(option.value);\n close();\n buttonRef.current?.focus();\n },\n [commitValue, close],\n );\n\n const moveActive = useCallback(\n (delta: number) => {\n const enabled = listOptions\n .map((o, i) => ({ o, i }))\n .filter(({ o }) => !o.disabled);\n if (enabled.length === 0) {\n setActiveIndex(-1);\n return;\n }\n setActiveIndex((prev) => {\n const currentPos = enabled.findIndex(({ i }) => i === prev);\n const nextPos =\n currentPos < 0\n ? delta > 0\n ? 0\n : enabled.length - 1\n : (currentPos + delta + enabled.length) % enabled.length;\n return enabled[nextPos].i;\n });\n },\n [listOptions],\n );\n\n useEffect(() => {\n if (!isOpen || activeIndex < 0) return;\n const option = listOptions[activeIndex];\n if (!option) return;\n const el = document.getElementById(`${listboxId}-option-${option.value}`);\n el?.scrollIntoView({ block: 'nearest' });\n }, [isOpen, activeIndex, listOptions, listboxId]);\n\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n if (disabled) return;\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n if (!isOpen) open();\n else moveActive(1);\n break;\n case 'ArrowUp':\n e.preventDefault();\n if (!isOpen) open();\n else moveActive(-1);\n break;\n case 'Home':\n if (isOpen && listOptions.length > 0) {\n e.preventDefault();\n const idx = listOptions.findIndex((o) => !o.disabled);\n setActiveIndex(idx >= 0 ? idx : 0);\n }\n break;\n case 'End':\n if (isOpen && listOptions.length > 0) {\n e.preventDefault();\n for (let i = listOptions.length - 1; i >= 0; i--) {\n if (!listOptions[i]?.disabled) {\n setActiveIndex(i);\n break;\n }\n }\n }\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n if (isOpen && activeIndex >= 0 && listOptions[activeIndex]) {\n selectOption(listOptions[activeIndex]);\n } else if (!isOpen) {\n open();\n }\n break;\n case 'Escape':\n if (isOpen) {\n e.preventDefault();\n close();\n }\n break;\n case 'Tab':\n close();\n break;\n default:\n break;\n }\n };\n\n const labelFloated = isFocused || isOpen || hasValue;\n const displayLabel = selectedOption?.label ?? placeholder ?? '';\n const showPlaceholderStyle = !hasValue && displayLabel !== '';\n\n const activeOption =\n activeIndex >= 0 ? listOptions[activeIndex] : undefined;\n const activeDescendant =\n isOpen && activeOption != null\n ? `${listboxId}-option-${activeOption.value}`\n : undefined;\n\n const sizeClass = styles[`select--size-${toKebab(size)}`];\n const rootClass = [\n styles.select,\n sizeClass,\n invalid ? styles['select--invalid'] : '',\n label != null && labelFloated ? styles['select--label-floated'] : '',\n leadingIcon != null ? styles['select--has-leading-icon'] : '',\n isOpen ? styles['select--open'] : '',\n disabled ? styles['select--disabled'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const controlClass = [\n styles.select__control,\n showPlaceholderStyle ? styles['select__control--placeholder'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} ref={rootRef}>\n <div className={styles.select__wrapper} ref={anchorRef}>\n {label != null && (\n <label className={styles.select__label} htmlFor={id}>\n {label}\n </label>\n )}\n <button\n ref={setButtonRef}\n id={id}\n type=\"button\"\n role=\"combobox\"\n className={controlClass}\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-controls={listboxId}\n aria-activedescendant={activeDescendant}\n aria-invalid={invalid ? true : undefined}\n aria-label={\n ariaLabel ??\n (typeof label === 'string' ? label : undefined)\n }\n onClick={() => (isOpen ? close() : open())}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n onKeyDown={handleKeyDown}\n >\n {leadingIcon != null && (\n <span className={styles.select__leadingIcon} aria-hidden>\n {leadingIcon}\n </span>\n )}\n <span className={styles.select__value}>{displayLabel}</span>\n <span className={styles.select__trailingIcon} aria-hidden>\n <Icon size=\"12\" glyph={<ChevronDownIcon />} />\n </span>\n </button>\n </div>\n\n {name != null && !disabled && (\n <input type=\"hidden\" name={name} value={value} />\n )}\n\n {popupMounted &&\n renderPortal(\n <div\n ref={portalRef}\n className={[\n styles.select__popup,\n placement === 'above' ? styles['select__popup--above'] : '',\n popupVisible ? styles['select__popup--visible'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n style={popupStyle}\n >\n <PopoverMenu className={styles.select__menu}>\n <PopoverMenuScroll maxHeight={maxHeight}>\n <ul\n id={listboxId}\n className={styles.select__list}\n role=\"listbox\"\n aria-label={\n typeof label === 'string' ? label : (ariaLabel ?? 'Options')\n }\n >\n {listOptions.map((option, index) => (\n <SelectOptionRow\n key={option.value}\n option={option}\n listboxId={listboxId}\n selected={option.value === value}\n active={index === activeIndex}\n onSelect={selectOption}\n onHover={() => setActiveIndex(index)}\n />\n ))}\n </ul>\n </PopoverMenuScroll>\n </PopoverMenu>\n </div>,\n )}\n </div>\n );\n});\n\nexport default Select;\n"],"names":["POPUP_MAX_HEIGHT","SelectOptionRow","option","listboxId","selected","active","onSelect","onHover","rowClass","menuItemStyles","jsx","styles","ev","jsxs","Icon","CheckIcon","Select","forwardRef","options","valueProp","defaultValue","onChange","placeholder","label","leadingIcon","size","invalid","disabled","idProp","name","className","ariaLabel","portalContainer","zIndex","ref","generatedId","useId","id","rootRef","useRef","anchorRef","buttonRef","setButtonRef","useCallback","node","isControlled","uncontrolledValue","setUncontrolledValue","useState","value","isOpen","setIsOpen","isFocused","setIsFocused","activeIndex","setActiveIndex","selectedOption","useMemo","o","listOptions","hasValue","popupMounted","popupVisible","usePopoverTransition","placement","maxHeight","popupStyle","portalRef","renderPortal","useAnchoredPopupPortal","close","open","useOutsideClose","useEffect","prev","selectedIdx","firstEnabled","commitValue","next","selectOption","_a","moveActive","delta","enabled","i","currentPos","nextPos","el","handleKeyDown","idx","labelFloated","displayLabel","showPlaceholderStyle","activeOption","activeDescendant","sizeClass","toKebab","rootClass","controlClass","ChevronDownIcon","PopoverMenu","PopoverMenuScroll","index"],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sources":["../../../src/components/select/Select.tsx"],"sourcesContent":["import type { KeyboardEvent, ReactNode } from 'react';\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport ChevronDownIcon from '@mattermost/compass-icons/components/chevron-down';\nimport CheckIcon from '@mattermost/compass-icons/components/check';\nimport Icon from '@/components/icon/Icon';\nimport PopoverMenu, {\n PopoverMenuScroll,\n} from '@/components/popover-menu/PopoverMenu';\nimport menuItemStyles from '@/components/menu-item/MenuItem.module.scss';\nimport { useAnchoredPopupPortal } from '@/hooks/use-anchored-popup-portal';\nimport { useOutsideClose } from '@/hooks/use-outside-close';\nimport { usePopoverTransition } from '@/hooks/use-popover-transition';\nimport { toKebab } from '@/utils/string';\nimport styles from './Select.module.scss';\n\nexport type SelectSize = 'small' | 'medium' | 'large';\n\nexport type SelectOption = {\n value: string;\n label: string;\n disabled?: boolean;\n leadingVisual?: ReactNode;\n secondaryLabel?: string;\n};\n\nexport interface SelectProps {\n options: SelectOption[];\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n /** Shown on the trigger when no value is selected. Empty-value options are not listed in the menu. */\n placeholder?: string;\n label?: ReactNode;\n leadingIcon?: ReactNode;\n size?: SelectSize;\n invalid?: boolean;\n disabled?: boolean;\n id?: string;\n name?: string;\n className?: string;\n 'aria-label'?: string;\n /** Portal mount node for the menu; defaults to `document.body`. */\n portalContainer?: HTMLElement | null;\n /** Stacking order for the portaled menu. */\n zIndex?: number;\n}\n\nconst POPUP_MAX_HEIGHT = 280;\n\nfunction SelectOptionRow({\n option,\n listboxId,\n selected,\n active,\n onSelect,\n onHover,\n}: {\n option: SelectOption;\n listboxId: string;\n selected: boolean;\n active: boolean;\n onSelect: (option: SelectOption) => void;\n onHover: () => void;\n}) {\n const rowClass = [\n menuItemStyles['menu-item'],\n active ? menuItemStyles['menu-item--active'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <li\n id={`${listboxId}-option-${option.value}`}\n role=\"option\"\n className={[styles.select__option, rowClass].filter(Boolean).join(' ')}\n aria-selected={selected}\n aria-disabled={option.disabled || undefined}\n onMouseDown={(ev) => ev.preventDefault()}\n onMouseEnter={onHover}\n onPointerUp={() => {\n if (!option.disabled) onSelect(option);\n }}\n >\n <div\n className={[\n menuItemStyles['menu-item__content'],\n option.disabled ? styles['select__option-content--disabled'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {option.leadingVisual != null && (\n <div className={menuItemStyles['menu-item__left']}>\n <span className={menuItemStyles['menu-item__leading-visual']}>\n {option.leadingVisual}\n </span>\n </div>\n )}\n <div className={menuItemStyles['menu-item__middle']}>\n <div className={menuItemStyles['menu-item__top-row']}>\n <span className={menuItemStyles['menu-item__label']}>\n {option.label}\n </span>\n </div>\n {option.secondaryLabel != null && (\n <div className={menuItemStyles['menu-item__bottom-row']}>\n <span className={menuItemStyles['menu-item__secondary-label-below']}>\n {option.secondaryLabel}\n </span>\n </div>\n )}\n </div>\n {selected && (\n <div className={menuItemStyles['menu-item__right']}>\n <span\n className={[\n menuItemStyles['menu-item__trailing-visual'],\n menuItemStyles['menu-item__trailing-visual--check'],\n ].join(' ')}\n >\n <Icon glyph={<CheckIcon />} size=\"16\" />\n </span>\n </div>\n )}\n </div>\n </li>\n );\n}\n\n/**\n * { value: 'town-square', label: 'Town Square' }, { value: 'off-topic', label: 'Off-Topic'\n * }, { value: 'design', label: 'Design' }, ];\n */\nconst Select = forwardRef<HTMLButtonElement, SelectProps>(function Select(\n {\n options,\n value: valueProp,\n defaultValue = '',\n onChange,\n placeholder,\n label,\n leadingIcon,\n size = 'medium',\n invalid = false,\n disabled = false,\n id: idProp,\n name,\n className = '',\n 'aria-label': ariaLabel,\n portalContainer = null,\n zIndex,\n },\n ref,\n) {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const listboxId = `${id}-listbox`;\n\n const rootRef = useRef<HTMLDivElement>(null);\n const anchorRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n\n const setButtonRef = useCallback(\n (node: HTMLButtonElement | null) => {\n buttonRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n },\n [ref],\n );\n\n const isControlled = valueProp !== undefined;\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const value = isControlled ? valueProp! : uncontrolledValue;\n\n const [isOpen, setIsOpen] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n const [activeIndex, setActiveIndex] = useState(-1);\n\n const selectedOption = useMemo(\n () => options.find((o) => o.value === value),\n [options, value],\n );\n\n const listOptions = useMemo(\n () => options.filter((o) => o.value !== ''),\n [options],\n );\n\n const hasValue = value !== '';\n\n const { mounted: popupMounted, visible: popupVisible } =\n usePopoverTransition(isOpen);\n\n const {\n placement,\n maxHeight,\n style: popupStyle,\n portalRef,\n renderPortal,\n } = useAnchoredPopupPortal(anchorRef, popupMounted, {\n preferredHeight: POPUP_MAX_HEIGHT,\n maxHeightCap: POPUP_MAX_HEIGHT,\n portalContainer,\n zIndex,\n });\n\n const close = useCallback(() => {\n setIsOpen(false);\n setActiveIndex(-1);\n }, []);\n\n const open = useCallback(() => {\n if (disabled) return;\n setIsOpen(true);\n }, [disabled]);\n\n useOutsideClose(rootRef, isOpen, close, portalRef);\n\n useEffect(() => {\n if (!isOpen) return;\n setActiveIndex((prev) => {\n if (listOptions.length === 0) return -1;\n if (prev >= 0 && prev < listOptions.length) return prev;\n const selectedIdx = listOptions.findIndex((o) => o.value === value);\n if (selectedIdx >= 0) return selectedIdx;\n const firstEnabled = listOptions.findIndex((o) => !o.disabled);\n return firstEnabled >= 0 ? firstEnabled : 0;\n });\n }, [isOpen, listOptions, value]);\n\n const commitValue = useCallback(\n (next: string) => {\n if (!isControlled) setUncontrolledValue(next);\n onChange?.(next);\n },\n [isControlled, onChange],\n );\n\n const selectOption = useCallback(\n (option: SelectOption) => {\n if (option.disabled) return;\n commitValue(option.value);\n close();\n buttonRef.current?.focus();\n },\n [commitValue, close],\n );\n\n const moveActive = useCallback(\n (delta: number) => {\n const enabled = listOptions\n .map((o, i) => ({ o, i }))\n .filter(({ o }) => !o.disabled);\n if (enabled.length === 0) {\n setActiveIndex(-1);\n return;\n }\n setActiveIndex((prev) => {\n const currentPos = enabled.findIndex(({ i }) => i === prev);\n const nextPos =\n currentPos < 0\n ? delta > 0\n ? 0\n : enabled.length - 1\n : (currentPos + delta + enabled.length) % enabled.length;\n return enabled[nextPos].i;\n });\n },\n [listOptions],\n );\n\n useEffect(() => {\n if (!isOpen || activeIndex < 0) return;\n const option = listOptions[activeIndex];\n if (!option) return;\n const el = document.getElementById(`${listboxId}-option-${option.value}`);\n el?.scrollIntoView({ block: 'nearest' });\n }, [isOpen, activeIndex, listOptions, listboxId]);\n\n const handleKeyDown = (e: KeyboardEvent<HTMLButtonElement>) => {\n if (disabled) return;\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n if (!isOpen) open();\n else moveActive(1);\n break;\n case 'ArrowUp':\n e.preventDefault();\n if (!isOpen) open();\n else moveActive(-1);\n break;\n case 'Home':\n if (isOpen && listOptions.length > 0) {\n e.preventDefault();\n const idx = listOptions.findIndex((o) => !o.disabled);\n setActiveIndex(idx >= 0 ? idx : 0);\n }\n break;\n case 'End':\n if (isOpen && listOptions.length > 0) {\n e.preventDefault();\n for (let i = listOptions.length - 1; i >= 0; i--) {\n if (!listOptions[i]?.disabled) {\n setActiveIndex(i);\n break;\n }\n }\n }\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n if (isOpen && activeIndex >= 0 && listOptions[activeIndex]) {\n selectOption(listOptions[activeIndex]);\n } else if (!isOpen) {\n open();\n }\n break;\n case 'Escape':\n if (isOpen) {\n e.preventDefault();\n close();\n }\n break;\n case 'Tab':\n close();\n break;\n default:\n break;\n }\n };\n\n const labelFloated = isFocused || isOpen || hasValue;\n const displayLabel = selectedOption?.label ?? placeholder ?? '';\n const showPlaceholderStyle = !hasValue && displayLabel !== '';\n\n const activeOption =\n activeIndex >= 0 ? listOptions[activeIndex] : undefined;\n const activeDescendant =\n isOpen && activeOption != null\n ? `${listboxId}-option-${activeOption.value}`\n : undefined;\n\n const sizeClass = styles[`select--size-${toKebab(size)}`];\n const rootClass = [\n styles.select,\n sizeClass,\n invalid ? styles['select--invalid'] : '',\n label != null && labelFloated ? styles['select--label-floated'] : '',\n leadingIcon != null ? styles['select--has-leading-icon'] : '',\n isOpen ? styles['select--open'] : '',\n disabled ? styles['select--disabled'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const controlClass = [\n styles.select__control,\n showPlaceholderStyle ? styles['select__control--placeholder'] : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} ref={rootRef}>\n <div className={styles.select__wrapper} ref={anchorRef}>\n {label != null && (\n <label className={styles.select__label} htmlFor={id}>\n {label}\n </label>\n )}\n <button\n ref={setButtonRef}\n id={id}\n type=\"button\"\n role=\"combobox\"\n className={controlClass}\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-controls={listboxId}\n aria-activedescendant={activeDescendant}\n aria-invalid={invalid ? true : undefined}\n aria-label={ariaLabel}\n onClick={() => (isOpen ? close() : open())}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n onKeyDown={handleKeyDown}\n >\n {leadingIcon != null && (\n <span className={styles['select__leading-icon']} aria-hidden>\n {leadingIcon}\n </span>\n )}\n <span className={styles.select__value}>{displayLabel}</span>\n <span className={styles['select__trailing-icon']} aria-hidden>\n <Icon size=\"12\" glyph={<ChevronDownIcon />} />\n </span>\n </button>\n </div>\n\n {name != null && !disabled && (\n <input type=\"hidden\" name={name} value={value} />\n )}\n\n {popupMounted &&\n renderPortal(\n <div\n ref={portalRef}\n className={[\n styles.select__popup,\n placement === 'above' ? styles['select__popup--above'] : '',\n popupVisible ? styles['select__popup--visible'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n style={popupStyle}\n >\n <PopoverMenu className={styles.select__menu}>\n <PopoverMenuScroll maxHeight={maxHeight}>\n <ul\n id={listboxId}\n className={styles.select__list}\n role=\"listbox\"\n aria-label={\n typeof label === 'string' ? label : (ariaLabel ?? 'Options')\n }\n >\n {listOptions.map((option, index) => (\n <SelectOptionRow\n key={option.value}\n option={option}\n listboxId={listboxId}\n selected={option.value === value}\n active={index === activeIndex}\n onSelect={selectOption}\n onHover={() => setActiveIndex(index)}\n />\n ))}\n </ul>\n </PopoverMenuScroll>\n </PopoverMenu>\n </div>,\n )}\n </div>\n );\n});\n\nexport default Select;\n"],"names":["POPUP_MAX_HEIGHT","SelectOptionRow","option","listboxId","selected","active","onSelect","onHover","rowClass","menuItemStyles","jsx","styles","ev","jsxs","Icon","CheckIcon","Select","forwardRef","options","valueProp","defaultValue","onChange","placeholder","label","leadingIcon","size","invalid","disabled","idProp","name","className","ariaLabel","portalContainer","zIndex","ref","generatedId","useId","id","rootRef","useRef","anchorRef","buttonRef","setButtonRef","useCallback","node","isControlled","uncontrolledValue","setUncontrolledValue","useState","value","isOpen","setIsOpen","isFocused","setIsFocused","activeIndex","setActiveIndex","selectedOption","useMemo","o","listOptions","hasValue","popupMounted","popupVisible","usePopoverTransition","placement","maxHeight","popupStyle","portalRef","renderPortal","useAnchoredPopupPortal","close","open","useOutsideClose","useEffect","prev","selectedIdx","firstEnabled","commitValue","next","selectOption","_a","moveActive","delta","enabled","i","currentPos","nextPos","el","handleKeyDown","idx","labelFloated","displayLabel","showPlaceholderStyle","activeOption","activeDescendant","sizeClass","toKebab","rootClass","controlClass","ChevronDownIcon","PopoverMenu","PopoverMenuScroll","index"],"mappings":"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"}
@@ -1 +1 @@
1
- ._select_117uv_2{position:relative;display:flex;flex-direction:column;width:100%}._select__wrapper_117uv_8{position:relative;background-color:var(--center-channel-bg);border-radius:var(--radius-s);box-shadow:inset 0 0 0 1px rgba(var(--center-channel-color-rgb),.16);transition:box-shadow var(--duration-quick) var(--ease-transition);cursor:pointer}._select_117uv_2:not(._select--disabled_117uv_16):hover:not(:focus-within) ._select__wrapper_117uv_8{box-shadow:inset 0 0 0 1px rgba(var(--center-channel-color-rgb),.24)}._select_117uv_2:focus-within ._select__wrapper_117uv_8{box-shadow:inset 0 0 0 1px var(--button-bg),0 0 0 1px var(--button-bg)}._select--disabled_117uv_16 ._select__wrapper_117uv_8{opacity:.56;cursor:not-allowed}._select__label_117uv_26{position:absolute;left:var(--spacing-xs);top:50%;z-index:1;padding:0 var(--spacing-xxxs);transform:translateY(-50%);margin:0;font-family:var(--font-family-body);font-size:var(--font-size-75);line-height:var(--line-height-75);font-weight:var(--font-weight-regular);color:rgba(var(--center-channel-color-rgb),.64);background-color:var(--center-channel-bg);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 24px);transition:transform var(--duration-quick) var(--ease-transition),font-size var(--duration-quick) var(--ease-transition),top var(--duration-quick) var(--ease-transition),left var(--duration-quick) var(--ease-transition),color var(--duration-quick) var(--ease-transition)}._select--label-floated_117uv_47 ._select__label_117uv_26{top:0;transform:translateY(-50%);font-size:var(--font-size-25);line-height:14px}._select_117uv_2:focus-within ._select__label_117uv_26{color:var(--button-bg)}._select__control_117uv_56{display:flex;align-items:center;width:100%;margin: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);color:var(--center-channel-color);text-align:left;cursor:pointer;gap:var(--spacing-xs)}._select__control_117uv_56:focus{outline:none}._select__control_117uv_56:focus-visible{outline:none}._select__control_117uv_56:disabled{cursor:not-allowed;color:rgba(var(--center-channel-color-rgb),.64)}._select__control--placeholder_117uv_82 ._select__value_117uv_82{color:rgba(var(--center-channel-color-rgb),.64)}._select__value_117uv_82{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._select__leadingIcon_117uv_92{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:rgba(var(--center-channel-color-rgb),.64)}._select__trailingIcon_117uv_99{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:rgba(var(--center-channel-color-rgb),.64);margin-right:var(--spacing-xxxs);transition:transform var(--duration-quick) var(--ease-transition)}._select--open_117uv_108 ._select__trailingIcon_117uv_99{transform:rotate(180deg)}._select__popup_117uv_111{opacity:0;transform:scale(.9);transform-origin:top center;transition:opacity var(--duration-quick) var(--ease-exit),transform var(--duration-quick) var(--ease-exit);pointer-events:none}._select__popup--above_117uv_118{transform-origin:bottom center}._select__popup--visible_117uv_121{opacity:1;transform:scale(1);pointer-events:auto;transition:opacity var(--duration-quick) var(--ease-entrance),transform var(--duration-quick) var(--ease-entrance)}._select__menu_117uv_127{width:100%;min-width:100%;max-width:none}._select__list_117uv_132{margin:0;padding:0;list-style:none}._select__option_117uv_137{display:block;width:100%;list-style:none}._select__option_117uv_137[aria-disabled=true]{cursor:not-allowed}._select__option-content--disabled_117uv_145{opacity:.4}._select--size-small_117uv_148 ._select__wrapper_117uv_8{min-height:32px}._select--size-small_117uv_148 ._select__control_117uv_56{padding:var(--spacing-xs) var(--spacing-m);gap:var(--spacing-xs);font-size:var(--font-size-75);line-height:var(--line-height-75)}._select--size-small_117uv_148 ._select__trailingIcon_117uv_99 svg{width:var(--icon-size-12);height:var(--icon-size-12)}._select--size-small_117uv_148._select--label-floated_117uv_47 ._select__label_117uv_26{top:0;transform:translateY(-50%);font-size:var(--font-size-25);line-height:14px}._select--size-medium_117uv_167 ._select__wrapper_117uv_8{min-height:40px}._select--size-medium_117uv_167 ._select__control_117uv_56{padding:var(--spacing-s) var(--spacing-l);gap:var(--spacing-s);font-size:var(--font-size-100);line-height:var(--line-height-100)}._select--size-medium_117uv_167 ._select__label_117uv_26{font-size:var(--font-size-100);left:var(--spacing-m)}._select--size-medium_117uv_167 ._select__trailingIcon_117uv_99 svg{width:var(--icon-size-16);height:var(--icon-size-16)}._select--size-medium_117uv_167._select--label-floated_117uv_47 ._select__label_117uv_26{top:0;transform:translateY(-50%);font-size:var(--font-size-25);line-height:14px}._select--size-large_117uv_190 ._select__wrapper_117uv_8{min-height:48px}._select--size-large_117uv_190 ._select__control_117uv_56{padding:var(--spacing-m) var(--spacing-l);gap:var(--spacing-s);font-size:var(--font-size-200);line-height:var(--line-height-200)}._select--size-large_117uv_190 ._select__label_117uv_26{font-size:var(--font-size-200);line-height:var(--line-height-200);left:var(--spacing-m)}._select--size-large_117uv_190 ._select__trailingIcon_117uv_99 svg{width:var(--icon-size-16);height:var(--icon-size-16)}._select--size-large_117uv_190._select--label-floated_117uv_47 ._select__label_117uv_26{top:0;transform:translateY(-50%);font-size:var(--font-size-25);line-height:14px}._select_117uv_2:has(._select__label_117uv_26):not(._select--label-floated_117uv_47) ._select__value_117uv_82{color:transparent}._select--invalid_117uv_217 ._select__wrapper_117uv_8{box-shadow:inset 0 0 0 1px var(--error-text, var(--color-danger))}._select--invalid_117uv_217:focus-within ._select__wrapper_117uv_8{box-shadow:inset 0 0 0 1px var(--error-text, var(--color-danger)),0 0 0 1px var(--error-text, var(--color-danger))}._select--invalid_117uv_217 ._select__label_117uv_26{color:var(--error-text, var(--color-danger))}._select--invalid_117uv_217:focus-within ._select__label_117uv_26{color:var(--error-text, var(--color-danger))}._select--has-leading-icon_117uv_229 ._select__label_117uv_26{left:calc(var(--spacing-m) + var(--icon-size-16) + var(--spacing-xs) - var(--spacing-xxxs))}._select--has-leading-icon_117uv_229._select--label-floated_117uv_47 ._select__label_117uv_26{left:var(--spacing-xs)}._select--has-leading-icon_117uv_229._select--size-medium_117uv_167 ._select__label_117uv_26,._select--has-leading-icon_117uv_229._select--size-large_117uv_190 ._select__label_117uv_26{left:calc(var(--spacing-m) + var(--icon-size-16) + var(--spacing-s))}._select--has-leading-icon_117uv_229._select--size-medium_117uv_167._select--label-floated_117uv_47 ._select__label_117uv_26,._select--has-leading-icon_117uv_229._select--size-large_117uv_190._select--label-floated_117uv_47 ._select__label_117uv_26{left:var(--spacing-m)}
1
+ ._select_h9fbq_2{position:relative;display:flex;flex-direction:column;width:100%}._select__wrapper_h9fbq_8{position:relative;background-color:var(--center-channel-bg);border-radius:var(--radius-s);box-shadow:inset 0 0 0 1px rgba(var(--center-channel-color-rgb),.16);transition:box-shadow var(--duration-quick) var(--ease-transition);cursor:pointer}._select_h9fbq_2:not(._select--disabled_h9fbq_16):hover:not(:focus-within) ._select__wrapper_h9fbq_8{box-shadow:inset 0 0 0 1px rgba(var(--center-channel-color-rgb),.24)}._select_h9fbq_2:focus-within ._select__wrapper_h9fbq_8{box-shadow:inset 0 0 0 1px var(--focus-ring-color),0 0 0 1px var(--focus-ring-color)}._select--disabled_h9fbq_16 ._select__wrapper_h9fbq_8{opacity:.56;cursor:not-allowed}._select__label_h9fbq_26{position:absolute;left:var(--spacing-xs);top:50%;z-index:1;padding:0 var(--spacing-xxxs);transform:translateY(-50%);margin:0;font-family:var(--font-family-body);font-size:var(--font-size-75);line-height:var(--line-height-75);font-weight:var(--font-weight-regular);color:rgba(var(--center-channel-color-rgb),.64);background-color:var(--center-channel-bg);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 24px);transition:transform var(--duration-quick) var(--ease-transition),font-size var(--duration-quick) var(--ease-transition),top var(--duration-quick) var(--ease-transition),left var(--duration-quick) var(--ease-transition),color var(--duration-quick) var(--ease-transition)}._select--label-floated_h9fbq_47 ._select__label_h9fbq_26{top:0;transform:translateY(-50%);font-size:var(--font-size-25);line-height:14px}._select_h9fbq_2:focus-within ._select__label_h9fbq_26{color:var(--button-bg)}._select__control_h9fbq_56{display:flex;align-items:center;width:100%;margin: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);color:var(--center-channel-color);text-align:left;cursor:pointer;gap:var(--spacing-xs)}._select__control_h9fbq_56:focus{outline:none}._select__control_h9fbq_56:focus-visible{outline:none}._select__control_h9fbq_56:disabled{cursor:not-allowed;color:rgba(var(--center-channel-color-rgb),.64)}._select__control--placeholder_h9fbq_82 ._select__value_h9fbq_82{color:rgba(var(--center-channel-color-rgb),.64)}._select__value_h9fbq_82{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._select__leading-icon_h9fbq_92{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:rgba(var(--center-channel-color-rgb),.64)}._select__trailing-icon_h9fbq_99{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:rgba(var(--center-channel-color-rgb),.64);margin-right:var(--spacing-xxxs);transition:transform var(--duration-quick) var(--ease-transition)}._select--open_h9fbq_108 ._select__trailing-icon_h9fbq_99{transform:rotate(180deg)}._select__popup_h9fbq_111{opacity:0;transform:scale(.9);transform-origin:top center;transition:opacity var(--duration-quick) var(--ease-exit),transform var(--duration-quick) var(--ease-exit);pointer-events:none}._select__popup--above_h9fbq_118{transform-origin:bottom center}._select__popup--visible_h9fbq_121{opacity:1;transform:scale(1);pointer-events:auto;transition:opacity var(--duration-quick) var(--ease-entrance),transform var(--duration-quick) var(--ease-entrance)}._select__menu_h9fbq_127{width:100%;min-width:100%;max-width:none}._select__list_h9fbq_132{margin:0;padding:0;list-style:none}._select__option_h9fbq_137{display:block;width:100%;list-style:none}._select__option_h9fbq_137[aria-disabled=true]{cursor:not-allowed}._select__option-content--disabled_h9fbq_145{opacity:.4}._select--size-small_h9fbq_148 ._select__wrapper_h9fbq_8{min-height:32px}._select--size-small_h9fbq_148 ._select__control_h9fbq_56{padding:var(--spacing-xs) var(--spacing-m);gap:var(--spacing-xs);font-size:var(--font-size-75);line-height:var(--line-height-75)}._select--size-small_h9fbq_148 ._select__trailing-icon_h9fbq_99 svg{width:var(--icon-size-12);height:var(--icon-size-12)}._select--size-small_h9fbq_148._select--label-floated_h9fbq_47 ._select__label_h9fbq_26{top:0;transform:translateY(-50%);font-size:var(--font-size-25);line-height:14px}._select--size-medium_h9fbq_167 ._select__wrapper_h9fbq_8{min-height:40px}._select--size-medium_h9fbq_167 ._select__control_h9fbq_56{padding:var(--spacing-s) var(--spacing-l);gap:var(--spacing-s);font-size:var(--font-size-100);line-height:var(--line-height-100)}._select--size-medium_h9fbq_167 ._select__label_h9fbq_26{font-size:var(--font-size-100);left:var(--spacing-m)}._select--size-medium_h9fbq_167 ._select__trailing-icon_h9fbq_99 svg{width:var(--icon-size-16);height:var(--icon-size-16)}._select--size-medium_h9fbq_167._select--label-floated_h9fbq_47 ._select__label_h9fbq_26{top:0;transform:translateY(-50%);font-size:var(--font-size-25);line-height:14px}._select--size-large_h9fbq_190 ._select__wrapper_h9fbq_8{min-height:48px}._select--size-large_h9fbq_190 ._select__control_h9fbq_56{padding:var(--spacing-m) var(--spacing-l);gap:var(--spacing-s);font-size:var(--font-size-200);line-height:var(--line-height-200)}._select--size-large_h9fbq_190 ._select__label_h9fbq_26{font-size:var(--font-size-200);line-height:var(--line-height-200);left:var(--spacing-m)}._select--size-large_h9fbq_190 ._select__trailing-icon_h9fbq_99 svg{width:var(--icon-size-16);height:var(--icon-size-16)}._select--size-large_h9fbq_190._select--label-floated_h9fbq_47 ._select__label_h9fbq_26{top:0;transform:translateY(-50%);font-size:var(--font-size-25);line-height:14px}._select_h9fbq_2:has(._select__label_h9fbq_26):not(._select--label-floated_h9fbq_47) ._select__value_h9fbq_82{color:transparent}._select--invalid_h9fbq_217 ._select__wrapper_h9fbq_8{box-shadow:inset 0 0 0 1px var(--error-text, var(--color-danger))}._select--invalid_h9fbq_217:focus-within ._select__wrapper_h9fbq_8{box-shadow:inset 0 0 0 1px var(--error-text, var(--color-danger)),0 0 0 1px var(--error-text, var(--color-danger))}._select--invalid_h9fbq_217 ._select__label_h9fbq_26{color:var(--error-text, var(--color-danger))}._select--invalid_h9fbq_217:focus-within ._select__label_h9fbq_26{color:var(--error-text, var(--color-danger))}._select--has-leading-icon_h9fbq_229 ._select__label_h9fbq_26{left:calc(var(--spacing-m) + var(--icon-size-16) + var(--spacing-xs) - var(--spacing-xxxs))}._select--has-leading-icon_h9fbq_229._select--label-floated_h9fbq_47 ._select__label_h9fbq_26{left:var(--spacing-xs)}._select--has-leading-icon_h9fbq_229._select--size-medium_h9fbq_167 ._select__label_h9fbq_26,._select--has-leading-icon_h9fbq_229._select--size-large_h9fbq_190 ._select__label_h9fbq_26{left:calc(var(--spacing-m) + var(--icon-size-16) + var(--spacing-s))}._select--has-leading-icon_h9fbq_229._select--size-medium_h9fbq_167._select--label-floated_h9fbq_47 ._select__label_h9fbq_26,._select--has-leading-icon_h9fbq_229._select--size-large_h9fbq_190._select--label-floated_h9fbq_47 ._select__label_h9fbq_26{left:var(--spacing-m)}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./Select.module.css');const e="_select_117uv_2",_="_select__wrapper_117uv_8",l="_select__label_117uv_26",t="_select__control_117uv_56",s="_select__value_117uv_82",c="_select__leadingIcon_117uv_92",o="_select__trailingIcon_117uv_99",n="_select__popup_117uv_111",i="_select__menu_117uv_127",u="_select__list_117uv_132",a="_select__option_117uv_137",p={select:e,select__wrapper:_,"select--disabled":"_select--disabled_117uv_16",select__label:l,"select--label-floated":"_select--label-floated_117uv_47",select__control:t,"select__control--placeholder":"_select__control--placeholder_117uv_82",select__value:s,select__leadingIcon:c,select__trailingIcon:o,"select--open":"_select--open_117uv_108",select__popup:n,"select__popup--above":"_select__popup--above_117uv_118","select__popup--visible":"_select__popup--visible_117uv_121",select__menu:i,select__list:u,select__option:a,"select__option-content--disabled":"_select__option-content--disabled_117uv_145","select--size-small":"_select--size-small_117uv_148","select--size-medium":"_select--size-medium_117uv_167","select--size-large":"_select--size-large_117uv_190","select--invalid":"_select--invalid_117uv_217","select--has-leading-icon":"_select--has-leading-icon_117uv_229"};exports.default=p;exports.select=e;exports.select__control=t;exports.select__label=l;exports.select__leadingIcon=c;exports.select__list=u;exports.select__menu=i;exports.select__option=a;exports.select__popup=n;exports.select__trailingIcon=o;exports.select__value=s;exports.select__wrapper=_;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./Select.module.css');const e="_select_h9fbq_2",_="_select__wrapper_h9fbq_8",l="_select__label_h9fbq_26",t="_select__control_h9fbq_56",s="_select__value_h9fbq_82",c="_select__popup_h9fbq_111",o="_select__menu_h9fbq_127",i="_select__list_h9fbq_132",n="_select__option_h9fbq_137",p={select:e,select__wrapper:_,"select--disabled":"_select--disabled_h9fbq_16",select__label:l,"select--label-floated":"_select--label-floated_h9fbq_47",select__control:t,"select__control--placeholder":"_select__control--placeholder_h9fbq_82",select__value:s,"select__leading-icon":"_select__leading-icon_h9fbq_92","select__trailing-icon":"_select__trailing-icon_h9fbq_99","select--open":"_select--open_h9fbq_108",select__popup:c,"select__popup--above":"_select__popup--above_h9fbq_118","select__popup--visible":"_select__popup--visible_h9fbq_121",select__menu:o,select__list:i,select__option:n,"select__option-content--disabled":"_select__option-content--disabled_h9fbq_145","select--size-small":"_select--size-small_h9fbq_148","select--size-medium":"_select--size-medium_h9fbq_167","select--size-large":"_select--size-large_h9fbq_190","select--invalid":"_select--invalid_h9fbq_217","select--has-leading-icon":"_select--has-leading-icon_h9fbq_229"};exports.default=p;exports.select=e;exports.select__control=t;exports.select__label=l;exports.select__list=i;exports.select__menu=o;exports.select__option=n;exports.select__popup=c;exports.select__value=s;exports.select__wrapper=_;
2
2
  //# sourceMappingURL=Select.module.scss.cjs.map
@@ -1,39 +1,37 @@
1
- import './Select.module.css';const e = "_select_117uv_2", _ = "_select__wrapper_117uv_8", l = "_select__label_117uv_26", t = "_select__control_117uv_56", s = "_select__value_117uv_82", c = "_select__leadingIcon_117uv_92", o = "_select__trailingIcon_117uv_99", n = "_select__popup_117uv_111", i = "_select__menu_117uv_127", a = "_select__list_117uv_132", u = "_select__option_117uv_137", p = {
1
+ import './Select.module.css';const e = "_select_h9fbq_2", _ = "_select__wrapper_h9fbq_8", l = "_select__label_h9fbq_26", t = "_select__control_h9fbq_56", s = "_select__value_h9fbq_82", c = "_select__popup_h9fbq_111", o = "_select__menu_h9fbq_127", n = "_select__list_h9fbq_132", i = "_select__option_h9fbq_137", a = {
2
2
  select: e,
3
3
  select__wrapper: _,
4
- "select--disabled": "_select--disabled_117uv_16",
4
+ "select--disabled": "_select--disabled_h9fbq_16",
5
5
  select__label: l,
6
- "select--label-floated": "_select--label-floated_117uv_47",
6
+ "select--label-floated": "_select--label-floated_h9fbq_47",
7
7
  select__control: t,
8
- "select__control--placeholder": "_select__control--placeholder_117uv_82",
8
+ "select__control--placeholder": "_select__control--placeholder_h9fbq_82",
9
9
  select__value: s,
10
- select__leadingIcon: c,
11
- select__trailingIcon: o,
12
- "select--open": "_select--open_117uv_108",
13
- select__popup: n,
14
- "select__popup--above": "_select__popup--above_117uv_118",
15
- "select__popup--visible": "_select__popup--visible_117uv_121",
16
- select__menu: i,
17
- select__list: a,
18
- select__option: u,
19
- "select__option-content--disabled": "_select__option-content--disabled_117uv_145",
20
- "select--size-small": "_select--size-small_117uv_148",
21
- "select--size-medium": "_select--size-medium_117uv_167",
22
- "select--size-large": "_select--size-large_117uv_190",
23
- "select--invalid": "_select--invalid_117uv_217",
24
- "select--has-leading-icon": "_select--has-leading-icon_117uv_229"
10
+ "select__leading-icon": "_select__leading-icon_h9fbq_92",
11
+ "select__trailing-icon": "_select__trailing-icon_h9fbq_99",
12
+ "select--open": "_select--open_h9fbq_108",
13
+ select__popup: c,
14
+ "select__popup--above": "_select__popup--above_h9fbq_118",
15
+ "select__popup--visible": "_select__popup--visible_h9fbq_121",
16
+ select__menu: o,
17
+ select__list: n,
18
+ select__option: i,
19
+ "select__option-content--disabled": "_select__option-content--disabled_h9fbq_145",
20
+ "select--size-small": "_select--size-small_h9fbq_148",
21
+ "select--size-medium": "_select--size-medium_h9fbq_167",
22
+ "select--size-large": "_select--size-large_h9fbq_190",
23
+ "select--invalid": "_select--invalid_h9fbq_217",
24
+ "select--has-leading-icon": "_select--has-leading-icon_h9fbq_229"
25
25
  };
26
26
  export {
27
- p as default,
27
+ a as default,
28
28
  e as select,
29
29
  t as select__control,
30
30
  l as select__label,
31
- c as select__leadingIcon,
32
- a as select__list,
33
- i as select__menu,
34
- u as select__option,
35
- n as select__popup,
36
- o as select__trailingIcon,
31
+ n as select__list,
32
+ o as select__menu,
33
+ i as select__option,
34
+ c as select__popup,
37
35
  s as select__value,
38
36
  _ as select__wrapper
39
37
  };
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),C=require("react"),N=require("../../hooks/use-controllable.cjs"),g=require("../../utils/string.cjs"),s=require("./Switch.module.scss.cjs");function q({className:c="",size:o="medium",children:l,secondaryLabel:t,semiBold:u=!1,id:r,checked:a,defaultChecked:n,disabled:d,onChange:h,..._}){const m=C.useId(),i=r??m,[f,w]=N.useControllable(a,n,h),b=s.default[`switch--size-${g.toKebab(o)}`],j=u?s.default["switch--semi-bold"]:"",p=t!=null?s.default["switch--with-secondary"]:"",x=[s.default.switch,b,j,p,c].filter(Boolean).join(" ");return e.jsxs("label",{className:x,htmlFor:i,children:[(l!=null||t!=null)&&e.jsxs("span",{className:s.default.switch__labels,children:[l!=null&&e.jsx("span",{className:s.default.switch__label,children:l}),t!=null&&e.jsx("span",{className:s.default["switch__secondary-label"],children:t})]}),e.jsxs("span",{className:s.default.switch__track,"aria-hidden":!0,children:[e.jsx("input",{id:i,type:"checkbox",role:"switch",className:s.default.switch__input,checked:a,defaultChecked:n,disabled:d,"aria-checked":f,onChange:w,..._}),e.jsx("span",{className:s.default.switch__knob})]})]})}exports.default=q;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),C=require("react"),N=require("../../hooks/use-controllable.cjs"),g=require("../../utils/string.cjs"),s=require("./Switch.module.scss.cjs");function q({className:c="",size:o="medium",children:l,secondaryLabel:t,semiBold:u=!1,id:r,checked:a,defaultChecked:n,disabled:d,onChange:h,..._}){const m=C.useId(),i=r??m,[f,w]=N.useControllable(a,n,h),b=s.default[`switch--size-${g.toKebab(o)}`],j=u?s.default["switch--semi-bold"]:"",p=t!=null?s.default["switch--with-secondary"]:"",x=[s.default.switch,b,j,p,c].filter(Boolean).join(" ");return e.jsxs("label",{className:x,htmlFor:i,children:[(l!=null||t!=null)&&e.jsxs("span",{className:s.default.switch__labels,children:[l!=null&&e.jsx("span",{className:s.default.switch__label,children:l}),t!=null&&e.jsx("span",{className:s.default["switch__secondary-label"],children:t})]}),e.jsxs("span",{className:s.default.switch__track,children:[e.jsx("input",{id:i,type:"checkbox",role:"switch",className:s.default.switch__input,checked:a,defaultChecked:n,disabled:d,"aria-checked":f,onChange:w,..._}),e.jsx("span",{className:s.default.switch__knob,"aria-hidden":!0})]})]})}exports.default=q;
2
2
  //# sourceMappingURL=Switch.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.cjs","sources":["../../../src/components/switch/Switch.tsx"],"sourcesContent":["import type { InputHTMLAttributes } from 'react';\nimport { useId } from 'react';\nimport { useControllable } from '@/hooks/use-controllable';\nimport { toKebab } from '@/utils/string';\nimport styles from './Switch.module.scss';\n\nexport type SwitchSize = 'small' | 'medium' | 'large';\n\nexport interface SwitchProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'type'\n> {\n /** Optional CSS class name. */\n className?: string;\n /** Size variant. Figma: Small (16px), Medium (20px), Large (24px). Default: Medium. */\n size?: SwitchSize;\n /** Primary label content. Rendered to the left of the switch. */\n children?: React.ReactNode;\n /** Optional secondary label (e.g. description) below the primary label. */\n secondaryLabel?: React.ReactNode;\n /** When true, primary label uses semi-bold (600) weight. Default: false. */\n semiBold?: boolean;\n}\n\n/**\n * A Switch is a real-world toggle: flip it, and the change happens. Use it for binary\n * settings that take effect immediately and don't need a separate \"Save\" step.\n */\nexport default function Switch({\n className = '',\n size = 'medium',\n children,\n secondaryLabel,\n semiBold = false,\n id: idProp,\n checked,\n defaultChecked,\n disabled,\n onChange,\n ...rest\n}: SwitchProps) {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const [resolvedChecked, handleChange] = useControllable(\n checked,\n defaultChecked,\n onChange,\n );\n\n const sizeClass = styles[`switch--size-${toKebab(size)}`];\n const semiBoldClass = semiBold ? styles['switch--semi-bold'] : '';\n const secondaryClass =\n secondaryLabel != null ? styles['switch--with-secondary'] : '';\n\n const rootClass = [\n styles.switch,\n sizeClass,\n semiBoldClass,\n secondaryClass,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <label className={rootClass} htmlFor={id}>\n {(children != null || secondaryLabel != null) && (\n <span className={styles['switch__labels']}>\n {children != null && (\n <span className={styles['switch__label']}>{children}</span>\n )}\n {secondaryLabel != null && (\n <span className={styles['switch__secondary-label']}>\n {secondaryLabel}\n </span>\n )}\n </span>\n )}\n <span className={styles['switch__track']} aria-hidden>\n {/* Native checkbox (visually hidden via CSS); provides semantics, keyboard, and form support */}\n <input\n id={id}\n type=\"checkbox\"\n role=\"switch\"\n className={styles['switch__input']}\n checked={checked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n aria-checked={resolvedChecked}\n onChange={handleChange}\n {...rest}\n />\n <span className={styles['switch__knob']} />\n </span>\n </label>\n );\n}\n"],"names":["Switch","className","size","children","secondaryLabel","semiBold","idProp","checked","defaultChecked","disabled","onChange","rest","generatedId","useId","id","resolvedChecked","handleChange","useControllable","sizeClass","styles","toKebab","semiBoldClass","secondaryClass","rootClass","jsxs","jsx"],"mappings":"2RA4BA,SAAwBA,EAAO,CAC7B,UAAAC,EAAY,GACZ,KAAAC,EAAO,SACP,SAAAC,EACA,eAAAC,EACA,SAAAC,EAAW,GACX,GAAIC,EACJ,QAAAC,EACA,eAAAC,EACA,SAAAC,EACA,SAAAC,EACA,GAAGC,CACL,EAAgB,CACd,MAAMC,EAAcC,EAAAA,MAAA,EACdC,EAAKR,GAAUM,EACf,CAACG,EAAiBC,CAAY,EAAIC,EAAAA,gBACtCV,EACAC,EACAE,CAAA,EAGIQ,EAAYC,EAAAA,QAAO,gBAAgBC,EAAAA,QAAQlB,CAAI,CAAC,EAAE,EAClDmB,EAAgBhB,EAAWc,UAAO,mBAAmB,EAAI,GACzDG,EACJlB,GAAkB,KAAOe,EAAAA,QAAO,wBAAwB,EAAI,GAExDI,EAAY,CAChBJ,EAAAA,QAAO,OACPD,EACAG,EACAC,EACArB,CAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEuB,EAAAA,KAAC,QAAA,CAAM,UAAWD,EAAW,QAAST,EAClC,SAAA,EAAAX,GAAY,MAAQC,GAAkB,OACtCoB,EAAAA,KAAC,QAAK,UAAWL,EAAAA,QAAO,eACrB,SAAA,CAAAhB,GAAY,MACXsB,EAAAA,IAAC,OAAA,CAAK,UAAWN,UAAO,cAAmB,SAAAhB,EAAS,EAErDC,GAAkB,MACjBqB,EAAAA,IAAC,OAAA,CAAK,UAAWN,EAAAA,QAAO,yBAAyB,EAC9C,SAAAf,CAAA,CACH,CAAA,EAEJ,SAED,OAAA,CAAK,UAAWe,EAAAA,QAAO,cAAkB,cAAW,GAEnD,SAAA,CAAAM,EAAAA,IAAC,QAAA,CACC,GAAAX,EACA,KAAK,WACL,KAAK,SACL,UAAWK,EAAAA,QAAO,cAClB,QAAAZ,EACA,eAAAC,EACA,SAAAC,EACA,eAAcM,EACd,SAAUC,EACT,GAAGL,CAAA,CAAA,EAENc,EAAAA,IAAC,OAAA,CAAK,UAAWN,EAAAA,QAAO,YAAc,CAAG,CAAA,CAAA,CAC3C,CAAA,EACF,CAEJ"}
1
+ {"version":3,"file":"Switch.cjs","sources":["../../../src/components/switch/Switch.tsx"],"sourcesContent":["import type { InputHTMLAttributes } from 'react';\nimport { useId } from 'react';\nimport { useControllable } from '@/hooks/use-controllable';\nimport { toKebab } from '@/utils/string';\nimport styles from './Switch.module.scss';\n\nexport type SwitchSize = 'small' | 'medium' | 'large';\n\nexport interface SwitchProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'type'\n> {\n /** Optional CSS class name. */\n className?: string;\n /** Size variant. Figma: Small (16px), Medium (20px), Large (24px). Default: Medium. */\n size?: SwitchSize;\n /** Primary label content. Rendered to the left of the switch. */\n children?: React.ReactNode;\n /** Optional secondary label (e.g. description) below the primary label. */\n secondaryLabel?: React.ReactNode;\n /** When true, primary label uses semi-bold (600) weight. Default: false. */\n semiBold?: boolean;\n}\n\n/**\n * A Switch is a real-world toggle: flip it, and the change happens. Use it for binary\n * settings that take effect immediately and don't need a separate \"Save\" step.\n */\nexport default function Switch({\n className = '',\n size = 'medium',\n children,\n secondaryLabel,\n semiBold = false,\n id: idProp,\n checked,\n defaultChecked,\n disabled,\n onChange,\n ...rest\n}: SwitchProps) {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const [resolvedChecked, handleChange] = useControllable(\n checked,\n defaultChecked,\n onChange,\n );\n\n const sizeClass = styles[`switch--size-${toKebab(size)}`];\n const semiBoldClass = semiBold ? styles['switch--semi-bold'] : '';\n const secondaryClass =\n secondaryLabel != null ? styles['switch--with-secondary'] : '';\n\n const rootClass = [\n styles.switch,\n sizeClass,\n semiBoldClass,\n secondaryClass,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <label className={rootClass} htmlFor={id}>\n {(children != null || secondaryLabel != null) && (\n <span className={styles['switch__labels']}>\n {children != null && (\n <span className={styles['switch__label']}>{children}</span>\n )}\n {secondaryLabel != null && (\n <span className={styles['switch__secondary-label']}>\n {secondaryLabel}\n </span>\n )}\n </span>\n )}\n <span className={styles['switch__track']}>\n <input\n id={id}\n type=\"checkbox\"\n role=\"switch\"\n className={styles['switch__input']}\n checked={checked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n aria-checked={resolvedChecked}\n onChange={handleChange}\n {...rest}\n />\n <span className={styles['switch__knob']} aria-hidden />\n </span>\n </label>\n );\n}\n"],"names":["Switch","className","size","children","secondaryLabel","semiBold","idProp","checked","defaultChecked","disabled","onChange","rest","generatedId","useId","id","resolvedChecked","handleChange","useControllable","sizeClass","styles","toKebab","semiBoldClass","secondaryClass","rootClass","jsxs","jsx"],"mappings":"2RA4BA,SAAwBA,EAAO,CAC7B,UAAAC,EAAY,GACZ,KAAAC,EAAO,SACP,SAAAC,EACA,eAAAC,EACA,SAAAC,EAAW,GACX,GAAIC,EACJ,QAAAC,EACA,eAAAC,EACA,SAAAC,EACA,SAAAC,EACA,GAAGC,CACL,EAAgB,CACd,MAAMC,EAAcC,EAAAA,MAAA,EACdC,EAAKR,GAAUM,EACf,CAACG,EAAiBC,CAAY,EAAIC,EAAAA,gBACtCV,EACAC,EACAE,CAAA,EAGIQ,EAAYC,EAAAA,QAAO,gBAAgBC,EAAAA,QAAQlB,CAAI,CAAC,EAAE,EAClDmB,EAAgBhB,EAAWc,UAAO,mBAAmB,EAAI,GACzDG,EACJlB,GAAkB,KAAOe,EAAAA,QAAO,wBAAwB,EAAI,GAExDI,EAAY,CAChBJ,EAAAA,QAAO,OACPD,EACAG,EACAC,EACArB,CAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEuB,EAAAA,KAAC,QAAA,CAAM,UAAWD,EAAW,QAAST,EAClC,SAAA,EAAAX,GAAY,MAAQC,GAAkB,OACtCoB,EAAAA,KAAC,QAAK,UAAWL,EAAAA,QAAO,eACrB,SAAA,CAAAhB,GAAY,MACXsB,EAAAA,IAAC,OAAA,CAAK,UAAWN,UAAO,cAAmB,SAAAhB,EAAS,EAErDC,GAAkB,MACjBqB,EAAAA,IAAC,OAAA,CAAK,UAAWN,EAAAA,QAAO,yBAAyB,EAC9C,SAAAf,CAAA,CACH,CAAA,EAEJ,EAEFoB,EAAAA,KAAC,OAAA,CAAK,UAAWL,EAAAA,QAAO,cACtB,SAAA,CAAAM,EAAAA,IAAC,QAAA,CACC,GAAAX,EACA,KAAK,WACL,KAAK,SACL,UAAWK,EAAAA,QAAO,cAClB,QAAAZ,EACA,eAAAC,EACA,SAAAC,EACA,eAAcM,EACd,SAAUC,EACT,GAAGL,CAAA,CAAA,QAEL,OAAA,CAAK,UAAWQ,EAAAA,QAAO,aAAiB,cAAW,EAAA,CAAC,CAAA,CAAA,CACvD,CAAA,EACF,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/components/switch/Switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAMjD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,WAAY,SAAQ,IAAI,CACvC,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,GAAG,MAAM,CAChB;IACC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,2EAA2E;IAC3E,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,SAAc,EACd,IAAe,EACf,QAAQ,EACR,cAAc,EACd,QAAgB,EAChB,EAAE,EAAE,MAAM,EACV,OAAO,EACP,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,WAAW,2CAwDb"}
1
+ {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/components/switch/Switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAMjD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,WAAY,SAAQ,IAAI,CACvC,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,GAAG,MAAM,CAChB;IACC,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,2EAA2E;IAC3E,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,SAAc,EACd,IAAe,EACf,QAAQ,EACR,cAAc,EACd,QAAgB,EAChB,EAAE,EAAE,MAAM,EACV,OAAO,EACP,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,WAAW,2CAuDb"}
@@ -32,7 +32,7 @@ function F({
32
32
  a != null && /* @__PURE__ */ t("span", { className: s.switch__label, children: a }),
33
33
  l != null && /* @__PURE__ */ t("span", { className: s["switch__secondary-label"], children: l })
34
34
  ] }),
35
- /* @__PURE__ */ e("span", { className: s.switch__track, "aria-hidden": !0, children: [
35
+ /* @__PURE__ */ e("span", { className: s.switch__track, children: [
36
36
  /* @__PURE__ */ t(
37
37
  "input",
38
38
  {
@@ -48,7 +48,7 @@ function F({
48
48
  ...u
49
49
  }
50
50
  ),
51
- /* @__PURE__ */ t("span", { className: s.switch__knob })
51
+ /* @__PURE__ */ t("span", { className: s.switch__knob, "aria-hidden": !0 })
52
52
  ] })
53
53
  ] });
54
54
  }