-
Notifications
You must be signed in to change notification settings - Fork 13
Changelog
- Support JSX.Element in
FileUpload
error message
- Set
LocalNavDropdown
title to semibold - Fix issue where using
Modal
together withLocalNavDropdown
causes the background window to be scrollable
- Fix custom z-index not being set on
Overlay
- Fix value not being updated when applying input transformation in
Textarea
- New
LocalNavMenu
andLocalNavDropdown
components. Details
Note
Peer dependencies @floating-ui/dom
and @floating-ui/react
introduced in this version
- Extend the hiding of
DateRangeInput
action buttons to mobile ifwithButton={false}
- Enhance
Popover
and floating-enhanced inputs to be modal-aware by default - Add
combobox
variant forTimeRangePicker
- New
PopoverInline
to support text and/or icon as a popover trigger. Details - Improve
PopoverTrigger
accessibility with keyboard support and automatic focus trapping -
[EXPERIMENTAL] New
DateNavigator
component to facilitate date display and navigation. Details -
[EXPERIMENTAL] New
TimeTable
component. Details - Add
stretch
prop forUneditableSection
to take up full width - Add default logo for
Navbar
based on theme - Add default logo and disclaimer links for
Footer
based on theme - Improvements to aria markup in the following components:
- Tab
- SideNav
- ProgressIndicator
- BoxContainer, CalendarManager, FeedbackRating, NotificationBanner, OtpInput
- PopoverInline, FormLabel
- Support aria labels for
HistogramSlider
andSelectHistogram
thumb controls - Enhance dropdown focus behaviour in
InputSelect
andMultiSelect
: if input is prefilled, on initial open, focus the first selected item in the dropdown
- Fixed shrinking width bug in Chrome v129 for these components
-
NestedMultiSelect
andNestedSelect
RangeSelect
-
InputGroup
andPhoneNumberInput
PredictiveTextInput
-
- Hide selected icon in
InputSelect
list item if a customrenderListItem
is specified - Center
InputSelect
andMultiSelect
dropdown in mobile when it is too close to the screen edge - Fix extra bottom spacing on
Alert
with icon when content is single-line - Fix text color for disabled
RangeSelect
and other dropdown-based form inputs
- Enhance dropdown focus behaviour in
Form.Select
andForm.MultiSelect
- If input is prefilled, on initial open, focus the first selected item in the dropdown
- Fix extra bottom spacing on
Alert
with icon when content is single-line - Fix text color for disabled
RangeSelect
and other dropdown-based form inputs
- Add default logo for
Navbar
based on theme - Add default logo and disclaimer links for
Footer
based on theme - Improvements to aria markup in the following components:
- Tab
- SideNav
- ProgressIndicator
- BoxContainer, CalendarManager, FeedbackRating, NotificationBanner, OtpInput
- PopoverInline, FormLabel
- Support aria labels for
HistogramSlider
andSelectHistogram
thumb controls
- Hide selected icon in
InputSelect
list item if a customrenderListItem
is specified - Center
InputSelect
andMultiSelect
dropdown in mobile when it is too close to the screen edge
-
[EXPERIMENTAL] New
DateNavigator
component to facilitate date display and navigation. Details -
[EXPERIMENTAL] New
TimeTable
component. Details -
TimeRangePicker
combobox tweaks- Hide dropdown on
errorMessage
prop change - On invalid time range, the end value is no longer cleared automatically
- Align blur event with other inputs
- Hide dropdown on
- Add
stretch
prop forUneditableSection
to take up full width
- Add
combobox
variant forTimeRangePicker
- New
PopoverInline
to support text and/or icon as a popover trigger. Details - Improve
PopoverTrigger
accessibility with keyboard support and automatic focus trapping- [WARNING] If you use PopoverTrigger for custom popovers, verify that your interaction is not affected
- Fixed shrinking width bug in Chrome v129 for these components
-
NestedMultiSelect
andNestedSelect
RangeSelect
-
InputGroup
andPhoneNumberInput
PredictiveTextInput
-
- Fixed shrinking width bug in Chrome v129 for these components
-
NestedMultiSelect
andNestedSelect
RangeSelect
-
InputGroup
andPhoneNumberInput
PredictiveTextInput
-
- Extend the hiding of
DateRangeInput
action buttons to mobile ifwithButton={false}
- Enhance
Popover
and floating-enhanced inputs to be modal-aware by default -
[BREAKING] Add peer dependencies
@floating-ui/dom
and@floating-ui/react
- New
OneService
theme - New Plus Jakarta Sans font style
- New
FileDownload
component. Details - New
SelectHistogram
component. Details - Add disabled variant in
Timeline
-
BoxContainer
enhancements- Support clicking on header to expand/collapse the contents
- Accept custom JSX in title
- Add data-id for
Toggle
composite section children and make it easier to reset spacing -
InputSelect
andMultiSelect
enhancements- Fix dropdown getting cut off when it exceeds the parent container bounds
- Update look and feel of the dropdown list
- Update aria attributes so that the list state is now reflected by screen readers
-
[WARNING] The list item role has been updated from
button
tooption
. If you're using@testing-library/react
to target elements via*ByRole
, update the parameter accordingly -
[WARNING] Deprecate
listStyleWidth
prop - it no longer has any effect
- Add MyLegacy illustrations to
ErrorDisplay
- Update touch area of
Accordion
title - Add optional
showActiveMonthDaysOnly
prop forCalendar
component - Add optional
timestamp
prop forCountdownTimer
component - Add optional
useContentWidth
prop forToggle
andFilter.Checkbox
components - Add optional
toggleFilterButtonStyle
prop forFilter
component
- Wrap overflowing text to the next line in
UneditableSection.Item
-
[WARNING] Update close button size and position in
Modal.Box
- Ensure
Toast
contents are left aligned in mobile
- Fix date pickers displaying NaN for invalid dates
- Fix gray text colour of input after date selection on mobile in
DateInput
- Fix initial flash of content in
Breadcrumb
on tablet/mobile - Remove empty header div in
Accordion
when title and expand/collapse button are not displayed
- New Plus Jakarta Sans font style
- Modify behaviour when selecting end date of
DateRangeInput
- Account for milliseconds when
CountdownTimer
counting down to a timestamp - Avoid rendering extra div in
Accordion
whentitle
is undefined andenabledExpandAll
is false
- Add optional
showActiveMonthDaysOnly
prop forCalendar
component - Add optional
timestamp
prop forCountdownTimer
component - Add optional
useContentWidth
prop forToggle
andFilter.Checkbox
components - Add optional
toggleFilterButtonStyle
prop forFilter
component
- New
SelectHistogram
component. Details - Update touch area of
Accordion
title - Add
ready
state for scenario where download is still being generated or is not available inFileDownload
- New
FileDownload
component. Details - Add MyLegacy illustrations to
ErrorDisplay
- New OneService theme
-
InputSelect
andMultiSelect
enhancements- Fix dropdown getting cut off when it exceeds the parent container bounds
- Update look and feel of the dropdown list
- Update aria attributes so that the list state is now reflected by screen readers
-
[WARNING] The list item role has been updated from
button
tooption
. If you're using@testing-library/react
to target elements via*ByRole
, update the parameter accordingly -
[WARNING] Deprecate
listStyleWidth
prop - it no longer has any effect
- Ensure
Toast
contents are left aligned in mobile
- Add data-id for
Toggle
composite section children and make it easier to reset spacing
-
[WARNING] Update close button size and position in
Modal.Box
- Revert
Toggle
growing to full width of parent
- Fix calendar still opening for disabled
DateInput
andDateRangeInput
- Add
disabled
variant inTimeline
- Support clicking on header to expand/collapse the contents in
BoxContainer
- Accept custom JSX in
BoxContainer
title
- Wrap overflowing text to the next line in
UneditableSection.Item
- Fix date pickers displaying NaN for invalid dates
- Fix gray text colour of input after date selection on mobile in
DateInput
- Fix initial flash of content in
Breadcrumb
on tablet/mobile
Note
- Code splitting introduced to the build config to support
React.lazy
-
package-lock.json
was upgraded to version 3. It is backwards compatible up to npm v7. - Storybook was upgraded to v8. Development now requires Node 18 minimum.
-
NotificationBanner
enhancements- Support for action button that performs an action on click
- Ability to set
maxCollapsedHeight
on content, after which it gets collapsed - Improve indication that banner is interactive when
onClick
is specified
-
Alert
enhancements- Support for custom icon
- Ability to set
maxCollapsedHeight
on content, after which it gets collapsed
- New
Markup
to style HTML content. Details - Support action button, and JSX title and label for
Toast
- Support remove button and composite section in
Toggle
- Introduce small variant for
InputSelect
andInputMultiSelect
- New
ESignature
component. Details
- Allow more characters to be rendered in current option for
Select
before showing ellipsis - Update font color for masked value in
UneditableSection
- Update colour of
Form.Label
andTextarea
counter
- Fix precedence of mobile items and action buttons when hiding
Navbar
mobile menu button - Fix
DateInput
andDateRangeInput
focus/blur behaviour- Restore behaviour to reset to the previous value if selection is not confirmed (when
withButton={false}
) - Only trigger
onBlur
when leaving the field - Ensure main input still appears focused when calendar is active
- Restore behaviour to reset to the previous value if selection is not confirmed (when
- Add loading indicator to
ESignature
- Update colour of
Form.Label
andTextarea
counter
-
DateInput
andDateRangeInput
focus/blur behaviour- Restore behaviour to reset to the previous value if selection is not confirmed (when
withButton={false}
) - Only trigger
onBlur
when leaving the field - Ensure main input still appears focused when calendar is active
- Restore behaviour to reset to the previous value if selection is not confirmed (when
Note
Code splitting introduced to the build config to support React.lazy
- New
ESignature
component. Details
- Adjust
Toast
close button touch area and action button text wrapping
- Fix double clicking issue with
Toggle
Note
Storybook was upgraded to v8. Development now requires Node 18 minimum.
- Support action button, and JSX title and label for
Toast
- Support remove button and composite section in
Toggle
- Introduce small variant for
InputSelect
andInputMultiSelect
- Fix precedence of mobile items and action buttons when hiding
Navbar
mobile menu button
Warning
package-lock.json
was upgraded to version 3. It is backwards compatible to npm v7.
- Update font color for masked value in
UneditableSection
- New
Markup
to style HTML content. Details
- Fix spacing and font for
Alert
variants whenmaxCollapsedHeight
is set - Allow more characters to be rendered in current option for
Select
before showing ellipsis
-
NotificationBanner
enhancements- Support for action button that performs an action on click
- Ability to set
maxCollapsedHeight
on content, after which it gets collapsed - Improve indication that banner is interactive when
onClick
is specified
-
Alert
enhancements- Support for custom icon
- Ability to set
maxCollapsedHeight
on content, after which it gets collapsed
- Remove extra bottom margin when
Textarea
does not have the counter or error message
- [BREAKING] Remove deprecated TimelineStatusProps
- Enhancements to
FullScreenImageCarousel
- Add magnifier function to zoom images
- Add props to hide the thumbnails, image navigation, image counter and the magnifier function
- Add id to the title and step counter label for
ProgressIndicator
- Add prop to control the z-index to the
Form.Label
addon as well as the trigger element forPopoverV2
- Add ability to hide the virtual keyboard when focusing on the
Form.DateInput
andForm.DateRangeInput
- New
ButtonWithIcon
. Details - Update MyLegacy
Validation.Red.Text
in color theme - Add ability to render an
Alert
in anUneditableSection
item
- Match options without sub-items when searching in
NestedSelect
andNestedMultiSelect
- Fix pluralisation in
Textarea
counter - Fix inability to zoom in when image is specified without domain in
FullscreenImageCarousel
- Fix calendar dropdown in
DateInput
andDateRangeInput
getting cut off when it exceeds the parent container bounds - Fix clicks within popover closing itself in
PopoverTrigger
- Resolve
Maximum update depth
error triggered when opening calendar dropdown inDateInput
andDateRangeInput
- Fix unintended form submission when unmasking
UneditableSection
item - Fix icon in
ButtonWithIcon
shrinking if label is a longer text content
- Fix incorrect font weight for
Form.Label
subtitle
- Fix icon in
ButtonWithIcon
shrinking if label is a longer text content
- Fix unintended form submission when unmasking
UneditableSection
item
- Add ability to render an
Alert
in anUneditableSection
item
- Fix incorrect font weight for
Form.Label
subtitle
- Fix clicks within popover closing itself in
PopoverTrigger
- Resolve
Maximum update depth
error triggered when opening calendar dropdown inDateInput
andDateRangeInput
Caution
This release caused date pickers to rerender infinitely. Update to v2.5.0-canary.4
to get the fix.
- Fix inability to zoom in when image is specified without domain in
FullscreenImageCarousel
- Fix calendar dropdown in
DateInput
andDateRangeInput
getting cut off when it exceeds the parent container bounds
- [BREAKING] Remove deprecated TimelineStatusProps
- New
ButtonWithIcon
. Details - Update MyLegacy
Validation.Red.Text
in color theme
- Match options without sub-items when searching in
NestedSelect
andNestedMultiSelect
- Fix pluralisation in
Textarea
counter
- Enhancements to
FullScreenImageCarousel
- Add magnifier function to zoom images
- Add props to hide the thumbnails, image navigation, image counter and the magnifier function
- Add id to the title and step counter label for
ProgressIndicator
- Add prop to control the z-index to the
Form.Label
addon as well as the trigger element forPopoverV2
- Add ability to hide the virtual keyboard when focusing on the
Form.DateInput
andForm.DateRangeInput
-
ProgressIndicator
enhancements- Display step count in tablet/mobile
- Remove scrolling behaviour. The progress bar segments now have equal width.
-
[WARNING]
fadeColor
andfadePosition
are deprecated and will be removed in a future release
- Support displaying current selection in
Form.Slider
andForm.RangeSlider
- Add mask and unmask features for items in
UneditableSection
. It also comes with the error and loading state like theMaskedInput
. Details - Add support for custom positioning and custom content in
PopoverV2
. Details - Add loading and error displays to
MaskedInput
for asynchronous operations when unmasking - Introduce CCube theme
- Support styling for html
li
inAlert
,FileUpload
andPopover
text - Support interactive content in
Toggle
sublabel. Details - Wrap
Timeline
pills to the next line if they exceed the container width - Incorporate
Pill
intoTimeline
statuses -
[WARNING] Deprecate
statuses[*].label
and specific values ofstatuses[*].type
to be replaced byPill
props, to be removed in the next version - Add selectors for desktop and mobile containers in
Filter
- Remove z-index from
ProgressIndicator
- Remove stacking context in
Toggle
to fix z-index issues with sublabel content - Fix
Timeline
item title alignment when using custom JSX - Update
UneditableSection
title font weight - Fix
Timeline
item title misalignment - Fix
BoxContainer
icon and font size in mobile view
- Fix thumb controls in slider components potentially overlapping other elements
- Remove z-index from
ProgressIndicator
- Remove stacking context in
Toggle
to fix z-index issues with sublabel content
-
ProgressIndicator
enhancements- Display step count in tablet/mobile
- Remove scrolling behaviour. The progress bar segments now have equal width.
-
[WARNING]
fadeColor
andfadePosition
are deprecated and will be removed in a future release
- Support displaying current selection in
Form.Slider
andForm.RangeSlider
- Add mask and unmask features for items in
UneditableSection
. It also comes with the error and loading state like theMaskedInput
. Details - Add support for custom positioning and custom content in
PopoverV2
. Details
- Fix
Timeline
item title alignment when using custom JSX
- Add loading and error displays to
MaskedInput
for asynchronous operations when unmasking - Introduce CCube theme
- Support styling for html
li
inAlert
,FileUpload
andPopover
text - Support interactive content in
Toggle
sublabel. Details - Wrap
Timeline
pills to the next line if they exceed the container width
- Update
UneditableSection
title font weight - Fix
Timeline
item title misalignment - Fix
BoxContainer
icon and font size in mobile view
- Incorporate
Pill
intoTimeline
statuses -
[WARNING] Deprecate
statuses[*].label
and specific values ofstatuses[*].type
to be replaced byPill
props, to be removed in the next version - Add selectors for desktop and mobile containers in
Filter
- Fix thumb controls in slider components potentially overlapping other elements
- New
PopoverV2
component with improved positioning behaviour. Details -
[WARNING] Deprecate
Popover
, to be removed in the next major version - Add error variant for
Timeline
- Support JSX elements in
Filter.Checkbox
option labels - Add tooltip to
Filter.Item
title. Details - New
TimeSlotBarWeek
component. Details - Add
onChangeEnd
prop that is called when selection ends inInputSlider
,InputRangeSlider
andHistogramSlider
- Introduce
HistogramSlider
component. Details - Introduce
Tabs
component. Details - Introduce red style variant for
Button
with thedanger
prop - Add
Button.Danger
design tokens - Introduce
Slider
component. Details - New
FullscreenImageCarousel
component. Details -
TimeSlotBar
enhancements- Adjust dimensions
- New minified variant
-
BoxContainer
enhancements- Tweak layout and update mobile breakpoint
- Reposition call-to-action in mobile viewports
- Add styling when nesting HTML elements within
Form.Label
- At the moment, we only provide styling for
span
,p
anda
tags. For other elements, you will have to style them separately
- At the moment, we only provide styling for
- Update copy and styling for
ErrorDisplay
. Now there are more specific default messages for each display type - Fix misalignment for
UneditableSection
content with the rest ofLayout.Container
layouts - Fix display glitch when the dropdown in
Form.DateInput
andForm.DateRangeInput
is being minimised
- Fix
TimeSlotBarWeek
height being increased tomaxVisibleCellHeight
when actual height is lower - Fix lagginess experienced on components with dropdown effects when expanding the dropdown on Edge browsers on Windows devices
- You may refer to this issue for more information
- Ensure
Filter.Item
is always expanded on mobile - Add width and height attributes to
ErrorDisplay
image to fix Lighthouse warnings - Fix to
Form.MaskedInput
not reflecting the latest value when its value prop is updated - Fix incorrect
onBlur
behaviour onForm.Select
andForm.MultiSelect
- Update
onBlur
to be optional forMultiSelect
- Ensure
NestedSelect
andNestedMultiSelect
reflect new options immediately - Fix NaN error in
Form.DateInput
if the year value specified has less than 4 digits
- Add error variant for
Timeline
- Support JSX elements in
Filter.Checkbox
option labels - Add tooltip to
Filter.Item
title. Details - New
PopoverV2
component with improved positioning behaviour. Details -
[WARNING] Deprecate
Popover
, to be removed in the next major version
- Fix
TimeSlotBarWeek
height being increased tomaxVisibleCellHeight
when actual height is lower
- Add styling when nesting HTML elements within
Form.Label
- At the moment, we only provide styling for
span
,p
anda
tags. For other elements, you will have to style them separately
- At the moment, we only provide styling for
- Fix lagginess experienced on components with dropdown effects when expanding the dropdown on Edge browsers on Windows devices
- You may refer to this issue for more information
- New
TimeSlotBarWeek
component. Details - Add
onChangeEnd
prop that is called when selection ends inInputSlider
,InputRangeSlider
andHistogramSlider
- Introduce
HistogramSlider
component. Details - Introduce
Tabs
component. Details - Introduce red style variant for
Button
with thedanger
prop - Add
Button.Danger
design tokens
- Introduce
Slider
component. Details
- Ensure
Filter.Item
is always expanded on mobile - Add width and height attributes to
ErrorDisplay
image to fix Lighthouse warnings
- New
FullscreenImageCarousel
component. Details -
TimeSlotBar
enhancements- Adjust dimensions
- New minified variant
-
BoxContainer
enhancements- Tweak layout and update mobile breakpoint
- Reposition call-to-action in mobile viewports
- Update
onBlur
to be optional forMultiSelect
- Ensure
NestedSelect
andNestedMultiSelect
reflect new options immediately
- Update copy and styling for
ErrorDisplay
. Now there are more specific default messages for each display type - Fix misalignment for
UneditableSection
content with the rest ofLayout.Container
layouts - Fix display glitch when the dropdown in
Form.DateInput
andForm.DateRangeInput
is being minimised
- Fix to
Form.MaskedInput
not reflecting the latest value when its value prop is updated - Fix incorrect
onBlur
behaviour onForm.Select
andForm.MultiSelect
- Fix NaN error in
Form.DateInput
if the year value specified has less than 4 digits
-
Navbar
enhancements- Add
hideNavBranding
prop to hide brand logos completely
- Add
- Date picker enhancements
- Update
DateInput
andDateRangeInput
without button to return to day view after selecting month/year - Hide Done and Cancel buttons for
DateInput
without button - Add fixed ranged variant for
DateRangeInput
- Update
- Add more
Timeline
variants -
Alert
enhancements- Add small variant
- Display matching status icon with
showIcon
- Support custom icon for hyperlink
- New
DataTable
component. Details - New
CountdownTimer
component. Details - Support handling of expanded state in
Filter.Item
- Support auto transformation of
MaskedInput
value to uppercase or lowercase - Add prop in
Accordion
to enable it to be expanded by default - Add prop to enable maxlines display in
Text
. Content that exceeds the max lines will be truncated. Details - Support easier styling in grid layouts
- Add
Layout.ColDiv
component for easier rendering of divs conforming to the grid columns. Details - Enhance
Form
components to supportColDiv
props
- Add
- Add BookingSG theme resources for
ErrorDisplay
. This affects the graphics only - Introduce MyLegacy theme
- Reduce
Navbar
logo size on smallest screen to cater for wider logos - Fix incorrect text color on
Alert
- Fix value overflow in
DateRangeInput
on smaller device widths and grid layout - Fix mismatched box shadow when using other themes in
CountdownTimer
- Fix
Navbar
mobile menu button appearing even if no items or action buttons are specified - Ensure
Pagination
reflectspageSize
prop change - Resolve React unique key prop warning in
Filter.Checkbox
- Fix invalid DOM nesting when specifying custom title or description in
FileUpload
- Fix error when
ErrorDisplay
is used without aThemeProvider
- Fix unscrollable page after replacing
Overlay
s in quick succession
Caution
This release may have caused pages to be unscrollable when using modals or drawers. Update to v2.2.0 to get the fix.
- Add fixed ranged variant for
DateRangeInput
- Introduce MyLegacy theme. Details
- Hide Done and Cancel buttons for
DateInput
whenwithButton
is false. Previously they were always forced to show on mobile viewports
- Fix value overflow in
DateRangeInput
on smaller device widths and grid layout - Fix mismatched box shadow when using other themes in
CountdownTimer
- Fix error when
ErrorDisplay
is used without aThemeProvider
- Fix unscrollable page after replacing
Overlay
s in quick succession
- Add
BookingSG
theme resources forErrorDisplay
. This affects the graphics only - Enhance
Form
components to supportColDiv
props to enable easier styling in grid layouts- You can now make use of the
mobileCols
,tabletCols
anddesktopCols
props directly on theForm
components instead of wrapping it around a div with column-wise styling
- You can now make use of the
- Fix incorrect text color on
Alert
- Add prop in
Accordion
to enable it to be expanded by default - Add prop to enable maxlines display in
Text
. Content that exceeds the max lines will be truncated. Details - Add
Layout.ColDiv
component for easier rendering of divs conforming to the grid columns. Details- Props to allow easier specification of column widths across different viewports
- New
CountdownTimer
component. Details - Support handling of expanded state in
Filter.Item
- Support auto transformation of
MaskedInput
value to uppercase or lowercase
- Resolve React unique key prop warning in
Filter.Checkbox
- Fix invalid DOM nesting when specifying custom title or description in
FileUpload
- New
DataTable
component. Details
- Introduce
hideNavBranding
prop forNavbar
to hide brand logos completely - Update
DateInput
without button to return to day view after selecting month/year - Introduce more
Timeline
variants -
Alert
enhancements- Add small variant
- Display matching status icon with
showIcon
- Support custom icon for hyperlink
- Reduce
Navbar
logo size on smallest screen to cater for wider logos
- Fix
Navbar
mobile menu button appearing even if no items or action buttons are specified - Ensure
Pagination
reflectspageSize
prop change
-
[BREAKING] Make Toast a floating element by default. You may make it inline by passing
sticky={false}
- New
NestedSelect
component. Details - New
NestedMultiSelect
component. Details - New
MaskedInput
component. Details - New
UneditableSection
component. Details - Add button to clear/select all options in
Filter.Checkbox
-
Checkbox
enhancements- Update look and size to visually match newer components
- Introduce
indeterminate
state
- Update button label in
MultiSelect
to "Clear all" -
Navbar
enhancements- Resize brand logo
- Support targeted styling for brand section
- Support custom nav items
- Provide option to selectively display action buttons in the header or drawer on tablet/mobile viewports
- Enhance
ErrorDisplay
to have more customisation options such as- Introducing
data-id
to the image, title and description components to enable customisation. Details - Introduce
imageOnly
prop to render just the image without the text content
- Introducing
-
Navbar
-
[BREAKING] Update sticky style for fixed
Navbar
. This style will mean you will no longer need to add additional padding to your pages to deal with theNavbar
's positioning - Fix typings
-
[BREAKING] Update sticky style for fixed
- [WARNING] Lower TypeScript target to
es6
for compatibility with older browsers such as iOS Safari 13 - Handle display of cleared and invalid date values in
DateInput
andDateRangeInput
- Add
className
,id
anddata-testid
props for components that are missing them. All components now have the holy trinity βοΈ of props - Update
@lifesg/react-icons
peer dependency that caused theCheckbox
component to not have the updated icon
- Update
Toast
animation for tablet view - Adjust input box shadows
- Adjust colour of
Modal
close icon - Adjust colour of disabled form labels across all form inputs fields
- Add
UneditableSection
component. More details - Enhance
ErrorDisplay
to have more customisation options such as- Introducing
data-id
to the image, title and description components to enable customisation. See details - Introduce
imageOnly
prop to render just the image without the text content
- Introducing
- Add
className
,id
anddata-testid
props for components that are missing them. All components now have the holy trinity βοΈ of props - Update
@lifesg/react-icons
peer dependency that caused theCheckbox
component to not have the updated icon
-
Navbar
enhancements- Resize brand logo
- Support targeted styling for brand section
-
[BREAKING] Update sticky style for fixed
Navbar
. This style will mean you will no longer need to add additional padding to your pages to deal with theNavbar
's positioning
-
[BREAKING] Make Toast a floating element by default. You may make it inline by passing
sticky={false}
- New
NestedMultiSelect
component. More details here - New
MaskedInput
component. More details here
- Update
Toast
animation for tablet view - Adjust input box shadows
- Adjust colour of
Modal
close icon - Adjust colour of disabled form labels across all form inputs fields
- Handle display of cleared and invalid date values in
DateInput
andDateRangeInput
-
Checkbox
enhancements- Update look and size to visually match newer components
- Introduce
indeterminate
state
- Fix
Navbar
typings
-
NestedSelect
component (more details here) - Enhance
Navbar
- Support custom nav items
- Provide option to selectively display action buttons in the header or drawer on tablet/mobile viewports
- Update button label in
MultiSelect
to "Clear all" - Add button to clear/select all options in
Filter.Checkbox
- [WARNING] Lower TypeScript target to
es6
for compatibility with older browsers such as iOS Safari 13
We have officially released a new major version! π
This comes with new components and enhancements to existing ones.
Refer to this migration document for the changes that are required to upgrade from v1 to v2.
- Customise auto dismiss time for
Toast
- Display "All selected" if all options are selected for
MultiSelect
- Allow
Popover
to scroll on mobile view when content overflows
- Update built-in search in
InputSelect
,InputMultiSelect
andInputGroup
to be case-insensitive for secondary label
- Allow
RangeSelect
selection to be cleared
- Export
DesignToken
at the top level - Trigger
onChange
when input values are padded inUnitNumberInput
-
PredictiveTextInput
fixes- Handle undefined
selectedOption
- Ensure input is cleared even when dropdown list is not shown
- Handle undefined
-
Tag
component. More details -
PredictiveTextInput
component. More details -
Accordion.Item
enhancements- Support for programmatic expand or collapse
- Allow overriding of initial display state per item
- Fix edge case where
Overlay
background is scrollable - Fix
Popover
remaining positioned above when there is no space available at the top of the screen
- Remove extra border from
Toggle
andRadioButton
in Safari 13 - [WARNING] Increase z-index of
Popover
-
FileUpload
component. More details -
Pill
component. More details - Add week selection for
DateInput
andDateRangeInput
- Add
onFocus
callback forDateInput
,DateRangeInput
,TimeInput
andTimeRangeInput
- Add
onDismiss
callback forToast
- Fix caret position for formatted input fields such as
PhoneNumberInput
andUnitNumberInput
- Fix
Drawer
element focus order and cross button color - Fix
Calendar
styling and the calendar that appears in the date inputs - Fix
Filter
animation
-
Sidenav
component - Add ability to collapse or expand all
Accordion
items on initial render
- Fix SSR error where
document
orwindow
is not defined - Fix button types in remaining components to prevent unintentional form submission
- Introduce the
Drawer
component. More details
- Fix typing issue in
Toast
props
- Update Accent dark colors for the Base color set
- Update Shadow accent color for RBS color set
- Standardise input heights
- Fix misaligned
InputGroup
children - Fix
OtpInput
display on small mobile viewports - Fix width styling on
DateInput
andDateRangeInput
- Display mobile mode of
Filter
in tablet viewport
- Introduce RBS theme. You can view the colour palette here
- Add
Table
design tokens to manage table cell styling - [BREAKING]
IconButton
styling has been reworked to matchButton
and props have been updated
- Fix infinite rendering in calendar and date pickers in scenarios where
onYearMonthDisplayChange
modifies the value - To be consistent with the calendar,
TimeSlotWeekView.onWeekDisplayChange
now fires on mount as well
Welcome to v2! Refer to this migration guide on the changes that are required when upgrading from v1.
Note: IconButton will also be reworked with a different design and new props in the near future
- Add sub label to
Toggle
- Add
TimeSlotWeekView
to display timeslots for a week - Enhancements to
Calendar
and date pickers- [BREAKING] Split ranged date input from
DateInput
to the newDateRangeInput
- [BREAKING] Replace
between
withminDate
andmaxDate
- [BREAKING]
onChangeRaw
andonBlurRaw
have been removed - [BREAKING]
onBlur
no longer returns the date value. UseonChange
to get value changes instead - Allow date inputs to be cleared by deleting the typed characters
- Introduce
styleType
prop to control the border for the standalone calendar - Extend
onYearMonthDisplay
prop to date inputs - Allow selection of disabled dates
- [BREAKING] Split ranged date input from
- [WARNING] Time pickers return
12hr
formatted values in uppercase i.e. am/pm is now AM/PM - [BREAKING] Updated import paths of
InputMultiSelect
andInputRangeSelect
- Add stretch layout to
Navbar
andFooter
(not confined to the max width settings) - Add
Pagination
to support paged navigation
- Amend width of calendar dropdown to match the parent input for date pickers
- Fix cancel and done button on
DateInput
interfering with a formβs submit button - Fix
className
property not assigned correctly to the wrapper forInputSelect
,InputMultiSelect
andRangeSelect