Changelog
All notable changes to this project will be documented in this file.
All notable changes to this project will be documented in this file.
@zag-js
dependencies to their latest versions, enhancing performance
for all components.<ComponentName>RootProps
. Like shown for the Avatar
component below:- import type { AvatarProps } from "@ark-ui/react"
+ import type { AvatarRootProps } from "@ark-ui/react"
.Root
suffix for provider component like
Presence
and Environment
.- <Presence.Root>...</Presence.Root>
+ <Presence>...</Presence>
Breaking Change: Renamed the indicator
part to view
in the Progress
component to more accurately reflect its functionality.
Added the ItemPreview
component to the TagsInput
component. 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>
Progress
component to use div
elements instead of nav
for
semantic correctness.Combobox
,
Menu
, or Select
triggered a click event on the element behind the
portalled content.PinInput
where pasting a value filled all inputs instead
of populating them one per input.Progress
component.valueAsString
to onValueChange
in DatePicker
callback detailsAccordionValueChangeDetails
or
DialogOpenChangeDetails
Portal
component to support getRootNode
and disabled
propsRadioGroup
,
SegmentGroup
, and Tabs
.placeholder
prop to SelectValueTextProps
type.PopoverDescriptionProps
type from div
to p
Select
component with Next.js or Remix
useSearchParams
disabled
on Combobox
does not reflect in
combobox itemCombobox
when clicking on the input while the
menu is openDatePicker
initial value isn’t set when using
controlled contextMenu
option item could not be activated by keyboardark
factory type was not being exported
correctly.ToastGroup
component.ark
factory at @ark-ui/react/factory
FileUpload
component. Check out the
documentation for more
information.Portal
component to resolve an issue
with online code editors.present
prop in the disclosure-type component
was not being respected.ark
function would log a warning when the
asChild
prop was set to false
.Menu
.Portal
component.NumberInput
componentFileUpload
componentColorPicker
component. Check out the
documentation for more
information.Toast
component would throw a warning when
multiple toasts were rendered at the same time.Dialog
component would not animate on exit.Menu
when lazy mounted.MenuTrigger
could still work even when disabled.Dialog
, Popover
etc would not
invoke onExitComplete
Combobox
could be incorrect when lazy
mounted.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.
Presence
component: lazyMount
and unmountOnExit
have been
added at the root level. For some disclosure components like Tabs
and
Accordion
, this constitutes a breaking change.Accordion
, ColorPicker
,
DatePicker
, Dialog
, RadioGroup
, SegmentGroup
, TagsInput
, Toast
,
and ToggleGroup
to achieve a consistent and more intuitive API.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.
ToggleGroup
componenttype HTMLArkProps
that can be used together with the ark
factory fn
to create a type that can be used with asChild
prop.Comoobox
component to support multiple selectionSelect
component to support multiple selectionflushSync
did not have a stable
reference, resulting in a noticable blocking re-renders.
Affected components:
Slider
,RangeSlider
,NumberInput
,ColorPicker
MenuItem
from a button
to a div
element.Accordion
: Remove support for passing value as string
. The value property
must be an array of strings.Combobox
: Remove selectInputOnFocus
option in favor of userland controlTagsInput
: Rename onHighlight
to onFocusChange
'use client'
annotation from compose-refs
function.Switchinput
. This component is no longer required.TagsInput
: RemovedonTagUpdate
use onChange
instead.Switch
: Removed defaultChecked
in favor of defaultIsChecked
'use client'
annotation from factory
function.SegmentIndicator
to SegmentGroupIndicator
to match the
naming convention of other components.defaultChecked
to Checkbox
component.defaultChecked
to Switch
component.ark
factory function.EditableCancelTrigger
component.RadioInput
. This component is no longer required.SegmentInput
. This component is no longer required.ComboboxOptionGroup
and ComboboxClearTrigger
components to the
Combobox
component.DatePickerPositioner
component to the DatePicker
component to help
with positioning the calendar.ComboboxOptionGroupLabel
to the Combobox
component. This component
can be used to render a label for a group of options in the
ComboboxOptionGroup
component.TagsInputField
to TagsInputInput
to match the naming
convention of other input components.NumberInputField
to NumberInputInput
to match the naming
convention of other input components.PinInputField
to PinInputInput
to match the naming
convention of other input components.CheckboxInput
. This component is no longer required.Toast
components in their
application, ensuring a consistent look and feel across the board.onChange
handler to allow synchronous updates to the
value when using the scrubber.ref
property when dealing with both
intrinsic HTML elements and custom React components.AccordionContent
, ComboboxContent
, DialogBackdrop
,
DialogContent
, HoverCardContent
, PopoverContent
, SelectContent
, and
TooltipContent
components. The lazyMount
property allows for on-demand
rendering of content, while the unmountOnExit
property enables the removal
of the component from the DOM once it’s no longer required, ensuring better
resource management and cleaner code.use client
annotation.isOpen
from Popover
. Please use open
instead.Carousel
component: Introduced CarouselIndicator
and
CarouselIndicatorGroup
components. These sub-components offer finer control
over the carousel navigation, enabling users to directly access desired
carousel slides.Presence
component, a new utility designed to delay the unmount
of child components to assist with animation processes.Dialog
, Tooltip
and Popover
elements using
the Presence
component. Check out the documentation for these components to
learn more.use<X>Context
for all components that use context.SegmentGroup
component would not animate on the
first click.Toast
component would not render custom content.@ark-ui/react/src/srctabs
instead of the full
@ark-ui/react
package. 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.SegmentGroup
componentAvatar
componentdefaulPage
property to Pagination
defaultSize
property to Splitter
onLongPress
property to Pressable
Splitter
component’s internal API, enabling
more control over the component’s state@zag-js
dependencies to their latest versionsAccordionIcon
DatePicker
Checkbox
. Control indeterminate
state in checked
propSwitchProps
typeSwitch
asChild
ColorPicker
Accordion
Carousel
Checkbox
Combobox
DatePicker
Dialog
Editable
HoverCard
Menu
NumberInput
Pagination
PinInput
Popover
Pressable
RadioGroup
RangeSlider
RatingGroup
Select
Slider
Splitter
Tabs
TagsInput
Toast
Tooltip