@pismo/marola 1.0.0-beta.69 → 1.0.0-beta.8

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 (174) hide show
  1. package/dist/{Button-BAljjMv3.js → Button-DiLqcAJG.js} +2 -2
  2. package/dist/{ClickAwayListener-DbEYZpyh.js → ClickAwayListener-BaJ-OV_7.js} +3 -3
  3. package/dist/Dialog.module-DFEmFdYT.js +30 -0
  4. package/dist/Group-B3p31ftp.js +26 -0
  5. package/dist/Input.module-iOYlI_1w.js +405 -0
  6. package/dist/{Popup-Ck3XlWMq.js → Popup-lLWZt2wk.js} +3 -3
  7. package/dist/{Portal-oY3enyAm.js → Portal-B_Es6eUL.js} +2 -2
  8. package/dist/SelectButton-K3OIfR5m.js +61 -0
  9. package/dist/{Tabs.module-BGGTkDc5.js → Tabs.module-jkH1Qjn7.js} +7 -7
  10. package/dist/Toggle-BSvvbKBp.js +175 -0
  11. package/dist/assets/Advice.css +1 -1
  12. package/dist/assets/Autocomplete.css +1 -1
  13. package/dist/assets/Button.css +1 -1
  14. package/dist/assets/Checkbox.css +1 -1
  15. package/dist/assets/Dialog.css +1 -1
  16. package/dist/assets/EllipsisTooltip.css +1 -1
  17. package/dist/assets/Group.css +1 -1
  18. package/dist/assets/IconButton.css +1 -1
  19. package/dist/assets/Input.css +1 -1
  20. package/dist/assets/PageHeader.css +1 -1
  21. package/dist/assets/Pagination.css +1 -1
  22. package/dist/assets/SelectButton.css +1 -1
  23. package/dist/assets/Skeleton.css +1 -1
  24. package/dist/assets/Snackbar.css +1 -1
  25. package/dist/assets/SortTooltip.css +1 -1
  26. package/dist/assets/Stepper.css +1 -1
  27. package/dist/assets/Table.css +1 -1
  28. package/dist/assets/Tabs.css +1 -1
  29. package/dist/assets/Toggle.css +1 -1
  30. package/dist/assets/Toggle2.css +1 -1
  31. package/dist/assets/Typography.css +1 -1
  32. package/dist/{combineHooksSlotProps-C-zYvfnF.js → combineHooksSlotProps-BtBYUV_B.js} +1 -1
  33. package/dist/components/Adornment/Adornment.d.ts +2 -11
  34. package/dist/components/Adornment/Adornment.js +6 -6
  35. package/dist/components/Advice/Advice.d.ts +17 -32
  36. package/dist/components/Advice/Advice.js +40 -39
  37. package/dist/components/Advice/Advice.stories.d.ts +3 -4
  38. package/dist/components/Autocomplete/Autocomplete.d.ts +42 -12
  39. package/dist/components/Autocomplete/Autocomplete.js +435 -425
  40. package/dist/components/Autocomplete/Autocomplete.stories.d.ts +25 -3
  41. package/dist/components/Button/Button.d.ts +0 -2
  42. package/dist/components/Button/Button.js +49 -51
  43. package/dist/components/Checkbox/Checkbox.js +52 -52
  44. package/dist/components/Chip/Chip.d.ts +4 -6
  45. package/dist/components/Chip/Chip.js +6 -10
  46. package/dist/components/Chip/Chip.stories.d.ts +15 -6
  47. package/dist/components/Dialog/Actions.js +1 -1
  48. package/dist/components/Dialog/Backdrop.d.ts +3 -3
  49. package/dist/components/Dialog/Backdrop.js +7 -8
  50. package/dist/components/Dialog/CloseIconButton.d.ts +2 -1
  51. package/dist/components/Dialog/CloseIconButton.js +18 -15
  52. package/dist/components/Dialog/Dialog.d.ts +10 -16
  53. package/dist/components/Dialog/Dialog.js +167 -167
  54. package/dist/components/Dialog/Dialog.stories.d.ts +69 -75
  55. package/dist/components/Dialog/DialogTitle.d.ts +2 -5
  56. package/dist/components/Dialog/DialogTitle.js +16 -22
  57. package/dist/components/EllipsisTooltip/EllipsisTooltip.js +17 -30
  58. package/dist/components/EllipsisTooltip/EllipsisTooltip.stories.d.ts +1 -2
  59. package/dist/components/Icon/Icon.js +51 -331
  60. package/dist/components/Icon/types.d.ts +1 -1
  61. package/dist/components/IconButton/IconButton.js +42 -42
  62. package/dist/components/Input/Input.d.ts +5 -26
  63. package/dist/components/Input/Input.js +102 -514
  64. package/dist/components/Input/Input.stories.d.ts +21 -2
  65. package/dist/components/InputSearch/InputSearch.d.ts +7 -37
  66. package/dist/components/InputSearch/InputSearch.js +29 -27
  67. package/dist/components/InputSearch/InputSearch.stories.d.ts +3 -15
  68. package/dist/components/LoadingSpinner/LoadingSpinner.stories.d.ts +1 -1
  69. package/dist/components/PageHeader/PageHeader.d.ts +2 -6
  70. package/dist/components/PageHeader/PageHeader.js +71 -78
  71. package/dist/components/PageHeader/PageHeader.stories.d.ts +1 -3
  72. package/dist/components/Pagination/Pagination.d.ts +1 -5
  73. package/dist/components/Pagination/Pagination.js +91 -90
  74. package/dist/components/Pagination/Pagination.stories.d.ts +1 -1
  75. package/dist/components/RowItem/RowItem.d.ts +2 -2
  76. package/dist/components/RowItem/RowItem.js +5 -9
  77. package/dist/components/Select/Select.d.ts +0 -22
  78. package/dist/components/Select/Select.js +414 -476
  79. package/dist/components/Select/SelectButton.d.ts +0 -2
  80. package/dist/components/Select/SelectButton.js +2 -3
  81. package/dist/components/Skeleton/Skeleton.d.ts +1 -3
  82. package/dist/components/Skeleton/Skeleton.js +14 -20
  83. package/dist/components/Skeleton/SkeletonTable.stories.d.ts +1 -1
  84. package/dist/components/Snackbar/Snackbar.js +93 -93
  85. package/dist/components/Snackbar/Snackbar.stories.d.ts +1 -1
  86. package/dist/components/SortTooltip/SortTooltip.js +46 -46
  87. package/dist/components/Stepper/Stepper.js +35 -35
  88. package/dist/components/Table/Table.d.ts +1 -3
  89. package/dist/components/Table/Table.js +99 -87
  90. package/dist/components/Table/Table.stories.d.ts +1 -1
  91. package/dist/components/Tabs/Tab.d.ts +3 -5
  92. package/dist/components/Tabs/Tab.js +35 -36
  93. package/dist/components/Tabs/TabPanel.d.ts +2 -4
  94. package/dist/components/Tabs/TabPanel.js +38 -48
  95. package/dist/components/Tabs/Tabs.d.ts +4 -6
  96. package/dist/components/Tabs/Tabs.js +112 -115
  97. package/dist/components/TextDisplay/TextDisplay.d.ts +3 -7
  98. package/dist/components/TextDisplay/TextDisplay.js +37 -44
  99. package/dist/components/TextDisplay/TextDisplay.stories.d.ts +1 -2
  100. package/dist/components/Toggle/Toggle.js +55 -55
  101. package/dist/components/ToggleGroup/Group.d.ts +0 -2
  102. package/dist/components/ToggleGroup/Group.js +2 -4
  103. package/dist/components/ToggleGroup/Toggle.d.ts +0 -2
  104. package/dist/components/ToggleGroup/Toggle.js +4 -8
  105. package/dist/components/ToggleGroup/ToggleGroup.js +2 -2
  106. package/dist/components/ToggleGroup/ToggleGroup.stories.d.ts +1 -3
  107. package/dist/components/Tooltip/Tooltip.d.ts +1 -3
  108. package/dist/components/Tooltip/Tooltip.js +4 -4
  109. package/dist/components/Tooltip/Tooltip.stories.d.ts +1 -2
  110. package/dist/components/Typography/Typography.js +47 -47
  111. package/dist/components/Typography/Typography.stories.d.ts +1 -1
  112. package/dist/contexts/SnackbarProvider/SnackbarProvider.js +30 -34
  113. package/dist/contexts/SnackbarProvider/SnackbarProvider.stories.d.ts +1 -1
  114. package/dist/{index-bQFToy-I.js → index-D3Wj0eid.js} +1 -1
  115. package/dist/main.d.ts +0 -8
  116. package/dist/main.js +79 -95
  117. package/dist/marola.css +1 -1
  118. package/dist/{ownerDocument-YGhwAnr1.js → ownerDocument-B61GUaFs.js} +1 -1
  119. package/dist/test-utils/assertStyles.d.ts +1 -1
  120. package/dist/{useButton-DcihopJG.js → useButton-Bn3MNH8I.js} +1 -1
  121. package/dist/{useList-B9C55YB7.js → useList-BpJT77u3.js} +2 -2
  122. package/dist/{useSlotProps-C_I1kEHr.js → useSlotProps-kRhf7Gil.js} +72 -73
  123. package/package.json +13 -22
  124. package/dist/Dialog.module-W7UCXlf3.js +0 -29
  125. package/dist/Group-DspH8hyO.js +0 -30
  126. package/dist/Popover.module-B4boCutS.js +0 -10
  127. package/dist/SelectButton-B38avP9u.js +0 -75
  128. package/dist/Toggle-MfR7l8Wn.js +0 -190
  129. package/dist/assets/Alert.css +0 -1
  130. package/dist/assets/Avatar.css +0 -1
  131. package/dist/assets/Description.css +0 -1
  132. package/dist/assets/Popover.css +0 -1
  133. package/dist/assets/RadioButton.css +0 -1
  134. package/dist/assets/ResultWithChips.css +0 -1
  135. package/dist/assets/StepperNavigator.css +0 -1
  136. package/dist/components/Adornment/Adornment.stories.d.ts +0 -14
  137. package/dist/components/Adornment/adornment.test.d.ts +0 -1
  138. package/dist/components/Alert/Alert.d.ts +0 -11
  139. package/dist/components/Alert/Alert.js +0 -46
  140. package/dist/components/Alert/Alert.stories.d.ts +0 -24
  141. package/dist/components/Alert/Alert.test.d.ts +0 -1
  142. package/dist/components/Avatar/Avatar.d.ts +0 -15
  143. package/dist/components/Avatar/Avatar.js +0 -51
  144. package/dist/components/Avatar/Avatar.stories.d.ts +0 -25
  145. package/dist/components/ConfirmationDialog/ConfirmationDialog.d.ts +0 -14
  146. package/dist/components/ConfirmationDialog/ConfirmationDialog.js +0 -37
  147. package/dist/components/ConfirmationDialog/ConfirmationDialog.stories.d.ts +0 -23
  148. package/dist/components/ConfirmationDialog/ConfirmationModal.test.d.ts +0 -1
  149. package/dist/components/Description/Description.d.ts +0 -21
  150. package/dist/components/Description/Description.js +0 -66
  151. package/dist/components/Description/Description.stories.d.ts +0 -22
  152. package/dist/components/Description/Description.test.d.ts +0 -1
  153. package/dist/components/PageHeader/PageHeader.test.d.ts +0 -1
  154. package/dist/components/Popover/Popover.d.ts +0 -32
  155. package/dist/components/Popover/Popover.js +0 -24
  156. package/dist/components/Popover/Popover.stories.d.ts +0 -34
  157. package/dist/components/Popover/PopoverBody.d.ts +0 -6
  158. package/dist/components/Popover/PopoverBody.js +0 -6
  159. package/dist/components/Popover/PopoverFooter.d.ts +0 -6
  160. package/dist/components/Popover/PopoverFooter.js +0 -6
  161. package/dist/components/Popover/PopoverHeader.d.ts +0 -6
  162. package/dist/components/Popover/PopoverHeader.js +0 -6
  163. package/dist/components/RadioButton/RadioButton.d.ts +0 -19
  164. package/dist/components/RadioButton/RadioButton.js +0 -37
  165. package/dist/components/RadioButton/RadioButton.stories.d.ts +0 -24
  166. package/dist/components/RadioButton/RadioButton.test.d.ts +0 -1
  167. package/dist/components/ResultWithChips/ResultWithChips.d.ts +0 -12
  168. package/dist/components/ResultWithChips/ResultWithChips.js +0 -33
  169. package/dist/components/RowItem/RowItem.stories.d.ts +0 -17
  170. package/dist/components/RowItem/rowItem.test.d.ts +0 -1
  171. package/dist/components/StepperNavigator/StepperNavigator.d.ts +0 -58
  172. package/dist/components/StepperNavigator/StepperNavigator.js +0 -115
  173. package/dist/components/StepperNavigator/StepperNavigator.stories.d.ts +0 -18
  174. package/dist/components/StepperNavigator/StepperNavigator.test.d.ts +0 -1
@@ -1,356 +1,358 @@
1
1
  import '../../assets/Autocomplete.css';
2
- import { jsx as le, jsxs as lt } from "react/jsx-runtime";
3
- import * as h from "react";
4
- import { useId as at, useState as ut, createElement as ct } from "react";
5
- import { Icon as pt } from "../Icon/Icon.js";
6
- import { Input as ft } from "../Input/Input.js";
7
- import { b as je, s as dt } from "../../useSlotProps-C_I1kEHr.js";
8
- import { u as gt } from "../../useId-BW-oWmul.js";
9
- import { u as _e } from "../../useControlled-CCMYYdCM.js";
10
- import { u as ae } from "../../useEventCallback-BAQJJ3ye.js";
11
- const ht = (c) => {
12
- const b = h.useRef({});
13
- return h.useEffect(() => {
14
- b.current = c;
2
+ import { jsxs as He, jsx as T } from "react/jsx-runtime";
3
+ import * as g from "react";
4
+ import { useId as pt, useState as Fe } from "react";
5
+ import { c as Z } from "../../clsx-DB4S2d7J.js";
6
+ import { Icon as qe } from "../Icon/Icon.js";
7
+ import { s as P, I as gt } from "../../Input.module-iOYlI_1w.js";
8
+ import { Typography as Be } from "../Typography/Typography.js";
9
+ import { b as Ke, s as ht } from "../../useSlotProps-kRhf7Gil.js";
10
+ import { u as mt } from "../../useId-BW-oWmul.js";
11
+ import { u as Te } from "../../useControlled-CCMYYdCM.js";
12
+ import { u as he } from "../../useEventCallback-BAQJJ3ye.js";
13
+ const bt = (u) => {
14
+ const b = g.useRef({});
15
+ return g.useEffect(() => {
16
+ b.current = u;
15
17
  }), b.current;
16
18
  };
17
- function Ve(c) {
18
- return typeof c.normalize < "u" ? c.normalize("NFD").replace(/[\u0300-\u036f]/g, "") : c;
19
+ function Ue(u) {
20
+ return typeof u.normalize < "u" ? u.normalize("NFD").replace(/[\u0300-\u036f]/g, "") : u;
19
21
  }
20
- function mt(c = {}) {
22
+ function xt(u = {}) {
21
23
  const {
22
24
  ignoreAccents: b = !0,
23
- ignoreCase: g = !0,
24
- limit: D,
25
- matchFrom: K = "any",
26
- stringify: v,
27
- trim: C = !1
28
- } = c;
29
- return (N, {
30
- inputValue: L,
31
- getOptionLabel: y
25
+ ignoreCase: h = !0,
26
+ limit: $,
27
+ matchFrom: A = "any",
28
+ stringify: H,
29
+ trim: V = !1
30
+ } = u;
31
+ return (M, {
32
+ inputValue: F,
33
+ getOptionLabel: m
32
34
  }) => {
33
- let S = C ? L.trim() : L;
34
- g && (S = S.toLowerCase()), b && (S = Ve(S));
35
- const q = S ? N.filter((z) => {
36
- let w = (v || y)(z);
37
- return g && (w = w.toLowerCase()), b && (w = Ve(w)), K === "start" ? w.indexOf(S) === 0 : w.indexOf(S) > -1;
38
- }) : N;
39
- return typeof D == "number" ? q.slice(0, D) : q;
35
+ let I = V ? F.trim() : F;
36
+ h && (I = I.toLowerCase()), b && (I = Ue(I));
37
+ const U = I ? M.filter((Y) => {
38
+ let _ = (H || m)(Y);
39
+ return h && (_ = _.toLowerCase()), b && (_ = Ue(_)), A === "start" ? _.indexOf(I) === 0 : _.indexOf(I) > -1;
40
+ }) : M;
41
+ return typeof $ == "number" ? U.slice(0, $) : U;
40
42
  };
41
43
  }
42
- function ue(c, b) {
43
- for (let g = 0; g < c.length; g += 1)
44
- if (b(c[g]))
45
- return g;
44
+ function me(u, b) {
45
+ for (let h = 0; h < u.length; h += 1)
46
+ if (b(u[h]))
47
+ return h;
46
48
  return -1;
47
49
  }
48
- const bt = mt(), Me = 5, yt = (c) => {
50
+ const yt = xt(), je = 5, Ot = (u) => {
49
51
  var b;
50
- return c.current !== null && ((b = c.current.parentElement) == null ? void 0 : b.contains(document.activeElement));
52
+ return u.current !== null && ((b = u.current.parentElement) == null ? void 0 : b.contains(document.activeElement));
51
53
  };
52
- function xt(c) {
54
+ function It(u) {
53
55
  const {
54
56
  // eslint-disable-next-line @typescript-eslint/naming-convention
55
- unstable_isActiveElementInListbox: b = yt,
57
+ unstable_isActiveElementInListbox: b = Ot,
56
58
  // eslint-disable-next-line @typescript-eslint/naming-convention
57
- unstable_classNamePrefix: g = "Mui",
58
- autoComplete: D = !1,
59
- autoHighlight: K = !1,
60
- autoSelect: v = !1,
61
- blurOnSelect: C = !1,
62
- clearOnBlur: N = !c.freeSolo,
63
- clearOnEscape: L = !1,
64
- componentName: y = "useAutocomplete",
65
- defaultValue: S = c.multiple ? [] : null,
66
- disableClearable: q = !1,
67
- disableCloseOnSelect: z = !1,
68
- disabled: w,
69
- disabledItemsFocusable: ce = !1,
70
- disableListWrap: J = !1,
71
- filterOptions: pe = bt,
72
- filterSelectedOptions: Q = !1,
73
- freeSolo: i = !1,
74
- getOptionDisabled: m,
75
- getOptionKey: j,
76
- getOptionLabel: V = (t) => {
59
+ unstable_classNamePrefix: h = "Mui",
60
+ autoComplete: $ = !1,
61
+ autoHighlight: A = !1,
62
+ autoSelect: H = !1,
63
+ blurOnSelect: V = !1,
64
+ clearOnBlur: M = !u.freeSolo,
65
+ clearOnEscape: F = !1,
66
+ componentName: m = "useAutocomplete",
67
+ defaultValue: I = u.multiple ? [] : null,
68
+ disableClearable: U = !1,
69
+ disableCloseOnSelect: Y = !1,
70
+ disabled: _,
71
+ disabledItemsFocusable: be = !1,
72
+ disableListWrap: ee = !1,
73
+ filterOptions: xe = yt,
74
+ filterSelectedOptions: te = !1,
75
+ freeSolo: R = !1,
76
+ getOptionDisabled: q,
77
+ getOptionKey: ne,
78
+ getOptionLabel: re = (t) => {
77
79
  var e;
78
80
  return (e = t.label) != null ? e : t;
79
81
  },
80
- groupBy: _,
81
- handleHomeEndKeys: Z = !c.freeSolo,
82
- id: fe,
83
- includeInputInList: Oe = !1,
84
- inputValue: Re,
85
- isOptionEqualToValue: M = (t, e) => t === e,
86
- multiple: u = !1,
87
- onChange: Ie,
88
- onClose: Se,
89
- onHighlightChange: we,
90
- onInputChange: R,
91
- onOpen: ke,
92
- open: He,
93
- openOnFocus: Fe = !1,
94
- options: de,
95
- readOnly: W = !1,
96
- selectOnFocus: qe = !c.freeSolo,
97
- value: Be
98
- } = c, E = gt(fe);
99
- let O = V;
100
- O = (t) => {
101
- const e = V(t);
82
+ groupBy: j,
83
+ handleHomeEndKeys: oe = !u.freeSolo,
84
+ id: ye,
85
+ includeInputInList: se = !1,
86
+ inputValue: Oe,
87
+ isOptionEqualToValue: D = (t, e) => t === e,
88
+ multiple: l = !1,
89
+ onChange: W,
90
+ onClose: le,
91
+ onHighlightChange: ie,
92
+ onInputChange: E,
93
+ onOpen: c,
94
+ open: v,
95
+ openOnFocus: Je = !1,
96
+ options: Ie,
97
+ readOnly: X = !1,
98
+ selectOnFocus: Ye = !u.freeSolo,
99
+ value: We
100
+ } = u, k = mt(ye);
101
+ let y = re;
102
+ y = (t) => {
103
+ const e = re(t);
102
104
  if (typeof e != "string") {
103
105
  if (process.env.NODE_ENV !== "production") {
104
- const r = e === void 0 ? "undefined" : `${typeof e} (${e})`;
105
- console.error(`MUI: The \`getOptionLabel\` method of ${y} returned ${r} instead of a string for ${JSON.stringify(t)}.`);
106
+ const n = e === void 0 ? "undefined" : `${typeof e} (${e})`;
107
+ console.error(`MUI: The \`getOptionLabel\` method of ${m} returned ${n} instead of a string for ${JSON.stringify(t)}.`);
106
108
  }
107
109
  return String(e);
108
110
  }
109
111
  return e;
110
112
  };
111
- const ge = h.useRef(!1), he = h.useRef(!0), f = h.useRef(null), T = h.useRef(null), [ee, Ue] = h.useState(null), [$, me] = h.useState(-1), Ee = K ? 0 : -1, x = h.useRef(Ee), [o, Ke] = _e({
112
- controlled: Be,
113
- default: S,
114
- name: y
115
- }), [a, te] = _e({
116
- controlled: Re,
113
+ const _e = g.useRef(!1), we = g.useRef(!0), d = g.useRef(null), N = g.useRef(null), [ae, Xe] = g.useState(null), [S, ke] = g.useState(-1), $e = A ? 0 : -1, x = g.useRef($e), [r, Ge] = Te({
114
+ controlled: We,
115
+ default: I,
116
+ name: m
117
+ }), [a, ue] = Te({
118
+ controlled: Oe,
117
119
  default: "",
118
- name: y,
120
+ name: m,
119
121
  state: "inputValue"
120
- }), [re, Te] = h.useState(!1), oe = h.useCallback((t, e) => {
121
- if (!(u ? o.length < e.length : e !== null) && !N)
122
+ }), [ce, Ae] = g.useState(!1), fe = g.useCallback((t, e) => {
123
+ if (!(l ? r.length < e.length : e !== null) && !M)
122
124
  return;
123
- let n;
124
- if (u)
125
- n = "";
125
+ let o;
126
+ if (l)
127
+ o = "";
126
128
  else if (e == null)
127
- n = "";
129
+ o = "";
128
130
  else {
129
- const s = O(e);
130
- n = typeof s == "string" ? s : "";
131
+ const s = y(e);
132
+ o = typeof s == "string" ? s : "";
131
133
  }
132
- a !== n && (te(n), R && R(t, n, "reset"));
133
- }, [O, a, u, R, te, N, o]), [B, $e] = _e({
134
- controlled: He,
134
+ a !== o && (ue(o), E && E(t, o, "reset"));
135
+ }, [y, a, l, E, ue, M, r]), [z, De] = Te({
136
+ controlled: v,
135
137
  default: !1,
136
- name: y,
138
+ name: m,
137
139
  state: "open"
138
- }), [ze, Pe] = h.useState(!0), Ae = !u && o != null && a === O(o), k = B && !W, p = k ? pe(
139
- de.filter((t) => !(Q && (u ? o : [o]).some((e) => e !== null && M(t, e)))),
140
+ }), [Qe, Ee] = g.useState(!0), ve = !l && r != null && a === y(r), w = z && !X, f = w ? xe(
141
+ Ie.filter((t) => !(te && (l ? r : [r]).some((e) => e !== null && D(t, e)))),
140
142
  // we use the empty string to manipulate `filterOptions` to not filter any options
141
143
  // i.e. the filter predicate always returns true
142
144
  {
143
- inputValue: Ae && ze ? "" : a,
144
- getOptionLabel: O
145
+ inputValue: ve && Qe ? "" : a,
146
+ getOptionLabel: y
145
147
  }
146
- ) : [], P = ht({
147
- filteredOptions: p,
148
- value: o,
148
+ ) : [], C = bt({
149
+ filteredOptions: f,
150
+ value: r,
149
151
  inputValue: a
150
152
  });
151
- h.useEffect(() => {
152
- const t = o !== P.value;
153
- re && !t || i && !t || oe(null, o);
154
- }, [o, oe, re, P.value, i]);
155
- const be = B && p.length > 0 && !W;
156
- if (process.env.NODE_ENV !== "production" && o !== null && !i && de.length > 0) {
157
- const t = (u ? o : [o]).filter((e) => !de.some((r) => M(r, e)));
158
- t.length > 0 && console.warn([`MUI: The value provided to ${y} is invalid.`, `None of the options match with \`${t.length > 1 ? JSON.stringify(t) : JSON.stringify(t[0])}\`.`, "You can use the `isOptionEqualToValue` prop to customize the equality test."].join(`
153
+ g.useEffect(() => {
154
+ const t = r !== C.value;
155
+ ce && !t || R && !t || fe(null, r);
156
+ }, [r, fe, ce, C.value, R]);
157
+ const Ne = z && f.length > 0 && !X;
158
+ if (process.env.NODE_ENV !== "production" && r !== null && !R && Ie.length > 0) {
159
+ const t = (l ? r : [r]).filter((e) => !Ie.some((n) => D(n, e)));
160
+ t.length > 0 && console.warn([`MUI: The value provided to ${m} is invalid.`, `None of the options match with \`${t.length > 1 ? JSON.stringify(t) : JSON.stringify(t[0])}\`.`, "You can use the `isOptionEqualToValue` prop to customize the equality test."].join(`
159
161
  `));
160
162
  }
161
- const ne = ae((t) => {
162
- t === -1 ? f.current.focus() : ee.querySelector(`[data-tag-index="${t}"]`).focus();
163
+ const de = he((t) => {
164
+ t === -1 ? d.current.focus() : ae.querySelector(`[data-tag-index="${t}"]`).focus();
163
165
  });
164
- h.useEffect(() => {
165
- u && $ > o.length - 1 && (me(-1), ne(-1));
166
- }, [o, u, $, ne]);
167
- function Je(t, e) {
168
- if (!T.current || t < 0 || t >= p.length)
166
+ g.useEffect(() => {
167
+ l && S > r.length - 1 && (ke(-1), de(-1));
168
+ }, [r, l, S, de]);
169
+ function Ze(t, e) {
170
+ if (!N.current || t < 0 || t >= f.length)
169
171
  return -1;
170
- let r = t;
172
+ let n = t;
171
173
  for (; ; ) {
172
- const n = T.current.querySelector(`[data-option-index="${r}"]`), s = ce ? !1 : !n || n.disabled || n.getAttribute("aria-disabled") === "true";
173
- if (n && n.hasAttribute("tabindex") && !s)
174
- return r;
175
- if (e === "next" ? r = (r + 1) % p.length : r = (r - 1 + p.length) % p.length, r === t)
174
+ const o = N.current.querySelector(`[data-option-index="${n}"]`), s = be ? !1 : !o || o.disabled || o.getAttribute("aria-disabled") === "true";
175
+ if (o && o.hasAttribute("tabindex") && !s)
176
+ return n;
177
+ if (e === "next" ? n = (n + 1) % f.length : n = (n - 1 + f.length) % f.length, n === t)
176
178
  return -1;
177
179
  }
178
180
  }
179
- const H = ae(({
181
+ const B = he(({
180
182
  event: t,
181
183
  index: e,
182
- reason: r = "auto"
184
+ reason: n = "auto"
183
185
  }) => {
184
- if (x.current = e, e === -1 ? f.current.removeAttribute("aria-activedescendant") : f.current.setAttribute("aria-activedescendant", `${E}-option-${e}`), we && we(t, e === -1 ? null : p[e], r), !T.current)
186
+ if (x.current = e, e === -1 ? d.current.removeAttribute("aria-activedescendant") : d.current.setAttribute("aria-activedescendant", `${k}-option-${e}`), ie && ie(t, e === -1 ? null : f[e], n), !N.current)
185
187
  return;
186
- const n = T.current.querySelector(`[role="option"].${g}-focused`);
187
- n && (n.classList.remove(`${g}-focused`), n.classList.remove(`${g}-focusVisible`));
188
- let s = T.current;
189
- if (T.current.getAttribute("role") !== "listbox" && (s = T.current.parentElement.querySelector('[role="listbox"]')), !s)
188
+ const o = N.current.querySelector(`[role="option"].${h}-focused`);
189
+ o && (o.classList.remove(`${h}-focused`), o.classList.remove(`${h}-focusVisible`));
190
+ let s = N.current;
191
+ if (N.current.getAttribute("role") !== "listbox" && (s = N.current.parentElement.querySelector('[role="listbox"]')), !s)
190
192
  return;
191
193
  if (e === -1) {
192
194
  s.scrollTop = 0;
193
195
  return;
194
196
  }
195
- const l = T.current.querySelector(`[data-option-index="${e}"]`);
196
- if (l && (l.classList.add(`${g}-focused`), r === "keyboard" && l.classList.add(`${g}-focusVisible`), s.scrollHeight > s.clientHeight && r !== "mouse" && r !== "touch")) {
197
- const d = l, I = s.clientHeight + s.scrollTop, ie = d.offsetTop + d.offsetHeight;
198
- ie > I ? s.scrollTop = ie - s.clientHeight : d.offsetTop - d.offsetHeight * (_ ? 1.3 : 0) < s.scrollTop && (s.scrollTop = d.offsetTop - d.offsetHeight * (_ ? 1.3 : 0));
197
+ const i = N.current.querySelector(`[data-option-index="${e}"]`);
198
+ if (i && (i.classList.add(`${h}-focused`), n === "keyboard" && i.classList.add(`${h}-focusVisible`), s.scrollHeight > s.clientHeight && n !== "mouse" && n !== "touch")) {
199
+ const p = i, O = s.clientHeight + s.scrollTop, ge = p.offsetTop + p.offsetHeight;
200
+ ge > O ? s.scrollTop = ge - s.clientHeight : p.offsetTop - p.offsetHeight * (j ? 1.3 : 0) < s.scrollTop && (s.scrollTop = p.offsetTop - p.offsetHeight * (j ? 1.3 : 0));
199
201
  }
200
- }), A = ae(({
202
+ }), L = he(({
201
203
  event: t,
202
204
  diff: e,
203
- direction: r = "next",
204
- reason: n = "auto"
205
+ direction: n = "next",
206
+ reason: o = "auto"
205
207
  }) => {
206
- if (!k)
208
+ if (!w)
207
209
  return;
208
- const l = Je((() => {
209
- const d = p.length - 1;
210
+ const i = Ze((() => {
211
+ const p = f.length - 1;
210
212
  if (e === "reset")
211
- return Ee;
213
+ return $e;
212
214
  if (e === "start")
213
215
  return 0;
214
216
  if (e === "end")
215
- return d;
216
- const I = x.current + e;
217
- return I < 0 ? I === -1 && Oe ? -1 : J && x.current !== -1 || Math.abs(e) > 1 ? 0 : d : I > d ? I === d + 1 && Oe ? -1 : J || Math.abs(e) > 1 ? d : 0 : I;
218
- })(), r);
219
- if (H({
220
- index: l,
221
- reason: n,
217
+ return p;
218
+ const O = x.current + e;
219
+ return O < 0 ? O === -1 && se ? -1 : ee && x.current !== -1 || Math.abs(e) > 1 ? 0 : p : O > p ? O === p + 1 && se ? -1 : ee || Math.abs(e) > 1 ? p : 0 : O;
220
+ })(), n);
221
+ if (B({
222
+ index: i,
223
+ reason: o,
222
224
  event: t
223
- }), D && e !== "reset")
224
- if (l === -1)
225
- f.current.value = a;
225
+ }), $ && e !== "reset")
226
+ if (i === -1)
227
+ d.current.value = a;
226
228
  else {
227
- const d = O(p[l]);
228
- f.current.value = d, d.toLowerCase().indexOf(a.toLowerCase()) === 0 && a.length > 0 && f.current.setSelectionRange(a.length, d.length);
229
+ const p = y(f[i]);
230
+ d.current.value = p, p.toLowerCase().indexOf(a.toLowerCase()) === 0 && a.length > 0 && d.current.setSelectionRange(a.length, p.length);
229
231
  }
230
- }), We = () => {
231
- const t = (e, r) => {
232
- const n = e ? O(e) : "", s = r ? O(r) : "";
233
- return n === s;
232
+ }), et = () => {
233
+ const t = (e, n) => {
234
+ const o = e ? y(e) : "", s = n ? y(n) : "";
235
+ return o === s;
234
236
  };
235
- if (x.current !== -1 && P.filteredOptions && P.filteredOptions.length !== p.length && P.inputValue === a && (u ? o.length === P.value.length && P.value.every((e, r) => O(o[r]) === O(e)) : t(P.value, o))) {
236
- const e = P.filteredOptions[x.current];
237
+ if (x.current !== -1 && C.filteredOptions && C.filteredOptions.length !== f.length && C.inputValue === a && (l ? r.length === C.value.length && C.value.every((e, n) => y(r[n]) === y(e)) : t(C.value, r))) {
238
+ const e = C.filteredOptions[x.current];
237
239
  if (e)
238
- return ue(p, (r) => O(r) === O(e));
240
+ return me(f, (n) => y(n) === y(e));
239
241
  }
240
242
  return -1;
241
- }, ye = h.useCallback(() => {
242
- if (!k)
243
+ }, Se = g.useCallback(() => {
244
+ if (!w)
243
245
  return;
244
- const t = We();
246
+ const t = et();
245
247
  if (t !== -1) {
246
248
  x.current = t;
247
249
  return;
248
250
  }
249
- const e = u ? o[0] : o;
250
- if (p.length === 0 || e == null) {
251
- A({
251
+ const e = l ? r[0] : r;
252
+ if (f.length === 0 || e == null) {
253
+ L({
252
254
  diff: "reset"
253
255
  });
254
256
  return;
255
257
  }
256
- if (T.current) {
258
+ if (N.current) {
257
259
  if (e != null) {
258
- const r = p[x.current];
259
- if (u && r && ue(o, (s) => M(r, s)) !== -1)
260
+ const n = f[x.current];
261
+ if (l && n && me(r, (s) => D(n, s)) !== -1)
260
262
  return;
261
- const n = ue(p, (s) => M(s, e));
262
- n === -1 ? A({
263
+ const o = me(f, (s) => D(s, e));
264
+ o === -1 ? L({
263
265
  diff: "reset"
264
- }) : H({
265
- index: n
266
+ }) : B({
267
+ index: o
266
268
  });
267
269
  return;
268
270
  }
269
- if (x.current >= p.length - 1) {
270
- H({
271
- index: p.length - 1
271
+ if (x.current >= f.length - 1) {
272
+ B({
273
+ index: f.length - 1
272
274
  });
273
275
  return;
274
276
  }
275
- H({
277
+ B({
276
278
  index: x.current
277
279
  });
278
280
  }
279
281
  }, [
280
282
  // Only sync the highlighted index when the option switch between empty and not
281
- p.length,
283
+ f.length,
282
284
  // Don't sync the highlighted index with the value when multiple
283
285
  // eslint-disable-next-line react-hooks/exhaustive-deps
284
- u ? !1 : o,
285
- Q,
286
- A,
287
- H,
288
- k,
286
+ l ? !1 : r,
287
+ te,
288
+ L,
289
+ B,
290
+ w,
289
291
  a,
290
- u
291
- ]), Ye = ae((t) => {
292
- dt(T, t), t && ye();
292
+ l
293
+ ]), tt = he((t) => {
294
+ ht(N, t), t && Se();
293
295
  });
294
- process.env.NODE_ENV !== "production" && h.useEffect(() => {
295
- (!f.current || f.current.nodeName !== "INPUT") && (f.current && f.current.nodeName === "TEXTAREA" ? console.warn([`A textarea element was provided to ${y} where input was expected.`, "This is not a supported scenario but it may work under certain conditions.", "A textarea keyboard navigation may conflict with Autocomplete controls (for example enter and arrow keys).", "Make sure to test keyboard navigation and add custom event handlers if necessary."].join(`
296
- `)) : console.error([`MUI: Unable to find the input element. It was resolved to ${f.current} while an HTMLInputElement was expected.`, `Instead, ${y} expects an input element.`, "", y === "useAutocomplete" ? "Make sure you have bound getInputProps correctly and that the normal ref/effect resolutions order is guaranteed." : "Make sure you have customized the input component correctly."].join(`
296
+ process.env.NODE_ENV !== "production" && g.useEffect(() => {
297
+ (!d.current || d.current.nodeName !== "INPUT") && (d.current && d.current.nodeName === "TEXTAREA" ? console.warn([`A textarea element was provided to ${m} where input was expected.`, "This is not a supported scenario but it may work under certain conditions.", "A textarea keyboard navigation may conflict with Autocomplete controls (for example enter and arrow keys).", "Make sure to test keyboard navigation and add custom event handlers if necessary."].join(`
298
+ `)) : console.error([`MUI: Unable to find the input element. It was resolved to ${d.current} while an HTMLInputElement was expected.`, `Instead, ${m} expects an input element.`, "", m === "useAutocomplete" ? "Make sure you have bound getInputProps correctly and that the normal ref/effect resolutions order is guaranteed." : "Make sure you have customized the input component correctly."].join(`
297
299
  `)));
298
- }, [y]), h.useEffect(() => {
299
- ye();
300
- }, [ye]);
301
- const F = (t) => {
302
- B || ($e(!0), Pe(!0), ke && ke(t));
303
- }, Y = (t, e) => {
304
- B && ($e(!1), Se && Se(t, e));
305
- }, U = (t, e, r, n) => {
306
- if (u) {
307
- if (o.length === e.length && o.every((s, l) => s === e[l]))
300
+ }, [m]), g.useEffect(() => {
301
+ Se();
302
+ }, [Se]);
303
+ const K = (t) => {
304
+ z || (De(!0), Ee(!0), c && c(t));
305
+ }, G = (t, e) => {
306
+ z && (De(!1), le && le(t, e));
307
+ }, J = (t, e, n, o) => {
308
+ if (l) {
309
+ if (r.length === e.length && r.every((s, i) => s === e[i]))
308
310
  return;
309
- } else if (o === e)
311
+ } else if (r === e)
310
312
  return;
311
- Ie && Ie(t, e, r, n), Ke(e);
312
- }, se = h.useRef(!1), X = (t, e, r = "selectOption", n = "options") => {
313
- let s = r, l = e;
314
- if (u) {
315
- if (l = Array.isArray(o) ? o.slice() : [], process.env.NODE_ENV !== "production") {
316
- const I = l.filter((ie) => M(e, ie));
317
- I.length > 1 && console.error([`MUI: The \`isOptionEqualToValue\` method of ${y} does not handle the arguments correctly.`, `The component expects a single value to match a given option but found ${I.length} matches.`].join(`
313
+ W && W(t, e, n, o), Ge(e);
314
+ }, pe = g.useRef(!1), Q = (t, e, n = "selectOption", o = "options") => {
315
+ let s = n, i = e;
316
+ if (l) {
317
+ if (i = Array.isArray(r) ? r.slice() : [], process.env.NODE_ENV !== "production") {
318
+ const O = i.filter((ge) => D(e, ge));
319
+ O.length > 1 && console.error([`MUI: The \`isOptionEqualToValue\` method of ${m} does not handle the arguments correctly.`, `The component expects a single value to match a given option but found ${O.length} matches.`].join(`
318
320
  `));
319
321
  }
320
- const d = ue(l, (I) => M(e, I));
321
- d === -1 ? l.push(e) : n !== "freeSolo" && (l.splice(d, 1), s = "removeOption");
322
+ const p = me(i, (O) => D(e, O));
323
+ p === -1 ? i.push(e) : o !== "freeSolo" && (i.splice(p, 1), s = "removeOption");
322
324
  }
323
- oe(t, l), U(t, l, s, {
325
+ fe(t, i), J(t, i, s, {
324
326
  option: e
325
- }), !z && (!t || !t.ctrlKey && !t.metaKey) && Y(t, s), (C === !0 || C === "touch" && se.current || C === "mouse" && !se.current) && f.current.blur();
327
+ }), !Y && (!t || !t.ctrlKey && !t.metaKey) && G(t, s), (V === !0 || V === "touch" && pe.current || V === "mouse" && !pe.current) && d.current.blur();
326
328
  };
327
- function Xe(t, e) {
329
+ function nt(t, e) {
328
330
  if (t === -1)
329
331
  return -1;
330
- let r = t;
332
+ let n = t;
331
333
  for (; ; ) {
332
- if (e === "next" && r === o.length || e === "previous" && r === -1)
334
+ if (e === "next" && n === r.length || e === "previous" && n === -1)
333
335
  return -1;
334
- const n = ee.querySelector(`[data-tag-index="${r}"]`);
335
- if (!n || !n.hasAttribute("tabindex") || n.disabled || n.getAttribute("aria-disabled") === "true")
336
- r += e === "next" ? 1 : -1;
336
+ const o = ae.querySelector(`[data-tag-index="${n}"]`);
337
+ if (!o || !o.hasAttribute("tabindex") || o.disabled || o.getAttribute("aria-disabled") === "true")
338
+ n += e === "next" ? 1 : -1;
337
339
  else
338
- return r;
340
+ return n;
339
341
  }
340
342
  }
341
- const De = (t, e) => {
342
- if (!u)
343
+ const Ce = (t, e) => {
344
+ if (!l)
343
345
  return;
344
- a === "" && Y(t, "toggleInput");
345
- let r = $;
346
- $ === -1 ? a === "" && e === "previous" && (r = o.length - 1) : (r += e === "next" ? 1 : -1, r < 0 && (r = 0), r === o.length && (r = -1)), r = Xe(r, e), me(r), ne(r);
347
- }, Ce = (t) => {
348
- ge.current = !0, te(""), R && R(t, "", "clear"), U(t, u ? [] : null, "clear");
349
- }, Ge = (t) => (e) => {
350
- if (t.onKeyDown && t.onKeyDown(e), !e.defaultMuiPrevented && ($ !== -1 && ["ArrowLeft", "ArrowRight"].indexOf(e.key) === -1 && (me(-1), ne(-1)), e.which !== 229))
346
+ a === "" && G(t, "toggleInput");
347
+ let n = S;
348
+ S === -1 ? a === "" && e === "previous" && (n = r.length - 1) : (n += e === "next" ? 1 : -1, n < 0 && (n = 0), n === r.length && (n = -1)), n = nt(n, e), ke(n), de(n);
349
+ }, Le = (t) => {
350
+ _e.current = !0, ue(""), E && E(t, "", "clear"), J(t, l ? [] : null, "clear");
351
+ }, rt = (t) => (e) => {
352
+ if (t.onKeyDown && t.onKeyDown(e), !e.defaultMuiPrevented && (S !== -1 && ["ArrowLeft", "ArrowRight"].indexOf(e.key) === -1 && (ke(-1), de(-1)), e.which !== 229))
351
353
  switch (e.key) {
352
354
  case "Home":
353
- k && Z && (e.preventDefault(), A({
355
+ w && oe && (e.preventDefault(), L({
354
356
  diff: "start",
355
357
  direction: "next",
356
358
  reason: "keyboard",
@@ -358,7 +360,7 @@ function xt(c) {
358
360
  }));
359
361
  break;
360
362
  case "End":
361
- k && Z && (e.preventDefault(), A({
363
+ w && oe && (e.preventDefault(), L({
362
364
  diff: "end",
363
365
  direction: "previous",
364
366
  reason: "keyboard",
@@ -366,187 +368,187 @@ function xt(c) {
366
368
  }));
367
369
  break;
368
370
  case "PageUp":
369
- e.preventDefault(), A({
370
- diff: -Me,
371
+ e.preventDefault(), L({
372
+ diff: -je,
371
373
  direction: "previous",
372
374
  reason: "keyboard",
373
375
  event: e
374
- }), F(e);
376
+ }), K(e);
375
377
  break;
376
378
  case "PageDown":
377
- e.preventDefault(), A({
378
- diff: Me,
379
+ e.preventDefault(), L({
380
+ diff: je,
379
381
  direction: "next",
380
382
  reason: "keyboard",
381
383
  event: e
382
- }), F(e);
384
+ }), K(e);
383
385
  break;
384
386
  case "ArrowDown":
385
- e.preventDefault(), A({
387
+ e.preventDefault(), L({
386
388
  diff: 1,
387
389
  direction: "next",
388
390
  reason: "keyboard",
389
391
  event: e
390
- }), F(e);
392
+ }), K(e);
391
393
  break;
392
394
  case "ArrowUp":
393
- e.preventDefault(), A({
395
+ e.preventDefault(), L({
394
396
  diff: -1,
395
397
  direction: "previous",
396
398
  reason: "keyboard",
397
399
  event: e
398
- }), F(e);
400
+ }), K(e);
399
401
  break;
400
402
  case "ArrowLeft":
401
- De(e, "previous");
403
+ Ce(e, "previous");
402
404
  break;
403
405
  case "ArrowRight":
404
- De(e, "next");
406
+ Ce(e, "next");
405
407
  break;
406
408
  case "Enter":
407
- if (x.current !== -1 && k) {
408
- const r = p[x.current], n = m ? m(r) : !1;
409
- if (e.preventDefault(), n)
409
+ if (x.current !== -1 && w) {
410
+ const n = f[x.current], o = q ? q(n) : !1;
411
+ if (e.preventDefault(), o)
410
412
  return;
411
- X(e, r, "selectOption"), D && f.current.setSelectionRange(f.current.value.length, f.current.value.length);
413
+ Q(e, n, "selectOption"), $ && d.current.setSelectionRange(d.current.value.length, d.current.value.length);
412
414
  } else
413
- i && a !== "" && Ae === !1 && (u && e.preventDefault(), X(e, a, "createOption", "freeSolo"));
415
+ R && a !== "" && ve === !1 && (l && e.preventDefault(), Q(e, a, "createOption", "freeSolo"));
414
416
  break;
415
417
  case "Escape":
416
- k ? (e.preventDefault(), e.stopPropagation(), Y(e, "escape")) : L && (a !== "" || u && o.length > 0) && (e.preventDefault(), e.stopPropagation(), Ce(e));
418
+ w ? (e.preventDefault(), e.stopPropagation(), G(e, "escape")) : F && (a !== "" || l && r.length > 0) && (e.preventDefault(), e.stopPropagation(), Le(e));
417
419
  break;
418
420
  case "Backspace":
419
- if (u && !W && a === "" && o.length > 0) {
420
- const r = $ === -1 ? o.length - 1 : $, n = o.slice();
421
- n.splice(r, 1), U(e, n, "removeOption", {
422
- option: o[r]
421
+ if (l && !X && a === "" && r.length > 0) {
422
+ const n = S === -1 ? r.length - 1 : S, o = r.slice();
423
+ o.splice(n, 1), J(e, o, "removeOption", {
424
+ option: r[n]
423
425
  });
424
426
  }
425
427
  break;
426
428
  case "Delete":
427
- if (u && !W && a === "" && o.length > 0 && $ !== -1) {
428
- const r = $, n = o.slice();
429
- n.splice(r, 1), U(e, n, "removeOption", {
430
- option: o[r]
429
+ if (l && !X && a === "" && r.length > 0 && S !== -1) {
430
+ const n = S, o = r.slice();
431
+ o.splice(n, 1), J(e, o, "removeOption", {
432
+ option: r[n]
431
433
  });
432
434
  }
433
435
  break;
434
436
  }
435
- }, Qe = (t) => {
436
- Te(!0), Fe && !ge.current && F(t);
437
- }, Ne = (t) => {
438
- if (b(T)) {
439
- f.current.focus();
437
+ }, ot = (t) => {
438
+ Ae(!0), Je && !_e.current && K(t);
439
+ }, Ve = (t) => {
440
+ if (b(N)) {
441
+ d.current.focus();
440
442
  return;
441
443
  }
442
- Te(!1), he.current = !0, ge.current = !1, v && x.current !== -1 && k ? X(t, p[x.current], "blur") : v && i && a !== "" ? X(t, a, "blur", "freeSolo") : N && oe(t, o), Y(t, "blur");
443
- }, Ze = (t) => {
444
+ Ae(!1), we.current = !0, _e.current = !1, H && x.current !== -1 && w ? Q(t, f[x.current], "blur") : H && R && a !== "" ? Q(t, a, "blur", "freeSolo") : M && fe(t, r), G(t, "blur");
445
+ }, st = (t) => {
444
446
  const e = t.target.value;
445
- a !== e && (te(e), Pe(!1), R && R(t, e, "input")), e === "" ? !q && !u && U(t, null, "clear") : F(t);
446
- }, et = (t) => {
447
+ a !== e && (ue(e), Ee(!1), E && E(t, e, "input")), e === "" ? !U && !l && J(t, null, "clear") : K(t);
448
+ }, lt = (t) => {
447
449
  const e = Number(t.currentTarget.getAttribute("data-option-index"));
448
- x.current !== e && H({
450
+ x.current !== e && B({
449
451
  event: t,
450
452
  index: e,
451
453
  reason: "mouse"
452
454
  });
453
- }, tt = (t) => {
454
- H({
455
+ }, it = (t) => {
456
+ B({
455
457
  event: t,
456
458
  index: Number(t.currentTarget.getAttribute("data-option-index")),
457
459
  reason: "touch"
458
- }), se.current = !0;
459
- }, rt = (t) => {
460
+ }), pe.current = !0;
461
+ }, at = (t) => {
460
462
  const e = Number(t.currentTarget.getAttribute("data-option-index"));
461
- X(t, p[e], "selectOption"), se.current = !1;
462
- }, ot = (t) => (e) => {
463
- const r = o.slice();
464
- r.splice(t, 1), U(e, r, "removeOption", {
465
- option: o[t]
463
+ Q(t, f[e], "selectOption"), pe.current = !1;
464
+ }, ut = (t) => (e) => {
465
+ const n = r.slice();
466
+ n.splice(t, 1), J(e, n, "removeOption", {
467
+ option: r[t]
466
468
  });
467
- }, ve = (t) => {
468
- B ? Y(t, "toggleInput") : F(t);
469
- }, nt = (t) => {
470
- t.currentTarget.contains(t.target) && t.target.getAttribute("id") !== E && t.preventDefault();
471
- }, st = (t) => {
472
- t.currentTarget.contains(t.target) && (f.current.focus(), qe && he.current && f.current.selectionEnd - f.current.selectionStart === 0 && f.current.select(), he.current = !1);
473
- }, it = (t) => {
474
- !w && (a === "" || !B) && ve(t);
469
+ }, Me = (t) => {
470
+ z ? G(t, "toggleInput") : K(t);
471
+ }, ct = (t) => {
472
+ t.currentTarget.contains(t.target) && t.target.getAttribute("id") !== k && t.preventDefault();
473
+ }, ft = (t) => {
474
+ t.currentTarget.contains(t.target) && (d.current.focus(), Ye && we.current && d.current.selectionEnd - d.current.selectionStart === 0 && d.current.select(), we.current = !1);
475
+ }, dt = (t) => {
476
+ !_ && (a === "" || !z) && Me(t);
475
477
  };
476
- let xe = i && a.length > 0;
477
- xe = xe || (u ? o.length > 0 : o !== null);
478
- let Le = p;
479
- if (_) {
478
+ let Pe = R && a.length > 0;
479
+ Pe = Pe || (l ? r.length > 0 : r !== null);
480
+ let Re = f;
481
+ if (j) {
480
482
  const t = /* @__PURE__ */ new Map();
481
483
  let e = !1;
482
- Le = p.reduce((r, n, s) => {
483
- const l = _(n);
484
- return r.length > 0 && r[r.length - 1].group === l ? r[r.length - 1].options.push(n) : (process.env.NODE_ENV !== "production" && (t.get(l) && !e && (console.warn(`MUI: The options provided combined with the \`groupBy\` method of ${y} returns duplicated headers.`, "You can solve the issue by sorting the options with the output of `groupBy`."), e = !0), t.set(l, !0)), r.push({
484
+ Re = f.reduce((n, o, s) => {
485
+ const i = j(o);
486
+ return n.length > 0 && n[n.length - 1].group === i ? n[n.length - 1].options.push(o) : (process.env.NODE_ENV !== "production" && (t.get(i) && !e && (console.warn(`MUI: The options provided combined with the \`groupBy\` method of ${m} returns duplicated headers.`, "You can solve the issue by sorting the options with the output of `groupBy`."), e = !0), t.set(i, !0)), n.push({
485
487
  key: s,
486
488
  index: s,
487
- group: l,
488
- options: [n]
489
- })), r;
489
+ group: i,
490
+ options: [o]
491
+ })), n;
490
492
  }, []);
491
493
  }
492
- return w && re && Ne(), {
493
- getRootProps: (t = {}) => je({
494
- "aria-owns": be ? `${E}-listbox` : null
494
+ return _ && ce && Ve(), {
495
+ getRootProps: (t = {}) => Ke({
496
+ "aria-owns": Ne ? `${k}-listbox` : null
495
497
  }, t, {
496
- onKeyDown: Ge(t),
497
- onMouseDown: nt,
498
- onClick: st
498
+ onKeyDown: rt(t),
499
+ onMouseDown: ct,
500
+ onClick: ft
499
501
  }),
500
502
  getInputLabelProps: () => ({
501
- id: `${E}-label`,
502
- htmlFor: E
503
+ id: `${k}-label`,
504
+ htmlFor: k
503
505
  }),
504
506
  getInputProps: () => ({
505
- id: E,
507
+ id: k,
506
508
  value: a,
507
- onBlur: Ne,
508
- onFocus: Qe,
509
- onChange: Ze,
510
- onMouseDown: it,
509
+ onBlur: Ve,
510
+ onFocus: ot,
511
+ onChange: st,
512
+ onMouseDown: dt,
511
513
  // if open then this is handled imperatively so don't let react override
512
514
  // only have an opinion about this when closed
513
- "aria-activedescendant": k ? "" : null,
514
- "aria-autocomplete": D ? "both" : "list",
515
- "aria-controls": be ? `${E}-listbox` : void 0,
516
- "aria-expanded": be,
515
+ "aria-activedescendant": w ? "" : null,
516
+ "aria-autocomplete": $ ? "both" : "list",
517
+ "aria-controls": Ne ? `${k}-listbox` : void 0,
518
+ "aria-expanded": Ne,
517
519
  // Disable browser's suggestion that might overlap with the popup.
518
520
  // Handle autocomplete but not autofill.
519
521
  autoComplete: "off",
520
- ref: f,
522
+ ref: d,
521
523
  autoCapitalize: "none",
522
524
  spellCheck: "false",
523
525
  role: "combobox",
524
- disabled: w
526
+ disabled: _
525
527
  }),
526
528
  getClearProps: () => ({
527
529
  tabIndex: -1,
528
530
  type: "button",
529
- onClick: Ce
531
+ onClick: Le
530
532
  }),
531
533
  getPopupIndicatorProps: () => ({
532
534
  tabIndex: -1,
533
535
  type: "button",
534
- onClick: ve
536
+ onClick: Me
535
537
  }),
536
538
  getTagProps: ({
537
539
  index: t
538
- }) => je({
540
+ }) => Ke({
539
541
  key: t,
540
542
  "data-tag-index": t,
541
543
  tabIndex: -1
542
- }, !W && {
543
- onDelete: ot(t)
544
+ }, !X && {
545
+ onDelete: ut(t)
544
546
  }),
545
547
  getListboxProps: () => ({
546
548
  role: "listbox",
547
- id: `${E}-listbox`,
548
- "aria-labelledby": `${E}-label`,
549
- ref: Ye,
549
+ id: `${k}-listbox`,
550
+ "aria-labelledby": `${k}-label`,
551
+ ref: tt,
550
552
  onMouseDown: (t) => {
551
553
  t.preventDefault();
552
554
  }
@@ -555,125 +557,133 @@ function xt(c) {
555
557
  index: t,
556
558
  option: e
557
559
  }) => {
558
- var r;
559
- const n = (u ? o : [o]).some((l) => l != null && M(e, l)), s = m ? m(e) : !1;
560
+ var n;
561
+ const o = (l ? r : [r]).some((i) => i != null && D(e, i)), s = q ? q(e) : !1;
560
562
  return {
561
- key: (r = j == null ? void 0 : j(e)) != null ? r : O(e),
563
+ key: (n = ne == null ? void 0 : ne(e)) != null ? n : y(e),
562
564
  tabIndex: -1,
563
565
  role: "option",
564
- id: `${E}-option-${t}`,
565
- onMouseMove: et,
566
- onClick: rt,
567
- onTouchStart: tt,
566
+ id: `${k}-option-${t}`,
567
+ onMouseMove: lt,
568
+ onClick: at,
569
+ onTouchStart: it,
568
570
  "data-option-index": t,
569
571
  "aria-disabled": s,
570
- "aria-selected": n
572
+ "aria-selected": o
571
573
  };
572
574
  },
573
- id: E,
575
+ id: k,
574
576
  inputValue: a,
575
- value: o,
576
- dirty: xe,
577
- expanded: k && ee,
578
- popupOpen: k,
579
- focused: re || $ !== -1,
580
- anchorEl: ee,
581
- setAnchorEl: Ue,
582
- focusedTag: $,
583
- groupedOptions: Le
577
+ value: r,
578
+ dirty: Pe,
579
+ expanded: w && ae,
580
+ popupOpen: w,
581
+ focused: ce || S !== -1,
582
+ anchorEl: ae,
583
+ setAnchorEl: Xe,
584
+ focusedTag: S,
585
+ groupedOptions: Re
584
586
  };
585
587
  }
586
- const _t = "_autocomplete_mj65r_65", G = {
587
- "u-typography-h1": "_u-typography-h1_mj65r_1",
588
- "u-typography-h2": "_u-typography-h2_mj65r_8",
589
- "u-typography-h3": "_u-typography-h3_mj65r_15",
590
- "u-typography-h4": "_u-typography-h4_mj65r_22",
591
- "u-typography-h5": "_u-typography-h5_mj65r_29",
592
- "u-typography-h6": "_u-typography-h6_mj65r_36",
593
- "u-typography-base": "_u-typography-base_mj65r_43",
594
- "u-typography-base--xxl": "_u-typography-base--xxl_mj65r_49",
595
- "u-typography-base--xl": "_u-typography-base--xl_mj65r_53",
596
- "u-typography-base--lg": "_u-typography-base--lg_mj65r_57",
597
- "u-typography-base--sm": "_u-typography-base--sm_mj65r_61",
598
- "u-typography-base--bold": "_u-typography-base--bold_mj65r_65",
599
- "autocomplete__dropdown-item": "_autocomplete__dropdown-item_mj65r_65",
600
- "u-typography-base--strikethrough": "_u-typography-base--strikethrough_mj65r_68",
601
- "u-typography-base--underlined": "_u-typography-base--underlined_mj65r_71",
602
- "u-typography-base--strikethrough-underlined": "_u-typography-base--strikethrough-underlined_mj65r_74",
588
+ const _t = "_autocomplete_1gluy_1", ze = {
603
589
  autocomplete: _t,
604
- "autocomplete__dropdown-list": "_autocomplete__dropdown-list_mj65r_82",
605
- "option-focused": "_option-focused_mj65r_106"
606
- }, Pt = ({
607
- labelKey: c,
608
- valueKey: b,
609
- options: g,
610
- type: D,
611
- value: K,
612
- onChange: v,
613
- onInputChange: C,
614
- "data-testid-wrapper": N,
615
- ...L
590
+ "autocomplete__dropdown-list": "_autocomplete__dropdown-list_1gluy_4",
591
+ "autocomplete__dropdown-item": "_autocomplete__dropdown-item_1gluy_9"
592
+ }, vt = ({
593
+ label: u,
594
+ type: b,
595
+ options: h,
596
+ infoMessage: $,
597
+ errorMessage: A,
598
+ leftIcon: H,
599
+ rightIcon: V,
600
+ id: M,
601
+ disabled: F,
602
+ maxLength: m,
603
+ onChange: I,
604
+ classNameLabel: U,
605
+ classNameInput: Y,
606
+ classNameErrorMessage: _,
607
+ classNameInfoMessage: be,
608
+ "data-testid-label": ee,
609
+ "data-testid-input": xe,
610
+ "data-testid-infoMessage": te,
611
+ "data-testid-errorMessage": R,
612
+ ...q
616
613
  }) => {
617
- const y = at(), [S, q] = ut("");
618
- g != null && g.some((i) => typeof i != "string") && (!c || !b) && console.error(
619
- '[autocomplete] When options is a list of objects, you must provide the "labelKey" and "valueKey" parameters.'
620
- );
621
- const { getRootProps: z, getInputProps: w, getOptionProps: ce, groupedOptions: J, getListboxProps: pe } = xt({
622
- id: `autocomplete_${y}`,
623
- options: g,
624
- getOptionLabel: (i) => typeof i == "string" ? i : String(i[c || "label"]),
625
- value: K,
626
- inputValue: S,
627
- isOptionEqualToValue: (i, m) => typeof i == "string" ? String(i) === String(m) : String(i[b || "id"]) === String(m[b || "id"]),
628
- onChange: (i, m) => {
629
- v && v(i, m);
614
+ const ne = pt(), re = M || `input_${ne}`;
615
+ Object.assign(q, { "data-testid": xe });
616
+ const [j, oe] = Fe(), [ye, se] = Fe(""), { getRootProps: Oe, getInputProps: D, getOptionProps: l, groupedOptions: W, getListboxProps: le, focused: ie, getInputLabelProps: E } = It({
617
+ id: re,
618
+ options: h,
619
+ getOptionLabel: (c) => typeof c == "string" ? c : c == null ? void 0 : c.label,
620
+ value: j,
621
+ inputValue: ye,
622
+ onChange: (c, v) => {
623
+ I && I(c, v), oe(v);
630
624
  },
631
- onInputChange: (i, m) => {
632
- C && C(i, m), q(m);
633
- },
634
- onHighlightChange: (i, m, j) => {
635
- var V;
636
- if (j === "keyboard") {
637
- const _ = document.querySelector("#autocomplete-list"), Z = (i == null ? void 0 : i.target).getAttribute("aria-activedescendant");
638
- _ == null || _.querySelectorAll("li").forEach((fe) => fe.classList.remove(G["option-focused"])), (V = _ == null ? void 0 : _.querySelector(`[id="${Z}"]`)) == null || V.classList.add(G["option-focused"]);
639
- }
625
+ onInputChange: (c, v) => {
626
+ se(v);
640
627
  }
641
- }), Q = {
642
- ...w(),
643
- ...L
644
- };
645
- return /* @__PURE__ */ le("div", { className: G.autocomplete, "data-testid": N, children: /* @__PURE__ */ lt("div", { ...z(), children: [
646
- /* @__PURE__ */ le(
647
- ft,
628
+ });
629
+ return /* @__PURE__ */ He("div", { className: "autocomplete", children: [
630
+ u && /* @__PURE__ */ T(
631
+ Be,
648
632
  {
649
- rightIcon: D === "search" && /* @__PURE__ */ le(pt, { color: "var(--accent)", icon: "magnifying-glass" }),
650
- ...Q
633
+ element: "label",
634
+ elementProps: { ...E() },
635
+ className: Z(P.input__label, U),
636
+ "data-testid": ee,
637
+ children: u
651
638
  }
652
639
  ),
653
- J.length > 0 && !L.disabled && /* @__PURE__ */ le(
654
- "ul",
640
+ /* @__PURE__ */ T("div", { ...Oe(), className: ie ? "Mui-focused" : "", children: /* @__PURE__ */ T(
641
+ gt,
642
+ {
643
+ disabled: F,
644
+ error: !!A,
645
+ "aria-label": u,
646
+ slotProps: {
647
+ root: (c) => ({
648
+ className: Z(P["input__input-el-wrapper"], {
649
+ [P["input--disabled"]]: c.disabled,
650
+ [P["input--focused"]]: c.focused,
651
+ [P["input--error"]]: c.error
652
+ })
653
+ }),
654
+ input: {
655
+ ...D(),
656
+ className: Z(P["input__input-el"], Y),
657
+ maxLength: m,
658
+ ...q
659
+ }
660
+ },
661
+ startAdornment: H && /* @__PURE__ */ T("span", { className: P["input__left-icon"], children: H }),
662
+ endAdornment: b === "search" ? /* @__PURE__ */ T("span", { className: P["input__right-icon"], children: /* @__PURE__ */ T(qe, { color: "var(--accent)", icon: "magnifying-glass" }) }) : V && /* @__PURE__ */ T("span", { className: P["input__right-icon"], children: V })
663
+ }
664
+ ) }),
665
+ W.length > 0 && !F && /* @__PURE__ */ T("ul", { ...le(), className: ze["autocomplete__dropdown-list"], children: W.map((c, v) => /* @__PURE__ */ T(
666
+ "li",
667
+ {
668
+ tabIndex: v,
669
+ className: ze["autocomplete__dropdown-item"],
670
+ ...l({ option: c, index: v }),
671
+ children: typeof c == "string" ? c : c == null ? void 0 : c.label
672
+ }
673
+ )) }),
674
+ (A || $) && /* @__PURE__ */ He(
675
+ Be,
655
676
  {
656
- ...pe(),
657
- id: "autocomplete-list",
658
- className: G["autocomplete__dropdown-list"],
659
- children: J.map((i, m) => {
660
- const j = ce({ option: i, index: m }), V = typeof i == "string" ? i : String(i[c || "label"]), _ = j.key === S;
661
- return /* @__PURE__ */ ct(
662
- "li",
663
- {
664
- tabIndex: m,
665
- className: G["autocomplete__dropdown-item"],
666
- ...j,
667
- "aria-selected": _,
668
- key: String(m)
669
- },
670
- V
671
- );
672
- })
677
+ className: A ? Z(P["input__error-message"], _) : Z(P["input__info-message"], be),
678
+ "data-testid": A ? R : te,
679
+ children: [
680
+ /* @__PURE__ */ T(qe, { icon: "circle-exclamation" }),
681
+ A || $
682
+ ]
673
683
  }
674
684
  )
675
- ] }) });
685
+ ] });
676
686
  };
677
687
  export {
678
- Pt as Autocomplete
688
+ vt as Autocomplete
679
689
  };