@cgi-learning-hub/ui 1.4.0-dev.1741956837 → 1.4.0-dev.1741972878

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 (123) hide show
  1. package/dist/{Alert-DdpAZix8.js → Alert-Bdy5B5l-.js} +1 -1
  2. package/dist/{Backdrop-BctCVgLy.js → Backdrop-2gYaM9j-.js} +16 -15
  3. package/dist/Backdrop-DOdBqGqq.cjs +1 -0
  4. package/dist/{Checkbox-qUSjau0g.js → Checkbox-DgU-0k3O.js} +1 -1
  5. package/dist/{Chip-OpRIs-sL.js → Chip-B8sdMltW.js} +1 -1
  6. package/dist/{CloseRounded-BMEGLs8y.js → CloseRounded-CYS1vEvm.js} +1 -1
  7. package/dist/Collapse-Bvxtq7n-.cjs +1 -0
  8. package/dist/Collapse-CLl0D4CI.js +334 -0
  9. package/dist/DatePicker-BZ6G6Mxd.cjs +13 -0
  10. package/dist/{DatePicker-fFsWvNFc.js → DatePicker-CHNHFeLy.js} +648 -654
  11. package/dist/Delete-CbtdIdDB.js +8 -0
  12. package/dist/Delete-DmeDAs0n.cjs +1 -0
  13. package/dist/{Dialog-B1wnk5BT.cjs → Dialog-CgEvhrbZ.cjs} +1 -1
  14. package/dist/{Dialog-CKS7yjT5.js → Dialog-vSSARfm5.js} +2 -2
  15. package/dist/{DialogTitle-D3E_lDHD.js → DialogTitle-BNGMQ2Px.js} +1 -1
  16. package/dist/{DialogTitle-mr9xn4JZ.cjs → DialogTitle-F6JD1f_z.cjs} +1 -1
  17. package/dist/{Grow-DKgYCxiY.js → Grow-DewB1oh4.js} +12 -11
  18. package/dist/Grow-wjlsaPJ-.cjs +1 -0
  19. package/dist/{Menu-Cngt8Va9.cjs → Menu-CGrqZ9-7.cjs} +1 -1
  20. package/dist/{Menu-BunOW0ot.js → Menu-DTOOgx49.js} +3 -3
  21. package/dist/{MenuItem-Bha8aBMr.cjs → MenuItem-CCjOFEgY.cjs} +1 -1
  22. package/dist/{MenuItem-Cu3FTLl8.js → MenuItem-rnMlnHRT.js} +1 -1
  23. package/dist/{Modal-u82Ss4h_.cjs → Modal-BG3hPYyH.cjs} +1 -1
  24. package/dist/{Modal-DTJd7JJ6.js → Modal-CjMKpo95.js} +3 -3
  25. package/dist/{Popper-BVYscbsI.cjs → Popper-AHwSSh80.cjs} +1 -1
  26. package/dist/{Popper-DjwR55WH.js → Popper-Cx071JBT.js} +1 -1
  27. package/dist/Portal-Bw9XOIah.cjs +1 -0
  28. package/dist/{Portal-BByeByPq.js → Portal-iCPDPYlY.js} +1 -1
  29. package/dist/{Radio-DSRS-tjj.js → Radio-YTlcDTxU.js} +1 -1
  30. package/dist/{RadioGroup-cPdOWdYD.js → RadioGroup-d9PIO9nR.js} +1 -1
  31. package/dist/{Select-DZAzJA0y.cjs → Select-CHq7l5LD.cjs} +1 -1
  32. package/dist/{Select-CZnKFG3o.js → Select-bVUll7Rd.js} +3 -3
  33. package/dist/{Tabs-BYfDlOR9.js → Tabs-Cl4eoKT1.js} +1 -1
  34. package/dist/{TextField-CwcPgdgD.cjs → TextField-DQ2FvwDM.cjs} +1 -1
  35. package/dist/{TextField-BKfXjPdH.js → TextField-VHCImaQP.js} +1 -1
  36. package/dist/{ToggleButtonGroup-B1yghh29.js → ToggleButtonGroup--eIRTlqD.js} +2379 -2701
  37. package/dist/ToggleButtonGroup-BGZ43Mpb.cjs +140 -0
  38. package/dist/Tooltip-BLQHNepC.cjs +4 -0
  39. package/dist/{Tooltip-B1NGvrJP.js → Tooltip-BM3r5yvP.js} +3 -3
  40. package/dist/components/Alert/Alert.es.js +1 -1
  41. package/dist/components/Alert/index.es.js +1 -1
  42. package/dist/components/DatePicker/DatePicker.cjs.js +1 -1
  43. package/dist/components/DatePicker/DatePicker.es.js +1 -1
  44. package/dist/components/DatePicker/index.cjs.js +1 -1
  45. package/dist/components/DatePicker/index.es.js +1 -1
  46. package/dist/components/Dialog/Dialog.cjs.js +1 -1
  47. package/dist/components/Dialog/Dialog.es.js +2 -2
  48. package/dist/components/Dropzone/Dropzone.es.js +1 -1
  49. package/dist/components/FileList/FileIcon.es.js +1 -1
  50. package/dist/components/FileList/FileListItem.es.js +2 -2
  51. package/dist/components/ImagePicker/ImagePicker.cjs.js +1 -1
  52. package/dist/components/ImagePicker/ImagePicker.es.js +44 -45
  53. package/dist/components/LoaderBackdrop/LoaderBackdrop.cjs.js +1 -1
  54. package/dist/components/LoaderBackdrop/LoaderBackdrop.es.js +1 -1
  55. package/dist/components/PasswordInput/PasswordInput.cjs.js +1 -1
  56. package/dist/components/PasswordInput/PasswordInput.es.js +2 -2
  57. package/dist/components/ResourceCard/ResourceCard.cjs.js +1 -1
  58. package/dist/components/ResourceCard/ResourceCard.es.js +18 -16
  59. package/dist/components/SearchInput/SearchInput.es.js +1 -1
  60. package/dist/components/TreeView/TreeView.cjs.js +9 -0
  61. package/dist/components/TreeView/TreeView.d.ts +32 -0
  62. package/dist/components/TreeView/TreeView.es.js +2882 -0
  63. package/dist/components/TreeView/index.cjs.js +1 -0
  64. package/dist/components/TreeView/index.d.ts +2 -0
  65. package/dist/components/TreeView/index.es.js +5 -0
  66. package/dist/components/index.cjs.js +1 -1
  67. package/dist/components/index.d.ts +0 -1
  68. package/dist/components/index.es.js +316 -317
  69. package/dist/components/stories/Alert.stories.es.js +1 -1
  70. package/dist/components/stories/Button.stories.es.js +1 -1
  71. package/dist/components/stories/Checkbox.stories.es.js +1 -1
  72. package/dist/components/stories/Chip.stories.es.js +1 -1
  73. package/dist/components/stories/DatePicker.stories.cjs.js +1 -1
  74. package/dist/components/stories/DatePicker.stories.es.js +1 -1
  75. package/dist/components/stories/Dialog.stories.cjs.js +1 -1
  76. package/dist/components/stories/Dialog.stories.es.js +1 -1
  77. package/dist/components/stories/FormControlLabel.stories.es.js +2 -2
  78. package/dist/components/stories/Heading.stories.es.js +1 -1
  79. package/dist/components/stories/IconButton.stories.es.js +1 -1
  80. package/dist/components/stories/Menu.stories.cjs.js +1 -1
  81. package/dist/components/stories/Menu.stories.es.js +2 -2
  82. package/dist/components/stories/RadioGroup.stories.es.js +2 -2
  83. package/dist/components/stories/ResourceCard.stories.es.js +1 -1
  84. package/dist/components/stories/Select.stories.cjs.js +1 -1
  85. package/dist/components/stories/Select.stories.es.js +2 -2
  86. package/dist/components/stories/TabList.stories.es.js +1 -1
  87. package/dist/components/stories/TextField.stories.cjs.js +1 -1
  88. package/dist/components/stories/TextField.stories.es.js +1 -1
  89. package/dist/components/stories/Tooltip.stories.cjs.js +1 -1
  90. package/dist/components/stories/Tooltip.stories.es.js +1 -1
  91. package/dist/components/stories/TreeView.stories.cjs.js +29 -0
  92. package/dist/components/stories/TreeView.stories.d.ts +8 -0
  93. package/dist/components/stories/TreeView.stories.es.js +215 -0
  94. package/dist/{createSvgIcon-K2ZAdASa.js → createSvgIcon-K1Hd8ryN.js} +3 -3
  95. package/dist/getReactElementRef-CQNNHBNW.js +31 -0
  96. package/dist/getReactElementRef-CTRMtaOQ.cjs +1 -0
  97. package/dist/index.cjs.js +1 -1
  98. package/dist/index.es.js +316 -317
  99. package/dist/{utils-CXhh35wP.js → utils-Df4KKPfT.js} +75 -103
  100. package/dist/utils-lBmb5bp_.cjs +1 -0
  101. package/dist/warning-C8W811fV.js +11 -0
  102. package/dist/warning-DMUNDgRg.cjs +2 -0
  103. package/package.json +2 -1
  104. package/dist/Backdrop-DWp3AktL.cjs +0 -1
  105. package/dist/DatePicker-DrLKgvkx.cjs +0 -14
  106. package/dist/Grow-Z3KzFaK5.cjs +0 -1
  107. package/dist/MoreVert-CrM_1EkN.js +0 -8
  108. package/dist/MoreVert-CxgmXooO.cjs +0 -1
  109. package/dist/Portal-DUHpWdY1.cjs +0 -1
  110. package/dist/ToggleButtonGroup-NqurNgWT.cjs +0 -140
  111. package/dist/Tooltip-oNmnF7Bc.cjs +0 -4
  112. package/dist/components/ResourceFolder/ResourceFolder.cjs.js +0 -1
  113. package/dist/components/ResourceFolder/ResourceFolder.d.ts +0 -10
  114. package/dist/components/ResourceFolder/ResourceFolder.es.js +0 -84
  115. package/dist/components/ResourceFolder/index.cjs.js +0 -1
  116. package/dist/components/ResourceFolder/index.d.ts +0 -2
  117. package/dist/components/ResourceFolder/index.es.js +0 -4
  118. package/dist/components/ResourceFolder/styles.cjs.js +0 -1
  119. package/dist/components/ResourceFolder/styles.es.js +0 -64
  120. package/dist/components/stories/ResourceFolder.stories.cjs.js +0 -1
  121. package/dist/components/stories/ResourceFolder.stories.d.ts +0 -7
  122. package/dist/components/stories/ResourceFolder.stories.es.js +0 -71
  123. package/dist/utils-CFI_-FMV.cjs +0 -1
@@ -0,0 +1,2882 @@
1
+ import { jsx as v, jsxs as de } from "react/jsx-runtime";
2
+ import { D as Yt } from "../../Delete-CbtdIdDB.js";
3
+ import { c as ue } from "../../createSvgIcon-K1Hd8ryN.js";
4
+ import { B as it } from "../../Box-DgqaLb7j.js";
5
+ import * as E from "react";
6
+ import { forwardRef as Zt, useMemo as nt, useEffect as Ht } from "react";
7
+ import { _ as C } from "../../ButtonBase-IZ_QjbpE.js";
8
+ import { w as ve } from "../../warning-C8W811fV.js";
9
+ import { u as Ie } from "../../useForkRef-C_4o__cU.js";
10
+ import { r as H, e as U } from "../../resolveComponentProps-CPmhKPdH.js";
11
+ import { I as st, H as lt, n as J, P as d, G as $e } from "../../generateUtilityClasses-DotvgSDH.js";
12
+ import { a as G } from "../../TransitionGroupContext-DbLioz_6.js";
13
+ import { u as en } from "../../useThemeProps-BTfGtNci.js";
14
+ import { s as _, f as pe, c as Ne } from "../../DefaultPropsProvider-Cqcb4sws.js";
15
+ import { C as at } from "../../Collapse-CLl0D4CI.js";
16
+ import { C as ct } from "../../Checkbox-DgU-0k3O.js";
17
+ import { u as dt } from "../../unsupportedProp-BuVD30Gh.js";
18
+ import { u as tn, a as V } from "../../useSlotProps-C9tsxDNg.js";
19
+ import { u as ce } from "../../useEventCallback-BAQJJ3ye.js";
20
+ import { o as nn } from "../../ownerDocument-CUrv0DIK.js";
21
+ import { e as on } from "../../elementTypeAcceptingRef-5ESWTE79.js";
22
+ const Ve = ue(/* @__PURE__ */ v("path", {
23
+ d: "M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8z"
24
+ }), "Folder"), rn = ue(/* @__PURE__ */ v("path", {
25
+ d: "M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z"
26
+ }), "KeyboardArrowDown"), sn = ue(/* @__PURE__ */ v("path", {
27
+ d: "M8.59 16.59 13.17 12 8.59 7.41 10 6l6 6-6 6z"
28
+ }), "KeyboardArrowRight"), ln = ue(/* @__PURE__ */ v("path", {
29
+ d: "M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92"
30
+ }), "Share");
31
+ function an(e) {
32
+ return st("MuiRichTreeView", e);
33
+ }
34
+ lt("MuiRichTreeView", ["root"]);
35
+ function je(e) {
36
+ return en;
37
+ }
38
+ const cn = (e, t) => {
39
+ const n = E.useRef({}), [o, r] = E.useState(() => {
40
+ const p = {};
41
+ return e.forEach((s) => {
42
+ s.models && Object.entries(s.models).forEach(([u, c]) => {
43
+ n.current[u] = {
44
+ isControlled: t[u] !== void 0,
45
+ getDefaultValue: c.getDefaultValue
46
+ }, p[u] = c.getDefaultValue(t);
47
+ });
48
+ }), p;
49
+ }), I = Object.fromEntries(Object.entries(n.current).map(([p, s]) => {
50
+ const u = t[p] ?? o[p];
51
+ return [p, {
52
+ value: u,
53
+ setControlledValue: (c) => {
54
+ s.isControlled || r((i) => C({}, i, {
55
+ [p]: c
56
+ }));
57
+ }
58
+ }];
59
+ }));
60
+ return process.env.NODE_ENV !== "production" && Object.entries(n.current).forEach(([p, s]) => {
61
+ const u = t[p], c = s.getDefaultValue(t);
62
+ E.useEffect(() => {
63
+ s.isControlled !== (u !== void 0) && console.error([`MUI X: A component is changing the ${s.isControlled ? "" : "un"}controlled ${p} state of TreeView to be ${s.isControlled ? "un" : ""}controlled.`, "Elements should not switch from uncontrolled to controlled (or vice versa).", `Decide between using a controlled or uncontrolled ${p} element for the lifetime of the component.`, "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", "More info: https://fb.me/react-controlled-components"].join(`
64
+ `));
65
+ }, [u]);
66
+ const {
67
+ current: i
68
+ } = E.useRef(c);
69
+ E.useEffect(() => {
70
+ !s.isControlled && i !== c && console.error([`MUI X: A component is changing the default ${p} state of an uncontrolled TreeView after being initialized. To suppress this warning opt to use a controlled TreeView.`].join(`
71
+ `));
72
+ }, [JSON.stringify(c)]);
73
+ }), I;
74
+ };
75
+ class dn {
76
+ constructor() {
77
+ this.maxListeners = 20, this.warnOnce = !1, this.events = {};
78
+ }
79
+ on(t, n, o = {}) {
80
+ let r = this.events[t];
81
+ if (r || (r = {
82
+ highPriority: /* @__PURE__ */ new Map(),
83
+ regular: /* @__PURE__ */ new Map()
84
+ }, this.events[t] = r), o.isFirst ? r.highPriority.set(n, !0) : r.regular.set(n, !0), process.env.NODE_ENV !== "production") {
85
+ const I = r.highPriority.size + r.regular.size;
86
+ I > this.maxListeners && !this.warnOnce && (this.warnOnce = !0, console.warn([`Possible EventEmitter memory leak detected. ${I} ${t} listeners added.`].join(`
87
+ `)));
88
+ }
89
+ }
90
+ removeListener(t, n) {
91
+ this.events[t] && (this.events[t].regular.delete(n), this.events[t].highPriority.delete(n));
92
+ }
93
+ removeAllListeners() {
94
+ this.events = {};
95
+ }
96
+ emit(t, ...n) {
97
+ const o = this.events[t];
98
+ if (!o)
99
+ return;
100
+ const r = Array.from(o.highPriority.keys()), I = Array.from(o.regular.keys());
101
+ for (let p = r.length - 1; p >= 0; p -= 1) {
102
+ const s = r[p];
103
+ o.highPriority.has(s) && s.apply(this, n);
104
+ }
105
+ for (let p = 0; p < I.length; p += 1) {
106
+ const s = I[p];
107
+ o.regular.has(s) && s.apply(this, n);
108
+ }
109
+ }
110
+ once(t, n) {
111
+ const o = this;
112
+ this.on(t, function r(...I) {
113
+ o.removeListener(t, r), n.apply(o, I);
114
+ });
115
+ }
116
+ }
117
+ const un = (e) => e.isPropagationStopped !== void 0, ut = () => {
118
+ const [e] = E.useState(() => new dn()), t = E.useCallback((...o) => {
119
+ const [r, I, p = {}] = o;
120
+ p.defaultMuiPrevented = !1, !(un(p) && p.isPropagationStopped()) && e.emit(r, I, p);
121
+ }, [e]), n = E.useCallback((o, r) => (e.on(o, r), () => {
122
+ e.removeListener(o, r);
123
+ }), [e]);
124
+ return {
125
+ instance: {
126
+ $$publishEvent: t,
127
+ $$subscribeEvent: n
128
+ }
129
+ };
130
+ };
131
+ ut.params = {};
132
+ const pt = ({
133
+ plugins: e
134
+ }) => {
135
+ const t = new Set(e);
136
+ return {
137
+ instance: {
138
+ getAvailablePlugins: () => t
139
+ }
140
+ };
141
+ };
142
+ pt.params = {};
143
+ let ot = 0;
144
+ const pn = () => (ot += 1, `mui-tree-view-${ot}`), Ke = ({
145
+ id: e,
146
+ treeId: t = "",
147
+ itemId: n
148
+ }) => e ?? `${t}-${n}`, _e = ({
149
+ params: e,
150
+ state: t,
151
+ setState: n
152
+ }) => {
153
+ E.useEffect(() => {
154
+ n((r) => r.id.treeId === e.id && r.id.treeId !== void 0 ? r : C({}, r, {
155
+ id: C({}, r.id, {
156
+ treeId: e.id ?? pn()
157
+ })
158
+ }));
159
+ }, [n, e.id]);
160
+ const o = e.id ?? t.id.treeId;
161
+ return {
162
+ getRootProps: () => ({
163
+ id: o
164
+ }),
165
+ contextValue: {
166
+ treeId: o
167
+ }
168
+ };
169
+ };
170
+ _e.params = {
171
+ id: !0
172
+ };
173
+ _e.getInitialState = ({
174
+ id: e
175
+ }) => ({
176
+ id: {
177
+ treeId: e ?? void 0
178
+ }
179
+ });
180
+ const fn = [ut, pt, _e], mn = ["slots", "slotProps", "apiRef", "experimentalFeatures"], In = (e) => {
181
+ let {
182
+ props: {
183
+ slots: t,
184
+ slotProps: n,
185
+ apiRef: o,
186
+ experimentalFeatures: r
187
+ },
188
+ plugins: I
189
+ } = e, p = G(e.props, mn);
190
+ const s = {};
191
+ I.forEach((m) => {
192
+ Object.assign(s, m.params);
193
+ });
194
+ const u = {}, c = {};
195
+ Object.keys(p).forEach((m) => {
196
+ const a = p[m];
197
+ s[m] ? u[m] = a : c[m] = a;
198
+ });
199
+ const i = r ?? {}, l = I.reduce((m, a) => a.getDefaultizedParams ? a.getDefaultizedParams({
200
+ params: m,
201
+ experimentalFeatures: i
202
+ }) : m, u);
203
+ return {
204
+ apiRef: o,
205
+ forwardedProps: c,
206
+ pluginParams: l,
207
+ slots: t ?? {},
208
+ slotProps: n ?? {},
209
+ experimentalFeatures: i
210
+ };
211
+ }, gn = ({
212
+ plugins: e,
213
+ instance: t,
214
+ publicAPI: n,
215
+ rootRef: o
216
+ }) => ({
217
+ runItemPlugins: (s) => {
218
+ let u = null, c = null;
219
+ const i = [], l = {};
220
+ e.forEach((h) => {
221
+ if (!h.itemPlugin)
222
+ return;
223
+ const g = h.itemPlugin({
224
+ props: s,
225
+ rootRef: u,
226
+ contentRef: c
227
+ });
228
+ g != null && g.rootRef && (u = g.rootRef), g != null && g.contentRef && (c = g.contentRef), g != null && g.propsEnhancers && (i.push(g.propsEnhancers), Object.keys(g.propsEnhancers).forEach((f) => {
229
+ l[f] = !0;
230
+ }));
231
+ });
232
+ const m = (h) => (g) => {
233
+ const f = {};
234
+ return i.forEach((b) => {
235
+ const x = b[h];
236
+ x != null && Object.assign(f, x(g));
237
+ }), f;
238
+ }, a = Object.fromEntries(Object.keys(l).map((h) => [h, m(h)]));
239
+ return {
240
+ contentRef: c,
241
+ rootRef: u,
242
+ propsEnhancers: a
243
+ };
244
+ },
245
+ wrapItem: ({
246
+ itemId: s,
247
+ children: u
248
+ }) => {
249
+ let c = u;
250
+ for (let i = e.length - 1; i >= 0; i -= 1) {
251
+ const l = e[i];
252
+ l.wrapItem && (c = l.wrapItem({
253
+ itemId: s,
254
+ children: c,
255
+ instance: t
256
+ }));
257
+ }
258
+ return c;
259
+ },
260
+ wrapRoot: ({
261
+ children: s
262
+ }) => {
263
+ let u = s;
264
+ for (let c = e.length - 1; c >= 0; c -= 1) {
265
+ const i = e[c];
266
+ i.wrapRoot && (u = i.wrapRoot({
267
+ children: u,
268
+ instance: t
269
+ }));
270
+ }
271
+ return u;
272
+ },
273
+ instance: t,
274
+ rootRef: o,
275
+ publicAPI: n
276
+ });
277
+ function bn(e) {
278
+ const t = E.useRef({});
279
+ return e ? (e.current == null && (e.current = {}), e.current) : t.current;
280
+ }
281
+ const hn = ({
282
+ plugins: e,
283
+ rootRef: t,
284
+ props: n
285
+ }) => {
286
+ const o = [...fn, ...e], {
287
+ pluginParams: r,
288
+ forwardedProps: I,
289
+ apiRef: p,
290
+ experimentalFeatures: s,
291
+ slots: u,
292
+ slotProps: c
293
+ } = In({
294
+ plugins: o,
295
+ props: n
296
+ }), i = cn(o, r), m = E.useRef({}).current, a = bn(p), h = E.useRef(null), g = Ie(h, t), f = gn({
297
+ plugins: o,
298
+ instance: m,
299
+ publicAPI: a,
300
+ rootRef: h
301
+ }), [b, x] = E.useState(() => {
302
+ const P = {};
303
+ return o.forEach((D) => {
304
+ D.getInitialState && Object.assign(P, D.getInitialState(r));
305
+ }), P;
306
+ }), R = [], M = (P) => {
307
+ const D = P({
308
+ instance: m,
309
+ params: r,
310
+ slots: u,
311
+ slotProps: c,
312
+ experimentalFeatures: s,
313
+ state: b,
314
+ setState: x,
315
+ rootRef: h,
316
+ models: i,
317
+ plugins: o
318
+ });
319
+ D.getRootProps && R.push(D.getRootProps), D.publicAPI && Object.assign(a, D.publicAPI), D.instance && Object.assign(m, D.instance), D.contextValue && Object.assign(f, D.contextValue);
320
+ };
321
+ return o.forEach(M), {
322
+ getRootProps: (P = {}) => {
323
+ const D = C({
324
+ role: "tree"
325
+ }, I, P, {
326
+ ref: g
327
+ });
328
+ return R.forEach((N) => {
329
+ Object.assign(D, N(P));
330
+ }), D;
331
+ },
332
+ rootRef: g,
333
+ contextValue: f,
334
+ instance: m
335
+ };
336
+ }, Be = /* @__PURE__ */ E.createContext(null);
337
+ process.env.NODE_ENV !== "production" && (Be.displayName = "TreeViewContext");
338
+ function xn(e) {
339
+ const {
340
+ value: t,
341
+ children: n
342
+ } = e;
343
+ return /* @__PURE__ */ v(Be.Provider, {
344
+ value: t,
345
+ children: t.wrapRoot({
346
+ children: n,
347
+ instance: t.instance
348
+ })
349
+ });
350
+ }
351
+ const ie = () => {
352
+ const e = E.useContext(Be);
353
+ if (e == null)
354
+ throw new Error(["MUI X: Could not find the Tree View context.", "It looks like you rendered your component outside of a SimpleTreeView or RichTreeView parent component.", "This can also happen if you are bundling multiple versions of the Tree View."].join(`
355
+ `));
356
+ return e;
357
+ }, yn = (e, t, n) => {
358
+ e.$$publishEvent(t, n);
359
+ }, ae = "__TREE_VIEW_ROOT_PARENT_ID__", Tn = (e) => {
360
+ const t = {};
361
+ return e.forEach((n, o) => {
362
+ t[n] = o;
363
+ }), t;
364
+ }, Pe = /* @__PURE__ */ E.createContext(() => -1);
365
+ process.env.NODE_ENV !== "production" && (Pe.displayName = "TreeViewItemDepthContext");
366
+ const Cn = ["children"], ft = ({
367
+ items: e,
368
+ isItemDisabled: t,
369
+ getItemLabel: n,
370
+ getItemId: o
371
+ }) => {
372
+ const r = {}, I = {}, p = {
373
+ [ae]: []
374
+ }, s = (c, i, l) => {
375
+ var g, f;
376
+ const m = o ? o(c) : c.id;
377
+ if (m == null)
378
+ throw new Error(["MUI X: The Tree View component requires all items to have a unique `id` property.", "Alternatively, you can use the `getItemId` prop to specify a custom id for each item.", "An item was provided without id in the `items` prop:", JSON.stringify(c)].join(`
379
+ `));
380
+ if (r[m] != null)
381
+ throw new Error(["MUI X: The Tree View component requires all items to have a unique `id` property.", "Alternatively, you can use the `getItemId` prop to specify a custom id for each item.", `Two items were provided with the same id in the \`items\` prop: "${m}"`].join(`
382
+ `));
383
+ const a = n ? n(c) : c.label;
384
+ if (a == null)
385
+ throw new Error(["MUI X: The Tree View component requires all items to have a `label` property.", "Alternatively, you can use the `getItemLabel` prop to specify a custom label for each item.", "An item was provided without label in the `items` prop:", JSON.stringify(c)].join(`
386
+ `));
387
+ r[m] = {
388
+ id: m,
389
+ label: a,
390
+ parentId: l,
391
+ idAttribute: void 0,
392
+ expandable: !!((g = c.children) != null && g.length),
393
+ disabled: t ? t(c) : !1,
394
+ depth: i
395
+ }, I[m] = c;
396
+ const h = l ?? ae;
397
+ p[h] || (p[h] = []), p[h].push(m), (f = c.children) == null || f.forEach((b) => s(b, i + 1, m));
398
+ };
399
+ e.forEach((c) => s(c, 0, null));
400
+ const u = {};
401
+ return Object.keys(p).forEach((c) => {
402
+ u[c] = Tn(p[c]);
403
+ }), {
404
+ itemMetaMap: r,
405
+ itemMap: I,
406
+ itemOrderedChildrenIds: p,
407
+ itemChildrenIndexes: u
408
+ };
409
+ }, he = ({
410
+ instance: e,
411
+ params: t,
412
+ state: n,
413
+ setState: o,
414
+ experimentalFeatures: r
415
+ }) => {
416
+ const I = E.useCallback((b) => n.items.itemMetaMap[b], [n.items.itemMetaMap]), p = E.useCallback((b) => n.items.itemMap[b], [n.items.itemMap]), s = E.useCallback(() => {
417
+ const b = (x) => {
418
+ const R = n.items.itemMap[x], M = G(R, Cn), w = n.items.itemOrderedChildrenIds[x];
419
+ return w && (M.children = w.map(b)), M;
420
+ };
421
+ return n.items.itemOrderedChildrenIds[ae].map(b);
422
+ }, [n.items.itemMap, n.items.itemOrderedChildrenIds]), u = E.useCallback((b) => {
423
+ if (b == null)
424
+ return !1;
425
+ let x = e.getItemMeta(b);
426
+ if (!x)
427
+ return !1;
428
+ if (x.disabled)
429
+ return !0;
430
+ for (; x.parentId != null; )
431
+ if (x = e.getItemMeta(x.parentId), x.disabled)
432
+ return !0;
433
+ return !1;
434
+ }, [e]), c = E.useCallback((b) => {
435
+ const x = e.getItemMeta(b).parentId ?? ae;
436
+ return n.items.itemChildrenIndexes[x][b];
437
+ }, [e, n.items.itemChildrenIndexes]), i = E.useCallback((b) => n.items.itemOrderedChildrenIds[b ?? ae] ?? [], [n.items.itemOrderedChildrenIds]), l = (b) => {
438
+ const x = e.getItemMeta(b);
439
+ return x == null ? null : document.getElementById(Ke({
440
+ treeId: n.id.treeId,
441
+ itemId: b,
442
+ id: x.idAttribute
443
+ }));
444
+ }, m = (b) => t.disabledItemsFocusable ? !0 : !e.isItemDisabled(b), a = E.useRef(!1), h = E.useCallback(() => {
445
+ a.current = !0;
446
+ }, []), g = E.useCallback(() => a.current, []);
447
+ return E.useEffect(() => {
448
+ e.areItemUpdatesPrevented() || o((b) => {
449
+ const x = ft({
450
+ items: t.items,
451
+ isItemDisabled: t.isItemDisabled,
452
+ getItemId: t.getItemId,
453
+ getItemLabel: t.getItemLabel
454
+ });
455
+ return Object.values(b.items.itemMetaMap).forEach((R) => {
456
+ x.itemMetaMap[R.id] || yn(e, "removeItem", {
457
+ id: R.id
458
+ });
459
+ }), C({}, b, {
460
+ items: x
461
+ });
462
+ });
463
+ }, [e, o, t.items, t.isItemDisabled, t.getItemId, t.getItemLabel]), {
464
+ getRootProps: () => ({
465
+ style: {
466
+ "--TreeView-itemChildrenIndentation": typeof t.itemChildrenIndentation == "number" ? `${t.itemChildrenIndentation}px` : t.itemChildrenIndentation
467
+ }
468
+ }),
469
+ publicAPI: {
470
+ getItem: p,
471
+ getItemDOMElement: l,
472
+ getItemTree: s,
473
+ getItemOrderedChildrenIds: i
474
+ },
475
+ instance: {
476
+ getItemMeta: I,
477
+ getItem: p,
478
+ getItemTree: s,
479
+ getItemsToRender: () => {
480
+ const b = (x) => {
481
+ var M;
482
+ const R = n.items.itemMetaMap[x];
483
+ return {
484
+ label: R.label,
485
+ itemId: R.id,
486
+ id: R.idAttribute,
487
+ children: (M = n.items.itemOrderedChildrenIds[x]) == null ? void 0 : M.map(b)
488
+ };
489
+ };
490
+ return n.items.itemOrderedChildrenIds[ae].map(b);
491
+ },
492
+ getItemIndex: c,
493
+ getItemDOMElement: l,
494
+ getItemOrderedChildrenIds: i,
495
+ isItemDisabled: u,
496
+ isItemNavigable: m,
497
+ preventItemUpdates: h,
498
+ areItemUpdatesPrevented: g
499
+ },
500
+ contextValue: {
501
+ items: {
502
+ onItemClick: t.onItemClick,
503
+ disabledItemsFocusable: t.disabledItemsFocusable,
504
+ indentationAtItemLevel: r.indentationAtItemLevel ?? !1
505
+ }
506
+ }
507
+ };
508
+ };
509
+ he.getInitialState = (e) => ({
510
+ items: ft({
511
+ items: e.items,
512
+ isItemDisabled: e.isItemDisabled,
513
+ getItemId: e.getItemId,
514
+ getItemLabel: e.getItemLabel
515
+ })
516
+ });
517
+ he.getDefaultizedParams = ({
518
+ params: e
519
+ }) => C({}, e, {
520
+ disabledItemsFocusable: e.disabledItemsFocusable ?? !1,
521
+ itemChildrenIndentation: e.itemChildrenIndentation ?? "12px"
522
+ });
523
+ he.wrapRoot = ({
524
+ children: e,
525
+ instance: t
526
+ }) => /* @__PURE__ */ v(Pe.Provider, {
527
+ value: (n) => {
528
+ var o;
529
+ return ((o = t.getItemMeta(n)) == null ? void 0 : o.depth) ?? 0;
530
+ },
531
+ children: e
532
+ });
533
+ he.params = {
534
+ disabledItemsFocusable: !0,
535
+ items: !0,
536
+ isItemDisabled: !0,
537
+ getItemLabel: !0,
538
+ getItemId: !0,
539
+ onItemClick: !0,
540
+ itemChildrenIndentation: !0
541
+ };
542
+ const Se = ({
543
+ instance: e,
544
+ params: t,
545
+ models: n
546
+ }) => {
547
+ const o = E.useMemo(() => {
548
+ const l = /* @__PURE__ */ new Map();
549
+ return n.expandedItems.value.forEach((m) => {
550
+ l.set(m, !0);
551
+ }), l;
552
+ }, [n.expandedItems.value]), r = (l, m) => {
553
+ var a;
554
+ (a = t.onExpandedItemsChange) == null || a.call(t, l, m), n.expandedItems.setControlledValue(m);
555
+ }, I = E.useCallback((l) => o.has(l), [o]), p = E.useCallback((l) => {
556
+ var m;
557
+ return !!((m = e.getItemMeta(l)) != null && m.expandable);
558
+ }, [e]), s = ce((l, m) => {
559
+ const a = e.isItemExpanded(m);
560
+ e.setItemExpansion(l, m, !a);
561
+ }), u = ce((l, m, a) => {
562
+ if (e.isItemExpanded(m) === a)
563
+ return;
564
+ let g;
565
+ a ? g = [m].concat(n.expandedItems.value) : g = n.expandedItems.value.filter((f) => f !== m), t.onItemExpansionToggle && t.onItemExpansionToggle(l, m, a), r(l, g);
566
+ }), c = (l, m) => {
567
+ const a = e.getItemMeta(m), g = e.getItemOrderedChildrenIds(a.parentId).filter((b) => e.isItemExpandable(b) && !e.isItemExpanded(b)), f = n.expandedItems.value.concat(g);
568
+ g.length > 0 && (t.onItemExpansionToggle && g.forEach((b) => {
569
+ t.onItemExpansionToggle(l, b, !0);
570
+ }), r(l, f));
571
+ }, i = E.useMemo(() => t.expansionTrigger ? t.expansionTrigger : e.isTreeViewEditable ? "iconContainer" : "content", [t.expansionTrigger, e.isTreeViewEditable]);
572
+ return {
573
+ publicAPI: {
574
+ setItemExpansion: u
575
+ },
576
+ instance: {
577
+ isItemExpanded: I,
578
+ isItemExpandable: p,
579
+ setItemExpansion: u,
580
+ toggleItemExpansion: s,
581
+ expandAllSiblings: c
582
+ },
583
+ contextValue: {
584
+ expansion: {
585
+ expansionTrigger: i
586
+ }
587
+ }
588
+ };
589
+ };
590
+ Se.models = {
591
+ expandedItems: {
592
+ getDefaultValue: (e) => e.defaultExpandedItems
593
+ }
594
+ };
595
+ const En = [];
596
+ Se.getDefaultizedParams = ({
597
+ params: e
598
+ }) => C({}, e, {
599
+ defaultExpandedItems: e.defaultExpandedItems ?? En
600
+ });
601
+ Se.params = {
602
+ expandedItems: !0,
603
+ defaultExpandedItems: !0,
604
+ onExpandedItemsChange: !0,
605
+ onItemExpansionToggle: !0,
606
+ expansionTrigger: !0
607
+ };
608
+ const mt = (e, t) => {
609
+ let n = t.length - 1;
610
+ for (; n >= 0 && !e.isItemNavigable(t[n]); )
611
+ n -= 1;
612
+ if (n !== -1)
613
+ return t[n];
614
+ }, It = (e, t) => {
615
+ const n = e.getItemMeta(t), o = e.getItemOrderedChildrenIds(n.parentId), r = e.getItemIndex(t);
616
+ if (r === 0)
617
+ return n.parentId;
618
+ let I = r - 1;
619
+ for (; !e.isItemNavigable(o[I]) && I >= 0; )
620
+ I -= 1;
621
+ if (I === -1)
622
+ return n.parentId == null ? null : It(e, n.parentId);
623
+ let p = o[I], s = mt(e, e.getItemOrderedChildrenIds(p));
624
+ for (; e.isItemExpanded(p) && s != null; )
625
+ p = s, s = e.getItemOrderedChildrenIds(p).find(e.isItemNavigable);
626
+ return p;
627
+ }, we = (e, t) => {
628
+ if (e.isItemExpanded(t)) {
629
+ const o = e.getItemOrderedChildrenIds(t).find(e.isItemNavigable);
630
+ if (o != null)
631
+ return o;
632
+ }
633
+ let n = e.getItemMeta(t);
634
+ for (; n != null; ) {
635
+ const o = e.getItemOrderedChildrenIds(n.parentId), r = e.getItemIndex(n.id);
636
+ if (r < o.length - 1) {
637
+ let I = r + 1;
638
+ for (; !e.isItemNavigable(o[I]) && I < o.length - 1; )
639
+ I += 1;
640
+ if (e.isItemNavigable(o[I]))
641
+ return o[I];
642
+ }
643
+ n = e.getItemMeta(n.parentId);
644
+ }
645
+ return null;
646
+ }, gt = (e) => {
647
+ let t = null;
648
+ for (; t == null || e.isItemExpanded(t); ) {
649
+ const n = e.getItemOrderedChildrenIds(t), o = mt(e, n);
650
+ if (o == null)
651
+ return t;
652
+ t = o;
653
+ }
654
+ return t;
655
+ }, ge = (e) => e.getItemOrderedChildrenIds(null).find(e.isItemNavigable), bt = (e, t, n) => {
656
+ if (t === n)
657
+ return [t, n];
658
+ const o = e.getItemMeta(t), r = e.getItemMeta(n);
659
+ if (o.parentId === r.id || r.parentId === o.id)
660
+ return r.parentId === o.id ? [o.id, r.id] : [r.id, o.id];
661
+ const I = [o.id], p = [r.id];
662
+ let s = o.parentId, u = r.parentId, c = p.indexOf(s) !== -1, i = I.indexOf(u) !== -1, l = !0, m = !0;
663
+ for (; !i && !c; )
664
+ l && (I.push(s), c = p.indexOf(s) !== -1, l = s !== null, !c && l && (s = e.getItemMeta(s).parentId)), m && !c && (p.push(u), i = I.indexOf(u) !== -1, m = u !== null, !i && m && (u = e.getItemMeta(u).parentId));
665
+ const a = c ? s : u, h = e.getItemOrderedChildrenIds(a), g = I[I.indexOf(a) - 1], f = p[p.indexOf(a) - 1];
666
+ return h.indexOf(g) < h.indexOf(f) ? [t, n] : [n, t];
667
+ }, wn = (e, t, n) => {
668
+ const o = (u) => {
669
+ if (e.isItemExpandable(u) && e.isItemExpanded(u))
670
+ return e.getItemOrderedChildrenIds(u)[0];
671
+ let c = e.getItemMeta(u);
672
+ for (; c != null; ) {
673
+ const i = e.getItemOrderedChildrenIds(c.parentId), l = e.getItemIndex(c.id);
674
+ if (l < i.length - 1)
675
+ return i[l + 1];
676
+ c = e.getItemMeta(c.parentId);
677
+ }
678
+ throw new Error("Invalid range");
679
+ }, [r, I] = bt(e, t, n), p = [r];
680
+ let s = r;
681
+ for (; s !== I; )
682
+ s = o(s), e.isItemDisabled(s) || p.push(s);
683
+ return p;
684
+ }, Rn = (e) => {
685
+ let t = ge(e);
686
+ const n = [];
687
+ for (; t != null; )
688
+ n.push(t), t = we(e, t);
689
+ return n;
690
+ }, be = (e, t) => t !== e.closest('*[role="treeitem"]'), Re = (e) => Array.isArray(e) ? e : e != null ? [e] : [], Fe = (e) => {
691
+ const t = {};
692
+ return e.forEach((n) => {
693
+ t[n] = !0;
694
+ }), t;
695
+ }, Me = ({
696
+ instance: e,
697
+ params: t,
698
+ models: n
699
+ }) => {
700
+ const o = E.useRef(null), r = E.useRef({}), I = E.useMemo(() => {
701
+ const g = /* @__PURE__ */ new Map();
702
+ return Array.isArray(n.selectedItems.value) ? n.selectedItems.value.forEach((f) => {
703
+ g.set(f, !0);
704
+ }) : n.selectedItems.value != null && g.set(n.selectedItems.value, !0), g;
705
+ }, [n.selectedItems.value]), p = (g, f) => {
706
+ if (t.onItemSelectionToggle)
707
+ if (t.multiSelect) {
708
+ const b = f.filter((R) => !e.isItemSelected(R)), x = n.selectedItems.value.filter((R) => !f.includes(R));
709
+ b.forEach((R) => {
710
+ t.onItemSelectionToggle(g, R, !0);
711
+ }), x.forEach((R) => {
712
+ t.onItemSelectionToggle(g, R, !1);
713
+ });
714
+ } else f !== n.selectedItems.value && (n.selectedItems.value != null && t.onItemSelectionToggle(g, n.selectedItems.value, !1), f != null && t.onItemSelectionToggle(g, f, !0));
715
+ t.onSelectedItemsChange && t.onSelectedItemsChange(g, f), n.selectedItems.setControlledValue(f);
716
+ }, s = (g) => I.has(g), u = ({
717
+ event: g,
718
+ itemId: f,
719
+ keepExistingSelection: b = !1,
720
+ shouldBeSelected: x
721
+ }) => {
722
+ if (t.disableSelection)
723
+ return;
724
+ let R;
725
+ if (b) {
726
+ const M = Re(n.selectedItems.value), w = e.isItemSelected(f);
727
+ w && (x === !1 || x == null) ? R = M.filter((P) => P !== f) : !w && (x === !0 || x == null) ? R = [f].concat(M) : R = M;
728
+ } else
729
+ x === !1 || x == null && e.isItemSelected(f) ? R = t.multiSelect ? [] : null : R = t.multiSelect ? [f] : f;
730
+ p(g, R), o.current = f, r.current = {};
731
+ }, c = (g, [f, b]) => {
732
+ if (t.disableSelection || !t.multiSelect)
733
+ return;
734
+ let x = Re(n.selectedItems.value).slice();
735
+ Object.keys(r.current).length > 0 && (x = x.filter((P) => !r.current[P]));
736
+ const R = Fe(x), M = wn(e, f, b), w = M.filter((P) => !R[P]);
737
+ x = x.concat(w), p(g, x), r.current = Fe(M);
738
+ };
739
+ return {
740
+ getRootProps: () => ({
741
+ "aria-multiselectable": t.multiSelect
742
+ }),
743
+ publicAPI: {
744
+ selectItem: u
745
+ },
746
+ instance: {
747
+ isItemSelected: s,
748
+ selectItem: u,
749
+ selectAllNavigableItems: (g) => {
750
+ if (t.disableSelection || !t.multiSelect)
751
+ return;
752
+ const f = Rn(e);
753
+ p(g, f), r.current = Fe(f);
754
+ },
755
+ expandSelectionRange: (g, f) => {
756
+ if (o.current != null) {
757
+ const [b, x] = bt(e, f, o.current);
758
+ c(g, [b, x]);
759
+ }
760
+ },
761
+ selectRangeFromStartToItem: (g, f) => {
762
+ c(g, [ge(e), f]);
763
+ },
764
+ selectRangeFromItemToEnd: (g, f) => {
765
+ c(g, [f, gt(e)]);
766
+ },
767
+ selectItemFromArrowNavigation: (g, f, b) => {
768
+ if (t.disableSelection || !t.multiSelect)
769
+ return;
770
+ let x = Re(n.selectedItems.value).slice();
771
+ Object.keys(r.current).length === 0 ? (x.push(b), r.current = {
772
+ [f]: !0,
773
+ [b]: !0
774
+ }) : (r.current[f] || (r.current = {}), r.current[b] ? (x = x.filter((R) => R !== f), delete r.current[f]) : (x.push(b), r.current[b] = !0)), p(g, x);
775
+ }
776
+ },
777
+ contextValue: {
778
+ selection: {
779
+ multiSelect: t.multiSelect,
780
+ checkboxSelection: t.checkboxSelection,
781
+ disableSelection: t.disableSelection
782
+ }
783
+ }
784
+ };
785
+ };
786
+ Me.models = {
787
+ selectedItems: {
788
+ getDefaultValue: (e) => e.defaultSelectedItems
789
+ }
790
+ };
791
+ const vn = [];
792
+ Me.getDefaultizedParams = ({
793
+ params: e
794
+ }) => C({}, e, {
795
+ disableSelection: e.disableSelection ?? !1,
796
+ multiSelect: e.multiSelect ?? !1,
797
+ checkboxSelection: e.checkboxSelection ?? !1,
798
+ defaultSelectedItems: e.defaultSelectedItems ?? (e.multiSelect ? vn : null)
799
+ });
800
+ Me.params = {
801
+ disableSelection: !0,
802
+ multiSelect: !0,
803
+ checkboxSelection: !0,
804
+ defaultSelectedItems: !0,
805
+ selectedItems: !0,
806
+ onSelectedItemsChange: !0,
807
+ onItemSelectionToggle: !0
808
+ };
809
+ const rt = 1e3;
810
+ class Pn {
811
+ constructor(t = rt) {
812
+ this.timeouts = /* @__PURE__ */ new Map(), this.cleanupTimeout = rt, this.cleanupTimeout = t;
813
+ }
814
+ register(t, n, o) {
815
+ this.timeouts || (this.timeouts = /* @__PURE__ */ new Map());
816
+ const r = setTimeout(() => {
817
+ typeof n == "function" && n(), this.timeouts.delete(o.cleanupToken);
818
+ }, this.cleanupTimeout);
819
+ this.timeouts.set(o.cleanupToken, r);
820
+ }
821
+ unregister(t) {
822
+ const n = this.timeouts.get(t.cleanupToken);
823
+ n && (this.timeouts.delete(t.cleanupToken), clearTimeout(n));
824
+ }
825
+ reset() {
826
+ this.timeouts && (this.timeouts.forEach((t, n) => {
827
+ this.unregister({
828
+ cleanupToken: n
829
+ });
830
+ }), this.timeouts = void 0);
831
+ }
832
+ }
833
+ class Sn {
834
+ constructor() {
835
+ this.registry = new FinalizationRegistry((t) => {
836
+ typeof t == "function" && t();
837
+ });
838
+ }
839
+ register(t, n, o) {
840
+ this.registry.register(t, n, o);
841
+ }
842
+ unregister(t) {
843
+ this.registry.unregister(t);
844
+ }
845
+ // eslint-disable-next-line class-methods-use-this
846
+ reset() {
847
+ }
848
+ }
849
+ class Mn {
850
+ }
851
+ function kn(e) {
852
+ let t = 0;
853
+ return function(o, r, I) {
854
+ e.registry === null && (e.registry = typeof FinalizationRegistry < "u" ? new Sn() : new Pn());
855
+ const [p] = E.useState(new Mn()), s = E.useRef(null), u = E.useRef(void 0);
856
+ u.current = I;
857
+ const c = E.useRef(null);
858
+ if (!s.current && u.current) {
859
+ const i = (l, m) => {
860
+ var a;
861
+ m.defaultMuiPrevented || (a = u.current) == null || a.call(u, l, m);
862
+ };
863
+ s.current = o.$$subscribeEvent(r, i), t += 1, c.current = {
864
+ cleanupToken: t
865
+ }, e.registry.register(
866
+ p,
867
+ // The callback below will be called once this reference stops being retained
868
+ () => {
869
+ var l;
870
+ (l = s.current) == null || l.call(s), s.current = null, c.current = null;
871
+ },
872
+ c.current
873
+ );
874
+ } else !u.current && s.current && (s.current(), s.current = null, c.current && (e.registry.unregister(c.current), c.current = null));
875
+ E.useEffect(() => {
876
+ if (!s.current && u.current) {
877
+ const i = (l, m) => {
878
+ var a;
879
+ m.defaultMuiPrevented || (a = u.current) == null || a.call(u, l, m);
880
+ };
881
+ s.current = o.$$subscribeEvent(r, i);
882
+ }
883
+ return c.current && e.registry && (e.registry.unregister(c.current), c.current = null), () => {
884
+ var i;
885
+ (i = s.current) == null || i.call(s), s.current = null;
886
+ };
887
+ }, [o, r]);
888
+ };
889
+ }
890
+ const Dn = {
891
+ registry: null
892
+ }, On = kn(Dn), ht = (e = document) => {
893
+ const t = e.activeElement;
894
+ return t ? t.shadowRoot ? ht(t.shadowRoot) : t : null;
895
+ }, An = (e, t) => {
896
+ let n = Re(t).find((o) => {
897
+ if (!e.isItemNavigable(o))
898
+ return !1;
899
+ const r = e.getItemMeta(o);
900
+ return r && (r.parentId == null || e.isItemExpanded(r.parentId));
901
+ });
902
+ return n == null && (n = ge(e)), n;
903
+ }, Ue = ({
904
+ instance: e,
905
+ params: t,
906
+ state: n,
907
+ setState: o,
908
+ models: r,
909
+ rootRef: I
910
+ }) => {
911
+ const p = An(e, r.selectedItems.value), s = ce((f) => {
912
+ const b = typeof f == "function" ? f(n.focusedItemId) : f;
913
+ n.focusedItemId !== b && o((x) => C({}, x, {
914
+ focusedItemId: b
915
+ }));
916
+ }), u = E.useCallback(() => !!I.current && I.current.contains(ht(nn(I.current))), [I]), c = E.useCallback((f) => n.focusedItemId === f && u(), [n.focusedItemId, u]), i = (f) => {
917
+ const b = e.getItemMeta(f);
918
+ return b && (b.parentId == null || e.isItemExpanded(b.parentId));
919
+ }, l = (f, b) => {
920
+ const x = e.getItemDOMElement(b);
921
+ x && x.focus(), s(b), t.onItemFocus && t.onItemFocus(f, b);
922
+ }, m = ce((f, b) => {
923
+ i(b) && l(f, b);
924
+ }), a = ce(() => {
925
+ if (n.focusedItemId == null)
926
+ return;
927
+ if (e.getItemMeta(n.focusedItemId)) {
928
+ const b = e.getItemDOMElement(n.focusedItemId);
929
+ b && b.blur();
930
+ }
931
+ s(null);
932
+ }), h = (f) => f === p;
933
+ On(e, "removeItem", ({
934
+ id: f
935
+ }) => {
936
+ n.focusedItemId === f && l(null, p);
937
+ });
938
+ const g = (f) => (b) => {
939
+ var x;
940
+ (x = f.onFocus) == null || x.call(f, b), !b.defaultMuiPrevented && b.target === b.currentTarget && l(b, p);
941
+ };
942
+ return {
943
+ getRootProps: (f) => ({
944
+ onFocus: g(f)
945
+ }),
946
+ publicAPI: {
947
+ focusItem: m
948
+ },
949
+ instance: {
950
+ isItemFocused: c,
951
+ canItemBeTabbed: h,
952
+ focusItem: m,
953
+ removeFocusedItem: a
954
+ }
955
+ };
956
+ };
957
+ Ue.getInitialState = () => ({
958
+ focusedItemId: null
959
+ });
960
+ Ue.params = {
961
+ onItemFocus: !0
962
+ };
963
+ const re = (e, t) => e.getAvailablePlugins().has(t), Ln = ({
964
+ props: e
965
+ }) => {
966
+ const {
967
+ instance: t
968
+ } = ie(), {
969
+ label: n,
970
+ itemId: o
971
+ } = e, [r, I] = E.useState(n), p = t.isItemBeingEdited(o);
972
+ return E.useEffect(() => {
973
+ p || I(n);
974
+ }, [p, n]), {
975
+ propsEnhancers: {
976
+ labelInput: ({
977
+ externalEventHandlers: s,
978
+ interactions: u
979
+ }) => t.isItemEditable(o) ? {
980
+ value: r ?? "",
981
+ "data-element": "labelInput",
982
+ onChange: (a) => {
983
+ var h;
984
+ (h = s.onChange) == null || h.call(s, a), I(a.target.value);
985
+ },
986
+ onKeyDown: (a) => {
987
+ var g;
988
+ if ((g = s.onKeyDown) == null || g.call(s, a), a.defaultMuiPrevented)
989
+ return;
990
+ const h = a.target;
991
+ a.key === "Enter" && h.value ? u.handleSaveItemLabel(a, h.value) : a.key === "Escape" && u.handleCancelItemLabelEditing(a);
992
+ },
993
+ onBlur: (a) => {
994
+ var h;
995
+ (h = s.onBlur) == null || h.call(s, a), !a.defaultMuiPrevented && a.target.value && u.handleSaveItemLabel(a, a.target.value);
996
+ },
997
+ autoFocus: !0,
998
+ type: "text"
999
+ } : {}
1000
+ }
1001
+ };
1002
+ }, K = ({
1003
+ instance: e,
1004
+ state: t,
1005
+ setState: n,
1006
+ params: o
1007
+ }) => {
1008
+ const r = E.useRef(t.editedItemId), I = (l) => r.current === l, p = (l) => {
1009
+ n((m) => C({}, m, {
1010
+ editedItemId: l
1011
+ })), r.current = l;
1012
+ }, s = (l) => l === t.editedItemId, u = !!o.isItemEditable, c = (l) => {
1013
+ if (l == null || !u)
1014
+ return !1;
1015
+ const m = e.getItem(l);
1016
+ return m ? typeof o.isItemEditable == "function" ? o.isItemEditable(m) : !!o.isItemEditable : !1;
1017
+ }, i = (l, m) => {
1018
+ if (!m)
1019
+ throw new Error(["MUI X: The Tree View component requires all items to have a `label` property.", "The label of an item cannot be empty.", l].join(`
1020
+ `));
1021
+ n((a) => {
1022
+ const h = a.items.itemMetaMap[l];
1023
+ return h.label !== m ? C({}, a, {
1024
+ items: C({}, a.items, {
1025
+ itemMetaMap: C({}, a.items.itemMetaMap, {
1026
+ [l]: C({}, h, {
1027
+ label: m
1028
+ })
1029
+ })
1030
+ })
1031
+ }) : a;
1032
+ }), o.onItemLabelChange && o.onItemLabelChange(l, m);
1033
+ };
1034
+ return {
1035
+ instance: {
1036
+ setEditedItemId: p,
1037
+ isItemBeingEdited: s,
1038
+ updateItemLabel: i,
1039
+ isItemEditable: c,
1040
+ isTreeViewEditable: u,
1041
+ isItemBeingEditedRef: I
1042
+ },
1043
+ publicAPI: {
1044
+ updateItemLabel: i
1045
+ }
1046
+ };
1047
+ };
1048
+ K.itemPlugin = Ln;
1049
+ K.getDefaultizedParams = ({
1050
+ params: e,
1051
+ experimentalFeatures: t
1052
+ }) => {
1053
+ const n = t == null ? void 0 : t.labelEditing;
1054
+ return process.env.NODE_ENV !== "production" && e.isItemEditable && !n && ve(["MUI X: The label editing feature requires the `labelEditing` experimental feature to be enabled.", "You can do it by passing `experimentalFeatures={{ labelEditing: true}}` to the Rich Tree View Pro component.", "Check the documentation for more details: https://mui.com/x/react-tree-view/rich-tree-view/editing/"]), C({}, e, {
1055
+ isItemEditable: n ? e.isItemEditable ?? !1 : !1
1056
+ });
1057
+ };
1058
+ K.getInitialState = () => ({
1059
+ editedItemId: null
1060
+ });
1061
+ K.params = {
1062
+ onItemLabelChange: !0,
1063
+ isItemEditable: !0
1064
+ };
1065
+ function Vn(e) {
1066
+ return !!e && e.length === 1 && !!e.match(/\S/);
1067
+ }
1068
+ const xt = ({
1069
+ instance: e,
1070
+ params: t,
1071
+ state: n
1072
+ }) => {
1073
+ const o = tn(), r = E.useRef({}), I = ce((i) => {
1074
+ r.current = i(r.current);
1075
+ });
1076
+ E.useEffect(() => {
1077
+ if (e.areItemUpdatesPrevented())
1078
+ return;
1079
+ const i = {}, l = (m) => {
1080
+ i[m.id] = m.label.substring(0, 1).toLowerCase();
1081
+ };
1082
+ Object.values(n.items.itemMetaMap).forEach(l), r.current = i;
1083
+ }, [n.items.itemMetaMap, t.getItemId, e]);
1084
+ const p = (i, l) => {
1085
+ const m = l.toLowerCase(), a = (b) => {
1086
+ const x = we(e, b);
1087
+ return x === null ? ge(e) : x;
1088
+ };
1089
+ let h = null, g = a(i);
1090
+ const f = {};
1091
+ for (; h == null && !f[g]; )
1092
+ r.current[g] === m ? h = g : (f[g] = !0, g = a(g));
1093
+ return h;
1094
+ }, s = (i) => !t.disableSelection && !e.isItemDisabled(i), u = (i) => !e.isItemDisabled(i) && e.isItemExpandable(i);
1095
+ return {
1096
+ instance: {
1097
+ updateFirstCharMap: I,
1098
+ handleItemKeyDown: (i, l) => {
1099
+ if (i.defaultMuiPrevented || i.altKey || be(i.target, i.currentTarget))
1100
+ return;
1101
+ const m = i.ctrlKey || i.metaKey, a = i.key;
1102
+ switch (!0) {
1103
+ // Select the item when pressing "Space"
1104
+ case (a === " " && s(l)): {
1105
+ i.preventDefault(), t.multiSelect && i.shiftKey ? e.expandSelectionRange(i, l) : e.selectItem({
1106
+ event: i,
1107
+ itemId: l,
1108
+ keepExistingSelection: t.multiSelect,
1109
+ shouldBeSelected: t.multiSelect ? void 0 : !0
1110
+ });
1111
+ break;
1112
+ }
1113
+ // If the focused item has children, we expand it.
1114
+ // If the focused item has no children, we select it.
1115
+ case a === "Enter": {
1116
+ re(e, K) && e.isItemEditable(l) && !e.isItemBeingEdited(l) ? e.setEditedItemId(l) : u(l) ? (e.toggleItemExpansion(i, l), i.preventDefault()) : s(l) && (t.multiSelect ? (i.preventDefault(), e.selectItem({
1117
+ event: i,
1118
+ itemId: l,
1119
+ keepExistingSelection: !0
1120
+ })) : e.isItemSelected(l) || (e.selectItem({
1121
+ event: i,
1122
+ itemId: l
1123
+ }), i.preventDefault()));
1124
+ break;
1125
+ }
1126
+ // Focus the next focusable item
1127
+ case a === "ArrowDown": {
1128
+ const h = we(e, l);
1129
+ h && (i.preventDefault(), e.focusItem(i, h), t.multiSelect && i.shiftKey && s(h) && e.selectItemFromArrowNavigation(i, l, h));
1130
+ break;
1131
+ }
1132
+ // Focuses the previous focusable item
1133
+ case a === "ArrowUp": {
1134
+ const h = It(e, l);
1135
+ h && (i.preventDefault(), e.focusItem(i, h), t.multiSelect && i.shiftKey && s(h) && e.selectItemFromArrowNavigation(i, l, h));
1136
+ break;
1137
+ }
1138
+ // If the focused item is expanded, we move the focus to its first child
1139
+ // If the focused item is collapsed and has children, we expand it
1140
+ case (a === "ArrowRight" && !o || a === "ArrowLeft" && o): {
1141
+ if (m)
1142
+ return;
1143
+ if (e.isItemExpanded(l)) {
1144
+ const h = we(e, l);
1145
+ h && (e.focusItem(i, h), i.preventDefault());
1146
+ } else u(l) && (e.toggleItemExpansion(i, l), i.preventDefault());
1147
+ break;
1148
+ }
1149
+ // If the focused item is expanded, we collapse it
1150
+ // If the focused item is collapsed and has a parent, we move the focus to this parent
1151
+ case (a === "ArrowLeft" && !o || a === "ArrowRight" && o): {
1152
+ if (m)
1153
+ return;
1154
+ if (u(l) && e.isItemExpanded(l))
1155
+ e.toggleItemExpansion(i, l), i.preventDefault();
1156
+ else {
1157
+ const h = e.getItemMeta(l).parentId;
1158
+ h && (e.focusItem(i, h), i.preventDefault());
1159
+ }
1160
+ break;
1161
+ }
1162
+ // Focuses the first item in the tree
1163
+ case a === "Home": {
1164
+ s(l) && t.multiSelect && m && i.shiftKey ? e.selectRangeFromStartToItem(i, l) : e.focusItem(i, ge(e)), i.preventDefault();
1165
+ break;
1166
+ }
1167
+ // Focuses the last item in the tree
1168
+ case a === "End": {
1169
+ s(l) && t.multiSelect && m && i.shiftKey ? e.selectRangeFromItemToEnd(i, l) : e.focusItem(i, gt(e)), i.preventDefault();
1170
+ break;
1171
+ }
1172
+ // Expand all siblings that are at the same level as the focused item
1173
+ case a === "*": {
1174
+ e.expandAllSiblings(i, l), i.preventDefault();
1175
+ break;
1176
+ }
1177
+ // Multi select behavior when pressing Ctrl + a
1178
+ // Selects all the items
1179
+ case (String.fromCharCode(i.keyCode) === "A" && m && t.multiSelect && !t.disableSelection): {
1180
+ e.selectAllNavigableItems(i), i.preventDefault();
1181
+ break;
1182
+ }
1183
+ // Type-ahead
1184
+ // TODO: Support typing multiple characters
1185
+ case (!m && !i.shiftKey && Vn(a)): {
1186
+ const h = p(l, a);
1187
+ h != null && (e.focusItem(i, h), i.preventDefault());
1188
+ break;
1189
+ }
1190
+ }
1191
+ }
1192
+ }
1193
+ };
1194
+ };
1195
+ xt.params = {};
1196
+ const yt = ({
1197
+ slots: e,
1198
+ slotProps: t
1199
+ }) => ({
1200
+ contextValue: {
1201
+ icons: {
1202
+ slots: {
1203
+ collapseIcon: e.collapseIcon,
1204
+ expandIcon: e.expandIcon,
1205
+ endIcon: e.endIcon
1206
+ },
1207
+ slotProps: {
1208
+ collapseIcon: t.collapseIcon,
1209
+ expandIcon: t.expandIcon,
1210
+ endIcon: t.endIcon
1211
+ }
1212
+ }
1213
+ }
1214
+ });
1215
+ yt.params = {};
1216
+ const Fn = [he, Se, Me, Ue, xt, yt, K];
1217
+ function Tt(e) {
1218
+ const {
1219
+ instance: t,
1220
+ items: {
1221
+ onItemClick: n
1222
+ },
1223
+ selection: {
1224
+ multiSelect: o,
1225
+ checkboxSelection: r,
1226
+ disableSelection: I
1227
+ },
1228
+ expansion: {
1229
+ expansionTrigger: p
1230
+ }
1231
+ } = ie(), s = t.isItemExpandable(e), u = t.isItemExpanded(e), c = t.isItemFocused(e), i = t.isItemSelected(e), l = t.isItemDisabled(e), m = t != null && t.isItemBeingEdited ? t == null ? void 0 : t.isItemBeingEdited(e) : !1, a = t.isItemEditable ? t.isItemEditable(e) : !1, h = (w) => {
1232
+ if (!l) {
1233
+ c || t.focusItem(w, e);
1234
+ const P = o && (w.shiftKey || w.ctrlKey || w.metaKey);
1235
+ s && !(P && t.isItemExpanded(e)) && t.toggleItemExpansion(w, e);
1236
+ }
1237
+ }, g = (w) => {
1238
+ l || (c || t.focusItem(w, e), o && (w.shiftKey || w.ctrlKey || w.metaKey) ? w.shiftKey ? t.expandSelectionRange(w, e) : t.selectItem({
1239
+ event: w,
1240
+ itemId: e,
1241
+ keepExistingSelection: !0
1242
+ }) : t.selectItem({
1243
+ event: w,
1244
+ itemId: e,
1245
+ shouldBeSelected: !0
1246
+ }));
1247
+ }, f = (w) => {
1248
+ if (I || l)
1249
+ return;
1250
+ const P = w.nativeEvent.shiftKey;
1251
+ o && P ? t.expandSelectionRange(w, e) : t.selectItem({
1252
+ event: w,
1253
+ itemId: e,
1254
+ keepExistingSelection: o,
1255
+ shouldBeSelected: w.target.checked
1256
+ });
1257
+ }, b = (w) => {
1258
+ (w.shiftKey || w.ctrlKey || w.metaKey || l) && w.preventDefault();
1259
+ }, x = () => {
1260
+ re(t, K) && t.isItemEditable(e) && (t.isItemBeingEdited(e) ? t.setEditedItemId(null) : t.setEditedItemId(e));
1261
+ };
1262
+ return {
1263
+ disabled: l,
1264
+ expanded: u,
1265
+ selected: i,
1266
+ focused: c,
1267
+ editable: a,
1268
+ editing: m,
1269
+ disableSelection: I,
1270
+ checkboxSelection: r,
1271
+ handleExpansion: h,
1272
+ handleSelection: g,
1273
+ handleCheckboxSelection: f,
1274
+ handleContentClick: n,
1275
+ preventSelection: b,
1276
+ expansionTrigger: p,
1277
+ toggleItemEditing: x,
1278
+ handleSaveItemLabel: (w, P) => {
1279
+ re(t, K) && t.isItemBeingEditedRef(e) && (t.updateItemLabel(e, P), x(), t.focusItem(w, e));
1280
+ },
1281
+ handleCancelItemLabelEditing: (w) => {
1282
+ re(t, K) && t.isItemBeingEditedRef(e) && (x(), t.focusItem(w, e));
1283
+ }
1284
+ };
1285
+ }
1286
+ const $n = _("div", {
1287
+ name: "MuiTreeItem2DragAndDropOverlay",
1288
+ slot: "Root",
1289
+ overridesResolver: (e, t) => t.root,
1290
+ shouldForwardProp: (e) => pe(e) && e !== "action"
1291
+ })(({
1292
+ theme: e
1293
+ }) => ({
1294
+ position: "absolute",
1295
+ left: 0,
1296
+ display: "flex",
1297
+ top: 0,
1298
+ bottom: 0,
1299
+ right: 0,
1300
+ pointerEvents: "none",
1301
+ variants: [{
1302
+ props: {
1303
+ action: "make-child"
1304
+ },
1305
+ style: {
1306
+ marginLeft: "calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))",
1307
+ borderRadius: e.shape.borderRadius,
1308
+ backgroundColor: e.vars ? `rgba(${e.vars.palette.primary.darkChannel} / ${e.vars.palette.action.focusOpacity})` : J(e.palette.primary.dark, e.palette.action.focusOpacity)
1309
+ }
1310
+ }, {
1311
+ props: {
1312
+ action: "reorder-above"
1313
+ },
1314
+ style: {
1315
+ marginLeft: "calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))",
1316
+ borderTop: `1px solid ${(e.vars || e).palette.action.active}`
1317
+ }
1318
+ }, {
1319
+ props: {
1320
+ action: "reorder-below"
1321
+ },
1322
+ style: {
1323
+ marginLeft: "calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))",
1324
+ borderBottom: `1px solid ${(e.vars || e).palette.action.active}`
1325
+ }
1326
+ }, {
1327
+ props: {
1328
+ action: "move-to-parent"
1329
+ },
1330
+ style: {
1331
+ marginLeft: "calc(var(--TreeView-indentMultiplier) * calc(var(--TreeView-itemDepth) - 1))",
1332
+ borderBottom: `1px solid ${(e.vars || e).palette.action.active}`
1333
+ }
1334
+ }]
1335
+ }));
1336
+ function ze(e) {
1337
+ return e.action == null ? null : /* @__PURE__ */ v($n, C({}, e));
1338
+ }
1339
+ process.env.NODE_ENV !== "production" && (ze.propTypes = {
1340
+ // ----------------------------- Warning --------------------------------
1341
+ // | These PropTypes are generated from the TypeScript type definitions |
1342
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
1343
+ // ----------------------------------------------------------------------
1344
+ action: d.oneOf(["make-child", "move-to-parent", "reorder-above", "reorder-below"]),
1345
+ style: d.object
1346
+ });
1347
+ const Ct = _("input", {
1348
+ name: "MuiTreeItem2",
1349
+ slot: "LabelInput",
1350
+ overridesResolver: (e, t) => t.labelInput
1351
+ })(({
1352
+ theme: e
1353
+ }) => C({}, e.typography.body1, {
1354
+ width: "100%",
1355
+ backgroundColor: e.palette.background.paper,
1356
+ borderRadius: e.shape.borderRadius,
1357
+ border: "none",
1358
+ padding: "0 2px",
1359
+ boxSizing: "border-box",
1360
+ "&:focus": {
1361
+ outline: `1px solid ${e.palette.primary.main}`
1362
+ }
1363
+ })), Nn = ["classes", "className", "displayIcon", "expansionIcon", "icon", "label", "itemId", "onClick", "onMouseDown", "dragAndDropOverlayProps", "labelInputProps"], qe = /* @__PURE__ */ E.forwardRef(function(t, n) {
1364
+ const {
1365
+ classes: o,
1366
+ className: r,
1367
+ displayIcon: I,
1368
+ expansionIcon: p,
1369
+ icon: s,
1370
+ label: u,
1371
+ itemId: c,
1372
+ onClick: i,
1373
+ onMouseDown: l,
1374
+ dragAndDropOverlayProps: m,
1375
+ labelInputProps: a
1376
+ } = t, h = G(t, Nn), {
1377
+ disabled: g,
1378
+ expanded: f,
1379
+ selected: b,
1380
+ focused: x,
1381
+ editing: R,
1382
+ editable: M,
1383
+ disableSelection: w,
1384
+ checkboxSelection: P,
1385
+ handleExpansion: D,
1386
+ handleSelection: N,
1387
+ handleCheckboxSelection: z,
1388
+ handleContentClick: $,
1389
+ preventSelection: j,
1390
+ expansionTrigger: Q,
1391
+ toggleItemEditing: B
1392
+ } = Tt(c), q = s || p || I, X = E.useRef(null), ee = (A) => {
1393
+ j(A), l && l(A);
1394
+ }, Y = (A) => {
1395
+ var Z;
1396
+ $ == null || $(A, c), !((Z = X.current) != null && Z.contains(A.target)) && (Q === "content" && D(A), P || N(A), i && i(A));
1397
+ }, te = (A) => {
1398
+ A.defaultMuiPrevented || B();
1399
+ };
1400
+ return (
1401
+ /* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions -- Key event is handled by the TreeView */
1402
+ /* @__PURE__ */ de("div", C({}, h, {
1403
+ className: $e(o.root, r, f && o.expanded, b && o.selected, x && o.focused, g && o.disabled, R && o.editing, M && o.editable),
1404
+ onClick: Y,
1405
+ onMouseDown: ee,
1406
+ ref: n,
1407
+ children: [/* @__PURE__ */ v("div", {
1408
+ className: o.iconContainer,
1409
+ children: q
1410
+ }), P && /* @__PURE__ */ v(ct, {
1411
+ className: o.checkbox,
1412
+ checked: b,
1413
+ onChange: z,
1414
+ disabled: g || w,
1415
+ ref: X,
1416
+ tabIndex: -1
1417
+ }), R ? /* @__PURE__ */ v(Ct, C({}, a, {
1418
+ className: o.labelInput
1419
+ })) : /* @__PURE__ */ v("div", C({
1420
+ className: o.label
1421
+ }, M && {
1422
+ onDoubleClick: te
1423
+ }, {
1424
+ children: u
1425
+ })), m && /* @__PURE__ */ v(ze, C({}, m))]
1426
+ }))
1427
+ );
1428
+ });
1429
+ process.env.NODE_ENV !== "production" && (qe.propTypes = {
1430
+ // ----------------------------- Warning --------------------------------
1431
+ // | These PropTypes are generated from the TypeScript type definitions |
1432
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
1433
+ // ----------------------------------------------------------------------
1434
+ /**
1435
+ * Override or extend the styles applied to the component.
1436
+ */
1437
+ classes: d.object.isRequired,
1438
+ className: d.string,
1439
+ /**
1440
+ * The icon to display next to the Tree Item's label. Either a parent or end icon.
1441
+ */
1442
+ displayIcon: d.node,
1443
+ dragAndDropOverlayProps: d.shape({
1444
+ action: d.oneOf(["make-child", "move-to-parent", "reorder-above", "reorder-below"]),
1445
+ style: d.object
1446
+ }),
1447
+ /**
1448
+ * The icon to display next to the Tree Item's label. Either an expansion or collapse icon.
1449
+ */
1450
+ expansionIcon: d.node,
1451
+ /**
1452
+ * The icon to display next to the Tree Item's label.
1453
+ */
1454
+ icon: d.node,
1455
+ /**
1456
+ * The id of the item.
1457
+ */
1458
+ itemId: d.string.isRequired,
1459
+ /**
1460
+ * The Tree Item label.
1461
+ */
1462
+ label: d.node,
1463
+ labelInputProps: d.shape({
1464
+ autoFocus: d.oneOf([!0]),
1465
+ "data-element": d.oneOf(["labelInput"]),
1466
+ onBlur: d.func,
1467
+ onChange: d.func,
1468
+ onKeyDown: d.func,
1469
+ type: d.oneOf(["text"]),
1470
+ value: d.string
1471
+ })
1472
+ });
1473
+ function Et(e) {
1474
+ return st("MuiTreeItem", e);
1475
+ }
1476
+ const W = lt("MuiTreeItem", ["root", "groupTransition", "content", "expanded", "selected", "focused", "disabled", "iconContainer", "label", "checkbox", "labelInput", "editable", "editing", "dragAndDropOverlay"]), wt = ue(/* @__PURE__ */ v("path", {
1477
+ d: "M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"
1478
+ }), "TreeViewExpandIcon"), Rt = ue(/* @__PURE__ */ v("path", {
1479
+ d: "M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"
1480
+ }), "TreeViewCollapseIcon");
1481
+ function ke(e) {
1482
+ const {
1483
+ children: t,
1484
+ itemId: n
1485
+ } = e, {
1486
+ wrapItem: o,
1487
+ instance: r
1488
+ } = ie();
1489
+ return o({
1490
+ children: t,
1491
+ itemId: n,
1492
+ instance: r
1493
+ });
1494
+ }
1495
+ ke.propTypes = {
1496
+ // ----------------------------- Warning --------------------------------
1497
+ // | These PropTypes are generated from the TypeScript type definitions |
1498
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
1499
+ // ----------------------------------------------------------------------
1500
+ children: d.node,
1501
+ itemId: d.string.isRequired
1502
+ };
1503
+ const jn = ["children", "className", "slots", "slotProps", "ContentComponent", "ContentProps", "itemId", "id", "label", "onClick", "onMouseDown", "onFocus", "onBlur", "onKeyDown"], Kn = ["ownerState"], _n = ["ownerState"], Bn = ["ownerState"], Un = je(), zn = (e) => {
1504
+ const {
1505
+ classes: t
1506
+ } = e;
1507
+ return Ne({
1508
+ root: ["root"],
1509
+ content: ["content"],
1510
+ expanded: ["expanded"],
1511
+ selected: ["selected"],
1512
+ focused: ["focused"],
1513
+ disabled: ["disabled"],
1514
+ iconContainer: ["iconContainer"],
1515
+ checkbox: ["checkbox"],
1516
+ label: ["label"],
1517
+ labelInput: ["labelInput"],
1518
+ editing: ["editing"],
1519
+ editable: ["editable"],
1520
+ groupTransition: ["groupTransition"]
1521
+ }, Et, t);
1522
+ }, qn = _("li", {
1523
+ name: "MuiTreeItem",
1524
+ slot: "Root",
1525
+ overridesResolver: (e, t) => t.root
1526
+ })({
1527
+ listStyle: "none",
1528
+ margin: 0,
1529
+ padding: 0,
1530
+ outline: 0
1531
+ }), Gn = _(qe, {
1532
+ name: "MuiTreeItem",
1533
+ slot: "Content",
1534
+ overridesResolver: (e, t) => [t.content, t.iconContainer && {
1535
+ [`& .${W.iconContainer}`]: t.iconContainer
1536
+ }, t.label && {
1537
+ [`& .${W.label}`]: t.label
1538
+ }],
1539
+ shouldForwardProp: (e) => pe(e) && e !== "indentationAtItemLevel"
1540
+ })(({
1541
+ theme: e
1542
+ }) => ({
1543
+ padding: e.spacing(0.5, 1),
1544
+ borderRadius: e.shape.borderRadius,
1545
+ width: "100%",
1546
+ boxSizing: "border-box",
1547
+ // prevent width + padding to overflow
1548
+ position: "relative",
1549
+ display: "flex",
1550
+ alignItems: "center",
1551
+ gap: e.spacing(1),
1552
+ cursor: "pointer",
1553
+ WebkitTapHighlightColor: "transparent",
1554
+ "&:hover": {
1555
+ backgroundColor: (e.vars || e).palette.action.hover,
1556
+ // Reset on touch devices, it doesn't add specificity
1557
+ "@media (hover: none)": {
1558
+ backgroundColor: "transparent"
1559
+ }
1560
+ },
1561
+ [`&.${W.disabled}`]: {
1562
+ opacity: (e.vars || e).palette.action.disabledOpacity,
1563
+ backgroundColor: "transparent"
1564
+ },
1565
+ [`&.${W.focused}`]: {
1566
+ backgroundColor: (e.vars || e).palette.action.focus
1567
+ },
1568
+ [`&.${W.selected}`]: {
1569
+ backgroundColor: e.vars ? `rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})` : J(e.palette.primary.main, e.palette.action.selectedOpacity),
1570
+ "&:hover": {
1571
+ backgroundColor: e.vars ? `rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))` : J(e.palette.primary.main, e.palette.action.selectedOpacity + e.palette.action.hoverOpacity),
1572
+ // Reset on touch devices, it doesn't add specificity
1573
+ "@media (hover: none)": {
1574
+ backgroundColor: e.vars ? `rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})` : J(e.palette.primary.main, e.palette.action.selectedOpacity)
1575
+ }
1576
+ },
1577
+ [`&.${W.focused}`]: {
1578
+ backgroundColor: e.vars ? `rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))` : J(e.palette.primary.main, e.palette.action.selectedOpacity + e.palette.action.focusOpacity)
1579
+ }
1580
+ },
1581
+ [`& .${W.iconContainer}`]: {
1582
+ width: 16,
1583
+ display: "flex",
1584
+ flexShrink: 0,
1585
+ justifyContent: "center",
1586
+ "& svg": {
1587
+ fontSize: 18
1588
+ }
1589
+ },
1590
+ [`& .${W.label}`]: C({
1591
+ width: "100%",
1592
+ boxSizing: "border-box",
1593
+ // prevent width + padding to overflow
1594
+ // fixes overflow - see https://github.com/mui/material-ui/issues/27372
1595
+ minWidth: 0,
1596
+ position: "relative"
1597
+ }, e.typography.body1),
1598
+ [`& .${W.checkbox}`]: {
1599
+ padding: 0
1600
+ },
1601
+ variants: [{
1602
+ props: {
1603
+ indentationAtItemLevel: !0
1604
+ },
1605
+ style: {
1606
+ paddingLeft: `calc(${e.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`
1607
+ }
1608
+ }]
1609
+ })), Xn = _(at, {
1610
+ name: "MuiTreeItem",
1611
+ slot: "GroupTransition",
1612
+ overridesResolver: (e, t) => t.groupTransition,
1613
+ shouldForwardProp: (e) => pe(e) && e !== "indentationAtItemLevel"
1614
+ })({
1615
+ margin: 0,
1616
+ padding: 0,
1617
+ paddingLeft: "var(--TreeView-itemChildrenIndentation)",
1618
+ variants: [{
1619
+ props: {
1620
+ indentationAtItemLevel: !0
1621
+ },
1622
+ style: {
1623
+ paddingLeft: 0
1624
+ }
1625
+ }]
1626
+ }), vt = /* @__PURE__ */ E.forwardRef(function(t, n) {
1627
+ var Qe, Ye, Ze, He;
1628
+ const {
1629
+ icons: o,
1630
+ runItemPlugins: r,
1631
+ items: {
1632
+ disabledItemsFocusable: I,
1633
+ indentationAtItemLevel: p
1634
+ },
1635
+ selection: {
1636
+ disableSelection: s
1637
+ },
1638
+ expansion: {
1639
+ expansionTrigger: u
1640
+ },
1641
+ treeId: c,
1642
+ instance: i
1643
+ } = ie(), l = E.useContext(Pe), m = Un({
1644
+ props: t,
1645
+ name: "MuiTreeItem"
1646
+ }), {
1647
+ children: a,
1648
+ className: h,
1649
+ slots: g,
1650
+ slotProps: f,
1651
+ ContentComponent: b = qe,
1652
+ ContentProps: x,
1653
+ itemId: R,
1654
+ id: M,
1655
+ label: w,
1656
+ onClick: P,
1657
+ onMouseDown: D,
1658
+ onBlur: N,
1659
+ onKeyDown: z
1660
+ } = m, $ = G(m, jn), {
1661
+ expanded: j,
1662
+ focused: Q,
1663
+ selected: B,
1664
+ disabled: q,
1665
+ editing: X,
1666
+ handleExpansion: ee,
1667
+ handleCancelItemLabelEditing: Y,
1668
+ handleSaveItemLabel: te
1669
+ } = Tt(R);
1670
+ process.env.NODE_ENV !== "production" && (m.ContentComponent && ve(["MUI X: The ContentComponent prop of the TreeItem component is deprecated and will be removed in the next major release.", "You can use the new TreeItem2 component or the new useTreeItem2 hook to customize the rendering of the content.", "For more detail, see https://mui.com/x/react-tree-view/tree-item-customization/."]), m.ContentProps && ve(["MUI X: The ContentProps prop of the TreeItem component is deprecated and will be removed in the next major release.", "You can use the new TreeItem2 component or the new useTreeItem2 hook to customize the rendering of the content.", "For more detail, see https://mui.com/x/react-tree-view/tree-item-customization/."]));
1671
+ const {
1672
+ contentRef: A,
1673
+ rootRef: Z,
1674
+ propsEnhancers: L
1675
+ } = r(m), ne = E.useRef(null), De = E.useRef(null), Ge = Ie(n, Z, ne), Xe = Ie(x == null ? void 0 : x.ref, A, De), se = {
1676
+ expandIcon: (g == null ? void 0 : g.expandIcon) ?? o.slots.expandIcon ?? wt,
1677
+ collapseIcon: (g == null ? void 0 : g.collapseIcon) ?? o.slots.collapseIcon ?? Rt,
1678
+ endIcon: (g == null ? void 0 : g.endIcon) ?? o.slots.endIcon,
1679
+ icon: g == null ? void 0 : g.icon,
1680
+ groupTransition: g == null ? void 0 : g.groupTransition
1681
+ }, Oe = (k) => Array.isArray(k) ? k.length > 0 && k.some(Oe) : !!k, fe = Oe(a), xe = C({}, m, {
1682
+ expanded: j,
1683
+ focused: Q,
1684
+ selected: B,
1685
+ disabled: q,
1686
+ indentationAtItemLevel: p
1687
+ }), T = zn(xe), y = se.groupTransition ?? void 0, S = V({
1688
+ elementType: y,
1689
+ ownerState: {},
1690
+ externalSlotProps: f == null ? void 0 : f.groupTransition,
1691
+ additionalProps: C({
1692
+ unmountOnExit: !0,
1693
+ in: j,
1694
+ component: "ul",
1695
+ role: "group"
1696
+ }, p ? {
1697
+ indentationAtItemLevel: !0
1698
+ } : {}),
1699
+ className: T.groupTransition
1700
+ }), O = (k) => {
1701
+ u === "iconContainer" && ee(k);
1702
+ }, F = j ? se.collapseIcon : se.expandIcon, oe = V({
1703
+ elementType: F,
1704
+ ownerState: {},
1705
+ externalSlotProps: (k) => j ? C({}, H(o.slotProps.collapseIcon, k), H(f == null ? void 0 : f.collapseIcon, k)) : C({}, H(o.slotProps.expandIcon, k), H(f == null ? void 0 : f.expandIcon, k)),
1706
+ additionalProps: {
1707
+ onClick: O
1708
+ }
1709
+ }), ye = G(oe, Kn), Te = fe && F ? /* @__PURE__ */ v(F, C({}, ye)) : null, Ae = fe ? void 0 : se.endIcon, Nt = V({
1710
+ elementType: Ae,
1711
+ ownerState: {},
1712
+ externalSlotProps: (k) => fe ? {} : C({}, H(o.slotProps.endIcon, k), H(f == null ? void 0 : f.endIcon, k))
1713
+ }), jt = G(Nt, _n), Kt = Ae ? /* @__PURE__ */ v(Ae, C({}, jt)) : null, Le = se.icon, _t = V({
1714
+ elementType: Le,
1715
+ ownerState: {},
1716
+ externalSlotProps: f == null ? void 0 : f.icon
1717
+ }), Bt = G(_t, Bn), Ut = Le ? /* @__PURE__ */ v(Le, C({}, Bt)) : null;
1718
+ let Ce;
1719
+ B ? Ce = !0 : s || q ? Ce = void 0 : Ce = !1;
1720
+ function zt(k) {
1721
+ !Q && (!q || I) && k.currentTarget === k.target && i.focusItem(k, R);
1722
+ }
1723
+ function qt(k) {
1724
+ var le, me, et, tt;
1725
+ N == null || N(k), !(X || // we can exit the editing state by clicking outside the input (within the Tree Item) or by pressing Enter or Escape -> we don't want to remove the focused item from the state in these cases
1726
+ // we can also exit the editing state by clicking on the root itself -> want to remove the focused item from the state in this case
1727
+ k.relatedTarget && be(k.relatedTarget, ne.current) && (k.target && ((me = (le = k.target) == null ? void 0 : le.dataset) == null ? void 0 : me.element) === "labelInput" && be(k.target, ne.current) || ((tt = (et = k.relatedTarget) == null ? void 0 : et.dataset) == null ? void 0 : tt.element) === "labelInput")) && i.removeFocusedItem();
1728
+ }
1729
+ const Gt = (k) => {
1730
+ var le, me;
1731
+ z == null || z(k), ((me = (le = k.target) == null ? void 0 : le.dataset) == null ? void 0 : me.element) !== "labelInput" && i.handleItemKeyDown(k, R);
1732
+ }, Xt = Ke({
1733
+ itemId: R,
1734
+ treeId: c,
1735
+ id: M
1736
+ }), Wt = i.canItemBeTabbed(R) ? 0 : -1, Ee = {
1737
+ rootRefObject: ne,
1738
+ contentRefObject: De,
1739
+ interactions: {
1740
+ handleSaveItemLabel: te,
1741
+ handleCancelItemLabelEditing: Y
1742
+ }
1743
+ }, Jt = ((Qe = L.root) == null ? void 0 : Qe.call(L, C({}, Ee, {
1744
+ externalEventHandlers: U($)
1745
+ }))) ?? {}, Qt = ((Ye = L.content) == null ? void 0 : Ye.call(L, C({}, Ee, {
1746
+ externalEventHandlers: U(x)
1747
+ }))) ?? {}, We = ((Ze = L.dragAndDropOverlay) == null ? void 0 : Ze.call(L, C({}, Ee, {
1748
+ externalEventHandlers: {}
1749
+ }))) ?? {}, Je = ((He = L.labelInput) == null ? void 0 : He.call(L, C({}, Ee, {
1750
+ externalEventHandlers: {}
1751
+ }))) ?? {};
1752
+ return /* @__PURE__ */ v(ke, {
1753
+ itemId: R,
1754
+ children: /* @__PURE__ */ de(qn, C({
1755
+ className: $e(T.root, h),
1756
+ role: "treeitem",
1757
+ "aria-expanded": fe ? j : void 0,
1758
+ "aria-selected": Ce,
1759
+ "aria-disabled": q || void 0,
1760
+ id: Xt,
1761
+ tabIndex: Wt
1762
+ }, $, {
1763
+ ownerState: xe,
1764
+ onFocus: zt,
1765
+ onBlur: qt,
1766
+ onKeyDown: Gt,
1767
+ ref: Ge,
1768
+ style: p ? C({}, $.style, {
1769
+ "--TreeView-itemDepth": typeof l == "function" ? l(R) : l
1770
+ }) : $.style
1771
+ }, Jt, {
1772
+ children: [/* @__PURE__ */ v(Gn, C({
1773
+ as: b,
1774
+ classes: {
1775
+ root: T.content,
1776
+ expanded: T.expanded,
1777
+ selected: T.selected,
1778
+ focused: T.focused,
1779
+ disabled: T.disabled,
1780
+ editable: T.editable,
1781
+ editing: T.editing,
1782
+ iconContainer: T.iconContainer,
1783
+ label: T.label,
1784
+ labelInput: T.labelInput,
1785
+ checkbox: T.checkbox
1786
+ },
1787
+ label: w,
1788
+ itemId: R,
1789
+ onClick: P,
1790
+ onMouseDown: D,
1791
+ icon: Ut,
1792
+ expansionIcon: Te,
1793
+ displayIcon: Kt,
1794
+ ownerState: xe
1795
+ }, x, Qt, We.action == null ? {} : {
1796
+ dragAndDropOverlayProps: We
1797
+ }, Je.value == null ? {} : {
1798
+ labelInputProps: Je
1799
+ }, {
1800
+ ref: Xe
1801
+ })), a && /* @__PURE__ */ v(Xn, C({
1802
+ as: y
1803
+ }, S, {
1804
+ children: a
1805
+ }))]
1806
+ }))
1807
+ });
1808
+ });
1809
+ process.env.NODE_ENV !== "production" && (vt.propTypes = {
1810
+ // ----------------------------- Warning --------------------------------
1811
+ // | These PropTypes are generated from the TypeScript type definitions |
1812
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
1813
+ // ----------------------------------------------------------------------
1814
+ /**
1815
+ * The content of the component.
1816
+ */
1817
+ children: d.node,
1818
+ /**
1819
+ * Override or extend the styles applied to the component.
1820
+ */
1821
+ classes: d.object,
1822
+ className: d.string,
1823
+ /**
1824
+ * The component used to render the content of the item.
1825
+ * @deprecated Consider using the `<TreeItem2 />` component or the `useTreeItem2` hook instead. For more details, see https://mui.com/x/react-tree-view/tree-item-customization/.
1826
+ * @default TreeItemContent
1827
+ */
1828
+ ContentComponent: on,
1829
+ /**
1830
+ * Props applied to ContentComponent.
1831
+ * @deprecated Consider using the `<TreeItem2 />` component or the `useTreeItem2` hook instead. For more details, see https://mui.com/x/react-tree-view/tree-item-customization/.
1832
+ */
1833
+ ContentProps: d.object,
1834
+ /**
1835
+ * If `true`, the item is disabled.
1836
+ * @default false
1837
+ */
1838
+ disabled: d.bool,
1839
+ /**
1840
+ * The id of the item.
1841
+ */
1842
+ itemId: d.string.isRequired,
1843
+ /**
1844
+ * The Tree Item label.
1845
+ */
1846
+ label: d.node,
1847
+ /**
1848
+ * This prop isn't supported.
1849
+ * Use the `onItemFocus` callback on the tree if you need to monitor a item's focus.
1850
+ */
1851
+ onFocus: dt,
1852
+ /**
1853
+ * Callback fired when a key of the keyboard is pressed on the item.
1854
+ */
1855
+ onKeyDown: d.func,
1856
+ /**
1857
+ * The props used for each component slot.
1858
+ * @default {}
1859
+ */
1860
+ slotProps: d.object,
1861
+ /**
1862
+ * Overridable component slots.
1863
+ * @default {}
1864
+ */
1865
+ slots: d.object,
1866
+ /**
1867
+ * The system prop that allows defining system overrides as well as additional CSS styles.
1868
+ */
1869
+ sx: d.oneOfType([d.arrayOf(d.oneOfType([d.func, d.object, d.bool])), d.func, d.object])
1870
+ });
1871
+ const Wn = ["ownerState"];
1872
+ function Jn({
1873
+ slots: e,
1874
+ slotProps: t,
1875
+ label: n,
1876
+ id: o,
1877
+ itemId: r,
1878
+ itemsToRender: I
1879
+ }) {
1880
+ const p = (e == null ? void 0 : e.item) ?? vt, s = V({
1881
+ elementType: p,
1882
+ externalSlotProps: t == null ? void 0 : t.item,
1883
+ additionalProps: {
1884
+ itemId: r,
1885
+ id: o,
1886
+ label: n
1887
+ },
1888
+ ownerState: {
1889
+ itemId: r,
1890
+ label: n
1891
+ }
1892
+ }), u = G(s, Wn), c = E.useMemo(() => I ? /* @__PURE__ */ v(Pt, {
1893
+ itemsToRender: I,
1894
+ slots: e,
1895
+ slotProps: t
1896
+ }) : null, [I, e, t]);
1897
+ return /* @__PURE__ */ v(p, C({}, u, {
1898
+ children: c
1899
+ }));
1900
+ }
1901
+ function Pt(e) {
1902
+ const {
1903
+ itemsToRender: t,
1904
+ slots: n,
1905
+ slotProps: o
1906
+ } = e;
1907
+ return /* @__PURE__ */ v(E.Fragment, {
1908
+ children: t.map((r) => /* @__PURE__ */ v(Jn, {
1909
+ slots: n,
1910
+ slotProps: o,
1911
+ label: r.label,
1912
+ id: r.id,
1913
+ itemId: r.itemId,
1914
+ itemsToRender: r.children
1915
+ }, r.itemId))
1916
+ });
1917
+ }
1918
+ const Qn = je(), Yn = (e) => {
1919
+ const {
1920
+ classes: t
1921
+ } = e;
1922
+ return Ne({
1923
+ root: ["root"]
1924
+ }, an, t);
1925
+ }, Zn = _("ul", {
1926
+ name: "MuiRichTreeView",
1927
+ slot: "Root",
1928
+ overridesResolver: (e, t) => t.root
1929
+ })({
1930
+ padding: 0,
1931
+ margin: 0,
1932
+ listStyle: "none",
1933
+ outline: 0,
1934
+ position: "relative"
1935
+ }), St = /* @__PURE__ */ E.forwardRef(function(t, n) {
1936
+ const o = Qn({
1937
+ props: t,
1938
+ name: "MuiRichTreeView"
1939
+ });
1940
+ process.env.NODE_ENV !== "production" && o.children != null && ve(["MUI X: The Rich Tree View component does not support JSX children.", "If you want to add items, you need to use the `items` prop.", "Check the documentation for more details: https://mui.com/x/react-tree-view/rich-tree-view/items/."]);
1941
+ const {
1942
+ getRootProps: r,
1943
+ contextValue: I,
1944
+ instance: p
1945
+ } = hn({
1946
+ plugins: Fn,
1947
+ rootRef: n,
1948
+ props: o
1949
+ }), {
1950
+ slots: s,
1951
+ slotProps: u
1952
+ } = o, c = Yn(o), i = (s == null ? void 0 : s.root) ?? Zn, l = V({
1953
+ elementType: i,
1954
+ externalSlotProps: u == null ? void 0 : u.root,
1955
+ className: c.root,
1956
+ getSlotProps: r,
1957
+ ownerState: o
1958
+ });
1959
+ return /* @__PURE__ */ v(xn, {
1960
+ value: I,
1961
+ children: /* @__PURE__ */ v(i, C({}, l, {
1962
+ children: /* @__PURE__ */ v(Pt, {
1963
+ slots: s,
1964
+ slotProps: u,
1965
+ itemsToRender: p.getItemsToRender()
1966
+ })
1967
+ }))
1968
+ });
1969
+ });
1970
+ process.env.NODE_ENV !== "production" && (St.propTypes = {
1971
+ // ----------------------------- Warning --------------------------------
1972
+ // | These PropTypes are generated from the TypeScript type definitions |
1973
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
1974
+ // ----------------------------------------------------------------------
1975
+ /**
1976
+ * The ref object that allows Tree View manipulation. Can be instantiated with `useTreeViewApiRef()`.
1977
+ */
1978
+ apiRef: d.shape({
1979
+ current: d.shape({
1980
+ focusItem: d.func.isRequired,
1981
+ getItem: d.func.isRequired,
1982
+ getItemDOMElement: d.func.isRequired,
1983
+ getItemOrderedChildrenIds: d.func.isRequired,
1984
+ getItemTree: d.func.isRequired,
1985
+ selectItem: d.func.isRequired,
1986
+ setItemExpansion: d.func.isRequired,
1987
+ updateItemLabel: d.func.isRequired
1988
+ })
1989
+ }),
1990
+ /**
1991
+ * If `true`, the Tree View renders a checkbox at the left of its label that allows selecting it.
1992
+ * @default false
1993
+ */
1994
+ checkboxSelection: d.bool,
1995
+ /**
1996
+ * Override or extend the styles applied to the component.
1997
+ */
1998
+ classes: d.object,
1999
+ className: d.string,
2000
+ /**
2001
+ * Expanded item ids.
2002
+ * Used when the item's expansion is not controlled.
2003
+ * @default []
2004
+ */
2005
+ defaultExpandedItems: d.arrayOf(d.string),
2006
+ /**
2007
+ * Selected item ids. (Uncontrolled)
2008
+ * When `multiSelect` is true this takes an array of strings; when false (default) a string.
2009
+ * @default []
2010
+ */
2011
+ defaultSelectedItems: d.any,
2012
+ /**
2013
+ * If `true`, will allow focus on disabled items.
2014
+ * @default false
2015
+ */
2016
+ disabledItemsFocusable: d.bool,
2017
+ /**
2018
+ * If `true` selection is disabled.
2019
+ * @default false
2020
+ */
2021
+ disableSelection: d.bool,
2022
+ /**
2023
+ * Expanded item ids.
2024
+ * Used when the item's expansion is controlled.
2025
+ */
2026
+ expandedItems: d.arrayOf(d.string),
2027
+ /**
2028
+ * The slot that triggers the item's expansion when clicked.
2029
+ * @default 'content'
2030
+ */
2031
+ expansionTrigger: d.oneOf(["content", "iconContainer"]),
2032
+ /**
2033
+ * Unstable features, breaking changes might be introduced.
2034
+ * For each feature, if the flag is not explicitly set to `true`,
2035
+ * the feature will be fully disabled and any property / method call will not have any effect.
2036
+ */
2037
+ experimentalFeatures: d.shape({
2038
+ indentationAtItemLevel: d.bool,
2039
+ labelEditing: d.bool
2040
+ }),
2041
+ /**
2042
+ * Used to determine the id of a given item.
2043
+ *
2044
+ * @template R
2045
+ * @param {R} item The item to check.
2046
+ * @returns {string} The id of the item.
2047
+ * @default (item) => item.id
2048
+ */
2049
+ getItemId: d.func,
2050
+ /**
2051
+ * Used to determine the string label for a given item.
2052
+ *
2053
+ * @template R
2054
+ * @param {R} item The item to check.
2055
+ * @returns {string} The label of the item.
2056
+ * @default (item) => item.label
2057
+ */
2058
+ getItemLabel: d.func,
2059
+ /**
2060
+ * This prop is used to help implement the accessibility logic.
2061
+ * If you don't provide this prop. It falls back to a randomly generated id.
2062
+ */
2063
+ id: d.string,
2064
+ /**
2065
+ * Used to determine if a given item should be disabled.
2066
+ * @template R
2067
+ * @param {R} item The item to check.
2068
+ * @returns {boolean} `true` if the item should be disabled.
2069
+ */
2070
+ isItemDisabled: d.func,
2071
+ /**
2072
+ * Determines if a given item is editable or not.
2073
+ * Make sure to also enable the `labelEditing` experimental feature:
2074
+ * `<RichTreeViewPro experimentalFeatures={{ labelEditing: true }} />`.
2075
+ * By default, the items are not editable.
2076
+ * @template R
2077
+ * @param {R} item The item to check.
2078
+ * @returns {boolean} `true` if the item is editable.
2079
+ */
2080
+ isItemEditable: d.oneOfType([d.func, d.bool]),
2081
+ /**
2082
+ * Horizontal indentation between an item and its children.
2083
+ * Examples: 24, "24px", "2rem", "2em".
2084
+ * @default 12px
2085
+ */
2086
+ itemChildrenIndentation: d.oneOfType([d.number, d.string]),
2087
+ items: d.array.isRequired,
2088
+ /**
2089
+ * If `true`, `ctrl` and `shift` will trigger multiselect.
2090
+ * @default false
2091
+ */
2092
+ multiSelect: d.bool,
2093
+ /**
2094
+ * Callback fired when Tree Items are expanded/collapsed.
2095
+ * @param {React.SyntheticEvent} event The DOM event that triggered the change.
2096
+ * @param {array} itemIds The ids of the expanded items.
2097
+ */
2098
+ onExpandedItemsChange: d.func,
2099
+ /**
2100
+ * Callback fired when the `content` slot of a given Tree Item is clicked.
2101
+ * @param {React.MouseEvent} event The DOM event that triggered the change.
2102
+ * @param {string} itemId The id of the focused item.
2103
+ */
2104
+ onItemClick: d.func,
2105
+ /**
2106
+ * Callback fired when a Tree Item is expanded or collapsed.
2107
+ * @param {React.SyntheticEvent} event The DOM event that triggered the change.
2108
+ * @param {array} itemId The itemId of the modified item.
2109
+ * @param {array} isExpanded `true` if the item has just been expanded, `false` if it has just been collapsed.
2110
+ */
2111
+ onItemExpansionToggle: d.func,
2112
+ /**
2113
+ * Callback fired when a given Tree Item is focused.
2114
+ * @param {React.SyntheticEvent | null} event The DOM event that triggered the change. **Warning**: This is a generic event not a focus event.
2115
+ * @param {string} itemId The id of the focused item.
2116
+ */
2117
+ onItemFocus: d.func,
2118
+ /**
2119
+ * Callback fired when the label of an item changes.
2120
+ * @param {TreeViewItemId} itemId The id of the item that was edited.
2121
+ * @param {string} newLabel The new label of the items.
2122
+ */
2123
+ onItemLabelChange: d.func,
2124
+ /**
2125
+ * Callback fired when a Tree Item is selected or deselected.
2126
+ * @param {React.SyntheticEvent} event The DOM event that triggered the change.
2127
+ * @param {array} itemId The itemId of the modified item.
2128
+ * @param {array} isSelected `true` if the item has just been selected, `false` if it has just been deselected.
2129
+ */
2130
+ onItemSelectionToggle: d.func,
2131
+ /**
2132
+ * Callback fired when Tree Items are selected/deselected.
2133
+ * @param {React.SyntheticEvent} event The DOM event that triggered the change.
2134
+ * @param {string[] | string} itemIds The ids of the selected items.
2135
+ * When `multiSelect` is `true`, this is an array of strings; when false (default) a string.
2136
+ */
2137
+ onSelectedItemsChange: d.func,
2138
+ /**
2139
+ * Selected item ids. (Controlled)
2140
+ * When `multiSelect` is true this takes an array of strings; when false (default) a string.
2141
+ */
2142
+ selectedItems: d.any,
2143
+ /**
2144
+ * The props used for each component slot.
2145
+ * @default {}
2146
+ */
2147
+ slotProps: d.object,
2148
+ /**
2149
+ * Overridable component slots.
2150
+ * @default {}
2151
+ */
2152
+ slots: d.object,
2153
+ /**
2154
+ * The system prop that allows defining system overrides as well as additional CSS styles.
2155
+ */
2156
+ sx: d.oneOfType([d.arrayOf(d.oneOfType([d.func, d.object, d.bool])), d.func, d.object])
2157
+ });
2158
+ const Mt = (e) => Array.isArray(e) ? e.length > 0 && e.some(Mt) : !!e, Hn = ({
2159
+ itemId: e,
2160
+ children: t
2161
+ }) => {
2162
+ const {
2163
+ instance: n,
2164
+ selection: {
2165
+ multiSelect: o
2166
+ },
2167
+ publicAPI: r
2168
+ } = ie(), I = {
2169
+ expandable: Mt(t),
2170
+ expanded: n.isItemExpanded(e),
2171
+ focused: n.isItemFocused(e),
2172
+ selected: n.isItemSelected(e),
2173
+ disabled: n.isItemDisabled(e),
2174
+ editing: n != null && n.isItemBeingEdited ? n == null ? void 0 : n.isItemBeingEdited(e) : !1,
2175
+ editable: n.isItemEditable ? n.isItemEditable(e) : !1
2176
+ }, p = (a) => {
2177
+ if (I.disabled)
2178
+ return;
2179
+ I.focused || n.focusItem(a, e);
2180
+ const h = o && (a.shiftKey || a.ctrlKey || a.metaKey);
2181
+ I.expandable && !(h && n.isItemExpanded(e)) && n.toggleItemExpansion(a, e);
2182
+ }, s = (a) => {
2183
+ if (I.disabled)
2184
+ return;
2185
+ I.focused || n.focusItem(a, e), o && (a.shiftKey || a.ctrlKey || a.metaKey) ? a.shiftKey ? n.expandSelectionRange(a, e) : n.selectItem({
2186
+ event: a,
2187
+ itemId: e,
2188
+ keepExistingSelection: !0
2189
+ }) : n.selectItem({
2190
+ event: a,
2191
+ itemId: e,
2192
+ shouldBeSelected: !0
2193
+ });
2194
+ }, u = (a) => {
2195
+ const h = a.nativeEvent.shiftKey;
2196
+ o && h ? n.expandSelectionRange(a, e) : n.selectItem({
2197
+ event: a,
2198
+ itemId: e,
2199
+ keepExistingSelection: o,
2200
+ shouldBeSelected: a.target.checked
2201
+ });
2202
+ }, c = () => {
2203
+ re(n, K) && n.isItemEditable(e) && (n.isItemBeingEdited(e) ? n.setEditedItemId(null) : n.setEditedItemId(e));
2204
+ };
2205
+ return {
2206
+ interactions: {
2207
+ handleExpansion: p,
2208
+ handleSelection: s,
2209
+ handleCheckboxSelection: u,
2210
+ toggleItemEditing: c,
2211
+ handleSaveItemLabel: (a, h) => {
2212
+ re(n, K) && n.isItemBeingEditedRef(e) && (n.updateItemLabel(e, h), c(), n.focusItem(a, e));
2213
+ },
2214
+ handleCancelItemLabelEditing: (a) => {
2215
+ re(n, K) && n.isItemBeingEditedRef(e) && (c(), n.focusItem(a, e));
2216
+ }
2217
+ },
2218
+ status: I,
2219
+ publicAPI: r
2220
+ };
2221
+ }, eo = (e) => {
2222
+ const {
2223
+ runItemPlugins: t,
2224
+ items: {
2225
+ onItemClick: n,
2226
+ disabledItemsFocusable: o,
2227
+ indentationAtItemLevel: r
2228
+ },
2229
+ selection: {
2230
+ disableSelection: I,
2231
+ checkboxSelection: p
2232
+ },
2233
+ expansion: {
2234
+ expansionTrigger: s
2235
+ },
2236
+ treeId: u,
2237
+ instance: c,
2238
+ publicAPI: i
2239
+ } = ie(), l = E.useContext(Pe), {
2240
+ id: m,
2241
+ itemId: a,
2242
+ label: h,
2243
+ children: g,
2244
+ rootRef: f
2245
+ } = e, {
2246
+ rootRef: b,
2247
+ contentRef: x,
2248
+ propsEnhancers: R
2249
+ } = t(e), {
2250
+ interactions: M,
2251
+ status: w
2252
+ } = Hn({
2253
+ itemId: a,
2254
+ children: g
2255
+ }), P = E.useRef(null), D = E.useRef(null), N = Ie(f, b, P), z = Ie(x, D), $ = E.useRef(null), j = Ke({
2256
+ itemId: a,
2257
+ treeId: u,
2258
+ id: m
2259
+ }), Q = c.canItemBeTabbed(a) ? 0 : -1, B = {
2260
+ rootRefObject: P,
2261
+ contentRefObject: D,
2262
+ interactions: M
2263
+ }, q = (T) => (y) => {
2264
+ var O;
2265
+ if ((O = T.onFocus) == null || O.call(T, y), y.defaultMuiPrevented)
2266
+ return;
2267
+ const S = !w.disabled || o;
2268
+ !w.focused && S && y.currentTarget === y.target && c.focusItem(y, a);
2269
+ }, X = (T) => (y) => {
2270
+ var O, F, oe, ye, Te;
2271
+ if ((O = T.onBlur) == null || O.call(T, y), y.defaultMuiPrevented)
2272
+ return;
2273
+ const S = c.getItemDOMElement(a);
2274
+ w.editing || // we can exit the editing state by clicking outside the input (within the Tree Item) or by pressing Enter or Escape -> we don't want to remove the focused item from the state in these cases
2275
+ // we can also exit the editing state by clicking on the root itself -> want to remove the focused item from the state in this case
2276
+ y.relatedTarget && be(y.relatedTarget, S) && (y.target && ((oe = (F = y.target) == null ? void 0 : F.dataset) == null ? void 0 : oe.element) === "labelInput" && be(y.target, S) || ((Te = (ye = y.relatedTarget) == null ? void 0 : ye.dataset) == null ? void 0 : Te.element) === "labelInput") || c.removeFocusedItem();
2277
+ }, ee = (T) => (y) => {
2278
+ var S, O, F;
2279
+ (S = T.onKeyDown) == null || S.call(T, y), !(y.defaultMuiPrevented || ((F = (O = y.target) == null ? void 0 : O.dataset) == null ? void 0 : F.element) === "labelInput") && c.handleItemKeyDown(y, a);
2280
+ }, Y = (T) => (y) => {
2281
+ var S;
2282
+ (S = T.onDoubleClick) == null || S.call(T, y), !y.defaultMuiPrevented && M.toggleItemEditing();
2283
+ }, te = (T) => (y) => {
2284
+ var S, O;
2285
+ (S = T.onClick) == null || S.call(T, y), n == null || n(y, a), !(y.defaultMuiPrevented || (O = $.current) != null && O.contains(y.target)) && (s === "content" && M.handleExpansion(y), p || M.handleSelection(y));
2286
+ }, A = (T) => (y) => {
2287
+ var S;
2288
+ (S = T.onMouseDown) == null || S.call(T, y), !y.defaultMuiPrevented && (y.shiftKey || y.ctrlKey || y.metaKey || w.disabled) && y.preventDefault();
2289
+ }, Z = (T) => (y) => {
2290
+ var S;
2291
+ (S = T.onChange) == null || S.call(T, y), !y.defaultMuiPrevented && (I || w.disabled || M.handleCheckboxSelection(y));
2292
+ }, L = (T) => (y) => {
2293
+ var S;
2294
+ (S = T.onClick) == null || S.call(T, y), !y.defaultMuiPrevented && s === "iconContainer" && M.handleExpansion(y);
2295
+ };
2296
+ return {
2297
+ getRootProps: (T = {}) => {
2298
+ var oe;
2299
+ const y = C({}, U(e), U(T));
2300
+ let S;
2301
+ w.selected ? S = !0 : I || w.disabled ? S = void 0 : S = !1;
2302
+ const O = C({}, y, {
2303
+ ref: N,
2304
+ role: "treeitem",
2305
+ tabIndex: Q,
2306
+ id: j,
2307
+ "aria-expanded": w.expandable ? w.expanded : void 0,
2308
+ "aria-selected": S,
2309
+ "aria-disabled": w.disabled || void 0
2310
+ }, T, {
2311
+ onFocus: q(y),
2312
+ onBlur: X(y),
2313
+ onKeyDown: ee(y)
2314
+ });
2315
+ r && (O.style = {
2316
+ "--TreeView-itemDepth": typeof l == "function" ? l(a) : l
2317
+ });
2318
+ const F = ((oe = R.root) == null ? void 0 : oe.call(R, C({}, B, {
2319
+ externalEventHandlers: y
2320
+ }))) ?? {};
2321
+ return C({}, O, F);
2322
+ },
2323
+ getContentProps: (T = {}) => {
2324
+ var F;
2325
+ const y = U(T), S = C({}, y, T, {
2326
+ ref: z,
2327
+ onClick: te(y),
2328
+ onMouseDown: A(y),
2329
+ status: w
2330
+ });
2331
+ r && (S.indentationAtItemLevel = !0);
2332
+ const O = ((F = R.content) == null ? void 0 : F.call(R, C({}, B, {
2333
+ externalEventHandlers: y
2334
+ }))) ?? {};
2335
+ return C({}, S, O);
2336
+ },
2337
+ getGroupTransitionProps: (T = {}) => {
2338
+ const y = U(T), S = C({}, y, {
2339
+ unmountOnExit: !0,
2340
+ component: "ul",
2341
+ role: "group",
2342
+ in: w.expanded,
2343
+ children: g
2344
+ }, T);
2345
+ return r && (S.indentationAtItemLevel = !0), S;
2346
+ },
2347
+ getIconContainerProps: (T = {}) => {
2348
+ const y = U(T);
2349
+ return C({}, y, T, {
2350
+ onClick: L(y)
2351
+ });
2352
+ },
2353
+ getCheckboxProps: (T = {}) => {
2354
+ const y = U(T);
2355
+ return C({}, y, {
2356
+ visible: p,
2357
+ ref: $,
2358
+ checked: w.selected,
2359
+ disabled: I || w.disabled,
2360
+ tabIndex: -1
2361
+ }, T, {
2362
+ onChange: Z(y)
2363
+ });
2364
+ },
2365
+ getLabelProps: (T = {}) => {
2366
+ const y = C({}, U(T)), S = C({}, y, {
2367
+ children: h
2368
+ }, T, {
2369
+ onDoubleClick: Y(y)
2370
+ });
2371
+ return c.isTreeViewEditable && (S.editable = w.editable), S;
2372
+ },
2373
+ getLabelInputProps: (T = {}) => {
2374
+ var O;
2375
+ const y = U(T), S = ((O = R.labelInput) == null ? void 0 : O.call(R, {
2376
+ rootRefObject: P,
2377
+ contentRefObject: D,
2378
+ externalEventHandlers: y,
2379
+ interactions: M
2380
+ })) ?? {};
2381
+ return C({}, T, S);
2382
+ },
2383
+ getDragAndDropOverlayProps: (T = {}) => {
2384
+ var O;
2385
+ const y = U(T), S = ((O = R.dragAndDropOverlay) == null ? void 0 : O.call(R, C({}, B, {
2386
+ externalEventHandlers: y
2387
+ }))) ?? {};
2388
+ return C({}, T, S);
2389
+ },
2390
+ rootRef: N,
2391
+ status: w,
2392
+ publicAPI: i
2393
+ };
2394
+ }, kt = eo;
2395
+ function Dt(e) {
2396
+ const {
2397
+ slots: t,
2398
+ slotProps: n,
2399
+ status: o
2400
+ } = e, r = ie(), I = C({}, r.icons.slots, {
2401
+ expandIcon: r.icons.slots.expandIcon ?? wt,
2402
+ collapseIcon: r.icons.slots.collapseIcon ?? Rt
2403
+ }), p = r.icons.slotProps;
2404
+ let s;
2405
+ t != null && t.icon ? s = "icon" : o.expandable ? o.expanded ? s = "collapseIcon" : s = "expandIcon" : s = "endIcon";
2406
+ const u = (t == null ? void 0 : t[s]) ?? I[s], c = V({
2407
+ elementType: u,
2408
+ externalSlotProps: (i) => C({}, H(p[s], i), H(n == null ? void 0 : n[s], i)),
2409
+ // TODO: Add proper ownerState
2410
+ ownerState: {}
2411
+ });
2412
+ return u ? /* @__PURE__ */ v(u, C({}, c)) : null;
2413
+ }
2414
+ process.env.NODE_ENV !== "production" && (Dt.propTypes = {
2415
+ // ----------------------------- Warning --------------------------------
2416
+ // | These PropTypes are generated from the TypeScript type definitions |
2417
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
2418
+ // ----------------------------------------------------------------------
2419
+ /**
2420
+ * The props used for each component slot.
2421
+ * @default {}
2422
+ */
2423
+ slotProps: d.object,
2424
+ /**
2425
+ * Overridable component slots.
2426
+ * @default {}
2427
+ */
2428
+ slots: d.object,
2429
+ status: d.shape({
2430
+ disabled: d.bool.isRequired,
2431
+ editable: d.bool.isRequired,
2432
+ editing: d.bool.isRequired,
2433
+ expandable: d.bool.isRequired,
2434
+ expanded: d.bool.isRequired,
2435
+ focused: d.bool.isRequired,
2436
+ selected: d.bool.isRequired
2437
+ }).isRequired
2438
+ });
2439
+ const to = ["visible"], no = ["id", "itemId", "label", "disabled", "children", "slots", "slotProps"], oo = je(), Ot = _("li", {
2440
+ name: "MuiTreeItem2",
2441
+ slot: "Root",
2442
+ overridesResolver: (e, t) => t.root
2443
+ })({
2444
+ listStyle: "none",
2445
+ margin: 0,
2446
+ padding: 0,
2447
+ outline: 0
2448
+ }), At = _("div", {
2449
+ name: "MuiTreeItem2",
2450
+ slot: "Content",
2451
+ overridesResolver: (e, t) => t.content,
2452
+ shouldForwardProp: (e) => pe(e) && e !== "status" && e !== "indentationAtItemLevel"
2453
+ })(({
2454
+ theme: e
2455
+ }) => ({
2456
+ padding: e.spacing(0.5, 1),
2457
+ borderRadius: e.shape.borderRadius,
2458
+ width: "100%",
2459
+ boxSizing: "border-box",
2460
+ // prevent width + padding to overflow
2461
+ position: "relative",
2462
+ display: "flex",
2463
+ alignItems: "center",
2464
+ gap: e.spacing(1),
2465
+ cursor: "pointer",
2466
+ WebkitTapHighlightColor: "transparent",
2467
+ "&:hover": {
2468
+ backgroundColor: (e.vars || e).palette.action.hover,
2469
+ // Reset on touch devices, it doesn't add specificity
2470
+ "@media (hover: none)": {
2471
+ backgroundColor: "transparent"
2472
+ }
2473
+ },
2474
+ variants: [{
2475
+ props: {
2476
+ indentationAtItemLevel: !0
2477
+ },
2478
+ style: {
2479
+ paddingLeft: `calc(${e.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`
2480
+ }
2481
+ }, {
2482
+ props: ({
2483
+ status: t
2484
+ }) => t.disabled,
2485
+ style: {
2486
+ opacity: (e.vars || e).palette.action.disabledOpacity,
2487
+ backgroundColor: "transparent"
2488
+ }
2489
+ }, {
2490
+ props: ({
2491
+ status: t
2492
+ }) => t.focused,
2493
+ style: {
2494
+ backgroundColor: (e.vars || e).palette.action.focus
2495
+ }
2496
+ }, {
2497
+ props: ({
2498
+ status: t
2499
+ }) => t.selected,
2500
+ style: {
2501
+ backgroundColor: e.vars ? `rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})` : J(e.palette.primary.main, e.palette.action.selectedOpacity),
2502
+ "&:hover": {
2503
+ backgroundColor: e.vars ? `rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))` : J(e.palette.primary.main, e.palette.action.selectedOpacity + e.palette.action.hoverOpacity),
2504
+ // Reset on touch devices, it doesn't add specificity
2505
+ "@media (hover: none)": {
2506
+ backgroundColor: e.vars ? `rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})` : J(e.palette.primary.main, e.palette.action.selectedOpacity)
2507
+ }
2508
+ }
2509
+ }
2510
+ }, {
2511
+ props: ({
2512
+ status: t
2513
+ }) => t.selected && t.focused,
2514
+ style: {
2515
+ backgroundColor: e.vars ? `rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))` : J(e.palette.primary.main, e.palette.action.selectedOpacity + e.palette.action.focusOpacity)
2516
+ }
2517
+ }]
2518
+ })), Lt = _("div", {
2519
+ name: "MuiTreeItem2",
2520
+ slot: "Label",
2521
+ overridesResolver: (e, t) => t.label,
2522
+ shouldForwardProp: (e) => pe(e) && e !== "editable"
2523
+ })(({
2524
+ theme: e
2525
+ }) => C({
2526
+ width: "100%",
2527
+ boxSizing: "border-box",
2528
+ // prevent width + padding to overflow
2529
+ // fixes overflow - see https://github.com/mui/material-ui/issues/27372
2530
+ minWidth: 0,
2531
+ position: "relative",
2532
+ overflow: "hidden"
2533
+ }, e.typography.body1, {
2534
+ variants: [{
2535
+ props: ({
2536
+ editable: t
2537
+ }) => t,
2538
+ style: {
2539
+ paddingLeft: "2px"
2540
+ }
2541
+ }]
2542
+ })), Vt = _("div", {
2543
+ name: "MuiTreeItem2",
2544
+ slot: "IconContainer",
2545
+ overridesResolver: (e, t) => t.iconContainer
2546
+ })({
2547
+ width: 16,
2548
+ display: "flex",
2549
+ flexShrink: 0,
2550
+ justifyContent: "center",
2551
+ "& svg": {
2552
+ fontSize: 18
2553
+ }
2554
+ }), Ft = _(at, {
2555
+ name: "MuiTreeItem2",
2556
+ slot: "GroupTransition",
2557
+ overridesResolver: (e, t) => t.groupTransition,
2558
+ shouldForwardProp: (e) => pe(e) && e !== "indentationAtItemLevel"
2559
+ })({
2560
+ margin: 0,
2561
+ padding: 0,
2562
+ paddingLeft: "var(--TreeView-itemChildrenIndentation)",
2563
+ variants: [{
2564
+ props: {
2565
+ indentationAtItemLevel: !0
2566
+ },
2567
+ style: {
2568
+ paddingLeft: 0
2569
+ }
2570
+ }]
2571
+ }), ro = _(/* @__PURE__ */ E.forwardRef((e, t) => {
2572
+ const {
2573
+ visible: n
2574
+ } = e, o = G(e, to);
2575
+ return n ? /* @__PURE__ */ v(ct, C({}, o, {
2576
+ ref: t
2577
+ })) : null;
2578
+ }), {
2579
+ name: "MuiTreeItem2",
2580
+ slot: "Checkbox",
2581
+ overridesResolver: (e, t) => t.checkbox
2582
+ })({
2583
+ padding: 0
2584
+ }), io = (e) => {
2585
+ const {
2586
+ classes: t
2587
+ } = e;
2588
+ return Ne({
2589
+ root: ["root"],
2590
+ content: ["content"],
2591
+ expanded: ["expanded"],
2592
+ editing: ["editing"],
2593
+ editable: ["editable"],
2594
+ selected: ["selected"],
2595
+ focused: ["focused"],
2596
+ disabled: ["disabled"],
2597
+ iconContainer: ["iconContainer"],
2598
+ checkbox: ["checkbox"],
2599
+ label: ["label"],
2600
+ groupTransition: ["groupTransition"],
2601
+ labelInput: ["labelInput"],
2602
+ dragAndDropOverlay: ["dragAndDropOverlay"]
2603
+ }, Et, t);
2604
+ }, so = /* @__PURE__ */ E.forwardRef(function(t, n) {
2605
+ const o = oo({
2606
+ props: t,
2607
+ name: "MuiTreeItem2"
2608
+ }), {
2609
+ id: r,
2610
+ itemId: I,
2611
+ label: p,
2612
+ disabled: s,
2613
+ children: u,
2614
+ slots: c = {},
2615
+ slotProps: i = {}
2616
+ } = o, l = G(o, no), {
2617
+ getRootProps: m,
2618
+ getContentProps: a,
2619
+ getIconContainerProps: h,
2620
+ getCheckboxProps: g,
2621
+ getLabelProps: f,
2622
+ getGroupTransitionProps: b,
2623
+ getLabelInputProps: x,
2624
+ getDragAndDropOverlayProps: R,
2625
+ status: M
2626
+ } = kt({
2627
+ id: r,
2628
+ itemId: I,
2629
+ children: u,
2630
+ label: p,
2631
+ disabled: s
2632
+ }), w = C({}, o, M), P = io(w), D = c.root ?? Ot, N = V({
2633
+ elementType: D,
2634
+ getSlotProps: m,
2635
+ externalForwardedProps: l,
2636
+ externalSlotProps: i.root,
2637
+ additionalProps: {
2638
+ ref: n
2639
+ },
2640
+ ownerState: {},
2641
+ className: P.root
2642
+ }), z = c.content ?? At, $ = V({
2643
+ elementType: z,
2644
+ getSlotProps: a,
2645
+ externalSlotProps: i.content,
2646
+ ownerState: {},
2647
+ className: $e(P.content, M.expanded && P.expanded, M.selected && P.selected, M.focused && P.focused, M.disabled && P.disabled, M.editing && P.editing, M.editable && P.editable)
2648
+ }), j = c.iconContainer ?? Vt, Q = V({
2649
+ elementType: j,
2650
+ getSlotProps: h,
2651
+ externalSlotProps: i.iconContainer,
2652
+ ownerState: {},
2653
+ className: P.iconContainer
2654
+ }), B = c.label ?? Lt, q = V({
2655
+ elementType: B,
2656
+ getSlotProps: f,
2657
+ externalSlotProps: i.label,
2658
+ ownerState: {},
2659
+ className: P.label
2660
+ }), X = c.checkbox ?? ro, ee = V({
2661
+ elementType: X,
2662
+ getSlotProps: g,
2663
+ externalSlotProps: i.checkbox,
2664
+ ownerState: {},
2665
+ className: P.checkbox
2666
+ }), Y = c.groupTransition ?? void 0, te = V({
2667
+ elementType: Y,
2668
+ getSlotProps: b,
2669
+ externalSlotProps: i.groupTransition,
2670
+ ownerState: {},
2671
+ className: P.groupTransition
2672
+ }), A = c.labelInput ?? Ct, Z = V({
2673
+ elementType: A,
2674
+ getSlotProps: x,
2675
+ externalSlotProps: i.labelInput,
2676
+ ownerState: {},
2677
+ className: P.labelInput
2678
+ }), L = c.dragAndDropOverlay ?? ze, ne = V({
2679
+ elementType: L,
2680
+ getSlotProps: R,
2681
+ externalSlotProps: i.dragAndDropOverlay,
2682
+ ownerState: {},
2683
+ className: P.dragAndDropOverlay
2684
+ });
2685
+ return /* @__PURE__ */ v(ke, {
2686
+ itemId: I,
2687
+ children: /* @__PURE__ */ de(D, C({}, N, {
2688
+ children: [/* @__PURE__ */ de(z, C({}, $, {
2689
+ children: [/* @__PURE__ */ v(j, C({}, Q, {
2690
+ children: /* @__PURE__ */ v(Dt, {
2691
+ status: M,
2692
+ slots: c,
2693
+ slotProps: i
2694
+ })
2695
+ })), /* @__PURE__ */ v(X, C({}, ee)), M.editing ? /* @__PURE__ */ v(A, C({}, Z)) : /* @__PURE__ */ v(B, C({}, q)), /* @__PURE__ */ v(L, C({}, ne))]
2696
+ })), u && /* @__PURE__ */ v(Ft, C({
2697
+ as: Y
2698
+ }, te))]
2699
+ }))
2700
+ });
2701
+ });
2702
+ process.env.NODE_ENV !== "production" && (so.propTypes = {
2703
+ // ----------------------------- Warning --------------------------------
2704
+ // | These PropTypes are generated from the TypeScript type definitions |
2705
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
2706
+ // ----------------------------------------------------------------------
2707
+ /**
2708
+ * The content of the component.
2709
+ */
2710
+ children: d.node,
2711
+ /**
2712
+ * Override or extend the styles applied to the component.
2713
+ */
2714
+ classes: d.object,
2715
+ className: d.string,
2716
+ /**
2717
+ * If `true`, the item is disabled.
2718
+ * @default false
2719
+ */
2720
+ disabled: d.bool,
2721
+ /**
2722
+ * The id attribute of the item. If not provided, it will be generated.
2723
+ */
2724
+ id: d.string,
2725
+ /**
2726
+ * The id of the item.
2727
+ * Must be unique.
2728
+ */
2729
+ itemId: d.string.isRequired,
2730
+ /**
2731
+ * The label of the item.
2732
+ */
2733
+ label: d.node,
2734
+ /**
2735
+ * Callback fired when the item root is blurred.
2736
+ */
2737
+ onBlur: d.func,
2738
+ /**
2739
+ * This prop isn't supported.
2740
+ * Use the `onItemFocus` callback on the tree if you need to monitor an item's focus.
2741
+ */
2742
+ onFocus: dt,
2743
+ /**
2744
+ * Callback fired when a key is pressed on the keyboard and the tree is in focus.
2745
+ */
2746
+ onKeyDown: d.func,
2747
+ /**
2748
+ * The props used for each component slot.
2749
+ * @default {}
2750
+ */
2751
+ slotProps: d.object,
2752
+ /**
2753
+ * Overridable component slots.
2754
+ * @default {}
2755
+ */
2756
+ slots: d.object
2757
+ });
2758
+ const lo = () => E.useRef(void 0);
2759
+ var ao = /* @__PURE__ */ ((e) => (e.FOLDER = "FOLDER", e.SHARE = "SHARE", e.TRASH = "TRASH", e.CUSTOM = "CUSTOM", e))(ao || {});
2760
+ const co = (e, t) => {
2761
+ if (!e) return Ve;
2762
+ if (typeof e != "string") return e;
2763
+ switch (e) {
2764
+ case "SHARE":
2765
+ return ln;
2766
+ case "TRASH":
2767
+ return Yt;
2768
+ case "CUSTOM":
2769
+ return t || Ve;
2770
+ case "FOLDER":
2771
+ default:
2772
+ return Ve;
2773
+ }
2774
+ }, uo = Zt(function(t, n) {
2775
+ const {
2776
+ id: o,
2777
+ itemId: r,
2778
+ label: I,
2779
+ disabled: p,
2780
+ children: s,
2781
+ itemData: u,
2782
+ iconColor: c = "primary"
2783
+ } = t, i = co(
2784
+ u == null ? void 0 : u.iconType,
2785
+ u == null ? void 0 : u.customIcon
2786
+ ), {
2787
+ getRootProps: l,
2788
+ getContentProps: m,
2789
+ getLabelProps: a,
2790
+ getGroupTransitionProps: h,
2791
+ getIconContainerProps: g,
2792
+ status: f
2793
+ } = kt({ id: o, itemId: r, label: I, disabled: p, children: s, rootRef: n });
2794
+ return /* @__PURE__ */ v(ke, { itemId: r, children: /* @__PURE__ */ de(Ot, { ...l(), children: [
2795
+ /* @__PURE__ */ de(
2796
+ At,
2797
+ {
2798
+ ...m(),
2799
+ style: { display: "flex", alignItems: "center", width: "100%" },
2800
+ children: [
2801
+ /* @__PURE__ */ v(Vt, { ...g(), children: /* @__PURE__ */ v(i, { fontSize: "small", color: c }) }),
2802
+ /* @__PURE__ */ v(Lt, { ...a() }),
2803
+ /* @__PURE__ */ v(it, { sx: { display: "flex", marginLeft: "auto" }, children: f.expandable && (f.expanded ? /* @__PURE__ */ v(rn, { fontSize: "small" }) : /* @__PURE__ */ v(sn, { fontSize: "small" })) })
2804
+ ]
2805
+ }
2806
+ ),
2807
+ s && /* @__PURE__ */ v(
2808
+ Ft,
2809
+ {
2810
+ ...h(),
2811
+ style: f.expanded ? {
2812
+ borderLeft: "1px solid #bdbdbd",
2813
+ paddingLeft: "12px",
2814
+ marginLeft: "15px",
2815
+ marginTop: "4px",
2816
+ marginBottom: "4px"
2817
+ } : void 0
2818
+ }
2819
+ )
2820
+ ] }) });
2821
+ }), po = (e) => {
2822
+ const t = {}, n = (o) => {
2823
+ var r;
2824
+ t[o.id] = o, (r = o.children) != null && r.length && o.children.forEach(n);
2825
+ };
2826
+ return e.forEach(n), t;
2827
+ }, $t = (e, t, n = []) => {
2828
+ var o;
2829
+ for (const r of t) {
2830
+ if (r.id === e)
2831
+ return n;
2832
+ if ((o = r.children) != null && o.length) {
2833
+ const I = $t(e, r.children, [
2834
+ ...n,
2835
+ r.id
2836
+ ]);
2837
+ if (I.length > 0)
2838
+ return I;
2839
+ }
2840
+ }
2841
+ return [];
2842
+ }, Ao = ({
2843
+ items: e,
2844
+ onItemSelect: t,
2845
+ iconColor: n = "primary",
2846
+ expandedItemId: o
2847
+ }) => {
2848
+ const r = nt(() => po(e), [e]), I = lo(), p = nt(() => o ? r[o] ? [...$t(o, e), o] : [] : [], [o, r, e]);
2849
+ return Ht(() => {
2850
+ I.current && p.length > 0 && p.forEach((s) => {
2851
+ I.current.setItemExpansion(s, !0);
2852
+ });
2853
+ }, [I, p]), console.log(p), /* @__PURE__ */ v(it, { sx: { minHeight: 200, minWidth: 200 }, children: /* @__PURE__ */ v(
2854
+ St,
2855
+ {
2856
+ apiRef: I,
2857
+ items: e,
2858
+ itemChildrenIndentation: "50px",
2859
+ defaultExpandedItems: p,
2860
+ onSelect: (s, u) => {
2861
+ t && typeof u == "string" && t(s, u);
2862
+ },
2863
+ slots: {
2864
+ item: (s) => {
2865
+ const u = s.itemId ? r[s.itemId] : void 0;
2866
+ return /* @__PURE__ */ v(
2867
+ uo,
2868
+ {
2869
+ ...s,
2870
+ itemData: u,
2871
+ iconColor: n
2872
+ }
2873
+ );
2874
+ }
2875
+ }
2876
+ }
2877
+ ) });
2878
+ };
2879
+ export {
2880
+ ao as ICON_TYPE,
2881
+ Ao as default
2882
+ };