feat: Add Angular Material-style barrel modules for better DX #148
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Introduces barrel modules (readonly component arrays) following Angular Material's proven pattern to drastically improve developer experience. Instead of importing 10+ individual components, developers can now use single barrel module imports.
Motivation
Problem: Using ngx-mat-components required importing many individual components/directives:
Solution: Angular Material-style barrel modules for clean imports:
Changes Made
New Barrel Modules
FsNavFrameModule(fs-nav-frame/fs-nav-frame.module.ts)FsCalendarModule(fs-calendar/fs-calendar.module.ts)FsThemeMenuModule(fs-theme-menu/fs-theme-menu.module.ts)Implementation Pattern
Updated Public APIs
fs-nav-frame/public-api.ts- Exports FsNavFrameModule and FS_NAV_FRAME_COMPONENTSfs-calendar/public-api.ts- Exports FsCalendarModule and FS_CALENDAR_COMPONENTSfs-theme-menu/public-api.ts- Exports FsThemeMenuModule and FS_THEME_MENU_COMPONENTSTesting
lib-workspace/src/app/app.tsto use barrel modulesBenefits
Better Developer Experience
Type Safety
as constensures readonly arraysTree-Shakable
Backward Compatible
Consistent with Ecosystem
Migration Guide
No action required! This is a non-breaking feature addition.
To adopt barrel modules (recommended):
Documentation
CHANGELOG-local.mdwith complete feature documentationChecklist
Related Issues
Resolves internal DX improvement initiative.
🏷️ Version Bump
From: 20.0.0 (Angular 20 migration)
To: 20.1.0 (Minor feature release)
Semver Reasoning: