bdc-walkthrough is an Angular Material library for displaying walk-through pop-ups and dialogs using a declarative approach.
The library solves the problem of guiding users through application workflows by providing reusable components that show contextual pop-ups and dialogs at appropriate moments. It works by tracking task completion state in browser LocalStorage and automatically showing or hiding walk-through elements based on declarative completion criteria. Developers define which tasks must be completed before a pop-up appears, and the library handles visibility logic automatically. Tasks can store primitive values or objects, and pop-ups can evaluate task state using equality, inequality, or comparison operators. When users close a pop-up or click its button, the associated task is marked complete and the pop-up won't reappear unless the task state is reset.
The library suits Angular applications using Material 8.0 or higher that need to implement onboarding flows, feature discovery, or step-by-step user guidance. It works best when you want declarative control over when guidance appears rather than imperative management. The tool provides two main components: bdc-walk-popup for automatic pop-ups and bdc-walk-dialog for dialogs, both triggered via directives attached to page elements. A service is available for programmatic task state access but is optional if you only need the declarative components. The library supports conditional enabling of pop-ups through expressions similar to ngIf, allowing you to show guidance only when certain page states are active.
The project maintains compatibility across multiple Angular and Material versions through explicit version mapping. Development activity shows ongoing maintenance with updates to support newer Material versions, including handling of the transition to MDC-based components in Material 15.x. The maintainers document known compatibility considerations, such as potential style inconsistencies when mixing MDC and legacy Material components in the same application.