Changelog
All notable changes will be documented in this file.
[Unreleased]
[4.9.2] - 2025-02-21
Fixed
- FocusTrap: Added missing
FocusTrapcomponent to theindexfile. - Field: Resolved an issue where the
data-disabledattribute wasn't set on the field helper text when the field is disabled.
[4.9.1] - 2025-01-23
Fixed
- FileUpload: Resolved an issue where multiple files were added during a single upload operation.
- DatePicker: Fixed an issue where the
defaultViewproperty did not correctly switch to the specified view.
[4.9.0] - 2025-01-22
Added
- DatePicker:
- Added
minViewandmaxViewoptions for better control over the displayed views, allowing to create Month and Year pickers. - Introduced a new
parsemethod to convert input values into valid dates, complementing theformatoption for enhanced UX - Added
localeandtimeZoneoptions to theformatmethod - Introduced
placeholdercontext property to customize the input's placeholder text
- Added
Fixed
- ColorPicker, HoverCard, Tooltip:
- Fixed intermittent placement shifts caused by updates to the
data-placementattribute
- Fixed intermittent placement shifts caused by updates to the
- FileUpload:
- Resolved an issue where the change event wasn’t triggered when files were dropped into the dropzone
- Fixed an issue where
context.setClipboardFiles(...)was called despite file upload being disabled - Addressed an issue where the machine transitioned to the
draggingstate even when disabled - Fixed an issue preventing rejected files from being deleted via the item delete trigger
- Exposed the disabled state via
context.disabled
- Tour:
- Fixed an issue where the dialog tour step did not synchronize its z-index with the content
- Date Picker:
- Fixed a crash that occurred when entering very large invalid dates in the input field
- Fixed an issue in the year view where selecting a year was not possible when the
minandmaxdates were less than one year apart and overlapped two distinct years
[4.8.1] - 2025-01-14
Fixed
- Resolved an issue where form-related components reset despite the reset event being cancelled.
- FileUpload:
- Fixed a brief warning display when a new image file is added to the preview.
- Enhanced click detection for the dropzone and added support for the
disableClickprop.
[4.8.0] - 2025-01-11
Added
- [NEW] Tour: Introduced the
Tourcomponent to guide users through the interface. For more details, check the Tour documentation. - [NEW] FocusTrap: Implemented the
FocusTrapcomponent to confine focus within a specified container.
Fixed
- HoverCard, Tooltip: Resolved an issue where the controlled open state could become inconsistent during the
openingorclosingphases.
[4.7.0] - 2025-01-08
Added
- Clipboard: Introduced
Clipboard.ValueTextto display clipboard content. - FileUpload:
- Added
preventDropOnDocumentto block file drops on the document when the file upload component is active. - Added
setClipboardFilesto the API for setting files from clipboard data.
- Added
- Progress: Added support for
onValueChangeanddefaultValue. - Tabs, Menu, Combobox: Added
navigateproperty for custom router navigation when selections render as links. - QrCode:
- Added support for
onValueChangeanddefaultValue. - Added
QrCode.DownloadTriggerto enable QR code image downloads.
- Added support for
Fixed
- Collapsible: Fixed a bug where the opening animation replayed when an open collapsible was re-rendered.
- Dialog, Popover: Resolved an issue causing dialogs or popovers to close if the focused element was removed from the DOM.
- FileUpload: Fixed a bug causing the hidden input to desync from accepted files.
- Menu, Popover: Fixed inconsistent interaction detection outside the component when the trigger was inside a scrollable container.
- Pagination: Corrected an issue where the page range returned an incorrect
endvalue whenpageSizeexceededcount. - QRCode: Fixed
getDataUrlto generate a properly sized QR code.
[4.6.0] - 2024-12-29
Added
- Carousel [Breaking]: Redesigned the carousel for better touch handling and performance. See the Carousel docs for more info.
Fixed
- FileUpload: Resolved an issue where the
acceptattribute wasn’t applied to the hidden input. - NumberInput: Fixed a bug where the input event wasn’t triggered on the first click of the increment/decrement controls.
- TreeView: Addressed a limitation where React elements couldn’t be used in the tree view.
- Select: Fixed a regression where scroll restoration didn’t work in overflowing select menus.
[4.5.0] - 2024-12-12
Added
- ColorPicker: Introduced
invalidandopenAutoFocusprops. - TreeView: Exported the
TreeCollectiontype. - FileUpload: Added
acceptedFilesandrejectedFilesoutputs to thevalidatemethod.
Changed
- Environment: Deprecated
EnvironmentContextin favor ofUseEnvironmentContext.
Fixed
- Presence, Collapsible: Fixed a potential memory leak after component unmount.
- Environment: Correctly exported
EnvironmentContext. - SignaturePad: Resolved an issue where
getDataUrl(...)rendered improperly scaled images in Firefox. - NumberInput: Fixed an issue where the locale provided by
LocaleProviderwas not applied correctly.
Removed
- DatePicker: Dropped the unimplemented
modalprop.
[4.4.4] - 2024-11-18
Fixed
- TreeView: Exported missing
TreeViewContext.
[4.4.3] - 2024-11-14
Fixed
- Anatomy: Fixed an issue where the
anatomywas not properly transpiled.
[4.4.2] - 2024-11-14
Fixed
- Utility: Updated entrypoint in
package.jsonfor/anatomy.
[4.4.1] - 2024-11-14
Fixed
- Utility: Incorrect entrypoint in
package.jsonfor/anatomy.
[4.4.0] - 2024-11-11
Added
- Utility: Exported
createAnatomyfor defining custom component anatomy, now accessible viaimport { createAnatomy } from '@ark-ui/react/anatomy'.
Fixed
- ColorPicker
- Added
--colorCSS variable to swatch and swatch trigger parts. - Enabled clicking on swatch when in the open state.
- Added
- Combobox: Fixed a timing issue with the
onValueChangecallback. - Clipboard: Corrected missing
type="button"attribute on clipboard trigger. - Field
- Fixed cleanup issue with
resizeObserveronField.Textarea. - Triggered resize when
rowsattribute or fonts change.
- Fixed cleanup issue with
- TagsInput: Resolved inconsistent delete behavior across states.
- TimePicker: Exported missing
timePickerAnatomy.
[4.3.0] - 2024-11-08
Added
- Field: Added
autoresizeprop toField.Textareafor auto-resizing the textarea based on content.
Changed
- TreeView: Redesigned using the new tree collection for improved rendering and logic management. See the TreeView documentation for details.
- QrCode, SignaturePad, Timer: Promoted from preview to stable release.
Fixed
- Dialog: Fixed an issue where body styles weren't properly restored when
preventScrollwas enabled. - Toast: Corrected type definitions in the
createToasterfunction.
[4.2.0] - 2024-10-26
Added
- Slider: Introduced
Slider.DraggingIndicatorfor displaying an indicator when dragging a thumb. - Field: Added
Field.RequiredIndicatorto show a required indicator (e.g., an asterisk) when therequiredprop is set.
<Field.Root required>
<Field.Label>
Username
<Field.RequiredIndicator />
</Field.Label>
<Field.Input placeholder="Enter your username" />
</Field.Root>
Fixed
- TagsInput: Resolved an issue where
context.addTag(...)was not functioning correctly. - RatingGroup: Fixed a bug where both the rating group and rating item received focus when
readOnlywas set totrue. - Combobox: Corrected behavior where
getSelectionValuewas called multiple times; it now triggers only when a selection is made. - HoverCard: Removed
preventDefaultcalls on thetouchstartevent to avoid browser error logs. - Popover: Fixed a race condition in iOS Safari where switching between popovers caused them to close unexpectedly.
- Presence: Addressed an issue where elements using the presence machine did not exit the unmounting state if closed with a delay while switching tabs.
Changed
- Editable:
- Added
data-autoresizeattribute to both editable and preview elements whenautoResizeis enabled. - Removed the default
all: unsetstyle from the input whenautoResizeis enabled, allowing for user-defined CSS.
- Added
[4.1.2] - 2024-10-15
Fixed
- Resolved an issue causing the
Portalcomponent to render twice. - Corrected missing
'use client'annotation in theFramecomponent.
[4.1.1] - 2024-10-09
Changed
- TimePicker [Preview]: Updated
valueanddefaultValuetypes fromstringtoTime. Use the exportedparseTimefunction to convert between strings and time objects.
Fixed
- TagsInput: Resolved an issue where tag navigation was unresponsive after removing tags with the delete key.
- DatePicker: Fixed a bug where selecting a preset and then blurring the input incorrectly reset the value.
[4.1.0] - 2024-09-30
Added
- Toggle: Introduced the
Togglecomponent. - Dialog: Added support for detecting outside clicks from parent windows when rendered within an iframe.
Fixed
- Resolved a bug where passing a
refto a component occasionally triggered a warning. - Combobox: Fixed an issue where pressing Enter without selecting an option left text in the input.
- Dialog: Fixed an issue where the dialog closed when the positioner was scrollable, and the scrollbar was clicked.
- File Upload:
- Fixed an issue where
acceptedFileswere removed after an invalid file upload. - Fixed an issue in the preview image where
createObjectURLwas not cleaned up.
- Fixed an issue where
[4.0.0] - 2024-09-25
In this major release, we shifted from primitive data types like strings to more structured types such as Collection,
Color, and DateValue. This enhanced flexibility and control by offering advanced methods and properties.
The new APIs introduced helper functions like parseColor, parseDate, and createListCollection to simplify working
with the new types and make code more concise.
Changed
-
ColorPicker [Breaking]: Updated
valueanddefaultValuetypes fromstringtoColor. Use the exportedparseColorfunction to convert between strings and color objects.Before
import { ColorPicker } from '@ark-ui/react/color-picker' const Demo = () => { return <ColorPicker.Root defaultValue="#000" /> }After
import { ColorPicker, parseColor } from '@ark-ui/react/color-picker' const Demo = () => { return <ColorPicker.Root defaultValue={parseColor('#000')} /> }This change allows direct access to color object methods and properties.
-
Select, Combobox [Breaking]: Removed the
items,itemToString, anditemToValueprops. Introduced acollectionprop instead. Use thecreateListCollectionhelper to generate a collection from items.Before
import { Select } from '@ark-ui/react/select' const Demo = () => { return <Select.Root items={['Option 1', 'Option 2', 'Option 3']} /> }After
import { Select, createListCollection } from '@ark-ui/react/select' const collection = createListCollection({ items: ['Option 1', 'Option 2', 'Option 3'], }) const Demo = () => { return <Select.Root collection={collection} /> } -
DatePicker [Breaking]: Changed
valueanddefaultValuetypes fromstringtoDate. To convert between strings and dates, use theparseDatefunction.Before
import { DatePicker } from '@ark-ui/react/date-picker' const Demo = () => { return <DatePicker.Root defaultValue="2024-01-01" /> }After
import { DatePicker, parseDate } from '@ark-ui/react/date-picker' const Demo = () => { return <DatePicker.Root defaultValue={parseDate('2024-01-01')} /> }