@mui/x-license 9.0.4 → 9.2.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 CHANGED
@@ -1,5 +1,241 @@
1
1
  # Changelog
2
2
 
3
+ ## 9.2.0
4
+
5
+ _May 13, 2026_
6
+
7
+ We'd like to extend a big thank you to the 9 contributors who made this release possible. Here are some highlights ✨:
8
+
9
+ - ⚡️ Add a WebGL renderer to the [Bar chart](https://mui.com/x/react-charts/bars/#webgl-renderer)
10
+ - 📊 Add a radial charts with the [radial line](https://mui.com/x/react-charts/radial-lines/), [radial bar](https://mui.com/x/react-charts/radial-bars/), and the [radial grid and axes](https://mui.com/x/react-charts/radial-axes/)
11
+ - 🐞 Bugfixes
12
+ - 📚 Documentation improvements
13
+
14
+ Special thanks go out to these community members for their valuable contributions:
15
+ @Anexus5919, @mustafajw07
16
+
17
+ The following team members contributed to this release:
18
+ @aemartos, @alexfauquette, @bernardobelchior, @JCQuintas, @oliviertassinari, @sai6855, @siriwatknp
19
+
20
+ ### Data Grid
21
+
22
+ #### `@mui/x-data-grid@9.2.0`
23
+
24
+ - [data grid] Add support for pinned columns in `GridVirtualScroller` (#22347) @sai6855
25
+ - [data grid] Remove unused CSS (#22390) @oliviertassinari
26
+
27
+ #### `@mui/x-data-grid-pro@9.2.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
28
+
29
+ Same changes as in `@mui/x-data-grid@9.2.0`.
30
+
31
+ #### `@mui/x-data-grid-premium@9.2.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
32
+
33
+ Same changes as in `@mui/x-data-grid-pro@9.2.0`.
34
+
35
+ ### Date and Time Pickers
36
+
37
+ #### `@mui/x-date-pickers@9.2.0`
38
+
39
+ - [pickers] Trim test helpers' default load graph (#22421) @JCQuintas
40
+
41
+ #### `@mui/x-date-pickers-pro@9.2.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
42
+
43
+ Same changes as in `@mui/x-date-pickers@9.2.0`.
44
+
45
+ ### Charts
46
+
47
+ #### `@mui/x-charts@9.2.0`
48
+
49
+ Internal changes.
50
+
51
+ #### `@mui/x-charts-pro@9.2.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
52
+
53
+ Same changes as in `@mui/x-charts@9.2.0`.
54
+
55
+ #### `@mui/x-charts-premium@9.2.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
56
+
57
+ Same changes as in `@mui/x-charts-pro@9.2.0`, plus:
58
+
59
+ - [charts-premium] Add `Highlight` support to `RadialBarChart` (#22322) @alexfauquette
60
+ - [charts-premium] Add `WebGL` renderer to `BarChartPremium` (#22354) @JCQuintas
61
+ - [charts-premium] Add mark shape support to the radial line (#22242) @alexfauquette
62
+ - [charts-premium] `RadialBarChart` support axis interaction with layout horizontal (#22319) @alexfauquette
63
+
64
+ ### Tree View
65
+
66
+ #### `@mui/x-tree-view@9.1.0`
67
+
68
+ Internal changes.
69
+
70
+ #### `@mui/x-tree-view-pro@9.1.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
71
+
72
+ Same changes as in `@mui/x-tree-view@9.1.0`.
73
+
74
+ ### Scheduler
75
+
76
+ #### `@mui/x-scheduler@9.0.0-alpha.6`
77
+
78
+ - [scheduler] Complete ARIA grid semantics on `EventTimeline` and `EventCalendar` (#22266) @Anexus5919
79
+ - [scheduler] Improve UX for recurrence tab (#22287) @mustafajw07
80
+
81
+ #### `@mui/x-scheduler-premium@9.0.0-alpha.6` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
82
+
83
+ Same changes as in `@mui/x-scheduler@9.0.0-alpha.6`.
84
+
85
+ ### Codemod
86
+
87
+ #### `@mui/x-codemod@9.1.0`
88
+
89
+ Internal changes.
90
+
91
+ ### Docs
92
+
93
+ - [docs] Document the `RadialBarChart` (#22320) @alexfauquette
94
+ - [docs] Add histogram demo to bar-demo page (#22373) @siriwatknp
95
+ - [docs] Add radial bar to the nav bar (#22429) @alexfauquette
96
+ - [docs] Split radial grid and radial line pages (#22238) @alexfauquette
97
+
98
+ ### Miscellaneous
99
+
100
+ - [test] Disable animations in chart benchmarks (#22433) @bernardobelchior
101
+ - [test] Move `x-internal-gestures` vitest isolate flag to test block (#22427) @JCQuintas
102
+ - [test] Reduce flakiness in `MobileTimeRangePicker` multi-input `describeValue` tests (#22422) @JCQuintas
103
+ - [x-license] Exclude compat test pins from Renovate major bumps (#22414) @aemartos
104
+ - [x-license] Add cross-major license format compatibility tests (#22335) @aemartos
105
+
106
+ ## 9.1.0
107
+
108
+ _May 8, 2026_
109
+
110
+ We'd like to extend a big thank you to the 14 contributors who made this release possible. Here are some highlights ✨:
111
+
112
+ - ⚡️ 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]
113
+ - 🐞 Bugfixes
114
+ - 📚 Documentation improvements
115
+
116
+ Special thanks go out to these community members for their valuable contributions:
117
+ @Anexus5919, @gaetanodanelli, @imazizbohra, @mustafajw07
118
+
119
+ The following team members contributed to this release:
120
+ @alexfauquette, @brijeshb42, @flaviendelangle, @JCQuintas, @LukasTy, @mapache-salvaje, @MBilalShafi, @michelengelen, @oliviertassinari, @rita-codes
121
+
122
+ ### Data Grid
123
+
124
+ #### `@mui/x-data-grid@9.1.0`
125
+
126
+ - [DataGrid] Fix accessibility violation in detail panel toggle column header (#22178) @michelengelen
127
+ - [DataGrid] Fix active filter detection for array values (#22340) @MBilalShafi
128
+ - [DataGrid] Fix crash when grouping/tree-data values match `Object.prototype` property names (#22312) @LukasTy
129
+ - [DataGrid] Position overlays below top pinned rows (#22341) @MBilalShafi
130
+ - [l10n] Improve Italian (it-IT) locale (#22290) @gaetanodanelli
131
+
132
+ #### `@mui/x-data-grid-pro@9.1.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
133
+
134
+ Same changes as in `@mui/x-data-grid@9.1.0`, plus:
135
+
136
+ - [DataGridPro] Fix column unpin restoring stale position after reorder (#22250) @michelengelen
137
+
138
+ #### `@mui/x-data-grid-premium@9.1.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
139
+
140
+ Same changes as in `@mui/x-data-grid-pro@9.1.0`, plus:
141
+
142
+ - [DataGridPremium] Fix aggregation column header title truncation without ellipsis (#22248) @michelengelen
143
+
144
+ ### Date and Time Pickers
145
+
146
+ #### `@mui/x-date-pickers@9.1.0`
147
+
148
+ - [pickers] Fix duplicate hour label in `MultiSectionDigitalClock` on DST day (#22110) @LukasTy
149
+ - [l10n] Improve Italian (it-IT) locale (#22290) @gaetanodanelli
150
+
151
+ #### `@mui/x-date-pickers-pro@9.1.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
152
+
153
+ Same changes as in `@mui/x-date-pickers@9.1.0`.
154
+
155
+ ### Charts
156
+
157
+ #### `@mui/x-charts@9.1.0`
158
+
159
+ - [charts] Add `ChartsAxisHighlightValue` component (#21803) @Copilot
160
+ - [charts] Create `ChartsRadialAxisHighlight` (#22241) @alexfauquette
161
+ - [charts] Remove useless extends (#22313) @alexfauquette
162
+ - [charts] Use `PolarAxisConfig` in polar plugin internals (#22315) @alexfauquette
163
+
164
+ #### `@mui/x-charts-pro@9.1.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
165
+
166
+ Same changes as in `@mui/x-charts@9.1.0`.
167
+
168
+ #### `@mui/x-charts-premium@9.1.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
169
+
170
+ Same changes as in `@mui/x-charts-pro@9.1.0`, plus:
171
+
172
+ - [charts-premium] Add WebGL renderer to `ScatterChartPremium` (#22157) @JCQuintas
173
+ - [charts-premium] Add highlight to the `RadialLineChart` (#22156) @alexfauquette
174
+ - [charts-premium] Apply WebGL perf patterns to candlestick + heatmap (#22223) @JCQuintas
175
+ - [charts-premium] Introduce the `RadialBarChart` (#22268) @alexfauquette
176
+
177
+ ### Tree View
178
+
179
+ #### `@mui/x-tree-view@9.1.0`
180
+
181
+ - [tree view] Fix stale Tree View `apiRef` after keyed remount (#22342) @MBilalShafi
182
+
183
+ #### `@mui/x-tree-view-pro@9.1.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
184
+
185
+ Same changes as in `@mui/x-tree-view@9.1.0`.
186
+
187
+ ### Scheduler
188
+
189
+ #### `@mui/x-scheduler@9.0.0-alpha.5`
190
+
191
+ - [scheduler] Make `EventItem` interactive by integrating button props for keyboard accessibility (#22160) @mustafajw07
192
+ - [scheduler] Migrate color switch to Base UI `ToggleGroup` (#22254) @flaviendelangle
193
+ - [scheduler] Rename Scheduler headless packages (#22273) @rita-codes
194
+ - [scheduler] Use TreeView for the resource sidebar (#22261) @flaviendelangle
195
+ - [scheduler] Use fieldset/legend instead of headings for form sections in the event dialog (#22095) @Anexus5919
196
+ - [scheduler] Added `position: relative` for consistent layout (#22284) @mustafajw07
197
+ - [l10n] Improve Italian (it-IT) locale (#22290) @gaetanodanelli
198
+
199
+ #### `@mui/x-scheduler-premium@9.0.0-alpha.5` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
200
+
201
+ Same changes as in `@mui/x-scheduler@9.0.0-alpha.5`, plus:
202
+
203
+ - [scheduler] Replace per-view headers with a generic `EventTimelinePremiumHeader` in the `EventTimeline` (#22222) @rita-codes
204
+
205
+ ### Codemod
206
+
207
+ #### `@mui/x-codemod@9.1.0`
208
+
209
+ Internal changes.
210
+
211
+ ### Docs
212
+
213
+ - [docs] Migrate `FlightPicker` overview demo to v9 `slotProps` shape (#22272) @LukasTy
214
+ - [docs] Standardize Scheduler docs style and formatting (#22161) @mapache-salvaje
215
+ - [docs] Add feedback form to the scheduler docs (#22237) @rita-codes
216
+ - [docs] Fix `GridToolbarCustom` demo crash in DataGrid (#21950) @MBilalShafi
217
+ - [docs] Do not resolve axes in charts (#22307) @alexfauquette
218
+ - [docs] Fix no longer valid link (#22371) @LukasTy
219
+ - [docs] Replace broken CodeSandbox iframes in migration guides (#22352) @LukasTy
220
+
221
+ ### Core
222
+
223
+ - [code-infra] Bump browser `testTimeout` to absorb React 19 slowness (#22236) @LukasTy
224
+ - [code-infra] Use vale rules from code-infra package (#22256) @brijeshb42
225
+ - [code-infra] Fix broken valelint and docs build (#22362) @LukasTy
226
+ - [internal] Prepare renaming LICENSE file to LICENSE.md (#22055) @imazizbohra
227
+ - [internal] Remove outdated .woff files (#22286) @oliviertassinari
228
+ - [internal] Replace Codspeed with `@mui/internal-benchmark` for charts (#22243) @JCQuintas
229
+
230
+ ### Miscellaneous
231
+
232
+ - [internal-gestures] Add passive option to `TurnWheelGesture` (#22349) @JCQuintas
233
+ - [internal-gestures] Enforce pointer-type filter in `ShadowRoot` branch (#22327) @JCQuintas
234
+ - [internal-gestures] Improve passive event listener handling (#22329) @JCQuintas
235
+ - [internal-gestures] Inline wheel-delta clamp per axis (#22331) @JCQuintas
236
+ - [internal-gestures] Return read-only pointer map without copy (#22330) @JCQuintas
237
+ - [internal-gestures] Track multi-tap reset timeout to prevent leak (#22326) @JCQuintas
238
+
3
239
  ## 9.0.4
4
240
 
5
241
  _Apr 28, 2026_
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 X Pro (https://mui.com/pricing/) is commercial software. You MUST agree to the
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/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-license v9.0.4
2
+ * @mui/x-license v9.2.0
3
3
  *
4
4
  * @license SEE LICENSE IN LICENSE
5
5
  * This source code is licensed under the SEE LICENSE IN LICENSE license found in the
package/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-license v9.0.4
2
+ * @mui/x-license v9.2.0
3
3
  *
4
4
  * @license SEE LICENSE IN LICENSE
5
5
  * This source code is licensed under the SEE LICENSE IN LICENSE license found in the
@@ -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";
@@ -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";
@@ -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
  });
@@ -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.4",
3
+ "version": "9.2.0",
4
4
  "author": "MUI Team",
5
5
  "description": "MUI X License verification.",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -22,9 +22,9 @@
22
22
  },
23
23
  "dependencies": {
24
24
  "@babel/runtime": "^7.29.2",
25
- "@mui/utils": "9.0.0",
26
- "@mui/x-internals": "^9.0.4",
27
- "@mui/x-telemetry": "^9.0.2"
25
+ "@mui/utils": "9.0.1",
26
+ "@mui/x-internals": "^9.1.0",
27
+ "@mui/x-telemetry": "^9.2.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",
package/test-keys.d.mts CHANGED
@@ -65,6 +65,11 @@ export declare const TEST_KEY_PRO_SUBSCRIPTION_FUTURE = "e83a283135bbd911e4aa0fd
65
65
  * orderId: #123, keyVersion: 2
66
66
  */
67
67
  export declare const TEST_KEY_PREMIUM_SUBSCRIPTION_FUTURE = "1c6ea00fadedfcb3f2ef393f1de32f29Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXByZW1pdW0sTE09c3Vic2NyaXB0aW9uLFBWPWluaXRpYWwsVD10cnVlLEtWPTI=";
68
+ /**
69
+ * Pro annual, Q1-2026, expiry = 3001-01-01.
70
+ * orderId: #123, keyVersion: 2
71
+ */
72
+ export declare const TEST_KEY_PRO_ANNUAL_Q1_2026 = "10c66120eda205131bf0a2074a3fddc8Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXBybyxMTT1hbm51YWwsUFY9UTEtMjAyNixUPXRydWUsS1Y9Mg==";
68
73
  /**
69
74
  * Pro annual, Q3-2024, quantity: 5, appType: single.
70
75
  * orderId: #123, keyVersion: 3, expiryDate: 2099-12-30T23:00:00.000Z
package/test-keys.d.ts CHANGED
@@ -65,6 +65,11 @@ export declare const TEST_KEY_PRO_SUBSCRIPTION_FUTURE = "e83a283135bbd911e4aa0fd
65
65
  * orderId: #123, keyVersion: 2
66
66
  */
67
67
  export declare const TEST_KEY_PREMIUM_SUBSCRIPTION_FUTURE = "1c6ea00fadedfcb3f2ef393f1de32f29Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXByZW1pdW0sTE09c3Vic2NyaXB0aW9uLFBWPWluaXRpYWwsVD10cnVlLEtWPTI=";
68
+ /**
69
+ * Pro annual, Q1-2026, expiry = 3001-01-01.
70
+ * orderId: #123, keyVersion: 2
71
+ */
72
+ export declare const TEST_KEY_PRO_ANNUAL_Q1_2026 = "10c66120eda205131bf0a2074a3fddc8Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXBybyxMTT1hbm51YWwsUFY9UTEtMjAyNixUPXRydWUsS1Y9Mg==";
68
73
  /**
69
74
  * Pro annual, Q3-2024, quantity: 5, appType: single.
70
75
  * orderId: #123, keyVersion: 3, expiryDate: 2099-12-30T23:00:00.000Z
package/test-keys.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TEST_LICENSE_KEY_PRO = exports.TEST_LICENSE_KEY_PREMIUM = exports.TEST_KEY_V1 = exports.TEST_KEY_UNKNOWN_VERSION = exports.TEST_KEY_PRO_SUBSCRIPTION_FUTURE = exports.TEST_KEY_PRO_SUBSCRIPTION = exports.TEST_KEY_PRO_PERPETUAL_Q1_2026_EXPIRED = exports.TEST_KEY_PRO_PERPETUAL_Q1_2026 = exports.TEST_KEY_PRO_PERPETUAL_EXPIRED = exports.TEST_KEY_PRO_PERPETUAL = exports.TEST_KEY_PRO_ANNUAL_V3 = exports.TEST_KEY_PRO_ANNUAL_Q1_2026_V3 = exports.TEST_KEY_PRO_ANNUAL_INITIAL = exports.TEST_KEY_PREMIUM_SUBSCRIPTION_FUTURE = exports.TEST_KEY_PREMIUM_SUBSCRIPTION = exports.TEST_KEY_PREMIUM_ANNUAL_Q1_2026_V3 = exports.TEST_KEY_PREMIUM_ANNUAL_INITIAL = exports.TEST_KEY_INVALID = exports.TEST_KEY_EXPIRED_GRACE = exports.TEST_KEY_EXPIRED_30DAYS = void 0;
6
+ exports.TEST_LICENSE_KEY_PRO = exports.TEST_LICENSE_KEY_PREMIUM = exports.TEST_KEY_V1 = exports.TEST_KEY_UNKNOWN_VERSION = exports.TEST_KEY_PRO_SUBSCRIPTION_FUTURE = exports.TEST_KEY_PRO_SUBSCRIPTION = exports.TEST_KEY_PRO_PERPETUAL_Q1_2026_EXPIRED = exports.TEST_KEY_PRO_PERPETUAL_Q1_2026 = exports.TEST_KEY_PRO_PERPETUAL_EXPIRED = exports.TEST_KEY_PRO_PERPETUAL = exports.TEST_KEY_PRO_ANNUAL_V3 = exports.TEST_KEY_PRO_ANNUAL_Q1_2026_V3 = exports.TEST_KEY_PRO_ANNUAL_Q1_2026 = exports.TEST_KEY_PRO_ANNUAL_INITIAL = exports.TEST_KEY_PREMIUM_SUBSCRIPTION_FUTURE = exports.TEST_KEY_PREMIUM_SUBSCRIPTION = exports.TEST_KEY_PREMIUM_ANNUAL_Q1_2026_V3 = exports.TEST_KEY_PREMIUM_ANNUAL_INITIAL = exports.TEST_KEY_INVALID = exports.TEST_KEY_EXPIRED_GRACE = exports.TEST_KEY_EXPIRED_30DAYS = void 0;
7
7
  // =============================================================================
8
8
  // Test license keys for use in test suites.
9
9
  // All keys contain T=true in their payload and are rejected outside test environments.
@@ -98,6 +98,14 @@ const TEST_KEY_PRO_SUBSCRIPTION_FUTURE = exports.TEST_KEY_PRO_SUBSCRIPTION_FUTUR
98
98
  */
99
99
  const TEST_KEY_PREMIUM_SUBSCRIPTION_FUTURE = exports.TEST_KEY_PREMIUM_SUBSCRIPTION_FUTURE = '1c6ea00fadedfcb3f2ef393f1de32f29Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXByZW1pdW0sTE09c3Vic2NyaXB0aW9uLFBWPWluaXRpYWwsVD10cnVlLEtWPTI=';
100
100
 
101
+ // --- KV=2 Q1-2026 (used by cross-major compat tests) ---
102
+
103
+ /**
104
+ * Pro annual, Q1-2026, expiry = 3001-01-01.
105
+ * orderId: #123, keyVersion: 2
106
+ */
107
+ const TEST_KEY_PRO_ANNUAL_Q1_2026 = exports.TEST_KEY_PRO_ANNUAL_Q1_2026 = '10c66120eda205131bf0a2074a3fddc8Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXBybyxMTT1hbm51YWwsUFY9UTEtMjAyNixUPXRydWUsS1Y9Mg==';
108
+
101
109
  // --- Key format v3 ---
102
110
 
103
111
  /**
package/test-keys.mjs CHANGED
@@ -92,6 +92,14 @@ export const TEST_KEY_PRO_SUBSCRIPTION_FUTURE = 'e83a283135bbd911e4aa0fd55ceea3e
92
92
  */
93
93
  export const TEST_KEY_PREMIUM_SUBSCRIPTION_FUTURE = '1c6ea00fadedfcb3f2ef393f1de32f29Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXByZW1pdW0sTE09c3Vic2NyaXB0aW9uLFBWPWluaXRpYWwsVD10cnVlLEtWPTI=';
94
94
 
95
+ // --- KV=2 Q1-2026 (used by cross-major compat tests) ---
96
+
97
+ /**
98
+ * Pro annual, Q1-2026, expiry = 3001-01-01.
99
+ * orderId: #123, keyVersion: 2
100
+ */
101
+ export const TEST_KEY_PRO_ANNUAL_Q1_2026 = '10c66120eda205131bf0a2074a3fddc8Tz0xMjMsRT0zMjUzNTEyNjAwMDAwMCxTPXBybyxMTT1hbm51YWwsUFY9UTEtMjAyNixUPXRydWUsS1Y9Mg==';
102
+
95
103
  // --- Key format v3 ---
96
104
 
97
105
  /**
@@ -90,6 +90,8 @@ function useLicenseVerifier(packageInfo) {
90
90
  } else if (licenseStatus.status === _licenseStatus.LICENSE_STATUS.NotValidForPackage) {
91
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] = {
@@ -81,6 +81,8 @@ export function useLicenseVerifier(packageInfo) {
81
81
  } else if (licenseStatus.status === LICENSE_STATUS.NotValidForPackage) {
82
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] = {
@@ -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) {
@@ -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) {