angular-material-wrap 0.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +165 -0
- package/fesm2022/angular-material-wrap.mjs +12879 -0
- package/fesm2022/angular-material-wrap.mjs.map +1 -0
- package/package.json +59 -0
- package/types/angular-material-wrap.d.ts +6001 -0
package/README.md
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Angular Material Wrap
|
|
2
|
+
|
|
3
|
+
A comprehensive Angular library providing enhanced Material Design components, complete page layouts, and advanced UI patterns built on top of Angular Material.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Enhanced Controls** (20+ components): Advanced wrappers for Angular Material controls with additional functionality
|
|
8
|
+
- **Complex Components** (10+ components): Ready-to-use components like Calendar, Data Table, Dialog, and more
|
|
9
|
+
- **Page Layouts** (6 stereotypes): Complete page templates for common use cases (List, Detail, Form, Search, Workflow, Report)
|
|
10
|
+
- **Theme Management**: Material Design 3 implementation with dynamic theme switching
|
|
11
|
+
- **TypeScript**: Full type safety and IntelliSense support
|
|
12
|
+
- **Tree-shakable**: Optimized bundle size with ES modules
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm install angular-material-wrap
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Peer Dependencies
|
|
21
|
+
|
|
22
|
+
This library requires the following peer dependencies:
|
|
23
|
+
|
|
24
|
+
```json
|
|
25
|
+
{
|
|
26
|
+
"@angular/animations": "^21.0.0",
|
|
27
|
+
"@angular/cdk": "^21.0.0",
|
|
28
|
+
"@angular/common": "^21.0.0",
|
|
29
|
+
"@angular/core": "^21.0.0",
|
|
30
|
+
"@angular/forms": "^21.0.0",
|
|
31
|
+
"@angular/material": "^21.0.0",
|
|
32
|
+
"@angular/platform-browser": "^21.0.0"
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Install them using:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npm install @angular/animations @angular/cdk @angular/common @angular/core @angular/forms @angular/material @angular/platform-browser
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Quick Start
|
|
43
|
+
|
|
44
|
+
### Import Components
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
import { Component } from '@angular/core';
|
|
48
|
+
import { AmwButtonComponent } from 'angular-material-wrap';
|
|
49
|
+
|
|
50
|
+
@Component({
|
|
51
|
+
selector: 'app-root',
|
|
52
|
+
standalone: true,
|
|
53
|
+
imports: [AmwButtonComponent],
|
|
54
|
+
template: `
|
|
55
|
+
<amw-button
|
|
56
|
+
label="Click me"
|
|
57
|
+
type="raised"
|
|
58
|
+
color="primary"
|
|
59
|
+
(clicked)="handleClick()">
|
|
60
|
+
</amw-button>
|
|
61
|
+
`
|
|
62
|
+
})
|
|
63
|
+
export class AppComponent {
|
|
64
|
+
handleClick() {
|
|
65
|
+
console.log('Button clicked!');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Available Components
|
|
71
|
+
|
|
72
|
+
#### Controls
|
|
73
|
+
- **Form Controls**: `AmwButtonComponent`, `AmwInputComponent`, `AmwSelectComponent`, `AmwCheckboxComponent`, `AmwRadioComponent`, `AmwSwitchComponent`, `AmwToggleComponent`, `AmwSliderComponent`, `AmwRangeSliderComponent`
|
|
74
|
+
- **Advanced Controls**: `AmwAutocompleteComponent`, `AmwChipsComponent`, `AmwColorPickerComponent`, `AmwDatePickerComponent`, `AmwTimePickerComponent`, `AmwFileInputComponent`
|
|
75
|
+
- **Data Controls**: `AmwDataTableComponent`
|
|
76
|
+
|
|
77
|
+
#### Components
|
|
78
|
+
- **Layout**: `AmwCardComponent`, `AmwDialogComponent`, `AmwPopoverComponent`, `AmwSidenavComponent`, `AmwStepperComponent`, `AmwTabsComponent`, `AmwAccordionComponent`
|
|
79
|
+
- **Data Display**: `AmwCalendarComponent` (Full, Mini, Item Dialog, Item Editor)
|
|
80
|
+
|
|
81
|
+
#### Pages
|
|
82
|
+
- `AmwListPageComponent` - Data tables with advanced filtering and bulk actions
|
|
83
|
+
- `AmwDetailPageComponent` - Item detail views with related data sections
|
|
84
|
+
- `AmwFormPageComponent` - Dynamic forms with validation and sections
|
|
85
|
+
- `AmwSearchPageComponent` - Advanced search with collapsible filters
|
|
86
|
+
- `AmwWorkflowPageComponent` - Multi-step processes with progress tracking
|
|
87
|
+
- `AmwReportPageComponent` - Dashboard-style reports with widgets
|
|
88
|
+
|
|
89
|
+
#### Styling
|
|
90
|
+
- `ThemeService` - Dynamic theme management
|
|
91
|
+
- `ThemePickerComponent` - Theme selection UI
|
|
92
|
+
- `ThemeEditorComponent` - Theme customization UI
|
|
93
|
+
- `ThemeManagerComponent` - Complete theme management UI
|
|
94
|
+
|
|
95
|
+
## Theme Setup
|
|
96
|
+
|
|
97
|
+
```typescript
|
|
98
|
+
import { Component, OnInit } from '@angular/core';
|
|
99
|
+
import { ThemeService } from 'angular-material-wrap';
|
|
100
|
+
|
|
101
|
+
@Component({
|
|
102
|
+
selector: 'app-root',
|
|
103
|
+
template: `...`
|
|
104
|
+
})
|
|
105
|
+
export class AppComponent implements OnInit {
|
|
106
|
+
constructor(private themeService: ThemeService) {}
|
|
107
|
+
|
|
108
|
+
ngOnInit() {
|
|
109
|
+
// Initialize with default theme
|
|
110
|
+
this.themeService.setTheme('light');
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
toggleTheme() {
|
|
114
|
+
const currentTheme = this.themeService.getCurrentTheme();
|
|
115
|
+
this.themeService.setTheme(currentTheme === 'light' ? 'dark' : 'light');
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Documentation
|
|
121
|
+
|
|
122
|
+
For complete documentation, examples, and API reference, visit:
|
|
123
|
+
- [GitHub Repository](https://github.com/danielhokanson/angular-material-wrap)
|
|
124
|
+
- [API Documentation](https://github.com/danielhokanson/angular-material-wrap/blob/main/docs/library-api.md)
|
|
125
|
+
- [Development Guide](https://github.com/danielhokanson/angular-material-wrap/blob/main/docs/development-workflow.md)
|
|
126
|
+
|
|
127
|
+
## Component Areas
|
|
128
|
+
|
|
129
|
+
The library is organized into four main areas:
|
|
130
|
+
|
|
131
|
+
1. **Controls** (`/controls`) - Enhanced wrappers of Angular Material controls with additional functionality
|
|
132
|
+
2. **Components** (`/components`) - Complex UI components combining multiple controls
|
|
133
|
+
3. **Pages** (`/pages`) - Complete page layouts and common page patterns
|
|
134
|
+
4. **Styling** (`/styling`) - Theme management and Material Design 3 implementation
|
|
135
|
+
|
|
136
|
+
## Browser Support
|
|
137
|
+
|
|
138
|
+
This library supports the same browsers as Angular 21:
|
|
139
|
+
- Chrome (latest)
|
|
140
|
+
- Firefox (latest)
|
|
141
|
+
- Edge (latest)
|
|
142
|
+
- Safari (latest)
|
|
143
|
+
|
|
144
|
+
## License
|
|
145
|
+
|
|
146
|
+
MIT
|
|
147
|
+
|
|
148
|
+
## Author
|
|
149
|
+
|
|
150
|
+
Daniel Hokanson
|
|
151
|
+
|
|
152
|
+
## Contributing
|
|
153
|
+
|
|
154
|
+
Contributions are welcome! Please visit the [GitHub repository](https://github.com/danielhokanson/angular-material-wrap) to report issues or submit pull requests.
|
|
155
|
+
|
|
156
|
+
## Changelog
|
|
157
|
+
|
|
158
|
+
### 0.1.0-beta.0 (Initial Beta Release)
|
|
159
|
+
- Initial beta release
|
|
160
|
+
- 20+ enhanced Material controls
|
|
161
|
+
- 10+ complex components
|
|
162
|
+
- 6 page layout stereotypes
|
|
163
|
+
- Material Design 3 theme management
|
|
164
|
+
- Full TypeScript support
|
|
165
|
+
- Tree-shakable ES modules
|