@lluc_llull/ui-lib 0.2.0 → 0.2.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/esm2022/lib/components/core/header-clear/header-clear.interface.mjs +1 -1
  2. package/esm2022/lib/components/core/header-mobile/header-mobile.component.mjs +36 -0
  3. package/esm2022/lib/components/core/header-mobile/header-mobile.interface.mjs +2 -0
  4. package/esm2022/lib/components/core/header-mobile/index.mjs +3 -0
  5. package/esm2022/lib/components/core/index.mjs +2 -1
  6. package/esm2022/lib/services/index.mjs +2 -1
  7. package/esm2022/lib/services/screen-sizer/index.mjs +2 -0
  8. package/esm2022/lib/services/screen-sizer/screen-sizer.service.mjs +66 -0
  9. package/fesm2022/lluc_llull-ui-lib.mjs +96 -2
  10. package/fesm2022/lluc_llull-ui-lib.mjs.map +1 -1
  11. package/lib/components/core/header-clear/header-clear.interface.d.ts +5 -0
  12. package/lib/components/core/header-mobile/header-mobile.component.d.ts +15 -0
  13. package/lib/components/core/header-mobile/header-mobile.interface.d.ts +7 -0
  14. package/lib/components/core/header-mobile/index.d.ts +2 -0
  15. package/lib/components/core/index.d.ts +1 -0
  16. package/lib/services/index.d.ts +1 -0
  17. package/lib/services/screen-sizer/index.d.ts +1 -0
  18. package/lib/services/screen-sizer/screen-sizer.service.d.ts +34 -0
  19. package/package.json +1 -1
  20. package/src/lib/styles/abstracts/_mixins.scss +21 -0
  21. package/src/lib/styles/abstracts/index.scss +3 -0
  22. package/src/lib/styles/{_common.scss → base/_common.scss} +8 -9
  23. package/src/lib/styles/base/_globals.scss +13 -0
  24. package/src/lib/styles/base/index.scss +2 -0
  25. package/src/lib/styles/main.scss +3 -0
  26. package/src/lib/styles/themes/_dark.scss +0 -0
  27. package/src/lib/styles/themes/_light.scss +0 -0
  28. package/src/lib/styles/themes/index.scss +2 -0
  29. package/src/lib/styles/_mixins.scss +0 -11
  30. package/src/lib/styles/global.scss +0 -15
  31. /package/src/lib/styles/{_breakpoints.scss → abstracts/_breakpoints.scss} +0 -0
  32. /package/src/lib/styles/{_variables.scss → abstracts/_variables.scss} +0 -0
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWNsZWFyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9oZWFkZXItY2xlYXIvaGVhZGVyLWNsZWFyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBIZWFkZXJDbGVhckkge1xuICBcbn0iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWNsZWFyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9oZWFkZXItY2xlYXIvaGVhZGVyLWNsZWFyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVWlMaWJJbWFnZUkgfSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJmYWNlcy91aS1saWItaW1hZ2UuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBVaUxpYk5hdkl0ZW1zSSB9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2VzL3VpLWxpYi1uYXYtaXRlbXMuaW50ZXJmYWNlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGVyQ2xlYXJJIHtcbiAgbG9nbz86IFVpTGliSW1hZ2VJO1xuICBsYW5nPzogc3RyaW5nO1xuICBuYXZJdGVtcz86IFVpTGliTmF2SXRlbXNJW107XG59Il19
@@ -0,0 +1,36 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { LangModalComponent } from '../lang-modal/lang-modal.component';
4
+ import { NavModalComponent } from '../nav-modal/nav-modal.component';
5
+ import * as i0 from "@angular/core";
6
+ export class HeaderMobileComponent {
7
+ constructor() {
8
+ this.isMenuOpen = false;
9
+ this.langModal = new EventEmitter();
10
+ this.theme = new EventEmitter();
11
+ }
12
+ openLanguagesModal() {
13
+ this.langModal.emit();
14
+ }
15
+ toggleTheme() {
16
+ this.theme.emit();
17
+ }
18
+ toggleMenu() {
19
+ this.isMenuOpen = !this.isMenuOpen;
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderMobileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: HeaderMobileComponent, isStandalone: true, selector: "lib-header-mobile", inputs: { lang: "lang", navItems: "navItems" }, outputs: { langModal: "langModal", theme: "theme" }, ngImport: i0, template: "<header class=\"header-mobile\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <span>\u2605</span>\n <span>LLUC LLULL</span>\n </div>\n</header>\n\n<div class=\"header-actions\">\n <!-- Idioma -->\n <div class=\"left\">\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n </div>\n\n <!-- Icono de recarga -->\n <div class=\"center\">\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>\uD83C\uDF19</span>\n </button>\n </div>\n\n <!-- Icono de men\u00FA -->\n <div class=\"right\">\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>\u2630</span>\n </button>\n </div>\n</div>\n\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n\n", styles: [".header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 2rem;border-radius:0;position:sticky;top:0;z-index:100}.header-logo{display:flex;align-items:center;gap:.5rem}.header-actions{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background-color:#6c757d;z-index:100;box-sizing:border-box}.header-actions .center{margin:0 auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: NavModalComponent, selector: "lib-nav-modal", inputs: ["navItems", "socialItems"], outputs: ["close"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderMobileComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'lib-header-mobile', standalone: true, imports: [CommonModule, LangModalComponent, NavModalComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"header-mobile\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <span>\u2605</span>\n <span>LLUC LLULL</span>\n </div>\n</header>\n\n<div class=\"header-actions\">\n <!-- Idioma -->\n <div class=\"left\">\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n </div>\n\n <!-- Icono de recarga -->\n <div class=\"center\">\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>\uD83C\uDF19</span>\n </button>\n </div>\n\n <!-- Icono de men\u00FA -->\n <div class=\"right\">\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>\u2630</span>\n </button>\n </div>\n</div>\n\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n\n", styles: [".header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 2rem;border-radius:0;position:sticky;top:0;z-index:100}.header-logo{display:flex;align-items:center;gap:.5rem}.header-actions{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background-color:#6c757d;z-index:100;box-sizing:border-box}.header-actions .center{margin:0 auto}\n"] }]
27
+ }], propDecorators: { lang: [{
28
+ type: Input
29
+ }], navItems: [{
30
+ type: Input
31
+ }], langModal: [{
32
+ type: Output
33
+ }], theme: [{
34
+ type: Output
35
+ }] } });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLW1vYmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvaGVhZGVyLW1vYmlsZS9oZWFkZXItbW9iaWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9oZWFkZXItbW9iaWxlL2hlYWRlci1tb2JpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBVXJFLE1BQU0sT0FBTyxxQkFBcUI7SUFSbEM7UUFTRSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBS1QsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDckMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FhNUM7SUFYQyxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUNyQyxDQUFDOytHQW5CVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixrTENkbEMsaTVCQXVDQSxxZUQ5QlksWUFBWSwrQkFBc0IsaUJBQWlCOzs0RkFLbEQscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUMsbUJBRzdDLHVCQUF1QixDQUFDLE1BQU07OEJBS3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVWlMaWJOYXZJdGVtc0kgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL3VpLWxpYi1uYXYtaXRlbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IExhbmdNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2xhbmctbW9kYWwvbGFuZy1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2TW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9uYXYtbW9kYWwvbmF2LW1vZGFsLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1oZWFkZXItbW9iaWxlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTGFuZ01vZGFsQ29tcG9uZW50LCBOYXZNb2RhbENvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXItbW9iaWxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2hlYWRlci1tb2JpbGUuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyTW9iaWxlQ29tcG9uZW50IHtcbiAgaXNNZW51T3BlbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGxhbmc/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5hdkl0ZW1zPzogVWlMaWJOYXZJdGVtc0lbXTtcblxuICBAT3V0cHV0KCkgbGFuZ01vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgdGhlbWUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgb3Blbkxhbmd1YWdlc01vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMubGFuZ01vZGFsLmVtaXQoKTtcbiAgfVxuXG4gIHRvZ2dsZVRoZW1lKCk6IHZvaWQge1xuICAgIHRoaXMudGhlbWUuZW1pdCgpO1xuICB9XG5cbiAgdG9nZ2xlTWVudSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzTWVudU9wZW4gPSAhdGhpcy5pc01lbnVPcGVuO1xuICB9XG59XG4iLCI8aGVhZGVyIGNsYXNzPVwiaGVhZGVyLW1vYmlsZVwiPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWxvZ29cIj5cbiAgICA8IS0tIExvZ28gLS0+XG4gICAgPHNwYW4+4piFPC9zcGFuPlxuICAgIDxzcGFuPkxMVUMgTExVTEw8L3NwYW4+XG4gIDwvZGl2PlxuPC9oZWFkZXI+XG5cbjxkaXYgY2xhc3M9XCJoZWFkZXItYWN0aW9uc1wiPlxuICA8IS0tIElkaW9tYSAtLT5cbiAgPGRpdiBjbGFzcz1cImxlZnRcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cIm9wZW5MYW5ndWFnZXNNb2RhbCgpXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImxhbmdcIj57eyBsYW5nIH19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8IS0tIEljb25vIGRlIHJlY2FyZ2EgLS0+XG4gIDxkaXYgY2xhc3M9XCJjZW50ZXJcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInRvZ2dsZVRoZW1lKClcIj5cbiAgICAgIDxzcGFuPvCfjJk8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDwhLS0gSWNvbm8gZGUgbWVuw7ogLS0+XG4gIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwidG9nZ2xlTWVudSgpXCI+XG4gICAgICA8c3Bhbj7imLA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG5cblxuQGlmKGlzTWVudU9wZW4gJiYgbmF2SXRlbXMgJiYgbmF2SXRlbXMubGVuZ3RoID4gMCkge1xuICA8bGliLW5hdi1tb2RhbFxuICAgIFtuYXZJdGVtc109XCJuYXZJdGVtc1wiXG4gICAgKGNsb3NlKT1cImlzTWVudU9wZW4gPSBmYWxzZVwiXG4gID48L2xpYi1uYXYtbW9kYWw+XG59XG5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLW1vYmlsZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvaGVhZGVyLW1vYmlsZS9oZWFkZXItbW9iaWxlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVWlMaWJJbWFnZUkgfSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJmYWNlcy91aS1saWItaW1hZ2UuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBVaUxpYk5hdkl0ZW1zSSB9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2VzL3VpLWxpYi1uYXYtaXRlbXMuaW50ZXJmYWNlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGVyTW9iaWxlSSB7XG4gIGxvZ28/OiBVaUxpYkltYWdlSTtcbiAgbGFuZz86IHN0cmluZztcbiAgbmF2SXRlbXM/OiBVaUxpYk5hdkl0ZW1zSVtdO1xufSJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './header-mobile.component';
2
+ export * from './header-mobile.interface';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvaGVhZGVyLW1vYmlsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2hlYWRlci1tb2JpbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaGVhZGVyLW1vYmlsZS5pbnRlcmZhY2UnOyJdfQ==
@@ -2,4 +2,5 @@ export * from './hero-section';
2
2
  export * from './header-clear';
3
3
  export * from './nav-modal';
4
4
  export * from './lang-modal';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9oZXJvLXNlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9oZWFkZXItY2xlYXInO1xuZXhwb3J0ICogZnJvbSAnLi9uYXYtbW9kYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9sYW5nLW1vZGFsJztcbiJdfQ==
5
+ export * from './header-mobile';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2hlcm8tc2VjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2hlYWRlci1jbGVhcic7XG5leHBvcnQgKiBmcm9tICcuL25hdi1tb2RhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xhbmctbW9kYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWFkZXItbW9iaWxlJzsiXX0=
@@ -1,2 +1,3 @@
1
1
  export * from './mapper';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbWFwcGVyJztcbiJdfQ==
2
+ export * from './screen-sizer';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tYXBwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JlZW4tc2l6ZXInO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './screen-sizer.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zY3JlZW4tc2l6ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2NyZWVuLXNpemVyLnNlcnZpY2UnOyJdfQ==
@@ -0,0 +1,66 @@
1
+ import { Injectable, PLATFORM_ID, inject, signal } from '@angular/core';
2
+ import { isPlatformBrowser } from '@angular/common';
3
+ import { fromEvent } from 'rxjs';
4
+ import { debounceTime, distinctUntilChanged, map, startWith } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ export class ScreenSizerService {
7
+ get width() {
8
+ if (isPlatformBrowser(this.platformId)) {
9
+ return Math.min(window.innerWidth, window.outerWidth);
10
+ }
11
+ return 0;
12
+ }
13
+ constructor() {
14
+ this.breakpoints = {
15
+ xs: 480,
16
+ sm: 768,
17
+ md: 1024,
18
+ lg: 1280,
19
+ xl: 1536,
20
+ };
21
+ this.isXs = signal(false);
22
+ this.isSm = signal(false);
23
+ this.isMd = signal(false);
24
+ this.isLg = signal(false);
25
+ this.isXl = signal(false);
26
+ this.minSm = signal(false);
27
+ this.minMd = signal(false);
28
+ this.minLg = signal(false);
29
+ this.minXl = signal(false);
30
+ this.platformId = inject(PLATFORM_ID);
31
+ if (isPlatformBrowser(this.platformId)) {
32
+ fromEvent(window, 'resize')
33
+ .pipe(debounceTime(200), map(() => this.width), distinctUntilChanged(), startWith(this.width))
34
+ .subscribe(width => this.updateFlags(width));
35
+ }
36
+ }
37
+ updateFlags(width) {
38
+ const { xs, sm, md, lg, xl } = this.breakpoints;
39
+ this.isXs.set(width < sm);
40
+ this.isSm.set(width >= sm && width < md);
41
+ this.isMd.set(width >= md && width < lg);
42
+ this.isLg.set(width >= lg && width < xl);
43
+ this.isXl.set(width >= xl);
44
+ this.minSm.set(width >= sm);
45
+ this.minMd.set(width >= md);
46
+ this.minLg.set(width >= lg);
47
+ this.minXl.set(width >= xl);
48
+ }
49
+ // Métodos rápidos si no usas signals directamente
50
+ isXsInstant() { return this.isXs(); }
51
+ isSmInstant() { return this.isSm(); }
52
+ isMdInstant() { return this.isMd(); }
53
+ isLgInstant() { return this.isLg(); }
54
+ isXlInstant() { return this.isXl(); }
55
+ minSmInstant() { return this.minSm(); }
56
+ minMdInstant() { return this.minMd(); }
57
+ minLgInstant() { return this.minLg(); }
58
+ minXlInstant() { return this.minXl(); }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScreenSizerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
60
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScreenSizerService, providedIn: 'root' }); }
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScreenSizerService, decorators: [{
63
+ type: Injectable,
64
+ args: [{ providedIn: 'root' }]
65
+ }], ctorParameters: () => [] });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLXNpemVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zY3JlZW4tc2l6ZXIvc2NyZWVuLXNpemVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUdwRixNQUFNLE9BQU8sa0JBQWtCO0lBc0I3QixJQUFJLEtBQUs7UUFDUCxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQ7UUE1QlMsZ0JBQVcsR0FBRztZQUNyQixFQUFFLEVBQUUsR0FBRztZQUNQLEVBQUUsRUFBRSxHQUFHO1lBQ1AsRUFBRSxFQUFFLElBQUk7WUFDUixFQUFFLEVBQUUsSUFBSTtZQUNSLEVBQUUsRUFBRSxJQUFJO1NBQ1QsQ0FBQztRQUVPLFNBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixTQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLFNBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyQixVQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLFVBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixVQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWQsZUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQVVoRCxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO2lCQUN4QixJQUFJLENBQ0gsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUNyQixvQkFBb0IsRUFBRSxFQUN0QixTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUN0QjtpQkFDQSxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXLENBQUMsS0FBYTtRQUMvQixNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFFaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGtEQUFrRDtJQUNsRCxXQUFXLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLFdBQVcsS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckMsV0FBVyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyQyxXQUFXLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLFdBQVcsS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFckMsWUFBWSxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2QyxZQUFZLEtBQUssT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLFlBQVksS0FBSyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkMsWUFBWSxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQzsrR0FuRTVCLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBREwsTUFBTTs7NEZBQ25CLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBQTEFURk9STV9JRCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU2NyZWVuU2l6ZXJTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgYnJlYWtwb2ludHMgPSB7XG4gICAgeHM6IDQ4MCxcbiAgICBzbTogNzY4LFxuICAgIG1kOiAxMDI0LFxuICAgIGxnOiAxMjgwLFxuICAgIHhsOiAxNTM2LFxuICB9O1xuXG4gIHJlYWRvbmx5IGlzWHMgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBpc1NtID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgaXNNZCA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGlzTGcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBpc1hsID0gc2lnbmFsKGZhbHNlKTtcblxuICByZWFkb25seSBtaW5TbSA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IG1pbk1kID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgbWluTGcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBtaW5YbCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICBnZXQgd2lkdGgoKTogbnVtYmVyIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgcmV0dXJuIE1hdGgubWluKHdpbmRvdy5pbm5lcldpZHRoLCB3aW5kb3cub3V0ZXJXaWR0aCk7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMjAwKSxcbiAgICAgICAgICBtYXAoKCkgPT4gdGhpcy53aWR0aCksXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICBzdGFydFdpdGgodGhpcy53aWR0aClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHdpZHRoID0+IHRoaXMudXBkYXRlRmxhZ3Mod2lkdGgpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUZsYWdzKHdpZHRoOiBudW1iZXIpIHtcbiAgICBjb25zdCB7IHhzLCBzbSwgbWQsIGxnLCB4bCB9ID0gdGhpcy5icmVha3BvaW50cztcblxuICAgIHRoaXMuaXNYcy5zZXQod2lkdGggPCBzbSk7XG4gICAgdGhpcy5pc1NtLnNldCh3aWR0aCA+PSBzbSAmJiB3aWR0aCA8IG1kKTtcbiAgICB0aGlzLmlzTWQuc2V0KHdpZHRoID49IG1kICYmIHdpZHRoIDwgbGcpO1xuICAgIHRoaXMuaXNMZy5zZXQod2lkdGggPj0gbGcgJiYgd2lkdGggPCB4bCk7XG4gICAgdGhpcy5pc1hsLnNldCh3aWR0aCA+PSB4bCk7XG5cbiAgICB0aGlzLm1pblNtLnNldCh3aWR0aCA+PSBzbSk7XG4gICAgdGhpcy5taW5NZC5zZXQod2lkdGggPj0gbWQpO1xuICAgIHRoaXMubWluTGcuc2V0KHdpZHRoID49IGxnKTtcbiAgICB0aGlzLm1pblhsLnNldCh3aWR0aCA+PSB4bCk7XG4gIH1cblxuICAvLyBNw6l0b2RvcyByw6FwaWRvcyBzaSBubyB1c2FzIHNpZ25hbHMgZGlyZWN0YW1lbnRlXG4gIGlzWHNJbnN0YW50KCkgeyByZXR1cm4gdGhpcy5pc1hzKCk7IH1cbiAgaXNTbUluc3RhbnQoKSB7IHJldHVybiB0aGlzLmlzU20oKTsgfVxuICBpc01kSW5zdGFudCgpIHsgcmV0dXJuIHRoaXMuaXNNZCgpOyB9XG4gIGlzTGdJbnN0YW50KCkgeyByZXR1cm4gdGhpcy5pc0xnKCk7IH1cbiAgaXNYbEluc3RhbnQoKSB7IHJldHVybiB0aGlzLmlzWGwoKTsgfVxuXG4gIG1pblNtSW5zdGFudCgpIHsgcmV0dXJuIHRoaXMubWluU20oKTsgfVxuICBtaW5NZEluc3RhbnQoKSB7IHJldHVybiB0aGlzLm1pbk1kKCk7IH1cbiAgbWluTGdJbnN0YW50KCkgeyByZXR1cm4gdGhpcy5taW5MZygpOyB9XG4gIG1pblhsSW5zdGFudCgpIHsgcmV0dXJuIHRoaXMubWluWGwoKTsgfVxufVxuIl19
@@ -1,9 +1,11 @@
1
1
  import { isPlatformBrowser, CommonModule } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { EventEmitter, inject, PLATFORM_ID, HostListener, Output, Input, Directive, ChangeDetectionStrategy, Component, Optional, Inject, Injectable } from '@angular/core';
3
+ import { EventEmitter, inject, PLATFORM_ID, HostListener, Output, Input, Directive, ChangeDetectionStrategy, Component, Optional, Inject, Injectable, signal } from '@angular/core';
4
4
  import * as i1 from '@angular/router';
5
5
  import * as i1$1 from '@angular/material/dialog';
6
6
  import { MAT_DIALOG_DATA } from '@angular/material/dialog';
7
+ import { fromEvent } from 'rxjs';
8
+ import { debounceTime, map, distinctUntilChanged, startWith } from 'rxjs/operators';
7
9
 
8
10
  var LinkType;
9
11
  (function (LinkType) {
@@ -246,6 +248,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
246
248
  type: Output
247
249
  }] } });
248
250
 
251
+ class HeaderMobileComponent {
252
+ constructor() {
253
+ this.isMenuOpen = false;
254
+ this.langModal = new EventEmitter();
255
+ this.theme = new EventEmitter();
256
+ }
257
+ openLanguagesModal() {
258
+ this.langModal.emit();
259
+ }
260
+ toggleTheme() {
261
+ this.theme.emit();
262
+ }
263
+ toggleMenu() {
264
+ this.isMenuOpen = !this.isMenuOpen;
265
+ }
266
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderMobileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
267
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: HeaderMobileComponent, isStandalone: true, selector: "lib-header-mobile", inputs: { lang: "lang", navItems: "navItems" }, outputs: { langModal: "langModal", theme: "theme" }, ngImport: i0, template: "<header class=\"header-mobile\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <span>\u2605</span>\n <span>LLUC LLULL</span>\n </div>\n</header>\n\n<div class=\"header-actions\">\n <!-- Idioma -->\n <div class=\"left\">\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n </div>\n\n <!-- Icono de recarga -->\n <div class=\"center\">\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>\uD83C\uDF19</span>\n </button>\n </div>\n\n <!-- Icono de men\u00FA -->\n <div class=\"right\">\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>\u2630</span>\n </button>\n </div>\n</div>\n\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n\n", styles: [".header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 2rem;border-radius:0;position:sticky;top:0;z-index:100}.header-logo{display:flex;align-items:center;gap:.5rem}.header-actions{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background-color:#6c757d;z-index:100;box-sizing:border-box}.header-actions .center{margin:0 auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: NavModalComponent, selector: "lib-nav-modal", inputs: ["navItems", "socialItems"], outputs: ["close"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
268
+ }
269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderMobileComponent, decorators: [{
270
+ type: Component,
271
+ args: [{ selector: 'lib-header-mobile', standalone: true, imports: [CommonModule, LangModalComponent, NavModalComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"header-mobile\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <span>\u2605</span>\n <span>LLUC LLULL</span>\n </div>\n</header>\n\n<div class=\"header-actions\">\n <!-- Idioma -->\n <div class=\"left\">\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n </div>\n\n <!-- Icono de recarga -->\n <div class=\"center\">\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>\uD83C\uDF19</span>\n </button>\n </div>\n\n <!-- Icono de men\u00FA -->\n <div class=\"right\">\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>\u2630</span>\n </button>\n </div>\n</div>\n\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n\n", styles: [".header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 2rem;border-radius:0;position:sticky;top:0;z-index:100}.header-logo{display:flex;align-items:center;gap:.5rem}.header-actions{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background-color:#6c757d;z-index:100;box-sizing:border-box}.header-actions .center{margin:0 auto}\n"] }]
272
+ }], propDecorators: { lang: [{
273
+ type: Input
274
+ }], navItems: [{
275
+ type: Input
276
+ }], langModal: [{
277
+ type: Output
278
+ }], theme: [{
279
+ type: Output
280
+ }] } });
281
+
249
282
  const mapNavModalWithLang = (props, langCode) => {
250
283
  if (!Array.isArray(props))
251
284
  return [];
@@ -381,6 +414,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
381
414
  }]
382
415
  }] });
383
416
 
417
+ class ScreenSizerService {
418
+ get width() {
419
+ if (isPlatformBrowser(this.platformId)) {
420
+ return Math.min(window.innerWidth, window.outerWidth);
421
+ }
422
+ return 0;
423
+ }
424
+ constructor() {
425
+ this.breakpoints = {
426
+ xs: 480,
427
+ sm: 768,
428
+ md: 1024,
429
+ lg: 1280,
430
+ xl: 1536,
431
+ };
432
+ this.isXs = signal(false);
433
+ this.isSm = signal(false);
434
+ this.isMd = signal(false);
435
+ this.isLg = signal(false);
436
+ this.isXl = signal(false);
437
+ this.minSm = signal(false);
438
+ this.minMd = signal(false);
439
+ this.minLg = signal(false);
440
+ this.minXl = signal(false);
441
+ this.platformId = inject(PLATFORM_ID);
442
+ if (isPlatformBrowser(this.platformId)) {
443
+ fromEvent(window, 'resize')
444
+ .pipe(debounceTime(200), map(() => this.width), distinctUntilChanged(), startWith(this.width))
445
+ .subscribe(width => this.updateFlags(width));
446
+ }
447
+ }
448
+ updateFlags(width) {
449
+ const { xs, sm, md, lg, xl } = this.breakpoints;
450
+ this.isXs.set(width < sm);
451
+ this.isSm.set(width >= sm && width < md);
452
+ this.isMd.set(width >= md && width < lg);
453
+ this.isLg.set(width >= lg && width < xl);
454
+ this.isXl.set(width >= xl);
455
+ this.minSm.set(width >= sm);
456
+ this.minMd.set(width >= md);
457
+ this.minLg.set(width >= lg);
458
+ this.minXl.set(width >= xl);
459
+ }
460
+ // Métodos rápidos si no usas signals directamente
461
+ isXsInstant() { return this.isXs(); }
462
+ isSmInstant() { return this.isSm(); }
463
+ isMdInstant() { return this.isMd(); }
464
+ isLgInstant() { return this.isLg(); }
465
+ isXlInstant() { return this.isXl(); }
466
+ minSmInstant() { return this.minSm(); }
467
+ minMdInstant() { return this.minMd(); }
468
+ minLgInstant() { return this.minLg(); }
469
+ minXlInstant() { return this.minXl(); }
470
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScreenSizerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
471
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScreenSizerService, providedIn: 'root' }); }
472
+ }
473
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScreenSizerService, decorators: [{
474
+ type: Injectable,
475
+ args: [{ providedIn: 'root' }]
476
+ }], ctorParameters: () => [] });
477
+
384
478
  /*
385
479
  * Public API Surface of ui-lib
386
480
  */
@@ -393,5 +487,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
393
487
  * Generated bundle index. Do not edit.
394
488
  */
395
489
 
396
- export { Default, HeaderClearComponent, HeroSectionComponent, LangModalComponent, MapperService, NavModalComponent, componentMappers, mapButtons, mapImage, mapImageOrGallery };
490
+ export { Default, HeaderClearComponent, HeaderMobileComponent, HeroSectionComponent, LangModalComponent, MapperService, NavModalComponent, ScreenSizerService, componentMappers, mapButtons, mapImage, mapImageOrGallery };
397
491
  //# sourceMappingURL=lluc_llull-ui-lib.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"lluc_llull-ui-lib.mjs","sources":["../../../projects/ui-lib/src/lib/Enum/link-type.enum.ts","../../../projects/ui-lib/src/lib/directives/link-type.directive.ts","../../../projects/ui-lib/src/lib/components/core/hero-section/hero-section.component.ts","../../../projects/ui-lib/src/lib/components/core/hero-section/hero-section.component.html","../../../projects/ui-lib/src/lib/components/core/hero-section/hero-section.stories.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/lang-modal.mapper.ts","../../../projects/ui-lib/src/lib/components/core/lang-modal/lang-modal.component.ts","../../../projects/ui-lib/src/lib/components/core/lang-modal/lang-modal.component.html","../../../projects/ui-lib/src/lib/components/core/nav-modal/nav-modal.component.ts","../../../projects/ui-lib/src/lib/components/core/nav-modal/nav-modal.component.html","../../../projects/ui-lib/src/lib/components/core/header-clear/header-clear.component.ts","../../../projects/ui-lib/src/lib/components/core/header-clear/header-clear.component.html","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/nav-modal.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/header-clear.mapper.ts","../../../projects/ui-lib/src/lib/utils/utils.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/hero-section.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/index.ts","../../../projects/ui-lib/src/lib/services/mapper/mapper.service.ts","../../../projects/ui-lib/src/public-api.ts","../../../projects/ui-lib/src/lluc_llull-ui-lib.ts"],"sourcesContent":["export enum LinkType {\n Internal = 'internal',\n External = 'external',\n Anchor = 'anchor',\n Pdf = 'pdf',\n NoLink = 'nolink',\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, EventEmitter, HostListener, inject, Input, OnInit, Output, PLATFORM_ID } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LinkType } from '../Enum/link-type.enum';\n\n@Directive({\n selector: '[linkType]',\n standalone: true,\n})\nexport class LinkTypeDirective implements OnInit {\n @Input() linkType?: LinkType;\n @Input() href?: string;\n @Output() anchorClicked = new EventEmitter<void>();\n\n private readonly platformId = inject(PLATFORM_ID);\n\n constructor(private readonly router: Router, private readonly elRef: ElementRef) {}\n\n ngOnInit(): void {\n this.setupLinkAttributes();\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event): void {\n if (!this.linkType || !this.href) {\n this.disableLink();\n return;\n }\n\n event.preventDefault();\n\n switch (this.linkType) {\n case 'internal':\n this.navigateInternal(this.href);\n break;\n case 'external':\n case 'pdf':\n this.openExternal(this.href);\n break;\n case 'anchor':\n this.scrollToAnchor(this.href);\n break;\n case 'nolink':\n this.disableLink();\n break;\n default:\n console.warn(`Unsupported linkType: ${this.linkType}`);\n }\n }\n\n private setupLinkAttributes() {\n if (!this.linkType || !this.href) {\n this.disableLink();\n return;\n }\n\n this.elRef.nativeElement.setAttribute('href', this.href);\n\n if (this.linkType === 'external') {\n this.elRef.nativeElement.setAttribute('rel', 'nofollow');\n }\n }\n\n private navigateInternal(url: string) {\n const cleanedUrl = url.trim().replace(/\\/+$/, '');\n this.anchorClicked.emit();\n this.router.navigateByUrl('/' + cleanedUrl);\n }\n\n private openExternal(url: string) {\n if (isPlatformBrowser(this.platformId)) {\n window.open(url, '_blank');\n }\n }\n\n private scrollToAnchor(id: string) {\n if (isPlatformBrowser(this.platformId)) {\n const el = document.getElementById(id);\n if (el) {\n const yOffset = -160;\n const y = el.getBoundingClientRect().top + window.scrollY + yOffset;\n window.scrollTo({ top: y, behavior: 'smooth' });\n this.anchorClicked.emit();\n } else {\n console.warn(`Anchor \"${id}\" not found`);\n }\n }\n }\n\n private disableLink() {\n const element = this.elRef.nativeElement;\n const parentLi = element.closest('li');\n const isInMenu = parentLi?.classList.contains('menu-item-has-children');\n\n if (!isInMenu) {\n element.removeAttribute('href');\n element.setAttribute('aria-disabled', 'true');\n element.setAttribute('tabindex', '-1');\n element.style.cursor = 'default';\n element.style.pointerEvents = 'none';\n }\n }\n}\nexport { LinkType };\n\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibButtonI } from '../../../interfaces';\nimport { LinkTypeDirective } from '../../../directives/link-type.directive';\n\n@Component({\n selector: 'lib-hero-section',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './hero-section.component.html',\n styleUrl: './hero-section.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeroSectionComponent {\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() text?: string;\n @Input() buttons?: UiLibButtonI[];\n}\n","<div class=\"hero-section\">\n @if (title) {\n <h1>{{ title }}</h1>\n }\n @if (text) {\n <p>{{ text }}</p>\n }\n @if (buttons && buttons.length > 0) {\n <div class=\"buttons\">\n @for (button of buttons; track $index) {\n <ng-container>\n <a class=\"btn btn-link\" [href]=\"button.url\" [linkType]=\"button.linkType\">\n {{ button.label }}\n </a>\n </ng-container>\n }\n </div>\n }\n</div>\n","import { LinkType } from \"../../../Enum/link-type.enum\";\nimport { HeroSectionComponent } from \"./hero-section.component\";\nimport { Meta, StoryObj } from '@storybook/angular';\n\nexport default {\n title: 'Core/HeroSection',\n component: HeroSectionComponent,\n tags: ['autodocs'],\n argTypes: {\n title: { control: 'text' },\n subtitle: { control: 'text' },\n text: { control: 'text' },\n buttons: { control: 'object' },\n },\n} as Meta<HeroSectionComponent>;\n\ntype Story = StoryObj<HeroSectionComponent>;\n\nexport const Default: Story = {\n args: {\n title: 'Título de ejemplo',\n subtitle: 'Subtítulo de ejemplo',\n text: 'Texto descriptivo de ejemplo para el Hero Section.',\n buttons: [\n { label: 'Botón 1', url: 'https://www.google.com', linkType: LinkType.External },\n { label: 'Botón 2', url: 'https://www.google.com', linkType: LinkType.External }\n ]\n }\n};","export const mapLangModal = (props: any[], currentLang: string = 'es') => {\n const safeProps = Array.isArray(props) ? props : [];\n const allTranslations = safeProps.flatMap(lang => Array.isArray(lang.lang_translations) ? lang.lang_translations : []);\n return safeProps.map((lang: any) => {\n const found = allTranslations.find(\n (t: any) => t.lang_code === lang.code && t.target_lang_code === currentLang\n );\n const label = found?.label || lang.code;\n return {\n id: lang.id,\n code: lang.code,\n label\n };\n });\n};","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Inject, Optional } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { UiLibLangItemI } from '../../../interfaces/ui-lib-lang-item.interface';\nimport { mapLangModal } from '../../../services/mapper/component-mappers/lang-modal.mapper';\n\ninterface LangModalData {\n langs: any[];\n currentLang: string;\n}\n\n@Component({\n selector: 'lib-lang-modal',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './lang-modal.component.html',\n styleUrl: './lang-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LangModalComponent {\n langs!: UiLibLangItemI[];\n\n constructor(\n @Optional() @Inject(MAT_DIALOG_DATA) public data: LangModalData,\n @Optional() public dialogRef?: MatDialogRef<LangModalComponent>\n ) {\n this.langs = mapLangModal(data.langs, data.currentLang);\n }\n\n selectLang(lang: UiLibLangItemI) {\n this.dialogRef?.close(lang);\n }\n}\n","@if (langs && langs.length > 0) {\n <ol>\n @for (lang of langs; track $index) {\n <li (click)=\"selectLang(lang)\">\n <span>{{ lang.label }}</span>\n </li>\n }\n </ol>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { UiLibNavItemsI } from '../../../interfaces/ui-lib-nav-items.interface';\nimport { LinkTypeDirective } from '../../../directives/link-type.directive';\n\n@Component({\n selector: 'lib-nav-modal',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './nav-modal.component.html',\n styleUrl: './nav-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NavModalComponent {\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibNavItemsI[];\n\n @Output() close = new EventEmitter<void>();\n\n closeModal() {\n this.close.emit();\n }\n}\n","<button (click)=\"closeModal()\" class=\"close-btn\">✕</button>\n@if (navItems && navItems.length > 0) {\n <ol>\n @for (item of navItems; track $index) {\n <a [href]=\"item.url\" [linkType]=\"item.linkType\" (click)=\"closeModal()\">\n <li>\n <span>{{ item.label }}</span>\n </li>\n </a>\n }\n </ol>\n}\n\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { LangModalComponent } from \"../lang-modal\";\nimport { NavModalComponent } from \"../nav-modal\";\nimport { UiLibImageI } from '../../../interfaces/ui-lib-image.interface';\nimport { UiLibNavItemsI } from '../../../interfaces/ui-lib-nav-items.interface';\n\n@Component({\n selector: 'lib-header-clear',\n standalone: true,\n imports: [CommonModule, LangModalComponent, NavModalComponent],\n templateUrl: './header-clear.component.html',\n styleUrl: './header-clear.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderClearComponent {\n isMenuOpen = false;\n \n @Input() logo?: UiLibImageI;\n @Input() lang?: string;\n @Input() navItems?: UiLibNavItemsI[];\n\n @Output() langModal = new EventEmitter<void>();\n @Output() theme = new EventEmitter<void>();\n\n openLanguagesModal(): void {\n this.langModal.emit();\n }\n\n toggleTheme(): void {\n this.theme.emit();\n }\n\n toggleMenu(): void {\n this.isMenuOpen = !this.isMenuOpen;\n }\n}\n","<header class=\"header-clear\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <span>★</span>\n <span>LLUC LLULL</span>\n </div>\n\n <div class=\"header-actions\">\n <!-- Idioma -->\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{lang}}</span>\n </button>\n\n <!-- Icono de recarga -->\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>🌙</span>\n </button>\n\n <!-- Icono de menú -->\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</header>\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n","import { ComponentMapperFn } from \"./types\";\n\nexport const mapNavModalWithLang = (props: any[], langCode: string) => {\n if (!Array.isArray(props)) return [];\n \n return props.map(item => {\n // Usar directamente la URL que ya viene en nav_link.url\n const url = item.nav_link?.url ?? item.nav_link?.external_url;\n \n return {\n label: item.label,\n url: url,\n linkType: item.nav_link?.linktype,\n children: item.nav_link?.children || [],\n active: item.nav_link?.active,\n order: item.nav_link?.order,\n };\n });\n};\n\nexport const mapNavModal: ComponentMapperFn = (props) => {\n if (!Array.isArray(props)) return [];\n \n return props.map(item => ({\n label: item.label,\n url: item.nav_link?.url ?? item.nav_link?.external_url,\n linkType: item.nav_link?.linktype,\n children: item.nav_link?.children || [],\n active: item.nav_link?.active,\n order: item.nav_link?.order,\n }));\n};","import { mapNavModalWithLang } from \"./nav-modal.mapper\";\nimport { ComponentMapperFn } from \"./types\";\n\nexport const mapHeaderClear: ComponentMapperFn = (props) => {\n // Obtener el idioma de las props\n const currentLang = props?.lang || 'es';\n \n // Mapear solo los navLinks del nav-modal con el idioma correcto\n const navItems = mapNavModalWithLang(props?.['nav-modal']?.navLinks || [], currentLang);\n \n return { \n logo: props?.logo,\n lang: currentLang,\n navItems: navItems\n };\n};","import { UiLibButtonI } from '../interfaces/ui-lib-button.interface';\nimport { UiLibImageI } from '../interfaces/ui-lib-image.interface';\n\nexport function mapButtons(data: any): UiLibButtonI[] {\n if (!Array.isArray(data)) return [];\n\n return data\n .filter((item) => item && typeof item === 'object')\n .map(\n (item): UiLibButtonI => ({\n label: item.label ?? '',\n url: item.url ?? '#',\n linkType: item.link_type ?? 'none',\n icon: item.icon,\n })\n );\n}\n\nexport function mapImage(data: any): UiLibImageI | null {\n if (!data || typeof data !== 'object') return null;\n\n return {\n url: data.url ?? '',\n alt: data.alt ?? '',\n width: data.width,\n height: data.height,\n format: data.format,\n };\n}\n\nexport function mapImageOrGallery(data: any): UiLibImageI[] {\n if (!data) return [];\n\n // Si es array → galería\n if (Array.isArray(data)) {\n return data\n .filter((img) => img && typeof img === 'object')\n .map((img) => mapImage(img)!)\n .filter(Boolean);\n }\n\n // Si es objeto → imagen única\n const single = mapImage(data);\n return single ? [single] : [];\n}\n","import { mapButtons } from '../../../utils/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapHeroSection: ComponentMapperFn = (props) => ({\n title: props?.texts?.title,\n subtitle: props?.texts?.subtitle,\n text: props?.texts?.text,\n buttons: mapButtons(props?.buttons),\n});\n","import { mapHeaderClear } from './header-clear.mapper';\nimport { mapHeroSection } from './hero-section.mapper';\nimport { mapLangModal } from './lang-modal.mapper';\nimport { mapNavModal } from './nav-modal.mapper';\n\nexport const componentMappers: Record<string, (props: any) => any> = {\n 'hero-section': mapHeroSection,\n 'header-clear': mapHeaderClear,\n 'nav-modal': mapNavModal,\n 'lang-modal': mapLangModal,\n};\n","import { inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { BodyComponent } from '../../interfaces/page-config.interface';\nimport { componentMappers } from './component-mappers';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapperService {\n private platformId = inject(PLATFORM_ID);\n\n mapComponents<T>(body: any[]): BodyComponent<T>[] {\n if (!body || body.length === 0) {\n return [];\n }\n\n return body\n .filter(\n (component) => component && component.name && component.props\n )\n .map((component) => {\n const name = component.name.toLowerCase();\n const mapper = componentMappers[name];\n\n const mapped: BodyComponent<T> = {\n name,\n order: component.order,\n props: {} as T,\n };\n\n if (mapper) {\n try {\n mapped.props = mapper(component.props) as T;\n } catch (e) {\n console.error(\n `Error mapping props for component \"${name}\"`,\n e\n );\n }\n } else {\n console.warn(`No mapper found for component \"${name}\"`);\n }\n\n return mapped;\n });\n }\n}\n","/*\n * Public API Surface of ui-lib\n */\n\n/* COMPONENTS */\nexport * from './lib/components/core/index';\n// export * from './lib/components/shared/index';\n\n// /* SERVICES */\nexport * from './lib/services';\n\n// /* INTERFACES */\nexport * from './lib/interfaces/index';\n\n// /* UTILS */\nexport * from './lib/utils';\n\n// /* ENUMS */\n// export * from './lib/Enum';\n\n// export * from './lib/ui-lib.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"lluc_llull-ui-lib.mjs","sources":["../../../projects/ui-lib/src/lib/Enum/link-type.enum.ts","../../../projects/ui-lib/src/lib/directives/link-type.directive.ts","../../../projects/ui-lib/src/lib/components/core/hero-section/hero-section.component.ts","../../../projects/ui-lib/src/lib/components/core/hero-section/hero-section.component.html","../../../projects/ui-lib/src/lib/components/core/hero-section/hero-section.stories.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/lang-modal.mapper.ts","../../../projects/ui-lib/src/lib/components/core/lang-modal/lang-modal.component.ts","../../../projects/ui-lib/src/lib/components/core/lang-modal/lang-modal.component.html","../../../projects/ui-lib/src/lib/components/core/nav-modal/nav-modal.component.ts","../../../projects/ui-lib/src/lib/components/core/nav-modal/nav-modal.component.html","../../../projects/ui-lib/src/lib/components/core/header-clear/header-clear.component.ts","../../../projects/ui-lib/src/lib/components/core/header-clear/header-clear.component.html","../../../projects/ui-lib/src/lib/components/core/header-mobile/header-mobile.component.ts","../../../projects/ui-lib/src/lib/components/core/header-mobile/header-mobile.component.html","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/nav-modal.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/header-clear.mapper.ts","../../../projects/ui-lib/src/lib/utils/utils.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/hero-section.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/index.ts","../../../projects/ui-lib/src/lib/services/mapper/mapper.service.ts","../../../projects/ui-lib/src/lib/services/screen-sizer/screen-sizer.service.ts","../../../projects/ui-lib/src/public-api.ts","../../../projects/ui-lib/src/lluc_llull-ui-lib.ts"],"sourcesContent":["export enum LinkType {\n Internal = 'internal',\n External = 'external',\n Anchor = 'anchor',\n Pdf = 'pdf',\n NoLink = 'nolink',\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, EventEmitter, HostListener, inject, Input, OnInit, Output, PLATFORM_ID } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LinkType } from '../Enum/link-type.enum';\n\n@Directive({\n selector: '[linkType]',\n standalone: true,\n})\nexport class LinkTypeDirective implements OnInit {\n @Input() linkType?: LinkType;\n @Input() href?: string;\n @Output() anchorClicked = new EventEmitter<void>();\n\n private readonly platformId = inject(PLATFORM_ID);\n\n constructor(private readonly router: Router, private readonly elRef: ElementRef) {}\n\n ngOnInit(): void {\n this.setupLinkAttributes();\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event): void {\n if (!this.linkType || !this.href) {\n this.disableLink();\n return;\n }\n\n event.preventDefault();\n\n switch (this.linkType) {\n case 'internal':\n this.navigateInternal(this.href);\n break;\n case 'external':\n case 'pdf':\n this.openExternal(this.href);\n break;\n case 'anchor':\n this.scrollToAnchor(this.href);\n break;\n case 'nolink':\n this.disableLink();\n break;\n default:\n console.warn(`Unsupported linkType: ${this.linkType}`);\n }\n }\n\n private setupLinkAttributes() {\n if (!this.linkType || !this.href) {\n this.disableLink();\n return;\n }\n\n this.elRef.nativeElement.setAttribute('href', this.href);\n\n if (this.linkType === 'external') {\n this.elRef.nativeElement.setAttribute('rel', 'nofollow');\n }\n }\n\n private navigateInternal(url: string) {\n const cleanedUrl = url.trim().replace(/\\/+$/, '');\n this.anchorClicked.emit();\n this.router.navigateByUrl('/' + cleanedUrl);\n }\n\n private openExternal(url: string) {\n if (isPlatformBrowser(this.platformId)) {\n window.open(url, '_blank');\n }\n }\n\n private scrollToAnchor(id: string) {\n if (isPlatformBrowser(this.platformId)) {\n const el = document.getElementById(id);\n if (el) {\n const yOffset = -160;\n const y = el.getBoundingClientRect().top + window.scrollY + yOffset;\n window.scrollTo({ top: y, behavior: 'smooth' });\n this.anchorClicked.emit();\n } else {\n console.warn(`Anchor \"${id}\" not found`);\n }\n }\n }\n\n private disableLink() {\n const element = this.elRef.nativeElement;\n const parentLi = element.closest('li');\n const isInMenu = parentLi?.classList.contains('menu-item-has-children');\n\n if (!isInMenu) {\n element.removeAttribute('href');\n element.setAttribute('aria-disabled', 'true');\n element.setAttribute('tabindex', '-1');\n element.style.cursor = 'default';\n element.style.pointerEvents = 'none';\n }\n }\n}\nexport { LinkType };\n\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibButtonI } from '../../../interfaces';\nimport { LinkTypeDirective } from '../../../directives/link-type.directive';\n\n@Component({\n selector: 'lib-hero-section',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './hero-section.component.html',\n styleUrl: './hero-section.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeroSectionComponent {\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() text?: string;\n @Input() buttons?: UiLibButtonI[];\n}\n","<div class=\"hero-section\">\n @if (title) {\n <h1>{{ title }}</h1>\n }\n @if (text) {\n <p>{{ text }}</p>\n }\n @if (buttons && buttons.length > 0) {\n <div class=\"buttons\">\n @for (button of buttons; track $index) {\n <ng-container>\n <a class=\"btn btn-link\" [href]=\"button.url\" [linkType]=\"button.linkType\">\n {{ button.label }}\n </a>\n </ng-container>\n }\n </div>\n }\n</div>\n","import { LinkType } from \"../../../Enum/link-type.enum\";\nimport { HeroSectionComponent } from \"./hero-section.component\";\nimport { Meta, StoryObj } from '@storybook/angular';\n\nexport default {\n title: 'Core/HeroSection',\n component: HeroSectionComponent,\n tags: ['autodocs'],\n argTypes: {\n title: { control: 'text' },\n subtitle: { control: 'text' },\n text: { control: 'text' },\n buttons: { control: 'object' },\n },\n} as Meta<HeroSectionComponent>;\n\ntype Story = StoryObj<HeroSectionComponent>;\n\nexport const Default: Story = {\n args: {\n title: 'Título de ejemplo',\n subtitle: 'Subtítulo de ejemplo',\n text: 'Texto descriptivo de ejemplo para el Hero Section.',\n buttons: [\n { label: 'Botón 1', url: 'https://www.google.com', linkType: LinkType.External },\n { label: 'Botón 2', url: 'https://www.google.com', linkType: LinkType.External }\n ]\n }\n};","export const mapLangModal = (props: any[], currentLang: string = 'es') => {\n const safeProps = Array.isArray(props) ? props : [];\n const allTranslations = safeProps.flatMap(lang => Array.isArray(lang.lang_translations) ? lang.lang_translations : []);\n return safeProps.map((lang: any) => {\n const found = allTranslations.find(\n (t: any) => t.lang_code === lang.code && t.target_lang_code === currentLang\n );\n const label = found?.label || lang.code;\n return {\n id: lang.id,\n code: lang.code,\n label\n };\n });\n};","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Inject, Optional } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { UiLibLangItemI } from '../../../interfaces/ui-lib-lang-item.interface';\nimport { mapLangModal } from '../../../services/mapper/component-mappers/lang-modal.mapper';\n\ninterface LangModalData {\n langs: any[];\n currentLang: string;\n}\n\n@Component({\n selector: 'lib-lang-modal',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './lang-modal.component.html',\n styleUrl: './lang-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LangModalComponent {\n langs!: UiLibLangItemI[];\n\n constructor(\n @Optional() @Inject(MAT_DIALOG_DATA) public data: LangModalData,\n @Optional() public dialogRef?: MatDialogRef<LangModalComponent>\n ) {\n this.langs = mapLangModal(data.langs, data.currentLang);\n }\n\n selectLang(lang: UiLibLangItemI) {\n this.dialogRef?.close(lang);\n }\n}\n","@if (langs && langs.length > 0) {\n <ol>\n @for (lang of langs; track $index) {\n <li (click)=\"selectLang(lang)\">\n <span>{{ lang.label }}</span>\n </li>\n }\n </ol>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { UiLibNavItemsI } from '../../../interfaces/ui-lib-nav-items.interface';\nimport { LinkTypeDirective } from '../../../directives/link-type.directive';\n\n@Component({\n selector: 'lib-nav-modal',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './nav-modal.component.html',\n styleUrl: './nav-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NavModalComponent {\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibNavItemsI[];\n\n @Output() close = new EventEmitter<void>();\n\n closeModal() {\n this.close.emit();\n }\n}\n","<button (click)=\"closeModal()\" class=\"close-btn\">✕</button>\n@if (navItems && navItems.length > 0) {\n <ol>\n @for (item of navItems; track $index) {\n <a [href]=\"item.url\" [linkType]=\"item.linkType\" (click)=\"closeModal()\">\n <li>\n <span>{{ item.label }}</span>\n </li>\n </a>\n }\n </ol>\n}\n\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { LangModalComponent } from \"../lang-modal\";\nimport { NavModalComponent } from \"../nav-modal\";\nimport { UiLibImageI } from '../../../interfaces/ui-lib-image.interface';\nimport { UiLibNavItemsI } from '../../../interfaces/ui-lib-nav-items.interface';\n\n@Component({\n selector: 'lib-header-clear',\n standalone: true,\n imports: [CommonModule, LangModalComponent, NavModalComponent],\n templateUrl: './header-clear.component.html',\n styleUrl: './header-clear.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderClearComponent {\n isMenuOpen = false;\n \n @Input() logo?: UiLibImageI;\n @Input() lang?: string;\n @Input() navItems?: UiLibNavItemsI[];\n\n @Output() langModal = new EventEmitter<void>();\n @Output() theme = new EventEmitter<void>();\n\n openLanguagesModal(): void {\n this.langModal.emit();\n }\n\n toggleTheme(): void {\n this.theme.emit();\n }\n\n toggleMenu(): void {\n this.isMenuOpen = !this.isMenuOpen;\n }\n}\n","<header class=\"header-clear\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <span>★</span>\n <span>LLUC LLULL</span>\n </div>\n\n <div class=\"header-actions\">\n <!-- Idioma -->\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{lang}}</span>\n </button>\n\n <!-- Icono de recarga -->\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>🌙</span>\n </button>\n\n <!-- Icono de menú -->\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</header>\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { UiLibNavItemsI } from '../../../interfaces/ui-lib-nav-items.interface';\nimport { LangModalComponent } from '../lang-modal/lang-modal.component';\nimport { NavModalComponent } from '../nav-modal/nav-modal.component';\n\n@Component({\n selector: 'lib-header-mobile',\n standalone: true,\n imports: [CommonModule, LangModalComponent, NavModalComponent],\n templateUrl: './header-mobile.component.html',\n styleUrl: './header-mobile.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderMobileComponent {\n isMenuOpen = false;\n\n @Input() lang?: string;\n @Input() navItems?: UiLibNavItemsI[];\n\n @Output() langModal = new EventEmitter<void>();\n @Output() theme = new EventEmitter<void>();\n\n openLanguagesModal(): void {\n this.langModal.emit();\n }\n\n toggleTheme(): void {\n this.theme.emit();\n }\n\n toggleMenu(): void {\n this.isMenuOpen = !this.isMenuOpen;\n }\n}\n","<header class=\"header-mobile\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <span>★</span>\n <span>LLUC LLULL</span>\n </div>\n</header>\n\n<div class=\"header-actions\">\n <!-- Idioma -->\n <div class=\"left\">\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n </div>\n\n <!-- Icono de recarga -->\n <div class=\"center\">\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>🌙</span>\n </button>\n </div>\n\n <!-- Icono de menú -->\n <div class=\"right\">\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</div>\n\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n\n","import { ComponentMapperFn } from \"./types\";\n\nexport const mapNavModalWithLang = (props: any[], langCode: string) => {\n if (!Array.isArray(props)) return [];\n \n return props.map(item => {\n // Usar directamente la URL que ya viene en nav_link.url\n const url = item.nav_link?.url ?? item.nav_link?.external_url;\n \n return {\n label: item.label,\n url: url,\n linkType: item.nav_link?.linktype,\n children: item.nav_link?.children || [],\n active: item.nav_link?.active,\n order: item.nav_link?.order,\n };\n });\n};\n\nexport const mapNavModal: ComponentMapperFn = (props) => {\n if (!Array.isArray(props)) return [];\n \n return props.map(item => ({\n label: item.label,\n url: item.nav_link?.url ?? item.nav_link?.external_url,\n linkType: item.nav_link?.linktype,\n children: item.nav_link?.children || [],\n active: item.nav_link?.active,\n order: item.nav_link?.order,\n }));\n};","import { mapNavModalWithLang } from \"./nav-modal.mapper\";\nimport { ComponentMapperFn } from \"./types\";\n\nexport const mapHeaderClear: ComponentMapperFn = (props) => {\n // Obtener el idioma de las props\n const currentLang = props?.lang || 'es';\n \n // Mapear solo los navLinks del nav-modal con el idioma correcto\n const navItems = mapNavModalWithLang(props?.['nav-modal']?.navLinks || [], currentLang);\n \n return { \n logo: props?.logo,\n lang: currentLang,\n navItems: navItems\n };\n};","import { UiLibButtonI } from '../interfaces/ui-lib-button.interface';\nimport { UiLibImageI } from '../interfaces/ui-lib-image.interface';\n\nexport function mapButtons(data: any): UiLibButtonI[] {\n if (!Array.isArray(data)) return [];\n\n return data\n .filter((item) => item && typeof item === 'object')\n .map(\n (item): UiLibButtonI => ({\n label: item.label ?? '',\n url: item.url ?? '#',\n linkType: item.link_type ?? 'none',\n icon: item.icon,\n })\n );\n}\n\nexport function mapImage(data: any): UiLibImageI | null {\n if (!data || typeof data !== 'object') return null;\n\n return {\n url: data.url ?? '',\n alt: data.alt ?? '',\n width: data.width,\n height: data.height,\n format: data.format,\n };\n}\n\nexport function mapImageOrGallery(data: any): UiLibImageI[] {\n if (!data) return [];\n\n // Si es array → galería\n if (Array.isArray(data)) {\n return data\n .filter((img) => img && typeof img === 'object')\n .map((img) => mapImage(img)!)\n .filter(Boolean);\n }\n\n // Si es objeto → imagen única\n const single = mapImage(data);\n return single ? [single] : [];\n}\n","import { mapButtons } from '../../../utils/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapHeroSection: ComponentMapperFn = (props) => ({\n title: props?.texts?.title,\n subtitle: props?.texts?.subtitle,\n text: props?.texts?.text,\n buttons: mapButtons(props?.buttons),\n});\n","import { mapHeaderClear } from './header-clear.mapper';\nimport { mapHeroSection } from './hero-section.mapper';\nimport { mapLangModal } from './lang-modal.mapper';\nimport { mapNavModal } from './nav-modal.mapper';\n\nexport const componentMappers: Record<string, (props: any) => any> = {\n 'hero-section': mapHeroSection,\n 'header-clear': mapHeaderClear,\n 'nav-modal': mapNavModal,\n 'lang-modal': mapLangModal,\n};\n","import { inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { BodyComponent } from '../../interfaces/page-config.interface';\nimport { componentMappers } from './component-mappers';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapperService {\n private platformId = inject(PLATFORM_ID);\n\n mapComponents<T>(body: any[]): BodyComponent<T>[] {\n if (!body || body.length === 0) {\n return [];\n }\n\n return body\n .filter(\n (component) => component && component.name && component.props\n )\n .map((component) => {\n const name = component.name.toLowerCase();\n const mapper = componentMappers[name];\n\n const mapped: BodyComponent<T> = {\n name,\n order: component.order,\n props: {} as T,\n };\n\n if (mapper) {\n try {\n mapped.props = mapper(component.props) as T;\n } catch (e) {\n console.error(\n `Error mapping props for component \"${name}\"`,\n e\n );\n }\n } else {\n console.warn(`No mapper found for component \"${name}\"`);\n }\n\n return mapped;\n });\n }\n}\n","import { Injectable, PLATFORM_ID, inject, signal } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map, startWith } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class ScreenSizerService {\n readonly breakpoints = {\n xs: 480,\n sm: 768,\n md: 1024,\n lg: 1280,\n xl: 1536,\n };\n\n readonly isXs = signal(false);\n readonly isSm = signal(false);\n readonly isMd = signal(false);\n readonly isLg = signal(false);\n readonly isXl = signal(false);\n\n readonly minSm = signal(false);\n readonly minMd = signal(false);\n readonly minLg = signal(false);\n readonly minXl = signal(false);\n\n private readonly platformId = inject(PLATFORM_ID);\n\n get width(): number {\n if (isPlatformBrowser(this.platformId)) {\n return Math.min(window.innerWidth, window.outerWidth);\n }\n return 0;\n }\n\n constructor() {\n if (isPlatformBrowser(this.platformId)) {\n fromEvent(window, 'resize')\n .pipe(\n debounceTime(200),\n map(() => this.width),\n distinctUntilChanged(),\n startWith(this.width)\n )\n .subscribe(width => this.updateFlags(width));\n }\n }\n\n private updateFlags(width: number) {\n const { xs, sm, md, lg, xl } = this.breakpoints;\n\n this.isXs.set(width < sm);\n this.isSm.set(width >= sm && width < md);\n this.isMd.set(width >= md && width < lg);\n this.isLg.set(width >= lg && width < xl);\n this.isXl.set(width >= xl);\n\n this.minSm.set(width >= sm);\n this.minMd.set(width >= md);\n this.minLg.set(width >= lg);\n this.minXl.set(width >= xl);\n }\n\n // Métodos rápidos si no usas signals directamente\n isXsInstant() { return this.isXs(); }\n isSmInstant() { return this.isSm(); }\n isMdInstant() { return this.isMd(); }\n isLgInstant() { return this.isLg(); }\n isXlInstant() { return this.isXl(); }\n\n minSmInstant() { return this.minSm(); }\n minMdInstant() { return this.minMd(); }\n minLgInstant() { return this.minLg(); }\n minXlInstant() { return this.minXl(); }\n}\n","/*\n * Public API Surface of ui-lib\n */\n\n/* COMPONENTS */\nexport * from './lib/components/core/index';\n// export * from './lib/components/shared/index';\n\n// /* SERVICES */\nexport * from './lib/services';\n\n// /* INTERFACES */\nexport * from './lib/interfaces/index';\n\n// /* UTILS */\nexport * from './lib/utils';\n\n// /* ENUMS */\n// export * from './lib/Enum';\n\n// export * from './lib/ui-lib.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
@@ -1,2 +1,7 @@
1
+ import { UiLibImageI } from "../../../interfaces/ui-lib-image.interface";
2
+ import { UiLibNavItemsI } from "../../../interfaces/ui-lib-nav-items.interface";
1
3
  export interface HeaderClearI {
4
+ logo?: UiLibImageI;
5
+ lang?: string;
6
+ navItems?: UiLibNavItemsI[];
2
7
  }
@@ -0,0 +1,15 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { UiLibNavItemsI } from '../../../interfaces/ui-lib-nav-items.interface';
3
+ import * as i0 from "@angular/core";
4
+ export declare class HeaderMobileComponent {
5
+ isMenuOpen: boolean;
6
+ lang?: string;
7
+ navItems?: UiLibNavItemsI[];
8
+ langModal: EventEmitter<void>;
9
+ theme: EventEmitter<void>;
10
+ openLanguagesModal(): void;
11
+ toggleTheme(): void;
12
+ toggleMenu(): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<HeaderMobileComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<HeaderMobileComponent, "lib-header-mobile", never, { "lang": { "alias": "lang"; "required": false; }; "navItems": { "alias": "navItems"; "required": false; }; }, { "langModal": "langModal"; "theme": "theme"; }, never, never, true, never>;
15
+ }
@@ -0,0 +1,7 @@
1
+ import { UiLibImageI } from "../../../interfaces/ui-lib-image.interface";
2
+ import { UiLibNavItemsI } from "../../../interfaces/ui-lib-nav-items.interface";
3
+ export interface HeaderMobileI {
4
+ logo?: UiLibImageI;
5
+ lang?: string;
6
+ navItems?: UiLibNavItemsI[];
7
+ }
@@ -0,0 +1,2 @@
1
+ export * from './header-mobile.component';
2
+ export * from './header-mobile.interface';
@@ -2,3 +2,4 @@ export * from './hero-section';
2
2
  export * from './header-clear';
3
3
  export * from './nav-modal';
4
4
  export * from './lang-modal';
5
+ export * from './header-mobile';
@@ -1 +1,2 @@
1
1
  export * from './mapper';
2
+ export * from './screen-sizer';
@@ -0,0 +1 @@
1
+ export * from './screen-sizer.service';
@@ -0,0 +1,34 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ScreenSizerService {
3
+ readonly breakpoints: {
4
+ xs: number;
5
+ sm: number;
6
+ md: number;
7
+ lg: number;
8
+ xl: number;
9
+ };
10
+ readonly isXs: import("@angular/core").WritableSignal<boolean>;
11
+ readonly isSm: import("@angular/core").WritableSignal<boolean>;
12
+ readonly isMd: import("@angular/core").WritableSignal<boolean>;
13
+ readonly isLg: import("@angular/core").WritableSignal<boolean>;
14
+ readonly isXl: import("@angular/core").WritableSignal<boolean>;
15
+ readonly minSm: import("@angular/core").WritableSignal<boolean>;
16
+ readonly minMd: import("@angular/core").WritableSignal<boolean>;
17
+ readonly minLg: import("@angular/core").WritableSignal<boolean>;
18
+ readonly minXl: import("@angular/core").WritableSignal<boolean>;
19
+ private readonly platformId;
20
+ get width(): number;
21
+ constructor();
22
+ private updateFlags;
23
+ isXsInstant(): boolean;
24
+ isSmInstant(): boolean;
25
+ isMdInstant(): boolean;
26
+ isLgInstant(): boolean;
27
+ isXlInstant(): boolean;
28
+ minSmInstant(): boolean;
29
+ minMdInstant(): boolean;
30
+ minLgInstant(): boolean;
31
+ minXlInstant(): boolean;
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScreenSizerService, never>;
33
+ static ɵprov: i0.ɵɵInjectableDeclaration<ScreenSizerService>;
34
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lluc_llull/ui-lib",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.3.0",
6
6
  "@angular/core": "^17.3.0"
@@ -0,0 +1,21 @@
1
+ @use 'breakpoints' as *;
2
+
3
+ @mixin respond-min($breakpoint) {
4
+ @if map-has-key($breakpoints, $breakpoint) {
5
+ @media (min-width: map-get($breakpoints, $breakpoint)) {
6
+ @content;
7
+ }
8
+ } @else {
9
+ @warn "El breakpoint '#{$breakpoint}' no está definido en _breakpoints.scss.";
10
+ }
11
+ }
12
+
13
+ @mixin respond-max($breakpoint) {
14
+ @if map-has-key($breakpoints, $breakpoint) {
15
+ @media (max-width: map-get($breakpoints, $breakpoint)) {
16
+ @content;
17
+ }
18
+ } @else {
19
+ @warn "El breakpoint '#{$breakpoint}' no está definido en _breakpoints.scss.";
20
+ }
21
+ }
@@ -0,0 +1,3 @@
1
+ @forward 'variables';
2
+ @forward 'mixins';
3
+ @forward 'breakpoints';
@@ -1,8 +1,7 @@
1
- @use 'variables';
2
- @use 'mixins';
1
+ @use '../abstracts' as *;
3
2
 
4
3
  .btn {
5
- padding: variables.$spacing-sm variables.$spacing-md;
4
+ padding: $spacing-sm $spacing-md;
6
5
  border-radius: 6px;
7
6
  font-weight: 600;
8
7
  cursor: pointer;
@@ -14,28 +13,28 @@
14
13
  }
15
14
 
16
15
  .btn-primary {
17
- background-color: variables.$color-primary;
16
+ background-color: $color-primary;
18
17
  color: white;
19
18
 
20
19
  &:hover {
21
- background-color: darken(variables.$color-primary, 10%);
20
+ background-color: darken($color-primary, 10%);
22
21
  }
23
22
  }
24
23
 
25
24
  .btn-secondary {
26
25
  background: none;
27
- border: 1px solid variables.$color-primary;
28
- color: variables.$color-primary;
26
+ border: 1px solid $color-primary;
27
+ color: $color-primary;
29
28
 
30
29
  &:hover {
31
- background-color: variables.$color-primary;
30
+ background-color: $color-primary;
32
31
  color: white;
33
32
  }
34
33
  }
35
34
 
36
35
  .btn-link {
37
36
  background: none;
38
- color: variables.$color-primary;
37
+ color: $color-primary;
39
38
 
40
39
  &:hover {
41
40
  text-decoration: underline;
@@ -0,0 +1,13 @@
1
+ @use '../abstracts' as *;
2
+
3
+ body {
4
+ font-family: $font-base;
5
+ font-size: 16px;
6
+ color: $color-text;
7
+ background-color: $color-bg;
8
+ }
9
+
10
+ a {
11
+ text-decoration: none;
12
+ color: $color-primary;
13
+ }
@@ -0,0 +1,2 @@
1
+ @forward 'common';
2
+ @forward 'globals';
@@ -0,0 +1,3 @@
1
+ @use 'abstracts';
2
+ @use 'base';
3
+ @use 'themes';
File without changes
File without changes
@@ -0,0 +1,2 @@
1
+ @forward 'dark';
2
+ @forward 'light';
@@ -1,11 +0,0 @@
1
- @use 'breakpoints' as *;
2
-
3
- @mixin respond($breakpoint) {
4
- @if map-has-key($breakpoints, $breakpoint) {
5
- @media (min-width: map-get($breakpoints, $breakpoint)) {
6
- @content;
7
- }
8
- } @else {
9
- @warn "El breakpoint '#{$breakpoint}' no está definido en _breakpoints.scss.";
10
- }
11
- }
@@ -1,15 +0,0 @@
1
- @use './variables';
2
- @use './mixins';
3
- @use './common.scss';
4
-
5
- body {
6
- font-family: variables.$font-base;
7
- font-size: 16px;
8
- color: variables.$color-text;
9
- background-color: variables.$color-bg;
10
- }
11
-
12
- a {
13
- text-decoration: none;
14
- color: variables.$color-primary;
15
- }