@lluc_llull/ui-lib 0.33.4 → 0.33.6

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 (29) hide show
  1. package/fesm2022/lluc_llull-ui-lib-content-asymmetric-media.mjs +1 -1
  2. package/fesm2022/lluc_llull-ui-lib-content-asymmetric-media.mjs.map +1 -1
  3. package/fesm2022/lluc_llull-ui-lib-content-columns-media-stacked.mjs +1 -1
  4. package/fesm2022/lluc_llull-ui-lib-content-columns-media-stacked.mjs.map +1 -1
  5. package/fesm2022/lluc_llull-ui-lib-content-contact-minimal.mjs +1 -1
  6. package/fesm2022/lluc_llull-ui-lib-content-contact-minimal.mjs.map +1 -1
  7. package/fesm2022/lluc_llull-ui-lib-content-hero-section.mjs +1 -1
  8. package/fesm2022/lluc_llull-ui-lib-content-hero-section.mjs.map +1 -1
  9. package/fesm2022/lluc_llull-ui-lib-content-media-intro.mjs +1 -1
  10. package/fesm2022/lluc_llull-ui-lib-content-media-intro.mjs.map +1 -1
  11. package/fesm2022/lluc_llull-ui-lib-content-media-split.mjs +1 -1
  12. package/fesm2022/lluc_llull-ui-lib-content-media-split.mjs.map +1 -1
  13. package/fesm2022/lluc_llull-ui-lib-content-mosaic-grid.mjs +1 -1
  14. package/fesm2022/lluc_llull-ui-lib-content-mosaic-grid.mjs.map +1 -1
  15. package/fesm2022/lluc_llull-ui-lib-content-mosaic-parallax.mjs +3 -3
  16. package/fesm2022/lluc_llull-ui-lib-content-mosaic-parallax.mjs.map +1 -1
  17. package/fesm2022/lluc_llull-ui-lib-content-split-previewer.mjs +1 -1
  18. package/fesm2022/lluc_llull-ui-lib-content-split-previewer.mjs.map +1 -1
  19. package/fesm2022/lluc_llull-ui-lib-content.mjs +10 -10
  20. package/fesm2022/lluc_llull-ui-lib-content.mjs.map +1 -1
  21. package/fesm2022/lluc_llull-ui-lib-footers-legal-footer.mjs +3 -3
  22. package/fesm2022/lluc_llull-ui-lib-footers-legal-footer.mjs.map +1 -1
  23. package/fesm2022/lluc_llull-ui-lib-footers.mjs +3 -3
  24. package/fesm2022/lluc_llull-ui-lib-footers.mjs.map +1 -1
  25. package/fesm2022/lluc_llull-ui-lib-shared.mjs +28 -12
  26. package/fesm2022/lluc_llull-ui-lib-shared.mjs.map +1 -1
  27. package/package.json +17 -17
  28. package/shared/ui-icon/ui-icon.component.d.ts +2 -1
  29. package/shared/ui-image/ui-image.component.d.ts +4 -1
@@ -1,7 +1,7 @@
1
1
  import * as i1 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Input, Component } from '@angular/core';
4
+ import { Input, ChangeDetectionStrategy, Component } from '@angular/core';
5
5
  import { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';
6
6
 
7
7
  class LegalFooterComponent {
@@ -11,11 +11,11 @@ class LegalFooterComponent {
11
11
  links;
12
12
  variant = 'simple';
13
13
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: LegalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: LegalFooterComponent, isStandalone: true, selector: "lib-legal-footer", inputs: { year: "year", brand: "brand", credits: "credits", links: "links", variant: "variant" }, host: { styleAttribute: "display: contents" }, ngImport: i0, template: "<div class=\"legal-footer col-span-full sm:col-span-12 sm:col-start-1\" [ngClass]=\"variant\">\n <!-- Variante simple -->\n @if (variant === 'simple') {\n <div class=\"legal-footer__simple main-grid col-span-full\">\n <span class=\"legal-footer__simple-brand col-span-full sm:col-span-6 sm:col-start-1\">\n <b>{{ brand }} \u00A9 {{ year }}</b>\n </span>\n <span class=\"legal-footer__simple-credits col-span-full sm:col-span-6 sm:col-start-7\">{{ credits }}</span>\n </div>\n }\n\n <!-- Variante extendida -->\n @if (variant === 'extended') {\n <div class=\"legal-footer__extended col-span-full\">\n <span class=\"legal-footer__year col-span-full sm:col-span-3 sm:col-start-1\">\n <b>{{ brand }} \u00A9 {{ year }}</b>\n </span>\n\n <div class=\"legal-footer__right col-span-full sm:col-span-9 sm:col-start-4\">\n @if (links?.length) {\n <ul class=\"legal-footer__links\">\n @for (link of links; track $index) {\n <li>\n <a [href]=\"link.url\">{{ link.label }}</a>\n </li>\n }\n <li class=\"legal-footer__credits\">{{ credits }}</li>\n </ul>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":root[data-theme=dark]{color-scheme:dark;--color-primary: #007bff;--color-primary-raw: 0, 123, 255;--color-primary-10: rgba(var(--color-primary-raw), .1);--color-primary-20: rgba(var(--color-primary-raw), .2);--color-primary-30: rgba(var(--color-primary-raw), .3);--color-primary-40: rgba(var(--color-primary-raw), .4);--color-primary-50: rgba(var(--color-primary-raw), .5);--color-primary-60: rgba(var(--color-primary-raw), .6);--color-primary-70: rgba(var(--color-primary-raw), .7);--color-primary-80: rgba(var(--color-primary-raw), .8);--color-primary-90: rgba(var(--color-primary-raw), .9);--color-secondary: #e2e8f0;--color-secondary-raw: 226, 232, 240;--color-secondary-10: rgba(var(--color-secondary-raw), .1);--color-secondary-20: rgba(var(--color-secondary-raw), .2);--color-secondary-30: rgba(var(--color-secondary-raw), .3);--color-secondary-40: rgba(var(--color-secondary-raw), .4);--color-secondary-50: rgba(var(--color-secondary-raw), .5);--color-secondary-60: rgba(var(--color-secondary-raw), .6);--color-secondary-70: rgba(var(--color-secondary-raw), .7);--color-secondary-80: rgba(var(--color-secondary-raw), .8);--color-secondary-90: rgba(var(--color-secondary-raw), .9);--header-bg: transparent;--header-bg-fixed-dark: #1a1d21;--header-bg-fixed-light: #e2e8f0;--header-mobile-bg: #1a1d21;--header-logo-text: #e2e8f0;--header-logo-text-dark: #e2e8f0;--header-logo-text-light: #1a1d21;--header-link: #e2e8f0;--header-link-hover: #60a5fa;--footer-bg: #0f1117;--footer-text: #e2e8f0;--footer-text-hover: #60a5fa;--footer-links: #e2e8f0;--footer-links-hover: #60a5fa;--footer-arrows: #e2e8f0;--footer-arrows-hover: #0f1117;--footer-arrows-bg: #2a2d35;--footer-arrows-bg-hover: #3a3d45;--content-bg: #0f1117;--content-bg-light: #0f1117;--content-bg-dark: #f5f5f5;--content-overlay: rgba(0, 0, 0, .6);--text-primary: #e2e8f0;--text-primary-raw: 30, 37, 48;--text-primary-10: rgba(var(--text-primary-raw), .1);--text-primary-20: rgba(var(--text-primary-raw), .2);--text-primary-30: rgba(var(--text-primary-raw), .3);--text-primary-40: rgba(var(--text-primary-raw), .4);--text-primary-50: rgba(var(--text-primary-raw), .5);--text-primary-60: rgba(var(--text-primary-raw), .6);--text-primary-70: rgba(var(--text-primary-raw), .7);--text-primary-80: rgba(var(--text-primary-raw), .8);--text-primary-90: rgba(var(--text-primary-raw), .9);--text-secondary: rgba(30, 37, 48, .6);--text-secondary-raw: 30, 37, 48;--text-secondary-10: rgba(var(--text-secondary-raw), .1);--text-secondary-20: rgba(var(--text-secondary-raw), .2);--text-secondary-30: rgba(var(--text-secondary-raw), .3);--text-secondary-40: rgba(var(--text-secondary-raw), .4);--text-secondary-50: rgba(var(--text-secondary-raw), .5);--text-secondary-60: rgba(var(--text-secondary-raw), .6);--text-secondary-70: rgba(var(--text-secondary-raw), .7);--text-secondary-80: rgba(var(--text-secondary-raw), .8);--text-secondary-90: rgba(var(--text-secondary-raw), .9);--text-disabled: rgba(226, 232, 240, .3);--text-inverse: #0f1117;--surface-primary: #1a1d21;--surface-secondary: #22262d;--surface-tertiary: #2a2e36;--modal-bg: var(--surface-primary);--close-btn: var(--text-primary);--item-text: var(--text-primary);--border-primary: #2a2e36;--border-secondary: #343840;--border-focus: #60a5fa;--divider: rgba(226, 232, 240, .08);--progress-color: var(--text-primary);--progress-bg: #60a5fa;--tag-color: var(--text-primary);--tag-bg: #1e3a5f;--button-primary-bg: #007bff;--button-primary-text: #ffffff;--button-primary-bg-hover: #1a6fd4;--button-primary-text-hover: #ffffff;--button-primary-outline-border: #60a5fa;--button-primary-outline-text: #60a5fa;--button-primary-outline-bg-hover: #007bff;--button-primary-outline-text-hover: #ffffff;--button-secondary-bg: var(--surface-secondary);--button-secondary-text: var(--text-primary);--button-secondary-bg-hover: var(--surface-tertiary);--button-secondary-text-hover: var(--text-primary);--button-link-text: var(--text-primary);--button-link-text-hover: #60a5fa;--button-header-bg: transparent;--button-header-text: var(--text-primary);--button-header-bg-hover: rgba(226, 232, 240, .06);--button-header-text-hover: var(--text-primary)}:root[data-theme=light]{color-scheme:light;--color-primary: #0066dd;--color-primary-raw: 0, 102, 221;--color-primary-10: rgba(var(--color-primary-raw), .1);--color-primary-20: rgba(var(--color-primary-raw), .2);--color-primary-30: rgba(var(--color-primary-raw), .3);--color-primary-40: rgba(var(--color-primary-raw), .4);--color-primary-50: rgba(var(--color-primary-raw), .5);--color-primary-60: rgba(var(--color-primary-raw), .6);--color-primary-70: rgba(var(--color-primary-raw), .7);--color-primary-80: rgba(var(--color-primary-raw), .8);--color-primary-90: rgba(var(--color-primary-raw), .9);--color-secondary: #334155;--color-secondary-raw: 51, 65, 85;--color-secondary-10: rgba(var(--color-secondary-raw), .1);--color-secondary-20: rgba(var(--color-secondary-raw), .2);--color-secondary-30: rgba(var(--color-secondary-raw), .3);--color-secondary-40: rgba(var(--color-secondary-raw), .4);--color-secondary-50: rgba(var(--color-secondary-raw), .5);--color-secondary-60: rgba(var(--color-secondary-raw), .6);--color-secondary-70: rgba(var(--color-secondary-raw), .7);--color-secondary-80: rgba(var(--color-secondary-raw), .8);--color-secondary-90: rgba(var(--color-secondary-raw), .9);--header-bg: transparent;--header-bg-fixed-dark: #0a0a0a;--header-bg-fixed-light: #f5f3ef;--header-mobile-bg: #f5f3ef;--header-logo-text: #1e2530;--header-logo-text-dark: #f5f3ef;--header-logo-text-light: #0a0a0a;--header-link: #1e2530;--header-link-hover: #0066dd;--footer-bg: #1e2530;--footer-text: #e2e8f0;--footer-text-hover: #60a5fa;--footer-links: #e2e8f0;--footer-links-hover: #60a5fa;--footer-arrows: #1e2530;--footer-arrows-hover: #f5f3ef;--footer-arrows-bg: #e2e8f0;--footer-arrows-bg-hover: #cbd5e1;--content-bg: #f5f3ef;--content-bg-light: #f5f5f5;--content-bg-dark: #0f1117;--content-overlay: rgba(0, 0, 0, .35);--text-primary: #1e2530;--text-primary-raw: 30, 37, 48;--text-primary-10: rgba(var(--text-primary-raw), .1);--text-primary-20: rgba(var(--text-primary-raw), .2);--text-primary-30: rgba(var(--text-primary-raw), .3);--text-primary-40: rgba(var(--text-primary-raw), .4);--text-primary-50: rgba(var(--text-primary-raw), .5);--text-primary-60: rgba(var(--text-primary-raw), .6);--text-primary-70: rgba(var(--text-primary-raw), .7);--text-primary-80: rgba(var(--text-primary-raw), .8);--text-primary-90: rgba(var(--text-primary-raw), .9);--text-secondary: rgba(30, 37, 48, .6);--text-secondary-raw: 30, 37, 48;--text-secondary-10: rgba(var(--text-secondary-raw), .1);--text-secondary-20: rgba(var(--text-secondary-raw), .2);--text-secondary-30: rgba(var(--text-secondary-raw), .3);--text-secondary-40: rgba(var(--text-secondary-raw), .4);--text-secondary-50: rgba(var(--text-secondary-raw), .5);--text-secondary-60: rgba(var(--text-secondary-raw), .6);--text-secondary-70: rgba(var(--text-secondary-raw), .7);--text-secondary-80: rgba(var(--text-secondary-raw), .8);--text-secondary-90: rgba(var(--text-secondary-raw), .9);--text-disabled: rgba(30, 37, 48, .3);--text-inverse: #f5f3ef;--surface-primary: #edeae4;--surface-secondary: #e4e0d8;--surface-tertiary: #d8d3c9;--modal-bg: var(--surface-primary);--close-btn: var(--text-primary);--item-text: var(--text-primary);--border-primary: #d8d3c9;--border-secondary: #c8c2b6;--border-focus: #0066dd;--divider: rgba(30, 37, 48, .1);--progress-color: var(--text-primary);--progress-bg: #0066dd;--tag-color: #f5f3ef;--tag-bg: #0066dd;--button-primary-bg: #0066dd;--button-primary-text: #ffffff;--button-primary-bg-hover: #0052b3;--button-primary-text-hover: #ffffff;--button-primary-outline-border: #0066dd;--button-primary-outline-text: #0066dd;--button-primary-outline-bg-hover: #0066dd;--button-primary-outline-text-hover: #ffffff;--button-secondary-bg: var(--surface-secondary);--button-secondary-text: var(--text-primary);--button-secondary-bg-hover: var(--surface-tertiary);--button-secondary-text-hover: var(--text-primary);--button-link-text: var(--text-primary);--button-link-text-hover: #0066dd;--button-header-bg: transparent;--button-header-text: var(--text-primary);--button-header-bg-hover: rgba(30, 37, 48, .06);--button-header-text-hover: var(--text-primary)}.legal-footer{margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);padding-left:calc(50vw - 50%);padding-right:calc(50vw - 50%);font-size:var(--font-size-base);background-color:var(--footer-bg);color:var(--footer-text)}.legal-footer__simple{color:var(--footer-text)}.legal-footer__simple-credits{text-align:right}@media(max-width:768px){.legal-footer__simple,.legal-footer__simple-credits{text-align:center}}.legal-footer .legal-footer__links{list-style:none;margin:0;padding:0}.legal-footer .legal-footer__links a{text-decoration:none;color:var(--footer-links)}.legal-footer .legal-footer__links a:hover{color:var(--footer-links-hover);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
14
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: LegalFooterComponent, isStandalone: true, selector: "lib-legal-footer", inputs: { year: "year", brand: "brand", credits: "credits", links: "links", variant: "variant" }, host: { styleAttribute: "display: contents" }, ngImport: i0, template: "<div class=\"legal-footer col-span-full sm:col-span-12 sm:col-start-1\" [ngClass]=\"variant\">\n <!-- Variante simple -->\n @if (variant === 'simple') {\n <div class=\"legal-footer__simple main-grid col-span-full\">\n <span class=\"legal-footer__simple-brand col-span-full sm:col-span-6 sm:col-start-1\">\n <b>{{ brand }} \u00A9 {{ year }}</b>\n </span>\n <span class=\"legal-footer__simple-credits col-span-full sm:col-span-6 sm:col-start-7\">{{ credits }}</span>\n </div>\n }\n\n <!-- Variante extendida -->\n @if (variant === 'extended') {\n <div class=\"legal-footer__extended col-span-full\">\n <span class=\"legal-footer__year col-span-full sm:col-span-3 sm:col-start-1\">\n <b>{{ brand }} \u00A9 {{ year }}</b>\n </span>\n\n <div class=\"legal-footer__right col-span-full sm:col-span-9 sm:col-start-4\">\n @if (links?.length) {\n <ul class=\"legal-footer__links\">\n @for (link of links; track $index) {\n <li>\n <a [href]=\"link.url\">{{ link.label }}</a>\n </li>\n }\n <li class=\"legal-footer__credits\">{{ credits }}</li>\n </ul>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":root[data-theme=dark]{color-scheme:dark;--color-primary: #007bff;--color-primary-raw: 0, 123, 255;--color-primary-10: rgba(var(--color-primary-raw), .1);--color-primary-20: rgba(var(--color-primary-raw), .2);--color-primary-30: rgba(var(--color-primary-raw), .3);--color-primary-40: rgba(var(--color-primary-raw), .4);--color-primary-50: rgba(var(--color-primary-raw), .5);--color-primary-60: rgba(var(--color-primary-raw), .6);--color-primary-70: rgba(var(--color-primary-raw), .7);--color-primary-80: rgba(var(--color-primary-raw), .8);--color-primary-90: rgba(var(--color-primary-raw), .9);--color-secondary: #e2e8f0;--color-secondary-raw: 226, 232, 240;--color-secondary-10: rgba(var(--color-secondary-raw), .1);--color-secondary-20: rgba(var(--color-secondary-raw), .2);--color-secondary-30: rgba(var(--color-secondary-raw), .3);--color-secondary-40: rgba(var(--color-secondary-raw), .4);--color-secondary-50: rgba(var(--color-secondary-raw), .5);--color-secondary-60: rgba(var(--color-secondary-raw), .6);--color-secondary-70: rgba(var(--color-secondary-raw), .7);--color-secondary-80: rgba(var(--color-secondary-raw), .8);--color-secondary-90: rgba(var(--color-secondary-raw), .9);--header-bg: transparent;--header-bg-fixed-dark: #1a1d21;--header-bg-fixed-light: #e2e8f0;--header-mobile-bg: #1a1d21;--header-logo-text: #e2e8f0;--header-logo-text-dark: #e2e8f0;--header-logo-text-light: #1a1d21;--header-link: #e2e8f0;--header-link-hover: #60a5fa;--footer-bg: #0f1117;--footer-text: #e2e8f0;--footer-text-hover: #60a5fa;--footer-links: #e2e8f0;--footer-links-hover: #60a5fa;--footer-arrows: #e2e8f0;--footer-arrows-hover: #0f1117;--footer-arrows-bg: #2a2d35;--footer-arrows-bg-hover: #3a3d45;--content-bg: #0f1117;--content-bg-light: #0f1117;--content-bg-dark: #f5f5f5;--content-overlay: rgba(0, 0, 0, .6);--text-primary: #e2e8f0;--text-primary-raw: 30, 37, 48;--text-primary-10: rgba(var(--text-primary-raw), .1);--text-primary-20: rgba(var(--text-primary-raw), .2);--text-primary-30: rgba(var(--text-primary-raw), .3);--text-primary-40: rgba(var(--text-primary-raw), .4);--text-primary-50: rgba(var(--text-primary-raw), .5);--text-primary-60: rgba(var(--text-primary-raw), .6);--text-primary-70: rgba(var(--text-primary-raw), .7);--text-primary-80: rgba(var(--text-primary-raw), .8);--text-primary-90: rgba(var(--text-primary-raw), .9);--text-secondary: rgba(30, 37, 48, .6);--text-secondary-raw: 30, 37, 48;--text-secondary-10: rgba(var(--text-secondary-raw), .1);--text-secondary-20: rgba(var(--text-secondary-raw), .2);--text-secondary-30: rgba(var(--text-secondary-raw), .3);--text-secondary-40: rgba(var(--text-secondary-raw), .4);--text-secondary-50: rgba(var(--text-secondary-raw), .5);--text-secondary-60: rgba(var(--text-secondary-raw), .6);--text-secondary-70: rgba(var(--text-secondary-raw), .7);--text-secondary-80: rgba(var(--text-secondary-raw), .8);--text-secondary-90: rgba(var(--text-secondary-raw), .9);--text-disabled: rgba(226, 232, 240, .3);--text-inverse: #0f1117;--surface-primary: #1a1d21;--surface-secondary: #22262d;--surface-tertiary: #2a2e36;--modal-bg: var(--surface-primary);--close-btn: var(--text-primary);--item-text: var(--text-primary);--border-primary: #2a2e36;--border-secondary: #343840;--border-focus: #60a5fa;--divider: rgba(226, 232, 240, .08);--progress-color: var(--text-primary);--progress-bg: #60a5fa;--tag-color: var(--text-primary);--tag-bg: #1e3a5f;--button-primary-bg: #007bff;--button-primary-text: #ffffff;--button-primary-bg-hover: #1a6fd4;--button-primary-text-hover: #ffffff;--button-primary-outline-border: #60a5fa;--button-primary-outline-text: #60a5fa;--button-primary-outline-bg-hover: #007bff;--button-primary-outline-text-hover: #ffffff;--button-secondary-bg: var(--surface-secondary);--button-secondary-text: var(--text-primary);--button-secondary-bg-hover: var(--surface-tertiary);--button-secondary-text-hover: var(--text-primary);--button-link-text: var(--text-primary);--button-link-text-hover: #60a5fa;--button-header-bg: transparent;--button-header-text: var(--text-primary);--button-header-bg-hover: rgba(226, 232, 240, .06);--button-header-text-hover: var(--text-primary)}:root[data-theme=light]{color-scheme:light;--color-primary: #0066dd;--color-primary-raw: 0, 102, 221;--color-primary-10: rgba(var(--color-primary-raw), .1);--color-primary-20: rgba(var(--color-primary-raw), .2);--color-primary-30: rgba(var(--color-primary-raw), .3);--color-primary-40: rgba(var(--color-primary-raw), .4);--color-primary-50: rgba(var(--color-primary-raw), .5);--color-primary-60: rgba(var(--color-primary-raw), .6);--color-primary-70: rgba(var(--color-primary-raw), .7);--color-primary-80: rgba(var(--color-primary-raw), .8);--color-primary-90: rgba(var(--color-primary-raw), .9);--color-secondary: #334155;--color-secondary-raw: 51, 65, 85;--color-secondary-10: rgba(var(--color-secondary-raw), .1);--color-secondary-20: rgba(var(--color-secondary-raw), .2);--color-secondary-30: rgba(var(--color-secondary-raw), .3);--color-secondary-40: rgba(var(--color-secondary-raw), .4);--color-secondary-50: rgba(var(--color-secondary-raw), .5);--color-secondary-60: rgba(var(--color-secondary-raw), .6);--color-secondary-70: rgba(var(--color-secondary-raw), .7);--color-secondary-80: rgba(var(--color-secondary-raw), .8);--color-secondary-90: rgba(var(--color-secondary-raw), .9);--header-bg: transparent;--header-bg-fixed-dark: #0a0a0a;--header-bg-fixed-light: #f5f3ef;--header-mobile-bg: #f5f3ef;--header-logo-text: #1e2530;--header-logo-text-dark: #f5f3ef;--header-logo-text-light: #0a0a0a;--header-link: #1e2530;--header-link-hover: #0066dd;--footer-bg: #1e2530;--footer-text: #e2e8f0;--footer-text-hover: #60a5fa;--footer-links: #e2e8f0;--footer-links-hover: #60a5fa;--footer-arrows: #1e2530;--footer-arrows-hover: #f5f3ef;--footer-arrows-bg: #e2e8f0;--footer-arrows-bg-hover: #cbd5e1;--content-bg: #f5f3ef;--content-bg-light: #f5f5f5;--content-bg-dark: #0f1117;--content-overlay: rgba(0, 0, 0, .35);--text-primary: #1e2530;--text-primary-raw: 30, 37, 48;--text-primary-10: rgba(var(--text-primary-raw), .1);--text-primary-20: rgba(var(--text-primary-raw), .2);--text-primary-30: rgba(var(--text-primary-raw), .3);--text-primary-40: rgba(var(--text-primary-raw), .4);--text-primary-50: rgba(var(--text-primary-raw), .5);--text-primary-60: rgba(var(--text-primary-raw), .6);--text-primary-70: rgba(var(--text-primary-raw), .7);--text-primary-80: rgba(var(--text-primary-raw), .8);--text-primary-90: rgba(var(--text-primary-raw), .9);--text-secondary: rgba(30, 37, 48, .6);--text-secondary-raw: 30, 37, 48;--text-secondary-10: rgba(var(--text-secondary-raw), .1);--text-secondary-20: rgba(var(--text-secondary-raw), .2);--text-secondary-30: rgba(var(--text-secondary-raw), .3);--text-secondary-40: rgba(var(--text-secondary-raw), .4);--text-secondary-50: rgba(var(--text-secondary-raw), .5);--text-secondary-60: rgba(var(--text-secondary-raw), .6);--text-secondary-70: rgba(var(--text-secondary-raw), .7);--text-secondary-80: rgba(var(--text-secondary-raw), .8);--text-secondary-90: rgba(var(--text-secondary-raw), .9);--text-disabled: rgba(30, 37, 48, .3);--text-inverse: #f5f3ef;--surface-primary: #edeae4;--surface-secondary: #e4e0d8;--surface-tertiary: #d8d3c9;--modal-bg: var(--surface-primary);--close-btn: var(--text-primary);--item-text: var(--text-primary);--border-primary: #d8d3c9;--border-secondary: #c8c2b6;--border-focus: #0066dd;--divider: rgba(30, 37, 48, .1);--progress-color: var(--text-primary);--progress-bg: #0066dd;--tag-color: #f5f3ef;--tag-bg: #0066dd;--button-primary-bg: #0066dd;--button-primary-text: #ffffff;--button-primary-bg-hover: #0052b3;--button-primary-text-hover: #ffffff;--button-primary-outline-border: #0066dd;--button-primary-outline-text: #0066dd;--button-primary-outline-bg-hover: #0066dd;--button-primary-outline-text-hover: #ffffff;--button-secondary-bg: var(--surface-secondary);--button-secondary-text: var(--text-primary);--button-secondary-bg-hover: var(--surface-tertiary);--button-secondary-text-hover: var(--text-primary);--button-link-text: var(--text-primary);--button-link-text-hover: #0066dd;--button-header-bg: transparent;--button-header-text: var(--text-primary);--button-header-bg-hover: rgba(30, 37, 48, .06);--button-header-text-hover: var(--text-primary)}.legal-footer{margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);padding-left:calc(50vw - 50%);padding-right:calc(50vw - 50%);font-size:var(--font-size-base);background-color:var(--footer-bg);color:var(--footer-text)}.legal-footer__simple{color:var(--footer-text)}.legal-footer__simple-credits{text-align:right}@media(max-width:768px){.legal-footer__simple,.legal-footer__simple-credits{text-align:center}}.legal-footer .legal-footer__links{list-style:none;margin:0;padding:0}.legal-footer .legal-footer__links a{text-decoration:none;color:var(--footer-links)}.legal-footer .legal-footer__links a:hover{color:var(--footer-links-hover);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15
15
  }
16
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: LegalFooterComponent, decorators: [{
17
17
  type: Component,
18
- args: [{ selector: 'lib-legal-footer', standalone: true, imports: [CommonModule, LinkTypeDirective], host: {
18
+ args: [{ selector: 'lib-legal-footer', standalone: true, imports: [CommonModule, LinkTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, host: {
19
19
  style: 'display: contents',
20
20
  }, template: "<div class=\"legal-footer col-span-full sm:col-span-12 sm:col-start-1\" [ngClass]=\"variant\">\n <!-- Variante simple -->\n @if (variant === 'simple') {\n <div class=\"legal-footer__simple main-grid col-span-full\">\n <span class=\"legal-footer__simple-brand col-span-full sm:col-span-6 sm:col-start-1\">\n <b>{{ brand }} \u00A9 {{ year }}</b>\n </span>\n <span class=\"legal-footer__simple-credits col-span-full sm:col-span-6 sm:col-start-7\">{{ credits }}</span>\n </div>\n }\n\n <!-- Variante extendida -->\n @if (variant === 'extended') {\n <div class=\"legal-footer__extended col-span-full\">\n <span class=\"legal-footer__year col-span-full sm:col-span-3 sm:col-start-1\">\n <b>{{ brand }} \u00A9 {{ year }}</b>\n </span>\n\n <div class=\"legal-footer__right col-span-full sm:col-span-9 sm:col-start-4\">\n @if (links?.length) {\n <ul class=\"legal-footer__links\">\n @for (link of links; track $index) {\n <li>\n <a [href]=\"link.url\">{{ link.label }}</a>\n </li>\n }\n <li class=\"legal-footer__credits\">{{ credits }}</li>\n </ul>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":root[data-theme=dark]{color-scheme:dark;--color-primary: #007bff;--color-primary-raw: 0, 123, 255;--color-primary-10: rgba(var(--color-primary-raw), .1);--color-primary-20: rgba(var(--color-primary-raw), .2);--color-primary-30: rgba(var(--color-primary-raw), .3);--color-primary-40: rgba(var(--color-primary-raw), .4);--color-primary-50: rgba(var(--color-primary-raw), .5);--color-primary-60: rgba(var(--color-primary-raw), .6);--color-primary-70: rgba(var(--color-primary-raw), .7);--color-primary-80: rgba(var(--color-primary-raw), .8);--color-primary-90: rgba(var(--color-primary-raw), .9);--color-secondary: #e2e8f0;--color-secondary-raw: 226, 232, 240;--color-secondary-10: rgba(var(--color-secondary-raw), .1);--color-secondary-20: rgba(var(--color-secondary-raw), .2);--color-secondary-30: rgba(var(--color-secondary-raw), .3);--color-secondary-40: rgba(var(--color-secondary-raw), .4);--color-secondary-50: rgba(var(--color-secondary-raw), .5);--color-secondary-60: rgba(var(--color-secondary-raw), .6);--color-secondary-70: rgba(var(--color-secondary-raw), .7);--color-secondary-80: rgba(var(--color-secondary-raw), .8);--color-secondary-90: rgba(var(--color-secondary-raw), .9);--header-bg: transparent;--header-bg-fixed-dark: #1a1d21;--header-bg-fixed-light: #e2e8f0;--header-mobile-bg: #1a1d21;--header-logo-text: #e2e8f0;--header-logo-text-dark: #e2e8f0;--header-logo-text-light: #1a1d21;--header-link: #e2e8f0;--header-link-hover: #60a5fa;--footer-bg: #0f1117;--footer-text: #e2e8f0;--footer-text-hover: #60a5fa;--footer-links: #e2e8f0;--footer-links-hover: #60a5fa;--footer-arrows: #e2e8f0;--footer-arrows-hover: #0f1117;--footer-arrows-bg: #2a2d35;--footer-arrows-bg-hover: #3a3d45;--content-bg: #0f1117;--content-bg-light: #0f1117;--content-bg-dark: #f5f5f5;--content-overlay: rgba(0, 0, 0, .6);--text-primary: #e2e8f0;--text-primary-raw: 30, 37, 48;--text-primary-10: rgba(var(--text-primary-raw), .1);--text-primary-20: rgba(var(--text-primary-raw), .2);--text-primary-30: rgba(var(--text-primary-raw), .3);--text-primary-40: rgba(var(--text-primary-raw), .4);--text-primary-50: rgba(var(--text-primary-raw), .5);--text-primary-60: rgba(var(--text-primary-raw), .6);--text-primary-70: rgba(var(--text-primary-raw), .7);--text-primary-80: rgba(var(--text-primary-raw), .8);--text-primary-90: rgba(var(--text-primary-raw), .9);--text-secondary: rgba(30, 37, 48, .6);--text-secondary-raw: 30, 37, 48;--text-secondary-10: rgba(var(--text-secondary-raw), .1);--text-secondary-20: rgba(var(--text-secondary-raw), .2);--text-secondary-30: rgba(var(--text-secondary-raw), .3);--text-secondary-40: rgba(var(--text-secondary-raw), .4);--text-secondary-50: rgba(var(--text-secondary-raw), .5);--text-secondary-60: rgba(var(--text-secondary-raw), .6);--text-secondary-70: rgba(var(--text-secondary-raw), .7);--text-secondary-80: rgba(var(--text-secondary-raw), .8);--text-secondary-90: rgba(var(--text-secondary-raw), .9);--text-disabled: rgba(226, 232, 240, .3);--text-inverse: #0f1117;--surface-primary: #1a1d21;--surface-secondary: #22262d;--surface-tertiary: #2a2e36;--modal-bg: var(--surface-primary);--close-btn: var(--text-primary);--item-text: var(--text-primary);--border-primary: #2a2e36;--border-secondary: #343840;--border-focus: #60a5fa;--divider: rgba(226, 232, 240, .08);--progress-color: var(--text-primary);--progress-bg: #60a5fa;--tag-color: var(--text-primary);--tag-bg: #1e3a5f;--button-primary-bg: #007bff;--button-primary-text: #ffffff;--button-primary-bg-hover: #1a6fd4;--button-primary-text-hover: #ffffff;--button-primary-outline-border: #60a5fa;--button-primary-outline-text: #60a5fa;--button-primary-outline-bg-hover: #007bff;--button-primary-outline-text-hover: #ffffff;--button-secondary-bg: var(--surface-secondary);--button-secondary-text: var(--text-primary);--button-secondary-bg-hover: var(--surface-tertiary);--button-secondary-text-hover: var(--text-primary);--button-link-text: var(--text-primary);--button-link-text-hover: #60a5fa;--button-header-bg: transparent;--button-header-text: var(--text-primary);--button-header-bg-hover: rgba(226, 232, 240, .06);--button-header-text-hover: var(--text-primary)}:root[data-theme=light]{color-scheme:light;--color-primary: #0066dd;--color-primary-raw: 0, 102, 221;--color-primary-10: rgba(var(--color-primary-raw), .1);--color-primary-20: rgba(var(--color-primary-raw), .2);--color-primary-30: rgba(var(--color-primary-raw), .3);--color-primary-40: rgba(var(--color-primary-raw), .4);--color-primary-50: rgba(var(--color-primary-raw), .5);--color-primary-60: rgba(var(--color-primary-raw), .6);--color-primary-70: rgba(var(--color-primary-raw), .7);--color-primary-80: rgba(var(--color-primary-raw), .8);--color-primary-90: rgba(var(--color-primary-raw), .9);--color-secondary: #334155;--color-secondary-raw: 51, 65, 85;--color-secondary-10: rgba(var(--color-secondary-raw), .1);--color-secondary-20: rgba(var(--color-secondary-raw), .2);--color-secondary-30: rgba(var(--color-secondary-raw), .3);--color-secondary-40: rgba(var(--color-secondary-raw), .4);--color-secondary-50: rgba(var(--color-secondary-raw), .5);--color-secondary-60: rgba(var(--color-secondary-raw), .6);--color-secondary-70: rgba(var(--color-secondary-raw), .7);--color-secondary-80: rgba(var(--color-secondary-raw), .8);--color-secondary-90: rgba(var(--color-secondary-raw), .9);--header-bg: transparent;--header-bg-fixed-dark: #0a0a0a;--header-bg-fixed-light: #f5f3ef;--header-mobile-bg: #f5f3ef;--header-logo-text: #1e2530;--header-logo-text-dark: #f5f3ef;--header-logo-text-light: #0a0a0a;--header-link: #1e2530;--header-link-hover: #0066dd;--footer-bg: #1e2530;--footer-text: #e2e8f0;--footer-text-hover: #60a5fa;--footer-links: #e2e8f0;--footer-links-hover: #60a5fa;--footer-arrows: #1e2530;--footer-arrows-hover: #f5f3ef;--footer-arrows-bg: #e2e8f0;--footer-arrows-bg-hover: #cbd5e1;--content-bg: #f5f3ef;--content-bg-light: #f5f5f5;--content-bg-dark: #0f1117;--content-overlay: rgba(0, 0, 0, .35);--text-primary: #1e2530;--text-primary-raw: 30, 37, 48;--text-primary-10: rgba(var(--text-primary-raw), .1);--text-primary-20: rgba(var(--text-primary-raw), .2);--text-primary-30: rgba(var(--text-primary-raw), .3);--text-primary-40: rgba(var(--text-primary-raw), .4);--text-primary-50: rgba(var(--text-primary-raw), .5);--text-primary-60: rgba(var(--text-primary-raw), .6);--text-primary-70: rgba(var(--text-primary-raw), .7);--text-primary-80: rgba(var(--text-primary-raw), .8);--text-primary-90: rgba(var(--text-primary-raw), .9);--text-secondary: rgba(30, 37, 48, .6);--text-secondary-raw: 30, 37, 48;--text-secondary-10: rgba(var(--text-secondary-raw), .1);--text-secondary-20: rgba(var(--text-secondary-raw), .2);--text-secondary-30: rgba(var(--text-secondary-raw), .3);--text-secondary-40: rgba(var(--text-secondary-raw), .4);--text-secondary-50: rgba(var(--text-secondary-raw), .5);--text-secondary-60: rgba(var(--text-secondary-raw), .6);--text-secondary-70: rgba(var(--text-secondary-raw), .7);--text-secondary-80: rgba(var(--text-secondary-raw), .8);--text-secondary-90: rgba(var(--text-secondary-raw), .9);--text-disabled: rgba(30, 37, 48, .3);--text-inverse: #f5f3ef;--surface-primary: #edeae4;--surface-secondary: #e4e0d8;--surface-tertiary: #d8d3c9;--modal-bg: var(--surface-primary);--close-btn: var(--text-primary);--item-text: var(--text-primary);--border-primary: #d8d3c9;--border-secondary: #c8c2b6;--border-focus: #0066dd;--divider: rgba(30, 37, 48, .1);--progress-color: var(--text-primary);--progress-bg: #0066dd;--tag-color: #f5f3ef;--tag-bg: #0066dd;--button-primary-bg: #0066dd;--button-primary-text: #ffffff;--button-primary-bg-hover: #0052b3;--button-primary-text-hover: #ffffff;--button-primary-outline-border: #0066dd;--button-primary-outline-text: #0066dd;--button-primary-outline-bg-hover: #0066dd;--button-primary-outline-text-hover: #ffffff;--button-secondary-bg: var(--surface-secondary);--button-secondary-text: var(--text-primary);--button-secondary-bg-hover: var(--surface-tertiary);--button-secondary-text-hover: var(--text-primary);--button-link-text: var(--text-primary);--button-link-text-hover: #0066dd;--button-header-bg: transparent;--button-header-text: var(--text-primary);--button-header-bg-hover: rgba(30, 37, 48, .06);--button-header-text-hover: var(--text-primary)}.legal-footer{margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);padding-left:calc(50vw - 50%);padding-right:calc(50vw - 50%);font-size:var(--font-size-base);background-color:var(--footer-bg);color:var(--footer-text)}.legal-footer__simple{color:var(--footer-text)}.legal-footer__simple-credits{text-align:right}@media(max-width:768px){.legal-footer__simple,.legal-footer__simple-credits{text-align:center}}.legal-footer .legal-footer__links{list-style:none;margin:0;padding:0}.legal-footer .legal-footer__links a{text-decoration:none;color:var(--footer-links)}.legal-footer .legal-footer__links a:hover{color:var(--footer-links-hover);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}\n"] }]
21
21
  }], propDecorators: { year: [{
@@ -1 +1 @@
1
- {"version":3,"file":"lluc_llull-ui-lib-footers-legal-footer.mjs","sources":["../../../projects/ui-lib/footers/legal-footer/legal-footer.component.ts","../../../projects/ui-lib/footers/legal-footer/legal-footer.component.html","../../../projects/ui-lib/footers/legal-footer/lluc_llull-ui-lib-footers-legal-footer.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { UiLibButtonI } from '@lluc_llull/ui-lib/interfaces';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\n\nexport type LegalFooterVariant = 'simple' | 'extended';\n\n@Component({\n selector: 'lib-legal-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './legal-footer.component.html',\n styleUrl: './legal-footer.component.scss',\n host: {\n style: 'display: contents',\n },\n})\nexport class LegalFooterComponent {\n @Input() year?: number;\n @Input() brand?: string;\n @Input() credits?: string;\n @Input() links?: UiLibButtonI[];\n @Input() variant: LegalFooterVariant = 'simple';\n}\n","<div class=\"legal-footer col-span-full sm:col-span-12 sm:col-start-1\" [ngClass]=\"variant\">\n <!-- Variante simple -->\n @if (variant === 'simple') {\n <div class=\"legal-footer__simple main-grid col-span-full\">\n <span class=\"legal-footer__simple-brand col-span-full sm:col-span-6 sm:col-start-1\">\n <b>{{ brand }} © {{ year }}</b>\n </span>\n <span class=\"legal-footer__simple-credits col-span-full sm:col-span-6 sm:col-start-7\">{{ credits }}</span>\n </div>\n }\n\n <!-- Variante extendida -->\n @if (variant === 'extended') {\n <div class=\"legal-footer__extended col-span-full\">\n <span class=\"legal-footer__year col-span-full sm:col-span-3 sm:col-start-1\">\n <b>{{ brand }} © {{ year }}</b>\n </span>\n\n <div class=\"legal-footer__right col-span-full sm:col-span-9 sm:col-start-4\">\n @if (links?.length) {\n <ul class=\"legal-footer__links\">\n @for (link of links; track $index) {\n <li>\n <a [href]=\"link.url\">{{ link.label }}</a>\n </li>\n }\n <li class=\"legal-footer__credits\">{{ credits }}</li>\n </ul>\n }\n </div>\n </div>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAiBa,oBAAoB,CAAA;AACpB,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,OAAO;AACP,IAAA,KAAK;IACL,OAAO,GAAuB,QAAQ;wGALtC,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjBjC,muCAiCA,EAAA,MAAA,EAAA,CAAA,izRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDvBc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;4FAOb,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVhC,SAAS;+BACI,kBAAkB,EAAA,UAAA,EAChB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,iBAAiB,CAAC,EAAA,IAAA,EAGpC;AACF,wBAAA,KAAK,EAAE,mBAAmB;AAC7B,qBAAA,EAAA,QAAA,EAAA,muCAAA,EAAA,MAAA,EAAA,CAAA,izRAAA,CAAA,EAAA;8BAGQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,OAAO,EAAA,CAAA;sBAAf;;;AEtBL;;AAEG;;;;"}
1
+ {"version":3,"file":"lluc_llull-ui-lib-footers-legal-footer.mjs","sources":["../../../projects/ui-lib/footers/legal-footer/legal-footer.component.ts","../../../projects/ui-lib/footers/legal-footer/legal-footer.component.html","../../../projects/ui-lib/footers/legal-footer/lluc_llull-ui-lib-footers-legal-footer.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibButtonI } from '@lluc_llull/ui-lib/interfaces';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\n\nexport type LegalFooterVariant = 'simple' | 'extended';\n\n@Component({\n selector: 'lib-legal-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './legal-footer.component.html',\n styleUrl: './legal-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class LegalFooterComponent {\n @Input() year?: number;\n @Input() brand?: string;\n @Input() credits?: string;\n @Input() links?: UiLibButtonI[];\n @Input() variant: LegalFooterVariant = 'simple';\n}\n","<div class=\"legal-footer col-span-full sm:col-span-12 sm:col-start-1\" [ngClass]=\"variant\">\n <!-- Variante simple -->\n @if (variant === 'simple') {\n <div class=\"legal-footer__simple main-grid col-span-full\">\n <span class=\"legal-footer__simple-brand col-span-full sm:col-span-6 sm:col-start-1\">\n <b>{{ brand }} © {{ year }}</b>\n </span>\n <span class=\"legal-footer__simple-credits col-span-full sm:col-span-6 sm:col-start-7\">{{ credits }}</span>\n </div>\n }\n\n <!-- Variante extendida -->\n @if (variant === 'extended') {\n <div class=\"legal-footer__extended col-span-full\">\n <span class=\"legal-footer__year col-span-full sm:col-span-3 sm:col-start-1\">\n <b>{{ brand }} © {{ year }}</b>\n </span>\n\n <div class=\"legal-footer__right col-span-full sm:col-span-9 sm:col-start-4\">\n @if (links?.length) {\n <ul class=\"legal-footer__links\">\n @for (link of links; track $index) {\n <li>\n <a [href]=\"link.url\">{{ link.label }}</a>\n </li>\n }\n <li class=\"legal-footer__credits\">{{ credits }}</li>\n </ul>\n }\n </div>\n </div>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAkBa,oBAAoB,CAAA;AACpB,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,OAAO;AACP,IAAA,KAAK;IACL,OAAO,GAAuB,QAAQ;wGALtC,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBjC,muCAiCA,EAAA,MAAA,EAAA,CAAA,izRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDvBc,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAQb,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,UAAA,EAChB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,iBAAiB,CAAC,EAAA,eAAA,EAGzB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACF,wBAAA,KAAK,EAAE,mBAAmB;AAC7B,qBAAA,EAAA,QAAA,EAAA,muCAAA,EAAA,MAAA,EAAA,CAAA,izRAAA,CAAA,EAAA;8BAGQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,OAAO,EAAA,CAAA;sBAAf;;;AEvBL;;AAEG;;;;"}
@@ -1,7 +1,7 @@
1
1
  import * as i1 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Input, Component, ChangeDetectionStrategy } from '@angular/core';
4
+ import { Input, ChangeDetectionStrategy, Component } from '@angular/core';
5
5
  import { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';
6
6
  import { SwiperDirective } from '@lluc_llull/ui-lib/sliders';
7
7
  import { UiIconComponent } from '@lluc_llull/ui-lib/shared';
@@ -13,11 +13,11 @@ class LegalFooterComponent {
13
13
  links;
14
14
  variant = 'simple';
15
15
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: LegalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: LegalFooterComponent, isStandalone: true, selector: "lib-legal-footer", inputs: { year: "year", brand: "brand", credits: "credits", links: "links", variant: "variant" }, host: { styleAttribute: "display: contents" }, ngImport: i0, template: "<div class=\"legal-footer col-span-full sm:col-span-12 sm:col-start-1\" [ngClass]=\"variant\">\n <!-- Variante simple -->\n @if (variant === 'simple') {\n <div class=\"legal-footer__simple main-grid col-span-full\">\n <span class=\"legal-footer__simple-brand col-span-full sm:col-span-6 sm:col-start-1\">\n <b>{{ brand }} \u00A9 {{ year }}</b>\n </span>\n <span class=\"legal-footer__simple-credits col-span-full sm:col-span-6 sm:col-start-7\">{{ credits }}</span>\n </div>\n }\n\n <!-- Variante extendida -->\n @if (variant === 'extended') {\n <div class=\"legal-footer__extended col-span-full\">\n <span class=\"legal-footer__year col-span-full sm:col-span-3 sm:col-start-1\">\n <b>{{ brand }} \u00A9 {{ year }}</b>\n </span>\n\n <div class=\"legal-footer__right col-span-full sm:col-span-9 sm:col-start-4\">\n @if (links?.length) {\n <ul class=\"legal-footer__links\">\n @for (link of links; track $index) {\n <li>\n <a [href]=\"link.url\">{{ link.label }}</a>\n </li>\n }\n <li class=\"legal-footer__credits\">{{ credits }}</li>\n </ul>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":root[data-theme=dark]{color-scheme:dark;--color-primary: #007bff;--color-primary-raw: 0, 123, 255;--color-primary-10: rgba(var(--color-primary-raw), .1);--color-primary-20: rgba(var(--color-primary-raw), .2);--color-primary-30: rgba(var(--color-primary-raw), .3);--color-primary-40: rgba(var(--color-primary-raw), .4);--color-primary-50: rgba(var(--color-primary-raw), .5);--color-primary-60: rgba(var(--color-primary-raw), .6);--color-primary-70: rgba(var(--color-primary-raw), .7);--color-primary-80: rgba(var(--color-primary-raw), .8);--color-primary-90: rgba(var(--color-primary-raw), .9);--color-secondary: #e2e8f0;--color-secondary-raw: 226, 232, 240;--color-secondary-10: rgba(var(--color-secondary-raw), .1);--color-secondary-20: rgba(var(--color-secondary-raw), .2);--color-secondary-30: rgba(var(--color-secondary-raw), .3);--color-secondary-40: rgba(var(--color-secondary-raw), .4);--color-secondary-50: rgba(var(--color-secondary-raw), .5);--color-secondary-60: rgba(var(--color-secondary-raw), .6);--color-secondary-70: rgba(var(--color-secondary-raw), .7);--color-secondary-80: rgba(var(--color-secondary-raw), .8);--color-secondary-90: rgba(var(--color-secondary-raw), .9);--header-bg: transparent;--header-bg-fixed-dark: #1a1d21;--header-bg-fixed-light: #e2e8f0;--header-mobile-bg: #1a1d21;--header-logo-text: #e2e8f0;--header-logo-text-dark: #e2e8f0;--header-logo-text-light: #1a1d21;--header-link: #e2e8f0;--header-link-hover: #60a5fa;--footer-bg: #0f1117;--footer-text: #e2e8f0;--footer-text-hover: #60a5fa;--footer-links: #e2e8f0;--footer-links-hover: #60a5fa;--footer-arrows: #e2e8f0;--footer-arrows-hover: #0f1117;--footer-arrows-bg: #2a2d35;--footer-arrows-bg-hover: #3a3d45;--content-bg: #0f1117;--content-bg-light: #0f1117;--content-bg-dark: #f5f5f5;--content-overlay: rgba(0, 0, 0, .6);--text-primary: #e2e8f0;--text-primary-raw: 30, 37, 48;--text-primary-10: rgba(var(--text-primary-raw), .1);--text-primary-20: rgba(var(--text-primary-raw), .2);--text-primary-30: rgba(var(--text-primary-raw), .3);--text-primary-40: rgba(var(--text-primary-raw), .4);--text-primary-50: rgba(var(--text-primary-raw), .5);--text-primary-60: rgba(var(--text-primary-raw), .6);--text-primary-70: rgba(var(--text-primary-raw), .7);--text-primary-80: rgba(var(--text-primary-raw), .8);--text-primary-90: rgba(var(--text-primary-raw), .9);--text-secondary: rgba(30, 37, 48, .6);--text-secondary-raw: 30, 37, 48;--text-secondary-10: rgba(var(--text-secondary-raw), .1);--text-secondary-20: rgba(var(--text-secondary-raw), .2);--text-secondary-30: rgba(var(--text-secondary-raw), .3);--text-secondary-40: rgba(var(--text-secondary-raw), .4);--text-secondary-50: rgba(var(--text-secondary-raw), .5);--text-secondary-60: rgba(var(--text-secondary-raw), .6);--text-secondary-70: rgba(var(--text-secondary-raw), .7);--text-secondary-80: rgba(var(--text-secondary-raw), .8);--text-secondary-90: rgba(var(--text-secondary-raw), .9);--text-disabled: rgba(226, 232, 240, .3);--text-inverse: #0f1117;--surface-primary: #1a1d21;--surface-secondary: #22262d;--surface-tertiary: #2a2e36;--modal-bg: var(--surface-primary);--close-btn: var(--text-primary);--item-text: var(--text-primary);--border-primary: #2a2e36;--border-secondary: #343840;--border-focus: #60a5fa;--divider: rgba(226, 232, 240, .08);--progress-color: var(--text-primary);--progress-bg: #60a5fa;--tag-color: var(--text-primary);--tag-bg: #1e3a5f;--button-primary-bg: #007bff;--button-primary-text: #ffffff;--button-primary-bg-hover: #1a6fd4;--button-primary-text-hover: #ffffff;--button-primary-outline-border: #60a5fa;--button-primary-outline-text: #60a5fa;--button-primary-outline-bg-hover: #007bff;--button-primary-outline-text-hover: #ffffff;--button-secondary-bg: var(--surface-secondary);--button-secondary-text: var(--text-primary);--button-secondary-bg-hover: var(--surface-tertiary);--button-secondary-text-hover: var(--text-primary);--button-link-text: var(--text-primary);--button-link-text-hover: #60a5fa;--button-header-bg: transparent;--button-header-text: var(--text-primary);--button-header-bg-hover: rgba(226, 232, 240, .06);--button-header-text-hover: var(--text-primary)}:root[data-theme=light]{color-scheme:light;--color-primary: #0066dd;--color-primary-raw: 0, 102, 221;--color-primary-10: rgba(var(--color-primary-raw), .1);--color-primary-20: rgba(var(--color-primary-raw), .2);--color-primary-30: rgba(var(--color-primary-raw), .3);--color-primary-40: rgba(var(--color-primary-raw), .4);--color-primary-50: rgba(var(--color-primary-raw), .5);--color-primary-60: rgba(var(--color-primary-raw), .6);--color-primary-70: rgba(var(--color-primary-raw), .7);--color-primary-80: rgba(var(--color-primary-raw), .8);--color-primary-90: rgba(var(--color-primary-raw), .9);--color-secondary: #334155;--color-secondary-raw: 51, 65, 85;--color-secondary-10: rgba(var(--color-secondary-raw), .1);--color-secondary-20: rgba(var(--color-secondary-raw), .2);--color-secondary-30: rgba(var(--color-secondary-raw), .3);--color-secondary-40: rgba(var(--color-secondary-raw), .4);--color-secondary-50: rgba(var(--color-secondary-raw), .5);--color-secondary-60: rgba(var(--color-secondary-raw), .6);--color-secondary-70: rgba(var(--color-secondary-raw), .7);--color-secondary-80: rgba(var(--color-secondary-raw), .8);--color-secondary-90: rgba(var(--color-secondary-raw), .9);--header-bg: transparent;--header-bg-fixed-dark: #0a0a0a;--header-bg-fixed-light: #f5f3ef;--header-mobile-bg: #f5f3ef;--header-logo-text: #1e2530;--header-logo-text-dark: #f5f3ef;--header-logo-text-light: #0a0a0a;--header-link: #1e2530;--header-link-hover: #0066dd;--footer-bg: #1e2530;--footer-text: #e2e8f0;--footer-text-hover: #60a5fa;--footer-links: #e2e8f0;--footer-links-hover: #60a5fa;--footer-arrows: #1e2530;--footer-arrows-hover: #f5f3ef;--footer-arrows-bg: #e2e8f0;--footer-arrows-bg-hover: #cbd5e1;--content-bg: #f5f3ef;--content-bg-light: #f5f5f5;--content-bg-dark: #0f1117;--content-overlay: rgba(0, 0, 0, .35);--text-primary: #1e2530;--text-primary-raw: 30, 37, 48;--text-primary-10: rgba(var(--text-primary-raw), .1);--text-primary-20: rgba(var(--text-primary-raw), .2);--text-primary-30: rgba(var(--text-primary-raw), .3);--text-primary-40: rgba(var(--text-primary-raw), .4);--text-primary-50: rgba(var(--text-primary-raw), .5);--text-primary-60: rgba(var(--text-primary-raw), .6);--text-primary-70: rgba(var(--text-primary-raw), .7);--text-primary-80: rgba(var(--text-primary-raw), .8);--text-primary-90: rgba(var(--text-primary-raw), .9);--text-secondary: rgba(30, 37, 48, .6);--text-secondary-raw: 30, 37, 48;--text-secondary-10: rgba(var(--text-secondary-raw), .1);--text-secondary-20: rgba(var(--text-secondary-raw), .2);--text-secondary-30: rgba(var(--text-secondary-raw), .3);--text-secondary-40: rgba(var(--text-secondary-raw), .4);--text-secondary-50: rgba(var(--text-secondary-raw), .5);--text-secondary-60: rgba(var(--text-secondary-raw), .6);--text-secondary-70: rgba(var(--text-secondary-raw), .7);--text-secondary-80: rgba(var(--text-secondary-raw), .8);--text-secondary-90: rgba(var(--text-secondary-raw), .9);--text-disabled: rgba(30, 37, 48, .3);--text-inverse: #f5f3ef;--surface-primary: #edeae4;--surface-secondary: #e4e0d8;--surface-tertiary: #d8d3c9;--modal-bg: var(--surface-primary);--close-btn: var(--text-primary);--item-text: var(--text-primary);--border-primary: #d8d3c9;--border-secondary: #c8c2b6;--border-focus: #0066dd;--divider: rgba(30, 37, 48, .1);--progress-color: var(--text-primary);--progress-bg: #0066dd;--tag-color: #f5f3ef;--tag-bg: #0066dd;--button-primary-bg: #0066dd;--button-primary-text: #ffffff;--button-primary-bg-hover: #0052b3;--button-primary-text-hover: #ffffff;--button-primary-outline-border: #0066dd;--button-primary-outline-text: #0066dd;--button-primary-outline-bg-hover: #0066dd;--button-primary-outline-text-hover: #ffffff;--button-secondary-bg: var(--surface-secondary);--button-secondary-text: var(--text-primary);--button-secondary-bg-hover: var(--surface-tertiary);--button-secondary-text-hover: var(--text-primary);--button-link-text: var(--text-primary);--button-link-text-hover: #0066dd;--button-header-bg: transparent;--button-header-text: var(--text-primary);--button-header-bg-hover: rgba(30, 37, 48, .06);--button-header-text-hover: var(--text-primary)}.legal-footer{margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);padding-left:calc(50vw - 50%);padding-right:calc(50vw - 50%);font-size:var(--font-size-base);background-color:var(--footer-bg);color:var(--footer-text)}.legal-footer__simple{color:var(--footer-text)}.legal-footer__simple-credits{text-align:right}@media(max-width:768px){.legal-footer__simple,.legal-footer__simple-credits{text-align:center}}.legal-footer .legal-footer__links{list-style:none;margin:0;padding:0}.legal-footer .legal-footer__links a{text-decoration:none;color:var(--footer-links)}.legal-footer .legal-footer__links a:hover{color:var(--footer-links-hover);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
16
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: LegalFooterComponent, isStandalone: true, selector: "lib-legal-footer", inputs: { year: "year", brand: "brand", credits: "credits", links: "links", variant: "variant" }, host: { styleAttribute: "display: contents" }, ngImport: i0, template: "<div class=\"legal-footer col-span-full sm:col-span-12 sm:col-start-1\" [ngClass]=\"variant\">\n <!-- Variante simple -->\n @if (variant === 'simple') {\n <div class=\"legal-footer__simple main-grid col-span-full\">\n <span class=\"legal-footer__simple-brand col-span-full sm:col-span-6 sm:col-start-1\">\n <b>{{ brand }} \u00A9 {{ year }}</b>\n </span>\n <span class=\"legal-footer__simple-credits col-span-full sm:col-span-6 sm:col-start-7\">{{ credits }}</span>\n </div>\n }\n\n <!-- Variante extendida -->\n @if (variant === 'extended') {\n <div class=\"legal-footer__extended col-span-full\">\n <span class=\"legal-footer__year col-span-full sm:col-span-3 sm:col-start-1\">\n <b>{{ brand }} \u00A9 {{ year }}</b>\n </span>\n\n <div class=\"legal-footer__right col-span-full sm:col-span-9 sm:col-start-4\">\n @if (links?.length) {\n <ul class=\"legal-footer__links\">\n @for (link of links; track $index) {\n <li>\n <a [href]=\"link.url\">{{ link.label }}</a>\n </li>\n }\n <li class=\"legal-footer__credits\">{{ credits }}</li>\n </ul>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":root[data-theme=dark]{color-scheme:dark;--color-primary: #007bff;--color-primary-raw: 0, 123, 255;--color-primary-10: rgba(var(--color-primary-raw), .1);--color-primary-20: rgba(var(--color-primary-raw), .2);--color-primary-30: rgba(var(--color-primary-raw), .3);--color-primary-40: rgba(var(--color-primary-raw), .4);--color-primary-50: rgba(var(--color-primary-raw), .5);--color-primary-60: rgba(var(--color-primary-raw), .6);--color-primary-70: rgba(var(--color-primary-raw), .7);--color-primary-80: rgba(var(--color-primary-raw), .8);--color-primary-90: rgba(var(--color-primary-raw), .9);--color-secondary: #e2e8f0;--color-secondary-raw: 226, 232, 240;--color-secondary-10: rgba(var(--color-secondary-raw), .1);--color-secondary-20: rgba(var(--color-secondary-raw), .2);--color-secondary-30: rgba(var(--color-secondary-raw), .3);--color-secondary-40: rgba(var(--color-secondary-raw), .4);--color-secondary-50: rgba(var(--color-secondary-raw), .5);--color-secondary-60: rgba(var(--color-secondary-raw), .6);--color-secondary-70: rgba(var(--color-secondary-raw), .7);--color-secondary-80: rgba(var(--color-secondary-raw), .8);--color-secondary-90: rgba(var(--color-secondary-raw), .9);--header-bg: transparent;--header-bg-fixed-dark: #1a1d21;--header-bg-fixed-light: #e2e8f0;--header-mobile-bg: #1a1d21;--header-logo-text: #e2e8f0;--header-logo-text-dark: #e2e8f0;--header-logo-text-light: #1a1d21;--header-link: #e2e8f0;--header-link-hover: #60a5fa;--footer-bg: #0f1117;--footer-text: #e2e8f0;--footer-text-hover: #60a5fa;--footer-links: #e2e8f0;--footer-links-hover: #60a5fa;--footer-arrows: #e2e8f0;--footer-arrows-hover: #0f1117;--footer-arrows-bg: #2a2d35;--footer-arrows-bg-hover: #3a3d45;--content-bg: #0f1117;--content-bg-light: #0f1117;--content-bg-dark: #f5f5f5;--content-overlay: rgba(0, 0, 0, .6);--text-primary: #e2e8f0;--text-primary-raw: 30, 37, 48;--text-primary-10: rgba(var(--text-primary-raw), .1);--text-primary-20: rgba(var(--text-primary-raw), .2);--text-primary-30: rgba(var(--text-primary-raw), .3);--text-primary-40: rgba(var(--text-primary-raw), .4);--text-primary-50: rgba(var(--text-primary-raw), .5);--text-primary-60: rgba(var(--text-primary-raw), .6);--text-primary-70: rgba(var(--text-primary-raw), .7);--text-primary-80: rgba(var(--text-primary-raw), .8);--text-primary-90: rgba(var(--text-primary-raw), .9);--text-secondary: rgba(30, 37, 48, .6);--text-secondary-raw: 30, 37, 48;--text-secondary-10: rgba(var(--text-secondary-raw), .1);--text-secondary-20: rgba(var(--text-secondary-raw), .2);--text-secondary-30: rgba(var(--text-secondary-raw), .3);--text-secondary-40: rgba(var(--text-secondary-raw), .4);--text-secondary-50: rgba(var(--text-secondary-raw), .5);--text-secondary-60: rgba(var(--text-secondary-raw), .6);--text-secondary-70: rgba(var(--text-secondary-raw), .7);--text-secondary-80: rgba(var(--text-secondary-raw), .8);--text-secondary-90: rgba(var(--text-secondary-raw), .9);--text-disabled: rgba(226, 232, 240, .3);--text-inverse: #0f1117;--surface-primary: #1a1d21;--surface-secondary: #22262d;--surface-tertiary: #2a2e36;--modal-bg: var(--surface-primary);--close-btn: var(--text-primary);--item-text: var(--text-primary);--border-primary: #2a2e36;--border-secondary: #343840;--border-focus: #60a5fa;--divider: rgba(226, 232, 240, .08);--progress-color: var(--text-primary);--progress-bg: #60a5fa;--tag-color: var(--text-primary);--tag-bg: #1e3a5f;--button-primary-bg: #007bff;--button-primary-text: #ffffff;--button-primary-bg-hover: #1a6fd4;--button-primary-text-hover: #ffffff;--button-primary-outline-border: #60a5fa;--button-primary-outline-text: #60a5fa;--button-primary-outline-bg-hover: #007bff;--button-primary-outline-text-hover: #ffffff;--button-secondary-bg: var(--surface-secondary);--button-secondary-text: var(--text-primary);--button-secondary-bg-hover: var(--surface-tertiary);--button-secondary-text-hover: var(--text-primary);--button-link-text: var(--text-primary);--button-link-text-hover: #60a5fa;--button-header-bg: transparent;--button-header-text: var(--text-primary);--button-header-bg-hover: rgba(226, 232, 240, .06);--button-header-text-hover: var(--text-primary)}:root[data-theme=light]{color-scheme:light;--color-primary: #0066dd;--color-primary-raw: 0, 102, 221;--color-primary-10: rgba(var(--color-primary-raw), .1);--color-primary-20: rgba(var(--color-primary-raw), .2);--color-primary-30: rgba(var(--color-primary-raw), .3);--color-primary-40: rgba(var(--color-primary-raw), .4);--color-primary-50: rgba(var(--color-primary-raw), .5);--color-primary-60: rgba(var(--color-primary-raw), .6);--color-primary-70: rgba(var(--color-primary-raw), .7);--color-primary-80: rgba(var(--color-primary-raw), .8);--color-primary-90: rgba(var(--color-primary-raw), .9);--color-secondary: #334155;--color-secondary-raw: 51, 65, 85;--color-secondary-10: rgba(var(--color-secondary-raw), .1);--color-secondary-20: rgba(var(--color-secondary-raw), .2);--color-secondary-30: rgba(var(--color-secondary-raw), .3);--color-secondary-40: rgba(var(--color-secondary-raw), .4);--color-secondary-50: rgba(var(--color-secondary-raw), .5);--color-secondary-60: rgba(var(--color-secondary-raw), .6);--color-secondary-70: rgba(var(--color-secondary-raw), .7);--color-secondary-80: rgba(var(--color-secondary-raw), .8);--color-secondary-90: rgba(var(--color-secondary-raw), .9);--header-bg: transparent;--header-bg-fixed-dark: #0a0a0a;--header-bg-fixed-light: #f5f3ef;--header-mobile-bg: #f5f3ef;--header-logo-text: #1e2530;--header-logo-text-dark: #f5f3ef;--header-logo-text-light: #0a0a0a;--header-link: #1e2530;--header-link-hover: #0066dd;--footer-bg: #1e2530;--footer-text: #e2e8f0;--footer-text-hover: #60a5fa;--footer-links: #e2e8f0;--footer-links-hover: #60a5fa;--footer-arrows: #1e2530;--footer-arrows-hover: #f5f3ef;--footer-arrows-bg: #e2e8f0;--footer-arrows-bg-hover: #cbd5e1;--content-bg: #f5f3ef;--content-bg-light: #f5f5f5;--content-bg-dark: #0f1117;--content-overlay: rgba(0, 0, 0, .35);--text-primary: #1e2530;--text-primary-raw: 30, 37, 48;--text-primary-10: rgba(var(--text-primary-raw), .1);--text-primary-20: rgba(var(--text-primary-raw), .2);--text-primary-30: rgba(var(--text-primary-raw), .3);--text-primary-40: rgba(var(--text-primary-raw), .4);--text-primary-50: rgba(var(--text-primary-raw), .5);--text-primary-60: rgba(var(--text-primary-raw), .6);--text-primary-70: rgba(var(--text-primary-raw), .7);--text-primary-80: rgba(var(--text-primary-raw), .8);--text-primary-90: rgba(var(--text-primary-raw), .9);--text-secondary: rgba(30, 37, 48, .6);--text-secondary-raw: 30, 37, 48;--text-secondary-10: rgba(var(--text-secondary-raw), .1);--text-secondary-20: rgba(var(--text-secondary-raw), .2);--text-secondary-30: rgba(var(--text-secondary-raw), .3);--text-secondary-40: rgba(var(--text-secondary-raw), .4);--text-secondary-50: rgba(var(--text-secondary-raw), .5);--text-secondary-60: rgba(var(--text-secondary-raw), .6);--text-secondary-70: rgba(var(--text-secondary-raw), .7);--text-secondary-80: rgba(var(--text-secondary-raw), .8);--text-secondary-90: rgba(var(--text-secondary-raw), .9);--text-disabled: rgba(30, 37, 48, .3);--text-inverse: #f5f3ef;--surface-primary: #edeae4;--surface-secondary: #e4e0d8;--surface-tertiary: #d8d3c9;--modal-bg: var(--surface-primary);--close-btn: var(--text-primary);--item-text: var(--text-primary);--border-primary: #d8d3c9;--border-secondary: #c8c2b6;--border-focus: #0066dd;--divider: rgba(30, 37, 48, .1);--progress-color: var(--text-primary);--progress-bg: #0066dd;--tag-color: #f5f3ef;--tag-bg: #0066dd;--button-primary-bg: #0066dd;--button-primary-text: #ffffff;--button-primary-bg-hover: #0052b3;--button-primary-text-hover: #ffffff;--button-primary-outline-border: #0066dd;--button-primary-outline-text: #0066dd;--button-primary-outline-bg-hover: #0066dd;--button-primary-outline-text-hover: #ffffff;--button-secondary-bg: var(--surface-secondary);--button-secondary-text: var(--text-primary);--button-secondary-bg-hover: var(--surface-tertiary);--button-secondary-text-hover: var(--text-primary);--button-link-text: var(--text-primary);--button-link-text-hover: #0066dd;--button-header-bg: transparent;--button-header-text: var(--text-primary);--button-header-bg-hover: rgba(30, 37, 48, .06);--button-header-text-hover: var(--text-primary)}.legal-footer{margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);padding-left:calc(50vw - 50%);padding-right:calc(50vw - 50%);font-size:var(--font-size-base);background-color:var(--footer-bg);color:var(--footer-text)}.legal-footer__simple{color:var(--footer-text)}.legal-footer__simple-credits{text-align:right}@media(max-width:768px){.legal-footer__simple,.legal-footer__simple-credits{text-align:center}}.legal-footer .legal-footer__links{list-style:none;margin:0;padding:0}.legal-footer .legal-footer__links a{text-decoration:none;color:var(--footer-links)}.legal-footer .legal-footer__links a:hover{color:var(--footer-links-hover);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17
17
  }
18
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: LegalFooterComponent, decorators: [{
19
19
  type: Component,
20
- args: [{ selector: 'lib-legal-footer', standalone: true, imports: [CommonModule, LinkTypeDirective], host: {
20
+ args: [{ selector: 'lib-legal-footer', standalone: true, imports: [CommonModule, LinkTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, host: {
21
21
  style: 'display: contents',
22
22
  }, template: "<div class=\"legal-footer col-span-full sm:col-span-12 sm:col-start-1\" [ngClass]=\"variant\">\n <!-- Variante simple -->\n @if (variant === 'simple') {\n <div class=\"legal-footer__simple main-grid col-span-full\">\n <span class=\"legal-footer__simple-brand col-span-full sm:col-span-6 sm:col-start-1\">\n <b>{{ brand }} \u00A9 {{ year }}</b>\n </span>\n <span class=\"legal-footer__simple-credits col-span-full sm:col-span-6 sm:col-start-7\">{{ credits }}</span>\n </div>\n }\n\n <!-- Variante extendida -->\n @if (variant === 'extended') {\n <div class=\"legal-footer__extended col-span-full\">\n <span class=\"legal-footer__year col-span-full sm:col-span-3 sm:col-start-1\">\n <b>{{ brand }} \u00A9 {{ year }}</b>\n </span>\n\n <div class=\"legal-footer__right col-span-full sm:col-span-9 sm:col-start-4\">\n @if (links?.length) {\n <ul class=\"legal-footer__links\">\n @for (link of links; track $index) {\n <li>\n <a [href]=\"link.url\">{{ link.label }}</a>\n </li>\n }\n <li class=\"legal-footer__credits\">{{ credits }}</li>\n </ul>\n }\n </div>\n </div>\n }\n</div>\n", styles: [":root[data-theme=dark]{color-scheme:dark;--color-primary: #007bff;--color-primary-raw: 0, 123, 255;--color-primary-10: rgba(var(--color-primary-raw), .1);--color-primary-20: rgba(var(--color-primary-raw), .2);--color-primary-30: rgba(var(--color-primary-raw), .3);--color-primary-40: rgba(var(--color-primary-raw), .4);--color-primary-50: rgba(var(--color-primary-raw), .5);--color-primary-60: rgba(var(--color-primary-raw), .6);--color-primary-70: rgba(var(--color-primary-raw), .7);--color-primary-80: rgba(var(--color-primary-raw), .8);--color-primary-90: rgba(var(--color-primary-raw), .9);--color-secondary: #e2e8f0;--color-secondary-raw: 226, 232, 240;--color-secondary-10: rgba(var(--color-secondary-raw), .1);--color-secondary-20: rgba(var(--color-secondary-raw), .2);--color-secondary-30: rgba(var(--color-secondary-raw), .3);--color-secondary-40: rgba(var(--color-secondary-raw), .4);--color-secondary-50: rgba(var(--color-secondary-raw), .5);--color-secondary-60: rgba(var(--color-secondary-raw), .6);--color-secondary-70: rgba(var(--color-secondary-raw), .7);--color-secondary-80: rgba(var(--color-secondary-raw), .8);--color-secondary-90: rgba(var(--color-secondary-raw), .9);--header-bg: transparent;--header-bg-fixed-dark: #1a1d21;--header-bg-fixed-light: #e2e8f0;--header-mobile-bg: #1a1d21;--header-logo-text: #e2e8f0;--header-logo-text-dark: #e2e8f0;--header-logo-text-light: #1a1d21;--header-link: #e2e8f0;--header-link-hover: #60a5fa;--footer-bg: #0f1117;--footer-text: #e2e8f0;--footer-text-hover: #60a5fa;--footer-links: #e2e8f0;--footer-links-hover: #60a5fa;--footer-arrows: #e2e8f0;--footer-arrows-hover: #0f1117;--footer-arrows-bg: #2a2d35;--footer-arrows-bg-hover: #3a3d45;--content-bg: #0f1117;--content-bg-light: #0f1117;--content-bg-dark: #f5f5f5;--content-overlay: rgba(0, 0, 0, .6);--text-primary: #e2e8f0;--text-primary-raw: 30, 37, 48;--text-primary-10: rgba(var(--text-primary-raw), .1);--text-primary-20: rgba(var(--text-primary-raw), .2);--text-primary-30: rgba(var(--text-primary-raw), .3);--text-primary-40: rgba(var(--text-primary-raw), .4);--text-primary-50: rgba(var(--text-primary-raw), .5);--text-primary-60: rgba(var(--text-primary-raw), .6);--text-primary-70: rgba(var(--text-primary-raw), .7);--text-primary-80: rgba(var(--text-primary-raw), .8);--text-primary-90: rgba(var(--text-primary-raw), .9);--text-secondary: rgba(30, 37, 48, .6);--text-secondary-raw: 30, 37, 48;--text-secondary-10: rgba(var(--text-secondary-raw), .1);--text-secondary-20: rgba(var(--text-secondary-raw), .2);--text-secondary-30: rgba(var(--text-secondary-raw), .3);--text-secondary-40: rgba(var(--text-secondary-raw), .4);--text-secondary-50: rgba(var(--text-secondary-raw), .5);--text-secondary-60: rgba(var(--text-secondary-raw), .6);--text-secondary-70: rgba(var(--text-secondary-raw), .7);--text-secondary-80: rgba(var(--text-secondary-raw), .8);--text-secondary-90: rgba(var(--text-secondary-raw), .9);--text-disabled: rgba(226, 232, 240, .3);--text-inverse: #0f1117;--surface-primary: #1a1d21;--surface-secondary: #22262d;--surface-tertiary: #2a2e36;--modal-bg: var(--surface-primary);--close-btn: var(--text-primary);--item-text: var(--text-primary);--border-primary: #2a2e36;--border-secondary: #343840;--border-focus: #60a5fa;--divider: rgba(226, 232, 240, .08);--progress-color: var(--text-primary);--progress-bg: #60a5fa;--tag-color: var(--text-primary);--tag-bg: #1e3a5f;--button-primary-bg: #007bff;--button-primary-text: #ffffff;--button-primary-bg-hover: #1a6fd4;--button-primary-text-hover: #ffffff;--button-primary-outline-border: #60a5fa;--button-primary-outline-text: #60a5fa;--button-primary-outline-bg-hover: #007bff;--button-primary-outline-text-hover: #ffffff;--button-secondary-bg: var(--surface-secondary);--button-secondary-text: var(--text-primary);--button-secondary-bg-hover: var(--surface-tertiary);--button-secondary-text-hover: var(--text-primary);--button-link-text: var(--text-primary);--button-link-text-hover: #60a5fa;--button-header-bg: transparent;--button-header-text: var(--text-primary);--button-header-bg-hover: rgba(226, 232, 240, .06);--button-header-text-hover: var(--text-primary)}:root[data-theme=light]{color-scheme:light;--color-primary: #0066dd;--color-primary-raw: 0, 102, 221;--color-primary-10: rgba(var(--color-primary-raw), .1);--color-primary-20: rgba(var(--color-primary-raw), .2);--color-primary-30: rgba(var(--color-primary-raw), .3);--color-primary-40: rgba(var(--color-primary-raw), .4);--color-primary-50: rgba(var(--color-primary-raw), .5);--color-primary-60: rgba(var(--color-primary-raw), .6);--color-primary-70: rgba(var(--color-primary-raw), .7);--color-primary-80: rgba(var(--color-primary-raw), .8);--color-primary-90: rgba(var(--color-primary-raw), .9);--color-secondary: #334155;--color-secondary-raw: 51, 65, 85;--color-secondary-10: rgba(var(--color-secondary-raw), .1);--color-secondary-20: rgba(var(--color-secondary-raw), .2);--color-secondary-30: rgba(var(--color-secondary-raw), .3);--color-secondary-40: rgba(var(--color-secondary-raw), .4);--color-secondary-50: rgba(var(--color-secondary-raw), .5);--color-secondary-60: rgba(var(--color-secondary-raw), .6);--color-secondary-70: rgba(var(--color-secondary-raw), .7);--color-secondary-80: rgba(var(--color-secondary-raw), .8);--color-secondary-90: rgba(var(--color-secondary-raw), .9);--header-bg: transparent;--header-bg-fixed-dark: #0a0a0a;--header-bg-fixed-light: #f5f3ef;--header-mobile-bg: #f5f3ef;--header-logo-text: #1e2530;--header-logo-text-dark: #f5f3ef;--header-logo-text-light: #0a0a0a;--header-link: #1e2530;--header-link-hover: #0066dd;--footer-bg: #1e2530;--footer-text: #e2e8f0;--footer-text-hover: #60a5fa;--footer-links: #e2e8f0;--footer-links-hover: #60a5fa;--footer-arrows: #1e2530;--footer-arrows-hover: #f5f3ef;--footer-arrows-bg: #e2e8f0;--footer-arrows-bg-hover: #cbd5e1;--content-bg: #f5f3ef;--content-bg-light: #f5f5f5;--content-bg-dark: #0f1117;--content-overlay: rgba(0, 0, 0, .35);--text-primary: #1e2530;--text-primary-raw: 30, 37, 48;--text-primary-10: rgba(var(--text-primary-raw), .1);--text-primary-20: rgba(var(--text-primary-raw), .2);--text-primary-30: rgba(var(--text-primary-raw), .3);--text-primary-40: rgba(var(--text-primary-raw), .4);--text-primary-50: rgba(var(--text-primary-raw), .5);--text-primary-60: rgba(var(--text-primary-raw), .6);--text-primary-70: rgba(var(--text-primary-raw), .7);--text-primary-80: rgba(var(--text-primary-raw), .8);--text-primary-90: rgba(var(--text-primary-raw), .9);--text-secondary: rgba(30, 37, 48, .6);--text-secondary-raw: 30, 37, 48;--text-secondary-10: rgba(var(--text-secondary-raw), .1);--text-secondary-20: rgba(var(--text-secondary-raw), .2);--text-secondary-30: rgba(var(--text-secondary-raw), .3);--text-secondary-40: rgba(var(--text-secondary-raw), .4);--text-secondary-50: rgba(var(--text-secondary-raw), .5);--text-secondary-60: rgba(var(--text-secondary-raw), .6);--text-secondary-70: rgba(var(--text-secondary-raw), .7);--text-secondary-80: rgba(var(--text-secondary-raw), .8);--text-secondary-90: rgba(var(--text-secondary-raw), .9);--text-disabled: rgba(30, 37, 48, .3);--text-inverse: #f5f3ef;--surface-primary: #edeae4;--surface-secondary: #e4e0d8;--surface-tertiary: #d8d3c9;--modal-bg: var(--surface-primary);--close-btn: var(--text-primary);--item-text: var(--text-primary);--border-primary: #d8d3c9;--border-secondary: #c8c2b6;--border-focus: #0066dd;--divider: rgba(30, 37, 48, .1);--progress-color: var(--text-primary);--progress-bg: #0066dd;--tag-color: #f5f3ef;--tag-bg: #0066dd;--button-primary-bg: #0066dd;--button-primary-text: #ffffff;--button-primary-bg-hover: #0052b3;--button-primary-text-hover: #ffffff;--button-primary-outline-border: #0066dd;--button-primary-outline-text: #0066dd;--button-primary-outline-bg-hover: #0066dd;--button-primary-outline-text-hover: #ffffff;--button-secondary-bg: var(--surface-secondary);--button-secondary-text: var(--text-primary);--button-secondary-bg-hover: var(--surface-tertiary);--button-secondary-text-hover: var(--text-primary);--button-link-text: var(--text-primary);--button-link-text-hover: #0066dd;--button-header-bg: transparent;--button-header-text: var(--text-primary);--button-header-bg-hover: rgba(30, 37, 48, .06);--button-header-text-hover: var(--text-primary)}.legal-footer{margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);padding-left:calc(50vw - 50%);padding-right:calc(50vw - 50%);font-size:var(--font-size-base);background-color:var(--footer-bg);color:var(--footer-text)}.legal-footer__simple{color:var(--footer-text)}.legal-footer__simple-credits{text-align:right}@media(max-width:768px){.legal-footer__simple,.legal-footer__simple-credits{text-align:center}}.legal-footer .legal-footer__links{list-style:none;margin:0;padding:0}.legal-footer .legal-footer__links a{text-decoration:none;color:var(--footer-links)}.legal-footer .legal-footer__links a:hover{color:var(--footer-links-hover);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}\n"] }]
23
23
  }], propDecorators: { year: [{
@@ -1 +1 @@
1
- {"version":3,"file":"lluc_llull-ui-lib-footers.mjs","sources":["../../../projects/ui-lib/footers/legal-footer/legal-footer.component.ts","../../../projects/ui-lib/footers/legal-footer/legal-footer.component.html","../../../projects/ui-lib/footers/links-footer/links-footer.component.ts","../../../projects/ui-lib/footers/links-footer/links-footer.component.html","../../../projects/ui-lib/footers/social-footer/social-footer.component.ts","../../../projects/ui-lib/footers/social-footer/social-footer.component.html","../../../projects/ui-lib/footers/visual-footer/visual-footer.component.ts","../../../projects/ui-lib/footers/visual-footer/visual-footer.component.html","../../../projects/ui-lib/footers/columns-footer/columns-footer.component.ts","../../../projects/ui-lib/footers/columns-footer/columns-footer.component.html","../../../projects/ui-lib/footers/lluc_llull-ui-lib-footers.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { UiLibButtonI } from '@lluc_llull/ui-lib/interfaces';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\n\nexport type LegalFooterVariant = 'simple' | 'extended';\n\n@Component({\n selector: 'lib-legal-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './legal-footer.component.html',\n styleUrl: './legal-footer.component.scss',\n host: {\n style: 'display: contents',\n },\n})\nexport class LegalFooterComponent {\n @Input() year?: number;\n @Input() brand?: string;\n @Input() credits?: string;\n @Input() links?: UiLibButtonI[];\n @Input() variant: LegalFooterVariant = 'simple';\n}\n","<div class=\"legal-footer col-span-full sm:col-span-12 sm:col-start-1\" [ngClass]=\"variant\">\n <!-- Variante simple -->\n @if (variant === 'simple') {\n <div class=\"legal-footer__simple main-grid col-span-full\">\n <span class=\"legal-footer__simple-brand col-span-full sm:col-span-6 sm:col-start-1\">\n <b>{{ brand }} © {{ year }}</b>\n </span>\n <span class=\"legal-footer__simple-credits col-span-full sm:col-span-6 sm:col-start-7\">{{ credits }}</span>\n </div>\n }\n\n <!-- Variante extendida -->\n @if (variant === 'extended') {\n <div class=\"legal-footer__extended col-span-full\">\n <span class=\"legal-footer__year col-span-full sm:col-span-3 sm:col-start-1\">\n <b>{{ brand }} © {{ year }}</b>\n </span>\n\n <div class=\"legal-footer__right col-span-full sm:col-span-9 sm:col-start-4\">\n @if (links?.length) {\n <ul class=\"legal-footer__links\">\n @for (link of links; track $index) {\n <li>\n <a [href]=\"link.url\">{{ link.label }}</a>\n </li>\n }\n <li class=\"legal-footer__credits\">{{ credits }}</li>\n </ul>\n }\n </div>\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibButtonI } from '@lluc_llull/ui-lib/interfaces';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\n\n@Component({\n selector: 'lib-links-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './links-footer.component.html',\n styleUrl: './links-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class LinksFooterComponent {\n @Input() links?: UiLibButtonI[];\n}\n","@if (links) {\n <div class=\"links-footer main-grid col-span-full\">\n <ul class=\"col-span-full\">\n @for (link of links; track $index) {\n <li>\n <a [href]=\"link.url\" [linkType]=\"link.linkType\" class=\"btn btn-link\">\n {{ link.label }}\n </a>\n </li>\n }\n </ul>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibButtonI, UiLibImageI } from '@lluc_llull/ui-lib/interfaces';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport { SwiperDirective } from '@lluc_llull/ui-lib/sliders';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-social-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective, SwiperDirective, UiIconComponent],\n templateUrl: './social-footer.component.html',\n styleUrl: './social-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class SocialFooterComponent {\n @Input() images?: UiLibImageI[];\n @Input() socials?: UiLibButtonI[];\n @Input() hashtag?: string;\n}\n","<div class=\"social-footer main-grid col-span-full sm:col-span-12 sm:col-start-1\">\n <div class=\"social-footer__slider-images swiper col-span-full\" appSwiper>\n <div class=\"swiper-wrapper\">\n @for (image of images; track $index) {\n <div class=\"swiper-slide\">\n <img [src]=\"image?.url\" [alt]=\"image?.alt || ''\" />\n </div>\n }\n </div>\n <div class=\"swiper-button-prev\">\n <ui-icon name=\"arrow-left\" [size]=\"17\" color=\"#fff\"></ui-icon>\n </div>\n <div class=\"swiper-button-next\">\n <ui-icon name=\"arrow-right\" [size]=\"17\" color=\"#fff\"></ui-icon>\n </div>\n </div>\n\n <div class=\"social-footer__bottom-section main-grid col-span-full\">\n @if (hashtag) {\n <div class=\"social-footer__hashtag col-span-full sm:col-span-6 sm:col-start-1\">\n <span>{{ hashtag }}</span>\n </div>\n }\n @if (socials) {\n <div class=\"social-footer__socials col-span-full sm:col-span-6 sm:col-start-7\">\n @for (social of socials; track $index) {\n <a [href]=\"social.url\" [attr.aria-label]=\"social.label\" [linkType]=\"social.linkType\">\n @if (social.icon) {\n <ui-icon [name]=\"social.icon\" [size]=\"28\"></ui-icon>\n }\n </a>\n }\n </div>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibAddressI, UiLibButtonI, UiLibImageI } from '@lluc_llull/ui-lib/interfaces';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\n\n@Component({\n selector: 'lib-visual-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './visual-footer.component.html',\n styleUrl: './visual-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class VisualFooterComponent {\n @Input() contactTitle?: string;\n @Input() contactPhone?: UiLibButtonI;\n @Input() contactEmail?: UiLibButtonI;\n @Input() addressTitle?: string;\n @Input() address?: UiLibAddressI;\n @Input() socialsTitle?: string;\n @Input() socials?: UiLibButtonI[];\n @Input() image?: UiLibImageI;\n}\n","<div class=\"visual-footer main-grid col-span-full sm:col-span-12 sm:col-start-1\">\n <div class=\"visual-footer__texts col-span-full sm:col-span-3 sm:col-start-1\">\n <div class=\"visual-footer__contact\">\n @if (contactTitle) {\n <h2 class=\"title\">{{ contactTitle }}</h2>\n }\n @if (contactPhone) {\n <a [href]=\"contactPhone.url\" [linkType]=\"contactPhone.linkType\" class=\"btn btn-link\">\n <span>{{ contactPhone.label }}</span>\n </a>\n }\n @if (contactEmail) {\n <a [href]=\"contactEmail.url\" [linkType]=\"contactEmail.linkType\" class=\"btn btn-link\">\n <span>{{ contactEmail.label }}</span>\n </a>\n }\n </div>\n <div class=\"visual-footer__address\">\n @if (addressTitle) {\n <h2 class=\"title\">{{ addressTitle }}</h2>\n }\n <p class=\"text\">\n <span>{{ address?.address }}</span>\n <span>{{ address?.cp }} {{ address?.city }}</span>\n <span>{{ address?.province }} {{ address?.country }}</span>\n </p>\n </div>\n <div class=\"visual-footer__socials\">\n @if (socialsTitle) {\n <h2 class=\"title\">{{ socialsTitle }}</h2>\n }\n @if (socials) {\n @for (social of socials; track $index) {\n <a [href]=\"social.url\" [linkType]=\"social.linkType\" class=\"btn btn-link\">\n <span>{{ social.label }}</span>\n </a>\n }\n }\n </div>\n </div>\n <div class=\"visual-footer__image col-span-full sm:col-span-8 sm:col-start-5\">\n @if (image) {\n <img [src]=\"image.url\" [alt]=\"image.alt\" loading=\"lazy\" />\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport { UiLibButtonI } from '@lluc_llull/ui-lib/interfaces';\n\n@Component({\n selector: 'lib-columns-footer',\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './columns-footer.component.html',\n styleUrl: './columns-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class ColumnsFooterComponent {\n @Input() columns?: ColumnsFooterItemI[];\n @Input() copyright?: ColumnsFooterCopyRightI;\n}\n\nexport interface ColumnsFooterItemI {\n title: string;\n items: UiLibButtonI[];\n}\n\nexport interface ColumnsFooterCopyRightI {\n year: string;\n name?: string;\n rights?: string;\n}\n","<div class=\"columns-footer-wrapper col-span-full\">\n <div class=\"columns-footer main-grid col-span-full sm:col-span-12 sm:col-start-1\">\n @if (columns?.[0]; as column1) {\n <div class=\"columns-footer__one col-span-full sm:col-span-3 sm:col-start-1\">\n @if (column1.title) {\n <h4 class=\"columns-footer__one-title\">\n {{ column1.title }}\n </h4>\n }\n @if (column1.items && column1.items.length > 0) {\n <ul class=\"columns-footer__one-list\">\n @for (item of column1.items; track $index) {\n <li class=\"columns-footer__one-item\">\n <a [href]=\"item.url\" [linkType]=\"item.linkType\">{{ item.label }}</a>\n </li>\n }\n </ul>\n }\n </div>\n }\n @if (columns?.[1]; as column2) {\n <div class=\"columns-footer__two col-span-full sm:col-span-6 sm:col-start-4\">\n @if (column2.title) {\n <h4 class=\"columns-footer__two-title\">\n {{ column2.title }}\n </h4>\n }\n @if (column2.items && column2.items.length > 0) {\n <ul class=\"columns-footer__two-list\">\n @for (item of column2.items; track $index) {\n <li class=\"columns-footer__two-item\">\n <a [href]=\"item.url\" [linkType]=\"item.linkType\">{{ item.label }}</a>\n </li>\n }\n </ul>\n }\n </div>\n }\n @if (columns?.[2]; as column3) {\n <div class=\"columns-footer__three col-span-full sm:col-span-3 sm:col-start-10\">\n @if (column3.title) {\n <h4 class=\"columns-footer__three-title\">\n {{ column3.title }}\n </h4>\n }\n @if (column3.items && column3.items.length > 0) {\n <ul class=\"columns-footer__three-list\">\n @for (item of column3.items; track $index) {\n <li class=\"columns-footer__three-item\" [class.mt-separator]=\"$index > 0 && item.linkType !== column3.items[$index - 1].linkType\">\n <a [href]=\"item.url\" [linkType]=\"item.linkType\">{{ item.label }}</a>\n </li>\n }\n </ul>\n }\n </div>\n }\n </div>\n <div class=\"columns-footer__copyright col-span-full sm:col-span-12 sm:col-start-1\">\n @if (copyright) {\n <div class=\"columns-footer__copyright-text\">\n <span>{{ copyright.year }}</span>\n <span>{{ copyright.name }}</span>\n <span>{{ copyright.rights }}</span>\n </div>\n }\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lluc_llull-ui-lib-footers.mjs","sources":["../../../projects/ui-lib/footers/legal-footer/legal-footer.component.ts","../../../projects/ui-lib/footers/legal-footer/legal-footer.component.html","../../../projects/ui-lib/footers/links-footer/links-footer.component.ts","../../../projects/ui-lib/footers/links-footer/links-footer.component.html","../../../projects/ui-lib/footers/social-footer/social-footer.component.ts","../../../projects/ui-lib/footers/social-footer/social-footer.component.html","../../../projects/ui-lib/footers/visual-footer/visual-footer.component.ts","../../../projects/ui-lib/footers/visual-footer/visual-footer.component.html","../../../projects/ui-lib/footers/columns-footer/columns-footer.component.ts","../../../projects/ui-lib/footers/columns-footer/columns-footer.component.html","../../../projects/ui-lib/footers/lluc_llull-ui-lib-footers.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibButtonI } from '@lluc_llull/ui-lib/interfaces';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\n\nexport type LegalFooterVariant = 'simple' | 'extended';\n\n@Component({\n selector: 'lib-legal-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './legal-footer.component.html',\n styleUrl: './legal-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class LegalFooterComponent {\n @Input() year?: number;\n @Input() brand?: string;\n @Input() credits?: string;\n @Input() links?: UiLibButtonI[];\n @Input() variant: LegalFooterVariant = 'simple';\n}\n","<div class=\"legal-footer col-span-full sm:col-span-12 sm:col-start-1\" [ngClass]=\"variant\">\n <!-- Variante simple -->\n @if (variant === 'simple') {\n <div class=\"legal-footer__simple main-grid col-span-full\">\n <span class=\"legal-footer__simple-brand col-span-full sm:col-span-6 sm:col-start-1\">\n <b>{{ brand }} © {{ year }}</b>\n </span>\n <span class=\"legal-footer__simple-credits col-span-full sm:col-span-6 sm:col-start-7\">{{ credits }}</span>\n </div>\n }\n\n <!-- Variante extendida -->\n @if (variant === 'extended') {\n <div class=\"legal-footer__extended col-span-full\">\n <span class=\"legal-footer__year col-span-full sm:col-span-3 sm:col-start-1\">\n <b>{{ brand }} © {{ year }}</b>\n </span>\n\n <div class=\"legal-footer__right col-span-full sm:col-span-9 sm:col-start-4\">\n @if (links?.length) {\n <ul class=\"legal-footer__links\">\n @for (link of links; track $index) {\n <li>\n <a [href]=\"link.url\">{{ link.label }}</a>\n </li>\n }\n <li class=\"legal-footer__credits\">{{ credits }}</li>\n </ul>\n }\n </div>\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibButtonI } from '@lluc_llull/ui-lib/interfaces';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\n\n@Component({\n selector: 'lib-links-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './links-footer.component.html',\n styleUrl: './links-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class LinksFooterComponent {\n @Input() links?: UiLibButtonI[];\n}\n","@if (links) {\n <div class=\"links-footer main-grid col-span-full\">\n <ul class=\"col-span-full\">\n @for (link of links; track $index) {\n <li>\n <a [href]=\"link.url\" [linkType]=\"link.linkType\" class=\"btn btn-link\">\n {{ link.label }}\n </a>\n </li>\n }\n </ul>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibButtonI, UiLibImageI } from '@lluc_llull/ui-lib/interfaces';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport { SwiperDirective } from '@lluc_llull/ui-lib/sliders';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-social-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective, SwiperDirective, UiIconComponent],\n templateUrl: './social-footer.component.html',\n styleUrl: './social-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class SocialFooterComponent {\n @Input() images?: UiLibImageI[];\n @Input() socials?: UiLibButtonI[];\n @Input() hashtag?: string;\n}\n","<div class=\"social-footer main-grid col-span-full sm:col-span-12 sm:col-start-1\">\n <div class=\"social-footer__slider-images swiper col-span-full\" appSwiper>\n <div class=\"swiper-wrapper\">\n @for (image of images; track $index) {\n <div class=\"swiper-slide\">\n <img [src]=\"image?.url\" [alt]=\"image?.alt || ''\" />\n </div>\n }\n </div>\n <div class=\"swiper-button-prev\">\n <ui-icon name=\"arrow-left\" [size]=\"17\" color=\"#fff\"></ui-icon>\n </div>\n <div class=\"swiper-button-next\">\n <ui-icon name=\"arrow-right\" [size]=\"17\" color=\"#fff\"></ui-icon>\n </div>\n </div>\n\n <div class=\"social-footer__bottom-section main-grid col-span-full\">\n @if (hashtag) {\n <div class=\"social-footer__hashtag col-span-full sm:col-span-6 sm:col-start-1\">\n <span>{{ hashtag }}</span>\n </div>\n }\n @if (socials) {\n <div class=\"social-footer__socials col-span-full sm:col-span-6 sm:col-start-7\">\n @for (social of socials; track $index) {\n <a [href]=\"social.url\" [attr.aria-label]=\"social.label\" [linkType]=\"social.linkType\">\n @if (social.icon) {\n <ui-icon [name]=\"social.icon\" [size]=\"28\"></ui-icon>\n }\n </a>\n }\n </div>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibAddressI, UiLibButtonI, UiLibImageI } from '@lluc_llull/ui-lib/interfaces';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\n\n@Component({\n selector: 'lib-visual-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './visual-footer.component.html',\n styleUrl: './visual-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class VisualFooterComponent {\n @Input() contactTitle?: string;\n @Input() contactPhone?: UiLibButtonI;\n @Input() contactEmail?: UiLibButtonI;\n @Input() addressTitle?: string;\n @Input() address?: UiLibAddressI;\n @Input() socialsTitle?: string;\n @Input() socials?: UiLibButtonI[];\n @Input() image?: UiLibImageI;\n}\n","<div class=\"visual-footer main-grid col-span-full sm:col-span-12 sm:col-start-1\">\n <div class=\"visual-footer__texts col-span-full sm:col-span-3 sm:col-start-1\">\n <div class=\"visual-footer__contact\">\n @if (contactTitle) {\n <h2 class=\"title\">{{ contactTitle }}</h2>\n }\n @if (contactPhone) {\n <a [href]=\"contactPhone.url\" [linkType]=\"contactPhone.linkType\" class=\"btn btn-link\">\n <span>{{ contactPhone.label }}</span>\n </a>\n }\n @if (contactEmail) {\n <a [href]=\"contactEmail.url\" [linkType]=\"contactEmail.linkType\" class=\"btn btn-link\">\n <span>{{ contactEmail.label }}</span>\n </a>\n }\n </div>\n <div class=\"visual-footer__address\">\n @if (addressTitle) {\n <h2 class=\"title\">{{ addressTitle }}</h2>\n }\n <p class=\"text\">\n <span>{{ address?.address }}</span>\n <span>{{ address?.cp }} {{ address?.city }}</span>\n <span>{{ address?.province }} {{ address?.country }}</span>\n </p>\n </div>\n <div class=\"visual-footer__socials\">\n @if (socialsTitle) {\n <h2 class=\"title\">{{ socialsTitle }}</h2>\n }\n @if (socials) {\n @for (social of socials; track $index) {\n <a [href]=\"social.url\" [linkType]=\"social.linkType\" class=\"btn btn-link\">\n <span>{{ social.label }}</span>\n </a>\n }\n }\n </div>\n </div>\n <div class=\"visual-footer__image col-span-full sm:col-span-8 sm:col-start-5\">\n @if (image) {\n <img [src]=\"image.url\" [alt]=\"image.alt\" loading=\"lazy\" />\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport { UiLibButtonI } from '@lluc_llull/ui-lib/interfaces';\n\n@Component({\n selector: 'lib-columns-footer',\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './columns-footer.component.html',\n styleUrl: './columns-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class ColumnsFooterComponent {\n @Input() columns?: ColumnsFooterItemI[];\n @Input() copyright?: ColumnsFooterCopyRightI;\n}\n\nexport interface ColumnsFooterItemI {\n title: string;\n items: UiLibButtonI[];\n}\n\nexport interface ColumnsFooterCopyRightI {\n year: string;\n name?: string;\n rights?: string;\n}\n","<div class=\"columns-footer-wrapper col-span-full\">\n <div class=\"columns-footer main-grid col-span-full sm:col-span-12 sm:col-start-1\">\n @if (columns?.[0]; as column1) {\n <div class=\"columns-footer__one col-span-full sm:col-span-3 sm:col-start-1\">\n @if (column1.title) {\n <h4 class=\"columns-footer__one-title\">\n {{ column1.title }}\n </h4>\n }\n @if (column1.items && column1.items.length > 0) {\n <ul class=\"columns-footer__one-list\">\n @for (item of column1.items; track $index) {\n <li class=\"columns-footer__one-item\">\n <a [href]=\"item.url\" [linkType]=\"item.linkType\">{{ item.label }}</a>\n </li>\n }\n </ul>\n }\n </div>\n }\n @if (columns?.[1]; as column2) {\n <div class=\"columns-footer__two col-span-full sm:col-span-6 sm:col-start-4\">\n @if (column2.title) {\n <h4 class=\"columns-footer__two-title\">\n {{ column2.title }}\n </h4>\n }\n @if (column2.items && column2.items.length > 0) {\n <ul class=\"columns-footer__two-list\">\n @for (item of column2.items; track $index) {\n <li class=\"columns-footer__two-item\">\n <a [href]=\"item.url\" [linkType]=\"item.linkType\">{{ item.label }}</a>\n </li>\n }\n </ul>\n }\n </div>\n }\n @if (columns?.[2]; as column3) {\n <div class=\"columns-footer__three col-span-full sm:col-span-3 sm:col-start-10\">\n @if (column3.title) {\n <h4 class=\"columns-footer__three-title\">\n {{ column3.title }}\n </h4>\n }\n @if (column3.items && column3.items.length > 0) {\n <ul class=\"columns-footer__three-list\">\n @for (item of column3.items; track $index) {\n <li class=\"columns-footer__three-item\" [class.mt-separator]=\"$index > 0 && item.linkType !== column3.items[$index - 1].linkType\">\n <a [href]=\"item.url\" [linkType]=\"item.linkType\">{{ item.label }}</a>\n </li>\n }\n </ul>\n }\n </div>\n }\n </div>\n <div class=\"columns-footer__copyright col-span-full sm:col-span-12 sm:col-start-1\">\n @if (copyright) {\n <div class=\"columns-footer__copyright-text\">\n <span>{{ copyright.year }}</span>\n <span>{{ copyright.name }}</span>\n <span>{{ copyright.rights }}</span>\n </div>\n }\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
- import * as i1 from '@angular/common';
2
1
  import { CommonModule } from '@angular/common';
3
2
  import * as i0 from '@angular/core';
4
- import { Input, Component, Optional, Inject } from '@angular/core';
3
+ import { Input, Component, HostBinding, Optional, Inject } from '@angular/core';
5
4
  import * as simpleIcons from 'simple-icons';
6
- import * as i2 from 'lucide-angular';
5
+ import * as i1 from 'lucide-angular';
7
6
  import { LucideAngularModule } from 'lucide-angular';
8
7
  import * as i1$1 from '@cloudinary/ng';
9
8
  import { responsive, lazyload, CloudinaryModule } from '@cloudinary/ng';
@@ -20,7 +19,7 @@ class UiIconComponent {
20
19
  color = 'currentColor';
21
20
  icon;
22
21
  ngOnChanges() {
23
- this.icon = this.resolveBrandIcon();
22
+ this.resolveBrandIcon();
24
23
  }
25
24
  get isBrandIcon() {
26
25
  return !!this.icon;
@@ -29,17 +28,19 @@ class UiIconComponent {
29
28
  return this.icon ?? null;
30
29
  }
31
30
  resolveBrandIcon() {
32
- if (!this.name)
33
- return null;
31
+ if (!this.name) {
32
+ this.icon = null;
33
+ return;
34
+ }
34
35
  const key = 'si' + this.name.replace(/[^a-z0-9]/gi, '').replace(/^\w/, (c) => c.toUpperCase());
35
- return simpleIcons[key] ?? null;
36
+ this.icon = simpleIcons[key] ?? null;
36
37
  }
37
38
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: UiIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: UiIconComponent, isStandalone: true, selector: "ui-icon", inputs: { name: "name", size: "size", color: "color" }, usesOnChanges: true, ngImport: i0, template: "<!-- SimpleIcons -->\n<ng-container *ngIf=\"isBrandIcon; else lucideIcon\">\n <svg\n class=\"ui-icon ui-icon--brand\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [attr.fill]=\"color\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path [attr.d]=\"brandIcon?.path\"></path>\n </svg>\n</ng-container>\n\n<!-- Lucide -->\n<ng-template #lucideIcon>\n <lucide-icon\n class=\"ui-icon ui-icon--lucide\"\n [name]=\"name\"\n [size]=\"size\"\n [color]=\"color\"\n ></lucide-icon>\n</ng-template>\n", styles: [".ui-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}.ui-icon--brand svg{display:block;width:100%!important;height:100%!important}.ui-icon--lucide{display:inline-flex}.ui-icon--lucide svg{display:block;width:100%!important;height:100%!important;min-width:1em;min-height:1em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: LucideAngularModule }, { kind: "component", type: i2.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }] });
39
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: UiIconComponent, isStandalone: true, selector: "ui-icon", inputs: { name: "name", size: "size", color: "color" }, usesOnChanges: true, ngImport: i0, template: "@if (isBrandIcon) {\n <svg\n class=\"ui-icon ui-icon--brand\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [attr.fill]=\"color\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path [attr.d]=\"brandIcon?.path\"></path>\n </svg>\n} @else {\n <lucide-icon\n class=\"ui-icon ui-icon--lucide\"\n [name]=\"name\"\n [size]=\"size\"\n [color]=\"color\"\n ></lucide-icon>\n}\n", styles: [".ui-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}.ui-icon--brand svg{display:block;width:100%!important;height:100%!important}.ui-icon--lucide{display:inline-flex}.ui-icon--lucide svg{display:block;width:100%!important;height:100%!important;min-width:1em;min-height:1em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: LucideAngularModule }, { kind: "component", type: i1.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }] });
39
40
  }
40
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: UiIconComponent, decorators: [{
41
42
  type: Component,
42
- args: [{ selector: 'ui-icon', standalone: true, imports: [CommonModule, LucideAngularModule], template: "<!-- SimpleIcons -->\n<ng-container *ngIf=\"isBrandIcon; else lucideIcon\">\n <svg\n class=\"ui-icon ui-icon--brand\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [attr.fill]=\"color\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path [attr.d]=\"brandIcon?.path\"></path>\n </svg>\n</ng-container>\n\n<!-- Lucide -->\n<ng-template #lucideIcon>\n <lucide-icon\n class=\"ui-icon ui-icon--lucide\"\n [name]=\"name\"\n [size]=\"size\"\n [color]=\"color\"\n ></lucide-icon>\n</ng-template>\n", styles: [".ui-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}.ui-icon--brand svg{display:block;width:100%!important;height:100%!important}.ui-icon--lucide{display:inline-flex}.ui-icon--lucide svg{display:block;width:100%!important;height:100%!important;min-width:1em;min-height:1em}\n"] }]
43
+ args: [{ selector: 'ui-icon', standalone: true, imports: [CommonModule, LucideAngularModule], template: "@if (isBrandIcon) {\n <svg\n class=\"ui-icon ui-icon--brand\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [attr.fill]=\"color\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path [attr.d]=\"brandIcon?.path\"></path>\n </svg>\n} @else {\n <lucide-icon\n class=\"ui-icon ui-icon--lucide\"\n [name]=\"name\"\n [size]=\"size\"\n [color]=\"color\"\n ></lucide-icon>\n}\n", styles: [".ui-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}.ui-icon--brand svg{display:block;width:100%!important;height:100%!important}.ui-icon--lucide{display:inline-flex}.ui-icon--lucide svg{display:block;width:100%!important;height:100%!important;min-width:1em;min-height:1em}\n"] }]
43
44
  }], propDecorators: { name: [{
44
45
  type: Input
45
46
  }], size: [{
@@ -76,6 +77,8 @@ class UiImageComponent {
76
77
  cloudName;
77
78
  transformations;
78
79
  eager = false;
80
+ width;
81
+ height;
79
82
  img;
80
83
  plugins = [];
81
84
  constructor(globalCloudName) {
@@ -87,13 +90,19 @@ class UiImageComponent {
87
90
  ngOnChanges() {
88
91
  this.initImage();
89
92
  }
93
+ get aspectRatioStyle() {
94
+ if (this.width && this.height) {
95
+ return `${this.width} / ${this.height}`;
96
+ }
97
+ return null;
98
+ }
90
99
  initImage() {
91
100
  const activeCloudName = this.cloudName || this.globalCloudName;
92
101
  if (this.publicId && activeCloudName) {
93
102
  this.img = new CloudinaryImage(this.publicId, { cloudName: activeCloudName })
94
103
  .delivery(format(auto()))
95
104
  .delivery(quality(auto$1()))
96
- .resize(limitFit().width(1920)); // Límite máximo para SSG
105
+ .resize(limitFit().width(1920));
97
106
  this.plugins = [responsive({ steps: 200 })];
98
107
  if (!this.eager) {
99
108
  this.plugins.push(lazyload());
@@ -104,11 +113,11 @@ class UiImageComponent {
104
113
  }
105
114
  }
106
115
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: UiImageComponent, deps: [{ token: CLOUDINARY_CLOUD_NAME, optional: true }], target: i0.ɵɵFactoryTarget.Component });
107
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: UiImageComponent, isStandalone: true, selector: "ui-image", inputs: { publicId: "publicId", cloudName: "cloudName", transformations: "transformations", eager: "eager" }, usesOnChanges: true, ngImport: i0, template: "@if (img) {\n @if (eager) {\n <img [src]=\"img.toURL()\" fetchpriority=\"high\" loading=\"eager\" alt=\"\" />\n } @else {\n <advanced-image [cldImg]=\"img\" [plugins]=\"plugins\"></advanced-image>\n }\n}\n", styles: [":host{display:inline-block;max-width:100%}:host advanced-image,:host>img{display:block;width:100%;height:100%;object-fit:inherit;border-radius:inherit}:host advanced-image ::ng-deep img,:host>img ::ng-deep img{width:100%;height:100%;object-fit:inherit;border-radius:inherit}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: CloudinaryModule }, { kind: "component", type: i1$1.CloudinaryImageComponent, selector: "advanced-image", inputs: ["cldImg", "plugins", "alt", "width", "height", "loading"] }] });
116
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: UiImageComponent, isStandalone: true, selector: "ui-image", inputs: { publicId: "publicId", cloudName: "cloudName", transformations: "transformations", eager: "eager", width: "width", height: "height" }, host: { properties: { "style.--ui-image-ratio": "this.aspectRatioStyle" } }, usesOnChanges: true, ngImport: i0, template: "@if (img) {\n @if (eager) {\n <img [src]=\"img.toURL()\" fetchpriority=\"high\" loading=\"eager\" alt=\"\"\n [attr.width]=\"width ?? null\" [attr.height]=\"height ?? null\" />\n } @else {\n <advanced-image [cldImg]=\"img\" [plugins]=\"plugins\"></advanced-image>\n }\n}\n", styles: [":host{display:inline-block;max-width:100%;aspect-ratio:var(--ui-image-ratio, auto)}:host advanced-image,:host>img{display:block;width:100%;height:100%;object-fit:inherit;border-radius:inherit}:host advanced-image ::ng-deep img,:host>img ::ng-deep img{width:100%;height:100%;object-fit:inherit;border-radius:inherit}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: CloudinaryModule }, { kind: "component", type: i1$1.CloudinaryImageComponent, selector: "advanced-image", inputs: ["cldImg", "plugins", "alt", "width", "height", "loading"] }] });
108
117
  }
109
118
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: UiImageComponent, decorators: [{
110
119
  type: Component,
111
- args: [{ selector: 'ui-image', standalone: true, imports: [CommonModule, CloudinaryModule], template: "@if (img) {\n @if (eager) {\n <img [src]=\"img.toURL()\" fetchpriority=\"high\" loading=\"eager\" alt=\"\" />\n } @else {\n <advanced-image [cldImg]=\"img\" [plugins]=\"plugins\"></advanced-image>\n }\n}\n", styles: [":host{display:inline-block;max-width:100%}:host advanced-image,:host>img{display:block;width:100%;height:100%;object-fit:inherit;border-radius:inherit}:host advanced-image ::ng-deep img,:host>img ::ng-deep img{width:100%;height:100%;object-fit:inherit;border-radius:inherit}\n"] }]
120
+ args: [{ selector: 'ui-image', standalone: true, imports: [CommonModule, CloudinaryModule], template: "@if (img) {\n @if (eager) {\n <img [src]=\"img.toURL()\" fetchpriority=\"high\" loading=\"eager\" alt=\"\"\n [attr.width]=\"width ?? null\" [attr.height]=\"height ?? null\" />\n } @else {\n <advanced-image [cldImg]=\"img\" [plugins]=\"plugins\"></advanced-image>\n }\n}\n", styles: [":host{display:inline-block;max-width:100%;aspect-ratio:var(--ui-image-ratio, auto)}:host advanced-image,:host>img{display:block;width:100%;height:100%;object-fit:inherit;border-radius:inherit}:host advanced-image ::ng-deep img,:host>img ::ng-deep img{width:100%;height:100%;object-fit:inherit;border-radius:inherit}\n"] }]
112
121
  }], ctorParameters: () => [{ type: undefined, decorators: [{
113
122
  type: Optional
114
123
  }, {
@@ -123,6 +132,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
123
132
  type: Input
124
133
  }], eager: [{
125
134
  type: Input
135
+ }], width: [{
136
+ type: Input
137
+ }], height: [{
138
+ type: Input
139
+ }], aspectRatioStyle: [{
140
+ type: HostBinding,
141
+ args: ['style.--ui-image-ratio']
126
142
  }] } });
127
143
 
128
144
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"lluc_llull-ui-lib-shared.mjs","sources":["../../../projects/ui-lib/shared/ui-icon/ui-icon.component.ts","../../../projects/ui-lib/shared/ui-icon/ui-icon.component.html","../../../projects/ui-lib/shared/ui-icon/ui-icon.mock.ts","../../../projects/ui-lib/shared/ui-image/ui-image.component.ts","../../../projects/ui-lib/shared/ui-image/ui-image.component.html","../../../projects/ui-lib/shared/lluc_llull-ui-lib-shared.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport type { SimpleIcon } from 'simple-icons';\nimport * as simpleIcons from 'simple-icons';\nimport {LucideAngularModule } from 'lucide-angular';\n\n@Component({\n selector: 'ui-icon',\n standalone: true,\n imports: [CommonModule, LucideAngularModule],\n templateUrl: './ui-icon.component.html',\n styleUrls: ['./ui-icon.component.scss'],\n})\nexport class UiIconComponent {\n @Input() name!: string;\n @Input() size = 24;\n @Input() color = 'currentColor';\n\n private icon?: SimpleIcon | null;\n\n ngOnChanges() {\n this.icon = this.resolveBrandIcon();\n }\n\n get isBrandIcon(): boolean {\n return !!this.icon;\n }\n\n get brandIcon(): SimpleIcon | null {\n return this.icon ?? null;\n }\n\n private resolveBrandIcon(): SimpleIcon | null {\n if (!this.name) return null;\n\n const key =\n 'si' + this.name.replace(/[^a-z0-9]/gi, '').replace(/^\\w/, (c) => c.toUpperCase());\n\n return (simpleIcons as any)[key] ?? null;\n }\n}\n","<!-- SimpleIcons -->\n<ng-container *ngIf=\"isBrandIcon; else lucideIcon\">\n <svg\n class=\"ui-icon ui-icon--brand\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [attr.fill]=\"color\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path [attr.d]=\"brandIcon?.path\"></path>\n </svg>\n</ng-container>\n\n<!-- Lucide -->\n<ng-template #lucideIcon>\n <lucide-icon\n class=\"ui-icon ui-icon--lucide\"\n [name]=\"name\"\n [size]=\"size\"\n [color]=\"color\"\n ></lucide-icon>\n</ng-template>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ui-icon',\n standalone: true,\n template: '',\n})\nexport class MockUiIconComponent {\n @Input() name!: string;\n @Input() size = 24;\n @Input() color = 'currentColor';\n}","import { CommonModule } from '@angular/common';\nimport { Component, Inject, Input, OnChanges, OnInit, Optional } from '@angular/core';\nimport { CloudinaryModule, lazyload, responsive } from '@cloudinary/ng';\nimport { CloudinaryImage } from '@cloudinary/url-gen';\nimport { format, quality } from '@cloudinary/url-gen/actions/delivery';\nimport { limitFit } from '@cloudinary/url-gen/actions/resize';\nimport { auto } from '@cloudinary/url-gen/qualifiers/format';\nimport { auto as qAuto } from '@cloudinary/url-gen/qualifiers/quality';\nimport { CLOUDINARY_CLOUD_NAME } from '@lluc_llull/ui-lib/mapper';\n\n@Component({\n selector: 'ui-image',\n standalone: true,\n imports: [CommonModule, CloudinaryModule],\n templateUrl: './ui-image.component.html',\n styleUrl: './ui-image.component.scss',\n})\nexport class UiImageComponent implements OnChanges, OnInit {\n @Input({ required: true }) publicId!: string;\n @Input() cloudName?: string;\n @Input() transformations?: any;\n @Input() eager: boolean = false;\n\n img!: CloudinaryImage;\n plugins: any[] = [];\n\n constructor(@Optional() @Inject(CLOUDINARY_CLOUD_NAME) private globalCloudName?: string) {}\n\n ngOnInit(): void {\n this.initImage();\n }\n\n ngOnChanges(): void {\n this.initImage();\n }\n\n private initImage(): void {\n const activeCloudName = this.cloudName || this.globalCloudName;\n\n if (this.publicId && activeCloudName) {\n this.img = new CloudinaryImage(this.publicId, { cloudName: activeCloudName })\n .delivery(format(auto()))\n .delivery(quality(qAuto()))\n .resize(limitFit().width(1920)); // Límite máximo para SSG\n\n this.plugins = [responsive({ steps: 200 })];\n \n if (!this.eager) {\n this.plugins.push(lazyload());\n }\n } else if (!activeCloudName) {\n console.warn(\n '[UiImageComponent]: No cloudName provided. Please provide it via @Input() or the CLOUDINARY_CLOUD_NAME InjectionToken.',\n );\n }\n }\n}\n","@if (img) {\n @if (eager) {\n <img [src]=\"img.toURL()\" fetchpriority=\"high\" loading=\"eager\" alt=\"\" />\n } @else {\n <advanced-image [cldImg]=\"img\" [plugins]=\"plugins\"></advanced-image>\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["qAuto","i1"],"mappings":"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"}
1
+ {"version":3,"file":"lluc_llull-ui-lib-shared.mjs","sources":["../../../projects/ui-lib/shared/ui-icon/ui-icon.component.ts","../../../projects/ui-lib/shared/ui-icon/ui-icon.component.html","../../../projects/ui-lib/shared/ui-icon/ui-icon.mock.ts","../../../projects/ui-lib/shared/ui-image/ui-image.component.ts","../../../projects/ui-lib/shared/ui-image/ui-image.component.html","../../../projects/ui-lib/shared/lluc_llull-ui-lib-shared.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges } from '@angular/core';\nimport type { SimpleIcon } from 'simple-icons';\nimport * as simpleIcons from 'simple-icons';\nimport { LucideAngularModule } from 'lucide-angular';\n\n@Component({\n selector: 'ui-icon',\n standalone: true,\n imports: [CommonModule, LucideAngularModule],\n templateUrl: './ui-icon.component.html',\n styleUrls: ['./ui-icon.component.scss'],\n})\nexport class UiIconComponent implements OnChanges {\n @Input() name!: string;\n @Input() size = 24;\n @Input() color = 'currentColor';\n\n private icon?: SimpleIcon | null;\n\n ngOnChanges() {\n this.resolveBrandIcon();\n }\n\n get isBrandIcon(): boolean {\n return !!this.icon;\n }\n\n get brandIcon(): SimpleIcon | null {\n return this.icon ?? null;\n }\n\n private resolveBrandIcon(): void {\n if (!this.name) {\n this.icon = null;\n return;\n }\n\n const key =\n 'si' + this.name.replace(/[^a-z0-9]/gi, '').replace(/^\\w/, (c) => c.toUpperCase());\n\n this.icon = (simpleIcons as any)[key] ?? null;\n }\n}\n","@if (isBrandIcon) {\n <svg\n class=\"ui-icon ui-icon--brand\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [attr.fill]=\"color\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path [attr.d]=\"brandIcon?.path\"></path>\n </svg>\n} @else {\n <lucide-icon\n class=\"ui-icon ui-icon--lucide\"\n [name]=\"name\"\n [size]=\"size\"\n [color]=\"color\"\n ></lucide-icon>\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ui-icon',\n standalone: true,\n template: '',\n})\nexport class MockUiIconComponent {\n @Input() name!: string;\n @Input() size = 24;\n @Input() color = 'currentColor';\n}","import { CommonModule } from '@angular/common';\nimport { Component, HostBinding, Inject, Input, OnChanges, OnInit, Optional } from '@angular/core';\nimport { CloudinaryModule, lazyload, responsive } from '@cloudinary/ng';\nimport { CloudinaryImage } from '@cloudinary/url-gen';\nimport { format, quality } from '@cloudinary/url-gen/actions/delivery';\nimport { limitFit } from '@cloudinary/url-gen/actions/resize';\nimport { auto } from '@cloudinary/url-gen/qualifiers/format';\nimport { auto as qAuto } from '@cloudinary/url-gen/qualifiers/quality';\nimport { CLOUDINARY_CLOUD_NAME } from '@lluc_llull/ui-lib/mapper';\n\n@Component({\n selector: 'ui-image',\n standalone: true,\n imports: [CommonModule, CloudinaryModule],\n templateUrl: './ui-image.component.html',\n styleUrl: './ui-image.component.scss',\n})\nexport class UiImageComponent implements OnChanges, OnInit {\n @Input({ required: true }) publicId!: string;\n @Input() cloudName?: string;\n @Input() transformations?: any;\n @Input() eager: boolean = false;\n @Input() width?: number | null;\n @Input() height?: number | null;\n\n img!: CloudinaryImage;\n plugins: any[] = [];\n\n constructor(@Optional() @Inject(CLOUDINARY_CLOUD_NAME) private globalCloudName?: string) {}\n\n ngOnInit(): void {\n this.initImage();\n }\n\n ngOnChanges(): void {\n this.initImage();\n }\n\n @HostBinding('style.--ui-image-ratio')\n get aspectRatioStyle(): string | null {\n if (this.width && this.height) {\n return `${this.width} / ${this.height}`;\n }\n return null;\n }\n\n private initImage(): void {\n const activeCloudName = this.cloudName || this.globalCloudName;\n\n if (this.publicId && activeCloudName) {\n this.img = new CloudinaryImage(this.publicId, { cloudName: activeCloudName })\n .delivery(format(auto()))\n .delivery(quality(qAuto()))\n .resize(limitFit().width(1920));\n\n this.plugins = [responsive({ steps: 200 })];\n\n if (!this.eager) {\n this.plugins.push(lazyload());\n }\n } else if (!activeCloudName) {\n console.warn(\n '[UiImageComponent]: No cloudName provided. Please provide it via @Input() or the CLOUDINARY_CLOUD_NAME InjectionToken.',\n );\n }\n }\n}\n","@if (img) {\n @if (eager) {\n <img [src]=\"img.toURL()\" fetchpriority=\"high\" loading=\"eager\" alt=\"\"\n [attr.width]=\"width ?? null\" [attr.height]=\"height ?? null\" />\n } @else {\n <advanced-image [cldImg]=\"img\" [plugins]=\"plugins\"></advanced-image>\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["qAuto","i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lluc_llull/ui-lib",
3
- "version": "0.33.4",
3
+ "version": "0.33.6",
4
4
  "description": "Angular UI component library",
5
5
  "author": "lluc_llull",
6
6
  "license": "MIT",
@@ -59,6 +59,10 @@
59
59
  "types": "./enums/index.d.ts",
60
60
  "default": "./fesm2022/lluc_llull-ui-lib-enums.mjs"
61
61
  },
62
+ "./footers": {
63
+ "types": "./footers/index.d.ts",
64
+ "default": "./fesm2022/lluc_llull-ui-lib-footers.mjs"
65
+ },
62
66
  "./feedback": {
63
67
  "types": "./feedback/index.d.ts",
64
68
  "default": "./fesm2022/lluc_llull-ui-lib-feedback.mjs"
@@ -67,10 +71,6 @@
67
71
  "types": "./headers/index.d.ts",
68
72
  "default": "./fesm2022/lluc_llull-ui-lib-headers.mjs"
69
73
  },
70
- "./footers": {
71
- "types": "./footers/index.d.ts",
72
- "default": "./fesm2022/lluc_llull-ui-lib-footers.mjs"
73
- },
74
74
  "./interfaces": {
75
75
  "types": "./interfaces/index.d.ts",
76
76
  "default": "./fesm2022/lluc_llull-ui-lib-interfaces.mjs"
@@ -159,18 +159,6 @@
159
159
  "types": "./content/stacked-rows/index.d.ts",
160
160
  "default": "./fesm2022/lluc_llull-ui-lib-content-stacked-rows.mjs"
161
161
  },
162
- "./feedback/404": {
163
- "types": "./feedback/404/index.d.ts",
164
- "default": "./fesm2022/lluc_llull-ui-lib-feedback-404.mjs"
165
- },
166
- "./headers/header-clear": {
167
- "types": "./headers/header-clear/index.d.ts",
168
- "default": "./fesm2022/lluc_llull-ui-lib-headers-header-clear.mjs"
169
- },
170
- "./headers/header-mobile": {
171
- "types": "./headers/header-mobile/index.d.ts",
172
- "default": "./fesm2022/lluc_llull-ui-lib-headers-header-mobile.mjs"
173
- },
174
162
  "./footers/columns-footer": {
175
163
  "types": "./footers/columns-footer/index.d.ts",
176
164
  "default": "./fesm2022/lluc_llull-ui-lib-footers-columns-footer.mjs"
@@ -190,6 +178,18 @@
190
178
  "./footers/visual-footer": {
191
179
  "types": "./footers/visual-footer/index.d.ts",
192
180
  "default": "./fesm2022/lluc_llull-ui-lib-footers-visual-footer.mjs"
181
+ },
182
+ "./feedback/404": {
183
+ "types": "./feedback/404/index.d.ts",
184
+ "default": "./fesm2022/lluc_llull-ui-lib-feedback-404.mjs"
185
+ },
186
+ "./headers/header-clear": {
187
+ "types": "./headers/header-clear/index.d.ts",
188
+ "default": "./fesm2022/lluc_llull-ui-lib-headers-header-clear.mjs"
189
+ },
190
+ "./headers/header-mobile": {
191
+ "types": "./headers/header-mobile/index.d.ts",
192
+ "default": "./fesm2022/lluc_llull-ui-lib-headers-header-mobile.mjs"
193
193
  }
194
194
  }
195
195
  }
@@ -1,6 +1,7 @@
1
+ import { OnChanges } from '@angular/core';
1
2
  import type { SimpleIcon } from 'simple-icons';
2
3
  import * as i0 from "@angular/core";
3
- export declare class UiIconComponent {
4
+ export declare class UiIconComponent implements OnChanges {
4
5
  name: string;
5
6
  size: number;
6
7
  color: string;
@@ -7,12 +7,15 @@ export declare class UiImageComponent implements OnChanges, OnInit {
7
7
  cloudName?: string;
8
8
  transformations?: any;
9
9
  eager: boolean;
10
+ width?: number | null;
11
+ height?: number | null;
10
12
  img: CloudinaryImage;
11
13
  plugins: any[];
12
14
  constructor(globalCloudName?: string);
13
15
  ngOnInit(): void;
14
16
  ngOnChanges(): void;
17
+ get aspectRatioStyle(): string | null;
15
18
  private initImage;
16
19
  static ɵfac: i0.ɵɵFactoryDeclaration<UiImageComponent, [{ optional: true; }]>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<UiImageComponent, "ui-image", never, { "publicId": { "alias": "publicId"; "required": true; }; "cloudName": { "alias": "cloudName"; "required": false; }; "transformations": { "alias": "transformations"; "required": false; }; "eager": { "alias": "eager"; "required": false; }; }, {}, never, never, true, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiImageComponent, "ui-image", never, { "publicId": { "alias": "publicId"; "required": true; }; "cloudName": { "alias": "cloudName"; "required": false; }; "transformations": { "alias": "transformations"; "required": false; }; "eager": { "alias": "eager"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; }, {}, never, never, true, never>;
18
21
  }