diff --git a/packages/eui/.vrt/reference/forms-euifilterbutton--full-width-and-grow-desktop.png b/packages/eui/.vrt/reference/forms-euifilterbutton--full-width-and-grow-desktop.png index 57c90c5a072b..9161705d82ba 100644 Binary files a/packages/eui/.vrt/reference/forms-euifilterbutton--full-width-and-grow-desktop.png and b/packages/eui/.vrt/reference/forms-euifilterbutton--full-width-and-grow-desktop.png differ diff --git a/packages/eui/.vrt/reference/forms-euifilterbutton--full-width-and-grow-mobile.png b/packages/eui/.vrt/reference/forms-euifilterbutton--full-width-and-grow-mobile.png index bc95caf42f32..74fc74eeb717 100644 Binary files a/packages/eui/.vrt/reference/forms-euifilterbutton--full-width-and-grow-mobile.png and b/packages/eui/.vrt/reference/forms-euifilterbutton--full-width-and-grow-mobile.png differ diff --git a/packages/eui/.vrt/reference/forms-euifilterbutton--high-contrast-desktop.png b/packages/eui/.vrt/reference/forms-euifilterbutton--high-contrast-desktop.png index e7b01a889e00..e93abc28dd62 100644 Binary files a/packages/eui/.vrt/reference/forms-euifilterbutton--high-contrast-desktop.png and b/packages/eui/.vrt/reference/forms-euifilterbutton--high-contrast-desktop.png differ diff --git a/packages/eui/.vrt/reference/forms-euifilterbutton--high-contrast-mobile.png b/packages/eui/.vrt/reference/forms-euifilterbutton--high-contrast-mobile.png index 3cf215d69242..9ca334b1f482 100644 Binary files a/packages/eui/.vrt/reference/forms-euifilterbutton--high-contrast-mobile.png and b/packages/eui/.vrt/reference/forms-euifilterbutton--high-contrast-mobile.png differ diff --git a/packages/eui/.vrt/reference/forms-euifilterbutton--mixed-buttons-desktop.png b/packages/eui/.vrt/reference/forms-euifilterbutton--mixed-buttons-desktop.png new file mode 100644 index 000000000000..5e38d65868a4 Binary files /dev/null and b/packages/eui/.vrt/reference/forms-euifilterbutton--mixed-buttons-desktop.png differ diff --git a/packages/eui/.vrt/reference/forms-euifilterbutton--mixed-buttons-mobile.png b/packages/eui/.vrt/reference/forms-euifilterbutton--mixed-buttons-mobile.png new file mode 100644 index 000000000000..a2c8f051c7c6 Binary files /dev/null and b/packages/eui/.vrt/reference/forms-euifilterbutton--mixed-buttons-mobile.png differ diff --git a/packages/eui/.vrt/reference/forms-euifilterbutton--multiple-buttons-desktop.png b/packages/eui/.vrt/reference/forms-euifilterbutton--multiple-buttons-desktop.png index 1e246a08417f..8c65439b87d0 100644 Binary files a/packages/eui/.vrt/reference/forms-euifilterbutton--multiple-buttons-desktop.png and b/packages/eui/.vrt/reference/forms-euifilterbutton--multiple-buttons-desktop.png differ diff --git a/packages/eui/.vrt/reference/forms-euifilterbutton--multiple-buttons-mobile.png b/packages/eui/.vrt/reference/forms-euifilterbutton--multiple-buttons-mobile.png index c135dadf78d0..7354a545f17d 100644 Binary files a/packages/eui/.vrt/reference/forms-euifilterbutton--multiple-buttons-mobile.png and b/packages/eui/.vrt/reference/forms-euifilterbutton--multiple-buttons-mobile.png differ diff --git a/packages/eui/.vrt/reference/forms-euifilterbutton--playground-desktop.png b/packages/eui/.vrt/reference/forms-euifilterbutton--playground-desktop.png index 7193af284c53..fca538e9f9ec 100644 Binary files a/packages/eui/.vrt/reference/forms-euifilterbutton--playground-desktop.png and b/packages/eui/.vrt/reference/forms-euifilterbutton--playground-desktop.png differ diff --git a/packages/eui/.vrt/reference/forms-euifilterbutton--playground-mobile.png b/packages/eui/.vrt/reference/forms-euifilterbutton--playground-mobile.png index bcb70c927948..3ff482aa2e66 100644 Binary files a/packages/eui/.vrt/reference/forms-euifilterbutton--playground-mobile.png and b/packages/eui/.vrt/reference/forms-euifilterbutton--playground-mobile.png differ diff --git a/packages/eui/.vrt/reference/forms-euifiltergroup--multiple-popovers-desktop.png b/packages/eui/.vrt/reference/forms-euifiltergroup--multiple-popovers-desktop.png index 86c986000c57..54822b03047a 100644 Binary files a/packages/eui/.vrt/reference/forms-euifiltergroup--multiple-popovers-desktop.png and b/packages/eui/.vrt/reference/forms-euifiltergroup--multiple-popovers-desktop.png differ diff --git a/packages/eui/.vrt/reference/forms-euifiltergroup--multiple-popovers-mobile.png b/packages/eui/.vrt/reference/forms-euifiltergroup--multiple-popovers-mobile.png index 26d8800c2511..d973db74bbc4 100644 Binary files a/packages/eui/.vrt/reference/forms-euifiltergroup--multiple-popovers-mobile.png and b/packages/eui/.vrt/reference/forms-euifiltergroup--multiple-popovers-mobile.png differ diff --git a/packages/eui/.vrt/reference/forms-euifiltergroup--playground-desktop.png b/packages/eui/.vrt/reference/forms-euifiltergroup--playground-desktop.png index b4a58936dfa3..135c1ec8db5e 100644 Binary files a/packages/eui/.vrt/reference/forms-euifiltergroup--playground-desktop.png and b/packages/eui/.vrt/reference/forms-euifiltergroup--playground-desktop.png differ diff --git a/packages/eui/.vrt/reference/forms-euifiltergroup--playground-mobile.png b/packages/eui/.vrt/reference/forms-euifiltergroup--playground-mobile.png index 0618899efc5b..05b9a5f36996 100644 Binary files a/packages/eui/.vrt/reference/forms-euifiltergroup--playground-mobile.png and b/packages/eui/.vrt/reference/forms-euifiltergroup--playground-mobile.png differ diff --git a/packages/eui/.vrt/reference/forms-euifiltergroup--with-popover-desktop.png b/packages/eui/.vrt/reference/forms-euifiltergroup--with-popover-desktop.png index 21611c7f5263..a1818368bac6 100644 Binary files a/packages/eui/.vrt/reference/forms-euifiltergroup--with-popover-desktop.png and b/packages/eui/.vrt/reference/forms-euifiltergroup--with-popover-desktop.png differ diff --git a/packages/eui/.vrt/reference/forms-euifiltergroup--with-popover-mobile.png b/packages/eui/.vrt/reference/forms-euifiltergroup--with-popover-mobile.png index fa3d33d94f67..9fbafb5a60ed 100644 Binary files a/packages/eui/.vrt/reference/forms-euifiltergroup--with-popover-mobile.png and b/packages/eui/.vrt/reference/forms-euifiltergroup--with-popover-mobile.png differ diff --git a/packages/eui/.vrt/reference/forms-euisearchbar-euisearchbar--playground-desktop.png b/packages/eui/.vrt/reference/forms-euisearchbar-euisearchbar--playground-desktop.png index bf9c325b3716..4398e4f3fb01 100644 Binary files a/packages/eui/.vrt/reference/forms-euisearchbar-euisearchbar--playground-desktop.png and b/packages/eui/.vrt/reference/forms-euisearchbar-euisearchbar--playground-desktop.png differ diff --git a/packages/eui/.vrt/reference/forms-euisearchbar-euisearchbar--playground-mobile.png b/packages/eui/.vrt/reference/forms-euisearchbar-euisearchbar--playground-mobile.png index b2b67a69ac81..90b2fde93402 100644 Binary files a/packages/eui/.vrt/reference/forms-euisearchbar-euisearchbar--playground-mobile.png and b/packages/eui/.vrt/reference/forms-euisearchbar-euisearchbar--playground-mobile.png differ diff --git a/packages/eui/.vrt/reference/forms-euisearchbar-euisearchbarfilters--playground-desktop.png b/packages/eui/.vrt/reference/forms-euisearchbar-euisearchbarfilters--playground-desktop.png index fe99a2a0c15b..fff779e6845b 100644 Binary files a/packages/eui/.vrt/reference/forms-euisearchbar-euisearchbarfilters--playground-desktop.png and b/packages/eui/.vrt/reference/forms-euisearchbar-euisearchbarfilters--playground-desktop.png differ diff --git a/packages/eui/.vrt/reference/forms-euisearchbar-euisearchbarfilters--playground-mobile.png b/packages/eui/.vrt/reference/forms-euisearchbar-euisearchbarfilters--playground-mobile.png index 6b4eb9f415b4..a372a540c1f4 100644 Binary files a/packages/eui/.vrt/reference/forms-euisearchbar-euisearchbarfilters--playground-mobile.png and b/packages/eui/.vrt/reference/forms-euisearchbar-euisearchbarfilters--playground-mobile.png differ diff --git a/packages/eui/.vrt/reference/tabular-content-euiinmemorytable--kitchen-sink-desktop.png b/packages/eui/.vrt/reference/tabular-content-euiinmemorytable--kitchen-sink-desktop.png index 490c81f200cb..45fe60fefc9c 100644 Binary files a/packages/eui/.vrt/reference/tabular-content-euiinmemorytable--kitchen-sink-desktop.png and b/packages/eui/.vrt/reference/tabular-content-euiinmemorytable--kitchen-sink-desktop.png differ diff --git a/packages/eui/.vrt/reference/tabular-content-euiinmemorytable--kitchen-sink-mobile.png b/packages/eui/.vrt/reference/tabular-content-euiinmemorytable--kitchen-sink-mobile.png index cce65f7d8790..4f690640fc56 100644 Binary files a/packages/eui/.vrt/reference/tabular-content-euiinmemorytable--kitchen-sink-mobile.png and b/packages/eui/.vrt/reference/tabular-content-euiinmemorytable--kitchen-sink-mobile.png differ diff --git a/packages/eui/changelogs/upcoming/9953.md b/packages/eui/changelogs/upcoming/9953.md index 0451b89e5556..d1ccffe00f46 100644 --- a/packages/eui/changelogs/upcoming/9953.md +++ b/packages/eui/changelogs/upcoming/9953.md @@ -1,5 +1,4 @@ - Updated styles on `EuiButtonGroup` with legacy Options API -- Updated styles of `EuiFilterGroup` and `EuiFilterButton` to align with `EuiButtonGroup` - Updated usages of `EuiButtonGroup` in `EuiDataGrid`'s display selector and column sorting to use the Children API - Updated `EuiSuperDatePicker`'s time window buttons to use `EuiButtonGroup` with Children API diff --git a/packages/eui/changelogs/upcoming/9961.md b/packages/eui/changelogs/upcoming/9961.md new file mode 100644 index 000000000000..53719bc8b5e6 --- /dev/null +++ b/packages/eui/changelogs/upcoming/9961.md @@ -0,0 +1,5 @@ +- Updated styles of `EuiFilterButton` +- Updated `EuiFilterGroup` + - Updated styles + - Added `display` prop (values: `'regular' | 'highlighted'`) to render different visual toggle variants + - Added `showDividers` prop to optionally render dividers between group children \ No newline at end of file diff --git a/packages/eui/src/components/button/button_context.tsx b/packages/eui/src/components/button/button_context.tsx index 57ae990c48c8..9b2a0677896f 100644 --- a/packages/eui/src/components/button/button_context.tsx +++ b/packages/eui/src/components/button/button_context.tsx @@ -31,7 +31,10 @@ export const EuiButtonContext = createContext<{ * Set by `EuiButtonGroup` with `variant="selection"` to resolve per-button * selected state and its derived display props. */ - getSelectionProps?: (id: string) => { + getSelectionProps?: ( + id: string, + isDisabled?: boolean + ) => { isSelected: boolean; fill: boolean; display?: 'fill' | 'base'; diff --git a/packages/eui/src/components/button/button_group/button_group.styles.ts b/packages/eui/src/components/button/button_group/button_group.styles.ts index c5a2ce0e6a7d..ccf5d9339f20 100644 --- a/packages/eui/src/components/button/button_group/button_group.styles.ts +++ b/packages/eui/src/components/button/button_group/button_group.styles.ts @@ -263,8 +263,10 @@ export const euiButtonGroupButtonsStyles = (euiThemeContext: UseEuiTheme) => { ${segmentedChildrenStyles} - *:where(.euiButton, .euiButtonIcon):is(${euiDisabledSelector}) { - background-color: transparent; + *:where(.euiButton, .euiButtonIcon) { + &:where(:is(${euiDisabledSelector}):not([aria-pressed='true'])) { + background-color: transparent; + } } &:where([data-dividers='true'] &) { @@ -316,20 +318,22 @@ export const euiButtonGroupButtonsStyles = (euiThemeContext: UseEuiTheme) => { &:where([data-variant='selection'][data-display='regular'] &) { *:where(.euiButton, .euiButtonIcon):is([aria-pressed='true']) { - background-color: ${euiTheme.colors.backgroundLightText}; + &:not(:is(${euiDisabledSelector})) { + background-color: ${euiTheme.colors.backgroundLightText}; - ${highContrastModeStyles(euiThemeContext, { - none: ` - background-color: ${euiTheme.colors.backgroundLightText}; - `, - preferred: ` - border: ${euiTheme.border.thin}; - `, - forced: ` - background-color: ${euiTheme.colors.fullShade}; - border: none; - `, - })} + ${highContrastModeStyles(euiThemeContext, { + none: ` + background-color: ${euiTheme.colors.backgroundLightText}; + `, + preferred: ` + border: ${euiTheme.border.thin}; + `, + forced: ` + background-color: ${euiTheme.colors.fullShade}; + border: none; + `, + })} + } } } @@ -343,6 +347,10 @@ export const euiButtonGroupButtonsStyles = (euiThemeContext: UseEuiTheme) => { `, })} } + + *:where(.euiButton, .euiButtonIcon):is(${euiDisabledSelector}) { + background-color: transparent; + } } `, noWrap: css` @@ -454,7 +462,7 @@ const _highContrastStyles = (euiThemeContext: UseEuiTheme) => { color: ${euiTheme.colors.emptyShade}; background-color: ${euiTheme.colors.fullShade}; - &:is(:hover, :focus):not(${euiDisabledSelector}) { + &:is(:hover, :focus):not(:is(${euiDisabledSelector})) { &::before { border-color: ${euiTheme.colors.textInverse}; } diff --git a/packages/eui/src/components/button/button_group/button_group.tsx b/packages/eui/src/components/button/button_group/button_group.tsx index 58dd541a96c9..71de709e7609 100644 --- a/packages/eui/src/components/button/button_group/button_group.tsx +++ b/packages/eui/src/components/button/button_group/button_group.tsx @@ -468,10 +468,12 @@ export const EuiButtonGroupChildren: FunctionComponent = ({ fill: false, }), ...(isSelection && { - getSelectionProps: (id: string) => { + getSelectionProps: (id: string, _isDisabled?: boolean) => { const selected = isSelected(id); const isInverse = display === 'inverse'; - const hasFill = selected && display === 'highlighted'; + const hasFill = + (selected && display === 'highlighted') || + !!(selected && _isDisabled); return { isSelected: selected, diff --git a/packages/eui/src/components/button/use_button_common_props.ts b/packages/eui/src/components/button/use_button_common_props.ts index 160237f65d4c..5a593cbb4125 100644 --- a/packages/eui/src/components/button/use_button_common_props.ts +++ b/packages/eui/src/components/button/use_button_common_props.ts @@ -89,7 +89,7 @@ export function useEuiButtonCommonProps< }); const selectionProps = - id != null ? groupContext.getSelectionProps?.(id) : undefined; + id != null ? groupContext.getSelectionProps?.(id, isDisabled) : undefined; const onClick = selectionProps ? (event: React.MouseEvent) => { diff --git a/packages/eui/src/components/filter_group/__snapshots__/filter_button.test.tsx.snap b/packages/eui/src/components/filter_group/__snapshots__/filter_button.test.tsx.snap index e31877c2643f..d58dc5921b47 100644 --- a/packages/eui/src/components/filter_group/__snapshots__/filter_button.test.tsx.snap +++ b/packages/eui/src/components/filter_group/__snapshots__/filter_button.test.tsx.snap @@ -2,77 +2,62 @@ exports[`EuiFilterButton does not render a badge or count if numFilters is not passed 1`] = `
`; exports[`EuiFilterButton props badgeColor renders 1`] = `
`; exports[`EuiFilterButton props grow can be turned off 1`] = `
`; exports[`EuiFilterButton props iconType and iconSide renders 1`] = `
`; exports[`EuiFilterButton props isSelected renders 1`] = `
`; exports[`EuiFilterButton props numActiveFilters and hasActiveFilters renders 1`] = `
`; exports[`EuiFilterButton props withNext renders 1`] = `
`; exports[`EuiFilterButton renders 1`] = `
`; exports[`EuiFilterButton renders zero properly 1`] = `