@mui/x-license 9.0.2 → 9.1.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 +356 -0
- package/LICENSE +3 -1
- package/Watermark/Watermark.js +9 -2
- package/Watermark/Watermark.mjs +10 -3
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/internals/index.d.mts +1 -2
- package/internals/index.d.ts +1 -2
- package/internals/index.js +0 -12
- package/internals/index.mjs +1 -2
- package/package.json +18 -4
- package/useLicenseVerifier/useLicenseVerifier.js +3 -1
- package/useLicenseVerifier/useLicenseVerifier.mjs +3 -1
- package/utils/licenseErrorMessageUtils.d.mts +5 -1
- package/utils/licenseErrorMessageUtils.d.ts +5 -1
- package/utils/licenseErrorMessageUtils.js +5 -2
- package/utils/licenseErrorMessageUtils.mjs +5 -2
- package/verifyLicense/verifyLicense.js +10 -2
- package/verifyLicense/verifyLicense.mjs +10 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,361 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 9.1.0
|
|
4
|
+
|
|
5
|
+
_May 8, 2026_
|
|
6
|
+
|
|
7
|
+
We'd like to extend a big thank you to the 14 contributors who made this release possible. Here are some highlights ✨:
|
|
8
|
+
|
|
9
|
+
- ⚡️ Add a WebGL renderer to the [Scatter chart](https://mui.com/x/react-charts/scatter/#webgl-renderer), and apply the same WebGL performance patterns to the candlestick and heatmap [Premium]
|
|
10
|
+
- 🐞 Bugfixes
|
|
11
|
+
- 📚 Documentation improvements
|
|
12
|
+
|
|
13
|
+
Special thanks go out to these community members for their valuable contributions:
|
|
14
|
+
@Anexus5919, @gaetanodanelli, @imazizbohra, @mustafajw07
|
|
15
|
+
|
|
16
|
+
The following team members contributed to this release:
|
|
17
|
+
@alexfauquette, @brijeshb42, @flaviendelangle, @JCQuintas, @LukasTy, @mapache-salvaje, @MBilalShafi, @michelengelen, @oliviertassinari, @rita-codes
|
|
18
|
+
|
|
19
|
+
### Data Grid
|
|
20
|
+
|
|
21
|
+
#### `@mui/x-data-grid@9.1.0`
|
|
22
|
+
|
|
23
|
+
- [DataGrid] Fix accessibility violation in detail panel toggle column header (#22178) @michelengelen
|
|
24
|
+
- [DataGrid] Fix active filter detection for array values (#22340) @MBilalShafi
|
|
25
|
+
- [DataGrid] Fix crash when grouping/tree-data values match `Object.prototype` property names (#22312) @LukasTy
|
|
26
|
+
- [DataGrid] Position overlays below top pinned rows (#22341) @MBilalShafi
|
|
27
|
+
- [l10n] Improve Italian (it-IT) locale (#22290) @gaetanodanelli
|
|
28
|
+
|
|
29
|
+
#### `@mui/x-data-grid-pro@9.1.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
30
|
+
|
|
31
|
+
Same changes as in `@mui/x-data-grid@9.1.0`, plus:
|
|
32
|
+
|
|
33
|
+
- [DataGridPro] Fix column unpin restoring stale position after reorder (#22250) @michelengelen
|
|
34
|
+
|
|
35
|
+
#### `@mui/x-data-grid-premium@9.1.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
36
|
+
|
|
37
|
+
Same changes as in `@mui/x-data-grid-pro@9.1.0`, plus:
|
|
38
|
+
|
|
39
|
+
- [DataGridPremium] Fix aggregation column header title truncation without ellipsis (#22248) @michelengelen
|
|
40
|
+
|
|
41
|
+
### Date and Time Pickers
|
|
42
|
+
|
|
43
|
+
#### `@mui/x-date-pickers@9.1.0`
|
|
44
|
+
|
|
45
|
+
- [pickers] Fix duplicate hour label in `MultiSectionDigitalClock` on DST day (#22110) @LukasTy
|
|
46
|
+
- [l10n] Improve Italian (it-IT) locale (#22290) @gaetanodanelli
|
|
47
|
+
|
|
48
|
+
#### `@mui/x-date-pickers-pro@9.1.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
49
|
+
|
|
50
|
+
Same changes as in `@mui/x-date-pickers@9.1.0`.
|
|
51
|
+
|
|
52
|
+
### Charts
|
|
53
|
+
|
|
54
|
+
#### `@mui/x-charts@9.1.0`
|
|
55
|
+
|
|
56
|
+
- [charts] Add `ChartsAxisHighlightValue` component (#21803) @Copilot
|
|
57
|
+
- [charts] Create `ChartsRadialAxisHighlight` (#22241) @alexfauquette
|
|
58
|
+
- [charts] Remove useless extends (#22313) @alexfauquette
|
|
59
|
+
- [charts] Use `PolarAxisConfig` in polar plugin internals (#22315) @alexfauquette
|
|
60
|
+
|
|
61
|
+
#### `@mui/x-charts-pro@9.1.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
62
|
+
|
|
63
|
+
Same changes as in `@mui/x-charts@9.1.0`.
|
|
64
|
+
|
|
65
|
+
#### `@mui/x-charts-premium@9.1.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
66
|
+
|
|
67
|
+
Same changes as in `@mui/x-charts-pro@9.1.0`, plus:
|
|
68
|
+
|
|
69
|
+
- [charts-premium] Add WebGL renderer to `ScatterChartPremium` (#22157) @JCQuintas
|
|
70
|
+
- [charts-premium] Add highlight to the `RadialLineChart` (#22156) @alexfauquette
|
|
71
|
+
- [charts-premium] Apply WebGL perf patterns to candlestick + heatmap (#22223) @JCQuintas
|
|
72
|
+
- [charts-premium] Introduce the `RadialBarChart` (#22268) @alexfauquette
|
|
73
|
+
|
|
74
|
+
### Tree View
|
|
75
|
+
|
|
76
|
+
#### `@mui/x-tree-view@9.1.0`
|
|
77
|
+
|
|
78
|
+
- [tree view] Fix stale Tree View `apiRef` after keyed remount (#22342) @MBilalShafi
|
|
79
|
+
|
|
80
|
+
#### `@mui/x-tree-view-pro@9.1.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
81
|
+
|
|
82
|
+
Same changes as in `@mui/x-tree-view@9.1.0`.
|
|
83
|
+
|
|
84
|
+
### Scheduler
|
|
85
|
+
|
|
86
|
+
#### `@mui/x-scheduler@9.0.0-alpha.5`
|
|
87
|
+
|
|
88
|
+
- [scheduler] Make `EventItem` interactive by integrating button props for keyboard accessibility (#22160) @mustafajw07
|
|
89
|
+
- [scheduler] Migrate color switch to Base UI `ToggleGroup` (#22254) @flaviendelangle
|
|
90
|
+
- [scheduler] Rename Scheduler headless packages (#22273) @rita-codes
|
|
91
|
+
- [scheduler] Use TreeView for the resource sidebar (#22261) @flaviendelangle
|
|
92
|
+
- [scheduler] Use fieldset/legend instead of headings for form sections in the event dialog (#22095) @Anexus5919
|
|
93
|
+
- [scheduler] Added `position: relative` for consistent layout (#22284) @mustafajw07
|
|
94
|
+
- [l10n] Improve Italian (it-IT) locale (#22290) @gaetanodanelli
|
|
95
|
+
|
|
96
|
+
#### `@mui/x-scheduler-premium@9.0.0-alpha.5` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
97
|
+
|
|
98
|
+
Same changes as in `@mui/x-scheduler@9.0.0-alpha.5`, plus:
|
|
99
|
+
|
|
100
|
+
- [scheduler] Replace per-view headers with a generic `EventTimelinePremiumHeader` in the `EventTimeline` (#22222) @rita-codes
|
|
101
|
+
|
|
102
|
+
### Codemod
|
|
103
|
+
|
|
104
|
+
#### `@mui/x-codemod@9.1.0`
|
|
105
|
+
|
|
106
|
+
Internal changes.
|
|
107
|
+
|
|
108
|
+
### Docs
|
|
109
|
+
|
|
110
|
+
- [docs] Migrate `FlightPicker` overview demo to v9 `slotProps` shape (#22272) @LukasTy
|
|
111
|
+
- [docs] Standardize Scheduler docs style and formatting (#22161) @mapache-salvaje
|
|
112
|
+
- [docs] Add feedback form to the scheduler docs (#22237) @rita-codes
|
|
113
|
+
- [docs] Fix `GridToolbarCustom` demo crash in DataGrid (#21950) @MBilalShafi
|
|
114
|
+
- [docs] Do not resolve axes in charts (#22307) @alexfauquette
|
|
115
|
+
- [docs] Fix no longer valid link (#22371) @LukasTy
|
|
116
|
+
- [docs] Replace broken CodeSandbox iframes in migration guides (#22352) @LukasTy
|
|
117
|
+
|
|
118
|
+
### Core
|
|
119
|
+
|
|
120
|
+
- [code-infra] Bump browser `testTimeout` to absorb React 19 slowness (#22236) @LukasTy
|
|
121
|
+
- [code-infra] Use vale rules from code-infra package (#22256) @brijeshb42
|
|
122
|
+
- [code-infra] Fix broken valelint and docs build (#22362) @LukasTy
|
|
123
|
+
- [internal] Prepare renaming LICENSE file to LICENSE.md (#22055) @imazizbohra
|
|
124
|
+
- [internal] Remove outdated .woff files (#22286) @oliviertassinari
|
|
125
|
+
- [internal] Replace Codspeed with `@mui/internal-benchmark` for charts (#22243) @JCQuintas
|
|
126
|
+
|
|
127
|
+
### Miscellaneous
|
|
128
|
+
|
|
129
|
+
- [internal-gestures] Add passive option to `TurnWheelGesture` (#22349) @JCQuintas
|
|
130
|
+
- [internal-gestures] Enforce pointer-type filter in `ShadowRoot` branch (#22327) @JCQuintas
|
|
131
|
+
- [internal-gestures] Improve passive event listener handling (#22329) @JCQuintas
|
|
132
|
+
- [internal-gestures] Inline wheel-delta clamp per axis (#22331) @JCQuintas
|
|
133
|
+
- [internal-gestures] Return read-only pointer map without copy (#22330) @JCQuintas
|
|
134
|
+
- [internal-gestures] Track multi-tap reset timeout to prevent leak (#22326) @JCQuintas
|
|
135
|
+
|
|
136
|
+
## 9.0.4
|
|
137
|
+
|
|
138
|
+
_Apr 28, 2026_
|
|
139
|
+
|
|
140
|
+
We'd like to extend a big thank you to the 4 contributors who made this release possible. Here are some highlights ✨:
|
|
141
|
+
|
|
142
|
+
- Fix Pickers previous (v9.0.3) release ensuring the latest `@mui/x-internals` version usage
|
|
143
|
+
|
|
144
|
+
The following team members contributed to this release:
|
|
145
|
+
@alexfauquette, @JCQuintas, @LukasTy, @mj12albert
|
|
146
|
+
|
|
147
|
+
### Data Grid
|
|
148
|
+
|
|
149
|
+
#### `@mui/x-data-grid@9.0.4`
|
|
150
|
+
|
|
151
|
+
Internal changes.
|
|
152
|
+
|
|
153
|
+
#### `@mui/x-data-grid-pro@9.0.4` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
154
|
+
|
|
155
|
+
Same changes as in `@mui/x-data-grid@9.0.4`.
|
|
156
|
+
|
|
157
|
+
#### `@mui/x-data-grid-premium@9.0.4` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
158
|
+
|
|
159
|
+
Same changes as in `@mui/x-data-grid-pro@9.0.4`.
|
|
160
|
+
|
|
161
|
+
### Date and Time Pickers
|
|
162
|
+
|
|
163
|
+
#### `@mui/x-date-pickers@9.0.4`
|
|
164
|
+
|
|
165
|
+
Internal changes.
|
|
166
|
+
|
|
167
|
+
#### `@mui/x-date-pickers-pro@9.0.4` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
168
|
+
|
|
169
|
+
Same changes as in `@mui/x-date-pickers@9.0.4`.
|
|
170
|
+
|
|
171
|
+
### Charts
|
|
172
|
+
|
|
173
|
+
#### `@mui/x-charts@9.0.4`
|
|
174
|
+
|
|
175
|
+
- [charts] Exclude hidden series and items from keyboard navigation (alt approach) (#22221) @JCQuintas
|
|
176
|
+
- [charts] Fix line interaction with `area` and `conectNulls` (#22227) @alexfauquette
|
|
177
|
+
- [charts] Implement the continuous case of `getAxisIndex` for rotation axis (#22230) @alexfauquette
|
|
178
|
+
|
|
179
|
+
#### `@mui/x-charts-pro@9.0.4` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
180
|
+
|
|
181
|
+
Same changes as in `@mui/x-charts@9.0.4`.
|
|
182
|
+
|
|
183
|
+
#### `@mui/x-charts-premium@9.0.4` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
184
|
+
|
|
185
|
+
Same changes as in `@mui/x-charts-pro@9.0.4` plus:
|
|
186
|
+
|
|
187
|
+
- [charts-premium] Add `showMark` and `shape` properties to radial line (#22226) @alexfauquette
|
|
188
|
+
|
|
189
|
+
### Tree View
|
|
190
|
+
|
|
191
|
+
#### `@mui/x-tree-view@9.0.4`
|
|
192
|
+
|
|
193
|
+
Internal changes.
|
|
194
|
+
|
|
195
|
+
#### `@mui/x-tree-view-pro@9.0.4` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
196
|
+
|
|
197
|
+
Same changes as in `@mui/x-tree-view@9.0.4`.
|
|
198
|
+
|
|
199
|
+
### Scheduler
|
|
200
|
+
|
|
201
|
+
#### `@mui/x-scheduler@9.0.4`
|
|
202
|
+
|
|
203
|
+
Internal changes.
|
|
204
|
+
|
|
205
|
+
#### `@mui/x-scheduler-premium@9.0.4` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
206
|
+
|
|
207
|
+
Same changes as in `@mui/x-scheduler@9.0.4`.
|
|
208
|
+
|
|
209
|
+
### Codemod
|
|
210
|
+
|
|
211
|
+
#### `@mui/x-codemod@9.0.4`
|
|
212
|
+
|
|
213
|
+
Internal changes.
|
|
214
|
+
|
|
215
|
+
### Docs
|
|
216
|
+
|
|
217
|
+
- [docs] Update WCAG links (#22234) @mj12albert
|
|
218
|
+
|
|
219
|
+
### Core
|
|
220
|
+
|
|
221
|
+
- [code-infra] Avoid overriding `renovate` `ignoredPaths` (#22228) @LukasTy
|
|
222
|
+
|
|
223
|
+
## 9.0.3
|
|
224
|
+
|
|
225
|
+
_Apr 27, 2026_
|
|
226
|
+
|
|
227
|
+
We'd like to extend a big thank you to the 16 contributors who made this release possible. Here are some highlights ✨:
|
|
228
|
+
|
|
229
|
+
- ⌨️ Keyboard support for creating events in the Scheduler
|
|
230
|
+
|
|
231
|
+
Special thanks go out to these community members for their valuable contributions:
|
|
232
|
+
@supunsathsara, @ZAKIURREHMAN
|
|
233
|
+
|
|
234
|
+
The following team members contributed to this release:
|
|
235
|
+
@aemartos, @alexfauquette, @arminmeh, @brijeshb42, @Janpot, @JCQuintas, @LukasTy, @MBilalShafi, @michelengelen, @oliviertassinari, @rita-codes, @romgrk, @sai6855, @siriwatknp
|
|
236
|
+
|
|
237
|
+
### Data Grid
|
|
238
|
+
|
|
239
|
+
#### `@mui/x-data-grid@9.0.3`
|
|
240
|
+
|
|
241
|
+
- [DataGrid] Fix `:first-child` SSR warning when `MuiDataGrid.styleOverrides` is set (#22081) @siriwatknp
|
|
242
|
+
- [DataGrid] Fix row reordering when filter hides rows (#22096) @siriwatknp
|
|
243
|
+
- [DataGrid] Remove unused `LayoutDataGridLegacy` class (#22009) @romgrk
|
|
244
|
+
- [DataGrid] Remove unused code, clean up grid-related utilities and deprecate `GridPanelHeader` (#22112) @sai6855
|
|
245
|
+
- [DataGrid] Fix columns cutting off after resizing (#22088) @ZAKIURREHMAN
|
|
246
|
+
|
|
247
|
+
#### `@mui/x-data-grid-pro@9.0.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
248
|
+
|
|
249
|
+
Same changes as in `@mui/x-data-grid@9.0.3`.
|
|
250
|
+
|
|
251
|
+
#### `@mui/x-data-grid-premium@9.0.3` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
252
|
+
|
|
253
|
+
Same changes as in `@mui/x-data-grid-pro@9.0.3`, plus:
|
|
254
|
+
|
|
255
|
+
- [DataGridPremium] Fix row grouping model updates not being reflected (#22122) @MBilalShafi
|
|
256
|
+
|
|
257
|
+
### Date and Time Pickers
|
|
258
|
+
|
|
259
|
+
#### `@mui/x-date-pickers@9.0.3`
|
|
260
|
+
|
|
261
|
+
- [pickers] Fix `DateRangeCalendar` drag with `AdapterDayjs` plain-constructor values (#22165) @LukasTy
|
|
262
|
+
- [pickers] Fix disabled state not overriding error border color (#21169) @supunsathsara
|
|
263
|
+
- [pickers] Forward `data-*` and `aria-*` attributes to the root (#22147) @LukasTy
|
|
264
|
+
- [pickers] Support `K` and `k` hour format tokens (#22108) @michelengelen
|
|
265
|
+
|
|
266
|
+
#### `@mui/x-date-pickers-pro@9.0.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
267
|
+
|
|
268
|
+
Same changes as in `@mui/x-date-pickers@9.0.3`, plus:
|
|
269
|
+
|
|
270
|
+
- [DateRangeCalendar] Ensure date dragging triggers regardless of trigger element (#21868) @michelengelen
|
|
271
|
+
|
|
272
|
+
### Charts
|
|
273
|
+
|
|
274
|
+
#### `@mui/x-charts@9.0.3`
|
|
275
|
+
|
|
276
|
+
- [charts] Centralize WebGL clear/render cycle (context-based) (#22127) @JCQuintas
|
|
277
|
+
- [charts] Fix closest series detection for line charts (#22168) @alexfauquette
|
|
278
|
+
- [charts] Fix radius grid lines when axis uses point scale (#22134) @alexfauquette
|
|
279
|
+
- [charts] Use cubic solver for berzier intersection (#22152) @alexfauquette
|
|
280
|
+
|
|
281
|
+
#### `@mui/x-charts-pro@9.0.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
282
|
+
|
|
283
|
+
Same changes as in `@mui/x-charts@9.0.3`, plus:
|
|
284
|
+
|
|
285
|
+
- [charts-pro] Fix wheel zoom clamping with custom `minStart`/`maxEnd` (#22159) @JCQuintas
|
|
286
|
+
|
|
287
|
+
#### `@mui/x-charts-premium@9.0.3` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
288
|
+
|
|
289
|
+
Same changes as in `@mui/x-charts-pro@9.0.3`, plus:
|
|
290
|
+
|
|
291
|
+
- [charts] Create a `'radialLine'` series type (#22066) @alexfauquette
|
|
292
|
+
- [charts] Plot radial line (#22133) @alexfauquette
|
|
293
|
+
- [charts] Remove `HeatmapWebGLRenderer` indirection (#22169) @JCQuintas
|
|
294
|
+
|
|
295
|
+
### Tree View
|
|
296
|
+
|
|
297
|
+
#### `@mui/x-tree-view@9.0.2`
|
|
298
|
+
|
|
299
|
+
Internal changes.
|
|
300
|
+
|
|
301
|
+
#### `@mui/x-tree-view-pro@9.0.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
302
|
+
|
|
303
|
+
Same changes as in `@mui/x-tree-view@9.0.2`.
|
|
304
|
+
|
|
305
|
+
### Scheduler
|
|
306
|
+
|
|
307
|
+
#### Breaking changes
|
|
308
|
+
|
|
309
|
+
- The `views` of `EventTimelinePremium` have been renamed to `presets`, with names that describe the header layout. The props `view`/`defaultView`/`views`/`onViewChange` are now `preset`/`defaultPreset`/`presets`/`onPresetChange`, and the type `EventTimelinePremiumView` is now `EventTimelinePremiumPreset`.
|
|
310
|
+
|
|
311
|
+
| Old | New |
|
|
312
|
+
| :------- | :------------- |
|
|
313
|
+
| `time` | `dayAndHour` |
|
|
314
|
+
| `days` | `day` |
|
|
315
|
+
| `weeks` | `dayAndWeek` |
|
|
316
|
+
| `months` | `monthAndYear` |
|
|
317
|
+
| `years` | `year` |
|
|
318
|
+
|
|
319
|
+
CSS variables (`--time-cell-width`, etc.) and headless store state (`state.view`, `setView`) follow the same rename. The `presets` array is now sorted internally against a canonical zoom order.
|
|
320
|
+
|
|
321
|
+
#### `@mui/x-scheduler@9.0.0-alpha.3`
|
|
322
|
+
|
|
323
|
+
- [scheduler] Allow creating events via keyboard - EventCalendar (#21967) @rita-codes
|
|
324
|
+
- [scheduler] Prefix element IDs with a unique Scheduler instance ID (#22109) @rita-codes
|
|
325
|
+
|
|
326
|
+
#### `@mui/x-scheduler-premium@9.0.0-alpha.3` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
327
|
+
|
|
328
|
+
Same changes as in `@mui/x-scheduler@9.0.0-alpha.3`.
|
|
329
|
+
|
|
330
|
+
- [scheduler] Allow creating events via keyboard - `EventTimeline` (#22119) @rita-codes
|
|
331
|
+
- [scheduler] Rename `EventTimeline` `views` to ordered presets (#22130) @rita-codes
|
|
332
|
+
|
|
333
|
+
### Docs
|
|
334
|
+
|
|
335
|
+
- [docs] Cleanup generated llm md files for chat (#22163) @brijeshb42
|
|
336
|
+
- [docs] Fix `highlightScope` description (#22154) @alexfauquette
|
|
337
|
+
- [docs] Remove obsolete v7 deprecation warning for `dayOfWeekFormatter` (#22111) @LukasTy
|
|
338
|
+
- [docs] Use mui.com for broken links checker known targets (#22129) @JCQuintas
|
|
339
|
+
- [docs] Document picker behavior inside MUI `Dialog` and provide recommended solutions (#22144) @michelengelen
|
|
340
|
+
- [docs] Improve v9 license key version mismatch error guidance (#22180) @aemartos
|
|
341
|
+
|
|
342
|
+
### Core
|
|
343
|
+
|
|
344
|
+
- [code-infra] Reduce concurrency for package build to 5 (#22115) @Janpot
|
|
345
|
+
- [code-infra] Rename `docsx` alias to `docs` (#22155) @brijeshb42
|
|
346
|
+
- [docs-infra] Remove monorepo dependency (#22025) @brijeshb42
|
|
347
|
+
- [docs-infra] Use latest published packages (#22086) @brijeshb42
|
|
348
|
+
- [test] Refactor Pickers tests to async user-event (#22043) @LukasTy
|
|
349
|
+
- [test] Remove redundant explicit `unmount()` calls from Pickers tests (#22118) @LukasTy
|
|
350
|
+
|
|
351
|
+
### Miscellaneous
|
|
352
|
+
|
|
353
|
+
- [infra] Update `.gitignore` to exclude `.claude/worktrees` (#22145) @michelengelen
|
|
354
|
+
- [infra] Enable branch tracking when creating release branch (#22177) @michelengelen
|
|
355
|
+
- [license] Add MIT license to `x-virtualizer` package (#22164) @michelengelen
|
|
356
|
+
- [website] Fix outdated MUI logos (#22117) @oliviertassinari
|
|
357
|
+
- [internal] Try avoiding store update when virtualization is disabled (#22093) @arminmeh
|
|
358
|
+
|
|
3
359
|
## 9.0.2
|
|
4
360
|
|
|
5
361
|
<!-- generated comparing v9.0.1..master -->
|
package/LICENSE
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
# License
|
|
2
|
+
|
|
1
3
|
Commercial License
|
|
2
4
|
|
|
3
5
|
Copyright (c) 2020 Material-UI SAS
|
|
4
6
|
|
|
5
|
-
MUI
|
|
7
|
+
MUI X Pro (https://mui.com/pricing/) is commercial software. You MUST agree to the
|
|
6
8
|
End User License Agreement (EULA: https://mui.com/r/x-license-eula) to be able to
|
|
7
9
|
use the software.
|
|
8
10
|
|
package/Watermark/Watermark.js
CHANGED
|
@@ -39,7 +39,7 @@ function Watermark(props) {
|
|
|
39
39
|
if (licenseStatus.status === _licenseStatus.LICENSE_STATUS.Valid) {
|
|
40
40
|
return null;
|
|
41
41
|
}
|
|
42
|
-
return /*#__PURE__*/(0, _jsxRuntime.
|
|
42
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
43
43
|
style: {
|
|
44
44
|
position: 'absolute',
|
|
45
45
|
pointerEvents: 'none',
|
|
@@ -52,7 +52,14 @@ function Watermark(props) {
|
|
|
52
52
|
letterSpacing: 5,
|
|
53
53
|
fontSize: 24
|
|
54
54
|
},
|
|
55
|
-
children: getLicenseErrorMessage(licenseStatus.status)
|
|
55
|
+
children: [getLicenseErrorMessage(licenseStatus.status), process.env.NODE_ENV !== 'production' && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
56
|
+
style: {
|
|
57
|
+
fontSize: 12,
|
|
58
|
+
letterSpacing: 1,
|
|
59
|
+
marginTop: 8
|
|
60
|
+
},
|
|
61
|
+
children: "Open the browser console for details on how to resolve this."
|
|
62
|
+
})]
|
|
56
63
|
});
|
|
57
64
|
}
|
|
58
65
|
const MemoizedWatermark = exports.Watermark = (0, _fastMemo.fastMemo)(Watermark);
|
package/Watermark/Watermark.mjs
CHANGED
|
@@ -2,7 +2,7 @@ import _formatErrorMessage from "@mui/x-internals/formatErrorMessage";
|
|
|
2
2
|
import { fastMemo } from '@mui/x-internals/fastMemo';
|
|
3
3
|
import { useLicenseVerifier } from "../useLicenseVerifier/index.mjs";
|
|
4
4
|
import { LICENSE_STATUS } from "../utils/licenseStatus.mjs";
|
|
5
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
6
|
function getLicenseErrorMessage(licenseStatus) {
|
|
7
7
|
switch (licenseStatus) {
|
|
8
8
|
case LICENSE_STATUS.ExpiredAnnualGrace:
|
|
@@ -32,7 +32,7 @@ function Watermark(props) {
|
|
|
32
32
|
if (licenseStatus.status === LICENSE_STATUS.Valid) {
|
|
33
33
|
return null;
|
|
34
34
|
}
|
|
35
|
-
return /*#__PURE__*/
|
|
35
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
36
36
|
style: {
|
|
37
37
|
position: 'absolute',
|
|
38
38
|
pointerEvents: 'none',
|
|
@@ -45,7 +45,14 @@ function Watermark(props) {
|
|
|
45
45
|
letterSpacing: 5,
|
|
46
46
|
fontSize: 24
|
|
47
47
|
},
|
|
48
|
-
children: getLicenseErrorMessage(licenseStatus.status)
|
|
48
|
+
children: [getLicenseErrorMessage(licenseStatus.status), process.env.NODE_ENV !== 'production' && /*#__PURE__*/_jsx("div", {
|
|
49
|
+
style: {
|
|
50
|
+
fontSize: 12,
|
|
51
|
+
letterSpacing: 1,
|
|
52
|
+
marginTop: 8
|
|
53
|
+
},
|
|
54
|
+
children: "Open the browser console for details on how to resolve this."
|
|
55
|
+
})]
|
|
49
56
|
});
|
|
50
57
|
}
|
|
51
58
|
const MemoizedWatermark = fastMemo(Watermark);
|
package/index.js
CHANGED
package/index.mjs
CHANGED
package/internals/index.d.mts
CHANGED
|
@@ -9,5 +9,4 @@ export type { MuiLicenseInfo } from "../utils/licenseInfo.mjs";
|
|
|
9
9
|
export type { MuiCommercialPackageName, CommercialPackageInfo } from "../utils/commercialPackages.mjs";
|
|
10
10
|
export { Watermark } from "../Watermark/Watermark.mjs";
|
|
11
11
|
export { useLicenseVerifier, clearLicenseStatusCache } from "../useLicenseVerifier/useLicenseVerifier.mjs";
|
|
12
|
-
export * from "../verifyLicense/verifyLicense.mjs";
|
|
13
|
-
export * from "../test-keys.mjs";
|
|
12
|
+
export * from "../verifyLicense/verifyLicense.mjs";
|
package/internals/index.d.ts
CHANGED
|
@@ -9,5 +9,4 @@ export type { MuiLicenseInfo } from "../utils/licenseInfo.js";
|
|
|
9
9
|
export type { MuiCommercialPackageName, CommercialPackageInfo } from "../utils/commercialPackages.js";
|
|
10
10
|
export { Watermark } from "../Watermark/Watermark.js";
|
|
11
11
|
export { useLicenseVerifier, clearLicenseStatusCache } from "../useLicenseVerifier/useLicenseVerifier.js";
|
|
12
|
-
export * from "../verifyLicense/verifyLicense.js";
|
|
13
|
-
export * from "../test-keys.js";
|
|
12
|
+
export * from "../verifyLicense/verifyLicense.js";
|
package/internals/index.js
CHANGED
|
@@ -93,16 +93,4 @@ Object.keys(_verifyLicense).forEach(function (key) {
|
|
|
93
93
|
return _verifyLicense[key];
|
|
94
94
|
}
|
|
95
95
|
});
|
|
96
|
-
});
|
|
97
|
-
var _testKeys = require("../test-keys");
|
|
98
|
-
Object.keys(_testKeys).forEach(function (key) {
|
|
99
|
-
if (key === "default" || key === "__esModule") return;
|
|
100
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
101
|
-
if (key in exports && exports[key] === _testKeys[key]) return;
|
|
102
|
-
Object.defineProperty(exports, key, {
|
|
103
|
-
enumerable: true,
|
|
104
|
-
get: function () {
|
|
105
|
-
return _testKeys[key];
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
96
|
});
|
package/internals/index.mjs
CHANGED
|
@@ -5,5 +5,4 @@ export { PLAN_SCOPES, PLAN_VERSIONS } from "../utils/licensePlan.mjs";
|
|
|
5
5
|
export { LICENSE_MODELS } from "../utils/licenseModel.mjs";
|
|
6
6
|
export { Watermark } from "../Watermark/Watermark.mjs";
|
|
7
7
|
export { useLicenseVerifier, clearLicenseStatusCache } from "../useLicenseVerifier/useLicenseVerifier.mjs";
|
|
8
|
-
export * from "../verifyLicense/verifyLicense.mjs";
|
|
9
|
-
export * from "../test-keys.mjs";
|
|
8
|
+
export * from "../verifyLicense/verifyLicense.mjs";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-license",
|
|
3
|
-
"version": "9.0
|
|
3
|
+
"version": "9.1.0",
|
|
4
4
|
"author": "MUI Team",
|
|
5
5
|
"description": "MUI X License verification.",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
"directory": "packages/x-license"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@babel/runtime": "^7.
|
|
24
|
+
"@babel/runtime": "^7.29.2",
|
|
25
25
|
"@mui/utils": "9.0.0",
|
|
26
|
-
"@mui/x-
|
|
27
|
-
"@mui/x-
|
|
26
|
+
"@mui/x-internals": "^9.1.0",
|
|
27
|
+
"@mui/x-telemetry": "^9.1.0"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
30
|
"react": "^17.0.0 || ^18.0.0 || ^19.0.0"
|
|
@@ -62,6 +62,20 @@
|
|
|
62
62
|
"types": "./internals/index.d.mts",
|
|
63
63
|
"default": "./internals/index.mjs"
|
|
64
64
|
}
|
|
65
|
+
},
|
|
66
|
+
"./test-keys": {
|
|
67
|
+
"import": {
|
|
68
|
+
"types": "./test-keys.d.mts",
|
|
69
|
+
"default": "./test-keys.mjs"
|
|
70
|
+
},
|
|
71
|
+
"require": {
|
|
72
|
+
"types": "./test-keys.d.ts",
|
|
73
|
+
"default": "./test-keys.js"
|
|
74
|
+
},
|
|
75
|
+
"default": {
|
|
76
|
+
"types": "./test-keys.d.mts",
|
|
77
|
+
"default": "./test-keys.mjs"
|
|
78
|
+
}
|
|
65
79
|
}
|
|
66
80
|
},
|
|
67
81
|
"main": "./index.js",
|
|
@@ -88,8 +88,10 @@ function useLicenseVerifier(packageInfo) {
|
|
|
88
88
|
packageName: fullPackageName
|
|
89
89
|
});
|
|
90
90
|
} else if (licenseStatus.status === _licenseStatus.LICENSE_STATUS.NotValidForPackage) {
|
|
91
|
-
(0, _licenseErrorMessageUtils.showLicenseKeyVersionMismatchError)();
|
|
91
|
+
(0, _licenseErrorMessageUtils.showLicenseKeyVersionMismatchError)(licenseStatus.meta);
|
|
92
92
|
} else if (process.env.NODE_ENV !== 'production') {
|
|
93
|
+
// TODO: fix mui/no-guarded-throw
|
|
94
|
+
// eslint-disable-next-line mui/no-guarded-throw
|
|
93
95
|
throw new Error('missing status handler');
|
|
94
96
|
}
|
|
95
97
|
sharedLicenseStatuses[packageName] = {
|
|
@@ -79,8 +79,10 @@ export function useLicenseVerifier(packageInfo) {
|
|
|
79
79
|
packageName: fullPackageName
|
|
80
80
|
});
|
|
81
81
|
} else if (licenseStatus.status === LICENSE_STATUS.NotValidForPackage) {
|
|
82
|
-
showLicenseKeyVersionMismatchError();
|
|
82
|
+
showLicenseKeyVersionMismatchError(licenseStatus.meta);
|
|
83
83
|
} else if (process.env.NODE_ENV !== 'production') {
|
|
84
|
+
// TODO: fix mui/no-guarded-throw
|
|
85
|
+
// eslint-disable-next-line mui/no-guarded-throw
|
|
84
86
|
throw new Error('missing status handler');
|
|
85
87
|
}
|
|
86
88
|
sharedLicenseStatuses[packageName] = {
|
|
@@ -5,7 +5,11 @@ export declare function showLicenseKeyPlanMismatchError({
|
|
|
5
5
|
packageName: string;
|
|
6
6
|
}): void;
|
|
7
7
|
export declare function showNotAvailableInInitialProPlanError(): void;
|
|
8
|
-
export declare function showLicenseKeyVersionMismatchError(
|
|
8
|
+
export declare function showLicenseKeyVersionMismatchError({
|
|
9
|
+
packageMajorVersion
|
|
10
|
+
}: {
|
|
11
|
+
packageMajorVersion: number;
|
|
12
|
+
}): void;
|
|
9
13
|
export declare function showMissingLicenseKeyError({
|
|
10
14
|
plan,
|
|
11
15
|
packageName
|
|
@@ -5,7 +5,11 @@ export declare function showLicenseKeyPlanMismatchError({
|
|
|
5
5
|
packageName: string;
|
|
6
6
|
}): void;
|
|
7
7
|
export declare function showNotAvailableInInitialProPlanError(): void;
|
|
8
|
-
export declare function showLicenseKeyVersionMismatchError(
|
|
8
|
+
export declare function showLicenseKeyVersionMismatchError({
|
|
9
|
+
packageMajorVersion
|
|
10
|
+
}: {
|
|
11
|
+
packageMajorVersion: number;
|
|
12
|
+
}): void;
|
|
9
13
|
export declare function showMissingLicenseKeyError({
|
|
10
14
|
plan,
|
|
11
15
|
packageName
|
|
@@ -40,8 +40,11 @@ function showLicenseKeyPlanMismatchError({
|
|
|
40
40
|
function showNotAvailableInInitialProPlanError() {
|
|
41
41
|
showError(['MUI X: Component not included in your license.', '', 'The component you are trying to use is not included in the Pro Plan you purchased.', '', 'Your license is from an old version of the Pro Plan that is only compatible with the `@mui/x-data-grid-pro` and `@mui/x-date-pickers-pro` commercial packages.', '', 'To start using another Pro package, please consider reaching to our sales team to upgrade your license or visit https://mui.com/r/x-get-license to get a new license key.']);
|
|
42
42
|
}
|
|
43
|
-
function showLicenseKeyVersionMismatchError(
|
|
44
|
-
|
|
43
|
+
function showLicenseKeyVersionMismatchError({
|
|
44
|
+
packageMajorVersion
|
|
45
|
+
}) {
|
|
46
|
+
const previousMajorVersion = packageMajorVersion - 1;
|
|
47
|
+
showError(['MUI X: License key version mismatch.', '', `The license key you are using was issued for an older major version of MUI X (e.g. a v${previousMajorVersion} license with v${packageMajorVersion} packages installed).`, 'Each major version uses a different license key format, so the key needs to be regenerated — your existing license is not lost.', '', 'To resolve this, you can either:', `- Generate a new key compatible with v${packageMajorVersion} from your account at https://mui.com/r/x-license-account/ (free for existing customers, the new key inherits your current expiration date).`, `- Or downgrade the MUI X packages to v${previousMajorVersion} to match your current license key.`, `${packageMajorVersion === 9 ? 'More details at https://mui.com/r/x-license-key-v9-upgrade/.' : ''}`]);
|
|
45
48
|
}
|
|
46
49
|
function showMissingLicenseKeyError({
|
|
47
50
|
plan,
|
|
@@ -26,8 +26,11 @@ export function showLicenseKeyPlanMismatchError({
|
|
|
26
26
|
export function showNotAvailableInInitialProPlanError() {
|
|
27
27
|
showError(['MUI X: Component not included in your license.', '', 'The component you are trying to use is not included in the Pro Plan you purchased.', '', 'Your license is from an old version of the Pro Plan that is only compatible with the `@mui/x-data-grid-pro` and `@mui/x-date-pickers-pro` commercial packages.', '', 'To start using another Pro package, please consider reaching to our sales team to upgrade your license or visit https://mui.com/r/x-get-license to get a new license key.']);
|
|
28
28
|
}
|
|
29
|
-
export function showLicenseKeyVersionMismatchError(
|
|
30
|
-
|
|
29
|
+
export function showLicenseKeyVersionMismatchError({
|
|
30
|
+
packageMajorVersion
|
|
31
|
+
}) {
|
|
32
|
+
const previousMajorVersion = packageMajorVersion - 1;
|
|
33
|
+
showError(['MUI X: License key version mismatch.', '', `The license key you are using was issued for an older major version of MUI X (e.g. a v${previousMajorVersion} license with v${packageMajorVersion} packages installed).`, 'Each major version uses a different license key format, so the key needs to be regenerated — your existing license is not lost.', '', 'To resolve this, you can either:', `- Generate a new key compatible with v${packageMajorVersion} from your account at https://mui.com/r/x-license-account/ (free for existing customers, the new key inherits your current expiration date).`, `- Or downgrade the MUI X packages to v${previousMajorVersion} to match your current license key.`, `${packageMajorVersion === 9 ? 'More details at https://mui.com/r/x-license-key-v9-upgrade/.' : ''}`]);
|
|
31
34
|
}
|
|
32
35
|
export function showMissingLicenseKeyError({
|
|
33
36
|
plan,
|
|
@@ -218,6 +218,8 @@ function verifyLicense({
|
|
|
218
218
|
if (license.licenseModel === 'perpetual' || process.env.NODE_ENV === 'production') {
|
|
219
219
|
const pkgTimestamp = parseInt((0, _base.base64Decode)(releaseDate), 10);
|
|
220
220
|
if (Number.isNaN(pkgTimestamp)) {
|
|
221
|
+
// TODO: fix mui/no-guarded-throw
|
|
222
|
+
// eslint-disable-next-line mui/no-guarded-throw
|
|
221
223
|
throw new Error(process.env.NODE_ENV !== "production" ? 'MUI X: The release information is invalid and license validation cannot proceed. ' + 'The package release timestamp could not be parsed. ' + 'This may indicate a corrupted package. Try reinstalling the MUI X packages.' : (0, _formatErrorMessage2.default)(189));
|
|
222
224
|
}
|
|
223
225
|
if (license.expiryTimestamp < pkgTimestamp) {
|
|
@@ -225,7 +227,10 @@ function verifyLicense({
|
|
|
225
227
|
// are not valid for v9 packages.
|
|
226
228
|
if (packageMajorVersion != null && packageMajorVersion >= 9 && license.licenseModel === 'perpetual' && (0, _licensePlan.isPlanVersionOlderOrEqual)(license.planVersion, MAX_V8_PLAN_VERSION)) {
|
|
227
229
|
return {
|
|
228
|
-
status: _licenseStatus.LICENSE_STATUS.NotValidForPackage
|
|
230
|
+
status: _licenseStatus.LICENSE_STATUS.NotValidForPackage,
|
|
231
|
+
meta: {
|
|
232
|
+
packageMajorVersion
|
|
233
|
+
}
|
|
229
234
|
};
|
|
230
235
|
}
|
|
231
236
|
return {
|
|
@@ -277,7 +282,10 @@ function verifyLicense({
|
|
|
277
282
|
// Perpetual licenses are exempt as they are already gated by the expiry date check.
|
|
278
283
|
if (packageMajorVersion != null && packageMajorVersion >= 9 && license.licenseModel !== 'perpetual' && (0, _licensePlan.isPlanVersionOlderOrEqual)(license.planVersion, MAX_V8_PLAN_VERSION)) {
|
|
279
284
|
return {
|
|
280
|
-
status: _licenseStatus.LICENSE_STATUS.NotValidForPackage
|
|
285
|
+
status: _licenseStatus.LICENSE_STATUS.NotValidForPackage,
|
|
286
|
+
meta: {
|
|
287
|
+
packageMajorVersion
|
|
288
|
+
}
|
|
281
289
|
};
|
|
282
290
|
}
|
|
283
291
|
return {
|
|
@@ -207,6 +207,8 @@ export function verifyLicense({
|
|
|
207
207
|
if (license.licenseModel === 'perpetual' || process.env.NODE_ENV === 'production') {
|
|
208
208
|
const pkgTimestamp = parseInt(base64Decode(releaseDate), 10);
|
|
209
209
|
if (Number.isNaN(pkgTimestamp)) {
|
|
210
|
+
// TODO: fix mui/no-guarded-throw
|
|
211
|
+
// eslint-disable-next-line mui/no-guarded-throw
|
|
210
212
|
throw new Error(process.env.NODE_ENV !== "production" ? 'MUI X: The release information is invalid and license validation cannot proceed. ' + 'The package release timestamp could not be parsed. ' + 'This may indicate a corrupted package. Try reinstalling the MUI X packages.' : _formatErrorMessage(189));
|
|
211
213
|
}
|
|
212
214
|
if (license.expiryTimestamp < pkgTimestamp) {
|
|
@@ -214,7 +216,10 @@ export function verifyLicense({
|
|
|
214
216
|
// are not valid for v9 packages.
|
|
215
217
|
if (packageMajorVersion != null && packageMajorVersion >= 9 && license.licenseModel === 'perpetual' && isPlanVersionOlderOrEqual(license.planVersion, MAX_V8_PLAN_VERSION)) {
|
|
216
218
|
return {
|
|
217
|
-
status: LICENSE_STATUS.NotValidForPackage
|
|
219
|
+
status: LICENSE_STATUS.NotValidForPackage,
|
|
220
|
+
meta: {
|
|
221
|
+
packageMajorVersion
|
|
222
|
+
}
|
|
218
223
|
};
|
|
219
224
|
}
|
|
220
225
|
return {
|
|
@@ -266,7 +271,10 @@ export function verifyLicense({
|
|
|
266
271
|
// Perpetual licenses are exempt as they are already gated by the expiry date check.
|
|
267
272
|
if (packageMajorVersion != null && packageMajorVersion >= 9 && license.licenseModel !== 'perpetual' && isPlanVersionOlderOrEqual(license.planVersion, MAX_V8_PLAN_VERSION)) {
|
|
268
273
|
return {
|
|
269
|
-
status: LICENSE_STATUS.NotValidForPackage
|
|
274
|
+
status: LICENSE_STATUS.NotValidForPackage,
|
|
275
|
+
meta: {
|
|
276
|
+
packageMajorVersion
|
|
277
|
+
}
|
|
270
278
|
};
|
|
271
279
|
}
|
|
272
280
|
return {
|