diff --git a/docs/data/introduction/licensing/licensing.md b/docs/data/introduction/licensing/licensing.md
index 842c3d0cc03c2..d5740d8df4974 100644
--- a/docs/data/introduction/licensing/licensing.md
+++ b/docs/data/introduction/licensing/licensing.md
@@ -290,7 +290,19 @@ This happens if you try to use `DataGridPremium` with a license key for the Pro
To solve the issue, you can [upgrade your plan](https://mui.com/r/x-get-license/?scope=premium) from Pro to Premium.
Or if you didn\'t intend to use Premium features, you can replace the import of `@mui/x-data-grid-premium` with `@mui/x-data-grid-pro`.
-### 5. Invalid license key
+### 5. Component not included in your license
+
+This error indicates that the component you are trying to use is not covered by your current license.
+This happens if you try to use `ChartsPro` or `TreeViewPro` with a license that does not cover these products.
+
+To solve the issue, please consider an earlier [renewal](https://mui.com/r/x-get-license/).
+
+You might be eligible for a discount if you have an active Pro license.
+Contact [sales@mui.com](mailto:sales@mui.com?subject=My%20upgrade%20discount) for additional information.
+
+Or if you didn't intend to use the Pro features, you can replace the import of `@mui/x-charts-pro` or `@mui/x-tree-view-pro` with `@mui/x-charts` or `@mui/x-tree-view` respectively.
+
+### 6. Invalid license key
This error indicates that your MUIĀ X license key format isn't valid.
It could be because the license key is missing a character or has a typo.
@@ -298,7 +310,7 @@ It could be because the license key is missing a character or has a typo.
To solve the issue, you need to double-check that `setLicenseKey()` is called with the right argument.
Please check the [license key installation](/x/introduction/licensing/#license-key).
-### 6. Invalid license key (TypeError: extracting license expiry timestamp)
+### 7. Invalid license key (TypeError: extracting license expiry timestamp)
The following JavaScript exception indicates that you may be trying to validate the new license's key format on an older version of the npm package.
diff --git a/packages/x-license/src/Watermark/Watermark.tsx b/packages/x-license/src/Watermark/Watermark.tsx
index da41daf373fd7..b970d5a12fc49 100644
--- a/packages/x-license/src/Watermark/Watermark.tsx
+++ b/packages/x-license/src/Watermark/Watermark.tsx
@@ -13,7 +13,7 @@ function getLicenseErrorMessage(licenseStatus: LicenseStatus) {
return 'MUI X Invalid license key';
case LICENSE_STATUS.OutOfScope:
return 'MUI X License key plan mismatch';
- case LICENSE_STATUS.ProductNotCovered:
+ case LICENSE_STATUS.NotAvailableInInitialProPlan:
return 'MUI X Product not covered by plan';
case LICENSE_STATUS.NotFound:
return 'MUI X Missing license key';
diff --git a/packages/x-license/src/useLicenseVerifier/useLicenseVerifier.test.tsx b/packages/x-license/src/useLicenseVerifier/useLicenseVerifier.test.tsx
index bbb04d1804a75..25a4aaa6f27c1 100644
--- a/packages/x-license/src/useLicenseVerifier/useLicenseVerifier.test.tsx
+++ b/packages/x-license/src/useLicenseVerifier/useLicenseVerifier.test.tsx
@@ -126,11 +126,11 @@ describe('useLicenseVerifier', function test() {
expect(() => {
render();
- }).to.toErrorDev(['MUI X: Product not covered by plan.']);
+ }).to.toErrorDev(['MUI X: Component not included in your license.']);
expect(() => {
render();
- }).to.toErrorDev(['MUI X: Product not covered by plan.']);
+ }).to.toErrorDev(['MUI X: Component not included in your license.']);
});
it('should not throw if the license is covering charts and tree-view', () => {
diff --git a/packages/x-license/src/useLicenseVerifier/useLicenseVerifier.ts b/packages/x-license/src/useLicenseVerifier/useLicenseVerifier.ts
index a79cc012b3898..d85e4477ef618 100644
--- a/packages/x-license/src/useLicenseVerifier/useLicenseVerifier.ts
+++ b/packages/x-license/src/useLicenseVerifier/useLicenseVerifier.ts
@@ -8,7 +8,7 @@ import {
showMissingLicenseKeyError,
showLicenseKeyPlanMismatchError,
showExpiredPackageVersionError,
- showProductNotCoveredError,
+ showNotAvailableInInitialProPlanError,
} from '../utils/licenseErrorMessageUtils';
import { LICENSE_STATUS, LicenseStatus } from '../utils/licenseStatus';
import { extractAcceptedScopes, extractProductScope } from '../utils/licenseScope';
@@ -65,8 +65,8 @@ export function useLicenseVerifier(
// Skip
} else if (licenseStatus.status === LICENSE_STATUS.Invalid) {
showInvalidLicenseKeyError();
- } else if (licenseStatus.status === LICENSE_STATUS.ProductNotCovered) {
- showProductNotCoveredError();
+ } else if (licenseStatus.status === LICENSE_STATUS.NotAvailableInInitialProPlan) {
+ showNotAvailableInInitialProPlanError();
} else if (licenseStatus.status === LICENSE_STATUS.OutOfScope) {
showLicenseKeyPlanMismatchError();
} else if (licenseStatus.status === LICENSE_STATUS.NotFound) {
diff --git a/packages/x-license/src/utils/licenseErrorMessageUtils.ts b/packages/x-license/src/utils/licenseErrorMessageUtils.ts
index 1c29bfb5f9e41..fb13e231cb1f5 100644
--- a/packages/x-license/src/utils/licenseErrorMessageUtils.ts
+++ b/packages/x-license/src/utils/licenseErrorMessageUtils.ts
@@ -32,11 +32,13 @@ export function showLicenseKeyPlanMismatchError() {
]);
}
-export function showProductNotCoveredError() {
+export function showNotAvailableInInitialProPlanError() {
showError([
- 'MUI X: Product not covered by plan.',
+ 'MUI X: Component not included in your license.',
'',
- 'The component you are trying to use is not included in the Pro Plan your purchased. You are using a license that is only compatible with the `@mui/x-data-grid-pro` and `@mui/x-date-pickers-pro` commercial packages.',
+ '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.',
]);
diff --git a/packages/x-license/src/utils/licenseStatus.ts b/packages/x-license/src/utils/licenseStatus.ts
index ac6828c109e24..3fa5ae19856a9 100644
--- a/packages/x-license/src/utils/licenseStatus.ts
+++ b/packages/x-license/src/utils/licenseStatus.ts
@@ -7,7 +7,7 @@ export enum LICENSE_STATUS {
ExpiredVersion = 'ExpiredVersion',
Valid = 'Valid',
OutOfScope = 'OutOfScope',
- ProductNotCovered = 'ProductNotCovered',
+ NotAvailableInInitialProPlan = 'NotAvailableInInitialProPlan',
}
export type LicenseStatus = keyof typeof LICENSE_STATUS;
diff --git a/packages/x-license/src/verifyLicense/verifyLicense.test.ts b/packages/x-license/src/verifyLicense/verifyLicense.test.ts
index 1b2c2fe24eb3d..3e040c782a170 100644
--- a/packages/x-license/src/verifyLicense/verifyLicense.test.ts
+++ b/packages/x-license/src/verifyLicense/verifyLicense.test.ts
@@ -292,7 +292,7 @@ describe('License: verifyLicense', () => {
acceptedScopes: ['pro', 'premium'],
productScope: 'charts',
}).status,
- ).to.equal(LICENSE_STATUS.ProductNotCovered);
+ ).to.equal(LICENSE_STATUS.NotAvailableInInitialProPlan);
});
it('PlanVersion "initial" should not accept tree-view', () => {
@@ -304,7 +304,7 @@ describe('License: verifyLicense', () => {
acceptedScopes: ['pro', 'premium'],
productScope: 'tree-view',
}).status,
- ).to.equal(LICENSE_STATUS.ProductNotCovered);
+ ).to.equal(LICENSE_STATUS.NotAvailableInInitialProPlan);
});
it('PlanVersion "Q3-2024" should accept charts', () => {
diff --git a/packages/x-license/src/verifyLicense/verifyLicense.ts b/packages/x-license/src/verifyLicense/verifyLicense.ts
index 7d696490599dc..ed9b936357cba 100644
--- a/packages/x-license/src/verifyLicense/verifyLicense.ts
+++ b/packages/x-license/src/verifyLicense/verifyLicense.ts
@@ -181,7 +181,7 @@ export function verifyLicense({
if (license.planVersion === 'initial') {
// 'charts-pro' or 'tree-view-pro' can only be used with a newer license
if (productScope === 'charts' || productScope === 'tree-view') {
- return { status: LICENSE_STATUS.ProductNotCovered };
+ return { status: LICENSE_STATUS.NotAvailableInInitialProPlan };
}
}
diff --git a/scripts/x-license.exports.json b/scripts/x-license.exports.json
index ba6c1bb8c50fe..257e49906393c 100644
--- a/scripts/x-license.exports.json
+++ b/scripts/x-license.exports.json
@@ -15,7 +15,7 @@
{ "name": "showInvalidLicenseKeyError", "kind": "Function" },
{ "name": "showLicenseKeyPlanMismatchError", "kind": "Function" },
{ "name": "showMissingLicenseKeyError", "kind": "Function" },
- { "name": "showProductNotCoveredError", "kind": "Function" },
+ { "name": "showNotAvailableInInitialProPlanError", "kind": "Function" },
{ "name": "Unstable_LicenseInfoProvider", "kind": "Function" },
{ "name": "Unstable_LicenseInfoProviderProps", "kind": "Interface" },
{ "name": "useLicenseVerifier", "kind": "Function" },