diff --git a/.circleci/config.yml b/.circleci/config.yml
index 4a4418c8924..360ec3c7f9e 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -96,8 +96,8 @@ jobs:
- checkout
- install_js
- run:
- name: Check Typescript types
- command: pnpm check-types
+ name: Tests TypeScript definitions
+ command: pnpm typescript
environment:
NODE_OPTIONS: --max-old-space-size=3584
test_static:
diff --git a/docs/data/toolpad/core/components/sign-in-page/ThemeSignInPage.js b/docs/data/toolpad/core/components/sign-in-page/ThemeSignInPage.js
index 38d573b4453..97cc952e0bd 100644
--- a/docs/data/toolpad/core/components/sign-in-page/ThemeSignInPage.js
+++ b/docs/data/toolpad/core/components/sign-in-page/ThemeSignInPage.js
@@ -2,6 +2,7 @@ import * as React from 'react';
import { AppProvider } from '@toolpad/core/AppProvider';
import { SignInPage } from '@toolpad/core/SignInPage';
import { createTheme } from '@mui/material/styles';
+
import { useColorSchemeShim } from 'docs/src/modules/components/ThemeContext';
import { getDesignTokens, inputsCustomizations } from './customTheme';
diff --git a/docs/data/toolpad/core/components/sign-in-page/ThemeSignInPage.tsx b/docs/data/toolpad/core/components/sign-in-page/ThemeSignInPage.tsx
index d9ce9dc1702..d6affa646f5 100644
--- a/docs/data/toolpad/core/components/sign-in-page/ThemeSignInPage.tsx
+++ b/docs/data/toolpad/core/components/sign-in-page/ThemeSignInPage.tsx
@@ -6,6 +6,7 @@ import {
type AuthResponse,
} from '@toolpad/core/SignInPage';
import { createTheme } from '@mui/material/styles';
+// @ts-ignore
import { useColorSchemeShim } from 'docs/src/modules/components/ThemeContext';
import { getDesignTokens, inputsCustomizations } from './customTheme';
diff --git a/docs/data/toolpad/core/components/sign-in-page/auth.js b/docs/data/toolpad/core/components/sign-in-page/auth.js
deleted file mode 100644
index c1aed67f7dd..00000000000
--- a/docs/data/toolpad/core/components/sign-in-page/auth.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/* eslint-disable import/no-unresolved */
-import NextAuth from 'next-auth';
-import GitHub from 'next-auth/providers/github';
-
-const providers = [
- GitHub({
- clientId: process.env.GITHUB_CLIENT_ID,
- clientSecret: process.env.GITHUB_CLIENT_SECRET,
- }),
-];
-
-export const providerMap = providers.map((provider) => {
- if (typeof provider === 'function') {
- const providerData = provider();
- return { id: providerData.id, name: providerData.name };
- }
- return { id: provider.id, name: provider.name };
-});
-
-export const { handlers, auth, signIn, signOut } = NextAuth({
- providers,
- secret: process.env.AUTH_SECRET,
- pages: {
- signIn: '/auth/signin',
- },
- callbacks: {
- authorized({ auth: session, request: { nextUrl } }) {
- const isLoggedIn = !!session?.user;
- const isPublicPage = nextUrl.pathname.startsWith('/public');
-
- if (isPublicPage || isLoggedIn) {
- return true;
- }
-
- return false; // Redirect unauthenticated users to login page
- },
- },
-});
diff --git a/docs/data/toolpad/core/components/sign-in-page/auth.ts b/docs/data/toolpad/core/components/sign-in-page/auth.ts
deleted file mode 100644
index 849d32e4f23..00000000000
--- a/docs/data/toolpad/core/components/sign-in-page/auth.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-/* eslint-disable import/no-unresolved */
-import NextAuth from 'next-auth';
-import GitHub from 'next-auth/providers/github';
-import type { Provider } from 'next-auth/providers';
-
-const providers: Provider[] = [
- GitHub({
- clientId: process.env.GITHUB_CLIENT_ID,
- clientSecret: process.env.GITHUB_CLIENT_SECRET,
- }),
-];
-
-export const providerMap = providers.map((provider) => {
- if (typeof provider === 'function') {
- const providerData = provider();
- return { id: providerData.id, name: providerData.name };
- }
- return { id: provider.id, name: provider.name };
-});
-
-export const { handlers, auth, signIn, signOut } = NextAuth({
- providers,
- secret: process.env.AUTH_SECRET,
- pages: {
- signIn: '/auth/signin',
- },
- callbacks: {
- authorized({ auth: session, request: { nextUrl } }) {
- const isLoggedIn = !!session?.user;
- const isPublicPage = nextUrl.pathname.startsWith('/public');
-
- if (isPublicPage || isLoggedIn) {
- return true;
- }
-
- return false; // Redirect unauthenticated users to login page
- },
- },
-});
diff --git a/docs/next.config.mjs b/docs/next.config.mjs
index 6bfe68716e2..95a6807ea37 100644
--- a/docs/next.config.mjs
+++ b/docs/next.config.mjs
@@ -8,10 +8,10 @@ const currentDirectory = url.fileURLToPath(new URL('.', import.meta.url));
const require = createRequire(import.meta.url);
+// @ts-ignore
const withDocsInfra = require('@mui/monorepo/docs/nextConfigDocsInfra');
-const pkg = require('../package.json');
-const { findPages } = require('./src/modules/utils/find');
+const { findPages } = require('./src/modules/utils/find.js');
const WORKSPACE_ROOT = path.resolve(currentDirectory, '../');
const MONOREPO_PATH = path.resolve(currentDirectory, '../node_modules/@mui/monorepo');
@@ -44,6 +44,7 @@ export default withDocsInfra({
TOOLPAD_CORE_VERSION: toolpadCorePkg.version,
TOOLPAD_STUDIO_VERSION: toolpadStudioPkg.version,
},
+ // @ts-ignore
webpack: (config, options) => {
return {
...config,
@@ -126,11 +127,14 @@ export default withDocsInfra({
const pages = findPages();
const map = {};
+ // @ts-ignore
function traverse(pages2, userLanguage) {
const prefix = userLanguage === 'en' ? '' : `/${userLanguage}`;
+ // @ts-ignore
pages2.forEach((page) => {
if (!page.children) {
+ // @ts-ignore
map[`${prefix}${page.pathname.replace(/^\/api-docs\/(.*)/, '/api/$1')}`] = {
page: page.pathname,
query: {
diff --git a/docs/src/components/landing/ToolpadAuthDemo.tsx b/docs/src/components/landing/ToolpadAuthDemo.tsx
index 69d4c9e78a6..50047dffd97 100644
--- a/docs/src/components/landing/ToolpadAuthDemo.tsx
+++ b/docs/src/components/landing/ToolpadAuthDemo.tsx
@@ -1,6 +1,7 @@
import * as React from 'react';
import Paper from '@mui/material/Paper';
import { HighlightedCode } from '@mui/docs/HighlightedCode';
+// @ts-ignore
import DemoSandbox from 'docs/src/modules/components/DemoSandbox';
import { AppProvider } from '@toolpad/core/AppProvider';
import { SignInPage, type AuthProvider } from '@toolpad/core/SignInPage';
@@ -16,9 +17,9 @@ const providers = [
{ id: 'facebook', name: 'Facebook' },
];
-const signIn = async (provider) => {
- try {
- await signIn(provider.id);
+const signIn = async (provider) => {
+ try {
+ await signIn(provider.id);
} catch (error) {
// Handle errors
}
@@ -28,7 +29,7 @@ export default function OAuthSignInPage() {
return (
-
+
);
}
diff --git a/docs/src/components/landing/ToolpadDashboardLayout.tsx b/docs/src/components/landing/ToolpadDashboardLayout.tsx
index 17059508cfd..b86724b522b 100644
--- a/docs/src/components/landing/ToolpadDashboardLayout.tsx
+++ b/docs/src/components/landing/ToolpadDashboardLayout.tsx
@@ -1,7 +1,6 @@
import * as React from 'react';
import Paper from '@mui/material/Paper';
import { HighlightedCode } from '@mui/docs/HighlightedCode';
-
import DashboardIcon from '@mui/icons-material/Dashboard';
import ShoppingCartIcon from '@mui/icons-material/ShoppingCart';
import BarChartIcon from '@mui/icons-material/BarChart';
@@ -10,6 +9,7 @@ import LayersIcon from '@mui/icons-material/Layers';
import { AppProvider, type Navigation, type Router } from '@toolpad/core/AppProvider';
import { DashboardLayout } from '@toolpad/core/DashboardLayout';
import { PageContainer } from '@toolpad/core/PageContainer';
+// @ts-ignore
import DemoSandbox from 'docs/src/modules/components/DemoSandbox';
import Grid from '@mui/material/Grid2';
import { styled } from '@mui/material/styles';
diff --git a/docs/src/components/landing/ToolpadPageContainerDemo.tsx b/docs/src/components/landing/ToolpadPageContainerDemo.tsx
index e13e45035af..ee9fd38c956 100644
--- a/docs/src/components/landing/ToolpadPageContainerDemo.tsx
+++ b/docs/src/components/landing/ToolpadPageContainerDemo.tsx
@@ -1,6 +1,7 @@
import * as React from 'react';
import Frame from 'docs/src/components/action/Frame';
import Paper from '@mui/material/Paper';
+// @ts-ignore
import DemoSandbox from 'docs/src/modules/components/DemoSandbox';
import { HighlightedCode } from '@mui/docs/HighlightedCode';
import { AppProvider } from '@toolpad/core/AppProvider';
diff --git a/docs/src/modules/components/Examples/FeaturedExamples.tsx b/docs/src/modules/components/Examples/FeaturedExamples.tsx
index c935d807b9d..264658cb125 100644
--- a/docs/src/modules/components/Examples/FeaturedExamples.tsx
+++ b/docs/src/modules/components/Examples/FeaturedExamples.tsx
@@ -15,6 +15,7 @@ import Visibility from '@mui/icons-material/Visibility';
import CodeRoundedIcon from '@mui/icons-material/CodeRounded';
import OpenInNewRoundedIcon from '@mui/icons-material/OpenInNewRounded';
import { useTheme } from '@mui/material/styles';
+// @ts-ignore
import { sxChip } from 'docs/src/modules/components/AppNavDrawerItem';
import type { Example } from './types';
diff --git a/docs/src/modules/components/SchemaReference.tsx b/docs/src/modules/components/SchemaReference.tsx
index f8aa3d78179..42cade337a1 100644
--- a/docs/src/modules/components/SchemaReference.tsx
+++ b/docs/src/modules/components/SchemaReference.tsx
@@ -441,16 +441,6 @@ function JsonSchemaNameValueDisplay({
);
}
-interface HeadingProps {
- hash: string;
- level: 'h2' | 'h3';
- title: string;
-}
-
-function Heading({ hash, level: Level, title }: HeadingProps) {
- return ;
-}
-
interface JsonSchemaDisplayProps {
name: string;
hash: string;
@@ -461,7 +451,7 @@ interface JsonSchemaDisplayProps {
function JsonSchemaDisplay({ name, hash, schema, idPrefix = '' }: JsonSchemaDisplayProps) {
return (
-
+
{schema.description}
@@ -525,7 +515,7 @@ export default function SchemaReference(props: SchemaReferenceProps) {
{toc.map((tocNode) => {
return (
-
+
{tocNode.introduction}
{tocNode.children.map((tocItemNode) => {
invariant(typeof tocItemNode.content !== 'boolean', 'Invalid top level schema');
diff --git a/docs/src/modules/utils/babel-plugin-jsx-preview.js b/docs/src/modules/utils/babel-plugin-jsx-preview.js
index 046190140e0..5d6e37977e9 100644
--- a/docs/src/modules/utils/babel-plugin-jsx-preview.js
+++ b/docs/src/modules/utils/babel-plugin-jsx-preview.js
@@ -1,4 +1,3 @@
-// @ts-check
const fs = require('fs');
const pluginName = 'babel-plugin-jsx-preview';
diff --git a/docs/tsconfig.json b/docs/tsconfig.json
index e4db4377baf..fd4b0c984a7 100644
--- a/docs/tsconfig.json
+++ b/docs/tsconfig.json
@@ -1,19 +1,17 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
- "moduleResolution": "bundler",
"allowJs": true,
"isolatedModules": true,
/* files are emitted by babel */
"noEmit": true,
+ "noUnusedLocals": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"esModuleInterop": true,
- "types": ["react", "node"],
"incremental": true,
- "noImplicitAny": true,
- "jsx": "preserve"
+ "moduleResolution": "bundler"
},
- "include": ["docs-env.d.ts", "pages/**/*", "src/**/*", "data/**/*", "next.config.mjs"],
- "exclude": ["docs/.next", "docs/export"]
+ "include": ["next-env.d.ts", "next.config.mjs", "docs-env.d.ts", "src", "pages/**/*.ts*", "data"],
+ "exclude": ["docs/.next", "docs/export", "node_modules"]
}
diff --git a/package.json b/package.json
index 62302572d3e..dc2541ef06b 100644
--- a/package.json
+++ b/package.json
@@ -33,7 +33,8 @@
"test:browser": "FORCE_COLOR=1 pnpm run -r test:browser",
"test:argos": "node ./scripts/pushArgos.mjs",
"test": "lerna run test --stream",
- "check-types": "lerna run --concurrency 1 check-types",
+ "typescript": "lerna run --concurrency 1 --no-bail typescript",
+ "typescript:ci": "lerna run --concurrency 2 --no-bail typescript",
"toolpad-studio": "node --enable-source-maps packages/toolpad-studio/cli.mjs",
"jsonSchemas": "tsx ./scripts/docs/generateJsonSchemas.ts",
"monorepo:update": "tsx ./scripts/updateMonorepo.ts",
diff --git a/packages/create-toolpad-app/package.json b/packages/create-toolpad-app/package.json
index 0f0c043744d..0415343fd21 100644
--- a/packages/create-toolpad-app/package.json
+++ b/packages/create-toolpad-app/package.json
@@ -23,7 +23,7 @@
"scripts": {
"build": "tsup",
"dev": "tsup --watch",
- "check-types": "tsc --noEmit",
+ "typescript": "tsc --noEmit",
"test": "vitest run"
},
"engines": {
diff --git a/packages/toolpad-core/package.json b/packages/toolpad-core/package.json
index 604d8a528ec..aa6673ac353 100644
--- a/packages/toolpad-core/package.json
+++ b/packages/toolpad-core/package.json
@@ -47,7 +47,7 @@
"build:types": "tsc -b tsconfig.build.json",
"predev": "pnpm clean",
"dev": "mkdir -p build && concurrently \"pnpm build:stable --watch\" \"pnpm build:types --watch --preserveWatchOutput\" \"pnpm build:copy-files\"",
- "check-types": "pnpm build:types && tsc --noEmit",
+ "typescript": "pnpm build:types && tsc --noEmit",
"test": "vitest run --coverage",
"test:dev": "vitest",
"test:browser": "vitest run --browser.enabled",
diff --git a/packages/toolpad-studio-components/package.json b/packages/toolpad-studio-components/package.json
index 8aa80ac3d2e..d6f028a787f 100644
--- a/packages/toolpad-studio-components/package.json
+++ b/packages/toolpad-studio-components/package.json
@@ -34,7 +34,7 @@
"scripts": {
"build": "tsup",
"dev": "tsup --watch",
- "check-types": "tsup && tsc --noEmit",
+ "typescript": "tsup && tsc --noEmit",
"build:types": "tsc --declaration --emitDeclarationOnly"
},
"bugs": {
diff --git a/packages/toolpad-studio-runtime/package.json b/packages/toolpad-studio-runtime/package.json
index 41c4878473b..5d48d4e14a6 100644
--- a/packages/toolpad-studio-runtime/package.json
+++ b/packages/toolpad-studio-runtime/package.json
@@ -37,7 +37,7 @@
"scripts": {
"build": "tsup",
"dev": "tsup --watch",
- "check-types": "tsup && tsc --noEmit"
+ "typescript": "tsup && tsc --noEmit"
},
"bugs": {
"url": "https://github.com/mui/toolpad/issues"
diff --git a/packages/toolpad-studio/package.json b/packages/toolpad-studio/package.json
index 9eedcceef10..1113965226f 100644
--- a/packages/toolpad-studio/package.json
+++ b/packages/toolpad-studio/package.json
@@ -13,7 +13,7 @@
"fix": "prettier --write .",
"build:cli": "tsup",
"dev:cli": "tsup --watch",
- "check-types": "tsup && tsc --noEmit",
+ "typescript": "tsup && tsc --noEmit",
"test": "vitest run"
},
"keywords": [
diff --git a/packages/toolpad-utils/package.json b/packages/toolpad-utils/package.json
index ece090915c8..39b57e95fd5 100644
--- a/packages/toolpad-utils/package.json
+++ b/packages/toolpad-utils/package.json
@@ -45,7 +45,7 @@
"scripts": {
"build": "tsup",
"dev": "tsup --watch",
- "check-types": "tsup && tsc --noEmit",
+ "typescript": "tsup && tsc --noEmit",
"test": "vitest run --coverage"
},
"bugs": {