diff --git a/.babelrc b/.babelrc
index 1c831a3cb06f3d..1889fd4c7f5dfa 100644
--- a/.babelrc
+++ b/.babelrc
@@ -30,7 +30,7 @@
},
"docs-development": {
"plugins": [
- "./scripts/material-ui-babel-preval",
+ "babel-plugin-preval",
[
"module-resolver",
{
@@ -48,7 +48,7 @@
},
"docs-production": {
"plugins": [
- "./scripts/material-ui-babel-preval",
+ "babel-plugin-preval",
[
"module-resolver",
{
diff --git a/.circleci/config.yml b/.circleci/config.yml
index e14f82bdc66df2..fa6d9cd8563ab3 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -91,6 +91,10 @@ jobs:
- run:
name: Should not have any git not staged
command: git diff --exit-code
+ - run:
+ name: Install dependencies for Chrome Headless
+ # From https://github.com/GoogleChrome/puppeteer/blob/811415bc8c47f7882375629b57b3fe186ad61ed4/docs/troubleshooting.md#chrome-headless-doesnt-launch
+ command: sudo apt-get install -y gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
- run:
name: Tests real browsers
command: yarn test:karma
diff --git a/.eslintignore b/.eslintignore
index 2e0ac92741fb37..fd1ac9f8804043 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -12,7 +12,7 @@
/packages/material-ui-codemod/src/*/*.test.js
/packages/material-ui-icons/src
/packages/material-ui-icons/test/fixtures
-/packages/material-ui-icons/tpl
+/packages/material-ui-icons/templateSvgIcon.js
/tmp
build
node_modules
diff --git a/.eslintrc.js b/.eslintrc.js
index cf70ab517d563d..3a2d667698d469 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -27,12 +27,13 @@ module.exports = {
},
},
rules: {
- 'linebreak-style': 'off', // Don't play nicely with Windows.
- 'arrow-body-style': 'off', // Not our taste?
+ 'linebreak-style': 'off', // Don't play nicely with Windows
+ 'arrow-body-style': 'off', // Incompatible with prettier
'arrow-parens': 'off', // Incompatible with prettier
'object-curly-newline': 'off', // Incompatible with prettier
'function-paren-newline': 'off', // Incompatible with prettier
indent: 'off', // Incompatible with prettier
+ 'implicit-arrow-linebreak': 'off', // Incompatible with prettier
'space-before-function-paren': 'off', // Incompatible with prettier
'no-confusing-arrow': 'off', // Incompatible with prettier
'no-mixed-operators': 'off', // Incompatible with prettier
@@ -46,18 +47,15 @@ module.exports = {
},
], // airbnb is allowing some edge cases
'no-console': 'error', // airbnb is using warn
+ 'prefer-destructuring': 'off', // airbnb is using error. destructuring harm grep potential.
'no-alert': 'error', // airbnb is using warn
- 'no-param-reassign': 'off', // Not our taste?
+ 'no-param-reassign': 'off', // airbnb use error
'no-prototype-builtins': 'off', // airbnb use error
- 'object-curly-spacing': 'off', // use babel plugin rule
- 'no-restricted-properties': 'off', // To remove once react-docgen support ** operator.
- 'prefer-destructuring': 'off', // To remove once react-docgen support ** operator.
+ 'operator-linebreak': 'off', // airbnb use error
- 'babel/object-curly-spacing': ['error', 'always'],
-
- 'import/unambiguous': 'off', // scripts
- 'import/namespace': ['error', { allowComputed: true }],
+ // It would be better to enable this rule, but it might slow us down.
'import/no-extraneous-dependencies': 'off',
+ 'import/namespace': ['error', { allowComputed: true }],
'import/order': [
'error',
{
@@ -70,6 +68,7 @@ module.exports = {
'react/jsx-closing-bracket-location': 'off', // Incompatible with prettier
'react/jsx-wrap-multilines': 'off', // Incompatible with prettier
'react/jsx-indent-props': 'off', // Incompatible with prettier
+ 'react/jsx-one-expression-per-line': 'off', // Incompatible with prettier
'react/jsx-handler-names': [
'error',
{
@@ -78,16 +77,15 @@ module.exports = {
eventHandlerPropPrefix: 'on',
},
],
- 'react/require-default-props': 'off', // airbnb use error
+ 'react/jsx-curly-brace-presence': 'off', // airbnb use error, it's buggy
'react/forbid-prop-types': 'off', // airbnb use error
+ 'react/require-default-props': 'off', // airbnb use error, it's buggy
+ 'react/destructuring-assignment': 'off', // airbnb use error
'react/jsx-filename-extension': ['error', { extensions: ['.js'] }], // airbnb is using .jsx
'react/no-danger': 'error', // airbnb is using warn
- 'react/no-direct-mutation-state': 'error', // airbnb is disabling this rule
- 'react/no-find-dom-node': 'off', // I don't know
- 'react/no-unused-prop-types': 'off', // Is still buggy
- 'react/sort-prop-types': 'error', // airbnb do nothing here.
- 'react/default-props-match-prop-types': 'off', // Buggy
- 'react/jsx-curly-brace-presence': 'off', // Buggy
+ 'react/no-direct-mutation-state': 'error', // airbnb is using off
+ 'react/no-find-dom-node': 'off', // airbnb use error
+ 'react/sort-prop-types': 'error', // airbnb use off
'material-ui/docgen-ignore-before-comment': 'error',
diff --git a/.gitignore b/.gitignore
index 485041be7dcbf0..9df1bb8a651ee6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,7 @@
/coverage
/docs/export
/packages/material-ui-codemod/lib
+/packages/material-ui-icons/material-design-icons
/test/regressions/screenshots
/test/selenium-output
/tmp
diff --git a/.size-limit.js b/.size-limit.js
index 9fbb9ba2e9caa7..f707fa5eef8add 100644
--- a/.size-limit.js
+++ b/.size-limit.js
@@ -21,19 +21,19 @@ module.exports = [
name: 'The initial cost people pay for using one component',
webpack: true,
path: 'packages/material-ui/build/Paper/index.js',
- limit: '17.7 KB',
+ limit: '17.6 KB',
},
{
name: 'The size of all the modules of material-ui.',
webpack: true,
path: 'packages/material-ui/build/index.js',
- limit: '94.5 KB',
+ limit: '95.3 KB',
},
{
name: 'The main bundle of the docs',
webpack: false,
path: getMainFile().path,
- limit: '182.1 KB',
+ limit: '177 KB',
},
{
name: 'The home page of the docs',
diff --git a/BACKERS.md b/BACKERS.md
index fbb903e105c0b6..569e5512494826 100644
--- a/BACKERS.md
+++ b/BACKERS.md
@@ -1,5 +1,7 @@
# Sponsors & Backers
+
Support Material-UI’s development.
+
Material-UI is an MIT-licensed open source project. It's an independent project with ongoing development made possible thanks to the support of these awesome backers. If you'd like to join them, please consider:
- [Become a backer or sponsor on Patreon](https://www.patreon.com/oliviertassinari).
- [Become a backer or sponsor on OpenCollective](https://opencollective.com/material-ui).
@@ -23,7 +25,7 @@ Gold Sponsors are those who have pledged $500/month and more to Material-UI.