Skip to content

Releases: chakra-ui/ark

@ark-ui/solid@5.33.0

26 Feb 22:19

Choose a tag to compare

Added

  • Date Picker: Added non-Gregorian calendar support via createCalendar prop (Persian, Buddhist, Islamic, Hebrew,
    and other calendar systems)

    import { PersianCalendar } from "@internationalized/date"
    
    function createCalendar(identifier) {
      switch (identifier) {
        case "persian":
          return new PersianCalendar()
        default:
          throw new Error(`Unsupported calendar: ${identifier}`)
      }
    }
    
    <DatePicker.Root locale="fa-IR" createCalendar={createCalendar}>
      {/* ... */}
    </DatePicker.Root>
  • Date Picker: Added data-type attribute to weekend table header and cell

Fixed

  • Combobox: Fixed onValueChange returning empty items array when using controlled value
  • Popover: Fixed nested popover z-index layering
  • Toast: Fixed types to ensure parent/index are exposed as props and expand/collapse are exposed on the
    store
  • Radio Group, Listbox, Progress, Segment Group: Fixed group labels rendering orphan label elements; now render as
    span per W3C ARIA pattern

@ark-ui/react@5.33.0

26 Feb 22:18

Choose a tag to compare

Added

  • Date Picker: Added non-Gregorian calendar support via createCalendar prop (Persian, Buddhist, Islamic, Hebrew,
    and other calendar systems)

    import { PersianCalendar } from "@internationalized/date"
    
    function createCalendar(identifier) {
      switch (identifier) {
        case "persian":
          return new PersianCalendar()
        default:
          throw new Error(`Unsupported calendar: ${identifier}`)
      }
    }
    
    <DatePicker.Root locale="fa-IR" createCalendar={createCalendar}>
      {/* ... */}
    </DatePicker.Root>
  • Date Picker: Added data-type attribute to weekend table header and cell

Fixed

  • Combobox: Fixed onValueChange returning empty items array when using controlled value
  • Popover: Fixed nested popover z-index layering
  • Toast: Fixed types to ensure parent/index are exposed as props and expand/collapse are exposed on the
    store
  • Radio Group, Listbox, Progress, Segment Group: Fixed group labels rendering orphan label elements; now render as
    span per W3C ARIA pattern

@ark-ui/vue@5.32.0

21 Feb 16:46

Choose a tag to compare

Added

  • Locale: Added useDateFormatter hook for localized date formatting using @internationalized/date
  • Swap: Added new Swap component for toggling between two visual states with CSS animations using dual presence
    instances
  • Checkbox: Added maxSelectedValues prop to CheckboxGroup to limit the number of selected values
  • Drawer: Replaced BottomSheet with new Drawer component supporting multi-directional swipe via swipeDirection
    prop (up, down, left, right), a new Positioner part, and snapToSequentialPoints option
  • Date Picker:
    • Added focus option to api.clearValue({ focus?: boolean })
    • Added api.setTime(time, index?) for date-time picker support
    • Added maxSelectedDates prop to limit selected dates in multiple selection mode
    • Added api.isMaxSelected to check if maximum number of dates has been selected
    • Added openOnClick prop to open the calendar when clicking the input field
    • Added showWeekNumbers support to display ISO 8601 week number column in the day view
  • Popover: Added sizeMiddleware positioning option to optionally disable the size middleware
  • Select: Added autoComplete prop for browser autofill hints

Fixed

  • useForwardExpose: Fixed crash when element bound with forwardRef does not exist (e.g. conditionally rendered
    with v-if)
  • Combobox:
    • Fixed aria-selected being set on highlighted items instead of selected items
    • Fixed selectedItems getting out of sync with value in controlled mode
    • Fixed item disabled state not accounting for root-level disabled prop
  • Date Picker:
    • Fixed api.selectToday() sending incorrect value format
    • Preserve time/timezone when selecting new dates (CalendarDateTime and ZonedDateTime)
    • Improved focus management in trigger-only mode
  • Dialog: Fixed non-modal dialog closing on outside click when modal is false
  • Listbox: Fixed DOM IDs
  • Number Input: Fixed invalid prop being ignored when value is out of range
  • Popover: Improved performance by reducing style recalculations when scrolling
  • Select: Fixed autofill not updating value when hidden select value changes

@ark-ui/solid@5.32.0

21 Feb 16:45

Choose a tag to compare

Added

  • Locale: Added useDateFormatter hook for localized date formatting using @internationalized/date
  • Swap: Added new Swap component for toggling between two visual states with CSS animations using dual presence
    instances
  • Checkbox: Added maxSelectedValues prop to CheckboxGroup to limit the number of selected values
  • Drawer: Replaced BottomSheet with new Drawer component supporting multi-directional swipe via swipeDirection
    prop (up, down, left, right), a new Positioner part, and snapToSequentialPoints option
  • Date Picker:
    • Added focus option to api.clearValue({ focus?: boolean })
    • Added api.setTime(time, index?) for date-time picker support
    • Added maxSelectedDates prop to limit selected dates in multiple selection mode
    • Added api.isMaxSelected to check if maximum number of dates has been selected
    • Added openOnClick prop to open the calendar when clicking the input field
    • Added showWeekNumbers support to display ISO 8601 week number column in the day view
  • Popover: Added sizeMiddleware positioning option to optionally disable the size middleware
  • Select: Added autoComplete prop for browser autofill hints

Fixed

  • Combobox:
    • Fixed aria-selected being set on highlighted items instead of selected items
    • Fixed selectedItems getting out of sync with value in controlled mode
    • Fixed item disabled state not accounting for root-level disabled prop
  • Date Picker:
    • Fixed api.selectToday() sending incorrect value format
    • Preserve time/timezone when selecting new dates (CalendarDateTime and ZonedDateTime)
    • Improved focus management in trigger-only mode
  • Dialog: Fixed non-modal dialog closing on outside click when modal is false
  • Listbox: Fixed DOM IDs
  • Number Input: Fixed invalid prop being ignored when value is out of range
  • Popover: Improved performance by reducing style recalculations when scrolling
  • Select: Fixed autofill not updating value when hidden select value changes

@ark-ui/react@5.32.0

21 Feb 16:44

Choose a tag to compare

Added

  • Locale: Added useDateFormatter hook for localized date formatting using @internationalized/date
  • Swap: Added new Swap component for toggling between two visual states with CSS animations using dual presence
    instances
  • Checkbox: Added maxSelectedValues prop to CheckboxGroup to limit the number of selected values
  • Drawer: Replaced BottomSheet with new Drawer component supporting multi-directional swipe via swipeDirection
    prop (up, down, left, right), a new Positioner part, and snapToSequentialPoints option
  • Date Picker:
    • Added focus option to api.clearValue({ focus?: boolean })
    • Added api.setTime(time, index?) for date-time picker support
    • Added maxSelectedDates prop to limit selected dates in multiple selection mode
    • Added api.isMaxSelected to check if maximum number of dates has been selected
    • Added openOnClick prop to open the calendar when clicking the input field
    • Added showWeekNumbers support to display ISO 8601 week number column in the day view
  • Popover: Added sizeMiddleware positioning option to optionally disable the size middleware
  • Select: Added autoComplete prop for browser autofill hints

Fixed

  • Combobox:
    • Fixed aria-selected being set on highlighted items instead of selected items
    • Fixed selectedItems getting out of sync with value in controlled mode
    • Fixed item disabled state not accounting for root-level disabled prop
  • Date Picker:
    • Fixed api.selectToday() sending incorrect value format
    • Preserve time/timezone when selecting new dates (CalendarDateTime and ZonedDateTime)
    • Improved focus management in trigger-only mode
  • Dialog: Fixed non-modal dialog closing on outside click when modal is false
  • Listbox: Fixed DOM IDs
  • Number Input: Fixed invalid prop being ignored when value is out of range
  • Popover: Improved performance by reducing style recalculations when scrolling
  • Select: Fixed autofill not updating value when hidden select value changes

@ark-ui/vue@5.31.0

04 Feb 14:54

Choose a tag to compare

Added

  • Date Picker: Added ValueText component for displaying selected date value(s) with placeholder support and scoped
    slot for custom formatting
  • Scroll Area: Added overflow CSS variables (--scroll-area-overflow-{x,y}-{start,end}) for scroll fade effects
  • Slider: Added thumbCollisionBehavior prop (none, push, swap)
  • Steps: Added isStepValid, isStepSkippable, and onStepInvalid for validation support
  • Tags Input: Added placeholder prop (shown only when no tags exist)
  • Tooltip: Added data-instant attribute for instant animations

Fixed

  • Auto Resize: Fixed change event not emitted after clearing controlled textarea
  • Color Picker, Combobox, Date Picker, Dialog, Hover Card, Menu, Popover, Select, Tooltip, Tour: Fixed
    exitComplete event not being exposed from root component
  • Date Picker: Fixed visibleRangeText to show correct format based on current view (year/month/day)
  • Dismissable: Fixed issue where closing a nested dialog/popover would incorrectly close its parent layers
  • Menu: Fixed glitchy submenu behavior when hovering between trigger items quickly
  • Checkbox: Fixed individual checkbox props being overridden by CheckboxGroup
  • Factory: Fixed error when first child doesn't exist before merging props
  • Scroll Area: Fixed ScrollAreaRootProvider not binding rootProps correctly
  • Collection, Tree View: Fixed initial focus when first node/branch is disabled
  • Color Picker: Fixed color not updating when selecting black shades in controlled mode
  • Floating Panel: Fixed double-click on minimized title bar incorrectly maximizing
  • Image Cropper: Fixed reset() destroying cropper, prop changes not updating instantly, and panning bounds
  • Number Input: Fixed cursor positioning after clicking label or scrubbing
  • Pagination: Fixed next trigger not disabled when count is 0
  • Slider: Fixed thumb drag from edge in thumbAlignment="contain" mode
  • Switch: Fixed api.toggleChecked() not working
  • Toast: Fixed toasts created before state machine connects not showing
  • Tour: Fixed janky scroll between steps

@ark-ui/svelte@5.16.0

04 Feb 14:55

Choose a tag to compare

Added

  • Date Picker: Added ValueText component for displaying selected date value(s) with placeholder support and
    snippet for custom formatting
  • Scroll Area: Added overflow CSS variables (--scroll-area-overflow-{x,y}-{start,end}) for scroll fade effects
  • Slider: Added thumbCollisionBehavior prop (none, push, swap)
  • Steps: Added isStepValid, isStepSkippable, and onStepInvalid for validation support
  • Tags Input: Added placeholder prop (shown only when no tags exist)
  • Tooltip: Added data-instant attribute for instant animations

Fixed

  • Auto Resize: Fixed change event not emitted after clearing controlled textarea
  • Date Picker: Fixed visibleRangeText to show correct format based on current view (year/month/day)
  • Dismissable: Fixed issue where closing a nested dialog/popover would incorrectly close its parent layers
  • Menu: Fixed glitchy submenu behavior when hovering between trigger items quickly
  • Checkbox: Fixed individual checkbox props being overridden by CheckboxGroup
  • Factory: Fixed textarea hydration marker issue
  • Collection, Tree View: Fixed initial focus when first node/branch is disabled
  • Color Picker: Fixed color not updating when selecting black shades in controlled mode
  • Floating Panel: Fixed double-click on minimized title bar incorrectly maximizing
  • Image Cropper: Fixed reset() destroying cropper, prop changes not updating instantly, and panning bounds
  • Number Input: Fixed cursor positioning after clicking label or scrubbing
  • Pagination: Fixed next trigger not disabled when count is 0
  • Slider: Fixed thumb drag from edge in thumbAlignment="contain" mode
  • Switch: Fixed api.toggleChecked() not working
  • Toast: Fixed toasts created before state machine connects not showing
  • Tour: Fixed janky scroll between steps

@ark-ui/solid@5.31.0

04 Feb 14:53

Choose a tag to compare

Added

  • Date Picker: Added ValueText component for displaying selected date value(s) with placeholder support and render
    prop for custom formatting
  • Scroll Area: Added overflow CSS variables (--scroll-area-overflow-{x,y}-{start,end}) for scroll fade effects
  • Slider: Added thumbCollisionBehavior prop (none, push, swap)
  • Steps: Added isStepValid, isStepSkippable, and onStepInvalid for validation support
  • Tags Input: Added placeholder prop (shown only when no tags exist)
  • Tooltip: Added data-instant attribute for instant animations

Fixed

  • Auto Resize: Fixed change event not emitted after clearing controlled textarea
  • Date Picker: Fixed visibleRangeText to show correct format based on current view (year/month/day)
  • Dismissable: Fixed issue where closing a nested dialog/popover would incorrectly close its parent layers
  • Menu: Fixed glitchy submenu behavior when hovering between trigger items quickly
  • SSR: Fixed Deno SSR crashes by replacing native HTML elements with ark factory components
  • Checkbox: Fixed individual checkbox props being overridden by CheckboxGroup
  • Collection, Tree View: Fixed initial focus when first node/branch is disabled
  • Color Picker: Fixed color not updating when selecting black shades in controlled mode
  • Floating Panel: Fixed double-click on minimized title bar incorrectly maximizing
  • Image Cropper: Fixed reset() destroying cropper, prop changes not updating instantly, and panning bounds
  • Number Input: Fixed cursor positioning after clicking label or scrubbing
  • Pagination: Fixed next trigger not disabled when count is 0
  • Slider: Fixed thumb drag from edge in thumbAlignment="contain" mode
  • Switch: Fixed api.toggleChecked() not working
  • Toast: Fixed toasts created before state machine connects not showing
  • Tour: Fixed janky scroll between steps

@ark-ui/react@5.31.0

04 Feb 14:52

Choose a tag to compare

Added

  • Date Picker: Added ValueText component for displaying selected date value(s) with placeholder support and render
    prop for custom formatting
  • Scroll Area: Added overflow CSS variables (--scroll-area-overflow-{x,y}-{start,end}) for scroll fade effects
  • Slider: Added thumbCollisionBehavior prop (none, push, swap)
  • Steps: Added isStepValid, isStepSkippable, and onStepInvalid for validation support
  • Tags Input: Added placeholder prop (shown only when no tags exist)
  • Tooltip: Added data-instant attribute for instant animations

Fixed

  • Auto Resize: Fixed change event not emitted after clearing controlled textarea
  • Date Picker: Fixed visibleRangeText to show correct format based on current view (year/month/day)
  • Dismissable: Fixed issue where closing a nested dialog/popover would incorrectly close its parent layers
  • Menu: Fixed glitchy submenu behavior when hovering between trigger items quickly
  • Checkbox: Fixed individual checkbox props being overridden by CheckboxGroup
  • Collection, Tree View: Fixed initial focus when first node/branch is disabled
  • Color Picker: Fixed color not updating when selecting black shades in controlled mode
  • Floating Panel: Fixed double-click on minimized title bar incorrectly maximizing
  • Image Cropper: Fixed reset() destroying cropper, prop changes not updating instantly, and panning bounds
  • Number Input: Fixed cursor positioning after clicking label or scrubbing
  • Pagination: Fixed next trigger not disabled when count is 0
  • Slider: Fixed thumb drag from edge in thumbAlignment="contain" mode
  • Switch: Fixed api.toggleChecked() not working
  • Toast: Fixed toasts created before state machine connects not showing
  • Tour: Fixed janky scroll between steps

@ark-ui/vue@5.30.0

10 Dec 23:05

Choose a tag to compare

Added

  • Date Picker: Added required and invalid props
  • Number Input: Added onValueCommit callback that fires when the input loses focus or Enter is pressed
  • Pagination:
    • Added FirstTrigger and LastTrigger components for navigating to first/last page
    • Added boundaryCount parameter for controlling boundary pages (start/end)
    • Implemented balanced pagination algorithm for consistent UI with max 7 elements
  • Radio Group: Added invalid and required props with corresponding data-* and aria-* attributes
  • Tree View: Added scrollToIndexFn prop to enable keyboard navigation in virtualized trees

Fixed

  • Accordion, Menu: Fixed issue where querying elements by aria-controls attribute could fail when lazy mounting the content
  • Color Picker: Added role="dialog" to content and aria-haspopup="dialog" to trigger when not inline for better accessibility
  • Date Picker: Fixed issue where date picker input does not update format when locale changes
  • Floating Panel:
    • Fixed dir prop now properly delegated to all panel parts
    • Fixed double-click behavior improvements and to check event.defaultPrevented for custom behavior
  • Listbox:
    • Fixed issue where data-highlighted wasn't applied to the first item when using autoHighlight with input filtering
  • Number Input:
    • Fixed improved controlled usage sync
    • Fixed issue where input element doesn't sync when formatOptions changes dynamically
    • Ensured cursor position is preserved when Enter key is pressed and formatting is triggered
    • Fixed cursor jumping to start when value is changed externally via props while user is typing
  • Pagination: Fixed ellipsis showing when only 1 page gap
  • Rating Group: Fixed issue where rating group becomes unfocusable via keyboard when value is 0
  • Tooltip: Fixed tooltip not showing when scrolling with pointer over trigger

Changed

  • Tree View: getVisibleNodes() now returns { node, indexPath }[] instead of node[]