Skip to content

Releases: chakra-ui/ark

@ark-ui/solid@5.0.0

06 Mar 13:02
Compare
Choose a tag to compare

Ark UI just got a major performance boost! 🚀

What’s new in v5?

  • Blazing-fast performance – Every component runs smoother and renders faster.
  • Smaller bundle size – Leaner components and adapters for a more efficient build.

We made this happen by using Solid's native reactive primitives instead of external stores.

In our stress tests with 10,000 components, Ark v5 delivered 1.5x–4x better performance across the board.

A quick note on tests

Most component updates are non-breaking, but due to this change, some tests may need adjustments. For example:

// Before
it('should open by default', () => {
  render(() => <ComponentUnderTest defaultOpen />)
  expect(screen.getByRole('dialog')).toBeInTheDocument()
})

// After
it('should open by default', async () => {
  render(() => <ComponentUnderTest defaultOpen />)
  expect(await screen.findByRole('dialog')).toBeInTheDocument()
})

Added

  • Carousel: ⚠️ Breaking change: Added required prop slideCount to Carousel.Root component.
  • Clipboard: Added onValueChange and defaultValue props.
  • ColorPicker: Added defaultFormat prop.
  • Combobox: Added defaultHighlightedValue and defaultInputValue props.
  • DatePicker: Added defaultFocusedValue prop, getViewProps, and visibleRangeText.
  • HoverCard: Expanded interaction handlers.
  • Menu: Added defaultHighlightedValue prop.
  • Pagination: Added defaultPageSize prop.
  • PinInput: Added count prop for better SSR aria-label.
  • Progress: Added locale and formatOptions props.
  • QrCode: Added pixelSize prop.
  • Select: Added defaultHighlightedValue prop.
  • TagsInput: Added defaultInputValue prop.
  • Toggle: Reintroduced toggle machine.

Fixed

  • Accordion: Fixed issue in Safari where clicking triggers didn't show content.
  • Avatar: Fixed api.setSrc not working.
  • Carousel: Fixed pagination sync and initial page issues.
  • File Upload: Fixed drag-and-drop when directory: true.
  • Menu: Fixed context menu positioning not updating on right-click.
  • Number Input: Fixed value prop not being consumed.
  • Pin Input: Fixed focus warnings and editing issues.
  • Progress: Allowed more precise (decimal) values.
  • Radio Group, Switch: Improved focus behavior in Safari.
  • Select: Fixed regression where multiple: true didn't work.
  • Steps: Ensured ARIA attributes use valid values and wrapped <li> elements correctly within <ul> or <ol>.
  • Textarea: Fixed ResizeObserver warning.
  • Timer: Fixed stopping issue when switching tabs; resolved issue where action prop was passed to ActionTrigger.
  • Toast: Fixed keyboard navigation skipping close button.
  • Toggle Group: Fixed data-focus not being removed on blur.

@ark-ui/react@5.0.0

06 Mar 13:03
Compare
Choose a tag to compare

Ark UI just got a major performance boost! 🚀

What’s new in v5?

  • Blazing-fast performance – Every component runs smoother and renders faster.
  • Smaller bundle size – Leaner components and adapters for a more efficient build.

We made this happen by using React’s native reactive primitives instead of external stores.

In our stress tests with 10,000 components, Ark v5 delivered 1.5x–4x better performance across the board.

Performance comparison showing Ark v5 is 1.5x-4x faster than other libraries

A quick note on tests

Most component updates are non-breaking, but due to this change, some tests may need adjustments. For example:

// Before
it('should open by default', () => {
  render(<ComponentUnderTest defaultOpen />)
  expect(screen.getByRole('dialog')).toBeInTheDocument()
})

// After
it('should open by default', async () => {
  render(<ComponentUnderTest defaultOpen />)
  expect(await screen.findByRole('dialog')).toBeInTheDocument()
})

Added

  • Carousel: ⚠️ Breaking change: Added required prop slideCount to Carousel.Root component.
  • Clipboard: Added onValueChange and defaultValue props.
  • ColorPicker: Added defaultFormat prop.
  • Combobox: Added defaultHighlightedValue and defaultInputValue props.
  • DatePicker: Added defaultFocusedValue prop, getViewProps, and visibleRangeText.
  • HoverCard: Expanded interaction handlers.
  • Menu: Added defaultHighlightedValue prop.
  • Pagination: Added defaultPageSize prop.
  • PinInput: Added count prop for better SSR aria-label.
  • Progress: Added locale and formatOptions props.
  • QrCode: Added pixelSize prop.
  • Select: Added defaultHighlightedValue prop.
  • TagsInput: Added defaultInputValue prop.
  • Toggle: Reintroduced toggle machine.

Fixed

  • Accordion: Fixed issue in Safari where clicking triggers didn't show content.
  • Avatar: Fixed api.setSrc not working.
  • Carousel: Fixed pagination sync and initial page issues.
  • File Upload: Fixed drag-and-drop when directory: true.
  • Menu: Fixed context menu positioning not updating on right-click.
  • Number Input: Fixed value prop not being consumed.
  • Pin Input: Fixed focus warnings and editing issues.
  • Progress: Allowed more precise (decimal) values.
  • Radio Group, Switch: Improved focus behavior in Safari.
  • Select: Fixed regression where multiple: true didn't work.
  • Steps: Ensured ARIA attributes use valid values and wrapped <li> elements correctly within <ul> or <ol>.
  • Textarea: Fixed ResizeObserver warning.
  • Timer: Fixed stopping issue when switching tabs; resolved issue where action prop was passed to ActionTrigger.
  • Toast: Fixed keyboard navigation skipping close button.
  • Toggle Group: Fixed data-focus not being removed on blur.

@ark-ui/vue@4.9.2

21 Feb 15:27
Compare
Choose a tag to compare

Fixed

  • Field: Resolved an issue where the data-disabled attribute wasn't set on the field helper
    text when the field is disabled.

@ark-ui/solid@4.10.2

21 Feb 15:26
Compare
Choose a tag to compare

Fixed

  • Field: Resolved an issue where the data-disabled attribute wasn't set on the field helper
    text when the field is disabled.

@ark-ui/react@4.9.2

21 Feb 15:25
Compare
Choose a tag to compare

Fixed

  • FocusTrap: Added missing FocusTrap component to the index file.
  • Field: Resolved an issue where the data-disabled attribute wasn't set on the field helper
    text when the field is disabled.

@ark-ui/vue@4.9.1

23 Jan 18:09
ef00f3f
Compare
Choose a tag to compare

Fixed

  • FileUpload: Resolved an issue where multiple files were added during a single upload
    operation.

@ark-ui/solid@4.10.1

23 Jan 18:08
19dc534
Compare
Choose a tag to compare

Fixed

  • FileUpload: Resolved an issue where multiple files were added during a single upload
    operation.

@ark-ui/react@4.9.1

23 Jan 18:07
c4be680
Compare
Choose a tag to compare

Fixed

  • FileUpload: Resolved an issue where multiple files were added during a single upload
    operation.
  • DatePicker: Fixed an issue where the defaultView property did not correctly switch to the
    specified view.

@ark-ui/vue@4.9.0

22 Jan 21:24
01439b0
Compare
Choose a tag to compare

Added

  • DatePicker:
    • Added minView and maxView options for better control over the displayed views, allowing to
      create Month and Year pickers.
    • Introduced a new parse method to convert input values into valid dates, complementing the
      format option for enhanced UX
    • Added locale and timeZone options to the format method
    • Introduced placeholder context property to customize the input's placeholder text

Fixed

  • ColorPicker, HoverCard, Tooltip:
    • Fixed intermittent placement shifts caused by updates to the data-placement attribute
  • 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 dragging state 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 min and max
      dates were less than one year apart and overlapped two distinct years

@ark-ui/solid@4.10.0

22 Jan 21:25
a0ba4b4
Compare
Choose a tag to compare

Added

  • DatePicker:
    • Added minView and maxView options for better control over the displayed views, allowing to
      create Month and Year pickers.
    • Introduced a new parse method to convert input values into valid dates, complementing the
      format option for enhanced UX
    • Added locale and timeZone options to the format method
    • Introduced placeholder context property to customize the input's placeholder text

Fixed

  • ColorPicker, HoverCard, Tooltip:
    • Fixed intermittent placement shifts caused by updates to the data-placement attribute
  • 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 dragging state 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 min and max
      dates were less than one year apart and overlapped two distinct years