@senior-ease/ui 0.1.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 +60 -0
- package/fesm2022/senior-ease-ui.mjs +424 -0
- package/fesm2022/senior-ease-ui.mjs.map +1 -0
- package/package.json +48 -0
- package/types/senior-ease-ui.d.ts +206 -0
package/README.md
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# @senior-ease/ui
|
|
2
|
+
|
|
3
|
+
Angular UI library do Design System Senior Ease.
|
|
4
|
+
|
|
5
|
+
## Instalacao
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @senior-ease/ui
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Peer dependencies esperadas no app consumidor:
|
|
12
|
+
|
|
13
|
+
- `@angular/common`
|
|
14
|
+
- `@angular/core`
|
|
15
|
+
- `@fortawesome/angular-fontawesome`
|
|
16
|
+
- `@fortawesome/fontawesome-svg-core`
|
|
17
|
+
- `@fortawesome/free-solid-svg-icons`
|
|
18
|
+
|
|
19
|
+
## Uso Basico
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
import { ButtonComponent } from '@senior-ease/ui';
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Build da Biblioteca
|
|
26
|
+
|
|
27
|
+
No workspace raiz:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm run build:ui
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Saida: `dist/ui`
|
|
34
|
+
|
|
35
|
+
## Publicacao no NPM
|
|
36
|
+
|
|
37
|
+
No workspace raiz:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npm run publish:ui
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Esse script faz:
|
|
44
|
+
|
|
45
|
+
1. build da lib
|
|
46
|
+
2. `npm publish ./dist/ui --access public`
|
|
47
|
+
|
|
48
|
+
## Versao (release)
|
|
49
|
+
|
|
50
|
+
Antes de publicar nova versao:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npm version patch --prefix projects/ui
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Opcoes:
|
|
57
|
+
|
|
58
|
+
- `patch` para correcao (`0.1.0 -> 0.1.1`)
|
|
59
|
+
- `minor` para nova feature (`0.1.0 -> 0.2.0`)
|
|
60
|
+
- `major` para breaking change (`0.1.0 -> 1.0.0`)
|
|
@@ -0,0 +1,424 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { Input, Component } from '@angular/core';
|
|
4
|
+
import * as i1 from '@fortawesome/angular-fontawesome';
|
|
5
|
+
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
6
|
+
import { faUser, faEnvelope, faHouse, faClock, faCheck, faChartLine, faCalendarDay, faBookOpen, faBell } from '@fortawesome/free-solid-svg-icons';
|
|
7
|
+
import { RouterLink, RouterLinkActive } from '@angular/router';
|
|
8
|
+
|
|
9
|
+
class AvatarComponent {
|
|
10
|
+
initials = 'SE';
|
|
11
|
+
size = 'md';
|
|
12
|
+
tone = 'primary';
|
|
13
|
+
ariaLabel = '';
|
|
14
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: AvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", type: AvatarComponent, isStandalone: true, selector: "ui-avatar", inputs: { initials: "initials", size: "size", tone: "tone", ariaLabel: "ariaLabel" }, ngImport: i0, template: "<span\n class=\"ui-avatar\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.role]=\"ariaLabel ? 'img' : null\"\n [class.ui-avatar--sm]=\"size === 'sm'\"\n [class.ui-avatar--lg]=\"size === 'lg'\"\n [class.ui-avatar--accent]=\"tone === 'accent'\"\n [class.ui-avatar--neutral]=\"tone === 'neutral'\"\n>\n <ng-content>{{ initials }}</ng-content>\n</span>\n", styles: [":host{display:inline-flex}.ui-avatar{--ui-avatar-size: calc(var(--ui-space-8) + var(--ui-space-1));align-items:center;background:var(--ui-color-primary-soft);border:var(--ui-border-width) solid transparent;border-radius:var(--ui-radius-round);color:var(--ui-color-primary-strong);display:inline-flex;font-size:var(--ui-font-size-200);font-weight:var(--ui-font-weight-semibold);height:var(--ui-avatar-size);justify-content:center;min-width:var(--ui-avatar-size);text-transform:uppercase}.ui-avatar--sm{--ui-avatar-size: var(--ui-space-8)}.ui-avatar--lg{--ui-avatar-size: calc(var(--ui-space-9) + var(--ui-space-1));font-size:var(--ui-font-size-300)}.ui-avatar--accent{background:var(--ui-color-accent-soft);color:var(--ui-color-accent)}.ui-avatar--neutral{background:var(--ui-color-surface-muted);border-color:var(--ui-color-border);color:var(--ui-color-text)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
18
|
+
type: Component,
|
|
19
|
+
args: [{ selector: 'ui-avatar', standalone: true, imports: [CommonModule], template: "<span\n class=\"ui-avatar\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.role]=\"ariaLabel ? 'img' : null\"\n [class.ui-avatar--sm]=\"size === 'sm'\"\n [class.ui-avatar--lg]=\"size === 'lg'\"\n [class.ui-avatar--accent]=\"tone === 'accent'\"\n [class.ui-avatar--neutral]=\"tone === 'neutral'\"\n>\n <ng-content>{{ initials }}</ng-content>\n</span>\n", styles: [":host{display:inline-flex}.ui-avatar{--ui-avatar-size: calc(var(--ui-space-8) + var(--ui-space-1));align-items:center;background:var(--ui-color-primary-soft);border:var(--ui-border-width) solid transparent;border-radius:var(--ui-radius-round);color:var(--ui-color-primary-strong);display:inline-flex;font-size:var(--ui-font-size-200);font-weight:var(--ui-font-weight-semibold);height:var(--ui-avatar-size);justify-content:center;min-width:var(--ui-avatar-size);text-transform:uppercase}.ui-avatar--sm{--ui-avatar-size: var(--ui-space-8)}.ui-avatar--lg{--ui-avatar-size: calc(var(--ui-space-9) + var(--ui-space-1));font-size:var(--ui-font-size-300)}.ui-avatar--accent{background:var(--ui-color-accent-soft);color:var(--ui-color-accent)}.ui-avatar--neutral{background:var(--ui-color-surface-muted);border-color:var(--ui-color-border);color:var(--ui-color-text)}\n"] }]
|
|
20
|
+
}], propDecorators: { initials: [{
|
|
21
|
+
type: Input
|
|
22
|
+
}], size: [{
|
|
23
|
+
type: Input
|
|
24
|
+
}], tone: [{
|
|
25
|
+
type: Input
|
|
26
|
+
}], ariaLabel: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}] } });
|
|
29
|
+
|
|
30
|
+
class BadgeComponent {
|
|
31
|
+
label = '';
|
|
32
|
+
variant = 'neutral';
|
|
33
|
+
ariaLabel = '';
|
|
34
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", type: BadgeComponent, isStandalone: true, selector: "ui-badge", inputs: { label: "label", variant: "variant", ariaLabel: "ariaLabel" }, ngImport: i0, template: "<span\n class=\"ui-badge\"\n [attr.aria-label]=\"ariaLabel || null\"\n [class.ui-badge--primary]=\"variant === 'primary'\"\n [class.ui-badge--success]=\"variant === 'success'\"\n [class.ui-badge--warning]=\"variant === 'warning'\"\n [class.ui-badge--danger]=\"variant === 'danger'\"\n>\n <ng-content>{{ label }}</ng-content>\n</span>\n", styles: [":host{display:inline-flex}.ui-badge{align-items:center;background:var(--ui-color-surface-muted);border-radius:var(--ui-radius-pill);color:var(--ui-color-text-muted);display:inline-flex;font-size:var(--ui-font-size-100);font-weight:var(--ui-font-weight-semibold);min-height:calc(var(--ui-space-5) + var(--ui-space-1));padding:0 var(--ui-space-3)}.ui-badge--primary{background:var(--ui-color-primary-soft);color:var(--ui-color-primary-strong)}.ui-badge--success{background:var(--ui-color-success-soft);color:var(--ui-color-success)}.ui-badge--warning{background:var(--ui-color-warning-soft);color:var(--ui-color-warning)}.ui-badge--danger{background:var(--ui-color-danger-soft);color:var(--ui-color-danger)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: BadgeComponent, decorators: [{
|
|
38
|
+
type: Component,
|
|
39
|
+
args: [{ selector: 'ui-badge', standalone: true, imports: [CommonModule], template: "<span\n class=\"ui-badge\"\n [attr.aria-label]=\"ariaLabel || null\"\n [class.ui-badge--primary]=\"variant === 'primary'\"\n [class.ui-badge--success]=\"variant === 'success'\"\n [class.ui-badge--warning]=\"variant === 'warning'\"\n [class.ui-badge--danger]=\"variant === 'danger'\"\n>\n <ng-content>{{ label }}</ng-content>\n</span>\n", styles: [":host{display:inline-flex}.ui-badge{align-items:center;background:var(--ui-color-surface-muted);border-radius:var(--ui-radius-pill);color:var(--ui-color-text-muted);display:inline-flex;font-size:var(--ui-font-size-100);font-weight:var(--ui-font-weight-semibold);min-height:calc(var(--ui-space-5) + var(--ui-space-1));padding:0 var(--ui-space-3)}.ui-badge--primary{background:var(--ui-color-primary-soft);color:var(--ui-color-primary-strong)}.ui-badge--success{background:var(--ui-color-success-soft);color:var(--ui-color-success)}.ui-badge--warning{background:var(--ui-color-warning-soft);color:var(--ui-color-warning)}.ui-badge--danger{background:var(--ui-color-danger-soft);color:var(--ui-color-danger)}\n"] }]
|
|
40
|
+
}], propDecorators: { label: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], variant: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], ariaLabel: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}] } });
|
|
47
|
+
|
|
48
|
+
class ButtonComponent {
|
|
49
|
+
label = '';
|
|
50
|
+
variant = 'primary';
|
|
51
|
+
size = 'md';
|
|
52
|
+
disabled = false;
|
|
53
|
+
ariaLabel = '';
|
|
54
|
+
ariaPressed = null;
|
|
55
|
+
ariaExpanded = null;
|
|
56
|
+
ariaControls = '';
|
|
57
|
+
ariaDescribedBy = '';
|
|
58
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
59
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", type: ButtonComponent, isStandalone: true, selector: "ui-button", inputs: { label: "label", variant: "variant", size: "size", disabled: "disabled", ariaLabel: "ariaLabel", ariaPressed: "ariaPressed", ariaExpanded: "ariaExpanded", ariaControls: "ariaControls", ariaDescribedBy: "ariaDescribedBy" }, ngImport: i0, template: "<button\n class=\"ui-button\"\n type=\"button\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-pressed]=\"ariaPressed\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-controls]=\"ariaControls || null\"\n [attr.aria-describedby]=\"ariaDescribedBy || null\"\n [class.ui-button--secondary]=\"variant === 'secondary'\"\n [class.ui-button--ghost]=\"variant === 'ghost'\"\n [class.ui-button--sm]=\"size === 'sm'\"\n [class.ui-button--lg]=\"size === 'lg'\"\n>\n <ng-content>{{ label }}</ng-content>\n</button>\n", styles: [":host{display:inline-flex}.ui-button{align-items:center;background:var(--ui-color-primary);border:var(--ui-border-width) solid var(--ui-color-primary);border-radius:var(--ui-radius-pill);color:var(--ui-color-text-inverse);cursor:pointer;display:inline-flex;font-family:var(--ui-font-family-base);font-size:var(--ui-font-size-300);font-weight:var(--ui-font-weight-semibold);gap:var(--ui-space-2);justify-content:center;min-height:2.75rem;min-width:2.75rem;padding:0 var(--ui-space-5);transition:background-color .16s ease,border-color .16s ease,color .16s ease,opacity .16s ease}.ui-button:focus-visible{outline:.1875rem solid var(--ui-color-focus-ring);outline-offset:.125rem}.ui-button--secondary{background:var(--ui-color-surface);border-color:var(--ui-color-border);color:var(--ui-color-text)}.ui-button--ghost{background:transparent;border-color:transparent;color:var(--ui-color-primary)}.ui-button--sm{min-height:2.5rem;min-width:2.5rem;padding:0 var(--ui-space-4)}.ui-button--lg{min-height:3rem;min-width:3rem;padding:0 var(--ui-space-6)}.ui-button:disabled{cursor:not-allowed;opacity:.56}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
60
|
+
}
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{ selector: 'ui-button', standalone: true, imports: [CommonModule], template: "<button\n class=\"ui-button\"\n type=\"button\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-pressed]=\"ariaPressed\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-controls]=\"ariaControls || null\"\n [attr.aria-describedby]=\"ariaDescribedBy || null\"\n [class.ui-button--secondary]=\"variant === 'secondary'\"\n [class.ui-button--ghost]=\"variant === 'ghost'\"\n [class.ui-button--sm]=\"size === 'sm'\"\n [class.ui-button--lg]=\"size === 'lg'\"\n>\n <ng-content>{{ label }}</ng-content>\n</button>\n", styles: [":host{display:inline-flex}.ui-button{align-items:center;background:var(--ui-color-primary);border:var(--ui-border-width) solid var(--ui-color-primary);border-radius:var(--ui-radius-pill);color:var(--ui-color-text-inverse);cursor:pointer;display:inline-flex;font-family:var(--ui-font-family-base);font-size:var(--ui-font-size-300);font-weight:var(--ui-font-weight-semibold);gap:var(--ui-space-2);justify-content:center;min-height:2.75rem;min-width:2.75rem;padding:0 var(--ui-space-5);transition:background-color .16s ease,border-color .16s ease,color .16s ease,opacity .16s ease}.ui-button:focus-visible{outline:.1875rem solid var(--ui-color-focus-ring);outline-offset:.125rem}.ui-button--secondary{background:var(--ui-color-surface);border-color:var(--ui-color-border);color:var(--ui-color-text)}.ui-button--ghost{background:transparent;border-color:transparent;color:var(--ui-color-primary)}.ui-button--sm{min-height:2.5rem;min-width:2.5rem;padding:0 var(--ui-space-4)}.ui-button--lg{min-height:3rem;min-width:3rem;padding:0 var(--ui-space-6)}.ui-button:disabled{cursor:not-allowed;opacity:.56}\n"] }]
|
|
64
|
+
}], propDecorators: { label: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}], variant: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], size: [{
|
|
69
|
+
type: Input
|
|
70
|
+
}], disabled: [{
|
|
71
|
+
type: Input
|
|
72
|
+
}], ariaLabel: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}], ariaPressed: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], ariaExpanded: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], ariaControls: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], ariaDescribedBy: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}] } });
|
|
83
|
+
|
|
84
|
+
class DividerComponent {
|
|
85
|
+
orientation = 'horizontal';
|
|
86
|
+
ariaLabel = '';
|
|
87
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
88
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", type: DividerComponent, isStandalone: true, selector: "ui-divider", inputs: { orientation: "orientation", ariaLabel: "ariaLabel" }, ngImport: i0, template: "<span\n class=\"ui-divider\"\n [class.ui-divider--vertical]=\"orientation === 'vertical'\"\n [attr.role]=\"ariaLabel ? 'separator' : null\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-orientation]=\"orientation\"\n [attr.aria-hidden]=\"ariaLabel ? null : true\"\n></span>\n", styles: [":host{display:block}.ui-divider{background:var(--ui-color-border);display:block;height:var(--ui-border-width);width:100%}.ui-divider--vertical{height:100%;min-height:var(--ui-space-6);width:var(--ui-border-width)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
89
|
+
}
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DividerComponent, decorators: [{
|
|
91
|
+
type: Component,
|
|
92
|
+
args: [{ selector: 'ui-divider', standalone: true, imports: [CommonModule], template: "<span\n class=\"ui-divider\"\n [class.ui-divider--vertical]=\"orientation === 'vertical'\"\n [attr.role]=\"ariaLabel ? 'separator' : null\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-orientation]=\"orientation\"\n [attr.aria-hidden]=\"ariaLabel ? null : true\"\n></span>\n", styles: [":host{display:block}.ui-divider{background:var(--ui-color-border);display:block;height:var(--ui-border-width);width:100%}.ui-divider--vertical{height:100%;min-height:var(--ui-space-6);width:var(--ui-border-width)}\n"] }]
|
|
93
|
+
}], propDecorators: { orientation: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], ariaLabel: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}] } });
|
|
98
|
+
|
|
99
|
+
class IconComponent {
|
|
100
|
+
name = 'home';
|
|
101
|
+
icon = null;
|
|
102
|
+
decorative = true;
|
|
103
|
+
ariaLabel = '';
|
|
104
|
+
iconMap = {
|
|
105
|
+
bell: faBell,
|
|
106
|
+
book: faBookOpen,
|
|
107
|
+
calendar: faCalendarDay,
|
|
108
|
+
chart: faChartLine,
|
|
109
|
+
check: faCheck,
|
|
110
|
+
clock: faClock,
|
|
111
|
+
home: faHouse,
|
|
112
|
+
message: faEnvelope,
|
|
113
|
+
user: faUser,
|
|
114
|
+
};
|
|
115
|
+
get resolvedIcon() {
|
|
116
|
+
return this.icon ?? this.iconMap[nameOrFallback(this.name)];
|
|
117
|
+
}
|
|
118
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
119
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", type: IconComponent, isStandalone: true, selector: "ui-icon", inputs: { name: "name", icon: "icon", decorative: "decorative", ariaLabel: "ariaLabel" }, ngImport: i0, template: "<span\n class=\"ui-icon\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? true : null\"\n [attr.aria-label]=\"decorative ? null : (ariaLabel || name)\"\n>\n <fa-icon [icon]=\"resolvedIcon\"></fa-icon>\n</span>\n", styles: [":host{display:inline-flex}.ui-icon{align-items:center;color:inherit;display:inline-flex;font-size:var(--ui-font-size-400);font-weight:var(--ui-font-weight-semibold);justify-content:center;line-height:1;min-width:var(--ui-space-5)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }] });
|
|
120
|
+
}
|
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: IconComponent, decorators: [{
|
|
122
|
+
type: Component,
|
|
123
|
+
args: [{ selector: 'ui-icon', standalone: true, imports: [CommonModule, FontAwesomeModule], template: "<span\n class=\"ui-icon\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? true : null\"\n [attr.aria-label]=\"decorative ? null : (ariaLabel || name)\"\n>\n <fa-icon [icon]=\"resolvedIcon\"></fa-icon>\n</span>\n", styles: [":host{display:inline-flex}.ui-icon{align-items:center;color:inherit;display:inline-flex;font-size:var(--ui-font-size-400);font-weight:var(--ui-font-weight-semibold);justify-content:center;line-height:1;min-width:var(--ui-space-5)}\n"] }]
|
|
124
|
+
}], propDecorators: { name: [{
|
|
125
|
+
type: Input
|
|
126
|
+
}], icon: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}], decorative: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], ariaLabel: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}] } });
|
|
133
|
+
function nameOrFallback(name) {
|
|
134
|
+
return name ?? 'home';
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
class TextComponent {
|
|
138
|
+
element = 'span';
|
|
139
|
+
tone = 'default';
|
|
140
|
+
weight = 'regular';
|
|
141
|
+
size = 'md';
|
|
142
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: TextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
143
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: TextComponent, isStandalone: true, selector: "ui-text", inputs: { element: "element", tone: "tone", weight: "weight", size: "size" }, ngImport: i0, template: "@switch (element) {\n @case ('p') {\n <p class=\"ui-text\" [attr.data-tone]=\"tone\" [attr.data-weight]=\"weight\" [attr.data-size]=\"size\">\n <ng-content></ng-content>\n </p>\n }\n @case ('h1') {\n <h1 class=\"ui-text\" [attr.data-tone]=\"tone\" [attr.data-weight]=\"weight\" [attr.data-size]=\"size\">\n <ng-content></ng-content>\n </h1>\n }\n @case ('h2') {\n <h2 class=\"ui-text\" [attr.data-tone]=\"tone\" [attr.data-weight]=\"weight\" [attr.data-size]=\"size\">\n <ng-content></ng-content>\n </h2>\n }\n @case ('h3') {\n <h3 class=\"ui-text\" [attr.data-tone]=\"tone\" [attr.data-weight]=\"weight\" [attr.data-size]=\"size\">\n <ng-content></ng-content>\n </h3>\n }\n @default {\n <span class=\"ui-text\" [attr.data-tone]=\"tone\" [attr.data-weight]=\"weight\" [attr.data-size]=\"size\">\n <ng-content></ng-content>\n </span>\n }\n}\n", styles: [":host{display:contents}.ui-text{color:var(--ui-color-text);font-family:var(--ui-font-family-base);font-size:var(--ui-font-size-300);font-weight:var(--ui-font-weight-regular);line-height:var(--ui-line-height-base);margin:0}.ui-text[data-tone=muted]{color:var(--ui-color-text-muted)}.ui-text[data-tone=primary]{color:var(--ui-color-primary-strong)}.ui-text[data-weight=medium]{font-weight:var(--ui-font-weight-medium)}.ui-text[data-weight=semibold]{font-weight:var(--ui-font-weight-semibold)}.ui-text[data-size=sm]{font-size:var(--ui-font-size-200)}.ui-text[data-size=lg]{font-size:var(--ui-font-size-400)}.ui-text[data-size=xl]{font-size:var(--ui-font-size-600);line-height:var(--ui-line-height-tight)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
144
|
+
}
|
|
145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: TextComponent, decorators: [{
|
|
146
|
+
type: Component,
|
|
147
|
+
args: [{ selector: 'ui-text', standalone: true, imports: [CommonModule], template: "@switch (element) {\n @case ('p') {\n <p class=\"ui-text\" [attr.data-tone]=\"tone\" [attr.data-weight]=\"weight\" [attr.data-size]=\"size\">\n <ng-content></ng-content>\n </p>\n }\n @case ('h1') {\n <h1 class=\"ui-text\" [attr.data-tone]=\"tone\" [attr.data-weight]=\"weight\" [attr.data-size]=\"size\">\n <ng-content></ng-content>\n </h1>\n }\n @case ('h2') {\n <h2 class=\"ui-text\" [attr.data-tone]=\"tone\" [attr.data-weight]=\"weight\" [attr.data-size]=\"size\">\n <ng-content></ng-content>\n </h2>\n }\n @case ('h3') {\n <h3 class=\"ui-text\" [attr.data-tone]=\"tone\" [attr.data-weight]=\"weight\" [attr.data-size]=\"size\">\n <ng-content></ng-content>\n </h3>\n }\n @default {\n <span class=\"ui-text\" [attr.data-tone]=\"tone\" [attr.data-weight]=\"weight\" [attr.data-size]=\"size\">\n <ng-content></ng-content>\n </span>\n }\n}\n", styles: [":host{display:contents}.ui-text{color:var(--ui-color-text);font-family:var(--ui-font-family-base);font-size:var(--ui-font-size-300);font-weight:var(--ui-font-weight-regular);line-height:var(--ui-line-height-base);margin:0}.ui-text[data-tone=muted]{color:var(--ui-color-text-muted)}.ui-text[data-tone=primary]{color:var(--ui-color-primary-strong)}.ui-text[data-weight=medium]{font-weight:var(--ui-font-weight-medium)}.ui-text[data-weight=semibold]{font-weight:var(--ui-font-weight-semibold)}.ui-text[data-size=sm]{font-size:var(--ui-font-size-200)}.ui-text[data-size=lg]{font-size:var(--ui-font-size-400)}.ui-text[data-size=xl]{font-size:var(--ui-font-size-600);line-height:var(--ui-line-height-tight)}\n"] }]
|
|
148
|
+
}], propDecorators: { element: [{
|
|
149
|
+
type: Input
|
|
150
|
+
}], tone: [{
|
|
151
|
+
type: Input
|
|
152
|
+
}], weight: [{
|
|
153
|
+
type: Input
|
|
154
|
+
}], size: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}] } });
|
|
157
|
+
|
|
158
|
+
class ListItemComponent {
|
|
159
|
+
title = '';
|
|
160
|
+
description = '';
|
|
161
|
+
meta = '';
|
|
162
|
+
badgeLabel = '';
|
|
163
|
+
badgeVariant = 'neutral';
|
|
164
|
+
icon = 'calendar';
|
|
165
|
+
ariaLabel = '';
|
|
166
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
167
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: ListItemComponent, isStandalone: true, selector: "ui-list-item", inputs: { title: "title", description: "description", meta: "meta", badgeLabel: "badgeLabel", badgeVariant: "badgeVariant", icon: "icon", ariaLabel: "ariaLabel" }, ngImport: i0, template: "<article class=\"ui-list-item\" [attr.aria-label]=\"ariaLabel || null\">\n <span class=\"ui-list-item__icon\">\n <ui-icon [name]=\"icon\" aria-hidden=\"true\"></ui-icon>\n </span>\n\n <div class=\"ui-list-item__copy\">\n <ui-text element=\"span\" weight=\"semibold\">{{ title }}</ui-text>\n @if (description) {\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ description }}</ui-text>\n }\n </div>\n\n <div class=\"ui-list-item__meta\">\n @if (meta) {\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ meta }}</ui-text>\n }\n\n @if (badgeLabel) {\n <ui-badge [label]=\"badgeLabel\" [variant]=\"badgeVariant\"></ui-badge>\n }\n </div>\n</article>\n", styles: [":host{display:block}.ui-list-item{align-items:center;display:grid;gap:var(--ui-space-4);grid-template-columns:auto minmax(0,1fr) auto;padding:var(--ui-space-4) 0}.ui-list-item__icon{align-items:center;background:var(--ui-color-surface-muted);border-radius:var(--ui-radius-round);color:var(--ui-color-primary-strong);display:inline-flex;height:var(--ui-space-8);justify-content:center;width:var(--ui-space-8)}.ui-list-item__copy,.ui-list-item__meta{display:grid;gap:var(--ui-space-1)}.ui-list-item__meta{justify-items:end}@media(max-width:48rem){.ui-list-item{grid-template-columns:auto minmax(0,1fr)}.ui-list-item__meta{grid-column:2;justify-items:start}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: BadgeComponent, selector: "ui-badge", inputs: ["label", "variant", "ariaLabel"] }, { kind: "component", type: IconComponent, selector: "ui-icon", inputs: ["name", "icon", "decorative", "ariaLabel"] }, { kind: "component", type: TextComponent, selector: "ui-text", inputs: ["element", "tone", "weight", "size"] }] });
|
|
168
|
+
}
|
|
169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: ListItemComponent, decorators: [{
|
|
170
|
+
type: Component,
|
|
171
|
+
args: [{ selector: 'ui-list-item', standalone: true, imports: [CommonModule, BadgeComponent, IconComponent, TextComponent], template: "<article class=\"ui-list-item\" [attr.aria-label]=\"ariaLabel || null\">\n <span class=\"ui-list-item__icon\">\n <ui-icon [name]=\"icon\" aria-hidden=\"true\"></ui-icon>\n </span>\n\n <div class=\"ui-list-item__copy\">\n <ui-text element=\"span\" weight=\"semibold\">{{ title }}</ui-text>\n @if (description) {\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ description }}</ui-text>\n }\n </div>\n\n <div class=\"ui-list-item__meta\">\n @if (meta) {\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ meta }}</ui-text>\n }\n\n @if (badgeLabel) {\n <ui-badge [label]=\"badgeLabel\" [variant]=\"badgeVariant\"></ui-badge>\n }\n </div>\n</article>\n", styles: [":host{display:block}.ui-list-item{align-items:center;display:grid;gap:var(--ui-space-4);grid-template-columns:auto minmax(0,1fr) auto;padding:var(--ui-space-4) 0}.ui-list-item__icon{align-items:center;background:var(--ui-color-surface-muted);border-radius:var(--ui-radius-round);color:var(--ui-color-primary-strong);display:inline-flex;height:var(--ui-space-8);justify-content:center;width:var(--ui-space-8)}.ui-list-item__copy,.ui-list-item__meta{display:grid;gap:var(--ui-space-1)}.ui-list-item__meta{justify-items:end}@media(max-width:48rem){.ui-list-item{grid-template-columns:auto minmax(0,1fr)}.ui-list-item__meta{grid-column:2;justify-items:start}}\n"] }]
|
|
172
|
+
}], propDecorators: { title: [{
|
|
173
|
+
type: Input
|
|
174
|
+
}], description: [{
|
|
175
|
+
type: Input
|
|
176
|
+
}], meta: [{
|
|
177
|
+
type: Input
|
|
178
|
+
}], badgeLabel: [{
|
|
179
|
+
type: Input
|
|
180
|
+
}], badgeVariant: [{
|
|
181
|
+
type: Input
|
|
182
|
+
}], icon: [{
|
|
183
|
+
type: Input
|
|
184
|
+
}], ariaLabel: [{
|
|
185
|
+
type: Input
|
|
186
|
+
}] } });
|
|
187
|
+
|
|
188
|
+
class NavItemComponent {
|
|
189
|
+
label = '';
|
|
190
|
+
icon = 'home';
|
|
191
|
+
description = '';
|
|
192
|
+
active = false;
|
|
193
|
+
disabled = false;
|
|
194
|
+
ariaLabel = '';
|
|
195
|
+
routerLink = null;
|
|
196
|
+
get iconName() {
|
|
197
|
+
return typeof this.icon === 'string' ? this.icon : 'home';
|
|
198
|
+
}
|
|
199
|
+
get iconDefinition() {
|
|
200
|
+
return typeof this.icon === 'string' ? null : this.icon;
|
|
201
|
+
}
|
|
202
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: NavItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
203
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: NavItemComponent, isStandalone: true, selector: "ui-nav-item", inputs: { label: "label", icon: "icon", description: "description", active: "active", disabled: "disabled", ariaLabel: "ariaLabel", routerLink: "routerLink" }, ngImport: i0, template: "@if (routerLink && !disabled) {\n <a\n class=\"ui-nav-item\"\n [routerLink]=\"routerLink\"\n routerLinkActive=\"ui-nav-item--active\"\n [class.ui-nav-item--active]=\"active\"\n [attr.aria-current]=\"active ? 'page' : null\"\n [attr.aria-label]=\"ariaLabel || null\"\n >\n <span class=\"ui-nav-item__icon\">\n <ui-icon [name]=\"iconName\" [icon]=\"iconDefinition\" [decorative]=\"true\"></ui-icon>\n </span>\n\n <span class=\"ui-nav-item__copy\">\n <ui-text element=\"span\" weight=\"semibold\">{{ label }}</ui-text>\n @if (description) {\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ description }}</ui-text>\n }\n </span>\n </a>\n} @else {\n <button\n class=\"ui-nav-item\"\n type=\"button\"\n [disabled]=\"disabled\"\n [attr.aria-current]=\"active ? 'page' : null\"\n [attr.aria-label]=\"ariaLabel || null\"\n [class.ui-nav-item--active]=\"active\"\n [class.ui-nav-item--disabled]=\"disabled\"\n >\n <span class=\"ui-nav-item__icon\">\n <ui-icon [name]=\"iconName\" [icon]=\"iconDefinition\" [decorative]=\"true\"></ui-icon>\n </span>\n\n <span class=\"ui-nav-item__copy\">\n <ui-text element=\"span\" weight=\"semibold\">{{ label }}</ui-text>\n @if (description) {\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ description }}</ui-text>\n }\n </span>\n </button>\n}\n", styles: [":host{display:block}.ui-nav-item{align-items:center;background:transparent;border:0;border-radius:var(--ui-radius-md);color:var(--ui-color-text);cursor:pointer;display:grid;gap:var(--ui-space-3);grid-template-columns:auto minmax(0,1fr);padding:var(--ui-space-3);text-align:left;text-decoration:none;width:100%}.ui-nav-item:focus-visible{outline:.1875rem solid var(--ui-color-focus-ring);outline-offset:.125rem}.ui-nav-item--active{background:var(--ui-color-primary-soft);color:var(--ui-color-primary-strong)}.ui-nav-item__icon{align-items:center;background:var(--ui-color-surface);border-radius:var(--ui-radius-round);color:inherit;display:inline-flex;height:var(--ui-space-8);justify-content:center;width:var(--ui-space-8)}.ui-nav-item--active .ui-nav-item__icon{background:var(--ui-color-text-inverse)}.ui-nav-item__copy{display:grid;gap:var(--ui-space-1)}.ui-nav-item--disabled{cursor:not-allowed;opacity:.5}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: IconComponent, selector: "ui-icon", inputs: ["name", "icon", "decorative", "ariaLabel"] }, { kind: "component", type: TextComponent, selector: "ui-text", inputs: ["element", "tone", "weight", "size"] }] });
|
|
204
|
+
}
|
|
205
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: NavItemComponent, decorators: [{
|
|
206
|
+
type: Component,
|
|
207
|
+
args: [{ selector: 'ui-nav-item', standalone: true, imports: [CommonModule, RouterLink, RouterLinkActive, IconComponent, TextComponent], template: "@if (routerLink && !disabled) {\n <a\n class=\"ui-nav-item\"\n [routerLink]=\"routerLink\"\n routerLinkActive=\"ui-nav-item--active\"\n [class.ui-nav-item--active]=\"active\"\n [attr.aria-current]=\"active ? 'page' : null\"\n [attr.aria-label]=\"ariaLabel || null\"\n >\n <span class=\"ui-nav-item__icon\">\n <ui-icon [name]=\"iconName\" [icon]=\"iconDefinition\" [decorative]=\"true\"></ui-icon>\n </span>\n\n <span class=\"ui-nav-item__copy\">\n <ui-text element=\"span\" weight=\"semibold\">{{ label }}</ui-text>\n @if (description) {\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ description }}</ui-text>\n }\n </span>\n </a>\n} @else {\n <button\n class=\"ui-nav-item\"\n type=\"button\"\n [disabled]=\"disabled\"\n [attr.aria-current]=\"active ? 'page' : null\"\n [attr.aria-label]=\"ariaLabel || null\"\n [class.ui-nav-item--active]=\"active\"\n [class.ui-nav-item--disabled]=\"disabled\"\n >\n <span class=\"ui-nav-item__icon\">\n <ui-icon [name]=\"iconName\" [icon]=\"iconDefinition\" [decorative]=\"true\"></ui-icon>\n </span>\n\n <span class=\"ui-nav-item__copy\">\n <ui-text element=\"span\" weight=\"semibold\">{{ label }}</ui-text>\n @if (description) {\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ description }}</ui-text>\n }\n </span>\n </button>\n}\n", styles: [":host{display:block}.ui-nav-item{align-items:center;background:transparent;border:0;border-radius:var(--ui-radius-md);color:var(--ui-color-text);cursor:pointer;display:grid;gap:var(--ui-space-3);grid-template-columns:auto minmax(0,1fr);padding:var(--ui-space-3);text-align:left;text-decoration:none;width:100%}.ui-nav-item:focus-visible{outline:.1875rem solid var(--ui-color-focus-ring);outline-offset:.125rem}.ui-nav-item--active{background:var(--ui-color-primary-soft);color:var(--ui-color-primary-strong)}.ui-nav-item__icon{align-items:center;background:var(--ui-color-surface);border-radius:var(--ui-radius-round);color:inherit;display:inline-flex;height:var(--ui-space-8);justify-content:center;width:var(--ui-space-8)}.ui-nav-item--active .ui-nav-item__icon{background:var(--ui-color-text-inverse)}.ui-nav-item__copy{display:grid;gap:var(--ui-space-1)}.ui-nav-item--disabled{cursor:not-allowed;opacity:.5}\n"] }]
|
|
208
|
+
}], propDecorators: { label: [{
|
|
209
|
+
type: Input
|
|
210
|
+
}], icon: [{
|
|
211
|
+
type: Input
|
|
212
|
+
}], description: [{
|
|
213
|
+
type: Input
|
|
214
|
+
}], active: [{
|
|
215
|
+
type: Input
|
|
216
|
+
}], disabled: [{
|
|
217
|
+
type: Input
|
|
218
|
+
}], ariaLabel: [{
|
|
219
|
+
type: Input
|
|
220
|
+
}], routerLink: [{
|
|
221
|
+
type: Input
|
|
222
|
+
}] } });
|
|
223
|
+
|
|
224
|
+
class StatComponent {
|
|
225
|
+
label = '';
|
|
226
|
+
value = '';
|
|
227
|
+
description = '';
|
|
228
|
+
tone = 'primary';
|
|
229
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: StatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
230
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: StatComponent, isStandalone: true, selector: "ui-stat", inputs: { label: "label", value: "value", description: "description", tone: "tone" }, ngImport: i0, template: "<article class=\"ui-stat\" [attr.data-tone]=\"tone\">\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ label }}</ui-text>\n <ui-text element=\"h3\" size=\"lg\" weight=\"semibold\">{{ value }}</ui-text>\n @if (description) {\n <ui-text element=\"p\" size=\"sm\" tone=\"muted\">{{ description }}</ui-text>\n }\n</article>\n", styles: [":host{display:block}.ui-stat{background:var(--ui-color-surface);border:var(--ui-border-width) solid var(--ui-color-border);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-sm);display:grid;gap:var(--ui-space-2);padding:var(--ui-space-5)}.ui-stat[data-tone=primary]{border-color:var(--ui-color-primary-soft)}.ui-stat[data-tone=success]{border-color:var(--ui-color-success-soft)}.ui-stat[data-tone=warning]{border-color:var(--ui-color-warning-soft)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: TextComponent, selector: "ui-text", inputs: ["element", "tone", "weight", "size"] }] });
|
|
231
|
+
}
|
|
232
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: StatComponent, decorators: [{
|
|
233
|
+
type: Component,
|
|
234
|
+
args: [{ selector: 'ui-stat', standalone: true, imports: [CommonModule, TextComponent], template: "<article class=\"ui-stat\" [attr.data-tone]=\"tone\">\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ label }}</ui-text>\n <ui-text element=\"h3\" size=\"lg\" weight=\"semibold\">{{ value }}</ui-text>\n @if (description) {\n <ui-text element=\"p\" size=\"sm\" tone=\"muted\">{{ description }}</ui-text>\n }\n</article>\n", styles: [":host{display:block}.ui-stat{background:var(--ui-color-surface);border:var(--ui-border-width) solid var(--ui-color-border);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-sm);display:grid;gap:var(--ui-space-2);padding:var(--ui-space-5)}.ui-stat[data-tone=primary]{border-color:var(--ui-color-primary-soft)}.ui-stat[data-tone=success]{border-color:var(--ui-color-success-soft)}.ui-stat[data-tone=warning]{border-color:var(--ui-color-warning-soft)}\n"] }]
|
|
235
|
+
}], propDecorators: { label: [{
|
|
236
|
+
type: Input
|
|
237
|
+
}], value: [{
|
|
238
|
+
type: Input
|
|
239
|
+
}], description: [{
|
|
240
|
+
type: Input
|
|
241
|
+
}], tone: [{
|
|
242
|
+
type: Input
|
|
243
|
+
}] } });
|
|
244
|
+
|
|
245
|
+
class UserInfoComponent {
|
|
246
|
+
name = '';
|
|
247
|
+
role = '';
|
|
248
|
+
initials = 'SE';
|
|
249
|
+
size = 'md';
|
|
250
|
+
ariaLabel = '';
|
|
251
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: UserInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
252
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: UserInfoComponent, isStandalone: true, selector: "ui-user-info", inputs: { name: "name", role: "role", initials: "initials", size: "size", ariaLabel: "ariaLabel" }, ngImport: i0, template: "<div class=\"ui-user-info\" [attr.aria-label]=\"ariaLabel || null\">\n <ui-avatar [initials]=\"initials\" [size]=\"size\" tone=\"neutral\" ariaLabel=\"Avatar do usuario\"></ui-avatar>\n\n <div class=\"ui-user-info__copy\">\n <ui-text element=\"span\" weight=\"semibold\">{{ name }}</ui-text>\n @if (role) {\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ role }}</ui-text>\n }\n </div>\n</div>\n", styles: [":host{display:block}.ui-user-info{align-items:center;display:grid;gap:var(--ui-space-3);grid-template-columns:auto minmax(0,1fr)}.ui-user-info__copy{display:grid;gap:var(--ui-space-1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AvatarComponent, selector: "ui-avatar", inputs: ["initials", "size", "tone", "ariaLabel"] }, { kind: "component", type: TextComponent, selector: "ui-text", inputs: ["element", "tone", "weight", "size"] }] });
|
|
253
|
+
}
|
|
254
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: UserInfoComponent, decorators: [{
|
|
255
|
+
type: Component,
|
|
256
|
+
args: [{ selector: 'ui-user-info', standalone: true, imports: [CommonModule, AvatarComponent, TextComponent], template: "<div class=\"ui-user-info\" [attr.aria-label]=\"ariaLabel || null\">\n <ui-avatar [initials]=\"initials\" [size]=\"size\" tone=\"neutral\" ariaLabel=\"Avatar do usuario\"></ui-avatar>\n\n <div class=\"ui-user-info__copy\">\n <ui-text element=\"span\" weight=\"semibold\">{{ name }}</ui-text>\n @if (role) {\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ role }}</ui-text>\n }\n </div>\n</div>\n", styles: [":host{display:block}.ui-user-info{align-items:center;display:grid;gap:var(--ui-space-3);grid-template-columns:auto minmax(0,1fr)}.ui-user-info__copy{display:grid;gap:var(--ui-space-1)}\n"] }]
|
|
257
|
+
}], propDecorators: { name: [{
|
|
258
|
+
type: Input
|
|
259
|
+
}], role: [{
|
|
260
|
+
type: Input
|
|
261
|
+
}], initials: [{
|
|
262
|
+
type: Input
|
|
263
|
+
}], size: [{
|
|
264
|
+
type: Input
|
|
265
|
+
}], ariaLabel: [{
|
|
266
|
+
type: Input
|
|
267
|
+
}] } });
|
|
268
|
+
|
|
269
|
+
class AgendaListComponent {
|
|
270
|
+
title = 'Agenda do dia';
|
|
271
|
+
items = [];
|
|
272
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: AgendaListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
273
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: AgendaListComponent, isStandalone: true, selector: "ui-agenda-list", inputs: { title: "title", items: "items" }, ngImport: i0, template: "<section class=\"ui-panel\">\n <ui-text element=\"h3\" size=\"lg\" weight=\"semibold\">{{ title }}</ui-text>\n\n <div class=\"ui-panel__list\">\n @for (item of items; track item.title; let last = $last) {\n <ui-list-item\n [title]=\"item.title\"\n [description]=\"item.description ?? ''\"\n [meta]=\"item.meta ?? ''\"\n [badgeLabel]=\"item.badgeLabel ?? ''\"\n [badgeVariant]=\"item.badgeVariant ?? 'neutral'\"\n [icon]=\"item.icon ?? 'calendar'\"\n ></ui-list-item>\n\n @if (!last) {\n <ui-divider></ui-divider>\n }\n }\n </div>\n</section>\n", styles: [":host{display:block}.ui-panel{background:var(--ui-color-surface);border:var(--ui-border-width) solid var(--ui-color-border);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-sm);display:grid;gap:var(--ui-space-4);padding:var(--ui-space-6)}.ui-panel__list{display:grid}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DividerComponent, selector: "ui-divider", inputs: ["orientation", "ariaLabel"] }, { kind: "component", type: ListItemComponent, selector: "ui-list-item", inputs: ["title", "description", "meta", "badgeLabel", "badgeVariant", "icon", "ariaLabel"] }, { kind: "component", type: TextComponent, selector: "ui-text", inputs: ["element", "tone", "weight", "size"] }] });
|
|
274
|
+
}
|
|
275
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: AgendaListComponent, decorators: [{
|
|
276
|
+
type: Component,
|
|
277
|
+
args: [{ selector: 'ui-agenda-list', standalone: true, imports: [CommonModule, DividerComponent, ListItemComponent, TextComponent], template: "<section class=\"ui-panel\">\n <ui-text element=\"h3\" size=\"lg\" weight=\"semibold\">{{ title }}</ui-text>\n\n <div class=\"ui-panel__list\">\n @for (item of items; track item.title; let last = $last) {\n <ui-list-item\n [title]=\"item.title\"\n [description]=\"item.description ?? ''\"\n [meta]=\"item.meta ?? ''\"\n [badgeLabel]=\"item.badgeLabel ?? ''\"\n [badgeVariant]=\"item.badgeVariant ?? 'neutral'\"\n [icon]=\"item.icon ?? 'calendar'\"\n ></ui-list-item>\n\n @if (!last) {\n <ui-divider></ui-divider>\n }\n }\n </div>\n</section>\n", styles: [":host{display:block}.ui-panel{background:var(--ui-color-surface);border:var(--ui-border-width) solid var(--ui-color-border);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-sm);display:grid;gap:var(--ui-space-4);padding:var(--ui-space-6)}.ui-panel__list{display:grid}\n"] }]
|
|
278
|
+
}], propDecorators: { title: [{
|
|
279
|
+
type: Input
|
|
280
|
+
}], items: [{
|
|
281
|
+
type: Input
|
|
282
|
+
}] } });
|
|
283
|
+
|
|
284
|
+
class HeaderComponent {
|
|
285
|
+
badgeLabel = '';
|
|
286
|
+
title = '';
|
|
287
|
+
subtitle = '';
|
|
288
|
+
actionLabel = '';
|
|
289
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
290
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: HeaderComponent, isStandalone: true, selector: "ui-header", inputs: { badgeLabel: "badgeLabel", title: "title", subtitle: "subtitle", actionLabel: "actionLabel" }, ngImport: i0, template: "<header class=\"ui-header\">\n <div class=\"ui-header__copy\">\n @if (badgeLabel) {\n <ui-badge [label]=\"badgeLabel\" variant=\"primary\"></ui-badge>\n }\n\n <ui-text element=\"h1\" size=\"xl\" weight=\"semibold\">{{ title }}</ui-text>\n\n @if (subtitle) {\n <ui-text element=\"p\" tone=\"muted\">{{ subtitle }}</ui-text>\n }\n </div>\n\n @if (actionLabel) {\n <ui-button [label]=\"actionLabel\" [ariaLabel]=\"actionLabel\" variant=\"secondary\"></ui-button>\n }\n</header>\n", styles: [":host{display:block}.ui-header{align-items:center;display:flex;gap:var(--ui-space-5);justify-content:space-between}.ui-header__copy{display:grid;gap:var(--ui-space-2)}@media(max-width:48rem){.ui-header{align-items:flex-start;flex-direction:column}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: BadgeComponent, selector: "ui-badge", inputs: ["label", "variant", "ariaLabel"] }, { kind: "component", type: ButtonComponent, selector: "ui-button", inputs: ["label", "variant", "size", "disabled", "ariaLabel", "ariaPressed", "ariaExpanded", "ariaControls", "ariaDescribedBy"] }, { kind: "component", type: TextComponent, selector: "ui-text", inputs: ["element", "tone", "weight", "size"] }] });
|
|
291
|
+
}
|
|
292
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: HeaderComponent, decorators: [{
|
|
293
|
+
type: Component,
|
|
294
|
+
args: [{ selector: 'ui-header', standalone: true, imports: [CommonModule, BadgeComponent, ButtonComponent, TextComponent], template: "<header class=\"ui-header\">\n <div class=\"ui-header__copy\">\n @if (badgeLabel) {\n <ui-badge [label]=\"badgeLabel\" variant=\"primary\"></ui-badge>\n }\n\n <ui-text element=\"h1\" size=\"xl\" weight=\"semibold\">{{ title }}</ui-text>\n\n @if (subtitle) {\n <ui-text element=\"p\" tone=\"muted\">{{ subtitle }}</ui-text>\n }\n </div>\n\n @if (actionLabel) {\n <ui-button [label]=\"actionLabel\" [ariaLabel]=\"actionLabel\" variant=\"secondary\"></ui-button>\n }\n</header>\n", styles: [":host{display:block}.ui-header{align-items:center;display:flex;gap:var(--ui-space-5);justify-content:space-between}.ui-header__copy{display:grid;gap:var(--ui-space-2)}@media(max-width:48rem){.ui-header{align-items:flex-start;flex-direction:column}}\n"] }]
|
|
295
|
+
}], propDecorators: { badgeLabel: [{
|
|
296
|
+
type: Input
|
|
297
|
+
}], title: [{
|
|
298
|
+
type: Input
|
|
299
|
+
}], subtitle: [{
|
|
300
|
+
type: Input
|
|
301
|
+
}], actionLabel: [{
|
|
302
|
+
type: Input
|
|
303
|
+
}] } });
|
|
304
|
+
|
|
305
|
+
class HeroCardComponent {
|
|
306
|
+
eyebrow = '';
|
|
307
|
+
title = '';
|
|
308
|
+
description = '';
|
|
309
|
+
primaryActionLabel = '';
|
|
310
|
+
secondaryActionLabel = '';
|
|
311
|
+
highlightLabel = '';
|
|
312
|
+
highlightValue = '';
|
|
313
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: HeroCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
314
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: HeroCardComponent, isStandalone: true, selector: "ui-hero-card", inputs: { eyebrow: "eyebrow", title: "title", description: "description", primaryActionLabel: "primaryActionLabel", secondaryActionLabel: "secondaryActionLabel", highlightLabel: "highlightLabel", highlightValue: "highlightValue" }, ngImport: i0, template: "<section class=\"ui-hero-card\">\n <div class=\"ui-hero-card__copy\">\n @if (eyebrow) {\n <ui-badge [label]=\"eyebrow\" variant=\"primary\"></ui-badge>\n }\n\n <ui-text element=\"h2\" size=\"xl\" weight=\"semibold\">{{ title }}</ui-text>\n\n @if (description) {\n <ui-text element=\"p\" tone=\"muted\">{{ description }}</ui-text>\n }\n\n <div class=\"ui-hero-card__actions\">\n @if (primaryActionLabel) {\n <ui-button [label]=\"primaryActionLabel\"></ui-button>\n }\n\n @if (secondaryActionLabel) {\n <ui-button [label]=\"secondaryActionLabel\" variant=\"ghost\"></ui-button>\n }\n </div>\n </div>\n\n <div class=\"ui-hero-card__highlight\">\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ highlightLabel }}</ui-text>\n <ui-text element=\"h3\" size=\"xl\" weight=\"semibold\">{{ highlightValue }}</ui-text>\n </div>\n</section>\n", styles: [":host{display:block}.ui-hero-card{align-items:stretch;background:linear-gradient(135deg,var(--ui-color-surface),var(--ui-color-primary-soft));border:var(--ui-border-width) solid var(--ui-color-border);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-md);display:grid;gap:var(--ui-space-5);grid-template-columns:minmax(0,1.6fr) minmax(16rem,.8fr);padding:var(--ui-space-7)}.ui-hero-card__copy,.ui-hero-card__highlight{display:grid;gap:var(--ui-space-3)}.ui-hero-card__actions{display:flex;flex-wrap:wrap;gap:var(--ui-space-3)}.ui-hero-card__highlight{align-content:start;background:var(--ui-color-text-inverse);border-radius:var(--ui-radius-md);padding:var(--ui-space-5)}@media(max-width:64rem){.ui-hero-card{grid-template-columns:minmax(0,1fr)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: BadgeComponent, selector: "ui-badge", inputs: ["label", "variant", "ariaLabel"] }, { kind: "component", type: ButtonComponent, selector: "ui-button", inputs: ["label", "variant", "size", "disabled", "ariaLabel", "ariaPressed", "ariaExpanded", "ariaControls", "ariaDescribedBy"] }, { kind: "component", type: TextComponent, selector: "ui-text", inputs: ["element", "tone", "weight", "size"] }] });
|
|
315
|
+
}
|
|
316
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: HeroCardComponent, decorators: [{
|
|
317
|
+
type: Component,
|
|
318
|
+
args: [{ selector: 'ui-hero-card', standalone: true, imports: [CommonModule, BadgeComponent, ButtonComponent, TextComponent], template: "<section class=\"ui-hero-card\">\n <div class=\"ui-hero-card__copy\">\n @if (eyebrow) {\n <ui-badge [label]=\"eyebrow\" variant=\"primary\"></ui-badge>\n }\n\n <ui-text element=\"h2\" size=\"xl\" weight=\"semibold\">{{ title }}</ui-text>\n\n @if (description) {\n <ui-text element=\"p\" tone=\"muted\">{{ description }}</ui-text>\n }\n\n <div class=\"ui-hero-card__actions\">\n @if (primaryActionLabel) {\n <ui-button [label]=\"primaryActionLabel\"></ui-button>\n }\n\n @if (secondaryActionLabel) {\n <ui-button [label]=\"secondaryActionLabel\" variant=\"ghost\"></ui-button>\n }\n </div>\n </div>\n\n <div class=\"ui-hero-card__highlight\">\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ highlightLabel }}</ui-text>\n <ui-text element=\"h3\" size=\"xl\" weight=\"semibold\">{{ highlightValue }}</ui-text>\n </div>\n</section>\n", styles: [":host{display:block}.ui-hero-card{align-items:stretch;background:linear-gradient(135deg,var(--ui-color-surface),var(--ui-color-primary-soft));border:var(--ui-border-width) solid var(--ui-color-border);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-md);display:grid;gap:var(--ui-space-5);grid-template-columns:minmax(0,1.6fr) minmax(16rem,.8fr);padding:var(--ui-space-7)}.ui-hero-card__copy,.ui-hero-card__highlight{display:grid;gap:var(--ui-space-3)}.ui-hero-card__actions{display:flex;flex-wrap:wrap;gap:var(--ui-space-3)}.ui-hero-card__highlight{align-content:start;background:var(--ui-color-text-inverse);border-radius:var(--ui-radius-md);padding:var(--ui-space-5)}@media(max-width:64rem){.ui-hero-card{grid-template-columns:minmax(0,1fr)}}\n"] }]
|
|
319
|
+
}], propDecorators: { eyebrow: [{
|
|
320
|
+
type: Input
|
|
321
|
+
}], title: [{
|
|
322
|
+
type: Input
|
|
323
|
+
}], description: [{
|
|
324
|
+
type: Input
|
|
325
|
+
}], primaryActionLabel: [{
|
|
326
|
+
type: Input
|
|
327
|
+
}], secondaryActionLabel: [{
|
|
328
|
+
type: Input
|
|
329
|
+
}], highlightLabel: [{
|
|
330
|
+
type: Input
|
|
331
|
+
}], highlightValue: [{
|
|
332
|
+
type: Input
|
|
333
|
+
}] } });
|
|
334
|
+
|
|
335
|
+
class MaterialsListComponent {
|
|
336
|
+
title = 'Materiais recomendados';
|
|
337
|
+
items = [];
|
|
338
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: MaterialsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
339
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: MaterialsListComponent, isStandalone: true, selector: "ui-materials-list", inputs: { title: "title", items: "items" }, ngImport: i0, template: "<section class=\"ui-panel\">\n <ui-text element=\"h3\" size=\"lg\" weight=\"semibold\">{{ title }}</ui-text>\n\n <div class=\"ui-panel__list\">\n @for (item of items; track item.title; let last = $last) {\n <ui-list-item\n [title]=\"item.title\"\n [description]=\"item.description ?? ''\"\n [meta]=\"item.meta ?? ''\"\n [badgeLabel]=\"item.badgeLabel ?? ''\"\n [badgeVariant]=\"item.badgeVariant ?? 'neutral'\"\n [icon]=\"item.icon ?? 'book'\"\n ></ui-list-item>\n\n @if (!last) {\n <ui-divider></ui-divider>\n }\n }\n </div>\n</section>\n", styles: [":host{display:block}.ui-panel{background:var(--ui-color-surface);border:var(--ui-border-width) solid var(--ui-color-border);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-sm);display:grid;gap:var(--ui-space-4);padding:var(--ui-space-6)}.ui-panel__list{display:grid}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DividerComponent, selector: "ui-divider", inputs: ["orientation", "ariaLabel"] }, { kind: "component", type: ListItemComponent, selector: "ui-list-item", inputs: ["title", "description", "meta", "badgeLabel", "badgeVariant", "icon", "ariaLabel"] }, { kind: "component", type: TextComponent, selector: "ui-text", inputs: ["element", "tone", "weight", "size"] }] });
|
|
340
|
+
}
|
|
341
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: MaterialsListComponent, decorators: [{
|
|
342
|
+
type: Component,
|
|
343
|
+
args: [{ selector: 'ui-materials-list', standalone: true, imports: [CommonModule, DividerComponent, ListItemComponent, TextComponent], template: "<section class=\"ui-panel\">\n <ui-text element=\"h3\" size=\"lg\" weight=\"semibold\">{{ title }}</ui-text>\n\n <div class=\"ui-panel__list\">\n @for (item of items; track item.title; let last = $last) {\n <ui-list-item\n [title]=\"item.title\"\n [description]=\"item.description ?? ''\"\n [meta]=\"item.meta ?? ''\"\n [badgeLabel]=\"item.badgeLabel ?? ''\"\n [badgeVariant]=\"item.badgeVariant ?? 'neutral'\"\n [icon]=\"item.icon ?? 'book'\"\n ></ui-list-item>\n\n @if (!last) {\n <ui-divider></ui-divider>\n }\n }\n </div>\n</section>\n", styles: [":host{display:block}.ui-panel{background:var(--ui-color-surface);border:var(--ui-border-width) solid var(--ui-color-border);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-sm);display:grid;gap:var(--ui-space-4);padding:var(--ui-space-6)}.ui-panel__list{display:grid}\n"] }]
|
|
344
|
+
}], propDecorators: { title: [{
|
|
345
|
+
type: Input
|
|
346
|
+
}], items: [{
|
|
347
|
+
type: Input
|
|
348
|
+
}] } });
|
|
349
|
+
|
|
350
|
+
class SidebarComponent {
|
|
351
|
+
brand = 'Senior Ease';
|
|
352
|
+
subtitle = 'Design System';
|
|
353
|
+
userName = '';
|
|
354
|
+
userRole = '';
|
|
355
|
+
userInitials = 'SE';
|
|
356
|
+
items = [];
|
|
357
|
+
navAriaLabel = 'Navegacao principal';
|
|
358
|
+
mobileNavAriaLabel = 'Navegacao inferior';
|
|
359
|
+
iconName(item) {
|
|
360
|
+
return typeof item.icon === 'string' ? item.icon : 'home';
|
|
361
|
+
}
|
|
362
|
+
iconDefinition(item) {
|
|
363
|
+
return typeof item.icon === 'string' || !item.icon ? null : item.icon;
|
|
364
|
+
}
|
|
365
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
366
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: SidebarComponent, isStandalone: true, selector: "ui-sidebar", inputs: { brand: "brand", subtitle: "subtitle", userName: "userName", userRole: "userRole", userInitials: "userInitials", items: "items", navAriaLabel: "navAriaLabel", mobileNavAriaLabel: "mobileNavAriaLabel" }, ngImport: i0, template: "<aside class=\"ui-sidebar ui-sidebar__desktop\">\n <div class=\"ui-sidebar__brand\">\n <span class=\"ui-sidebar__mark\">SE</span>\n <div class=\"ui-sidebar__brand-copy\">\n <ui-text element=\"span\" weight=\"semibold\">{{ brand }}</ui-text>\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ subtitle }}</ui-text>\n </div>\n </div>\n\n <nav class=\"ui-sidebar__nav\" [attr.aria-label]=\"navAriaLabel\">\n <ul class=\"ui-sidebar__list\" role=\"list\">\n @for (item of items; track item.label) {\n <li class=\"ui-sidebar__list-item\">\n <ui-nav-item\n [label]=\"item.label\"\n [icon]=\"item.icon ?? 'home'\"\n [description]=\"item.description ?? ''\"\n [active]=\"item.active ?? false\"\n [disabled]=\"item.disabled ?? false\"\n [ariaLabel]=\"item.ariaLabel ?? item.label\"\n [routerLink]=\"item.path ?? null\"\n ></ui-nav-item>\n </li>\n }\n </ul>\n </nav>\n\n <ui-divider></ui-divider>\n\n <ui-user-info\n [name]=\"userName\"\n [role]=\"userRole\"\n [initials]=\"userInitials\"\n ariaLabel=\"Informacoes do usuario\"\n size=\"sm\"\n ></ui-user-info>\n</aside>\n\n<nav class=\"ui-sidebar__mobile-nav\" [attr.aria-label]=\"mobileNavAriaLabel\">\n <ul class=\"ui-sidebar__mobile-list\" role=\"list\">\n @for (item of items; track item.label) {\n <li class=\"ui-sidebar__mobile-item\">\n @if (!item.disabled && item.path) {\n <a\n class=\"ui-sidebar__mobile-link\"\n [routerLink]=\"item.path\"\n routerLinkActive=\"ui-sidebar__mobile-link--active\"\n [attr.aria-label]=\"item.ariaLabel ?? item.label\"\n >\n <ui-icon [name]=\"iconName(item)\" [icon]=\"iconDefinition(item)\" [decorative]=\"true\"></ui-icon>\n <span class=\"ui-sidebar__mobile-label\">{{ item.label }}</span>\n </a>\n } @else if (!item.disabled) {\n <button class=\"ui-sidebar__mobile-link\" type=\"button\" [attr.aria-label]=\"item.ariaLabel ?? item.label\">\n <ui-icon [name]=\"iconName(item)\" [icon]=\"iconDefinition(item)\" [decorative]=\"true\"></ui-icon>\n <span class=\"ui-sidebar__mobile-label\">{{ item.label }}</span>\n </button>\n } @else {\n <span class=\"ui-sidebar__mobile-link ui-sidebar__mobile-link--disabled\" [attr.aria-label]=\"item.label\">\n <ui-icon [name]=\"iconName(item)\" [icon]=\"iconDefinition(item)\" [decorative]=\"true\"></ui-icon>\n <span class=\"ui-sidebar__mobile-label\">{{ item.label }}</span>\n </span>\n }\n </li>\n }\n </ul>\n</nav>\n", styles: [":host{display:block;height:100%}.ui-sidebar{background:var(--ui-color-surface)}.ui-sidebar__desktop{border-right:var(--ui-border-width) solid var(--ui-color-border);display:grid;gap:var(--ui-space-5);grid-template-rows:auto 1fr auto auto;height:100%;padding:var(--ui-space-6)}.ui-sidebar__brand{align-items:center;display:grid;gap:var(--ui-space-3);grid-template-columns:auto minmax(0,1fr)}.ui-sidebar__mark{align-items:center;background:var(--ui-color-primary-strong);border-radius:var(--ui-radius-round);color:var(--ui-color-text-inverse);display:inline-flex;font-size:var(--ui-font-size-200);font-weight:var(--ui-font-weight-semibold);height:var(--ui-space-8);justify-content:center;width:var(--ui-space-8)}.ui-sidebar__brand-copy,.ui-sidebar__nav{display:grid;gap:var(--ui-space-2)}.ui-sidebar__list{display:grid;gap:var(--ui-space-2);list-style:none;margin:0;padding:0}.ui-sidebar__list-item{margin:0;padding:0}.ui-sidebar__mobile-nav{display:none}@media(max-width:72rem){.ui-sidebar__desktop{display:none}.ui-sidebar__mobile-nav{background:var(--ui-color-surface);border-top:var(--ui-border-width) solid var(--ui-color-border);bottom:0;display:block;left:0;padding-bottom:env(safe-area-inset-bottom);position:fixed;right:0;z-index:900}.ui-sidebar__mobile-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));height:var(--ui-layout-mobile-nav-height);list-style:none;margin:0;padding:0}.ui-sidebar__mobile-item{margin:0;padding:0}.ui-sidebar__mobile-link{align-items:center;background:transparent;border:0;color:var(--ui-color-text-muted);cursor:pointer;display:inline-flex;flex-direction:column;font-size:var(--ui-font-size-100);font-weight:var(--ui-font-weight-medium);gap:var(--ui-space-1);height:100%;justify-content:center;text-decoration:none;width:100%}.ui-sidebar__mobile-link--active{color:var(--ui-color-primary-strong)}.ui-sidebar__mobile-link--disabled{cursor:not-allowed;opacity:.45}.ui-sidebar__mobile-link:focus-visible{outline:.1875rem solid var(--ui-color-focus-ring);outline-offset:-.1875rem}.ui-sidebar__mobile-label{line-height:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: DividerComponent, selector: "ui-divider", inputs: ["orientation", "ariaLabel"] }, { kind: "component", type: IconComponent, selector: "ui-icon", inputs: ["name", "icon", "decorative", "ariaLabel"] }, { kind: "component", type: NavItemComponent, selector: "ui-nav-item", inputs: ["label", "icon", "description", "active", "disabled", "ariaLabel", "routerLink"] }, { kind: "component", type: TextComponent, selector: "ui-text", inputs: ["element", "tone", "weight", "size"] }, { kind: "component", type: UserInfoComponent, selector: "ui-user-info", inputs: ["name", "role", "initials", "size", "ariaLabel"] }] });
|
|
367
|
+
}
|
|
368
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: SidebarComponent, decorators: [{
|
|
369
|
+
type: Component,
|
|
370
|
+
args: [{ selector: 'ui-sidebar', standalone: true, imports: [
|
|
371
|
+
CommonModule,
|
|
372
|
+
RouterLink,
|
|
373
|
+
RouterLinkActive,
|
|
374
|
+
DividerComponent,
|
|
375
|
+
IconComponent,
|
|
376
|
+
NavItemComponent,
|
|
377
|
+
TextComponent,
|
|
378
|
+
UserInfoComponent,
|
|
379
|
+
], template: "<aside class=\"ui-sidebar ui-sidebar__desktop\">\n <div class=\"ui-sidebar__brand\">\n <span class=\"ui-sidebar__mark\">SE</span>\n <div class=\"ui-sidebar__brand-copy\">\n <ui-text element=\"span\" weight=\"semibold\">{{ brand }}</ui-text>\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ subtitle }}</ui-text>\n </div>\n </div>\n\n <nav class=\"ui-sidebar__nav\" [attr.aria-label]=\"navAriaLabel\">\n <ul class=\"ui-sidebar__list\" role=\"list\">\n @for (item of items; track item.label) {\n <li class=\"ui-sidebar__list-item\">\n <ui-nav-item\n [label]=\"item.label\"\n [icon]=\"item.icon ?? 'home'\"\n [description]=\"item.description ?? ''\"\n [active]=\"item.active ?? false\"\n [disabled]=\"item.disabled ?? false\"\n [ariaLabel]=\"item.ariaLabel ?? item.label\"\n [routerLink]=\"item.path ?? null\"\n ></ui-nav-item>\n </li>\n }\n </ul>\n </nav>\n\n <ui-divider></ui-divider>\n\n <ui-user-info\n [name]=\"userName\"\n [role]=\"userRole\"\n [initials]=\"userInitials\"\n ariaLabel=\"Informacoes do usuario\"\n size=\"sm\"\n ></ui-user-info>\n</aside>\n\n<nav class=\"ui-sidebar__mobile-nav\" [attr.aria-label]=\"mobileNavAriaLabel\">\n <ul class=\"ui-sidebar__mobile-list\" role=\"list\">\n @for (item of items; track item.label) {\n <li class=\"ui-sidebar__mobile-item\">\n @if (!item.disabled && item.path) {\n <a\n class=\"ui-sidebar__mobile-link\"\n [routerLink]=\"item.path\"\n routerLinkActive=\"ui-sidebar__mobile-link--active\"\n [attr.aria-label]=\"item.ariaLabel ?? item.label\"\n >\n <ui-icon [name]=\"iconName(item)\" [icon]=\"iconDefinition(item)\" [decorative]=\"true\"></ui-icon>\n <span class=\"ui-sidebar__mobile-label\">{{ item.label }}</span>\n </a>\n } @else if (!item.disabled) {\n <button class=\"ui-sidebar__mobile-link\" type=\"button\" [attr.aria-label]=\"item.ariaLabel ?? item.label\">\n <ui-icon [name]=\"iconName(item)\" [icon]=\"iconDefinition(item)\" [decorative]=\"true\"></ui-icon>\n <span class=\"ui-sidebar__mobile-label\">{{ item.label }}</span>\n </button>\n } @else {\n <span class=\"ui-sidebar__mobile-link ui-sidebar__mobile-link--disabled\" [attr.aria-label]=\"item.label\">\n <ui-icon [name]=\"iconName(item)\" [icon]=\"iconDefinition(item)\" [decorative]=\"true\"></ui-icon>\n <span class=\"ui-sidebar__mobile-label\">{{ item.label }}</span>\n </span>\n }\n </li>\n }\n </ul>\n</nav>\n", styles: [":host{display:block;height:100%}.ui-sidebar{background:var(--ui-color-surface)}.ui-sidebar__desktop{border-right:var(--ui-border-width) solid var(--ui-color-border);display:grid;gap:var(--ui-space-5);grid-template-rows:auto 1fr auto auto;height:100%;padding:var(--ui-space-6)}.ui-sidebar__brand{align-items:center;display:grid;gap:var(--ui-space-3);grid-template-columns:auto minmax(0,1fr)}.ui-sidebar__mark{align-items:center;background:var(--ui-color-primary-strong);border-radius:var(--ui-radius-round);color:var(--ui-color-text-inverse);display:inline-flex;font-size:var(--ui-font-size-200);font-weight:var(--ui-font-weight-semibold);height:var(--ui-space-8);justify-content:center;width:var(--ui-space-8)}.ui-sidebar__brand-copy,.ui-sidebar__nav{display:grid;gap:var(--ui-space-2)}.ui-sidebar__list{display:grid;gap:var(--ui-space-2);list-style:none;margin:0;padding:0}.ui-sidebar__list-item{margin:0;padding:0}.ui-sidebar__mobile-nav{display:none}@media(max-width:72rem){.ui-sidebar__desktop{display:none}.ui-sidebar__mobile-nav{background:var(--ui-color-surface);border-top:var(--ui-border-width) solid var(--ui-color-border);bottom:0;display:block;left:0;padding-bottom:env(safe-area-inset-bottom);position:fixed;right:0;z-index:900}.ui-sidebar__mobile-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));height:var(--ui-layout-mobile-nav-height);list-style:none;margin:0;padding:0}.ui-sidebar__mobile-item{margin:0;padding:0}.ui-sidebar__mobile-link{align-items:center;background:transparent;border:0;color:var(--ui-color-text-muted);cursor:pointer;display:inline-flex;flex-direction:column;font-size:var(--ui-font-size-100);font-weight:var(--ui-font-weight-medium);gap:var(--ui-space-1);height:100%;justify-content:center;text-decoration:none;width:100%}.ui-sidebar__mobile-link--active{color:var(--ui-color-primary-strong)}.ui-sidebar__mobile-link--disabled{cursor:not-allowed;opacity:.45}.ui-sidebar__mobile-link:focus-visible{outline:.1875rem solid var(--ui-color-focus-ring);outline-offset:-.1875rem}.ui-sidebar__mobile-label{line-height:1}}\n"] }]
|
|
380
|
+
}], propDecorators: { brand: [{
|
|
381
|
+
type: Input
|
|
382
|
+
}], subtitle: [{
|
|
383
|
+
type: Input
|
|
384
|
+
}], userName: [{
|
|
385
|
+
type: Input
|
|
386
|
+
}], userRole: [{
|
|
387
|
+
type: Input
|
|
388
|
+
}], userInitials: [{
|
|
389
|
+
type: Input
|
|
390
|
+
}], items: [{
|
|
391
|
+
type: Input
|
|
392
|
+
}], navAriaLabel: [{
|
|
393
|
+
type: Input
|
|
394
|
+
}], mobileNavAriaLabel: [{
|
|
395
|
+
type: Input
|
|
396
|
+
}] } });
|
|
397
|
+
|
|
398
|
+
class StatsGridComponent {
|
|
399
|
+
items = [];
|
|
400
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: StatsGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
401
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.5", type: StatsGridComponent, isStandalone: true, selector: "ui-stats-grid", inputs: { items: "items" }, ngImport: i0, template: "<section class=\"ui-stats-grid\">\n @for (item of items; track item.label) {\n <ui-stat\n [label]=\"item.label\"\n [value]=\"item.value\"\n [description]=\"item.description ?? ''\"\n [tone]=\"item.tone ?? 'primary'\"\n ></ui-stat>\n }\n</section>\n", styles: [":host{display:block}.ui-stats-grid{display:grid;gap:var(--ui-space-5);grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:64rem){.ui-stats-grid{grid-template-columns:minmax(0,1fr)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: StatComponent, selector: "ui-stat", inputs: ["label", "value", "description", "tone"] }] });
|
|
402
|
+
}
|
|
403
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: StatsGridComponent, decorators: [{
|
|
404
|
+
type: Component,
|
|
405
|
+
args: [{ selector: 'ui-stats-grid', standalone: true, imports: [CommonModule, StatComponent], template: "<section class=\"ui-stats-grid\">\n @for (item of items; track item.label) {\n <ui-stat\n [label]=\"item.label\"\n [value]=\"item.value\"\n [description]=\"item.description ?? ''\"\n [tone]=\"item.tone ?? 'primary'\"\n ></ui-stat>\n }\n</section>\n", styles: [":host{display:block}.ui-stats-grid{display:grid;gap:var(--ui-space-5);grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:64rem){.ui-stats-grid{grid-template-columns:minmax(0,1fr)}}\n"] }]
|
|
406
|
+
}], propDecorators: { items: [{
|
|
407
|
+
type: Input
|
|
408
|
+
}] } });
|
|
409
|
+
|
|
410
|
+
class DashboardLayoutComponent {
|
|
411
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DashboardLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
412
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.5", type: DashboardLayoutComponent, isStandalone: true, selector: "ui-dashboard-layout", ngImport: i0, template: "<a class=\"ui-dashboard-layout__skip\" href=\"#ui-main-content\">Pular para conteudo principal</a>\n\n<div class=\"ui-dashboard-layout\">\n <aside class=\"ui-dashboard-layout__sidebar\">\n <ng-content select=\"[sidebar]\"></ng-content>\n </aside>\n\n <div class=\"ui-dashboard-layout__main\">\n <div class=\"ui-dashboard-layout__header\">\n <ng-content select=\"[header]\"></ng-content>\n </div>\n\n <main class=\"ui-dashboard-layout__content\" id=\"ui-main-content\" tabindex=\"-1\">\n <ng-content></ng-content>\n </main>\n </div>\n</div>\n", styles: [":host{display:block;min-height:100vh}.ui-dashboard-layout__skip{background:var(--ui-color-primary);border-radius:var(--ui-radius-md);color:var(--ui-color-text-inverse);left:var(--ui-space-4);padding:var(--ui-space-2) var(--ui-space-4);position:absolute;top:var(--ui-space-4);transform:translateY(-200%);z-index:1000}.ui-dashboard-layout__skip:focus-visible{outline:.1875rem solid var(--ui-color-focus-ring);outline-offset:.125rem;transform:translateY(0)}.ui-dashboard-layout{display:grid;grid-template-columns:var(--ui-layout-sidebar-width) minmax(0,1fr);min-height:100vh}.ui-dashboard-layout__main{display:grid;gap:var(--ui-space-6);max-width:var(--ui-layout-content-width);padding:var(--ui-space-7)}.ui-dashboard-layout__content{display:grid;gap:var(--ui-space-6)}@media(max-width:72rem){.ui-dashboard-layout{grid-template-columns:minmax(0,1fr)}.ui-dashboard-layout__main{padding:var(--ui-space-6);padding-bottom:calc(var(--ui-space-6) + var(--ui-layout-mobile-nav-height) + env(safe-area-inset-bottom))}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
413
|
+
}
|
|
414
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.5", ngImport: i0, type: DashboardLayoutComponent, decorators: [{
|
|
415
|
+
type: Component,
|
|
416
|
+
args: [{ selector: 'ui-dashboard-layout', standalone: true, imports: [CommonModule], template: "<a class=\"ui-dashboard-layout__skip\" href=\"#ui-main-content\">Pular para conteudo principal</a>\n\n<div class=\"ui-dashboard-layout\">\n <aside class=\"ui-dashboard-layout__sidebar\">\n <ng-content select=\"[sidebar]\"></ng-content>\n </aside>\n\n <div class=\"ui-dashboard-layout__main\">\n <div class=\"ui-dashboard-layout__header\">\n <ng-content select=\"[header]\"></ng-content>\n </div>\n\n <main class=\"ui-dashboard-layout__content\" id=\"ui-main-content\" tabindex=\"-1\">\n <ng-content></ng-content>\n </main>\n </div>\n</div>\n", styles: [":host{display:block;min-height:100vh}.ui-dashboard-layout__skip{background:var(--ui-color-primary);border-radius:var(--ui-radius-md);color:var(--ui-color-text-inverse);left:var(--ui-space-4);padding:var(--ui-space-2) var(--ui-space-4);position:absolute;top:var(--ui-space-4);transform:translateY(-200%);z-index:1000}.ui-dashboard-layout__skip:focus-visible{outline:.1875rem solid var(--ui-color-focus-ring);outline-offset:.125rem;transform:translateY(0)}.ui-dashboard-layout{display:grid;grid-template-columns:var(--ui-layout-sidebar-width) minmax(0,1fr);min-height:100vh}.ui-dashboard-layout__main{display:grid;gap:var(--ui-space-6);max-width:var(--ui-layout-content-width);padding:var(--ui-space-7)}.ui-dashboard-layout__content{display:grid;gap:var(--ui-space-6)}@media(max-width:72rem){.ui-dashboard-layout{grid-template-columns:minmax(0,1fr)}.ui-dashboard-layout__main{padding:var(--ui-space-6);padding-bottom:calc(var(--ui-space-6) + var(--ui-layout-mobile-nav-height) + env(safe-area-inset-bottom))}}\n"] }]
|
|
417
|
+
}] });
|
|
418
|
+
|
|
419
|
+
/**
|
|
420
|
+
* Generated bundle index. Do not edit.
|
|
421
|
+
*/
|
|
422
|
+
|
|
423
|
+
export { AgendaListComponent, AvatarComponent, BadgeComponent, ButtonComponent, DashboardLayoutComponent, DividerComponent, HeaderComponent, HeroCardComponent, IconComponent, ListItemComponent, MaterialsListComponent, NavItemComponent, SidebarComponent, StatComponent, StatsGridComponent, TextComponent, UserInfoComponent };
|
|
424
|
+
//# sourceMappingURL=senior-ease-ui.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"senior-ease-ui.mjs","sources":["../../../projects/ui/src/lib/atoms/avatar/component.ts","../../../projects/ui/src/lib/atoms/avatar/component.html","../../../projects/ui/src/lib/atoms/badge/component.ts","../../../projects/ui/src/lib/atoms/badge/component.html","../../../projects/ui/src/lib/atoms/button/component.ts","../../../projects/ui/src/lib/atoms/button/component.html","../../../projects/ui/src/lib/atoms/divider/component.ts","../../../projects/ui/src/lib/atoms/divider/component.html","../../../projects/ui/src/lib/atoms/icon/component.ts","../../../projects/ui/src/lib/atoms/icon/component.html","../../../projects/ui/src/lib/atoms/text/component.ts","../../../projects/ui/src/lib/atoms/text/component.html","../../../projects/ui/src/lib/molecules/list-item/component.ts","../../../projects/ui/src/lib/molecules/list-item/component.html","../../../projects/ui/src/lib/molecules/nav-item/component.ts","../../../projects/ui/src/lib/molecules/nav-item/component.html","../../../projects/ui/src/lib/molecules/stat/component.ts","../../../projects/ui/src/lib/molecules/stat/component.html","../../../projects/ui/src/lib/molecules/user-info/component.ts","../../../projects/ui/src/lib/molecules/user-info/component.html","../../../projects/ui/src/lib/organisms/agenda-list/component.ts","../../../projects/ui/src/lib/organisms/agenda-list/component.html","../../../projects/ui/src/lib/organisms/header/component.ts","../../../projects/ui/src/lib/organisms/header/component.html","../../../projects/ui/src/lib/organisms/hero-card/component.ts","../../../projects/ui/src/lib/organisms/hero-card/component.html","../../../projects/ui/src/lib/organisms/materials-list/component.ts","../../../projects/ui/src/lib/organisms/materials-list/component.html","../../../projects/ui/src/lib/organisms/sidebar/component.ts","../../../projects/ui/src/lib/organisms/sidebar/component.html","../../../projects/ui/src/lib/organisms/stats-grid/component.ts","../../../projects/ui/src/lib/organisms/stats-grid/component.html","../../../projects/ui/src/lib/templates/dashboard-layout/component.ts","../../../projects/ui/src/lib/templates/dashboard-layout/component.html","../../../projects/ui/src/senior-ease-ui.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nexport type AvatarSize = 'sm' | 'md' | 'lg';\nexport type AvatarTone = 'primary' | 'accent' | 'neutral';\n\n@Component({\n selector: 'ui-avatar',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './component.html',\n styleUrls: ['./component.scss'],\n})\nexport class AvatarComponent {\n @Input() initials = 'SE';\n @Input() size: AvatarSize = 'md';\n @Input() tone: AvatarTone = 'primary';\n @Input() ariaLabel = '';\n}\n","<span\n class=\"ui-avatar\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.role]=\"ariaLabel ? 'img' : null\"\n [class.ui-avatar--sm]=\"size === 'sm'\"\n [class.ui-avatar--lg]=\"size === 'lg'\"\n [class.ui-avatar--accent]=\"tone === 'accent'\"\n [class.ui-avatar--neutral]=\"tone === 'neutral'\"\n>\n <ng-content>{{ initials }}</ng-content>\n</span>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nexport type BadgeVariant = 'neutral' | 'primary' | 'success' | 'warning' | 'danger';\n\n@Component({\n selector: 'ui-badge',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './component.html',\n styleUrls: ['./component.scss'],\n})\nexport class BadgeComponent {\n @Input() label = '';\n @Input() variant: BadgeVariant = 'neutral';\n @Input() ariaLabel = '';\n}\n","<span\n class=\"ui-badge\"\n [attr.aria-label]=\"ariaLabel || null\"\n [class.ui-badge--primary]=\"variant === 'primary'\"\n [class.ui-badge--success]=\"variant === 'success'\"\n [class.ui-badge--warning]=\"variant === 'warning'\"\n [class.ui-badge--danger]=\"variant === 'danger'\"\n>\n <ng-content>{{ label }}</ng-content>\n</span>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'ghost';\nexport type ButtonSize = 'sm' | 'md' | 'lg';\n\n@Component({\n selector: 'ui-button',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './component.html',\n styleUrls: ['./component.scss'],\n})\nexport class ButtonComponent {\n @Input() label = '';\n @Input() variant: ButtonVariant = 'primary';\n @Input() size: ButtonSize = 'md';\n @Input() disabled = false;\n @Input() ariaLabel = '';\n @Input() ariaPressed: boolean | null = null;\n @Input() ariaExpanded: boolean | null = null;\n @Input() ariaControls = '';\n @Input() ariaDescribedBy = '';\n}\n","<button\n class=\"ui-button\"\n type=\"button\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-pressed]=\"ariaPressed\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-controls]=\"ariaControls || null\"\n [attr.aria-describedby]=\"ariaDescribedBy || null\"\n [class.ui-button--secondary]=\"variant === 'secondary'\"\n [class.ui-button--ghost]=\"variant === 'ghost'\"\n [class.ui-button--sm]=\"size === 'sm'\"\n [class.ui-button--lg]=\"size === 'lg'\"\n>\n <ng-content>{{ label }}</ng-content>\n</button>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nexport type DividerOrientation = 'horizontal' | 'vertical';\n\n@Component({\n selector: 'ui-divider',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './component.html',\n styleUrls: ['./component.scss'],\n})\nexport class DividerComponent {\n @Input() orientation: DividerOrientation = 'horizontal';\n @Input() ariaLabel = '';\n}\n","<span\n class=\"ui-divider\"\n [class.ui-divider--vertical]=\"orientation === 'vertical'\"\n [attr.role]=\"ariaLabel ? 'separator' : null\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-orientation]=\"orientation\"\n [attr.aria-hidden]=\"ariaLabel ? null : true\"\n></span>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { IconDefinition } from '@fortawesome/fontawesome-svg-core';\nimport {\n faBell,\n faBookOpen,\n faCalendarDay,\n faChartLine,\n faCheck,\n faClock,\n faEnvelope,\n faHouse,\n faUser,\n} from '@fortawesome/free-solid-svg-icons';\n\nexport type IconName =\n | 'bell'\n | 'book'\n | 'calendar'\n | 'chart'\n | 'check'\n | 'clock'\n | 'home'\n | 'message'\n | 'user';\nexport type IconValue = IconName | IconDefinition;\n\n@Component({\n selector: 'ui-icon',\n standalone: true,\n imports: [CommonModule, FontAwesomeModule],\n templateUrl: './component.html',\n styleUrls: ['./component.scss'],\n})\nexport class IconComponent {\n @Input() name: IconName = 'home';\n @Input() icon: IconDefinition | null = null;\n @Input() decorative = true;\n @Input() ariaLabel = '';\n\n protected readonly iconMap: Record<IconName, IconDefinition> = {\n bell: faBell,\n book: faBookOpen,\n calendar: faCalendarDay,\n chart: faChartLine,\n check: faCheck,\n clock: faClock,\n home: faHouse,\n message: faEnvelope,\n user: faUser,\n };\n\n protected get resolvedIcon(): IconDefinition {\n return this.icon ?? this.iconMap[nameOrFallback(this.name)];\n }\n}\n\nfunction nameOrFallback(name: IconName | null | undefined): IconName {\n return name ?? 'home';\n}\n","<span\n class=\"ui-icon\"\n [attr.role]=\"decorative ? null : 'img'\"\n [attr.aria-hidden]=\"decorative ? true : null\"\n [attr.aria-label]=\"decorative ? null : (ariaLabel || name)\"\n>\n <fa-icon [icon]=\"resolvedIcon\"></fa-icon>\n</span>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nexport type TextElement = 'span' | 'p' | 'h1' | 'h2' | 'h3';\nexport type TextTone = 'default' | 'muted' | 'primary';\nexport type TextWeight = 'regular' | 'medium' | 'semibold';\nexport type TextSize = 'sm' | 'md' | 'lg' | 'xl';\n\n@Component({\n selector: 'ui-text',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './component.html',\n styleUrls: ['./component.scss'],\n})\nexport class TextComponent {\n @Input() element: TextElement = 'span';\n @Input() tone: TextTone = 'default';\n @Input() weight: TextWeight = 'regular';\n @Input() size: TextSize = 'md';\n}\n","@switch (element) {\n @case ('p') {\n <p class=\"ui-text\" [attr.data-tone]=\"tone\" [attr.data-weight]=\"weight\" [attr.data-size]=\"size\">\n <ng-content></ng-content>\n </p>\n }\n @case ('h1') {\n <h1 class=\"ui-text\" [attr.data-tone]=\"tone\" [attr.data-weight]=\"weight\" [attr.data-size]=\"size\">\n <ng-content></ng-content>\n </h1>\n }\n @case ('h2') {\n <h2 class=\"ui-text\" [attr.data-tone]=\"tone\" [attr.data-weight]=\"weight\" [attr.data-size]=\"size\">\n <ng-content></ng-content>\n </h2>\n }\n @case ('h3') {\n <h3 class=\"ui-text\" [attr.data-tone]=\"tone\" [attr.data-weight]=\"weight\" [attr.data-size]=\"size\">\n <ng-content></ng-content>\n </h3>\n }\n @default {\n <span class=\"ui-text\" [attr.data-tone]=\"tone\" [attr.data-weight]=\"weight\" [attr.data-size]=\"size\">\n <ng-content></ng-content>\n </span>\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { BadgeComponent, BadgeVariant, IconComponent, IconName, TextComponent } from '../../atoms';\n\nexport interface ListItemData {\n title: string;\n description?: string;\n meta?: string;\n badgeLabel?: string;\n badgeVariant?: BadgeVariant;\n icon?: IconName;\n ariaLabel?: string;\n}\n\n@Component({\n selector: 'ui-list-item',\n standalone: true,\n imports: [CommonModule, BadgeComponent, IconComponent, TextComponent],\n templateUrl: './component.html',\n styleUrls: ['./component.scss'],\n})\nexport class ListItemComponent {\n @Input() title = '';\n @Input() description = '';\n @Input() meta = '';\n @Input() badgeLabel = '';\n @Input() badgeVariant: BadgeVariant = 'neutral';\n @Input() icon: IconName = 'calendar';\n @Input() ariaLabel = '';\n}\n","<article class=\"ui-list-item\" [attr.aria-label]=\"ariaLabel || null\">\n <span class=\"ui-list-item__icon\">\n <ui-icon [name]=\"icon\" aria-hidden=\"true\"></ui-icon>\n </span>\n\n <div class=\"ui-list-item__copy\">\n <ui-text element=\"span\" weight=\"semibold\">{{ title }}</ui-text>\n @if (description) {\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ description }}</ui-text>\n }\n </div>\n\n <div class=\"ui-list-item__meta\">\n @if (meta) {\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ meta }}</ui-text>\n }\n\n @if (badgeLabel) {\n <ui-badge [label]=\"badgeLabel\" [variant]=\"badgeVariant\"></ui-badge>\n }\n </div>\n</article>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { IconDefinition } from '@fortawesome/fontawesome-svg-core';\nimport { IconComponent, IconName, IconValue, TextComponent } from '../../atoms';\n\nexport interface NavItemData {\n label: string;\n icon?: IconValue;\n description?: string;\n active?: boolean;\n disabled?: boolean;\n ariaLabel?: string;\n path?: string | readonly string[];\n}\n\n@Component({\n selector: 'ui-nav-item',\n standalone: true,\n imports: [CommonModule, RouterLink, RouterLinkActive, IconComponent, TextComponent],\n templateUrl: './component.html',\n styleUrls: ['./component.scss'],\n})\nexport class NavItemComponent {\n @Input() label = '';\n @Input() icon: IconValue = 'home';\n @Input() description = '';\n @Input() active = false;\n @Input() disabled = false;\n @Input() ariaLabel = '';\n @Input() routerLink: string | readonly string[] | null = null;\n\n protected get iconName(): IconName {\n return typeof this.icon === 'string' ? this.icon : 'home';\n }\n\n protected get iconDefinition(): IconDefinition | null {\n return typeof this.icon === 'string' ? null : this.icon;\n }\n}\n","@if (routerLink && !disabled) {\n <a\n class=\"ui-nav-item\"\n [routerLink]=\"routerLink\"\n routerLinkActive=\"ui-nav-item--active\"\n [class.ui-nav-item--active]=\"active\"\n [attr.aria-current]=\"active ? 'page' : null\"\n [attr.aria-label]=\"ariaLabel || null\"\n >\n <span class=\"ui-nav-item__icon\">\n <ui-icon [name]=\"iconName\" [icon]=\"iconDefinition\" [decorative]=\"true\"></ui-icon>\n </span>\n\n <span class=\"ui-nav-item__copy\">\n <ui-text element=\"span\" weight=\"semibold\">{{ label }}</ui-text>\n @if (description) {\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ description }}</ui-text>\n }\n </span>\n </a>\n} @else {\n <button\n class=\"ui-nav-item\"\n type=\"button\"\n [disabled]=\"disabled\"\n [attr.aria-current]=\"active ? 'page' : null\"\n [attr.aria-label]=\"ariaLabel || null\"\n [class.ui-nav-item--active]=\"active\"\n [class.ui-nav-item--disabled]=\"disabled\"\n >\n <span class=\"ui-nav-item__icon\">\n <ui-icon [name]=\"iconName\" [icon]=\"iconDefinition\" [decorative]=\"true\"></ui-icon>\n </span>\n\n <span class=\"ui-nav-item__copy\">\n <ui-text element=\"span\" weight=\"semibold\">{{ label }}</ui-text>\n @if (description) {\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ description }}</ui-text>\n }\n </span>\n </button>\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { TextComponent } from '../../atoms';\n\nexport type StatTone = 'primary' | 'success' | 'warning';\n\nexport interface StatItem {\n label: string;\n value: string;\n description?: string;\n tone?: StatTone;\n}\n\n@Component({\n selector: 'ui-stat',\n standalone: true,\n imports: [CommonModule, TextComponent],\n templateUrl: './component.html',\n styleUrls: ['./component.scss'],\n})\nexport class StatComponent {\n @Input() label = '';\n @Input() value = '';\n @Input() description = '';\n @Input() tone: StatTone = 'primary';\n}\n","<article class=\"ui-stat\" [attr.data-tone]=\"tone\">\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ label }}</ui-text>\n <ui-text element=\"h3\" size=\"lg\" weight=\"semibold\">{{ value }}</ui-text>\n @if (description) {\n <ui-text element=\"p\" size=\"sm\" tone=\"muted\">{{ description }}</ui-text>\n }\n</article>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { AvatarComponent, AvatarSize, TextComponent } from '../../atoms';\n\n@Component({\n selector: 'ui-user-info',\n standalone: true,\n imports: [CommonModule, AvatarComponent, TextComponent],\n templateUrl: './component.html',\n styleUrls: ['./component.scss'],\n})\nexport class UserInfoComponent {\n @Input() name = '';\n @Input() role = '';\n @Input() initials = 'SE';\n @Input() size: AvatarSize = 'md';\n @Input() ariaLabel = '';\n}\n","<div class=\"ui-user-info\" [attr.aria-label]=\"ariaLabel || null\">\n <ui-avatar [initials]=\"initials\" [size]=\"size\" tone=\"neutral\" ariaLabel=\"Avatar do usuario\"></ui-avatar>\n\n <div class=\"ui-user-info__copy\">\n <ui-text element=\"span\" weight=\"semibold\">{{ name }}</ui-text>\n @if (role) {\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ role }}</ui-text>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { DividerComponent, TextComponent } from '../../atoms';\nimport { ListItemComponent, ListItemData } from '../../molecules';\n\n@Component({\n selector: 'ui-agenda-list',\n standalone: true,\n imports: [CommonModule, DividerComponent, ListItemComponent, TextComponent],\n templateUrl: './component.html',\n styleUrls: ['./component.scss'],\n})\nexport class AgendaListComponent {\n @Input() title = 'Agenda do dia';\n @Input() items: ListItemData[] = [];\n}\n","<section class=\"ui-panel\">\n <ui-text element=\"h3\" size=\"lg\" weight=\"semibold\">{{ title }}</ui-text>\n\n <div class=\"ui-panel__list\">\n @for (item of items; track item.title; let last = $last) {\n <ui-list-item\n [title]=\"item.title\"\n [description]=\"item.description ?? ''\"\n [meta]=\"item.meta ?? ''\"\n [badgeLabel]=\"item.badgeLabel ?? ''\"\n [badgeVariant]=\"item.badgeVariant ?? 'neutral'\"\n [icon]=\"item.icon ?? 'calendar'\"\n ></ui-list-item>\n\n @if (!last) {\n <ui-divider></ui-divider>\n }\n }\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { BadgeComponent, ButtonComponent, TextComponent } from '../../atoms';\n\n@Component({\n selector: 'ui-header',\n standalone: true,\n imports: [CommonModule, BadgeComponent, ButtonComponent, TextComponent],\n templateUrl: './component.html',\n styleUrls: ['./component.scss'],\n})\nexport class HeaderComponent {\n @Input() badgeLabel = '';\n @Input() title = '';\n @Input() subtitle = '';\n @Input() actionLabel = '';\n}\n","<header class=\"ui-header\">\n <div class=\"ui-header__copy\">\n @if (badgeLabel) {\n <ui-badge [label]=\"badgeLabel\" variant=\"primary\"></ui-badge>\n }\n\n <ui-text element=\"h1\" size=\"xl\" weight=\"semibold\">{{ title }}</ui-text>\n\n @if (subtitle) {\n <ui-text element=\"p\" tone=\"muted\">{{ subtitle }}</ui-text>\n }\n </div>\n\n @if (actionLabel) {\n <ui-button [label]=\"actionLabel\" [ariaLabel]=\"actionLabel\" variant=\"secondary\"></ui-button>\n }\n</header>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { BadgeComponent, ButtonComponent, TextComponent } from '../../atoms';\n\n@Component({\n selector: 'ui-hero-card',\n standalone: true,\n imports: [CommonModule, BadgeComponent, ButtonComponent, TextComponent],\n templateUrl: './component.html',\n styleUrls: ['./component.scss'],\n})\nexport class HeroCardComponent {\n @Input() eyebrow = '';\n @Input() title = '';\n @Input() description = '';\n @Input() primaryActionLabel = '';\n @Input() secondaryActionLabel = '';\n @Input() highlightLabel = '';\n @Input() highlightValue = '';\n}\n","<section class=\"ui-hero-card\">\n <div class=\"ui-hero-card__copy\">\n @if (eyebrow) {\n <ui-badge [label]=\"eyebrow\" variant=\"primary\"></ui-badge>\n }\n\n <ui-text element=\"h2\" size=\"xl\" weight=\"semibold\">{{ title }}</ui-text>\n\n @if (description) {\n <ui-text element=\"p\" tone=\"muted\">{{ description }}</ui-text>\n }\n\n <div class=\"ui-hero-card__actions\">\n @if (primaryActionLabel) {\n <ui-button [label]=\"primaryActionLabel\"></ui-button>\n }\n\n @if (secondaryActionLabel) {\n <ui-button [label]=\"secondaryActionLabel\" variant=\"ghost\"></ui-button>\n }\n </div>\n </div>\n\n <div class=\"ui-hero-card__highlight\">\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ highlightLabel }}</ui-text>\n <ui-text element=\"h3\" size=\"xl\" weight=\"semibold\">{{ highlightValue }}</ui-text>\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { DividerComponent, TextComponent } from '../../atoms';\nimport { ListItemComponent, ListItemData } from '../../molecules';\n\n@Component({\n selector: 'ui-materials-list',\n standalone: true,\n imports: [CommonModule, DividerComponent, ListItemComponent, TextComponent],\n templateUrl: './component.html',\n styleUrls: ['./component.scss'],\n})\nexport class MaterialsListComponent {\n @Input() title = 'Materiais recomendados';\n @Input() items: ListItemData[] = [];\n}\n","<section class=\"ui-panel\">\n <ui-text element=\"h3\" size=\"lg\" weight=\"semibold\">{{ title }}</ui-text>\n\n <div class=\"ui-panel__list\">\n @for (item of items; track item.title; let last = $last) {\n <ui-list-item\n [title]=\"item.title\"\n [description]=\"item.description ?? ''\"\n [meta]=\"item.meta ?? ''\"\n [badgeLabel]=\"item.badgeLabel ?? ''\"\n [badgeVariant]=\"item.badgeVariant ?? 'neutral'\"\n [icon]=\"item.icon ?? 'book'\"\n ></ui-list-item>\n\n @if (!last) {\n <ui-divider></ui-divider>\n }\n }\n </div>\n</section>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { IconDefinition } from '@fortawesome/fontawesome-svg-core';\nimport { DividerComponent, IconComponent, IconName, TextComponent } from '../../atoms';\nimport { NavItemComponent, NavItemData, UserInfoComponent } from '../../molecules';\n\n@Component({\n selector: 'ui-sidebar',\n standalone: true,\n imports: [\n CommonModule,\n RouterLink,\n RouterLinkActive,\n DividerComponent,\n IconComponent,\n NavItemComponent,\n TextComponent,\n UserInfoComponent,\n ],\n templateUrl: './component.html',\n styleUrls: ['./component.scss'],\n})\nexport class SidebarComponent {\n @Input() brand = 'Senior Ease';\n @Input() subtitle = 'Design System';\n @Input() userName = '';\n @Input() userRole = '';\n @Input() userInitials = 'SE';\n @Input() items: NavItemData[] = [];\n @Input() navAriaLabel = 'Navegacao principal';\n @Input() mobileNavAriaLabel = 'Navegacao inferior';\n\n protected iconName(item: NavItemData): IconName {\n return typeof item.icon === 'string' ? item.icon : 'home';\n }\n\n protected iconDefinition(item: NavItemData): IconDefinition | null {\n return typeof item.icon === 'string' || !item.icon ? null : item.icon;\n }\n}\n","<aside class=\"ui-sidebar ui-sidebar__desktop\">\n <div class=\"ui-sidebar__brand\">\n <span class=\"ui-sidebar__mark\">SE</span>\n <div class=\"ui-sidebar__brand-copy\">\n <ui-text element=\"span\" weight=\"semibold\">{{ brand }}</ui-text>\n <ui-text element=\"span\" size=\"sm\" tone=\"muted\">{{ subtitle }}</ui-text>\n </div>\n </div>\n\n <nav class=\"ui-sidebar__nav\" [attr.aria-label]=\"navAriaLabel\">\n <ul class=\"ui-sidebar__list\" role=\"list\">\n @for (item of items; track item.label) {\n <li class=\"ui-sidebar__list-item\">\n <ui-nav-item\n [label]=\"item.label\"\n [icon]=\"item.icon ?? 'home'\"\n [description]=\"item.description ?? ''\"\n [active]=\"item.active ?? false\"\n [disabled]=\"item.disabled ?? false\"\n [ariaLabel]=\"item.ariaLabel ?? item.label\"\n [routerLink]=\"item.path ?? null\"\n ></ui-nav-item>\n </li>\n }\n </ul>\n </nav>\n\n <ui-divider></ui-divider>\n\n <ui-user-info\n [name]=\"userName\"\n [role]=\"userRole\"\n [initials]=\"userInitials\"\n ariaLabel=\"Informacoes do usuario\"\n size=\"sm\"\n ></ui-user-info>\n</aside>\n\n<nav class=\"ui-sidebar__mobile-nav\" [attr.aria-label]=\"mobileNavAriaLabel\">\n <ul class=\"ui-sidebar__mobile-list\" role=\"list\">\n @for (item of items; track item.label) {\n <li class=\"ui-sidebar__mobile-item\">\n @if (!item.disabled && item.path) {\n <a\n class=\"ui-sidebar__mobile-link\"\n [routerLink]=\"item.path\"\n routerLinkActive=\"ui-sidebar__mobile-link--active\"\n [attr.aria-label]=\"item.ariaLabel ?? item.label\"\n >\n <ui-icon [name]=\"iconName(item)\" [icon]=\"iconDefinition(item)\" [decorative]=\"true\"></ui-icon>\n <span class=\"ui-sidebar__mobile-label\">{{ item.label }}</span>\n </a>\n } @else if (!item.disabled) {\n <button class=\"ui-sidebar__mobile-link\" type=\"button\" [attr.aria-label]=\"item.ariaLabel ?? item.label\">\n <ui-icon [name]=\"iconName(item)\" [icon]=\"iconDefinition(item)\" [decorative]=\"true\"></ui-icon>\n <span class=\"ui-sidebar__mobile-label\">{{ item.label }}</span>\n </button>\n } @else {\n <span class=\"ui-sidebar__mobile-link ui-sidebar__mobile-link--disabled\" [attr.aria-label]=\"item.label\">\n <ui-icon [name]=\"iconName(item)\" [icon]=\"iconDefinition(item)\" [decorative]=\"true\"></ui-icon>\n <span class=\"ui-sidebar__mobile-label\">{{ item.label }}</span>\n </span>\n }\n </li>\n }\n </ul>\n</nav>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { StatComponent, StatItem } from '../../molecules';\n\n@Component({\n selector: 'ui-stats-grid',\n standalone: true,\n imports: [CommonModule, StatComponent],\n templateUrl: './component.html',\n styleUrls: ['./component.scss'],\n})\nexport class StatsGridComponent {\n @Input() items: StatItem[] = [];\n}\n","<section class=\"ui-stats-grid\">\n @for (item of items; track item.label) {\n <ui-stat\n [label]=\"item.label\"\n [value]=\"item.value\"\n [description]=\"item.description ?? ''\"\n [tone]=\"item.tone ?? 'primary'\"\n ></ui-stat>\n }\n</section>\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'ui-dashboard-layout',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './component.html',\n styleUrls: ['./component.scss'],\n})\nexport class DashboardLayoutComponent {}\n","<a class=\"ui-dashboard-layout__skip\" href=\"#ui-main-content\">Pular para conteudo principal</a>\n\n<div class=\"ui-dashboard-layout\">\n <aside class=\"ui-dashboard-layout__sidebar\">\n <ng-content select=\"[sidebar]\"></ng-content>\n </aside>\n\n <div class=\"ui-dashboard-layout__main\">\n <div class=\"ui-dashboard-layout__header\">\n <ng-content select=\"[header]\"></ng-content>\n </div>\n\n <main class=\"ui-dashboard-layout__content\" id=\"ui-main-content\" tabindex=\"-1\">\n <ng-content></ng-content>\n </main>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@senior-ease/ui",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Senior Ease Angular Design System UI library (Atomic Design, standalone components, accessibility-first).",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"angular",
|
|
7
|
+
"design-system",
|
|
8
|
+
"ui",
|
|
9
|
+
"atomic-design",
|
|
10
|
+
"accessibility",
|
|
11
|
+
"storybook"
|
|
12
|
+
],
|
|
13
|
+
"author": "guidrop17",
|
|
14
|
+
"license": "",
|
|
15
|
+
"homepage": "https://github.com/guidrop17/ds-senior-ease#readme",
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "git+https://github.com/guidrop17/ds-senior-ease.git"
|
|
19
|
+
},
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/guidrop17/ds-senior-ease/issues"
|
|
22
|
+
},
|
|
23
|
+
"publishConfig": {
|
|
24
|
+
"access": "public"
|
|
25
|
+
},
|
|
26
|
+
"peerDependencies": {
|
|
27
|
+
"@angular/common": "^21.2.5",
|
|
28
|
+
"@angular/core": "^21.2.5",
|
|
29
|
+
"@fortawesome/angular-fontawesome": "^4.0.0",
|
|
30
|
+
"@fortawesome/fontawesome-svg-core": "^7.2.0",
|
|
31
|
+
"@fortawesome/free-solid-svg-icons": "^7.2.0"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"tslib": "^2.3.0"
|
|
35
|
+
},
|
|
36
|
+
"sideEffects": false,
|
|
37
|
+
"module": "fesm2022/senior-ease-ui.mjs",
|
|
38
|
+
"typings": "types/senior-ease-ui.d.ts",
|
|
39
|
+
"exports": {
|
|
40
|
+
"./package.json": {
|
|
41
|
+
"default": "./package.json"
|
|
42
|
+
},
|
|
43
|
+
".": {
|
|
44
|
+
"types": "./types/senior-ease-ui.d.ts",
|
|
45
|
+
"default": "./fesm2022/senior-ease-ui.mjs"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { IconDefinition } from '@fortawesome/fontawesome-svg-core';
|
|
3
|
+
|
|
4
|
+
type AvatarSize = 'sm' | 'md' | 'lg';
|
|
5
|
+
type AvatarTone = 'primary' | 'accent' | 'neutral';
|
|
6
|
+
declare class AvatarComponent {
|
|
7
|
+
initials: string;
|
|
8
|
+
size: AvatarSize;
|
|
9
|
+
tone: AvatarTone;
|
|
10
|
+
ariaLabel: string;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AvatarComponent, never>;
|
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AvatarComponent, "ui-avatar", never, { "initials": { "alias": "initials"; "required": false; }; "size": { "alias": "size"; "required": false; }; "tone": { "alias": "tone"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
type BadgeVariant = 'neutral' | 'primary' | 'success' | 'warning' | 'danger';
|
|
16
|
+
declare class BadgeComponent {
|
|
17
|
+
label: string;
|
|
18
|
+
variant: BadgeVariant;
|
|
19
|
+
ariaLabel: string;
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BadgeComponent, never>;
|
|
21
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BadgeComponent, "ui-badge", never, { "label": { "alias": "label"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
type ButtonVariant = 'primary' | 'secondary' | 'ghost';
|
|
25
|
+
type ButtonSize = 'sm' | 'md' | 'lg';
|
|
26
|
+
declare class ButtonComponent {
|
|
27
|
+
label: string;
|
|
28
|
+
variant: ButtonVariant;
|
|
29
|
+
size: ButtonSize;
|
|
30
|
+
disabled: boolean;
|
|
31
|
+
ariaLabel: string;
|
|
32
|
+
ariaPressed: boolean | null;
|
|
33
|
+
ariaExpanded: boolean | null;
|
|
34
|
+
ariaControls: string;
|
|
35
|
+
ariaDescribedBy: string;
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
|
|
37
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "ui-button", never, { "label": { "alias": "label"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaPressed": { "alias": "ariaPressed"; "required": false; }; "ariaExpanded": { "alias": "ariaExpanded"; "required": false; }; "ariaControls": { "alias": "ariaControls"; "required": false; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
type DividerOrientation = 'horizontal' | 'vertical';
|
|
41
|
+
declare class DividerComponent {
|
|
42
|
+
orientation: DividerOrientation;
|
|
43
|
+
ariaLabel: string;
|
|
44
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DividerComponent, never>;
|
|
45
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DividerComponent, "ui-divider", never, { "orientation": { "alias": "orientation"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, {}, never, never, true, never>;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
type IconName = 'bell' | 'book' | 'calendar' | 'chart' | 'check' | 'clock' | 'home' | 'message' | 'user';
|
|
49
|
+
type IconValue = IconName | IconDefinition;
|
|
50
|
+
declare class IconComponent {
|
|
51
|
+
name: IconName;
|
|
52
|
+
icon: IconDefinition | null;
|
|
53
|
+
decorative: boolean;
|
|
54
|
+
ariaLabel: string;
|
|
55
|
+
protected readonly iconMap: Record<IconName, IconDefinition>;
|
|
56
|
+
protected get resolvedIcon(): IconDefinition;
|
|
57
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IconComponent, never>;
|
|
58
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IconComponent, "ui-icon", never, { "name": { "alias": "name"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "decorative": { "alias": "decorative"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, {}, never, never, true, never>;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
type TextElement = 'span' | 'p' | 'h1' | 'h2' | 'h3';
|
|
62
|
+
type TextTone = 'default' | 'muted' | 'primary';
|
|
63
|
+
type TextWeight = 'regular' | 'medium' | 'semibold';
|
|
64
|
+
type TextSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
65
|
+
declare class TextComponent {
|
|
66
|
+
element: TextElement;
|
|
67
|
+
tone: TextTone;
|
|
68
|
+
weight: TextWeight;
|
|
69
|
+
size: TextSize;
|
|
70
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TextComponent, never>;
|
|
71
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TextComponent, "ui-text", never, { "element": { "alias": "element"; "required": false; }; "tone": { "alias": "tone"; "required": false; }; "weight": { "alias": "weight"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, ["*", "*", "*", "*", "*"], true, never>;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
interface ListItemData {
|
|
75
|
+
title: string;
|
|
76
|
+
description?: string;
|
|
77
|
+
meta?: string;
|
|
78
|
+
badgeLabel?: string;
|
|
79
|
+
badgeVariant?: BadgeVariant;
|
|
80
|
+
icon?: IconName;
|
|
81
|
+
ariaLabel?: string;
|
|
82
|
+
}
|
|
83
|
+
declare class ListItemComponent {
|
|
84
|
+
title: string;
|
|
85
|
+
description: string;
|
|
86
|
+
meta: string;
|
|
87
|
+
badgeLabel: string;
|
|
88
|
+
badgeVariant: BadgeVariant;
|
|
89
|
+
icon: IconName;
|
|
90
|
+
ariaLabel: string;
|
|
91
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ListItemComponent, never>;
|
|
92
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ListItemComponent, "ui-list-item", never, { "title": { "alias": "title"; "required": false; }; "description": { "alias": "description"; "required": false; }; "meta": { "alias": "meta"; "required": false; }; "badgeLabel": { "alias": "badgeLabel"; "required": false; }; "badgeVariant": { "alias": "badgeVariant"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, {}, never, never, true, never>;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
interface NavItemData {
|
|
96
|
+
label: string;
|
|
97
|
+
icon?: IconValue;
|
|
98
|
+
description?: string;
|
|
99
|
+
active?: boolean;
|
|
100
|
+
disabled?: boolean;
|
|
101
|
+
ariaLabel?: string;
|
|
102
|
+
path?: string | readonly string[];
|
|
103
|
+
}
|
|
104
|
+
declare class NavItemComponent {
|
|
105
|
+
label: string;
|
|
106
|
+
icon: IconValue;
|
|
107
|
+
description: string;
|
|
108
|
+
active: boolean;
|
|
109
|
+
disabled: boolean;
|
|
110
|
+
ariaLabel: string;
|
|
111
|
+
routerLink: string | readonly string[] | null;
|
|
112
|
+
protected get iconName(): IconName;
|
|
113
|
+
protected get iconDefinition(): IconDefinition | null;
|
|
114
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NavItemComponent, never>;
|
|
115
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NavItemComponent, "ui-nav-item", never, { "label": { "alias": "label"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "description": { "alias": "description"; "required": false; }; "active": { "alias": "active"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "routerLink": { "alias": "routerLink"; "required": false; }; }, {}, never, never, true, never>;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
type StatTone = 'primary' | 'success' | 'warning';
|
|
119
|
+
interface StatItem {
|
|
120
|
+
label: string;
|
|
121
|
+
value: string;
|
|
122
|
+
description?: string;
|
|
123
|
+
tone?: StatTone;
|
|
124
|
+
}
|
|
125
|
+
declare class StatComponent {
|
|
126
|
+
label: string;
|
|
127
|
+
value: string;
|
|
128
|
+
description: string;
|
|
129
|
+
tone: StatTone;
|
|
130
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StatComponent, never>;
|
|
131
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StatComponent, "ui-stat", never, { "label": { "alias": "label"; "required": false; }; "value": { "alias": "value"; "required": false; }; "description": { "alias": "description"; "required": false; }; "tone": { "alias": "tone"; "required": false; }; }, {}, never, never, true, never>;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
declare class UserInfoComponent {
|
|
135
|
+
name: string;
|
|
136
|
+
role: string;
|
|
137
|
+
initials: string;
|
|
138
|
+
size: AvatarSize;
|
|
139
|
+
ariaLabel: string;
|
|
140
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UserInfoComponent, never>;
|
|
141
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UserInfoComponent, "ui-user-info", never, { "name": { "alias": "name"; "required": false; }; "role": { "alias": "role"; "required": false; }; "initials": { "alias": "initials"; "required": false; }; "size": { "alias": "size"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, {}, never, never, true, never>;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
declare class AgendaListComponent {
|
|
145
|
+
title: string;
|
|
146
|
+
items: ListItemData[];
|
|
147
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AgendaListComponent, never>;
|
|
148
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AgendaListComponent, "ui-agenda-list", never, { "title": { "alias": "title"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, {}, never, never, true, never>;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
declare class HeaderComponent {
|
|
152
|
+
badgeLabel: string;
|
|
153
|
+
title: string;
|
|
154
|
+
subtitle: string;
|
|
155
|
+
actionLabel: string;
|
|
156
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HeaderComponent, never>;
|
|
157
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<HeaderComponent, "ui-header", never, { "badgeLabel": { "alias": "badgeLabel"; "required": false; }; "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "actionLabel": { "alias": "actionLabel"; "required": false; }; }, {}, never, never, true, never>;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
declare class HeroCardComponent {
|
|
161
|
+
eyebrow: string;
|
|
162
|
+
title: string;
|
|
163
|
+
description: string;
|
|
164
|
+
primaryActionLabel: string;
|
|
165
|
+
secondaryActionLabel: string;
|
|
166
|
+
highlightLabel: string;
|
|
167
|
+
highlightValue: string;
|
|
168
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HeroCardComponent, never>;
|
|
169
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<HeroCardComponent, "ui-hero-card", never, { "eyebrow": { "alias": "eyebrow"; "required": false; }; "title": { "alias": "title"; "required": false; }; "description": { "alias": "description"; "required": false; }; "primaryActionLabel": { "alias": "primaryActionLabel"; "required": false; }; "secondaryActionLabel": { "alias": "secondaryActionLabel"; "required": false; }; "highlightLabel": { "alias": "highlightLabel"; "required": false; }; "highlightValue": { "alias": "highlightValue"; "required": false; }; }, {}, never, never, true, never>;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
declare class MaterialsListComponent {
|
|
173
|
+
title: string;
|
|
174
|
+
items: ListItemData[];
|
|
175
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MaterialsListComponent, never>;
|
|
176
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MaterialsListComponent, "ui-materials-list", never, { "title": { "alias": "title"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, {}, never, never, true, never>;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
declare class SidebarComponent {
|
|
180
|
+
brand: string;
|
|
181
|
+
subtitle: string;
|
|
182
|
+
userName: string;
|
|
183
|
+
userRole: string;
|
|
184
|
+
userInitials: string;
|
|
185
|
+
items: NavItemData[];
|
|
186
|
+
navAriaLabel: string;
|
|
187
|
+
mobileNavAriaLabel: string;
|
|
188
|
+
protected iconName(item: NavItemData): IconName;
|
|
189
|
+
protected iconDefinition(item: NavItemData): IconDefinition | null;
|
|
190
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SidebarComponent, never>;
|
|
191
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SidebarComponent, "ui-sidebar", never, { "brand": { "alias": "brand"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "userName": { "alias": "userName"; "required": false; }; "userRole": { "alias": "userRole"; "required": false; }; "userInitials": { "alias": "userInitials"; "required": false; }; "items": { "alias": "items"; "required": false; }; "navAriaLabel": { "alias": "navAriaLabel"; "required": false; }; "mobileNavAriaLabel": { "alias": "mobileNavAriaLabel"; "required": false; }; }, {}, never, never, true, never>;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
declare class StatsGridComponent {
|
|
195
|
+
items: StatItem[];
|
|
196
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StatsGridComponent, never>;
|
|
197
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StatsGridComponent, "ui-stats-grid", never, { "items": { "alias": "items"; "required": false; }; }, {}, never, never, true, never>;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
declare class DashboardLayoutComponent {
|
|
201
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DashboardLayoutComponent, never>;
|
|
202
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DashboardLayoutComponent, "ui-dashboard-layout", never, {}, {}, never, ["[sidebar]", "[header]", "*"], true, never>;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
export { AgendaListComponent, AvatarComponent, BadgeComponent, ButtonComponent, DashboardLayoutComponent, DividerComponent, HeaderComponent, HeroCardComponent, IconComponent, ListItemComponent, MaterialsListComponent, NavItemComponent, SidebarComponent, StatComponent, StatsGridComponent, TextComponent, UserInfoComponent };
|
|
206
|
+
export type { AvatarSize, AvatarTone, BadgeVariant, ButtonSize, ButtonVariant, DividerOrientation, IconName, IconValue, ListItemData, NavItemData, StatItem, StatTone, TextElement, TextSize, TextTone, TextWeight };
|