Skip to content

Changelog (V1)

Ruo Ling edited this page Dec 1, 2025 · 4 revisions

v1.19.17

🐞 Bug fixes

  • Gracefully handle conditional validation targeting conditionally rendered field
  • Prevent entry of 'e' or 'E' notation in numeric-field

v1.19.16

πŸŽ‰ New features

  • Gracefully handle if uploaded file's fileUrl is not available
  • Support default value from multipart e-signature-field
  • Support custom headers and session id in e-signature-field upload

🐞 Bug fixes

  • Ensure submit button disabled state is applied on schema change
  • Fixed occasional invalid location data in location-field during rapid mobile selection
  • image-upload
    • Show image review modal only when all the images have been uploaded
    • "Add photos" button no longer trigger a form submission

v1.19.15

πŸŽ‰ New features

  • Add React 19 support

v1.19.14

πŸŽ‰ New features

  • Serve button as link via new href and target properties

🐞 Bug fixes

  • Refined TFrontendEngineValues typing to not unionise all T value typings
  • Fixed unsafe-eval Content Security Policy error due to HEIC image processing

v1.19.13

🐞 Bug fixes

  • Prevent location-field from extending beyond its parent's width

v1.19.12

πŸŽ‰ New features

  • New loading and loaded events for iframe

v1.19.11

🐞 Bug fixes

  • Fixed crashes due to empty options in multi-select and nested-multi-select fields

v1.19.10

🐞 Bug fixes

  • Fixed an issue on iOS26 where opening the keyboard caused the location modal to resize incorrectly

v1.19.9

πŸŽ‰ New features

  • Add optional duration to location-field mapPanZoom props

v1.19.8

🐞 Bug fixes

  • Updated to Axios 1.10.0 to resolve vulnerabilities
  • image-upload
    • Fixed intermittent upload failures on Android devices
    • Fixed incorrect cropping for smaller images

v1.19.7

🐞 Bug fixes

  • contact-field's defaultValue now accepts phone numbers without spacing

v1.19.6

πŸŽ‰ New features

  • reset button now resets objects to empty objects if ignoreDefaultValues=true

🐞 Bug fixes

  • image-upload / file-upload now strip invalid characters in uploaded file name
  • Removed unsafe-eval usage in image-upload

v1.19.5

πŸŽ‰ New features

  • Support schema and custom z-sorting in label hint of filter-item and filter-checkbox
  • Accept sessionId in image-upload and file-upload request payload

v1.19.4

πŸŽ‰ New features

  • New uen validation

🐞 Bug fixes

  • Fix validation failure when rule is not available on Yup schema

v1.19.3

πŸŽ‰ New features

  • New bufferRadius in location-field to limit distance in reverse geocoding

v1.19.2

πŸŽ‰ New features

  • New clearErrors() method to clear the errors in some or all fields
  • Ability to assign error message to individual fields on an array-field

🐞 Bug fixes

  • Prevent incorrect firing of error message when clicking a textarea pill

v1.19.1

πŸŽ‰ New features

  • Ability to set hidden-field value from schema to make the field uneditable
  • New notMatches rule to validate if value does not match a given regex
  • New notEqualsField rule to validate if value does not equal another field
  • New subLabel for checkbox options of toggle styleType

v1.19.0

πŸŽ‰ New features

  • iframe component
  • Add support for accordion title to accept Frontend Engine schema
  • Exclusion the 3 prefix in contact-field Singapore house number validation
  • Update of image-upload description grey colour to neutral 3

v1.18.8

πŸŽ‰ New features

  • Add support for async validation
  • Add inclusive flag for withinDays validation and conditional rendering rule

🐞 Bug fixes

  • Fix textarea error message and counter not being on the same line
  • Fix validation and conditional rendering failing for the last date in withinDays
  • Exclude past/future dates for beyondDays
  • Fix upload error in Safari browser for image-upload and file-upload

v1.18.7

πŸŽ‰ New features

  • file-upload
    • New request headers option in uploadOnAddingFile
    • New upload-error event on upload error
    • HTML support in field error message
    • Ability to set individual file errors with setErrors

🐞 Bug fixes

  • Fixed excessive compression of image in certain cases after user draw on the image uploaded
  • Fixed file-upload and image-upload file type validation of zip-like files (.xlsx, .ppt, etc.)
  • array-field now inherits defaultValues, restoreMode, revalidationMode, validationMode and stripUnknown

v1.18.6

πŸŽ‰ New features

  • New beyondDays validation in date-field
  • New beyondDays conditional rendering

🐞 Bug fixes

  • Fixed error with assigning custom validation to object-based fields like date-range-field
  • file-upload no longer reject jpg files despite declaring it as an accepted file type

v1.18.5

πŸŽ‰ New features

  • Standardised the icons used in image-upload and location-field
  • New withinDays validation in date-field
  • New withinDays conditional rendering

🐞 Bug fixes

  • Ensure location modal is populated if location-field is populated
  • Fixed wrong validity in array-field when a section is added / removed
  • Fixed custom validation error for object-based fields like date-range-field

v1.18.4

πŸŽ‰ New features

  • Extraction of date/time and GPS EXIF data from images added in image-upload

🐞 Bug fixes

  • Fixed prefilling for fields dependent on shown rule not working in some cases

v1.18.3

πŸŽ‰ New features

  • Support schema in review item value
  • Expose aria labels for slider inputs

🐞 Bug fixes

  • image-upload
    • Prevent breaking of words due to word wrap in error messages
    • Increased top padding for confirmation modals
  • Fix to onValueChange prop to call when value or form validity has changed
  • Ensure clearing of boolean values when restoreMode=none

v1.18.2

πŸŽ‰ New features

  • customOffset, position, underlineHoverStyle and underlineStyle options for popover
  • New stretch option for review box variant

🐞 Bug fixes

  • Grammar fix to upload error message

v1.18.1

πŸŽ‰ New features

  • New subLabel property for radio field of toggle style type

🐞 Bug fixes

  • More accurate middle truncation of file name in image-upload
  • Fixed auto focus bug on iOS where text-field is auto focused on value change

v1.18.0

πŸŽ‰ New features

  • New error-field component
  • New imageReviewModalStyles for image-upload to style image review modal
  • New background option for review box variant
  • Support disabling of default content padding in accordion
  • Support schema label in checkbox and radio
  • Deprecated IWrapperSchema and replaced with TWrapperSchema

v1.17.0

πŸŽ‰ New features

  • New array-field component

🐞 Bug fixes

  • Fixed image-upload field to restrict jpeg in the correct mime type
  • Fixed numeric-field to submit values as numbers

v1.16.0

πŸŽ‰ New features

  • New popover uiType
  • New toggleFilterButtonStyle for filter to customise button style
  • New useToggleContentWidth for filter-checkbox to fit checkbox toggle to its contents on mobile
  • Support schema as children in alert element
  • Breaking change text ui types with parapgraph: true now comes with a bottom margin (ref)

🐞 Bug fixes

  • Fixed crashing while checking for file type in file-upload and image-upload
  • image-upload
    • Fixed image prompts padding
    • Fixed issue where user cannot upload the same image twice in a row

v1.15.0

πŸŽ‰ New features

  • New select-histogram uiType

v1.14.0

πŸŽ‰ New features

  • New timeline component
  • Addition of retry button to e-signature-field
  • New addOn option to add icon before / after input field for email-field, numeric-field and text-field
  • New zIndex option in label object to control z-sorting of label hint
  • New uiType argument in addFieldEventListener, removeFieldEventListener and dispatchFieldEvent
    • This enables typings and code hinting in the above-mentioned functions
    • Current arguments without uiType is still supported
  • Standardised default error messages to end with a period (.) and ability to override them through new validation configs
  • Modals of date and select fields are now rendered independent of their parents, use the new zIndex or dropdownZIndex to override the modal's z sorting accordingly

v1.13.0

πŸŽ‰ New features

  • Updates to look & feel of checkbox / radio buttons with nested fields
    • Note: This update removes the default padding for the nested fields, please apply the necessary padding from the schema / styling
  • Added img support in parsing of html contents for text component

🐞 Bug fixes

  • image-upload
    • Fixed issue where capture is not being applied to the image review modal
    • removePendingImages: true now keeps all uploaded images and custom error muted images

v1.12.1

πŸŽ‰ New features

  • new searchBarIcon for location-field to set icon in location search input

🐞 Bug fixes

  • e-signature-field now dismisses loading indicator on upload error
  • location-field
    • Ensure get-selectable-pins is triggered beyond the first rendering of the location modal
    • Ensure formValues is not undefined in event
  • Ensure setWarnings / setErrors can work in event listeners

v1.12.0

πŸŽ‰ New features

  • New e-signature-field

🐞 Bug fixes

  • Fixed issue where custom component schema type is not inherited when nested in other schemas
  • Fixed issue where location-field's recenterAndTriggerEvent in being triggered incorrectly

v1.11.0

πŸŽ‰ New features

  • New accordion element
  • Removal of nesting of fields for the error object in setErrors(), please target the field directly

🐞 Bug fixes

  • setErrors() now supports targeting nested radio button option fields
  • then and otherwise conditional validation typings now inherits custom validation typings
  • Ensure non-conditional validation rules can still work together with conditional validation rules
  • location-field
    • Fixed empty form values being passed to event listeners on dismissing location modal
  • image-upload no longer re-parses default values when non default values are removed

v1.10.3

πŸŽ‰ New features

  • HTML contents is now based on Design System's Markup component, this comes with prescribed styles for certain elements like links and lists

🐞 Bug fixes

  • image-upload
    • Retain custom muted error after going through image review
    • Preserve and submit uploadResponse populated from defaultValues

v1.10.2

πŸŽ‰ New features

  • New addressFieldPlaceholder for location-field to set placeholder for location search field in location modal
  • image-upload
    • New dismiss-review-modal event
    • New uploaded event
    • update-file-validation event is now renamed as update-image-status
    • New muted error style for individual image

🐞 Bug fixes

  • Edit button in location-field no longer cause a form submission

v1.10.1

πŸŽ‰ New features

  • location-field
    • removed before-get-current-location and refresh-current-location events`
    • added click-refresh-current-location and trigger-get-current-location
  • Amended file exceeded error title in image-upload review modal

🐞 Bug fixes

  • file-upload now preserves and returns uploadResponse that is populated from default values

v1.10.0

πŸŽ‰ New features

  • New validate() method to trigger validation
  • New onValueChange prop that is fired only when any field value changes
  • image-upload now allows uploading multiple images through the file dialog window
  • New compressImage option for file-upload to compress images
  • Updates to review component
    • topSection and bottomSection in accordion variant
    • Ability to mask value in box variant
    • Ability to call API to unmask value
  • Apply className to elements within checkbox and radio

🐞 Bug fixes

  • Mask / unmask button in review no longer trigger form submission
  • Custom validation typings are now getting passed into children of non-field elements

v1.9.1

πŸŽ‰ New features

  • New shown conditional rendering rule
  • New context argument in custom validation validate function
  • New before-get-current-location and refresh-location events in location-field

🐞 Bug fixes

  • addCustomValidation() now applies custom validation only to the Frontend Engine instance calling it
  • image-upload no longer causes infinite compression loop for certain images

v1.9.0

πŸŽ‰ New features

  • New ordered-list and unordered-list
  • New custom validation event in image-upload
  • New hideInputKeyboard in date-field and date-range-field
  • hidden-field is now able to support number and boolean validation / conditional rendering

🐞 Bug fixes

  • Fix to max files error message in image-upload
  • Excludes invalid HTML props in hidden-field

v1.8.1

🐞 Bug fixes

  • Prevent unnecessary unregistering of inactive tab children

v1.8.0

πŸŽ‰ New features

  • FrontendEngine
    • New components prop to define custom components
    • New wrapInForm prop to optionally render the <form> element
    • New setWarnings() to render warnings (aka soft validation errors)
  • Support for nested conditional validation
  • New hidden-field
  • checkbox and radio fields now support nested fields
  • image-upload
    • Accepts html markup in label
    • New capture key to allow user to use his/her media device to capture photo
  • location-field
    • disableSearch to restrict location search input
    • locationSelectionMode to restrict picking location
    • maxZoom to restrict zoom in location picker
    • hasExplicitEdit renders an edit button
    • Dispatches new events
      • click-confirm-location when click on confirm button in location modal
      • before-hide-permission-modal when location permission is going to get dismissed
      • get-selectable-pins when retrieving location pins
    • Listens to new events
      • confirm-location to confirm location manually
      • hide-permission-modal to hide location permission modal manually
      • dismiss-location-modal to dismiss location modal manually

v1.7.0

πŸŽ‰ New features

  • New uiType
    • masked-field
  • location-field
    • ability to customise search results title
    • new text banner in the location picker map
  • Ability to hide "Edit" button review accordion variant

🐞 Bug fixes

  • Fix to heic / heif image compression in image-upload

v1.6.0

πŸŽ‰ New features

  • New uiType
    • file-upload
  • Labels
    • HTML support for field labels
    • HTML support to filter-checkbox option label
    • filter-item and filter-checkbox labels now support rendering popover

🐞 Bug fixes

  • Conditional validation
    • Resolved cyclic dependency error in fields that refer to each other
    • Resolved crashes in referencing fields that have not be initialised yet
  • Validation rules can now being applied even if the condition is not specified as the first key
  • Values are now restored properly even when restoreMode is updated on-the-fly

v1.5.0

πŸŽ‰ New features

  • New uiType
    • histogram-slider
    • slider
    • tab and tab.item

🐞 Bug fixes

  • Fixed missing styling in Text elements when nested
  • nested-multi-select field enforces schema to have either value or subItems but never both
  • Review element of accordion variant no longer warns about div being nested inside a p tag

v1.4.0

πŸŽ‰ New features

  • New nested-multi-select uiType
  • Date range field
    • Support for fixed-range variant
    • New numberOfDays validation rule

v1.3.1

πŸŽ‰ New features

  • Ability to add sub label and popover to fields
  • Support for html text in checkbox and radio button option labels on default styleType

🐞 Bug fixes

  • Resolved errors if convertLatLngToXYEndpoint is not defined in location field schema
  • includes and excludes validation rules no longer applies when field has no values

v1.3.0

πŸŽ‰ New features

  • New button field
  • section field
    • New contain layoutType that comes with 1320px max-width for general layout purposes
    • New default layoutType to represent the standard layoutType that is applied by default
    • grid layoutType now comes with 0.75rem horizontal padding
  • expanded key for filter-item and filter-checkbox

v1.2.1

πŸŽ‰ New features

  • New typings available
    • ECustomElementType
    • ECustomFieldType
    • EElementType
    • EFieldType
  • Location field
    • disabled key
    • show-location-modal event
    • hide-location-modal event
  • Date range field
    • notPast validation rule
    • notFuture validation rule

🐞 Bug fixes

  • Contact field no longer performs international number validation when the rule is not specified

v1.2.0

πŸŽ‰ New features

  • New grid uiType
  • New divider uiType
  • New columns keys for all components to render in grid layout
  • New layoutType key for section to render grid layout

v1.1.3

πŸŽ‰ New features

  • New maxLines key for Text elements to be collapsible with View more / View less button

🐞 Bug fixes

  • Emptied fields no longer run non-required validation rules

v1.1.2

πŸŽ‰ New features

  • New clearBehavior in filter-item and filter-checkbox schemas to control how the values change when filter clear button is clicked

🐞 Bug fixes

  • Removing fields from schema at runtime no longer retain validation configs of those fields

v1.1.1

πŸŽ‰ New features

  • Ability to specify the value(s) to be returned in getValues() via the payload argument

🐞 Bug fixes

  • Location field
    • Allowed dropping of pins in the map
    • Picks closest location on pin drop
    • Does SVY21 coordinates conversion instead of using the ones on pin drop
  • Review field now triggers the onChange event on mount

v1.1.0

πŸŽ‰ New features

  • New review component
  • New stripUnknown flag to exclude values of fields that are not declared in the schema when returned on submit, change and getValues()

v1.0.1

πŸŽ‰ New features

  • Updated to use Design System v2.1.0-canary.5
  • Location field is now serving static map and doing address search via a new OneMap domain

🐞 Bug fixes

  • Added className support for
    • chips (textarea)
    • contact
    • image-upload
    • location-field
    • multi-select
    • range-select
    • select
    • textarea (chips)
    • unit-number-field

v1.0.0

πŸŽ‰ New features

  • isDirty flag to indicate if user has modified any fields

🐞 Bug fixes

  • Reinstated icons in image upload buttons
  • Switched to new URL scheme for OneMap map tiles
  • Range select now clears inputs properly on partial selection
  • Location field now supports validation config

v1.0.0-alpha.17

πŸŽ‰ New features

  • restoreMode to control how conditionally rendered field gets populated when it is shown again
  • date-range-field uiType

🐞 Bug fixes

  • Location field is now able to parse "Pin location: {lat}, {lng}" addresses
  • Remove prefilled values of hidden fields from form state
  • Uinfin validation is now skipped if the value is empty

v1.0.0-alpha.16

πŸŽ‰ New features

  • Switch to use Design System v2
  • Revert to using design system as peer dependency
  • Date field
    • New excludedDates validation rules to disable specific dates
    • future, past, notFuture, notPast, minDate, maxDate rules now disable invalid dates
    • New allowDisabledSelection option to allow selecting disabled dates

🐞 Bug fixes

  • Contact field
    • Prepend country code if not provided in defaultValues
    • Switch to country if defaultValues use a different country code
    • Ignore defaultValues if the country code does not match for fixed countries
  • Filter
    • Clear button now clears filter values regardless of defaultValues

v1.0.0-alpha.15

πŸŽ‰ New features

  • Add colon (:) to the format of a generic location-field address Pin location: {lat}, {lng}

🐞 Bug fixes

  • Fix location-field errors with parsing Pin location: {lat}, {lng} addresses

v1.0.0-alpha.14

🐞 Bug fixes

  • Fix SSR error introduced in alpha.13

v1.0.0-alpha.13

πŸŽ‰ New features

  • New overrides key as a dedicated key to apply field schema properties on-the-fly over the schema without modifying sections
  • Location field now defaults address to Pin location {lat}, {lng} if reverse geocoding yields no formatted address

🐞 Bug fixes

  • Prevent mutation of defaultValues by FrontendEngine
  • Fixed errant error modal in location field when clicking on map multiple times

v1.0.0-alpha.12

  • Please ignore this version as it does not contain all the changes

v1.0.0-alpha.11

πŸŽ‰ New features

  • Location field
    • Retries up to twice when getting current location
    • new locationModalStyles schema to style location modal

🐞 Bug fixes

  • Fixed stack trace in OneMap errors

v1.0.0-alpha.10

πŸŽ‰ New features

  • Now using @lifesg/react-design-system v1.1.2

🐞 Bug fixes

  • Non-submit buttons no longer cause a form submission on click
  • Allow emptying of contact-field when it has a default value

v1.0.0-alpha.9

πŸŽ‰ New features

  • Location field

🐞 Bug fixes

  • Use semi-bold weight for image-upload label
  • onChange event now fires the correct isValid flag when form is pre-filled

v1.0.0-alpha.8

🐞 Bug fixes

  • Increased chips bottom margin to 16px / 1rem
  • General layout tweaks to image-upload field
  • For submit button in invalid-form mode, it will be enabled on mount when the form is pre-filled with valid values
  • Ensure conditionally rendered fields are rendered if pre-filled values fulfil conditions
  • Fixed SSR error with image-upload

v1.0.0-alpha.7

🐞 Bug fixes

  • Updated empty value check to accept boolean values
  • Temporarily use @lifesg/react-design-system as a dependency instead of peer dependency to resolve conflicts with v2

v1.0.0-alpha.6

πŸŽ‰ New features

  • Range select field
  • Switch field
  • onSubmitError callback prop for FrontendEngine

🐞 Bug fixes

  • Ensure classNames render in radio button wrappers
  • Resolved validation error when numeric field is cleared
  • Fixed layout issues when chips exceed the component width

v1.0.0-alpha.5

πŸŽ‰ New features

  • Radio image button
  • Ability to prevent copy & paste and drag & drop to text-field, email-field and numeric-field
  • Image upload field
  • Event listener
    • Ability to register listeners for events emitted by fields
    • Events are currently only available for image upload
  • Bumped @lifesg/react-design-system dependency to v1.1.0-canary.1

🐞 Bug fixes

  • Fixed date-field to revert to use default value / current date on reset
  • Fixed default value and reset behaviours for chips
    • Ability to set default value for chips with textarea
    • Correct reset behaviour for chips with textarea
  • Ensure textarea can clear value on reset
  • Fixed time-field to revert to use default value / current time on reset
  • Ensure checkbox and radio button use the correct font
  • Ensure error states are reflected in all components

v1.0.0-alpha.4

πŸŽ‰ New features

  • Checkbox
    • Ability to disable specific option
    • New toggle style via customOptions.styleType="toggle"
    • New none option for users to pick none of the options offered
  • Chips
    • Ability to disable specific option
    • New toggle style via customOptions.styleType="toggle"
  • Contact
    • Fixed country according to validation schema
    • country renamed as defaultCountry
  • Filter, filter checkbox and filter item
  • Radio
    • Ability to disable specific option
  • Reset
    • New reset button
    • New reset() method in FrontendEngine component
  • Unit number
  • Bumped @lifesg/react-design-system dependency to v1.0.2
  • Changed default validationMode to onTouched

🐞 Bug fixes

  • Ensure text-field, email-field and number-field use the correct input type

v1.0.0-alpha.3

πŸŽ‰ New features

  • Revamped JSON schema
  • Storybook integration with actions

🐞 Bug fixes

  • Fixed bug with not removing validation schema for components nested in conditionally hidden components
  • Fixed to allow storybook controls to reflect changes in canvas

v1.0.0-alpha.2

πŸŽ‰ New features

  • Removed maxLength key from text, email and textarea fields
    • Use max or length validation rule instead
  • Removed multi key from chips field
    • Use max or length validation rule instead
  • Validation config
    • Added option to do soft validation for any validation rule by specifying {soft: true}
    • Added setErrors() method to set error messages per field
    • Added descriptive warnings for rules that do not exist
    • Added support for min and max date validation to date field
  • Fields with options will now update the selected values when the schema changes, this applies to:
    • checkbox-group
    • chips
    • multi-select
    • radio-button
    • select
  • Added option to disable submit button if there are invalid fields
  • Added setValue() method to manually set each field's value

🐞 Bug fixes

  • Fixed conditional rendering to infer the source field type correctly
  • Removed erroneous values from storybook source code view
  • Updated chips textarea id to {chips id}-textarea
  • Fixed select field to display correct label based on defaultValues
  • Fixed parsing and validating of dates if a different date format is specified

v1.0.0-alpha.1

πŸŽ‰ New features

  • Release of the Frontend Engine in our Github repo

Clone this wiki locally