Release evidence
Track the evidence behind the first release candidate.
Release evidence
This page records executable evidence. It is not a promise that automated tests replace manual accessibility review.
1. Definition and controller kernel
Implemented: literal-preserving definitions, validation, application-scoped registry, linear navigation, conditions, transition locking, aborts, cleanup, events, and typed errors. Use fake route and target adapters in focused tests.
Acceptance: the controller journeys in the runtime specification pass without a DOM or Nuxt application.
2. Vue runtime and semantic targets
Implemented: createTourPlugin(), useTour(), useTourTarget(), app-bound
directives, bounded waiting, and effect-scope cleanup. The /vue export is
verified from the packed artifact.
Evidence: focused tests use two Vue applications, duplicate semantic IDs, late-rendered targets, SVG targets, target replacement, host teardown, and injection inside lifecycle callbacks.
3. Accessible host
Implemented: TourHost, TourContent, one spotlight, default card, full-card slot,
focus behavior, interaction modes, structural CSS, and reduced motion. Add
Floating UI in this slice because this is the first code that uses it.
Evidence: focused DOM tests cover naming, focus, inertness, nested Escape, target interaction, reduced motion, dark mode, and custom-card slots. Real browser journeys cover the high-risk behavior and viewport constraints.
4. Nuxt-native integration
Implemented: the Vue runtime, router adapter, auto-imports, components, and CSS.
Discover each Nuxt layer's app/tours files using the project's configured
extensions. Generate the registry and application-specific tour, step, and
target ID declarations. Add and unlink events regenerate only those templates.
Evidence: the README shape builds without runtime imports; valid IDs infer; invalid tour, step, and target IDs fail type checking; layer overrides and cross-route tours pass.
5. Documentation and release candidate
Release-candidate work includes verified user documentation, a clean packed consumer, package-size review, and the browser matrix.
The release gate runs lint, positive and negative type checking, unit and Nuxt integration tests, module and documentation builds, a five-project Playwright matrix, and a clean Nuxt build installed from the packed tarball. A focused consumer matrix checks the declared Nuxt 4.0 and Vue 3.5 floors as well as the current framework lines, supported Node boundaries, and a Windows consumer. It does not repeat the full documentation and browser gates. The browser journey covers route and Suspense settlement, a per-frame shading probe, target replacement, nested Escape, focus restoration, host removal, external navigation, browser Back, reduced motion, and dark mode.
Manual keyboard, VoiceOver, NVDA, and touch-screen-reader checks remain human launch gates and must be recorded with browser, operating system, and date.
Frozen version 1 decisions
- Target waiting defaults to 5000 ms and missing targets fail.
cancel(reason)accepts an application-owned string.- The default theme exposes only the CSS variables used by the shipped card and
follows system, class-based, or
data-themelight/dark modes. - Nuxt augments the stable
@lupinum/nuxt-tour/registrytype boundary from direct definition imports. - Nuxt 4 and Vue 3.5 or newer are the supported framework floor.