Release Notes

Changelog

Every release of sv5ui - new features, breaking changes, bug fixes, and improvements.

v2.3.0 Latest July 7, 2026 GitHub
New Features
  • Tour - spotlight product tour: per-step placement, async guards, waitForTarget, centered dialog steps docs →
  • useTour - headless Tour controller (start/stop/next/prev/goTo) with persistence for multi-page tours docs →
  • Error - pre-built error page with clear button and svelte:boundary reset support docs →
  • Header - sticky app header with brand link, layout areas, and a Modal/Slideover/Drawer mobile menu docs →
  • Main - content container filling the viewport below the header docs →
  • Footer / FooterColumns - app footer with link-group grid, active links, and external indicators docs →
  • App shell height contract: --ui-header-height CSS variable shared by Header, Main, and Error docs →
  • Icons config: new defaults menu and external docs →
v2.2.0 June 24, 2026 GitHub
New Features
  • useEventListener - attach DOM event listeners reactively docs →
  • useResizeObserver / useElementSize - track element dimensions docs →
  • useScrollLock - lock page or element scroll docs →
  • useFocusTrap - trap keyboard focus inside a container docs →
  • useLocalStorage - reactive localStorage with SSR safety docs →
  • useThrottle - throttle rapidly-firing values docs →
  • useIntersectionObserver - observe viewport intersection docs →
  • useTimeout - cancelable, restartable setTimeout docs →
  • useInterval - pausable setInterval with reactive delay docs →
  • useDebouncedState - debounced state with immediate setter docs →
Bug Fixes
  • SelectMenu - trigger changed to <div role="button"> , fixes SSR hydration mismatch. Update custom selectors to [data-combobox-trigger] . docs →
  • DropdownMenu / ContextMenu - checkbox and radio checked-indicator icon now correctly sized. docs →
Improvements
  • Packaging - dist/*.svelte files preprocessed to plain JS, fixes Rolldown/Vite 8 parse errors.
  • Hook types - barrel switched to export * ; per-hook return-type interfaces are now inferred.
v2.1.0 June 13, 2026 GitHub
Breaking Changes
  • Modal, Slideover, Drawer - trigger snippet now receives a props argument that must be spread onto the trigger element. docs →
New Features
  • Editor - onImageUploadError callback prop for handling image upload failures. docs →
  • Editor - image URL validation: blocks javascript: , SVG data URIs, and data:text/* schemes. docs →
  • Command - exports CommandGroup and CommandItem types. docs →
  • Input - exports InputValue type. docs →
Improvements
  • data-* passthrough tightened to string | number | boolean | null | undefined across Icon, Tabs, Pagination, Command, Select, SelectMenu, Collapsible.
  • Performance - memoized tailwind-variants in Accordion, Progress, Switch, Stepper, ThemeModeButton, Skeleton.
  • Editor - lazy-loads tiptap-markdown and table extension to reduce initial bundle.
  • SelectMenu - 200ms search debounce to reduce re-renders during typing. docs →
Bug Fixes
  • Calendar - year navigation buttons now work correctly. docs →
  • RadioGroup - <legend> element now has correct accessibility attributes. docs →
  • FileUpload - blob URLs properly cleaned up on unmount. docs →
v2.0.0 June 1, 2026 GitHub
Breaking Changes
  • DropdownMenu - trigger snippet now receives { open, props } . Spread props onto the focusable trigger element. docs →
  • Removed: wireFormEvents helper - use useFormFieldEmit instead. docs →
  • Removed: Select defaultValue prop - set initial value via bind:value . docs →
  • Removed: TabsItem.slot prop. docs →
  • Removed: DropdownMenuRadioGroup.name prop. docs →
New Features
  • Separator - new position prop: start | center | end for label positioning. docs →
  • Button / Link - validates native form and anchor HTML attributes. docs →
  • Icon - validates SVG, aria-* , data-* , and event handler attributes. docs →
  • Collapsible, Tabs, Pagination - forward root HTML attributes.
Bug Fixes
  • Alert - default variant corrected from soft to solid . docs →
  • Input - avatar takes precedence over leadingIcon when both provided. docs →
  • AvatarGroup - items now render left-to-right. docs →
  • Pagination - prev/next buttons now have aria-label attributes. docs →
  • SelectMenu - search field no longer inherits parent FormField validation context. docs →
v1.7.0 May 14, 2026 GitHub
New Features
  • Carousel - new component built on Embla Carousel. Supports arrows, dots, autoplay, fade/slide transitions, responsive breakpoints, and bind:api . docs →
  • Select / SelectMenu - multiple prop for multi-selection. value becomes string[] . docs →
  • SelectMenu - createItem prop lets users add typed values not in the items list. docs →
  • Modal / Slideover - size prop: sm | md | lg | xl | full . docs →
  • Modal / Slideover - transition prop: none | fade | slide | scale . docs →
  • FileUpload - maxSize (bytes per file) and maxFiles validation props. docs →
  • FileUpload - onReject callback fires with files rejected by accept , maxSize , or maxFiles . docs →
  • Calendar - isDateHighlightable predicate for marking special dates with a dot indicator. docs →
  • Calendar - maxDays now wired for type="multiple" . docs →
  • PinInput - loading and loadingIcon props for OTP verification flows. docs →
Improvements
  • FileUpload / Calendar - now read parent FormField context; errors propagate to aria-invalid and visual styles. docs →