Changelog
All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
1.1.0 — NFSFU234 Open Source Day (2026-08-25)
A major release focused on project-wide configuration, accessibility, positioning reliability, styling flexibility, test coverage, and package/build improvements.
This release is part of NFORSHIFU234 Dev’s open-source ecosystem and NFSFU234 Open Source Day, alongside NFSFU234 Form Validation and the new NFSFU234 ShotSweep .
⚠️ BREAKING CHANGES
- Package scope changed: the package is now published as
@nfsfu234/tour-guideinstead ofnfsfu234-tour-guide. Existing consumers should update their dependency and imports. See MIGRATION.md. - Scoped package publishing:
publishConfig.accessis explicitly set topublic, allowing the scoped package to be published publicly to npm.
Added
Project-wide configuration
-
Added
defineConfig()for defining reusable Tour configuration. -
Added
<TourProvider>for providing shared configuration to multiple<Tour>instances. -
Added the
TourConfigtype to the public API. -
Shared configuration can now define defaults such as:
themeaccentColorbuttonLabelsshowBranding- and other supported Tour options.
-
Per-tour props continue to take precedence over values supplied through
TourProvider.
Example:
// tour.config.ts
import { defineConfig } from '@nfsfu234/tour-guide';
export default defineConfig({
theme: 'dark',
accentColor: '#10b981',
showBranding: false,
});// app/layout.tsx
import { TourProvider } from '@nfsfu234/tour-guide';
import tourConfig from '../tour.config';
export default function RootLayout({ children }) {
return <TourProvider config={tourConfig}>{children}</TourProvider>;
}This makes it possible to maintain a single source of truth for applications that use multiple tours, such as onboarding flows, feature announcements, and settings walkthroughs.
Accessibility
- Added
Escapekeyboard handling to close both the welcome dialog and an active tour step. - Added
TabandShift+Tabfocus trapping within the open dialog. - Focus is automatically moved into the dialog when a welcome screen or tour step opens.
- Added
role="dialog"to interactive tour surfaces. - Added
aria-modalto modal tour surfaces. - Added
aria-liveannouncements for relevant tour content. - Added descriptive
aria-labelattributes to the tooltip and welcome screen. - Added
role="progressbar"to the step progress indicator. - Added
aria-valuenow,aria-valuemin, andaria-valuemaxto the progress indicator.
Testing
- Added the project’s first real automated test suite using Vitest.
- Added coverage for shared configuration and Tour/provider prop precedence.
- Added regression coverage for restoring highlighted element styles.
- Added accessibility and styling tests covering class-name overrides, Escape handling, and focus trapping.
- Added positioning tests covering viewport-edge flipping, clamping, and arrow direction.
- Added regression coverage for tooltip re-measurement after mounting.
- Added
tests/andvitest.config.ts. - Replaced the previous no-op test behavior (
"No tests yet, skipping...") with an actual test command.
Fixed
Tooltip positioning
- Fixed tooltips rendering on the wrong side of their target, particularly near viewport edges.
- Fixed an issue where requesting
position: 'right'could result in the tooltip appearing on the left, bottom-left, or another unexpected position. - Fixed the initial positioning calculation occurring before the tooltip had switched to
position: fixed. - Tooltip positioning now performs an additional measurement after fixed positioning has been applied, ensuring the calculation uses the tooltip’s actual rendered dimensions.
- Reworked viewport overflow handling so the requested side is calculated first and only changed when there is a genuine overflow that requires a flip.
- Cross-axis clamping is now used as a safety measure without unnecessarily forcing the tooltip away from its requested side.
- Fixed tooltip arrows pointing in the wrong direction after a positioning flip. The arrow now follows the tooltip’s actual resolved position rather than the originally requested
step.position.
Highlight cleanup
- Fixed highlighted target elements retaining tour-applied
positionandz-indexstyles after the tour ended. - Original inline
positionandz-indexvalues are now saved and restored during cleanup instead of being cleared unconditionally. - This prevents tours from leaving behind layout or stacking changes after they close.
Styling
- Fixed
tooltipClassNameandoverlayClassNamebeing unable to override theme colors. - Theme and custom-theme colors are now exposed through CSS custom properties instead of competing inline color declarations.
- Base styling uses zero-specificity
:where()selectors so consumer-provided classes can override the default colors without depending on stylesheet load order. - This makes the documented class-based customization behavior work as intended, including utility-class frameworks such as Tailwind CSS.
Build
- Updated the
tsupbuild configuration to enable--minify. - Enabled
--treeshakefor production builds. - Added/updated the
npm run sizeworkflow for checking package bundle size. - Because the production build is now minified and tree-shaken, previously documented bundle-size figures should be considered specific to this build configuration and should be re-verified after future build changes.
Package and project metadata
- Updated package metadata for the
@nfsfu234scoped package. - Corrected the package description so it no longer references Tailwind CSS or Framer Motion as runtime dependencies/features of the zero-dependency implementation.
- Updated the package’s public exports to include the new configuration and provider APIs.
- Updated TypeScript types to expose the new configuration functionality.
- Updated the package publishing configuration for public scoped-package releases.
Documentation
- Updated the README to document project-wide configuration with
defineConfig()and<TourProvider>. - Updated installation and import examples for the
@nfsfu234/tour-guidepackage scope. - Documented shared configuration and per-instance prop precedence.
- Updated documentation around styling and customization to reflect the corrected CSS override behavior.
- Added migration guidance for consumers upgrading from the pre-1.1.0 package name.
Housekeeping
- Updated the LICENSE copyright holder to
NFORSHIFU LOGICFORGE LTD (operating as NFORSHIFU234 Dev), reflecting the legal entity backing the project. - Updated project metadata and release documentation to reflect the current NFORSHIFU234 Dev open-source ecosystem.
Release
Part of NFORSHIFU234 Dev’s open-source ecosystem and released for NFSFU234 Open Source Day alongside NFSFU234 Form Validation and the new NFSFU234 ShotSweep .
1.0.10 (2026-03-06)
Bug Fixes
1.0.9 (2026-02-19)
Bug Fixes
1.0.8 (2026-02-19)
Bug Fixes
1.0.7 (2026-02-19)
Bug Fixes
- eliminate welcome+backdrop overlap by consolidating welcome phase into single full-screen div (#94 ) (8a0e83b )
1.0.6 (2026-02-19)
Bug Fixes
1.0.5 (2026-02-19)
Bug Fixes
- prevent stale welcome screen DOM nodes & add safe cleanup (c8dbb88 )
- tour: fix “node not a child of this node” error during welcome → active transition (#92 ) (f1c4d34 )
1.0.4 (2026-02-19)
Bug Fixes
1.0.3 (2026-02-19)
Bug Fixes
1.0.2 (2026-02-19)
Bug Fixes
1.0.1 (2026-02-17)
Bug Fixes
1.0.0 (2026-02-17)
⚠ BREAKING CHANGES
- update module exports and types in package.json; add comment in index.tsx (#87)
Bug Fixes
0.3.1 (2026-02-17)
0.3.0 (2026-02-17)
⚠ BREAKING CHANGES
- removed framer-motion and lucide-react dependencies, changed theme system, removed tourDots prop
Features
- Add TypeScript definitions for nfsfu234-tour-guide module (#83 ) (ace5968 )
- complete rewrite with zero dependencies (cf97b20 )
1.0.0 (2026-02-17)
⚠ BREAKING CHANGES
- Complete rewrite of the Tour component architecture
- Removed dependency on framer-motion and lucide-react
- Changed tooltip rendering to use React portals and Intersection Observer
- Simplified API - removed unused props and consolidated theme system
tourDotsprop removed - useshowProgressinstead- Theme customization now uses
customThemeprop instead of inline style overrides
Features
- Zero Dependencies: Removed all external dependencies except React and ReactDOM (#83 )
- Custom Theme System: Added
customThemeprop withThemeConfiginterface for complete color customization (#84 ) - Smart Tooltip Positioning: Tooltips now follow target elements using Intersection Observer and scroll listeners (#85 )
- Body Scroll Lock: Welcome screen now properly locks body scroll to prevent backdrop movement (#86 )
- Device Filtering: Steps are automatically filtered based on
deviceprop (desktop/mobile/both) (#87 ) - Mobile-Specific Content: Added
contentMobileprop to show different text on mobile devices (#88 ) - Improved TypeScript Support: Complete rewrite of type definitions with better inference (#89 )
- Built-in Theme Presets: Added light and dark theme presets with beautiful defaults (#90 )
Bug Fixes
- Tooltip Positioning: Fixed tooltips appearing off-screen or in wrong position (#91 )
- Scroll Behavior: Target elements now properly scroll into view and stay visible (#92 )
- Welcome Screen: Fixed backdrop scrolling issue on mobile devices (#93 )
- TypeScript Errors: Resolved declaration file issues with tsup/rollup (#94 )
- Z-Index Conflicts: Improved z-index management for overlay and tooltips (#95 )
Performance Improvements
- Bundle Size: Reduced bundle size from ~45KB to ~10KB (gzipped) by removing dependencies
- Render Optimization: Tooltips only re-render when position changes
- Memory Management: Proper cleanup of event listeners and observers
Documentation
- Complete README Rewrite: Added comprehensive API reference with examples (#96 )
- Real-World Examples: Added SaaS onboarding, mobile-aware, and i18n examples
- Theme Customization Guide: Detailed guide on creating custom themes
- Migration Guide: Added migration guide from v0.x to v1.0 (see MIGRATION.md)
- Contributing Guide: Updated CONTRIBUTING.md with current practices
Refactorings
- Component Architecture: Split Tour into main component and Tooltip subcomponent
- State Management: Simplified phase management (welcome → active → done)
- Positioning Logic: Rewrote tooltip positioning with proper viewport handling
- Type System: Reorganized interfaces for better maintainability
0.2.21 (2026-02-17)
Bug Fixes
0.2.20 (2026-02-17)
Features
0.2.19 (2026-02-17)
Features
Bug Fixes
0.2.18 (2026-02-17)
Bug Fixes
- Refactor tooltip handling and step navigation (#78 ) (1520782 )
- Refactor Tour component to manage phases and tooltip (#77 ) (3721cd6 )
0.2.17 (2026-02-17)
Bug Fixes
0.2.16 (2026-02-17)
Features
0.2.15 (2026-02-17)
Features
Bug Fixes
- Add missing type definitions for Node and React in devDependencies (#73 ) (76d8f8b )
- Add standard-version for version management (#74 ) (8260397 )
0.2.14 (2026-02-17)
Bug Fixes
- Refactor package.json for author and dependencies (#67 ) (7b10a79 )
- Refactor Tour component interfaces and logic (#66 ) (3d8934f )
- Update Dependabot assignees and reviewers to match current user (#68 ) (fbe947a )
0.2.13 (2026-02-16)
0.2.12 (2025-06-01)
Bug Fixes
0.2.11 (2025-06-01)
Bug Fixes
0.2.10 (2025-06-01)
Bug Fixes
0.2.9 (2025-06-01)
Bug Fixes
0.2.8 (2025-06-01)
Bug Fixes
0.2.7 (2025-06-01)
Bug Fixes
0.2.6 (2025-05-26)
Bug Fixes
0.2.5 (2025-05-17)
Bug Fixes
0.2.4 (2025-05-17)
Features
- adding new files to the project (a3a16a6 )
Bug Fixes
- add comments to tour component (7366689 )
- automated release workflow (#4 ) (cfca6b5 )
- commented on the tour component (#3 ) (f12b92b )
- finxing the login issue (#9 ) (1c325d3 )
- fix automated release workflow (#5 ) (7d54d1d )
- fixing the release issue (#7 ) (18bf30d )
- role stuff (#6 ) (e17c06d )
- trying to fix the release issue (#11 ) (700dbfa )
0.2.3 (2025-05-17)
Features
- adding new files to the project (a3a16a6 )
Bug Fixes
- add comments to tour component (7366689 )
- automated release workflow (#4 ) (cfca6b5 )
- commented on the tour component (#3 ) (f12b92b )
- finxing the login issue (#9 ) (1c325d3 )
- fix automated release workflow (#5 ) (7d54d1d )
- fixing the release issue (#7 ) (18bf30d )
- role stuff (#6 ) (e17c06d )
0.2.2 (2025-05-17)
0.2.1 (2025-05-17)
[0.1.0] - 2025-05-17
Added
- Initial release of
nfsfu234-tour-guide. - Support for customizable tour steps with target selectors, content, and positions.
- Light and dark themes.
- Welcome screen with customizable content.
- Progress bar and optional progress dots.
- Device-specific steps (
desktop,mobile,both). - TypeScript support with full type definitions.
- Keyboard navigation (Arrow keys, Enter, Escape).
- Integration with
framer-motionfor animations andlucide-reactfor icons.
Fixed
- N/A (initial release).
Changed
- N/A (initial release).
Removed
- N/A (initial release).