Added
New components:
- Tour - spotlight product tour with floating step panel: per-step
placement, asynconBeforeNext/onBeforePrevguards,waitForTarget,disabledsteps, centered dialog mode (target: null),header/footer/contentsnippets; responsive and accessible (focus trap,aria-live,prefers-reduced-motion). (#144) - useTour - headless Tour controller (
start/stop/next/prev/goTo) with optionalpersistfor multi-page tours; single-page usage can usebind:apiinstead. (#144) - Error - pre-built error page:
errorobject (statusCode,statusMessage,messagewith dedup),icon, configurable clear button (clear,redirect,onClearfor svelte:boundary reset), full snippet anduioverrides. (#146)
App shell suite - Header, Main, Footer, and Error share one height contract: theme.css defines --ui-header-height (default 4rem, set to 0px when the app has no header):
- Main - content container filling the viewport below the header (
min-h-[calc(100svh-var(--ui-header-height,0px))]). (#150) - Header - sticky app header sized by the same variable: brand link,
left/center/rightareas, mobile menu composing Modal/Slideover/Drawer (mode+ typedmenuoptions), customizable toggle (composedonclick,aria-expanded), bindableopen,autoCloseon route change. (#151) - Footer / FooterColumns - footer with five Container-aligned areas (mobile stack, lg+ three-column order) plus a link-group grid with
left/rightside sections, route-aware active links, and an external-link indicator. (#152)
Icons config - new defaults: menu, external.
Full changelog: v2.2.0...v2.3.0