From 2a165b2f7c7de90ffc27e7f9a6f5dbd1ea23027d Mon Sep 17 00:00:00 2001 From: Olivier Tassinari Date: Sat, 9 Nov 2019 12:26:43 +0100 Subject: [PATCH] [core] Batch changes (#18264) --- docs/src/modules/components/Ad.js | 34 +++++++++-- docs/src/modules/components/AdCarbon.js | 2 + docs/src/modules/components/AdCodeFund.js | 2 + docs/src/modules/components/AdInHouse.js | 4 +- docs/src/modules/components/AppDrawer.js | 2 + .../src/modules/components/DiamondSponsors.js | 56 ++++++++++++++++++ docs/src/modules/utils/helpers.js | 20 +++++-- docs/src/modules/utils/helpers.test.js | 13 ++++ .../components/autocomplete/CustomizedHook.js | 1 + .../autocomplete/CustomizedHook.tsx | 1 + .../components/autocomplete/GitHubLabel.js | 2 +- .../components/autocomplete/GitHubLabel.tsx | 2 +- .../components/autocomplete/autocomplete.md | 15 +++-- docs/static/in-house/tidelift.png | Bin 0 -> 12277 bytes docs/translations/translations.json | 1 + examples/cdn/README.md | 2 +- packages/material-ui/src/Slider/Slider.js | 6 ++ 17 files changed, 145 insertions(+), 18 deletions(-) create mode 100644 docs/src/modules/components/DiamondSponsors.js create mode 100644 docs/static/in-house/tidelift.png diff --git a/docs/src/modules/components/Ad.js b/docs/src/modules/components/Ad.js index fe0fb90f4c1839..4440bff11eb99b 100644 --- a/docs/src/modules/components/Ad.js +++ b/docs/src/modules/components/Ad.js @@ -55,11 +55,20 @@ const inHouses = [ }, { name: 'themes', - link: 'https://themes.material-ui.com/', + link: + 'https://themes.material-ui.com/?utm_source=material_ui&utm_medium=referral&utm_campaign=in-house', img: '/static/in-house/themes.png', description: 'Premium Themes
Kickstart your application development with a ready-made theme.', }, + { + name: 'tidelift', + link: + 'https://tidelift.com/subscription/managed-open-source-survey?utm_source=material_ui&utm_medium=referral&utm_campaign=enterprise&utm_content=ad', + img: '/static/in-house/tidelift.png', + description: + 'Material-UI for enterprise
Available in the Tidelift Subscription. Reduce risk, and improve code health.', + }, ]; function Ad(props) { @@ -70,6 +79,7 @@ function Ad(props) { const timerAdblock = React.useRef(); const [adblock, setAdblock] = React.useState(null); const [carbonOut, setCarbonOut] = React.useState(null); + const [codeFundOut, setCodeFundOut] = React.useState(null); const checkAdblock = React.useCallback((attempt = 1) => { if (document.querySelector('.cf-wrapper') || document.querySelector('#carbonads')) { @@ -107,6 +117,18 @@ function Ad(props) { }; }, [checkAdblock]); + React.useEffect(() => { + const handler = event => { + if (event.detail.status === 'no-advertiser') { + setCodeFundOut(true); + } + }; + window.addEventListener('codefund', handler); + return () => { + window.removeEventListener('codefund', handler); + }; + }, []); + let children; let minHeight; @@ -126,13 +148,13 @@ function Ad(props) { } if (!children) { - if (random >= 0.6) { - children = ; - } else if (!carbonOut) { - children = ; - } else { + if (carbonOut || codeFundOut) { children = ; minHeight = 'auto'; + } else if (random >= 0.5) { + children = ; + } else { + children = ; } } diff --git a/docs/src/modules/components/AdCarbon.js b/docs/src/modules/components/AdCarbon.js index aff7439efd85fb..fa0e85c03fdc5f 100644 --- a/docs/src/modules/components/AdCarbon.js +++ b/docs/src/modules/components/AdCarbon.js @@ -15,6 +15,8 @@ const styles = theme => ({ '& .carbon-img': { float: 'left', marginLeft: -130, + width: 130, + height: 100, marginRight: theme.spacing(1.5), }, '& img': { diff --git a/docs/src/modules/components/AdCodeFund.js b/docs/src/modules/components/AdCodeFund.js index 8353d31664c545..727b24a33d7774 100644 --- a/docs/src/modules/components/AdCodeFund.js +++ b/docs/src/modules/components/AdCodeFund.js @@ -15,6 +15,8 @@ const styles = theme => ({ '& .cf-img-wrapper.cf-img-wrapper': { float: 'left', marginLeft: -130, + width: 130, + height: 100, marginRight: theme.spacing(1.5), }, '& img': { diff --git a/docs/src/modules/components/AdInHouse.js b/docs/src/modules/components/AdInHouse.js index 0f93dfd15b2bb1..1679fdf35f9781 100644 --- a/docs/src/modules/components/AdInHouse.js +++ b/docs/src/modules/components/AdInHouse.js @@ -15,6 +15,8 @@ const useStyles = makeStyles(theme => ({ '& $imageWrapper': { float: 'left', marginLeft: -130, + width: 130, + height: 100, marginRight: theme.spacing(1.5), }, '& img': { @@ -43,7 +45,7 @@ export default function AdInHouse(props) { const { ad } = props; const classes = useStyles(); return ( - + + + + + ); +} diff --git a/docs/src/modules/utils/helpers.js b/docs/src/modules/utils/helpers.js index 7bd699356fa68a..3090d9dc245253 100644 --- a/docs/src/modules/utils/helpers.js +++ b/docs/src/modules/utils/helpers.js @@ -71,8 +71,17 @@ function addTypeDeps(deps) { deps[`@types/${resolvedName}`] = 'latest'; }); +} - return deps; +function includePeerDependencies(deps, versions) { + Object.assign(deps, { + 'react-dom': versions['react-dom'], + react: versions.react, + }); + + if (deps['@material-ui/lab'] && !deps['@material-ui/core']) { + deps['@material-ui/core'] = versions['@material-ui/core']; + } } /** @@ -84,11 +93,11 @@ function addTypeDeps(deps) { */ function getDependencies(raw, options = {}) { const { codeLanguage = CODE_VARIANTS.JS, reactVersion = 'latest' } = options; - const deps = { + + const deps = {}; + const versions = { 'react-dom': reactVersion, react: reactVersion, - }; - const versions = { '@material-ui/core': 'latest', '@material-ui/icons': 'latest', '@material-ui/lab': 'latest', @@ -99,6 +108,7 @@ function getDependencies(raw, options = {}) { jss: 'next', 'jss-plugin-template': 'next', }; + const re = /^import\s'([^']+)'|import\s[\s\S]*?\sfrom\s+'([^']+)/gm; let m; // eslint-disable-next-line no-cond-assign @@ -118,6 +128,8 @@ function getDependencies(raw, options = {}) { } } + includePeerDependencies(deps, versions); + if (codeLanguage === CODE_VARIANTS.TS) { addTypeDeps(deps); deps.typescript = 'latest'; diff --git a/docs/src/modules/utils/helpers.test.js b/docs/src/modules/utils/helpers.test.js index a47030f5d98ad1..1f7fc07f8dd9c5 100644 --- a/docs/src/modules/utils/helpers.test.js +++ b/docs/src/modules/utils/helpers.test.js @@ -121,4 +121,17 @@ import { 'react-dom': 'latest', }); }); + + it('should include core if lab present', () => { + const source = ` +import lab from '@material-ui/lab'; + `; + + assert.deepEqual(getDependencies(source), { + '@material-ui/core': 'latest', + '@material-ui/lab': 'latest', + react: 'latest', + 'react-dom': 'latest', + }); + }); }); diff --git a/docs/src/pages/components/autocomplete/CustomizedHook.js b/docs/src/pages/components/autocomplete/CustomizedHook.js index 9008447b3598e4..200b8f50660270 100644 --- a/docs/src/pages/components/autocomplete/CustomizedHook.js +++ b/docs/src/pages/components/autocomplete/CustomizedHook.js @@ -135,6 +135,7 @@ export default function CustomizedHook() { focused, setAnchorEl, } = useAutocomplete({ + defaultValue: [top100Films[1]], multiple: true, options: top100Films, getOptionLabel: option => option.title, diff --git a/docs/src/pages/components/autocomplete/CustomizedHook.tsx b/docs/src/pages/components/autocomplete/CustomizedHook.tsx index b487b8f5adac5c..0313394c1c43f2 100644 --- a/docs/src/pages/components/autocomplete/CustomizedHook.tsx +++ b/docs/src/pages/components/autocomplete/CustomizedHook.tsx @@ -135,6 +135,7 @@ export default function CustomizedHook() { focused, setAnchorEl, } = useAutocomplete({ + defaultValue: [top100Films[1]], multiple: true, options: top100Films, getOptionLabel: option => option.title, diff --git a/docs/src/pages/components/autocomplete/GitHubLabel.js b/docs/src/pages/components/autocomplete/GitHubLabel.js index 2c4c9518ad60ef..ae6f5f6ad17914 100644 --- a/docs/src/pages/components/autocomplete/GitHubLabel.js +++ b/docs/src/pages/components/autocomplete/GitHubLabel.js @@ -79,6 +79,7 @@ const useStyles = makeStyles(theme => ({ fontSize: 13, }, option: { + minHeight: 'auto', alignItems: 'flex-start', padding: 8, '&[aria-selected="true"]': { @@ -175,7 +176,6 @@ export default function GitHubLabel() { open onClose={handleClose} multiple - debug classes={{ paper: classes.paper, option: classes.option, diff --git a/docs/src/pages/components/autocomplete/GitHubLabel.tsx b/docs/src/pages/components/autocomplete/GitHubLabel.tsx index d082cc0fe1d18f..c7079b5fe0e684 100644 --- a/docs/src/pages/components/autocomplete/GitHubLabel.tsx +++ b/docs/src/pages/components/autocomplete/GitHubLabel.tsx @@ -80,6 +80,7 @@ const useStyles = makeStyles((theme: Theme) => fontSize: 13, }, option: { + minHeight: 'auto', alignItems: 'flex-start', padding: 8, '&[aria-selected="true"]': { @@ -177,7 +178,6 @@ export default function GitHubLabel() { open onClose={handleClose} multiple - debug classes={{ paper: classes.paper, option: classes.option, diff --git a/docs/src/pages/components/autocomplete/autocomplete.md b/docs/src/pages/components/autocomplete/autocomplete.md index e618b32b43b88f..956d664d0d00b1 100644 --- a/docs/src/pages/components/autocomplete/autocomplete.md +++ b/docs/src/pages/components/autocomplete/autocomplete.md @@ -63,7 +63,7 @@ import useAutocomplete from '@material-ui/lab/useAutocomplete'; {{"demo": "pages/components/autocomplete/CustomizedHook.js"}} -Head to [Customized Autocomplete](#customized-autocomplete) for a customization example with the Autocomplete component instead of the hook. +Head to the [Customized Autocomplete](#customized-autocomplete) section for a customization example with the `Autocomplete` component instead of the hook. ## Asynchronous requests @@ -72,10 +72,13 @@ Head to [Customized Autocomplete](#customized-autocomplete) for a customization ### Google Maps place A customized UI for Google Maps Places Autocomplete. -For this demo, we need to load the [Google Maps JavaScript](https://developers.google.com/maps/documentation/javascript/tutorial) API. {{"demo": "pages/components/autocomplete/GoogleMaps.js"}} +For this demo, we need to load the [Google Maps JavaScript](https://developers.google.com/maps/documentation/javascript/tutorial) API. + +> ⚠️ Before you can start using the Google Maps JavaScript API, you must sign up and create a billing account. + ## Multiple values Also knowned as tags, the user is allowed to enter more than 1 value. @@ -98,13 +101,15 @@ This demo reproduces the GitHub's label picker: {{"demo": "pages/components/autocomplete/GitHubLabel.js"}} +Head to the [Customized hook](#customized-hook) section for a customization example with the `useAutocomplete` hook instead of the component. + ## Highlights The following demo relies on [autosuggest-highlight](https://github.com/moroshko/autosuggest-highlight), a small (1 kB) utility for highlighting text in autosuggest and autocomplete components. {{"demo": "pages/components/autocomplete/Highlights.js"}} -## Customer filter +## Custom filter The component exposes a factory to create a filter method that can provided to the `filerOption` prop. You can use it to change the default option filter behavior. @@ -135,7 +140,9 @@ const filterOptions = createFilterOptions({ {{"demo": "pages/components/autocomplete/Filter.js", "defaultCodeOpen": false}} -For richer filtering mechanisms, it's recommended to look at [match-sorter](https://github.com/kentcdodds/match-sorter). For instance: +### Advanced + +For richer filtering mechanisms, like fuzzy matching, it's recommended to look at [match-sorter](https://github.com/kentcdodds/match-sorter). For instance: ```jsx import matchSorter from 'match-sorter'; diff --git a/docs/static/in-house/tidelift.png b/docs/static/in-house/tidelift.png new file mode 100644 index 0000000000000000000000000000000000000000..933d8eace012987a95f20d7be42172a2f9c5e1fc GIT binary patch literal 12277 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 ({ left: 22, transform: 'translateY(50%)', }, + '@media (pointer: coarse)': { + top: 40, + '$vertical &': { + left: 31, + }, + }, }, /* Styles applied to the mark label element if active (depending on the value). */ markLabelActive: {