├── .eslintignore
├── .github
├── renovate.json
└── workflows
│ └── main.yml
├── .gitignore
├── .husky
├── pre-commit
└── pre-push
├── .prettierignore
├── LICENSE
├── README.md
├── lib
├── config.js
├── config.spec.js
├── internal
│ ├── Dependency.js
│ ├── Parser.js
│ └── Transformer.js
├── plugin.js
├── plugin.spec.js
└── utils
│ ├── memoize.js
│ ├── resolveModule.js
│ └── resolveModule.spec.js
├── package-lock.json
├── package.json
├── test
├── @material-ui
│ ├── core
│ │ ├── exports.spec.js
│ │ └── plugin.spec.js
│ ├── icons
│ │ └── plugin.spec.js
│ ├── lab
│ │ ├── exports.spec.js
│ │ └── plugin.spec.js
│ └── system
│ │ ├── exports.spec.js
│ │ └── plugin.spec.js
├── @mui
│ ├── core
│ │ ├── exports.spec.js
│ │ └── plugin.spec.js
│ ├── icons-material
│ │ └── plugin.spec.js
│ ├── lab
│ │ ├── exports.spec.js
│ │ └── plugin.spec.js
│ ├── material
│ │ ├── exports.spec.js
│ │ └── plugin.spec.js
│ └── system
│ │ ├── exports.spec.js
│ │ └── plugin.spec.js
├── setup.js
└── utils.js
├── tsconfig.json
└── vitest.config.mjs
/.eslintignore:
--------------------------------------------------------------------------------
1 | coverage/
2 | node_modules/
3 |
--------------------------------------------------------------------------------
/.github/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["github>umidbekk/configs:renovate"]
3 | }
4 |
--------------------------------------------------------------------------------
/.github/workflows/main.yml:
--------------------------------------------------------------------------------
1 | name: Main
2 |
3 | on:
4 | push:
5 | branches:
6 | - main
7 | pull_request:
8 | branches:
9 | - main
10 |
11 | concurrency:
12 | group: ${{ github.workflow }}-${{ github.ref }}
13 | cancel-in-progress: true
14 |
15 | jobs:
16 | checks:
17 | runs-on: ubuntu-latest
18 |
19 | steps:
20 | - uses: umidbekk/actions/prepare-node-repo@v2
21 | - run: npm run checks
22 | - uses: paambaati/codeclimate-action@v3.1.1
23 | env:
24 | CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
25 | with:
26 | coverageLocations: |
27 | ${{github.workspace}}/coverage/lcov.info:lcov
28 |
29 | tests:
30 | runs-on: ${{ matrix.os }}
31 |
32 | strategy:
33 | fail-fast: false
34 | matrix:
35 | os: [ubuntu-latest, windows-latest]
36 | node: [14, 16, 18]
37 |
38 | steps:
39 | - uses: umidbekk/actions/prepare-node-repo@v2
40 | with:
41 | node-version: ${{ matrix.node }}
42 | - run: npm test
43 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Dependencies
2 | node_modules/
3 |
4 | # Testing
5 | /coverage
6 |
7 | # Logs
8 | *.log
9 |
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | npx lint-staged
5 |
--------------------------------------------------------------------------------
/.husky/pre-push:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | npx tsc
5 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | /coverage
2 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 Umidbek Karimov
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## babel-plugin-direct-import
2 |
3 | [](https://github.com/umidbekk/babel-plugin-direct-import/actions)
4 | [](https://www.npmjs.com/package/babel-plugin-direct-import)
5 | [](https://www.npmjs.com/package/babel-plugin-direct-import)
6 | [](https://codeclimate.com/github/avocadowastaken/babel-plugin-direct-import/maintainability)
7 | [](https://codeclimate.com/github/avocadowastaken/babel-plugin-direct-import/test_coverage)
8 |
9 | Babel plugin to cherry-pick ES module imports.
10 |
11 | ### Installation
12 |
13 | ```bash
14 | npm install --save-dev babel-plugin-direct-import
15 | ```
16 |
17 | ### Example
18 |
19 | **In**
20 |
21 | ```javascript
22 | import { Button, colors, ThemeProvider } from "@mui/material";
23 | import {
24 | ChevronLeft as ChevronLeftIcon,
25 | ChevronRight as ChevronRightIcon,
26 | } from "@mui/icons-material";
27 | ```
28 |
29 | **Out**
30 |
31 | ```javascript
32 | import Button from "@mui/material/Button/Button.js";
33 | import * as colors from "@mui/material/colors/index.js";
34 | import ThemeProvider from "@mui/system/esm/ThemeProvider/ThemeProvider.js";
35 | import ChevronLeftIcon from "@mui/icons-material/esm/ChevronLeft.js";
36 | import ChevronRightIcon from "@mui/icons-material/esm/ChevronRight.js";
37 | ```
38 |
39 | ### Usage
40 |
41 | #### **Via .babelrc (Recommended)**
42 |
43 | **.babelrc**
44 |
45 | ```json
46 | {
47 | "plugins": [
48 | [
49 | "babel-plugin-direct-import",
50 | {
51 | "modules": ["@mui/system", "@mui/material", "@mui/icons-material"]
52 | }
53 | ]
54 | ]
55 | }
56 | ```
57 |
58 | #### **Via Node API**
59 |
60 | ```javascript
61 | require("babel-core").transform("code", {
62 | plugins: [
63 | [
64 | "babel-plugin-direct-import",
65 | {
66 | modules: ["@mui/system", "@mui/material", "@mui/icons-material"],
67 | },
68 | ],
69 | ],
70 | });
71 | ```
72 |
73 | ### Limitations
74 |
75 | ##### Transformation of namespace imports:
76 |
77 | Namespace imports are hard to analyze, that's why we skip them.
78 |
79 | ```jsx
80 | import * as MUI from "@mui/material";
81 |
82 | return (props) => ;
83 | ```
84 |
85 | ##### Mapping of variable exports:
86 |
87 | ```js
88 | import * as colors from "./colors";
89 |
90 | export const blue = colors.blue;
91 | export const cyan = colors.cyan;
92 | export const getDefaultColor = () => red;
93 | ```
94 |
95 | ### Tested Packages
96 |
97 | ##### [Material UI (v4)](https://github.com/mui-org/material-ui/tree/v4.12.3)
98 |
99 | ```json
100 | {
101 | "plugins": [
102 | [
103 | "babel-plugin-direct-import",
104 | {
105 | "modules": [
106 | "@material-ui/lab",
107 | "@material-ui/core",
108 | "@material-ui/icons",
109 | "@material-ui/system"
110 | ]
111 | }
112 | ]
113 | ]
114 | }
115 | ```
116 |
117 | ##### [Material UI (v5)](https://github.com/mui-org/material-ui/tree/v5.0.0-rc.0)
118 |
119 | ```json
120 | {
121 | "plugins": [
122 | [
123 | "babel-plugin-direct-import",
124 | {
125 | "modules": [
126 | "@mui/lab",
127 | "@mui/system",
128 | "@mui/material",
129 | "@mui/icons-material"
130 | ]
131 | }
132 | ]
133 | ]
134 | }
135 | ```
136 |
137 | ### Integrations
138 |
139 | #### Next.js
140 |
141 | ```js
142 | // babel.config.js
143 |
144 | module.exports = (api) => {
145 | const target = api.caller((caller) => caller.target);
146 |
147 | api.cache.using(() => JSON.stringify({ target }));
148 |
149 | const presets = ["next/babel"];
150 | const plugins = [];
151 |
152 | // Enable optimizations only for the `web` bundle.
153 | if (target === "web") {
154 | plugins.push([
155 | "babel-plugin-direct-import",
156 | { modules: ["@mui/lab", "@mui/material", "@mui/icons-material"] },
157 | ]);
158 | }
159 |
160 | return { presets, plugins };
161 | };
162 | ```
163 |
164 | ### Migration
165 |
166 | #### 0.5.0 to 0.6.0
167 |
168 | After migration to Babel v7 it's impossible to pass arrays as configs, and now you have to pass an object with `modules` property:
169 |
170 | Before:
171 |
172 | ```json
173 | {
174 | "plugins": [["babel-plugin-direct-import", ["@material-ui/core"]]]
175 | }
176 | ```
177 |
178 | After:
179 |
180 | ```json
181 | {
182 | "plugins": [
183 | ["babel-plugin-direct-import", { "modules": ["@material-ui/core"] }]
184 | ]
185 | }
186 | ```
187 |
188 | ### Heavily inspired by:
189 |
190 | - [babel-plugin-date-fns](https://github.com/date-fns/babel-plugin-date-fns)
191 | - [babel-plugin-lodash](https://github.com/lodash/babel-plugin-lodash)
192 | - [babel-plugin-recharts](https://github.com/recharts/babel-plugin-recharts)
193 | - [babel-transform-imports](https://bitbucket.org/amctheatres/babel-transform-imports)
194 | - [babel-plugin-import](https://github.com/ant-design/babel-plugin-import)
195 |
--------------------------------------------------------------------------------
/lib/config.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | const assert = require("node:assert");
4 |
5 | /**
6 | * @typedef {object} PluginConfig
7 | * @property {Set} modules
8 | */
9 |
10 | /**
11 | * @param {object} options
12 | * @returns {PluginConfig}
13 | */
14 | module.exports.parseConfig = function parseConfig(options) {
15 | assert.ok("modules" in options, "invalid 'options.modules': not defined");
16 |
17 | const { modules, ...unknownPluginOptions } = options;
18 | assert.ok(
19 | Array.isArray(modules),
20 | "invalid 'options.modules': not an 'array'"
21 | );
22 | assert.ok(!!modules.length, "invalid 'options.modules': value is empty");
23 |
24 | const unknownPluginOptionKeys = Object.keys(unknownPluginOptions);
25 | assert.ok(
26 | !unknownPluginOptionKeys.length,
27 | `invalid 'options': has unknown properties (${unknownPluginOptionKeys.join(
28 | ", "
29 | )})`
30 | );
31 |
32 | /** @type {PluginConfig} */
33 | const config = { modules: new Set() };
34 | for (const [idx, id] of modules.entries()) {
35 | const optionPath = `options.modules[${idx}]`;
36 | assert.ok(typeof id == "string", `invalid '${optionPath}': not a 'string'`);
37 | assert.ok(!!id.length, `invalid '${optionPath}': value is empty`);
38 | config.modules.add(id);
39 | }
40 | return config;
41 | };
42 |
--------------------------------------------------------------------------------
/lib/config.spec.js:
--------------------------------------------------------------------------------
1 | import { expect, test } from "vitest";
2 | import { parseConfig } from "./config";
3 |
4 | test("basic", () => {
5 | expect(parseConfig({ modules: ["@mui/material", "@mui/material/Button"] }))
6 | .toMatchInlineSnapshot(`
7 | {
8 | "modules": Set {
9 | "@mui/material",
10 | "@mui/material/Button",
11 | },
12 | }
13 | `);
14 | });
15 |
16 | test.each([
17 | [{}, "invalid 'options.modules': not defined"],
18 | [{ modules: null }, "invalid 'options.modules': not an 'array'"],
19 | [{ modules: undefined }, "invalid 'options.modules': not an 'array'"],
20 | [{ modules: "@mui/core" }, "invalid 'options.modules': not an 'array'"],
21 | [
22 | { modules: { "@mui/core": "@mui/core" } },
23 | "invalid 'options.modules': not an 'array'",
24 | ],
25 |
26 | [{ modules: [] }, "invalid 'options.modules': value is empty"],
27 |
28 | [
29 | { modules: ["@mui/core"], foo: "bar", baz: 10 },
30 | "invalid 'options': has unknown properties (foo, baz)",
31 | ],
32 |
33 | [{ modules: [""] }, "invalid 'options.modules[0]': value is empty"],
34 | [
35 | { modules: ["@mui/core", ""] },
36 | "invalid 'options.modules[1]': value is empty",
37 | ],
38 |
39 | [{ modules: [null] }, "invalid 'options.modules[0]': not a 'string'"],
40 | ])("invalid options: %o -> %p", (input, error) => {
41 | expect(() => parseConfig(input)).toThrow(error);
42 | });
43 |
--------------------------------------------------------------------------------
/lib/internal/Dependency.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | const path = require("node:path");
4 |
5 | class Dependency {
6 | /**
7 | * @param {string} filename
8 | * @returns {string}
9 | */
10 | static #getSource(filename) {
11 | const chunks = filename.split(path.sep);
12 | const nodeModulesIdx = chunks.lastIndexOf("node_modules");
13 | return chunks.slice(nodeModulesIdx + 1).join("/");
14 | }
15 |
16 | #id;
17 | #internalID;
18 | /** @readonly */
19 | #source;
20 |
21 | /**
22 | * @param {string} filename
23 | * @param {string} id
24 | * @param {string} [internalID]
25 | */
26 | constructor(filename, id, internalID = id) {
27 | this.#id = id;
28 | this.#internalID = internalID;
29 | this.#source = Dependency.#getSource(filename);
30 | }
31 |
32 | /** @returns {string} */
33 | get id() {
34 | return this.#id;
35 | }
36 |
37 | /** @returns {string} */
38 | get internalID() {
39 | return this.#internalID;
40 | }
41 |
42 | /** @returns {string} */
43 | get source() {
44 | return this.#source;
45 | }
46 |
47 | /**
48 | * @param {string} id
49 | * @param {string} [internalID]
50 | * @returns {Dependency}
51 | */
52 | update(id, internalID = this.#internalID) {
53 | this.#id = id;
54 | this.#internalID = internalID;
55 | return this;
56 | }
57 | }
58 |
59 | module.exports = Dependency;
60 |
--------------------------------------------------------------------------------
/lib/internal/Parser.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | const fs = require("fs");
4 | const assert = require("assert");
5 | const path = require("path");
6 | const Dependency = require("./Dependency");
7 | const resolveModule = require("../utils/resolveModule");
8 | const memoize = require("../utils/memoize");
9 |
10 | class Parser {
11 | /** @readonly */
12 | #parse;
13 | /** @readonly */
14 | #types;
15 | /**
16 | * @type {(filename: string) => import("@babel/types").Statement[]}
17 | * @readonly
18 | */
19 | #visitFile = memoize((filename) => {
20 | const content = fs.readFileSync(filename, "utf-8");
21 | const ast = this.#parse(content, {
22 | filename,
23 | ast: true,
24 | babelrc: false,
25 | configFile: false,
26 | sourceType: "module",
27 | });
28 | assert.ok(this.#types.isFile(ast));
29 | return ast.program.body;
30 | });
31 | /**
32 | * @type {(input: [id: string, basedir?: string]) => string}
33 | * @readonly
34 | */
35 | #resolveModule = memoize(([id, basedir]) => resolveModule(id, basedir), {
36 | serializeKey: JSON.stringify,
37 | });
38 |
39 | /**
40 | * @param {import("@babel/core").parse} parse
41 | * @param {import("@babel/types")} types
42 | */
43 | constructor(parse, types) {
44 | this.#parse = parse;
45 | this.#types = types;
46 | }
47 |
48 | /**
49 | * @param {string} filename
50 | * @param {import("@babel/types").ExportAllDeclaration} node
51 | * @returns {Generator}
52 | */
53 | *#visitExportAllDeclaration(filename, node) {
54 | const sourcePath = this.#resolveModule([
55 | node.source.value,
56 | path.dirname(filename),
57 | ]);
58 | for (const dependency of this.#collectDependencies(sourcePath)) {
59 | if (dependency.id !== "default") yield dependency;
60 | }
61 | }
62 |
63 | /**
64 | * @param {import("@babel/types").VariableDeclaration} node
65 | * @returns {Generator}
66 | */
67 | *#visitVariableDeclaration(node) {
68 | for (const declaration of node.declarations) {
69 | /* istanbul ignore else */
70 | if (this.#types.isIdentifier(declaration.id)) {
71 | yield declaration.id.name;
72 | }
73 | }
74 | }
75 |
76 | /**
77 | * @param {string} filename
78 | * @param {import("@babel/types").ImportDeclaration} node
79 | * @returns {Generator}
80 | */
81 | *#visitImportDeclaration(filename, node) {
82 | const t = this.#types;
83 |
84 | if (!node.source.value.startsWith(".")) return;
85 |
86 | const sourcePath = this.#resolveModule([
87 | node.source.value,
88 | path.dirname(filename),
89 | ]);
90 |
91 | for (const specifier of node.specifiers) {
92 | if (t.isImportNamespaceSpecifier(specifier)) {
93 | yield new Dependency(sourcePath, specifier.local.name, "*");
94 | break;
95 | }
96 |
97 | if (t.isImportDefaultSpecifier(specifier)) {
98 | yield new Dependency(sourcePath, specifier.local.name, "default");
99 | } else {
100 | assert.ok(t.isIdentifier(specifier.imported));
101 | yield new Dependency(
102 | sourcePath,
103 | specifier.local.name,
104 | specifier.imported.name
105 | );
106 | }
107 | }
108 | }
109 |
110 | /**
111 | * @param {string} filename
112 | * @param {import("@babel/types").ExportNamedDeclaration} node
113 | * @param {Map} imports
114 | * @returns {Generator}
115 | */
116 | *#visitExportNamedDeclaration(filename, node, imports) {
117 | const t = this.#types;
118 |
119 | if (node.source) {
120 | if (!node.source.value.startsWith(".")) {
121 | for (const specifier of node.specifiers) {
122 | assert.ok(t.isExportSpecifier(specifier));
123 | assert.ok(t.isIdentifier(specifier.local));
124 | assert.ok(t.isIdentifier(specifier.exported));
125 | yield new Dependency(
126 | node.source.value,
127 | specifier.exported.name,
128 | specifier.local.name
129 | );
130 | }
131 | } else {
132 | const sourcePath = this.#resolveModule([
133 | node.source.value,
134 | path.dirname(filename),
135 | ]);
136 |
137 | const specifiers = new Map(
138 | node.specifiers.map((specifier) => {
139 | assert.ok(t.isExportSpecifier(specifier));
140 | return [specifier.local.name, specifier];
141 | })
142 | );
143 |
144 | for (const dependency of this.#collectDependencies(sourcePath)) {
145 | const specifier = specifiers.get(dependency.id);
146 |
147 | if (specifier) {
148 | specifiers.delete(dependency.id);
149 | assert.ok(t.isIdentifier(specifier.exported));
150 |
151 | if (specifier.exported.name === "default") {
152 | yield dependency.update(
153 | specifier.exported.name,
154 | specifier.exported.name
155 | );
156 | } else {
157 | yield dependency.update(specifier.exported.name);
158 | }
159 | }
160 | }
161 | }
162 | } else {
163 | for (const specifier of node.specifiers) {
164 | assert.ok(t.isExportSpecifier(specifier));
165 | assert.ok(t.isIdentifier(specifier.exported));
166 |
167 | const importedDependency = imports.get(specifier.local.name);
168 |
169 | if (importedDependency) {
170 | yield importedDependency.update(specifier.exported.name);
171 | } else {
172 | yield new Dependency(
173 | filename,
174 | specifier.exported.name,
175 | specifier.local.name
176 | );
177 | }
178 | }
179 | }
180 |
181 | if (node.declaration) {
182 | if (t.isVariableDeclaration(node.declaration)) {
183 | for (const id of this.#visitVariableDeclaration(node.declaration)) {
184 | yield new Dependency(filename, id);
185 | }
186 | }
187 |
188 | if (t.isFunctionDeclaration(node.declaration)) {
189 | assert.ok(node.declaration.id);
190 | yield new Dependency(filename, node.declaration.id.name);
191 | }
192 | }
193 | }
194 |
195 | /**
196 | * @param {string} filename
197 | * @returns {Generator}
198 | */
199 | *#collectDependencies(filename) {
200 | const t = this.#types;
201 | /** @type {Map} */
202 | const imports = new Map();
203 |
204 | for (const node of this.#visitFile(filename)) {
205 | if (t.isImportDeclaration(node)) {
206 | for (const dependency of this.#visitImportDeclaration(filename, node)) {
207 | imports.set(dependency.id, dependency);
208 | }
209 | } else if (t.isExportDefaultDeclaration(node)) {
210 | yield new Dependency(filename, "default");
211 | } else if (t.isExportAllDeclaration(node)) {
212 | yield* this.#visitExportAllDeclaration(filename, node);
213 | } else if (t.isExportNamedDeclaration(node)) {
214 | yield* this.#visitExportNamedDeclaration(filename, node, imports);
215 | }
216 | }
217 | }
218 |
219 | /**
220 | * @param {string} id
221 | * @returns {Map}
222 | */
223 | getDependenciesMap(id) {
224 | /** @type {Map} */
225 | const dependencies = new Map();
226 | const entry = this.#resolveModule([id]);
227 | for (const dependency of this.#collectDependencies(entry)) {
228 | dependencies.set(dependency.id, dependency);
229 | }
230 | return dependencies;
231 | }
232 | }
233 |
234 | module.exports = Parser;
235 |
--------------------------------------------------------------------------------
/lib/internal/Transformer.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | const memoize = require("../utils/memoize");
4 |
5 | /**
6 | * @param {string} localName
7 | * @param {string} source
8 | */
9 | function warnNamespaceImport(localName, source) {
10 | console.warn(
11 | `
12 | babel-plugin-direct-import: Can not optimize 'import * as ${localName} from "${source}"'.
13 | See plugin limitations https://git.io/vFDOO for more details.
14 | `.trim()
15 | );
16 | }
17 |
18 | /**
19 | * @typedef {object} BabelAPI
20 | * @property {import("@babel/core").parse} parse
21 | * @property {import("@babel/core").types} types
22 | */
23 |
24 | class Transformer {
25 | /** @readonly */
26 | #types;
27 | /** @readonly */
28 | #config;
29 | /** @readonly */
30 | #parser;
31 | /**
32 | * @type {(id: string) => Map}
33 | * @readonly
34 | */
35 | #getDependenciesMap = memoize((id) => this.#parser.getDependenciesMap(id));
36 |
37 | /**
38 | * @param {import('../config').PluginConfig} config
39 | * @param {import("./Parser")} parser
40 | * @param {import("@babel/core").types} types
41 | */
42 | constructor(config, parser, types) {
43 | this.#types = types;
44 | this.#parser = parser;
45 | this.#config = config;
46 | }
47 |
48 | /**
49 | * @param {import("@babel/core").NodePath<
50 | * import("@babel/types").ImportDeclaration
51 | * >} declaration
52 | * @returns {void}
53 | */
54 | transform(declaration) {
55 | const t = this.#types;
56 | const {
57 | specifiers,
58 | importKind,
59 | source: { value: id },
60 | } = declaration.node;
61 | if (
62 | importKind === "type" ||
63 | !specifiers.length ||
64 | !this.#config.modules.has(id)
65 | ) {
66 | return;
67 | }
68 |
69 | const dependencies = this.#getDependenciesMap(id);
70 | if (!dependencies.size) {
71 | return;
72 | }
73 |
74 | /** @type {Set} */
75 | const removedSpecifiers = new Set();
76 |
77 | for (const specifier of specifiers) {
78 | if (t.isImportNamespaceSpecifier(specifier)) {
79 | warnNamespaceImport(specifier.local.name, id);
80 | continue;
81 | }
82 |
83 | const moduleName = t.isImportDefaultSpecifier(specifier)
84 | ? "default"
85 | : t.isIdentifier(specifier.imported)
86 | ? specifier.imported.name
87 | : specifier.imported.value;
88 | const dependency = dependencies.get(moduleName);
89 |
90 | if (!dependency) {
91 | continue;
92 | }
93 |
94 | const localName = t.identifier(specifier.local.name);
95 | const replacement = t.importDeclaration(
96 | [
97 | dependency.internalID === "*"
98 | ? t.importNamespaceSpecifier(localName)
99 | : dependency.internalID === "default"
100 | ? t.importDefaultSpecifier(localName)
101 | : t.importSpecifier(localName, t.identifier(dependency.internalID)),
102 | ],
103 | t.stringLiteral(dependency.source)
104 | );
105 |
106 | removedSpecifiers.add(specifier);
107 | declaration.insertBefore(replacement);
108 | }
109 |
110 | if (removedSpecifiers.size === declaration.node.specifiers.length) {
111 | declaration.remove();
112 | } else {
113 | declaration.node.specifiers = declaration.node.specifiers.filter(
114 | (specifier) => !removedSpecifiers.has(specifier)
115 | );
116 | }
117 | }
118 | }
119 |
120 | module.exports = Transformer;
121 |
--------------------------------------------------------------------------------
/lib/plugin.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | const Transformer = require("./internal/Transformer");
4 | const Parser = require("./internal/Parser");
5 | const memoize = require("./utils/memoize");
6 | const { parseConfig } = require("./config");
7 |
8 | /**
9 | * @typedef {object} BabelAPI
10 | * @property {import("@babel/core").parse} parse
11 | * @property {import("@babel/core").types} types
12 | */
13 |
14 | /**
15 | * @param {BabelAPI} babel
16 | * @returns {(
17 | * path: import("@babel/core").NodePath<
18 | * import("@babel/types").ImportDeclaration
19 | * >,
20 | * state: import("@babel/core").PluginPass
21 | * ) => void}
22 | */
23 | function createImportDeclarationVisitor(babel) {
24 | const parser = new Parser(babel.parse, babel.types);
25 | /** @type {(options: object) => Transformer} */
26 | const getTransformer = memoize(
27 | (options) => {
28 | const config = parseConfig(options);
29 | return new Transformer(config, parser, babel.types);
30 | },
31 | { map: new WeakMap() }
32 | );
33 | return (path, { opts }) => {
34 | const transformer = getTransformer(opts);
35 | transformer.transform(path);
36 | };
37 | }
38 |
39 | /**
40 | * @param {BabelAPI} babel
41 | * @returns {import("@babel/core").PluginObj}
42 | */
43 | module.exports = function createDirectImportPlugin(babel) {
44 | return {
45 | name: "babel-plugin-direct-import",
46 | visitor: { ImportDeclaration: createImportDeclarationVisitor(babel) },
47 | };
48 | };
49 |
--------------------------------------------------------------------------------
/lib/plugin.spec.js:
--------------------------------------------------------------------------------
1 | import { transformSync } from "@babel/core";
2 | import { expect, test, vi } from "vitest";
3 | import plugin from "./plugin";
4 |
5 | /**
6 | * @param {string} code
7 | * @param {unknown} options
8 | * @returns {null | string}
9 | */
10 | function transform(code, options) {
11 | const result = transformSync(code, {
12 | plugins: [[plugin, options], "@babel/plugin-syntax-flow"],
13 | });
14 |
15 | return (result && result.code) || null;
16 | }
17 |
18 | test("basic", () => {
19 | expect(
20 | transform('import { Button } from "@mui/material";', {
21 | modules: ["@mui/material"],
22 | })
23 | ).toMatchInlineSnapshot(
24 | `"import Button from "@mui/material/Button/Button.js";"`
25 | );
26 | });
27 |
28 | test("type imports", () => {
29 | expect(
30 | transform(
31 | `
32 | import { Button } from "@mui/material";
33 | import type { ButtonProps } from "@mui/material";
34 | `,
35 | { modules: ["@mui/material"] }
36 | )
37 | ).toMatchInlineSnapshot(`
38 | "import Button from "@mui/material/Button/Button.js";
39 | import type { ButtonProps } from "@mui/material";"
40 | `);
41 | });
42 |
43 | test("default import", () => {
44 | expect(
45 | transform('import Button from "@mui/material/Button";', {
46 | modules: ["@mui/material/Button"],
47 | })
48 | ).toMatchInlineSnapshot(
49 | `"import Button from "@mui/material/Button/Button.js";"`
50 | );
51 | });
52 |
53 | test("named import", () => {
54 | const warn = vi.spyOn(console, "warn");
55 | warn.mockImplementation(() => void 0);
56 |
57 | expect(
58 | transform('import * as mui from "@mui/material";', {
59 | modules: ["@mui/material"],
60 | })
61 | ).toMatchInlineSnapshot(`"import * as mui from "@mui/material";"`);
62 |
63 | expect(warn).toHaveBeenCalledTimes(1);
64 | expect(warn.mock.calls[0]).toMatchInlineSnapshot(`
65 | [
66 | "babel-plugin-direct-import: Can not optimize 'import * as mui from "@mui/material"'.
67 | See plugin limitations https://git.io/vFDOO for more details.",
68 | ]
69 | `);
70 |
71 | warn.mockRestore();
72 | });
73 |
74 | test("string import", () => {
75 | expect(
76 | transform('import { "?" as Button } from "@mui/material";', {
77 | modules: ["@mui/material"],
78 | })
79 | ).toMatchInlineSnapshot(`"import { "?" as Button } from "@mui/material";"`);
80 | });
81 |
82 | test("deep module dependencies", () => {
83 | expect(
84 | transform('import { ThemeProvider as Theme } from "@mui/material";', {
85 | modules: ["@mui/material"],
86 | })
87 | ).toMatchInlineSnapshot(
88 | `"import { ThemeProvider as Theme } from "@mui/system";"`
89 | );
90 |
91 | expect(
92 | transform('import { ThemeProvider as Theme } from "@mui/material";', {
93 | modules: ["@mui/material", "@material-ui/system"],
94 | })
95 | ).toMatchInlineSnapshot(
96 | `"import { ThemeProvider as Theme } from "@mui/system";"`
97 | );
98 | });
99 |
--------------------------------------------------------------------------------
/lib/utils/memoize.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @template T
3 | * @typedef {object} MapAPI
4 | * @property {(key: any) => undefined | T} get
5 | * @property {(key: any, value: T) => void} set
6 | */
7 |
8 | /**
9 | * @template TKey
10 | * @template TValue
11 | * @typedef {object} MemoizeOptions
12 | * @property {MapAPI} [map]
13 | * @property {(value: TKey) => unknown} [serializeKey]
14 | */
15 |
16 | /**
17 | * @template TKey
18 | * @template TValue
19 | * @param {(key: TKey) => TValue} loader
20 | * @param {MemoizeOptions} [options]
21 | * @returns {(key: TKey) => TValue}
22 | */
23 | module.exports = function memoize(loader, options = {}) {
24 | const { map = new Map(), serializeKey = (x) => x } = options;
25 | return (key) => {
26 | const cacheKey = serializeKey(key);
27 | let value = map.get(cacheKey);
28 | if (value === undefined) {
29 | value = loader(key);
30 | map.set(cacheKey, value);
31 | }
32 | return value;
33 | };
34 | };
35 |
--------------------------------------------------------------------------------
/lib/utils/resolveModule.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | const resolve = require("resolve");
4 |
5 | const MAIN_FIELDS = ["module", "esnext", "jsnext:main"];
6 |
7 | /**
8 | * @param {resolve.PackageJSON} pkg
9 | * @returns {resolve.PackageJSON}
10 | */
11 | function packageFilter(pkg) {
12 | for (const key of MAIN_FIELDS) {
13 | /* istanbul ignore else */
14 | const main = pkg[key];
15 | /* istanbul ignore else */
16 | if (typeof main === "string" && main) {
17 | return { ...pkg, main };
18 | }
19 | }
20 | /* istanbul ignore next */
21 | return pkg;
22 | }
23 |
24 | /**
25 | * @param {string} id
26 | * @param {string} [basedir]
27 | * @returns {string}
28 | */
29 | module.exports = function resolveModule(id, basedir) {
30 | return resolve.sync(id, { basedir, packageFilter });
31 | };
32 |
--------------------------------------------------------------------------------
/lib/utils/resolveModule.spec.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | import { expect, test } from "vitest";
4 | import resolveModule from "./resolveModule";
5 |
6 | test("basic", () => {
7 | expect(resolveModule("@mui/material")).toMatchInlineSnapshot(
8 | `"/node_modules/@mui/material/index.js"`
9 | );
10 | expect(resolveModule("@mui/material/Button")).toMatchInlineSnapshot(
11 | `"/node_modules/@mui/material/Button/index.js"`
12 | );
13 | expect(() =>
14 | resolveModule("@mui/core/Button")
15 | ).toThrowErrorMatchingInlineSnapshot(
16 | `"Cannot find module '@mui/core/Button' from '/lib/utils'"`
17 | );
18 |
19 | expect(() =>
20 | resolveModule(
21 | // @ts-expect-error
22 | null
23 | )
24 | ).toThrowErrorMatchingInlineSnapshot(`"Path must be a string."`);
25 | });
26 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "babel-plugin-direct-import",
3 | "version": "1.0.0",
4 | "description": "Babel plugin to cherry-pick ES module imports",
5 | "keywords": [
6 | "babel-plugin",
7 | "modules",
8 | "materia-ui"
9 | ],
10 | "repository": "https://github.com/umidbekk/babel-plugin-direct-import.git",
11 | "license": "MIT",
12 | "author": "Umidbek Karimov <4734297+umidbekk@users.noreply.github.com>",
13 | "main": "lib/plugin.js",
14 | "files": [
15 | "lib",
16 | "!**/*.spec.js"
17 | ],
18 | "scripts": {
19 | "checks": "npx tsc && npm run lint && npm run format -- --no-write && npm t",
20 | "format": "prettier --write --check .",
21 | "lint": "eslint .",
22 | "prepare": "husky install",
23 | "release": "npx --yes np --test-script checks",
24 | "tdd": "vitest watch",
25 | "test": "vitest run --coverage"
26 | },
27 | "lint-staged": {
28 | "*.js": "eslint --fix",
29 | "*.*": "prettier --write --ignore-unknown"
30 | },
31 | "eslintConfig": {
32 | "extends": [
33 | "eslint:recommended"
34 | ],
35 | "overrides": [
36 | {
37 | "files": [
38 | "lib/**/*.js"
39 | ],
40 | "excludedFiles": [
41 | "**/*.spec.js"
42 | ],
43 | "parserOptions": {
44 | "ecmaVersion": 2022
45 | },
46 | "extends": [
47 | "plugin:node/recommended-script"
48 | ]
49 | },
50 | {
51 | "files": [
52 | "**/*.spec.js",
53 | "test/**/*.js",
54 | "vitest.config.js"
55 | ],
56 | "parserOptions": {
57 | "ecmaVersion": 2022
58 | },
59 | "extends": [
60 | "plugin:node/recommended-module"
61 | ],
62 | "rules": {
63 | "node/no-missing-import": "off"
64 | }
65 | }
66 | ]
67 | },
68 | "dependencies": {
69 | "resolve": "^1.22.1"
70 | },
71 | "devDependencies": {
72 | "@babel/core": "7.21.0",
73 | "@babel/parser": "7.21.2",
74 | "@babel/plugin-syntax-flow": "7.18.6",
75 | "@material-ui/core": "4.12.3",
76 | "@material-ui/icons": "4.11.3",
77 | "@material-ui/lab": "4.0.0-alpha.60",
78 | "@mui/core": "5.0.0-alpha.54",
79 | "@mui/icons-material": "5.11.11",
80 | "@mui/lab": "5.0.0-alpha.121",
81 | "@mui/material": "5.11.11",
82 | "@mui/system": "5.11.11",
83 | "@types/babel__core": "7.20.0",
84 | "@types/node": "18.14.4",
85 | "@types/resolve": "1.20.2",
86 | "@umidbekk/configs": "0.2.0",
87 | "@vitest/coverage-c8": "^0.29.2",
88 | "eslint": "8.35.0",
89 | "eslint-plugin-node": "11.1.0",
90 | "husky": "8.0.3",
91 | "lint-staged": "13.1.2",
92 | "prettier": "2.8.4",
93 | "prettier-plugin-jsdoc": "0.4.2",
94 | "prettier-plugin-organize-imports": "3.2.2",
95 | "prettier-plugin-packagejson": "2.4.3",
96 | "typescript": "4.9.5",
97 | "vite": "4.1.4",
98 | "vitest": "0.29.2"
99 | },
100 | "engines": {
101 | "node": ">=14",
102 | "npm": ">=7"
103 | },
104 | "volta": {
105 | "node": "14.21.3",
106 | "npm": "8.19.4"
107 | }
108 | }
109 |
--------------------------------------------------------------------------------
/test/@material-ui/core/exports.spec.js:
--------------------------------------------------------------------------------
1 | import { expect, test } from "vitest";
2 | import { testExports } from "../../utils.js";
3 |
4 | test("exports", () => {
5 | expect(testExports("@material-ui/core")).toMatchInlineSnapshot(`
6 | [
7 | [
8 | "Accordion",
9 | "default",
10 | "@material-ui/core/esm/Accordion/Accordion.js",
11 | ],
12 | [
13 | "AccordionActions",
14 | "default",
15 | "@material-ui/core/esm/AccordionActions/AccordionActions.js",
16 | ],
17 | [
18 | "AccordionDetails",
19 | "default",
20 | "@material-ui/core/esm/AccordionDetails/AccordionDetails.js",
21 | ],
22 | [
23 | "AccordionSummary",
24 | "default",
25 | "@material-ui/core/esm/AccordionSummary/AccordionSummary.js",
26 | ],
27 | [
28 | "AppBar",
29 | "default",
30 | "@material-ui/core/esm/AppBar/AppBar.js",
31 | ],
32 | [
33 | "Avatar",
34 | "default",
35 | "@material-ui/core/esm/Avatar/Avatar.js",
36 | ],
37 | [
38 | "Backdrop",
39 | "default",
40 | "@material-ui/core/esm/Backdrop/Backdrop.js",
41 | ],
42 | [
43 | "Badge",
44 | "default",
45 | "@material-ui/core/esm/Badge/Badge.js",
46 | ],
47 | [
48 | "BottomNavigation",
49 | "default",
50 | "@material-ui/core/esm/BottomNavigation/BottomNavigation.js",
51 | ],
52 | [
53 | "BottomNavigationAction",
54 | "default",
55 | "@material-ui/core/esm/BottomNavigationAction/BottomNavigationAction.js",
56 | ],
57 | [
58 | "Box",
59 | "default",
60 | "@material-ui/core/esm/Box/Box.js",
61 | ],
62 | [
63 | "styleFunction",
64 | "styleFunction",
65 | "@material-ui/core/esm/Box/Box.js",
66 | ],
67 | [
68 | "Breadcrumbs",
69 | "default",
70 | "@material-ui/core/esm/Breadcrumbs/Breadcrumbs.js",
71 | ],
72 | [
73 | "Button",
74 | "default",
75 | "@material-ui/core/esm/Button/Button.js",
76 | ],
77 | [
78 | "ButtonBase",
79 | "default",
80 | "@material-ui/core/esm/ButtonBase/ButtonBase.js",
81 | ],
82 | [
83 | "ButtonGroup",
84 | "default",
85 | "@material-ui/core/esm/ButtonGroup/ButtonGroup.js",
86 | ],
87 | [
88 | "Card",
89 | "default",
90 | "@material-ui/core/esm/Card/Card.js",
91 | ],
92 | [
93 | "CardActionArea",
94 | "default",
95 | "@material-ui/core/esm/CardActionArea/CardActionArea.js",
96 | ],
97 | [
98 | "CardActions",
99 | "default",
100 | "@material-ui/core/esm/CardActions/CardActions.js",
101 | ],
102 | [
103 | "CardContent",
104 | "default",
105 | "@material-ui/core/esm/CardContent/CardContent.js",
106 | ],
107 | [
108 | "CardHeader",
109 | "default",
110 | "@material-ui/core/esm/CardHeader/CardHeader.js",
111 | ],
112 | [
113 | "CardMedia",
114 | "default",
115 | "@material-ui/core/esm/CardMedia/CardMedia.js",
116 | ],
117 | [
118 | "Checkbox",
119 | "default",
120 | "@material-ui/core/esm/Checkbox/Checkbox.js",
121 | ],
122 | [
123 | "Chip",
124 | "default",
125 | "@material-ui/core/esm/Chip/Chip.js",
126 | ],
127 | [
128 | "CircularProgress",
129 | "default",
130 | "@material-ui/core/esm/CircularProgress/CircularProgress.js",
131 | ],
132 | [
133 | "ClickAwayListener",
134 | "default",
135 | "@material-ui/core/esm/ClickAwayListener/ClickAwayListener.js",
136 | ],
137 | [
138 | "Collapse",
139 | "default",
140 | "@material-ui/core/esm/Collapse/Collapse.js",
141 | ],
142 | [
143 | "colors",
144 | "*",
145 | "@material-ui/core/esm/colors/index.js",
146 | ],
147 | [
148 | "Container",
149 | "default",
150 | "@material-ui/core/esm/Container/Container.js",
151 | ],
152 | [
153 | "CssBaseline",
154 | "default",
155 | "@material-ui/core/esm/CssBaseline/CssBaseline.js",
156 | ],
157 | [
158 | "Dialog",
159 | "default",
160 | "@material-ui/core/esm/Dialog/Dialog.js",
161 | ],
162 | [
163 | "DialogActions",
164 | "default",
165 | "@material-ui/core/esm/DialogActions/DialogActions.js",
166 | ],
167 | [
168 | "DialogContent",
169 | "default",
170 | "@material-ui/core/esm/DialogContent/DialogContent.js",
171 | ],
172 | [
173 | "DialogContentText",
174 | "default",
175 | "@material-ui/core/esm/DialogContentText/DialogContentText.js",
176 | ],
177 | [
178 | "DialogTitle",
179 | "default",
180 | "@material-ui/core/esm/DialogTitle/DialogTitle.js",
181 | ],
182 | [
183 | "Divider",
184 | "default",
185 | "@material-ui/core/esm/Divider/Divider.js",
186 | ],
187 | [
188 | "Drawer",
189 | "default",
190 | "@material-ui/core/esm/Drawer/Drawer.js",
191 | ],
192 | [
193 | "ExpansionPanel",
194 | "default",
195 | "@material-ui/core/esm/ExpansionPanel/ExpansionPanel.js",
196 | ],
197 | [
198 | "ExpansionPanelActions",
199 | "default",
200 | "@material-ui/core/esm/ExpansionPanelActions/ExpansionPanelActions.js",
201 | ],
202 | [
203 | "ExpansionPanelDetails",
204 | "default",
205 | "@material-ui/core/esm/ExpansionPanelDetails/ExpansionPanelDetails.js",
206 | ],
207 | [
208 | "ExpansionPanelSummary",
209 | "default",
210 | "@material-ui/core/esm/ExpansionPanelSummary/ExpansionPanelSummary.js",
211 | ],
212 | [
213 | "Fab",
214 | "default",
215 | "@material-ui/core/esm/Fab/Fab.js",
216 | ],
217 | [
218 | "Fade",
219 | "default",
220 | "@material-ui/core/esm/Fade/Fade.js",
221 | ],
222 | [
223 | "FilledInput",
224 | "default",
225 | "@material-ui/core/esm/FilledInput/FilledInput.js",
226 | ],
227 | [
228 | "FormControl",
229 | "default",
230 | "@material-ui/core/esm/FormControl/FormControl.js",
231 | ],
232 | [
233 | "useFormControl",
234 | "default",
235 | "@material-ui/core/esm/FormControl/useFormControl.js",
236 | ],
237 | [
238 | "FormControlLabel",
239 | "default",
240 | "@material-ui/core/esm/FormControlLabel/FormControlLabel.js",
241 | ],
242 | [
243 | "FormGroup",
244 | "default",
245 | "@material-ui/core/esm/FormGroup/FormGroup.js",
246 | ],
247 | [
248 | "FormHelperText",
249 | "default",
250 | "@material-ui/core/esm/FormHelperText/FormHelperText.js",
251 | ],
252 | [
253 | "FormLabel",
254 | "default",
255 | "@material-ui/core/esm/FormLabel/FormLabel.js",
256 | ],
257 | [
258 | "Grid",
259 | "default",
260 | "@material-ui/core/esm/Grid/Grid.js",
261 | ],
262 | [
263 | "GridList",
264 | "default",
265 | "@material-ui/core/esm/GridList/GridList.js",
266 | ],
267 | [
268 | "GridListTile",
269 | "default",
270 | "@material-ui/core/esm/GridListTile/GridListTile.js",
271 | ],
272 | [
273 | "GridListTileBar",
274 | "default",
275 | "@material-ui/core/esm/GridListTileBar/GridListTileBar.js",
276 | ],
277 | [
278 | "Grow",
279 | "default",
280 | "@material-ui/core/esm/Grow/Grow.js",
281 | ],
282 | [
283 | "Hidden",
284 | "default",
285 | "@material-ui/core/esm/Hidden/Hidden.js",
286 | ],
287 | [
288 | "Icon",
289 | "default",
290 | "@material-ui/core/esm/Icon/Icon.js",
291 | ],
292 | [
293 | "IconButton",
294 | "default",
295 | "@material-ui/core/esm/IconButton/IconButton.js",
296 | ],
297 | [
298 | "ImageList",
299 | "default",
300 | "@material-ui/core/esm/ImageList/ImageList.js",
301 | ],
302 | [
303 | "ImageListItem",
304 | "default",
305 | "@material-ui/core/esm/ImageListItem/ImageListItem.js",
306 | ],
307 | [
308 | "ImageListItemBar",
309 | "default",
310 | "@material-ui/core/esm/ImageListItemBar/ImageListItemBar.js",
311 | ],
312 | [
313 | "Input",
314 | "default",
315 | "@material-ui/core/esm/Input/Input.js",
316 | ],
317 | [
318 | "InputAdornment",
319 | "default",
320 | "@material-ui/core/esm/InputAdornment/InputAdornment.js",
321 | ],
322 | [
323 | "InputBase",
324 | "default",
325 | "@material-ui/core/esm/InputBase/InputBase.js",
326 | ],
327 | [
328 | "InputLabel",
329 | "default",
330 | "@material-ui/core/esm/InputLabel/InputLabel.js",
331 | ],
332 | [
333 | "LinearProgress",
334 | "default",
335 | "@material-ui/core/esm/LinearProgress/LinearProgress.js",
336 | ],
337 | [
338 | "Link",
339 | "default",
340 | "@material-ui/core/esm/Link/Link.js",
341 | ],
342 | [
343 | "List",
344 | "default",
345 | "@material-ui/core/esm/List/List.js",
346 | ],
347 | [
348 | "ListItem",
349 | "default",
350 | "@material-ui/core/esm/ListItem/ListItem.js",
351 | ],
352 | [
353 | "ListItemAvatar",
354 | "default",
355 | "@material-ui/core/esm/ListItemAvatar/ListItemAvatar.js",
356 | ],
357 | [
358 | "ListItemIcon",
359 | "default",
360 | "@material-ui/core/esm/ListItemIcon/ListItemIcon.js",
361 | ],
362 | [
363 | "ListItemSecondaryAction",
364 | "default",
365 | "@material-ui/core/esm/ListItemSecondaryAction/ListItemSecondaryAction.js",
366 | ],
367 | [
368 | "ListItemText",
369 | "default",
370 | "@material-ui/core/esm/ListItemText/ListItemText.js",
371 | ],
372 | [
373 | "ListSubheader",
374 | "default",
375 | "@material-ui/core/esm/ListSubheader/ListSubheader.js",
376 | ],
377 | [
378 | "Menu",
379 | "default",
380 | "@material-ui/core/esm/Menu/Menu.js",
381 | ],
382 | [
383 | "MenuItem",
384 | "default",
385 | "@material-ui/core/esm/MenuItem/MenuItem.js",
386 | ],
387 | [
388 | "MenuList",
389 | "default",
390 | "@material-ui/core/esm/MenuList/MenuList.js",
391 | ],
392 | [
393 | "MobileStepper",
394 | "default",
395 | "@material-ui/core/esm/MobileStepper/MobileStepper.js",
396 | ],
397 | [
398 | "Modal",
399 | "default",
400 | "@material-ui/core/esm/Modal/Modal.js",
401 | ],
402 | [
403 | "ModalManager",
404 | "ModalManager",
405 | "@material-ui/core/esm/Modal/ModalManager.js",
406 | ],
407 | [
408 | "NativeSelect",
409 | "default",
410 | "@material-ui/core/esm/NativeSelect/NativeSelect.js",
411 | ],
412 | [
413 | "NoSsr",
414 | "default",
415 | "@material-ui/core/esm/NoSsr/NoSsr.js",
416 | ],
417 | [
418 | "OutlinedInput",
419 | "default",
420 | "@material-ui/core/esm/OutlinedInput/OutlinedInput.js",
421 | ],
422 | [
423 | "Paper",
424 | "default",
425 | "@material-ui/core/esm/Paper/Paper.js",
426 | ],
427 | [
428 | "Popover",
429 | "default",
430 | "@material-ui/core/esm/Popover/Popover.js",
431 | ],
432 | [
433 | "Popper",
434 | "default",
435 | "@material-ui/core/esm/Popper/Popper.js",
436 | ],
437 | [
438 | "Portal",
439 | "default",
440 | "@material-ui/core/esm/Portal/Portal.js",
441 | ],
442 | [
443 | "Radio",
444 | "default",
445 | "@material-ui/core/esm/Radio/Radio.js",
446 | ],
447 | [
448 | "RadioGroup",
449 | "default",
450 | "@material-ui/core/esm/RadioGroup/RadioGroup.js",
451 | ],
452 | [
453 | "useRadioGroup",
454 | "default",
455 | "@material-ui/core/esm/RadioGroup/useRadioGroup.js",
456 | ],
457 | [
458 | "RootRef",
459 | "default",
460 | "@material-ui/core/esm/RootRef/RootRef.js",
461 | ],
462 | [
463 | "Select",
464 | "default",
465 | "@material-ui/core/esm/Select/Select.js",
466 | ],
467 | [
468 | "Slide",
469 | "default",
470 | "@material-ui/core/esm/Slide/Slide.js",
471 | ],
472 | [
473 | "Slider",
474 | "default",
475 | "@material-ui/core/esm/Slider/Slider.js",
476 | ],
477 | [
478 | "Snackbar",
479 | "default",
480 | "@material-ui/core/esm/Snackbar/Snackbar.js",
481 | ],
482 | [
483 | "SnackbarContent",
484 | "default",
485 | "@material-ui/core/esm/SnackbarContent/SnackbarContent.js",
486 | ],
487 | [
488 | "Step",
489 | "default",
490 | "@material-ui/core/esm/Step/Step.js",
491 | ],
492 | [
493 | "StepButton",
494 | "default",
495 | "@material-ui/core/esm/StepButton/StepButton.js",
496 | ],
497 | [
498 | "StepConnector",
499 | "default",
500 | "@material-ui/core/esm/StepConnector/StepConnector.js",
501 | ],
502 | [
503 | "StepContent",
504 | "default",
505 | "@material-ui/core/esm/StepContent/StepContent.js",
506 | ],
507 | [
508 | "StepIcon",
509 | "default",
510 | "@material-ui/core/esm/StepIcon/StepIcon.js",
511 | ],
512 | [
513 | "StepLabel",
514 | "default",
515 | "@material-ui/core/esm/StepLabel/StepLabel.js",
516 | ],
517 | [
518 | "Stepper",
519 | "default",
520 | "@material-ui/core/esm/Stepper/Stepper.js",
521 | ],
522 | [
523 | "hexToRgb",
524 | "hexToRgb",
525 | "@material-ui/core/esm/styles/colorManipulator.js",
526 | ],
527 | [
528 | "rgbToHex",
529 | "rgbToHex",
530 | "@material-ui/core/esm/styles/colorManipulator.js",
531 | ],
532 | [
533 | "hslToRgb",
534 | "hslToRgb",
535 | "@material-ui/core/esm/styles/colorManipulator.js",
536 | ],
537 | [
538 | "decomposeColor",
539 | "decomposeColor",
540 | "@material-ui/core/esm/styles/colorManipulator.js",
541 | ],
542 | [
543 | "recomposeColor",
544 | "recomposeColor",
545 | "@material-ui/core/esm/styles/colorManipulator.js",
546 | ],
547 | [
548 | "getContrastRatio",
549 | "getContrastRatio",
550 | "@material-ui/core/esm/styles/colorManipulator.js",
551 | ],
552 | [
553 | "getLuminance",
554 | "getLuminance",
555 | "@material-ui/core/esm/styles/colorManipulator.js",
556 | ],
557 | [
558 | "emphasize",
559 | "emphasize",
560 | "@material-ui/core/esm/styles/colorManipulator.js",
561 | ],
562 | [
563 | "fade",
564 | "fade",
565 | "@material-ui/core/esm/styles/colorManipulator.js",
566 | ],
567 | [
568 | "alpha",
569 | "alpha",
570 | "@material-ui/core/esm/styles/colorManipulator.js",
571 | ],
572 | [
573 | "darken",
574 | "darken",
575 | "@material-ui/core/esm/styles/colorManipulator.js",
576 | ],
577 | [
578 | "lighten",
579 | "lighten",
580 | "@material-ui/core/esm/styles/colorManipulator.js",
581 | ],
582 | [
583 | "unstable_createMuiStrictModeTheme",
584 | "default",
585 | "@material-ui/core/esm/styles/createMuiStrictModeTheme.js",
586 | ],
587 | [
588 | "createStyles",
589 | "default",
590 | "@material-ui/core/esm/styles/createStyles.js",
591 | ],
592 | [
593 | "createMuiTheme",
594 | "createMuiTheme",
595 | "@material-ui/core/esm/styles/createTheme.js",
596 | ],
597 | [
598 | "createTheme",
599 | "default",
600 | "@material-ui/core/esm/styles/createTheme.js",
601 | ],
602 | [
603 | "makeStyles",
604 | "default",
605 | "@material-ui/core/esm/styles/makeStyles.js",
606 | ],
607 | [
608 | "responsiveFontSizes",
609 | "default",
610 | "@material-ui/core/esm/styles/responsiveFontSizes.js",
611 | ],
612 | [
613 | "styled",
614 | "default",
615 | "@material-ui/core/esm/styles/styled.js",
616 | ],
617 | [
618 | "easing",
619 | "easing",
620 | "@material-ui/core/esm/styles/transitions.js",
621 | ],
622 | [
623 | "duration",
624 | "duration",
625 | "@material-ui/core/esm/styles/transitions.js",
626 | ],
627 | [
628 | "useTheme",
629 | "default",
630 | "@material-ui/core/esm/styles/useTheme.js",
631 | ],
632 | [
633 | "withStyles",
634 | "default",
635 | "@material-ui/core/esm/styles/withStyles.js",
636 | ],
637 | [
638 | "withTheme",
639 | "default",
640 | "@material-ui/core/esm/styles/withTheme.js",
641 | ],
642 | [
643 | "SvgIcon",
644 | "default",
645 | "@material-ui/core/esm/SvgIcon/SvgIcon.js",
646 | ],
647 | [
648 | "SwipeableDrawer",
649 | "default",
650 | "@material-ui/core/esm/SwipeableDrawer/SwipeableDrawer.js",
651 | ],
652 | [
653 | "Switch",
654 | "default",
655 | "@material-ui/core/esm/Switch/Switch.js",
656 | ],
657 | [
658 | "Tab",
659 | "default",
660 | "@material-ui/core/esm/Tab/Tab.js",
661 | ],
662 | [
663 | "Table",
664 | "default",
665 | "@material-ui/core/esm/Table/Table.js",
666 | ],
667 | [
668 | "TableBody",
669 | "default",
670 | "@material-ui/core/esm/TableBody/TableBody.js",
671 | ],
672 | [
673 | "TableCell",
674 | "default",
675 | "@material-ui/core/esm/TableCell/TableCell.js",
676 | ],
677 | [
678 | "TableContainer",
679 | "default",
680 | "@material-ui/core/esm/TableContainer/TableContainer.js",
681 | ],
682 | [
683 | "TableFooter",
684 | "default",
685 | "@material-ui/core/esm/TableFooter/TableFooter.js",
686 | ],
687 | [
688 | "TableHead",
689 | "default",
690 | "@material-ui/core/esm/TableHead/TableHead.js",
691 | ],
692 | [
693 | "TablePagination",
694 | "default",
695 | "@material-ui/core/esm/TablePagination/TablePagination.js",
696 | ],
697 | [
698 | "TableRow",
699 | "default",
700 | "@material-ui/core/esm/TableRow/TableRow.js",
701 | ],
702 | [
703 | "TableSortLabel",
704 | "default",
705 | "@material-ui/core/esm/TableSortLabel/TableSortLabel.js",
706 | ],
707 | [
708 | "Tabs",
709 | "default",
710 | "@material-ui/core/esm/Tabs/Tabs.js",
711 | ],
712 | [
713 | "TabScrollButton",
714 | "default",
715 | "@material-ui/core/esm/TabScrollButton/TabScrollButton.js",
716 | ],
717 | [
718 | "TextareaAutosize",
719 | "default",
720 | "@material-ui/core/esm/TextareaAutosize/TextareaAutosize.js",
721 | ],
722 | [
723 | "TextField",
724 | "default",
725 | "@material-ui/core/esm/TextField/TextField.js",
726 | ],
727 | [
728 | "Toolbar",
729 | "default",
730 | "@material-ui/core/esm/Toolbar/Toolbar.js",
731 | ],
732 | [
733 | "Tooltip",
734 | "default",
735 | "@material-ui/core/esm/Tooltip/Tooltip.js",
736 | ],
737 | [
738 | "Typography",
739 | "default",
740 | "@material-ui/core/esm/Typography/Typography.js",
741 | ],
742 | [
743 | "Unstable_TrapFocus",
744 | "default",
745 | "@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js",
746 | ],
747 | [
748 | "useMediaQuery",
749 | "default",
750 | "@material-ui/core/esm/useMediaQuery/useMediaQuery.js",
751 | ],
752 | [
753 | "useScrollTrigger",
754 | "default",
755 | "@material-ui/core/esm/useScrollTrigger/useScrollTrigger.js",
756 | ],
757 | [
758 | "capitalize",
759 | "default",
760 | "@material-ui/core/esm/utils/capitalize.js",
761 | ],
762 | [
763 | "createChainedFunction",
764 | "default",
765 | "@material-ui/core/esm/utils/createChainedFunction.js",
766 | ],
767 | [
768 | "createSvgIcon",
769 | "default",
770 | "@material-ui/core/esm/utils/createSvgIcon.js",
771 | ],
772 | [
773 | "debounce",
774 | "default",
775 | "@material-ui/core/esm/utils/debounce.js",
776 | ],
777 | [
778 | "deprecatedPropType",
779 | "default",
780 | "@material-ui/core/esm/utils/deprecatedPropType.js",
781 | ],
782 | [
783 | "isMuiElement",
784 | "default",
785 | "@material-ui/core/esm/utils/isMuiElement.js",
786 | ],
787 | [
788 | "ownerDocument",
789 | "default",
790 | "@material-ui/core/esm/utils/ownerDocument.js",
791 | ],
792 | [
793 | "ownerWindow",
794 | "default",
795 | "@material-ui/core/esm/utils/ownerWindow.js",
796 | ],
797 | [
798 | "requirePropFactory",
799 | "default",
800 | "@material-ui/core/esm/utils/requirePropFactory.js",
801 | ],
802 | [
803 | "setRef",
804 | "default",
805 | "@material-ui/core/esm/utils/setRef.js",
806 | ],
807 | [
808 | "unstable_useId",
809 | "default",
810 | "@material-ui/core/esm/utils/unstable_useId.js",
811 | ],
812 | [
813 | "unsupportedProp",
814 | "default",
815 | "@material-ui/core/esm/utils/unsupportedProp.js",
816 | ],
817 | [
818 | "useControlled",
819 | "default",
820 | "@material-ui/core/esm/utils/useControlled.js",
821 | ],
822 | [
823 | "useEventCallback",
824 | "default",
825 | "@material-ui/core/esm/utils/useEventCallback.js",
826 | ],
827 | [
828 | "useForkRef",
829 | "default",
830 | "@material-ui/core/esm/utils/useForkRef.js",
831 | ],
832 | [
833 | "useIsFocusVisible",
834 | "default",
835 | "@material-ui/core/esm/utils/useIsFocusVisible.js",
836 | ],
837 | [
838 | "withMobileDialog",
839 | "default",
840 | "@material-ui/core/esm/withMobileDialog/withMobileDialog.js",
841 | ],
842 | [
843 | "withWidth",
844 | "default",
845 | "@material-ui/core/esm/withWidth/withWidth.js",
846 | ],
847 | [
848 | "isWidthUp",
849 | "isWidthUp",
850 | "@material-ui/core/esm/withWidth/withWidth.js",
851 | ],
852 | [
853 | "isWidthDown",
854 | "isWidthDown",
855 | "@material-ui/core/esm/withWidth/withWidth.js",
856 | ],
857 | [
858 | "Zoom",
859 | "default",
860 | "@material-ui/core/esm/Zoom/Zoom.js",
861 | ],
862 | [
863 | "createGenerateClassName",
864 | "createGenerateClassName",
865 | "@material-ui/styles",
866 | ],
867 | [
868 | "jssPreset",
869 | "jssPreset",
870 | "@material-ui/styles",
871 | ],
872 | [
873 | "ServerStyleSheets",
874 | "ServerStyleSheets",
875 | "@material-ui/styles",
876 | ],
877 | [
878 | "StylesProvider",
879 | "StylesProvider",
880 | "@material-ui/styles",
881 | ],
882 | [
883 | "MuiThemeProvider",
884 | "ThemeProvider",
885 | "@material-ui/styles",
886 | ],
887 | [
888 | "ThemeProvider",
889 | "ThemeProvider",
890 | "@material-ui/styles",
891 | ],
892 | ]
893 | `);
894 | });
895 |
--------------------------------------------------------------------------------
/test/@material-ui/core/plugin.spec.js:
--------------------------------------------------------------------------------
1 | import { expect, test } from "vitest";
2 | import { runPlugin } from "../../utils.js";
3 |
4 | test("transformation", () => {
5 | expect(
6 | runPlugin(
7 | [
8 | 'import Button from "@material-ui/core/Button"',
9 | 'import { colors, ThemeProvider } from "@material-ui/core"',
10 | ].join("\n"),
11 | ["@material-ui/core", "@material-ui/core/Button"]
12 | )
13 | ).toMatchInlineSnapshot(`
14 | import Button from "@material-ui/core/esm/Button/Button.js";
15 | import * as colors from "@material-ui/core/esm/colors/index.js";
16 | import { ThemeProvider } from "@material-ui/styles";
17 | `);
18 | });
19 |
--------------------------------------------------------------------------------
/test/@material-ui/icons/plugin.spec.js:
--------------------------------------------------------------------------------
1 | import { expect, test } from "vitest";
2 | import { runPlugin } from "../../utils.js";
3 |
4 | test("transformation", () => {
5 | expect(
6 | runPlugin(
7 | 'import { ChevronLeft, ChevronRight } from "@material-ui/icons"',
8 | ["@material-ui/icons"]
9 | )
10 | ).toMatchInlineSnapshot(`
11 | import ChevronLeft from "@material-ui/icons/esm/ChevronLeft.js";
12 | import ChevronRight from "@material-ui/icons/esm/ChevronRight.js";
13 | `);
14 | });
15 |
--------------------------------------------------------------------------------
/test/@material-ui/lab/exports.spec.js:
--------------------------------------------------------------------------------
1 | import { expect, test } from "vitest";
2 | import { testExports } from "../../utils.js";
3 |
4 | test("exports", () => {
5 | expect(testExports("@material-ui/lab")).toMatchInlineSnapshot(`
6 | [
7 | [
8 | "Alert",
9 | "default",
10 | "@material-ui/lab/esm/Alert/Alert.js",
11 | ],
12 | [
13 | "AlertTitle",
14 | "default",
15 | "@material-ui/lab/esm/AlertTitle/AlertTitle.js",
16 | ],
17 | [
18 | "Autocomplete",
19 | "default",
20 | "@material-ui/lab/esm/Autocomplete/Autocomplete.js",
21 | ],
22 | [
23 | "AvatarGroup",
24 | "default",
25 | "@material-ui/lab/esm/AvatarGroup/AvatarGroup.js",
26 | ],
27 | [
28 | "Pagination",
29 | "default",
30 | "@material-ui/lab/esm/Pagination/Pagination.js",
31 | ],
32 | [
33 | "usePagination",
34 | "default",
35 | "@material-ui/lab/esm/Pagination/usePagination.js",
36 | ],
37 | [
38 | "PaginationItem",
39 | "default",
40 | "@material-ui/lab/esm/PaginationItem/PaginationItem.js",
41 | ],
42 | [
43 | "Rating",
44 | "default",
45 | "@material-ui/lab/esm/Rating/Rating.js",
46 | ],
47 | [
48 | "Skeleton",
49 | "default",
50 | "@material-ui/lab/esm/Skeleton/Skeleton.js",
51 | ],
52 | [
53 | "SpeedDial",
54 | "default",
55 | "@material-ui/lab/esm/SpeedDial/SpeedDial.js",
56 | ],
57 | [
58 | "SpeedDialAction",
59 | "default",
60 | "@material-ui/lab/esm/SpeedDialAction/SpeedDialAction.js",
61 | ],
62 | [
63 | "SpeedDialIcon",
64 | "default",
65 | "@material-ui/lab/esm/SpeedDialIcon/SpeedDialIcon.js",
66 | ],
67 | [
68 | "TabContext",
69 | "default",
70 | "@material-ui/lab/esm/TabContext/TabContext.js",
71 | ],
72 | [
73 | "useTabContext",
74 | "useTabContext",
75 | "@material-ui/lab/esm/TabContext/TabContext.js",
76 | ],
77 | [
78 | "getPanelId",
79 | "getPanelId",
80 | "@material-ui/lab/esm/TabContext/TabContext.js",
81 | ],
82 | [
83 | "getTabId",
84 | "getTabId",
85 | "@material-ui/lab/esm/TabContext/TabContext.js",
86 | ],
87 | [
88 | "TabList",
89 | "default",
90 | "@material-ui/lab/esm/TabList/TabList.js",
91 | ],
92 | [
93 | "TabPanel",
94 | "default",
95 | "@material-ui/lab/esm/TabPanel/TabPanel.js",
96 | ],
97 | [
98 | "Timeline",
99 | "default",
100 | "@material-ui/lab/esm/Timeline/Timeline.js",
101 | ],
102 | [
103 | "TimelineConnector",
104 | "default",
105 | "@material-ui/lab/esm/TimelineConnector/TimelineConnector.js",
106 | ],
107 | [
108 | "TimelineContent",
109 | "default",
110 | "@material-ui/lab/esm/TimelineContent/TimelineContent.js",
111 | ],
112 | [
113 | "TimelineDot",
114 | "default",
115 | "@material-ui/lab/esm/TimelineDot/TimelineDot.js",
116 | ],
117 | [
118 | "TimelineItem",
119 | "default",
120 | "@material-ui/lab/esm/TimelineItem/TimelineItem.js",
121 | ],
122 | [
123 | "TimelineOppositeContent",
124 | "default",
125 | "@material-ui/lab/esm/TimelineOppositeContent/TimelineOppositeContent.js",
126 | ],
127 | [
128 | "TimelineSeparator",
129 | "default",
130 | "@material-ui/lab/esm/TimelineSeparator/TimelineSeparator.js",
131 | ],
132 | [
133 | "ToggleButton",
134 | "default",
135 | "@material-ui/lab/esm/ToggleButton/ToggleButton.js",
136 | ],
137 | [
138 | "ToggleButtonGroup",
139 | "default",
140 | "@material-ui/lab/esm/ToggleButtonGroup/ToggleButtonGroup.js",
141 | ],
142 | [
143 | "TreeItem",
144 | "default",
145 | "@material-ui/lab/esm/TreeItem/TreeItem.js",
146 | ],
147 | [
148 | "TreeView",
149 | "default",
150 | "@material-ui/lab/esm/TreeView/TreeView.js",
151 | ],
152 | [
153 | "createFilterOptions",
154 | "createFilterOptions",
155 | "@material-ui/lab/esm/useAutocomplete/index.js",
156 | ],
157 | [
158 | "useAutocomplete",
159 | "default",
160 | "@material-ui/lab/esm/useAutocomplete/useAutocomplete.js",
161 | ],
162 | ]
163 | `);
164 | });
165 |
--------------------------------------------------------------------------------
/test/@material-ui/lab/plugin.spec.js:
--------------------------------------------------------------------------------
1 | import { expect, test } from "vitest";
2 | import { runPlugin } from "../../utils.js";
3 |
4 | test("transformation", () => {
5 | expect(
6 | runPlugin('import { Alert, AlertTitle } from "@material-ui/lab"', [
7 | "@material-ui/lab",
8 | ])
9 | ).toMatchInlineSnapshot(`
10 | import Alert from "@material-ui/lab/esm/Alert/Alert.js";
11 | import AlertTitle from "@material-ui/lab/esm/AlertTitle/AlertTitle.js";
12 | `);
13 | });
14 |
--------------------------------------------------------------------------------
/test/@material-ui/system/exports.spec.js:
--------------------------------------------------------------------------------
1 | import { expect, test } from "vitest";
2 | import { testExports } from "../../utils.js";
3 |
4 | test("exports", () => {
5 | expect(testExports("@material-ui/system")).toMatchInlineSnapshot(`
6 | [
7 | [
8 | "borders",
9 | "default",
10 | "@material-ui/system/esm/borders.js",
11 | ],
12 | [
13 | "border",
14 | "border",
15 | "@material-ui/system/esm/borders.js",
16 | ],
17 | [
18 | "borderTop",
19 | "borderTop",
20 | "@material-ui/system/esm/borders.js",
21 | ],
22 | [
23 | "borderRight",
24 | "borderRight",
25 | "@material-ui/system/esm/borders.js",
26 | ],
27 | [
28 | "borderBottom",
29 | "borderBottom",
30 | "@material-ui/system/esm/borders.js",
31 | ],
32 | [
33 | "borderLeft",
34 | "borderLeft",
35 | "@material-ui/system/esm/borders.js",
36 | ],
37 | [
38 | "borderColor",
39 | "borderColor",
40 | "@material-ui/system/esm/borders.js",
41 | ],
42 | [
43 | "borderRadius",
44 | "borderRadius",
45 | "@material-ui/system/esm/borders.js",
46 | ],
47 | [
48 | "breakpoints",
49 | "default",
50 | "@material-ui/system/esm/breakpoints.js",
51 | ],
52 | [
53 | "compose",
54 | "default",
55 | "@material-ui/system/esm/compose.js",
56 | ],
57 | [
58 | "display",
59 | "default",
60 | "@material-ui/system/esm/display.js",
61 | ],
62 | [
63 | "flexbox",
64 | "default",
65 | "@material-ui/system/esm/flexbox.js",
66 | ],
67 | [
68 | "flexBasis",
69 | "flexBasis",
70 | "@material-ui/system/esm/flexbox.js",
71 | ],
72 | [
73 | "flexDirection",
74 | "flexDirection",
75 | "@material-ui/system/esm/flexbox.js",
76 | ],
77 | [
78 | "flexWrap",
79 | "flexWrap",
80 | "@material-ui/system/esm/flexbox.js",
81 | ],
82 | [
83 | "justifyContent",
84 | "justifyContent",
85 | "@material-ui/system/esm/flexbox.js",
86 | ],
87 | [
88 | "alignItems",
89 | "alignItems",
90 | "@material-ui/system/esm/flexbox.js",
91 | ],
92 | [
93 | "alignContent",
94 | "alignContent",
95 | "@material-ui/system/esm/flexbox.js",
96 | ],
97 | [
98 | "order",
99 | "order",
100 | "@material-ui/system/esm/flexbox.js",
101 | ],
102 | [
103 | "flex",
104 | "flex",
105 | "@material-ui/system/esm/flexbox.js",
106 | ],
107 | [
108 | "flexGrow",
109 | "flexGrow",
110 | "@material-ui/system/esm/flexbox.js",
111 | ],
112 | [
113 | "flexShrink",
114 | "flexShrink",
115 | "@material-ui/system/esm/flexbox.js",
116 | ],
117 | [
118 | "alignSelf",
119 | "alignSelf",
120 | "@material-ui/system/esm/flexbox.js",
121 | ],
122 | [
123 | "justifyItems",
124 | "justifyItems",
125 | "@material-ui/system/esm/flexbox.js",
126 | ],
127 | [
128 | "justifySelf",
129 | "justifySelf",
130 | "@material-ui/system/esm/flexbox.js",
131 | ],
132 | [
133 | "grid",
134 | "default",
135 | "@material-ui/system/esm/grid.js",
136 | ],
137 | [
138 | "gridGap",
139 | "gridGap",
140 | "@material-ui/system/esm/grid.js",
141 | ],
142 | [
143 | "gridColumnGap",
144 | "gridColumnGap",
145 | "@material-ui/system/esm/grid.js",
146 | ],
147 | [
148 | "gridRowGap",
149 | "gridRowGap",
150 | "@material-ui/system/esm/grid.js",
151 | ],
152 | [
153 | "gridColumn",
154 | "gridColumn",
155 | "@material-ui/system/esm/grid.js",
156 | ],
157 | [
158 | "gridRow",
159 | "gridRow",
160 | "@material-ui/system/esm/grid.js",
161 | ],
162 | [
163 | "gridAutoFlow",
164 | "gridAutoFlow",
165 | "@material-ui/system/esm/grid.js",
166 | ],
167 | [
168 | "gridAutoColumns",
169 | "gridAutoColumns",
170 | "@material-ui/system/esm/grid.js",
171 | ],
172 | [
173 | "gridAutoRows",
174 | "gridAutoRows",
175 | "@material-ui/system/esm/grid.js",
176 | ],
177 | [
178 | "gridTemplateColumns",
179 | "gridTemplateColumns",
180 | "@material-ui/system/esm/grid.js",
181 | ],
182 | [
183 | "gridTemplateRows",
184 | "gridTemplateRows",
185 | "@material-ui/system/esm/grid.js",
186 | ],
187 | [
188 | "gridTemplateAreas",
189 | "gridTemplateAreas",
190 | "@material-ui/system/esm/grid.js",
191 | ],
192 | [
193 | "gridArea",
194 | "gridArea",
195 | "@material-ui/system/esm/grid.js",
196 | ],
197 | [
198 | "palette",
199 | "default",
200 | "@material-ui/system/esm/palette.js",
201 | ],
202 | [
203 | "color",
204 | "color",
205 | "@material-ui/system/esm/palette.js",
206 | ],
207 | [
208 | "bgcolor",
209 | "bgcolor",
210 | "@material-ui/system/esm/palette.js",
211 | ],
212 | [
213 | "positions",
214 | "default",
215 | "@material-ui/system/esm/positions.js",
216 | ],
217 | [
218 | "position",
219 | "position",
220 | "@material-ui/system/esm/positions.js",
221 | ],
222 | [
223 | "zIndex",
224 | "zIndex",
225 | "@material-ui/system/esm/positions.js",
226 | ],
227 | [
228 | "top",
229 | "top",
230 | "@material-ui/system/esm/positions.js",
231 | ],
232 | [
233 | "right",
234 | "right",
235 | "@material-ui/system/esm/positions.js",
236 | ],
237 | [
238 | "bottom",
239 | "bottom",
240 | "@material-ui/system/esm/positions.js",
241 | ],
242 | [
243 | "left",
244 | "left",
245 | "@material-ui/system/esm/positions.js",
246 | ],
247 | [
248 | "shadows",
249 | "default",
250 | "@material-ui/system/esm/shadows.js",
251 | ],
252 | [
253 | "sizing",
254 | "default",
255 | "@material-ui/system/esm/sizing.js",
256 | ],
257 | [
258 | "width",
259 | "width",
260 | "@material-ui/system/esm/sizing.js",
261 | ],
262 | [
263 | "maxWidth",
264 | "maxWidth",
265 | "@material-ui/system/esm/sizing.js",
266 | ],
267 | [
268 | "minWidth",
269 | "minWidth",
270 | "@material-ui/system/esm/sizing.js",
271 | ],
272 | [
273 | "height",
274 | "height",
275 | "@material-ui/system/esm/sizing.js",
276 | ],
277 | [
278 | "maxHeight",
279 | "maxHeight",
280 | "@material-ui/system/esm/sizing.js",
281 | ],
282 | [
283 | "minHeight",
284 | "minHeight",
285 | "@material-ui/system/esm/sizing.js",
286 | ],
287 | [
288 | "sizeWidth",
289 | "sizeWidth",
290 | "@material-ui/system/esm/sizing.js",
291 | ],
292 | [
293 | "sizeHeight",
294 | "sizeHeight",
295 | "@material-ui/system/esm/sizing.js",
296 | ],
297 | [
298 | "boxSizing",
299 | "boxSizing",
300 | "@material-ui/system/esm/sizing.js",
301 | ],
302 | [
303 | "spacing",
304 | "default",
305 | "@material-ui/system/esm/spacing.js",
306 | ],
307 | [
308 | "createUnarySpacing",
309 | "createUnarySpacing",
310 | "@material-ui/system/esm/spacing.js",
311 | ],
312 | [
313 | "style",
314 | "default",
315 | "@material-ui/system/esm/style.js",
316 | ],
317 | [
318 | "styleFunctionSx",
319 | "default",
320 | "@material-ui/system/esm/styleFunctionSx.js",
321 | ],
322 | [
323 | "css",
324 | "css",
325 | "@material-ui/system/esm/styleFunctionSx.js",
326 | ],
327 | [
328 | "typography",
329 | "default",
330 | "@material-ui/system/esm/typography.js",
331 | ],
332 | [
333 | "fontFamily",
334 | "fontFamily",
335 | "@material-ui/system/esm/typography.js",
336 | ],
337 | [
338 | "fontSize",
339 | "fontSize",
340 | "@material-ui/system/esm/typography.js",
341 | ],
342 | [
343 | "fontStyle",
344 | "fontStyle",
345 | "@material-ui/system/esm/typography.js",
346 | ],
347 | [
348 | "fontWeight",
349 | "fontWeight",
350 | "@material-ui/system/esm/typography.js",
351 | ],
352 | [
353 | "letterSpacing",
354 | "letterSpacing",
355 | "@material-ui/system/esm/typography.js",
356 | ],
357 | [
358 | "lineHeight",
359 | "lineHeight",
360 | "@material-ui/system/esm/typography.js",
361 | ],
362 | [
363 | "textAlign",
364 | "textAlign",
365 | "@material-ui/system/esm/typography.js",
366 | ],
367 | ]
368 | `);
369 | });
370 |
--------------------------------------------------------------------------------
/test/@material-ui/system/plugin.spec.js:
--------------------------------------------------------------------------------
1 | import { expect, test } from "vitest";
2 | import { runPlugin } from "../../utils.js";
3 |
4 | test("transformation", () => {
5 | expect(
6 | runPlugin(
7 | 'import { ThemeProvider, ThemeProviderProps } from "@material-ui/system";',
8 | ["@material-ui/system"]
9 | )
10 | ).toMatchInlineSnapshot(
11 | `import { ThemeProvider, ThemeProviderProps } from "@material-ui/system";`
12 | );
13 | });
14 |
--------------------------------------------------------------------------------
/test/@mui/core/exports.spec.js:
--------------------------------------------------------------------------------
1 | import { expect, test } from "vitest";
2 | import { testExports } from "../../utils.js";
3 |
4 | test("exports", () => {
5 | expect(testExports("@mui/core")).toMatchInlineSnapshot(`
6 | [
7 | [
8 | "createFilterOptions",
9 | "createFilterOptions",
10 | "@mui/core/AutocompleteUnstyled/useAutocomplete.js",
11 | ],
12 | [
13 | "useAutocomplete",
14 | "default",
15 | "@mui/core/AutocompleteUnstyled/useAutocomplete.js",
16 | ],
17 | [
18 | "BackdropUnstyled",
19 | "default",
20 | "@mui/core/BackdropUnstyled/BackdropUnstyled.js",
21 | ],
22 | [
23 | "getBackdropUtilityClass",
24 | "getBackdropUtilityClass",
25 | "@mui/core/BackdropUnstyled/backdropUnstyledClasses.js",
26 | ],
27 | [
28 | "backdropUnstyledClasses",
29 | "default",
30 | "@mui/core/BackdropUnstyled/backdropUnstyledClasses.js",
31 | ],
32 | [
33 | "BadgeUnstyled",
34 | "default",
35 | "@mui/core/BadgeUnstyled/BadgeUnstyled.js",
36 | ],
37 | [
38 | "getBadgeUtilityClass",
39 | "getBadgeUtilityClass",
40 | "@mui/core/BadgeUnstyled/badgeUnstyledClasses.js",
41 | ],
42 | [
43 | "badgeUnstyledClasses",
44 | "default",
45 | "@mui/core/BadgeUnstyled/badgeUnstyledClasses.js",
46 | ],
47 | [
48 | "ButtonUnstyled",
49 | "default",
50 | "@mui/core/ButtonUnstyled/ButtonUnstyled.js",
51 | ],
52 | [
53 | "getButtonUnstyledUtilityClass",
54 | "getButtonUnstyledUtilityClass",
55 | "@mui/core/ButtonUnstyled/buttonUnstyledClasses.js",
56 | ],
57 | [
58 | "buttonUnstyledClasses",
59 | "default",
60 | "@mui/core/ButtonUnstyled/buttonUnstyledClasses.js",
61 | ],
62 | [
63 | "useButton",
64 | "default",
65 | "@mui/core/ButtonUnstyled/useButton.js",
66 | ],
67 | [
68 | "unstable_composeClasses",
69 | "default",
70 | "@mui/core/composeClasses/composeClasses.js",
71 | ],
72 | [
73 | "FormControlUnstyledContext",
74 | "default",
75 | "@mui/core/FormControlUnstyled/FormControlContext.js",
76 | ],
77 | [
78 | "FormControlUnstyled",
79 | "default",
80 | "@mui/core/FormControlUnstyled/FormControlUnstyled.js",
81 | ],
82 | [
83 | "formControlUnstyledClasses",
84 | "default",
85 | "@mui/core/FormControlUnstyled/formControlUnstyledClasses.js",
86 | ],
87 | [
88 | "getFormControlUnstyledUtilityClasses",
89 | "getFormControlUnstyledUtilityClasses",
90 | "@mui/core/FormControlUnstyled/formControlUnstyledClasses.js",
91 | ],
92 | [
93 | "useFormControlUnstyled",
94 | "default",
95 | "@mui/core/FormControlUnstyled/useFormControl.js",
96 | ],
97 | [
98 | "unstable_ClassNameGenerator",
99 | "default",
100 | "@mui/core/generateUtilityClass/ClassNameGenerator.js",
101 | ],
102 | [
103 | "generateUtilityClass",
104 | "default",
105 | "@mui/core/generateUtilityClass/generateUtilityClass.js",
106 | ],
107 | [
108 | "generateUtilityClasses",
109 | "default",
110 | "@mui/core/generateUtilityClasses/generateUtilityClasses.js",
111 | ],
112 | [
113 | "InputUnstyled",
114 | "default",
115 | "@mui/core/InputUnstyled/InputUnstyled.js",
116 | ],
117 | [
118 | "inputUnstyledClasses",
119 | "default",
120 | "@mui/core/InputUnstyled/inputUnstyledClasses.js",
121 | ],
122 | [
123 | "getInputUnstyledUtilityClass",
124 | "getInputUnstyledUtilityClass",
125 | "@mui/core/InputUnstyled/inputUnstyledClasses.js",
126 | ],
127 | [
128 | "useInput",
129 | "default",
130 | "@mui/core/InputUnstyled/useInput.js",
131 | ],
132 | [
133 | "ModalManager",
134 | "default",
135 | "@mui/core/ModalUnstyled/ModalManager.js",
136 | ],
137 | [
138 | "ModalUnstyled",
139 | "default",
140 | "@mui/core/ModalUnstyled/ModalUnstyled.js",
141 | ],
142 | [
143 | "getModalUtilityClass",
144 | "getModalUtilityClass",
145 | "@mui/core/ModalUnstyled/modalUnstyledClasses.js",
146 | ],
147 | [
148 | "modalUnstyledClasses",
149 | "default",
150 | "@mui/core/ModalUnstyled/modalUnstyledClasses.js",
151 | ],
152 | [
153 | "NoSsr",
154 | "default",
155 | "@mui/core/NoSsr/NoSsr.js",
156 | ],
157 | [
158 | "Popper",
159 | "default",
160 | "@mui/core/Popper/Popper.js",
161 | ],
162 | [
163 | "Portal",
164 | "default",
165 | "@mui/core/Portal/Portal.js",
166 | ],
167 | [
168 | "SliderUnstyled",
169 | "default",
170 | "@mui/core/SliderUnstyled/SliderUnstyled.js",
171 | ],
172 | [
173 | "sliderUnstyledClasses",
174 | "default",
175 | "@mui/core/SliderUnstyled/sliderUnstyledClasses.js",
176 | ],
177 | [
178 | "getSliderUtilityClass",
179 | "getSliderUtilityClass",
180 | "@mui/core/SliderUnstyled/sliderUnstyledClasses.js",
181 | ],
182 | [
183 | "SliderValueLabelUnstyled",
184 | "default",
185 | "@mui/core/SliderUnstyled/SliderValueLabelUnstyled.js",
186 | ],
187 | [
188 | "SwitchUnstyled",
189 | "default",
190 | "@mui/core/SwitchUnstyled/SwitchUnstyled.js",
191 | ],
192 | [
193 | "switchUnstyledClasses",
194 | "default",
195 | "@mui/core/SwitchUnstyled/switchUnstyledClasses.js",
196 | ],
197 | [
198 | "getSwitchUnstyledUtilityClass",
199 | "getSwitchUnstyledUtilityClass",
200 | "@mui/core/SwitchUnstyled/switchUnstyledClasses.js",
201 | ],
202 | [
203 | "useSwitch",
204 | "default",
205 | "@mui/core/SwitchUnstyled/useSwitch.js",
206 | ],
207 | [
208 | "TextareaAutosize",
209 | "default",
210 | "@mui/core/TextareaAutosize/TextareaAutosize.js",
211 | ],
212 | [
213 | "Unstable_TrapFocus",
214 | "default",
215 | "@mui/core/Unstable_TrapFocus/Unstable_TrapFocus.js",
216 | ],
217 | [
218 | "appendOwnerState",
219 | "default",
220 | "@mui/core/utils/appendOwnerState.js",
221 | ],
222 | [
223 | "extractEventHandlers",
224 | "default",
225 | "@mui/core/utils/extractEventHandlers.js",
226 | ],
227 | [
228 | "isHostComponent",
229 | "default",
230 | "@mui/core/utils/isHostComponent.js",
231 | ],
232 | ]
233 | `);
234 | });
235 |
--------------------------------------------------------------------------------
/test/@mui/core/plugin.spec.js:
--------------------------------------------------------------------------------
1 | import { expect, test } from "vitest";
2 | import { runPlugin } from "../../utils.js";
3 |
4 | test("transformation", () => {
5 | expect(
6 | runPlugin(
7 | 'import { ButtonUnstyled, ButtonUnstyledProps } from "@mui/core";',
8 | ["@mui/core"]
9 | )
10 | ).toMatchInlineSnapshot(`
11 | import ButtonUnstyled from "@mui/core/ButtonUnstyled/ButtonUnstyled.js";
12 | import { ButtonUnstyledProps } from "@mui/core";
13 | `);
14 | });
15 |
--------------------------------------------------------------------------------
/test/@mui/icons-material/plugin.spec.js:
--------------------------------------------------------------------------------
1 | import { expect, test } from "vitest";
2 | import { runPlugin } from "../../utils.js";
3 |
4 | test("transformation", () => {
5 | expect(
6 | runPlugin(
7 | 'import { ChevronLeft as ChevronLeftIcon, ChevronRight as ChevronRightIcon } from "@mui/icons-material";',
8 | ["@mui/icons-material"]
9 | )
10 | ).toMatchInlineSnapshot(`
11 | import ChevronLeftIcon from "@mui/icons-material/esm/ChevronLeft.js";
12 | import ChevronRightIcon from "@mui/icons-material/esm/ChevronRight.js";
13 | `);
14 | });
15 |
--------------------------------------------------------------------------------
/test/@mui/lab/exports.spec.js:
--------------------------------------------------------------------------------
1 | import { expect, test } from "vitest";
2 | import { testExports } from "../../utils.js";
3 |
4 | test("exports", () => {
5 | expect(testExports("@mui/lab")).toMatchInlineSnapshot(`
6 | [
7 | [
8 | "useAutocomplete",
9 | "useAutocomplete",
10 | "@mui/base",
11 | ],
12 | [
13 | "Alert",
14 | "default",
15 | "@mui/lab/Alert/Alert.js",
16 | ],
17 | [
18 | "AlertTitle",
19 | "default",
20 | "@mui/lab/AlertTitle/AlertTitle.js",
21 | ],
22 | [
23 | "Autocomplete",
24 | "default",
25 | "@mui/lab/Autocomplete/Autocomplete.js",
26 | ],
27 | [
28 | "AvatarGroup",
29 | "default",
30 | "@mui/lab/AvatarGroup/AvatarGroup.js",
31 | ],
32 | [
33 | "CalendarPicker",
34 | "default",
35 | "@mui/lab/CalendarPicker/CalendarPicker.js",
36 | ],
37 | [
38 | "calendarPickerClasses",
39 | "calendarPickerClasses",
40 | "@mui/lab/CalendarPicker/CalendarPicker.js",
41 | ],
42 | [
43 | "CalendarPickerSkeleton",
44 | "default",
45 | "@mui/lab/CalendarPickerSkeleton/CalendarPickerSkeleton.js",
46 | ],
47 | [
48 | "calendarPickerSkeletonClasses",
49 | "calendarPickerSkeletonClasses",
50 | "@mui/lab/CalendarPickerSkeleton/CalendarPickerSkeleton.js",
51 | ],
52 | [
53 | "getCalendarPickerSkeletonUtilityClass",
54 | "getCalendarPickerSkeletonUtilityClass",
55 | "@mui/lab/CalendarPickerSkeleton/CalendarPickerSkeleton.js",
56 | ],
57 | [
58 | "ClockPicker",
59 | "default",
60 | "@mui/lab/ClockPicker/ClockPicker.js",
61 | ],
62 | [
63 | "clockPickerClasses",
64 | "clockPickerClasses",
65 | "@mui/lab/ClockPicker/ClockPicker.js",
66 | ],
67 | [
68 | "DatePicker",
69 | "default",
70 | "@mui/lab/DatePicker/DatePicker.js",
71 | ],
72 | [
73 | "DateRangePicker",
74 | "default",
75 | "@mui/lab/DateRangePicker/DateRangePicker.js",
76 | ],
77 | [
78 | "DateRangePickerDay",
79 | "default",
80 | "@mui/lab/DateRangePickerDay/DateRangePickerDay.js",
81 | ],
82 | [
83 | "getDateRangePickerDayUtilityClass",
84 | "getDateRangePickerDayUtilityClass",
85 | "@mui/lab/DateRangePickerDay/DateRangePickerDay.js",
86 | ],
87 | [
88 | "DateTimePicker",
89 | "default",
90 | "@mui/lab/DateTimePicker/DateTimePicker.js",
91 | ],
92 | [
93 | "DesktopDatePicker",
94 | "default",
95 | "@mui/lab/DesktopDatePicker/DesktopDatePicker.js",
96 | ],
97 | [
98 | "DesktopDateRangePicker",
99 | "default",
100 | "@mui/lab/DesktopDateRangePicker/DesktopDateRangePicker.js",
101 | ],
102 | [
103 | "DesktopDateTimePicker",
104 | "default",
105 | "@mui/lab/DesktopDateTimePicker/DesktopDateTimePicker.js",
106 | ],
107 | [
108 | "DesktopTimePicker",
109 | "default",
110 | "@mui/lab/DesktopTimePicker/DesktopTimePicker.js",
111 | ],
112 | [
113 | "LoadingButton",
114 | "default",
115 | "@mui/lab/LoadingButton/LoadingButton.js",
116 | ],
117 | [
118 | "loadingButtonClasses",
119 | "default",
120 | "@mui/lab/LoadingButton/loadingButtonClasses.js",
121 | ],
122 | [
123 | "getLoadingButtonUtilityClass",
124 | "getLoadingButtonUtilityClass",
125 | "@mui/lab/LoadingButton/loadingButtonClasses.js",
126 | ],
127 | [
128 | "LocalizationProvider",
129 | "default",
130 | "@mui/lab/LocalizationProvider/LocalizationProvider.js",
131 | ],
132 | [
133 | "Masonry",
134 | "default",
135 | "@mui/lab/Masonry/Masonry.js",
136 | ],
137 | [
138 | "getMasonryUtilityClass",
139 | "getMasonryUtilityClass",
140 | "@mui/lab/Masonry/masonryClasses.js",
141 | ],
142 | [
143 | "masonryClasses",
144 | "default",
145 | "@mui/lab/Masonry/masonryClasses.js",
146 | ],
147 | [
148 | "MobileDatePicker",
149 | "default",
150 | "@mui/lab/MobileDatePicker/MobileDatePicker.js",
151 | ],
152 | [
153 | "MobileDateRangePicker",
154 | "default",
155 | "@mui/lab/MobileDateRangePicker/MobileDateRangePicker.js",
156 | ],
157 | [
158 | "MobileDateTimePicker",
159 | "default",
160 | "@mui/lab/MobileDateTimePicker/MobileDateTimePicker.js",
161 | ],
162 | [
163 | "MobileTimePicker",
164 | "default",
165 | "@mui/lab/MobileTimePicker/MobileTimePicker.js",
166 | ],
167 | [
168 | "MonthPicker",
169 | "default",
170 | "@mui/lab/MonthPicker/MonthPicker.js",
171 | ],
172 | [
173 | "monthPickerClasses",
174 | "monthPickerClasses",
175 | "@mui/lab/MonthPicker/MonthPicker.js",
176 | ],
177 | [
178 | "getMonthPickerUtilityClass",
179 | "getMonthPickerUtilityClass",
180 | "@mui/lab/MonthPicker/MonthPicker.js",
181 | ],
182 | [
183 | "Pagination",
184 | "default",
185 | "@mui/lab/Pagination/Pagination.js",
186 | ],
187 | [
188 | "PaginationItem",
189 | "default",
190 | "@mui/lab/PaginationItem/PaginationItem.js",
191 | ],
192 | [
193 | "PickersDay",
194 | "default",
195 | "@mui/lab/PickersDay/PickersDay.js",
196 | ],
197 | [
198 | "pickersDayClasses",
199 | "pickersDayClasses",
200 | "@mui/lab/PickersDay/PickersDay.js",
201 | ],
202 | [
203 | "getPickersDayUtilityClass",
204 | "getPickersDayUtilityClass",
205 | "@mui/lab/PickersDay/PickersDay.js",
206 | ],
207 | [
208 | "Rating",
209 | "default",
210 | "@mui/lab/Rating/Rating.js",
211 | ],
212 | [
213 | "Skeleton",
214 | "default",
215 | "@mui/lab/Skeleton/Skeleton.js",
216 | ],
217 | [
218 | "SpeedDial",
219 | "default",
220 | "@mui/lab/SpeedDial/SpeedDial.js",
221 | ],
222 | [
223 | "SpeedDialAction",
224 | "default",
225 | "@mui/lab/SpeedDialAction/SpeedDialAction.js",
226 | ],
227 | [
228 | "SpeedDialIcon",
229 | "default",
230 | "@mui/lab/SpeedDialIcon/SpeedDialIcon.js",
231 | ],
232 | [
233 | "StaticDatePicker",
234 | "default",
235 | "@mui/lab/StaticDatePicker/StaticDatePicker.js",
236 | ],
237 | [
238 | "StaticDateRangePicker",
239 | "default",
240 | "@mui/lab/StaticDateRangePicker/StaticDateRangePicker.js",
241 | ],
242 | [
243 | "StaticDateTimePicker",
244 | "default",
245 | "@mui/lab/StaticDateTimePicker/StaticDateTimePicker.js",
246 | ],
247 | [
248 | "StaticTimePicker",
249 | "default",
250 | "@mui/lab/StaticTimePicker/StaticTimePicker.js",
251 | ],
252 | [
253 | "TabContext",
254 | "default",
255 | "@mui/lab/TabContext/TabContext.js",
256 | ],
257 | [
258 | "useTabContext",
259 | "useTabContext",
260 | "@mui/lab/TabContext/TabContext.js",
261 | ],
262 | [
263 | "getPanelId",
264 | "getPanelId",
265 | "@mui/lab/TabContext/TabContext.js",
266 | ],
267 | [
268 | "getTabId",
269 | "getTabId",
270 | "@mui/lab/TabContext/TabContext.js",
271 | ],
272 | [
273 | "TabList",
274 | "default",
275 | "@mui/lab/TabList/TabList.js",
276 | ],
277 | [
278 | "TabPanel",
279 | "default",
280 | "@mui/lab/TabPanel/TabPanel.js",
281 | ],
282 | [
283 | "tabPanelClasses",
284 | "default",
285 | "@mui/lab/TabPanel/tabPanelClasses.js",
286 | ],
287 | [
288 | "getTabPanelUtilityClass",
289 | "getTabPanelUtilityClass",
290 | "@mui/lab/TabPanel/tabPanelClasses.js",
291 | ],
292 | [
293 | "Timeline",
294 | "default",
295 | "@mui/lab/Timeline/Timeline.js",
296 | ],
297 | [
298 | "timelineClasses",
299 | "default",
300 | "@mui/lab/Timeline/timelineClasses.js",
301 | ],
302 | [
303 | "getTimelineUtilityClass",
304 | "getTimelineUtilityClass",
305 | "@mui/lab/Timeline/timelineClasses.js",
306 | ],
307 | [
308 | "TimelineConnector",
309 | "default",
310 | "@mui/lab/TimelineConnector/TimelineConnector.js",
311 | ],
312 | [
313 | "timelineConnectorClasses",
314 | "default",
315 | "@mui/lab/TimelineConnector/timelineConnectorClasses.js",
316 | ],
317 | [
318 | "getTimelineConnectorUtilityClass",
319 | "getTimelineConnectorUtilityClass",
320 | "@mui/lab/TimelineConnector/timelineConnectorClasses.js",
321 | ],
322 | [
323 | "TimelineContent",
324 | "default",
325 | "@mui/lab/TimelineContent/TimelineContent.js",
326 | ],
327 | [
328 | "timelineContentClasses",
329 | "default",
330 | "@mui/lab/TimelineContent/timelineContentClasses.js",
331 | ],
332 | [
333 | "getTimelineContentUtilityClass",
334 | "getTimelineContentUtilityClass",
335 | "@mui/lab/TimelineContent/timelineContentClasses.js",
336 | ],
337 | [
338 | "TimelineDot",
339 | "default",
340 | "@mui/lab/TimelineDot/TimelineDot.js",
341 | ],
342 | [
343 | "timelineDotClasses",
344 | "default",
345 | "@mui/lab/TimelineDot/timelineDotClasses.js",
346 | ],
347 | [
348 | "getTimelineDotUtilityClass",
349 | "getTimelineDotUtilityClass",
350 | "@mui/lab/TimelineDot/timelineDotClasses.js",
351 | ],
352 | [
353 | "TimelineItem",
354 | "default",
355 | "@mui/lab/TimelineItem/TimelineItem.js",
356 | ],
357 | [
358 | "timelineItemClasses",
359 | "default",
360 | "@mui/lab/TimelineItem/timelineItemClasses.js",
361 | ],
362 | [
363 | "getTimelineItemUtilityClass",
364 | "getTimelineItemUtilityClass",
365 | "@mui/lab/TimelineItem/timelineItemClasses.js",
366 | ],
367 | [
368 | "TimelineOppositeContent",
369 | "default",
370 | "@mui/lab/TimelineOppositeContent/TimelineOppositeContent.js",
371 | ],
372 | [
373 | "timelineOppositeContentClasses",
374 | "default",
375 | "@mui/lab/TimelineOppositeContent/timelineOppositeContentClasses.js",
376 | ],
377 | [
378 | "getTimelineOppositeContentUtilityClass",
379 | "getTimelineOppositeContentUtilityClass",
380 | "@mui/lab/TimelineOppositeContent/timelineOppositeContentClasses.js",
381 | ],
382 | [
383 | "TimelineSeparator",
384 | "default",
385 | "@mui/lab/TimelineSeparator/TimelineSeparator.js",
386 | ],
387 | [
388 | "timelineSeparatorClasses",
389 | "default",
390 | "@mui/lab/TimelineSeparator/timelineSeparatorClasses.js",
391 | ],
392 | [
393 | "getTimelineSeparatorUtilityClass",
394 | "getTimelineSeparatorUtilityClass",
395 | "@mui/lab/TimelineSeparator/timelineSeparatorClasses.js",
396 | ],
397 | [
398 | "TimePicker",
399 | "default",
400 | "@mui/lab/TimePicker/TimePicker.js",
401 | ],
402 | [
403 | "ToggleButton",
404 | "default",
405 | "@mui/lab/ToggleButton/ToggleButton.js",
406 | ],
407 | [
408 | "ToggleButtonGroup",
409 | "default",
410 | "@mui/lab/ToggleButtonGroup/ToggleButtonGroup.js",
411 | ],
412 | [
413 | "TreeItem",
414 | "default",
415 | "@mui/lab/TreeItem/TreeItem.js",
416 | ],
417 | [
418 | "treeItemClasses",
419 | "default",
420 | "@mui/lab/TreeItem/treeItemClasses.js",
421 | ],
422 | [
423 | "getTreeItemUtilityClass",
424 | "getTreeItemUtilityClass",
425 | "@mui/lab/TreeItem/treeItemClasses.js",
426 | ],
427 | [
428 | "useTreeItem",
429 | "default",
430 | "@mui/lab/TreeItem/useTreeItem.js",
431 | ],
432 | [
433 | "TreeView",
434 | "default",
435 | "@mui/lab/TreeView/TreeView.js",
436 | ],
437 | [
438 | "treeViewClasses",
439 | "default",
440 | "@mui/lab/TreeView/treeViewClasses.js",
441 | ],
442 | [
443 | "getTreeViewUtilityClass",
444 | "getTreeViewUtilityClass",
445 | "@mui/lab/TreeView/treeViewClasses.js",
446 | ],
447 | [
448 | "YearPicker",
449 | "default",
450 | "@mui/lab/YearPicker/YearPicker.js",
451 | ],
452 | [
453 | "yearPickerClasses",
454 | "yearPickerClasses",
455 | "@mui/lab/YearPicker/YearPicker.js",
456 | ],
457 | [
458 | "getYearPickerUtilityClass",
459 | "getYearPickerUtilityClass",
460 | "@mui/lab/YearPicker/YearPicker.js",
461 | ],
462 | [
463 | "usePagination",
464 | "default",
465 | "@mui/material/usePagination",
466 | ],
467 | ]
468 | `);
469 | });
470 |
--------------------------------------------------------------------------------
/test/@mui/lab/plugin.spec.js:
--------------------------------------------------------------------------------
1 | import { expect, test } from "vitest";
2 | import { runPlugin } from "../../utils.js";
3 |
4 | test("transformation", () => {
5 | expect(
6 | runPlugin('import { Alert, AlertProps } from "@mui/lab"', ["@mui/lab"])
7 | ).toMatchInlineSnapshot(`
8 | import Alert from "@mui/lab/Alert/Alert.js";
9 | import { AlertProps } from "@mui/lab";
10 | `);
11 | });
12 |
--------------------------------------------------------------------------------
/test/@mui/material/exports.spec.js:
--------------------------------------------------------------------------------
1 | import { expect, test } from "vitest";
2 | import { testExports } from "../../utils.js";
3 |
4 | test("exports", () => {
5 | expect(testExports("@mui/material")).toMatchInlineSnapshot(`
6 | [
7 | [
8 | "ClickAwayListener",
9 | "default",
10 | "@mui/base/ClickAwayListener",
11 | ],
12 | [
13 | "unstable_composeClasses",
14 | "default",
15 | "@mui/base/composeClasses",
16 | ],
17 | [
18 | "Unstable_TrapFocus",
19 | "default",
20 | "@mui/base/FocusTrap",
21 | ],
22 | [
23 | "ModalManager",
24 | "default",
25 | "@mui/base/ModalUnstyled/ModalManager.js",
26 | ],
27 | [
28 | "ariaHidden",
29 | "ariaHidden",
30 | "@mui/base/ModalUnstyled/ModalManager.js",
31 | ],
32 | [
33 | "modalUnstyledClasses",
34 | "default",
35 | "@mui/base/ModalUnstyled/modalUnstyledClasses.js",
36 | ],
37 | [
38 | "getModalUtilityClass",
39 | "getModalUtilityClass",
40 | "@mui/base/ModalUnstyled/modalUnstyledClasses.js",
41 | ],
42 | [
43 | "NoSsr",
44 | "default",
45 | "@mui/base/NoSsr",
46 | ],
47 | [
48 | "Portal",
49 | "default",
50 | "@mui/base/Portal",
51 | ],
52 | [
53 | "TextareaAutosize",
54 | "default",
55 | "@mui/base/TextareaAutosize",
56 | ],
57 | [
58 | "useAutocomplete",
59 | "default",
60 | "@mui/base/useAutocomplete",
61 | ],
62 | [
63 | "Accordion",
64 | "default",
65 | "@mui/material/Accordion/Accordion.js",
66 | ],
67 | [
68 | "accordionClasses",
69 | "default",
70 | "@mui/material/Accordion/accordionClasses.js",
71 | ],
72 | [
73 | "getAccordionUtilityClass",
74 | "getAccordionUtilityClass",
75 | "@mui/material/Accordion/accordionClasses.js",
76 | ],
77 | [
78 | "AccordionActions",
79 | "default",
80 | "@mui/material/AccordionActions/AccordionActions.js",
81 | ],
82 | [
83 | "accordionActionsClasses",
84 | "default",
85 | "@mui/material/AccordionActions/accordionActionsClasses.js",
86 | ],
87 | [
88 | "getAccordionActionsUtilityClass",
89 | "getAccordionActionsUtilityClass",
90 | "@mui/material/AccordionActions/accordionActionsClasses.js",
91 | ],
92 | [
93 | "AccordionDetails",
94 | "default",
95 | "@mui/material/AccordionDetails/AccordionDetails.js",
96 | ],
97 | [
98 | "accordionDetailsClasses",
99 | "default",
100 | "@mui/material/AccordionDetails/accordionDetailsClasses.js",
101 | ],
102 | [
103 | "getAccordionDetailsUtilityClass",
104 | "getAccordionDetailsUtilityClass",
105 | "@mui/material/AccordionDetails/accordionDetailsClasses.js",
106 | ],
107 | [
108 | "AccordionSummary",
109 | "default",
110 | "@mui/material/AccordionSummary/AccordionSummary.js",
111 | ],
112 | [
113 | "accordionSummaryClasses",
114 | "default",
115 | "@mui/material/AccordionSummary/accordionSummaryClasses.js",
116 | ],
117 | [
118 | "getAccordionSummaryUtilityClass",
119 | "getAccordionSummaryUtilityClass",
120 | "@mui/material/AccordionSummary/accordionSummaryClasses.js",
121 | ],
122 | [
123 | "Alert",
124 | "default",
125 | "@mui/material/Alert/Alert.js",
126 | ],
127 | [
128 | "alertClasses",
129 | "default",
130 | "@mui/material/Alert/alertClasses.js",
131 | ],
132 | [
133 | "getAlertUtilityClass",
134 | "getAlertUtilityClass",
135 | "@mui/material/Alert/alertClasses.js",
136 | ],
137 | [
138 | "AlertTitle",
139 | "default",
140 | "@mui/material/AlertTitle/AlertTitle.js",
141 | ],
142 | [
143 | "alertTitleClasses",
144 | "default",
145 | "@mui/material/AlertTitle/alertTitleClasses.js",
146 | ],
147 | [
148 | "getAlertTitleUtilityClass",
149 | "getAlertTitleUtilityClass",
150 | "@mui/material/AlertTitle/alertTitleClasses.js",
151 | ],
152 | [
153 | "AppBar",
154 | "default",
155 | "@mui/material/AppBar/AppBar.js",
156 | ],
157 | [
158 | "appBarClasses",
159 | "default",
160 | "@mui/material/AppBar/appBarClasses.js",
161 | ],
162 | [
163 | "getAppBarUtilityClass",
164 | "getAppBarUtilityClass",
165 | "@mui/material/AppBar/appBarClasses.js",
166 | ],
167 | [
168 | "Autocomplete",
169 | "default",
170 | "@mui/material/Autocomplete/Autocomplete.js",
171 | ],
172 | [
173 | "createFilterOptions",
174 | "createFilterOptions",
175 | "@mui/material/Autocomplete/Autocomplete.js",
176 | ],
177 | [
178 | "autocompleteClasses",
179 | "default",
180 | "@mui/material/Autocomplete/autocompleteClasses.js",
181 | ],
182 | [
183 | "getAutocompleteUtilityClass",
184 | "getAutocompleteUtilityClass",
185 | "@mui/material/Autocomplete/autocompleteClasses.js",
186 | ],
187 | [
188 | "Avatar",
189 | "default",
190 | "@mui/material/Avatar/Avatar.js",
191 | ],
192 | [
193 | "avatarClasses",
194 | "default",
195 | "@mui/material/Avatar/avatarClasses.js",
196 | ],
197 | [
198 | "getAvatarUtilityClass",
199 | "getAvatarUtilityClass",
200 | "@mui/material/Avatar/avatarClasses.js",
201 | ],
202 | [
203 | "AvatarGroup",
204 | "default",
205 | "@mui/material/AvatarGroup/AvatarGroup.js",
206 | ],
207 | [
208 | "avatarGroupClasses",
209 | "default",
210 | "@mui/material/AvatarGroup/avatarGroupClasses.js",
211 | ],
212 | [
213 | "getAvatarGroupUtilityClass",
214 | "getAvatarGroupUtilityClass",
215 | "@mui/material/AvatarGroup/avatarGroupClasses.js",
216 | ],
217 | [
218 | "Backdrop",
219 | "default",
220 | "@mui/material/Backdrop/Backdrop.js",
221 | ],
222 | [
223 | "backdropClasses",
224 | "default",
225 | "@mui/material/Backdrop/backdropClasses.js",
226 | ],
227 | [
228 | "getBackdropUtilityClass",
229 | "getBackdropUtilityClass",
230 | "@mui/material/Backdrop/backdropClasses.js",
231 | ],
232 | [
233 | "Badge",
234 | "default",
235 | "@mui/material/Badge/Badge.js",
236 | ],
237 | [
238 | "badgeClasses",
239 | "default",
240 | "@mui/material/Badge/badgeClasses.js",
241 | ],
242 | [
243 | "getBadgeUtilityClass",
244 | "getBadgeUtilityClass",
245 | "@mui/material/Badge/badgeClasses.js",
246 | ],
247 | [
248 | "BottomNavigation",
249 | "default",
250 | "@mui/material/BottomNavigation/BottomNavigation.js",
251 | ],
252 | [
253 | "bottomNavigationClasses",
254 | "default",
255 | "@mui/material/BottomNavigation/bottomNavigationClasses.js",
256 | ],
257 | [
258 | "getBottomNavigationUtilityClass",
259 | "getBottomNavigationUtilityClass",
260 | "@mui/material/BottomNavigation/bottomNavigationClasses.js",
261 | ],
262 | [
263 | "BottomNavigationAction",
264 | "default",
265 | "@mui/material/BottomNavigationAction/BottomNavigationAction.js",
266 | ],
267 | [
268 | "bottomNavigationActionClasses",
269 | "default",
270 | "@mui/material/BottomNavigationAction/bottomNavigationActionClasses.js",
271 | ],
272 | [
273 | "getBottomNavigationActionUtilityClass",
274 | "getBottomNavigationActionUtilityClass",
275 | "@mui/material/BottomNavigationAction/bottomNavigationActionClasses.js",
276 | ],
277 | [
278 | "Box",
279 | "default",
280 | "@mui/material/Box/Box.js",
281 | ],
282 | [
283 | "Breadcrumbs",
284 | "default",
285 | "@mui/material/Breadcrumbs/Breadcrumbs.js",
286 | ],
287 | [
288 | "breadcrumbsClasses",
289 | "default",
290 | "@mui/material/Breadcrumbs/breadcrumbsClasses.js",
291 | ],
292 | [
293 | "getBreadcrumbsUtilityClass",
294 | "getBreadcrumbsUtilityClass",
295 | "@mui/material/Breadcrumbs/breadcrumbsClasses.js",
296 | ],
297 | [
298 | "Button",
299 | "default",
300 | "@mui/material/Button/Button.js",
301 | ],
302 | [
303 | "buttonClasses",
304 | "default",
305 | "@mui/material/Button/buttonClasses.js",
306 | ],
307 | [
308 | "getButtonUtilityClass",
309 | "getButtonUtilityClass",
310 | "@mui/material/Button/buttonClasses.js",
311 | ],
312 | [
313 | "ButtonBase",
314 | "default",
315 | "@mui/material/ButtonBase/ButtonBase.js",
316 | ],
317 | [
318 | "buttonBaseClasses",
319 | "default",
320 | "@mui/material/ButtonBase/buttonBaseClasses.js",
321 | ],
322 | [
323 | "getButtonBaseUtilityClass",
324 | "getButtonBaseUtilityClass",
325 | "@mui/material/ButtonBase/buttonBaseClasses.js",
326 | ],
327 | [
328 | "touchRippleClasses",
329 | "default",
330 | "@mui/material/ButtonBase/touchRippleClasses.js",
331 | ],
332 | [
333 | "getTouchRippleUtilityClass",
334 | "getTouchRippleUtilityClass",
335 | "@mui/material/ButtonBase/touchRippleClasses.js",
336 | ],
337 | [
338 | "ButtonGroup",
339 | "default",
340 | "@mui/material/ButtonGroup/ButtonGroup.js",
341 | ],
342 | [
343 | "buttonGroupClasses",
344 | "default",
345 | "@mui/material/ButtonGroup/buttonGroupClasses.js",
346 | ],
347 | [
348 | "getButtonGroupUtilityClass",
349 | "getButtonGroupUtilityClass",
350 | "@mui/material/ButtonGroup/buttonGroupClasses.js",
351 | ],
352 | [
353 | "Card",
354 | "default",
355 | "@mui/material/Card/Card.js",
356 | ],
357 | [
358 | "cardClasses",
359 | "default",
360 | "@mui/material/Card/cardClasses.js",
361 | ],
362 | [
363 | "getCardUtilityClass",
364 | "getCardUtilityClass",
365 | "@mui/material/Card/cardClasses.js",
366 | ],
367 | [
368 | "CardActionArea",
369 | "default",
370 | "@mui/material/CardActionArea/CardActionArea.js",
371 | ],
372 | [
373 | "cardActionAreaClasses",
374 | "default",
375 | "@mui/material/CardActionArea/cardActionAreaClasses.js",
376 | ],
377 | [
378 | "getCardActionAreaUtilityClass",
379 | "getCardActionAreaUtilityClass",
380 | "@mui/material/CardActionArea/cardActionAreaClasses.js",
381 | ],
382 | [
383 | "CardActions",
384 | "default",
385 | "@mui/material/CardActions/CardActions.js",
386 | ],
387 | [
388 | "cardActionsClasses",
389 | "default",
390 | "@mui/material/CardActions/cardActionsClasses.js",
391 | ],
392 | [
393 | "getCardActionsUtilityClass",
394 | "getCardActionsUtilityClass",
395 | "@mui/material/CardActions/cardActionsClasses.js",
396 | ],
397 | [
398 | "CardContent",
399 | "default",
400 | "@mui/material/CardContent/CardContent.js",
401 | ],
402 | [
403 | "cardContentClasses",
404 | "default",
405 | "@mui/material/CardContent/cardContentClasses.js",
406 | ],
407 | [
408 | "getCardContentUtilityClass",
409 | "getCardContentUtilityClass",
410 | "@mui/material/CardContent/cardContentClasses.js",
411 | ],
412 | [
413 | "CardHeader",
414 | "default",
415 | "@mui/material/CardHeader/CardHeader.js",
416 | ],
417 | [
418 | "cardHeaderClasses",
419 | "default",
420 | "@mui/material/CardHeader/cardHeaderClasses.js",
421 | ],
422 | [
423 | "getCardHeaderUtilityClass",
424 | "getCardHeaderUtilityClass",
425 | "@mui/material/CardHeader/cardHeaderClasses.js",
426 | ],
427 | [
428 | "CardMedia",
429 | "default",
430 | "@mui/material/CardMedia/CardMedia.js",
431 | ],
432 | [
433 | "cardMediaClasses",
434 | "default",
435 | "@mui/material/CardMedia/cardMediaClasses.js",
436 | ],
437 | [
438 | "getCardMediaUtilityClass",
439 | "getCardMediaUtilityClass",
440 | "@mui/material/CardMedia/cardMediaClasses.js",
441 | ],
442 | [
443 | "Checkbox",
444 | "default",
445 | "@mui/material/Checkbox/Checkbox.js",
446 | ],
447 | [
448 | "checkboxClasses",
449 | "default",
450 | "@mui/material/Checkbox/checkboxClasses.js",
451 | ],
452 | [
453 | "getCheckboxUtilityClass",
454 | "getCheckboxUtilityClass",
455 | "@mui/material/Checkbox/checkboxClasses.js",
456 | ],
457 | [
458 | "Chip",
459 | "default",
460 | "@mui/material/Chip/Chip.js",
461 | ],
462 | [
463 | "chipClasses",
464 | "default",
465 | "@mui/material/Chip/chipClasses.js",
466 | ],
467 | [
468 | "getChipUtilityClass",
469 | "getChipUtilityClass",
470 | "@mui/material/Chip/chipClasses.js",
471 | ],
472 | [
473 | "CircularProgress",
474 | "default",
475 | "@mui/material/CircularProgress/CircularProgress.js",
476 | ],
477 | [
478 | "circularProgressClasses",
479 | "default",
480 | "@mui/material/CircularProgress/circularProgressClasses.js",
481 | ],
482 | [
483 | "getCircularProgressUtilityClass",
484 | "getCircularProgressUtilityClass",
485 | "@mui/material/CircularProgress/circularProgressClasses.js",
486 | ],
487 | [
488 | "Collapse",
489 | "default",
490 | "@mui/material/Collapse/Collapse.js",
491 | ],
492 | [
493 | "collapseClasses",
494 | "default",
495 | "@mui/material/Collapse/collapseClasses.js",
496 | ],
497 | [
498 | "getCollapseUtilityClass",
499 | "getCollapseUtilityClass",
500 | "@mui/material/Collapse/collapseClasses.js",
501 | ],
502 | [
503 | "colors",
504 | "*",
505 | "@mui/material/colors/index.js",
506 | ],
507 | [
508 | "Container",
509 | "default",
510 | "@mui/material/Container/Container.js",
511 | ],
512 | [
513 | "containerClasses",
514 | "default",
515 | "@mui/material/Container/containerClasses.js",
516 | ],
517 | [
518 | "getContainerUtilityClass",
519 | "getContainerUtilityClass",
520 | "@mui/material/Container/containerClasses.js",
521 | ],
522 | [
523 | "CssBaseline",
524 | "default",
525 | "@mui/material/CssBaseline/CssBaseline.js",
526 | ],
527 | [
528 | "darkScrollbar",
529 | "default",
530 | "@mui/material/darkScrollbar/index.js",
531 | ],
532 | [
533 | "Dialog",
534 | "default",
535 | "@mui/material/Dialog/Dialog.js",
536 | ],
537 | [
538 | "dialogClasses",
539 | "default",
540 | "@mui/material/Dialog/dialogClasses.js",
541 | ],
542 | [
543 | "getDialogUtilityClass",
544 | "getDialogUtilityClass",
545 | "@mui/material/Dialog/dialogClasses.js",
546 | ],
547 | [
548 | "DialogActions",
549 | "default",
550 | "@mui/material/DialogActions/DialogActions.js",
551 | ],
552 | [
553 | "dialogActionsClasses",
554 | "default",
555 | "@mui/material/DialogActions/dialogActionsClasses.js",
556 | ],
557 | [
558 | "getDialogActionsUtilityClass",
559 | "getDialogActionsUtilityClass",
560 | "@mui/material/DialogActions/dialogActionsClasses.js",
561 | ],
562 | [
563 | "DialogContent",
564 | "default",
565 | "@mui/material/DialogContent/DialogContent.js",
566 | ],
567 | [
568 | "dialogContentClasses",
569 | "default",
570 | "@mui/material/DialogContent/dialogContentClasses.js",
571 | ],
572 | [
573 | "getDialogContentUtilityClass",
574 | "getDialogContentUtilityClass",
575 | "@mui/material/DialogContent/dialogContentClasses.js",
576 | ],
577 | [
578 | "DialogContentText",
579 | "default",
580 | "@mui/material/DialogContentText/DialogContentText.js",
581 | ],
582 | [
583 | "dialogContentTextClasses",
584 | "default",
585 | "@mui/material/DialogContentText/dialogContentTextClasses.js",
586 | ],
587 | [
588 | "getDialogContentTextUtilityClass",
589 | "getDialogContentTextUtilityClass",
590 | "@mui/material/DialogContentText/dialogContentTextClasses.js",
591 | ],
592 | [
593 | "DialogTitle",
594 | "default",
595 | "@mui/material/DialogTitle/DialogTitle.js",
596 | ],
597 | [
598 | "dialogTitleClasses",
599 | "default",
600 | "@mui/material/DialogTitle/dialogTitleClasses.js",
601 | ],
602 | [
603 | "getDialogTitleUtilityClass",
604 | "getDialogTitleUtilityClass",
605 | "@mui/material/DialogTitle/dialogTitleClasses.js",
606 | ],
607 | [
608 | "Divider",
609 | "default",
610 | "@mui/material/Divider/Divider.js",
611 | ],
612 | [
613 | "dividerClasses",
614 | "default",
615 | "@mui/material/Divider/dividerClasses.js",
616 | ],
617 | [
618 | "getDividerUtilityClass",
619 | "getDividerUtilityClass",
620 | "@mui/material/Divider/dividerClasses.js",
621 | ],
622 | [
623 | "Drawer",
624 | "default",
625 | "@mui/material/Drawer/Drawer.js",
626 | ],
627 | [
628 | "drawerClasses",
629 | "default",
630 | "@mui/material/Drawer/drawerClasses.js",
631 | ],
632 | [
633 | "getDrawerUtilityClass",
634 | "getDrawerUtilityClass",
635 | "@mui/material/Drawer/drawerClasses.js",
636 | ],
637 | [
638 | "Fab",
639 | "default",
640 | "@mui/material/Fab/Fab.js",
641 | ],
642 | [
643 | "fabClasses",
644 | "default",
645 | "@mui/material/Fab/fabClasses.js",
646 | ],
647 | [
648 | "getFabUtilityClass",
649 | "getFabUtilityClass",
650 | "@mui/material/Fab/fabClasses.js",
651 | ],
652 | [
653 | "Fade",
654 | "default",
655 | "@mui/material/Fade/Fade.js",
656 | ],
657 | [
658 | "FilledInput",
659 | "default",
660 | "@mui/material/FilledInput/FilledInput.js",
661 | ],
662 | [
663 | "filledInputClasses",
664 | "default",
665 | "@mui/material/FilledInput/filledInputClasses.js",
666 | ],
667 | [
668 | "getFilledInputUtilityClass",
669 | "getFilledInputUtilityClass",
670 | "@mui/material/FilledInput/filledInputClasses.js",
671 | ],
672 | [
673 | "FormControl",
674 | "default",
675 | "@mui/material/FormControl/FormControl.js",
676 | ],
677 | [
678 | "formControlClasses",
679 | "default",
680 | "@mui/material/FormControl/formControlClasses.js",
681 | ],
682 | [
683 | "getFormControlUtilityClasses",
684 | "getFormControlUtilityClasses",
685 | "@mui/material/FormControl/formControlClasses.js",
686 | ],
687 | [
688 | "useFormControl",
689 | "default",
690 | "@mui/material/FormControl/useFormControl.js",
691 | ],
692 | [
693 | "FormControlLabel",
694 | "default",
695 | "@mui/material/FormControlLabel/FormControlLabel.js",
696 | ],
697 | [
698 | "formControlLabelClasses",
699 | "default",
700 | "@mui/material/FormControlLabel/formControlLabelClasses.js",
701 | ],
702 | [
703 | "getFormControlLabelUtilityClasses",
704 | "getFormControlLabelUtilityClasses",
705 | "@mui/material/FormControlLabel/formControlLabelClasses.js",
706 | ],
707 | [
708 | "FormGroup",
709 | "default",
710 | "@mui/material/FormGroup/FormGroup.js",
711 | ],
712 | [
713 | "formGroupClasses",
714 | "default",
715 | "@mui/material/FormGroup/formGroupClasses.js",
716 | ],
717 | [
718 | "getFormGroupUtilityClass",
719 | "getFormGroupUtilityClass",
720 | "@mui/material/FormGroup/formGroupClasses.js",
721 | ],
722 | [
723 | "FormHelperText",
724 | "default",
725 | "@mui/material/FormHelperText/FormHelperText.js",
726 | ],
727 | [
728 | "formHelperTextClasses",
729 | "default",
730 | "@mui/material/FormHelperText/formHelperTextClasses.js",
731 | ],
732 | [
733 | "getFormHelperTextUtilityClasses",
734 | "getFormHelperTextUtilityClasses",
735 | "@mui/material/FormHelperText/formHelperTextClasses.js",
736 | ],
737 | [
738 | "FormLabel",
739 | "default",
740 | "@mui/material/FormLabel/FormLabel.js",
741 | ],
742 | [
743 | "FormLabelRoot",
744 | "FormLabelRoot",
745 | "@mui/material/FormLabel/FormLabel.js",
746 | ],
747 | [
748 | "formLabelClasses",
749 | "default",
750 | "@mui/material/FormLabel/formLabelClasses.js",
751 | ],
752 | [
753 | "getFormLabelUtilityClasses",
754 | "getFormLabelUtilityClasses",
755 | "@mui/material/FormLabel/formLabelClasses.js",
756 | ],
757 | [
758 | "GlobalStyles",
759 | "default",
760 | "@mui/material/GlobalStyles/GlobalStyles.js",
761 | ],
762 | [
763 | "Grid",
764 | "default",
765 | "@mui/material/Grid/Grid.js",
766 | ],
767 | [
768 | "gridClasses",
769 | "default",
770 | "@mui/material/Grid/gridClasses.js",
771 | ],
772 | [
773 | "getGridUtilityClass",
774 | "getGridUtilityClass",
775 | "@mui/material/Grid/gridClasses.js",
776 | ],
777 | [
778 | "Grow",
779 | "default",
780 | "@mui/material/Grow/Grow.js",
781 | ],
782 | [
783 | "Hidden",
784 | "default",
785 | "@mui/material/Hidden/Hidden.js",
786 | ],
787 | [
788 | "Icon",
789 | "default",
790 | "@mui/material/Icon/Icon.js",
791 | ],
792 | [
793 | "iconClasses",
794 | "default",
795 | "@mui/material/Icon/iconClasses.js",
796 | ],
797 | [
798 | "getIconUtilityClass",
799 | "getIconUtilityClass",
800 | "@mui/material/Icon/iconClasses.js",
801 | ],
802 | [
803 | "IconButton",
804 | "default",
805 | "@mui/material/IconButton/IconButton.js",
806 | ],
807 | [
808 | "iconButtonClasses",
809 | "default",
810 | "@mui/material/IconButton/iconButtonClasses.js",
811 | ],
812 | [
813 | "getIconButtonUtilityClass",
814 | "getIconButtonUtilityClass",
815 | "@mui/material/IconButton/iconButtonClasses.js",
816 | ],
817 | [
818 | "ImageList",
819 | "default",
820 | "@mui/material/ImageList/ImageList.js",
821 | ],
822 | [
823 | "getImageListUtilityClass",
824 | "getImageListUtilityClass",
825 | "@mui/material/ImageList/imageListClasses.js",
826 | ],
827 | [
828 | "imageListClasses",
829 | "default",
830 | "@mui/material/ImageList/imageListClasses.js",
831 | ],
832 | [
833 | "ImageListItem",
834 | "default",
835 | "@mui/material/ImageListItem/ImageListItem.js",
836 | ],
837 | [
838 | "getImageListItemUtilityClass",
839 | "getImageListItemUtilityClass",
840 | "@mui/material/ImageListItem/imageListItemClasses.js",
841 | ],
842 | [
843 | "imageListItemClasses",
844 | "default",
845 | "@mui/material/ImageListItem/imageListItemClasses.js",
846 | ],
847 | [
848 | "ImageListItemBar",
849 | "default",
850 | "@mui/material/ImageListItemBar/ImageListItemBar.js",
851 | ],
852 | [
853 | "getImageListItemBarUtilityClass",
854 | "getImageListItemBarUtilityClass",
855 | "@mui/material/ImageListItemBar/imageListItemBarClasses.js",
856 | ],
857 | [
858 | "imageListItemBarClasses",
859 | "default",
860 | "@mui/material/ImageListItemBar/imageListItemBarClasses.js",
861 | ],
862 | [
863 | "Input",
864 | "default",
865 | "@mui/material/Input/Input.js",
866 | ],
867 | [
868 | "inputClasses",
869 | "default",
870 | "@mui/material/Input/inputClasses.js",
871 | ],
872 | [
873 | "getInputUtilityClass",
874 | "getInputUtilityClass",
875 | "@mui/material/Input/inputClasses.js",
876 | ],
877 | [
878 | "InputAdornment",
879 | "default",
880 | "@mui/material/InputAdornment/InputAdornment.js",
881 | ],
882 | [
883 | "inputAdornmentClasses",
884 | "default",
885 | "@mui/material/InputAdornment/inputAdornmentClasses.js",
886 | ],
887 | [
888 | "getInputAdornmentUtilityClass",
889 | "getInputAdornmentUtilityClass",
890 | "@mui/material/InputAdornment/inputAdornmentClasses.js",
891 | ],
892 | [
893 | "InputBase",
894 | "default",
895 | "@mui/material/InputBase/InputBase.js",
896 | ],
897 | [
898 | "inputBaseClasses",
899 | "default",
900 | "@mui/material/InputBase/inputBaseClasses.js",
901 | ],
902 | [
903 | "getInputBaseUtilityClass",
904 | "getInputBaseUtilityClass",
905 | "@mui/material/InputBase/inputBaseClasses.js",
906 | ],
907 | [
908 | "InputLabel",
909 | "default",
910 | "@mui/material/InputLabel/InputLabel.js",
911 | ],
912 | [
913 | "inputLabelClasses",
914 | "default",
915 | "@mui/material/InputLabel/inputLabelClasses.js",
916 | ],
917 | [
918 | "getInputLabelUtilityClasses",
919 | "getInputLabelUtilityClasses",
920 | "@mui/material/InputLabel/inputLabelClasses.js",
921 | ],
922 | [
923 | "LinearProgress",
924 | "default",
925 | "@mui/material/LinearProgress/LinearProgress.js",
926 | ],
927 | [
928 | "linearProgressClasses",
929 | "default",
930 | "@mui/material/LinearProgress/linearProgressClasses.js",
931 | ],
932 | [
933 | "getLinearProgressUtilityClass",
934 | "getLinearProgressUtilityClass",
935 | "@mui/material/LinearProgress/linearProgressClasses.js",
936 | ],
937 | [
938 | "Link",
939 | "default",
940 | "@mui/material/Link/Link.js",
941 | ],
942 | [
943 | "linkClasses",
944 | "default",
945 | "@mui/material/Link/linkClasses.js",
946 | ],
947 | [
948 | "getLinkUtilityClass",
949 | "getLinkUtilityClass",
950 | "@mui/material/Link/linkClasses.js",
951 | ],
952 | [
953 | "List",
954 | "default",
955 | "@mui/material/List/List.js",
956 | ],
957 | [
958 | "listClasses",
959 | "default",
960 | "@mui/material/List/listClasses.js",
961 | ],
962 | [
963 | "getListUtilityClass",
964 | "getListUtilityClass",
965 | "@mui/material/List/listClasses.js",
966 | ],
967 | [
968 | "ListItem",
969 | "default",
970 | "@mui/material/ListItem/ListItem.js",
971 | ],
972 | [
973 | "listItemClasses",
974 | "default",
975 | "@mui/material/ListItem/listItemClasses.js",
976 | ],
977 | [
978 | "getListItemUtilityClass",
979 | "getListItemUtilityClass",
980 | "@mui/material/ListItem/listItemClasses.js",
981 | ],
982 | [
983 | "ListItemAvatar",
984 | "default",
985 | "@mui/material/ListItemAvatar/ListItemAvatar.js",
986 | ],
987 | [
988 | "listItemAvatarClasses",
989 | "default",
990 | "@mui/material/ListItemAvatar/listItemAvatarClasses.js",
991 | ],
992 | [
993 | "getListItemAvatarUtilityClass",
994 | "getListItemAvatarUtilityClass",
995 | "@mui/material/ListItemAvatar/listItemAvatarClasses.js",
996 | ],
997 | [
998 | "ListItemButton",
999 | "default",
1000 | "@mui/material/ListItemButton/ListItemButton.js",
1001 | ],
1002 | [
1003 | "listItemButtonClasses",
1004 | "default",
1005 | "@mui/material/ListItemButton/listItemButtonClasses.js",
1006 | ],
1007 | [
1008 | "getListItemButtonUtilityClass",
1009 | "getListItemButtonUtilityClass",
1010 | "@mui/material/ListItemButton/listItemButtonClasses.js",
1011 | ],
1012 | [
1013 | "ListItemIcon",
1014 | "default",
1015 | "@mui/material/ListItemIcon/ListItemIcon.js",
1016 | ],
1017 | [
1018 | "listItemIconClasses",
1019 | "default",
1020 | "@mui/material/ListItemIcon/listItemIconClasses.js",
1021 | ],
1022 | [
1023 | "getListItemIconUtilityClass",
1024 | "getListItemIconUtilityClass",
1025 | "@mui/material/ListItemIcon/listItemIconClasses.js",
1026 | ],
1027 | [
1028 | "ListItemSecondaryAction",
1029 | "default",
1030 | "@mui/material/ListItemSecondaryAction/ListItemSecondaryAction.js",
1031 | ],
1032 | [
1033 | "listItemSecondaryActionClasses",
1034 | "default",
1035 | "@mui/material/ListItemSecondaryAction/listItemSecondaryActionClasses.js",
1036 | ],
1037 | [
1038 | "getListItemSecondaryActionClassesUtilityClass",
1039 | "getListItemSecondaryActionClassesUtilityClass",
1040 | "@mui/material/ListItemSecondaryAction/listItemSecondaryActionClasses.js",
1041 | ],
1042 | [
1043 | "ListItemText",
1044 | "default",
1045 | "@mui/material/ListItemText/ListItemText.js",
1046 | ],
1047 | [
1048 | "listItemTextClasses",
1049 | "default",
1050 | "@mui/material/ListItemText/listItemTextClasses.js",
1051 | ],
1052 | [
1053 | "getListItemTextUtilityClass",
1054 | "getListItemTextUtilityClass",
1055 | "@mui/material/ListItemText/listItemTextClasses.js",
1056 | ],
1057 | [
1058 | "ListSubheader",
1059 | "default",
1060 | "@mui/material/ListSubheader/ListSubheader.js",
1061 | ],
1062 | [
1063 | "listSubheaderClasses",
1064 | "default",
1065 | "@mui/material/ListSubheader/listSubheaderClasses.js",
1066 | ],
1067 | [
1068 | "getListSubheaderUtilityClass",
1069 | "getListSubheaderUtilityClass",
1070 | "@mui/material/ListSubheader/listSubheaderClasses.js",
1071 | ],
1072 | [
1073 | "Menu",
1074 | "default",
1075 | "@mui/material/Menu/Menu.js",
1076 | ],
1077 | [
1078 | "menuClasses",
1079 | "default",
1080 | "@mui/material/Menu/menuClasses.js",
1081 | ],
1082 | [
1083 | "getMenuUtilityClass",
1084 | "getMenuUtilityClass",
1085 | "@mui/material/Menu/menuClasses.js",
1086 | ],
1087 | [
1088 | "MenuItem",
1089 | "default",
1090 | "@mui/material/MenuItem/MenuItem.js",
1091 | ],
1092 | [
1093 | "getMenuItemUtilityClass",
1094 | "getMenuItemUtilityClass",
1095 | "@mui/material/MenuItem/menuItemClasses.js",
1096 | ],
1097 | [
1098 | "menuItemClasses",
1099 | "default",
1100 | "@mui/material/MenuItem/menuItemClasses.js",
1101 | ],
1102 | [
1103 | "MenuList",
1104 | "default",
1105 | "@mui/material/MenuList/MenuList.js",
1106 | ],
1107 | [
1108 | "MobileStepper",
1109 | "default",
1110 | "@mui/material/MobileStepper/MobileStepper.js",
1111 | ],
1112 | [
1113 | "mobileStepperClasses",
1114 | "default",
1115 | "@mui/material/MobileStepper/mobileStepperClasses.js",
1116 | ],
1117 | [
1118 | "getMobileStepperUtilityClass",
1119 | "getMobileStepperUtilityClass",
1120 | "@mui/material/MobileStepper/mobileStepperClasses.js",
1121 | ],
1122 | [
1123 | "Modal",
1124 | "default",
1125 | "@mui/material/Modal/Modal.js",
1126 | ],
1127 | [
1128 | "modalClasses",
1129 | "modalClasses",
1130 | "@mui/material/Modal/Modal.js",
1131 | ],
1132 | [
1133 | "NativeSelect",
1134 | "default",
1135 | "@mui/material/NativeSelect/NativeSelect.js",
1136 | ],
1137 | [
1138 | "nativeSelectClasses",
1139 | "default",
1140 | "@mui/material/NativeSelect/nativeSelectClasses.js",
1141 | ],
1142 | [
1143 | "getNativeSelectUtilityClasses",
1144 | "getNativeSelectUtilityClasses",
1145 | "@mui/material/NativeSelect/nativeSelectClasses.js",
1146 | ],
1147 | [
1148 | "OutlinedInput",
1149 | "default",
1150 | "@mui/material/OutlinedInput/OutlinedInput.js",
1151 | ],
1152 | [
1153 | "outlinedInputClasses",
1154 | "default",
1155 | "@mui/material/OutlinedInput/outlinedInputClasses.js",
1156 | ],
1157 | [
1158 | "getOutlinedInputUtilityClass",
1159 | "getOutlinedInputUtilityClass",
1160 | "@mui/material/OutlinedInput/outlinedInputClasses.js",
1161 | ],
1162 | [
1163 | "Pagination",
1164 | "default",
1165 | "@mui/material/Pagination/Pagination.js",
1166 | ],
1167 | [
1168 | "paginationClasses",
1169 | "default",
1170 | "@mui/material/Pagination/paginationClasses.js",
1171 | ],
1172 | [
1173 | "getPaginationUtilityClass",
1174 | "getPaginationUtilityClass",
1175 | "@mui/material/Pagination/paginationClasses.js",
1176 | ],
1177 | [
1178 | "PaginationItem",
1179 | "default",
1180 | "@mui/material/PaginationItem/PaginationItem.js",
1181 | ],
1182 | [
1183 | "paginationItemClasses",
1184 | "default",
1185 | "@mui/material/PaginationItem/paginationItemClasses.js",
1186 | ],
1187 | [
1188 | "getPaginationItemUtilityClass",
1189 | "getPaginationItemUtilityClass",
1190 | "@mui/material/PaginationItem/paginationItemClasses.js",
1191 | ],
1192 | [
1193 | "Paper",
1194 | "default",
1195 | "@mui/material/Paper/Paper.js",
1196 | ],
1197 | [
1198 | "paperClasses",
1199 | "default",
1200 | "@mui/material/Paper/paperClasses.js",
1201 | ],
1202 | [
1203 | "getPaperUtilityClass",
1204 | "getPaperUtilityClass",
1205 | "@mui/material/Paper/paperClasses.js",
1206 | ],
1207 | [
1208 | "Popover",
1209 | "default",
1210 | "@mui/material/Popover/Popover.js",
1211 | ],
1212 | [
1213 | "getOffsetTop",
1214 | "getOffsetTop",
1215 | "@mui/material/Popover/Popover.js",
1216 | ],
1217 | [
1218 | "getOffsetLeft",
1219 | "getOffsetLeft",
1220 | "@mui/material/Popover/Popover.js",
1221 | ],
1222 | [
1223 | "popoverClasses",
1224 | "default",
1225 | "@mui/material/Popover/popoverClasses.js",
1226 | ],
1227 | [
1228 | "getPopoverUtilityClass",
1229 | "getPopoverUtilityClass",
1230 | "@mui/material/Popover/popoverClasses.js",
1231 | ],
1232 | [
1233 | "Popper",
1234 | "default",
1235 | "@mui/material/Popper/Popper.js",
1236 | ],
1237 | [
1238 | "Radio",
1239 | "default",
1240 | "@mui/material/Radio/Radio.js",
1241 | ],
1242 | [
1243 | "radioClasses",
1244 | "default",
1245 | "@mui/material/Radio/radioClasses.js",
1246 | ],
1247 | [
1248 | "getRadioUtilityClass",
1249 | "getRadioUtilityClass",
1250 | "@mui/material/Radio/radioClasses.js",
1251 | ],
1252 | [
1253 | "RadioGroup",
1254 | "default",
1255 | "@mui/material/RadioGroup/RadioGroup.js",
1256 | ],
1257 | [
1258 | "useRadioGroup",
1259 | "default",
1260 | "@mui/material/RadioGroup/useRadioGroup.js",
1261 | ],
1262 | [
1263 | "Rating",
1264 | "default",
1265 | "@mui/material/Rating/Rating.js",
1266 | ],
1267 | [
1268 | "ratingClasses",
1269 | "default",
1270 | "@mui/material/Rating/ratingClasses.js",
1271 | ],
1272 | [
1273 | "getRatingUtilityClass",
1274 | "getRatingUtilityClass",
1275 | "@mui/material/Rating/ratingClasses.js",
1276 | ],
1277 | [
1278 | "ScopedCssBaseline",
1279 | "default",
1280 | "@mui/material/ScopedCssBaseline/ScopedCssBaseline.js",
1281 | ],
1282 | [
1283 | "scopedCssBaselineClasses",
1284 | "default",
1285 | "@mui/material/ScopedCssBaseline/scopedCssBaselineClasses.js",
1286 | ],
1287 | [
1288 | "getScopedCssBaselineUtilityClass",
1289 | "getScopedCssBaselineUtilityClass",
1290 | "@mui/material/ScopedCssBaseline/scopedCssBaselineClasses.js",
1291 | ],
1292 | [
1293 | "Select",
1294 | "default",
1295 | "@mui/material/Select/Select.js",
1296 | ],
1297 | [
1298 | "selectClasses",
1299 | "default",
1300 | "@mui/material/Select/selectClasses.js",
1301 | ],
1302 | [
1303 | "getSelectUtilityClasses",
1304 | "getSelectUtilityClasses",
1305 | "@mui/material/Select/selectClasses.js",
1306 | ],
1307 | [
1308 | "Skeleton",
1309 | "default",
1310 | "@mui/material/Skeleton/Skeleton.js",
1311 | ],
1312 | [
1313 | "getSkeletonUtilityClass",
1314 | "getSkeletonUtilityClass",
1315 | "@mui/material/Skeleton/skeletonClasses.js",
1316 | ],
1317 | [
1318 | "skeletonClasses",
1319 | "default",
1320 | "@mui/material/Skeleton/skeletonClasses.js",
1321 | ],
1322 | [
1323 | "Slide",
1324 | "default",
1325 | "@mui/material/Slide/Slide.js",
1326 | ],
1327 | [
1328 | "Slider",
1329 | "default",
1330 | "@mui/material/Slider/Slider.js",
1331 | ],
1332 | [
1333 | "SliderRoot",
1334 | "SliderRoot",
1335 | "@mui/material/Slider/Slider.js",
1336 | ],
1337 | [
1338 | "SliderRail",
1339 | "SliderRail",
1340 | "@mui/material/Slider/Slider.js",
1341 | ],
1342 | [
1343 | "SliderTrack",
1344 | "SliderTrack",
1345 | "@mui/material/Slider/Slider.js",
1346 | ],
1347 | [
1348 | "SliderThumb",
1349 | "SliderThumb",
1350 | "@mui/material/Slider/Slider.js",
1351 | ],
1352 | [
1353 | "SliderValueLabel",
1354 | "StyledSliderValueLabel",
1355 | "@mui/material/Slider/Slider.js",
1356 | ],
1357 | [
1358 | "SliderMark",
1359 | "SliderMark",
1360 | "@mui/material/Slider/Slider.js",
1361 | ],
1362 | [
1363 | "SliderMarkLabel",
1364 | "SliderMarkLabel",
1365 | "@mui/material/Slider/Slider.js",
1366 | ],
1367 | [
1368 | "sliderClasses",
1369 | "default",
1370 | "@mui/material/Slider/sliderClasses.js",
1371 | ],
1372 | [
1373 | "getSliderUtilityClass",
1374 | "getSliderUtilityClass",
1375 | "@mui/material/Slider/sliderClasses.js",
1376 | ],
1377 | [
1378 | "Snackbar",
1379 | "default",
1380 | "@mui/material/Snackbar/Snackbar.js",
1381 | ],
1382 | [
1383 | "snackbarClasses",
1384 | "default",
1385 | "@mui/material/Snackbar/snackbarClasses.js",
1386 | ],
1387 | [
1388 | "getSnackbarUtilityClass",
1389 | "getSnackbarUtilityClass",
1390 | "@mui/material/Snackbar/snackbarClasses.js",
1391 | ],
1392 | [
1393 | "SnackbarContent",
1394 | "default",
1395 | "@mui/material/SnackbarContent/SnackbarContent.js",
1396 | ],
1397 | [
1398 | "snackbarContentClasses",
1399 | "default",
1400 | "@mui/material/SnackbarContent/snackbarContentClasses.js",
1401 | ],
1402 | [
1403 | "getSnackbarContentUtilityClass",
1404 | "getSnackbarContentUtilityClass",
1405 | "@mui/material/SnackbarContent/snackbarContentClasses.js",
1406 | ],
1407 | [
1408 | "SpeedDial",
1409 | "default",
1410 | "@mui/material/SpeedDial/SpeedDial.js",
1411 | ],
1412 | [
1413 | "speedDialClasses",
1414 | "default",
1415 | "@mui/material/SpeedDial/speedDialClasses.js",
1416 | ],
1417 | [
1418 | "getSpeedDialUtilityClass",
1419 | "getSpeedDialUtilityClass",
1420 | "@mui/material/SpeedDial/speedDialClasses.js",
1421 | ],
1422 | [
1423 | "SpeedDialAction",
1424 | "default",
1425 | "@mui/material/SpeedDialAction/SpeedDialAction.js",
1426 | ],
1427 | [
1428 | "speedDialActionClasses",
1429 | "default",
1430 | "@mui/material/SpeedDialAction/speedDialActionClasses.js",
1431 | ],
1432 | [
1433 | "getSpeedDialActionUtilityClass",
1434 | "getSpeedDialActionUtilityClass",
1435 | "@mui/material/SpeedDialAction/speedDialActionClasses.js",
1436 | ],
1437 | [
1438 | "SpeedDialIcon",
1439 | "default",
1440 | "@mui/material/SpeedDialIcon/SpeedDialIcon.js",
1441 | ],
1442 | [
1443 | "speedDialIconClasses",
1444 | "default",
1445 | "@mui/material/SpeedDialIcon/speedDialIconClasses.js",
1446 | ],
1447 | [
1448 | "getSpeedDialIconUtilityClass",
1449 | "getSpeedDialIconUtilityClass",
1450 | "@mui/material/SpeedDialIcon/speedDialIconClasses.js",
1451 | ],
1452 | [
1453 | "Stack",
1454 | "default",
1455 | "@mui/material/Stack/Stack.js",
1456 | ],
1457 | [
1458 | "stackClasses",
1459 | "default",
1460 | "@mui/material/Stack/stackClasses.js",
1461 | ],
1462 | [
1463 | "Step",
1464 | "default",
1465 | "@mui/material/Step/Step.js",
1466 | ],
1467 | [
1468 | "stepClasses",
1469 | "default",
1470 | "@mui/material/Step/stepClasses.js",
1471 | ],
1472 | [
1473 | "getStepUtilityClass",
1474 | "getStepUtilityClass",
1475 | "@mui/material/Step/stepClasses.js",
1476 | ],
1477 | [
1478 | "StepContext",
1479 | "default",
1480 | "@mui/material/Step/StepContext.js",
1481 | ],
1482 | [
1483 | "useStepContext",
1484 | "useStepContext",
1485 | "@mui/material/Step/StepContext.js",
1486 | ],
1487 | [
1488 | "StepButton",
1489 | "default",
1490 | "@mui/material/StepButton/StepButton.js",
1491 | ],
1492 | [
1493 | "stepButtonClasses",
1494 | "default",
1495 | "@mui/material/StepButton/stepButtonClasses.js",
1496 | ],
1497 | [
1498 | "getStepButtonUtilityClass",
1499 | "getStepButtonUtilityClass",
1500 | "@mui/material/StepButton/stepButtonClasses.js",
1501 | ],
1502 | [
1503 | "StepConnector",
1504 | "default",
1505 | "@mui/material/StepConnector/StepConnector.js",
1506 | ],
1507 | [
1508 | "stepConnectorClasses",
1509 | "default",
1510 | "@mui/material/StepConnector/stepConnectorClasses.js",
1511 | ],
1512 | [
1513 | "getStepConnectorUtilityClass",
1514 | "getStepConnectorUtilityClass",
1515 | "@mui/material/StepConnector/stepConnectorClasses.js",
1516 | ],
1517 | [
1518 | "StepContent",
1519 | "default",
1520 | "@mui/material/StepContent/StepContent.js",
1521 | ],
1522 | [
1523 | "stepContentClasses",
1524 | "default",
1525 | "@mui/material/StepContent/stepContentClasses.js",
1526 | ],
1527 | [
1528 | "getStepContentUtilityClass",
1529 | "getStepContentUtilityClass",
1530 | "@mui/material/StepContent/stepContentClasses.js",
1531 | ],
1532 | [
1533 | "StepIcon",
1534 | "default",
1535 | "@mui/material/StepIcon/StepIcon.js",
1536 | ],
1537 | [
1538 | "stepIconClasses",
1539 | "default",
1540 | "@mui/material/StepIcon/stepIconClasses.js",
1541 | ],
1542 | [
1543 | "getStepIconUtilityClass",
1544 | "getStepIconUtilityClass",
1545 | "@mui/material/StepIcon/stepIconClasses.js",
1546 | ],
1547 | [
1548 | "StepLabel",
1549 | "default",
1550 | "@mui/material/StepLabel/StepLabel.js",
1551 | ],
1552 | [
1553 | "stepLabelClasses",
1554 | "default",
1555 | "@mui/material/StepLabel/stepLabelClasses.js",
1556 | ],
1557 | [
1558 | "getStepLabelUtilityClass",
1559 | "getStepLabelUtilityClass",
1560 | "@mui/material/StepLabel/stepLabelClasses.js",
1561 | ],
1562 | [
1563 | "Stepper",
1564 | "default",
1565 | "@mui/material/Stepper/Stepper.js",
1566 | ],
1567 | [
1568 | "stepperClasses",
1569 | "default",
1570 | "@mui/material/Stepper/stepperClasses.js",
1571 | ],
1572 | [
1573 | "getStepperUtilityClass",
1574 | "getStepperUtilityClass",
1575 | "@mui/material/Stepper/stepperClasses.js",
1576 | ],
1577 | [
1578 | "StepperContext",
1579 | "default",
1580 | "@mui/material/Stepper/StepperContext.js",
1581 | ],
1582 | [
1583 | "useStepperContext",
1584 | "useStepperContext",
1585 | "@mui/material/Stepper/StepperContext.js",
1586 | ],
1587 | [
1588 | "adaptV4Theme",
1589 | "default",
1590 | "@mui/material/styles/adaptV4Theme.js",
1591 | ],
1592 | [
1593 | "unstable_createMuiStrictModeTheme",
1594 | "default",
1595 | "@mui/material/styles/createMuiStrictModeTheme.js",
1596 | ],
1597 | [
1598 | "createStyles",
1599 | "default",
1600 | "@mui/material/styles/createStyles.js",
1601 | ],
1602 | [
1603 | "createMuiTheme",
1604 | "createMuiTheme",
1605 | "@mui/material/styles/createTheme.js",
1606 | ],
1607 | [
1608 | "createTheme",
1609 | "default",
1610 | "@mui/material/styles/createTheme.js",
1611 | ],
1612 | [
1613 | "easing",
1614 | "easing",
1615 | "@mui/material/styles/createTransitions.js",
1616 | ],
1617 | [
1618 | "duration",
1619 | "duration",
1620 | "@mui/material/styles/createTransitions.js",
1621 | ],
1622 | [
1623 | "private_createTypography",
1624 | "default",
1625 | "@mui/material/styles/createTypography.js",
1626 | ],
1627 | [
1628 | "unstable_getUnit",
1629 | "getUnit",
1630 | "@mui/material/styles/cssUtils.js",
1631 | ],
1632 | [
1633 | "unstable_toUnitless",
1634 | "toUnitless",
1635 | "@mui/material/styles/cssUtils.js",
1636 | ],
1637 | [
1638 | "useColorScheme",
1639 | "useColorScheme",
1640 | "@mui/material/styles/CssVarsProvider.js",
1641 | ],
1642 | [
1643 | "getInitColorSchemeScript",
1644 | "getInitColorSchemeScript",
1645 | "@mui/material/styles/CssVarsProvider.js",
1646 | ],
1647 | [
1648 | "shouldSkipGeneratingVar",
1649 | "shouldSkipGeneratingVar",
1650 | "@mui/material/styles/CssVarsProvider.js",
1651 | ],
1652 | [
1653 | "Experimental_CssVarsProvider",
1654 | "CssVarsProvider",
1655 | "@mui/material/styles/CssVarsProvider.js",
1656 | ],
1657 | [
1658 | "private_excludeVariablesFromRoot",
1659 | "default",
1660 | "@mui/material/styles/excludeVariablesFromRoot.js",
1661 | ],
1662 | [
1663 | "experimental_extendTheme",
1664 | "default",
1665 | "@mui/material/styles/experimental_extendTheme.js",
1666 | ],
1667 | [
1668 | "getOverlayAlpha",
1669 | "default",
1670 | "@mui/material/styles/getOverlayAlpha.js",
1671 | ],
1672 | [
1673 | "experimental_sx",
1674 | "experimental_sx",
1675 | "@mui/material/styles/index.js",
1676 | ],
1677 | [
1678 | "makeStyles",
1679 | "default",
1680 | "@mui/material/styles/makeStyles.js",
1681 | ],
1682 | [
1683 | "responsiveFontSizes",
1684 | "default",
1685 | "@mui/material/styles/responsiveFontSizes.js",
1686 | ],
1687 | [
1688 | "styled",
1689 | "default",
1690 | "@mui/material/styles/styled.js",
1691 | ],
1692 | [
1693 | "experimentalStyled",
1694 | "default",
1695 | "@mui/material/styles/styled.js",
1696 | ],
1697 | [
1698 | "useTheme",
1699 | "default",
1700 | "@mui/material/styles/useTheme.js",
1701 | ],
1702 | [
1703 | "useThemeProps",
1704 | "default",
1705 | "@mui/material/styles/useThemeProps.js",
1706 | ],
1707 | [
1708 | "withStyles",
1709 | "default",
1710 | "@mui/material/styles/withStyles.js",
1711 | ],
1712 | [
1713 | "withTheme",
1714 | "default",
1715 | "@mui/material/styles/withTheme.js",
1716 | ],
1717 | [
1718 | "SvgIcon",
1719 | "default",
1720 | "@mui/material/SvgIcon/SvgIcon.js",
1721 | ],
1722 | [
1723 | "svgIconClasses",
1724 | "default",
1725 | "@mui/material/SvgIcon/svgIconClasses.js",
1726 | ],
1727 | [
1728 | "getSvgIconUtilityClass",
1729 | "getSvgIconUtilityClass",
1730 | "@mui/material/SvgIcon/svgIconClasses.js",
1731 | ],
1732 | [
1733 | "SwipeableDrawer",
1734 | "default",
1735 | "@mui/material/SwipeableDrawer/SwipeableDrawer.js",
1736 | ],
1737 | [
1738 | "Switch",
1739 | "default",
1740 | "@mui/material/Switch/Switch.js",
1741 | ],
1742 | [
1743 | "switchClasses",
1744 | "default",
1745 | "@mui/material/Switch/switchClasses.js",
1746 | ],
1747 | [
1748 | "getSwitchUtilityClass",
1749 | "getSwitchUtilityClass",
1750 | "@mui/material/Switch/switchClasses.js",
1751 | ],
1752 | [
1753 | "Tab",
1754 | "default",
1755 | "@mui/material/Tab/Tab.js",
1756 | ],
1757 | [
1758 | "tabClasses",
1759 | "default",
1760 | "@mui/material/Tab/tabClasses.js",
1761 | ],
1762 | [
1763 | "getTabUtilityClass",
1764 | "getTabUtilityClass",
1765 | "@mui/material/Tab/tabClasses.js",
1766 | ],
1767 | [
1768 | "Table",
1769 | "default",
1770 | "@mui/material/Table/Table.js",
1771 | ],
1772 | [
1773 | "tableClasses",
1774 | "default",
1775 | "@mui/material/Table/tableClasses.js",
1776 | ],
1777 | [
1778 | "getTableUtilityClass",
1779 | "getTableUtilityClass",
1780 | "@mui/material/Table/tableClasses.js",
1781 | ],
1782 | [
1783 | "TableBody",
1784 | "default",
1785 | "@mui/material/TableBody/TableBody.js",
1786 | ],
1787 | [
1788 | "tableBodyClasses",
1789 | "default",
1790 | "@mui/material/TableBody/tableBodyClasses.js",
1791 | ],
1792 | [
1793 | "getTableBodyUtilityClass",
1794 | "getTableBodyUtilityClass",
1795 | "@mui/material/TableBody/tableBodyClasses.js",
1796 | ],
1797 | [
1798 | "TableCell",
1799 | "default",
1800 | "@mui/material/TableCell/TableCell.js",
1801 | ],
1802 | [
1803 | "tableCellClasses",
1804 | "default",
1805 | "@mui/material/TableCell/tableCellClasses.js",
1806 | ],
1807 | [
1808 | "getTableCellUtilityClass",
1809 | "getTableCellUtilityClass",
1810 | "@mui/material/TableCell/tableCellClasses.js",
1811 | ],
1812 | [
1813 | "TableContainer",
1814 | "default",
1815 | "@mui/material/TableContainer/TableContainer.js",
1816 | ],
1817 | [
1818 | "tableContainerClasses",
1819 | "default",
1820 | "@mui/material/TableContainer/tableContainerClasses.js",
1821 | ],
1822 | [
1823 | "getTableContainerUtilityClass",
1824 | "getTableContainerUtilityClass",
1825 | "@mui/material/TableContainer/tableContainerClasses.js",
1826 | ],
1827 | [
1828 | "TableFooter",
1829 | "default",
1830 | "@mui/material/TableFooter/TableFooter.js",
1831 | ],
1832 | [
1833 | "tableFooterClasses",
1834 | "default",
1835 | "@mui/material/TableFooter/tableFooterClasses.js",
1836 | ],
1837 | [
1838 | "getTableFooterUtilityClass",
1839 | "getTableFooterUtilityClass",
1840 | "@mui/material/TableFooter/tableFooterClasses.js",
1841 | ],
1842 | [
1843 | "TableHead",
1844 | "default",
1845 | "@mui/material/TableHead/TableHead.js",
1846 | ],
1847 | [
1848 | "tableHeadClasses",
1849 | "default",
1850 | "@mui/material/TableHead/tableHeadClasses.js",
1851 | ],
1852 | [
1853 | "getTableHeadUtilityClass",
1854 | "getTableHeadUtilityClass",
1855 | "@mui/material/TableHead/tableHeadClasses.js",
1856 | ],
1857 | [
1858 | "TablePagination",
1859 | "default",
1860 | "@mui/material/TablePagination/TablePagination.js",
1861 | ],
1862 | [
1863 | "tablePaginationClasses",
1864 | "default",
1865 | "@mui/material/TablePagination/tablePaginationClasses.js",
1866 | ],
1867 | [
1868 | "getTablePaginationUtilityClass",
1869 | "getTablePaginationUtilityClass",
1870 | "@mui/material/TablePagination/tablePaginationClasses.js",
1871 | ],
1872 | [
1873 | "TableRow",
1874 | "default",
1875 | "@mui/material/TableRow/TableRow.js",
1876 | ],
1877 | [
1878 | "tableRowClasses",
1879 | "default",
1880 | "@mui/material/TableRow/tableRowClasses.js",
1881 | ],
1882 | [
1883 | "getTableRowUtilityClass",
1884 | "getTableRowUtilityClass",
1885 | "@mui/material/TableRow/tableRowClasses.js",
1886 | ],
1887 | [
1888 | "TableSortLabel",
1889 | "default",
1890 | "@mui/material/TableSortLabel/TableSortLabel.js",
1891 | ],
1892 | [
1893 | "tableSortLabelClasses",
1894 | "default",
1895 | "@mui/material/TableSortLabel/tableSortLabelClasses.js",
1896 | ],
1897 | [
1898 | "getTableSortLabelUtilityClass",
1899 | "getTableSortLabelUtilityClass",
1900 | "@mui/material/TableSortLabel/tableSortLabelClasses.js",
1901 | ],
1902 | [
1903 | "Tabs",
1904 | "default",
1905 | "@mui/material/Tabs/Tabs.js",
1906 | ],
1907 | [
1908 | "tabsClasses",
1909 | "default",
1910 | "@mui/material/Tabs/tabsClasses.js",
1911 | ],
1912 | [
1913 | "getTabsUtilityClass",
1914 | "getTabsUtilityClass",
1915 | "@mui/material/Tabs/tabsClasses.js",
1916 | ],
1917 | [
1918 | "TabScrollButton",
1919 | "default",
1920 | "@mui/material/TabScrollButton/TabScrollButton.js",
1921 | ],
1922 | [
1923 | "tabScrollButtonClasses",
1924 | "default",
1925 | "@mui/material/TabScrollButton/tabScrollButtonClasses.js",
1926 | ],
1927 | [
1928 | "getTabScrollButtonUtilityClass",
1929 | "getTabScrollButtonUtilityClass",
1930 | "@mui/material/TabScrollButton/tabScrollButtonClasses.js",
1931 | ],
1932 | [
1933 | "TextField",
1934 | "default",
1935 | "@mui/material/TextField/TextField.js",
1936 | ],
1937 | [
1938 | "textFieldClasses",
1939 | "default",
1940 | "@mui/material/TextField/textFieldClasses.js",
1941 | ],
1942 | [
1943 | "getTextFieldUtilityClass",
1944 | "getTextFieldUtilityClass",
1945 | "@mui/material/TextField/textFieldClasses.js",
1946 | ],
1947 | [
1948 | "ToggleButton",
1949 | "default",
1950 | "@mui/material/ToggleButton/ToggleButton.js",
1951 | ],
1952 | [
1953 | "toggleButtonClasses",
1954 | "default",
1955 | "@mui/material/ToggleButton/toggleButtonClasses.js",
1956 | ],
1957 | [
1958 | "getToggleButtonUtilityClass",
1959 | "getToggleButtonUtilityClass",
1960 | "@mui/material/ToggleButton/toggleButtonClasses.js",
1961 | ],
1962 | [
1963 | "ToggleButtonGroup",
1964 | "default",
1965 | "@mui/material/ToggleButtonGroup/ToggleButtonGroup.js",
1966 | ],
1967 | [
1968 | "toggleButtonGroupClasses",
1969 | "default",
1970 | "@mui/material/ToggleButtonGroup/toggleButtonGroupClasses.js",
1971 | ],
1972 | [
1973 | "getToggleButtonGroupUtilityClass",
1974 | "getToggleButtonGroupUtilityClass",
1975 | "@mui/material/ToggleButtonGroup/toggleButtonGroupClasses.js",
1976 | ],
1977 | [
1978 | "Toolbar",
1979 | "default",
1980 | "@mui/material/Toolbar/Toolbar.js",
1981 | ],
1982 | [
1983 | "toolbarClasses",
1984 | "default",
1985 | "@mui/material/Toolbar/toolbarClasses.js",
1986 | ],
1987 | [
1988 | "getToolbarUtilityClass",
1989 | "getToolbarUtilityClass",
1990 | "@mui/material/Toolbar/toolbarClasses.js",
1991 | ],
1992 | [
1993 | "Tooltip",
1994 | "default",
1995 | "@mui/material/Tooltip/Tooltip.js",
1996 | ],
1997 | [
1998 | "tooltipClasses",
1999 | "default",
2000 | "@mui/material/Tooltip/tooltipClasses.js",
2001 | ],
2002 | [
2003 | "getTooltipUtilityClass",
2004 | "getTooltipUtilityClass",
2005 | "@mui/material/Tooltip/tooltipClasses.js",
2006 | ],
2007 | [
2008 | "Typography",
2009 | "default",
2010 | "@mui/material/Typography/Typography.js",
2011 | ],
2012 | [
2013 | "typographyClasses",
2014 | "default",
2015 | "@mui/material/Typography/typographyClasses.js",
2016 | ],
2017 | [
2018 | "getTypographyUtilityClass",
2019 | "getTypographyUtilityClass",
2020 | "@mui/material/Typography/typographyClasses.js",
2021 | ],
2022 | [
2023 | "Unstable_Grid2",
2024 | "default",
2025 | "@mui/material/Unstable_Grid2/Grid2.js",
2026 | ],
2027 | [
2028 | "grid2Classes",
2029 | "default",
2030 | "@mui/material/Unstable_Grid2/grid2Classes.js",
2031 | ],
2032 | [
2033 | "getGrid2UtilityClass",
2034 | "getGrid2UtilityClass",
2035 | "@mui/material/Unstable_Grid2/grid2Classes.js",
2036 | ],
2037 | [
2038 | "useMediaQuery",
2039 | "default",
2040 | "@mui/material/useMediaQuery/useMediaQuery.js",
2041 | ],
2042 | [
2043 | "usePagination",
2044 | "default",
2045 | "@mui/material/usePagination/usePagination.js",
2046 | ],
2047 | [
2048 | "useScrollTrigger",
2049 | "default",
2050 | "@mui/material/useScrollTrigger/useScrollTrigger.js",
2051 | ],
2052 | [
2053 | "capitalize",
2054 | "default",
2055 | "@mui/material/utils/capitalize.js",
2056 | ],
2057 | [
2058 | "createChainedFunction",
2059 | "default",
2060 | "@mui/material/utils/createChainedFunction.js",
2061 | ],
2062 | [
2063 | "createSvgIcon",
2064 | "default",
2065 | "@mui/material/utils/createSvgIcon.js",
2066 | ],
2067 | [
2068 | "debounce",
2069 | "default",
2070 | "@mui/material/utils/debounce.js",
2071 | ],
2072 | [
2073 | "deprecatedPropType",
2074 | "default",
2075 | "@mui/material/utils/deprecatedPropType.js",
2076 | ],
2077 | [
2078 | "unstable_ClassNameGenerator",
2079 | "unstable_ClassNameGenerator",
2080 | "@mui/material/utils/index.js",
2081 | ],
2082 | [
2083 | "isMuiElement",
2084 | "default",
2085 | "@mui/material/utils/isMuiElement.js",
2086 | ],
2087 | [
2088 | "ownerDocument",
2089 | "default",
2090 | "@mui/material/utils/ownerDocument.js",
2091 | ],
2092 | [
2093 | "ownerWindow",
2094 | "default",
2095 | "@mui/material/utils/ownerWindow.js",
2096 | ],
2097 | [
2098 | "requirePropFactory",
2099 | "default",
2100 | "@mui/material/utils/requirePropFactory.js",
2101 | ],
2102 | [
2103 | "setRef",
2104 | "default",
2105 | "@mui/material/utils/setRef.js",
2106 | ],
2107 | [
2108 | "unsupportedProp",
2109 | "default",
2110 | "@mui/material/utils/unsupportedProp.js",
2111 | ],
2112 | [
2113 | "useControlled",
2114 | "default",
2115 | "@mui/material/utils/useControlled.js",
2116 | ],
2117 | [
2118 | "unstable_useEnhancedEffect",
2119 | "default",
2120 | "@mui/material/utils/useEnhancedEffect.js",
2121 | ],
2122 | [
2123 | "useEventCallback",
2124 | "default",
2125 | "@mui/material/utils/useEventCallback.js",
2126 | ],
2127 | [
2128 | "useForkRef",
2129 | "default",
2130 | "@mui/material/utils/useForkRef.js",
2131 | ],
2132 | [
2133 | "unstable_useId",
2134 | "default",
2135 | "@mui/material/utils/useId.js",
2136 | ],
2137 | [
2138 | "useIsFocusVisible",
2139 | "default",
2140 | "@mui/material/utils/useIsFocusVisible.js",
2141 | ],
2142 | [
2143 | "Zoom",
2144 | "default",
2145 | "@mui/material/Zoom/Zoom.js",
2146 | ],
2147 | [
2148 | "hexToRgb",
2149 | "hexToRgb",
2150 | "@mui/system",
2151 | ],
2152 | [
2153 | "rgbToHex",
2154 | "rgbToHex",
2155 | "@mui/system",
2156 | ],
2157 | [
2158 | "hslToRgb",
2159 | "hslToRgb",
2160 | "@mui/system",
2161 | ],
2162 | [
2163 | "decomposeColor",
2164 | "decomposeColor",
2165 | "@mui/system",
2166 | ],
2167 | [
2168 | "recomposeColor",
2169 | "recomposeColor",
2170 | "@mui/system",
2171 | ],
2172 | [
2173 | "getContrastRatio",
2174 | "getContrastRatio",
2175 | "@mui/system",
2176 | ],
2177 | [
2178 | "getLuminance",
2179 | "getLuminance",
2180 | "@mui/system",
2181 | ],
2182 | [
2183 | "emphasize",
2184 | "emphasize",
2185 | "@mui/system",
2186 | ],
2187 | [
2188 | "alpha",
2189 | "alpha",
2190 | "@mui/system",
2191 | ],
2192 | [
2193 | "darken",
2194 | "darken",
2195 | "@mui/system",
2196 | ],
2197 | [
2198 | "lighten",
2199 | "lighten",
2200 | "@mui/system",
2201 | ],
2202 | [
2203 | "css",
2204 | "css",
2205 | "@mui/system",
2206 | ],
2207 | [
2208 | "keyframes",
2209 | "keyframes",
2210 | "@mui/system",
2211 | ],
2212 | [
2213 | "ThemeProvider",
2214 | "ThemeProvider",
2215 | "@mui/system",
2216 | ],
2217 | [
2218 | "StyledEngineProvider",
2219 | "StyledEngineProvider",
2220 | "@mui/system",
2221 | ],
2222 | [
2223 | "generateUtilityClass",
2224 | "unstable_generateUtilityClass",
2225 | "@mui/utils",
2226 | ],
2227 | [
2228 | "generateUtilityClasses",
2229 | "unstable_generateUtilityClasses",
2230 | "@mui/utils",
2231 | ],
2232 | ]
2233 | `);
2234 | });
2235 |
--------------------------------------------------------------------------------
/test/@mui/material/plugin.spec.js:
--------------------------------------------------------------------------------
1 | import { expect, test } from "vitest";
2 | import { runPlugin } from "../../utils.js";
3 |
4 | test("transformation", () => {
5 | expect(
6 | runPlugin(
7 | [
8 | 'import Button, { ButtonProps } from "@mui/material/Button";',
9 | 'import { colors, ThemeProvider, useAutocomplete } from "@mui/material";',
10 | ].join("\n"),
11 | ["@mui/material", "@mui/material/Button"]
12 | )
13 | ).toMatchInlineSnapshot(`
14 | import Button from "@mui/material/Button/Button.js";
15 | import { ButtonProps } from "@mui/material/Button";
16 | import * as colors from "@mui/material/colors/index.js";
17 | import { ThemeProvider } from "@mui/system";
18 | import useAutocomplete from "@mui/base/useAutocomplete";
19 | `);
20 | });
21 |
--------------------------------------------------------------------------------
/test/@mui/system/exports.spec.js:
--------------------------------------------------------------------------------
1 | import { expect, test } from "vitest";
2 | import { testExports } from "../../utils.js";
3 |
4 | test("exports", () => {
5 | expect(testExports("@mui/system")).toMatchInlineSnapshot(`
6 | [
7 | [
8 | "css",
9 | "css",
10 | "@mui/styled-engine",
11 | ],
12 | [
13 | "keyframes",
14 | "keyframes",
15 | "@mui/styled-engine",
16 | ],
17 | [
18 | "GlobalStyles",
19 | "GlobalStyles",
20 | "@mui/styled-engine",
21 | ],
22 | [
23 | "StyledEngineProvider",
24 | "StyledEngineProvider",
25 | "@mui/styled-engine",
26 | ],
27 | [
28 | "borders",
29 | "default",
30 | "@mui/system/esm/borders.js",
31 | ],
32 | [
33 | "borderTransform",
34 | "borderTransform",
35 | "@mui/system/esm/borders.js",
36 | ],
37 | [
38 | "border",
39 | "border",
40 | "@mui/system/esm/borders.js",
41 | ],
42 | [
43 | "borderTop",
44 | "borderTop",
45 | "@mui/system/esm/borders.js",
46 | ],
47 | [
48 | "borderRight",
49 | "borderRight",
50 | "@mui/system/esm/borders.js",
51 | ],
52 | [
53 | "borderBottom",
54 | "borderBottom",
55 | "@mui/system/esm/borders.js",
56 | ],
57 | [
58 | "borderLeft",
59 | "borderLeft",
60 | "@mui/system/esm/borders.js",
61 | ],
62 | [
63 | "borderColor",
64 | "borderColor",
65 | "@mui/system/esm/borders.js",
66 | ],
67 | [
68 | "borderTopColor",
69 | "borderTopColor",
70 | "@mui/system/esm/borders.js",
71 | ],
72 | [
73 | "borderRightColor",
74 | "borderRightColor",
75 | "@mui/system/esm/borders.js",
76 | ],
77 | [
78 | "borderBottomColor",
79 | "borderBottomColor",
80 | "@mui/system/esm/borders.js",
81 | ],
82 | [
83 | "borderLeftColor",
84 | "borderLeftColor",
85 | "@mui/system/esm/borders.js",
86 | ],
87 | [
88 | "borderRadius",
89 | "borderRadius",
90 | "@mui/system/esm/borders.js",
91 | ],
92 | [
93 | "Box",
94 | "default",
95 | "@mui/system/esm/Box/Box.js",
96 | ],
97 | [
98 | "breakpoints",
99 | "default",
100 | "@mui/system/esm/breakpoints.js",
101 | ],
102 | [
103 | "handleBreakpoints",
104 | "handleBreakpoints",
105 | "@mui/system/esm/breakpoints.js",
106 | ],
107 | [
108 | "mergeBreakpointsInOrder",
109 | "mergeBreakpointsInOrder",
110 | "@mui/system/esm/breakpoints.js",
111 | ],
112 | [
113 | "unstable_resolveBreakpointValues",
114 | "resolveBreakpointValues",
115 | "@mui/system/esm/breakpoints.js",
116 | ],
117 | [
118 | "hexToRgb",
119 | "hexToRgb",
120 | "@mui/system/esm/colorManipulator.js",
121 | ],
122 | [
123 | "decomposeColor",
124 | "decomposeColor",
125 | "@mui/system/esm/colorManipulator.js",
126 | ],
127 | [
128 | "colorChannel",
129 | "colorChannel",
130 | "@mui/system/esm/colorManipulator.js",
131 | ],
132 | [
133 | "private_safeColorChannel",
134 | "private_safeColorChannel",
135 | "@mui/system/esm/colorManipulator.js",
136 | ],
137 | [
138 | "recomposeColor",
139 | "recomposeColor",
140 | "@mui/system/esm/colorManipulator.js",
141 | ],
142 | [
143 | "rgbToHex",
144 | "rgbToHex",
145 | "@mui/system/esm/colorManipulator.js",
146 | ],
147 | [
148 | "hslToRgb",
149 | "hslToRgb",
150 | "@mui/system/esm/colorManipulator.js",
151 | ],
152 | [
153 | "getLuminance",
154 | "getLuminance",
155 | "@mui/system/esm/colorManipulator.js",
156 | ],
157 | [
158 | "getContrastRatio",
159 | "getContrastRatio",
160 | "@mui/system/esm/colorManipulator.js",
161 | ],
162 | [
163 | "alpha",
164 | "alpha",
165 | "@mui/system/esm/colorManipulator.js",
166 | ],
167 | [
168 | "private_safeAlpha",
169 | "private_safeAlpha",
170 | "@mui/system/esm/colorManipulator.js",
171 | ],
172 | [
173 | "darken",
174 | "darken",
175 | "@mui/system/esm/colorManipulator.js",
176 | ],
177 | [
178 | "private_safeDarken",
179 | "private_safeDarken",
180 | "@mui/system/esm/colorManipulator.js",
181 | ],
182 | [
183 | "lighten",
184 | "lighten",
185 | "@mui/system/esm/colorManipulator.js",
186 | ],
187 | [
188 | "private_safeLighten",
189 | "private_safeLighten",
190 | "@mui/system/esm/colorManipulator.js",
191 | ],
192 | [
193 | "emphasize",
194 | "emphasize",
195 | "@mui/system/esm/colorManipulator.js",
196 | ],
197 | [
198 | "private_safeEmphasize",
199 | "private_safeEmphasize",
200 | "@mui/system/esm/colorManipulator.js",
201 | ],
202 | [
203 | "compose",
204 | "default",
205 | "@mui/system/esm/compose.js",
206 | ],
207 | [
208 | "Container",
209 | "default",
210 | "@mui/system/esm/Container/Container.js",
211 | ],
212 | [
213 | "containerClasses",
214 | "default",
215 | "@mui/system/esm/Container/containerClasses.js",
216 | ],
217 | [
218 | "getContainerUtilityClass",
219 | "getContainerUtilityClass",
220 | "@mui/system/esm/Container/containerClasses.js",
221 | ],
222 | [
223 | "createContainer",
224 | "default",
225 | "@mui/system/esm/Container/createContainer.js",
226 | ],
227 | [
228 | "createBox",
229 | "default",
230 | "@mui/system/esm/createBox.js",
231 | ],
232 | [
233 | "createStyled",
234 | "default",
235 | "@mui/system/esm/createStyled.js",
236 | ],
237 | [
238 | "shouldForwardProp",
239 | "shouldForwardProp",
240 | "@mui/system/esm/createStyled.js",
241 | ],
242 | [
243 | "systemDefaultTheme",
244 | "systemDefaultTheme",
245 | "@mui/system/esm/createStyled.js",
246 | ],
247 | [
248 | "createBreakpoints",
249 | "default",
250 | "@mui/system/esm/createTheme/createBreakpoints.js",
251 | ],
252 | [
253 | "createSpacing",
254 | "default",
255 | "@mui/system/esm/createTheme/createSpacing.js",
256 | ],
257 | [
258 | "createTheme",
259 | "default",
260 | "@mui/system/esm/createTheme/createTheme.js",
261 | ],
262 | [
263 | "shape",
264 | "default",
265 | "@mui/system/esm/createTheme/shape.js",
266 | ],
267 | [
268 | "grid",
269 | "default",
270 | "@mui/system/esm/cssGrid.js",
271 | ],
272 | [
273 | "gap",
274 | "gap",
275 | "@mui/system/esm/cssGrid.js",
276 | ],
277 | [
278 | "columnGap",
279 | "columnGap",
280 | "@mui/system/esm/cssGrid.js",
281 | ],
282 | [
283 | "rowGap",
284 | "rowGap",
285 | "@mui/system/esm/cssGrid.js",
286 | ],
287 | [
288 | "gridColumn",
289 | "gridColumn",
290 | "@mui/system/esm/cssGrid.js",
291 | ],
292 | [
293 | "gridRow",
294 | "gridRow",
295 | "@mui/system/esm/cssGrid.js",
296 | ],
297 | [
298 | "gridAutoFlow",
299 | "gridAutoFlow",
300 | "@mui/system/esm/cssGrid.js",
301 | ],
302 | [
303 | "gridAutoColumns",
304 | "gridAutoColumns",
305 | "@mui/system/esm/cssGrid.js",
306 | ],
307 | [
308 | "gridAutoRows",
309 | "gridAutoRows",
310 | "@mui/system/esm/cssGrid.js",
311 | ],
312 | [
313 | "gridTemplateColumns",
314 | "gridTemplateColumns",
315 | "@mui/system/esm/cssGrid.js",
316 | ],
317 | [
318 | "gridTemplateRows",
319 | "gridTemplateRows",
320 | "@mui/system/esm/cssGrid.js",
321 | ],
322 | [
323 | "gridTemplateAreas",
324 | "gridTemplateAreas",
325 | "@mui/system/esm/cssGrid.js",
326 | ],
327 | [
328 | "gridArea",
329 | "gridArea",
330 | "@mui/system/esm/cssGrid.js",
331 | ],
332 | [
333 | "unstable_createCssVarsProvider",
334 | "default",
335 | "@mui/system/esm/cssVars/createCssVarsProvider.js",
336 | ],
337 | [
338 | "unstable_createGetCssVar",
339 | "default",
340 | "@mui/system/esm/cssVars/createGetCssVar.js",
341 | ],
342 | [
343 | "display",
344 | "default",
345 | "@mui/system/esm/display.js",
346 | ],
347 | [
348 | "flexbox",
349 | "default",
350 | "@mui/system/esm/flexbox.js",
351 | ],
352 | [
353 | "flexBasis",
354 | "flexBasis",
355 | "@mui/system/esm/flexbox.js",
356 | ],
357 | [
358 | "flexDirection",
359 | "flexDirection",
360 | "@mui/system/esm/flexbox.js",
361 | ],
362 | [
363 | "flexWrap",
364 | "flexWrap",
365 | "@mui/system/esm/flexbox.js",
366 | ],
367 | [
368 | "justifyContent",
369 | "justifyContent",
370 | "@mui/system/esm/flexbox.js",
371 | ],
372 | [
373 | "alignItems",
374 | "alignItems",
375 | "@mui/system/esm/flexbox.js",
376 | ],
377 | [
378 | "alignContent",
379 | "alignContent",
380 | "@mui/system/esm/flexbox.js",
381 | ],
382 | [
383 | "order",
384 | "order",
385 | "@mui/system/esm/flexbox.js",
386 | ],
387 | [
388 | "flex",
389 | "flex",
390 | "@mui/system/esm/flexbox.js",
391 | ],
392 | [
393 | "flexGrow",
394 | "flexGrow",
395 | "@mui/system/esm/flexbox.js",
396 | ],
397 | [
398 | "flexShrink",
399 | "flexShrink",
400 | "@mui/system/esm/flexbox.js",
401 | ],
402 | [
403 | "alignSelf",
404 | "alignSelf",
405 | "@mui/system/esm/flexbox.js",
406 | ],
407 | [
408 | "justifyItems",
409 | "justifyItems",
410 | "@mui/system/esm/flexbox.js",
411 | ],
412 | [
413 | "justifySelf",
414 | "justifySelf",
415 | "@mui/system/esm/flexbox.js",
416 | ],
417 | [
418 | "unstable_getThemeValue",
419 | "default",
420 | "@mui/system/esm/getThemeValue.js",
421 | ],
422 | [
423 | "experimental_sx",
424 | "experimental_sx",
425 | "@mui/system/esm/index.js",
426 | ],
427 | [
428 | "palette",
429 | "default",
430 | "@mui/system/esm/palette.js",
431 | ],
432 | [
433 | "paletteTransform",
434 | "paletteTransform",
435 | "@mui/system/esm/palette.js",
436 | ],
437 | [
438 | "color",
439 | "color",
440 | "@mui/system/esm/palette.js",
441 | ],
442 | [
443 | "bgcolor",
444 | "bgcolor",
445 | "@mui/system/esm/palette.js",
446 | ],
447 | [
448 | "backgroundColor",
449 | "backgroundColor",
450 | "@mui/system/esm/palette.js",
451 | ],
452 | [
453 | "positions",
454 | "default",
455 | "@mui/system/esm/positions.js",
456 | ],
457 | [
458 | "position",
459 | "position",
460 | "@mui/system/esm/positions.js",
461 | ],
462 | [
463 | "zIndex",
464 | "zIndex",
465 | "@mui/system/esm/positions.js",
466 | ],
467 | [
468 | "top",
469 | "top",
470 | "@mui/system/esm/positions.js",
471 | ],
472 | [
473 | "right",
474 | "right",
475 | "@mui/system/esm/positions.js",
476 | ],
477 | [
478 | "bottom",
479 | "bottom",
480 | "@mui/system/esm/positions.js",
481 | ],
482 | [
483 | "left",
484 | "left",
485 | "@mui/system/esm/positions.js",
486 | ],
487 | [
488 | "responsivePropType",
489 | "default",
490 | "@mui/system/esm/responsivePropType.js",
491 | ],
492 | [
493 | "shadows",
494 | "default",
495 | "@mui/system/esm/shadows.js",
496 | ],
497 | [
498 | "sizing",
499 | "default",
500 | "@mui/system/esm/sizing.js",
501 | ],
502 | [
503 | "sizingTransform",
504 | "sizingTransform",
505 | "@mui/system/esm/sizing.js",
506 | ],
507 | [
508 | "width",
509 | "width",
510 | "@mui/system/esm/sizing.js",
511 | ],
512 | [
513 | "maxWidth",
514 | "maxWidth",
515 | "@mui/system/esm/sizing.js",
516 | ],
517 | [
518 | "minWidth",
519 | "minWidth",
520 | "@mui/system/esm/sizing.js",
521 | ],
522 | [
523 | "height",
524 | "height",
525 | "@mui/system/esm/sizing.js",
526 | ],
527 | [
528 | "maxHeight",
529 | "maxHeight",
530 | "@mui/system/esm/sizing.js",
531 | ],
532 | [
533 | "minHeight",
534 | "minHeight",
535 | "@mui/system/esm/sizing.js",
536 | ],
537 | [
538 | "sizeWidth",
539 | "sizeWidth",
540 | "@mui/system/esm/sizing.js",
541 | ],
542 | [
543 | "sizeHeight",
544 | "sizeHeight",
545 | "@mui/system/esm/sizing.js",
546 | ],
547 | [
548 | "boxSizing",
549 | "boxSizing",
550 | "@mui/system/esm/sizing.js",
551 | ],
552 | [
553 | "spacing",
554 | "default",
555 | "@mui/system/esm/spacing.js",
556 | ],
557 | [
558 | "marginKeys",
559 | "marginKeys",
560 | "@mui/system/esm/spacing.js",
561 | ],
562 | [
563 | "paddingKeys",
564 | "paddingKeys",
565 | "@mui/system/esm/spacing.js",
566 | ],
567 | [
568 | "createUnaryUnit",
569 | "createUnaryUnit",
570 | "@mui/system/esm/spacing.js",
571 | ],
572 | [
573 | "createUnarySpacing",
574 | "createUnarySpacing",
575 | "@mui/system/esm/spacing.js",
576 | ],
577 | [
578 | "getValue",
579 | "getValue",
580 | "@mui/system/esm/spacing.js",
581 | ],
582 | [
583 | "getStyleFromPropValue",
584 | "getStyleFromPropValue",
585 | "@mui/system/esm/spacing.js",
586 | ],
587 | [
588 | "margin",
589 | "margin",
590 | "@mui/system/esm/spacing.js",
591 | ],
592 | [
593 | "padding",
594 | "padding",
595 | "@mui/system/esm/spacing.js",
596 | ],
597 | [
598 | "createStack",
599 | "default",
600 | "@mui/system/esm/Stack/createStack.js",
601 | ],
602 | [
603 | "Stack",
604 | "default",
605 | "@mui/system/esm/Stack/Stack.js",
606 | ],
607 | [
608 | "stackClasses",
609 | "default",
610 | "@mui/system/esm/Stack/stackClasses.js",
611 | ],
612 | [
613 | "getStackUtilityClass",
614 | "getStackUtilityClass",
615 | "@mui/system/esm/Stack/stackClasses.js",
616 | ],
617 | [
618 | "getPath",
619 | "getPath",
620 | "@mui/system/esm/style.js",
621 | ],
622 | [
623 | "getStyleValue",
624 | "getStyleValue",
625 | "@mui/system/esm/style.js",
626 | ],
627 | [
628 | "style",
629 | "default",
630 | "@mui/system/esm/style.js",
631 | ],
632 | [
633 | "styled",
634 | "default",
635 | "@mui/system/esm/styled.js",
636 | ],
637 | [
638 | "unstable_defaultSxConfig",
639 | "default",
640 | "@mui/system/esm/styleFunctionSx/defaultSxConfig.js",
641 | ],
642 | [
643 | "unstable_extendSxProp",
644 | "default",
645 | "@mui/system/esm/styleFunctionSx/extendSxProp.js",
646 | ],
647 | [
648 | "unstable_styleFunctionSx",
649 | "default",
650 | "@mui/system/esm/styleFunctionSx/styleFunctionSx.js",
651 | ],
652 | [
653 | "unstable_createStyleFunctionSx",
654 | "unstable_createStyleFunctionSx",
655 | "@mui/system/esm/styleFunctionSx/styleFunctionSx.js",
656 | ],
657 | [
658 | "ThemeProvider",
659 | "default",
660 | "@mui/system/esm/ThemeProvider/ThemeProvider.js",
661 | ],
662 | [
663 | "typography",
664 | "default",
665 | "@mui/system/esm/typography.js",
666 | ],
667 | [
668 | "fontFamily",
669 | "fontFamily",
670 | "@mui/system/esm/typography.js",
671 | ],
672 | [
673 | "fontSize",
674 | "fontSize",
675 | "@mui/system/esm/typography.js",
676 | ],
677 | [
678 | "fontStyle",
679 | "fontStyle",
680 | "@mui/system/esm/typography.js",
681 | ],
682 | [
683 | "fontWeight",
684 | "fontWeight",
685 | "@mui/system/esm/typography.js",
686 | ],
687 | [
688 | "letterSpacing",
689 | "letterSpacing",
690 | "@mui/system/esm/typography.js",
691 | ],
692 | [
693 | "textTransform",
694 | "textTransform",
695 | "@mui/system/esm/typography.js",
696 | ],
697 | [
698 | "lineHeight",
699 | "lineHeight",
700 | "@mui/system/esm/typography.js",
701 | ],
702 | [
703 | "textAlign",
704 | "textAlign",
705 | "@mui/system/esm/typography.js",
706 | ],
707 | [
708 | "typographyVariant",
709 | "typographyVariant",
710 | "@mui/system/esm/typography.js",
711 | ],
712 | [
713 | "createGrid",
714 | "default",
715 | "@mui/system/esm/Unstable_Grid/createGrid.js",
716 | ],
717 | [
718 | "Unstable_Grid",
719 | "default",
720 | "@mui/system/esm/Unstable_Grid/Grid.js",
721 | ],
722 | [
723 | "gridClasses",
724 | "default",
725 | "@mui/system/esm/Unstable_Grid/gridClasses.js",
726 | ],
727 | [
728 | "getGridUtilityClass",
729 | "getGridUtilityClass",
730 | "@mui/system/esm/Unstable_Grid/gridClasses.js",
731 | ],
732 | [
733 | "useTheme",
734 | "default",
735 | "@mui/system/esm/useTheme.js",
736 | ],
737 | [
738 | "getThemeProps",
739 | "default",
740 | "@mui/system/esm/useThemeProps/getThemeProps.js",
741 | ],
742 | [
743 | "useThemeProps",
744 | "default",
745 | "@mui/system/esm/useThemeProps/useThemeProps.js",
746 | ],
747 | [
748 | "useThemeWithoutDefault",
749 | "default",
750 | "@mui/system/esm/useThemeWithoutDefault.js",
751 | ],
752 | ]
753 | `);
754 | });
755 |
--------------------------------------------------------------------------------
/test/@mui/system/plugin.spec.js:
--------------------------------------------------------------------------------
1 | import { expect, test } from "vitest";
2 | import { runPlugin } from "../../utils.js";
3 |
4 | test("transformation", () => {
5 | expect(
6 | runPlugin(
7 | 'import { ThemeProvider, ThemeProviderProps } from "@mui/system";',
8 | ["@mui/system"]
9 | )
10 | ).toMatchInlineSnapshot(`
11 | import ThemeProvider from "@mui/system/esm/ThemeProvider/ThemeProvider.js";
12 | import { ThemeProviderProps } from "@mui/system";
13 | `);
14 | });
15 |
--------------------------------------------------------------------------------
/test/setup.js:
--------------------------------------------------------------------------------
1 | import path from "node:path";
2 | import { fileURLToPath } from "node:url";
3 | import { expect } from "vitest";
4 |
5 | const CWD = path.join(fileURLToPath(import.meta.url), "..", "..");
6 |
7 | /**
8 | * @param {string} input
9 | * @returns {string}
10 | */
11 | function normalizeSeparators(input) {
12 | return input.replace(/\\/g, "/");
13 | }
14 |
15 | expect.addSnapshotSerializer({
16 | test(value) {
17 | return typeof value === "string" && value.includes(CWD);
18 | },
19 | serialize(value, config, indentation, depth, refs, printer) {
20 | let result = String(value).replace(CWD, "");
21 | while (result.includes(CWD)) {
22 | result = result.replace(CWD, "");
23 | }
24 | result = normalizeSeparators(result);
25 | return printer(result, config, indentation, depth, refs);
26 | },
27 | });
28 |
--------------------------------------------------------------------------------
/test/utils.js:
--------------------------------------------------------------------------------
1 | import babel, { parse, types } from "@babel/core";
2 | import { expect } from "vitest";
3 | import Parser from "../lib/internal/Parser.js";
4 | import plugin from "../lib/plugin.js";
5 |
6 | /** @type {Set} */
7 | const transformed = new Set();
8 |
9 | expect.addSnapshotSerializer({
10 | test(value) {
11 | return transformed.has(value);
12 | },
13 | serialize(value) {
14 | return value.trim();
15 | },
16 | });
17 |
18 | /**
19 | * @param {string} input
20 | * @param {unknown[]} modules
21 | * @returns {string}
22 | */
23 | export function runPlugin(input, modules) {
24 | const result = babel.transformSync(input, {
25 | plugins: [[plugin, { modules }]],
26 | });
27 | if (!result?.code) return "";
28 | transformed.add(result.code);
29 | return result.code;
30 | }
31 |
32 | const parser = new Parser(parse, types);
33 |
34 | /**
35 | * @param {string} entryId
36 | * @returns {unknown[]}
37 | */
38 | export function testExports(entryId) {
39 | /** @type {[id: string, internalID: string, source: string][]} */
40 | const result = [];
41 |
42 | for (const [id, { source, internalID }] of parser.getDependenciesMap(
43 | entryId
44 | )) {
45 | result.push([id, internalID, source]);
46 | }
47 |
48 | return result.sort(([, , a], [, , b]) => a.localeCompare(b));
49 | }
50 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@umidbekk/configs/tsconfig.json",
3 | "include": ["lib", "test", "vitest.config.mjs"],
4 | "compilerOptions": {
5 | "moduleResolution": "Node16"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/vitest.config.mjs:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vitest/config";
2 |
3 | export default defineConfig({
4 | test: {
5 | setupFiles: ["./test/setup.js"],
6 | snapshotFormat: { escapeString: false },
7 | coverage: { reporter: ["html", "lcov", "text"] },
8 | },
9 | });
10 |
--------------------------------------------------------------------------------