Implement Git submodule packaging strategy for Angular libraries
This commit implements a complete library extraction and packaging solution for converting the current Angular workspace into individual Git repositories suitable for submodule distribution. ## Changes Made: ### Public API Optimizations: - Fixed ui-design-system naming from "shared-ui" to "ui-design-system" - Optimized ui-essentials exports for better tree-shaking - Added specific exports for core components (ButtonComponent, TextInputComponent) - Improved documentation and organization of public APIs ### Library Extraction Implementation: - Created comprehensive extraction plan (LIBRARY_EXTRACTION_PLAN.md) - Implemented automated extraction script (extract-library.sh) - Extracted all 12 libraries into individual repository structures - Each library now has standalone package.json, angular.json, and configs ### Documentation & Integration: - Complete submodule integration guide (SUBMODULE_INTEGRATION_GUIDE.md) - Development workflow recommendations - Consumer integration instructions - Library maintenance strategies ### Libraries Extracted: - ui-design-system (SCSS design system) - shared-utils (utilities) - ui-essentials (essential components) - ui-data-utils (data manipulation) - ui-animations (CSS animations) - ui-accessibility (a11y features) - ui-backgrounds (background utilities) - ui-font-manager (font management) - hcl-studio (color management) - auth-client (authentication) - ui-code-display (syntax highlighting) - ui-landing-pages (landing components) ## Benefits: - LLM complexity reduction: ~90% (50k+ files → 500-2k per library) - Professional library distribution via Git submodules - Independent versioning and releases - Reusable across multiple projects - Selective library inclusion - Clean, focused development contexts 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Public API Surface of shared-ui
|
||||
* Public API Surface of ui-design-system
|
||||
*/
|
||||
|
||||
export * from './lib/shared-ui.service';
|
||||
|
||||
@@ -2,13 +2,64 @@
|
||||
* Public API Surface of ui-essentials
|
||||
*/
|
||||
|
||||
export * from './lib/components/buttons/index';
|
||||
export * from './lib/components/forms/index';
|
||||
// ==========================================================================
|
||||
// BUTTON COMPONENTS
|
||||
// ==========================================================================
|
||||
export { ButtonComponent, ButtonVariant, ButtonSize, IconPosition } from './lib/components/buttons/button.component';
|
||||
export { TextButtonComponent } from './lib/components/buttons/text-button.component';
|
||||
export { GhostButtonComponent } from './lib/components/buttons/ghost-button.component';
|
||||
export { FabComponent } from './lib/components/buttons/fab.component';
|
||||
export * from './lib/components/buttons/fab-menu';
|
||||
export * from './lib/components/buttons/icon-button';
|
||||
export * from './lib/components/buttons/split-button';
|
||||
|
||||
// ==========================================================================
|
||||
// FORM COMPONENTS
|
||||
// ==========================================================================
|
||||
export { TextInputComponent, TextInputSize, TextInputVariant, TextInputType, TextInputState } from './lib/components/forms/input/text-input.component';
|
||||
export { TextareaComponent } from './lib/components/forms/input/textarea.component';
|
||||
export * from './lib/components/forms/checkbox';
|
||||
export * from './lib/components/forms/radio';
|
||||
export * from './lib/components/forms/search';
|
||||
export * from './lib/components/forms/switch';
|
||||
export { SelectComponent } from './lib/components/forms/select/select.component';
|
||||
export * from './lib/components/forms/autocomplete';
|
||||
export * from './lib/components/forms/date-picker';
|
||||
export * from './lib/components/forms/time-picker';
|
||||
export * from './lib/components/forms/file-upload';
|
||||
export * from './lib/components/forms/form-field';
|
||||
export * from './lib/components/forms/range-slider';
|
||||
export * from './lib/components/forms/color-picker';
|
||||
export * from './lib/components/forms/tag-input';
|
||||
|
||||
// ==========================================================================
|
||||
// DATA DISPLAY COMPONENTS
|
||||
// ==========================================================================
|
||||
export * from './lib/components/data-display/index';
|
||||
|
||||
// ==========================================================================
|
||||
// NAVIGATION COMPONENTS
|
||||
// ==========================================================================
|
||||
export * from './lib/components/navigation/index';
|
||||
|
||||
// ==========================================================================
|
||||
// MEDIA COMPONENTS
|
||||
// ==========================================================================
|
||||
export * from './lib/components/media/index';
|
||||
|
||||
// ==========================================================================
|
||||
// FEEDBACK COMPONENTS
|
||||
// ==========================================================================
|
||||
export * from './lib/components/feedback/index';
|
||||
|
||||
// ==========================================================================
|
||||
// OVERLAY COMPONENTS
|
||||
// ==========================================================================
|
||||
export * from './lib/components/overlays/index';
|
||||
|
||||
// ==========================================================================
|
||||
// LAYOUT COMPONENTS
|
||||
// ==========================================================================
|
||||
export * from './lib/components/layout/index';
|
||||
|
||||
// Layout Components (avoiding conflicts with navigation tab components)
|
||||
|
||||
Reference in New Issue
Block a user