@hybridcore/ui 1.6.0 → 1.6.2

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