@schenkerjon/ng-govbr-tw 0.0.1

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.
Files changed (32) hide show
  1. package/README.md +24 -0
  2. package/esm2022/lib/components/badge/br-badge.component.mjs +42 -0
  3. package/esm2022/lib/components/button/br-button.component.mjs +93 -0
  4. package/esm2022/lib/components/card/br-card.component.mjs +65 -0
  5. package/esm2022/lib/components/footer/br-footer.component.mjs +56 -0
  6. package/esm2022/lib/components/header/br-header.component.mjs +133 -0
  7. package/esm2022/lib/components/input/br-input.component.mjs +219 -0
  8. package/esm2022/lib/components/layout/br-layout.component.mjs +54 -0
  9. package/esm2022/lib/components/menu/br-menu-item.component.mjs +49 -0
  10. package/esm2022/lib/components/menu/br-menu.component.mjs +26 -0
  11. package/esm2022/lib/components/message/br-message.component.mjs +90 -0
  12. package/esm2022/lib/components/table/br-table.component.mjs +143 -0
  13. package/esm2022/public-api.mjs +16 -0
  14. package/esm2022/schenkerjon-ng-govbr-tw.mjs +5 -0
  15. package/fesm2022/schenkerjon-ng-govbr-tw.mjs +943 -0
  16. package/fesm2022/schenkerjon-ng-govbr-tw.mjs.map +1 -0
  17. package/index.d.ts +5 -0
  18. package/lib/components/badge/br-badge.component.d.ts +7 -0
  19. package/lib/components/button/br-button.component.d.ts +17 -0
  20. package/lib/components/card/br-card.component.d.ts +8 -0
  21. package/lib/components/footer/br-footer.component.d.ts +6 -0
  22. package/lib/components/header/br-header.component.d.ts +13 -0
  23. package/lib/components/input/br-input.component.d.ts +28 -0
  24. package/lib/components/layout/br-layout.component.d.ts +5 -0
  25. package/lib/components/menu/br-menu-item.component.d.ts +8 -0
  26. package/lib/components/menu/br-menu.component.d.ts +5 -0
  27. package/lib/components/message/br-message.component.d.ts +13 -0
  28. package/lib/components/table/br-table.component.d.ts +12 -0
  29. package/package.json +43 -0
  30. package/public-api.d.ts +11 -0
  31. package/src/lib/styles/govbr-tw.css +71 -0
  32. package/tailwind.preset.js +54 -0
package/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # GovbrTw
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.3.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project ng-govbr-tw` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ng-govbr-tw`.
8
+ > Note: Don't forget to add `--project ng-govbr-tw` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build ng-govbr-tw` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build ng-govbr-tw`, go to the dist folder `cd dist/ng-govbr-tw` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test ng-govbr-tw` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -0,0 +1,42 @@
1
+ import { Component, Input, ViewEncapsulation } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ export class BrBadgeComponent {
5
+ constructor() {
6
+ this.variant = 'primary';
7
+ }
8
+ get badgeClasses() {
9
+ const base = 'inline-flex items-center px-2.5 py-0.5 rounded-govbr-pill text-xs font-semibold font-rawline';
10
+ const variants = {
11
+ primary: 'bg-govbr-primary text-white',
12
+ success: 'bg-govbr-success text-white',
13
+ danger: 'bg-govbr-danger text-white',
14
+ warning: 'bg-govbr-warning-bg text-govbr-gray-80',
15
+ neutral: 'bg-govbr-gray-5 text-govbr-gray-80',
16
+ };
17
+ return `${base} ${variants[this.variant]}`;
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BrBadgeComponent, isStandalone: true, selector: "br-badge", inputs: { variant: "variant" }, ngImport: i0, template: `
21
+ <span [class]="badgeClasses">
22
+ <ng-content></ng-content>
23
+ </span>
24
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], encapsulation: i0.ViewEncapsulation.None }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrBadgeComponent, decorators: [{
27
+ type: Component,
28
+ args: [{
29
+ selector: 'br-badge',
30
+ standalone: true,
31
+ imports: [CommonModule],
32
+ encapsulation: ViewEncapsulation.None,
33
+ template: `
34
+ <span [class]="badgeClasses">
35
+ <ng-content></ng-content>
36
+ </span>
37
+ `,
38
+ }]
39
+ }], propDecorators: { variant: [{
40
+ type: Input
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnItYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZ292YnItdHcvc3JjL2xpYi9jb21wb25lbnRzL2JhZGdlL2JyLWJhZGdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBYS9DLE1BQU0sT0FBTyxnQkFBZ0I7SUFYN0I7UUFZVyxZQUFPLEdBQTZELFNBQVMsQ0FBQztLQWV4RjtJQWJDLElBQUksWUFBWTtRQUNkLE1BQU0sSUFBSSxHQUFHLDhGQUE4RixDQUFDO1FBRTVHLE1BQU0sUUFBUSxHQUEyQjtZQUN2QyxPQUFPLEVBQUUsNkJBQTZCO1lBQ3RDLE9BQU8sRUFBRSw2QkFBNkI7WUFDdEMsTUFBTSxFQUFFLDRCQUE0QjtZQUNwQyxPQUFPLEVBQUUsd0NBQXdDO1lBQ2pELE9BQU8sRUFBRSxvQ0FBb0M7U0FDOUMsQ0FBQztRQUVGLE9BQU8sR0FBRyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzdDLENBQUM7K0dBZlUsZ0JBQWdCO21HQUFoQixnQkFBZ0Isb0dBTmpCOzs7O0dBSVQsMkRBTlMsWUFBWTs7NEZBUVgsZ0JBQWdCO2tCQVg1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO29CQUNwQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsUUFBUSxFQUFFOzs7O0dBSVQ7aUJBQ0Y7OEJBRVUsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JyLWJhZGdlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHNwYW4gW2NsYXNzXT1cImJhZGdlQ2xhc3Nlc1wiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvc3Bhbj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQnJCYWRnZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHZhcmlhbnQ6ICdwcmltYXJ5JyB8ICdzdWNjZXNzJyB8ICdkYW5nZXInIHwgJ3dhcm5pbmcnIHwgJ25ldXRyYWwnID0gJ3ByaW1hcnknO1xuXG4gIGdldCBiYWRnZUNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlID0gJ2lubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBweC0yLjUgcHktMC41IHJvdW5kZWQtZ292YnItcGlsbCB0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgZm9udC1yYXdsaW5lJztcblxuICAgIGNvbnN0IHZhcmlhbnRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgcHJpbWFyeTogJ2JnLWdvdmJyLXByaW1hcnkgdGV4dC13aGl0ZScsXG4gICAgICBzdWNjZXNzOiAnYmctZ292YnItc3VjY2VzcyB0ZXh0LXdoaXRlJyxcbiAgICAgIGRhbmdlcjogJ2JnLWdvdmJyLWRhbmdlciB0ZXh0LXdoaXRlJyxcbiAgICAgIHdhcm5pbmc6ICdiZy1nb3Zici13YXJuaW5nLWJnIHRleHQtZ292YnItZ3JheS04MCcsXG4gICAgICBuZXV0cmFsOiAnYmctZ292YnItZ3JheS01IHRleHQtZ292YnItZ3JheS04MCcsXG4gICAgfTtcblxuICAgIHJldHVybiBgJHtiYXNlfSAke3ZhcmlhbnRzW3RoaXMudmFyaWFudF19YDtcbiAgfVxufVxuIl19
@@ -0,0 +1,93 @@
1
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class BrButtonComponent {
6
+ constructor() {
7
+ this.variant = 'primary';
8
+ this.size = 'medium';
9
+ this.type = 'button';
10
+ this.circle = false;
11
+ this.block = false;
12
+ this.loading = false;
13
+ this.disabled = false;
14
+ this.onClick = new EventEmitter();
15
+ }
16
+ get buttonClasses() {
17
+ const base = 'inline-flex items-center justify-center font-rawline font-semibold transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2';
18
+ const variants = {
19
+ primary: 'bg-govbr-primary text-white hover:bg-govbr-primary-dark focus:ring-govbr-primary',
20
+ secondary: 'bg-transparent text-govbr-primary border border-govbr-primary hover:bg-govbr-primary hover:text-white focus:ring-govbr-primary',
21
+ danger: 'bg-govbr-danger text-white hover:bg-red-700 focus:ring-govbr-danger',
22
+ };
23
+ const sizes = {
24
+ small: this.circle ? 'w-8 h-8 text-sm' : 'px-3 py-1.5 text-sm',
25
+ medium: this.circle ? 'w-10 h-10 text-base' : 'px-5 py-2 text-base',
26
+ large: this.circle ? 'w-12 h-12 text-lg' : 'px-7 py-3 text-lg',
27
+ };
28
+ const shape = this.circle ? 'rounded-full' : 'rounded-govbr-pill';
29
+ const width = this.block ? 'w-full' : '';
30
+ const disabledCls = this.disabled || this.loading ? 'opacity-50 cursor-not-allowed' : 'cursor-pointer';
31
+ return [base, variants[this.variant], sizes[this.size], shape, width, disabledCls]
32
+ .filter(Boolean)
33
+ .join(' ');
34
+ }
35
+ handleClick(event) {
36
+ if (!this.disabled && !this.loading) {
37
+ this.onClick.emit(event);
38
+ }
39
+ }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
41
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BrButtonComponent, isStandalone: true, selector: "br-button", inputs: { variant: "variant", size: "size", type: "type", circle: "circle", block: "block", icon: "icon", loading: "loading", disabled: "disabled" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
42
+ <button
43
+ [type]="type"
44
+ [disabled]="disabled || loading"
45
+ [class]="buttonClasses"
46
+ (click)="handleClick($event)"
47
+ >
48
+ <i *ngIf="loading" class="fa-solid fa-spinner fa-spin mr-2"></i>
49
+ <i *ngIf="icon && !loading" [class]="'fa-solid fa-' + icon + (circle ? '' : ' mr-2')"></i>
50
+ <span *ngIf="!circle"><ng-content></ng-content></span>
51
+ </button>
52
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
53
+ }
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrButtonComponent, decorators: [{
55
+ type: Component,
56
+ args: [{
57
+ selector: 'br-button',
58
+ standalone: true,
59
+ imports: [CommonModule],
60
+ encapsulation: ViewEncapsulation.None,
61
+ template: `
62
+ <button
63
+ [type]="type"
64
+ [disabled]="disabled || loading"
65
+ [class]="buttonClasses"
66
+ (click)="handleClick($event)"
67
+ >
68
+ <i *ngIf="loading" class="fa-solid fa-spinner fa-spin mr-2"></i>
69
+ <i *ngIf="icon && !loading" [class]="'fa-solid fa-' + icon + (circle ? '' : ' mr-2')"></i>
70
+ <span *ngIf="!circle"><ng-content></ng-content></span>
71
+ </button>
72
+ `,
73
+ }]
74
+ }], propDecorators: { variant: [{
75
+ type: Input
76
+ }], size: [{
77
+ type: Input
78
+ }], type: [{
79
+ type: Input
80
+ }], circle: [{
81
+ type: Input
82
+ }], block: [{
83
+ type: Input
84
+ }], icon: [{
85
+ type: Input
86
+ }], loading: [{
87
+ type: Input
88
+ }], disabled: [{
89
+ type: Input
90
+ }], onClick: [{
91
+ type: Output
92
+ }] } });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnItYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWdvdmJyLXR3L3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnItYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBb0IvQyxNQUFNLE9BQU8saUJBQWlCO0lBbEI5QjtRQW1CVyxZQUFPLEdBQXVDLFNBQVMsQ0FBQztRQUN4RCxTQUFJLEdBQWlDLFFBQVEsQ0FBQztRQUM5QyxTQUFJLEdBQWtDLFFBQVEsQ0FBQztRQUMvQyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUVkLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNoQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztLQW1DcEQ7SUFqQ0MsSUFBSSxhQUFhO1FBQ2YsTUFBTSxJQUFJLEdBQ1IsdUpBQXVKLENBQUM7UUFFMUosTUFBTSxRQUFRLEdBQTJCO1lBQ3ZDLE9BQU8sRUFDTCxrRkFBa0Y7WUFDcEYsU0FBUyxFQUNQLGdJQUFnSTtZQUNsSSxNQUFNLEVBQ0oscUVBQXFFO1NBQ3hFLENBQUM7UUFFRixNQUFNLEtBQUssR0FBMkI7WUFDcEMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxxQkFBcUI7WUFDOUQsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxxQkFBcUI7WUFDbkUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxtQkFBbUI7U0FDL0QsQ0FBQztRQUVGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7UUFDbEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7UUFFdkcsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUM7YUFDL0UsTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBaUI7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7K0dBM0NVLGlCQUFpQjttR0FBakIsaUJBQWlCLDRQQWJsQjs7Ozs7Ozs7Ozs7R0FXVCwyREFiUyxZQUFZOzs0RkFlWCxpQkFBaUI7a0JBbEI3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsUUFBUSxFQUFFOzs7Ozs7Ozs7OztHQVdUO2lCQUNGOzhCQUVVLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JyLWJ1dHRvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxidXR0b25cbiAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGxvYWRpbmdcIlxuICAgICAgW2NsYXNzXT1cImJ1dHRvbkNsYXNzZXNcIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIlxuICAgID5cbiAgICAgIDxpICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwiZmEtc29saWQgZmEtc3Bpbm5lciBmYS1zcGluIG1yLTJcIj48L2k+XG4gICAgICA8aSAqbmdJZj1cImljb24gJiYgIWxvYWRpbmdcIiBbY2xhc3NdPVwiJ2ZhLXNvbGlkIGZhLScgKyBpY29uICsgKGNpcmNsZSA/ICcnIDogJyBtci0yJylcIj48L2k+XG4gICAgICA8c3BhbiAqbmdJZj1cIiFjaXJjbGVcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBCckJ1dHRvbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHZhcmlhbnQ6ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ2RhbmdlcicgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIHNpemU6ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgPSAnbWVkaXVtJztcbiAgQElucHV0KCkgdHlwZTogJ2J1dHRvbicgfCAnc3VibWl0JyB8ICdyZXNldCcgPSAnYnV0dG9uJztcbiAgQElucHV0KCkgY2lyY2xlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGJsb2NrID0gZmFsc2U7XG4gIEBJbnB1dCgpIGljb24/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQE91dHB1dCgpIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgZ2V0IGJ1dHRvbkNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlID1cbiAgICAgICdpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZm9udC1yYXdsaW5lIGZvbnQtc2VtaWJvbGQgdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMjAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1vZmZzZXQtMic7XG5cbiAgICBjb25zdCB2YXJpYW50czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIHByaW1hcnk6XG4gICAgICAgICdiZy1nb3Zici1wcmltYXJ5IHRleHQtd2hpdGUgaG92ZXI6YmctZ292YnItcHJpbWFyeS1kYXJrIGZvY3VzOnJpbmctZ292YnItcHJpbWFyeScsXG4gICAgICBzZWNvbmRhcnk6XG4gICAgICAgICdiZy10cmFuc3BhcmVudCB0ZXh0LWdvdmJyLXByaW1hcnkgYm9yZGVyIGJvcmRlci1nb3Zici1wcmltYXJ5IGhvdmVyOmJnLWdvdmJyLXByaW1hcnkgaG92ZXI6dGV4dC13aGl0ZSBmb2N1czpyaW5nLWdvdmJyLXByaW1hcnknLFxuICAgICAgZGFuZ2VyOlxuICAgICAgICAnYmctZ292YnItZGFuZ2VyIHRleHQtd2hpdGUgaG92ZXI6YmctcmVkLTcwMCBmb2N1czpyaW5nLWdvdmJyLWRhbmdlcicsXG4gICAgfTtcblxuICAgIGNvbnN0IHNpemVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgc21hbGw6IHRoaXMuY2lyY2xlID8gJ3ctOCBoLTggdGV4dC1zbScgOiAncHgtMyBweS0xLjUgdGV4dC1zbScsXG4gICAgICBtZWRpdW06IHRoaXMuY2lyY2xlID8gJ3ctMTAgaC0xMCB0ZXh0LWJhc2UnIDogJ3B4LTUgcHktMiB0ZXh0LWJhc2UnLFxuICAgICAgbGFyZ2U6IHRoaXMuY2lyY2xlID8gJ3ctMTIgaC0xMiB0ZXh0LWxnJyA6ICdweC03IHB5LTMgdGV4dC1sZycsXG4gICAgfTtcblxuICAgIGNvbnN0IHNoYXBlID0gdGhpcy5jaXJjbGUgPyAncm91bmRlZC1mdWxsJyA6ICdyb3VuZGVkLWdvdmJyLXBpbGwnO1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5ibG9jayA/ICd3LWZ1bGwnIDogJyc7XG4gICAgY29uc3QgZGlzYWJsZWRDbHMgPSB0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZyA/ICdvcGFjaXR5LTUwIGN1cnNvci1ub3QtYWxsb3dlZCcgOiAnY3Vyc29yLXBvaW50ZXInO1xuXG4gICAgcmV0dXJuIFtiYXNlLCB2YXJpYW50c1t0aGlzLnZhcmlhbnRdLCBzaXplc1t0aGlzLnNpemVdLCBzaGFwZSwgd2lkdGgsIGRpc2FibGVkQ2xzXVxuICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGhhbmRsZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHRoaXMub25DbGljay5lbWl0KGV2ZW50KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,65 @@
1
+ import { Component, Input, ViewEncapsulation } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { RouterModule } from '@angular/router';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/router";
7
+ export class BrCardComponent {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BrCardComponent, isStandalone: true, selector: "br-card", inputs: { icon: "icon", linkText: "linkText", linkRoute: "linkRoute" }, ngImport: i0, template: `
10
+ <div class="bg-white rounded border border-govbr-gray-5 shadow-sm hover:shadow-md transition-shadow font-rawline overflow-hidden">
11
+ <div class="p-6">
12
+ <div *ngIf="icon" class="mb-3">
13
+ <i [class]="'fa-solid fa-' + icon + ' text-govbr-primary text-2xl'"></i>
14
+ </div>
15
+ <ng-content></ng-content>
16
+ </div>
17
+ <div *ngIf="linkText" class="px-6 pb-4">
18
+ <a
19
+ *ngIf="linkRoute"
20
+ [routerLink]="linkRoute"
21
+ class="text-govbr-primary text-sm font-semibold hover:underline inline-flex items-center"
22
+ >
23
+ {{ linkText }}
24
+ <i class="fa-solid fa-arrow-right ml-1 text-xs"></i>
25
+ </a>
26
+ </div>
27
+ </div>
28
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], encapsulation: i0.ViewEncapsulation.None }); }
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrCardComponent, decorators: [{
31
+ type: Component,
32
+ args: [{
33
+ selector: 'br-card',
34
+ standalone: true,
35
+ imports: [CommonModule, RouterModule],
36
+ encapsulation: ViewEncapsulation.None,
37
+ template: `
38
+ <div class="bg-white rounded border border-govbr-gray-5 shadow-sm hover:shadow-md transition-shadow font-rawline overflow-hidden">
39
+ <div class="p-6">
40
+ <div *ngIf="icon" class="mb-3">
41
+ <i [class]="'fa-solid fa-' + icon + ' text-govbr-primary text-2xl'"></i>
42
+ </div>
43
+ <ng-content></ng-content>
44
+ </div>
45
+ <div *ngIf="linkText" class="px-6 pb-4">
46
+ <a
47
+ *ngIf="linkRoute"
48
+ [routerLink]="linkRoute"
49
+ class="text-govbr-primary text-sm font-semibold hover:underline inline-flex items-center"
50
+ >
51
+ {{ linkText }}
52
+ <i class="fa-solid fa-arrow-right ml-1 text-xs"></i>
53
+ </a>
54
+ </div>
55
+ </div>
56
+ `,
57
+ }]
58
+ }], propDecorators: { icon: [{
59
+ type: Input
60
+ }], linkText: [{
61
+ type: Input
62
+ }], linkRoute: [{
63
+ type: Input
64
+ }] } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnItY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1nb3Zici10dy9zcmMvbGliL2NvbXBvbmVudHMvY2FyZC9ici1jYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBNEIvQyxNQUFNLE9BQU8sZUFBZTsrR0FBZixlQUFlO21HQUFmLGVBQWUsMklBckJoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CVCwyREFyQlMsWUFBWSxrSUFBRSxZQUFZOzs0RkF1QnpCLGVBQWU7a0JBMUIzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO29CQUNuQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQztvQkFDckMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CVDtpQkFDRjs4QkFFVSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdici1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYmctd2hpdGUgcm91bmRlZCBib3JkZXIgYm9yZGVyLWdvdmJyLWdyYXktNSBzaGFkb3ctc20gaG92ZXI6c2hhZG93LW1kIHRyYW5zaXRpb24tc2hhZG93IGZvbnQtcmF3bGluZSBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwLTZcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImljb25cIiBjbGFzcz1cIm1iLTNcIj5cbiAgICAgICAgICA8aSBbY2xhc3NdPVwiJ2ZhLXNvbGlkIGZhLScgKyBpY29uICsgJyB0ZXh0LWdvdmJyLXByaW1hcnkgdGV4dC0yeGwnXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwibGlua1RleHRcIiBjbGFzcz1cInB4LTYgcGItNFwiPlxuICAgICAgICA8YVxuICAgICAgICAgICpuZ0lmPVwibGlua1JvdXRlXCJcbiAgICAgICAgICBbcm91dGVyTGlua109XCJsaW5rUm91dGVcIlxuICAgICAgICAgIGNsYXNzPVwidGV4dC1nb3Zici1wcmltYXJ5IHRleHQtc20gZm9udC1zZW1pYm9sZCBob3Zlcjp1bmRlcmxpbmUgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGxpbmtUZXh0IH19XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1hcnJvdy1yaWdodCBtbC0xIHRleHQteHNcIj48L2k+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBCckNhcmRDb21wb25lbnQge1xuICBASW5wdXQoKSBpY29uPzogc3RyaW5nO1xuICBASW5wdXQoKSBsaW5rVGV4dD86IHN0cmluZztcbiAgQElucHV0KCkgbGlua1JvdXRlPzogc3RyaW5nIHwgYW55W107XG59XG4iXX0=
@@ -0,0 +1,56 @@
1
+ import { Component, Input, ViewEncapsulation } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class BrFooterComponent {
6
+ constructor() {
7
+ this.logoSrc = '';
8
+ }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BrFooterComponent, isStandalone: true, selector: "br-footer", inputs: { logoSrc: "logoSrc" }, ngImport: i0, template: `
11
+ <footer class="bg-govbr-primary-darkest text-white font-rawline mt-auto">
12
+ <div class="max-w-screen-xl mx-auto px-4 py-6">
13
+ <div class="flex flex-col md:flex-row items-center justify-between gap-4">
14
+ <img
15
+ *ngIf="logoSrc"
16
+ [src]="logoSrc"
17
+ alt="Logo"
18
+ class="h-8 brightness-0 invert"
19
+ />
20
+ <div class="text-center md:text-right text-sm opacity-80">
21
+ <ng-content></ng-content>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ </footer>
26
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrFooterComponent, decorators: [{
29
+ type: Component,
30
+ args: [{
31
+ selector: 'br-footer',
32
+ standalone: true,
33
+ imports: [CommonModule],
34
+ encapsulation: ViewEncapsulation.None,
35
+ template: `
36
+ <footer class="bg-govbr-primary-darkest text-white font-rawline mt-auto">
37
+ <div class="max-w-screen-xl mx-auto px-4 py-6">
38
+ <div class="flex flex-col md:flex-row items-center justify-between gap-4">
39
+ <img
40
+ *ngIf="logoSrc"
41
+ [src]="logoSrc"
42
+ alt="Logo"
43
+ class="h-8 brightness-0 invert"
44
+ />
45
+ <div class="text-center md:text-right text-sm opacity-80">
46
+ <ng-content></ng-content>
47
+ </div>
48
+ </div>
49
+ </div>
50
+ </footer>
51
+ `,
52
+ }]
53
+ }], propDecorators: { logoSrc: [{
54
+ type: Input
55
+ }] } });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnItZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWdvdmJyLXR3L3NyYy9saWIvY29tcG9uZW50cy9mb290ZXIvYnItZm9vdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQXlCL0MsTUFBTSxPQUFPLGlCQUFpQjtJQXZCOUI7UUF3QlcsWUFBTyxHQUFHLEVBQUUsQ0FBQztLQUN2QjsrR0FGWSxpQkFBaUI7bUdBQWpCLGlCQUFpQixxR0FsQmxCOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JULDJEQWxCUyxZQUFZOzs0RkFvQlgsaUJBQWlCO2tCQXZCN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7OztHQWdCVDtpQkFDRjs4QkFFVSxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnItZm9vdGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGZvb3RlciBjbGFzcz1cImJnLWdvdmJyLXByaW1hcnktZGFya2VzdCB0ZXh0LXdoaXRlIGZvbnQtcmF3bGluZSBtdC1hdXRvXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWF4LXctc2NyZWVuLXhsIG14LWF1dG8gcHgtNCBweS02XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTRcIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAqbmdJZj1cImxvZ29TcmNcIlxuICAgICAgICAgICAgW3NyY109XCJsb2dvU3JjXCJcbiAgICAgICAgICAgIGFsdD1cIkxvZ29cIlxuICAgICAgICAgICAgY2xhc3M9XCJoLTggYnJpZ2h0bmVzcy0wIGludmVydFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbWQ6dGV4dC1yaWdodCB0ZXh0LXNtIG9wYWNpdHktODBcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvb3Rlcj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQnJGb290ZXJDb21wb25lbnQge1xuICBASW5wdXQoKSBsb2dvU3JjID0gJyc7XG59XG4iXX0=
@@ -0,0 +1,133 @@
1
+ import { Component, ContentChild, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class BrHeaderComponent {
6
+ constructor() {
7
+ this.systemTitle = '';
8
+ this.logoSrc = '';
9
+ this.logout = new EventEmitter();
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BrHeaderComponent, isStandalone: true, selector: "br-header", inputs: { systemTitle: "systemTitle", systemSubtitle: "systemSubtitle", logoSrc: "logoSrc", userName: "userName", userRole: "userRole" }, outputs: { logout: "logout" }, queries: [{ propertyName: "quickAccessItems", first: true, predicate: ["quickAccessItems"], descendants: true }], ngImport: i0, template: `
13
+ <!-- Top bar -->
14
+ <div style="background-color:#071d41;color:#ffffff;font-size:12px;padding:4px 16px;font-family:'Rawline','Raleway',sans-serif;">
15
+ <div style="max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;">
16
+ <ng-container *ngIf="quickAccessItems; else defaultQuickAccess">
17
+ <ng-container *ngTemplateOutlet="quickAccessItems"></ng-container>
18
+ </ng-container>
19
+ <ng-template #defaultQuickAccess>
20
+ <span></span>
21
+ </ng-template>
22
+ </div>
23
+ </div>
24
+
25
+ <!-- Main header -->
26
+ <header style="background-color:#1351b4;color:#ffffff;font-family:'Rawline','Raleway',sans-serif;box-shadow:0 4px 6px -1px rgba(0,0,0,0.1);">
27
+ <div style="max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;">
28
+ <!-- Logo + Title -->
29
+ <div style="display:flex;align-items:center;gap:16px;">
30
+ <img
31
+ *ngIf="logoSrc"
32
+ [src]="logoSrc"
33
+ [alt]="systemTitle"
34
+ style="height:40px;"
35
+ />
36
+ <div>
37
+ <h1 style="font-size:18px;font-weight:700;line-height:1.25;color:#ffffff;margin:0;">{{ systemTitle }}</h1>
38
+ <p *ngIf="systemSubtitle" style="font-size:12px;opacity:0.8;color:#ffffff;margin:0;">{{ systemSubtitle }}</p>
39
+ </div>
40
+ </div>
41
+
42
+ <!-- User area -->
43
+ <div *ngIf="userName" style="display:flex;align-items:center;gap:12px;">
44
+ <div style="text-align:right;">
45
+ <span style="display:block;font-size:14px;font-weight:600;color:#ffffff;">{{ userName }}</span>
46
+ <span *ngIf="userRole" style="display:block;font-size:12px;opacity:0.8;color:#ffffff;">{{ userRole }}</span>
47
+ </div>
48
+ <button
49
+ type="button"
50
+ style="margin-left:8px;padding:8px;border-radius:50%;border:none;background:transparent;color:#ffffff;cursor:pointer;"
51
+ (click)="logout.emit()"
52
+ title="Sair"
53
+ >
54
+ <i class="fa-solid fa-right-from-bracket"></i>
55
+ </button>
56
+ </div>
57
+ </div>
58
+ </header>
59
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }
60
+ }
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BrHeaderComponent, decorators: [{
62
+ type: Component,
63
+ args: [{
64
+ selector: 'br-header',
65
+ standalone: true,
66
+ imports: [CommonModule],
67
+ encapsulation: ViewEncapsulation.None,
68
+ template: `
69
+ <!-- Top bar -->
70
+ <div style="background-color:#071d41;color:#ffffff;font-size:12px;padding:4px 16px;font-family:'Rawline','Raleway',sans-serif;">
71
+ <div style="max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;">
72
+ <ng-container *ngIf="quickAccessItems; else defaultQuickAccess">
73
+ <ng-container *ngTemplateOutlet="quickAccessItems"></ng-container>
74
+ </ng-container>
75
+ <ng-template #defaultQuickAccess>
76
+ <span></span>
77
+ </ng-template>
78
+ </div>
79
+ </div>
80
+
81
+ <!-- Main header -->
82
+ <header style="background-color:#1351b4;color:#ffffff;font-family:'Rawline','Raleway',sans-serif;box-shadow:0 4px 6px -1px rgba(0,0,0,0.1);">
83
+ <div style="max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;">
84
+ <!-- Logo + Title -->
85
+ <div style="display:flex;align-items:center;gap:16px;">
86
+ <img
87
+ *ngIf="logoSrc"
88
+ [src]="logoSrc"
89
+ [alt]="systemTitle"
90
+ style="height:40px;"
91
+ />
92
+ <div>
93
+ <h1 style="font-size:18px;font-weight:700;line-height:1.25;color:#ffffff;margin:0;">{{ systemTitle }}</h1>
94
+ <p *ngIf="systemSubtitle" style="font-size:12px;opacity:0.8;color:#ffffff;margin:0;">{{ systemSubtitle }}</p>
95
+ </div>
96
+ </div>
97
+
98
+ <!-- User area -->
99
+ <div *ngIf="userName" style="display:flex;align-items:center;gap:12px;">
100
+ <div style="text-align:right;">
101
+ <span style="display:block;font-size:14px;font-weight:600;color:#ffffff;">{{ userName }}</span>
102
+ <span *ngIf="userRole" style="display:block;font-size:12px;opacity:0.8;color:#ffffff;">{{ userRole }}</span>
103
+ </div>
104
+ <button
105
+ type="button"
106
+ style="margin-left:8px;padding:8px;border-radius:50%;border:none;background:transparent;color:#ffffff;cursor:pointer;"
107
+ (click)="logout.emit()"
108
+ title="Sair"
109
+ >
110
+ <i class="fa-solid fa-right-from-bracket"></i>
111
+ </button>
112
+ </div>
113
+ </div>
114
+ </header>
115
+ `,
116
+ }]
117
+ }], propDecorators: { systemTitle: [{
118
+ type: Input
119
+ }], systemSubtitle: [{
120
+ type: Input
121
+ }], logoSrc: [{
122
+ type: Input
123
+ }], userName: [{
124
+ type: Input
125
+ }], userRole: [{
126
+ type: Input
127
+ }], logout: [{
128
+ type: Output
129
+ }], quickAccessItems: [{
130
+ type: ContentChild,
131
+ args: ['quickAccessItems']
132
+ }] } });
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWdvdmJyLXR3L3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvYnItaGVhZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUF3RC9DLE1BQU0sT0FBTyxpQkFBaUI7SUF0RDlCO1FBdURXLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRWpCLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFHWixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQUU3QzsrR0FSWSxpQkFBaUI7bUdBQWpCLGlCQUFpQixnV0FqRGxCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDVCwyREFqRFMsWUFBWTs7NEZBbURYLGlCQUFpQjtrQkF0RDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NUO2lCQUNGOzhCQUVVLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTTtnQkFDMkIsZ0JBQWdCO3NCQUFqRCxZQUFZO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdici1oZWFkZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8IS0tIFRvcCBiYXIgLS0+XG4gICAgPGRpdiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IzA3MWQ0MTtjb2xvcjojZmZmZmZmO2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmc6NHB4IDE2cHg7Zm9udC1mYW1pbHk6J1Jhd2xpbmUnLCdSYWxld2F5JyxzYW5zLXNlcmlmO1wiPlxuICAgICAgPGRpdiBzdHlsZT1cIm1heC13aWR0aDoxMjgwcHg7bWFyZ2luOjAgYXV0bztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVpY2tBY2Nlc3NJdGVtczsgZWxzZSBkZWZhdWx0UXVpY2tBY2Nlc3NcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicXVpY2tBY2Nlc3NJdGVtc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0UXVpY2tBY2Nlc3M+XG4gICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIE1haW4gaGVhZGVyIC0tPlxuICAgIDxoZWFkZXIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiMxMzUxYjQ7Y29sb3I6I2ZmZmZmZjtmb250LWZhbWlseTonUmF3bGluZScsJ1JhbGV3YXknLHNhbnMtc2VyaWY7Ym94LXNoYWRvdzowIDRweCA2cHggLTFweCByZ2JhKDAsMCwwLDAuMSk7XCI+XG4gICAgICA8ZGl2IHN0eWxlPVwibWF4LXdpZHRoOjEyODBweDttYXJnaW46MCBhdXRvO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoxMnB4IDE2cHg7XCI+XG4gICAgICAgIDwhLS0gTG9nbyArIFRpdGxlIC0tPlxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTZweDtcIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAqbmdJZj1cImxvZ29TcmNcIlxuICAgICAgICAgICAgW3NyY109XCJsb2dvU3JjXCJcbiAgICAgICAgICAgIFthbHRdPVwic3lzdGVtVGl0bGVcIlxuICAgICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6NDBweDtcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxoMSBzdHlsZT1cImZvbnQtc2l6ZToxOHB4O2ZvbnQtd2VpZ2h0OjcwMDtsaW5lLWhlaWdodDoxLjI1O2NvbG9yOiNmZmZmZmY7bWFyZ2luOjA7XCI+e3sgc3lzdGVtVGl0bGUgfX08L2gxPlxuICAgICAgICAgICAgPHAgKm5nSWY9XCJzeXN0ZW1TdWJ0aXRsZVwiIHN0eWxlPVwiZm9udC1zaXplOjEycHg7b3BhY2l0eTowLjg7Y29sb3I6I2ZmZmZmZjttYXJnaW46MDtcIj57eyBzeXN0ZW1TdWJ0aXRsZSB9fTwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBVc2VyIGFyZWEgLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VyTmFtZVwiIHN0eWxlPVwiZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtcIj5cbiAgICAgICAgICA8ZGl2IHN0eWxlPVwidGV4dC1hbGlnbjpyaWdodDtcIj5cbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZGlzcGxheTpibG9jaztmb250LXNpemU6MTRweDtmb250LXdlaWdodDo2MDA7Y29sb3I6I2ZmZmZmZjtcIj57eyB1c2VyTmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidXNlclJvbGVcIiBzdHlsZT1cImRpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjEycHg7b3BhY2l0eTowLjg7Y29sb3I6I2ZmZmZmZjtcIj57eyB1c2VyUm9sZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6OHB4O3BhZGRpbmc6OHB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjpub25lO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6I2ZmZmZmZjtjdXJzb3I6cG9pbnRlcjtcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImxvZ291dC5lbWl0KClcIlxuICAgICAgICAgICAgdGl0bGU9XCJTYWlyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXJpZ2h0LWZyb20tYnJhY2tldFwiPjwvaT5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2hlYWRlcj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQnJIZWFkZXJDb21wb25lbnQge1xuICBASW5wdXQoKSBzeXN0ZW1UaXRsZSA9ICcnO1xuICBASW5wdXQoKSBzeXN0ZW1TdWJ0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgbG9nb1NyYyA9ICcnO1xuICBASW5wdXQoKSB1c2VyTmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgdXNlclJvbGU/OiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBsb2dvdXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBDb250ZW50Q2hpbGQoJ3F1aWNrQWNjZXNzSXRlbXMnKSBxdWlja0FjY2Vzc0l0ZW1zPzogVGVtcGxhdGVSZWY8YW55Pjtcbn1cbiJdfQ==