@mui/x-tree-view 9.11.0 → 9.13.0
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.
- package/CHANGELOG.md +317 -0
- package/RichTreeView/RichTreeView.js +30 -25
- package/RichTreeView/RichTreeView.mjs +30 -25
- package/RichTreeView/RichTreeView.types.d.mts +27 -1
- package/RichTreeView/RichTreeView.types.d.ts +27 -1
- package/RichTreeView/richTreeViewClasses.d.mts +4 -1
- package/RichTreeView/richTreeViewClasses.d.ts +4 -1
- package/RichTreeView/richTreeViewClasses.js +1 -1
- package/RichTreeView/richTreeViewClasses.mjs +1 -1
- package/RichTreeView/useExtractRichTreeViewParameters.d.mts +1 -0
- package/RichTreeView/useExtractRichTreeViewParameters.d.ts +1 -0
- package/RichTreeView/useExtractRichTreeViewParameters.js +6 -3
- package/RichTreeView/useExtractRichTreeViewParameters.mjs +6 -3
- package/SimpleTreeView/simpleTreeViewClasses.d.mts +1 -1
- package/SimpleTreeView/simpleTreeViewClasses.d.ts +1 -1
- package/TreeItem/TreeItem.js +2 -1
- package/TreeItem/TreeItem.mjs +2 -1
- package/TreeItemLoader/TreeItemLoader.d.mts +20 -0
- package/TreeItemLoader/TreeItemLoader.d.ts +20 -0
- package/TreeItemLoader/TreeItemLoader.js +152 -0
- package/TreeItemLoader/TreeItemLoader.mjs +146 -0
- package/TreeItemLoader/TreeItemLoader.types.d.mts +36 -0
- package/TreeItemLoader/TreeItemLoader.types.d.ts +36 -0
- package/TreeItemLoader/TreeItemLoader.types.js +5 -0
- package/TreeItemLoader/TreeItemLoader.types.mjs +1 -0
- package/TreeItemLoader/TreeItemLoaderContext.d.mts +24 -0
- package/TreeItemLoader/TreeItemLoaderContext.d.ts +24 -0
- package/TreeItemLoader/TreeItemLoaderContext.js +22 -0
- package/TreeItemLoader/TreeItemLoaderContext.mjs +16 -0
- package/TreeItemLoader/index.d.mts +3 -0
- package/TreeItemLoader/index.d.ts +3 -0
- package/TreeItemLoader/index.js +34 -0
- package/TreeItemLoader/index.mjs +2 -0
- package/TreeItemLoader/treeItemLoaderClasses.d.mts +13 -0
- package/TreeItemLoader/treeItemLoaderClasses.d.ts +13 -0
- package/TreeItemLoader/treeItemLoaderClasses.js +14 -0
- package/TreeItemLoader/treeItemLoaderClasses.mjs +6 -0
- package/index.d.mts +1 -0
- package/index.d.ts +1 -0
- package/index.js +12 -1
- package/index.mjs +2 -1
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.js +2 -2
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.mjs +3 -3
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.mts +4 -0
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.ts +4 -0
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.mts +1 -2
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.ts +1 -2
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.js +2 -9
- package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.mjs +2 -7
- package/internals/TreeViewProvider/TreeViewProvider.js +7 -3
- package/internals/TreeViewProvider/TreeViewProvider.mjs +7 -3
- package/internals/TreeViewProvider/TreeViewProvider.types.d.mts +3 -3
- package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +3 -3
- package/internals/TreeViewProvider/TreeViewStyleContext.d.mts +30 -2
- package/internals/TreeViewProvider/TreeViewStyleContext.d.ts +30 -2
- package/internals/TreeViewProvider/TreeViewStyleContext.js +12 -0
- package/internals/TreeViewProvider/TreeViewStyleContext.mjs +13 -0
- package/internals/components/RichTreeViewItems.js +59 -2
- package/internals/components/RichTreeViewItems.mjs +59 -2
- package/internals/components/RichTreeViewLoading.d.mts +97 -0
- package/internals/components/RichTreeViewLoading.d.ts +97 -0
- package/internals/components/RichTreeViewLoading.js +171 -0
- package/internals/components/RichTreeViewLoading.mjs +160 -0
- package/internals/constants.d.mts +6 -0
- package/internals/constants.d.ts +6 -0
- package/internals/constants.js +12 -0
- package/internals/constants.mjs +6 -0
- package/internals/hooks/useTreeViewStore.d.mts +1 -1
- package/internals/hooks/useTreeViewStore.d.ts +1 -1
- package/internals/hooks/useTreeViewStore.js +7 -3
- package/internals/hooks/useTreeViewStore.mjs +7 -3
- package/internals/index.d.mts +2 -0
- package/internals/index.d.ts +2 -0
- package/internals/index.js +13 -0
- package/internals/index.mjs +1 -0
- package/internals/plugins/expansion/selectors.d.mts +3 -2
- package/internals/plugins/expansion/selectors.d.ts +3 -2
- package/internals/plugins/expansion/selectors.js +4 -4
- package/internals/plugins/expansion/selectors.mjs +5 -5
- package/internals/plugins/focus/selectors.d.mts +3 -2
- package/internals/plugins/focus/selectors.d.ts +3 -2
- package/internals/plugins/focus/selectors.js +3 -3
- package/internals/plugins/focus/selectors.mjs +4 -4
- package/internals/plugins/id/selectors.d.mts +6 -3
- package/internals/plugins/id/selectors.d.ts +6 -3
- package/internals/plugins/id/selectors.js +4 -5
- package/internals/plugins/id/selectors.mjs +4 -5
- package/internals/plugins/items/selectors.d.mts +9 -8
- package/internals/plugins/items/selectors.d.ts +9 -8
- package/internals/plugins/items/selectors.js +15 -16
- package/internals/plugins/items/selectors.mjs +15 -16
- package/internals/plugins/labelEditing/selectors.d.mts +3 -2
- package/internals/plugins/labelEditing/selectors.d.ts +3 -2
- package/internals/plugins/labelEditing/selectors.js +6 -5
- package/internals/plugins/labelEditing/selectors.mjs +6 -5
- package/internals/plugins/lazyLoading/selectors.d.mts +9 -3
- package/internals/plugins/lazyLoading/selectors.d.ts +9 -3
- package/internals/plugins/lazyLoading/selectors.js +10 -6
- package/internals/plugins/lazyLoading/selectors.mjs +10 -6
- package/internals/plugins/lazyLoading/types.d.mts +5 -1
- package/internals/plugins/lazyLoading/types.d.ts +5 -1
- package/internals/plugins/selection/selectors.d.mts +15 -9
- package/internals/plugins/selection/selectors.d.ts +15 -9
- package/internals/plugins/selection/selectors.js +12 -12
- package/internals/plugins/selection/selectors.mjs +13 -13
- package/package.json +19 -7
- package/useTreeItem/useTreeItem.js +3 -3
- package/useTreeItem/useTreeItem.mjs +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,322 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 9.13.0
|
|
4
|
+
|
|
5
|
+
<!-- generated comparing v9.12.0..master -->
|
|
6
|
+
|
|
7
|
+
_Sep 4, 2026_
|
|
8
|
+
|
|
9
|
+
We'd like to extend a big thank you to the 14 contributors who made this release possible. Here are some highlights ✨:
|
|
10
|
+
|
|
11
|
+
- 🦮 Improve keyboard navigation features of the Charts.
|
|
12
|
+
- 🎨 Improved customization of the edit event dialog in the `EventCalendar`
|
|
13
|
+
- 🐞 Bugfixes
|
|
14
|
+
- 📚 Documentation improvements
|
|
15
|
+
|
|
16
|
+
Special thanks go out to these community members for their valuable contributions:
|
|
17
|
+
@Anexus5919, @jvskriubakken, @mustafajw07, @roychan1
|
|
18
|
+
|
|
19
|
+
The following team members contributed to this release:
|
|
20
|
+
@brijeshb42, @flaviendelangle, @hasdfa, @Janpot, @JCQuintas, @LukasTy, @michelengelen, @noraleonte, @rita-codes, @silviuaavram
|
|
21
|
+
|
|
22
|
+
### Data Grid
|
|
23
|
+
|
|
24
|
+
#### `@mui/x-data-grid@9.13.0`
|
|
25
|
+
|
|
26
|
+
- [DataGrid] Call `onValueChange` after `setEditCellValue` in edit cells (#23417) @michelengelen
|
|
27
|
+
- [DataGrid] Add support for replacing rows instead of merging updates (#23323) @jvskriubakken
|
|
28
|
+
- [DataGrid] Always render `rowHeader` in virtualized setups (#23386) @silviuaavram
|
|
29
|
+
- [DataGrid] Export `ToolbarRoot` (#23322) @JCQuintas
|
|
30
|
+
- [DataGrid] Fix `rowsPerPage` selector appearing when `autoPageSize` is enabled and `pageSize` is one of `pageSizeOptions` (#23401) @roychan1
|
|
31
|
+
- [DataGrid] Fix row tree reset when a data source grid becomes visible (#23288) @JCQuintas
|
|
32
|
+
|
|
33
|
+
#### `@mui/x-data-grid-pro@9.13.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
34
|
+
|
|
35
|
+
Same changes as in `@mui/x-data-grid@9.13.0`, plus:
|
|
36
|
+
|
|
37
|
+
- [DataGridPro] Remove rows deleted server-side on nested lazy loading revalidation (#23320) @JCQuintas
|
|
38
|
+
- [DataGridPro] Stop `disableDebounce` from reaching the DOM in multi select filter (#23445) @JCQuintas
|
|
39
|
+
|
|
40
|
+
#### `@mui/x-data-grid-premium@9.13.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
41
|
+
|
|
42
|
+
Same changes as in `@mui/x-data-grid-pro@9.13.0`, plus:
|
|
43
|
+
|
|
44
|
+
- [DataGridPremium] Refine cell selection and speed up clipboard copy (#23473) @michelengelen
|
|
45
|
+
- [DataGridPremium] Select all cells with Ctrl+A (#23415) @michelengelen
|
|
46
|
+
|
|
47
|
+
### Date and Time Pickers
|
|
48
|
+
|
|
49
|
+
#### `@mui/x-date-pickers@9.13.0`
|
|
50
|
+
|
|
51
|
+
Internal changes.
|
|
52
|
+
|
|
53
|
+
#### `@mui/x-date-pickers-pro@9.13.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
54
|
+
|
|
55
|
+
Same changes as in `@mui/x-date-pickers@9.13.0`.
|
|
56
|
+
|
|
57
|
+
### Charts
|
|
58
|
+
|
|
59
|
+
#### `@mui/x-charts@9.13.0`
|
|
60
|
+
|
|
61
|
+
- [charts] Activate the focused axis with Enter/Space (#23219) @JCQuintas
|
|
62
|
+
- [charts] Add keyboard zoom and pan (#23369) @JCQuintas
|
|
63
|
+
- [charts] Fix line mark position under browser zoom in Safari (#23387) @noraleonte
|
|
64
|
+
- [charts] Fix y axis tick labels shortened near the top of the chart (#23435) @JCQuintas
|
|
65
|
+
- [charts] Focus the clicked item on radar charts (#23287) @JCQuintas
|
|
66
|
+
- [charts] Stop text measurements leaking into each other (#23430) @JCQuintas
|
|
67
|
+
|
|
68
|
+
#### `@mui/x-charts-pro@9.13.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
69
|
+
|
|
70
|
+
Same changes as in `@mui/x-charts@9.13.0`.
|
|
71
|
+
|
|
72
|
+
#### `@mui/x-charts-premium@9.13.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
73
|
+
|
|
74
|
+
Same changes as in `@mui/x-charts-pro@9.13.0`.
|
|
75
|
+
|
|
76
|
+
### Tree View
|
|
77
|
+
|
|
78
|
+
#### `@mui/x-tree-view@9.13.0`
|
|
79
|
+
|
|
80
|
+
- [tree view] Add `loading` prop and customizable loading UI (#22251) @michelengelen
|
|
81
|
+
- [tree view] Reduce selector bundle size (#23412) @flaviendelangle
|
|
82
|
+
- [tree view] Remove dead UI from community component (#23487) @noraleonte
|
|
83
|
+
- [tree view] Remove unused dependencies (#23488) @noraleonte
|
|
84
|
+
- [tree view] Use `useId` for the default tree id (#23341) @Anexus5919
|
|
85
|
+
|
|
86
|
+
#### `@mui/x-tree-view-pro@9.13.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
87
|
+
|
|
88
|
+
Same changes as in `@mui/x-tree-view@9.13.0`.
|
|
89
|
+
|
|
90
|
+
### Scheduler
|
|
91
|
+
|
|
92
|
+
#### `@mui/x-scheduler@9.0.0-beta.11`
|
|
93
|
+
|
|
94
|
+
- [scheduler] Absorb un-acted `ResizeObserver` deliveries after rendering the timeline (#23444) @rita-codes
|
|
95
|
+
- [scheduler] Add `EventContextMenu` with Edit and Delete actions (#23379) @mustafajw07
|
|
96
|
+
- [scheduler] Add aria-hidden to collapsed side panel and refactor landmark structure (#23425) @mustafajw07
|
|
97
|
+
- [scheduler] Add the `eventDialogGeneralTab` slot (#23338) @rita-codes
|
|
98
|
+
- [scheduler] Fix the un-awaited act warning in the event dialog slot test (#23446) @JCQuintas
|
|
99
|
+
- [scheduler] Improve timeline event layout performance (#23364) @flaviendelangle
|
|
100
|
+
- [scheduler] Keep `aria-expanded` present when ViewSwitcher and PreferencesMenu menus are closed (#23427) @mustafajw07
|
|
101
|
+
- [scheduler] Make the event dialog General-tab building blocks public (#23398) @rita-codes
|
|
102
|
+
- [scheduler] Migrate to the pragmatic-drag-and-drop v3 entry points (#23442) @rita-codes
|
|
103
|
+
- [scheduler] Reduce selector bundle size (#23413) @flaviendelangle
|
|
104
|
+
- [scheduler] Reuse processed events between updates (#23363) @flaviendelangle
|
|
105
|
+
- [scheduler] Add `aria-expanded` and `aria-controls` to side panel toggle button (#23402) @mustafajw07
|
|
106
|
+
|
|
107
|
+
#### `@mui/x-scheduler-premium@9.0.0-beta.11` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
108
|
+
|
|
109
|
+
Same changes as in `@mui/x-scheduler@9.0.0-beta.11`, plus:
|
|
110
|
+
|
|
111
|
+
- [scheduler-premium] Dependencies - Keep event drags working over the arrow hit-areas (#23441) @rita-codes
|
|
112
|
+
- [scheduler-premium] Dependencies - Reject dependencies that would create a cycle (#23389) @rita-codes
|
|
113
|
+
- [scheduler-premium] Key recurring `exDates` on their data-timezone day (#23467) @rita-codes
|
|
114
|
+
|
|
115
|
+
### Codemod
|
|
116
|
+
|
|
117
|
+
#### `@mui/x-codemod@9.13.0`
|
|
118
|
+
|
|
119
|
+
Internal changes.
|
|
120
|
+
|
|
121
|
+
### Docs
|
|
122
|
+
|
|
123
|
+
- [docs] Add synchronized tooltip and crosshair demo to charts (#23368) @JCQuintas
|
|
124
|
+
- [docs] Add sticky headers recipe to `RichTreeView` customization (#22908) @michelengelen
|
|
125
|
+
- [docs] Pin the visible date of the scheduler preferences demos (#23432) @rita-codes
|
|
126
|
+
- [docs] Star-prefix bare :where() dark-mode selectors (#23419) @Janpot
|
|
127
|
+
- [docs] Consolidate demo data into shared dataset files (#23496) @michelengelen
|
|
128
|
+
|
|
129
|
+
### Core
|
|
130
|
+
|
|
131
|
+
- [code-infra] Consume shared commands from code-infra orb (#23485) @brijeshb42
|
|
132
|
+
- [code-infra] Move the shared spy helpers off Sinon (#23466) @JCQuintas
|
|
133
|
+
- [code-infra] Point the support validator link at frontend-public (#23422) @Janpot
|
|
134
|
+
- [code-infra] Reduce per-page memory in the browser test suite (#23424) @Janpot
|
|
135
|
+
- [code-infra] Remove Sinon (#23476) @JCQuintas
|
|
136
|
+
- [code-infra] Remove the explicit `styled-components` dependency (#23479) @LukasTy
|
|
137
|
+
- [code-infra] Replace the mechanical sinon `spy()` usages with `vi.fn()` (#23443) @JCQuintas
|
|
138
|
+
- [code-infra] Replace the sinon `spy(fn)` usages with `vi.fn(fn)` (#23460) @JCQuintas
|
|
139
|
+
- [code-infra] Replace the sinon spy types with the Vitest ones (#23464) @JCQuintas
|
|
140
|
+
- [code-infra] Replace the sinon spy-on-object calls with `vi.spyOn` (#23474) @JCQuintas
|
|
141
|
+
- [code-infra] Replace the sinon stubs with Vitest mocks (#23472) @JCQuintas
|
|
142
|
+
- [code-infra] Run TypeScript 7 alongside the TS6 JS API (#23471) @brijeshb42
|
|
143
|
+
- [code-infra] Trim the shared browser test setup graph (#23426) @LukasTy
|
|
144
|
+
- [code-infra] Update CircleCI orb (#23418) @JCQuintas
|
|
145
|
+
- [code-infra] Use explicit vitest imports in test files (#23375) @michelengelen
|
|
146
|
+
|
|
147
|
+
### Miscellaneous
|
|
148
|
+
|
|
149
|
+
- [chat] Enforce top-level type imports (#23037) @Janpot
|
|
150
|
+
- [chat] Fix global preload error from the `remend` import (#23263) @hasdfa
|
|
151
|
+
- [ci] Add Claude PR review via mui-public reusable workflow (#23423) @Janpot
|
|
152
|
+
- [telemetry] Fix get-context test leaking mock from sender test (#23447) @JCQuintas
|
|
153
|
+
- [test] Fail the regression run when a webfont does not load (#23376) @LukasTy
|
|
154
|
+
|
|
155
|
+
## 9.12.0
|
|
156
|
+
|
|
157
|
+
_Aug 21, 2026_
|
|
158
|
+
|
|
159
|
+
We'd like to extend a big thank you to the 12 contributors who made this release possible. Here are some highlights ✨:
|
|
160
|
+
|
|
161
|
+
- 🧮 Support [Formulas](https://mui.com/x/react-data-grid/formulas/) on the Data Grid: cells in opted-in columns can hold spreadsheet-like formulas (`=SUM(RANGE(…))`, `=price * quantity`) evaluated by a built-in engine, with a formula editor and [Formula Bar](https://mui.com/x/react-data-grid/components/formula-bar/), autocomplete, reference highlighting, optional A1 notation, fill-handle reference adjustment, custom functions, and live formula Excel export
|
|
162
|
+
- ♿️ Improve the accessibility of Data Grid cells and picker day cells
|
|
163
|
+
- 🗓️ Enable multi-resource event creation and editing in the Scheduler
|
|
164
|
+
- 🐞 Bugfixes
|
|
165
|
+
- 📚 Documentation improvements
|
|
166
|
+
|
|
167
|
+
Special thanks go out to these community members for their valuable contributions:
|
|
168
|
+
@Anexus5919, @mustafajw07
|
|
169
|
+
|
|
170
|
+
The following team members contributed to this release:
|
|
171
|
+
@brijeshb42, @flaviendelangle, @JCQuintas, @LukasTy, @MBilalShafi, @michelengelen, @noraleonte, @rita-codes, @romgrk, @silviuaavram
|
|
172
|
+
|
|
173
|
+
### Data Grid
|
|
174
|
+
|
|
175
|
+
#### `@mui/x-data-grid@9.12.0`
|
|
176
|
+
|
|
177
|
+
- [DataGrid] Expose `apiRef` on `GridCallbackDetails` for selector access in callbacks (#22973) @michelengelen
|
|
178
|
+
- [DataGrid] Fix header height not updating when `headerFilters` or `columnGroupingModel` change (#23059) @MBilalShafi
|
|
179
|
+
- [DataGrid] Fix unhandled rejection when unmounting mid-autosize (#23319) @JCQuintas
|
|
180
|
+
- [DataGrid] Label the blank `singleSelect` filter option (#23294) @JCQuintas
|
|
181
|
+
- [DataGrid] Stop sending incomplete filter items to the data source (#23303) @JCQuintas
|
|
182
|
+
- [DataGrid] Support the `rowheader` attribute for grid cells (#23340) @silviuaavram
|
|
183
|
+
|
|
184
|
+
#### `@mui/x-data-grid-pro@9.12.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
185
|
+
|
|
186
|
+
Same changes as in `@mui/x-data-grid@9.12.0`, plus:
|
|
187
|
+
|
|
188
|
+
- [DataGridPro] Honor `hasNextPage` in infinite lazy loading (#23048) @MBilalShafi
|
|
189
|
+
|
|
190
|
+
#### `@mui/x-data-grid-premium@9.12.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
191
|
+
|
|
192
|
+
Same changes as in `@mui/x-data-grid-pro@9.12.0`, plus:
|
|
193
|
+
|
|
194
|
+
- [DataGridPremium] Formula support (#22807) @MBilalShafi
|
|
195
|
+
|
|
196
|
+
### Date and Time Pickers
|
|
197
|
+
|
|
198
|
+
#### `@mui/x-date-pickers@9.12.0`
|
|
199
|
+
|
|
200
|
+
- [fields] Keep the selected section on blank space clicks (#23318) @LukasTy
|
|
201
|
+
- [pickers] Associate the day cells with their week day column header (#23339) @LukasTy
|
|
202
|
+
- [pickers] Keep the `gridcell` role and the column index on filler cells (#23326) @Anexus5919
|
|
203
|
+
|
|
204
|
+
#### `@mui/x-date-pickers-pro@9.12.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
205
|
+
|
|
206
|
+
Same changes as in `@mui/x-date-pickers@9.12.0`, plus:
|
|
207
|
+
|
|
208
|
+
- [DateRangeCalendar] Round the range highlight at the month grid edges (#23297) @JCQuintas
|
|
209
|
+
- [DateRangePicker] Keep the range highlight opaque for disabled days (#23317) @JCQuintas
|
|
210
|
+
|
|
211
|
+
### Charts
|
|
212
|
+
|
|
213
|
+
#### `@mui/x-charts@9.12.0`
|
|
214
|
+
|
|
215
|
+
- [charts] Add a demo for label on grid row (#23333) @noraleonte
|
|
216
|
+
- [charts] Fix React 18 `propTypes` warnings and stray-pointer test flakiness (#23384) @LukasTy
|
|
217
|
+
- [charts] Focus the clicked item for keyboard navigation (#23247) @JCQuintas
|
|
218
|
+
|
|
219
|
+
#### `@mui/x-charts-pro@9.12.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
220
|
+
|
|
221
|
+
Same changes as in `@mui/x-charts@9.12.0`.
|
|
222
|
+
|
|
223
|
+
#### `@mui/x-charts-premium@9.12.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
224
|
+
|
|
225
|
+
Same changes as in `@mui/x-charts-pro@9.12.0`, plus:
|
|
226
|
+
|
|
227
|
+
- [charts-premium] Add `onItemClick` to the radial charts (#23253) @JCQuintas
|
|
228
|
+
|
|
229
|
+
### Tree View
|
|
230
|
+
|
|
231
|
+
#### `@mui/x-tree-view@9.12.0`
|
|
232
|
+
|
|
233
|
+
Internal changes.
|
|
234
|
+
|
|
235
|
+
#### `@mui/x-tree-view-pro@9.12.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
236
|
+
|
|
237
|
+
Same changes as in `@mui/x-tree-view@9.12.0`.
|
|
238
|
+
|
|
239
|
+
### Scheduler
|
|
240
|
+
|
|
241
|
+
#### `@mui/x-scheduler@9.0.0-beta.10`
|
|
242
|
+
|
|
243
|
+
- [scheduler] Add `onEventEditingStart` to let consumers open their own edit UI (#23361) @rita-codes
|
|
244
|
+
- [scheduler] Fix keyboard and focus issues around the "+N more" popover (#23312) @rita-codes
|
|
245
|
+
- [scheduler] Honor `viewConfig` hour limits in the compact day and week views (#23316) @rita-codes
|
|
246
|
+
- [scheduler] Share timeline event layout data (#23366) @flaviendelangle
|
|
247
|
+
- [scheduler] enable multi-resource event creation and editing (#23313) @mustafajw07
|
|
248
|
+
|
|
249
|
+
#### `@mui/x-scheduler-premium@9.0.0-beta.10` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
250
|
+
|
|
251
|
+
Same changes as in `@mui/x-scheduler@9.0.0-beta.10`, plus:
|
|
252
|
+
|
|
253
|
+
- [scheduler-premium] Allow to control the min and max hour in the Event Timeline (#23212) @rita-codes
|
|
254
|
+
- [scheduler-premium] Dependencies - Create, select and delete via terminals (#23200) @rita-codes
|
|
255
|
+
|
|
256
|
+
### Codemod
|
|
257
|
+
|
|
258
|
+
#### `@mui/x-codemod@9.12.0`
|
|
259
|
+
|
|
260
|
+
Internal changes.
|
|
261
|
+
|
|
262
|
+
### Docs
|
|
263
|
+
|
|
264
|
+
- [docs][charts] Document line mark size customization (#23370) @JCQuintas
|
|
265
|
+
- [docs] Add recipe for constraining the `make-child` drop action by item type (#22940) @michelengelen
|
|
266
|
+
- [docs] Redirect the renamed Event Timeline views page (#23324) @brijeshb42
|
|
267
|
+
- [docs] Remove unused `adapter-dependencies.json` (#23328) @LukasTy
|
|
268
|
+
|
|
269
|
+
### Core
|
|
270
|
+
|
|
271
|
+
- [code-infra] Add release skill (#23308) @brijeshb42
|
|
272
|
+
- [code-infra] Fix changelog categorization of docs and `DateRangeCalendar` tags (#23385) @JCQuintas
|
|
273
|
+
- [code-infra] Sync mui-release skill (#23330) @brijeshb42
|
|
274
|
+
|
|
275
|
+
### Miscellaneous
|
|
276
|
+
|
|
277
|
+
- [core] Declare the missing `react-dom` peer dependencies (#23381) @LukasTy
|
|
278
|
+
- [test] Fix act warnings in the data source filter tests (#23360) @JCQuintas
|
|
279
|
+
- [virtualizer] Add inverse-sticky layout (#23053) @romgrk
|
|
280
|
+
|
|
281
|
+
## 9.11.1
|
|
282
|
+
|
|
283
|
+
_Aug 6, 2026_
|
|
284
|
+
|
|
285
|
+
We'd like to extend a big thank you to the 2 contributors who made this release possible. Here are some highlights ✨:
|
|
286
|
+
|
|
287
|
+
- 🐛 Fix the empty `@mui/x-charts-vendor` package published in v9.11.0
|
|
288
|
+
|
|
289
|
+
The following team members contributed to this release:
|
|
290
|
+
@JCQuintas, @rita-codes
|
|
291
|
+
|
|
292
|
+
### Charts
|
|
293
|
+
|
|
294
|
+
#### `@mui/x-charts@9.11.1`
|
|
295
|
+
|
|
296
|
+
- [charts] Fix empty `@mui/x-charts-vendor` published package (#23310) @JCQuintas
|
|
297
|
+
|
|
298
|
+
#### `@mui/x-charts-pro@9.11.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
299
|
+
|
|
300
|
+
Same changes as in `@mui/x-charts@9.11.1`.
|
|
301
|
+
|
|
302
|
+
#### `@mui/x-charts-premium@9.11.1` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
303
|
+
|
|
304
|
+
Same changes as in `@mui/x-charts-pro@9.11.1`.
|
|
305
|
+
|
|
306
|
+
#### `@mui/x-charts-vendor@9.11.1`
|
|
307
|
+
|
|
308
|
+
- [charts] Fix empty `@mui/x-charts-vendor` published package (#23310) @JCQuintas
|
|
309
|
+
|
|
310
|
+
### Scheduler
|
|
311
|
+
|
|
312
|
+
#### `@mui/x-scheduler@9.0.0-beta.9`
|
|
313
|
+
|
|
314
|
+
- [scheduler] Show the range validation errors on the End date and End time fields (#23291) @rita-codes
|
|
315
|
+
|
|
316
|
+
#### `@mui/x-scheduler-premium@9.0.0-beta.9` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
317
|
+
|
|
318
|
+
Same changes as in `@mui/x-scheduler@9.0.0-beta.9`.
|
|
319
|
+
|
|
3
320
|
## 9.11.0
|
|
4
321
|
|
|
5
322
|
_Aug 6, 2026_
|
|
@@ -11,16 +11,13 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
11
11
|
var React = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
13
|
var _useMergedRefs = require("@base-ui/utils/useMergedRefs");
|
|
14
|
-
var _store = require("@mui/x-internals/store");
|
|
15
|
-
var _Alert = _interopRequireDefault(require("@mui/material/Alert"));
|
|
16
|
-
var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
|
|
17
14
|
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
18
15
|
var _warning = require("@mui/x-internals/warning");
|
|
19
16
|
var _richTreeViewClasses = require("./richTreeViewClasses");
|
|
20
17
|
var _zeroStyled = require("../internals/zero-styled");
|
|
21
18
|
var _TreeViewProvider = require("../internals/TreeViewProvider");
|
|
22
19
|
var _RichTreeViewItems = require("../internals/components/RichTreeViewItems");
|
|
23
|
-
var
|
|
20
|
+
var _RichTreeViewLoading = require("../internals/components/RichTreeViewLoading");
|
|
24
21
|
var _TreeViewItemDepthContext = require("../internals/TreeViewItemDepthContext");
|
|
25
22
|
var _useExtractRichTreeViewParameters = require("./useExtractRichTreeViewParameters");
|
|
26
23
|
var _items = require("../internals/plugins/items");
|
|
@@ -41,9 +38,10 @@ const useUtilityClasses = ownerState => {
|
|
|
41
38
|
itemIconContainer: ['itemIconContainer'],
|
|
42
39
|
itemLabel: ['itemLabel'],
|
|
43
40
|
itemLabelInput: ['itemLabelInput'],
|
|
44
|
-
itemCheckbox: ['itemCheckbox']
|
|
41
|
+
itemCheckbox: ['itemCheckbox'],
|
|
45
42
|
// itemDragAndDropOverlay: ['itemDragAndDropOverlay'], => feature not available on this component
|
|
46
43
|
// itemErrorIcon: ['itemErrorIcon'], => feature not available on this component
|
|
44
|
+
itemLoader: ['itemLoader']
|
|
47
45
|
};
|
|
48
46
|
return (0, _composeClasses.default)(slots, _richTreeViewClasses.getRichTreeViewUtilityClass, classes);
|
|
49
47
|
}, [classes]);
|
|
@@ -83,7 +81,8 @@ const RichTreeView = exports.RichTreeView = /*#__PURE__*/React.forwardRef(functi
|
|
|
83
81
|
slotProps,
|
|
84
82
|
apiRef,
|
|
85
83
|
parameters,
|
|
86
|
-
forwardedProps
|
|
84
|
+
forwardedProps,
|
|
85
|
+
loading
|
|
87
86
|
} = (0, _useExtractRichTreeViewParameters.useExtractRichTreeViewParameters)(props);
|
|
88
87
|
|
|
89
88
|
// Context hooks
|
|
@@ -93,26 +92,33 @@ const RichTreeView = exports.RichTreeView = /*#__PURE__*/React.forwardRef(functi
|
|
|
93
92
|
const ref = React.useRef(null);
|
|
94
93
|
const handleRef = (0, _useMergedRefs.useMergedRefs)(forwardedRef, ref);
|
|
95
94
|
|
|
96
|
-
// Selector hooks
|
|
97
|
-
const isLoading = (0, _store.useStore)(store, _lazyLoading.lazyLoadingSelectors.isItemLoading, null);
|
|
98
|
-
const error = (0, _store.useStore)(store, _lazyLoading.lazyLoadingSelectors.itemError, null);
|
|
99
|
-
|
|
100
95
|
// Feature hooks
|
|
101
96
|
const classes = useUtilityClasses(props);
|
|
102
97
|
const slots = React.useMemo(() => (0, _extends2.default)({
|
|
103
98
|
root: RichTreeViewRoot
|
|
104
99
|
}, inSlots), [inSlots]);
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
100
|
+
let content;
|
|
101
|
+
if (loading) {
|
|
102
|
+
content = /*#__PURE__*/(0, _jsxRuntime.jsx)(_RichTreeViewLoading.RichTreeViewLoading, {
|
|
103
|
+
store: store,
|
|
104
|
+
slots: slots,
|
|
105
|
+
slotProps: slotProps,
|
|
106
|
+
ownerState: props,
|
|
107
|
+
forwardedProps: forwardedProps,
|
|
108
|
+
rootRef: handleRef,
|
|
109
|
+
classes: classes
|
|
108
110
|
});
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
111
|
+
} else {
|
|
112
|
+
content = /*#__PURE__*/(0, _jsxRuntime.jsx)(_RichTreeViewItems.RichTreeViewItems, {
|
|
113
|
+
slots: slots,
|
|
114
|
+
slotProps: slotProps,
|
|
115
|
+
forwardedProps: forwardedProps,
|
|
116
|
+
ownerState: props,
|
|
117
|
+
rootRef: handleRef
|
|
114
118
|
});
|
|
115
119
|
}
|
|
120
|
+
|
|
121
|
+
// The provider must mount in the loading state too, so `apiRef` is initialized on mount.
|
|
116
122
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeViewProvider.TreeViewProvider, {
|
|
117
123
|
store: store,
|
|
118
124
|
classes: classes,
|
|
@@ -122,13 +128,7 @@ const RichTreeView = exports.RichTreeView = /*#__PURE__*/React.forwardRef(functi
|
|
|
122
128
|
rootRef: ref,
|
|
123
129
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeViewItemDepthContext.TreeViewItemDepthContext.Provider, {
|
|
124
130
|
value: _items.itemsSelectors.itemDepth,
|
|
125
|
-
children:
|
|
126
|
-
slots: slots,
|
|
127
|
-
slotProps: slotProps,
|
|
128
|
-
forwardedProps: forwardedProps,
|
|
129
|
-
ownerState: props,
|
|
130
|
-
rootRef: handleRef
|
|
131
|
-
})
|
|
131
|
+
children: content
|
|
132
132
|
})
|
|
133
133
|
});
|
|
134
134
|
});
|
|
@@ -275,6 +275,11 @@ process.env.NODE_ENV !== "production" ? RichTreeView.propTypes /* remove-proptyp
|
|
|
275
275
|
*/
|
|
276
276
|
itemHeight: _propTypes.default.number,
|
|
277
277
|
items: _propTypes.default.array.isRequired,
|
|
278
|
+
/**
|
|
279
|
+
* If `true`, a loading UI is displayed instead of the tree items.
|
|
280
|
+
* @default false
|
|
281
|
+
*/
|
|
282
|
+
loading: _propTypes.default.bool,
|
|
278
283
|
/**
|
|
279
284
|
* Whether multiple items can be selected.
|
|
280
285
|
* @default false
|
|
@@ -4,16 +4,13 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { useMergedRefs } from '@base-ui/utils/useMergedRefs';
|
|
7
|
-
import { useStore } from '@mui/x-internals/store';
|
|
8
|
-
import Alert from '@mui/material/Alert';
|
|
9
|
-
import Typography from '@mui/material/Typography';
|
|
10
7
|
import composeClasses from '@mui/utils/composeClasses';
|
|
11
8
|
import { warnOnce } from '@mui/x-internals/warning';
|
|
12
9
|
import { getRichTreeViewUtilityClass } from "./richTreeViewClasses.mjs";
|
|
13
10
|
import { styled, createUseThemeProps } from "../internals/zero-styled/index.mjs";
|
|
14
11
|
import { TreeViewProvider } from "../internals/TreeViewProvider/index.mjs";
|
|
15
12
|
import { RichTreeViewItems } from "../internals/components/RichTreeViewItems.mjs";
|
|
16
|
-
import {
|
|
13
|
+
import { RichTreeViewLoading } from "../internals/components/RichTreeViewLoading.mjs";
|
|
17
14
|
import { TreeViewItemDepthContext } from "../internals/TreeViewItemDepthContext/index.mjs";
|
|
18
15
|
import { useExtractRichTreeViewParameters } from "./useExtractRichTreeViewParameters.mjs";
|
|
19
16
|
import { itemsSelectors } from "../internals/plugins/items/index.mjs";
|
|
@@ -34,9 +31,10 @@ const useUtilityClasses = ownerState => {
|
|
|
34
31
|
itemIconContainer: ['itemIconContainer'],
|
|
35
32
|
itemLabel: ['itemLabel'],
|
|
36
33
|
itemLabelInput: ['itemLabelInput'],
|
|
37
|
-
itemCheckbox: ['itemCheckbox']
|
|
34
|
+
itemCheckbox: ['itemCheckbox'],
|
|
38
35
|
// itemDragAndDropOverlay: ['itemDragAndDropOverlay'], => feature not available on this component
|
|
39
36
|
// itemErrorIcon: ['itemErrorIcon'], => feature not available on this component
|
|
37
|
+
itemLoader: ['itemLoader']
|
|
40
38
|
};
|
|
41
39
|
return composeClasses(slots, getRichTreeViewUtilityClass, classes);
|
|
42
40
|
}, [classes]);
|
|
@@ -76,7 +74,8 @@ const RichTreeView = /*#__PURE__*/React.forwardRef(function RichTreeView(inProps
|
|
|
76
74
|
slotProps,
|
|
77
75
|
apiRef,
|
|
78
76
|
parameters,
|
|
79
|
-
forwardedProps
|
|
77
|
+
forwardedProps,
|
|
78
|
+
loading
|
|
80
79
|
} = useExtractRichTreeViewParameters(props);
|
|
81
80
|
|
|
82
81
|
// Context hooks
|
|
@@ -86,26 +85,33 @@ const RichTreeView = /*#__PURE__*/React.forwardRef(function RichTreeView(inProps
|
|
|
86
85
|
const ref = React.useRef(null);
|
|
87
86
|
const handleRef = useMergedRefs(forwardedRef, ref);
|
|
88
87
|
|
|
89
|
-
// Selector hooks
|
|
90
|
-
const isLoading = useStore(store, lazyLoadingSelectors.isItemLoading, null);
|
|
91
|
-
const error = useStore(store, lazyLoadingSelectors.itemError, null);
|
|
92
|
-
|
|
93
88
|
// Feature hooks
|
|
94
89
|
const classes = useUtilityClasses(props);
|
|
95
90
|
const slots = React.useMemo(() => _extends({
|
|
96
91
|
root: RichTreeViewRoot
|
|
97
92
|
}, inSlots), [inSlots]);
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
93
|
+
let content;
|
|
94
|
+
if (loading) {
|
|
95
|
+
content = /*#__PURE__*/_jsx(RichTreeViewLoading, {
|
|
96
|
+
store: store,
|
|
97
|
+
slots: slots,
|
|
98
|
+
slotProps: slotProps,
|
|
99
|
+
ownerState: props,
|
|
100
|
+
forwardedProps: forwardedProps,
|
|
101
|
+
rootRef: handleRef,
|
|
102
|
+
classes: classes
|
|
101
103
|
});
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
104
|
+
} else {
|
|
105
|
+
content = /*#__PURE__*/_jsx(RichTreeViewItems, {
|
|
106
|
+
slots: slots,
|
|
107
|
+
slotProps: slotProps,
|
|
108
|
+
forwardedProps: forwardedProps,
|
|
109
|
+
ownerState: props,
|
|
110
|
+
rootRef: handleRef
|
|
107
111
|
});
|
|
108
112
|
}
|
|
113
|
+
|
|
114
|
+
// The provider must mount in the loading state too, so `apiRef` is initialized on mount.
|
|
109
115
|
return /*#__PURE__*/_jsx(TreeViewProvider, {
|
|
110
116
|
store: store,
|
|
111
117
|
classes: classes,
|
|
@@ -115,13 +121,7 @@ const RichTreeView = /*#__PURE__*/React.forwardRef(function RichTreeView(inProps
|
|
|
115
121
|
rootRef: ref,
|
|
116
122
|
children: /*#__PURE__*/_jsx(TreeViewItemDepthContext.Provider, {
|
|
117
123
|
value: itemsSelectors.itemDepth,
|
|
118
|
-
children:
|
|
119
|
-
slots: slots,
|
|
120
|
-
slotProps: slotProps,
|
|
121
|
-
forwardedProps: forwardedProps,
|
|
122
|
-
ownerState: props,
|
|
123
|
-
rootRef: handleRef
|
|
124
|
-
})
|
|
124
|
+
children: content
|
|
125
125
|
})
|
|
126
126
|
});
|
|
127
127
|
});
|
|
@@ -268,6 +268,11 @@ process.env.NODE_ENV !== "production" ? RichTreeView.propTypes /* remove-proptyp
|
|
|
268
268
|
*/
|
|
269
269
|
itemHeight: PropTypes.number,
|
|
270
270
|
items: PropTypes.array.isRequired,
|
|
271
|
+
/**
|
|
272
|
+
* If `true`, a loading UI is displayed instead of the tree items.
|
|
273
|
+
* @default false
|
|
274
|
+
*/
|
|
275
|
+
loading: PropTypes.bool,
|
|
271
276
|
/**
|
|
272
277
|
* Whether multiple items can be selected.
|
|
273
278
|
* @default false
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type * as React from 'react';
|
|
2
2
|
import type { Theme } from '@mui/material/styles';
|
|
3
3
|
import type { SxProps } from '@mui/system/styleFunctionSx';
|
|
4
|
+
import type { SlotComponentProps } from '@mui/utils/types';
|
|
4
5
|
import type { RichTreeViewClasses } from "./richTreeViewClasses.mjs";
|
|
5
6
|
import type { RichTreeViewItemsSlotProps, RichTreeViewItemsSlots } from "../internals/components/RichTreeViewItems.mjs";
|
|
7
|
+
import type { RichTreeViewLoadingSlotOwnProps, RichTreeViewLoadingSlotOwnerState } from "../internals/components/RichTreeViewLoading.mjs";
|
|
8
|
+
import type { TreeItemLoaderOwnerState } from "../TreeItemLoader/index.mjs";
|
|
6
9
|
import type { TreeViewSlotProps, TreeViewSlots } from "../internals/TreeViewProvider/TreeViewStyleContext.mjs";
|
|
7
10
|
import type { RichTreeViewStore } from "../internals/RichTreeViewStore/index.mjs";
|
|
8
11
|
import type { TreeViewValidItem } from "../models/items.mjs";
|
|
@@ -14,8 +17,26 @@ export interface RichTreeViewSlots extends TreeViewSlots, Omit<RichTreeViewItems
|
|
|
14
17
|
* @default RichTreeViewRoot
|
|
15
18
|
*/
|
|
16
19
|
root?: React.ElementType;
|
|
20
|
+
/**
|
|
21
|
+
* Component rendered instead of the default loading rows.
|
|
22
|
+
* It renders inside the tree root while the tree is loading, which keeps the
|
|
23
|
+
* `role="tree"` and `aria-busy` attributes, and inside a lazily loading item
|
|
24
|
+
* while its children load.
|
|
25
|
+
* Compose it with `TreeItemLoader` to keep the rows semantically correct.
|
|
26
|
+
*/
|
|
27
|
+
loading?: React.ElementType;
|
|
28
|
+
/**
|
|
29
|
+
* Component rendered for each loading row.
|
|
30
|
+
* It also renders for the children of an item while they load lazily.
|
|
31
|
+
* Wrap custom content in `TreeItemLoader` to keep the row semantically correct.
|
|
32
|
+
* @default TreeItemLoader
|
|
33
|
+
*/
|
|
34
|
+
itemLoader?: React.ElementType;
|
|
35
|
+
}
|
|
36
|
+
export interface RichTreeViewSlotProps<R extends {}, Multiple extends boolean | undefined> extends TreeViewSlotProps, RichTreeViewItemsSlotProps<RichTreeViewProps<R, Multiple>> {
|
|
37
|
+
loading?: SlotComponentProps<'div', RichTreeViewLoadingSlotOwnProps, RichTreeViewLoadingSlotOwnerState>;
|
|
38
|
+
itemLoader?: SlotComponentProps<'li', {}, TreeItemLoaderOwnerState>;
|
|
17
39
|
}
|
|
18
|
-
export interface RichTreeViewSlotProps<R extends {}, Multiple extends boolean | undefined> extends TreeViewSlotProps, RichTreeViewItemsSlotProps<RichTreeViewProps<R, Multiple>> {}
|
|
19
40
|
export type RichTreeViewApiRef<R extends TreeViewValidItem<R> = any, Multiple extends boolean | undefined = any> = React.RefObject<Partial<TreeViewPublicAPI<RichTreeViewStore<R, Multiple>>> | undefined>;
|
|
20
41
|
export interface RichTreeViewPropsBase extends React.HTMLAttributes<HTMLUListElement> {
|
|
21
42
|
className?: string;
|
|
@@ -27,6 +48,11 @@ export interface RichTreeViewPropsBase extends React.HTMLAttributes<HTMLUListEle
|
|
|
27
48
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
28
49
|
*/
|
|
29
50
|
sx?: SxProps<Theme>;
|
|
51
|
+
/**
|
|
52
|
+
* If `true`, a loading UI is displayed instead of the tree items.
|
|
53
|
+
* @default false
|
|
54
|
+
*/
|
|
55
|
+
loading?: boolean;
|
|
30
56
|
}
|
|
31
57
|
export interface RichTreeViewProps<R extends {}, Multiple extends boolean | undefined> extends UseTreeViewStoreParameters<RichTreeViewStore<R, Multiple>>, RichTreeViewPropsBase {
|
|
32
58
|
/**
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type * as React from 'react';
|
|
2
2
|
import type { Theme } from '@mui/material/styles';
|
|
3
3
|
import type { SxProps } from '@mui/system/styleFunctionSx';
|
|
4
|
+
import type { SlotComponentProps } from '@mui/utils/types';
|
|
4
5
|
import type { RichTreeViewClasses } from "./richTreeViewClasses.js";
|
|
5
6
|
import type { RichTreeViewItemsSlotProps, RichTreeViewItemsSlots } from "../internals/components/RichTreeViewItems.js";
|
|
7
|
+
import type { RichTreeViewLoadingSlotOwnProps, RichTreeViewLoadingSlotOwnerState } from "../internals/components/RichTreeViewLoading.js";
|
|
8
|
+
import type { TreeItemLoaderOwnerState } from "../TreeItemLoader/index.js";
|
|
6
9
|
import type { TreeViewSlotProps, TreeViewSlots } from "../internals/TreeViewProvider/TreeViewStyleContext.js";
|
|
7
10
|
import type { RichTreeViewStore } from "../internals/RichTreeViewStore/index.js";
|
|
8
11
|
import type { TreeViewValidItem } from "../models/items.js";
|
|
@@ -14,8 +17,26 @@ export interface RichTreeViewSlots extends TreeViewSlots, Omit<RichTreeViewItems
|
|
|
14
17
|
* @default RichTreeViewRoot
|
|
15
18
|
*/
|
|
16
19
|
root?: React.ElementType;
|
|
20
|
+
/**
|
|
21
|
+
* Component rendered instead of the default loading rows.
|
|
22
|
+
* It renders inside the tree root while the tree is loading, which keeps the
|
|
23
|
+
* `role="tree"` and `aria-busy` attributes, and inside a lazily loading item
|
|
24
|
+
* while its children load.
|
|
25
|
+
* Compose it with `TreeItemLoader` to keep the rows semantically correct.
|
|
26
|
+
*/
|
|
27
|
+
loading?: React.ElementType;
|
|
28
|
+
/**
|
|
29
|
+
* Component rendered for each loading row.
|
|
30
|
+
* It also renders for the children of an item while they load lazily.
|
|
31
|
+
* Wrap custom content in `TreeItemLoader` to keep the row semantically correct.
|
|
32
|
+
* @default TreeItemLoader
|
|
33
|
+
*/
|
|
34
|
+
itemLoader?: React.ElementType;
|
|
35
|
+
}
|
|
36
|
+
export interface RichTreeViewSlotProps<R extends {}, Multiple extends boolean | undefined> extends TreeViewSlotProps, RichTreeViewItemsSlotProps<RichTreeViewProps<R, Multiple>> {
|
|
37
|
+
loading?: SlotComponentProps<'div', RichTreeViewLoadingSlotOwnProps, RichTreeViewLoadingSlotOwnerState>;
|
|
38
|
+
itemLoader?: SlotComponentProps<'li', {}, TreeItemLoaderOwnerState>;
|
|
17
39
|
}
|
|
18
|
-
export interface RichTreeViewSlotProps<R extends {}, Multiple extends boolean | undefined> extends TreeViewSlotProps, RichTreeViewItemsSlotProps<RichTreeViewProps<R, Multiple>> {}
|
|
19
40
|
export type RichTreeViewApiRef<R extends TreeViewValidItem<R> = any, Multiple extends boolean | undefined = any> = React.RefObject<Partial<TreeViewPublicAPI<RichTreeViewStore<R, Multiple>>> | undefined>;
|
|
20
41
|
export interface RichTreeViewPropsBase extends React.HTMLAttributes<HTMLUListElement> {
|
|
21
42
|
className?: string;
|
|
@@ -27,6 +48,11 @@ export interface RichTreeViewPropsBase extends React.HTMLAttributes<HTMLUListEle
|
|
|
27
48
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
28
49
|
*/
|
|
29
50
|
sx?: SxProps<Theme>;
|
|
51
|
+
/**
|
|
52
|
+
* If `true`, a loading UI is displayed instead of the tree items.
|
|
53
|
+
* @default false
|
|
54
|
+
*/
|
|
55
|
+
loading?: boolean;
|
|
30
56
|
}
|
|
31
57
|
export interface RichTreeViewProps<R extends {}, Multiple extends boolean | undefined> extends UseTreeViewStoreParameters<RichTreeViewStore<R, Multiple>>, RichTreeViewPropsBase {
|
|
32
58
|
/**
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { TreeViewClasses } from "../internals/TreeViewProvider/TreeViewStyleContext.mjs";
|
|
2
|
-
export interface RichTreeViewClasses extends Omit<TreeViewClasses, 'itemDragAndDropOverlay' | 'itemErrorIcon' | 'itemLoadingIcon'> {
|
|
2
|
+
export interface RichTreeViewClasses extends Omit<TreeViewClasses, 'itemDragAndDropOverlay' | 'itemErrorIcon' | 'itemLoadingIcon'> {
|
|
3
|
+
/** Styles applied to each item loader element. */
|
|
4
|
+
itemLoader: string;
|
|
5
|
+
}
|
|
3
6
|
export type RichTreeViewClassKey = keyof RichTreeViewClasses;
|
|
4
7
|
export declare function getRichTreeViewUtilityClass(slot: string): string;
|
|
5
8
|
export declare const richTreeViewClasses: RichTreeViewClasses;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { TreeViewClasses } from "../internals/TreeViewProvider/TreeViewStyleContext.js";
|
|
2
|
-
export interface RichTreeViewClasses extends Omit<TreeViewClasses, 'itemDragAndDropOverlay' | 'itemErrorIcon' | 'itemLoadingIcon'> {
|
|
2
|
+
export interface RichTreeViewClasses extends Omit<TreeViewClasses, 'itemDragAndDropOverlay' | 'itemErrorIcon' | 'itemLoadingIcon'> {
|
|
3
|
+
/** Styles applied to each item loader element. */
|
|
4
|
+
itemLoader: string;
|
|
5
|
+
}
|
|
3
6
|
export type RichTreeViewClassKey = keyof RichTreeViewClasses;
|
|
4
7
|
export declare function getRichTreeViewUtilityClass(slot: string): string;
|
|
5
8
|
export declare const richTreeViewClasses: RichTreeViewClasses;
|