MenuItem, MenuItemCheckbox, MenuItemLink: Fixes an issue which could cause MenuItems to require multiple taps to trigger on iOS
Support null for badge and icon slots, in addition to undefined.
Previously, badge and icon props could only be explicitly omitted with undefined.
This change allows passing null.
EXAMPLE USAGE:
+ <Button icon={null} />
Standardise icon slot spacing
Normalise the space between the icon slot and component content across the system.
Support data attribute boolean values
The data attribute map now supports boolean values. This provides an improvement for the developer experience, no longer having to convert values to strings explicitly.
EXAMPLE USAGE:
<Component data={{ 'custom-attribute': true, }} /> // => <div data-custom-attribute="true" />
MenuItem, MenuItemLink, MenuRenderer, OverflowMenu: Add icon support
Provides a designed slot for adding an icon to MenuItem and MenuItemLink. To compliment this we have introduced reserveIconSpace on both MenuRenderer and OverflowMenu so the labels in menu items without icons align with the labels of menu items with an icon.
EXAMPLE USAGE:
<MenuRenderer reserveIconSpace> <MenuItem // ... icon={<IconBookmark />} > Menu Item </MenuItem> </MenuRenderer>
MenuItem, MenuItemLink, MenuItemChecklist: Add badge support
Provides a designed slot for adding a Badge to all the variants of a menu item.
EXAMPLE USAGE:
<MenuRenderer> <MenuItem // ... badge={<Badge>Badge</Badge>} > Menu Item </MenuItem> </MenuRenderer>
MenuItem, MenuItemLink, MenuItemCheckbox: Use span elements internally for more valid HTML.
MenuItem: Prevent click events from bubbling
MenuItem, MenuItemLink: Add support for critical tone
For destructive actions (e.g. "Delete") you can now provide a tone prop with a value of "critical".
EXAMPLE USAGE
<OverflowMenu label="Options"> <MenuItem tone="critical" onClick={() => {}}> Delete </MenuItem> </OverflowMenu>
Added MenuItemLink component
You can now render semantic links within menu components, e.g. OverflowMenu, MenuRenderer
For example:
<OverflowMenu label="Options"> <MenuItem onClick={() => {}}>Button</MenuItem> <MenuItemLink href="...">Link</MenuItemLink> </OverflowMenu>
Note that links are rendered internally using Link. If you want to customise the rendering of these links, you need to provide a custom linkComponent implementation to BraidProvider.