diff --git a/docs/data/about/teamMembers.json b/docs/data/about/teamMembers.json index 607ed9b30eb68c..3adae23e7482f4 100644 --- a/docs/data/about/teamMembers.json +++ b/docs/data/about/teamMembers.json @@ -80,15 +80,6 @@ "github": "Janpot", "twitter": null }, - { - "name": "José Freitas", - "title": "Technical Product Manager", - "about": "Art, fiction, and bar philosophy.", - "location": "Augsburg, Germany", - "locationCountry": "de", - "github": "joserodolfofreitas", - "twitter": "zehdefreitas" - }, { "name": "Andrew Cherniavskyi", "title": "Tech Lead — xGrid", @@ -125,15 +116,6 @@ "github": "MBilalShafi", "twitter": "MBilalShafi" }, - { - "name": "Albert Yu", - "title": "Software Engineer — Core", - "about": "Minimalist, dog lover 🏔🐕.", - "location": "Hong Kong", - "locationCountry": "hk", - "github": "mj12albert", - "twitter": "mj12albert" - }, { "name": "Romain Grégoire", "title": "Software Engineer — xGrid", @@ -296,15 +278,6 @@ "github": "rita-codes", "twitter": "rita_codes" }, - { - "name": "Connor Davis", - "title": "Software Engineer — Core", - "about": "Community gardener, non-profit organizer, and nature enthusiast.", - "location": "New York City, US", - "locationCountry": "us", - "github": "dav-is", - "twitter": "connordav_is" - }, { "name": "Luis Vasallo", "title": "Account Executive — Sales", diff --git a/docs/public/static/branding/about/albert-yu.png b/docs/public/static/branding/about/albert-yu.png deleted file mode 100644 index 6f016dd96dcfc6..00000000000000 Binary files a/docs/public/static/branding/about/albert-yu.png and /dev/null differ diff --git a/docs/public/static/branding/about/connor-davis.png b/docs/public/static/branding/about/connor-davis.png deleted file mode 100644 index 600681cb4fbd27..00000000000000 Binary files a/docs/public/static/branding/about/connor-davis.png and /dev/null differ diff --git "a/docs/public/static/branding/about/jos\303\251-freitas.png" "b/docs/public/static/branding/about/jos\303\251-freitas.png" deleted file mode 100644 index 566bf84291d796..00000000000000 Binary files "a/docs/public/static/branding/about/jos\303\251-freitas.png" and /dev/null differ diff --git a/packages/mui-material/src/ButtonGroup/ButtonGroup.js b/packages/mui-material/src/ButtonGroup/ButtonGroup.js index 8a4d9cb753be97..d10893c9b8b3c5 100644 --- a/packages/mui-material/src/ButtonGroup/ButtonGroup.js +++ b/packages/mui-material/src/ButtonGroup/ButtonGroup.js @@ -270,8 +270,8 @@ const ButtonGroup = React.forwardRef(function ButtonGroup(inProps, ref) { color, disabled, disableElevation, - disableFocusRipple, - disableRipple, + disableFocusRipple: props.disableFocusRipple, + disableRipple: props.disableRipple, fullWidth, size, variant, @@ -280,8 +280,8 @@ const ButtonGroup = React.forwardRef(function ButtonGroup(inProps, ref) { color, disabled, disableElevation, - disableFocusRipple, - disableRipple, + props.disableFocusRipple, + props.disableRipple, fullWidth, size, variant, diff --git a/packages/mui-material/src/ButtonGroup/ButtonGroup.test.js b/packages/mui-material/src/ButtonGroup/ButtonGroup.test.js index c7865974a097c2..f25d73d32acaa6 100644 --- a/packages/mui-material/src/ButtonGroup/ButtonGroup.test.js +++ b/packages/mui-material/src/ButtonGroup/ButtonGroup.test.js @@ -1,5 +1,5 @@ import { expect } from 'chai'; -import { createRenderer, screen } from '@mui/internal-test-utils'; +import { createRenderer, screen, simulateKeyboardDevice, isJsdom } from '@mui/internal-test-utils'; import ButtonGroup, { buttonGroupClasses as classes } from '@mui/material/ButtonGroup'; import { ThemeProvider, createTheme } from '@mui/material/styles'; import Button, { buttonClasses } from '@mui/material/Button'; @@ -156,6 +156,90 @@ describe('', () => { expect(container.querySelector('.touchRipple')).to.equal(null); }); + it('applies a global disableRipple (MuiButtonBase.defaultProps) to grouped buttons', async () => { + const { container } = render( + + + + + , + ); + await ripple.startTouch(screen.getByRole('button')); + expect(container.querySelector('.touchRipple')).to.equal(null); + }); + + it('explicit disableRipple on ButtonGroup overrides the global default', async () => { + const { container } = render( + + + + + , + ); + await ripple.startTouch(screen.getByRole('button')); + expect(container.querySelector('.touchRipple')).not.to.equal(null); + }); + + // JSDOM doesn't support :focus-visible + it.skipIf(isJsdom())( + 'applies a global disableFocusRipple (MuiButton.defaultProps) to grouped buttons', + async function test() { + const { container } = render( + + + + + , + ); + const button = screen.getByRole('button'); + + simulateKeyboardDevice(); + await ripple.startFocus(button); + + expect(container.querySelector('.pulsate-focus-visible')).to.equal(null); + }, + ); + + // JSDOM doesn't support :focus-visible + it.skipIf(isJsdom())( + 'explicit disableFocusRipple on ButtonGroup overrides the global default', + async function test() { + const { container } = render( + + + + + , + ); + const button = screen.getByRole('button'); + + simulateKeyboardDevice(); + await ripple.startFocus(button); + + expect(container.querySelector('.pulsate-focus-visible')).not.to.equal(null); + }, + ); + it('should not be fullWidth by default', () => { const { container } = render( @@ -204,8 +288,9 @@ describe('', () => { expect(context.variant).to.equal('contained'); expect(context.size).to.equal('large'); expect(context.fullWidth).to.equal(false); - expect(context.disableRipple).to.equal(false); - expect(context.disableFocusRipple).to.equal(false); + // Unset ripple flags are not forwarded, so each child resolves its own default (#32970). + expect(context.disableRipple).to.equal(undefined); + expect(context.disableFocusRipple).to.equal(undefined); expect(context.disableElevation).to.equal(false); expect(context.disabled).to.equal(false); expect(context.color).to.equal('primary');