@lluc_llull/ui-lib 0.34.3 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/lluc_llull-ui-lib-content-asymmetric-media.mjs +10 -3
- package/fesm2022/lluc_llull-ui-lib-content-asymmetric-media.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-category-progress.mjs +18 -5
- package/fesm2022/lluc_llull-ui-lib-content-category-progress.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-columns-media-stacked.mjs +10 -3
- package/fesm2022/lluc_llull-ui-lib-content-columns-media-stacked.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-contact-minimal.mjs +18 -5
- package/fesm2022/lluc_llull-ui-lib-content-contact-minimal.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-hero-section.mjs +6 -13
- package/fesm2022/lluc_llull-ui-lib-content-hero-section.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-media-intro.mjs +10 -3
- package/fesm2022/lluc_llull-ui-lib-content-media-intro.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-media-split.mjs +34 -21
- package/fesm2022/lluc_llull-ui-lib-content-media-split.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-mosaic-grid.mjs +10 -3
- package/fesm2022/lluc_llull-ui-lib-content-mosaic-grid.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-section-intro.mjs +8 -1
- package/fesm2022/lluc_llull-ui-lib-content-section-intro.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-split-previewer.mjs +20 -7
- package/fesm2022/lluc_llull-ui-lib-content-split-previewer.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-split-showcase.mjs +12 -5
- package/fesm2022/lluc_llull-ui-lib-content-split-showcase.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-stacked-rows.mjs +18 -5
- package/fesm2022/lluc_llull-ui-lib-content-stacked-rows.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content.mjs +172 -74
- package/fesm2022/lluc_llull-ui-lib-content.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-directives.mjs +230 -11
- package/fesm2022/lluc_llull-ui-lib-directives.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-feedback-404.mjs +10 -4
- package/fesm2022/lluc_llull-ui-lib-feedback-404.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-feedback.mjs +10 -4
- package/fesm2022/lluc_llull-ui-lib-feedback.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-footers-columns-footer.mjs +39 -15
- package/fesm2022/lluc_llull-ui-lib-footers-columns-footer.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-footers-legal-footer.mjs +2 -2
- package/fesm2022/lluc_llull-ui-lib-footers-legal-footer.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-footers-social-footer.mjs +2 -2
- package/fesm2022/lluc_llull-ui-lib-footers-social-footer.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-footers-visual-footer.mjs +2 -2
- package/fesm2022/lluc_llull-ui-lib-footers-visual-footer.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-footers.mjs +44 -21
- package/fesm2022/lluc_llull-ui-lib-footers.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-forms-contact-form.mjs +254 -0
- package/fesm2022/lluc_llull-ui-lib-forms-contact-form.mjs.map +1 -0
- package/fesm2022/lluc_llull-ui-lib-forms.mjs +443 -0
- package/fesm2022/lluc_llull-ui-lib-forms.mjs.map +1 -0
- package/fesm2022/lluc_llull-ui-lib-headers-header-clear.mjs +4 -4
- package/fesm2022/lluc_llull-ui-lib-headers-header-clear.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-headers-header-mobile.mjs +2 -2
- package/fesm2022/lluc_llull-ui-lib-headers-header-mobile.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-headers.mjs +6 -6
- package/fesm2022/lluc_llull-ui-lib-headers.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-mapper.mjs +6 -1
- package/fesm2022/lluc_llull-ui-lib-mapper.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-modals.mjs +4 -4
- package/fesm2022/lluc_llull-ui-lib-modals.mjs.map +1 -1
- package/package.json +10 -1
- package/src/lib/styles/main.css +71 -1
- package/styles/main.css +71 -1
- package/types/lluc_llull-ui-lib-content-category-progress.d.ts +10 -0
- package/types/lluc_llull-ui-lib-content-contact-minimal.d.ts +10 -0
- package/types/lluc_llull-ui-lib-content-split-previewer.d.ts +10 -0
- package/types/lluc_llull-ui-lib-content.d.ts +30 -0
- package/types/lluc_llull-ui-lib-directives.d.ts +51 -2
- package/types/lluc_llull-ui-lib-feedback-404.d.ts +10 -0
- package/types/lluc_llull-ui-lib-feedback.d.ts +10 -0
- package/types/lluc_llull-ui-lib-footers-columns-footer.d.ts +1 -0
- package/types/lluc_llull-ui-lib-footers.d.ts +1 -0
- package/types/lluc_llull-ui-lib-forms-contact-form.d.ts +86 -0
- package/types/lluc_llull-ui-lib-forms.d.ts +220 -0
- package/types/lluc_llull-ui-lib-mapper.d.ts +1 -0
|
@@ -89,8 +89,8 @@ var HeaderClearComponent = class HeaderClearComponent {
|
|
|
89
89
|
},
|
|
90
90
|
usesOnChanges: true,
|
|
91
91
|
ngImport: i0,
|
|
92
|
-
template: "<header class=\"header-clear main-grid col-span-full sm:col-span-12 sm:col-start-1\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo col-span-full sm:col-span-4 sm:col-start-1\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions col-span-full sm:col-span-6 sm:col-start-7\">\n <!-- Idioma -->\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'sun' : 'moon'\"\n [size]=\"17\"\n [color]=\"'
|
|
93
|
-
styles: [".header-clear{border-radius:0;position:sticky;top:0;z-index:100;padding-block:0;margin-top:1rem;transition:background .3s ease,box-shadow .3s ease;background:var(--header-bg)}.header-clear.is-scrolled{background:var(--header-bg-fixed-dark);box-shadow:0 2px 12px #00000014}.header-clear.is-scrolled .header-logo a{padding-inline:1.5rem}.header-clear.is-scrolled .header-logo span{color:var(--header-logo-text-dark)}.header-clear.is-scrolled .header-actions{padding-inline:1.5rem}.header-clear.is-scrolled .header-actions .btn-header{background:var(--header-bg-fixed-light)}.header-logo{display:flex;align-items:center;gap:.5rem;color:var(--header-logo-text)}.header-logo img{width:80px;height:80px;object-fit:contain;object-position:left}.header-logo span{display:flex;min-width:10rem}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:1rem}.lang{text-transform:uppercase}\n"],
|
|
92
|
+
template: "<header class=\"header-clear main-grid col-span-full sm:col-span-12 sm:col-start-1\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo col-span-full sm:col-span-4 sm:col-start-1\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions col-span-full sm:col-span-6 sm:col-start-7\">\n <!-- Idioma -->\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'sun' : 'moon'\"\n [size]=\"17\"\n [color]=\"'currentColor'\"\n ></ui-icon>\n </button>\n\n <!-- Icono de menú -->\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</header>\n\n@if ((isMenuOpen || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n",
|
|
93
|
+
styles: [".header-clear{border-radius:0;position:sticky;top:0;z-index:100;padding-block:0;margin-top:1rem;transition:background .3s ease,box-shadow .3s ease;background:var(--header-bg)}.header-clear.is-scrolled{background:var(--header-bg-fixed-dark);box-shadow:0 2px 12px #00000014;border:4px solid var(--border-primary)}.header-clear.is-scrolled .header-logo a{padding-inline:1.5rem}.header-clear.is-scrolled .header-logo span{color:var(--header-logo-text-dark)}.header-clear.is-scrolled .header-actions{padding-inline:1.5rem}.header-clear.is-scrolled .header-actions .btn-header{border:4px solid var(--border-primary);background:var(--button-header-bg)}.header-clear.is-scrolled .header-actions .btn-header:hover{background:var(--button-header-bg-scrolled-hover)!important}.header-clear.is-scrolled.is-over-light{background:var(--header-bg-fixed-light)}.header-clear.is-scrolled.is-over-light .header-logo span{color:var(--header-logo-text-light)}.header-clear.is-scrolled.is-over-dark,.header-clear.is-scrolled.is-over-dark .header-actions .btn-header{border:4px solid var(--border-secondary)}.header-logo{display:flex;align-items:center;gap:.5rem;color:var(--header-logo-text)}.header-logo img{width:80px;height:80px;object-fit:contain;object-position:left}.header-logo span{display:flex;min-width:10rem}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:1rem}.lang{text-transform:uppercase}\n"],
|
|
94
94
|
dependencies: [
|
|
95
95
|
{
|
|
96
96
|
kind: "ngmodule",
|
|
@@ -152,8 +152,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
152
152
|
HeaderScrollDirective
|
|
153
153
|
],
|
|
154
154
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
155
|
-
template: "<header class=\"header-clear main-grid col-span-full sm:col-span-12 sm:col-start-1\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo col-span-full sm:col-span-4 sm:col-start-1\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions col-span-full sm:col-span-6 sm:col-start-7\">\n <!-- Idioma -->\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'sun' : 'moon'\"\n [size]=\"17\"\n [color]=\"'
|
|
156
|
-
styles: [".header-clear{border-radius:0;position:sticky;top:0;z-index:100;padding-block:0;margin-top:1rem;transition:background .3s ease,box-shadow .3s ease;background:var(--header-bg)}.header-clear.is-scrolled{background:var(--header-bg-fixed-dark);box-shadow:0 2px 12px #00000014}.header-clear.is-scrolled .header-logo a{padding-inline:1.5rem}.header-clear.is-scrolled .header-logo span{color:var(--header-logo-text-dark)}.header-clear.is-scrolled .header-actions{padding-inline:1.5rem}.header-clear.is-scrolled .header-actions .btn-header{background:var(--header-bg-fixed-light)}.header-logo{display:flex;align-items:center;gap:.5rem;color:var(--header-logo-text)}.header-logo img{width:80px;height:80px;object-fit:contain;object-position:left}.header-logo span{display:flex;min-width:10rem}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:1rem}.lang{text-transform:uppercase}\n"]
|
|
155
|
+
template: "<header class=\"header-clear main-grid col-span-full sm:col-span-12 sm:col-start-1\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo col-span-full sm:col-span-4 sm:col-start-1\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions col-span-full sm:col-span-6 sm:col-start-7\">\n <!-- Idioma -->\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'sun' : 'moon'\"\n [size]=\"17\"\n [color]=\"'currentColor'\"\n ></ui-icon>\n </button>\n\n <!-- Icono de menú -->\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</header>\n\n@if ((isMenuOpen || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n",
|
|
156
|
+
styles: [".header-clear{border-radius:0;position:sticky;top:0;z-index:100;padding-block:0;margin-top:1rem;transition:background .3s ease,box-shadow .3s ease;background:var(--header-bg)}.header-clear.is-scrolled{background:var(--header-bg-fixed-dark);box-shadow:0 2px 12px #00000014;border:4px solid var(--border-primary)}.header-clear.is-scrolled .header-logo a{padding-inline:1.5rem}.header-clear.is-scrolled .header-logo span{color:var(--header-logo-text-dark)}.header-clear.is-scrolled .header-actions{padding-inline:1.5rem}.header-clear.is-scrolled .header-actions .btn-header{border:4px solid var(--border-primary);background:var(--button-header-bg)}.header-clear.is-scrolled .header-actions .btn-header:hover{background:var(--button-header-bg-scrolled-hover)!important}.header-clear.is-scrolled.is-over-light{background:var(--header-bg-fixed-light)}.header-clear.is-scrolled.is-over-light .header-logo span{color:var(--header-logo-text-light)}.header-clear.is-scrolled.is-over-dark,.header-clear.is-scrolled.is-over-dark .header-actions .btn-header{border:4px solid var(--border-secondary)}.header-logo{display:flex;align-items:center;gap:.5rem;color:var(--header-logo-text)}.header-logo img{width:80px;height:80px;object-fit:contain;object-position:left}.header-logo span{display:flex;min-width:10rem}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:1rem}.lang{text-transform:uppercase}\n"]
|
|
157
157
|
}]
|
|
158
158
|
}],
|
|
159
159
|
ctorParameters: () => [{ type: i1.ThemeService }],
|
|
@@ -253,7 +253,7 @@ var HeaderMobileComponent = class HeaderMobileComponent {
|
|
|
253
253
|
usesOnChanges: true,
|
|
254
254
|
ngImport: i0,
|
|
255
255
|
template: "<header class=\"header-mobile\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n </div>\n </a>\n</header>\n\n<div class=\"header-actions\">\n <!-- Idioma -->\n <div class=\"left\">\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n </div>\n\n <!-- Icono de tema -->\n <div class=\"center\">\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'moon' : 'sun'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n </div>\n\n <!-- Icono de menú -->\n <div class=\"right\">\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</div>\n\n@if ((isMenuOpen || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n",
|
|
256
|
-
styles: [".header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 0;border-radius:0;position:fixed;top:0;z-index:100;
|
|
256
|
+
styles: [".header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 0;border-radius:0;position:fixed;top:0;left:0;right:0;z-index:100;box-sizing:border-box;background:var(--header-bg);transition:background .3s ease,box-shadow .3s ease}.header-mobile.is-scrolled{background:var(--header-bg-fixed-dark);box-shadow:0 2px 12px #00000014;border:4px solid black}.header-mobile.is-scrolled.is-over-light{background:var(--header-bg-fixed-light)}.header-mobile.is-scrolled.is-over-dark{border:4px solid var(--border-secondary)}.header-logo{display:flex;align-items:center;gap:.5rem;color:var(--header-logo-text)}.header-logo img{width:80px;height:80px;object-fit:contain;object-position:center}.header-actions{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background-color:var(--header-mobile-bg);z-index:100;box-sizing:border-box;border:4px solid black}.header-actions .center{margin:0 auto}.lang{text-transform:uppercase}\n"],
|
|
257
257
|
dependencies: [
|
|
258
258
|
{
|
|
259
259
|
kind: "ngmodule",
|
|
@@ -316,7 +316,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
316
316
|
],
|
|
317
317
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
318
318
|
template: "<header class=\"header-mobile\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n </div>\n </a>\n</header>\n\n<div class=\"header-actions\">\n <!-- Idioma -->\n <div class=\"left\">\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n </div>\n\n <!-- Icono de tema -->\n <div class=\"center\">\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'moon' : 'sun'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n </div>\n\n <!-- Icono de menú -->\n <div class=\"right\">\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</div>\n\n@if ((isMenuOpen || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n",
|
|
319
|
-
styles: [".header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 0;border-radius:0;position:fixed;top:0;z-index:100;
|
|
319
|
+
styles: [".header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 0;border-radius:0;position:fixed;top:0;left:0;right:0;z-index:100;box-sizing:border-box;background:var(--header-bg);transition:background .3s ease,box-shadow .3s ease}.header-mobile.is-scrolled{background:var(--header-bg-fixed-dark);box-shadow:0 2px 12px #00000014;border:4px solid black}.header-mobile.is-scrolled.is-over-light{background:var(--header-bg-fixed-light)}.header-mobile.is-scrolled.is-over-dark{border:4px solid var(--border-secondary)}.header-logo{display:flex;align-items:center;gap:.5rem;color:var(--header-logo-text)}.header-logo img{width:80px;height:80px;object-fit:contain;object-position:center}.header-actions{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background-color:var(--header-mobile-bg);z-index:100;box-sizing:border-box;border:4px solid black}.header-actions .center{margin:0 auto}.lang{text-transform:uppercase}\n"]
|
|
320
320
|
}]
|
|
321
321
|
}],
|
|
322
322
|
ctorParameters: () => [{ type: i1.ThemeService }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lluc_llull-ui-lib-headers.mjs","names":[],"sources":["../../../projects/ui-lib/headers/header-clear/header-clear.component.ts","../../../projects/ui-lib/headers/header-clear/header-clear.component.html","../../../projects/ui-lib/headers/header-mobile/header-mobile.component.ts","../../../projects/ui-lib/headers/header-mobile/header-mobile.component.html"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { HeaderScrollDirective, LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport {\n UiLibButtonI,\n UiLibImageI,\n UiLibNavItemsI,\n UiLibSocialItemsI,\n} from '@lluc_llull/ui-lib/interfaces';\nimport { Theme, ThemeService } from '@lluc_llull/ui-lib/theme';\nimport { Subscription } from 'rxjs';\nimport { mapNavModal } from '@lluc_llull/ui-lib/mapper';\nimport { NavModalComponent } from '@lluc_llull/ui-lib/modals';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-header-clear',\n standalone: true,\n imports: [CommonModule, NavModalComponent, LinkTypeDirective, UiIconComponent, HeaderScrollDirective],\n templateUrl: './header-clear.component.html',\n styleUrl: './header-clear.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderClearComponent implements OnInit, OnDestroy, OnChanges {\n isMenuOpen = false;\n isMenuClosing = false;\n currentTheme: Theme = 'light';\n private themeSubscription?: Subscription;\n\n @Input() logo?: UiLibImageI;\n @Input() logoDark?: UiLibImageI;\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n @Input() homeLink?: UiLibButtonI;\n @Input() navigation: any;\n @Input() lang: string = 'es';\n\n @Output() langModal = new EventEmitter<void>();\n @Output() theme = new EventEmitter<void>();\n\n constructor(private themeService: ThemeService) {}\n\n ngOnInit(): void {\n this.themeSubscription = this.themeService.currentTheme$.subscribe((theme) => {\n this.currentTheme = theme;\n });\n }\n\n ngOnChanges() {\n this.navItems = mapNavModal(this.navigation, this.lang);\n }\n\n ngOnDestroy(): void {\n this.themeSubscription?.unsubscribe();\n }\n\n openLanguagesModal(): void {\n this.langModal.emit();\n }\n\n toggleTheme(): void {\n this.themeService.toggleTheme();\n this.theme.emit();\n }\n\n toggleMenu(): void {\n if (this.isMenuOpen) {\n this.closeMenu();\n return;\n }\n\n this.isMenuClosing = false;\n this.isMenuOpen = true;\n }\n\n closeMenu(): void {\n if (!this.isMenuOpen && !this.isMenuClosing) return;\n\n this.isMenuClosing = true;\n this.isMenuOpen = false;\n }\n\n finishMenuClose(event: TransitionEvent): void {\n if (!this.isMenuClosing || event.propertyName !== 'visibility') return;\n if (!(event.target instanceof HTMLElement) || !event.target.classList.contains('modal-content')) return;\n\n this.isMenuClosing = false;\n }\n}\n","<header class=\"header-clear main-grid col-span-full sm:col-span-12 sm:col-start-1\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo col-span-full sm:col-span-4 sm:col-start-1\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions col-span-full sm:col-span-6 sm:col-start-7\">\n <!-- Idioma -->\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'sun' : 'moon'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n\n <!-- Icono de menú -->\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</header>\n\n@if ((isMenuOpen || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { HeaderScrollDirective, LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport {\n UiLibButtonI,\n UiLibImageI,\n UiLibNavItemsI,\n UiLibSocialItemsI,\n} from '@lluc_llull/ui-lib/interfaces';\nimport { Theme, ThemeService } from '@lluc_llull/ui-lib/theme';\nimport { Subscription } from 'rxjs';\nimport { mapNavModal } from '@lluc_llull/ui-lib/mapper';\nimport { NavModalComponent } from '@lluc_llull/ui-lib/modals';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-header-mobile',\n standalone: true,\n imports: [CommonModule, NavModalComponent, HeaderScrollDirective, LinkTypeDirective, UiIconComponent],\n templateUrl: './header-mobile.component.html',\n styleUrl: './header-mobile.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderMobileComponent implements OnInit, OnChanges, OnDestroy {\n isMenuOpen = false;\n isMenuClosing = false;\n currentTheme: Theme = 'light';\n private themeSubscription?: Subscription;\n\n @Input() logo?: UiLibImageI;\n @Input() logoDark?: UiLibImageI;\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n @Input() homeLink?: UiLibButtonI;\n @Input() navigation: any;\n @Input() lang: string = 'es';\n\n @Output() langModal = new EventEmitter<void>();\n @Output() theme = new EventEmitter<void>();\n\n constructor(private themeService: ThemeService) {}\n\n ngOnInit(): void {\n this.themeSubscription = this.themeService.currentTheme$.subscribe((theme) => {\n this.currentTheme = theme;\n });\n }\n\n ngOnChanges() {\n this.navItems = mapNavModal(this.navigation, this.lang);\n }\n\n ngOnDestroy(): void {\n this.themeSubscription?.unsubscribe();\n }\n\n openLanguagesModal(): void {\n this.langModal.emit();\n }\n\n toggleTheme(): void {\n this.themeService.toggleTheme();\n this.theme.emit();\n }\n\n toggleMenu(): void {\n if (this.isMenuOpen) {\n this.closeMenu();\n return;\n }\n\n this.isMenuClosing = false;\n this.isMenuOpen = true;\n }\n\n closeMenu(): void {\n if (!this.isMenuOpen && !this.isMenuClosing) return;\n\n this.isMenuClosing = true;\n this.isMenuOpen = false;\n }\n\n finishMenuClose(event: TransitionEvent): void {\n if (!this.isMenuClosing || event.propertyName !== 'visibility') return;\n if (!(event.target instanceof HTMLElement) || !event.target.classList.contains('modal-content')) return;\n\n this.isMenuClosing = false;\n }\n}\n","<header class=\"header-mobile\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n </div>\n </a>\n</header>\n\n<div class=\"header-actions\">\n <!-- Idioma -->\n <div class=\"left\">\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n </div>\n\n <!-- Icono de tema -->\n <div class=\"center\">\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'moon' : 'sun'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n </div>\n\n <!-- Icono de menú -->\n <div class=\"right\">\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</div>\n\n@if ((isMenuOpen || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n"],"mappings":";;;;;;;;AAgCA,IAAa,uBAAb,MAAa,qBAAoB;CAiBT;CAhBpB,aAAa;CACb,gBAAgB;CAChB,eAAsB;CACd;CAEC;CACA;CACA;CACA;CACA;CACA;CACA,OAAe;CAEd,YAAY,IAAI,aAAY;CAC5B,QAAQ,IAAI,aAAY;CAElC,YAAoB,cAA0B;EAA1B,KAAA,eAAA;CAA6B;CAEjD,WAAQ;EACJ,KAAK,oBAAoB,KAAK,aAAa,cAAc,WAAW,UAAS;GACzE,KAAK,eAAe;EACxB,CAAC;CACL;CAEA,cAAW;EACP,KAAK,WAAW,YAAY,KAAK,YAAY,KAAK,IAAI;CAC1D;CAEA,cAAW;EACP,KAAK,mBAAmB,YAAW;CACvC;CAEA,qBAAkB;EACd,KAAK,UAAU,KAAI;CACvB;CAEA,cAAW;EACP,KAAK,aAAa,YAAW;EAC7B,KAAK,MAAM,KAAI;CACnB;CAEA,aAAU;EACN,IAAI,KAAK,YAAY;GACjB,KAAK,UAAS;GACd;EACJ;EAEA,KAAK,gBAAgB;EACrB,KAAK,aAAa;CACtB;CAEA,YAAS;EACL,IAAI,CAAC,KAAK,cAAc,CAAC,KAAK,eAAe;EAE7C,KAAK,gBAAgB;EACrB,KAAK,aAAa;CACtB;CAEA,gBAAgB,OAAsB;EAClC,IAAI,CAAC,KAAK,iBAAiB,MAAM,iBAAiB,cAAc;EAChE,IAAI,EAAE,MAAM,kBAAkB,gBAAgB,CAAC,MAAM,OAAO,UAAU,SAAS,eAAe,GAAG;EAEjG,KAAK,gBAAgB;CACzB;CAhES,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAoB,MAAA,CAAA,EAAA,OAAA,GAAA,aAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAApB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAoB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,MAAA;GAAA,UAAA;GAAA,UAAA;GAAA,aAAA;GAAA,UAAA;GAAA,YAAA;GAAA,MAAA;EAAA;EAAA,SAAA;GAAA,WAAA;GAAA,OAAA;EAAA;EAAA,eAAA;EAAA,UAAA;EAAA,UChCjC;EA2CA,QAAA,CAAA,q4BAAA;EAAA,cAAA;GAAA;IAAA,MAAA;IAAA,MDhBc;GAAY;GAAA;IAAA,MAAA;IAAA,MAAE;IAAiB,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;IAAA;IAAA,SAAA,CAAA,OAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAiB,UAAA;IAAA,QAAA,CAAA,YAAA,MAAA;IAAA,SAAA,CAAA,eAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAe,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;IAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAqB,UAAA;IAAA,QAAA,CAAA,iBAAA;GAAA;EAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAK3F,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAoB,YAAA,CAAA;EARhC,MAAA;EACa,MAAA,CAAA;GAAA,UAAA;GAAkB,YAChB;GAAI,SACP;IAAC;IAAc;IAAmB;IAAmB;IAAiB;GAAqB;GAAC,iBAGpF,wBAAwB;GAAM,UAAA;GAAA,QAAA,CAAA,q4BAAA;EAAA,CAAA;;;;E,SAQ9C,MAAA,M;E,aACA,MAAA,M;E,aACA,MAAA,M;E,gBACA,MAAA,M;E,aACA,MAAA,M;E,eACA,MAAA,M;E,SACA,MAAA,M;E,cAEA,MAAA,O;E,UACA,MAAA,O;;;AEfL,IAAa,wBAAb,MAAa,sBAAqB;CAiBV;CAhBpB,aAAa;CACb,gBAAgB;CAChB,eAAsB;CACd;CAEC;CACA;CACA;CACA;CACA;CACA;CACA,OAAe;CAEd,YAAY,IAAI,aAAY;CAC5B,QAAQ,IAAI,aAAY;CAElC,YAAoB,cAA0B;EAA1B,KAAA,eAAA;CAA6B;CAEjD,WAAQ;EACJ,KAAK,oBAAoB,KAAK,aAAa,cAAc,WAAW,UAAS;GACzE,KAAK,eAAe;EACxB,CAAC;CACL;CAEA,cAAW;EACP,KAAK,WAAW,YAAY,KAAK,YAAY,KAAK,IAAI;CAC1D;CAEA,cAAW;EACP,KAAK,mBAAmB,YAAW;CACvC;CAEA,qBAAkB;EACd,KAAK,UAAU,KAAI;CACvB;CAEA,cAAW;EACP,KAAK,aAAa,YAAW;EAC7B,KAAK,MAAM,KAAI;CACnB;CAEA,aAAU;EACN,IAAI,KAAK,YAAY;GACjB,KAAK,UAAS;GACd;EACJ;EAEA,KAAK,gBAAgB;EACrB,KAAK,aAAa;CACtB;CAEA,YAAS;EACL,IAAI,CAAC,KAAK,cAAc,CAAC,KAAK,eAAe;EAE7C,KAAK,gBAAgB;EACrB,KAAK,aAAa;CACtB;CAEA,gBAAgB,OAAsB;EAClC,IAAI,CAAC,KAAK,iBAAiB,MAAM,iBAAiB,cAAc;EAChE,IAAI,EAAE,MAAM,kBAAkB,gBAAgB,CAAC,MAAM,OAAO,UAAU,SAAS,eAAe,GAAG;EAEjG,KAAK,gBAAgB;CACzB;CAhES,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAqB,MAAA,CAAA,EAAA,OAAA,GAAA,aAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAArB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAqB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,MAAA;GAAA,UAAA;GAAA,UAAA;GAAA,aAAA;GAAA,UAAA;GAAA,YAAA;GAAA,MAAA;EAAA;EAAA,SAAA;GAAA,WAAA;GAAA,OAAA;EAAA;EAAA,eAAA;EAAA,UAAA;EAAA,UChClC;EAgDA,QAAA,CAAA,swBAAA;EAAA,cAAA;GAAA;IAAA,MAAA;IAAA,MDrBc;GAAY;GAAA;IAAA,MAAA;IAAA,MAAE;IAAiB,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;IAAA;IAAA,SAAA,CAAA,OAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAqB,UAAA;IAAA,QAAA,CAAA,iBAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAiB,UAAA;IAAA,QAAA,CAAA,YAAA,MAAA;IAAA,SAAA,CAAA,eAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAe,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;IAAA;GAAA;EAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAK3F,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAqB,YAAA,CAAA;EARjC,MAAA;EACa,MAAA,CAAA;GAAA,UAAA;GAAmB,YACjB;GAAI,SACP;IAAC;IAAc;IAAmB;IAAuB;IAAmB;GAAe;GAAC,iBAGpF,wBAAwB;GAAM,UAAA;GAAA,QAAA,CAAA,swBAAA;EAAA,CAAA;;;;E,SAQ9C,MAAA,M;E,aACA,MAAA,M;E,aACA,MAAA,M;E,gBACA,MAAA,M;E,aACA,MAAA,M;E,eACA,MAAA,M;E,SACA,MAAA,M;E,cAEA,MAAA,O;E,UACA,MAAA,O"}
|
|
1
|
+
{"version":3,"file":"lluc_llull-ui-lib-headers.mjs","names":[],"sources":["../../../projects/ui-lib/headers/header-clear/header-clear.component.ts","../../../projects/ui-lib/headers/header-clear/header-clear.component.html","../../../projects/ui-lib/headers/header-mobile/header-mobile.component.ts","../../../projects/ui-lib/headers/header-mobile/header-mobile.component.html"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { HeaderScrollDirective, LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport {\n UiLibButtonI,\n UiLibImageI,\n UiLibNavItemsI,\n UiLibSocialItemsI,\n} from '@lluc_llull/ui-lib/interfaces';\nimport { Theme, ThemeService } from '@lluc_llull/ui-lib/theme';\nimport { Subscription } from 'rxjs';\nimport { mapNavModal } from '@lluc_llull/ui-lib/mapper';\nimport { NavModalComponent } from '@lluc_llull/ui-lib/modals';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-header-clear',\n standalone: true,\n imports: [CommonModule, NavModalComponent, LinkTypeDirective, UiIconComponent, HeaderScrollDirective],\n templateUrl: './header-clear.component.html',\n styleUrl: './header-clear.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderClearComponent implements OnInit, OnDestroy, OnChanges {\n isMenuOpen = false;\n isMenuClosing = false;\n currentTheme: Theme = 'light';\n private themeSubscription?: Subscription;\n\n @Input() logo?: UiLibImageI;\n @Input() logoDark?: UiLibImageI;\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n @Input() homeLink?: UiLibButtonI;\n @Input() navigation: any;\n @Input() lang: string = 'es';\n\n @Output() langModal = new EventEmitter<void>();\n @Output() theme = new EventEmitter<void>();\n\n constructor(private themeService: ThemeService) {}\n\n ngOnInit(): void {\n this.themeSubscription = this.themeService.currentTheme$.subscribe((theme) => {\n this.currentTheme = theme;\n });\n }\n\n ngOnChanges() {\n this.navItems = mapNavModal(this.navigation, this.lang);\n }\n\n ngOnDestroy(): void {\n this.themeSubscription?.unsubscribe();\n }\n\n openLanguagesModal(): void {\n this.langModal.emit();\n }\n\n toggleTheme(): void {\n this.themeService.toggleTheme();\n this.theme.emit();\n }\n\n toggleMenu(): void {\n if (this.isMenuOpen) {\n this.closeMenu();\n return;\n }\n\n this.isMenuClosing = false;\n this.isMenuOpen = true;\n }\n\n closeMenu(): void {\n if (!this.isMenuOpen && !this.isMenuClosing) return;\n\n this.isMenuClosing = true;\n this.isMenuOpen = false;\n }\n\n finishMenuClose(event: TransitionEvent): void {\n if (!this.isMenuClosing || event.propertyName !== 'visibility') return;\n if (!(event.target instanceof HTMLElement) || !event.target.classList.contains('modal-content')) return;\n\n this.isMenuClosing = false;\n }\n}\n","<header class=\"header-clear main-grid col-span-full sm:col-span-12 sm:col-start-1\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo col-span-full sm:col-span-4 sm:col-start-1\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions col-span-full sm:col-span-6 sm:col-start-7\">\n <!-- Idioma -->\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'sun' : 'moon'\"\n [size]=\"17\"\n [color]=\"'currentColor'\"\n ></ui-icon>\n </button>\n\n <!-- Icono de menú -->\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</header>\n\n@if ((isMenuOpen || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { HeaderScrollDirective, LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport {\n UiLibButtonI,\n UiLibImageI,\n UiLibNavItemsI,\n UiLibSocialItemsI,\n} from '@lluc_llull/ui-lib/interfaces';\nimport { Theme, ThemeService } from '@lluc_llull/ui-lib/theme';\nimport { Subscription } from 'rxjs';\nimport { mapNavModal } from '@lluc_llull/ui-lib/mapper';\nimport { NavModalComponent } from '@lluc_llull/ui-lib/modals';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-header-mobile',\n standalone: true,\n imports: [CommonModule, NavModalComponent, HeaderScrollDirective, LinkTypeDirective, UiIconComponent],\n templateUrl: './header-mobile.component.html',\n styleUrl: './header-mobile.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderMobileComponent implements OnInit, OnChanges, OnDestroy {\n isMenuOpen = false;\n isMenuClosing = false;\n currentTheme: Theme = 'light';\n private themeSubscription?: Subscription;\n\n @Input() logo?: UiLibImageI;\n @Input() logoDark?: UiLibImageI;\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n @Input() homeLink?: UiLibButtonI;\n @Input() navigation: any;\n @Input() lang: string = 'es';\n\n @Output() langModal = new EventEmitter<void>();\n @Output() theme = new EventEmitter<void>();\n\n constructor(private themeService: ThemeService) {}\n\n ngOnInit(): void {\n this.themeSubscription = this.themeService.currentTheme$.subscribe((theme) => {\n this.currentTheme = theme;\n });\n }\n\n ngOnChanges() {\n this.navItems = mapNavModal(this.navigation, this.lang);\n }\n\n ngOnDestroy(): void {\n this.themeSubscription?.unsubscribe();\n }\n\n openLanguagesModal(): void {\n this.langModal.emit();\n }\n\n toggleTheme(): void {\n this.themeService.toggleTheme();\n this.theme.emit();\n }\n\n toggleMenu(): void {\n if (this.isMenuOpen) {\n this.closeMenu();\n return;\n }\n\n this.isMenuClosing = false;\n this.isMenuOpen = true;\n }\n\n closeMenu(): void {\n if (!this.isMenuOpen && !this.isMenuClosing) return;\n\n this.isMenuClosing = true;\n this.isMenuOpen = false;\n }\n\n finishMenuClose(event: TransitionEvent): void {\n if (!this.isMenuClosing || event.propertyName !== 'visibility') return;\n if (!(event.target instanceof HTMLElement) || !event.target.classList.contains('modal-content')) return;\n\n this.isMenuClosing = false;\n }\n}\n","<header class=\"header-mobile\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n </div>\n </a>\n</header>\n\n<div class=\"header-actions\">\n <!-- Idioma -->\n <div class=\"left\">\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n </div>\n\n <!-- Icono de tema -->\n <div class=\"center\">\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'moon' : 'sun'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n </div>\n\n <!-- Icono de menú -->\n <div class=\"right\">\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</div>\n\n@if ((isMenuOpen || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n"],"mappings":"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"}
|
|
@@ -25,6 +25,10 @@ const mapContactMinimal = (props, cdn) => ({
|
|
|
25
25
|
socials: mapButtons(props?.items?.[1]?.buttons),
|
|
26
26
|
img: mapImage(props?.multimedia?.image, cdn)
|
|
27
27
|
});
|
|
28
|
+
const mapContactForm = (props, cdn) => ({
|
|
29
|
+
...props,
|
|
30
|
+
img: mapImage(props?.multimedia?.image, cdn)
|
|
31
|
+
});
|
|
28
32
|
const mapNavModal = (navigation, lang) => {
|
|
29
33
|
if (!navigation?.items || !Array.isArray(navigation.items)) return [];
|
|
30
34
|
return navigation.items.map((item) => {
|
|
@@ -207,6 +211,7 @@ const componentMappers = {
|
|
|
207
211
|
"not-found": map404,
|
|
208
212
|
"split-previewer": mapSplitPreviewer,
|
|
209
213
|
"contact-minimal": mapContactMinimal,
|
|
214
|
+
"contact-form": mapContactForm,
|
|
210
215
|
"media-split": mapMediaSplit,
|
|
211
216
|
"stacked-rows": mapStackedRows,
|
|
212
217
|
"mosaic-parallax": mapMosaicParallax,
|
|
@@ -285,6 +290,6 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
285
290
|
}]
|
|
286
291
|
});
|
|
287
292
|
const CLOUDINARY_CLOUD_NAME = new InjectionToken("CLOUDINARY_CLOUD_NAME");
|
|
288
|
-
export { CDN_BASE_URL, CLOUDINARY_CLOUD_NAME, MapperService, componentMappers, map404, mapAsymmetricMedia, mapCategoryProgress, mapColumnsFooter, mapColumnsMediaStacked, mapContactMinimal, mapContentDocument, mapHeaderClear, mapHeroSection, mapLangModal, mapLegalFooter, mapLinksFooter, mapMediaIntro, mapMediaSplit, mapMosaicGrid, mapMosaicParallax, mapNavModal, mapSectionIntro, mapSocialFooter, mapSocialLinks, mapSplitPreviewer, mapSplitShowcase, mapStackedRows, mapVisualFooter };
|
|
293
|
+
export { CDN_BASE_URL, CLOUDINARY_CLOUD_NAME, MapperService, componentMappers, map404, mapAsymmetricMedia, mapCategoryProgress, mapColumnsFooter, mapColumnsMediaStacked, mapContactForm, mapContactMinimal, mapContentDocument, mapHeaderClear, mapHeroSection, mapLangModal, mapLegalFooter, mapLinksFooter, mapMediaIntro, mapMediaSplit, mapMosaicGrid, mapMosaicParallax, mapNavModal, mapSectionIntro, mapSocialFooter, mapSocialLinks, mapSplitPreviewer, mapSplitShowcase, mapStackedRows, mapVisualFooter };
|
|
289
294
|
|
|
290
295
|
//# sourceMappingURL=lluc_llull-ui-lib-mapper.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lluc_llull-ui-lib-mapper.mjs","names":[],"sources":["../../../projects/ui-lib/mapper/component-mappers/404.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/category-progress.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/contact-minimal.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/nav-modal.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/header-clear.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/hero-section.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/lang-modal.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/legal-footer.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/links-footer.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/section-intro.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/social-footer.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/split-previewer.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/visual-footer.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/media-split.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/stacked-rows.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/mosaic-parallax.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/content-document.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/columns-footer.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/split-showcase.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/asymmetric-media.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/media-intro.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/columns-media-stacked.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/mosaic-grid.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/index.ts","../../../projects/ui-lib/mapper/cdn.token.ts","../../../projects/ui-lib/mapper/mapper.service.ts","../../../projects/ui-lib/mapper/cloudinary.token.ts"],"sourcesContent":["import { mapButtons } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const map404: ComponentMapperFn = (props) => ({\n title: props?.texts?.title,\n subtitle: props?.texts?.subtitle,\n highlight: props?.texts?.highlight,\n button: mapButtons(props?.buttons)[0],\n});\n","import { ComponentMapperFn } from './types';\n\nexport const mapCategoryProgress: ComponentMapperFn = (props) => ({\n pretitle: props?.texts?.pretitle,\n title: props?.texts?.title,\n categories: props?.items?.map((item: any) => ({\n title: item.title,\n items: item.items?.map((subItem: any) => ({\n label: subItem.name,\n value: subItem.progress,\n })),\n })),\n});\n","import { mapButtons, mapImage } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapContactMinimal: ComponentMapperFn = (props, cdn) => ({\n contactsTitle: props?.texts?.contactsTitle,\n socialsTitle: props?.texts?.socialsTitle,\n contacts: mapButtons(props?.items?.[0]?.buttons),\n socials: mapButtons(props?.items?.[1]?.buttons),\n img: mapImage(props?.multimedia?.image, cdn),\n});\n","import { UiLibNavItemsI, UiLibSocialItemsI } from '@lluc_llull/ui-lib/interfaces';\n\nexport const mapNavModal = (navigation: any, lang: string): UiLibNavItemsI[] => {\n if (!navigation?.items || !Array.isArray(navigation.items)) return [];\n\n return navigation.items.map((item: any) => {\n const slug = item.slug;\n\n const url = slug === 'home' || slug === '' ? `/${lang}` : `/${lang}/${slug}`;\n\n return {\n label: item.label?.[lang] ?? item.label?.['es'] ?? slug,\n url,\n linkType: 'internal',\n name: slug,\n active: true,\n children: [],\n };\n });\n};\n\nexport const mapSocialLinks = (navigation: any): UiLibSocialItemsI[] => {\n if (!navigation?.social || !Array.isArray(navigation.social)) return [];\n\n return navigation.social.map((item: any, index: number) => ({\n label: item.label ?? '',\n url: item.url ?? '',\n linkType: item.linkType ?? 'external',\n icon: item.icon ?? '',\n order: item.order ?? index,\n }));\n};\n","import { mapImage, mapButtons } from '@lluc_llull/ui-lib/utils';\nimport { mapSocialLinks } from './nav-modal.mapper';\nimport { ComponentMapperFn } from './types';\n\nexport const mapHeaderClear: ComponentMapperFn = (props, cdn) => {\n return {\n logo: mapImage(props?.logo, cdn),\n logoDark: mapImage(props?.logoDark, cdn),\n lang: props?.lang || 'es',\n navigation: props?.navigation,\n socialItems: mapSocialLinks(props?.navigation),\n homeLink: mapButtons(props?.buttons)[0],\n };\n};\n","import { mapButtons, mapImage } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapHeroSection: ComponentMapperFn = (props, cdn) => ({\n pretitle: props?.texts?.pretitle,\n title: props?.texts?.title,\n subtitle: props?.texts?.subtitle,\n text: props?.texts?.text,\n buttons: mapButtons(props?.buttons),\n highlight: props?.texts?.highlight,\n variant: props?.variant,\n image: mapImage(props?.multimedia?.image, cdn),\n});\n","import { UiLibLangItemI } from '@lluc_llull/ui-lib/interfaces';\n\nexport const mapLangModal = (langs: any[], currentLang: string = 'es'): UiLibLangItemI[] => {\n if (!Array.isArray(langs)) return [];\n\n return langs.map((lang, index) => {\n const label = lang.labels?.[currentLang] || lang.labels?.[lang.code] || lang.code;\n\n return {\n id: lang.id ?? index,\n code: lang.code,\n label,\n };\n });\n};\n","import { mapButtons } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapLegalFooter: ComponentMapperFn = (props) => ({\n year: props?.texts?.year,\n brand: props?.texts?.brand,\n credits: props?.texts?.credits,\n links: mapButtons(props?.footer_links),\n //variant\n});\n","import { mapButtons } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapLinksFooter: ComponentMapperFn = (props) => ({\n links: mapButtons(props?.footer_links),\n});\n","import { mapButtons } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapSectionIntro: ComponentMapperFn = (props) => ({\n pretitle: props?.texts?.pretitle,\n title: props?.texts?.title,\n subtitle: props?.texts?.subtitle,\n text: props?.texts?.text,\n button: mapButtons(props?.buttons)[0],\n});\n","import { mapButtons, mapImage } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapSocialFooter: ComponentMapperFn = (props) => ({\n images: mapImage(props?.multimedia),\n socials: mapButtons(props?.social_links),\n hashtag: props?.texts?.hashtag,\n});\n","import { mapButtons, mapImage } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapSplitPreviewer: ComponentMapperFn = (props, cdn) => ({\n title: props?.texts?.title,\n items: props?.items?.map((item: any) => ({\n title: item.title,\n description: item.description,\n tags: item.tags,\n link: mapButtons(item?.buttons)[0],\n image: mapImage(item?.multimedia?.image, cdn),\n })),\n imageDefault: mapImage(props?.multimedia?.image, cdn),\n direction: props?.direction ?? 'left',\n});\n","import { UiLibAddressI } from '@lluc_llull/ui-lib/interfaces';\nimport { mapButtons, mapImage } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapVisualFooter: ComponentMapperFn = (props) => ({\n contactTitle: props?.texts?.contactTitle,\n contactPhone: mapButtons(props?.contactPhone),\n contactEmail: mapButtons(props?.contactEmail),\n addressTitle: props?.texts?.addressTitle,\n address: {\n address: props?.address?.address,\n city: props?.address?.city,\n country: props?.address?.country,\n cp: props?.address?.cp,\n province: props?.address?.province,\n } as UiLibAddressI,\n socialsTitle: props?.texts?.socialsTitle,\n socials: mapButtons(props?.social_links),\n image: mapImage(props?.multimedia),\n});\n","import { mapImageOrGallery } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapMediaSplit: ComponentMapperFn = (props, cdn) => ({\n title: props?.texts?.title,\n text: props?.texts?.text,\n images: mapImageOrGallery(props?.multimedia?.images, cdn),\n});\n","import { ComponentMapperFn } from './types';\n\nexport const mapStackedRows: ComponentMapperFn = (props) => ({\n title: props?.texts?.title,\n text: props?.texts?.text,\n items: props?.items?.map((item: any) => ({\n title: item?.title,\n text: item?.text,\n })),\n});\n","import { mapImageOrGallery } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapMosaicParallax: ComponentMapperFn = (props, cdn) => ({\n title: props?.texts?.title,\n text: props?.texts?.text,\n images: mapImageOrGallery(props?.multimedia?.images, cdn),\n});\n","import { ComponentMapperFn } from './types';\n\nexport const mapContentDocument: ComponentMapperFn = (props) => ({\n title: props?.texts?.title,\n items: props?.items?.map((item: any) => ({\n title: item?.title,\n text: item?.text,\n })),\n});\n","import { mapButtons } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapColumnsFooter: ComponentMapperFn = (props) => ({\n columns: props?.columns?.map((col: any) => ({\n title: col?.texts?.title,\n items: mapButtons(col?.buttons),\n })),\n copyright: {\n year: props?.copyright?.texts?.year,\n name: props?.copyright?.texts?.name,\n rights: props?.copyright?.texts?.rights,\n },\n});\n","import { mapButtons } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapSplitShowcase: ComponentMapperFn = (props) => ({\n title: props?.texts?.title,\n subtitle: props?.texts?.subtitle,\n description: props?.texts?.description,\n metas: props?.meta?.map((item: any) => ({\n label: item?.label,\n value: item?.value,\n })),\n buttons: mapButtons(props?.buttons)\n});","import { mapImageOrGallery } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapAsymmetricMedia: ComponentMapperFn = (props, cdn) => ({\n media: mapImageOrGallery(props?.multimedia?.images, cdn),\n direction: props?.direction ?? 'left',\n});","import { mapImage } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapMediaIntro: ComponentMapperFn = (props, cdn) => ({\n highlightedText: props?.texts?.highlightedText,\n secondaryText: props?.texts?.secondaryText,\n direction: props?.direction ?? 'left',\n media: mapImage(props?.multimedia?.image, cdn),\n});","import { mapImage } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapColumnsMediaStacked: ComponentMapperFn = (props, cdn) => ({\n leftColumn: props?.texts?.leftColumn,\n rightColumn: props?.texts?.rightColumn,\n direction: props?.direction ?? 'left',\n image: mapImage(props?.multimedia?.image, cdn),\n});","import { mapImageOrGallery } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapMosaicGrid: ComponentMapperFn = (props, cdn) => ({\n text: props?.texts?.editorialText,\n images: mapImageOrGallery(props?.multimedia?.images, cdn),\n});\n","export * from './404.mapper';\nexport * from './category-progress.mapper';\nexport * from './contact-minimal.mapper';\nexport * from './header-clear.mapper';\nexport * from './hero-section.mapper';\nexport * from './lang-modal.mapper';\nexport * from './legal-footer.mapper';\nexport * from './links-footer.mapper';\nexport * from './nav-modal.mapper';\nexport * from './section-intro.mapper';\nexport * from './social-footer.mapper';\nexport * from './split-previewer.mapper';\nexport * from './visual-footer.mapper';\nexport * from './media-split.mapper';\nexport * from './stacked-rows.mapper';\nexport * from './mosaic-parallax.mapper';\nexport * from './content-document.mapper';\nexport * from './columns-footer.mapper';\nexport * from './split-showcase.mapper';\nexport * from './asymmetric-media.mapper';\nexport * from './media-intro.mapper';\nexport * from './columns-media-stacked.mapper';\nexport * from './mosaic-grid.mapper';\n\nimport { map404 } from './404.mapper';\nimport { mapCategoryProgress } from './category-progress.mapper';\nimport { mapContactMinimal } from './contact-minimal.mapper';\nimport { mapHeaderClear } from './header-clear.mapper';\nimport { mapHeroSection } from './hero-section.mapper';\nimport { mapLangModal } from './lang-modal.mapper';\nimport { mapLegalFooter } from './legal-footer.mapper';\nimport { mapLinksFooter } from './links-footer.mapper';\nimport { mapMediaSplit } from './media-split.mapper';\nimport { mapSectionIntro } from './section-intro.mapper';\nimport { mapSocialFooter } from './social-footer.mapper';\nimport { mapSplitPreviewer } from './split-previewer.mapper';\nimport { mapStackedRows } from './stacked-rows.mapper';\nimport { mapVisualFooter } from './visual-footer.mapper';\nimport { mapMosaicParallax } from './mosaic-parallax.mapper';\nimport { mapContentDocument } from './content-document.mapper';\nimport { mapColumnsFooter } from './columns-footer.mapper';\nimport { mapSplitShowcase } from './split-showcase.mapper';\nimport { mapAsymmetricMedia } from './asymmetric-media.mapper';\nimport { mapMediaIntro } from './media-intro.mapper';\nimport { mapColumnsMediaStacked } from './columns-media-stacked.mapper';\nimport { mapMosaicGrid } from './mosaic-grid.mapper';\n\nexport const componentMappers: Record<string, (props: any, cdn?: string) => any> = {\n 'hero-section': mapHeroSection,\n 'header-clear': mapHeaderClear,\n 'lang-modal': mapLangModal,\n 'section-intro': mapSectionIntro,\n 'category-progress': mapCategoryProgress,\n 'links-footer': mapLinksFooter,\n 'legal-footer': mapLegalFooter,\n 'social-footer': mapSocialFooter,\n 'visual-footer': mapVisualFooter,\n 'not-found': map404,\n 'split-previewer': mapSplitPreviewer,\n 'contact-minimal': mapContactMinimal,\n 'media-split': mapMediaSplit,\n 'stacked-rows': mapStackedRows,\n 'mosaic-parallax': mapMosaicParallax,\n 'content-document': mapContentDocument,\n 'columns-footer': mapColumnsFooter,\n 'split-showcase': mapSplitShowcase,\n 'asymmetric-media': mapAsymmetricMedia,\n 'media-intro': mapMediaIntro,\n 'columns-media-stacked': mapColumnsMediaStacked,\n 'mosaic-grid': mapMosaicGrid,\n};\n","import { InjectionToken } from '@angular/core';\n\nexport const CDN_BASE_URL = new InjectionToken<string>('CDN_BASE_URL');","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { BodyComponent } from '@lluc_llull/ui-lib/interfaces';\nimport { CDN_BASE_URL } from './cdn.token';\nimport { componentMappers } from './component-mappers';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapperService {\n\n constructor(@Inject(PLATFORM_ID) private readonly platformId: Object, @Inject(CDN_BASE_URL) private readonly cdn: string) {}\n\n mapComponents<T>(body: any[]): BodyComponent<T>[] {\n if (!body || body.length === 0) {\n return [];\n }\n\n return body\n .filter((component) => component && component.name && component.props)\n .map((component) => {\n const name = component.name.toLowerCase();\n const mapper = componentMappers[name];\n\n const mapped: BodyComponent<T> = {\n name,\n order: component.order,\n props: {} as T,\n };\n\n if (mapper) {\n try {\n mapped.props = mapper(component.props, this.cdn) as T;\n } catch (e) {\n console.error(`Error mapping props for component \"${name}\"`, e);\n }\n } else {\n console.warn(`No mapper found for component \"${name}\"`);\n }\n\n return mapped;\n });\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const CLOUDINARY_CLOUD_NAME = new InjectionToken<string>('CLOUDINARY_CLOUD_NAME');\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lluc_llull-ui-lib-mapper.mjs","names":[],"sources":["../../../projects/ui-lib/mapper/component-mappers/404.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/category-progress.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/contact-minimal.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/contact-form.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/nav-modal.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/header-clear.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/hero-section.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/lang-modal.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/legal-footer.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/links-footer.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/section-intro.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/social-footer.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/split-previewer.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/visual-footer.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/media-split.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/stacked-rows.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/mosaic-parallax.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/content-document.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/columns-footer.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/split-showcase.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/asymmetric-media.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/media-intro.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/columns-media-stacked.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/mosaic-grid.mapper.ts","../../../projects/ui-lib/mapper/component-mappers/index.ts","../../../projects/ui-lib/mapper/cdn.token.ts","../../../projects/ui-lib/mapper/mapper.service.ts","../../../projects/ui-lib/mapper/cloudinary.token.ts"],"sourcesContent":["import { mapButtons } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const map404: ComponentMapperFn = (props) => ({\n title: props?.texts?.title,\n subtitle: props?.texts?.subtitle,\n highlight: props?.texts?.highlight,\n button: mapButtons(props?.buttons)[0],\n});\n","import { ComponentMapperFn } from './types';\n\nexport const mapCategoryProgress: ComponentMapperFn = (props) => ({\n pretitle: props?.texts?.pretitle,\n title: props?.texts?.title,\n categories: props?.items?.map((item: any) => ({\n title: item.title,\n items: item.items?.map((subItem: any) => ({\n label: subItem.name,\n value: subItem.progress,\n })),\n })),\n});\n","import { mapButtons, mapImage } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapContactMinimal: ComponentMapperFn = (props, cdn) => ({\n contactsTitle: props?.texts?.contactsTitle,\n socialsTitle: props?.texts?.socialsTitle,\n contacts: mapButtons(props?.items?.[0]?.buttons),\n socials: mapButtons(props?.items?.[1]?.buttons),\n img: mapImage(props?.multimedia?.image, cdn),\n});\n","import { mapImage } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapContactForm: ComponentMapperFn = (props, cdn) => ({\n ...props,\n img: mapImage(props?.multimedia?.image, cdn),\n});\n","import { UiLibNavItemsI, UiLibSocialItemsI } from '@lluc_llull/ui-lib/interfaces';\n\nexport const mapNavModal = (navigation: any, lang: string): UiLibNavItemsI[] => {\n if (!navigation?.items || !Array.isArray(navigation.items)) return [];\n\n return navigation.items.map((item: any) => {\n const slug = item.slug;\n\n const url = slug === 'home' || slug === '' ? `/${lang}` : `/${lang}/${slug}`;\n\n return {\n label: item.label?.[lang] ?? item.label?.['es'] ?? slug,\n url,\n linkType: 'internal',\n name: slug,\n active: true,\n children: [],\n };\n });\n};\n\nexport const mapSocialLinks = (navigation: any): UiLibSocialItemsI[] => {\n if (!navigation?.social || !Array.isArray(navigation.social)) return [];\n\n return navigation.social.map((item: any, index: number) => ({\n label: item.label ?? '',\n url: item.url ?? '',\n linkType: item.linkType ?? 'external',\n icon: item.icon ?? '',\n order: item.order ?? index,\n }));\n};\n","import { mapImage, mapButtons } from '@lluc_llull/ui-lib/utils';\nimport { mapSocialLinks } from './nav-modal.mapper';\nimport { ComponentMapperFn } from './types';\n\nexport const mapHeaderClear: ComponentMapperFn = (props, cdn) => {\n return {\n logo: mapImage(props?.logo, cdn),\n logoDark: mapImage(props?.logoDark, cdn),\n lang: props?.lang || 'es',\n navigation: props?.navigation,\n socialItems: mapSocialLinks(props?.navigation),\n homeLink: mapButtons(props?.buttons)[0],\n };\n};\n","import { mapButtons, mapImage } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapHeroSection: ComponentMapperFn = (props, cdn) => ({\n pretitle: props?.texts?.pretitle,\n title: props?.texts?.title,\n subtitle: props?.texts?.subtitle,\n text: props?.texts?.text,\n buttons: mapButtons(props?.buttons),\n highlight: props?.texts?.highlight,\n variant: props?.variant,\n image: mapImage(props?.multimedia?.image, cdn),\n});\n","import { UiLibLangItemI } from '@lluc_llull/ui-lib/interfaces';\n\nexport const mapLangModal = (langs: any[], currentLang: string = 'es'): UiLibLangItemI[] => {\n if (!Array.isArray(langs)) return [];\n\n return langs.map((lang, index) => {\n const label = lang.labels?.[currentLang] || lang.labels?.[lang.code] || lang.code;\n\n return {\n id: lang.id ?? index,\n code: lang.code,\n label,\n };\n });\n};\n","import { mapButtons } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapLegalFooter: ComponentMapperFn = (props) => ({\n year: props?.texts?.year,\n brand: props?.texts?.brand,\n credits: props?.texts?.credits,\n links: mapButtons(props?.footer_links),\n //variant\n});\n","import { mapButtons } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapLinksFooter: ComponentMapperFn = (props) => ({\n links: mapButtons(props?.footer_links),\n});\n","import { mapButtons } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapSectionIntro: ComponentMapperFn = (props) => ({\n pretitle: props?.texts?.pretitle,\n title: props?.texts?.title,\n subtitle: props?.texts?.subtitle,\n text: props?.texts?.text,\n button: mapButtons(props?.buttons)[0],\n});\n","import { mapButtons, mapImage } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapSocialFooter: ComponentMapperFn = (props) => ({\n images: mapImage(props?.multimedia),\n socials: mapButtons(props?.social_links),\n hashtag: props?.texts?.hashtag,\n});\n","import { mapButtons, mapImage } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapSplitPreviewer: ComponentMapperFn = (props, cdn) => ({\n title: props?.texts?.title,\n items: props?.items?.map((item: any) => ({\n title: item.title,\n description: item.description,\n tags: item.tags,\n link: mapButtons(item?.buttons)[0],\n image: mapImage(item?.multimedia?.image, cdn),\n })),\n imageDefault: mapImage(props?.multimedia?.image, cdn),\n direction: props?.direction ?? 'left',\n});\n","import { UiLibAddressI } from '@lluc_llull/ui-lib/interfaces';\nimport { mapButtons, mapImage } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapVisualFooter: ComponentMapperFn = (props) => ({\n contactTitle: props?.texts?.contactTitle,\n contactPhone: mapButtons(props?.contactPhone),\n contactEmail: mapButtons(props?.contactEmail),\n addressTitle: props?.texts?.addressTitle,\n address: {\n address: props?.address?.address,\n city: props?.address?.city,\n country: props?.address?.country,\n cp: props?.address?.cp,\n province: props?.address?.province,\n } as UiLibAddressI,\n socialsTitle: props?.texts?.socialsTitle,\n socials: mapButtons(props?.social_links),\n image: mapImage(props?.multimedia),\n});\n","import { mapImageOrGallery } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapMediaSplit: ComponentMapperFn = (props, cdn) => ({\n title: props?.texts?.title,\n text: props?.texts?.text,\n images: mapImageOrGallery(props?.multimedia?.images, cdn),\n});\n","import { ComponentMapperFn } from './types';\n\nexport const mapStackedRows: ComponentMapperFn = (props) => ({\n title: props?.texts?.title,\n text: props?.texts?.text,\n items: props?.items?.map((item: any) => ({\n title: item?.title,\n text: item?.text,\n })),\n});\n","import { mapImageOrGallery } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapMosaicParallax: ComponentMapperFn = (props, cdn) => ({\n title: props?.texts?.title,\n text: props?.texts?.text,\n images: mapImageOrGallery(props?.multimedia?.images, cdn),\n});\n","import { ComponentMapperFn } from './types';\n\nexport const mapContentDocument: ComponentMapperFn = (props) => ({\n title: props?.texts?.title,\n items: props?.items?.map((item: any) => ({\n title: item?.title,\n text: item?.text,\n })),\n});\n","import { mapButtons } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapColumnsFooter: ComponentMapperFn = (props) => ({\n columns: props?.columns?.map((col: any) => ({\n title: col?.texts?.title,\n items: mapButtons(col?.buttons),\n })),\n copyright: {\n year: props?.copyright?.texts?.year,\n name: props?.copyright?.texts?.name,\n rights: props?.copyright?.texts?.rights,\n },\n});\n","import { mapButtons } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapSplitShowcase: ComponentMapperFn = (props) => ({\n title: props?.texts?.title,\n subtitle: props?.texts?.subtitle,\n description: props?.texts?.description,\n metas: props?.meta?.map((item: any) => ({\n label: item?.label,\n value: item?.value,\n })),\n buttons: mapButtons(props?.buttons)\n});","import { mapImageOrGallery } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapAsymmetricMedia: ComponentMapperFn = (props, cdn) => ({\n media: mapImageOrGallery(props?.multimedia?.images, cdn),\n direction: props?.direction ?? 'left',\n});","import { mapImage } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapMediaIntro: ComponentMapperFn = (props, cdn) => ({\n highlightedText: props?.texts?.highlightedText,\n secondaryText: props?.texts?.secondaryText,\n direction: props?.direction ?? 'left',\n media: mapImage(props?.multimedia?.image, cdn),\n});","import { mapImage } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapColumnsMediaStacked: ComponentMapperFn = (props, cdn) => ({\n leftColumn: props?.texts?.leftColumn,\n rightColumn: props?.texts?.rightColumn,\n direction: props?.direction ?? 'left',\n image: mapImage(props?.multimedia?.image, cdn),\n});","import { mapImageOrGallery } from '@lluc_llull/ui-lib/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapMosaicGrid: ComponentMapperFn = (props, cdn) => ({\n text: props?.texts?.editorialText,\n images: mapImageOrGallery(props?.multimedia?.images, cdn),\n});\n","export * from './404.mapper';\nexport * from './category-progress.mapper';\nexport * from './contact-minimal.mapper';\nexport * from './contact-form.mapper';\nexport * from './header-clear.mapper';\nexport * from './hero-section.mapper';\nexport * from './lang-modal.mapper';\nexport * from './legal-footer.mapper';\nexport * from './links-footer.mapper';\nexport * from './nav-modal.mapper';\nexport * from './section-intro.mapper';\nexport * from './social-footer.mapper';\nexport * from './split-previewer.mapper';\nexport * from './visual-footer.mapper';\nexport * from './media-split.mapper';\nexport * from './stacked-rows.mapper';\nexport * from './mosaic-parallax.mapper';\nexport * from './content-document.mapper';\nexport * from './columns-footer.mapper';\nexport * from './split-showcase.mapper';\nexport * from './asymmetric-media.mapper';\nexport * from './media-intro.mapper';\nexport * from './columns-media-stacked.mapper';\nexport * from './mosaic-grid.mapper';\n\nimport { map404 } from './404.mapper';\nimport { mapCategoryProgress } from './category-progress.mapper';\nimport { mapContactMinimal } from './contact-minimal.mapper';\nimport { mapContactForm } from './contact-form.mapper';\nimport { mapHeaderClear } from './header-clear.mapper';\nimport { mapHeroSection } from './hero-section.mapper';\nimport { mapLangModal } from './lang-modal.mapper';\nimport { mapLegalFooter } from './legal-footer.mapper';\nimport { mapLinksFooter } from './links-footer.mapper';\nimport { mapMediaSplit } from './media-split.mapper';\nimport { mapSectionIntro } from './section-intro.mapper';\nimport { mapSocialFooter } from './social-footer.mapper';\nimport { mapSplitPreviewer } from './split-previewer.mapper';\nimport { mapStackedRows } from './stacked-rows.mapper';\nimport { mapVisualFooter } from './visual-footer.mapper';\nimport { mapMosaicParallax } from './mosaic-parallax.mapper';\nimport { mapContentDocument } from './content-document.mapper';\nimport { mapColumnsFooter } from './columns-footer.mapper';\nimport { mapSplitShowcase } from './split-showcase.mapper';\nimport { mapAsymmetricMedia } from './asymmetric-media.mapper';\nimport { mapMediaIntro } from './media-intro.mapper';\nimport { mapColumnsMediaStacked } from './columns-media-stacked.mapper';\nimport { mapMosaicGrid } from './mosaic-grid.mapper';\n\nexport const componentMappers: Record<string, (props: any, cdn?: string) => any> = {\n 'hero-section': mapHeroSection,\n 'header-clear': mapHeaderClear,\n 'lang-modal': mapLangModal,\n 'section-intro': mapSectionIntro,\n 'category-progress': mapCategoryProgress,\n 'links-footer': mapLinksFooter,\n 'legal-footer': mapLegalFooter,\n 'social-footer': mapSocialFooter,\n 'visual-footer': mapVisualFooter,\n 'not-found': map404,\n 'split-previewer': mapSplitPreviewer,\n 'contact-minimal': mapContactMinimal,\n 'contact-form': mapContactForm,\n 'media-split': mapMediaSplit,\n 'stacked-rows': mapStackedRows,\n 'mosaic-parallax': mapMosaicParallax,\n 'content-document': mapContentDocument,\n 'columns-footer': mapColumnsFooter,\n 'split-showcase': mapSplitShowcase,\n 'asymmetric-media': mapAsymmetricMedia,\n 'media-intro': mapMediaIntro,\n 'columns-media-stacked': mapColumnsMediaStacked,\n 'mosaic-grid': mapMosaicGrid,\n};\n","import { InjectionToken } from '@angular/core';\n\nexport const CDN_BASE_URL = new InjectionToken<string>('CDN_BASE_URL');","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { BodyComponent } from '@lluc_llull/ui-lib/interfaces';\nimport { CDN_BASE_URL } from './cdn.token';\nimport { componentMappers } from './component-mappers';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapperService {\n\n constructor(@Inject(PLATFORM_ID) private readonly platformId: Object, @Inject(CDN_BASE_URL) private readonly cdn: string) {}\n\n mapComponents<T>(body: any[]): BodyComponent<T>[] {\n if (!body || body.length === 0) {\n return [];\n }\n\n return body\n .filter((component) => component && component.name && component.props)\n .map((component) => {\n const name = component.name.toLowerCase();\n const mapper = componentMappers[name];\n\n const mapped: BodyComponent<T> = {\n name,\n order: component.order,\n props: {} as T,\n };\n\n if (mapper) {\n try {\n mapped.props = mapper(component.props, this.cdn) as T;\n } catch (e) {\n console.error(`Error mapping props for component \"${name}\"`, e);\n }\n } else {\n console.warn(`No mapper found for component \"${name}\"`);\n }\n\n return mapped;\n });\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const CLOUDINARY_CLOUD_NAME = new InjectionToken<string>('CLOUDINARY_CLOUD_NAME');\n"],"mappings":"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"}
|
|
@@ -39,7 +39,7 @@ var LangModalComponent = class LangModalComponent {
|
|
|
39
39
|
host: { properties: { "class.is-closing": "closing" } },
|
|
40
40
|
ngImport: i0,
|
|
41
41
|
template: "<button\n (click)=\"closeModal()\"\n class=\"close-btn\"\n [class.is-closing]=\"closing\"\n type=\"button\"\n aria-label=\"Close modal\"\n>\n ✕\n</button>\n<div class=\"modal-content\" [class.is-closing]=\"closing\">\n @if (langs && langs.length > 0) {\n <ol>\n @for (lang of langs; track lang.id) {\n <li (click)=\"selectLang(lang)\">\n <span class=\"modal-item\">{{ lang.label }}</span>\n </li>\n }\n </ol>\n }\n</div>\n",
|
|
42
|
-
styles: [":host{position:fixed;inset:0;width:100vw;height:100vh;background:transparent;isolation:isolate;z-index:1000;display:flex;align-items:center;justify-content:center}:host:before{content:\"\";position:absolute;inset:0;z-index:0;background:var(--modal-bg);opacity:1;transform:scaleY(1);transform-origin:top center;transition:transform .36s cubic-bezier(.22,1,.36,1),opacity .36s cubic-bezier(.22,1,.36,1)}@starting-style{:host:before{opacity:0;transform:scaleY(0)}}:host.is-closing:before{transform-origin:top center;opacity:0;transform:scaleY(0);transition-delay:.42s}.modal-content{position:relative;z-index:1;opacity:1;transform:translateY(0) scale(1);transform-origin:center;transition:opacity .26s cubic-bezier(.22,1,.36,1) .18s}@starting-style{.modal-content{opacity:0}}.modal-content.is-closing{opacity:0;visibility:hidden;transition:opacity .26s cubic-bezier(.22,1,.36,1) .34s,visibility 1ms linear 779ms}.close-btn.is-closing{opacity:0;pointer-events:none}@media(prefers-reduced-motion:reduce){.modal-content,.modal-content.is-closing{transform:none;transition-duration:1ms}:host:before,:host.is-closing:before{opacity:0;transform:scaleY(0);transition-delay:0ms;transition-duration:1ms}}.close-btn{position:absolute;top:1rem;right:2rem;background:none;border:none;color:var(--close-btn);font-size:1.5rem;font-weight:700;cursor:pointer;z-index:1001;transition:opacity .18s cubic-bezier(.22,1,.36,1)}ol{padding:0;margin:0;text-align:center;
|
|
42
|
+
styles: [":host{position:fixed;inset:0;width:100vw;height:100vh;background:transparent;isolation:isolate;z-index:1000;display:flex;align-items:center;justify-content:center}:host:before{content:\"\";position:absolute;inset:0;z-index:0;background:var(--modal-bg);opacity:1;transform:scaleY(1);transform-origin:top center;transition:transform .36s cubic-bezier(.22,1,.36,1),opacity .36s cubic-bezier(.22,1,.36,1)}@starting-style{:host:before{opacity:0;transform:scaleY(0)}}:host.is-closing:before{transform-origin:top center;opacity:0;transform:scaleY(0);transition-delay:.42s}.modal-content{position:relative;z-index:1;display:grid;justify-items:center;inline-size:fit-content;max-inline-size:calc(100vw - 2rem);opacity:1;transform:translateY(0) scale(1);transform-origin:center;transition:opacity .26s cubic-bezier(.22,1,.36,1) .18s}@starting-style{.modal-content{opacity:0}}.modal-content.is-closing{opacity:0;visibility:hidden;transition:opacity .26s cubic-bezier(.22,1,.36,1) .34s,visibility 1ms linear 779ms}.close-btn.is-closing{opacity:0;pointer-events:none}@media(prefers-reduced-motion:reduce){.modal-content,.modal-content.is-closing{transform:none;transition-duration:1ms}:host:before,:host.is-closing:before{opacity:0;transform:scaleY(0);transition-delay:0ms;transition-duration:1ms}}.close-btn{position:absolute;top:1rem;right:2rem;background:none;border:none;color:var(--close-btn);font-size:1.5rem;font-weight:700;cursor:pointer;z-index:1001;transition:opacity .18s cubic-bezier(.22,1,.36,1)}ol{padding:0;margin:0;text-align:center;inline-size:fit-content;max-inline-size:100%;list-style:none;counter-reset:item}ol>li{opacity:1;transform:translateY(0);transition:opacity .42s cubic-bezier(.22,1,.36,1) .36s,transform .42s cubic-bezier(.22,1,.36,1) .36s}@starting-style{ol>li{opacity:0;transform:translateY(16px)}}@media(prefers-reduced-motion:reduce){ol>li{transform:none;transition-duration:1ms;transition-delay:0ms}}li{cursor:pointer;text-align:start;text-transform:uppercase;counter-increment:item}li:before{content:counter(item,decimal-leading-zero) \". \"}.modal-item{display:inline-block;padding:4px;border:4px solid transparent;font-size:3.5rem}@media(max-width:768px){.modal-item{font-size:3rem}}.modal-item:hover{background:var(--modal-hover);border:4px solid var(--border-primary)}\n"],
|
|
43
43
|
dependencies: [{
|
|
44
44
|
kind: "ngmodule",
|
|
45
45
|
type: CommonModule
|
|
@@ -61,7 +61,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
61
61
|
host: { "[class.is-closing]": "closing" },
|
|
62
62
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
63
63
|
template: "<button\n (click)=\"closeModal()\"\n class=\"close-btn\"\n [class.is-closing]=\"closing\"\n type=\"button\"\n aria-label=\"Close modal\"\n>\n ✕\n</button>\n<div class=\"modal-content\" [class.is-closing]=\"closing\">\n @if (langs && langs.length > 0) {\n <ol>\n @for (lang of langs; track lang.id) {\n <li (click)=\"selectLang(lang)\">\n <span class=\"modal-item\">{{ lang.label }}</span>\n </li>\n }\n </ol>\n }\n</div>\n",
|
|
64
|
-
styles: [":host{position:fixed;inset:0;width:100vw;height:100vh;background:transparent;isolation:isolate;z-index:1000;display:flex;align-items:center;justify-content:center}:host:before{content:\"\";position:absolute;inset:0;z-index:0;background:var(--modal-bg);opacity:1;transform:scaleY(1);transform-origin:top center;transition:transform .36s cubic-bezier(.22,1,.36,1),opacity .36s cubic-bezier(.22,1,.36,1)}@starting-style{:host:before{opacity:0;transform:scaleY(0)}}:host.is-closing:before{transform-origin:top center;opacity:0;transform:scaleY(0);transition-delay:.42s}.modal-content{position:relative;z-index:1;opacity:1;transform:translateY(0) scale(1);transform-origin:center;transition:opacity .26s cubic-bezier(.22,1,.36,1) .18s}@starting-style{.modal-content{opacity:0}}.modal-content.is-closing{opacity:0;visibility:hidden;transition:opacity .26s cubic-bezier(.22,1,.36,1) .34s,visibility 1ms linear 779ms}.close-btn.is-closing{opacity:0;pointer-events:none}@media(prefers-reduced-motion:reduce){.modal-content,.modal-content.is-closing{transform:none;transition-duration:1ms}:host:before,:host.is-closing:before{opacity:0;transform:scaleY(0);transition-delay:0ms;transition-duration:1ms}}.close-btn{position:absolute;top:1rem;right:2rem;background:none;border:none;color:var(--close-btn);font-size:1.5rem;font-weight:700;cursor:pointer;z-index:1001;transition:opacity .18s cubic-bezier(.22,1,.36,1)}ol{padding:0;margin:0;text-align:center;
|
|
64
|
+
styles: [":host{position:fixed;inset:0;width:100vw;height:100vh;background:transparent;isolation:isolate;z-index:1000;display:flex;align-items:center;justify-content:center}:host:before{content:\"\";position:absolute;inset:0;z-index:0;background:var(--modal-bg);opacity:1;transform:scaleY(1);transform-origin:top center;transition:transform .36s cubic-bezier(.22,1,.36,1),opacity .36s cubic-bezier(.22,1,.36,1)}@starting-style{:host:before{opacity:0;transform:scaleY(0)}}:host.is-closing:before{transform-origin:top center;opacity:0;transform:scaleY(0);transition-delay:.42s}.modal-content{position:relative;z-index:1;display:grid;justify-items:center;inline-size:fit-content;max-inline-size:calc(100vw - 2rem);opacity:1;transform:translateY(0) scale(1);transform-origin:center;transition:opacity .26s cubic-bezier(.22,1,.36,1) .18s}@starting-style{.modal-content{opacity:0}}.modal-content.is-closing{opacity:0;visibility:hidden;transition:opacity .26s cubic-bezier(.22,1,.36,1) .34s,visibility 1ms linear 779ms}.close-btn.is-closing{opacity:0;pointer-events:none}@media(prefers-reduced-motion:reduce){.modal-content,.modal-content.is-closing{transform:none;transition-duration:1ms}:host:before,:host.is-closing:before{opacity:0;transform:scaleY(0);transition-delay:0ms;transition-duration:1ms}}.close-btn{position:absolute;top:1rem;right:2rem;background:none;border:none;color:var(--close-btn);font-size:1.5rem;font-weight:700;cursor:pointer;z-index:1001;transition:opacity .18s cubic-bezier(.22,1,.36,1)}ol{padding:0;margin:0;text-align:center;inline-size:fit-content;max-inline-size:100%;list-style:none;counter-reset:item}ol>li{opacity:1;transform:translateY(0);transition:opacity .42s cubic-bezier(.22,1,.36,1) .36s,transform .42s cubic-bezier(.22,1,.36,1) .36s}@starting-style{ol>li{opacity:0;transform:translateY(16px)}}@media(prefers-reduced-motion:reduce){ol>li{transform:none;transition-duration:1ms;transition-delay:0ms}}li{cursor:pointer;text-align:start;text-transform:uppercase;counter-increment:item}li:before{content:counter(item,decimal-leading-zero) \". \"}.modal-item{display:inline-block;padding:4px;border:4px solid transparent;font-size:3.5rem}@media(max-width:768px){.modal-item{font-size:3rem}}.modal-item:hover{background:var(--modal-hover);border:4px solid var(--border-primary)}\n"]
|
|
65
65
|
}]
|
|
66
66
|
}],
|
|
67
67
|
propDecorators: {
|
|
@@ -102,7 +102,7 @@ var NavModalComponent = class NavModalComponent {
|
|
|
102
102
|
host: { properties: { "class.is-closing": "closing" } },
|
|
103
103
|
ngImport: i0,
|
|
104
104
|
template: "<button (click)=\"closeModal()\" class=\"close-btn\" [class.is-closing]=\"closing\" type=\"button\" aria-label=\"Close menu\">✕</button>\n<div class=\"modal-content\" [class.is-closing]=\"closing\">\n\n @if (navItems?.length) {\n <ol>\n @for (item of navItems; track item.name) {\n <a [href]=\"item.url\" [linkType]=\"item.linkType\" (click)=\"closeModal()\">\n <li>\n <span class=\"modal-item\">{{ item.label }}</span>\n </li>\n </a>\n }\n </ol>\n }\n\n @if (socialItems?.length) {\n <div class=\"btn-group\">\n @for (social of socialItems; track social.label) {\n <a class=\"btn btn-link\" [href]=\"social.url\" [linkType]=\"social.linkType\">\n <ui-icon [name]=\"social.icon!\" [size]=\"17\" [color]=\"'var(--color-primary)'\"></ui-icon>\n {{ social.label }}\n </a>\n }\n </div>\n }\n</div>\n",
|
|
105
|
-
styles: [":host{position:fixed;inset:0;width:100vw;height:100vh;background:transparent;isolation:isolate;z-index:1000;display:flex;align-items:center;justify-content:center}:host:before{content:\"\";position:absolute;inset:0;z-index:0;background:var(--modal-bg);opacity:1;transform:scaleY(1);transform-origin:top center;transition:transform .36s cubic-bezier(.22,1,.36,1),opacity .36s cubic-bezier(.22,1,.36,1)}@starting-style{:host:before{opacity:0;transform:scaleY(0)}}:host.is-closing:before{transform-origin:top center;opacity:0;transform:scaleY(0);transition-delay:.66s}.modal-content{position:relative;z-index:1;opacity:1;transform:translateY(0) scale(1);transform-origin:center;transition:opacity .26s cubic-bezier(.22,1,.36,1) .18s}@starting-style{.modal-content{opacity:0}}.modal-content.is-closing{opacity:0;visibility:hidden;transition:opacity .26s cubic-bezier(.22,1,.36,1) .58s,visibility 1ms linear 1019ms}.modal-content.is-closing ol>a{opacity:0;transform:translateY(16px);transition-delay:.24s;transition-duration:.42s}.modal-content.is-closing .btn-group{opacity:0;transform:translateY(12px);transition-delay:0ms;transition-duration:.22s}@media(prefers-reduced-motion:reduce){.modal-content,.modal-content.is-closing,ol>a,.btn-group{transform:none;transition-duration:1ms;transition-delay:0ms}:host:before,:host.is-closing:before{opacity:0;transform:scaleY(0);transition-delay:0ms;transition-duration:1ms}}.close-btn{position:absolute;top:1rem;right:2rem;background:none;border:none;color:var(--close-btn);font-size:1.5rem;font-weight:700;cursor:pointer;z-index:1001;transition:opacity .18s cubic-bezier(.22,1,.36,1)}.close-btn.is-closing{opacity:0;pointer-events:none;transition-duration:.22s}ol{padding:0;margin:0;text-align:center;
|
|
105
|
+
styles: [":host{position:fixed;inset:0;width:100vw;height:100vh;background:transparent;isolation:isolate;z-index:1000;display:flex;align-items:center;justify-content:center}:host:before{content:\"\";position:absolute;inset:0;z-index:0;background:var(--modal-bg);opacity:1;transform:scaleY(1);transform-origin:top center;transition:transform .36s cubic-bezier(.22,1,.36,1),opacity .36s cubic-bezier(.22,1,.36,1)}@starting-style{:host:before{opacity:0;transform:scaleY(0)}}:host.is-closing:before{transform-origin:top center;opacity:0;transform:scaleY(0);transition-delay:.66s}.modal-content{position:relative;z-index:1;display:grid;justify-items:center;inline-size:fit-content;max-inline-size:calc(100vw - 2rem);opacity:1;transform:translateY(0) scale(1);transform-origin:center;transition:opacity .26s cubic-bezier(.22,1,.36,1) .18s}@starting-style{.modal-content{opacity:0}}.modal-content.is-closing{opacity:0;visibility:hidden;transition:opacity .26s cubic-bezier(.22,1,.36,1) .58s,visibility 1ms linear 1019ms}.modal-content.is-closing ol>a{opacity:0;transform:translateY(16px);transition-delay:.24s;transition-duration:.42s}.modal-content.is-closing .btn-group{opacity:0;transform:translateY(12px);transition-delay:0ms;transition-duration:.22s}@media(prefers-reduced-motion:reduce){.modal-content,.modal-content.is-closing,ol>a,.btn-group{transform:none;transition-duration:1ms;transition-delay:0ms}:host:before,:host.is-closing:before{opacity:0;transform:scaleY(0);transition-delay:0ms;transition-duration:1ms}}.close-btn{position:absolute;top:1rem;right:2rem;background:none;border:none;color:var(--close-btn);font-size:1.5rem;font-weight:700;cursor:pointer;z-index:1001;transition:opacity .18s cubic-bezier(.22,1,.36,1)}.close-btn.is-closing{opacity:0;pointer-events:none;transition-duration:.22s}ol{padding:0;margin:0;text-align:center;inline-size:fit-content;max-inline-size:100%;list-style:none;counter-reset:item}ol>a{display:block;opacity:1;transform:translateY(0);transition:opacity .42s cubic-bezier(.22,1,.36,1) .36s,transform .42s cubic-bezier(.22,1,.36,1) .36s}@starting-style{ol>a{opacity:0;transform:translateY(16px)}}.btn-group{margin-top:0;opacity:1;transform:translateY(0);transition:opacity .22s cubic-bezier(.22,1,.36,1) .8s,transform .22s cubic-bezier(.22,1,.36,1) .8s}@starting-style{.btn-group{opacity:0;transform:translateY(12px)}}li{cursor:pointer;text-align:start;counter-increment:item}a{text-decoration:none;text-transform:uppercase;color:var(--item-color)}li:before{content:counter(item,decimal-leading-zero) \". \"}.btn-link{text-transform:none}.modal-item{display:inline-block;padding:4px;border:4px solid transparent}.modal-item:hover{background:var(--modal-hover);border:4px solid var(--border-primary)}@media(max-width:768px){.modal-item{font-size:2.5rem}}\n"],
|
|
106
106
|
dependencies: [
|
|
107
107
|
{
|
|
108
108
|
kind: "ngmodule",
|
|
@@ -147,7 +147,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
147
147
|
host: { "[class.is-closing]": "closing" },
|
|
148
148
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
149
149
|
template: "<button (click)=\"closeModal()\" class=\"close-btn\" [class.is-closing]=\"closing\" type=\"button\" aria-label=\"Close menu\">✕</button>\n<div class=\"modal-content\" [class.is-closing]=\"closing\">\n\n @if (navItems?.length) {\n <ol>\n @for (item of navItems; track item.name) {\n <a [href]=\"item.url\" [linkType]=\"item.linkType\" (click)=\"closeModal()\">\n <li>\n <span class=\"modal-item\">{{ item.label }}</span>\n </li>\n </a>\n }\n </ol>\n }\n\n @if (socialItems?.length) {\n <div class=\"btn-group\">\n @for (social of socialItems; track social.label) {\n <a class=\"btn btn-link\" [href]=\"social.url\" [linkType]=\"social.linkType\">\n <ui-icon [name]=\"social.icon!\" [size]=\"17\" [color]=\"'var(--color-primary)'\"></ui-icon>\n {{ social.label }}\n </a>\n }\n </div>\n }\n</div>\n",
|
|
150
|
-
styles: [":host{position:fixed;inset:0;width:100vw;height:100vh;background:transparent;isolation:isolate;z-index:1000;display:flex;align-items:center;justify-content:center}:host:before{content:\"\";position:absolute;inset:0;z-index:0;background:var(--modal-bg);opacity:1;transform:scaleY(1);transform-origin:top center;transition:transform .36s cubic-bezier(.22,1,.36,1),opacity .36s cubic-bezier(.22,1,.36,1)}@starting-style{:host:before{opacity:0;transform:scaleY(0)}}:host.is-closing:before{transform-origin:top center;opacity:0;transform:scaleY(0);transition-delay:.66s}.modal-content{position:relative;z-index:1;opacity:1;transform:translateY(0) scale(1);transform-origin:center;transition:opacity .26s cubic-bezier(.22,1,.36,1) .18s}@starting-style{.modal-content{opacity:0}}.modal-content.is-closing{opacity:0;visibility:hidden;transition:opacity .26s cubic-bezier(.22,1,.36,1) .58s,visibility 1ms linear 1019ms}.modal-content.is-closing ol>a{opacity:0;transform:translateY(16px);transition-delay:.24s;transition-duration:.42s}.modal-content.is-closing .btn-group{opacity:0;transform:translateY(12px);transition-delay:0ms;transition-duration:.22s}@media(prefers-reduced-motion:reduce){.modal-content,.modal-content.is-closing,ol>a,.btn-group{transform:none;transition-duration:1ms;transition-delay:0ms}:host:before,:host.is-closing:before{opacity:0;transform:scaleY(0);transition-delay:0ms;transition-duration:1ms}}.close-btn{position:absolute;top:1rem;right:2rem;background:none;border:none;color:var(--close-btn);font-size:1.5rem;font-weight:700;cursor:pointer;z-index:1001;transition:opacity .18s cubic-bezier(.22,1,.36,1)}.close-btn.is-closing{opacity:0;pointer-events:none;transition-duration:.22s}ol{padding:0;margin:0;text-align:center;
|
|
150
|
+
styles: [":host{position:fixed;inset:0;width:100vw;height:100vh;background:transparent;isolation:isolate;z-index:1000;display:flex;align-items:center;justify-content:center}:host:before{content:\"\";position:absolute;inset:0;z-index:0;background:var(--modal-bg);opacity:1;transform:scaleY(1);transform-origin:top center;transition:transform .36s cubic-bezier(.22,1,.36,1),opacity .36s cubic-bezier(.22,1,.36,1)}@starting-style{:host:before{opacity:0;transform:scaleY(0)}}:host.is-closing:before{transform-origin:top center;opacity:0;transform:scaleY(0);transition-delay:.66s}.modal-content{position:relative;z-index:1;display:grid;justify-items:center;inline-size:fit-content;max-inline-size:calc(100vw - 2rem);opacity:1;transform:translateY(0) scale(1);transform-origin:center;transition:opacity .26s cubic-bezier(.22,1,.36,1) .18s}@starting-style{.modal-content{opacity:0}}.modal-content.is-closing{opacity:0;visibility:hidden;transition:opacity .26s cubic-bezier(.22,1,.36,1) .58s,visibility 1ms linear 1019ms}.modal-content.is-closing ol>a{opacity:0;transform:translateY(16px);transition-delay:.24s;transition-duration:.42s}.modal-content.is-closing .btn-group{opacity:0;transform:translateY(12px);transition-delay:0ms;transition-duration:.22s}@media(prefers-reduced-motion:reduce){.modal-content,.modal-content.is-closing,ol>a,.btn-group{transform:none;transition-duration:1ms;transition-delay:0ms}:host:before,:host.is-closing:before{opacity:0;transform:scaleY(0);transition-delay:0ms;transition-duration:1ms}}.close-btn{position:absolute;top:1rem;right:2rem;background:none;border:none;color:var(--close-btn);font-size:1.5rem;font-weight:700;cursor:pointer;z-index:1001;transition:opacity .18s cubic-bezier(.22,1,.36,1)}.close-btn.is-closing{opacity:0;pointer-events:none;transition-duration:.22s}ol{padding:0;margin:0;text-align:center;inline-size:fit-content;max-inline-size:100%;list-style:none;counter-reset:item}ol>a{display:block;opacity:1;transform:translateY(0);transition:opacity .42s cubic-bezier(.22,1,.36,1) .36s,transform .42s cubic-bezier(.22,1,.36,1) .36s}@starting-style{ol>a{opacity:0;transform:translateY(16px)}}.btn-group{margin-top:0;opacity:1;transform:translateY(0);transition:opacity .22s cubic-bezier(.22,1,.36,1) .8s,transform .22s cubic-bezier(.22,1,.36,1) .8s}@starting-style{.btn-group{opacity:0;transform:translateY(12px)}}li{cursor:pointer;text-align:start;counter-increment:item}a{text-decoration:none;text-transform:uppercase;color:var(--item-color)}li:before{content:counter(item,decimal-leading-zero) \". \"}.btn-link{text-transform:none}.modal-item{display:inline-block;padding:4px;border:4px solid transparent}.modal-item:hover{background:var(--modal-hover);border:4px solid var(--border-primary)}@media(max-width:768px){.modal-item{font-size:2.5rem}}\n"]
|
|
151
151
|
}]
|
|
152
152
|
}],
|
|
153
153
|
propDecorators: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lluc_llull-ui-lib-modals.mjs","names":[],"sources":["../../../projects/ui-lib/modals/lang-modal/lang-modal.component.ts","../../../projects/ui-lib/modals/lang-modal/lang-modal.component.html","../../../projects/ui-lib/modals/nav-modal/nav-modal.component.ts","../../../projects/ui-lib/modals/nav-modal/nav-modal.component.html"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { UiLibLangItemI } from '@lluc_llull/ui-lib/interfaces';\n\n@Component({\n selector: 'lib-lang-modal',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './lang-modal.component.html',\n styleUrl: './lang-modal.component.scss',\n host: {\n '[class.is-closing]': 'closing',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LangModalComponent {\n @Input() langs: UiLibLangItemI[] = [];\n @Input() closing = false;\n\n @Output() close = new EventEmitter<void>();\n @Output() select = new EventEmitter<UiLibLangItemI>();\n\n selectLang(lang: UiLibLangItemI) {\n this.select.emit(lang);\n }\n\n closeModal() {\n this.close.emit();\n }\n}\n","<button\n (click)=\"closeModal()\"\n class=\"close-btn\"\n [class.is-closing]=\"closing\"\n type=\"button\"\n aria-label=\"Close modal\"\n>\n ✕\n</button>\n<div class=\"modal-content\" [class.is-closing]=\"closing\">\n @if (langs && langs.length > 0) {\n <ol>\n @for (lang of langs; track lang.id) {\n <li (click)=\"selectLang(lang)\">\n <span class=\"modal-item\">{{ lang.label }}</span>\n </li>\n }\n </ol>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport { UiLibNavItemsI, UiLibSocialItemsI } from '@lluc_llull/ui-lib/interfaces';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-nav-modal',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective, UiIconComponent],\n templateUrl: './nav-modal.component.html',\n styleUrl: './nav-modal.component.scss',\n host: {\n '[class.is-closing]': 'closing',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NavModalComponent {\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n @Input() closing = false;\n\n @Output() close = new EventEmitter<void>();\n\n closeModal() {\n this.close.emit();\n }\n}\n","<button (click)=\"closeModal()\" class=\"close-btn\" [class.is-closing]=\"closing\" type=\"button\" aria-label=\"Close menu\">✕</button>\n<div class=\"modal-content\" [class.is-closing]=\"closing\">\n\n @if (navItems?.length) {\n <ol>\n @for (item of navItems; track item.name) {\n <a [href]=\"item.url\" [linkType]=\"item.linkType\" (click)=\"closeModal()\">\n <li>\n <span class=\"modal-item\">{{ item.label }}</span>\n </li>\n </a>\n }\n </ol>\n }\n\n @if (socialItems?.length) {\n <div class=\"btn-group\">\n @for (social of socialItems; track social.label) {\n <a class=\"btn btn-link\" [href]=\"social.url\" [linkType]=\"social.linkType\">\n <ui-icon [name]=\"social.icon!\" [size]=\"17\" [color]=\"'var(--color-primary)'\"></ui-icon>\n {{ social.label }}\n </a>\n }\n </div>\n }\n</div>\n"],"mappings":";;;;;AAeA,IAAa,qBAAb,MAAa,mBAAkB;CAClB,QAA0B,CAAA;CAC1B,UAAU;CAET,QAAQ,IAAI,aAAY;CACxB,SAAS,IAAI,aAAY;CAEnC,WAAW,MAAoB;EAC3B,KAAK,OAAO,KAAK,IAAI;CACzB;CAEA,aAAU;EACN,KAAK,MAAM,KAAI;CACnB;CAbS,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAkB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAlB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAkB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,OAAA;GAAA,SAAA;EAAA;EAAA,SAAA;GAAA,OAAA;GAAA,QAAA;EAAA;EAAA,MAAA,EAAA,YAAA,EAAA,oBAAA,UAAA,EAAA;EAAA,UAAA;EAAA,UCf/B;EAoBA,QAAA,CAAA,
|
|
1
|
+
{"version":3,"file":"lluc_llull-ui-lib-modals.mjs","names":[],"sources":["../../../projects/ui-lib/modals/lang-modal/lang-modal.component.ts","../../../projects/ui-lib/modals/lang-modal/lang-modal.component.html","../../../projects/ui-lib/modals/nav-modal/nav-modal.component.ts","../../../projects/ui-lib/modals/nav-modal/nav-modal.component.html"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { UiLibLangItemI } from '@lluc_llull/ui-lib/interfaces';\n\n@Component({\n selector: 'lib-lang-modal',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './lang-modal.component.html',\n styleUrl: './lang-modal.component.scss',\n host: {\n '[class.is-closing]': 'closing',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LangModalComponent {\n @Input() langs: UiLibLangItemI[] = [];\n @Input() closing = false;\n\n @Output() close = new EventEmitter<void>();\n @Output() select = new EventEmitter<UiLibLangItemI>();\n\n selectLang(lang: UiLibLangItemI) {\n this.select.emit(lang);\n }\n\n closeModal() {\n this.close.emit();\n }\n}\n","<button\n (click)=\"closeModal()\"\n class=\"close-btn\"\n [class.is-closing]=\"closing\"\n type=\"button\"\n aria-label=\"Close modal\"\n>\n ✕\n</button>\n<div class=\"modal-content\" [class.is-closing]=\"closing\">\n @if (langs && langs.length > 0) {\n <ol>\n @for (lang of langs; track lang.id) {\n <li (click)=\"selectLang(lang)\">\n <span class=\"modal-item\">{{ lang.label }}</span>\n </li>\n }\n </ol>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport { UiLibNavItemsI, UiLibSocialItemsI } from '@lluc_llull/ui-lib/interfaces';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-nav-modal',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective, UiIconComponent],\n templateUrl: './nav-modal.component.html',\n styleUrl: './nav-modal.component.scss',\n host: {\n '[class.is-closing]': 'closing',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NavModalComponent {\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n @Input() closing = false;\n\n @Output() close = new EventEmitter<void>();\n\n closeModal() {\n this.close.emit();\n }\n}\n","<button (click)=\"closeModal()\" class=\"close-btn\" [class.is-closing]=\"closing\" type=\"button\" aria-label=\"Close menu\">✕</button>\n<div class=\"modal-content\" [class.is-closing]=\"closing\">\n\n @if (navItems?.length) {\n <ol>\n @for (item of navItems; track item.name) {\n <a [href]=\"item.url\" [linkType]=\"item.linkType\" (click)=\"closeModal()\">\n <li>\n <span class=\"modal-item\">{{ item.label }}</span>\n </li>\n </a>\n }\n </ol>\n }\n\n @if (socialItems?.length) {\n <div class=\"btn-group\">\n @for (social of socialItems; track social.label) {\n <a class=\"btn btn-link\" [href]=\"social.url\" [linkType]=\"social.linkType\">\n <ui-icon [name]=\"social.icon!\" [size]=\"17\" [color]=\"'var(--color-primary)'\"></ui-icon>\n {{ social.label }}\n </a>\n }\n </div>\n }\n</div>\n"],"mappings":";;;;;AAeA,IAAa,qBAAb,MAAa,mBAAkB;CAClB,QAA0B,CAAA;CAC1B,UAAU;CAET,QAAQ,IAAI,aAAY;CACxB,SAAS,IAAI,aAAY;CAEnC,WAAW,MAAoB;EAC3B,KAAK,OAAO,KAAK,IAAI;CACzB;CAEA,aAAU;EACN,KAAK,MAAM,KAAI;CACnB;CAbS,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAkB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAlB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAkB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,OAAA;GAAA,SAAA;EAAA;EAAA,SAAA;GAAA,OAAA;GAAA,QAAA;EAAA;EAAA,MAAA,EAAA,YAAA,EAAA,oBAAA,UAAA,EAAA;EAAA,UAAA;EAAA,UCf/B;EAoBA,QAAA,CAAA,2vEAAA;EAAA,cAAA,CAAA;GAAA,MAAA;GAAA,MDbc;EAAY,CAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAQb,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAkB,YAAA,CAAA;EAX9B,MAAA;EACa,MAAA,CAAA;GAAA,UAAA;GAAgB,YACd;GAAI,SACP,CAAC,YAAY;GAAC,MAGjB,EACF,sBAAsB,UACzB;GAAA,iBACgB,wBAAwB;GAAM,UAAA;GAAA,QAAA,CAAA,2vEAAA;EAAA,CAAA;;;E,UAG9C,MAAA,M;E,YACA,MAAA,M;E,UAEA,MAAA,O;E,WACA,MAAA,O;;;AEHL,IAAa,oBAAb,MAAa,kBAAiB;CACjB;CACA;CACA,UAAU;CAET,QAAQ,IAAI,aAAY;CAElC,aAAU;EACN,KAAK,MAAM,KAAI;CACnB;CATS,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAiB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAjB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAiB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,UAAA;GAAA,aAAA;GAAA,SAAA;EAAA;EAAA,SAAA,EAAA,OAAA,QAAA;EAAA,MAAA,EAAA,YAAA,EAAA,oBAAA,UAAA,EAAA;EAAA,UAAA;EAAA,UCjB9B;EA0BA,QAAA,CAAA,ouFAAA;EAAA,cAAA;GAAA;IAAA,MAAA;IAAA,MDjBc;GAAY;GAAA;IAAA,MAAA;IAAA,MAAE;IAAiB,UAAA;IAAA,QAAA,CAAA,YAAA,MAAA;IAAA,SAAA,CAAA,eAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAe,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;IAAA;GAAA;EAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAQjD,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAiB,YAAA,CAAA;EAX7B,MAAA;EACa,MAAA,CAAA;GAAA,UAAA;GAAe,YACb;GAAI,SACP;IAAC;IAAc;IAAmB;GAAe;GAAC,MAGrD,EACF,sBAAsB,UACzB;GAAA,iBACgB,wBAAwB;GAAM,UAAA;GAAA,QAAA,CAAA,ouFAAA;EAAA,CAAA;;;E,aAG9C,MAAA,M;E,gBACA,MAAA,M;E,YACA,MAAA,M;E,UAEA,MAAA,O"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lluc_llull/ui-lib",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.36.0",
|
|
4
4
|
"description": "Angular UI component library",
|
|
5
5
|
"author": "lluc_llull",
|
|
6
6
|
"license": "MIT",
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"peerDependencies": {
|
|
15
15
|
"@angular/common": "^22.0.0",
|
|
16
16
|
"@angular/core": "^22.0.0",
|
|
17
|
+
"@angular/forms": "^22.0.0",
|
|
17
18
|
"lucide-angular": "^0.577.0",
|
|
18
19
|
"swiper": "^12.0.0",
|
|
19
20
|
"three": "^0.183.0",
|
|
@@ -147,6 +148,14 @@
|
|
|
147
148
|
"types": "./types/lluc_llull-ui-lib-footers-visual-footer.d.ts",
|
|
148
149
|
"default": "./fesm2022/lluc_llull-ui-lib-footers-visual-footer.mjs"
|
|
149
150
|
},
|
|
151
|
+
"./forms": {
|
|
152
|
+
"types": "./types/lluc_llull-ui-lib-forms.d.ts",
|
|
153
|
+
"default": "./fesm2022/lluc_llull-ui-lib-forms.mjs"
|
|
154
|
+
},
|
|
155
|
+
"./forms/contact-form": {
|
|
156
|
+
"types": "./types/lluc_llull-ui-lib-forms-contact-form.d.ts",
|
|
157
|
+
"default": "./fesm2022/lluc_llull-ui-lib-forms-contact-form.mjs"
|
|
158
|
+
},
|
|
150
159
|
"./headers": {
|
|
151
160
|
"types": "./types/lluc_llull-ui-lib-headers.d.ts",
|
|
152
161
|
"default": "./fesm2022/lluc_llull-ui-lib-headers.mjs"
|
package/src/lib/styles/main.css
CHANGED
|
@@ -83,6 +83,8 @@
|
|
|
83
83
|
background: transparent;
|
|
84
84
|
border-radius: 0;
|
|
85
85
|
color: var(--button-header-text);
|
|
86
|
+
border: 4px solid var(--border-primary);
|
|
87
|
+
background: var(--button-header-bg);
|
|
86
88
|
}
|
|
87
89
|
.btn-header:hover {
|
|
88
90
|
background: var(--button-header-bg-hover);
|
|
@@ -581,6 +583,7 @@ body.show-grid .debug-grid-overlay {
|
|
|
581
583
|
--content-bg-light: #0f1117;
|
|
582
584
|
--content-bg-dark: #f5f5f5;
|
|
583
585
|
--content-overlay: rgba(0, 0, 0, 0.6);
|
|
586
|
+
--content-highlight: #EDCE14;
|
|
584
587
|
--text-primary: #e2e8f0;
|
|
585
588
|
--text-primary-raw: 30, 37, 48;
|
|
586
589
|
--text-primary-10: rgba(var(--text-primary-raw), 0.1);
|
|
@@ -605,20 +608,52 @@ body.show-grid .debug-grid-overlay {
|
|
|
605
608
|
--text-secondary-90: rgba(var(--text-secondary-raw), 0.9);
|
|
606
609
|
--text-disabled: rgba(226, 232, 240, 0.3);
|
|
607
610
|
--text-inverse: #0f1117;
|
|
611
|
+
--text-inverse-raw: 12, 12, 12;
|
|
612
|
+
--text-inverse-10: rgba(var(--text-inverse-raw), 0.1);
|
|
613
|
+
--text-inverse-20: rgba(var(--text-inverse-raw), 0.2);
|
|
614
|
+
--text-inverse-30: rgba(var(--text-inverse-raw), 0.3);
|
|
615
|
+
--text-inverse-40: rgba(var(--text-inverse-raw), 0.4);
|
|
616
|
+
--text-inverse-50: rgba(var(--text-inverse-raw), 0.5);
|
|
617
|
+
--text-inverse-60: rgba(var(--text-inverse-raw), 0.6);
|
|
618
|
+
--text-inverse-70: rgba(var(--text-inverse-raw), 0.7);
|
|
619
|
+
--text-inverse-80: rgba(var(--text-inverse-raw), 0.8);
|
|
620
|
+
--text-inverse-90: rgba(var(--text-inverse-raw), 0.9);
|
|
608
621
|
--surface-primary: #1a1d21;
|
|
609
622
|
--surface-secondary: #22262d;
|
|
610
623
|
--surface-tertiary: #2a2e36;
|
|
611
624
|
--modal-bg: var(--surface-primary);
|
|
625
|
+
--modal-hover: var(--surface-secondary);
|
|
612
626
|
--close-btn: var(--text-primary);
|
|
613
627
|
--item-text: var(--text-primary);
|
|
614
628
|
--border-primary: #2a2e36;
|
|
629
|
+
--border-primary-raw: 12, 12, 12;
|
|
630
|
+
--border-primary-10: rgba(var(--border-primary-raw), 0.1);
|
|
631
|
+
--border-primary-20: rgba(var(--border-primary-raw), 0.2);
|
|
632
|
+
--border-primary-30: rgba(var(--border-primary-raw), 0.3);
|
|
633
|
+
--border-primary-40: rgba(var(--border-primary-raw), 0.4);
|
|
634
|
+
--border-primary-50: rgba(var(--border-primary-raw), 0.5);
|
|
635
|
+
--border-primary-60: rgba(var(--border-primary-raw), 0.6);
|
|
636
|
+
--border-primary-70: rgba(var(--border-primary-raw), 0.7);
|
|
637
|
+
--border-primary-80: rgba(var(--border-primary-raw), 0.8);
|
|
638
|
+
--border-primary-90: rgba(var(--border-primary-raw), 0.9);
|
|
615
639
|
--border-secondary: #343840;
|
|
640
|
+
--border-secondary-raw: 12, 12, 12;
|
|
641
|
+
--border-secondary-10: rgba(var(--border-secondary-raw), 0.1);
|
|
642
|
+
--border-secondary-20: rgba(var(--border-secondary-raw), 0.2);
|
|
643
|
+
--border-secondary-30: rgba(var(--border-secondary-raw), 0.3);
|
|
644
|
+
--border-secondary-40: rgba(var(--border-secondary-raw), 0.4);
|
|
645
|
+
--border-secondary-50: rgba(var(--border-secondary-raw), 0.5);
|
|
646
|
+
--border-secondary-60: rgba(var(--border-secondary-raw), 0.6);
|
|
647
|
+
--border-secondary-70: rgba(var(--border-secondary-raw), 0.7);
|
|
648
|
+
--border-secondary-80: rgba(var(--border-secondary-raw), 0.8);
|
|
649
|
+
--border-secondary-90: rgba(var(--border-secondary-raw), 0.9);
|
|
616
650
|
--border-focus: #60a5fa;
|
|
617
651
|
--divider: rgba(226, 232, 240, 0.08);
|
|
618
652
|
--progress-color: var(--text-primary);
|
|
619
653
|
--progress-bg: #60a5fa;
|
|
620
654
|
--tag-color: var(--text-primary);
|
|
621
655
|
--tag-bg: #1e3a5f;
|
|
656
|
+
--tag-border: #60a5fa;
|
|
622
657
|
--button-primary-bg: #007bff;
|
|
623
658
|
--button-primary-text: #ffffff;
|
|
624
659
|
--button-primary-bg-hover: #1a6fd4;
|
|
@@ -636,6 +671,7 @@ body.show-grid .debug-grid-overlay {
|
|
|
636
671
|
--button-header-bg: transparent;
|
|
637
672
|
--button-header-text: var(--text-primary);
|
|
638
673
|
--button-header-bg-hover: rgba(226, 232, 240, 0.06);
|
|
674
|
+
--button-header-bg-scrolled-hover: #ffb300b9;
|
|
639
675
|
--button-header-text-hover: var(--text-primary);
|
|
640
676
|
}
|
|
641
677
|
|
|
@@ -685,6 +721,7 @@ body.show-grid .debug-grid-overlay {
|
|
|
685
721
|
--content-bg-light: #f5f5f5;
|
|
686
722
|
--content-bg-dark: #0f1117;
|
|
687
723
|
--content-overlay: rgba(0, 0, 0, 0.35);
|
|
724
|
+
--content-highlight: #EDCE14;
|
|
688
725
|
--text-primary: #1e2530;
|
|
689
726
|
--text-primary-raw: 30, 37, 48;
|
|
690
727
|
--text-primary-10: rgba(var(--text-primary-raw), 0.1);
|
|
@@ -709,20 +746,52 @@ body.show-grid .debug-grid-overlay {
|
|
|
709
746
|
--text-secondary-90: rgba(var(--text-secondary-raw), 0.9);
|
|
710
747
|
--text-disabled: rgba(30, 37, 48, 0.3);
|
|
711
748
|
--text-inverse: #f5f3ef;
|
|
749
|
+
--text-inverse-raw: 255, 255, 255;
|
|
750
|
+
--text-inverse-10: rgba(var(--text-inverse-raw), 0.1);
|
|
751
|
+
--text-inverse-20: rgba(var(--text-inverse-raw), 0.2);
|
|
752
|
+
--text-inverse-30: rgba(var(--text-inverse-raw), 0.3);
|
|
753
|
+
--text-inverse-40: rgba(var(--text-inverse-raw), 0.4);
|
|
754
|
+
--text-inverse-50: rgba(var(--text-inverse-raw), 0.5);
|
|
755
|
+
--text-inverse-60: rgba(var(--text-inverse-raw), 0.6);
|
|
756
|
+
--text-inverse-70: rgba(var(--text-inverse-raw), 0.7);
|
|
757
|
+
--text-inverse-80: rgba(var(--text-inverse-raw), 0.8);
|
|
758
|
+
--text-inverse-90: rgba(var(--text-inverse-raw), 0.9);
|
|
712
759
|
--surface-primary: #edeae4;
|
|
713
760
|
--surface-secondary: #e4e0d8;
|
|
714
761
|
--surface-tertiary: #d8d3c9;
|
|
715
762
|
--modal-bg: var(--surface-primary);
|
|
763
|
+
--modal-hover: var(--surface-secondary);
|
|
716
764
|
--close-btn: var(--text-primary);
|
|
717
765
|
--item-text: var(--text-primary);
|
|
718
766
|
--border-primary: #d8d3c9;
|
|
719
|
-
--border-
|
|
767
|
+
--border-primary-raw: 12, 12, 12;
|
|
768
|
+
--border-primary-10: rgba(var(--border-primary-raw), 0.1);
|
|
769
|
+
--border-primary-20: rgba(var(--border-primary-raw), 0.2);
|
|
770
|
+
--border-primary-30: rgba(var(--border-primary-raw), 0.3);
|
|
771
|
+
--border-primary-40: rgba(var(--border-primary-raw), 0.4);
|
|
772
|
+
--border-primary-50: rgba(var(--border-primary-raw), 0.5);
|
|
773
|
+
--border-primary-60: rgba(var(--border-primary-raw), 0.6);
|
|
774
|
+
--border-primary-70: rgba(var(--border-primary-raw), 0.7);
|
|
775
|
+
--border-primary-80: rgba(var(--border-primary-raw), 0.8);
|
|
776
|
+
--border-primary-90: rgba(var(--border-primary-raw), 0.9);
|
|
777
|
+
--border-secondary: #343840;
|
|
778
|
+
--border-secondary-raw: 12, 12, 12;
|
|
779
|
+
--border-secondary-10: rgba(var(--border-secondary-raw), 0.1);
|
|
780
|
+
--border-secondary-20: rgba(var(--border-secondary-raw), 0.2);
|
|
781
|
+
--border-secondary-30: rgba(var(--border-secondary-raw), 0.3);
|
|
782
|
+
--border-secondary-40: rgba(var(--border-secondary-raw), 0.4);
|
|
783
|
+
--border-secondary-50: rgba(var(--border-secondary-raw), 0.5);
|
|
784
|
+
--border-secondary-60: rgba(var(--border-secondary-raw), 0.6);
|
|
785
|
+
--border-secondary-70: rgba(var(--border-secondary-raw), 0.7);
|
|
786
|
+
--border-secondary-80: rgba(var(--border-secondary-raw), 0.8);
|
|
787
|
+
--border-secondary-90: rgba(var(--border-secondary-raw), 0.9);
|
|
720
788
|
--border-focus: #0066dd;
|
|
721
789
|
--divider: rgba(30, 37, 48, 0.1);
|
|
722
790
|
--progress-color: var(--text-primary);
|
|
723
791
|
--progress-bg: #0066dd;
|
|
724
792
|
--tag-color: #f5f3ef;
|
|
725
793
|
--tag-bg: #0066dd;
|
|
794
|
+
--tag-border: #60a5fa;
|
|
726
795
|
--button-primary-bg: #0066dd;
|
|
727
796
|
--button-primary-text: #ffffff;
|
|
728
797
|
--button-primary-bg-hover: #0052b3;
|
|
@@ -740,6 +809,7 @@ body.show-grid .debug-grid-overlay {
|
|
|
740
809
|
--button-header-bg: transparent;
|
|
741
810
|
--button-header-text: var(--text-primary);
|
|
742
811
|
--button-header-bg-hover: rgba(30, 37, 48, 0.06);
|
|
812
|
+
--button-header-bg-scrolled-hover: #ffb300b9;
|
|
743
813
|
--button-header-text-hover: var(--text-primary);
|
|
744
814
|
}
|
|
745
815
|
|