Skip to content

Version Packages #3459

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 25, 2025
Merged

Version Packages #3459

merged 1 commit into from
Apr 25, 2025

Conversation

github-actions[bot]
Copy link
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@ark-ui/[email protected]

Unreleased

Added

  • [NEW] Listbox: Introduced the Listbox component for selecting a single or multiple items from a list. See the
    documentation for details.
  • Improved support for grouping collection items. Check the Listbox, Select or Combobox documentation for more
    details.

Changed

  • Added package.json to exports for improved compatibility with tools like Vite.

[5.6.0] - 2025-04-15

Added

  • [NEW] AngleSlider: Introduced the AngleSlider component for selecting an angle. See the
    documentation for details.
  • [NEW] FloatingPanel: Introduced the FloatingPanel component for creating floating windows. See the
    documentation for details.
  • Toast: Added toast queuing when the max limit is reached:
    • New toasts were queued instead of dropped
    • Queued toasts were shown when space became available
    • Queue cleared when all toasts were removed
  • Combobox:
    • Fallbacked to the trigger element as the positioning anchor
    • Added data-empty attribute to indicate an empty listbox or content

[5.5.0] - 2025-04-05

Added

  • Presence: Added support for skipping the initial animation when the component is mounted. This can be used in all
    disclosure components (e.g., Dialog, DatePicker, Menu etc).

Fixed

  • Tabs: Fixed issue where tabs indicator animation behaves inconsistently.

  • Date Picker

    • Fixed issue where datepicker throws error when navigating month view.
    • Fixed issue where range selection doesn't reset correctly when clicking the same start date.
  • Disclosure Components

    • Fixed issue where pointerdown outside doesn't work consistently on mobile devices.
    • Improved pointerdown outside click detection in shadow DOM environments.

[5.4.0] - 2025-03-28

Added

  • Slider

    • Add support for origin: end to align the thumb to the end of the track.
    • Expose thumbSize as CSS variables in the root element. Can be useful for styling the slider.
  • Menu

    • Added onSelect event to the Menu.Item component.

Fixed

  • Ensured each component's state machine starts before processing events.
  • HoverCard, ColorPicker: Added missing tabIndex for better dialog support.
  • Menu: Assigned unique IDs to menu items to improve accessibility and HTML validation.

[5.3.1] - 2025-03-24

Fixed

  • Fixed an issue where a function was imported from a package that wasn't declared as a dependency.

[5.3.0] - 2025-03-24

Added

  • Collapsible: Added an Indicator part to display whether the collapsible was open or closed.
  • ColorPicker: Added support for formatting the ValueText component.
<ColorPicker.ValueText format="hex" /> // #ff0000

Fixed

  • Combobox: Fixed an issue where onOpenChange was called with the same open value.
  • DownloadTrigger: Added the missing use client directive.
  • Splitter: Fixed an issue where onResizeStart and onResizeEnd callbacks weren't triggered during keyboard
    interactions.

[5.2.0] - 2025-03-22

Added

  • [NEW] DownloadTrigger: Added Component for downloading a blob or file, whether retrieved synchronously or
    asynchronously.
import { DownloadTrigger } from '@ark-ui/react/download-trigger'

export const DownloadImage = () => {
  async function fetchImage() {
    const response = await fetch('https://picsum.photos/200/300')
    return response.blob()
  }

  return (
    <DownloadTrigger data={fetchImage} fileName="avatar.jpeg" mimeType="image/jpeg">
      Download Image
    </DownloadTrigger>
  )
}

Changed

  • NumberInput: Set the default step to 0.01 when formatOptions.style was set to percent.
  • [Breaking] Splitter: Redesigned splitter machine to support more use cases and improve DX. Check out the
    Splitter documentation for more details.

Fixed

  • Toast: Fixed issue where setting offsets to undefined caused the machine to throw.
  • Select: Fixed issue where select valueAsString lost reactivity.

[5.1.0] - 2025-03-17

Added

  • Added support for a cleanup function in ref.

Fixed

  • Field: Exported the missing useField hook.
  • NumberInput: onValueChange correctly received valueAsNumber.
  • Slider: Thumbs initialized correctly when min was set to a non-zero value.

[5.0.1] - 2025-03-11

Fixed

  • Effects now flush synchronously instead of using a microtask.
  • Checkbox: data-invalid is no longer set when invalid is false.
  • Combobox: Fixed unexpected cursor movement when editing input.
  • PinInput: OTP SMS autofill now works as expected.
  • RatingGroup: Fixed incorrect focus placement on the label.
  • TagsInput: Improved caret detection to prevent unintended tag removal.
  • Timer
    • Fixed slowdown when switching tabs/windows.
    • Changed default interval from 250 to 1000.

[5.0.0] - 2025-03-06

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/[email protected]

Unreleased

Added

  • [NEW] Listbox: Introduced the Listbox component for selecting a single or multiple items from a list. See the
    documentation for details.
  • Improved support for grouping collection items. Check the Listbox, Select or Combobox documentation for more
    details.

Changed

  • Added package.json to exports for improved compatibility with tools like Vite.

[5.6.0] - 2025-04-15

Added

  • [NEW] AngleSlider: Introduced the AngleSlider component for selecting an angle. See the
    documentation for details.
  • [NEW] FloatingPanel: Introduced the FloatingPanel component for creating floating windows. See the
    documentation for details.
  • Toast: Added toast queuing when the max limit is reached:
    • New toasts were queued instead of dropped
    • Queued toasts were shown when space became available
    • Queue cleared when all toasts were removed
  • Combobox:
    • Fallbacked to the trigger element as the positioning anchor
    • Added data-empty attribute to indicate an empty listbox or content

[5.5.0] - 2025-04-05

Added

  • Presence: Added support for skipping the initial animation when the component is mounted. This can be used in all
    disclosure components (e.g., Dialog, DatePicker, Menu etc).

Fixed

  • Tabs: Fixed issue where tabs indicator animation behaves inconsistently.

  • Date Picker

    • Fixed issue where datepicker throws error when navigating month view.
    • Fixed issue where range selection doesn't reset correctly when clicking the same start date.
  • Disclosure Components

    • Fixed issue where pointerdown outside doesn't work consistently on mobile devices.
    • Improved pointerdown outside click detection in shadow DOM environments.

[5.4.0] - 2025-03-28

Added

  • Slider

    • Add support for origin: end to align the thumb to the end of the track.
    • Expose thumbSize as CSS variables in the root element. Can be useful for styling the slider.
  • Menu

    • Added onSelect event to the Menu.Item component.

Fixed

  • Ensured each component's state machine starts before processing events.
  • HoverCard, ColorPicker: Added missing tabIndex for better dialog support.
  • Menu: Assigned unique IDs to menu items to improve accessibility and HTML validation.
  • DatePicker: Improved reactivity of the columns prop in DatePicker.Table.
  • Field: Improved reactivity of the value prop in Field.Textarea.
  • Toggle: Improved reactivity of the children and fallback props in Toggle.Indicator.

[5.3.1] - 2025-03-24

Fixed

  • Fixed an issue where a function was imported from a package that wasn't declared as a dependency.

[5.3.0] - 2025-03-24

Added

  • Collapsible: Added an Indicator part to display whether the collapsible was open or closed.
  • ColorPicker: Added support for formatting the ValueText component.
<ColorPicker.ValueText format="hex" /> // #ff0000

Fixed

  • Combobox: Fixed an issue where onOpenChange was called with the same open value.
  • Splitter: Fixed an issue where onResizeStart and onResizeEnd callbacks weren't triggered during keyboard
    interactions.

[5.2.0] - 2025-03-22

Added

  • [NEW] DownloadTrigger: Added Component for downloading a blob or file, whether retrieved synchronously or
    asynchronously.
import { DownloadTrigger } from '@ark-ui/solid/download-trigger'

export const DownloadImage = () => {
  async function fetchImage() {
    const response = await fetch('https://picsum.photos/200/300')
    return response.blob()
  }

  return (
    <DownloadTrigger data={fetchImage} fileName="avatar.jpeg" mimeType="image/jpeg">
      Download Image
    </DownloadTrigger>
  )
}

Changed

  • NumberInput: Set the default step to 0.01 when formatOptions.style was set to percent.
  • [Breaking] Splitter: Redesigned splitter machine to support more use cases and improve DX. Check out the
    Splitter documentation for more details.

Fixed

  • Presence: Fixed issue where onExitComplete was not being called.
  • Select: Fixed issue where select valueAsString lost reactivity.
  • Toast:
    • Fixed issue where setting offsets to undefined caused the machine to throw.
    • Fixed issue where onExitComplete was not being called.

[5.1.1] - 2025-03-17

Fixed

  • Field: Exported the missing useField hook.
  • NumberInput: onValueChange correctly received valueAsNumber.
  • Slider: Thumbs initialized correctly when min was set to a non-zero value.

[5.1.0] - 2025-03-11

Added

  • Implemented support for reactive props in use-*.ts functions.

    const accordionProps = createMemo<UseAccordionProps>(() => ({
      multiple: true,
      value: value(),
      onValueChange: (e) => setValue(e.value),
    }))
    
    const accordion = useAccordion(accordionProps)

Fixed

  • Checkbox: data-invalid is no longer set when invalid is false.
  • Combobox: Fixed unexpected cursor movement when editing input.
  • PinInput: OTP SMS autofill now works as expected.
  • RatingGroup: Fixed incorrect focus placement on the label.
  • TagsInput: Improved caret detection to prevent unintended tag removal.
  • Timer
    • Fixed slowdown when switching tabs/windows.
    • Changed default interval from 250 to 1000.

[5.0.0] - 2025-03-06

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/[email protected]

Unreleased

Added

  • [NEW] Listbox: Introduced the Listbox component for selecting a single or multiple items from a list. See the
    documentation for details.
  • Improved support for grouping collection items. Check the Listbox, Select or Combobox documentation for more
    details.

Changed

  • Added package.json to exports for improved compatibility with tools like Vite.

[5.6.0] - 2025-04-15

Added

  • [NEW] AngleSlider: Introduced the AngleSlider component for selecting an angle. See the
    documentation for details.
  • [NEW] FloatingPanel: Introduced the FloatingPanel component for creating floating windows. See the
    documentation for details.
  • Toast: Added toast queuing when the max limit is reached:
    • New toasts were queued instead of dropped
    • Queued toasts were shown when space became available
    • Queue cleared when all toasts were removed
  • Combobox:
    • Fallbacked to the trigger element as the positioning anchor
    • Added data-empty attribute to indicate an empty listbox or content

Fixed

  • CheckboxGroup: Fixed issue where v-model doesn't work as expected.

[5.5.0] - 2025-04-05

Added

  • Presence: Added support for skipping the initial animation when the component is mounted. This can be used in all
    disclosure components (e.g., Dialog, DatePicker, Menu etc).

Fixed

  • Tabs: Fixed issue where tabs indicator animation behaves inconsistently.

  • Date Picker

    • Fixed issue where datepicker throws error when navigating month view.
    • Fixed issue where range selection doesn't reset correctly when clicking the same start date.
  • Disclosure Components

    • Fixed issue where pointerdown outside doesn't work consistently on mobile devices.
    • Improved pointerdown outside click detection in shadow DOM environments.

[5.4.0] - 2025-03-28

Added

  • Slider

    • Add support for origin: end to align the thumb to the end of the track.
    • Expose thumbSize as CSS variables in the root element. Can be useful for styling the slider.
  • Menu

    • Added select emit event to the Menu.Item component.

Fixed

  • Ensured each component's state machine starts before processing events.
  • HoverCard, ColorPicker: Added missing tabIndex for better dialog support.
  • Menu: Assigned unique IDs to menu items to improve accessibility and HTML validation.
  • Field: Fixed Textarea to use ark.textarea, ensuring support for the asChild prop.

[5.3.0] - 2025-03-24

Added

  • Collapsible: Added an Indicator part to display whether the collapsible was open or closed.
  • ColorPicker: Added support for formatting the ValueText component.
<ColorPicker.ValueText format="hex" /> // #ff0000

Fixed

  • Combobox: Fixed an issue where onOpenChange was called with the same open value.
  • Splitter: Fixed an issue where onResizeStart and onResizeEnd callbacks weren't triggered during keyboard
    interactions.

[5.2.0] - 2025-03-22

Added

  • [NEW] DownloadTrigger: Added Component for downloading a blob or file, whether retrieved synchronously or
    asynchronously.
import { DownloadTrigger } from '@ark-ui/react/download-trigger'

export const DownloadImage = () => {
  async function fetchImage() {
    const response = await fetch('https://picsum.photos/200/300')
    return response.blob()
  }

  return (
    <DownloadTrigger data={fetchImage} fileName="avatar.jpeg" mimeType="image/jpeg">
      Download Image
    </DownloadTrigger>
  )
}

Changed

  • NumberInput: Set the default step to 0.01 when formatOptions.style was set to percent.
  • [Breaking] Splitter: Redesigned splitter machine to support more use cases and improve DX. Check out the
    Splitter documentation for more details.

Fixed

  • Toast: Fixed issue where setting offsets to undefined caused the machine to throw.
  • Select: Fixed issue where select valueAsString lost reactivity.

[5.1.1] - 2025-03-17

Fixed

  • Field: Exported the missing useField hook.
  • NumberInput: onValueChange correctly received valueAsNumber.
  • Slider: Thumbs initialized correctly when min was set to a non-zero value.

[5.1.0] - 2025-03-11

Added

  • Implemented support for reactive props in use-*.ts functions.
const value = ref(['React'])

const accordionProps = computed<UseAccordionProps>(() => ({
  multiple: true,
  value: value.value,
  onValueChange: (e) => (value.value = e.value),
}))

const accordion = useAccordion(accordionProps)

Fixed

  • Checkbox: data-invalid is no longer set when invalid is false.
  • Combobox: Fixed unexpected cursor movement when editing input.
  • PinInput: OTP SMS autofill now works as expected.
  • RatingGroup: Fixed incorrect focus placement on the label.
  • TagsInput: Improved caret detection to prevent unintended tag removal.
  • Timer
    • Fixed slowdown when switching tabs/windows.
    • Changed default interval from 250 to 1000.

[5.0.2] - 2025-03-06

Fixed

  • Steps: Fixed issue where Steps.X namespace was not exported.

[5.0.1] - 2025-03-06

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 Vue'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, {
    props: {
      defaultOpen: true,
    },
  })
  expect(screen.getByRole('dialog')).toBeInTheDocument()
})

// After
it('should open by default', async () => {
  render(ComponentUnderTest, {
    props: {
      defaultOpen: true,
    },
  })
  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.

Copy link

vercel bot commented Apr 25, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated (UTC)
ark-docs ✅ Ready (Inspect) Visit Preview Apr 25, 2025 1:52pm

Copy link

pkg-pr-new bot commented Apr 25, 2025

Open in StackBlitz

npm i https://pkg.pr.new/chakra-ui/ark/@ark-ui/react@3459
npm i https://pkg.pr.new/chakra-ui/ark/@ark-ui/solid@3459
npm i https://pkg.pr.new/chakra-ui/ark/@ark-ui/svelte@3459
npm i https://pkg.pr.new/chakra-ui/ark/@ark-ui/vue@3459

commit: cb8f6e9

@cschroeter cschroeter merged commit 396ed2e into main Apr 25, 2025
2 of 3 checks passed
@cschroeter cschroeter deleted the changeset-release/main branch April 25, 2025 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant