Releases: LifeSG/react-design-system
v3.4.0-canary.4
What's Changed
π New features
- [BREAKING] Build optimisations
- Decreased time taken for the build step and reduced package size
- Components are no longer packaged as standalone modules, reducing duplicate code
β οΈ Imports are now restricted to the root@lifesg/react-design-systemor pre-defined subpath entrypoints i.e.@lifesg/react-design-system/<component>. Internal file paths that were previously accessible will throw an errorβ οΈ For consumers using Styled Components + NextJS 16 + Turbopack + Page Router, you may encounter a flash of unstyled content. Update yournext.config.tswith this flag:bundlePagesRouterDependencies: true
ποΈ Style fixes
- Fix incorrect font weight for
Form.Textareaerror message
π Bug fixes
- Fix click not triggering for
DataTableheader
π§ Miscellaneous
- Bump
dompurifydependency from 3.3.2 to 3.4.2
More details: https://github.com/LifeSG/react-design-system/wiki/Changelog
Full Changelog: v3.4.0-canary.3...v3.4.0-canary.4
v4.0.0-alpha.2
Caution
V4 is in early alpha and is not ready for production use. If you are on V3, please continue to use the canary, minor or patch versions only.
What's Changed
π New features
- [BREAKING] Merge
ButtonWithIconandIconButtonwithButton - [BREAKING] Deprecate
Button.Default,Button.LargeandButton.Smallin favour of asizeTypeprop - [BREAKING] Remove Styled Components typing from
Typography. You will now encounter an error when interpolating the component directly in a Styled Components declaration - [WARNING] Remove unintended
"multi"variant fromForm.DateRangeInput - [BREAKING] Update
ErrorDisplayillustrationSchemeto mirror theme types - Expose a list of enumerated theme types via a
THEME_TYPESconstant - [BREAKING] Remove
Accordioninternal propsTitleStylePropsandTitleWrapperStyleProps - [BREAKING] Remove
BreadcrumbitemStyleprop - [BREAKING] Remove function interpolation support for
colorprop from the following components:Divider,Form.Slider,Form.RangeSlider
ποΈ Style fixes
- Fix text colour in dark mode for dropdown's fail load state
- Fix issue where colour-based component tokens were not populated
- Fix media query specificity, allowing consumers to override styles specified in media queries
- Fix either light mode or dark mode colours not applying for
Masthead
π Bug fixes
- Fix
Tabinitial scroll offset when it is rendered within an ancestor container with any padding or margin - Fix broken CSS import paths causing consumer builds to fail
π§ Miscellaneous
- Completed Linaria migration for various components
- Upgrade Jest to v30
- Resolve unit test console errors
- Set up GitHub action to run functional tests in pipeline
- Resolve flakiness in functional tests
More details: https://github.com/LifeSG/react-design-system/wiki/Changelog-v4
Full Changelog: v4.0.0-alpha.1...v4.0.0-alpha.2
v3.4.0-canary.3
What's Changed
π New features
- [a11y] Improve
TimeslotWeekViewaccessibility - [a11y] Improve
Timetableaccessibility
π Bug fixes
- Resolve hydration warnings related to unstable ids for React 18+
- Fix large popovers getting cut off in
Timetable
More details: https://github.com/LifeSG/react-design-system/wiki/Changelog
Full Changelog: v3.4.0-canary.2...v3.4.0-canary.3
v3.4.0-canary.2
What's Changed
π New features
- [a11y] Improve
DataTableaccessibility - [a11y] Improve
TimeslotBarWeekaccessibility
π Bug fixes
- Narrow
ModalandModalV2child typings to support only one valid JSX child - [a11y] Fix invalid accessibility tree for dropdowns and nested dropdowns
- [a11y] Ensure
Form.CustomFieldhas a unique default id - Fix issue where
PopoverTrigger's modal would close immediately on mobile
More details: https://github.com/LifeSG/react-design-system/wiki/Changelog
Full Changelog: v3.4.0-canary.1...v3.4.0-canary.2
v3.4.0-canary.1
What's Changed
π New features
- New
LanguageSwitcherwth a dropdown variant and link variant - [a11y] Improve
SmartAppBanneraccessibility FullscreenImageCarouselenhancements- Add optional delete button
- Support custom content slots
- Add a file info bar to optionally display file name and size
- Memoise
Mastheadcomponent. This may help with edge cases where the panel collapses automatically when the parent component rerenders
π Bug fixes
- [a11y] Apply accessible name for
Paginationpage size picker
More details: https://github.com/LifeSG/react-design-system/wiki/Changelog
Full Changelog: v3.3.0-canary.7...v3.4.0-canary.1
v3.3.0
What's Changed
π New features
- Enhancement to
RangeSelect- Update styling to new card-based dropdown and V3 design
- Fix dropdown getting cut off when it exceeds the parent container bounds
- Support auto positioning
- Enhancement to
TimeRangePicker(dial) andTimePicker- Fix dropdown getting cut off when it exceeds the parent container bounds
- Support auto positioning
- Enhance
OtpInputto support external controls- New
otpOnlyprop to hide the action button - New
startCooldownandonCountdownChangemethods to control and track the countdown state outside of the component
- New
- Support counter offset for
Timelinenumeric variant - Add
multivariant to the Calendar to support selection of multiple dates - Expose Navbar and Button component tokens
FileUploadenhancements- Add default PDF icon thumbnail for PDF files
- Adjust file size text colour
- Update display of delete button for a file item with error
- Support initial scroll position in dropdown for
TimeRangePickercombobox variant - New
SMGStheme - Update semantic colour tokens for SGW Digital Lobby theme
- Support hover colour for slot in
TimeSlotBar - [a11y] Improve
LinkListaccessibility - [a11y] Improve
ErrorDisplayaccessibility - [a11y] Improve
MaskedInputaccessibility - [a11y] Improve
FeedbackRatingaccessibility - [a11y] Improve
TimePickerandTimeRangePickeraccessibility - [a11y] Improve
RangeSelectaccessibility - [a11y] Improve
RangeSliderandSlideraccessibility - [a11y] Improve
FullscreenImageCarouselaccessibility - [a11y] Improve
HistogramSlideraccessibility - [a11y] Introduce
focusableWhenDisabledprop forRadioButton,ToggleandCheckbox - [a11y] Improve accessibility of
TimeSlotBar - [a11y] Improve accessibility of
OTPVerification
ποΈ Style fixes
- Fix incorrect text colour for
Tab.Item - Improve display of larger fonts in
DateInputandDateRangeInputinput fields
π Bug fixes
- Fix
PopoverTriggerdismissing when triggering nested floating content such as other popovers or dropdowns - Prevent submit behaviour when a button in
OtpVerificationis clicked within a form - Fix issue where the page jumps to the top when a modal is forcibly unmounted
- Improve backdrop click detection on
Overlay. This fixes an issue whereDrawerwould auto-close when users highlight text inside the drawer and drag their mouse outside of the drawer - Make viewport resize detection in
ModalandModalV2more robust by listening to the scroll event
π§ Miscellaneous
- Migrate Storybook 8 to 10
- Update
tsconfig.jsonmoduleResolutionto bundler - Bump
fabricdependency from 6.7.0 to 7.2.0 - Set
data-testidon the top-level container element forForm.MaskedInput,Form.TimePicker,Form.TimeRangePicker,Form.RangeSelect,Form.RangeSlider,Form.Slider,Form.HistogramSlider - Update
data-testidforTimeRangePicker(combobox) start and end fields:timepicker-selectorsplit totimepicker-selector-startandtimepicker-selector-end - Include the label addon as part of the input's accessible name in
InputGroup(also affectsPhoneNumberInputwith fixed country code)
More details: https://github.com/LifeSG/react-design-system/wiki/Changelog
Full Changelog: v3.2.0...v3.3.0
v3.3.0-canary.7
What's Changed
π New features
- Support initial scroll position in dropdown for
TimeRangePickercombobox variant - New
SMGStheme - Update semantic colour tokens for SGW Digital Lobby theme
- Support hover colour for slot in
TimeSlotBar - [a11y] Improve accessibility of
TimeSlotBar - [a11y] Improve accessibility of
OTPVerification
ποΈ Style fixes
- Improve display of larger fonts in
DateInputandDateRangeInputinput fields
π Bug fixes
- Make viewport resize detection in
ModalandModalV2more robust by listening to the scroll event
π§ Miscellaneous
- Include the label addon as part of the input's accessible name in
InputGroup(also affectsPhoneNumberInputwith fixed country code)
More details: https://github.com/LifeSG/react-design-system/wiki/Changelog
Full Changelog: v3.3.0-canary.6...v3.3.0-canary.7
v3.3.0-canary.6
What's Changed
π New features
FileUploadenhancements- Add default PDF icon thumbnail for PDF files
- Adjust file size text colour
- Update display of delete button for a file item with error
- [a11y] Introduce
focusableWhenDisabledprop forRadioButton,ToggleandCheckbox
π Bug fixes
- Improve backdrop click detection on
Overlay. This fixes an issue whereDrawerwould auto-close when users highlight text inside the drawer and drag their mouse outside of the drawer - [a11y] Fix slider interaction on Android Talkback for
InputSlider,InputRangeSliderandHistogramSlider
More details: https://github.com/LifeSG/react-design-system/wiki/Changelog
Full Changelog: v3.3.0-canary.5...v3.3.0-canary.6
v4.0.0-alpha.1
Caution
V4 is in early alpha and is not ready for production use. If you are on V3, please continue to use the canary, minor or patch versions only.
What's Changed
- Move design tokens to theme-specific CSS stylesheets
- Introduce new
ThemeProviderand various utils to handle general theming, light/dark mode, and breakpoint detection - Deprecate V3 design tokens
v3.3.0-canary.5
What's Changed
π New features
- [a11y] Improve
FullscreenImageCarouselaccessibility - [a11y] Improve
HistogramSlideraccessibility
ποΈ Style fixes
- Fix incorrect text colour for
Tab.Item
π§ Miscellaneous
- Set
data-testidon the top-level container element forForm.HistogramSlider
More details: https://github.com/LifeSG/react-design-system/wiki/Changelog
Full Changelog: v3.3.0-canary.4...v3.3.0-canary.5