Changelog
All notable changes will be documented in this file.
[Unreleased]
[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 
api.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')} /> } 
[3.13.0] - 2024-09-24
Added
- FileUpload: Introduced a 
ClearTriggerfor clearing file uploads. - Switch, Checkbox, Radio Group: Added the 
data-focus-visibleattribute for elements interacted with via keyboard. 
Fixed
- FileUpload: Resolved an issue where 
directory: truewas non-functional. 
Changed
- Tooltip: Now only opens on keyboard focus, improving accessibility.
 
[3.12.1] - 2024-09-19
Fixed
- 
DatePicker
- Fixed issue where the year select dropdown doesn't respect 
minandmaxprops. - Fixed issue where date picker throws when 
minormaxis changed. 
 - Fixed issue where the year select dropdown doesn't respect 
 
[3.12.0] - 2024-09-13
Added
- Frame (Preview): Introduced the 
Framecomponent for rendering content within an iframe. - Timer (Preview): Added 
AreaandControlparts to improve structure and anatomy. 
Fixed
- Combobox: Resolved an issue where the highlighted item remained persistent when the list of items was empty.
 
[3.11.1] - 2024-09-11
Fixed
- Highlight: Fixed issue where 
ignoreCaseandmatchAllprops were not working. 
[3.11.0] - 2024-09-10
Fixed
- 
Floating Components: Fixed issue where clicking outside of a dialog on mobile passed click events through.
 - 
Popover: Fixed issue where popover did not restore focus when open state was changed programmatically
 - 
Avatar: Fixed issue where avatar could throw when the fallback inner text changed
 - 
Steps: Improved accessibility of tablist semantics by using
aria-owns 
Added
- 
FileUpload: Add support for more file types in file upload
acceptintellisense - 
Toast: Add support for
actionproperty when creating toasts, giving you the ability to add aaction.labelandaction.onClick. TheonClickfunction will be called when the user clicks the action trigger. 
toaster.create({
  title: 'Uploaded successfully',
  type: 'success',
  action: {
    label: 'Undo',
    onClick: () => {
      console.log('undo')
    },
  },
})
- File Upload: Added support for 
invalidprop in file upload to explicitly mark upload operation as invalid. This could be paired with therejectedFilesto show an error message. 
Changed
- 
Floating Components: Refactored
boundaryto only support function that returns an element. - 
Select
- Refactored opening and selection to be based on click events rather than pointerdown/up cycles.
 - Improved usability and accessibility of the select component.
 - Fixed issue where controlled multiple selects open state behaved unexpectedly.
 
 
[3.10.0] - 2024-09-02
Fixed
- Steps: Fixed issue where steps context was not exported
 
Added
- Checkbox: Added 
invalidprop toCheckbox.Group 
[3.9.0] - 2024-08-22
Added
- 
Editable
- Add support for controlled the editable's state (edit/preview) using 
editandonEditChange 
 - Add support for controlled the editable's state (edit/preview) using 
 - 
Pagination
- Expose 
api.countproperty 
 - Expose 
 
Changed
- 
Editable
- Removed 
onEditin favor ofonEditChange - Removed 
startsWithEditViewin favor ofeditprop 
 - Removed 
 
Fixed
- 
Dialog
- Fix issue where closing a nested dialog focuses the first focusable element in the parent dialog instead of the previously focused element.
 
 - 
Steps: Fixed issue where the steps component was not exported in the index file.
 
[3.8.0] - 2024-08-19
Added
- Steps (Preview): Added 
Stepscomponent. 
<Steps.Root count={1}>
  <Steps.List>
    <Steps.Item index={0}>
      <Steps.Trigger>
        <Steps.Indicator>1</Steps.Indicator>
        First
      </Steps.Trigger>
      <Steps.Separator />
    </Steps.Item>
  </Steps.List>
  <Steps.Content index={0}>Content</Steps.Content>
  <Steps.CompletedContent>Completed</Steps.CompletedContent>
  <Steps.PrevTrigger>Back</Steps.PrevTrigger>
  <Steps.NextTrigger>Next</Steps.NextTrigger>
</Steps.Root>
- Timer (Preview): Added 
Timercomponent. 
<Timer.Root>
  <Timer.Item type="days" />
  <Timer.Separator>:</Timer.Separator>
  <Timer.Item type="hours" />
  <Timer.Separator>:</Timer.Separator>
  <Timer.Item type="minutes" />
  <Timer.Separator>:</Timer.Separator>
  <Timer.Item type="seconds" />
</Timer.Root>
[3.7.0] - 2024-08-13
Changed
- Progress: Updated 
Progress.ValueTextto render percentage as string. 
Fixed
- 
Field:
- Fixed SSR warning related to 
useLayoutEffectusage. - Fixed issue where id of field parts could not be customized, breaking Zag.js composition.
 - Added 
data-*attributes to control part to allow for better styling. 
 - Fixed SSR warning related to 
 - 
Select: Fixed reactivity issues when
itemsandvalueare updated. 
[3.6.2] - 2024-07-28
Changed
- DatePicker: Added support for 
indexingetLabelProps. 
Fixed
- DatePicker:
- Fixed issue where the selected date doesn't reflect in the input when clicking the trigger and then focusing the input.
 - Fixed SSR issue when using 
getPresetTrigger. 
 - Slider: Fixed issue where 
onValueChangeEndwas called with an incorrect value. - Fixed an import issue with 
@internationalized/date. 
[3.6.1] - 2024-07-26
Changed
- Highlight:
- Enabled import from 
@ark-ui/react/highlight. - Exported 
HighlightChunktype to enhance type inference in userland code. 
 - Enabled import from 
 
Fixed
- Select: Fixed 
HiddenSelectto correctly emit values when a simple string array is used as thevaluefor theSelectcomponent. 
[3.6.0] - 2024-07-25
Added
- Fieldset Component: Introduced to help group form fields.
 
<Fieldset.Root>
  <Fieldset.Legend>Legend</Fieldset.Legend>
  <Fieldset.HelperText>Helper text</Fieldset.HelperText>
  <Fieldset.ErrorText>Error text</Fieldset.ErrorText>
</Fieldset.Root>
Learn more in the documentation.
- Highlight Component: Added to highlight text based on a query.
 
import { Highlight } from '@ark-ui/react'
export const App = () => (
  <Highlight
    query={['Ark UI', 'exclusive examples']}
    text="Unlock exclusive examples and support the development by getting Ark Plus."
  />
)
- Tooltip: Added 
closeOnClickto control tooltip closure on trigger click. 
Changed
- Toast: Exported 
CreateToasterReturntype to improve type inference. - Combobox: Enhanced accessibility by removing unnecessary 
aria-selectedandaria-disabledattributes. 
Fixed
- Toast: Added missing 
aria-labelledbyandaria-describedbyattributes on the root element. - Combobox: Fixed issue where the input didn't update on selection with a pointer.
 - RadioGroup: Corrected misspelt 
data-readonlyattribute. - Select: Enabled customization of 
closeOnSelectwhenmultipleis true. - Tags Input:
- Fixed issues with repeat pasting and undo.
 - Addressed problem where deleting a pasted value disabled further pasting.
 - Ensured values are always unique by discarding duplicates.
 
 
[3.5.0] - 2024-06-30
Added
- 
All Components: Exported each component's anatomy. For example:
import { avatarAnatomy } from '@ark-ui/react' - 
NumberInput: Introduced the
ValueTextpart to render the internal state value. - 
Checkbox: Added the
nameprop toCheckbox.Groupfor setting names within the group. 
Fixed
- TreeView: Resolved an issue preventing input usage within the tree.
 - Progress: Fixed a warning in 
Circledue to an incorrectviewBoxattribute on the<svg>element. - Carousel: Corrected looping behavior for next and previous buttons when both 
slidesPerViewandloopare set. - Menu: Fixed loss of position data in the context menu upon closing.
 
[3.4.0] - 2024-06-25
Added
- Field: Introduced the 
Fieldcomponent for flexible form input, label, and helper text container. - All Components: Exposed base props to simplify prop merging for library consumers, especially
in CSS-in-JS environments.
export interface AccordionItemBaseProps extends ItemProps, PolymorphicProps {} export interface AccordionItemProps extends HTMLProps<'div'>, AccordionItemBaseProps {} - ColorPicker: Added 
SliderValueText,SliderLabel, andValueSwatchparts for enhanced customization. - Tooltip: Introduced the 
closeOnScrolloption to control whether the tooltip should close when the trigger's overflow parent scrolls. - Portal: Added support for 
Shadow DOM. - Signature Pad: Introduced 
HiddenInputto theSignaturePadcomponent for better form library compatibility. 
Fixed
- Menu:
- Resolved an issue causing sibling menus or popovers to malfunction on iOS devices.
 - Fixed a problem where the context menu trigger showed the magnifier and iOS context menu on long press.
 - Fixed an issue where 
RadioOptionItemdid not provide thecheckedstate in context. 
 - Editable: Fixed a bug where setting 
activationModetodblclickunexpectedly cleared the input value. - Checkbox: Added the missing 
grouprole for the Checkbox group component. - Progress: Converted 
Circle,CircleTrack, andCircleRangecomponents to use React'sforwardReffor improved ref handling. - RootProvider: Added the missing 
RootProviderfor theColorPicker,NumberInput,RatingGroup,SegmentGroup, andToggleGroupcomponents. 
[3.3.0] - 2024-06-12
Added
- Signature Pad: Introduced the 
SignaturePadcomponent for capturing signatures. - QR Code: Added the 
QRCodecomponent for generating QR codes. - CheckboxGroup: Added the 
CheckboxGroupcomponent for managing multiple checkboxes. - Presence: Added support for 
immediateto synchronize presence changes immediately instead of deferring to the next tick. 
Fixed
- TreeView: Resolved an issue where the tree view state could be updated after setting
defaultSelectedValueordefaultExpandedValue. - Popover, HoverCard: Fixed an issue where 
defaultOpendid not work. - Tabs: Resolved an issue where rapidly changing the selected tab could briefly show previous tab content.
 - FileUpload: Fixed an issue where the 
onFileAcceptevent was triggered when deleting an item via the delete trigger. - Select: Exported missing 
SelectListcomponent. 
[3.2.1] - 2024-06-07
Fixed
- Combobox: Exported missing 
ComboboxListcomponent. 
[3.2.0] - 2024-06-06
Added
- All Components: Introduced the 
Providercomponent for easier access to internal machine APIs, improving component composition. See the example below: 
import { Avatar, useAvatar } from '@ark-ui/react'
export const Provider = () => {
  const avatar = useAvatar({
    onStatusChange: (e) => console.log('status changed', e),
  })
  return (
    <Avatar.RootProvider value={avatar}>
      <Avatar.Fallback>PA</Avatar.Fallback>
      <Avatar.Image src="https://i.pravatar.cc/300" alt="avatar" />
    </Avatar.RootProvider>
  )
}
[3.1.0] - 2024-06-04
Added
- Editable: Supported 
textareaas the input element in edit mode. 
Fixed
- Select: Fixed an issue where changing the label of a collection item did not trigger a change event.
 - Popover:
- Implemented 
autoFocusto determine whether the popover should autofocus on open:- When 
true, the first focusable element or the content is focused. - When 
false, the content is focused. 
 - When 
 - Fixed an issue where the page scroll resets on opening the popover.
 
 - Implemented 
 
[3.0.2] - 2024-05-29
Fixed
- 
Added the missing
'use client'annotation to thePortalcomponent. - 
Fixed an issue where the
keydownevent might not fire in React due tonativeEvent.currentTargetnot being set consistently. - 
Avatar: Improved image load check by using
naturalWidthandnaturalHeightinstead ofcurrentSrc. 
[3.0.2] - 2024-05-29
Fixed
- 
Added the missing
'use client'annotation to thePortalcomponent. - 
Fixed an issue where the
keydownevent might not fire in React due tonativeEvent.currentTargetnot being set consistently. - 
Avatar: Improved image load check by using
naturalWidthandnaturalHeightinstead ofcurrentSrc. 
[3.0.1] - 2024-05-27
Fixed
- Added missing export for 
HiddenInputinSlider. - Added missing export for 
ItemHiddenInputinRadioGroupandSegmentGroup. 
[3.0.0] - 2024-05-24
Highlights
The 3.0 release brings significant enhancements and some breaking changes for a more streamlined and flexible API. Key updates include new components and types, improved form integration, and forward compatibility with React 19. Here are some of the highlights:
Added
- Context Components: Introduced the 
Contextcomponent for easier access to internal machine APIs, improving component composition. See the example below: 
export const Basic = () => (
  <Popover.Root>
    <Popover.Trigger>Open</Popover.Trigger>
    <Popover.Positioner>
      <Popover.Context>
        {(popover) => (
          <Popover.Content>
            <Popover.Title onClick={() => popover.setOpen(false)}>Title</Popover.Title>
            <Popover.Description>Description</Popover.Description>
          </Popover.Content>
        )}
      </Popover.Context>
    </Popover.Positioner>
  </Popover.Root>
)
- Format: Added a 
Formatcomponent for formatting bytes and numbers. 
<Format.Byte value={120904} unit="byte" unitDisplay="short" />
<Format.Number value={1204} unit="centimeter" />
- 
Tooltip: Added
defaultOpenprop for cases where you do not need to control its open state. - 
Types: Exported
AssignandOptionaltypes to enhance type handling. - 
Toast: Added support for overlapping and stacked toast.
 - 
[BREAKING]: Exposed hidden inputs in
Checkbox,ColorPicker,FileUpload,PinInput,RadioGroup,RatingGroup,SegmentGroup,Select,Slider,Switch, andTagsInputfor better form library compatibility. Please ensure to include the hidden input in your component like shown below: 
<Checkbox.Root>
  <Checkbox.Label>Checkbox</Checkbox.Label>
  <Checkbox.Control>
    <Checkbox.Indicator>
      <CheckIcon />
    </Checkbox.Indicator>
  </Checkbox.Control>
  <Checkbox.HiddenInput />
</Checkbox.Root>
- [BREAKING] Combobox, Select: Made 
idoptional and removedhtmlForfromItemGroupLabelfor cleaner markup. 
- <Combobox.ItemGroup id="framework">
-   <Combobox.ItemGroupLabel htmlFor="framework">Frameworks</Combobox.ItemGroupLabel>
+ <Combobox.ItemGroup>
+   <Combobox.ItemGroupLabel>Frameworks</Combobox.ItemGroupLabel>
- [BREAKING] Popover, Tooltip: Renamed 
closeOnEsctocloseOnEscapeto be consistent with dialog machine. - [BREAKING] Combobox, Menu, Select, Tabs, ToggleGroup: Renamed 
looptoloopFocusto be more descriptive. - [BREAKING] Environment: Renamed 
EnvironmenttoEnvironmentProviderto align with other providers. - React 19: Improved the 
arkfactory's forward compatibility with React 19 by supportingrefas a normal prop. 
Fixed
- DatePicker: Resolved issues with 
minandmaxprops not supporting date strings. - Accordion: Fixed initial flicker of content.
 - TagsInput: Replaced 
HTMLInputElementwithHTMLDivElementinTagsInput.Root. 
Removed
- [BREAKING]: Dropped direct internal API access from Root components. Use the new 
Contextcomponent for more flexible and cleaner API integration. - [BREAKING]: Simplified component APIs by removing 
dirandgetRootNodeattributes. Use LocaleProvider and EnvironmentProvider for these settings. 
[2.2.3] - 2024-03-05
Fixed
- Resolved an issue with using 
Localein Next.js projects. - Resolved an issue with 
Toastnot updating its toasts and count properties when creating one or more toasts. 
[2.2.2] - 2024-02-27
Fixed
- Resolved an issue that a disabled 
Accordion.Itemcould still be opened. 
[2.2.1] - 2024-02-27
- Updated to latest 
@ark-ui/anatomyversion. 
[2.2.0] - 2024-02-27
Added
- 
Added
Collapsiblecomponent. - 
Added support for
defaultExpandedIdsin theTreeViewcomponent. - 
Enhanced the performance of the Ark
factoryby utilizingmemoto avoid unnecessary re-renders. - 
Integrated
CollapsibleintoAccordion, allowing theAccordioncomponent to utilizeCollapsiblefor animating the opening and closing of content.d 
@keyframes slideDown {
  from {
    height: 0;
  }
  to {
    height: var(--height);
  }
}
@keyframes slideUp {
  from {
    height: var(--height);
  }
  to {
    height: 0;
  }
}
[data-scope='accordion'][data-part='item-content'][data-state='open'] {
  animation: slideDown 250ms;
}
[data-scope='accordion'][data-part='item-content'][data-state='closed'] {
  animation: slideUp 200ms;
}
Fixed
- Updated the return type of 
createToasterfor comprehensive IntelliSense support when styling theToastercomponent. - Revised 
TreeViewto utilizedefaultSelectedIdsinstead ofdefaultFocusedId. - Resolved an issue with using 
factoryin Next.js projects. - Fixed a bug where the disabled 
Tooltipwould flash upon hovering and clicking the trigger. 
[2.1.1] - 2024-02-14
Fixed
- Resolved an issue where the 
Clipboardcomponent was missing a specifier in the@ark-ui/reactpackage. 
[2.1.0] - 2024-02-14
Added
- Introduced 
Clipboardcomponent. Refer to the documentation for details. - Implemented programmable control over the open state for 
ColorPicker,DatePicker,Dialog,HoverCard,Menu,Popover,Select, andTooltip. - Added a 
PresetTriggerpart to theDatePickercomponent, enabling custom triggers for common date presets (e.g., Last 7 days, Last 30 days). - Enhanced the 
DatePicker.Controlcomponent to support multiple inputs by introducing an optionalindexattribute toDatePicker.Input. Example usage: 
<DatePicker.Control>
  <DatePicker.Input index={0} />
  <DatePicker.Input index={1} />
</DatePicker.Control>
- Refined the 
TreeViewcomponent API for streamlined component usage. See the documentation for details. 
Fixed
- Resolved unintentional interactions when clicking the scrollbar.
 - Addressed an issue where positioned components failed to adjust to window resizing.
 - Corrected a behavior where restoring scroll position triggered a smooth scroll effect back to the starting point.
 - Rectified a problem in 
Combobox,Menu, andSelectwhere scrolling into view inadvertently scrolled the body element. - Fixed a discrepancy in 
DatePickerregarding the incorrect display of weeks when settingstartOfWeek. - Solved an issue in the 
Editablepreventing text deletion upon reachingmaxLength. - Corrected an issue in the 
Selectwhere an item group's labelidwas misdirected. - Adjusted 
Selectto use the correctidfor thearia-activedescendantattribute. 
[2.0.2] - 2024-02-10
Added
- 
Exported
SelectionDetailstype for theMenucomponent. - 
Updated
Dialog.DescriptionandPopover.Descriptionelements fromptodivfor better paragraph handling. - 
Altered
TreeView.BranchTriggerelement frombuttontodivfor accessibility enhancements. 
Fixed
- Fix issue where 
@types/react@18.2.8broke current typings inPortal - Fix issue where 
Selectcomponent submits its first option when used in a form, even if there is no value selected. 
[2.0.1] - 2024-01-30
Fixed
- Resolved an issue that for some components the types were not being generated correctly.
 
[2.0.0] - 2024-01-30
Added
- 
Added
TreeViewcomponent - 
Updated
@zag-jsdependencies to their latest versions, enhancing performance for all components. - 
Breaking Change: Renamed the root types for all components to
<ComponentName>RootProps. Like shown for theAvatarcomponent below: 
- import type { AvatarProps } from "@ark-ui/react"
+ import type { AvatarRootProps } from "@ark-ui/react"
- Breaking Change: Removed the 
.Rootsuffix for provider component likePresenceandEnvironment. 
- <Presence.Root>...</Presence.Root>
+ <Presence>...</Presence>
- 
Breaking Change: Renamed the
indicatorpart toviewin theProgresscomponent to more accurately reflect its functionality. - 
Added the
ItemPreviewcomponent to theTagsInputcomponent. See the example below: 
<TagsInput.Item key={index} index={index} value={value}>
+  <TagsInput.ItemPreview>
    <TagsInput.ItemText>{value}</TagsInput.ItemText>
    <TagsInput.ItemDeleteTrigger>Delete</TagsInput.ItemDeleteTrigger>
+ </TagsInput.ItemPreview>
  <TagsInput.ItemInput />
</TagsInput.Item>
- Refactored the 
Progresscomponent to usedivelements instead ofnavfor semantic correctness. 
Fixed
- Fixed an issue on touch devices where selecting an item within 
Combobox,Menu, orSelecttriggered a click event on the element behind the portalled content. - Fixed an issue in 
PinInputwhere pasting a value filled all inputs instead of populating them one per input. 
[1.3.0] - 2024-01-17
Added
- 
Added the
Progresscomponent. - 
Added
valueAsStringtoonValueChangeinDatePickercallback details - 
Exported change details typings, for example
AccordionValueChangeDetailsorDialogOpenChangeDetails - 
Redesign
Portalcomponent to supportgetRootNodeanddisabledprops - 
Replaced the styling props for indicator with CSS variables in
RadioGroup,SegmentGroup, andTabs. 
Fixed
- Added missing 
placeholderprop toSelectValueTextPropstype. - Fixed the issue where setting 
disabledonComboboxdoes not reflect in combobox item - Fix an issue that breaks the 
Comboboxwhen clicking on the input while the menu is open - Fixed the issue where 
DatePickerinitial value isn't set when using controlled context - Resolved an issue that 
Menuoption item could not be activated by keyboard 
[1.2.1] - 2023-12-13
Fixed
- Resolved an issue where the 
arkfactory type was not being exported correctly. 
[1.2.0] - 2023-12-13
Added
- 
Added the
ToastGroupcomponent. - 
Added entrypoint for the
arkfactory at@ark-ui/react/factory - 
Revised the
FileUploadcomponent. Check out the documentation for more information. 
Fixed
- Added an explicit return type for the 
Portalcomponent to resolve an issue with online code editors. - Resolved an issue where the 
presentprop in the disclosure-type component was not being respected. - Resolved an issue where the 
arkfunction would log a warning when theasChildprop was set tofalse. - Fixed an issue where keyboard interactions within a submenu would bubble up to the parent 
Menu. - Fixed an issue with hydration mismatch in the 
Portalcomponent. 
[1.1.0] - 2023-11-21
Added
- 
Added render function to the
NumberInputcomponent - 
Added
FileUploadcomponent - 
Revised the
ColorPickercomponent. Check out the documentation for more information. 
Fixed
- Resolved an issue where the 
Toastcomponent would throw a warning when multiple toasts were rendered at the same time. 
[1.0.1] - 2023-11-10
Fixed
- Resolved an issue where the 
Dialogcomponent would not animate on exit. - Resolved various issues for 
Menuwhen lazy mounted. - Resolved an issue where 
MenuTriggercould still work even when disabled. - Resolved an issue where components like 
Dialog,Popoveretc would not invokeonExitComplete - Fixed an issue where placement of the 
Comboboxcould be incorrect when lazy mounted. 
[1.0.0] - 2023-11-09
We are happy to announce the release of @ark-ui/react@1.0.0. This release includes a number of
breaking changes, new features, and bug fixes. Since our last release over two months ago, we will
only highlight some key changes. Please refer to the documentation for each component to learn more.
Highlights
- Revised the 
Presencecomponent:lazyMountandunmountOnExithave been added at the root level. For some disclosure components likeTabsandAccordion, this constitutes a breaking change. - Breaking changes have been implemented in 
Accordion,ColorPicker,DatePicker,Dialog,RadioGroup,SegmentGroup,TagsInput,Toast, andToggleGroupto achieve a consistent and more intuitive API. - Resolved various bugs and addressed accessibility issues across all components.
 
Stability and Support
With the release of version 1.0.0, we are moving towards a more stable version of @ark-ui/react.
Future updates will strive to avoid breaking changes, ensuring a smoother experience for our users.
If you encounter any issues while upgrading, please do not hesitate to open an issue on our
GitHub repository. Your feedback is invaluable in helping
us improve.
[0.15.0] - 2023-09-14
Added
- 
Added
ToggleGroupcomponent - 
Added
type HTMLArkPropsthat can be used together with thearkfactory fn to create a type that can be used withasChildprop. - 
Revised
Comooboxcomponent to support multiple selection - 
Revised
Selectcomponent to support multiple selection 
Fixed
- Fix issue where event callbacks that use 
flushSyncdid not have a stable reference, resulting in a noticable blocking re-renders.Affected components:
Slider,RangeSlider,NumberInput,ColorPicker 
[0.14.0] - 2023-08-29
strings.
Combobox: RemoveselectInputOnFocusoption in favor of userland controlTagsInput: RenameonHighlighttoonFocusChange
Removed
- Removed 
'use client'annotation fromcompose-refsfunction. - Removed 
Switchinput. This component is no longer required. TagsInput: RemovedonTagUpdateuseonChangeinstead.Switch: RemoveddefaultCheckedin favor ofdefaultIsChecked
[0.13.1] - 2023-08-13
- Removed 
'use client'annotation fromfactoryfunction. 
[0.13.0] - 2023-08-13
- BREAKING: Renamed 
SegmentIndicatortoSegmentGroupIndicatorto match the naming convention of other components. 
[0.12.0] - 2023-08-13
Added
- Added supoort for 
defaultCheckedtoCheckboxcomponent. - Added supoort for 
defaultCheckedtoSwitchcomponent. - Exposed 
arkfactory function. 
Fixed
- Fixed the display name for 
EditableCancelTriggercomponent. 
Removed
- BREAKING: Removed 
RadioInput. This component is no longer required. - BREAKING: Removed 
SegmentInput. This component is no longer required. 
[0.11.0] - 2023-08-08
Added
- 
Added
ComboboxOptionGroupandComboboxClearTriggercomponents to theComboboxcomponent. - 
Added
DatePickerPositionercomponent to theDatePickercomponent to help with positioning the calendar. - 
Added
ComboboxOptionGroupLabelto theComboboxcomponent. This component can be used to render a label for a group of options in theComboboxOptionGroupcomponent. - 
BREAKING: Renamed
TagsInputFieldtoTagsInputInputto match the naming convention of other input components. - 
BREAKING: Renamed
NumberInputFieldtoNumberInputInputto match the naming convention of other input components. - 
BREAKING: Renamed
PinInputFieldtoPinInputInputto match the naming convention of other input components. 
Removed
- BREAKING: Removed 
CheckboxInput. This component is no longer required. 
[0.10.0] - 2023-08-02
Added
- 
Developers can now set default options for all
Toastcomponents in their application, ensuring a consistent look and feel across the board. - 
Updated number input
onChangehandler to allow synchronous updates to the value when using the scrubber. - 
Improved TypeScript typings in our factory functions. The changes allow for more accurate type inference for the
refproperty when dealing with both intrinsic HTML elements and custom React components. 
[0.9.0] - 2023-07-21
Added
- To improve performance and reduce initial load times, we've introduced two new properties to the
AccordionContent,ComboboxContent,DialogBackdrop,DialogContent,HoverCardContent,PopoverContent,SelectContent, andTooltipContentcomponents. ThelazyMountproperty allows for on-demand rendering of content, while theunmountOnExitproperty enables the removal of the component from the DOM once it's no longer required, ensuring better resource management and cleaner code. 
[0.8.1] - 2023-07-19
Fixed
- Resolved an issue that NextJS would throw a false error because of 
use clientannotation. 
Removed
- Removed 
isOpenfromPopover. Please useopeninstead. 
[0.8.0] - 2023-07-19
Added
- Enhanced 
Carouselcomponent: IntroducedCarouselIndicatorandCarouselIndicatorGroupcomponents. These sub-components offer finer control over the carousel navigation, enabling users to directly access desired carousel slides. - Introduced 
Presencecomponent, a new utility designed to delay the unmount of child components to assist with animation processes. - Added support to animate the 
Dialog,TooltipandPopoverelements using thePresencecomponent. Check out the documentation for these components to learn more. - Expose 
use<X>Contextfor all components that use context. 
[0.7.3] - 2023-07-10
Fixed
- Resolved an issue where the 
SegmentGroupcomponent would not animate on the first click. - Fixed an issue where standalone imports were not working as expected.
 - Resolved an issue whre the 
Toastcomponent would not render custom content. 
[0.7.2] - 2023-06-30
Fixed
- Resolved an issue that types accross various components were not being exported correctly.
 
[0.7.1] - 2023-06-27
Added
- Support for standalone component imports: Developers can now import individual components, such as
@ark-ui/react/src/srctabsinstead of the full@ark-ui/reactpackage. This is a significant feature for those working with bundlers that do not support tree-shaking. By allowing imports of individual components, we ensure a reduced bundle size when the full package import is not necessary. 
[0.7.0] - 2023-06-23
Added
- Added 
SegmentGroupcomponent 
[0.6.0] - 2023-06-03
Added
- 
Added
Avatarcomponent - 
Introduced an optional
defaulPageproperty toPagination - 
Introduced an optional
defaultSizeproperty toSplitter - 
Introduced the
onLongPressproperty toPressable - 
Exposed direct access to the
Splittercomponent's internal API, enabling more control over the component's state - 
Updated all
@zag-jsdependencies to their latest versions 
[0.5.0] - 2023-05-25
Removed
- Removed 
AccordionIcon 
[0.4.0] - 2023-05-23
Added
- 
Add
DatePicker - 
Update
Checkbox. Controlindeterminatestate incheckedprop 
Fixed
- Fix a typo in the 
SwitchPropstype 
[0.3.0] - 2023-05-11
Added
- Add 
Switch - Add support for 
asChild 
[0.2.0] - 2023-04-29
Added
- Add 
ColorPicker 
[0.1.0] - 2023-04-17
Added
- Add 
Accordion - Add 
Carousel - Add 
Checkbox - Add 
Combobox - Add 
DatePicker - Add 
Dialog - Add 
Editable - Add 
HoverCard - Add 
Menu - Add 
NumberInput - Add 
Pagination - Add 
PinInput - Add 
Popover - Add 
Pressable - Add 
RadioGroup - Add 
RangeSlider - Add 
RatingGroup - Add 
Select - Add 
Slider - Add 
Splitter - Add 
Tabs - Add 
TagsInput - Add 
Toast - Add 
Tooltip