@mattermost/compass-ui 0.1.0-alpha.15 → 0.1.0-alpha.17

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 (198) hide show
  1. package/dist/components/admin-console-footer/AdminConsoleFooter.cjs +2 -0
  2. package/dist/components/admin-console-footer/AdminConsoleFooter.cjs.map +1 -0
  3. package/dist/components/admin-console-footer/AdminConsoleFooter.css +1 -0
  4. package/dist/components/admin-console-footer/AdminConsoleFooter.d.ts +27 -0
  5. package/dist/components/admin-console-footer/AdminConsoleFooter.d.ts.map +1 -0
  6. package/dist/components/admin-console-footer/AdminConsoleFooter.js +84 -0
  7. package/dist/components/admin-console-footer/AdminConsoleFooter.js.map +1 -0
  8. package/dist/components/admin-console-footer/AdminConsoleFooter.module.scss.cjs +2 -0
  9. package/dist/components/admin-console-footer/AdminConsoleFooter.module.scss.cjs.map +1 -0
  10. package/dist/components/admin-console-footer/AdminConsoleFooter.module.scss.js +13 -0
  11. package/dist/components/admin-console-footer/AdminConsoleFooter.module.scss.js.map +1 -0
  12. package/dist/components/admin-console-footer/index.cjs +2 -0
  13. package/dist/components/admin-console-footer/index.cjs.map +1 -0
  14. package/dist/components/admin-console-footer/index.d.ts +3 -0
  15. package/dist/components/admin-console-footer/index.d.ts.map +1 -0
  16. package/dist/components/admin-console-footer/index.js +5 -0
  17. package/dist/components/admin-console-footer/index.js.map +1 -0
  18. package/dist/components/admin-panel/AdminPanel.cjs +1 -1
  19. package/dist/components/admin-panel/AdminPanel.cjs.map +1 -1
  20. package/dist/components/admin-panel/AdminPanel.d.ts +41 -9
  21. package/dist/components/admin-panel/AdminPanel.d.ts.map +1 -1
  22. package/dist/components/admin-panel/AdminPanel.js +91 -81
  23. package/dist/components/admin-panel/AdminPanel.js.map +1 -1
  24. package/dist/components/admin-panel-footer/AdminPanelFooter.cjs +1 -1
  25. package/dist/components/admin-panel-footer/AdminPanelFooter.cjs.map +1 -1
  26. package/dist/components/admin-panel-footer/AdminPanelFooter.css +1 -1
  27. package/dist/components/admin-panel-footer/AdminPanelFooter.d.ts +18 -21
  28. package/dist/components/admin-panel-footer/AdminPanelFooter.d.ts.map +1 -1
  29. package/dist/components/admin-panel-footer/AdminPanelFooter.js +24 -61
  30. package/dist/components/admin-panel-footer/AdminPanelFooter.js.map +1 -1
  31. package/dist/components/admin-panel-footer/AdminPanelFooter.module.scss.cjs +1 -1
  32. package/dist/components/admin-panel-footer/AdminPanelFooter.module.scss.js +7 -9
  33. package/dist/components/admin-panel-footer/AdminPanelFooter.module.scss.js.map +1 -1
  34. package/dist/components/admin-panel-footer/index.d.ts +1 -1
  35. package/dist/components/admin-panel-footer/index.d.ts.map +1 -1
  36. package/dist/components/admin-panel-header/AdminPanelHeader.cjs.map +1 -1
  37. package/dist/components/admin-panel-header/AdminPanelHeader.d.ts +3 -2
  38. package/dist/components/admin-panel-header/AdminPanelHeader.d.ts.map +1 -1
  39. package/dist/components/admin-panel-header/AdminPanelHeader.js.map +1 -1
  40. package/dist/components/channel-sidebar-item/ChannelSidebarItem.css +1 -1
  41. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.cjs +1 -1
  42. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.js +22 -22
  43. package/dist/components/checkbox/Checkbox.css +1 -1
  44. package/dist/components/checkbox/Checkbox.module.scss.cjs +1 -1
  45. package/dist/components/checkbox/Checkbox.module.scss.js +10 -10
  46. package/dist/components/chip/Chip.css +1 -1
  47. package/dist/components/chip/Chip.module.scss.cjs +1 -1
  48. package/dist/components/chip/Chip.module.scss.js +12 -12
  49. package/dist/components/combobox/Combobox.cjs +1 -1
  50. package/dist/components/combobox/Combobox.cjs.map +1 -1
  51. package/dist/components/combobox/Combobox.css +1 -1
  52. package/dist/components/combobox/Combobox.d.ts +14 -0
  53. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  54. package/dist/components/combobox/Combobox.js +240 -224
  55. package/dist/components/combobox/Combobox.js.map +1 -1
  56. package/dist/components/combobox/Combobox.module.scss.cjs +1 -1
  57. package/dist/components/combobox/Combobox.module.scss.js +21 -21
  58. package/dist/components/error-message/ErrorMessage.cjs +1 -1
  59. package/dist/components/error-message/ErrorMessage.cjs.map +1 -1
  60. package/dist/components/error-message/ErrorMessage.d.ts +2 -3
  61. package/dist/components/error-message/ErrorMessage.d.ts.map +1 -1
  62. package/dist/components/error-message/ErrorMessage.js +16 -14
  63. package/dist/components/error-message/ErrorMessage.js.map +1 -1
  64. package/dist/components/field/FieldClearButton.cjs +2 -0
  65. package/dist/components/field/FieldClearButton.cjs.map +1 -0
  66. package/dist/components/field/FieldClearButton.css +1 -0
  67. package/dist/components/field/FieldClearButton.d.ts +17 -0
  68. package/dist/components/field/FieldClearButton.d.ts.map +1 -0
  69. package/dist/components/field/FieldClearButton.js +40 -0
  70. package/dist/components/field/FieldClearButton.js.map +1 -0
  71. package/dist/components/field/FieldClearButton.module.scss.cjs +2 -0
  72. package/dist/components/field/FieldClearButton.module.scss.cjs.map +1 -0
  73. package/dist/components/field/FieldClearButton.module.scss.js +7 -0
  74. package/dist/components/field/FieldClearButton.module.scss.js.map +1 -0
  75. package/dist/components/field/fieldDescribedBy.cjs +2 -0
  76. package/dist/components/field/fieldDescribedBy.cjs.map +1 -0
  77. package/dist/components/field/fieldDescribedBy.d.ts +11 -0
  78. package/dist/components/field/fieldDescribedBy.d.ts.map +1 -0
  79. package/dist/components/field/fieldDescribedBy.js +15 -0
  80. package/dist/components/field/fieldDescribedBy.js.map +1 -0
  81. package/dist/components/field/useFieldClear.cjs +2 -0
  82. package/dist/components/field/useFieldClear.cjs.map +1 -0
  83. package/dist/components/field/useFieldClear.d.ts +21 -0
  84. package/dist/components/field/useFieldClear.d.ts.map +1 -0
  85. package/dist/components/field/useFieldClear.js +73 -0
  86. package/dist/components/field/useFieldClear.js.map +1 -0
  87. package/dist/components/field-message/FieldMessage.cjs +2 -0
  88. package/dist/components/field-message/FieldMessage.cjs.map +1 -0
  89. package/dist/components/field-message/FieldMessage.css +1 -0
  90. package/dist/components/field-message/FieldMessage.d.ts +17 -0
  91. package/dist/components/field-message/FieldMessage.d.ts.map +1 -0
  92. package/dist/components/field-message/FieldMessage.js +28 -0
  93. package/dist/components/field-message/FieldMessage.js.map +1 -0
  94. package/dist/components/field-message/FieldMessage.module.scss.cjs +2 -0
  95. package/dist/components/field-message/FieldMessage.module.scss.cjs.map +1 -0
  96. package/dist/components/field-message/FieldMessage.module.scss.js +13 -0
  97. package/dist/components/field-message/FieldMessage.module.scss.js.map +1 -0
  98. package/dist/components/field-message/index.cjs +2 -0
  99. package/dist/components/field-message/index.cjs.map +1 -0
  100. package/dist/components/field-message/index.d.ts +3 -0
  101. package/dist/components/field-message/index.d.ts.map +1 -0
  102. package/dist/components/field-message/index.js +5 -0
  103. package/dist/components/field-message/index.js.map +1 -0
  104. package/dist/components/menu-item/MenuItem.cjs.map +1 -1
  105. package/dist/components/menu-item/MenuItem.css +1 -1
  106. package/dist/components/menu-item/MenuItem.d.ts +20 -0
  107. package/dist/components/menu-item/MenuItem.d.ts.map +1 -1
  108. package/dist/components/menu-item/MenuItem.js.map +1 -1
  109. package/dist/components/menu-item/MenuItem.module.scss.cjs +1 -1
  110. package/dist/components/menu-item/MenuItem.module.scss.js +16 -16
  111. package/dist/components/menu-item/index.d.ts +1 -1
  112. package/dist/components/menu-item/index.d.ts.map +1 -1
  113. package/dist/components/password-input/PasswordInput.cjs +2 -0
  114. package/dist/components/password-input/PasswordInput.cjs.map +1 -0
  115. package/dist/components/password-input/PasswordInput.css +1 -0
  116. package/dist/components/password-input/PasswordInput.d.ts +49 -0
  117. package/dist/components/password-input/PasswordInput.d.ts.map +1 -0
  118. package/dist/components/password-input/PasswordInput.js +140 -0
  119. package/dist/components/password-input/PasswordInput.js.map +1 -0
  120. package/dist/components/password-input/PasswordInput.module.scss.cjs +2 -0
  121. package/dist/components/password-input/PasswordInput.module.scss.cjs.map +1 -0
  122. package/dist/components/password-input/PasswordInput.module.scss.js +18 -0
  123. package/dist/components/password-input/PasswordInput.module.scss.js.map +1 -0
  124. package/dist/components/password-input/index.cjs +2 -0
  125. package/dist/components/password-input/index.cjs.map +1 -0
  126. package/dist/components/password-input/index.d.ts +3 -0
  127. package/dist/components/password-input/index.d.ts.map +1 -0
  128. package/dist/components/password-input/index.js +5 -0
  129. package/dist/components/password-input/index.js.map +1 -0
  130. package/dist/components/radio/Radio.css +1 -1
  131. package/dist/components/radio/Radio.module.scss.cjs +1 -1
  132. package/dist/components/radio/Radio.module.scss.js +12 -12
  133. package/dist/components/search-input/SearchInput.cjs +1 -1
  134. package/dist/components/search-input/SearchInput.cjs.map +1 -1
  135. package/dist/components/search-input/SearchInput.css +1 -1
  136. package/dist/components/search-input/SearchInput.d.ts +8 -0
  137. package/dist/components/search-input/SearchInput.d.ts.map +1 -1
  138. package/dist/components/search-input/SearchInput.js +114 -115
  139. package/dist/components/search-input/SearchInput.js.map +1 -1
  140. package/dist/components/search-input/SearchInput.module.scss.cjs +1 -1
  141. package/dist/components/search-input/SearchInput.module.scss.js +15 -16
  142. package/dist/components/search-input/SearchInput.module.scss.js.map +1 -1
  143. package/dist/components/section-notice/SectionNotice.cjs +1 -1
  144. package/dist/components/section-notice/SectionNotice.cjs.map +1 -1
  145. package/dist/components/section-notice/SectionNotice.css +1 -1
  146. package/dist/components/section-notice/SectionNotice.js +17 -17
  147. package/dist/components/section-notice/SectionNotice.js.map +1 -1
  148. package/dist/components/section-notice/SectionNotice.module.scss.cjs +1 -1
  149. package/dist/components/section-notice/SectionNotice.module.scss.js +12 -12
  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.css +1 -1
  153. package/dist/components/select/Select.d.ts +16 -0
  154. package/dist/components/select/Select.d.ts.map +1 -1
  155. package/dist/components/select/Select.js +177 -157
  156. package/dist/components/select/Select.js.map +1 -1
  157. package/dist/components/select/Select.module.scss.cjs +1 -1
  158. package/dist/components/select/Select.module.scss.js +20 -20
  159. package/dist/components/switch/Switch.css +1 -1
  160. package/dist/components/switch/Switch.module.scss.cjs +1 -1
  161. package/dist/components/switch/Switch.module.scss.js +9 -9
  162. package/dist/components/text-area/TextArea.cjs +1 -1
  163. package/dist/components/text-area/TextArea.cjs.map +1 -1
  164. package/dist/components/text-area/TextArea.css +1 -1
  165. package/dist/components/text-area/TextArea.d.ts +8 -0
  166. package/dist/components/text-area/TextArea.d.ts.map +1 -1
  167. package/dist/components/text-area/TextArea.js +86 -67
  168. package/dist/components/text-area/TextArea.js.map +1 -1
  169. package/dist/components/text-area/TextArea.module.scss.cjs +1 -1
  170. package/dist/components/text-area/TextArea.module.scss.js +12 -10
  171. package/dist/components/text-area/TextArea.module.scss.js.map +1 -1
  172. package/dist/components/text-input/TextInput.cjs +1 -1
  173. package/dist/components/text-input/TextInput.cjs.map +1 -1
  174. package/dist/components/text-input/TextInput.css +1 -1
  175. package/dist/components/text-input/TextInput.d.ts +38 -1
  176. package/dist/components/text-input/TextInput.d.ts.map +1 -1
  177. package/dist/components/text-input/TextInput.js +149 -93
  178. package/dist/components/text-input/TextInput.js.map +1 -1
  179. package/dist/components/text-input/TextInput.module.scss.cjs +1 -1
  180. package/dist/components/text-input/TextInput.module.scss.js +19 -14
  181. package/dist/components/text-input/TextInput.module.scss.js.map +1 -1
  182. package/dist/index.cjs +1 -1
  183. package/dist/index.d.ts +3 -0
  184. package/dist/index.d.ts.map +1 -1
  185. package/dist/index.js +172 -166
  186. package/dist/index.js.map +1 -1
  187. package/dist/utils/menuItemProps.cjs +2 -0
  188. package/dist/utils/menuItemProps.cjs.map +1 -0
  189. package/dist/utils/menuItemProps.d.ts +5 -0
  190. package/dist/utils/menuItemProps.d.ts.map +1 -0
  191. package/dist/utils/menuItemProps.js +12 -0
  192. package/dist/utils/menuItemProps.js.map +1 -0
  193. package/package.json +10 -1
  194. package/dist/components/error-message/ErrorMessage.css +0 -1
  195. package/dist/components/error-message/ErrorMessage.module.scss.cjs +0 -2
  196. package/dist/components/error-message/ErrorMessage.module.scss.cjs.map +0 -1
  197. package/dist/components/error-message/ErrorMessage.module.scss.js +0 -9
  198. package/dist/components/error-message/ErrorMessage.module.scss.js.map +0 -1
@@ -1,155 +1,173 @@
1
- import { jsxs as S, jsx as r } from "react/jsx-runtime";
2
- import { forwardRef as ye, useId as Ie, useRef as V, useCallback as _, useState as I, useMemo as X, useEffect as q } from "react";
3
- import __we from "@mattermost/compass-icons/components/chevron-down.js";const we=__we&&__we.default?__we.default:__we;
4
- import De, { IconSlotContext as Pe } from "../icon/Icon.js";
5
- import ke from "../menu-item/MenuItem.js";
6
- import Ne, { PopoverMenuScroll as Ee } from "../popover-menu/PopoverMenu.js";
7
- import { useAnchoredPopupPortal as Se } from "../../hooks/use-anchored-popup-portal.js";
8
- import { useOutsideClose as Ve } from "../../hooks/use-outside-close.js";
9
- import { usePopoverTransition as Me } from "../../hooks/use-popover-transition.js";
10
- import { toKebab as Oe } from "../../utils/string.js";
1
+ import { jsxs as k, jsx as o, Fragment as we } from "react/jsx-runtime";
2
+ import { forwardRef as De, useId as ke, useRef as w, useCallback as p, useState as D, useMemo as J, useEffect as Q } from "react";
3
+ import __Ne from "@mattermost/compass-icons/components/chevron-down.js";const Ne=__Ne&&__Ne.default?__Ne.default:__Ne;
4
+ import Ee, { IconSlotContext as Me } from "../icon/Icon.js";
5
+ import Re from "../menu-item/MenuItem.js";
6
+ import Se, { PopoverMenuScroll as Ve, PopoverMenuDivider as Ae } from "../popover-menu/PopoverMenu.js";
7
+ import { useAnchoredPopupPortal as Oe } from "../../hooks/use-anchored-popup-portal.js";
8
+ import { useOutsideClose as $e } from "../../hooks/use-outside-close.js";
9
+ import { usePopoverTransition as Be } from "../../hooks/use-popover-transition.js";
10
+ import { mergeMenuItemProps as He } from "../../utils/menuItemProps.js";
11
+ import { toKebab as Fe } from "../../utils/string.js";
11
12
  import l from "./Select.module.scss.js";
12
- const J = 280;
13
- function Re({
13
+ const W = 280;
14
+ function je({
14
15
  option: i,
15
- listboxId: p,
16
- selected: x,
17
- active: w,
18
- onSelect: m,
19
- onHover: D
16
+ menuItemProps: m,
17
+ listboxId: N,
18
+ selected: g,
19
+ active: E,
20
+ onSelect: v,
21
+ onHover: M,
22
+ dividerAfter: u = !1
20
23
  }) {
21
- return /* @__PURE__ */ r("li", { className: l.select__option, role: "presentation", children: /* @__PURE__ */ r(
22
- ke,
23
- {
24
- id: `${p}-option-${i.value}`,
25
- role: "option",
26
- label: i.label,
27
- secondaryLabel: i.secondaryLabel,
28
- leadingElement: i.leadingVisual != null,
29
- leadingVisual: i.leadingVisual,
30
- trailingElement: x,
31
- active: w,
32
- disabled: i.disabled,
33
- "aria-selected": x,
34
- onMouseDown: (u) => u.preventDefault(),
35
- onMouseEnter: D,
36
- onPointerUp: () => {
37
- i.disabled || m(i);
24
+ return /* @__PURE__ */ k(we, { children: [
25
+ /* @__PURE__ */ o("li", { className: l.select__option, role: "presentation", children: /* @__PURE__ */ o(
26
+ Re,
27
+ {
28
+ ...He(m, i.menuItemProps),
29
+ id: `${N}-option-${i.value}`,
30
+ role: "option",
31
+ label: i.label,
32
+ secondaryLabel: i.secondaryLabel,
33
+ leadingElement: i.leadingVisual != null,
34
+ leadingVisual: i.leadingVisual,
35
+ trailingElement: g,
36
+ active: E,
37
+ disabled: i.disabled,
38
+ "aria-selected": g,
39
+ onMouseDown: (I) => I.preventDefault(),
40
+ onMouseEnter: M,
41
+ onPointerUp: () => {
42
+ i.disabled || v(i);
43
+ }
38
44
  }
39
- }
40
- ) });
45
+ ) }),
46
+ u ? /* @__PURE__ */ o("li", { role: "presentation", children: /* @__PURE__ */ o(Ae, { "aria-hidden": "true" }) }) : null
47
+ ] });
41
48
  }
42
- const Le = ye(function({
43
- options: p,
44
- value: x,
45
- defaultValue: w = "",
46
- onChange: m,
47
- placeholder: D,
49
+ const Ye = De(function({
50
+ options: m,
51
+ menuItemProps: N,
52
+ value: g,
53
+ defaultValue: E = "",
54
+ onChange: v,
55
+ placeholder: M,
48
56
  label: u,
49
- leadingIcon: P,
50
- size: Q = "medium",
51
- invalid: M = !1,
52
- disabled: v = !1,
53
- id: W,
57
+ leadingIcon: I,
58
+ size: Y = "medium",
59
+ invalid: A = !1,
60
+ disabled: b = !1,
61
+ id: Z,
54
62
  name: O,
55
- className: Y = "",
56
- "aria-label": R,
57
- listboxLabel: Z = "Options",
58
- portalContainer: ee = null,
59
- zIndex: te
60
- }, g) {
61
- const le = Ie(), k = W ?? le, b = `${k}-listbox`, $ = V(null), H = V(null), A = V(null), ne = _(
63
+ className: ee = "",
64
+ "aria-label": $,
65
+ listboxLabel: te = "Options",
66
+ portalContainer: le = null,
67
+ zIndex: ne
68
+ }, x) {
69
+ const se = ke(), R = Z ?? se, h = `${R}-listbox`, B = w(null), H = w(null), F = w(null), re = p(
62
70
  (e) => {
63
- A.current = e, typeof g == "function" ? g(e) : g && (g.current = e);
71
+ F.current = e, typeof x == "function" ? x(e) : x && (x.current = e);
64
72
  },
65
- [g]
66
- ), N = x !== void 0, [se, oe] = I(w), d = N ? x : se, [s, B] = I(!1), [re, j] = I(!1), [c, f] = I(-1), E = X(
67
- () => p.find((e) => e.value === d),
68
- [p, d]
69
- ), o = X(
70
- () => p.filter((e) => e.value !== ""),
71
- [p]
72
- ), C = d !== "", { mounted: F, visible: ae } = Me(s), {
73
- placement: ie,
74
- maxHeight: ce,
75
- style: ue,
76
- portalRef: z,
77
- renderPortal: de
78
- } = Se(H, F, {
79
- preferredHeight: J,
80
- maxHeightCap: J,
81
- portalContainer: ee,
82
- zIndex: te
83
- }), h = _(() => {
84
- B(!1), f(-1);
85
- }, []), y = _(() => {
86
- v || B(!0);
87
- }, [v]);
88
- Ve($, s, h, z), q(() => {
73
+ [x]
74
+ ), S = g !== void 0, [oe, ae] = D(E), d = S ? g : oe, [s, j] = D(!1), [ie, C] = D(!1), [a, f] = D(-1), y = w(!1), ce = p(
75
+ (e) => {
76
+ e !== a && (y.current = !0, f(e));
77
+ },
78
+ [a]
79
+ ), V = J(
80
+ () => m.find((e) => e.value === d),
81
+ [m, d]
82
+ ), r = J(
83
+ () => m.filter((e) => e.value !== ""),
84
+ [m]
85
+ ), z = d !== "", { mounted: U, visible: ue } = Be(s), {
86
+ placement: de,
87
+ maxHeight: fe,
88
+ style: pe,
89
+ portalRef: K,
90
+ renderPortal: me
91
+ } = Oe(H, U, {
92
+ preferredHeight: W,
93
+ maxHeightCap: W,
94
+ portalContainer: le,
95
+ zIndex: ne
96
+ }), _ = p(() => {
97
+ j(!1), f(-1);
98
+ }, []), P = p(() => {
99
+ b || j(!0);
100
+ }, [b]);
101
+ $e(B, s, _, K), Q(() => {
89
102
  s && f((e) => {
90
- if (o.length === 0) return -1;
91
- if (e >= 0 && e < o.length) return e;
92
- const t = o.findIndex((a) => a.value === d);
103
+ if (r.length === 0) return -1;
104
+ if (e >= 0 && e < r.length) return e;
105
+ const t = r.findIndex((c) => c.value === d);
93
106
  if (t >= 0) return t;
94
- const n = o.findIndex((a) => !a.disabled);
107
+ const n = r.findIndex((c) => !c.disabled);
95
108
  return n >= 0 ? n : 0;
96
109
  });
97
- }, [s, o, d]);
98
- const U = _(
110
+ }, [s, r, d]);
111
+ const T = p(
99
112
  (e) => {
100
- N || oe(e), m == null || m(e);
113
+ S || ae(e), v == null || v(e);
101
114
  },
102
- [N, m]
103
- ), K = _(
115
+ [S, v]
116
+ ), L = p(
104
117
  (e) => {
105
118
  var t;
106
- e.disabled || (U(e.value), h(), (t = A.current) == null || t.focus());
119
+ e.disabled || (T(e.value), _(), (t = F.current) == null || t.focus());
107
120
  },
108
- [U, h]
109
- ), T = _(
121
+ [T, _]
122
+ ), G = p(
110
123
  (e) => {
111
- const t = o.map((n, a) => ({ o: n, i: a })).filter(({ o: n }) => !n.disabled);
124
+ y.current = !1;
125
+ const t = r.map((n, c) => ({ o: n, i: c })).filter(({ o: n }) => !n.disabled);
112
126
  if (t.length === 0) {
113
127
  f(-1);
114
128
  return;
115
129
  }
116
130
  f((n) => {
117
- const a = t.findIndex(({ i: ge }) => ge === n), xe = a < 0 ? e > 0 ? 0 : t.length - 1 : (a + e + t.length) % t.length;
118
- return t[xe].i;
131
+ const c = t.findIndex(({ i: Pe }) => Pe === n), ye = c < 0 ? e > 0 ? 0 : t.length - 1 : (c + e + t.length) % t.length;
132
+ return t[ye].i;
119
133
  });
120
134
  },
121
- [o]
135
+ [r]
122
136
  );
123
- q(() => {
137
+ Q(() => {
124
138
  var n;
125
- if (!s || c < 0) return;
126
- const e = o[c];
139
+ if (!s || a < 0) return;
140
+ if (y.current) {
141
+ y.current = !1;
142
+ return;
143
+ }
144
+ const e = r[a];
127
145
  if (!e) return;
128
- const t = document.getElementById(`${b}-option-${e.value}`);
146
+ const t = document.getElementById(`${h}-option-${e.value}`);
129
147
  (n = t == null ? void 0 : t.scrollIntoView) == null || n.call(t, { block: "nearest" });
130
- }, [s, c, o, b]);
131
- const fe = (e) => {
148
+ }, [s, a, r, h]);
149
+ const ve = (e) => {
132
150
  var t;
133
- if (!v)
151
+ if (!b)
134
152
  switch (e.key) {
135
153
  case "ArrowDown":
136
- e.preventDefault(), s ? T(1) : y();
154
+ e.preventDefault(), s ? G(1) : P();
137
155
  break;
138
156
  case "ArrowUp":
139
- e.preventDefault(), s ? T(-1) : y();
157
+ e.preventDefault(), s ? G(-1) : P();
140
158
  break;
141
159
  case "Home":
142
- if (s && o.length > 0) {
160
+ if (s && r.length > 0) {
143
161
  e.preventDefault();
144
- const n = o.findIndex((a) => !a.disabled);
162
+ const n = r.findIndex((c) => !c.disabled);
145
163
  f(n >= 0 ? n : 0);
146
164
  }
147
165
  break;
148
166
  case "End":
149
- if (s && o.length > 0) {
167
+ if (s && r.length > 0) {
150
168
  e.preventDefault();
151
- for (let n = o.length - 1; n >= 0; n--)
152
- if (!((t = o[n]) != null && t.disabled)) {
169
+ for (let n = r.length - 1; n >= 0; n--)
170
+ if (!((t = r[n]) != null && t.disabled)) {
153
171
  f(n);
154
172
  break;
155
173
  }
@@ -157,86 +175,88 @@ const Le = ye(function({
157
175
  break;
158
176
  case "Enter":
159
177
  case " ":
160
- e.preventDefault(), s && c >= 0 && o[c] ? K(o[c]) : s || y();
178
+ e.preventDefault(), s && a >= 0 && r[a] ? L(r[a]) : s || P();
161
179
  break;
162
180
  case "Escape":
163
- s && (e.preventDefault(), h());
181
+ s && (e.preventDefault(), _());
164
182
  break;
165
183
  case "Tab":
166
- h();
184
+ _();
167
185
  break;
168
186
  }
169
- }, pe = re || s || C, L = (E == null ? void 0 : E.label) ?? D ?? "", me = !C && L !== "", G = c >= 0 ? o[c] : void 0, ve = s && G != null ? `${b}-option-${G.value}` : void 0, be = l[`select--size-${Oe(Q)}`], he = [
187
+ }, be = ie || s || z, X = (V == null ? void 0 : V.label) ?? M ?? "", he = !z && X !== "", q = a >= 0 ? r[a] : void 0, _e = s && q != null ? `${h}-option-${q.value}` : void 0, ge = l[`select--size-${Fe(Y)}`], Ie = [
170
188
  l.select,
171
- be,
172
- M ? l["select--invalid"] : "",
173
- u != null && pe ? l["select--label-floated"] : "",
174
- P != null ? l["select--has-leading-icon"] : "",
189
+ ge,
190
+ A ? l["select--invalid"] : "",
191
+ u != null && be ? l["select--label-floated"] : "",
192
+ I != null ? l["select--has-leading-icon"] : "",
175
193
  s ? l["select--open"] : "",
176
- v ? l["select--disabled"] : "",
177
- Y
178
- ].filter(Boolean).join(" "), _e = [
194
+ b ? l["select--disabled"] : "",
195
+ ee
196
+ ].filter(Boolean).join(" "), xe = [
179
197
  l.select__control,
180
- me ? l["select__control--placeholder"] : ""
198
+ he ? l["select__control--placeholder"] : ""
181
199
  ].filter(Boolean).join(" ");
182
- return /* @__PURE__ */ S("div", { className: he, ref: $, children: [
183
- /* @__PURE__ */ S("div", { className: l.select__wrapper, ref: H, children: [
184
- u != null && /* @__PURE__ */ r("label", { className: l.select__label, htmlFor: k, children: u }),
185
- /* @__PURE__ */ S(
200
+ return /* @__PURE__ */ k("div", { className: Ie, ref: B, children: [
201
+ /* @__PURE__ */ k("div", { className: l.select__wrapper, ref: H, children: [
202
+ u != null && /* @__PURE__ */ o("label", { className: l.select__label, htmlFor: R, children: u }),
203
+ /* @__PURE__ */ k(
186
204
  "button",
187
205
  {
188
- ref: ne,
189
- id: k,
206
+ ref: re,
207
+ id: R,
190
208
  type: "button",
191
209
  role: "combobox",
192
- className: _e,
193
- disabled: v,
210
+ className: xe,
211
+ disabled: b,
194
212
  "aria-haspopup": "listbox",
195
213
  "aria-expanded": s,
196
- "aria-controls": b,
197
- "aria-activedescendant": ve,
198
- "aria-invalid": M ? !0 : void 0,
199
- "aria-label": R,
200
- onClick: () => s ? h() : y(),
201
- onFocus: () => j(!0),
202
- onBlur: () => j(!1),
203
- onKeyDown: fe,
214
+ "aria-controls": h,
215
+ "aria-activedescendant": _e,
216
+ "aria-invalid": A ? !0 : void 0,
217
+ "aria-label": $,
218
+ onClick: () => s ? _() : P(),
219
+ onFocus: () => C(!0),
220
+ onBlur: () => C(!1),
221
+ onKeyDown: ve,
204
222
  children: [
205
- P != null && /* @__PURE__ */ r("span", { className: l["select__leading-icon"], "aria-hidden": !0, children: /* @__PURE__ */ r(Pe.Provider, { value: { size: "16" }, children: P }) }),
206
- /* @__PURE__ */ r("span", { className: l.select__value, children: L }),
207
- /* @__PURE__ */ r("span", { className: l["select__trailing-icon"], "aria-hidden": !0, children: /* @__PURE__ */ r(De, { size: "12", glyph: /* @__PURE__ */ r(we, {}) }) })
223
+ I != null && /* @__PURE__ */ o("span", { className: l["select__leading-icon"], "aria-hidden": !0, children: /* @__PURE__ */ o(Me.Provider, { value: { size: "16" }, children: I }) }),
224
+ /* @__PURE__ */ o("span", { className: l.select__value, children: X }),
225
+ /* @__PURE__ */ o("span", { className: l["select__trailing-icon"], "aria-hidden": !0, children: /* @__PURE__ */ o(Ee, { size: "12", glyph: /* @__PURE__ */ o(Ne, {}) }) })
208
226
  ]
209
227
  }
210
228
  )
211
229
  ] }),
212
- O != null && !v && /* @__PURE__ */ r("input", { type: "hidden", name: O, value: d }),
213
- F && de(
214
- /* @__PURE__ */ r(
230
+ O != null && !b && /* @__PURE__ */ o("input", { type: "hidden", name: O, value: d }),
231
+ U && me(
232
+ /* @__PURE__ */ o(
215
233
  "div",
216
234
  {
217
- ref: z,
235
+ ref: K,
218
236
  className: [
219
237
  l.select__popup,
220
- ie === "above" ? l["select__popup--above"] : "",
221
- ae ? l["select__popup--visible"] : ""
238
+ de === "above" ? l["select__popup--above"] : "",
239
+ ue ? l["select__popup--visible"] : ""
222
240
  ].filter(Boolean).join(" "),
223
- style: ue,
224
- children: /* @__PURE__ */ r(Ne, { className: l.select__menu, children: /* @__PURE__ */ r(Ee, { maxHeight: ce, children: /* @__PURE__ */ r(
241
+ style: pe,
242
+ children: /* @__PURE__ */ o(Se, { className: l.select__menu, children: /* @__PURE__ */ o(Ve, { maxHeight: fe, children: /* @__PURE__ */ o(
225
243
  "ul",
226
244
  {
227
- id: b,
245
+ id: h,
228
246
  className: l.select__list,
229
247
  role: "listbox",
230
- "aria-label": typeof u == "string" ? u : R ?? Z,
231
- children: o.map((e, t) => /* @__PURE__ */ r(
232
- Re,
248
+ "aria-label": typeof u == "string" ? u : $ ?? te,
249
+ children: r.map((e, t) => /* @__PURE__ */ o(
250
+ je,
233
251
  {
234
252
  option: e,
235
- listboxId: b,
253
+ menuItemProps: N,
254
+ listboxId: h,
236
255
  selected: e.value === d,
237
- active: t === c,
238
- onSelect: K,
239
- onHover: () => f(t)
256
+ active: t === a,
257
+ onSelect: L,
258
+ onHover: () => ce(t),
259
+ dividerAfter: e.dividerAfter
240
260
  },
241
261
  e.value
242
262
  ))
@@ -248,6 +268,6 @@ const Le = ye(function({
248
268
  ] });
249
269
  });
250
270
  export {
251
- Le as default
271
+ Ye as default
252
272
  };
253
273
  //# sourceMappingURL=Select.js.map
@@ -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 Icon from '@/components/icon/Icon';\nimport { IconSlotContext } from '@/components/icon/Icon';\nimport MenuItem from '@/components/menu-item/MenuItem';\nimport PopoverMenu, {\n PopoverMenuScroll,\n} from '@/components/popover-menu/PopoverMenu';\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 /** Kept as `string` like `ComboboxOption.label` (which drives filtering), so option lists can be shared. */\n label: string;\n disabled?: boolean;\n leadingVisual?: ReactNode;\n /** Accepts translated nodes. */\n secondaryLabel?: ReactNode;\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 /** Leading icon — pass `<Icon glyph={<SomeIcon />} />`; Select provides the correct size via context. */\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 /**\n * Accessible name for the options list when `label` isn't a string and no\n * `aria-label` is set. Default: \"Options\".\n */\n listboxLabel?: 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 return (\n <li className={styles.select__option} role=\"presentation\">\n <MenuItem\n id={`${listboxId}-option-${option.value}`}\n role=\"option\"\n label={option.label}\n secondaryLabel={option.secondaryLabel}\n leadingElement={option.leadingVisual != null}\n leadingVisual={option.leadingVisual}\n trailingElement={selected}\n active={active}\n disabled={option.disabled}\n aria-selected={selected}\n onMouseDown={(ev) => ev.preventDefault()}\n onMouseEnter={onHover}\n onPointerUp={() => {\n if (!option.disabled) onSelect(option);\n }}\n />\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 listboxLabel = 'Options',\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 = 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 <IconSlotContext.Provider value={{ size: '16' }}>\n {leadingIcon}\n </IconSlotContext.Provider>\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'\n ? label\n : (ariaLabel ?? listboxLabel)\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","styles","jsx","MenuItem","ev","Select","forwardRef","options","valueProp","defaultValue","onChange","placeholder","label","leadingIcon","size","invalid","disabled","idProp","name","className","ariaLabel","listboxLabel","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","jsxs","IconSlotContext","Icon","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 Icon from '@/components/icon/Icon';\nimport { IconSlotContext } from '@/components/icon/Icon';\nimport MenuItem from '@/components/menu-item/MenuItem';\nimport type {\n MenuItemOwnedProps,\n MenuItemPassthroughProps,\n} from '@/components/menu-item/MenuItem';\nimport PopoverMenu, {\n PopoverMenuDivider,\n PopoverMenuScroll,\n} from '@/components/popover-menu/PopoverMenu';\nimport { useAnchoredPopupPortal } from '@/hooks/use-anchored-popup-portal';\nimport { useOutsideClose } from '@/hooks/use-outside-close';\nimport { usePopoverTransition } from '@/hooks/use-popover-transition';\nimport { mergeMenuItemProps } from '@/utils/menuItemProps';\nimport { toKebab } from '@/utils/string';\nimport styles from './Select.module.scss';\n\nexport type SelectSize = 'small' | 'medium' | 'large';\n\n// Select rows use `onPointerUp`, so `onClick` is left for callers.\ntype SelectMenuItemProps = MenuItemPassthroughProps<\n Exclude<MenuItemOwnedProps, 'onClick'>\n>;\n\nexport type SelectOption = {\n value: string;\n /** Kept as `string` like `ComboboxOption.label` (which drives filtering), so option lists can be shared. */\n label: string;\n disabled?: boolean;\n leadingVisual?: ReactNode;\n /** Accepts translated nodes. */\n secondaryLabel?: ReactNode;\n /** When true, renders a menu divider after this option. */\n dividerAfter?: boolean;\n /**\n * Extra `MenuItem` props for this row (e.g. `secondaryLabelPosition`, `tag`,\n * `trailingVisual`, `className`). Overrides the `menuItemProps` set on the\n * Select; the props Select owns (ARIA, selection, handlers) can't be set.\n */\n menuItemProps?: SelectMenuItemProps;\n};\n\nexport interface SelectProps {\n options: SelectOption[];\n /**\n * `MenuItem` props applied to every option row, e.g.\n * `menuItemProps={{ secondaryLabelPosition: 'inline' }}`. A row's own\n * `menuItemProps` wins.\n */\n menuItemProps?: SelectMenuItemProps;\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 /** Leading icon — pass `<Icon glyph={<SomeIcon />} />`; Select provides the correct size via context. */\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 /**\n * Accessible name for the options list when `label` isn't a string and no\n * `aria-label` is set. Default: \"Options\".\n */\n listboxLabel?: 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 menuItemProps,\n listboxId,\n selected,\n active,\n onSelect,\n onHover,\n dividerAfter = false,\n}: {\n option: SelectOption;\n menuItemProps?: SelectMenuItemProps;\n listboxId: string;\n selected: boolean;\n active: boolean;\n onSelect: (option: SelectOption) => void;\n onHover: () => void;\n dividerAfter?: boolean;\n}) {\n return (\n <>\n <li className={styles.select__option} role=\"presentation\">\n <MenuItem\n {...mergeMenuItemProps(menuItemProps, option.menuItemProps)}\n id={`${listboxId}-option-${option.value}`}\n role=\"option\"\n label={option.label}\n secondaryLabel={option.secondaryLabel}\n leadingElement={option.leadingVisual != null}\n leadingVisual={option.leadingVisual}\n trailingElement={selected}\n active={active}\n disabled={option.disabled}\n aria-selected={selected}\n onMouseDown={(ev) => ev.preventDefault()}\n onMouseEnter={onHover}\n onPointerUp={() => {\n if (!option.disabled) onSelect(option);\n }}\n />\n </li>\n {dividerAfter ? (\n <li role=\"presentation\">\n <PopoverMenuDivider aria-hidden=\"true\" />\n </li>\n ) : null}\n </>\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 menuItemProps,\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 listboxLabel = 'Options',\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 // Hover moves the highlight without scrolling; only keyboard changes scroll the row into view.\n const activatedByPointer = useRef(false);\n const hoverRow = useCallback(\n (index: number) => {\n if (index === activeIndex) return;\n activatedByPointer.current = true;\n setActiveIndex(index);\n },\n [activeIndex],\n );\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 activatedByPointer.current = false;\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 if (activatedByPointer.current) {\n activatedByPointer.current = false;\n return;\n }\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 = 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 <IconSlotContext.Provider value={{ size: '16' }}>\n {leadingIcon}\n </IconSlotContext.Provider>\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'\n ? label\n : (ariaLabel ?? listboxLabel)\n }\n >\n {listOptions.map((option, index) => (\n <SelectOptionRow\n key={option.value}\n option={option}\n menuItemProps={menuItemProps}\n listboxId={listboxId}\n selected={option.value === value}\n active={index === activeIndex}\n onSelect={selectOption}\n onHover={() => hoverRow(index)}\n dividerAfter={option.dividerAfter}\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","menuItemProps","listboxId","selected","active","onSelect","onHover","dividerAfter","jsxs","Fragment","jsx","styles","MenuItem","mergeMenuItemProps","ev","PopoverMenuDivider","Select","forwardRef","options","valueProp","defaultValue","onChange","placeholder","label","leadingIcon","size","invalid","disabled","idProp","name","className","ariaLabel","listboxLabel","portalContainer","zIndex","ref","generatedId","useId","id","rootRef","useRef","anchorRef","buttonRef","setButtonRef","useCallback","node","isControlled","uncontrolledValue","setUncontrolledValue","useState","value","isOpen","setIsOpen","isFocused","setIsFocused","activeIndex","setActiveIndex","activatedByPointer","hoverRow","index","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","IconSlotContext","Icon","ChevronDownIcon","PopoverMenu","PopoverMenuScroll"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./Select.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=_;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./Select.css');const e="_select_1udb3_2",_="_select__wrapper_1udb3_8",l="_select__label_1udb3_26",t="_select__control_1udb3_56",s="_select__value_1udb3_82",c="_select__popup_1udb3_111",o="_select__menu_1udb3_127",i="_select__list_1udb3_132",n="_select__option_1udb3_137",u={select:e,select__wrapper:_,"select--disabled":"_select--disabled_1udb3_16",select__label:l,"select--label-floated":"_select--label-floated_1udb3_47",select__control:t,"select__control--placeholder":"_select__control--placeholder_1udb3_82",select__value:s,"select__leading-icon":"_select__leading-icon_1udb3_92","select__trailing-icon":"_select__trailing-icon_1udb3_99","select--open":"_select--open_1udb3_108",select__popup:c,"select__popup--above":"_select__popup--above_1udb3_118","select__popup--visible":"_select__popup--visible_1udb3_121",select__menu:o,select__list:i,select__option:n,"select__option-content--disabled":"_select__option-content--disabled_1udb3_145","select--size-small":"_select--size-small_1udb3_148","select--size-medium":"_select--size-medium_1udb3_167","select--size-large":"_select--size-large_1udb3_190","select--invalid":"_select--invalid_1udb3_217","select--has-leading-icon":"_select--has-leading-icon_1udb3_229"};exports.default=u;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,36 +1,36 @@
1
- import './Select.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 = {
1
+ import './Select.css';const e = "_select_1udb3_2", _ = "_select__wrapper_1udb3_8", l = "_select__label_1udb3_26", t = "_select__control_1udb3_56", s = "_select__value_1udb3_82", c = "_select__popup_1udb3_111", o = "_select__menu_1udb3_127", d = "_select__list_1udb3_132", n = "_select__option_1udb3_137", i = {
2
2
  select: e,
3
3
  select__wrapper: _,
4
- "select--disabled": "_select--disabled_h9fbq_16",
4
+ "select--disabled": "_select--disabled_1udb3_16",
5
5
  select__label: l,
6
- "select--label-floated": "_select--label-floated_h9fbq_47",
6
+ "select--label-floated": "_select--label-floated_1udb3_47",
7
7
  select__control: t,
8
- "select__control--placeholder": "_select__control--placeholder_h9fbq_82",
8
+ "select__control--placeholder": "_select__control--placeholder_1udb3_82",
9
9
  select__value: s,
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",
10
+ "select__leading-icon": "_select__leading-icon_1udb3_92",
11
+ "select__trailing-icon": "_select__trailing-icon_1udb3_99",
12
+ "select--open": "_select--open_1udb3_108",
13
13
  select__popup: c,
14
- "select__popup--above": "_select__popup--above_h9fbq_118",
15
- "select__popup--visible": "_select__popup--visible_h9fbq_121",
14
+ "select__popup--above": "_select__popup--above_1udb3_118",
15
+ "select__popup--visible": "_select__popup--visible_1udb3_121",
16
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"
17
+ select__list: d,
18
+ select__option: n,
19
+ "select__option-content--disabled": "_select__option-content--disabled_1udb3_145",
20
+ "select--size-small": "_select--size-small_1udb3_148",
21
+ "select--size-medium": "_select--size-medium_1udb3_167",
22
+ "select--size-large": "_select--size-large_1udb3_190",
23
+ "select--invalid": "_select--invalid_1udb3_217",
24
+ "select--has-leading-icon": "_select--has-leading-icon_1udb3_229"
25
25
  };
26
26
  export {
27
- a as default,
27
+ i as default,
28
28
  e as select,
29
29
  t as select__control,
30
30
  l as select__label,
31
- n as select__list,
31
+ d as select__list,
32
32
  o as select__menu,
33
- i as select__option,
33
+ n as select__option,
34
34
  c as select__popup,
35
35
  s as select__value,
36
36
  _ as select__wrapper