@mattermost/compass-ui 0.1.0-alpha.23 → 0.1.0-alpha.25

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 (54) hide show
  1. package/dist/components/admin-panel-footer/AdminPanelFooter.css +1 -1
  2. package/dist/components/admin-panel-footer/AdminPanelFooter.module.scss.cjs +1 -1
  3. package/dist/components/admin-panel-footer/AdminPanelFooter.module.scss.js +5 -5
  4. package/dist/components/combobox/Combobox.cjs +1 -1
  5. package/dist/components/combobox/Combobox.cjs.map +1 -1
  6. package/dist/components/combobox/Combobox.d.ts +13 -4
  7. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  8. package/dist/components/combobox/Combobox.js +359 -338
  9. package/dist/components/combobox/Combobox.js.map +1 -1
  10. package/dist/components/dropdown/Dropdown.cjs +1 -1
  11. package/dist/components/dropdown/Dropdown.cjs.map +1 -1
  12. package/dist/components/dropdown/Dropdown.css +1 -1
  13. package/dist/components/dropdown/Dropdown.d.ts +2 -2
  14. package/dist/components/dropdown/Dropdown.d.ts.map +1 -1
  15. package/dist/components/dropdown/Dropdown.js +15 -15
  16. package/dist/components/dropdown/Dropdown.js.map +1 -1
  17. package/dist/components/dropdown/Dropdown.module.scss.cjs +1 -1
  18. package/dist/components/dropdown/Dropdown.module.scss.js +19 -18
  19. package/dist/components/dropdown/Dropdown.module.scss.js.map +1 -1
  20. package/dist/components/empty-state/EmptyState.css +1 -1
  21. package/dist/components/empty-state/EmptyState.module.scss.cjs +1 -1
  22. package/dist/components/empty-state/EmptyState.module.scss.js +7 -7
  23. package/dist/components/icon-button/IconButton.css +1 -1
  24. package/dist/components/icon-button/IconButton.module.scss.cjs +1 -1
  25. package/dist/components/icon-button/IconButton.module.scss.js +16 -16
  26. package/dist/components/modal-header/ModalHeader.cjs +1 -1
  27. package/dist/components/modal-header/ModalHeader.cjs.map +1 -1
  28. package/dist/components/modal-header/ModalHeader.css +1 -1
  29. package/dist/components/modal-header/ModalHeader.d.ts.map +1 -1
  30. package/dist/components/modal-header/ModalHeader.js +50 -46
  31. package/dist/components/modal-header/ModalHeader.js.map +1 -1
  32. package/dist/components/modal-header/ModalHeader.module.scss.cjs +1 -1
  33. package/dist/components/modal-header/ModalHeader.module.scss.js +18 -17
  34. package/dist/components/modal-header/ModalHeader.module.scss.js.map +1 -1
  35. package/dist/components/password-input/PasswordInput.cjs +1 -1
  36. package/dist/components/password-input/PasswordInput.cjs.map +1 -1
  37. package/dist/components/password-input/PasswordInput.d.ts +11 -3
  38. package/dist/components/password-input/PasswordInput.d.ts.map +1 -1
  39. package/dist/components/password-input/PasswordInput.js +68 -67
  40. package/dist/components/password-input/PasswordInput.js.map +1 -1
  41. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs +1 -1
  42. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs.map +1 -1
  43. package/dist/components/right-sidebar-header/RightSidebarHeader.css +1 -1
  44. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts +10 -3
  45. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts.map +1 -1
  46. package/dist/components/right-sidebar-header/RightSidebarHeader.js +88 -66
  47. package/dist/components/right-sidebar-header/RightSidebarHeader.js.map +1 -1
  48. package/dist/components/right-sidebar-header/RightSidebarHeader.module.scss.cjs +1 -1
  49. package/dist/components/right-sidebar-header/RightSidebarHeader.module.scss.js +13 -12
  50. package/dist/components/right-sidebar-header/RightSidebarHeader.module.scss.js.map +1 -1
  51. package/dist/components/tile-button/TileButton.css +1 -1
  52. package/dist/components/tile-button/TileButton.module.scss.cjs +1 -1
  53. package/dist/components/tile-button/TileButton.module.scss.js +6 -6
  54. package/package.json +3 -3
@@ -1,389 +1,408 @@
1
- import { jsxs as M, jsx as a } from "react/jsx-runtime";
2
- import { forwardRef as Nr, useId as wr, useRef as X, useCallback as d, useState as I, useMemo as V, useEffect as Re } from "react";
3
- import __Dr from "@mattermost/compass-icons/components/chevron-down.js";const Dr=__Dr&&__Dr.default?__Dr.default:__Dr;
4
- import __Mr from "@mattermost/compass-icons/components/close-circle.js";const Mr=__Mr&&__Mr.default?__Mr.default:__Mr;
5
- import __Ir from "@mattermost/compass-icons/components/plus.js";const Ir=__Ir&&__Ir.default?__Ir.default:__Ir;
6
- import Vr from "../chip/Chip.js";
7
- import Rr from "../chip/ChipGroup.js";
8
- import ce, { IconSlotContext as Er } from "../icon/Icon.js";
9
- import Ee from "../menu-item/MenuItem.js";
10
- import Sr, { PopoverMenuScroll as Tr } from "../popover-menu/PopoverMenu.js";
11
- import Lr from "../spinner/Spinner.js";
12
- import zr from "../team-avatar/TeamAvatar.js";
13
- import Cr from "../user-avatar/UserAvatar.js";
14
- import { useAnchoredPopupPortal as Hr } from "../../hooks/use-anchored-popup-portal.js";
15
- import { useOutsideClose as $r } from "../../hooks/use-outside-close.js";
16
- import { usePopoverTransition as Fr } from "../../hooks/use-popover-transition.js";
17
- import { mergeMenuItemProps as Or } from "../../utils/menuItemProps.js";
18
- import { mergeClassNames as jr } from "../../utils/props.js";
19
- import { toKebab as Ur } from "../../utils/string.js";
20
- import l from "./Combobox.module.scss.js";
21
- const Se = 280, qr = {
1
+ import { jsxs as M, jsx as l } from "react/jsx-runtime";
2
+ import { forwardRef as wr, useId as Mr, useRef as O, useCallback as d, useState as I, useMemo as V, useEffect as de } from "react";
3
+ import __Ir from "@mattermost/compass-icons/components/chevron-down.js";const Ir=__Ir&&__Ir.default?__Ir.default:__Ir;
4
+ import __Vr from "@mattermost/compass-icons/components/close-circle.js";const Vr=__Vr&&__Vr.default?__Vr.default:__Vr;
5
+ import __Er from "@mattermost/compass-icons/components/plus.js";const Er=__Er&&__Er.default?__Er.default:__Er;
6
+ import Rr from "../chip/Chip.js";
7
+ import Sr from "../chip/ChipGroup.js";
8
+ import me, { IconSlotContext as Tr } from "../icon/Icon.js";
9
+ import Te from "../menu-item/MenuItem.js";
10
+ import Lr, { PopoverMenuScroll as Fr } from "../popover-menu/PopoverMenu.js";
11
+ import zr from "../spinner/Spinner.js";
12
+ import Cr from "../team-avatar/TeamAvatar.js";
13
+ import Hr from "../user-avatar/UserAvatar.js";
14
+ import { useAnchoredPopupPortal as $r } from "../../hooks/use-anchored-popup-portal.js";
15
+ import { useOutsideClose as Or } from "../../hooks/use-outside-close.js";
16
+ import { usePopoverTransition as jr } from "../../hooks/use-popover-transition.js";
17
+ import { mergeMenuItemProps as Ur } from "../../utils/menuItemProps.js";
18
+ import { mergeClassNames as qr } from "../../utils/props.js";
19
+ import { toKebab as Gr } from "../../utils/string.js";
20
+ import o from "./Combobox.module.scss.js";
21
+ const Le = 280, Kr = {
22
22
  small: "small",
23
23
  medium: "medium",
24
24
  large: "large"
25
- }, Gr = {
25
+ }, Qr = {
26
26
  small: "12",
27
27
  medium: "16",
28
28
  large: "16"
29
29
  };
30
- function Qr(t) {
31
- return typeof t == "string" ? `${t} selections` : "Selected";
30
+ function Xr(n) {
31
+ return typeof n == "string" ? `${n} selections` : "Selected";
32
32
  }
33
- function Xr(t) {
34
- return `Create "${t}"`;
33
+ function Zr(n) {
34
+ return `Create "${n}"`;
35
35
  }
36
- function ue(t) {
37
- return t.kind === "option" && t.option.disabled === !0;
36
+ function W(n) {
37
+ return n.kind === "option" && n.option.disabled === !0;
38
38
  }
39
- function Zr(t, b) {
40
- return b ? t.label.toLowerCase().includes(b.toLowerCase()) : !0;
39
+ function Wr(n, v) {
40
+ return v ? n.label.toLowerCase().includes(v.toLowerCase()) : !0;
41
41
  }
42
- function Pr(t) {
43
- return t == null ? null : Array.isArray(t) ? t[0] ?? null : t === "" ? null : t;
42
+ function Yr(n) {
43
+ return n == null ? null : Array.isArray(n) ? n[0] ?? null : n === "" ? null : n;
44
44
  }
45
- function Wr(t) {
46
- return t == null ? [] : Array.isArray(t) ? t : t === "" ? [] : [t];
45
+ function Jr(n) {
46
+ return n == null ? [] : Array.isArray(n) ? n : n === "" ? [] : [n];
47
47
  }
48
- function Yr(t) {
49
- if (t.leadingVisual != null) return t.leadingVisual;
50
- if (t.leadingAvatar != null)
51
- return /* @__PURE__ */ a(
52
- Cr,
48
+ function Pr(n) {
49
+ if (n.leadingVisual != null) return n.leadingVisual;
50
+ if (n.leadingAvatar != null)
51
+ return /* @__PURE__ */ l(
52
+ Hr,
53
53
  {
54
- src: t.leadingAvatar.src,
55
- alt: t.leadingAvatar.alt,
54
+ src: n.leadingAvatar.src,
55
+ alt: n.leadingAvatar.alt,
56
56
  size: "24"
57
57
  }
58
58
  );
59
- if (t.leadingTeamAvatar != null)
60
- return /* @__PURE__ */ a(
61
- zr,
59
+ if (n.leadingTeamAvatar != null)
60
+ return /* @__PURE__ */ l(
61
+ Cr,
62
62
  {
63
- src: t.leadingTeamAvatar.src,
64
- initials: t.leadingTeamAvatar.initials ?? (t.leadingTeamAvatar.src ? void 0 : Array.from(t.label).slice(0, 2).join("")),
65
- alt: t.leadingTeamAvatar.alt,
63
+ src: n.leadingTeamAvatar.src,
64
+ initials: n.leadingTeamAvatar.initials ?? (n.leadingTeamAvatar.src ? void 0 : Array.from(n.label).slice(0, 2).join("")),
65
+ alt: n.leadingTeamAvatar.alt,
66
66
  size: "24",
67
67
  variant: "menu"
68
68
  }
69
69
  );
70
70
  }
71
- const xt = Nr(function({
72
- options: b,
73
- menuItemProps: Te,
74
- multiple: n = !1,
75
- value: fe,
76
- defaultValue: de,
77
- onChange: $,
78
- inputValue: Z,
79
- defaultInputValue: Le = "",
71
+ const yn = wr(function({
72
+ options: v,
73
+ menuItemProps: Fe,
74
+ multiple: t = !1,
75
+ value: be,
76
+ defaultValue: ve,
77
+ onChange: j,
78
+ inputValue: Y,
79
+ defaultInputValue: ze = "",
80
80
  onInputChange: u,
81
- label: w,
82
- placeholder: ze,
83
- leadingIcon: P,
84
- size: W = "medium",
85
- invalid: me = !1,
86
- disabled: g = !1,
87
- filter: F = !0,
88
- emptyMessage: Ce = "No results",
89
- loading: be = !1,
90
- loadingMessage: He = "Loading…",
81
+ label: N,
82
+ placeholder: Ce,
83
+ leadingIcon: J,
84
+ size: P = "medium",
85
+ invalid: he = !1,
86
+ disabled: _ = !1,
87
+ filter: U = !0,
88
+ emptyMessage: He = "No results",
89
+ loading: xe = !1,
90
+ loadingMessage: $e = "Loading…",
91
91
  selectedOptions: k,
92
- creatable: R = !1,
93
- onCreateOption: Y,
94
- formatCreateLabel: $e = Xr,
95
- clearable: Fe = !1,
96
- clearLabel: Oe = "Clear",
97
- clearButtonProps: p,
98
- selectionsLabel: je,
99
- listboxLabel: Ue = "Options",
100
- className: qe = "",
101
- id: Ge,
102
- "aria-label": ve,
103
- "aria-describedby": Qe,
104
- required: Xe = !1,
105
- onFocus: J,
106
- onBlur: K,
107
- onKeyDown: B,
108
- portalContainer: Ze = null,
109
- zIndex: Pe,
110
- ...We
111
- }, E) {
112
- const Ye = wr(), ee = Ge ?? Ye, S = `${ee}-listbox`, re = X(null), he = X(null), N = X(null), Je = d(
92
+ creatable: E = !1,
93
+ onCreateOption: B,
94
+ formatCreateLabel: Oe = Zr,
95
+ clearable: je = !1,
96
+ openOnFocus: Ue = !1,
97
+ clearLabel: qe = "Clear",
98
+ clearButtonProps: m,
99
+ selectionsLabel: Ge,
100
+ listboxLabel: Ke = "Options",
101
+ className: Qe = "",
102
+ id: Xe,
103
+ "aria-label": ge,
104
+ "aria-describedby": Ze,
105
+ required: We = !1,
106
+ onFocus: ee,
107
+ onBlur: re,
108
+ onKeyDown: ne,
109
+ portalContainer: Ye = null,
110
+ zIndex: Je,
111
+ ...Pe
112
+ }, R) {
113
+ const Be = Mr(), te = Xe ?? Be, S = `${te}-listbox`, ae = O(null), _e = O(null), D = O(null), er = d(
113
114
  (e) => {
114
- N.current = e, typeof E == "function" ? E(e) : E && (E.current = e);
115
+ D.current = e, typeof R == "function" ? R(e) : R && (R.current = e);
115
116
  },
116
- [E]
117
- ), te = fe !== void 0, [Ke, Be] = I(() => de !== void 0 ? de : n ? [] : null), ne = te ? fe : Ke, v = n ? null : Pr(ne), s = V(
118
- () => n ? Wr(ne) : [],
119
- [n, ne]
120
- ), m = Z !== void 0, [oe, T] = I(Le), [c, xe] = I(!1), [er, _e] = I(!1), [h, A] = I(-1), O = X(!1), ge = d(
117
+ [R]
118
+ ), le = be !== void 0, [rr, nr] = I(() => ve !== void 0 ? ve : t ? [] : null), oe = le ? be : rr, h = t ? null : Yr(oe), i = V(
119
+ () => t ? Jr(oe) : [],
120
+ [t, oe]
121
+ ), b = Y !== void 0, [ie, T] = I(ze), [c, ye] = I(!1), [tr, pe] = I(!1), [x, y] = I(-1), q = O(!1), L = O(null), Ae = d(
121
122
  (e) => {
122
- e !== h && (O.current = !0, A(e));
123
+ e !== x && (q.current = !0, y(e));
123
124
  },
124
- [h]
125
- ), [j, L] = I(null), U = d(
126
- (e) => b.find((r) => r.value === e) ?? (k == null ? void 0 : k.find((r) => r.value === e)) ?? (R ? { value: e, label: e } : void 0),
127
- [b, k, R]
128
- ), q = V(
129
- () => v == null ? void 0 : U(v),
130
- [U, v]
131
- ), ae = m ? Z : n ? oe : j !== null ? j : (q == null ? void 0 : q.label) ?? oe, le = m ? Z : n ? oe : j !== null ? j : "", z = d(
125
+ [x]
126
+ ), [G, F] = I(null), K = d(
127
+ (e) => v.find((r) => r.value === e) ?? (k == null ? void 0 : k.find((r) => r.value === e)) ?? (E ? { value: e, label: e } : void 0),
128
+ [v, k, E]
129
+ ), Q = V(
130
+ () => h == null ? void 0 : K(h),
131
+ [K, h]
132
+ ), se = b ? Y : t ? ie : G !== null ? G : (Q == null ? void 0 : Q.label) ?? ie, ce = b ? Y : t ? ie : G !== null ? G : "", z = d(
132
133
  (e) => {
133
- m || (T(e), n || L(e)), u == null || u(e);
134
+ b || (T(e), t || F(e)), u == null || u(e);
134
135
  },
135
- [m, n, u]
136
- ), x = d(
136
+ [b, t, u]
137
+ ), g = d(
137
138
  (e) => {
138
- te || Be(e), $ == null || $(e);
139
+ le || nr(e), j == null || j(e);
139
140
  },
140
- [te, $]
141
- ), pe = V(() => {
142
- if (F === !1) return b;
143
- const e = typeof F == "function" ? F : Zr;
144
- return b.filter((r) => e(r, le));
145
- }, [b, F, le]), C = R ? le.trim() : "", ye = V(() => {
141
+ [le, j]
142
+ ), ke = V(() => {
143
+ if (U === !1) return v;
144
+ const e = typeof U == "function" ? U : Wr;
145
+ return v.filter((r) => e(r, ce));
146
+ }, [v, U, ce]), C = E ? ce.trim() : "", De = V(() => {
146
147
  if (C === "") return !1;
147
- const e = C.toLowerCase(), r = (f) => f.toLowerCase() === e;
148
- return [...b, ...k ?? []].some((f) => r(f.label) || r(f.value)) ? !1 : !(n ? s : v != null ? [v] : []).some(r);
148
+ const e = C.toLowerCase(), r = (A) => A.toLowerCase() === e;
149
+ return [...v, ...k ?? []].some((A) => r(A.label) || r(A.value)) ? !1 : !(t ? i : h != null ? [h] : []).some(r);
149
150
  }, [
150
151
  C,
151
- b,
152
+ v,
152
153
  k,
153
- n,
154
- s,
155
- v
156
- ]), i = V(
154
+ t,
155
+ i,
156
+ h
157
+ ]), s = V(
157
158
  () => [
158
- ...pe.map((e) => ({ kind: "option", option: e })),
159
- ...ye ? [{ kind: "create", inputValue: C }] : []
159
+ ...ke.map((e) => ({ kind: "option", option: e })),
160
+ ...De ? [{ kind: "create", inputValue: C }] : []
160
161
  ],
161
- [pe, ye, C]
162
- ), D = d(
162
+ [ke, De, C]
163
+ ), w = d(
163
164
  (e) => e.kind === "option" ? `${S}-option-${e.option.value}` : `${S}-create`,
164
165
  [S]
165
- ), { mounted: ke, visible: rr } = Fr(c), {
166
- placement: tr,
167
- maxHeight: nr,
168
- style: or,
169
- portalRef: Ae,
170
- renderPortal: ar
171
- } = Hr(he, ke, {
172
- preferredHeight: Se,
173
- maxHeightCap: Se,
174
- portalContainer: Ze,
175
- zIndex: Pe
176
- }), y = d(() => {
177
- xe(!1), A(-1), !n && !m && (L(null), T(""));
178
- }, [n, m]), H = d(() => {
179
- g || xe(!0);
180
- }, [g]);
181
- $r(re, c, y, Ae), Re(() => {
182
- c && A((e) => {
183
- if (i.length === 0) return -1;
184
- if (e >= 0 && e < i.length) return e;
185
- const r = i.findIndex(
186
- (o) => o.kind === "option" && (n ? s.includes(o.option.value) : o.option.value === v)
166
+ ), { mounted: Ne, visible: ar } = jr(c), {
167
+ placement: lr,
168
+ maxHeight: or,
169
+ style: ir,
170
+ portalRef: we,
171
+ renderPortal: sr
172
+ } = $r(_e, Ne, {
173
+ preferredHeight: Le,
174
+ maxHeightCap: Le,
175
+ portalContainer: Ye,
176
+ zIndex: Je
177
+ }), p = d(() => {
178
+ ye(!1), y(-1), !t && !b && (F(null), T(""));
179
+ }, [t, b]), H = d(() => {
180
+ _ || ye(!0);
181
+ }, [_]);
182
+ Or(ae, c, p, we), de(() => {
183
+ c && y((e) => {
184
+ if (s.length === 0) return -1;
185
+ if (e >= 0 && e < s.length) return e;
186
+ const r = s.findIndex(
187
+ (a) => a.kind === "option" && (t ? i.includes(a.option.value) : a.option.value === h)
187
188
  );
188
189
  return r >= 0 ? r : 0;
189
190
  });
190
- }, [c, i, n, s, v]);
191
- const lr = d(
192
- (e) => n ? s.includes(e) : v === e,
193
- [n, s, v]
194
- ), se = d(
191
+ }, [c, s, t, i, h]);
192
+ const cr = d(
193
+ (e) => t ? i.includes(e) : h === e,
194
+ [t, i, h]
195
+ ), ue = d(
195
196
  (e) => {
196
197
  var r;
197
198
  if (!e.disabled) {
198
- if (n) {
199
- const o = s.includes(e.value) ? s.filter((_) => _ !== e.value) : [...s, e.value];
200
- x(o), z(""), y(), (r = N.current) == null || r.focus();
199
+ if (t) {
200
+ const a = i.includes(e.value) ? i.filter((f) => f !== e.value) : [...i, e.value];
201
+ g(a), z(""), p(), (r = D.current) == null || r.focus();
201
202
  return;
202
203
  }
203
- x(e.value), m ? u == null || u(e.label) : (T(""), L(null)), y();
204
+ g(e.value), b ? u == null || u(e.label) : (T(""), F(null)), p();
204
205
  }
205
206
  },
206
207
  [
207
- n,
208
- s,
209
- x,
208
+ t,
209
+ i,
210
+ g,
210
211
  z,
211
- m,
212
+ b,
212
213
  u,
213
- y
214
+ p
214
215
  ]
215
- ), ie = d(
216
+ ), fe = d(
216
217
  (e) => {
217
218
  var r;
218
- if (Y ? Y(e) : x(n ? [...s, e] : e), n) {
219
- z(""), y(), (r = N.current) == null || r.focus();
219
+ if (B ? B(e) : g(t ? [...i, e] : e), t) {
220
+ z(""), p(), (r = D.current) == null || r.focus();
220
221
  return;
221
222
  }
222
- m ? u == null || u(e) : (T(""), L(null)), y();
223
+ b ? u == null || u(e) : (T(""), F(null)), p();
223
224
  },
224
225
  [
225
- Y,
226
- n,
227
- s,
228
- x,
226
+ B,
227
+ t,
228
+ i,
229
+ g,
229
230
  z,
230
- m,
231
+ b,
231
232
  u,
232
- y
233
+ p
233
234
  ]
234
- ), sr = d(
235
+ ), ur = d(
235
236
  (e) => {
236
- e.kind === "create" ? ie(e.inputValue) : se(e.option);
237
+ e.kind === "create" ? fe(e.inputValue) : ue(e.option);
237
238
  },
238
- [ie, se]
239
- ), ir = d(() => {
239
+ [fe, ue]
240
+ ), Me = d(() => {
240
241
  var e;
241
- x(null), m ? u == null || u("") : (T(""), L(null)), (e = N.current) == null || e.focus();
242
- }, [x, m, u]), Ne = d(
242
+ g(null), b ? u == null || u("") : (T(""), F(null)), (e = D.current) == null || e.focus();
243
+ }, [g, b, u]), Ie = d(
243
244
  (e) => {
244
- n && x(s.filter((r) => r !== e));
245
+ t && g(i.filter((r) => r !== e));
245
246
  },
246
- [n, s, x]
247
- ), we = d(
247
+ [t, i, g]
248
+ ), Ve = d(
248
249
  (e) => {
249
- O.current = !1;
250
- const r = i.map((o, _) => ({ row: o, i: _ })).filter(({ row: o }) => !ue(o));
250
+ q.current = !1;
251
+ const r = s.map((a, f) => ({ row: a, i: f })).filter(({ row: a }) => !W(a));
251
252
  if (r.length === 0) {
252
- A(-1);
253
+ y(-1);
253
254
  return;
254
255
  }
255
- A((o) => {
256
- const _ = r.findIndex(({ i: Q }) => Q === o), f = _ < 0 ? e > 0 ? 0 : r.length - 1 : (_ + e + r.length) % r.length;
257
- return r[f].i;
256
+ y((a) => {
257
+ const f = r.findIndex(({ i: Z }) => Z === a), A = f < 0 ? e > 0 ? 0 : r.length - 1 : (f + e + r.length) % r.length;
258
+ return r[A].i;
258
259
  });
259
260
  },
260
- [i]
261
+ [s]
261
262
  );
262
- Re(() => {
263
- var r, o;
264
- if (!c || h < 0) return;
265
- if (O.current) {
266
- O.current = !1;
263
+ de(() => {
264
+ var r, a;
265
+ if (!c || x < 0) return;
266
+ if (q.current) {
267
+ q.current = !1;
267
268
  return;
268
269
  }
269
- const e = i[h];
270
- e && ((o = (r = document.getElementById(D(e))) == null ? void 0 : r.scrollIntoView) == null || o.call(r, { block: "nearest" }));
271
- }, [c, h, i, D]);
272
- const cr = (e) => {
270
+ const e = s[x];
271
+ e && ((a = (r = document.getElementById(w(e))) == null ? void 0 : r.scrollIntoView) == null || a.call(r, { block: "nearest" }));
272
+ }, [c, x, s, w]);
273
+ const fr = (e) => {
274
+ $();
273
275
  const r = e.target.value;
274
- z(r), c || H(), A(0);
275
- }, ur = () => {
276
- _e(!0), H(), !n && !m && q && requestAnimationFrame(() => {
276
+ z(r), c || H(), y(0);
277
+ }, $ = () => {
278
+ L.current !== null && (cancelAnimationFrame(L.current), L.current = null);
279
+ };
280
+ de(() => $, []);
281
+ const dr = () => {
282
+ pe(!0), Ue && H(), !t && !b && Q && ($(), L.current = requestAnimationFrame(() => {
277
283
  var e;
278
- (e = N.current) == null || e.select();
279
- });
280
- }, De = (e) => {
281
- var o;
284
+ L.current = null, (e = D.current) == null || e.select();
285
+ }));
286
+ }, Ee = (e) => {
287
+ var a;
282
288
  const r = e.relatedTarget;
283
- r && ((o = re.current) != null && o.contains(r)) || _e(!1);
284
- }, fr = (e) => {
285
- if (!g)
286
- switch (e.key) {
289
+ r && ((a = ae.current) != null && a.contains(r)) || ($(), pe(!1));
290
+ }, mr = (e) => {
291
+ if (!_)
292
+ switch ($(), e.key) {
287
293
  case "ArrowDown":
288
- e.preventDefault(), c ? we(1) : H();
294
+ e.preventDefault(), c ? Ve(1) : H();
289
295
  break;
290
296
  case "ArrowUp":
291
- e.preventDefault(), c ? we(-1) : H();
297
+ if (e.preventDefault(), c)
298
+ Ve(-1);
299
+ else {
300
+ for (let r = s.length - 1; r >= 0; r--)
301
+ if (!W(s[r])) {
302
+ y(r);
303
+ break;
304
+ }
305
+ H();
306
+ }
292
307
  break;
293
308
  case "Home":
294
- c && i.length > 0 && (e.preventDefault(), A(
309
+ c && s.length > 0 && (e.preventDefault(), y(
295
310
  Math.max(
296
311
  0,
297
- i.findIndex((r) => !ue(r))
312
+ s.findIndex((r) => !W(r))
298
313
  )
299
314
  ));
300
315
  break;
301
316
  case "End":
302
- if (c && i.length > 0) {
317
+ if (c && s.length > 0) {
303
318
  e.preventDefault();
304
- for (let r = i.length - 1; r >= 0; r--)
305
- if (!ue(i[r])) {
306
- A(r);
319
+ for (let r = s.length - 1; r >= 0; r--)
320
+ if (!W(s[r])) {
321
+ y(r);
307
322
  break;
308
323
  }
309
324
  }
310
325
  break;
311
326
  case "Enter":
312
- c && h >= 0 && i[h] && (e.preventDefault(), sr(i[h]));
327
+ c && x >= 0 && s[x] && (e.preventDefault(), e.stopPropagation(), ur(s[x]));
313
328
  break;
314
329
  case "Escape":
315
- c && (e.preventDefault(), y());
330
+ c && (e.preventDefault(), e.stopPropagation(), p());
316
331
  break;
317
332
  case "Backspace":
318
- n && ae === "" && s.length > 0 && (e.preventDefault(), Ne(s[s.length - 1]));
333
+ t && se === "" && i.length > 0 && (e.preventDefault(), Ie(i[i.length - 1]));
319
334
  break;
320
335
  case "Tab":
321
- y();
336
+ p();
322
337
  break;
323
338
  }
324
- }, dr = (e) => {
325
- ur(), J == null || J(e);
326
- }, mr = (e) => {
327
- De(e), K == null || K(e);
328
339
  }, br = (e) => {
329
- fr(e), B == null || B(e);
340
+ dr(), ee == null || ee(e);
330
341
  }, vr = (e) => {
342
+ Ee(e), re == null || re(e);
343
+ }, hr = (e) => {
344
+ mr(e), ne == null || ne(e);
345
+ }, xr = (e) => {
331
346
  var r;
332
- g || e.target.closest("[data-chip], [data-combobox-clear]") || (e.target !== N.current && (e.preventDefault(), (r = N.current) == null || r.focus()), c || H());
333
- }, Me = n ? s.length > 0 : v != null && v !== "", hr = ae.length > 0, xr = Fe && !n && Me && !g, _r = er || c || Me || hr, Ie = h >= 0 ? i[h] : void 0, gr = Ie != null ? D(Ie) : void 0, G = V(() => {
334
- if (!n) return [];
347
+ _ || e.target.closest("[data-chip], [data-combobox-clear]") || (e.target !== D.current && (e.preventDefault(), (r = D.current) == null || r.focus()), c || H());
348
+ }, gr = (e) => {
349
+ e.target.closest(
350
+ 'input, textarea, select, [contenteditable="true"]'
351
+ ) || e.preventDefault();
352
+ }, Re = t ? i.length > 0 : h != null && h !== "", _r = se.length > 0, yr = je && !t && Re && !_, pr = tr || c || Re || _r, Se = x >= 0 ? s[x] : void 0, Ar = Se != null ? w(Se) : void 0, X = V(() => {
353
+ if (!t) return [];
335
354
  if (k == null) {
336
- const e = b.filter((o) => s.includes(o.value));
337
- if (!R) return e;
338
- const r = new Set(e.map((o) => o.value));
355
+ const e = v.filter((a) => i.includes(a.value));
356
+ if (!E) return e;
357
+ const r = new Set(e.map((a) => a.value));
339
358
  return [
340
359
  ...e,
341
- ...s.filter((o) => !r.has(o)).map((o) => ({ value: o, label: o }))
360
+ ...i.filter((a) => !r.has(a)).map((a) => ({ value: a, label: a }))
342
361
  ];
343
362
  }
344
- return s.map(U).filter((e) => e != null);
363
+ return i.map(K).filter((e) => e != null);
345
364
  }, [
346
- n,
365
+ t,
347
366
  k,
348
- b,
349
- s,
350
- R,
351
- U
352
- ]), pr = l[`combobox--size-${Ur(W)}`], yr = n && G.length > 0, kr = [
353
- l.combobox,
354
- pr,
355
- me ? l["combobox--invalid"] : "",
356
- w != null && _r ? l["combobox--label-floated"] : "",
357
- P != null ? l["combobox--has-leading-icon"] : "",
358
- yr ? l["combobox--has-chips"] : "",
359
- c ? l["combobox--open"] : "",
360
- g ? l["combobox--disabled"] : "",
361
- qe
367
+ v,
368
+ i,
369
+ E,
370
+ K
371
+ ]), kr = o[`combobox--size-${Gr(P)}`], Dr = t && X.length > 0, Nr = [
372
+ o.combobox,
373
+ kr,
374
+ he ? o["combobox--invalid"] : "",
375
+ N != null && pr ? o["combobox--label-floated"] : "",
376
+ J != null ? o["combobox--has-leading-icon"] : "",
377
+ Dr ? o["combobox--has-chips"] : "",
378
+ c ? o["combobox--open"] : "",
379
+ _ ? o["combobox--disabled"] : "",
380
+ Qe
362
381
  ].filter(Boolean).join(" ");
363
- return /* @__PURE__ */ M("div", { className: kr, ref: re, children: [
364
- /* @__PURE__ */ M("div", { className: l.combobox__wrapper, ref: he, children: [
365
- w != null && /* @__PURE__ */ a("label", { className: l.combobox__label, htmlFor: ee, children: w }),
382
+ return /* @__PURE__ */ M("div", { className: Nr, ref: ae, children: [
383
+ /* @__PURE__ */ M("div", { className: o.combobox__wrapper, ref: _e, children: [
384
+ N != null && /* @__PURE__ */ l("label", { className: o.combobox__label, htmlFor: te, children: N }),
366
385
  /* @__PURE__ */ M(
367
386
  "div",
368
387
  {
369
- className: l.combobox__inner,
370
- onMouseDown: vr,
388
+ className: o.combobox__inner,
389
+ onMouseDown: xr,
371
390
  children: [
372
- P != null && /* @__PURE__ */ a("span", { className: l["combobox__leading-icon"], "aria-hidden": !0, children: /* @__PURE__ */ a(Er.Provider, { value: { size: "16" }, children: P }) }),
373
- /* @__PURE__ */ M("div", { className: l.combobox__value, children: [
374
- n && G.length > 0 && /* @__PURE__ */ a(
375
- Rr,
391
+ J != null && /* @__PURE__ */ l("span", { className: o["combobox__leading-icon"], "aria-hidden": !0, children: /* @__PURE__ */ l(Tr.Provider, { value: { size: "16" }, children: J }) }),
392
+ /* @__PURE__ */ M("div", { className: o.combobox__value, children: [
393
+ t && X.length > 0 && /* @__PURE__ */ l(
394
+ Sr,
376
395
  {
377
- "aria-label": je ?? Qr(w),
378
- disabled: g,
379
- children: G.map((e) => /* @__PURE__ */ a(
380
- Vr,
396
+ "aria-label": Ge ?? Xr(N),
397
+ disabled: _,
398
+ children: X.map((e) => /* @__PURE__ */ l(
399
+ Rr,
381
400
  {
382
- size: qr[W],
401
+ size: Kr[P],
383
402
  leadingAvatar: e.leadingAvatar,
384
403
  leadingIcon: e.leadingAvatar == null ? e.leadingVisual : void 0,
385
- onRemove: g ? void 0 : (r) => {
386
- r.stopPropagation(), Ne(e.value);
404
+ onRemove: _ ? void 0 : (r) => {
405
+ r.stopPropagation(), Ie(e.value);
387
406
  },
388
407
  children: e.label
389
408
  },
@@ -391,133 +410,135 @@ const xt = Nr(function({
391
410
  ))
392
411
  }
393
412
  ),
394
- /* @__PURE__ */ a(
413
+ /* @__PURE__ */ l(
395
414
  "input",
396
415
  {
397
- ...We,
398
- ref: Je,
399
- id: ee,
400
- className: l.combobox__control,
416
+ ...Pe,
417
+ ref: er,
418
+ id: te,
419
+ className: o.combobox__control,
401
420
  type: "text",
402
421
  role: "combobox",
403
422
  autoComplete: "off",
404
423
  spellCheck: !1,
405
- disabled: g,
406
- placeholder: n && G.length > 0 ? void 0 : ze,
407
- value: ae,
408
- "aria-label": ve,
409
- "aria-describedby": Qe || void 0,
410
- "aria-required": Xe ? !0 : void 0,
411
- "aria-invalid": me ? !0 : void 0,
424
+ disabled: _,
425
+ placeholder: t && X.length > 0 ? void 0 : Ce,
426
+ value: se,
427
+ "aria-label": ge,
428
+ "aria-describedby": Ze || void 0,
429
+ "aria-required": We ? !0 : void 0,
430
+ "aria-invalid": he ? !0 : void 0,
412
431
  "aria-expanded": c,
413
432
  "aria-controls": S,
414
433
  "aria-autocomplete": "list",
415
- "aria-activedescendant": gr,
416
- "aria-busy": be || void 0,
417
- onChange: cr,
418
- onFocus: dr,
419
- onBlur: mr,
420
- onKeyDown: br
434
+ "aria-activedescendant": Ar,
435
+ "aria-busy": xe || void 0,
436
+ onChange: fr,
437
+ onFocus: br,
438
+ onBlur: vr,
439
+ onKeyDown: hr
421
440
  }
422
441
  )
423
442
  ] }),
424
- xr && /* @__PURE__ */ a(
443
+ yr && /* @__PURE__ */ l(
425
444
  "button",
426
445
  {
427
- ...p,
446
+ ...m,
428
447
  type: "button",
429
- className: jr(
430
- l.combobox__clear,
431
- p == null ? void 0 : p.className
448
+ className: qr(
449
+ o.combobox__clear,
450
+ m == null ? void 0 : m.className
432
451
  ),
433
- "aria-label": Oe,
452
+ "aria-label": qe,
434
453
  "data-combobox-clear": "",
435
- onClick: ir,
454
+ onClick: Me,
455
+ onKeyDown: (e) => {
456
+ var r;
457
+ e.key === "Enter" && (e.preventDefault(), e.stopPropagation(), Me()), (r = m == null ? void 0 : m.onKeyDown) == null || r.call(m, e);
458
+ },
436
459
  onBlur: (e) => {
437
460
  var r;
438
- (r = p == null ? void 0 : p.onBlur) == null || r.call(p, e), De(e);
461
+ (r = m == null ? void 0 : m.onBlur) == null || r.call(m, e), Ee(e);
439
462
  },
440
- children: /* @__PURE__ */ a(ce, { size: Gr[W], glyph: /* @__PURE__ */ a(Mr, {}) })
463
+ children: /* @__PURE__ */ l(me, { size: Qr[P], glyph: /* @__PURE__ */ l(Vr, {}) })
441
464
  }
442
465
  ),
443
- /* @__PURE__ */ a("span", { className: l["combobox__trailing-icon"], "aria-hidden": !0, children: /* @__PURE__ */ a(ce, { size: "12", glyph: /* @__PURE__ */ a(Dr, {}) }) })
466
+ /* @__PURE__ */ l("span", { className: o["combobox__trailing-icon"], "aria-hidden": !0, children: /* @__PURE__ */ l(me, { size: "12", glyph: /* @__PURE__ */ l(Ir, {}) }) })
444
467
  ]
445
468
  }
446
469
  )
447
470
  ] }),
448
- ke && ar(
449
- /* @__PURE__ */ a(
471
+ Ne && sr(
472
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions -- keeps focus on the input for presses anywhere in the menu
473
+ /* @__PURE__ */ l(
450
474
  "div",
451
475
  {
452
- ref: Ae,
476
+ ref: we,
453
477
  className: [
454
- l.combobox__popup,
455
- tr === "above" ? l["combobox__popup--above"] : "",
456
- rr ? l["combobox__popup--visible"] : ""
478
+ o.combobox__popup,
479
+ lr === "above" ? o["combobox__popup--above"] : "",
480
+ ar ? o["combobox__popup--visible"] : ""
457
481
  ].filter(Boolean).join(" "),
458
- style: or,
459
- children: /* @__PURE__ */ a(Sr, { className: l.combobox__menu, children: /* @__PURE__ */ M(Tr, { maxHeight: nr, children: [
460
- i.length > 0 && /* @__PURE__ */ a(
482
+ style: ir,
483
+ onMouseDown: gr,
484
+ children: /* @__PURE__ */ l(Lr, { className: o.combobox__menu, children: /* @__PURE__ */ M(Fr, { maxHeight: or, children: [
485
+ s.length > 0 && /* @__PURE__ */ l(
461
486
  "ul",
462
487
  {
463
488
  id: S,
464
- className: l.combobox__list,
489
+ className: o.combobox__list,
465
490
  role: "listbox",
466
- "aria-multiselectable": n || void 0,
467
- "aria-label": typeof w == "string" ? w : ve ?? Ue,
468
- children: i.map((e, r) => {
469
- const o = r === h, _ = (Ar) => {
470
- Ar.preventDefault();
471
- };
491
+ "aria-multiselectable": t || void 0,
492
+ "aria-label": typeof N == "string" ? N : ge ?? Ke,
493
+ children: s.map((e, r) => {
494
+ const a = r === x;
472
495
  if (e.kind === "create")
473
- return /* @__PURE__ */ a(
496
+ return /* @__PURE__ */ l(
474
497
  "li",
475
498
  {
476
- className: l.combobox__option,
499
+ className: o.combobox__option,
477
500
  role: "presentation",
478
- children: /* @__PURE__ */ a(
479
- Ee,
501
+ children: /* @__PURE__ */ l(
502
+ Te,
480
503
  {
481
- id: D(e),
504
+ id: w(e),
482
505
  role: "option",
483
- label: $e(e.inputValue),
484
- leadingVisual: /* @__PURE__ */ a(ce, { glyph: /* @__PURE__ */ a(Ir, {}) }),
485
- active: o,
506
+ label: Oe(e.inputValue),
507
+ leadingVisual: /* @__PURE__ */ l(me, { glyph: /* @__PURE__ */ l(Er, {}) }),
508
+ active: a,
486
509
  "aria-selected": !1,
487
- onMouseDown: _,
488
- onMouseEnter: () => ge(r),
489
- onClick: () => ie(e.inputValue)
510
+ onMouseEnter: () => Ae(r),
511
+ onClick: () => fe(e.inputValue)
490
512
  }
491
513
  )
492
514
  },
493
- D(e)
515
+ w(e)
494
516
  );
495
- const { option: f } = e, Q = lr(f.value), Ve = Yr(f);
496
- return /* @__PURE__ */ a(
517
+ const { option: f } = e, A = cr(f.value), Z = Pr(f);
518
+ return /* @__PURE__ */ l(
497
519
  "li",
498
520
  {
499
- className: l.combobox__option,
521
+ className: o.combobox__option,
500
522
  role: "presentation",
501
- children: /* @__PURE__ */ a(
502
- Ee,
523
+ children: /* @__PURE__ */ l(
524
+ Te,
503
525
  {
504
- ...Or(
505
- Te,
526
+ ...Ur(
527
+ Fe,
506
528
  f.menuItemProps
507
529
  ),
508
- id: D(e),
530
+ id: w(e),
509
531
  role: "option",
510
532
  label: f.label,
511
533
  secondaryLabel: f.secondaryLabel,
512
- leadingElement: Ve != null,
513
- leadingVisual: Ve,
514
- trailingElement: Q,
515
- active: o,
534
+ leadingElement: Z != null,
535
+ leadingVisual: Z,
536
+ trailingElement: A,
537
+ active: a,
516
538
  disabled: f.disabled,
517
- "aria-selected": Q,
518
- onMouseDown: _,
519
- onMouseEnter: () => ge(r),
520
- onClick: () => se(f)
539
+ "aria-selected": A,
540
+ onMouseEnter: () => Ae(r),
541
+ onClick: () => ue(f)
521
542
  }
522
543
  )
523
544
  },
@@ -526,10 +547,10 @@ const xt = Nr(function({
526
547
  })
527
548
  }
528
549
  ),
529
- be ? /* @__PURE__ */ M("div", { className: l.combobox__loading, role: "status", children: [
530
- /* @__PURE__ */ a(Lr, { size: "16", "aria-hidden": !0 }),
531
- /* @__PURE__ */ a("span", { children: He })
532
- ] }) : i.length === 0 && /* @__PURE__ */ a("p", { className: l.combobox__empty, children: Ce })
550
+ xe ? /* @__PURE__ */ M("div", { className: o.combobox__loading, role: "status", children: [
551
+ /* @__PURE__ */ l(zr, { size: "16", "aria-hidden": !0 }),
552
+ /* @__PURE__ */ l("span", { children: $e })
553
+ ] }) : s.length === 0 && /* @__PURE__ */ l("p", { className: o.combobox__empty, children: He })
533
554
  ] }) })
534
555
  }
535
556
  )
@@ -537,6 +558,6 @@ const xt = Nr(function({
537
558
  ] });
538
559
  });
539
560
  export {
540
- xt as default
561
+ yn as default
541
562
  };
542
563
  //# sourceMappingURL=Combobox.js.map