diff --git a/src/audio-player-composable/__tests__/audio-player-composable.stories.tsx b/src/audio-player-composable/__tests__/audio-player-composable.stories.tsx index 8f0edb6e98..cd7d460210 100644 --- a/src/audio-player-composable/__tests__/audio-player-composable.stories.tsx +++ b/src/audio-player-composable/__tests__/audio-player-composable.stories.tsx @@ -157,6 +157,18 @@ const myCustomTheme = createTheme({ }, }, }); +const volumeTheme = createTheme({ + name: 'my-custom-volume-theme', + overrides: { + stylePresets: { + customPointerStylePreset: { + base: { + backgroundColor: 'transparent', + }, + }, + }, + }, +}); const VerticalContainer = styled.div` display: inline-flex; @@ -429,7 +441,18 @@ const AudioPlayerInlineLive = (props: Partial) => ( justifyContent="flex-start" > - + Live @@ -645,7 +668,18 @@ export const StoryAudioSubComponents = () => { Vertical Volume Control - + @@ -1026,6 +1060,28 @@ export const StoryAudioPlayerOverrides = () => { /> + + + Volume control vertical with distance between button and slider + + + + + ); }; @@ -1313,6 +1369,22 @@ export const StoryAudioPlayerVolumeControlLayout = () => { Volume control vertical + + Volume control vertical-no pointer and hover in between button and + popover + + ); diff --git a/src/audio-player-composable/components/volume-control/defaults.ts b/src/audio-player-composable/components/volume-control/defaults.ts index d22427c522..87ae861d58 100644 --- a/src/audio-player-composable/components/volume-control/defaults.ts +++ b/src/audio-player-composable/components/volume-control/defaults.ts @@ -23,6 +23,7 @@ export default { stylePreset: 'iconButtonMinimalPrimary', }, popover: { + distance: 'space030', stylePreset: 'audioPlayerVolumeControlPopover', content: { paddingBlock: 'space030', diff --git a/src/audio-player-composable/components/volume-control/types.ts b/src/audio-player-composable/components/volume-control/types.ts index 8e67063b08..5bc9649b49 100644 --- a/src/audio-player-composable/components/volume-control/types.ts +++ b/src/audio-player-composable/components/volume-control/types.ts @@ -23,7 +23,7 @@ export interface AudioPlayerVolumeControlOverridesProps { stylePreset?: MQ; muteButtonIcon: Override; }; - popover?: PopoverProps['overrides']; + popover?: Override; } export interface AudioPlayerVolumeControlProps { diff --git a/src/audio-player-composable/components/volume-control/volume-control.tsx b/src/audio-player-composable/components/volume-control/volume-control.tsx index 687bfb96a9..6ef315087d 100644 --- a/src/audio-player-composable/components/volume-control/volume-control.tsx +++ b/src/audio-player-composable/components/volume-control/volume-control.tsx @@ -22,7 +22,8 @@ import {mergeBreakpointObject} from '../../../utils/merge-breakpoint-object'; import {filterOutFalsyProperties} from '../../../utils/filter-object'; import {getTransitionDuration} from '../../../utils'; import {getTransitionClassName} from '../../../utils/get-transition-class-name'; -import {Popover} from '../../../popover'; +import {Popover, PopoverProps} from '../../../popover'; +import {getComponentOverrides} from '../../../utils/overrides'; const ThemelessAudioPlayerVolumeControl = React.forwardRef< HTMLDivElement, @@ -129,9 +130,30 @@ const ThemelessAudioPlayerVolumeControl = React.forwardRef< overrides={sliderOverrides} /> ); - const popoverOverrides = getPopoverOverrides(theme, overrides); + const popoverContent = ( + + {sliderComponent} + + ); + const DefaultPopover = Popover; + const [PopoverComponent, popoverProps] = getComponentOverrides( + /* istanbul ignore next */ + overrides?.popover, + DefaultPopover, + { + id: 'volume-control-slider-popup', + open: layout === 'vertical' && open, + hidePointer: false, + content: popoverContent, + overrides: popoverOverrides, + header: undefined, + closePosition: 'none', + disableFocusManagement: true, + }, + ); + return ( - - {sliderComponent} - - } - id="volume-control-slider-popup" - header={undefined} - closePosition="none" - disableFocusManagement - overrides={popoverOverrides} - > + - + {useSliderContainer && ( diff --git a/src/theme/__tests__/__snapshots__/theme.test.ts.snap b/src/theme/__tests__/__snapshots__/theme.test.ts.snap index 72062d4e7a..b00933a64d 100644 --- a/src/theme/__tests__/__snapshots__/theme.test.ts.snap +++ b/src/theme/__tests__/__snapshots__/theme.test.ts.snap @@ -1442,6 +1442,7 @@ Object { "paddingBlock": "space030", "paddingInline": "space030", }, + "distance": "space030", "stylePreset": "audioPlayerVolumeControlPopover", }, "slider": Object {