UI Components
Shared and reusable UI components across the Gauzy frontend.
Component Librariesβ
| Library | Package | Purpose |
|---|---|---|
| Nebular | @nebular/theme | Primary UI framework |
| Angular Material | @angular/material | Additional components |
| Smart Table | angular2-smart-table | Data tables |
| FullCalendar | @fullcalendar/angular | Calendar views |
| CKEditor | @ckeditor/ckeditor5-angular | Rich text editor |
Custom Componentsβ
Smart Tableβ
Used extensively for data grids:
settings = {
columns: {
name: { title: "Name", type: "string" },
email: { title: "Email", type: "string" },
role: { title: "Role", type: "string" },
},
actions: { add: false, edit: true, delete: true },
pager: { perPage: 10 },
};
Date/Time Pickersβ
- Nebular datepicker for date selection
- Custom time range pickers
- Calendar integration for scheduling
Tag Selectorsβ
Multi-select tag components for:
- Employee skills
- Task labels
- Project tags
Avatar & Statusβ
Employee avatar components with online/offline status indicators.
Design Patternsβ
Container/Presentationalβ
Container Component (Smart)
βββ Fetches data from store/service
βββ Handles user interactions
βββ Passes data to presentational components
Presentational Component (Dumb)
βββ Receives data via @Input()
βββ Emits events via @Output()
βββ Purely visual, no service dependencies
Form Componentsβ
Reactive forms with validation:
this.form = this.fb.group({
name: ["", [Validators.required, Validators.minLength(3)]],
email: ["", [Validators.required, Validators.email]],
role: ["", Validators.required],
});