- Highlights are now generated using the CSS custom highlight api.
Thanks to recent improvements in browser and screen-reader support it has been possible to make a number of simplifications.
- Remove non-breaking space separators between options as the Mac Chrome bug requiring this has been resolved
- Use aria-labelledby for all option labels involving groups instead of inserting visually hidden text
- Removes the
renderGroupAccessibleLabelandrenderTableCellColumnAccessibleLabelfrom all components as these are no longer required - Removed
managedFocusoption. Focus for screen-readers now entirely usesaria-activedescendantwhich now works reliably over all screen-readers - Switch to the ARIA 1.2 pattern as this now works reliably over all screen-readers
- Adjusted Escape to behave like the aria-practices recommendations. Press once to close and press a second time to clear the value.
- Pressing Alt + ArrowUp no longer clears the search value
- A drop down with no options is now focusable
- Fix an issue where drop down aria-live message was prefixed with "undefined"
- Fix the scrolling options not working in the drop down
- Fix pressing Alt + ArrowUp on a dropdown changes the selected option to the default option
- Fix stylelint-config-standard-scss was accidentally added to dependencies instead of devDependencies
- Added
tabindex="-1"to the listbox table container to prevent it becoming an extra tab-stop - Fix floating UI peer dependency was pinned to a minor version
- Updates SASS from @import to @use to fix deprecation warnings (potentially breaking)
- Updates SASS to fix mixed declaration errors
- Do not close a combo-box or drop-down if the focus is leaving the browser window
- Add Node 22 to testing matrix
- Switch to eslint 9
- If the value is updated for a combo-box and the listbox is visible and there is no user entered search, onSearch will be triggered
- React 18.3 support
- Remove default props in favour of default parameters
- Fix warnings on spreading
key
- Remove Node 16 from the test matrix
- Fix misspelled condition means layout functions are run without the listbox or input
- (Potentially breaking): Layout functions are now called when the listbox is hidden, allowing clean-up methods to be run
layout_popoveris not hiding the popover when a listbox is closed which can result in the listbox not being in the top layer
- Added a new
layout_popoverto resolves issues displaying list boxes inside of scrolling areas or a modal<dialog>. This has a peer dependency of floating-ui
placeholderOptionshould not produce an option for<Radios>and<Checkboxes>- layout functions could be called without the listbox or input as null if the ref changed before the animation frame
placeholderOptionshould allow a blank value
marked-highlightshould have been a devDependency
- Simplification of how focus is managed to fix issues with the focus jumping back when tabbing from a combo-box
- The remove cross will no longer show if a selected option's label is blank
- Search suggestions example was not displaying any options
onSearchwas not being called with an empty string when a combo-box was cleared
renderGroupNameoption added to<ComboBox>and<DropDown>
- Visually hidden incorrectly applied on non-breaking spaces in a list box
renderGroupNameoption added to<ComboBox>and<DropDown>
- Visually hidden incorrectly applied on non-breaking spaces in a list box
<Checkboxes>and<Radios>now have a space between the label and description
<Checkboxes>and<Radios>now have arenderLabelWrapperoption
- Table layout now allows a
cellClassproperty on columns to add additional classes to cells.
<Radios>and<Checkboxes>now support anonChangeevent handlernameandtitleare now used as fallbacks forlabelwhen passing optionshintis now used as a fallback fordescriptionwhen passing options to<Checkboxes>and<Radios>
- Added
clearOnSelectoption to<ComboBox>
- Fixed an issue with VoiceOver on Chrome on Monterey removing spaces while reading grouped or table options
- (Breaking) The project is now distributed as es6 modules only
- (Breaking)
onLayoutListBoxnow takes an array of handlers anduseLayoutListBoxis removed - (Breaking) All
highlight…methods have been replaced withHighlight…react components - Substring highlight now highlights all matching parts
- Some optimisations to reduce renders
- All top level components are now wrapped in memo
- The listbox will now scroll to the top when the options change and no option is focused
layoutMaxHeightwill not move the list-box above the combo-box if there is room below.
- Added a
userEventoption toselectComboBoxOption - Added
closeOnEnteroption
- React 18 support
- Fixed some unnecessary state updates when selecting options
- Fix label is set to
undefinedif option is supplied with no label - Fix useAsyncSearch not setting options to
null - Fix focused option not scrolling into view in some circumstances
userEventis now an optional "peer dependency" and not an "optional dependency"
- Fix the highlighter helpers not being exported
- Fix layoutColumnsAlignLeft not aligning columns where there are groups and no table header
- Fix layoutMaxHeight and layoutMaxWidth should use the window height if contain does not resolve to an element
- Fix support for @testing-library/user-event version 14
- Fix scrollbars not being accounted for when using
layoutMaxWidthandlayoutMaxHeight
- Added the
<Radios>component - Added the
<Checkboxes>component - Added
multiplesupport to<Select>component
- Fix using mapOption combined with setting the value using the option identity did not work.
- Fix disabled and read-only could still open the combo-box
- Disable the clear button if the combo-box is disabled or read-only
- Added
propertyoption to highlighters - Adding highlighters examples
- Remove bold from highlight style
- Fix layoutColumnsAlignLeft wrapping
- Fix layoutColumnsAlignLeft wrapping in Microsoft Edge
- Fix useAsyncSearch should return undefined when catching errors
- fix accessible labels are not separated from value with a space
- do not read accessible column header if the column is empty
- allow custom cell classes in columns
- added tabBetweenOptions
- switched to ARIA 1.0
- redo layout handlers
- added the selectOnBlur option to combo box
- settings options to undefined on a combo-box suppresses the not found message
- changed highlight methods to return a render function
- export highlighters
- swapped order of the returned values for useConfineListBox
- simplified useAsyncSearch
- Update focus and contrast styles
- Added
classPrefixproperty and restructured classes <ListBoxTable>is refactored intoComboBoxTableandDropDownTablecomponents- Customization
- Customization now uses render functions
- Removed
contextas it is no longer required - Removed
useConfineListBoxTableis it is no longer required
- Highlighters
- Highlighters are now render functions
<PreHighlighter>renamed todelimitedHighlight
- Searchers
- useSearch is now useAsyncSearch and has a different signature
- useTokenSearch and useAsyncSearch have a different signature
- Combo box
- onChange is no longer called when selecting a value