@hybridcore/ui 1.6.0 → 1.6.1

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 (128) hide show
  1. package/dist/{AccordionSummary-DgAwVTk8.js → AccordionSummary-CMg08YSA.js} +20 -23
  2. package/dist/{Add-DJLrrVHm.js → Add-DuVVJeQU.js} +65 -67
  3. package/dist/{ButtonBase-2bPw77UP.js → ButtonBase-sObABYY2.js} +60 -56
  4. package/dist/{Delete-CW0UZv1m.js → Delete-fBLhTHbF.js} +1 -1
  5. package/dist/{DialogContent-B3nbEbuv.js → DialogContent-CGJ7alb8.js} +8 -10
  6. package/dist/{FormControl-BLbrq4C7.js → FormControl-BCurCxRj.js} +377 -719
  7. package/dist/FormControlLabel-BkRfrhNy.js +601 -0
  8. package/dist/{IconButton-CHwRQF-g.js → IconButton-_opV1iNK.js} +26 -28
  9. package/dist/{InputAdornment-DLxWUE6H.js → InputAdornment-C7PEvvYr.js} +16 -18
  10. package/dist/InputLabel-rEwwnD4_.js +354 -0
  11. package/dist/{MenuItem-xZx_w7zA.js → MenuItem-DrE50M_p.js} +92 -70
  12. package/dist/Modal-DlB6GH-f.js +1659 -0
  13. package/dist/Paper-q9kKjAKx.js +527 -0
  14. package/dist/{Select-BgYwkZgI.js → TextField-DSDIEEKu.js} +1449 -901
  15. package/dist/{Typography-CxbneZy_.js → Typography-B-Z5Y0Xq.js} +46 -48
  16. package/dist/{capitalize-ciszXJ7R.js → capitalize-quqpGCFu.js} +1 -1
  17. package/dist/components/access/index.js +8 -15
  18. package/dist/components/access/logic.js +25 -0
  19. package/dist/components/card/index.js +158 -498
  20. package/dist/components/card/logic.js +24 -0
  21. package/dist/components/card/styled.js +226 -51
  22. package/dist/components/card-alternate/index.js +111 -139
  23. package/dist/components/card-alternate/logic.js +17 -0
  24. package/dist/components/card-alternate/styled.js +113 -19
  25. package/dist/components/collapsible-card/index.js +1 -1
  26. package/dist/components/collapsible-card/styled.js +1 -1
  27. package/dist/components/confirm/dialog.js +3 -3
  28. package/dist/components/confirm/index.js +1 -1
  29. package/dist/components/container/index.js +28 -269
  30. package/dist/components/container/logic.js +12 -0
  31. package/dist/components/container/styled.js +29 -0
  32. package/dist/components/context-menu/index.js +25 -457
  33. package/dist/components/context-menu/logic.js +14 -0
  34. package/dist/components/context-menu/styled.js +40 -0
  35. package/dist/components/data-security-selectors/security-level/index.js +36 -91
  36. package/dist/components/data-security-selectors/security-level/logic.js +73 -0
  37. package/dist/components/data-security-selectors/security-level/styled.js +47 -0
  38. package/dist/components/date-picker-with-custom-range/index.js +1 -1
  39. package/dist/components/geometry-picker/index.js +13 -12
  40. package/dist/components/instance-form/components/composite-list/index.js +1 -1
  41. package/dist/components/instance-form/components/variable/index.js +7 -9
  42. package/dist/components/instance-form/components/variables/index.js +1 -1
  43. package/dist/components/instance-form/index.js +1 -1
  44. package/dist/components/instance-hierarchy-table/index.js +32 -37
  45. package/dist/components/instance-hierarchy-table/logic.js +16 -0
  46. package/dist/components/instance-hierarchy-table/styled.js +53 -12
  47. package/dist/components/instance-table/index.js +30 -135
  48. package/dist/components/instance-table/logic.js +122 -0
  49. package/dist/components/instance-table/styled.js +53 -11
  50. package/dist/components/key-protection/index.js +45 -2
  51. package/dist/components/key-protection/logic.js +40 -0
  52. package/dist/components/key-protection/styled.js +45 -0
  53. package/dist/components/key-protection/utils.js +1 -1
  54. package/dist/components/loading/index.js +15 -9
  55. package/dist/components/loading/logic.js +15 -0
  56. package/dist/components/loading/styled.js +26 -19
  57. package/dist/components/phone-input/index.js +18 -22
  58. package/dist/components/phone-input/logic.js +14 -0
  59. package/dist/components/phone-input/styled.js +12 -4
  60. package/dist/components/property-mapping/index.js +1 -1
  61. package/dist/components/range-selector/components/composite-list-range/index.js +42 -50
  62. package/dist/components/range-selector/components/date-range/index.js +87 -4221
  63. package/dist/components/range-selector/components/geometry-range/index.js +11 -17
  64. package/dist/components/range-selector/components/number-range/index.js +48 -53
  65. package/dist/components/range-selector/components/string-range/index.js +15 -17
  66. package/dist/components/range-selector/index.js +63 -57
  67. package/dist/components/range-selector/logic.js +12 -0
  68. package/dist/components/range-selector/styled.js +4222 -0
  69. package/dist/components/template-filters/components/filter/index.js +13 -18
  70. package/dist/components/template-filters/components/tab-panel/index.js +8 -16
  71. package/dist/components/template-filters/index.js +21 -29
  72. package/dist/components/template-filters/logic.js +18 -0
  73. package/dist/components/template-filters/styled.js +44 -1
  74. package/dist/components/template-form/components/property-list/index.js +8 -8
  75. package/dist/components/template-form/components/property-list/property-list-columns.js +3 -3
  76. package/dist/components/template-form/components/property-list/property-list-form.js +8 -10
  77. package/dist/components/template-form/components/recognition-property-list/index.js +6 -6
  78. package/dist/components/template-form/components/recognition-property-list/recognition-property-list-columns.js +2 -2
  79. package/dist/components/template-form/components/recognition-property-list/recognition-property-list-form.js +8 -9
  80. package/dist/components/template-form/index.js +32 -33
  81. package/dist/components/template-property-filters/index.js +45 -95
  82. package/dist/components/template-property-filters/logic.js +27 -0
  83. package/dist/components/template-property-filters/property.js +105 -165
  84. package/dist/components/template-property-filters/styled.js +121 -20
  85. package/dist/components/tree-select/index.js +52 -67
  86. package/dist/components/tree-select/logic.js +59 -0
  87. package/dist/components/tree-select/styled.js +45 -62
  88. package/dist/components/treeview-filter/index.js +43 -65
  89. package/dist/components/treeview-filter/item/index.js +43 -42
  90. package/dist/components/treeview-filter/item-label/index.js +17 -37
  91. package/dist/components/treeview-filter/logic.js +28 -0
  92. package/dist/components/treeview-filter/styled.js +86 -0
  93. package/dist/components/uploader/index.js +532 -567
  94. package/dist/components/uploader/logic.js +74 -0
  95. package/dist/components/uploader/styled.js +93 -46
  96. package/dist/{createSvgIcon-BjpIhJ30.js → createSvgIcon-BM3-TsGy.js} +25 -26
  97. package/dist/{createSvgIcon-DrtgaibK.js → createSvgIcon-DX-SqL8M.js} +23 -25
  98. package/dist/{dialog-DcwXug9J.js → dialog-cf4HUXXl.js} +26 -27
  99. package/dist/{index-syTc6m_V.js → index-C8C3YXle.js} +92 -94
  100. package/dist/{index-CcdvNlgr.js → index-DPKUmQnz.js} +11 -13
  101. package/dist/isMuiElement-BkJ72LB3.js +26 -0
  102. package/dist/main.d.ts +734 -298
  103. package/dist/main.js +15 -15
  104. package/dist/{property-list-form-zZQfpR0X.js → property-list-form-DL_dEoNn.js} +56 -61
  105. package/dist/{createTheme-DYxDnE9u.js → styled-Bsjp3kFh.js} +232 -176
  106. package/dist/{useMobilePicker-BLg3Blg8.js → useMobilePicker-B-M3dnTn.js} +2692 -2288
  107. package/dist/{utils-Bq0ye5vf.js → utils-Cxu-fHjQ.js} +7 -7
  108. package/package.json +1 -1
  109. package/dist/Box-p6OtTUEo.js +0 -30
  110. package/dist/Button-CvE2gnly.js +0 -370
  111. package/dist/CardContent-CSHh-ZlM.js +0 -74
  112. package/dist/Checkbox-CWRMFTBp.js +0 -421
  113. package/dist/FormControlLabel-C8SPv14J.js +0 -195
  114. package/dist/List-tqElle9C.js +0 -121
  115. package/dist/ListItem-CfjsIg4B.js +0 -430
  116. package/dist/Modal-DhPpOoGB.js +0 -1299
  117. package/dist/Paper-2B03OBmZ.js +0 -169
  118. package/dist/TextField-1yCesIbH.js +0 -457
  119. package/dist/components/key-protection/menu.js +0 -85
  120. package/dist/components/treeview-filter/item/styled.js +0 -39
  121. package/dist/debounce-46wSf_lW.js +0 -15
  122. package/dist/isHostComponent-kiaBvYVo.js +0 -6
  123. package/dist/isMuiElement-CxT3_ACP.js +0 -13
  124. package/dist/listItemTextClasses-C3lndiXO.js +0 -16
  125. package/dist/styled-eZwjUruw.js +0 -12
  126. package/dist/useFormControl-CatNKXAi.js +0 -10
  127. package/dist/useThemeProps-BzzHcQyd.js +0 -58
  128. package/dist/utils-BDNynJcd.js +0 -365
@@ -0,0 +1,4222 @@
1
+ import { styled as z, Box as Te, TextField as Ye, Typography as fo, IconButton as zo, FormControl as qo } from "@mui/material";
2
+ import { ArrowForward as Uo } from "@mui/icons-material";
3
+ import { _ as G, a as u } from "../../objectWithoutPropertiesLoose-DJteAcBH.js";
4
+ import * as f from "react";
5
+ import { P as e } from "../../index-C__OZmYy.js";
6
+ import { q as Oe, t as Yo, w as ho, v as Ko, h as Xo, u as Ee, d as To, g as Ue, s as Je, j as Go, k as Qo, a as Ne, x as Zo, T as Jo, P as et, y as ot, z as go, e as yo, f as tt, r as Me, C as nt, l as vo, m as Co, n as st, A as at, B as rt, E as lt, F as it, G as no, H as ct, o as ut, p as dt, D as mt } from "../../useMobilePicker-B-M3dnTn.js";
7
+ import { jsx as y, jsxs as A } from "react/jsx-runtime";
8
+ import { g as ne, b as se, s as M, u as Z, a as te, c as fe } from "../../styled-Bsjp3kFh.js";
9
+ import { r as pt } from "../../index-BMS1Otro.js";
10
+ import { u as eo } from "../../Paper-q9kKjAKx.js";
11
+ import { d as Ge } from "../../isMuiElement-BkJ72LB3.js";
12
+ import { a as xo, o as bt, u as ft } from "../../useId-B4-oF9Mq.js";
13
+ import { B as wo, b as ze, r as ht, u as Tt } from "../../ButtonBase-sObABYY2.js";
14
+ import { c as Do } from "../../createSvgIcon-DX-SqL8M.js";
15
+ import { c as Po } from "../../capitalize-quqpGCFu.js";
16
+ import { u as gt } from "../../unsupportedProp-BND8AB6O.js";
17
+ import { T as Qe } from "../../Typography-B-Z5Y0Xq.js";
18
+ import { B as yt } from "../../Modal-DlB6GH-f.js";
19
+ import { T as vt } from "../../TextField-DSDIEEKu.js";
20
+ import { I as ko } from "../../IconButton-_opV1iNK.js";
21
+ import { u as Ct } from "../../useControlled-BYdyS7Pn.js";
22
+ let Se;
23
+ function So() {
24
+ if (Se)
25
+ return Se;
26
+ const o = document.createElement("div"), t = document.createElement("div");
27
+ return t.style.width = "10px", t.style.height = "1px", o.appendChild(t), o.dir = "rtl", o.style.fontSize = "14px", o.style.width = "4px", o.style.height = "1px", o.style.position = "absolute", o.style.top = "-1000px", o.style.overflow = "scroll", document.body.appendChild(o), Se = "reverse", o.scrollLeft > 0 ? Se = "default" : (o.scrollLeft = 1, o.scrollLeft === 0 && (Se = "negative")), document.body.removeChild(o), Se;
28
+ }
29
+ function so(o, t) {
30
+ const s = o.scrollLeft;
31
+ if (t !== "rtl")
32
+ return s;
33
+ switch (So()) {
34
+ case "negative":
35
+ return o.scrollWidth - o.clientWidth + s;
36
+ case "reverse":
37
+ return o.scrollWidth - o.clientWidth - s;
38
+ default:
39
+ return s;
40
+ }
41
+ }
42
+ function xt(o) {
43
+ return se("MuiPickersToolbarText", o);
44
+ }
45
+ const ao = ne("MuiPickersToolbarText", ["root", "selected"]), wt = ["className", "selected", "value"], Dt = (o) => {
46
+ const {
47
+ classes: t,
48
+ selected: s
49
+ } = o;
50
+ return te({
51
+ root: ["root", s && "selected"]
52
+ }, xt, t);
53
+ }, Pt = M(Qe, {
54
+ name: "MuiPickersToolbarText",
55
+ slot: "Root",
56
+ overridesResolver: (o, t) => [t.root, {
57
+ [`&.${ao.selected}`]: t.selected
58
+ }]
59
+ })(({
60
+ theme: o
61
+ }) => ({
62
+ transition: o.transitions.create("color"),
63
+ color: (o.vars || o).palette.text.secondary,
64
+ [`&.${ao.selected}`]: {
65
+ color: (o.vars || o).palette.text.primary
66
+ }
67
+ })), Mo = /* @__PURE__ */ f.forwardRef(function(t, s) {
68
+ const r = Z({
69
+ props: t,
70
+ name: "MuiPickersToolbarText"
71
+ }), {
72
+ className: a,
73
+ value: n
74
+ } = r, l = G(r, wt), i = Dt(r);
75
+ return /* @__PURE__ */ y(Pt, u({
76
+ ref: s,
77
+ className: Oe(a, i.root),
78
+ component: "span"
79
+ }, l, {
80
+ children: n
81
+ }));
82
+ }), kt = ["align", "className", "selected", "typographyClassName", "value", "variant"], St = (o) => {
83
+ const {
84
+ classes: t
85
+ } = o;
86
+ return te({
87
+ root: ["root"]
88
+ }, Yo, t);
89
+ }, Mt = M(yt, {
90
+ name: "MuiPickersToolbarButton",
91
+ slot: "Root",
92
+ overridesResolver: (o, t) => t.root
93
+ })({
94
+ padding: 0,
95
+ minWidth: 16,
96
+ textTransform: "none"
97
+ }), Ce = /* @__PURE__ */ f.forwardRef(function(t, s) {
98
+ const r = Z({
99
+ props: t,
100
+ name: "MuiPickersToolbarButton"
101
+ }), {
102
+ align: a,
103
+ className: n,
104
+ selected: l,
105
+ typographyClassName: i,
106
+ value: c,
107
+ variant: d
108
+ } = r, v = G(r, kt), p = St(r);
109
+ return /* @__PURE__ */ y(Mt, u({
110
+ variant: "text",
111
+ ref: s,
112
+ className: Oe(n, p.root)
113
+ }, v, {
114
+ children: /* @__PURE__ */ y(Mo, {
115
+ align: a,
116
+ className: i,
117
+ variant: d,
118
+ value: c,
119
+ selected: l
120
+ })
121
+ }));
122
+ }), Rt = ({
123
+ adapter: o,
124
+ value: t,
125
+ props: s
126
+ }) => {
127
+ const {
128
+ minTime: r,
129
+ maxTime: a,
130
+ minutesStep: n,
131
+ shouldDisableClock: l,
132
+ shouldDisableTime: i,
133
+ disableIgnoringDatePartForTimeValidation: c = !1,
134
+ disablePast: d,
135
+ disableFuture: v
136
+ } = s, p = o.utils.date(), h = o.utils.date(t), T = ho(c, o.utils);
137
+ if (t === null)
138
+ return null;
139
+ switch (!0) {
140
+ case !o.utils.isValid(t):
141
+ return "invalidDate";
142
+ case !!(r && T(r, t)):
143
+ return "minTime";
144
+ case !!(a && T(t, a)):
145
+ return "maxTime";
146
+ case !!(v && o.utils.isAfter(h, p)):
147
+ return "disableFuture";
148
+ case !!(d && o.utils.isBefore(h, p)):
149
+ return "disablePast";
150
+ case !!(i && i(t, "hours")):
151
+ return "shouldDisableTime-hours";
152
+ case !!(i && i(t, "minutes")):
153
+ return "shouldDisableTime-minutes";
154
+ case !!(i && i(t, "seconds")):
155
+ return "shouldDisableTime-seconds";
156
+ case !!(l && l(o.utils.getHours(t), "hours")):
157
+ return "shouldDisableClock-hours";
158
+ case !!(l && l(o.utils.getMinutes(t), "minutes")):
159
+ return "shouldDisableClock-minutes";
160
+ case !!(l && l(o.utils.getSeconds(t), "seconds")):
161
+ return "shouldDisableClock-seconds";
162
+ case !!(n && o.utils.getMinutes(t) % n !== 0):
163
+ return "minutesStep";
164
+ default:
165
+ return null;
166
+ }
167
+ }, oo = ({
168
+ props: o,
169
+ value: t,
170
+ adapter: s
171
+ }) => {
172
+ const r = Ko({
173
+ adapter: s,
174
+ value: t,
175
+ props: o
176
+ });
177
+ return r !== null ? r : Rt({
178
+ adapter: s,
179
+ value: t,
180
+ props: o
181
+ });
182
+ }, Ot = ["value", "defaultValue", "format", "formatDensity", "shouldRespectLeadingZeros", "onChange", "readOnly", "onError", "shouldDisableDate", "shouldDisableMonth", "shouldDisableYear", "minDate", "maxDate", "disableFuture", "disablePast", "minTime", "maxTime", "minDateTime", "maxDateTime", "minutesStep", "disableIgnoringDatePartForTimeValidation", "shouldDisableClock", "shouldDisableTime", "selectedSections", "onSelectedSectionsChange", "ampm", "unstableFieldRef"], Nt = (o) => {
183
+ var t, s, r, a, n, l, i, c;
184
+ const d = Ee(), v = To(), h = ((t = o.ampm) != null ? t : d.is12HourCycleInCurrentLocale()) ? d.formats.keyboardDateTime12h : d.formats.keyboardDateTime24h;
185
+ return u({}, o, {
186
+ disablePast: (s = o.disablePast) != null ? s : !1,
187
+ disableFuture: (r = o.disableFuture) != null ? r : !1,
188
+ format: (a = o.format) != null ? a : h,
189
+ disableIgnoringDatePartForTimeValidation: !!(o.minDateTime || o.maxDateTime),
190
+ minDate: Ue(d, (n = o.minDateTime) != null ? n : o.minDate, v.minDate),
191
+ maxDate: Ue(d, (l = o.maxDateTime) != null ? l : o.maxDate, v.maxDate),
192
+ minTime: (i = o.minDateTime) != null ? i : o.minTime,
193
+ maxTime: (c = o.maxDateTime) != null ? c : o.maxTime
194
+ });
195
+ }, It = ({
196
+ props: o,
197
+ inputRef: t
198
+ }) => {
199
+ const s = Nt(o), {
200
+ value: r,
201
+ defaultValue: a,
202
+ format: n,
203
+ formatDensity: l,
204
+ shouldRespectLeadingZeros: i,
205
+ onChange: c,
206
+ readOnly: d,
207
+ onError: v,
208
+ shouldDisableDate: p,
209
+ shouldDisableMonth: h,
210
+ shouldDisableYear: T,
211
+ minDate: D,
212
+ maxDate: m,
213
+ disableFuture: C,
214
+ disablePast: I,
215
+ minTime: S,
216
+ maxTime: F,
217
+ minutesStep: N,
218
+ disableIgnoringDatePartForTimeValidation: R,
219
+ shouldDisableClock: x,
220
+ shouldDisableTime: B,
221
+ selectedSections: E,
222
+ onSelectedSectionsChange: V,
223
+ ampm: W,
224
+ unstableFieldRef: _
225
+ } = s, L = G(s, Ot);
226
+ return Xo({
227
+ inputRef: t,
228
+ forwardedProps: L,
229
+ internalProps: {
230
+ value: r,
231
+ defaultValue: a,
232
+ format: n,
233
+ formatDensity: l,
234
+ shouldRespectLeadingZeros: i,
235
+ onChange: c,
236
+ readOnly: d,
237
+ onError: v,
238
+ shouldDisableDate: p,
239
+ shouldDisableMonth: h,
240
+ shouldDisableYear: T,
241
+ minDate: D,
242
+ maxDate: m,
243
+ disableFuture: C,
244
+ disablePast: I,
245
+ minTime: S,
246
+ maxTime: F,
247
+ minutesStep: N,
248
+ shouldDisableClock: x,
249
+ shouldDisableTime: B,
250
+ disableIgnoringDatePartForTimeValidation: R,
251
+ selectedSections: E,
252
+ onSelectedSectionsChange: V,
253
+ ampm: W,
254
+ unstableFieldRef: _
255
+ },
256
+ valueManager: Je,
257
+ fieldValueManager: Go,
258
+ validator: oo,
259
+ valueType: "date-time"
260
+ });
261
+ }, Ft = ["components", "componentsProps", "slots", "slotProps", "InputProps", "inputProps"], Bt = ["inputRef"], Vt = ["ref", "onPaste", "inputMode", "readOnly"], to = /* @__PURE__ */ f.forwardRef(function(t, s) {
262
+ var r, a, n;
263
+ const l = Z({
264
+ props: t,
265
+ name: "MuiDateTimeField"
266
+ }), {
267
+ components: i,
268
+ componentsProps: c,
269
+ slots: d,
270
+ slotProps: v,
271
+ InputProps: p,
272
+ inputProps: h
273
+ } = l, T = G(l, Ft), D = l, m = (r = (a = d == null ? void 0 : d.textField) != null ? a : i == null ? void 0 : i.TextField) != null ? r : vt, C = Qo({
274
+ elementType: m,
275
+ externalSlotProps: (n = v == null ? void 0 : v.textField) != null ? n : c == null ? void 0 : c.textField,
276
+ externalForwardedProps: T,
277
+ ownerState: D
278
+ }), {
279
+ inputRef: I
280
+ } = C, S = G(C, Bt);
281
+ S.inputProps = u({}, S.inputProps, h), S.InputProps = u({}, S.InputProps, p);
282
+ const F = It({
283
+ props: S,
284
+ inputRef: I
285
+ }), {
286
+ ref: N,
287
+ onPaste: R,
288
+ inputMode: x,
289
+ readOnly: B
290
+ } = F, E = G(F, Vt);
291
+ return /* @__PURE__ */ y(m, u({
292
+ ref: s
293
+ }, E, {
294
+ InputProps: u({}, E.InputProps, {
295
+ readOnly: B
296
+ }),
297
+ inputProps: u({}, E.inputProps, {
298
+ inputMode: x,
299
+ onPaste: R,
300
+ ref: N
301
+ })
302
+ }));
303
+ });
304
+ process.env.NODE_ENV !== "production" && (to.propTypes = {
305
+ // ----------------------------- Warning --------------------------------
306
+ // | These PropTypes are generated from the TypeScript type definitions |
307
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
308
+ // ----------------------------------------------------------------------
309
+ /**
310
+ * 12h/24h view for hour selection clock.
311
+ * @default `utils.is12HourCycleInCurrentLocale()`
312
+ */
313
+ ampm: e.bool,
314
+ /**
315
+ * If `true`, the `input` element is focused during the first mount.
316
+ * @default false
317
+ */
318
+ autoFocus: e.bool,
319
+ className: e.string,
320
+ /**
321
+ * The color of the component.
322
+ * It supports both default and custom theme colors, which can be added as shown in the
323
+ * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).
324
+ * @default 'primary'
325
+ */
326
+ color: e.oneOf(["error", "info", "primary", "secondary", "success", "warning"]),
327
+ /**
328
+ * Overridable components.
329
+ * @default {}
330
+ * @deprecated Please use `slots`.
331
+ */
332
+ components: e.object,
333
+ /**
334
+ * The props used for each component slot.
335
+ * @default {}
336
+ * @deprecated Please use `slotProps`.
337
+ */
338
+ componentsProps: e.object,
339
+ /**
340
+ * The default value. Use when the component is not controlled.
341
+ */
342
+ defaultValue: e.any,
343
+ /**
344
+ * If `true`, the component is disabled.
345
+ * @default false
346
+ */
347
+ disabled: e.bool,
348
+ /**
349
+ * If `true`, disable values after the current date for date components, time for time components and both for date time components.
350
+ * @default false
351
+ */
352
+ disableFuture: e.bool,
353
+ /**
354
+ * Do not ignore date part when validating min/max time.
355
+ * @default false
356
+ */
357
+ disableIgnoringDatePartForTimeValidation: e.bool,
358
+ /**
359
+ * If `true`, disable values before the current date for date components, time for time components and both for date time components.
360
+ * @default false
361
+ */
362
+ disablePast: e.bool,
363
+ /**
364
+ * If `true`, the component is displayed in focused state.
365
+ */
366
+ focused: e.bool,
367
+ /**
368
+ * Format of the date when rendered in the input(s).
369
+ */
370
+ format: e.string,
371
+ /**
372
+ * Density of the format when rendered in the input.
373
+ * Setting `formatDensity` to `"spacious"` will add a space before and after each `/`, `-` and `.` character.
374
+ * @default "dense"
375
+ */
376
+ formatDensity: e.oneOf(["dense", "spacious"]),
377
+ /**
378
+ * Props applied to the [`FormHelperText`](/material-ui/api/form-helper-text/) element.
379
+ */
380
+ FormHelperTextProps: e.object,
381
+ /**
382
+ * If `true`, the input will take up the full width of its container.
383
+ * @default false
384
+ */
385
+ fullWidth: e.bool,
386
+ /**
387
+ * The helper text content.
388
+ */
389
+ helperText: e.node,
390
+ /**
391
+ * If `true`, the label is hidden.
392
+ * This is used to increase density for a `FilledInput`.
393
+ * Be sure to add `aria-label` to the `input` element.
394
+ * @default false
395
+ */
396
+ hiddenLabel: e.bool,
397
+ /**
398
+ * The id of the `input` element.
399
+ * Use this prop to make `label` and `helperText` accessible for screen readers.
400
+ */
401
+ id: e.string,
402
+ /**
403
+ * Props applied to the [`InputLabel`](/material-ui/api/input-label/) element.
404
+ * Pointer events like `onClick` are enabled if and only if `shrink` is `true`.
405
+ */
406
+ InputLabelProps: e.object,
407
+ /**
408
+ * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.
409
+ */
410
+ inputProps: e.object,
411
+ /**
412
+ * Props applied to the Input element.
413
+ * It will be a [`FilledInput`](/material-ui/api/filled-input/),
414
+ * [`OutlinedInput`](/material-ui/api/outlined-input/) or [`Input`](/material-ui/api/input/)
415
+ * component depending on the `variant` prop value.
416
+ */
417
+ InputProps: e.object,
418
+ /**
419
+ * Pass a ref to the `input` element.
420
+ */
421
+ inputRef: e.oneOfType([e.func, e.shape({
422
+ current: e.any.isRequired
423
+ })]),
424
+ /**
425
+ * The label content.
426
+ */
427
+ label: e.node,
428
+ /**
429
+ * If `dense` or `normal`, will adjust vertical spacing of this and contained components.
430
+ * @default 'none'
431
+ */
432
+ margin: e.oneOf(["dense", "none", "normal"]),
433
+ /**
434
+ * Maximal selectable date.
435
+ */
436
+ maxDate: e.any,
437
+ /**
438
+ * Maximal selectable moment of time with binding to date, to set max time in each day use `maxTime`.
439
+ */
440
+ maxDateTime: e.any,
441
+ /**
442
+ * Maximal selectable time.
443
+ * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.
444
+ */
445
+ maxTime: e.any,
446
+ /**
447
+ * Minimal selectable date.
448
+ */
449
+ minDate: e.any,
450
+ /**
451
+ * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.
452
+ */
453
+ minDateTime: e.any,
454
+ /**
455
+ * Minimal selectable time.
456
+ * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.
457
+ */
458
+ minTime: e.any,
459
+ /**
460
+ * Step over minutes.
461
+ * @default 1
462
+ */
463
+ minutesStep: e.number,
464
+ /**
465
+ * Name attribute of the `input` element.
466
+ */
467
+ name: e.string,
468
+ onBlur: e.func,
469
+ /**
470
+ * Callback fired when the value changes.
471
+ * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
472
+ * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
473
+ * @param {TValue} value The new value.
474
+ * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.
475
+ */
476
+ onChange: e.func,
477
+ /**
478
+ * Callback fired when the error associated to the current value changes.
479
+ * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
480
+ * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
481
+ * @param {TError} error The new error.
482
+ * @param {TValue} value The value associated to the error.
483
+ */
484
+ onError: e.func,
485
+ onFocus: e.func,
486
+ /**
487
+ * Callback fired when the selected sections change.
488
+ * @param {FieldSelectedSections} newValue The new selected sections.
489
+ */
490
+ onSelectedSectionsChange: e.func,
491
+ /**
492
+ * It prevents the user from changing the value of the field
493
+ * (not from interacting with the field).
494
+ * @default false
495
+ */
496
+ readOnly: e.bool,
497
+ /**
498
+ * If `true`, the label is displayed as required and the `input` element is required.
499
+ * @default false
500
+ */
501
+ required: e.bool,
502
+ /**
503
+ * The currently selected sections.
504
+ * This prop accept four formats:
505
+ * 1. If a number is provided, the section at this index will be selected.
506
+ * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.
507
+ * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.
508
+ * 4. If `null` is provided, no section will be selected
509
+ * If not provided, the selected sections will be handled internally.
510
+ */
511
+ selectedSections: e.oneOfType([e.oneOf(["all", "day", "hours", "meridiem", "minutes", "month", "seconds", "weekDay", "year"]), e.number, e.shape({
512
+ endIndex: e.number.isRequired,
513
+ startIndex: e.number.isRequired
514
+ })]),
515
+ /**
516
+ * Disable specific clock time.
517
+ * @param {number} clockValue The value to check.
518
+ * @param {TimeView} view The clock type of the timeValue.
519
+ * @returns {boolean} If `true` the time will be disabled.
520
+ * @deprecated Consider using `shouldDisableTime`.
521
+ */
522
+ shouldDisableClock: e.func,
523
+ /**
524
+ * Disable specific date.
525
+ * @template TDate
526
+ * @param {TDate} day The date to test.
527
+ * @returns {boolean} If `true` the date will be disabled.
528
+ */
529
+ shouldDisableDate: e.func,
530
+ /**
531
+ * Disable specific month.
532
+ * @template TDate
533
+ * @param {TDate} month The month to test.
534
+ * @returns {boolean} If `true`, the month will be disabled.
535
+ */
536
+ shouldDisableMonth: e.func,
537
+ /**
538
+ * Disable specific time.
539
+ * @template TDate
540
+ * @param {TDate} value The value to check.
541
+ * @param {TimeView} view The clock type of the timeValue.
542
+ * @returns {boolean} If `true` the time will be disabled.
543
+ */
544
+ shouldDisableTime: e.func,
545
+ /**
546
+ * Disable specific year.
547
+ * @template TDate
548
+ * @param {TDate} year The year to test.
549
+ * @returns {boolean} If `true`, the year will be disabled.
550
+ */
551
+ shouldDisableYear: e.func,
552
+ /**
553
+ * If `true`, the format will respect the leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
554
+ * If `false`, the format will always add leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
555
+ *
556
+ * Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (e.g: "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
557
+ *
558
+ * Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.
559
+ * If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
560
+ *
561
+ * Warning n°3: When used in strict mode, dayjs and moment require to respect the leading zeros.
562
+ * This mean that when using `shouldRespectLeadingZeros={false}`, if you retrieve the value directly from the input (not listening to `onChange`) and your format contains tokens without leading zeros, the value will not be parsed by your library.
563
+ *
564
+ * @default `false`
565
+ */
566
+ shouldRespectLeadingZeros: e.bool,
567
+ /**
568
+ * The size of the component.
569
+ */
570
+ size: e.oneOf(["medium", "small"]),
571
+ /**
572
+ * The props used for each component slot.
573
+ * @default {}
574
+ */
575
+ slotProps: e.object,
576
+ /**
577
+ * Overridable component slots.
578
+ * @default {}
579
+ */
580
+ slots: e.object,
581
+ style: e.object,
582
+ /**
583
+ * The system prop that allows defining system overrides as well as additional CSS styles.
584
+ */
585
+ sx: e.oneOfType([e.arrayOf(e.oneOfType([e.func, e.object, e.bool])), e.func, e.object]),
586
+ /**
587
+ * The ref object used to imperatively interact with the field.
588
+ */
589
+ unstableFieldRef: e.oneOfType([e.func, e.object]),
590
+ /**
591
+ * The selected value.
592
+ * Used when the component is controlled.
593
+ */
594
+ value: e.any,
595
+ /**
596
+ * The variant to use.
597
+ * @default 'outlined'
598
+ */
599
+ variant: e.oneOf(["filled", "outlined", "standard"])
600
+ });
601
+ function $t(o) {
602
+ return se("MuiTab", o);
603
+ }
604
+ const xe = ne("MuiTab", ["root", "labelIcon", "textColorInherit", "textColorPrimary", "textColorSecondary", "selected", "disabled", "fullWidth", "wrapped", "iconWrapper"]), Et = ["className", "disabled", "disableFocusRipple", "fullWidth", "icon", "iconPosition", "indicator", "label", "onChange", "onClick", "onFocus", "selected", "selectionFollowsFocus", "textColor", "value", "wrapped"], _t = (o) => {
605
+ const {
606
+ classes: t,
607
+ textColor: s,
608
+ fullWidth: r,
609
+ wrapped: a,
610
+ icon: n,
611
+ label: l,
612
+ selected: i,
613
+ disabled: c
614
+ } = o, d = {
615
+ root: ["root", n && l && "labelIcon", `textColor${Po(s)}`, r && "fullWidth", a && "wrapped", i && "selected", c && "disabled"],
616
+ iconWrapper: ["iconWrapper"]
617
+ };
618
+ return te(d, $t, t);
619
+ }, Lt = M(wo, {
620
+ name: "MuiTab",
621
+ slot: "Root",
622
+ overridesResolver: (o, t) => {
623
+ const {
624
+ ownerState: s
625
+ } = o;
626
+ return [t.root, s.label && s.icon && t.labelIcon, t[`textColor${Po(s.textColor)}`], s.fullWidth && t.fullWidth, s.wrapped && t.wrapped];
627
+ }
628
+ })(({
629
+ theme: o,
630
+ ownerState: t
631
+ }) => u({}, o.typography.button, {
632
+ maxWidth: 360,
633
+ minWidth: 90,
634
+ position: "relative",
635
+ minHeight: 48,
636
+ flexShrink: 0,
637
+ padding: "12px 16px",
638
+ overflow: "hidden",
639
+ whiteSpace: "normal",
640
+ textAlign: "center"
641
+ }, t.label && {
642
+ flexDirection: t.iconPosition === "top" || t.iconPosition === "bottom" ? "column" : "row"
643
+ }, {
644
+ lineHeight: 1.25
645
+ }, t.icon && t.label && {
646
+ minHeight: 72,
647
+ paddingTop: 9,
648
+ paddingBottom: 9,
649
+ [`& > .${xe.iconWrapper}`]: u({}, t.iconPosition === "top" && {
650
+ marginBottom: 6
651
+ }, t.iconPosition === "bottom" && {
652
+ marginTop: 6
653
+ }, t.iconPosition === "start" && {
654
+ marginRight: o.spacing(1)
655
+ }, t.iconPosition === "end" && {
656
+ marginLeft: o.spacing(1)
657
+ })
658
+ }, t.textColor === "inherit" && {
659
+ color: "inherit",
660
+ opacity: 0.6,
661
+ // same opacity as theme.palette.text.secondary
662
+ [`&.${xe.selected}`]: {
663
+ opacity: 1
664
+ },
665
+ [`&.${xe.disabled}`]: {
666
+ opacity: (o.vars || o).palette.action.disabledOpacity
667
+ }
668
+ }, t.textColor === "primary" && {
669
+ color: (o.vars || o).palette.text.secondary,
670
+ [`&.${xe.selected}`]: {
671
+ color: (o.vars || o).palette.primary.main
672
+ },
673
+ [`&.${xe.disabled}`]: {
674
+ color: (o.vars || o).palette.text.disabled
675
+ }
676
+ }, t.textColor === "secondary" && {
677
+ color: (o.vars || o).palette.text.secondary,
678
+ [`&.${xe.selected}`]: {
679
+ color: (o.vars || o).palette.secondary.main
680
+ },
681
+ [`&.${xe.disabled}`]: {
682
+ color: (o.vars || o).palette.text.disabled
683
+ }
684
+ }, t.fullWidth && {
685
+ flexShrink: 1,
686
+ flexGrow: 1,
687
+ flexBasis: 0,
688
+ maxWidth: "none"
689
+ }, t.wrapped && {
690
+ fontSize: o.typography.pxToRem(12)
691
+ })), Ze = /* @__PURE__ */ f.forwardRef(function(t, s) {
692
+ const r = Z({
693
+ props: t,
694
+ name: "MuiTab"
695
+ }), {
696
+ className: a,
697
+ disabled: n = !1,
698
+ disableFocusRipple: l = !1,
699
+ // eslint-disable-next-line react/prop-types
700
+ fullWidth: i,
701
+ icon: c,
702
+ iconPosition: d = "top",
703
+ // eslint-disable-next-line react/prop-types
704
+ indicator: v,
705
+ label: p,
706
+ onChange: h,
707
+ onClick: T,
708
+ onFocus: D,
709
+ // eslint-disable-next-line react/prop-types
710
+ selected: m,
711
+ // eslint-disable-next-line react/prop-types
712
+ selectionFollowsFocus: C,
713
+ // eslint-disable-next-line react/prop-types
714
+ textColor: I = "inherit",
715
+ value: S,
716
+ wrapped: F = !1
717
+ } = r, N = G(r, Et), R = u({}, r, {
718
+ disabled: n,
719
+ disableFocusRipple: l,
720
+ selected: m,
721
+ icon: !!c,
722
+ iconPosition: d,
723
+ label: !!p,
724
+ fullWidth: i,
725
+ textColor: I,
726
+ wrapped: F
727
+ }), x = _t(R), B = c && p && /* @__PURE__ */ f.isValidElement(c) ? /* @__PURE__ */ f.cloneElement(c, {
728
+ className: fe(x.iconWrapper, c.props.className)
729
+ }) : c, E = (W) => {
730
+ !m && h && h(W, S), T && T(W);
731
+ }, V = (W) => {
732
+ C && !m && h && h(W, S), D && D(W);
733
+ };
734
+ return /* @__PURE__ */ A(Lt, u({
735
+ focusRipple: !l,
736
+ className: fe(x.root, a),
737
+ ref: s,
738
+ role: "tab",
739
+ "aria-selected": m,
740
+ disabled: n,
741
+ onClick: E,
742
+ onFocus: V,
743
+ ownerState: R,
744
+ tabIndex: m ? 0 : -1
745
+ }, N, {
746
+ children: [d === "top" || d === "start" ? /* @__PURE__ */ A(f.Fragment, {
747
+ children: [B, p]
748
+ }) : /* @__PURE__ */ A(f.Fragment, {
749
+ children: [p, B]
750
+ }), v]
751
+ }));
752
+ });
753
+ process.env.NODE_ENV !== "production" && (Ze.propTypes = {
754
+ // ----------------------------- Warning --------------------------------
755
+ // | These PropTypes are generated from the TypeScript type definitions |
756
+ // | To update them edit the d.ts file and run "yarn proptypes" |
757
+ // ----------------------------------------------------------------------
758
+ /**
759
+ * This prop isn't supported.
760
+ * Use the `component` prop if you need to change the children structure.
761
+ */
762
+ children: gt,
763
+ /**
764
+ * Override or extend the styles applied to the component.
765
+ */
766
+ classes: e.object,
767
+ /**
768
+ * @ignore
769
+ */
770
+ className: e.string,
771
+ /**
772
+ * If `true`, the component is disabled.
773
+ * @default false
774
+ */
775
+ disabled: e.bool,
776
+ /**
777
+ * If `true`, the keyboard focus ripple is disabled.
778
+ * @default false
779
+ */
780
+ disableFocusRipple: e.bool,
781
+ /**
782
+ * If `true`, the ripple effect is disabled.
783
+ *
784
+ * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure
785
+ * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.
786
+ * @default false
787
+ */
788
+ disableRipple: e.bool,
789
+ /**
790
+ * The icon to display.
791
+ */
792
+ icon: e.oneOfType([e.element, e.string]),
793
+ /**
794
+ * The position of the icon relative to the label.
795
+ * @default 'top'
796
+ */
797
+ iconPosition: e.oneOf(["bottom", "end", "start", "top"]),
798
+ /**
799
+ * The label element.
800
+ */
801
+ label: e.node,
802
+ /**
803
+ * @ignore
804
+ */
805
+ onChange: e.func,
806
+ /**
807
+ * @ignore
808
+ */
809
+ onClick: e.func,
810
+ /**
811
+ * @ignore
812
+ */
813
+ onFocus: e.func,
814
+ /**
815
+ * The system prop that allows defining system overrides as well as additional CSS styles.
816
+ */
817
+ sx: e.oneOfType([e.arrayOf(e.oneOfType([e.func, e.object, e.bool])), e.func, e.object]),
818
+ /**
819
+ * You can provide your own value. Otherwise, we fallback to the child position index.
820
+ */
821
+ value: e.any,
822
+ /**
823
+ * Tab labels appear in a single row.
824
+ * They can use a second line if needed.
825
+ * @default false
826
+ */
827
+ wrapped: e.bool
828
+ });
829
+ function jt(o) {
830
+ return (1 + Math.sin(Math.PI * o - Math.PI / 2)) / 2;
831
+ }
832
+ function Ht(o, t, s, r = {}, a = () => {
833
+ }) {
834
+ const {
835
+ ease: n = jt,
836
+ duration: l = 300
837
+ // standard
838
+ } = r;
839
+ let i = null;
840
+ const c = t[o];
841
+ let d = !1;
842
+ const v = () => {
843
+ d = !0;
844
+ }, p = (h) => {
845
+ if (d) {
846
+ a(new Error("Animation cancelled"));
847
+ return;
848
+ }
849
+ i === null && (i = h);
850
+ const T = Math.min(1, (h - i) / l);
851
+ if (t[o] = n(T) * (s - c) + c, T >= 1) {
852
+ requestAnimationFrame(() => {
853
+ a(null);
854
+ });
855
+ return;
856
+ }
857
+ requestAnimationFrame(p);
858
+ };
859
+ return c === s ? (a(new Error("Element already at target position")), v) : (requestAnimationFrame(p), v);
860
+ }
861
+ const Wt = ["onChange"], At = {
862
+ width: 99,
863
+ height: 99,
864
+ position: "absolute",
865
+ top: -9999,
866
+ overflow: "scroll"
867
+ };
868
+ function Ro(o) {
869
+ const {
870
+ onChange: t
871
+ } = o, s = G(o, Wt), r = f.useRef(), a = f.useRef(null), n = () => {
872
+ r.current = a.current.offsetHeight - a.current.clientHeight;
873
+ };
874
+ return f.useEffect(() => {
875
+ const l = Ge(() => {
876
+ const c = r.current;
877
+ n(), c !== r.current && t(r.current);
878
+ }), i = xo(a.current);
879
+ return i.addEventListener("resize", l), () => {
880
+ l.clear(), i.removeEventListener("resize", l);
881
+ };
882
+ }, [t]), f.useEffect(() => {
883
+ n(), t(r.current);
884
+ }, [t]), /* @__PURE__ */ y("div", u({
885
+ style: At,
886
+ ref: a
887
+ }, s));
888
+ }
889
+ process.env.NODE_ENV !== "production" && (Ro.propTypes = {
890
+ onChange: e.func.isRequired
891
+ });
892
+ const zt = Do(/* @__PURE__ */ y("path", {
893
+ d: "M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"
894
+ }), "KeyboardArrowLeft"), qt = Do(/* @__PURE__ */ y("path", {
895
+ d: "M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"
896
+ }), "KeyboardArrowRight");
897
+ function Ut(o) {
898
+ return se("MuiTabScrollButton", o);
899
+ }
900
+ const Yt = ne("MuiTabScrollButton", ["root", "vertical", "horizontal", "disabled"]);
901
+ var ro, lo;
902
+ const Kt = ["className", "direction", "orientation", "disabled"], Xt = (o) => {
903
+ const {
904
+ classes: t,
905
+ orientation: s,
906
+ disabled: r
907
+ } = o;
908
+ return te({
909
+ root: ["root", s, r && "disabled"]
910
+ }, Ut, t);
911
+ }, Gt = M(wo, {
912
+ name: "MuiTabScrollButton",
913
+ slot: "Root",
914
+ overridesResolver: (o, t) => {
915
+ const {
916
+ ownerState: s
917
+ } = o;
918
+ return [t.root, s.orientation && t[s.orientation]];
919
+ }
920
+ })(({
921
+ ownerState: o
922
+ }) => u({
923
+ width: 40,
924
+ flexShrink: 0,
925
+ opacity: 0.8,
926
+ [`&.${Yt.disabled}`]: {
927
+ opacity: 0
928
+ }
929
+ }, o.orientation === "vertical" && {
930
+ width: "100%",
931
+ height: 40,
932
+ "& svg": {
933
+ transform: `rotate(${o.isRtl ? -90 : 90}deg)`
934
+ }
935
+ })), Oo = /* @__PURE__ */ f.forwardRef(function(t, s) {
936
+ const r = Z({
937
+ props: t,
938
+ name: "MuiTabScrollButton"
939
+ }), {
940
+ className: a,
941
+ direction: n
942
+ } = r, l = G(r, Kt), c = eo().direction === "rtl", d = u({
943
+ isRtl: c
944
+ }, r), v = Xt(d);
945
+ return /* @__PURE__ */ y(Gt, u({
946
+ component: "div",
947
+ className: fe(v.root, a),
948
+ ref: s,
949
+ role: null,
950
+ ownerState: d,
951
+ tabIndex: null
952
+ }, l, {
953
+ children: n === "left" ? ro || (ro = /* @__PURE__ */ y(zt, {
954
+ fontSize: "small"
955
+ })) : lo || (lo = /* @__PURE__ */ y(qt, {
956
+ fontSize: "small"
957
+ }))
958
+ }));
959
+ });
960
+ process.env.NODE_ENV !== "production" && (Oo.propTypes = {
961
+ // ----------------------------- Warning --------------------------------
962
+ // | These PropTypes are generated from the TypeScript type definitions |
963
+ // | To update them edit the d.ts file and run "yarn proptypes" |
964
+ // ----------------------------------------------------------------------
965
+ /**
966
+ * The content of the component.
967
+ */
968
+ children: e.node,
969
+ /**
970
+ * Override or extend the styles applied to the component.
971
+ */
972
+ classes: e.object,
973
+ /**
974
+ * @ignore
975
+ */
976
+ className: e.string,
977
+ /**
978
+ * The direction the button should indicate.
979
+ */
980
+ direction: e.oneOf(["left", "right"]).isRequired,
981
+ /**
982
+ * If `true`, the component is disabled.
983
+ * @default false
984
+ */
985
+ disabled: e.bool,
986
+ /**
987
+ * The component orientation (layout flow direction).
988
+ */
989
+ orientation: e.oneOf(["horizontal", "vertical"]).isRequired,
990
+ /**
991
+ * The system prop that allows defining system overrides as well as additional CSS styles.
992
+ */
993
+ sx: e.oneOfType([e.arrayOf(e.oneOfType([e.func, e.object, e.bool])), e.func, e.object])
994
+ });
995
+ function Qt(o) {
996
+ return se("MuiTabs", o);
997
+ }
998
+ const qe = ne("MuiTabs", ["root", "vertical", "flexContainer", "flexContainerVertical", "centered", "scroller", "fixed", "scrollableX", "scrollableY", "hideScrollbar", "scrollButtons", "scrollButtonsHideMobile", "indicator"]), Zt = ["aria-label", "aria-labelledby", "action", "centered", "children", "className", "component", "allowScrollButtonsMobile", "indicatorColor", "onChange", "orientation", "ScrollButtonComponent", "scrollButtons", "selectionFollowsFocus", "TabIndicatorProps", "TabScrollButtonProps", "textColor", "value", "variant", "visibleScrollbar"], io = (o, t) => o === t ? o.firstChild : t && t.nextElementSibling ? t.nextElementSibling : o.firstChild, co = (o, t) => o === t ? o.lastChild : t && t.previousElementSibling ? t.previousElementSibling : o.lastChild, We = (o, t, s) => {
999
+ let r = !1, a = s(o, t);
1000
+ for (; a; ) {
1001
+ if (a === o.firstChild) {
1002
+ if (r)
1003
+ return;
1004
+ r = !0;
1005
+ }
1006
+ const n = a.disabled || a.getAttribute("aria-disabled") === "true";
1007
+ if (!a.hasAttribute("tabindex") || n)
1008
+ a = s(o, a);
1009
+ else {
1010
+ a.focus();
1011
+ return;
1012
+ }
1013
+ }
1014
+ }, Jt = (o) => {
1015
+ const {
1016
+ vertical: t,
1017
+ fixed: s,
1018
+ hideScrollbar: r,
1019
+ scrollableX: a,
1020
+ scrollableY: n,
1021
+ centered: l,
1022
+ scrollButtonsHideMobile: i,
1023
+ classes: c
1024
+ } = o;
1025
+ return te({
1026
+ root: ["root", t && "vertical"],
1027
+ scroller: ["scroller", s && "fixed", r && "hideScrollbar", a && "scrollableX", n && "scrollableY"],
1028
+ flexContainer: ["flexContainer", t && "flexContainerVertical", l && "centered"],
1029
+ indicator: ["indicator"],
1030
+ scrollButtons: ["scrollButtons", i && "scrollButtonsHideMobile"],
1031
+ scrollableX: [a && "scrollableX"],
1032
+ hideScrollbar: [r && "hideScrollbar"]
1033
+ }, Qt, c);
1034
+ }, en = M("div", {
1035
+ name: "MuiTabs",
1036
+ slot: "Root",
1037
+ overridesResolver: (o, t) => {
1038
+ const {
1039
+ ownerState: s
1040
+ } = o;
1041
+ return [{
1042
+ [`& .${qe.scrollButtons}`]: t.scrollButtons
1043
+ }, {
1044
+ [`& .${qe.scrollButtons}`]: s.scrollButtonsHideMobile && t.scrollButtonsHideMobile
1045
+ }, t.root, s.vertical && t.vertical];
1046
+ }
1047
+ })(({
1048
+ ownerState: o,
1049
+ theme: t
1050
+ }) => u({
1051
+ overflow: "hidden",
1052
+ minHeight: 48,
1053
+ // Add iOS momentum scrolling for iOS < 13.0
1054
+ WebkitOverflowScrolling: "touch",
1055
+ display: "flex"
1056
+ }, o.vertical && {
1057
+ flexDirection: "column"
1058
+ }, o.scrollButtonsHideMobile && {
1059
+ [`& .${qe.scrollButtons}`]: {
1060
+ [t.breakpoints.down("sm")]: {
1061
+ display: "none"
1062
+ }
1063
+ }
1064
+ })), on = M("div", {
1065
+ name: "MuiTabs",
1066
+ slot: "Scroller",
1067
+ overridesResolver: (o, t) => {
1068
+ const {
1069
+ ownerState: s
1070
+ } = o;
1071
+ return [t.scroller, s.fixed && t.fixed, s.hideScrollbar && t.hideScrollbar, s.scrollableX && t.scrollableX, s.scrollableY && t.scrollableY];
1072
+ }
1073
+ })(({
1074
+ ownerState: o
1075
+ }) => u({
1076
+ position: "relative",
1077
+ display: "inline-block",
1078
+ flex: "1 1 auto",
1079
+ whiteSpace: "nowrap"
1080
+ }, o.fixed && {
1081
+ overflowX: "hidden",
1082
+ width: "100%"
1083
+ }, o.hideScrollbar && {
1084
+ // Hide dimensionless scrollbar on macOS
1085
+ scrollbarWidth: "none",
1086
+ // Firefox
1087
+ "&::-webkit-scrollbar": {
1088
+ display: "none"
1089
+ // Safari + Chrome
1090
+ }
1091
+ }, o.scrollableX && {
1092
+ overflowX: "auto",
1093
+ overflowY: "hidden"
1094
+ }, o.scrollableY && {
1095
+ overflowY: "auto",
1096
+ overflowX: "hidden"
1097
+ })), tn = M("div", {
1098
+ name: "MuiTabs",
1099
+ slot: "FlexContainer",
1100
+ overridesResolver: (o, t) => {
1101
+ const {
1102
+ ownerState: s
1103
+ } = o;
1104
+ return [t.flexContainer, s.vertical && t.flexContainerVertical, s.centered && t.centered];
1105
+ }
1106
+ })(({
1107
+ ownerState: o
1108
+ }) => u({
1109
+ display: "flex"
1110
+ }, o.vertical && {
1111
+ flexDirection: "column"
1112
+ }, o.centered && {
1113
+ justifyContent: "center"
1114
+ })), nn = M("span", {
1115
+ name: "MuiTabs",
1116
+ slot: "Indicator",
1117
+ overridesResolver: (o, t) => t.indicator
1118
+ })(({
1119
+ ownerState: o,
1120
+ theme: t
1121
+ }) => u({
1122
+ position: "absolute",
1123
+ height: 2,
1124
+ bottom: 0,
1125
+ width: "100%",
1126
+ transition: t.transitions.create()
1127
+ }, o.indicatorColor === "primary" && {
1128
+ backgroundColor: (t.vars || t).palette.primary.main
1129
+ }, o.indicatorColor === "secondary" && {
1130
+ backgroundColor: (t.vars || t).palette.secondary.main
1131
+ }, o.vertical && {
1132
+ height: "100%",
1133
+ width: 2,
1134
+ right: 0
1135
+ })), sn = M(Ro, {
1136
+ name: "MuiTabs",
1137
+ slot: "ScrollbarSize"
1138
+ })({
1139
+ overflowX: "auto",
1140
+ overflowY: "hidden",
1141
+ // Hide dimensionless scrollbar on macOS
1142
+ scrollbarWidth: "none",
1143
+ // Firefox
1144
+ "&::-webkit-scrollbar": {
1145
+ display: "none"
1146
+ // Safari + Chrome
1147
+ }
1148
+ }), uo = {};
1149
+ let mo = !1;
1150
+ const No = /* @__PURE__ */ f.forwardRef(function(t, s) {
1151
+ const r = Z({
1152
+ props: t,
1153
+ name: "MuiTabs"
1154
+ }), a = eo(), n = a.direction === "rtl", {
1155
+ "aria-label": l,
1156
+ "aria-labelledby": i,
1157
+ action: c,
1158
+ centered: d = !1,
1159
+ children: v,
1160
+ className: p,
1161
+ component: h = "div",
1162
+ allowScrollButtonsMobile: T = !1,
1163
+ indicatorColor: D = "primary",
1164
+ onChange: m,
1165
+ orientation: C = "horizontal",
1166
+ ScrollButtonComponent: I = Oo,
1167
+ scrollButtons: S = "auto",
1168
+ selectionFollowsFocus: F,
1169
+ TabIndicatorProps: N = {},
1170
+ TabScrollButtonProps: R = {},
1171
+ textColor: x = "primary",
1172
+ value: B,
1173
+ variant: E = "standard",
1174
+ visibleScrollbar: V = !1
1175
+ } = r, W = G(r, Zt), _ = E === "scrollable", L = C === "vertical", ae = L ? "scrollTop" : "scrollLeft", re = L ? "top" : "left", ce = L ? "bottom" : "right", ue = L ? "clientHeight" : "clientWidth", Q = L ? "height" : "width", le = u({}, r, {
1176
+ component: h,
1177
+ allowScrollButtonsMobile: T,
1178
+ indicatorColor: D,
1179
+ orientation: C,
1180
+ vertical: L,
1181
+ scrollButtons: S,
1182
+ textColor: x,
1183
+ variant: E,
1184
+ visibleScrollbar: V,
1185
+ fixed: !_,
1186
+ hideScrollbar: _ && !V,
1187
+ scrollableX: _ && !L,
1188
+ scrollableY: _ && L,
1189
+ centered: d && !_,
1190
+ scrollButtonsHideMobile: !T
1191
+ }), P = Jt(le);
1192
+ process.env.NODE_ENV !== "production" && d && _ && console.error('MUI: You can not use the `centered={true}` and `variant="scrollable"` properties at the same time on a `Tabs` component.');
1193
+ const [de, me] = f.useState(!1), [q, we] = f.useState(uo), [ee, Ie] = f.useState({
1194
+ start: !1,
1195
+ end: !1
1196
+ }), [Fe, _e] = f.useState({
1197
+ overflow: "hidden",
1198
+ scrollbarWidth: 0
1199
+ }), ge = /* @__PURE__ */ new Map(), K = f.useRef(null), $ = f.useRef(null), pe = () => {
1200
+ const b = K.current;
1201
+ let g;
1202
+ if (b) {
1203
+ const k = b.getBoundingClientRect();
1204
+ g = {
1205
+ clientWidth: b.clientWidth,
1206
+ scrollLeft: b.scrollLeft,
1207
+ scrollTop: b.scrollTop,
1208
+ scrollLeftNormalized: so(b, a.direction),
1209
+ scrollWidth: b.scrollWidth,
1210
+ top: k.top,
1211
+ bottom: k.bottom,
1212
+ left: k.left,
1213
+ right: k.right
1214
+ };
1215
+ }
1216
+ let w;
1217
+ if (b && B !== !1) {
1218
+ const k = $.current.children;
1219
+ if (k.length > 0) {
1220
+ const Y = k[ge.get(B)];
1221
+ process.env.NODE_ENV !== "production" && (Y || console.error(["MUI: The `value` provided to the Tabs component is invalid.", `None of the Tabs' children match with "${B}".`, ge.keys ? `You can provide one of the following values: ${Array.from(ge.keys()).join(", ")}.` : null].join(`
1222
+ `))), w = Y ? Y.getBoundingClientRect() : null, process.env.NODE_ENV !== "production" && process.env.NODE_ENV !== "test" && !mo && w && w.width === 0 && w.height === 0 && // if the whole Tabs component is hidden, don't warn
1223
+ g.clientWidth !== 0 && (g = null, console.error(["MUI: The `value` provided to the Tabs component is invalid.", `The Tab with this \`value\` ("${B}") is not part of the document layout.`, "Make sure the tab item is present in the document or that it's not `display: none`."].join(`
1224
+ `)), mo = !0);
1225
+ }
1226
+ }
1227
+ return {
1228
+ tabsMeta: g,
1229
+ tabMeta: w
1230
+ };
1231
+ }, ye = ze(() => {
1232
+ const {
1233
+ tabsMeta: b,
1234
+ tabMeta: g
1235
+ } = pe();
1236
+ let w = 0, k;
1237
+ if (L)
1238
+ k = "top", g && b && (w = g.top - b.top + b.scrollTop);
1239
+ else if (k = n ? "right" : "left", g && b) {
1240
+ const oe = n ? b.scrollLeftNormalized + b.clientWidth - b.scrollWidth : b.scrollLeft;
1241
+ w = (n ? -1 : 1) * (g[k] - b[k] + oe);
1242
+ }
1243
+ const Y = {
1244
+ [k]: w,
1245
+ // May be wrong until the font is loaded.
1246
+ [Q]: g ? g[Q] : 0
1247
+ };
1248
+ if (isNaN(q[k]) || isNaN(q[Q]))
1249
+ we(Y);
1250
+ else {
1251
+ const oe = Math.abs(q[k] - Y[k]), ke = Math.abs(q[Q] - Y[Q]);
1252
+ (oe >= 1 || ke >= 1) && we(Y);
1253
+ }
1254
+ }), ie = (b, {
1255
+ animation: g = !0
1256
+ } = {}) => {
1257
+ g ? Ht(ae, K.current, b, {
1258
+ duration: a.transitions.duration.standard
1259
+ }) : K.current[ae] = b;
1260
+ }, be = (b) => {
1261
+ let g = K.current[ae];
1262
+ L ? g += b : (g += b * (n ? -1 : 1), g *= n && So() === "reverse" ? -1 : 1), ie(g);
1263
+ }, Le = () => {
1264
+ const b = K.current[ue];
1265
+ let g = 0;
1266
+ const w = Array.from($.current.children);
1267
+ for (let k = 0; k < w.length; k += 1) {
1268
+ const Y = w[k];
1269
+ if (g + Y[ue] > b) {
1270
+ k === 0 && (g = b);
1271
+ break;
1272
+ }
1273
+ g += Y[ue];
1274
+ }
1275
+ return g;
1276
+ }, Be = () => {
1277
+ be(-1 * Le());
1278
+ }, je = () => {
1279
+ be(Le());
1280
+ }, j = f.useCallback((b) => {
1281
+ _e({
1282
+ overflow: null,
1283
+ scrollbarWidth: b
1284
+ });
1285
+ }, []), H = () => {
1286
+ const b = {};
1287
+ b.scrollbarSizeListener = _ ? /* @__PURE__ */ y(sn, {
1288
+ onChange: j,
1289
+ className: fe(P.scrollableX, P.hideScrollbar)
1290
+ }) : null;
1291
+ const g = ee.start || ee.end, w = _ && (S === "auto" && g || S === !0);
1292
+ return b.scrollButtonStart = w ? /* @__PURE__ */ y(I, u({
1293
+ orientation: C,
1294
+ direction: n ? "right" : "left",
1295
+ onClick: Be,
1296
+ disabled: !ee.start
1297
+ }, R, {
1298
+ className: fe(P.scrollButtons, R.className)
1299
+ })) : null, b.scrollButtonEnd = w ? /* @__PURE__ */ y(I, u({
1300
+ orientation: C,
1301
+ direction: n ? "left" : "right",
1302
+ onClick: je,
1303
+ disabled: !ee.end
1304
+ }, R, {
1305
+ className: fe(P.scrollButtons, R.className)
1306
+ })) : null, b;
1307
+ }, U = ze((b) => {
1308
+ const {
1309
+ tabsMeta: g,
1310
+ tabMeta: w
1311
+ } = pe();
1312
+ if (!(!w || !g)) {
1313
+ if (w[re] < g[re]) {
1314
+ const k = g[ae] + (w[re] - g[re]);
1315
+ ie(k, {
1316
+ animation: b
1317
+ });
1318
+ } else if (w[ce] > g[ce]) {
1319
+ const k = g[ae] + (w[ce] - g[ce]);
1320
+ ie(k, {
1321
+ animation: b
1322
+ });
1323
+ }
1324
+ }
1325
+ }), X = ze(() => {
1326
+ if (_ && S !== !1) {
1327
+ const {
1328
+ scrollTop: b,
1329
+ scrollHeight: g,
1330
+ clientHeight: w,
1331
+ scrollWidth: k,
1332
+ clientWidth: Y
1333
+ } = K.current;
1334
+ let oe, ke;
1335
+ if (L)
1336
+ oe = b > 1, ke = b < g - w - 1;
1337
+ else {
1338
+ const He = so(K.current, a.direction);
1339
+ oe = n ? He < k - Y - 1 : He > 1, ke = n ? He > 1 : He < k - Y - 1;
1340
+ }
1341
+ (oe !== ee.start || ke !== ee.end) && Ie({
1342
+ start: oe,
1343
+ end: ke
1344
+ });
1345
+ }
1346
+ });
1347
+ f.useEffect(() => {
1348
+ const b = Ge(() => {
1349
+ K.current && (ye(), X());
1350
+ }), g = xo(K.current);
1351
+ g.addEventListener("resize", b);
1352
+ let w;
1353
+ return typeof ResizeObserver < "u" && (w = new ResizeObserver(b), Array.from($.current.children).forEach((k) => {
1354
+ w.observe(k);
1355
+ })), () => {
1356
+ b.clear(), g.removeEventListener("resize", b), w && w.disconnect();
1357
+ };
1358
+ }, [ye, X]);
1359
+ const ve = f.useMemo(() => Ge(() => {
1360
+ X();
1361
+ }), [X]);
1362
+ f.useEffect(() => () => {
1363
+ ve.clear();
1364
+ }, [ve]), f.useEffect(() => {
1365
+ me(!0);
1366
+ }, []), f.useEffect(() => {
1367
+ ye(), X();
1368
+ }), f.useEffect(() => {
1369
+ U(uo !== q);
1370
+ }, [U, q]), f.useImperativeHandle(c, () => ({
1371
+ updateIndicator: ye,
1372
+ updateScrollButtons: X
1373
+ }), [ye, X]);
1374
+ const De = /* @__PURE__ */ y(nn, u({}, N, {
1375
+ className: fe(P.indicator, N.className),
1376
+ ownerState: le,
1377
+ style: u({}, q, N.style)
1378
+ }));
1379
+ let O = 0;
1380
+ const J = f.Children.map(v, (b) => {
1381
+ if (!/* @__PURE__ */ f.isValidElement(b))
1382
+ return null;
1383
+ process.env.NODE_ENV !== "production" && pt.isFragment(b) && console.error(["MUI: The Tabs component doesn't accept a Fragment as a child.", "Consider providing an array instead."].join(`
1384
+ `));
1385
+ const g = b.props.value === void 0 ? O : b.props.value;
1386
+ ge.set(g, O);
1387
+ const w = g === B;
1388
+ return O += 1, /* @__PURE__ */ f.cloneElement(b, u({
1389
+ fullWidth: E === "fullWidth",
1390
+ indicator: w && !de && De,
1391
+ selected: w,
1392
+ selectionFollowsFocus: F,
1393
+ onChange: m,
1394
+ textColor: x,
1395
+ value: g
1396
+ }, O === 1 && B === !1 && !b.props.tabIndex ? {
1397
+ tabIndex: 0
1398
+ } : {}));
1399
+ }), Pe = (b) => {
1400
+ const g = $.current, w = bt(g).activeElement;
1401
+ if (w.getAttribute("role") !== "tab")
1402
+ return;
1403
+ let Y = C === "horizontal" ? "ArrowLeft" : "ArrowUp", oe = C === "horizontal" ? "ArrowRight" : "ArrowDown";
1404
+ switch (C === "horizontal" && n && (Y = "ArrowRight", oe = "ArrowLeft"), b.key) {
1405
+ case Y:
1406
+ b.preventDefault(), We(g, w, co);
1407
+ break;
1408
+ case oe:
1409
+ b.preventDefault(), We(g, w, io);
1410
+ break;
1411
+ case "Home":
1412
+ b.preventDefault(), We(g, null, io);
1413
+ break;
1414
+ case "End":
1415
+ b.preventDefault(), We(g, null, co);
1416
+ break;
1417
+ }
1418
+ }, Ve = H();
1419
+ return /* @__PURE__ */ A(en, u({
1420
+ className: fe(P.root, p),
1421
+ ownerState: le,
1422
+ ref: s,
1423
+ as: h
1424
+ }, W, {
1425
+ children: [Ve.scrollButtonStart, Ve.scrollbarSizeListener, /* @__PURE__ */ A(on, {
1426
+ className: P.scroller,
1427
+ ownerState: le,
1428
+ style: {
1429
+ overflow: Fe.overflow,
1430
+ [L ? `margin${n ? "Left" : "Right"}` : "marginBottom"]: V ? void 0 : -Fe.scrollbarWidth
1431
+ },
1432
+ ref: K,
1433
+ onScroll: ve,
1434
+ children: [/* @__PURE__ */ y(tn, {
1435
+ "aria-label": l,
1436
+ "aria-labelledby": i,
1437
+ "aria-orientation": C === "vertical" ? "vertical" : null,
1438
+ className: P.flexContainer,
1439
+ ownerState: le,
1440
+ onKeyDown: Pe,
1441
+ ref: $,
1442
+ role: "tablist",
1443
+ children: J
1444
+ }), de && De]
1445
+ }), Ve.scrollButtonEnd]
1446
+ }));
1447
+ });
1448
+ process.env.NODE_ENV !== "production" && (No.propTypes = {
1449
+ // ----------------------------- Warning --------------------------------
1450
+ // | These PropTypes are generated from the TypeScript type definitions |
1451
+ // | To update them edit the d.ts file and run "yarn proptypes" |
1452
+ // ----------------------------------------------------------------------
1453
+ /**
1454
+ * Callback fired when the component mounts.
1455
+ * This is useful when you want to trigger an action programmatically.
1456
+ * It supports two actions: `updateIndicator()` and `updateScrollButtons()`
1457
+ *
1458
+ * @param {object} actions This object contains all possible actions
1459
+ * that can be triggered programmatically.
1460
+ */
1461
+ action: ht,
1462
+ /**
1463
+ * If `true`, the scroll buttons aren't forced hidden on mobile.
1464
+ * By default the scroll buttons are hidden on mobile and takes precedence over `scrollButtons`.
1465
+ * @default false
1466
+ */
1467
+ allowScrollButtonsMobile: e.bool,
1468
+ /**
1469
+ * The label for the Tabs as a string.
1470
+ */
1471
+ "aria-label": e.string,
1472
+ /**
1473
+ * An id or list of ids separated by a space that label the Tabs.
1474
+ */
1475
+ "aria-labelledby": e.string,
1476
+ /**
1477
+ * If `true`, the tabs are centered.
1478
+ * This prop is intended for large views.
1479
+ * @default false
1480
+ */
1481
+ centered: e.bool,
1482
+ /**
1483
+ * The content of the component.
1484
+ */
1485
+ children: e.node,
1486
+ /**
1487
+ * Override or extend the styles applied to the component.
1488
+ */
1489
+ classes: e.object,
1490
+ /**
1491
+ * @ignore
1492
+ */
1493
+ className: e.string,
1494
+ /**
1495
+ * The component used for the root node.
1496
+ * Either a string to use a HTML element or a component.
1497
+ */
1498
+ component: e.elementType,
1499
+ /**
1500
+ * Determines the color of the indicator.
1501
+ * @default 'primary'
1502
+ */
1503
+ indicatorColor: e.oneOfType([e.oneOf(["primary", "secondary"]), e.string]),
1504
+ /**
1505
+ * Callback fired when the value changes.
1506
+ *
1507
+ * @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.
1508
+ * @param {any} value We default to the index of the child (number)
1509
+ */
1510
+ onChange: e.func,
1511
+ /**
1512
+ * The component orientation (layout flow direction).
1513
+ * @default 'horizontal'
1514
+ */
1515
+ orientation: e.oneOf(["horizontal", "vertical"]),
1516
+ /**
1517
+ * The component used to render the scroll buttons.
1518
+ * @default TabScrollButton
1519
+ */
1520
+ ScrollButtonComponent: e.elementType,
1521
+ /**
1522
+ * Determine behavior of scroll buttons when tabs are set to scroll:
1523
+ *
1524
+ * - `auto` will only present them when not all the items are visible.
1525
+ * - `true` will always present them.
1526
+ * - `false` will never present them.
1527
+ *
1528
+ * By default the scroll buttons are hidden on mobile.
1529
+ * This behavior can be disabled with `allowScrollButtonsMobile`.
1530
+ * @default 'auto'
1531
+ */
1532
+ scrollButtons: e.oneOf(["auto", !1, !0]),
1533
+ /**
1534
+ * If `true` the selected tab changes on focus. Otherwise it only
1535
+ * changes on activation.
1536
+ */
1537
+ selectionFollowsFocus: e.bool,
1538
+ /**
1539
+ * The system prop that allows defining system overrides as well as additional CSS styles.
1540
+ */
1541
+ sx: e.oneOfType([e.arrayOf(e.oneOfType([e.func, e.object, e.bool])), e.func, e.object]),
1542
+ /**
1543
+ * Props applied to the tab indicator element.
1544
+ * @default {}
1545
+ */
1546
+ TabIndicatorProps: e.object,
1547
+ /**
1548
+ * Props applied to the [`TabScrollButton`](/material-ui/api/tab-scroll-button/) element.
1549
+ * @default {}
1550
+ */
1551
+ TabScrollButtonProps: e.object,
1552
+ /**
1553
+ * Determines the color of the `Tab`.
1554
+ * @default 'primary'
1555
+ */
1556
+ textColor: e.oneOf(["inherit", "primary", "secondary"]),
1557
+ /**
1558
+ * The value of the currently selected `Tab`.
1559
+ * If you don't want any selected `Tab`, you can set this prop to `false`.
1560
+ */
1561
+ value: e.any,
1562
+ /**
1563
+ * Determines additional display behavior of the tabs:
1564
+ *
1565
+ * - `scrollable` will invoke scrolling properties and allow for horizontally
1566
+ * scrolling (or swiping) of the tab bar.
1567
+ * -`fullWidth` will make the tabs grow to use all the available space,
1568
+ * which should be used for small views, like on mobile.
1569
+ * - `standard` will render the default state.
1570
+ * @default 'standard'
1571
+ */
1572
+ variant: e.oneOf(["fullWidth", "scrollable", "standard"]),
1573
+ /**
1574
+ * If `true`, the scrollbar is visible. It can be useful when displaying
1575
+ * a long vertical list of tabs.
1576
+ * @default false
1577
+ */
1578
+ visibleScrollbar: e.bool
1579
+ });
1580
+ function an(o) {
1581
+ return se("MuiDateTimePickerTabs", o);
1582
+ }
1583
+ ne("MuiDateTimePickerTabs", ["root"]);
1584
+ const rn = (o) => ["day", "month", "year"].includes(o) ? "date" : "time", ln = (o) => o === "date" ? "day" : "hours", cn = (o) => {
1585
+ const {
1586
+ classes: t
1587
+ } = o;
1588
+ return te({
1589
+ root: ["root"]
1590
+ }, an, t);
1591
+ }, un = M(No, {
1592
+ name: "MuiDateTimePickerTabs",
1593
+ slot: "Root",
1594
+ overridesResolver: (o, t) => t.root
1595
+ })(({
1596
+ theme: o
1597
+ }) => ({
1598
+ boxShadow: `0 -1px 0 0 inset ${(o.vars || o).palette.divider}`,
1599
+ "&:last-child": {
1600
+ boxShadow: `0 1px 0 0 inset ${(o.vars || o).palette.divider}`,
1601
+ [`& .${qe.indicator}`]: {
1602
+ bottom: "auto",
1603
+ top: 0
1604
+ }
1605
+ }
1606
+ })), Io = function(t) {
1607
+ const s = Z({
1608
+ props: t,
1609
+ name: "MuiDateTimePickerTabs"
1610
+ }), {
1611
+ dateIcon: r = /* @__PURE__ */ y(Zo, {}),
1612
+ onViewChange: a,
1613
+ timeIcon: n = /* @__PURE__ */ y(Jo, {}),
1614
+ view: l,
1615
+ hidden: i = typeof window > "u" || window.innerHeight < 667
1616
+ } = s, c = Ne(), d = cn(s), v = (p, h) => {
1617
+ a(ln(h));
1618
+ };
1619
+ return i ? null : /* @__PURE__ */ A(un, {
1620
+ ownerState: s,
1621
+ variant: "fullWidth",
1622
+ value: rn(l),
1623
+ onChange: v,
1624
+ className: d.root,
1625
+ children: [/* @__PURE__ */ y(Ze, {
1626
+ value: "date",
1627
+ "aria-label": c.dateTableLabel,
1628
+ icon: /* @__PURE__ */ y(f.Fragment, {
1629
+ children: r
1630
+ })
1631
+ }), /* @__PURE__ */ y(Ze, {
1632
+ value: "time",
1633
+ "aria-label": c.timeTableLabel,
1634
+ icon: /* @__PURE__ */ y(f.Fragment, {
1635
+ children: n
1636
+ })
1637
+ })]
1638
+ });
1639
+ };
1640
+ process.env.NODE_ENV !== "production" && (Io.propTypes = {
1641
+ // ----------------------------- Warning --------------------------------
1642
+ // | These PropTypes are generated from the TypeScript type definitions |
1643
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
1644
+ // ----------------------------------------------------------------------
1645
+ /**
1646
+ * Override or extend the styles applied to the component.
1647
+ */
1648
+ classes: e.object,
1649
+ /**
1650
+ * Date tab icon.
1651
+ * @default DateRange
1652
+ */
1653
+ dateIcon: e.node,
1654
+ /**
1655
+ * Toggles visibility of the tabs allowing view switching.
1656
+ * @default `window.innerHeight < 667` for `DesktopDateTimePicker` and `MobileDateTimePicker`, `displayStaticWrapperAs === 'desktop'` for `StaticDateTimePicker`
1657
+ */
1658
+ hidden: e.bool,
1659
+ /**
1660
+ * Callback called when a tab is clicked
1661
+ * @template TView
1662
+ * @param {TView} view The view to open
1663
+ */
1664
+ onViewChange: e.func.isRequired,
1665
+ /**
1666
+ * Time tab icon.
1667
+ * @default Time
1668
+ */
1669
+ timeIcon: e.node,
1670
+ /**
1671
+ * Currently visible picker view.
1672
+ */
1673
+ view: e.oneOf(["day", "hours", "minutes", "month", "seconds", "year"]).isRequired
1674
+ });
1675
+ function dn(o) {
1676
+ return se("MuiDateTimePickerToolbar", o);
1677
+ }
1678
+ const Ke = ne("MuiDateTimePickerToolbar", ["root", "dateContainer", "timeContainer", "timeDigitsContainer", "separator", "timeLabelReverse", "ampmSelection", "ampmLandscape", "ampmLabel"]), mn = ["ampm", "ampmInClock", "value", "onChange", "view", "isLandscape", "onViewChange", "toolbarFormat", "toolbarPlaceholder", "views", "disabled", "readOnly"], pn = (o) => {
1679
+ const {
1680
+ classes: t,
1681
+ theme: s,
1682
+ isLandscape: r
1683
+ } = o, a = {
1684
+ root: ["root"],
1685
+ dateContainer: ["dateContainer"],
1686
+ timeContainer: ["timeContainer", s.direction === "rtl" && "timeLabelReverse"],
1687
+ timeDigitsContainer: ["timeDigitsContainer", s.direction === "rtl" && "timeLabelReverse"],
1688
+ separator: ["separator"],
1689
+ ampmSelection: ["ampmSelection", r && "ampmLandscape"],
1690
+ ampmLabel: ["ampmLabel"]
1691
+ };
1692
+ return te(a, dn, t);
1693
+ }, Fo = M(et, {
1694
+ name: "MuiDateTimePickerToolbar",
1695
+ slot: "Root",
1696
+ overridesResolver: (o, t) => t.root
1697
+ })(({
1698
+ theme: o
1699
+ }) => ({
1700
+ paddingLeft: 16,
1701
+ paddingRight: 16,
1702
+ justifyContent: "space-around",
1703
+ position: "relative",
1704
+ [`& .${ot.penIconButton}`]: u({
1705
+ position: "absolute",
1706
+ top: 8
1707
+ }, o.direction === "rtl" ? {
1708
+ left: 8
1709
+ } : {
1710
+ right: 8
1711
+ })
1712
+ }));
1713
+ Fo.propTypes = {
1714
+ // ----------------------------- Warning --------------------------------
1715
+ // | These PropTypes are generated from the TypeScript type definitions |
1716
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
1717
+ // ----------------------------------------------------------------------
1718
+ as: e.elementType,
1719
+ classes: e.object,
1720
+ className: e.string,
1721
+ isLandscape: e.bool.isRequired,
1722
+ isMobileKeyboardViewOpen: e.bool,
1723
+ landscapeDirection: e.oneOf(["column", "row"]),
1724
+ ownerState: e.object.isRequired,
1725
+ sx: e.oneOfType([e.arrayOf(e.oneOfType([e.func, e.object, e.bool])), e.func, e.object]),
1726
+ toggleMobileKeyboardView: e.func,
1727
+ toolbarTitle: e.node,
1728
+ viewType: e.oneOf(["date", "time"])
1729
+ };
1730
+ const bn = M("div", {
1731
+ name: "MuiDateTimePickerToolbar",
1732
+ slot: "DateContainer",
1733
+ overridesResolver: (o, t) => t.dateContainer
1734
+ })({
1735
+ display: "flex",
1736
+ flexDirection: "column",
1737
+ alignItems: "flex-start"
1738
+ }), Bo = M("div", {
1739
+ name: "MuiDateTimePickerToolbar",
1740
+ slot: "TimeContainer",
1741
+ overridesResolver: (o, t) => t.timeContainer
1742
+ })(({
1743
+ theme: o,
1744
+ ownerState: t
1745
+ }) => {
1746
+ const s = t.isLandscape ? "column" : "row";
1747
+ return u({
1748
+ display: "flex",
1749
+ flexDirection: s
1750
+ }, o.direction === "rtl" && {
1751
+ flexDirection: `${s}-reverse`
1752
+ });
1753
+ }), fn = M("div", {
1754
+ name: "MuiDateTimePickerToolbar",
1755
+ slot: "TimeDigitsContainer",
1756
+ overridesResolver: (o, t) => t.timeDigitsContainer
1757
+ })(({
1758
+ theme: o
1759
+ }) => u({
1760
+ display: "flex"
1761
+ }, o.direction === "rtl" && {
1762
+ flexDirection: "row-reverse"
1763
+ }));
1764
+ Bo.propTypes = {
1765
+ // ----------------------------- Warning --------------------------------
1766
+ // | These PropTypes are generated from the TypeScript type definitions |
1767
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
1768
+ // ----------------------------------------------------------------------
1769
+ as: e.elementType,
1770
+ ownerState: e.object.isRequired,
1771
+ sx: e.oneOfType([e.arrayOf(e.oneOfType([e.func, e.object, e.bool])), e.func, e.object])
1772
+ };
1773
+ const po = M(Mo, {
1774
+ name: "MuiDateTimePickerToolbar",
1775
+ slot: "Separator",
1776
+ overridesResolver: (o, t) => t.separator
1777
+ })({
1778
+ margin: "0 4px 0 2px",
1779
+ cursor: "default"
1780
+ }), hn = M("div", {
1781
+ name: "MuiDateTimePickerToolbar",
1782
+ slot: "AmPmSelection",
1783
+ overridesResolver: (o, t) => [{
1784
+ [`.${Ke.ampmLabel}`]: t.ampmLabel
1785
+ }, {
1786
+ [`&.${Ke.ampmLandscape}`]: t.ampmLandscape
1787
+ }, t.ampmSelection]
1788
+ })(({
1789
+ ownerState: o
1790
+ }) => u({
1791
+ display: "flex",
1792
+ flexDirection: "column",
1793
+ marginRight: "auto",
1794
+ marginLeft: 12
1795
+ }, o.isLandscape && {
1796
+ margin: "4px 0 auto",
1797
+ flexDirection: "row",
1798
+ justifyContent: "space-around",
1799
+ width: "100%"
1800
+ }, {
1801
+ [`& .${Ke.ampmLabel}`]: {
1802
+ fontSize: 17
1803
+ }
1804
+ }));
1805
+ function Vo(o) {
1806
+ const t = Z({
1807
+ props: o,
1808
+ name: "MuiDateTimePickerToolbar"
1809
+ }), {
1810
+ ampm: s,
1811
+ ampmInClock: r,
1812
+ value: a,
1813
+ onChange: n,
1814
+ view: l,
1815
+ isLandscape: i,
1816
+ onViewChange: c,
1817
+ toolbarFormat: d,
1818
+ toolbarPlaceholder: v = "––",
1819
+ views: p,
1820
+ disabled: h,
1821
+ readOnly: T
1822
+ } = t, D = G(t, mn), m = t, C = Ee(), {
1823
+ meridiemMode: I,
1824
+ handleMeridiemChange: S
1825
+ } = go(a, s, n), F = !!(s && !r), N = Ne(), R = eo(), x = pn(u({}, m, {
1826
+ theme: R
1827
+ })), B = (V) => s ? C.format(V, "hours12h") : C.format(V, "hours24h"), E = f.useMemo(() => a ? d ? C.formatByString(a, d) : C.format(a, "shortDate") : v, [a, d, v, C]);
1828
+ return /* @__PURE__ */ A(Fo, u({
1829
+ toolbarTitle: N.dateTimePickerToolbarTitle,
1830
+ isLandscape: i,
1831
+ className: x.root
1832
+ }, D, {
1833
+ ownerState: m,
1834
+ children: [/* @__PURE__ */ A(bn, {
1835
+ className: x.dateContainer,
1836
+ ownerState: m,
1837
+ children: [p.includes("year") && /* @__PURE__ */ y(Ce, {
1838
+ tabIndex: -1,
1839
+ variant: "subtitle1",
1840
+ onClick: () => c("year"),
1841
+ selected: l === "year",
1842
+ value: a ? C.format(a, "year") : "–"
1843
+ }), p.includes("day") && /* @__PURE__ */ y(Ce, {
1844
+ tabIndex: -1,
1845
+ variant: "h4",
1846
+ onClick: () => c("day"),
1847
+ selected: l === "day",
1848
+ value: E
1849
+ })]
1850
+ }), /* @__PURE__ */ A(Bo, {
1851
+ className: x.timeContainer,
1852
+ ownerState: m,
1853
+ children: [/* @__PURE__ */ A(fn, {
1854
+ className: x.timeDigitsContainer,
1855
+ children: [p.includes("hours") && /* @__PURE__ */ y(Ce, {
1856
+ variant: "h3",
1857
+ onClick: () => c("hours"),
1858
+ selected: l === "hours",
1859
+ value: a ? B(a) : "--"
1860
+ }), p.includes("minutes") && /* @__PURE__ */ A(f.Fragment, {
1861
+ children: [/* @__PURE__ */ y(po, {
1862
+ variant: "h3",
1863
+ value: ":",
1864
+ className: x.separator,
1865
+ ownerState: m
1866
+ }), /* @__PURE__ */ y(Ce, {
1867
+ variant: "h3",
1868
+ onClick: () => c("minutes"),
1869
+ selected: l === "minutes",
1870
+ value: a ? C.format(a, "minutes") : "--"
1871
+ })]
1872
+ }), p.includes("seconds") && /* @__PURE__ */ A(f.Fragment, {
1873
+ children: [/* @__PURE__ */ y(po, {
1874
+ variant: "h3",
1875
+ value: ":",
1876
+ className: x.separator,
1877
+ ownerState: m
1878
+ }), /* @__PURE__ */ y(Ce, {
1879
+ variant: "h3",
1880
+ onClick: () => c("seconds"),
1881
+ selected: l === "seconds",
1882
+ value: a ? C.format(a, "seconds") : "--"
1883
+ })]
1884
+ })]
1885
+ }), F && /* @__PURE__ */ A(hn, {
1886
+ className: x.ampmSelection,
1887
+ ownerState: m,
1888
+ children: [/* @__PURE__ */ y(Ce, {
1889
+ disableRipple: !0,
1890
+ variant: "subtitle2",
1891
+ selected: I === "am",
1892
+ typographyClassName: x.ampmLabel,
1893
+ value: C.getMeridiemText("am"),
1894
+ onClick: T ? void 0 : () => S("am"),
1895
+ disabled: h
1896
+ }), /* @__PURE__ */ y(Ce, {
1897
+ disableRipple: !0,
1898
+ variant: "subtitle2",
1899
+ selected: I === "pm",
1900
+ typographyClassName: x.ampmLabel,
1901
+ value: C.getMeridiemText("pm"),
1902
+ onClick: T ? void 0 : () => S("pm"),
1903
+ disabled: h
1904
+ })]
1905
+ })]
1906
+ })]
1907
+ }));
1908
+ }
1909
+ process.env.NODE_ENV !== "production" && (Vo.propTypes = {
1910
+ // ----------------------------- Warning --------------------------------
1911
+ // | These PropTypes are generated from the TypeScript type definitions |
1912
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
1913
+ // ----------------------------------------------------------------------
1914
+ ampm: e.bool,
1915
+ ampmInClock: e.bool,
1916
+ /**
1917
+ * Override or extend the styles applied to the component.
1918
+ */
1919
+ classes: e.object,
1920
+ /**
1921
+ * className applied to the root component.
1922
+ */
1923
+ className: e.string,
1924
+ disabled: e.bool,
1925
+ /**
1926
+ * If `true`, show the toolbar even in desktop mode.
1927
+ * @default `true` for Desktop, `false` for Mobile.
1928
+ */
1929
+ hidden: e.bool,
1930
+ isLandscape: e.bool.isRequired,
1931
+ onChange: e.func.isRequired,
1932
+ /**
1933
+ * Callback called when a toolbar is clicked
1934
+ * @template TView
1935
+ * @param {TView} view The view to open
1936
+ */
1937
+ onViewChange: e.func.isRequired,
1938
+ readOnly: e.bool,
1939
+ titleId: e.string,
1940
+ /**
1941
+ * Toolbar date format.
1942
+ */
1943
+ toolbarFormat: e.string,
1944
+ /**
1945
+ * Toolbar value placeholder—it is displayed when the value is empty.
1946
+ * @default "––"
1947
+ */
1948
+ toolbarPlaceholder: e.node,
1949
+ value: e.any,
1950
+ /**
1951
+ * Currently visible picker view.
1952
+ */
1953
+ view: e.oneOf(["day", "hours", "minutes", "month", "seconds", "year"]).isRequired,
1954
+ views: e.arrayOf(e.oneOf(["day", "hours", "minutes", "month", "seconds", "year"]).isRequired).isRequired
1955
+ });
1956
+ function $o(o, t) {
1957
+ var s, r, a, n, l, i, c, d, v, p, h;
1958
+ const T = Ee(), D = To(), m = Z({
1959
+ props: o,
1960
+ name: t
1961
+ }), C = (s = m.ampm) != null ? s : T.is12HourCycleInCurrentLocale(), I = f.useMemo(() => {
1962
+ var N;
1963
+ return ((N = m.localeText) == null ? void 0 : N.toolbarTitle) == null ? m.localeText : u({}, m.localeText, {
1964
+ dateTimePickerToolbarTitle: m.localeText.toolbarTitle
1965
+ });
1966
+ }, [m.localeText]), S = (r = m.slots) != null ? r : yo(m.components), F = (a = m.slotProps) != null ? a : m.componentsProps;
1967
+ return u({}, m, tt({
1968
+ views: m.views,
1969
+ openTo: m.openTo,
1970
+ defaultViews: ["year", "day", "hours", "minutes"],
1971
+ defaultOpenTo: "day"
1972
+ }), {
1973
+ ampm: C,
1974
+ localeText: I,
1975
+ orientation: (n = m.orientation) != null ? n : "portrait",
1976
+ // TODO: Remove from public API
1977
+ disableIgnoringDatePartForTimeValidation: (l = m.disableIgnoringDatePartForTimeValidation) != null ? l : !!(m.minDateTime || m.maxDateTime || // allow time clock to correctly check time validity: https://github.com/mui/mui-x/issues/8520
1978
+ m.disablePast || m.disableFuture),
1979
+ disableFuture: (i = m.disableFuture) != null ? i : !1,
1980
+ disablePast: (c = m.disablePast) != null ? c : !1,
1981
+ minDate: Ue(T, (d = m.minDateTime) != null ? d : m.minDate, D.minDate),
1982
+ maxDate: Ue(T, (v = m.maxDateTime) != null ? v : m.maxDate, D.maxDate),
1983
+ minTime: (p = m.minDateTime) != null ? p : m.minTime,
1984
+ maxTime: (h = m.maxDateTime) != null ? h : m.maxTime,
1985
+ slots: u({
1986
+ toolbar: Vo,
1987
+ tabs: Io
1988
+ }, S),
1989
+ slotProps: u({}, F, {
1990
+ toolbar: u({
1991
+ ampm: C
1992
+ }, F == null ? void 0 : F.toolbar)
1993
+ })
1994
+ });
1995
+ }
1996
+ const Eo = /* @__PURE__ */ f.forwardRef(function(t, s) {
1997
+ var r, a, n, l;
1998
+ const i = Ne(), c = $o(t, "MuiDesktopDateTimePicker"), d = u({
1999
+ day: Me,
2000
+ month: Me,
2001
+ year: Me,
2002
+ hours: null,
2003
+ minutes: null,
2004
+ seconds: null
2005
+ }, c.viewRenderers), v = (r = c.ampmInClock) != null ? r : !0, p = u({}, c, {
2006
+ viewRenderers: d,
2007
+ yearsPerRow: (a = c.yearsPerRow) != null ? a : 4,
2008
+ ampmInClock: v,
2009
+ slots: u({
2010
+ field: to,
2011
+ openPickerIcon: nt
2012
+ }, c.slots),
2013
+ slotProps: u({}, c.slotProps, {
2014
+ field: (T) => {
2015
+ var D;
2016
+ return u({}, vo((D = c.slotProps) == null ? void 0 : D.field, T), Co(c), {
2017
+ ref: s,
2018
+ ampm: c.ampm
2019
+ });
2020
+ },
2021
+ toolbar: u({
2022
+ hidden: !0,
2023
+ ampmInClock: v
2024
+ }, (n = c.slotProps) == null ? void 0 : n.toolbar),
2025
+ tabs: u({
2026
+ hidden: !0
2027
+ }, (l = c.slotProps) == null ? void 0 : l.tabs)
2028
+ })
2029
+ }), {
2030
+ renderPicker: h
2031
+ } = st({
2032
+ props: p,
2033
+ valueManager: Je,
2034
+ valueType: "date-time",
2035
+ getOpenDialogAriaText: i.openDatePickerDialogue,
2036
+ validator: oo
2037
+ });
2038
+ return h();
2039
+ });
2040
+ Eo.propTypes = {
2041
+ // ----------------------------- Warning --------------------------------
2042
+ // | These PropTypes are generated from the TypeScript type definitions |
2043
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
2044
+ // ----------------------------------------------------------------------
2045
+ /**
2046
+ * 12h/24h view for hour selection clock.
2047
+ * @default `utils.is12HourCycleInCurrentLocale()`
2048
+ */
2049
+ ampm: e.bool,
2050
+ /**
2051
+ * Display ampm controls under the clock (instead of in the toolbar).
2052
+ * @default true on desktop, false on mobile
2053
+ */
2054
+ ampmInClock: e.bool,
2055
+ /**
2056
+ * If `true`, the main element is focused during the first mount.
2057
+ * This main element is:
2058
+ * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).
2059
+ * - the `input` element if there is a field rendered.
2060
+ */
2061
+ autoFocus: e.bool,
2062
+ /**
2063
+ * Class name applied to the root element.
2064
+ */
2065
+ className: e.string,
2066
+ /**
2067
+ * If `true`, the popover or modal will close after submitting the full date.
2068
+ * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
2069
+ */
2070
+ closeOnSelect: e.bool,
2071
+ /**
2072
+ * Overridable components.
2073
+ * @default {}
2074
+ * @deprecated Please use `slots`.
2075
+ */
2076
+ components: e.object,
2077
+ /**
2078
+ * The props used for each component slot.
2079
+ * @default {}
2080
+ * @deprecated Please use `slotProps`.
2081
+ */
2082
+ componentsProps: e.object,
2083
+ /**
2084
+ * Formats the day of week displayed in the calendar header.
2085
+ * @param {string} day The day of week provided by the adapter's method `getWeekdays`.
2086
+ * @returns {string} The name to display.
2087
+ * @default (day) => day.charAt(0).toUpperCase()
2088
+ */
2089
+ dayOfWeekFormatter: e.func,
2090
+ /**
2091
+ * Default calendar month displayed when `value={null}`.
2092
+ */
2093
+ defaultCalendarMonth: e.any,
2094
+ /**
2095
+ * The default value.
2096
+ * Used when the component is not controlled.
2097
+ */
2098
+ defaultValue: e.any,
2099
+ /**
2100
+ * If `true`, the picker and text field are disabled.
2101
+ * @default false
2102
+ */
2103
+ disabled: e.bool,
2104
+ /**
2105
+ * If `true`, disable values after the current date for date components, time for time components and both for date time components.
2106
+ * @default false
2107
+ */
2108
+ disableFuture: e.bool,
2109
+ /**
2110
+ * If `true`, today's date is rendering without highlighting with circle.
2111
+ * @default false
2112
+ */
2113
+ disableHighlightToday: e.bool,
2114
+ /**
2115
+ * Do not ignore date part when validating min/max time.
2116
+ * @default false
2117
+ */
2118
+ disableIgnoringDatePartForTimeValidation: e.bool,
2119
+ /**
2120
+ * If `true`, the open picker button will not be rendered (renders only the field).
2121
+ * @default false
2122
+ */
2123
+ disableOpenPicker: e.bool,
2124
+ /**
2125
+ * If `true`, disable values before the current date for date components, time for time components and both for date time components.
2126
+ * @default false
2127
+ */
2128
+ disablePast: e.bool,
2129
+ /**
2130
+ * If `true`, the week number will be display in the calendar.
2131
+ */
2132
+ displayWeekNumber: e.bool,
2133
+ /**
2134
+ * Calendar will show more weeks in order to match this value.
2135
+ * Put it to 6 for having fix number of week in Gregorian calendars
2136
+ * @default undefined
2137
+ */
2138
+ fixedWeekNumber: e.number,
2139
+ /**
2140
+ * Format of the date when rendered in the input(s).
2141
+ * Defaults to localized format based on the used `views`.
2142
+ */
2143
+ format: e.string,
2144
+ /**
2145
+ * Density of the format when rendered in the input.
2146
+ * Setting `formatDensity` to `"spacious"` will add a space before and after each `/`, `-` and `.` character.
2147
+ * @default "dense"
2148
+ */
2149
+ formatDensity: e.oneOf(["dense", "spacious"]),
2150
+ /**
2151
+ * Pass a ref to the `input` element.
2152
+ */
2153
+ inputRef: e.oneOfType([e.func, e.shape({
2154
+ current: e.object
2155
+ })]),
2156
+ /**
2157
+ * The label content.
2158
+ */
2159
+ label: e.node,
2160
+ /**
2161
+ * If `true`, calls `renderLoading` instead of rendering the day calendar.
2162
+ * Can be used to preload information and show it in calendar.
2163
+ * @default false
2164
+ */
2165
+ loading: e.bool,
2166
+ /**
2167
+ * Locale for components texts.
2168
+ * Allows overriding texts coming from `LocalizationProvider` and `theme`.
2169
+ */
2170
+ localeText: e.object,
2171
+ /**
2172
+ * Maximal selectable date.
2173
+ */
2174
+ maxDate: e.any,
2175
+ /**
2176
+ * Maximal selectable moment of time with binding to date, to set max time in each day use `maxTime`.
2177
+ */
2178
+ maxDateTime: e.any,
2179
+ /**
2180
+ * Maximal selectable time.
2181
+ * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.
2182
+ */
2183
+ maxTime: e.any,
2184
+ /**
2185
+ * Minimal selectable date.
2186
+ */
2187
+ minDate: e.any,
2188
+ /**
2189
+ * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.
2190
+ */
2191
+ minDateTime: e.any,
2192
+ /**
2193
+ * Minimal selectable time.
2194
+ * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.
2195
+ */
2196
+ minTime: e.any,
2197
+ /**
2198
+ * Step over minutes.
2199
+ * @default 1
2200
+ */
2201
+ minutesStep: e.number,
2202
+ /**
2203
+ * Months rendered per row.
2204
+ * @default 3
2205
+ */
2206
+ monthsPerRow: e.oneOf([3, 4]),
2207
+ /**
2208
+ * Callback fired when the value is accepted.
2209
+ * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
2210
+ * @param {TValue} value The value that was just accepted.
2211
+ */
2212
+ onAccept: e.func,
2213
+ /**
2214
+ * Callback fired when the value changes.
2215
+ * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
2216
+ * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
2217
+ * @param {TValue} value The new value.
2218
+ * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.
2219
+ */
2220
+ onChange: e.func,
2221
+ /**
2222
+ * Callback fired when the popup requests to be closed.
2223
+ * Use in controlled mode (see `open`).
2224
+ */
2225
+ onClose: e.func,
2226
+ /**
2227
+ * Callback fired when the error associated to the current value changes.
2228
+ * If the error has a non-null value, then the `TextField` will be rendered in `error` state.
2229
+ *
2230
+ * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
2231
+ * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
2232
+ * @param {TError} error The new error describing why the current value is not valid.
2233
+ * @param {TValue} value The value associated to the error.
2234
+ */
2235
+ onError: e.func,
2236
+ /**
2237
+ * Callback fired on month change.
2238
+ * @template TDate
2239
+ * @param {TDate} month The new month.
2240
+ */
2241
+ onMonthChange: e.func,
2242
+ /**
2243
+ * Callback fired when the popup requests to be opened.
2244
+ * Use in controlled mode (see `open`).
2245
+ */
2246
+ onOpen: e.func,
2247
+ /**
2248
+ * Callback fired when the selected sections change.
2249
+ * @param {FieldSelectedSections} newValue The new selected sections.
2250
+ */
2251
+ onSelectedSectionsChange: e.func,
2252
+ /**
2253
+ * Callback fired on view change.
2254
+ * @template TView
2255
+ * @param {TView} view The new view.
2256
+ */
2257
+ onViewChange: e.func,
2258
+ /**
2259
+ * Callback fired on year change.
2260
+ * @template TDate
2261
+ * @param {TDate} year The new year.
2262
+ */
2263
+ onYearChange: e.func,
2264
+ /**
2265
+ * Control the popup or dialog open state.
2266
+ * @default false
2267
+ */
2268
+ open: e.bool,
2269
+ /**
2270
+ * The default visible view.
2271
+ * Used when the component view is not controlled.
2272
+ * Must be a valid option from `views` list.
2273
+ */
2274
+ openTo: e.oneOf(["day", "hours", "minutes", "month", "seconds", "year"]),
2275
+ /**
2276
+ * Force rendering in particular orientation.
2277
+ */
2278
+ orientation: e.oneOf(["landscape", "portrait"]),
2279
+ readOnly: e.bool,
2280
+ /**
2281
+ * Disable heavy animations.
2282
+ * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)
2283
+ */
2284
+ reduceAnimations: e.bool,
2285
+ /**
2286
+ * Component displaying when passed `loading` true.
2287
+ * @returns {React.ReactNode} The node to render when loading.
2288
+ * @default () => <span data-mui-test="loading-progress">...</span>
2289
+ */
2290
+ renderLoading: e.func,
2291
+ /**
2292
+ * The currently selected sections.
2293
+ * This prop accept four formats:
2294
+ * 1. If a number is provided, the section at this index will be selected.
2295
+ * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.
2296
+ * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.
2297
+ * 4. If `null` is provided, no section will be selected
2298
+ * If not provided, the selected sections will be handled internally.
2299
+ */
2300
+ selectedSections: e.oneOfType([e.oneOf(["all", "day", "hours", "meridiem", "minutes", "month", "seconds", "weekDay", "year"]), e.number, e.shape({
2301
+ endIndex: e.number.isRequired,
2302
+ startIndex: e.number.isRequired
2303
+ })]),
2304
+ /**
2305
+ * Disable specific clock time.
2306
+ * @param {number} clockValue The value to check.
2307
+ * @param {TimeView} view The clock type of the timeValue.
2308
+ * @returns {boolean} If `true` the time will be disabled.
2309
+ * @deprecated Consider using `shouldDisableTime`.
2310
+ */
2311
+ shouldDisableClock: e.func,
2312
+ /**
2313
+ * Disable specific date.
2314
+ * @template TDate
2315
+ * @param {TDate} day The date to test.
2316
+ * @returns {boolean} If `true` the date will be disabled.
2317
+ */
2318
+ shouldDisableDate: e.func,
2319
+ /**
2320
+ * Disable specific month.
2321
+ * @template TDate
2322
+ * @param {TDate} month The month to test.
2323
+ * @returns {boolean} If `true`, the month will be disabled.
2324
+ */
2325
+ shouldDisableMonth: e.func,
2326
+ /**
2327
+ * Disable specific time.
2328
+ * @template TDate
2329
+ * @param {TDate} value The value to check.
2330
+ * @param {TimeView} view The clock type of the timeValue.
2331
+ * @returns {boolean} If `true` the time will be disabled.
2332
+ */
2333
+ shouldDisableTime: e.func,
2334
+ /**
2335
+ * Disable specific year.
2336
+ * @template TDate
2337
+ * @param {TDate} year The year to test.
2338
+ * @returns {boolean} If `true`, the year will be disabled.
2339
+ */
2340
+ shouldDisableYear: e.func,
2341
+ /**
2342
+ * If `true`, days outside the current month are rendered:
2343
+ *
2344
+ * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.
2345
+ *
2346
+ * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.
2347
+ *
2348
+ * - ignored if `calendars` equals more than `1` on range pickers.
2349
+ * @default false
2350
+ */
2351
+ showDaysOutsideCurrentMonth: e.bool,
2352
+ /**
2353
+ * The props used for each component slot.
2354
+ * @default {}
2355
+ */
2356
+ slotProps: e.object,
2357
+ /**
2358
+ * Overridable component slots.
2359
+ * @default {}
2360
+ */
2361
+ slots: e.object,
2362
+ /**
2363
+ * The system prop that allows defining system overrides as well as additional CSS styles.
2364
+ */
2365
+ sx: e.oneOfType([e.arrayOf(e.oneOfType([e.func, e.object, e.bool])), e.func, e.object]),
2366
+ /**
2367
+ * The selected value.
2368
+ * Used when the component is controlled.
2369
+ */
2370
+ value: e.any,
2371
+ /**
2372
+ * The visible view.
2373
+ * Used when the component view is controlled.
2374
+ * Must be a valid option from `views` list.
2375
+ */
2376
+ view: e.oneOf(["day", "hours", "minutes", "month", "seconds", "year"]),
2377
+ /**
2378
+ * Define custom view renderers for each section.
2379
+ * If `null`, the section will only have field editing.
2380
+ * If `undefined`, internally defined view will be the used.
2381
+ */
2382
+ viewRenderers: e.shape({
2383
+ day: e.func,
2384
+ hours: e.func,
2385
+ minutes: e.func,
2386
+ month: e.func,
2387
+ seconds: e.func,
2388
+ year: e.func
2389
+ }),
2390
+ /**
2391
+ * Available views.
2392
+ */
2393
+ views: e.arrayOf(e.oneOf(["day", "hours", "minutes", "month", "seconds", "year"]).isRequired),
2394
+ /**
2395
+ * Years rendered per row.
2396
+ * @default 4
2397
+ */
2398
+ yearsPerRow: e.oneOf([3, 4])
2399
+ };
2400
+ function Tn(o) {
2401
+ return se("MuiTimeClock", o);
2402
+ }
2403
+ ne("MuiTimeClock", ["root", "arrowSwitcher"]);
2404
+ const Re = 220, he = 36, $e = {
2405
+ x: Re / 2,
2406
+ y: Re / 2
2407
+ }, _o = {
2408
+ x: $e.x,
2409
+ y: 0
2410
+ }, gn = _o.x - $e.x, yn = _o.y - $e.y, vn = (o) => o * (180 / Math.PI), Lo = (o, t, s) => {
2411
+ const r = t - $e.x, a = s - $e.y, n = Math.atan2(gn, yn) - Math.atan2(r, a);
2412
+ let l = vn(n);
2413
+ l = Math.round(l / o) * o, l %= 360;
2414
+ const i = Math.floor(l / o) || 0, c = r ** 2 + a ** 2, d = Math.sqrt(c);
2415
+ return {
2416
+ value: i,
2417
+ distance: d
2418
+ };
2419
+ }, Cn = (o, t, s = 1) => {
2420
+ const r = s * 6;
2421
+ let {
2422
+ value: a
2423
+ } = Lo(r, o, t);
2424
+ return a = a * s % 60, a;
2425
+ }, xn = (o, t, s) => {
2426
+ const {
2427
+ value: r,
2428
+ distance: a
2429
+ } = Lo(30, o, t);
2430
+ let n = r || 12;
2431
+ return s ? n %= 12 : a < Re / 2 - he && (n += 12, n %= 24), n;
2432
+ };
2433
+ function wn(o) {
2434
+ return se("MuiClockPointer", o);
2435
+ }
2436
+ ne("MuiClockPointer", ["root", "thumb"]);
2437
+ const Dn = ["className", "hasSelected", "isInner", "type", "viewValue"], Pn = (o) => {
2438
+ const {
2439
+ classes: t
2440
+ } = o;
2441
+ return te({
2442
+ root: ["root"],
2443
+ thumb: ["thumb"]
2444
+ }, wn, t);
2445
+ }, kn = M("div", {
2446
+ name: "MuiClockPointer",
2447
+ slot: "Root",
2448
+ overridesResolver: (o, t) => t.root
2449
+ })(({
2450
+ theme: o,
2451
+ ownerState: t
2452
+ }) => u({
2453
+ width: 2,
2454
+ backgroundColor: (o.vars || o).palette.primary.main,
2455
+ position: "absolute",
2456
+ left: "calc(50% - 1px)",
2457
+ bottom: "50%",
2458
+ transformOrigin: "center bottom 0px"
2459
+ }, t.shouldAnimate && {
2460
+ transition: o.transitions.create(["transform", "height"])
2461
+ })), Sn = M("div", {
2462
+ name: "MuiClockPointer",
2463
+ slot: "Thumb",
2464
+ overridesResolver: (o, t) => t.thumb
2465
+ })(({
2466
+ theme: o,
2467
+ ownerState: t
2468
+ }) => u({
2469
+ width: 4,
2470
+ height: 4,
2471
+ backgroundColor: (o.vars || o).palette.primary.contrastText,
2472
+ borderRadius: "50%",
2473
+ position: "absolute",
2474
+ top: -21,
2475
+ left: `calc(50% - ${he / 2}px)`,
2476
+ border: `${(he - 4) / 2}px solid ${(o.vars || o).palette.primary.main}`,
2477
+ boxSizing: "content-box"
2478
+ }, t.hasSelected && {
2479
+ backgroundColor: (o.vars || o).palette.primary.main
2480
+ }));
2481
+ function Mn(o) {
2482
+ const t = Z({
2483
+ props: o,
2484
+ name: "MuiClockPointer"
2485
+ }), {
2486
+ className: s,
2487
+ isInner: r,
2488
+ type: a,
2489
+ viewValue: n
2490
+ } = t, l = G(t, Dn), i = f.useRef(a);
2491
+ f.useEffect(() => {
2492
+ i.current = a;
2493
+ }, [a]);
2494
+ const c = u({}, t, {
2495
+ shouldAnimate: i.current !== a
2496
+ }), d = Pn(c);
2497
+ return /* @__PURE__ */ y(kn, u({
2498
+ style: (() => {
2499
+ let h = 360 / (a === "hours" ? 12 : 60) * n;
2500
+ return a === "hours" && n > 12 && (h -= 360), {
2501
+ height: Math.round((r ? 0.26 : 0.4) * Re),
2502
+ transform: `rotateZ(${h}deg)`
2503
+ };
2504
+ })(),
2505
+ className: Oe(s, d.root),
2506
+ ownerState: c
2507
+ }, l, {
2508
+ children: /* @__PURE__ */ y(Sn, {
2509
+ ownerState: c,
2510
+ className: d.thumb
2511
+ })
2512
+ }));
2513
+ }
2514
+ function Rn(o) {
2515
+ return se("MuiClock", o);
2516
+ }
2517
+ ne("MuiClock", ["root", "clock", "wrapper", "squareMask", "pin", "amButton", "pmButton"]);
2518
+ const On = (o) => {
2519
+ const {
2520
+ classes: t
2521
+ } = o;
2522
+ return te({
2523
+ root: ["root"],
2524
+ clock: ["clock"],
2525
+ wrapper: ["wrapper"],
2526
+ squareMask: ["squareMask"],
2527
+ pin: ["pin"],
2528
+ amButton: ["amButton"],
2529
+ pmButton: ["pmButton"]
2530
+ }, Rn, t);
2531
+ }, Nn = M("div", {
2532
+ name: "MuiClock",
2533
+ slot: "Root",
2534
+ overridesResolver: (o, t) => t.root
2535
+ })(({
2536
+ theme: o
2537
+ }) => ({
2538
+ display: "flex",
2539
+ justifyContent: "center",
2540
+ alignItems: "center",
2541
+ margin: o.spacing(2)
2542
+ })), In = M("div", {
2543
+ name: "MuiClock",
2544
+ slot: "Clock",
2545
+ overridesResolver: (o, t) => t.clock
2546
+ })({
2547
+ backgroundColor: "rgba(0,0,0,.07)",
2548
+ borderRadius: "50%",
2549
+ height: 220,
2550
+ width: 220,
2551
+ flexShrink: 0,
2552
+ position: "relative",
2553
+ pointerEvents: "none"
2554
+ }), Fn = M("div", {
2555
+ name: "MuiClock",
2556
+ slot: "Wrapper",
2557
+ overridesResolver: (o, t) => t.wrapper
2558
+ })({
2559
+ "&:focus": {
2560
+ outline: "none"
2561
+ }
2562
+ }), Bn = M("div", {
2563
+ name: "MuiClock",
2564
+ slot: "SquareMask",
2565
+ overridesResolver: (o, t) => t.squareMask
2566
+ })(({
2567
+ ownerState: o
2568
+ }) => u({
2569
+ width: "100%",
2570
+ height: "100%",
2571
+ position: "absolute",
2572
+ pointerEvents: "auto",
2573
+ outline: 0,
2574
+ // Disable scroll capabilities.
2575
+ touchAction: "none",
2576
+ userSelect: "none"
2577
+ }, o.disabled ? {} : {
2578
+ "@media (pointer: fine)": {
2579
+ cursor: "pointer",
2580
+ borderRadius: "50%"
2581
+ },
2582
+ "&:active": {
2583
+ cursor: "move"
2584
+ }
2585
+ })), Vn = M("div", {
2586
+ name: "MuiClock",
2587
+ slot: "Pin",
2588
+ overridesResolver: (o, t) => t.pin
2589
+ })(({
2590
+ theme: o
2591
+ }) => ({
2592
+ width: 6,
2593
+ height: 6,
2594
+ borderRadius: "50%",
2595
+ backgroundColor: (o.vars || o).palette.primary.main,
2596
+ position: "absolute",
2597
+ top: "50%",
2598
+ left: "50%",
2599
+ transform: "translate(-50%, -50%)"
2600
+ })), $n = M(ko, {
2601
+ name: "MuiClock",
2602
+ slot: "AmButton",
2603
+ overridesResolver: (o, t) => t.amButton
2604
+ })(({
2605
+ theme: o,
2606
+ ownerState: t
2607
+ }) => u({
2608
+ zIndex: 1,
2609
+ position: "absolute",
2610
+ bottom: 8,
2611
+ left: 8
2612
+ }, t.meridiemMode === "am" && {
2613
+ backgroundColor: (o.vars || o).palette.primary.main,
2614
+ color: (o.vars || o).palette.primary.contrastText,
2615
+ "&:hover": {
2616
+ backgroundColor: (o.vars || o).palette.primary.light
2617
+ }
2618
+ })), En = M(ko, {
2619
+ name: "MuiClock",
2620
+ slot: "PmButton",
2621
+ overridesResolver: (o, t) => t.pmButton
2622
+ })(({
2623
+ theme: o,
2624
+ ownerState: t
2625
+ }) => u({
2626
+ zIndex: 1,
2627
+ position: "absolute",
2628
+ bottom: 8,
2629
+ right: 8
2630
+ }, t.meridiemMode === "pm" && {
2631
+ backgroundColor: (o.vars || o).palette.primary.main,
2632
+ color: (o.vars || o).palette.primary.contrastText,
2633
+ "&:hover": {
2634
+ backgroundColor: (o.vars || o).palette.primary.light
2635
+ }
2636
+ }));
2637
+ function _n(o) {
2638
+ const t = Z({
2639
+ props: o,
2640
+ name: "MuiClock"
2641
+ }), {
2642
+ ampm: s,
2643
+ ampmInClock: r,
2644
+ autoFocus: a,
2645
+ children: n,
2646
+ value: l,
2647
+ handleMeridiemChange: i,
2648
+ isTimeDisabled: c,
2649
+ meridiemMode: d,
2650
+ minutesStep: v = 1,
2651
+ onChange: p,
2652
+ selectedId: h,
2653
+ type: T,
2654
+ viewValue: D,
2655
+ disabled: m,
2656
+ readOnly: C,
2657
+ className: I
2658
+ } = t, S = t, F = Ee(), N = Ne(), R = f.useRef(!1), x = On(S), B = c(D, T), E = !s && T === "hours" && (D < 1 || D > 12), V = (P, de) => {
2659
+ m || C || c(P, T) || p(P, de);
2660
+ }, W = (P, de) => {
2661
+ let {
2662
+ offsetX: me,
2663
+ offsetY: q
2664
+ } = P;
2665
+ if (me === void 0) {
2666
+ const ee = P.target.getBoundingClientRect();
2667
+ me = P.changedTouches[0].clientX - ee.left, q = P.changedTouches[0].clientY - ee.top;
2668
+ }
2669
+ const we = T === "seconds" || T === "minutes" ? Cn(me, q, v) : xn(me, q, !!s);
2670
+ V(we, de);
2671
+ }, _ = (P) => {
2672
+ R.current = !0, W(P, "shallow");
2673
+ }, L = (P) => {
2674
+ R.current && (W(P, "finish"), R.current = !1);
2675
+ }, ae = (P) => {
2676
+ P.buttons > 0 && W(P.nativeEvent, "shallow");
2677
+ }, re = (P) => {
2678
+ R.current && (R.current = !1), W(P.nativeEvent, "finish");
2679
+ }, ce = f.useMemo(() => T === "hours" ? !0 : D % 5 === 0, [T, D]), ue = T === "minutes" ? v : 1, Q = f.useRef(null);
2680
+ Tt(() => {
2681
+ a && Q.current.focus();
2682
+ }, [a]);
2683
+ const le = (P) => {
2684
+ if (!R.current)
2685
+ switch (P.key) {
2686
+ case "Home":
2687
+ V(0, "partial"), P.preventDefault();
2688
+ break;
2689
+ case "End":
2690
+ V(T === "minutes" ? 59 : 23, "partial"), P.preventDefault();
2691
+ break;
2692
+ case "ArrowUp":
2693
+ V(D + ue, "partial"), P.preventDefault();
2694
+ break;
2695
+ case "ArrowDown":
2696
+ V(D - ue, "partial"), P.preventDefault();
2697
+ break;
2698
+ }
2699
+ };
2700
+ return /* @__PURE__ */ A(Nn, {
2701
+ className: Oe(I, x.root),
2702
+ children: [/* @__PURE__ */ A(In, {
2703
+ className: x.clock,
2704
+ children: [/* @__PURE__ */ y(Bn, {
2705
+ onTouchMove: _,
2706
+ onTouchEnd: L,
2707
+ onMouseUp: re,
2708
+ onMouseMove: ae,
2709
+ ownerState: {
2710
+ disabled: m
2711
+ },
2712
+ className: x.squareMask
2713
+ }), !B && /* @__PURE__ */ A(f.Fragment, {
2714
+ children: [/* @__PURE__ */ y(Vn, {
2715
+ className: x.pin
2716
+ }), l != null && /* @__PURE__ */ y(Mn, {
2717
+ type: T,
2718
+ viewValue: D,
2719
+ isInner: E,
2720
+ hasSelected: ce
2721
+ })]
2722
+ }), /* @__PURE__ */ y(Fn, {
2723
+ "aria-activedescendant": h,
2724
+ "aria-label": N.clockLabelText(T, l, F),
2725
+ ref: Q,
2726
+ role: "listbox",
2727
+ onKeyDown: le,
2728
+ tabIndex: 0,
2729
+ className: x.wrapper,
2730
+ children: n
2731
+ })]
2732
+ }), s && r && /* @__PURE__ */ A(f.Fragment, {
2733
+ children: [/* @__PURE__ */ y($n, {
2734
+ onClick: C ? void 0 : () => i("am"),
2735
+ disabled: m || d === null,
2736
+ ownerState: S,
2737
+ className: x.amButton,
2738
+ children: /* @__PURE__ */ y(Qe, {
2739
+ variant: "caption",
2740
+ children: "AM"
2741
+ })
2742
+ }), /* @__PURE__ */ y(En, {
2743
+ disabled: m || d === null,
2744
+ onClick: C ? void 0 : () => i("pm"),
2745
+ ownerState: S,
2746
+ className: x.pmButton,
2747
+ children: /* @__PURE__ */ y(Qe, {
2748
+ variant: "caption",
2749
+ children: "PM"
2750
+ })
2751
+ })]
2752
+ })]
2753
+ });
2754
+ }
2755
+ function Ln(o) {
2756
+ return se("MuiClockNumber", o);
2757
+ }
2758
+ const Ae = ne("MuiClockNumber", ["root", "selected", "disabled"]), jn = ["className", "disabled", "index", "inner", "label", "selected"], Hn = (o) => {
2759
+ const {
2760
+ classes: t,
2761
+ selected: s,
2762
+ disabled: r
2763
+ } = o;
2764
+ return te({
2765
+ root: ["root", s && "selected", r && "disabled"]
2766
+ }, Ln, t);
2767
+ }, Wn = M("span", {
2768
+ name: "MuiClockNumber",
2769
+ slot: "Root",
2770
+ overridesResolver: (o, t) => [t.root, {
2771
+ [`&.${Ae.disabled}`]: t.disabled
2772
+ }, {
2773
+ [`&.${Ae.selected}`]: t.selected
2774
+ }]
2775
+ })(({
2776
+ theme: o,
2777
+ ownerState: t
2778
+ }) => u({
2779
+ height: he,
2780
+ width: he,
2781
+ position: "absolute",
2782
+ left: `calc((100% - ${he}px) / 2)`,
2783
+ display: "inline-flex",
2784
+ justifyContent: "center",
2785
+ alignItems: "center",
2786
+ borderRadius: "50%",
2787
+ color: (o.vars || o).palette.text.primary,
2788
+ fontFamily: o.typography.fontFamily,
2789
+ "&:focused": {
2790
+ backgroundColor: (o.vars || o).palette.background.paper
2791
+ },
2792
+ [`&.${Ae.selected}`]: {
2793
+ color: (o.vars || o).palette.primary.contrastText
2794
+ },
2795
+ [`&.${Ae.disabled}`]: {
2796
+ pointerEvents: "none",
2797
+ color: (o.vars || o).palette.text.disabled
2798
+ }
2799
+ }, t.inner && u({}, o.typography.body2, {
2800
+ color: (o.vars || o).palette.text.secondary
2801
+ })));
2802
+ function jo(o) {
2803
+ const t = Z({
2804
+ props: o,
2805
+ name: "MuiClockNumber"
2806
+ }), {
2807
+ className: s,
2808
+ disabled: r,
2809
+ index: a,
2810
+ inner: n,
2811
+ label: l,
2812
+ selected: i
2813
+ } = t, c = G(t, jn), d = t, v = Hn(d), p = a % 12 / 12 * Math.PI * 2 - Math.PI / 2, h = (Re - he - 2) / 2 * (n ? 0.65 : 1), T = Math.round(Math.cos(p) * h), D = Math.round(Math.sin(p) * h);
2814
+ return /* @__PURE__ */ y(Wn, u({
2815
+ className: Oe(s, v.root),
2816
+ "aria-disabled": r ? !0 : void 0,
2817
+ "aria-selected": i ? !0 : void 0,
2818
+ role: "option",
2819
+ style: {
2820
+ transform: `translate(${T}px, ${D + (Re - he) / 2}px`
2821
+ },
2822
+ ownerState: d
2823
+ }, c, {
2824
+ children: l
2825
+ }));
2826
+ }
2827
+ const An = ({
2828
+ ampm: o,
2829
+ value: t,
2830
+ getClockNumberText: s,
2831
+ isDisabled: r,
2832
+ selectedId: a,
2833
+ utils: n
2834
+ }) => {
2835
+ const l = t ? n.getHours(t) : null, i = [], c = o ? 1 : 0, d = o ? 12 : 23, v = (p) => l === null ? !1 : o ? p === 12 ? l === 12 || l === 0 : l === p || l - 12 === p : l === p;
2836
+ for (let p = c; p <= d; p += 1) {
2837
+ let h = p.toString();
2838
+ p === 0 && (h = "00");
2839
+ const T = !o && (p === 0 || p > 12);
2840
+ h = n.formatNumber(h);
2841
+ const D = v(p);
2842
+ i.push(/* @__PURE__ */ y(jo, {
2843
+ id: D ? a : void 0,
2844
+ index: p,
2845
+ inner: T,
2846
+ selected: D,
2847
+ disabled: r(p),
2848
+ label: h,
2849
+ "aria-label": s(h)
2850
+ }, p));
2851
+ }
2852
+ return i;
2853
+ }, bo = ({
2854
+ utils: o,
2855
+ value: t,
2856
+ isDisabled: s,
2857
+ getClockNumberText: r,
2858
+ selectedId: a
2859
+ }) => {
2860
+ const n = o.formatNumber;
2861
+ return [[5, n("05")], [10, n("10")], [15, n("15")], [20, n("20")], [25, n("25")], [30, n("30")], [35, n("35")], [40, n("40")], [45, n("45")], [50, n("50")], [55, n("55")], [0, n("00")]].map(([l, i], c) => {
2862
+ const d = l === t;
2863
+ return /* @__PURE__ */ y(jo, {
2864
+ label: i,
2865
+ id: d ? a : void 0,
2866
+ index: c + 1,
2867
+ inner: !1,
2868
+ disabled: s(l),
2869
+ selected: d,
2870
+ "aria-label": r(i)
2871
+ }, l);
2872
+ });
2873
+ }, zn = ["ampm", "ampmInClock", "autoFocus", "components", "componentsProps", "slots", "slotProps", "value", "disableIgnoringDatePartForTimeValidation", "maxTime", "minTime", "disableFuture", "disablePast", "minutesStep", "shouldDisableClock", "shouldDisableTime", "showViewSwitcher", "onChange", "defaultValue", "view", "views", "openTo", "onViewChange", "focusedView", "onFocusedViewChange", "className", "disabled", "readOnly"], qn = (o) => {
2874
+ const {
2875
+ classes: t
2876
+ } = o;
2877
+ return te({
2878
+ root: ["root"],
2879
+ arrowSwitcher: ["arrowSwitcher"]
2880
+ }, Tn, t);
2881
+ }, Un = M(at, {
2882
+ name: "MuiTimeClock",
2883
+ slot: "Root",
2884
+ overridesResolver: (o, t) => t.root
2885
+ })({
2886
+ display: "flex",
2887
+ flexDirection: "column",
2888
+ position: "relative"
2889
+ }), Yn = M(rt, {
2890
+ name: "MuiTimeClock",
2891
+ slot: "ArrowSwitcher",
2892
+ overridesResolver: (o, t) => t.arrowSwitcher
2893
+ })({
2894
+ position: "absolute",
2895
+ right: 12,
2896
+ top: 15
2897
+ }), Ho = /* @__PURE__ */ f.forwardRef(function(t, s) {
2898
+ const r = Ne(), a = lt(), n = Ee(), l = Z({
2899
+ props: t,
2900
+ name: "MuiTimeClock"
2901
+ }), {
2902
+ ampm: i = n.is12HourCycleInCurrentLocale(),
2903
+ ampmInClock: c = !1,
2904
+ autoFocus: d,
2905
+ components: v,
2906
+ componentsProps: p,
2907
+ slots: h,
2908
+ slotProps: T,
2909
+ value: D,
2910
+ disableIgnoringDatePartForTimeValidation: m = !1,
2911
+ maxTime: C,
2912
+ minTime: I,
2913
+ disableFuture: S,
2914
+ disablePast: F,
2915
+ minutesStep: N = 1,
2916
+ shouldDisableClock: R,
2917
+ shouldDisableTime: x,
2918
+ showViewSwitcher: B,
2919
+ onChange: E,
2920
+ defaultValue: V,
2921
+ view: W,
2922
+ views: _ = ["hours", "minutes"],
2923
+ openTo: L,
2924
+ onViewChange: ae,
2925
+ focusedView: re,
2926
+ onFocusedViewChange: ce,
2927
+ className: ue,
2928
+ disabled: Q,
2929
+ readOnly: le
2930
+ } = l, P = G(l, zn), de = h ?? yo(v), me = T ?? p, [q, we] = Ct({
2931
+ name: "DateCalendar",
2932
+ state: "value",
2933
+ controlled: D,
2934
+ default: V ?? null
2935
+ }), ee = ze((j, H) => {
2936
+ we(j), E == null || E(j, H);
2937
+ }), {
2938
+ view: Ie,
2939
+ setView: Fe,
2940
+ previousView: _e,
2941
+ nextView: ge,
2942
+ setValueAndGoToNextView: K
2943
+ } = it({
2944
+ view: W,
2945
+ views: _,
2946
+ openTo: L,
2947
+ onViewChange: ae,
2948
+ onChange: ee,
2949
+ focusedView: re,
2950
+ onFocusedViewChange: ce
2951
+ }), $ = f.useMemo(() => q || n.setSeconds(n.setMinutes(n.setHours(a, 0), 0), 0), [q, a, n]), {
2952
+ meridiemMode: pe,
2953
+ handleMeridiemChange: ye
2954
+ } = go($, i, K), ie = f.useCallback((j, H) => {
2955
+ const U = ho(m, n), X = H === "hours" || H === "minutes" && _.includes("seconds"), ve = ({
2956
+ start: O,
2957
+ end: J
2958
+ }) => !(I && U(I, J) || C && U(O, C) || S && U(O, a) || F && U(a, X ? J : O)), De = (O, J = 1) => {
2959
+ if (O % J !== 0 || R != null && R(O, H))
2960
+ return !1;
2961
+ if (x)
2962
+ switch (H) {
2963
+ case "hours":
2964
+ return !x(n.setHours($, O), "hours");
2965
+ case "minutes":
2966
+ return !x(n.setMinutes($, O), "minutes");
2967
+ case "seconds":
2968
+ return !x(n.setSeconds($, O), "seconds");
2969
+ default:
2970
+ return !1;
2971
+ }
2972
+ return !0;
2973
+ };
2974
+ switch (H) {
2975
+ case "hours": {
2976
+ const O = no(j, pe, i), J = n.setHours($, O), Pe = n.setSeconds(n.setMinutes(J, 0), 0), Ve = n.setSeconds(n.setMinutes(J, 59), 59);
2977
+ return !ve({
2978
+ start: Pe,
2979
+ end: Ve
2980
+ }) || !De(O);
2981
+ }
2982
+ case "minutes": {
2983
+ const O = n.setMinutes($, j), J = n.setSeconds(O, 0), Pe = n.setSeconds(O, 59);
2984
+ return !ve({
2985
+ start: J,
2986
+ end: Pe
2987
+ }) || !De(j, N);
2988
+ }
2989
+ case "seconds": {
2990
+ const O = n.setSeconds($, j);
2991
+ return !ve({
2992
+ start: O,
2993
+ end: O
2994
+ }) || !De(j);
2995
+ }
2996
+ default:
2997
+ throw new Error("not supported");
2998
+ }
2999
+ }, [i, $, m, C, pe, I, N, R, x, n, S, F, a, _]), be = ft(), Le = f.useMemo(() => {
3000
+ switch (Ie) {
3001
+ case "hours": {
3002
+ const j = (H, U) => {
3003
+ const X = no(H, pe, i);
3004
+ K(n.setHours($, X), U);
3005
+ };
3006
+ return {
3007
+ onChange: j,
3008
+ viewValue: n.getHours($),
3009
+ children: An({
3010
+ value: q,
3011
+ utils: n,
3012
+ ampm: i,
3013
+ onChange: j,
3014
+ getClockNumberText: r.hoursClockNumberText,
3015
+ isDisabled: (H) => Q || ie(H, "hours"),
3016
+ selectedId: be
3017
+ })
3018
+ };
3019
+ }
3020
+ case "minutes": {
3021
+ const j = n.getMinutes($), H = (U, X) => {
3022
+ K(n.setMinutes($, U), X);
3023
+ };
3024
+ return {
3025
+ viewValue: j,
3026
+ onChange: H,
3027
+ children: bo({
3028
+ utils: n,
3029
+ value: j,
3030
+ onChange: H,
3031
+ getClockNumberText: r.minutesClockNumberText,
3032
+ isDisabled: (U) => Q || ie(U, "minutes"),
3033
+ selectedId: be
3034
+ })
3035
+ };
3036
+ }
3037
+ case "seconds": {
3038
+ const j = n.getSeconds($), H = (U, X) => {
3039
+ K(n.setSeconds($, U), X);
3040
+ };
3041
+ return {
3042
+ viewValue: j,
3043
+ onChange: H,
3044
+ children: bo({
3045
+ utils: n,
3046
+ value: j,
3047
+ onChange: H,
3048
+ getClockNumberText: r.secondsClockNumberText,
3049
+ isDisabled: (U) => Q || ie(U, "seconds"),
3050
+ selectedId: be
3051
+ })
3052
+ };
3053
+ }
3054
+ default:
3055
+ throw new Error("You must provide the type for ClockView");
3056
+ }
3057
+ }, [Ie, n, q, i, r.hoursClockNumberText, r.minutesClockNumberText, r.secondsClockNumberText, pe, K, $, ie, be, Q]), Be = l, je = qn(Be);
3058
+ return /* @__PURE__ */ A(Un, u({
3059
+ ref: s,
3060
+ className: Oe(je.root, ue),
3061
+ ownerState: Be
3062
+ }, P, {
3063
+ children: [/* @__PURE__ */ y(_n, u({
3064
+ autoFocus: d ?? !!re,
3065
+ ampmInClock: c && _.includes("hours"),
3066
+ value: q,
3067
+ type: Ie,
3068
+ ampm: i,
3069
+ minutesStep: N,
3070
+ isTimeDisabled: ie,
3071
+ meridiemMode: pe,
3072
+ handleMeridiemChange: ye,
3073
+ selectedId: be,
3074
+ disabled: Q,
3075
+ readOnly: le
3076
+ }, Le)), B && /* @__PURE__ */ y(Yn, {
3077
+ className: je.arrowSwitcher,
3078
+ slots: de,
3079
+ slotProps: me,
3080
+ onGoToPrevious: () => Fe(_e),
3081
+ isPreviousDisabled: !_e,
3082
+ previousLabel: r.openPreviousView,
3083
+ onGoToNext: () => Fe(ge),
3084
+ isNextDisabled: !ge,
3085
+ nextLabel: r.openNextView,
3086
+ ownerState: Be
3087
+ })]
3088
+ }));
3089
+ });
3090
+ process.env.NODE_ENV !== "production" && (Ho.propTypes = {
3091
+ // ----------------------------- Warning --------------------------------
3092
+ // | These PropTypes are generated from the TypeScript type definitions |
3093
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
3094
+ // ----------------------------------------------------------------------
3095
+ /**
3096
+ * 12h/24h view for hour selection clock.
3097
+ * @default `utils.is12HourCycleInCurrentLocale()`
3098
+ */
3099
+ ampm: e.bool,
3100
+ /**
3101
+ * Display ampm controls under the clock (instead of in the toolbar).
3102
+ * @default false
3103
+ */
3104
+ ampmInClock: e.bool,
3105
+ /**
3106
+ * If `true`, the main element is focused during the first mount.
3107
+ * This main element is:
3108
+ * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).
3109
+ * - the `input` element if there is a field rendered.
3110
+ */
3111
+ autoFocus: e.bool,
3112
+ /**
3113
+ * Override or extend the styles applied to the component.
3114
+ */
3115
+ classes: e.object,
3116
+ className: e.string,
3117
+ /**
3118
+ * Overridable components.
3119
+ * @default {}
3120
+ * @deprecated Please use `slots`.
3121
+ */
3122
+ components: e.object,
3123
+ /**
3124
+ * The props used for each component slot.
3125
+ * @default {}
3126
+ * @deprecated Please use `slotProps`.
3127
+ */
3128
+ componentsProps: e.object,
3129
+ /**
3130
+ * The default selected value.
3131
+ * Used when the component is not controlled.
3132
+ */
3133
+ defaultValue: e.any,
3134
+ /**
3135
+ * If `true`, the picker views and text field are disabled.
3136
+ * @default false
3137
+ */
3138
+ disabled: e.bool,
3139
+ /**
3140
+ * If `true`, disable values after the current date for date components, time for time components and both for date time components.
3141
+ * @default false
3142
+ */
3143
+ disableFuture: e.bool,
3144
+ /**
3145
+ * Do not ignore date part when validating min/max time.
3146
+ * @default false
3147
+ */
3148
+ disableIgnoringDatePartForTimeValidation: e.bool,
3149
+ /**
3150
+ * If `true`, disable values before the current date for date components, time for time components and both for date time components.
3151
+ * @default false
3152
+ */
3153
+ disablePast: e.bool,
3154
+ /**
3155
+ * Controlled focused view.
3156
+ */
3157
+ focusedView: e.oneOf(["hours", "minutes", "seconds"]),
3158
+ /**
3159
+ * Maximal selectable time.
3160
+ * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.
3161
+ */
3162
+ maxTime: e.any,
3163
+ /**
3164
+ * Minimal selectable time.
3165
+ * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.
3166
+ */
3167
+ minTime: e.any,
3168
+ /**
3169
+ * Step over minutes.
3170
+ * @default 1
3171
+ */
3172
+ minutesStep: e.number,
3173
+ /**
3174
+ * Callback fired when the value changes.
3175
+ * @template TDate
3176
+ * @param {TDate | null} value The new value.
3177
+ * @param {PickerSelectionState | undefined} selectionState Indicates if the date selection is complete.
3178
+ * @param {TView | undefined} selectedView Indicates the view in which the selection has been made.
3179
+ */
3180
+ onChange: e.func,
3181
+ /**
3182
+ * Callback fired on focused view change.
3183
+ * @template TView
3184
+ * @param {TView} view The new view to focus or not.
3185
+ * @param {boolean} hasFocus `true` if the view should be focused.
3186
+ */
3187
+ onFocusedViewChange: e.func,
3188
+ /**
3189
+ * Callback fired on view change.
3190
+ * @template TView
3191
+ * @param {TView} view The new view.
3192
+ */
3193
+ onViewChange: e.func,
3194
+ /**
3195
+ * The default visible view.
3196
+ * Used when the component view is not controlled.
3197
+ * Must be a valid option from `views` list.
3198
+ */
3199
+ openTo: e.oneOf(["hours", "minutes", "seconds"]),
3200
+ /**
3201
+ * If `true`, the picker views and text field are read-only.
3202
+ * @default false
3203
+ */
3204
+ readOnly: e.bool,
3205
+ /**
3206
+ * Disable specific clock time.
3207
+ * @param {number} clockValue The value to check.
3208
+ * @param {TimeView} view The clock type of the timeValue.
3209
+ * @returns {boolean} If `true` the time will be disabled.
3210
+ * @deprecated Consider using `shouldDisableTime`.
3211
+ */
3212
+ shouldDisableClock: e.func,
3213
+ /**
3214
+ * Disable specific time.
3215
+ * @template TDate
3216
+ * @param {TDate} value The value to check.
3217
+ * @param {TimeView} view The clock type of the timeValue.
3218
+ * @returns {boolean} If `true` the time will be disabled.
3219
+ */
3220
+ shouldDisableTime: e.func,
3221
+ showViewSwitcher: e.bool,
3222
+ /**
3223
+ * The props used for each component slot.
3224
+ * @default {}
3225
+ */
3226
+ slotProps: e.object,
3227
+ /**
3228
+ * Overridable component slots.
3229
+ * @default {}
3230
+ */
3231
+ slots: e.object,
3232
+ /**
3233
+ * The system prop that allows defining system overrides as well as additional CSS styles.
3234
+ */
3235
+ sx: e.oneOfType([e.arrayOf(e.oneOfType([e.func, e.object, e.bool])), e.func, e.object]),
3236
+ /**
3237
+ * The selected value.
3238
+ * Used when the component is controlled.
3239
+ */
3240
+ value: e.any,
3241
+ /**
3242
+ * The visible view.
3243
+ * Used when the component view is controlled.
3244
+ * Must be a valid option from `views` list.
3245
+ */
3246
+ view: e.oneOf(["hours", "minutes", "seconds"]),
3247
+ /**
3248
+ * Available views.
3249
+ */
3250
+ views: e.arrayOf(e.oneOf(["hours", "minutes", "seconds"]).isRequired)
3251
+ });
3252
+ const Xe = ({
3253
+ view: o,
3254
+ onViewChange: t,
3255
+ focusedView: s,
3256
+ onFocusedViewChange: r,
3257
+ views: a,
3258
+ value: n,
3259
+ defaultValue: l,
3260
+ onChange: i,
3261
+ className: c,
3262
+ classes: d,
3263
+ disableFuture: v,
3264
+ disablePast: p,
3265
+ minTime: h,
3266
+ maxTime: T,
3267
+ shouldDisableTime: D,
3268
+ shouldDisableClock: m,
3269
+ minutesStep: C,
3270
+ ampm: I,
3271
+ ampmInClock: S,
3272
+ components: F,
3273
+ componentsProps: N,
3274
+ slots: R,
3275
+ slotProps: x,
3276
+ readOnly: B,
3277
+ disabled: E,
3278
+ sx: V,
3279
+ autoFocus: W,
3280
+ showViewSwitcher: _,
3281
+ disableIgnoringDatePartForTimeValidation: L
3282
+ }) => /* @__PURE__ */ y(Ho, {
3283
+ view: o,
3284
+ onViewChange: t,
3285
+ focusedView: s,
3286
+ onFocusedViewChange: r,
3287
+ views: a.filter(ct),
3288
+ value: n,
3289
+ defaultValue: l,
3290
+ onChange: i,
3291
+ className: c,
3292
+ classes: d,
3293
+ disableFuture: v,
3294
+ disablePast: p,
3295
+ minTime: h,
3296
+ maxTime: T,
3297
+ shouldDisableTime: D,
3298
+ shouldDisableClock: m,
3299
+ minutesStep: C,
3300
+ ampm: I,
3301
+ ampmInClock: S,
3302
+ components: F,
3303
+ componentsProps: N,
3304
+ slots: R,
3305
+ slotProps: x,
3306
+ readOnly: B,
3307
+ disabled: E,
3308
+ sx: V,
3309
+ autoFocus: W,
3310
+ showViewSwitcher: _,
3311
+ disableIgnoringDatePartForTimeValidation: L
3312
+ }), Wo = /* @__PURE__ */ f.forwardRef(function(t, s) {
3313
+ var r, a, n;
3314
+ const l = Ne(), i = $o(t, "MuiMobileDateTimePicker"), c = u({
3315
+ day: Me,
3316
+ month: Me,
3317
+ year: Me,
3318
+ hours: Xe,
3319
+ minutes: Xe,
3320
+ seconds: Xe
3321
+ }, i.viewRenderers), d = (r = i.ampmInClock) != null ? r : !1, v = u({}, i, {
3322
+ viewRenderers: c,
3323
+ ampmInClock: d,
3324
+ slots: u({
3325
+ field: to
3326
+ }, i.slots),
3327
+ slotProps: u({}, i.slotProps, {
3328
+ field: (h) => {
3329
+ var T;
3330
+ return u({}, vo((T = i.slotProps) == null ? void 0 : T.field, h), Co(i), {
3331
+ ref: s,
3332
+ ampm: i.ampm
3333
+ });
3334
+ },
3335
+ toolbar: u({
3336
+ hidden: !1,
3337
+ ampmInClock: d
3338
+ }, (a = i.slotProps) == null ? void 0 : a.toolbar),
3339
+ tabs: u({
3340
+ hidden: !1
3341
+ }, (n = i.slotProps) == null ? void 0 : n.tabs)
3342
+ })
3343
+ }), {
3344
+ renderPicker: p
3345
+ } = ut({
3346
+ props: v,
3347
+ valueManager: Je,
3348
+ valueType: "date-time",
3349
+ getOpenDialogAriaText: l.openDatePickerDialogue,
3350
+ validator: oo
3351
+ });
3352
+ return p();
3353
+ });
3354
+ Wo.propTypes = {
3355
+ // ----------------------------- Warning --------------------------------
3356
+ // | These PropTypes are generated from the TypeScript type definitions |
3357
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
3358
+ // ----------------------------------------------------------------------
3359
+ /**
3360
+ * 12h/24h view for hour selection clock.
3361
+ * @default `utils.is12HourCycleInCurrentLocale()`
3362
+ */
3363
+ ampm: e.bool,
3364
+ /**
3365
+ * Display ampm controls under the clock (instead of in the toolbar).
3366
+ * @default true on desktop, false on mobile
3367
+ */
3368
+ ampmInClock: e.bool,
3369
+ /**
3370
+ * If `true`, the main element is focused during the first mount.
3371
+ * This main element is:
3372
+ * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).
3373
+ * - the `input` element if there is a field rendered.
3374
+ */
3375
+ autoFocus: e.bool,
3376
+ /**
3377
+ * Class name applied to the root element.
3378
+ */
3379
+ className: e.string,
3380
+ /**
3381
+ * If `true`, the popover or modal will close after submitting the full date.
3382
+ * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
3383
+ */
3384
+ closeOnSelect: e.bool,
3385
+ /**
3386
+ * Overridable components.
3387
+ * @default {}
3388
+ * @deprecated Please use `slots`.
3389
+ */
3390
+ components: e.object,
3391
+ /**
3392
+ * The props used for each component slot.
3393
+ * @default {}
3394
+ * @deprecated Please use `slotProps`.
3395
+ */
3396
+ componentsProps: e.object,
3397
+ /**
3398
+ * Formats the day of week displayed in the calendar header.
3399
+ * @param {string} day The day of week provided by the adapter's method `getWeekdays`.
3400
+ * @returns {string} The name to display.
3401
+ * @default (day) => day.charAt(0).toUpperCase()
3402
+ */
3403
+ dayOfWeekFormatter: e.func,
3404
+ /**
3405
+ * Default calendar month displayed when `value={null}`.
3406
+ */
3407
+ defaultCalendarMonth: e.any,
3408
+ /**
3409
+ * The default value.
3410
+ * Used when the component is not controlled.
3411
+ */
3412
+ defaultValue: e.any,
3413
+ /**
3414
+ * If `true`, the picker and text field are disabled.
3415
+ * @default false
3416
+ */
3417
+ disabled: e.bool,
3418
+ /**
3419
+ * If `true`, disable values after the current date for date components, time for time components and both for date time components.
3420
+ * @default false
3421
+ */
3422
+ disableFuture: e.bool,
3423
+ /**
3424
+ * If `true`, today's date is rendering without highlighting with circle.
3425
+ * @default false
3426
+ */
3427
+ disableHighlightToday: e.bool,
3428
+ /**
3429
+ * Do not ignore date part when validating min/max time.
3430
+ * @default false
3431
+ */
3432
+ disableIgnoringDatePartForTimeValidation: e.bool,
3433
+ /**
3434
+ * If `true`, the open picker button will not be rendered (renders only the field).
3435
+ * @default false
3436
+ */
3437
+ disableOpenPicker: e.bool,
3438
+ /**
3439
+ * If `true`, disable values before the current date for date components, time for time components and both for date time components.
3440
+ * @default false
3441
+ */
3442
+ disablePast: e.bool,
3443
+ /**
3444
+ * If `true`, the week number will be display in the calendar.
3445
+ */
3446
+ displayWeekNumber: e.bool,
3447
+ /**
3448
+ * Calendar will show more weeks in order to match this value.
3449
+ * Put it to 6 for having fix number of week in Gregorian calendars
3450
+ * @default undefined
3451
+ */
3452
+ fixedWeekNumber: e.number,
3453
+ /**
3454
+ * Format of the date when rendered in the input(s).
3455
+ * Defaults to localized format based on the used `views`.
3456
+ */
3457
+ format: e.string,
3458
+ /**
3459
+ * Density of the format when rendered in the input.
3460
+ * Setting `formatDensity` to `"spacious"` will add a space before and after each `/`, `-` and `.` character.
3461
+ * @default "dense"
3462
+ */
3463
+ formatDensity: e.oneOf(["dense", "spacious"]),
3464
+ /**
3465
+ * Pass a ref to the `input` element.
3466
+ */
3467
+ inputRef: e.oneOfType([e.func, e.shape({
3468
+ current: e.object
3469
+ })]),
3470
+ /**
3471
+ * The label content.
3472
+ */
3473
+ label: e.node,
3474
+ /**
3475
+ * If `true`, calls `renderLoading` instead of rendering the day calendar.
3476
+ * Can be used to preload information and show it in calendar.
3477
+ * @default false
3478
+ */
3479
+ loading: e.bool,
3480
+ /**
3481
+ * Locale for components texts.
3482
+ * Allows overriding texts coming from `LocalizationProvider` and `theme`.
3483
+ */
3484
+ localeText: e.object,
3485
+ /**
3486
+ * Maximal selectable date.
3487
+ */
3488
+ maxDate: e.any,
3489
+ /**
3490
+ * Maximal selectable moment of time with binding to date, to set max time in each day use `maxTime`.
3491
+ */
3492
+ maxDateTime: e.any,
3493
+ /**
3494
+ * Maximal selectable time.
3495
+ * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.
3496
+ */
3497
+ maxTime: e.any,
3498
+ /**
3499
+ * Minimal selectable date.
3500
+ */
3501
+ minDate: e.any,
3502
+ /**
3503
+ * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.
3504
+ */
3505
+ minDateTime: e.any,
3506
+ /**
3507
+ * Minimal selectable time.
3508
+ * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.
3509
+ */
3510
+ minTime: e.any,
3511
+ /**
3512
+ * Step over minutes.
3513
+ * @default 1
3514
+ */
3515
+ minutesStep: e.number,
3516
+ /**
3517
+ * Months rendered per row.
3518
+ * @default 3
3519
+ */
3520
+ monthsPerRow: e.oneOf([3, 4]),
3521
+ /**
3522
+ * Callback fired when the value is accepted.
3523
+ * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
3524
+ * @param {TValue} value The value that was just accepted.
3525
+ */
3526
+ onAccept: e.func,
3527
+ /**
3528
+ * Callback fired when the value changes.
3529
+ * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
3530
+ * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
3531
+ * @param {TValue} value The new value.
3532
+ * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.
3533
+ */
3534
+ onChange: e.func,
3535
+ /**
3536
+ * Callback fired when the popup requests to be closed.
3537
+ * Use in controlled mode (see `open`).
3538
+ */
3539
+ onClose: e.func,
3540
+ /**
3541
+ * Callback fired when the error associated to the current value changes.
3542
+ * If the error has a non-null value, then the `TextField` will be rendered in `error` state.
3543
+ *
3544
+ * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
3545
+ * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
3546
+ * @param {TError} error The new error describing why the current value is not valid.
3547
+ * @param {TValue} value The value associated to the error.
3548
+ */
3549
+ onError: e.func,
3550
+ /**
3551
+ * Callback fired on month change.
3552
+ * @template TDate
3553
+ * @param {TDate} month The new month.
3554
+ */
3555
+ onMonthChange: e.func,
3556
+ /**
3557
+ * Callback fired when the popup requests to be opened.
3558
+ * Use in controlled mode (see `open`).
3559
+ */
3560
+ onOpen: e.func,
3561
+ /**
3562
+ * Callback fired when the selected sections change.
3563
+ * @param {FieldSelectedSections} newValue The new selected sections.
3564
+ */
3565
+ onSelectedSectionsChange: e.func,
3566
+ /**
3567
+ * Callback fired on view change.
3568
+ * @template TView
3569
+ * @param {TView} view The new view.
3570
+ */
3571
+ onViewChange: e.func,
3572
+ /**
3573
+ * Callback fired on year change.
3574
+ * @template TDate
3575
+ * @param {TDate} year The new year.
3576
+ */
3577
+ onYearChange: e.func,
3578
+ /**
3579
+ * Control the popup or dialog open state.
3580
+ * @default false
3581
+ */
3582
+ open: e.bool,
3583
+ /**
3584
+ * The default visible view.
3585
+ * Used when the component view is not controlled.
3586
+ * Must be a valid option from `views` list.
3587
+ */
3588
+ openTo: e.oneOf(["day", "hours", "minutes", "month", "seconds", "year"]),
3589
+ /**
3590
+ * Force rendering in particular orientation.
3591
+ */
3592
+ orientation: e.oneOf(["landscape", "portrait"]),
3593
+ readOnly: e.bool,
3594
+ /**
3595
+ * Disable heavy animations.
3596
+ * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)
3597
+ */
3598
+ reduceAnimations: e.bool,
3599
+ /**
3600
+ * Component displaying when passed `loading` true.
3601
+ * @returns {React.ReactNode} The node to render when loading.
3602
+ * @default () => <span data-mui-test="loading-progress">...</span>
3603
+ */
3604
+ renderLoading: e.func,
3605
+ /**
3606
+ * The currently selected sections.
3607
+ * This prop accept four formats:
3608
+ * 1. If a number is provided, the section at this index will be selected.
3609
+ * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.
3610
+ * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.
3611
+ * 4. If `null` is provided, no section will be selected
3612
+ * If not provided, the selected sections will be handled internally.
3613
+ */
3614
+ selectedSections: e.oneOfType([e.oneOf(["all", "day", "hours", "meridiem", "minutes", "month", "seconds", "weekDay", "year"]), e.number, e.shape({
3615
+ endIndex: e.number.isRequired,
3616
+ startIndex: e.number.isRequired
3617
+ })]),
3618
+ /**
3619
+ * Disable specific clock time.
3620
+ * @param {number} clockValue The value to check.
3621
+ * @param {TimeView} view The clock type of the timeValue.
3622
+ * @returns {boolean} If `true` the time will be disabled.
3623
+ * @deprecated Consider using `shouldDisableTime`.
3624
+ */
3625
+ shouldDisableClock: e.func,
3626
+ /**
3627
+ * Disable specific date.
3628
+ * @template TDate
3629
+ * @param {TDate} day The date to test.
3630
+ * @returns {boolean} If `true` the date will be disabled.
3631
+ */
3632
+ shouldDisableDate: e.func,
3633
+ /**
3634
+ * Disable specific month.
3635
+ * @template TDate
3636
+ * @param {TDate} month The month to test.
3637
+ * @returns {boolean} If `true`, the month will be disabled.
3638
+ */
3639
+ shouldDisableMonth: e.func,
3640
+ /**
3641
+ * Disable specific time.
3642
+ * @template TDate
3643
+ * @param {TDate} value The value to check.
3644
+ * @param {TimeView} view The clock type of the timeValue.
3645
+ * @returns {boolean} If `true` the time will be disabled.
3646
+ */
3647
+ shouldDisableTime: e.func,
3648
+ /**
3649
+ * Disable specific year.
3650
+ * @template TDate
3651
+ * @param {TDate} year The year to test.
3652
+ * @returns {boolean} If `true`, the year will be disabled.
3653
+ */
3654
+ shouldDisableYear: e.func,
3655
+ /**
3656
+ * If `true`, days outside the current month are rendered:
3657
+ *
3658
+ * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.
3659
+ *
3660
+ * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.
3661
+ *
3662
+ * - ignored if `calendars` equals more than `1` on range pickers.
3663
+ * @default false
3664
+ */
3665
+ showDaysOutsideCurrentMonth: e.bool,
3666
+ /**
3667
+ * The props used for each component slot.
3668
+ * @default {}
3669
+ */
3670
+ slotProps: e.object,
3671
+ /**
3672
+ * Overridable component slots.
3673
+ * @default {}
3674
+ */
3675
+ slots: e.object,
3676
+ /**
3677
+ * The system prop that allows defining system overrides as well as additional CSS styles.
3678
+ */
3679
+ sx: e.oneOfType([e.arrayOf(e.oneOfType([e.func, e.object, e.bool])), e.func, e.object]),
3680
+ /**
3681
+ * The selected value.
3682
+ * Used when the component is controlled.
3683
+ */
3684
+ value: e.any,
3685
+ /**
3686
+ * The visible view.
3687
+ * Used when the component view is controlled.
3688
+ * Must be a valid option from `views` list.
3689
+ */
3690
+ view: e.oneOf(["day", "hours", "minutes", "month", "seconds", "year"]),
3691
+ /**
3692
+ * Define custom view renderers for each section.
3693
+ * If `null`, the section will only have field editing.
3694
+ * If `undefined`, internally defined view will be the used.
3695
+ */
3696
+ viewRenderers: e.shape({
3697
+ day: e.func,
3698
+ hours: e.func,
3699
+ minutes: e.func,
3700
+ month: e.func,
3701
+ seconds: e.func,
3702
+ year: e.func
3703
+ }),
3704
+ /**
3705
+ * Available views.
3706
+ */
3707
+ views: e.arrayOf(e.oneOf(["day", "hours", "minutes", "month", "seconds", "year"]).isRequired),
3708
+ /**
3709
+ * Years rendered per row.
3710
+ * @default 3
3711
+ */
3712
+ yearsPerRow: e.oneOf([3, 4])
3713
+ };
3714
+ const Kn = ["desktopModeMediaQuery"], Ao = /* @__PURE__ */ f.forwardRef(function(t, s) {
3715
+ const r = Z({
3716
+ props: t,
3717
+ name: "MuiDateTimePicker"
3718
+ }), {
3719
+ desktopModeMediaQuery: a = mt
3720
+ } = r, n = G(r, Kn);
3721
+ return dt(a, {
3722
+ defaultMatches: !0
3723
+ }) ? /* @__PURE__ */ y(Eo, u({
3724
+ ref: s
3725
+ }, n)) : /* @__PURE__ */ y(Wo, u({
3726
+ ref: s
3727
+ }, n));
3728
+ });
3729
+ process.env.NODE_ENV !== "production" && (Ao.propTypes = {
3730
+ // ----------------------------- Warning --------------------------------
3731
+ // | These PropTypes are generated from the TypeScript type definitions |
3732
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
3733
+ // ----------------------------------------------------------------------
3734
+ /**
3735
+ * 12h/24h view for hour selection clock.
3736
+ * @default `utils.is12HourCycleInCurrentLocale()`
3737
+ */
3738
+ ampm: e.bool,
3739
+ /**
3740
+ * Display ampm controls under the clock (instead of in the toolbar).
3741
+ * @default true on desktop, false on mobile
3742
+ */
3743
+ ampmInClock: e.bool,
3744
+ /**
3745
+ * If `true`, the main element is focused during the first mount.
3746
+ * This main element is:
3747
+ * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).
3748
+ * - the `input` element if there is a field rendered.
3749
+ */
3750
+ autoFocus: e.bool,
3751
+ /**
3752
+ * Class name applied to the root element.
3753
+ */
3754
+ className: e.string,
3755
+ /**
3756
+ * If `true`, the popover or modal will close after submitting the full date.
3757
+ * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
3758
+ */
3759
+ closeOnSelect: e.bool,
3760
+ /**
3761
+ * Overridable components.
3762
+ * @default {}
3763
+ * @deprecated Please use `slots`.
3764
+ */
3765
+ components: e.object,
3766
+ /**
3767
+ * The props used for each component slot.
3768
+ * @default {}
3769
+ * @deprecated Please use `slotProps`.
3770
+ */
3771
+ componentsProps: e.object,
3772
+ /**
3773
+ * Formats the day of week displayed in the calendar header.
3774
+ * @param {string} day The day of week provided by the adapter's method `getWeekdays`.
3775
+ * @returns {string} The name to display.
3776
+ * @default (day) => day.charAt(0).toUpperCase()
3777
+ */
3778
+ dayOfWeekFormatter: e.func,
3779
+ /**
3780
+ * Default calendar month displayed when `value={null}`.
3781
+ */
3782
+ defaultCalendarMonth: e.any,
3783
+ /**
3784
+ * The default value.
3785
+ * Used when the component is not controlled.
3786
+ */
3787
+ defaultValue: e.any,
3788
+ /**
3789
+ * CSS media query when `Mobile` mode will be changed to `Desktop`.
3790
+ * @default '@media (pointer: fine)'
3791
+ * @example '@media (min-width: 720px)' or theme.breakpoints.up("sm")
3792
+ */
3793
+ desktopModeMediaQuery: e.string,
3794
+ /**
3795
+ * If `true`, the picker and text field are disabled.
3796
+ * @default false
3797
+ */
3798
+ disabled: e.bool,
3799
+ /**
3800
+ * If `true`, disable values after the current date for date components, time for time components and both for date time components.
3801
+ * @default false
3802
+ */
3803
+ disableFuture: e.bool,
3804
+ /**
3805
+ * If `true`, today's date is rendering without highlighting with circle.
3806
+ * @default false
3807
+ */
3808
+ disableHighlightToday: e.bool,
3809
+ /**
3810
+ * Do not ignore date part when validating min/max time.
3811
+ * @default false
3812
+ */
3813
+ disableIgnoringDatePartForTimeValidation: e.bool,
3814
+ /**
3815
+ * If `true`, the open picker button will not be rendered (renders only the field).
3816
+ * @default false
3817
+ */
3818
+ disableOpenPicker: e.bool,
3819
+ /**
3820
+ * If `true`, disable values before the current date for date components, time for time components and both for date time components.
3821
+ * @default false
3822
+ */
3823
+ disablePast: e.bool,
3824
+ /**
3825
+ * If `true`, the week number will be display in the calendar.
3826
+ */
3827
+ displayWeekNumber: e.bool,
3828
+ /**
3829
+ * Calendar will show more weeks in order to match this value.
3830
+ * Put it to 6 for having fix number of week in Gregorian calendars
3831
+ * @default undefined
3832
+ */
3833
+ fixedWeekNumber: e.number,
3834
+ /**
3835
+ * Format of the date when rendered in the input(s).
3836
+ * Defaults to localized format based on the used `views`.
3837
+ */
3838
+ format: e.string,
3839
+ /**
3840
+ * Density of the format when rendered in the input.
3841
+ * Setting `formatDensity` to `"spacious"` will add a space before and after each `/`, `-` and `.` character.
3842
+ * @default "dense"
3843
+ */
3844
+ formatDensity: e.oneOf(["dense", "spacious"]),
3845
+ /**
3846
+ * Pass a ref to the `input` element.
3847
+ */
3848
+ inputRef: e.oneOfType([e.func, e.shape({
3849
+ current: e.object
3850
+ })]),
3851
+ /**
3852
+ * The label content.
3853
+ */
3854
+ label: e.node,
3855
+ /**
3856
+ * If `true`, calls `renderLoading` instead of rendering the day calendar.
3857
+ * Can be used to preload information and show it in calendar.
3858
+ * @default false
3859
+ */
3860
+ loading: e.bool,
3861
+ /**
3862
+ * Locale for components texts.
3863
+ * Allows overriding texts coming from `LocalizationProvider` and `theme`.
3864
+ */
3865
+ localeText: e.object,
3866
+ /**
3867
+ * Maximal selectable date.
3868
+ */
3869
+ maxDate: e.any,
3870
+ /**
3871
+ * Maximal selectable moment of time with binding to date, to set max time in each day use `maxTime`.
3872
+ */
3873
+ maxDateTime: e.any,
3874
+ /**
3875
+ * Maximal selectable time.
3876
+ * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.
3877
+ */
3878
+ maxTime: e.any,
3879
+ /**
3880
+ * Minimal selectable date.
3881
+ */
3882
+ minDate: e.any,
3883
+ /**
3884
+ * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.
3885
+ */
3886
+ minDateTime: e.any,
3887
+ /**
3888
+ * Minimal selectable time.
3889
+ * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.
3890
+ */
3891
+ minTime: e.any,
3892
+ /**
3893
+ * Step over minutes.
3894
+ * @default 1
3895
+ */
3896
+ minutesStep: e.number,
3897
+ /**
3898
+ * Months rendered per row.
3899
+ * @default 3
3900
+ */
3901
+ monthsPerRow: e.oneOf([3, 4]),
3902
+ /**
3903
+ * Callback fired when the value is accepted.
3904
+ * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
3905
+ * @param {TValue} value The value that was just accepted.
3906
+ */
3907
+ onAccept: e.func,
3908
+ /**
3909
+ * Callback fired when the value changes.
3910
+ * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
3911
+ * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
3912
+ * @param {TValue} value The new value.
3913
+ * @param {FieldChangeHandlerContext<TError>} context The context containing the validation result of the current value.
3914
+ */
3915
+ onChange: e.func,
3916
+ /**
3917
+ * Callback fired when the popup requests to be closed.
3918
+ * Use in controlled mode (see `open`).
3919
+ */
3920
+ onClose: e.func,
3921
+ /**
3922
+ * Callback fired when the error associated to the current value changes.
3923
+ * If the error has a non-null value, then the `TextField` will be rendered in `error` state.
3924
+ *
3925
+ * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
3926
+ * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
3927
+ * @param {TError} error The new error describing why the current value is not valid.
3928
+ * @param {TValue} value The value associated to the error.
3929
+ */
3930
+ onError: e.func,
3931
+ /**
3932
+ * Callback fired on month change.
3933
+ * @template TDate
3934
+ * @param {TDate} month The new month.
3935
+ */
3936
+ onMonthChange: e.func,
3937
+ /**
3938
+ * Callback fired when the popup requests to be opened.
3939
+ * Use in controlled mode (see `open`).
3940
+ */
3941
+ onOpen: e.func,
3942
+ /**
3943
+ * Callback fired when the selected sections change.
3944
+ * @param {FieldSelectedSections} newValue The new selected sections.
3945
+ */
3946
+ onSelectedSectionsChange: e.func,
3947
+ /**
3948
+ * Callback fired on view change.
3949
+ * @template TView
3950
+ * @param {TView} view The new view.
3951
+ */
3952
+ onViewChange: e.func,
3953
+ /**
3954
+ * Callback fired on year change.
3955
+ * @template TDate
3956
+ * @param {TDate} year The new year.
3957
+ */
3958
+ onYearChange: e.func,
3959
+ /**
3960
+ * Control the popup or dialog open state.
3961
+ * @default false
3962
+ */
3963
+ open: e.bool,
3964
+ /**
3965
+ * The default visible view.
3966
+ * Used when the component view is not controlled.
3967
+ * Must be a valid option from `views` list.
3968
+ */
3969
+ openTo: e.oneOf(["day", "hours", "minutes", "month", "seconds", "year"]),
3970
+ /**
3971
+ * Force rendering in particular orientation.
3972
+ */
3973
+ orientation: e.oneOf(["landscape", "portrait"]),
3974
+ readOnly: e.bool,
3975
+ /**
3976
+ * Disable heavy animations.
3977
+ * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)
3978
+ */
3979
+ reduceAnimations: e.bool,
3980
+ /**
3981
+ * Component displaying when passed `loading` true.
3982
+ * @returns {React.ReactNode} The node to render when loading.
3983
+ * @default () => <span data-mui-test="loading-progress">...</span>
3984
+ */
3985
+ renderLoading: e.func,
3986
+ /**
3987
+ * The currently selected sections.
3988
+ * This prop accept four formats:
3989
+ * 1. If a number is provided, the section at this index will be selected.
3990
+ * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.
3991
+ * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.
3992
+ * 4. If `null` is provided, no section will be selected
3993
+ * If not provided, the selected sections will be handled internally.
3994
+ */
3995
+ selectedSections: e.oneOfType([e.oneOf(["all", "day", "hours", "meridiem", "minutes", "month", "seconds", "weekDay", "year"]), e.number, e.shape({
3996
+ endIndex: e.number.isRequired,
3997
+ startIndex: e.number.isRequired
3998
+ })]),
3999
+ /**
4000
+ * Disable specific clock time.
4001
+ * @param {number} clockValue The value to check.
4002
+ * @param {TimeView} view The clock type of the timeValue.
4003
+ * @returns {boolean} If `true` the time will be disabled.
4004
+ * @deprecated Consider using `shouldDisableTime`.
4005
+ */
4006
+ shouldDisableClock: e.func,
4007
+ /**
4008
+ * Disable specific date.
4009
+ * @template TDate
4010
+ * @param {TDate} day The date to test.
4011
+ * @returns {boolean} If `true` the date will be disabled.
4012
+ */
4013
+ shouldDisableDate: e.func,
4014
+ /**
4015
+ * Disable specific month.
4016
+ * @template TDate
4017
+ * @param {TDate} month The month to test.
4018
+ * @returns {boolean} If `true`, the month will be disabled.
4019
+ */
4020
+ shouldDisableMonth: e.func,
4021
+ /**
4022
+ * Disable specific time.
4023
+ * @template TDate
4024
+ * @param {TDate} value The value to check.
4025
+ * @param {TimeView} view The clock type of the timeValue.
4026
+ * @returns {boolean} If `true` the time will be disabled.
4027
+ */
4028
+ shouldDisableTime: e.func,
4029
+ /**
4030
+ * Disable specific year.
4031
+ * @template TDate
4032
+ * @param {TDate} year The year to test.
4033
+ * @returns {boolean} If `true`, the year will be disabled.
4034
+ */
4035
+ shouldDisableYear: e.func,
4036
+ /**
4037
+ * If `true`, days outside the current month are rendered:
4038
+ *
4039
+ * - if `fixedWeekNumber` is defined, renders days to have the weeks requested.
4040
+ *
4041
+ * - if `fixedWeekNumber` is not defined, renders day to fill the first and last week of the current month.
4042
+ *
4043
+ * - ignored if `calendars` equals more than `1` on range pickers.
4044
+ * @default false
4045
+ */
4046
+ showDaysOutsideCurrentMonth: e.bool,
4047
+ /**
4048
+ * The props used for each component slot.
4049
+ * @default {}
4050
+ */
4051
+ slotProps: e.object,
4052
+ /**
4053
+ * Overridable component slots.
4054
+ * @default {}
4055
+ */
4056
+ slots: e.object,
4057
+ /**
4058
+ * The system prop that allows defining system overrides as well as additional CSS styles.
4059
+ */
4060
+ sx: e.oneOfType([e.arrayOf(e.oneOfType([e.func, e.object, e.bool])), e.func, e.object]),
4061
+ /**
4062
+ * The selected value.
4063
+ * Used when the component is controlled.
4064
+ */
4065
+ value: e.any,
4066
+ /**
4067
+ * The visible view.
4068
+ * Used when the component view is controlled.
4069
+ * Must be a valid option from `views` list.
4070
+ */
4071
+ view: e.oneOf(["day", "hours", "minutes", "month", "seconds", "year"]),
4072
+ /**
4073
+ * Define custom view renderers for each section.
4074
+ * If `null`, the section will only have field editing.
4075
+ * If `undefined`, internally defined view will be the used.
4076
+ */
4077
+ viewRenderers: e.shape({
4078
+ day: e.func,
4079
+ hours: e.func,
4080
+ minutes: e.func,
4081
+ month: e.func,
4082
+ seconds: e.func,
4083
+ year: e.func
4084
+ }),
4085
+ /**
4086
+ * Available views.
4087
+ */
4088
+ views: e.arrayOf(e.oneOf(["day", "hours", "minutes", "month", "seconds", "year"]).isRequired),
4089
+ /**
4090
+ * Years rendered per row.
4091
+ * @default 4 on desktop, 3 on mobile
4092
+ */
4093
+ yearsPerRow: e.oneOf([3, 4])
4094
+ });
4095
+ const Xn = (o) => o !== "ownerState", hs = z(Te, {
4096
+ name: "HCRangeSelector",
4097
+ slot: "root",
4098
+ shouldForwardProp: Xn
4099
+ })({}), Ts = z(Te, {
4100
+ name: "HCRangeSelector",
4101
+ slot: "numberRow"
4102
+ })({
4103
+ display: "flex",
4104
+ width: "100%"
4105
+ }), gs = z(Te, {
4106
+ name: "HCRangeSelector",
4107
+ slot: "numberRangeRow"
4108
+ })({
4109
+ display: "flex",
4110
+ width: "100%"
4111
+ }), ys = z(Ye, {
4112
+ name: "HCRangeSelector",
4113
+ slot: "numberInput"
4114
+ })(({ theme: o }) => ({
4115
+ marginRight: o.spacing(0.25)
4116
+ })), vs = z(Ye, {
4117
+ name: "HCRangeSelector",
4118
+ slot: "numberInput"
4119
+ })(({ theme: o }) => ({
4120
+ marginLeft: o.spacing(0.25)
4121
+ })), Cs = z(Te, {
4122
+ name: "HCRangeSelector",
4123
+ slot: "modeColumn"
4124
+ })(({ theme: o }) => ({
4125
+ flex: 1,
4126
+ marginLeft: o.spacing(0.5)
4127
+ })), xs = z(Te, {
4128
+ name: "HCRangeSelector",
4129
+ slot: "compositeRow"
4130
+ })({
4131
+ display: "flex",
4132
+ alignItems: "flex-end",
4133
+ width: "100%"
4134
+ }), ws = z(Ye, {
4135
+ name: "HCRangeSelector",
4136
+ slot: "compositeCount"
4137
+ })(({ theme: o }) => ({
4138
+ marginRight: o.spacing(0.5),
4139
+ minWidth: 50,
4140
+ width: 85
4141
+ })), Ds = z(Te, {
4142
+ name: "HCRangeSelector",
4143
+ slot: "compositeChild"
4144
+ })({
4145
+ flex: 1,
4146
+ maxWidth: 300
4147
+ }), Ps = z(Te, {
4148
+ name: "HCRangeSelector",
4149
+ slot: "dateTrigger"
4150
+ })(({ theme: o }) => ({
4151
+ display: "flex",
4152
+ alignItems: "center",
4153
+ border: "1px solid",
4154
+ borderColor: o.palette.action.disabled,
4155
+ borderRadius: Number(o.shape.borderRadius),
4156
+ paddingLeft: o.spacing(1),
4157
+ paddingRight: o.spacing(1),
4158
+ paddingTop: o.spacing(0.5),
4159
+ paddingBottom: o.spacing(0.5),
4160
+ height: 40,
4161
+ width: "100%"
4162
+ })), ks = z(fo, {
4163
+ name: "HCRangeSelector",
4164
+ slot: "dateTriggerText"
4165
+ })({
4166
+ overflow: "hidden",
4167
+ whiteSpace: "nowrap",
4168
+ textOverflow: "ellipsis",
4169
+ flex: 1
4170
+ }), Ss = z(Uo, {
4171
+ name: "HCRangeSelector",
4172
+ slot: "dateTriggerArrow"
4173
+ })(({ theme: o }) => ({
4174
+ marginLeft: o.spacing(0.25),
4175
+ marginRight: o.spacing(0.25)
4176
+ })), Ms = z(zo)({}), Rs = z(fo, {
4177
+ name: "HCRangeSelector",
4178
+ slot: "dateLimitCaption"
4179
+ })(({ theme: o }) => ({
4180
+ marginLeft: o.spacing(0.5)
4181
+ })), Os = z(Ao, {
4182
+ name: "HCRangeSelector",
4183
+ slot: "datePicker"
4184
+ })(({ theme: o }) => ({
4185
+ marginTop: o.spacing(1)
4186
+ })), Ns = z(Te, {
4187
+ name: "HCRangeSelector",
4188
+ slot: "dateUnitRow"
4189
+ })(({ theme: o }) => ({
4190
+ display: "flex",
4191
+ marginTop: o.spacing(2)
4192
+ })), Is = z(qo, {
4193
+ name: "HCRangeSelector",
4194
+ slot: "dateUnitControl"
4195
+ })({
4196
+ width: 240
4197
+ }), Fs = z(Ye, {
4198
+ name: "HCRangeSelector",
4199
+ slot: "dateRangeInput"
4200
+ })(({ theme: o }) => ({
4201
+ marginLeft: o.spacing(1)
4202
+ }));
4203
+ export {
4204
+ Ds as CompositeChild,
4205
+ ws as CompositeCount,
4206
+ xs as CompositeRow,
4207
+ Rs as DateLimitCaption,
4208
+ Os as DatePicker,
4209
+ Fs as DateRangeInput,
4210
+ Ps as DateTrigger,
4211
+ Ss as DateTriggerArrow,
4212
+ Ms as DateTriggerEditButton,
4213
+ ks as DateTriggerText,
4214
+ Is as DateUnitControl,
4215
+ Ns as DateUnitRow,
4216
+ Cs as ModeColumn,
4217
+ vs as NumberInputMax,
4218
+ ys as NumberInputMin,
4219
+ gs as NumberRangeRow,
4220
+ Ts as NumberRow,
4221
+ hs as RangeSelectorRoot
4222
+ };