- 
                Notifications
    You must be signed in to change notification settings 
- Fork 17
Changelog v2
- Fix persistent scroll lock on iOS when Overlay/Modalis forcefully unmounted
- 
[WARNING] Add alternative scroll lock method on iOS for OverlayandModal
- Fix unresponsive Toggleon iOS devices
- Update spacing between Footerresource items
- Upgrade to fabric 6 to resolve error in ESignaturewhenunsafe-evalis not enabled in CSP
- Add showResourceAddonprop toFooterto render additional content for MyLegacy
Note
- Node 18 reached EOL on 30 Apr 2025. You're recommended to use Node 22 as the minimum version for development
- The pipeline has been upgraded to use Node 22
- Support custom width for Tab.Itemtab selector
- Update Mastheadto match new SGDS styling
- 
TimeTableenhancements- Add pendingrow cell status
- Automatically block the entire row if it has no entries and rowMinTimeandrowMaxTimeare not set
- Handle slots in 15 minute intervals, automatically rounding non-standard times
- Update left border colour
 
- Add 
- Check nullish refs
- Resolve React 18+ spread key warning in unit tests for InputSelect,MultiSelect,NestedSelect, andNestedMultiSelect
- Introduce prefix prop to Textareathat adds uneditable text to the start of the field
- 
NestedSelectandNestedMultiSelectenhancements- Fix dropdown getting cut off when it exceeds the parent container bounds
- Update dropdown list styling to better accommodate different screen sizes
- Update aria attributes so that the list state is now reflected by screen readers
- 
[WARNING] The list item role has been updated from button to option. If you're using @testing-library/reactto target elements via*ByRole, update the parameter accordingly
- 
[WARNING] listStyleWidthprop is deprecated - it no longer has any effect
 
- 
TimeTableandDateNavigatordesign enhancements- Add ability to select date from a calendar dropdown
- Add showCurrentDateAsTodayprop to show current date as "Today"
- Add showDateAsShortFormprop to display day of week in short form
- 
[BREAKING] onLeftArrowClickandonRightArrowClickare now mandatory props
- 
[BREAKING] Replace emptyContentwithemptyContentMessage
 
- Replace LoadingSpinneranimation
- Improve performance of large lists in InputSelect,MultiSelect,NestedSelect, andNestedMultiSelect- Apply virtualisation in dropdown menus
- Optimise algorithms when processing large nested select lists
 
- Add fullWidthIndicatorLineprop to extend the indicator line to the full width ofTab
- Support loading state in ButtonWithIcon
- Disable common ligatures for PlusJakartaSans font
- Fix dates of non-active months still showing when both showActiveMonthDaysandminDateare set inCalendar
- Fix SSR errors on Node 22 caused by lottie animation library
- Fix value not updated for TimeRangePicker
- Disable virtualisation for InputSelect,MultiSelect,NestedSelect, andNestedMultiSelectin testing environments (NODE_ENV === "test")
- Support loading state in ButtonWithIcon
- Disable common ligatures for PlusJakartaSans font
- Improve performance of large lists in InputSelect,MultiSelect,NestedSelect, andNestedMultiSelect- Apply virtualisation in dropdown menus
- Optimise algorithms when processing large nested select lists
 
- Add fullWidthIndicatorLineprop to extend the indicator line to the full width ofTab
- Fix dates of non-active months still showing when both showActiveMonthDaysandminDateare set inCalendar
- Fix value not updated for TimeRangePicker
- Replace LoadingSpinneranimation
- Fix SSR errors on Node 22 caused by lottie animation library
- 
TimeTableandDateNavigatordesign enhancements- Add ability to select date from a calendar dropdown
- Add showCurrentDateAsTodayprop to show current date as "Today"
- Add showDateAsShortFormprop to display day of week in short form
- 
[BREAKING] onLeftArrowClickandonRightArrowClickare now mandatory props
- 
[BREAKING] Replace emptyContentwithemptyContentMessage
 
- Introduce prefixprop toTextareathat adds uneditable text to the start of the field
- 
NestedSelectandNestedMultiSelectenhancements- Fix dropdown getting cut off when it exceeds the parent container bounds
- Update dropdown list styling to better accommodate different screen sizes
- Update aria attributes so that the list state is now reflected by screen readers
- 
[WARNING] The list item role has been updated from button to option. If you're using @testing-library/reactto target elements via*ByRole, update the parameter accordingly
- 
[WARNING] listStyleWidthprop is deprecated - it no longer has any effect
 
- New LocalNavMenuandLocalNavDropdowncomponents. Details
- Support JSX.Element in FileUploaderror message
- Add autoCompleteprop toPhoneNumberInputandUnitNumberInput
- Disable autocomplete for OtpInput
- Fix custom z-index not being set on Overlay
- Fix value not being updated when applying input transformation in Textarea
- Add autoCompleteprop toPhoneNumberInputandUnitNumberInput
- Disable autocomplete for OtpInput
- Give more control over LocalNavDropdowncustom render- [WARNING] The default padding for the dropdown item has been removed
- New stickied state
 
- Support JSX.Element in FileUploaderror message
- Set LocalNavDropdowntitle to semibold
- Fix issue where using Modaltogether withLocalNavDropdowncauses 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 LocalNavMenuandLocalNavDropdowncomponents. Details
Note
Peer dependencies @floating-ui/dom and @floating-ui/react introduced in this version
- Extend the hiding of DateRangeInputaction buttons to mobile ifwithButton={false}
- Enhance Popoverand floating-enhanced inputs to be modal-aware by default
- Add comboboxvariant forTimeRangePicker
- New PopoverInlineto support text and/or icon as a popover trigger. Details
- Improve PopoverTriggeraccessibility with keyboard support and automatic focus trapping
- 
[EXPERIMENTAL] New DateNavigatorcomponent to facilitate date display and navigation. Details
- 
[EXPERIMENTAL] New TimeTablecomponent. Details
- Add stretchprop forUneditableSectionto take up full width
- Add default logo for Navbarbased on theme
- Add default logo and disclaimer links for Footerbased on theme
- Improvements to aria markup in the following components:
- Tab
- SideNav
- ProgressIndicator
- BoxContainer, CalendarManager, FeedbackRating, NotificationBanner, OtpInput
- PopoverInline, FormLabel
 
- Support aria labels for HistogramSliderandSelectHistogramthumb controls
- Enhance dropdown focus behaviour in InputSelectandMultiSelect: 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
- 
NestedMultiSelectandNestedSelect
- RangeSelect
- 
InputGroupandPhoneNumberInput
- PredictiveTextInput
 
- 
- Hide selected icon in InputSelectlist item if a customrenderListItemis specified
- Center InputSelectandMultiSelectdropdown in mobile when it is too close to the screen edge
- Fix extra bottom spacing on Alertwith icon when content is single-line
- Fix text color for disabled RangeSelectand other dropdown-based form inputs
- Enhance dropdown focus behaviour in Form.SelectandForm.MultiSelect- If input is prefilled, on initial open, focus the first selected item in the dropdown
 
- Fix extra bottom spacing on Alertwith icon when content is single-line
- Fix text color for disabled RangeSelectand other dropdown-based form inputs
- Add default logo for Navbarbased on theme
- Add default logo and disclaimer links for Footerbased on theme
- Improvements to aria markup in the following components:
- Tab
- SideNav
- ProgressIndicator
- BoxContainer, CalendarManager, FeedbackRating, NotificationBanner, OtpInput
- PopoverInline, FormLabel
 
- Support aria labels for HistogramSliderandSelectHistogramthumb controls
- Hide selected icon in InputSelectlist item if a customrenderListItemis specified
- Center InputSelectandMultiSelectdropdown in mobile when it is too close to the screen edge
- 
[EXPERIMENTAL] New DateNavigatorcomponent to facilitate date display and navigation. Details
- 
[EXPERIMENTAL] New TimeTablecomponent. Details
- 
TimeRangePickercombobox tweaks- Hide dropdown on errorMessageprop change
- On invalid time range, the end value is no longer cleared automatically
- Align blur event with other inputs
 
- Hide dropdown on 
- Add stretchprop forUneditableSectionto take up full width
- Add comboboxvariant forTimeRangePicker
- New PopoverInlineto support text and/or icon as a popover trigger. Details
- Improve PopoverTriggeraccessibility 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
- 
NestedMultiSelectandNestedSelect
- RangeSelect
- 
InputGroupandPhoneNumberInput
- PredictiveTextInput
 
- 
- Fixed shrinking width bug in Chrome v129 for these components
- 
NestedMultiSelectandNestedSelect
- RangeSelect
- 
InputGroupandPhoneNumberInput
- PredictiveTextInput
 
- 
- Extend the hiding of DateRangeInputaction buttons to mobile ifwithButton={false}
- Enhance Popoverand floating-enhanced inputs to be modal-aware by default
- 
[BREAKING] Add peer dependencies @floating-ui/domand@floating-ui/react
- New OneServicetheme
- New Plus Jakarta Sans font style
- New FileDownloadcomponent. Details
- New SelectHistogramcomponent. Details
- Add disabled variant in Timeline
- 
BoxContainerenhancements- Support clicking on header to expand/collapse the contents
- Accept custom JSX in title
 
- Add data-id for Togglecomposite section children and make it easier to reset spacing
- 
InputSelectandMultiSelectenhancements- 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 buttontooption. If you're using@testing-library/reactto target elements via*ByRole, update the parameter accordingly
- 
[WARNING] Deprecate listStyleWidthprop - it no longer has any effect
 
- Add MyLegacy illustrations to ErrorDisplay
- Update touch area of Accordiontitle
- Add optional showActiveMonthDaysOnlyprop forCalendarcomponent
- Add optional timestampprop forCountdownTimercomponent
- Add optional useContentWidthprop forToggleandFilter.Checkboxcomponents
- Add optional toggleFilterButtonStyleprop forFiltercomponent
- Wrap overflowing text to the next line in UneditableSection.Item
- 
[WARNING] Update close button size and position in Modal.Box
- Ensure Toastcontents 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 Breadcrumbon tablet/mobile
- Remove empty header div in Accordionwhen 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 CountdownTimercounting down to a timestamp
- Avoid rendering extra div in Accordionwhentitleis undefined andenabledExpandAllis false
- Add optional showActiveMonthDaysOnlyprop forCalendarcomponent
- Add optional timestampprop forCountdownTimercomponent
- Add optional useContentWidthprop forToggleandFilter.Checkboxcomponents
- Add optional toggleFilterButtonStyleprop forFiltercomponent
- New SelectHistogramcomponent. Details
- Update touch area of Accordiontitle
- Add readystate for scenario where download is still being generated or is not available inFileDownload
- New FileDownloadcomponent. Details
- Add MyLegacy illustrations to ErrorDisplay
- New OneService theme
- 
InputSelectandMultiSelectenhancements- 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 buttontooption. If you're using@testing-library/reactto target elements via*ByRole, update the parameter accordingly
- 
[WARNING] Deprecate listStyleWidthprop - it no longer has any effect
 
- Ensure Toastcontents are left aligned in mobile
- Add data-id for Togglecomposite section children and make it easier to reset spacing
- 
[WARNING] Update close button size and position in Modal.Box
- Revert Togglegrowing to full width of parent
- Fix calendar still opening for disabled DateInputandDateRangeInput
- Add disabledvariant inTimeline
- Support clicking on header to expand/collapse the contents in BoxContainer
- Accept custom JSX in BoxContainertitle
- 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 Breadcrumbon tablet/mobile
Note
- Code splitting introduced to the build config to support React.lazy
- 
package-lock.jsonwas upgraded to version 3. It is backwards compatible up to npm v7.
- Storybook was upgraded to v8. Development now requires Node 18 minimum.
- 
NotificationBannerenhancements- Support for action button that performs an action on click
- Ability to set maxCollapsedHeighton content, after which it gets collapsed
- Improve indication that banner is interactive when onClickis specified
 
- 
Alertenhancements- Support for custom icon
- Ability to set maxCollapsedHeighton content, after which it gets collapsed
 
- New Markupto 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 InputSelectandInputMultiSelect
- New ESignaturecomponent. Details
- Allow more characters to be rendered in current option for Selectbefore showing ellipsis
- Update font color for masked value in UneditableSection
- Update colour of Form.LabelandTextareacounter
- Fix precedence of mobile items and action buttons when hiding Navbarmobile menu button
- Fix DateInputandDateRangeInputfocus/blur behaviour- Restore behaviour to reset to the previous value if selection is not confirmed (when withButton={false})
- Only trigger onBlurwhen 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.LabelandTextareacounter
- 
DateInputandDateRangeInputfocus/blur behaviour- Restore behaviour to reset to the previous value if selection is not confirmed (when withButton={false})
- Only trigger onBlurwhen 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 ESignaturecomponent. Details
- Adjust Toastclose 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 InputSelectandInputMultiSelect
- Fix precedence of mobile items and action buttons when hiding Navbarmobile 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 Markupto style HTML content. Details
- Fix spacing and font for Alertvariants whenmaxCollapsedHeightis set
- Allow more characters to be rendered in current option for Selectbefore showing ellipsis
- 
NotificationBannerenhancements- Support for action button that performs an action on click
- Ability to set maxCollapsedHeighton content, after which it gets collapsed
- Improve indication that banner is interactive when onClickis specified
 
- 
Alertenhancements- Support for custom icon
- Ability to set maxCollapsedHeighton content, after which it gets collapsed
 
- Remove extra bottom margin when Textareadoes 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.Labeladdon as well as the trigger element forPopoverV2
- Add ability to hide the virtual keyboard when focusing on the Form.DateInputandForm.DateRangeInput
- New ButtonWithIcon. Details
- Update MyLegacy Validation.Red.Textin color theme
- Add ability to render an Alertin anUneditableSectionitem
- Match options without sub-items when searching in NestedSelectandNestedMultiSelect
- Fix pluralisation in Textareacounter
- Fix inability to zoom in when image is specified without domain in FullscreenImageCarousel
- Fix calendar dropdown in DateInputandDateRangeInputgetting cut off when it exceeds the parent container bounds
- Fix clicks within popover closing itself in PopoverTrigger
- Resolve Maximum update deptherror triggered when opening calendar dropdown inDateInputandDateRangeInput
- Fix unintended form submission when unmasking UneditableSectionitem
- Fix icon in ButtonWithIconshrinking if label is a longer text content
- Fix incorrect font weight for Form.Labelsubtitle
- Fix icon in ButtonWithIconshrinking if label is a longer text content
- Fix unintended form submission when unmasking UneditableSectionitem
- Add ability to render an Alertin anUneditableSectionitem
- Fix incorrect font weight for Form.Labelsubtitle
- Fix clicks within popover closing itself in PopoverTrigger
- Resolve Maximum update deptherror triggered when opening calendar dropdown inDateInputandDateRangeInput
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 DateInputandDateRangeInputgetting cut off when it exceeds the parent container bounds
- [BREAKING] Remove deprecated TimelineStatusProps
- New ButtonWithIcon. Details
- Update MyLegacy Validation.Red.Textin color theme
- Match options without sub-items when searching in NestedSelectandNestedMultiSelect
- Fix pluralisation in Textareacounter
- 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.Labeladdon as well as the trigger element forPopoverV2
- Add ability to hide the virtual keyboard when focusing on the Form.DateInputandForm.DateRangeInput
- 
ProgressIndicatorenhancements- Display step count in tablet/mobile
- Remove scrolling behaviour. The progress bar segments now have equal width.
- 
[WARNING] fadeColorandfadePositionare deprecated and will be removed in a future release
 
- Support displaying current selection in Form.SliderandForm.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 MaskedInputfor asynchronous operations when unmasking
- Introduce CCube theme
- Support styling for html liinAlert,FileUploadandPopovertext
- Support interactive content in Togglesublabel. Details
- Wrap Timelinepills to the next line if they exceed the container width
- Incorporate PillintoTimelinestatuses
- 
[WARNING] Deprecate statuses[*].labeland specific values ofstatuses[*].typeto be replaced byPillprops, 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 Toggleto fix z-index issues with sublabel content
- Fix Timelineitem title alignment when using custom JSX
- Update UneditableSectiontitle font weight
- Fix Timelineitem title misalignment
- Fix BoxContainericon 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 Toggleto fix z-index issues with sublabel content
- 
ProgressIndicatorenhancements- Display step count in tablet/mobile
- Remove scrolling behaviour. The progress bar segments now have equal width.
- 
[WARNING] fadeColorandfadePositionare deprecated and will be removed in a future release
 
- Support displaying current selection in Form.SliderandForm.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 Timelineitem title alignment when using custom JSX
- Add loading and error displays to MaskedInputfor asynchronous operations when unmasking
- Introduce CCube theme
- Support styling for html liinAlert,FileUploadandPopovertext
- Support interactive content in Togglesublabel. Details
- Wrap Timelinepills to the next line if they exceed the container width
- Update UneditableSectiontitle font weight
- Fix Timelineitem title misalignment
- Fix BoxContainericon and font size in mobile view
- Incorporate PillintoTimelinestatuses
- 
[WARNING] Deprecate statuses[*].labeland specific values ofstatuses[*].typeto be replaced byPillprops, 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 PopoverV2component 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.Checkboxoption labels
- Add tooltip to Filter.Itemtitle. Details
- New TimeSlotBarWeekcomponent. Details
- Add onChangeEndprop that is called when selection ends inInputSlider,InputRangeSliderandHistogramSlider
- Introduce HistogramSlidercomponent. Details
- Introduce Tabscomponent. Details
- Introduce red style variant for Buttonwith thedangerprop
- Add Button.Dangerdesign tokens
- Introduce Slidercomponent. Details
- New FullscreenImageCarouselcomponent. Details
- 
TimeSlotBarenhancements- Adjust dimensions
- New minified variant
 
- 
BoxContainerenhancements- 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,pandatags. 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 UneditableSectioncontent with the rest ofLayout.Containerlayouts
- Fix display glitch when the dropdown in Form.DateInputandForm.DateRangeInputis being minimised
- Fix TimeSlotBarWeekheight being increased tomaxVisibleCellHeightwhen 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.Itemis always expanded on mobile
- Add width and height attributes to ErrorDisplayimage to fix Lighthouse warnings
- Fix to Form.MaskedInputnot reflecting the latest value when its value prop is updated
- Fix incorrect onBlurbehaviour onForm.SelectandForm.MultiSelect
- Update onBlurto be optional forMultiSelect
- Ensure NestedSelectandNestedMultiSelectreflect new options immediately
- Fix NaN error in Form.DateInputif the year value specified has less than 4 digits
- Add error variant for Timeline
- Support JSX elements in Filter.Checkboxoption labels
- Add tooltip to Filter.Itemtitle. Details
- New PopoverV2component with improved positioning behaviour. Details
- 
[WARNING] Deprecate Popover, to be removed in the next major version
- Fix TimeSlotBarWeekheight being increased tomaxVisibleCellHeightwhen actual height is lower
- Add styling when nesting HTML elements within Form.Label- At the moment, we only provide styling for span,pandatags. 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 TimeSlotBarWeekcomponent. Details
- Add onChangeEndprop that is called when selection ends inInputSlider,InputRangeSliderandHistogramSlider
- Introduce HistogramSlidercomponent. Details
- Introduce Tabscomponent. Details
- Introduce red style variant for Buttonwith thedangerprop
- Add Button.Dangerdesign tokens
- Introduce Slidercomponent. Details
- Ensure Filter.Itemis always expanded on mobile
- Add width and height attributes to ErrorDisplayimage to fix Lighthouse warnings
- New FullscreenImageCarouselcomponent. Details
- 
TimeSlotBarenhancements- Adjust dimensions
- New minified variant
 
- 
BoxContainerenhancements- Tweak layout and update mobile breakpoint
- Reposition call-to-action in mobile viewports
 
- Update onBlurto be optional forMultiSelect
- Ensure NestedSelectandNestedMultiSelectreflect new options immediately
- Update copy and styling for ErrorDisplay. Now there are more specific default messages for each display type
- Fix misalignment for UneditableSectioncontent with the rest ofLayout.Containerlayouts
- Fix display glitch when the dropdown in Form.DateInputandForm.DateRangeInputis being minimised
- Fix to Form.MaskedInputnot reflecting the latest value when its value prop is updated
- Fix incorrect onBlurbehaviour onForm.SelectandForm.MultiSelect
- Fix NaN error in Form.DateInputif the year value specified has less than 4 digits
- 
Navbarenhancements- Add hideNavBrandingprop to hide brand logos completely
 
- Add 
- Date picker enhancements
- Update DateInputandDateRangeInputwithout button to return to day view after selecting month/year
- Hide Done and Cancel buttons for DateInputwithout button
- Add fixed ranged variant for DateRangeInput
 
- Update 
- Add more Timelinevariants
- 
Alertenhancements- Add small variant
- Display matching status icon with showIcon
- Support custom icon for hyperlink
 
- New DataTablecomponent. Details
- New CountdownTimercomponent. Details
- Support handling of expanded state in Filter.Item
- Support auto transformation of MaskedInputvalue to uppercase or lowercase
- Add prop in Accordionto 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.ColDivcomponent for easier rendering of divs conforming to the grid columns. Details
- Enhance Formcomponents to supportColDivprops
 
- Add 
- Add BookingSG theme resources for ErrorDisplay. This affects the graphics only
- Introduce MyLegacy theme
- Reduce Navbarlogo size on smallest screen to cater for wider logos
- Fix incorrect text color on Alert
- Fix value overflow in DateRangeInputon smaller device widths and grid layout
- Fix mismatched box shadow when using other themes in CountdownTimer
- Fix Navbarmobile menu button appearing even if no items or action buttons are specified
- Ensure PaginationreflectspageSizeprop 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 ErrorDisplayis used without aThemeProvider
- Fix unscrollable page after replacing Overlays 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 DateInputwhenwithButtonis false. Previously they were always forced to show on mobile viewports
- Fix value overflow in DateRangeInputon smaller device widths and grid layout
- Fix mismatched box shadow when using other themes in CountdownTimer
- Fix error when ErrorDisplayis used without aThemeProvider
- Fix unscrollable page after replacing Overlays in quick succession
- Add BookingSGtheme resources forErrorDisplay. This affects the graphics only
- Enhance Formcomponents to supportColDivprops to enable easier styling in grid layouts- You can now make use of the mobileCols,tabletColsanddesktopColsprops directly on theFormcomponents 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 Accordionto 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.ColDivcomponent for easier rendering of divs conforming to the grid columns. Details- Props to allow easier specification of column widths across different viewports
 
- New CountdownTimercomponent. Details
- Support handling of expanded state in Filter.Item
- Support auto transformation of MaskedInputvalue 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 DataTablecomponent. Details
- Introduce hideNavBrandingprop forNavbarto hide brand logos completely
- Update DateInputwithout button to return to day view after selecting month/year
- Introduce more Timelinevariants
- 
Alertenhancements- Add small variant
- Display matching status icon with showIcon
- Support custom icon for hyperlink
 
- Reduce Navbarlogo size on smallest screen to cater for wider logos
- Fix Navbarmobile menu button appearing even if no items or action buttons are specified
- Ensure PaginationreflectspageSizeprop change
- 
[BREAKING] Make Toast a floating element by default. You may make it inline by passing sticky={false}
- New NestedSelectcomponent. Details
- New NestedMultiSelectcomponent. Details
- New MaskedInputcomponent. Details
- New UneditableSectioncomponent. Details
- Add button to clear/select all options in Filter.Checkbox
- 
Checkboxenhancements- Update look and size to visually match newer components
- Introduce indeterminatestate
 
- Update button label in MultiSelectto "Clear all"
- 
Navbarenhancements- 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 ErrorDisplayto have more customisation options such as- Introducing data-idto the image, title and description components to enable customisation. Details
- Introduce imageOnlyprop 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 es6for compatibility with older browsers such as iOS Safari 13
- Handle display of cleared and invalid date values in DateInputandDateRangeInput
- Add className,idanddata-testidprops for components that are missing them. All components now have the holy trinity βοΈ of props
- Update @lifesg/react-iconspeer dependency that caused theCheckboxcomponent to not have the updated icon
- Update Toastanimation for tablet view
- Adjust input box shadows
- Adjust colour of Modalclose icon
- Adjust colour of disabled form labels across all form inputs fields
- Add UneditableSectioncomponent. More details
- Enhance ErrorDisplayto have more customisation options such as- Introducing data-idto the image, title and description components to enable customisation. See details
- Introduce imageOnlyprop to render just the image without the text content
 
- Introducing 
- Add className,idanddata-testidprops for components that are missing them. All components now have the holy trinity βοΈ of props
- Update @lifesg/react-iconspeer dependency that caused theCheckboxcomponent to not have the updated icon
- 
Navbarenhancements- 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 NestedMultiSelectcomponent. More details here
- New MaskedInputcomponent. More details here
- Update Toastanimation for tablet view
- Adjust input box shadows
- Adjust colour of Modalclose icon
- Adjust colour of disabled form labels across all form inputs fields
- Handle display of cleared and invalid date values in DateInputandDateRangeInput
- 
Checkboxenhancements- Update look and size to visually match newer components
- Introduce indeterminatestate
 
- Fix Navbartypings
- 
NestedSelectcomponent (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 MultiSelectto "Clear all"
- Add button to clear/select all options in Filter.Checkbox
- [WARNING] Lower TypeScript target to es6for 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 Popoverto scroll on mobile view when content overflows
- Update built-in search in InputSelect,InputMultiSelectandInputGroupto be case-insensitive for secondary label
- Allow RangeSelectselection to be cleared
- Export DesignTokenat the top level
- Trigger onChangewhen input values are padded inUnitNumberInput
- 
PredictiveTextInputfixes- Handle undefined selectedOption
- Ensure input is cleared even when dropdown list is not shown
 
- Handle undefined 
- 
Tagcomponent. More details
- 
PredictiveTextInputcomponent. More details
- 
Accordion.Itemenhancements- Support for programmatic expand or collapse
- Allow overriding of initial display state per item
 
- Fix edge case where Overlaybackground is scrollable
- Fix Popoverremaining positioned above when there is no space available at the top of the screen
- Remove extra border from ToggleandRadioButtonin Safari 13
- [WARNING] Increase z-index of Popover
- 
FileUploadcomponent. More details
- 
Pillcomponent. More details
- Add week selection for DateInputandDateRangeInput
- Add onFocuscallback forDateInput,DateRangeInput,TimeInputandTimeRangeInput
- Add onDismisscallback forToast
- Fix caret position for formatted input fields such as PhoneNumberInputandUnitNumberInput
- Fix Drawerelement focus order and cross button color
- Fix Calendarstyling and the calendar that appears in the date inputs
- Fix Filteranimation
- 
Sidenavcomponent
- Add ability to collapse or expand all Accordionitems on initial render
- Fix SSR error where documentorwindowis not defined
- Fix button types in remaining components to prevent unintentional form submission
- Introduce the Drawercomponent. More details
- Fix typing issue in Toastprops
- Update Accent dark colors for the Base color set
- Update Shadow accent color for RBS color set
- Standardise input heights
- Fix misaligned InputGroupchildren
- Fix OtpInputdisplay on small mobile viewports
- Fix width styling on DateInputandDateRangeInput
- Display mobile mode of Filterin tablet viewport
- Introduce RBS theme. You can view the colour palette here
- Add Tabledesign tokens to manage table cell styling
- [BREAKING] IconButtonstyling has been reworked to matchButtonand props have been updated
- Fix infinite rendering in calendar and date pickers in scenarios where onYearMonthDisplayChangemodifies the value
- To be consistent with the calendar, TimeSlotWeekView.onWeekDisplayChangenow 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 TimeSlotWeekViewto display timeslots for a week
- Enhancements to Calendarand date pickers- [BREAKING] Split ranged date input from DateInputto the newDateRangeInput
- [BREAKING] Replace betweenwithminDateandmaxDate
- [BREAKING] onChangeRawandonBlurRawhave been removed
- [BREAKING] onBlurno longer returns the date value. UseonChangeto get value changes instead
- Allow date inputs to be cleared by deleting the typed characters
- Introduce styleTypeprop to control the border for the standalone calendar
- Extend onYearMonthDisplayprop to date inputs
- Allow selection of disabled dates
 
- [BREAKING] Split ranged date input from 
- [WARNING] Time pickers return 12hrformatted values in uppercase i.e. am/pm is now AM/PM
- [BREAKING] Updated import paths of InputMultiSelectandInputRangeSelect
- Add stretch layout to NavbarandFooter(not confined to the max width settings)
- Add Paginationto support paged navigation
- Amend width of calendar dropdown to match the parent input for date pickers
- Fix cancel and done button on DateInputinterfering with a formβs submit button
- Fix classNameproperty not assigned correctly to the wrapper forInputSelect,InputMultiSelectandRangeSelect