diff --git a/packages/react/src/components/ComboBox/ComboBox.tsx b/packages/react/src/components/ComboBox/ComboBox.tsx index 225a60bf6159..3903ff5168c0 100644 --- a/packages/react/src/components/ComboBox/ComboBox.tsx +++ b/packages/react/src/components/ComboBox/ComboBox.tsx @@ -588,6 +588,7 @@ const ComboBox = forwardRef( [`${prefix}--list-box--up`]: direction === 'top', [`${prefix}--combo-box--warning`]: showWarning, [`${prefix}--combo-box--readonly`]: readOnly, + [`${prefix}--autoalign`]: autoAlign, }); const titleClasses = cx(`${prefix}--label`, { diff --git a/packages/react/src/components/Dropdown/Dropdown.tsx b/packages/react/src/components/Dropdown/Dropdown.tsx index 4a8336f588b6..7e85b61de651 100644 --- a/packages/react/src/components/Dropdown/Dropdown.tsx +++ b/packages/react/src/components/Dropdown/Dropdown.tsx @@ -390,7 +390,7 @@ const Dropdown = React.forwardRef( [`${prefix}--dropdown--readonly`]: readOnly, [`${prefix}--dropdown--${size}`]: size, [`${prefix}--list-box--up`]: direction === 'top', - [`${prefix}--dropdown--autoalign`]: autoAlign, + [`${prefix}--autoalign`]: autoAlign, }); const titleClasses = cx(`${prefix}--label`, { diff --git a/packages/react/src/components/Menu/Menu.tsx b/packages/react/src/components/Menu/Menu.tsx index 889e3d9a6d93..9e5cb634d552 100644 --- a/packages/react/src/components/Menu/Menu.tsx +++ b/packages/react/src/components/Menu/Menu.tsx @@ -424,6 +424,7 @@ const Menu = forwardRef(function Menu( [`${prefix}--menu--shown`]: (open && !legacyAutoalign) || (position[0] >= 0 && position[1] >= 0), [`${prefix}--menu--with-icons`]: childContext.state.hasIcons, + [`${prefix}--autoalign`]: !legacyAutoalign, } ); diff --git a/packages/react/src/components/Modal/Modal.stories.js b/packages/react/src/components/Modal/Modal.stories.js index 6002df50be4d..cc34bad00e93 100644 --- a/packages/react/src/components/Modal/Modal.stories.js +++ b/packages/react/src/components/Modal/Modal.stories.js @@ -12,9 +12,12 @@ import Modal from './Modal'; import Button from '../Button'; import Select from '../Select'; import MultiSelect from '../MultiSelect'; +import { Checkbox as CheckboxIcon } from '@carbon/icons-react'; +import { Popover, PopoverContent } from '../Popover'; import Dropdown from '../Dropdown'; import SelectItem from '../SelectItem'; import TextInput from '../TextInput'; +import ComboBox from '../ComboBox'; import mdx from './Modal.mdx'; import { StructuredListWrapper, @@ -295,6 +298,7 @@ export const WithScrollingContent = () => { export const Playground = ({ numberOfButtons, ...args }) => { const [open, setOpen] = useState(true); + const [popoverOpen, setPopoverOpen] = useState(false); return ( <> @@ -315,6 +319,21 @@ export const Playground = ({ numberOfButtons, ...args }) => { organization to a URL that you own. A custom domain can be a shared domain, a shared subdomain, or a shared domain and host.

+

+ Custom domains direct requests for your apps in this Cloud Foundry + organization to a URL that you own. A custom domain can be a shared + domain, a shared subdomain, or a shared domain and host. +

+

+ Custom domains direct requests for your apps in this Cloud Foundry + organization to a URL that you own. A custom domain can be a shared + domain, a shared subdomain, or a shared domain and host. +

+

+ Custom domains direct requests for your apps in this Cloud Foundry + organization to a URL that you own. A custom domain can be a shared + domain, a shared subdomain, or a shared domain and host. +

{ placeholder="e.g. github.com" style={{ marginBottom: '1rem' }} /> - + + { itemToString={(item) => (item ? item.text : '')} direction="top" /> + (item ? item.text : '')} + />

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean id @@ -373,6 +428,23 @@ export const Playground = ({ numberOfButtons, ...args }) => { condimentum risus. Nulla facilisi. Etiam venenatis molestie tellus. Quisque consectetur non risus eu rutrum.{' '}

+ + +
+ { + setPopoverOpen(!popoverOpen); + }} + /> +
+ +

Popover Example

+

+ This server has 150 GB of block storage remaining. +

+
+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean id accumsan augue. Phasellus consequat augue vitae tellus tincidunt diff --git a/packages/react/src/components/MultiSelect/FilterableMultiSelect.tsx b/packages/react/src/components/MultiSelect/FilterableMultiSelect.tsx index e0a9a2def1f3..f39e1f6d48a0 100644 --- a/packages/react/src/components/MultiSelect/FilterableMultiSelect.tsx +++ b/packages/react/src/components/MultiSelect/FilterableMultiSelect.tsx @@ -462,6 +462,7 @@ const FilterableMultiSelect = React.forwardRef(function FilterableMultiSelect< [`${prefix}--list-box__wrapper--fluid--invalid`]: isFluid && invalid, [`${prefix}--list-box__wrapper--fluid--focus`]: isFluid && isFocused, [`${prefix}--list-box__wrapper--slug`]: slug, + [`${prefix}--autoalign`]: autoAlign, } ); const helperId = !helperText diff --git a/packages/react/src/components/MultiSelect/MultiSelect.tsx b/packages/react/src/components/MultiSelect/MultiSelect.tsx index 380abda132f7..392f16774cba 100644 --- a/packages/react/src/components/MultiSelect/MultiSelect.tsx +++ b/packages/react/src/components/MultiSelect/MultiSelect.tsx @@ -551,6 +551,7 @@ const MultiSelect = React.forwardRef( selectedItems && selectedItems.length > 0, [`${prefix}--list-box--up`]: direction === 'top', [`${prefix}--multi-select--readonly`]: readOnly, + [`${prefix}--autoalign`]: autoAlign, [`${prefix}--multi-select--selectall`]: selectAll, }); diff --git a/packages/react/src/components/OverflowMenu/next/index.tsx b/packages/react/src/components/OverflowMenu/next/index.tsx index b291398a4fca..e8d7d429bbb8 100644 --- a/packages/react/src/components/OverflowMenu/next/index.tsx +++ b/packages/react/src/components/OverflowMenu/next/index.tsx @@ -160,7 +160,8 @@ const OverflowMenu = React.forwardRef( const containerClasses = classNames( className, - `${prefix}--overflow-menu__container` + `${prefix}--overflow-menu__container`, + { [`${prefix}--autoalign`]: autoAlign } ); const menuClasses = classNames( diff --git a/packages/react/src/components/Popover/index.tsx b/packages/react/src/components/Popover/index.tsx index b71854c40d50..ca488189094a 100644 --- a/packages/react/src/components/Popover/index.tsx +++ b/packages/react/src/components/Popover/index.tsx @@ -347,7 +347,7 @@ export const Popover: PopoverComponent = React.forwardRef( [`${prefix}--popover--drop-shadow`]: dropShadow, [`${prefix}--popover--high-contrast`]: highContrast, [`${prefix}--popover--open`]: open, - [`${prefix}--popover--auto-align`]: autoAlign, + [`${prefix}--popover--auto-align ${prefix}--autoalign`]: autoAlign, [`${prefix}--popover--${currentAlignment}`]: true, [`${prefix}--popover--tab-tip`]: isTabTip, }, diff --git a/packages/react/src/components/Toggletip/index.tsx b/packages/react/src/components/Toggletip/index.tsx index c04613c5e556..c30d5c31f6a3 100644 --- a/packages/react/src/components/Toggletip/index.tsx +++ b/packages/react/src/components/Toggletip/index.tsx @@ -110,6 +110,7 @@ export function Toggletip({ const id = useId(); const className = cx(`${prefix}--toggletip`, customClassName, { [`${prefix}--toggletip--open`]: open, + [`${prefix}--autoalign`]: autoAlign, }); const actions = { toggle: () => { diff --git a/packages/styles/scss/components/modal/_modal.scss b/packages/styles/scss/components/modal/_modal.scss index 6a7785de785d..7265a53c8d67 100644 --- a/packages/styles/scss/components/modal/_modal.scss +++ b/packages/styles/scss/components/modal/_modal.scss @@ -272,7 +272,7 @@ } //removing mask image in case we have dropdown in modal - .#{$prefix}--modal-scroll-content:has(.#{$prefix}--dropdown--autoalign) { + .#{$prefix}--modal-scroll-content:has(.#{$prefix}--autoalign) { mask-image: none; }