@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 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 };