Skip to content

@ark-ui/solid@5.0.0

Compare
Choose a tag to compare
@cschroeter cschroeter released this 06 Mar 13:02
· 226 commits to main since this release

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.