@lluc_llull/ui-lib 0.12.1 → 0.12.2
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/esm2022/lib/components/core/footers/index.mjs +5 -0
- package/esm2022/lib/components/core/footers/legal-footer/index.mjs +3 -0
- package/esm2022/lib/components/core/{legal-footer → footers/legal-footer}/legal-footer.component.mjs +2 -2
- package/esm2022/lib/components/core/footers/legal-footer/legal-footer.interface.mjs +2 -0
- package/esm2022/lib/components/core/footers/links-footer/index.mjs +3 -0
- package/esm2022/lib/components/core/{links-footer → footers/links-footer}/links-footer.component.mjs +3 -3
- package/esm2022/lib/components/core/footers/links-footer/links-footer.interface.mjs +2 -0
- package/esm2022/lib/components/core/footers/social-footer/index.mjs +3 -0
- package/esm2022/lib/components/core/{social-footer → footers/social-footer}/social-footer.component.mjs +3 -3
- package/esm2022/lib/components/core/footers/social-footer/social-footer.interface.mjs +2 -0
- package/esm2022/lib/components/core/footers/visual-footer/index.mjs +3 -0
- package/esm2022/lib/components/core/footers/visual-footer/visual-footer.component.mjs +29 -0
- package/esm2022/lib/components/core/footers/visual-footer/visual-footer.interface.mjs +2 -0
- package/esm2022/lib/components/core/headers/header-clear/header-clear.component.mjs +59 -0
- package/esm2022/lib/components/core/headers/header-clear/header-clear.interface.mjs +2 -0
- package/esm2022/lib/components/core/headers/header-clear/index.mjs +3 -0
- package/esm2022/lib/components/core/{header-mobile → headers/header-mobile}/header-mobile.component.mjs +4 -5
- package/esm2022/lib/components/core/headers/header-mobile/header-mobile.interface.mjs +2 -0
- package/esm2022/lib/components/core/headers/header-mobile/index.mjs +3 -0
- package/esm2022/lib/components/core/headers/index.mjs +3 -0
- package/esm2022/lib/components/core/index.mjs +5 -11
- package/esm2022/lib/components/core/modals/index.mjs +3 -0
- package/esm2022/lib/components/core/modals/lang-modal/index.mjs +3 -0
- package/esm2022/lib/components/core/{lang-modal → modals/lang-modal}/lang-modal.component.mjs +2 -2
- package/esm2022/lib/components/core/modals/lang-modal/lang-modal.interface.mjs +2 -0
- package/esm2022/lib/components/core/modals/nav-modal/index.mjs +3 -0
- package/esm2022/lib/components/core/{nav-modal → modals/nav-modal}/nav-modal.component.mjs +2 -2
- package/esm2022/lib/components/core/modals/nav-modal/nav-modal.interface.mjs +2 -0
- package/esm2022/lib/components/core/{category-progress → sections/category-progress}/category-progress.component.mjs +1 -1
- package/esm2022/lib/components/core/sections/category-progress/category-progress.interface.mjs +2 -0
- package/esm2022/lib/components/core/sections/category-progress/index.mjs +3 -0
- package/esm2022/lib/components/core/{hero-section → sections/hero-section}/hero-section.component.mjs +2 -2
- package/esm2022/lib/components/core/sections/hero-section/hero-section.interface.mjs +2 -0
- package/esm2022/lib/components/core/sections/hero-section/hero-section.stories.mjs +25 -0
- package/esm2022/lib/components/core/sections/hero-section/index.mjs +4 -0
- package/esm2022/lib/components/core/sections/index.mjs +4 -0
- package/esm2022/lib/components/core/sections/section-intro/index.mjs +3 -0
- package/esm2022/lib/components/core/{section-intro → sections/section-intro}/section-intro.component.mjs +2 -2
- package/esm2022/lib/components/core/sections/section-intro/section-intro.interface.mjs +2 -0
- package/fesm2022/lluc_llull-ui-lib.mjs +179 -154
- package/fesm2022/lluc_llull-ui-lib.mjs.map +1 -1
- package/lib/components/core/footers/index.d.ts +4 -0
- package/lib/components/core/{legal-footer → footers/legal-footer}/legal-footer.component.d.ts +1 -1
- package/lib/components/core/{legal-footer → footers/legal-footer}/legal-footer.interface.d.ts +1 -1
- package/lib/components/core/{links-footer → footers/links-footer}/links-footer.component.d.ts +1 -1
- package/lib/components/core/{links-footer → footers/links-footer}/links-footer.interface.d.ts +1 -1
- package/lib/components/core/{social-footer → footers/social-footer}/social-footer.component.d.ts +1 -1
- package/lib/components/core/{social-footer → footers/social-footer}/social-footer.interface.d.ts +1 -1
- package/lib/components/core/footers/visual-footer/index.d.ts +2 -0
- package/lib/components/core/footers/visual-footer/visual-footer.component.d.ts +14 -0
- package/lib/components/core/footers/visual-footer/visual-footer.interface.d.ts +11 -0
- package/lib/components/core/{header-clear → headers/header-clear}/header-clear.component.d.ts +2 -4
- package/lib/components/core/headers/header-clear/header-clear.interface.d.ts +9 -0
- package/lib/components/core/{header-mobile → headers/header-mobile}/header-mobile.component.d.ts +4 -4
- package/lib/components/core/headers/header-mobile/header-mobile.interface.d.ts +9 -0
- package/lib/components/core/headers/index.d.ts +2 -0
- package/lib/components/core/index.d.ts +4 -10
- package/lib/components/core/modals/index.d.ts +2 -0
- package/lib/components/core/{lang-modal → modals/lang-modal}/lang-modal.component.d.ts +1 -1
- package/lib/components/core/{nav-modal → modals/nav-modal}/nav-modal.component.d.ts +1 -1
- package/lib/components/core/{nav-modal → modals/nav-modal}/nav-modal.interface.d.ts +1 -1
- package/lib/components/core/{hero-section → sections/hero-section}/hero-section.component.d.ts +1 -1
- package/lib/components/core/{hero-section → sections/hero-section}/hero-section.interface.d.ts +1 -1
- package/lib/components/core/sections/index.d.ts +3 -0
- package/lib/components/core/{section-intro → sections/section-intro}/section-intro.component.d.ts +1 -1
- package/package.json +1 -1
- package/esm2022/lib/components/core/category-progress/category-progress.interface.mjs +0 -2
- package/esm2022/lib/components/core/category-progress/index.mjs +0 -3
- package/esm2022/lib/components/core/header-clear/header-clear.component.mjs +0 -60
- package/esm2022/lib/components/core/header-clear/header-clear.interface.mjs +0 -2
- package/esm2022/lib/components/core/header-clear/index.mjs +0 -3
- package/esm2022/lib/components/core/header-mobile/header-mobile.interface.mjs +0 -2
- package/esm2022/lib/components/core/header-mobile/index.mjs +0 -3
- package/esm2022/lib/components/core/hero-section/hero-section.interface.mjs +0 -2
- package/esm2022/lib/components/core/hero-section/hero-section.stories.mjs +0 -25
- package/esm2022/lib/components/core/hero-section/index.mjs +0 -4
- package/esm2022/lib/components/core/lang-modal/index.mjs +0 -3
- package/esm2022/lib/components/core/lang-modal/lang-modal.interface.mjs +0 -2
- package/esm2022/lib/components/core/legal-footer/index.mjs +0 -3
- package/esm2022/lib/components/core/legal-footer/legal-footer.interface.mjs +0 -2
- package/esm2022/lib/components/core/links-footer/index.mjs +0 -3
- package/esm2022/lib/components/core/links-footer/links-footer.interface.mjs +0 -2
- package/esm2022/lib/components/core/nav-modal/index.mjs +0 -3
- package/esm2022/lib/components/core/nav-modal/nav-modal.interface.mjs +0 -2
- package/esm2022/lib/components/core/section-intro/index.mjs +0 -3
- package/esm2022/lib/components/core/section-intro/section-intro.interface.mjs +0 -2
- package/esm2022/lib/components/core/social-footer/index.mjs +0 -3
- package/esm2022/lib/components/core/social-footer/social-footer.interface.mjs +0 -2
- package/lib/components/core/header-clear/header-clear.interface.d.ts +0 -11
- package/lib/components/core/header-mobile/header-mobile.interface.d.ts +0 -11
- /package/lib/components/core/{legal-footer → footers/legal-footer}/index.d.ts +0 -0
- /package/lib/components/core/{links-footer → footers/links-footer}/index.d.ts +0 -0
- /package/lib/components/core/{social-footer → footers/social-footer}/index.d.ts +0 -0
- /package/lib/components/core/{header-clear → headers/header-clear}/index.d.ts +0 -0
- /package/lib/components/core/{header-mobile → headers/header-mobile}/index.d.ts +0 -0
- /package/lib/components/core/{lang-modal → modals/lang-modal}/index.d.ts +0 -0
- /package/lib/components/core/{lang-modal → modals/lang-modal}/lang-modal.interface.d.ts +0 -0
- /package/lib/components/core/{nav-modal → modals/nav-modal}/index.d.ts +0 -0
- /package/lib/components/core/{category-progress → sections/category-progress}/category-progress.component.d.ts +0 -0
- /package/lib/components/core/{category-progress → sections/category-progress}/category-progress.interface.d.ts +0 -0
- /package/lib/components/core/{category-progress → sections/category-progress}/index.d.ts +0 -0
- /package/lib/components/core/{hero-section → sections/hero-section}/hero-section.stories.d.ts +0 -0
- /package/lib/components/core/{hero-section → sections/hero-section}/index.d.ts +0 -0
- /package/lib/components/core/{section-intro → sections/section-intro}/index.d.ts +0 -0
- /package/lib/components/core/{section-intro → sections/section-intro}/section-intro.interface.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lluc_llull-ui-lib.mjs","sources":["../../../projects/ui-lib/src/lib/Enum/link-type.enum.ts","../../../projects/ui-lib/src/lib/directives/link-type.directive.ts","../../../projects/ui-lib/src/lib/components/core/hero-section/hero-section.component.ts","../../../projects/ui-lib/src/lib/components/core/hero-section/hero-section.component.html","../../../projects/ui-lib/src/lib/components/core/hero-section/hero-section.stories.ts","../../../projects/ui-lib/src/lib/directives/swiper.directive.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/lang-modal.mapper.ts","../../../projects/ui-lib/src/lib/components/core/lang-modal/lang-modal.component.ts","../../../projects/ui-lib/src/lib/components/core/lang-modal/lang-modal.component.html","../../../projects/ui-lib/src/lib/components/core/nav-modal/nav-modal.component.ts","../../../projects/ui-lib/src/lib/components/core/nav-modal/nav-modal.component.html","../../../projects/ui-lib/src/lib/services/theme/theme.service.ts","../../../projects/ui-lib/src/lib/components/core/header-clear/header-clear.component.ts","../../../projects/ui-lib/src/lib/components/core/header-clear/header-clear.component.html","../../../projects/ui-lib/src/lib/components/core/header-mobile/header-mobile.component.ts","../../../projects/ui-lib/src/lib/components/core/header-mobile/header-mobile.component.html","../../../projects/ui-lib/src/lib/components/core/section-intro/section-intro.component.ts","../../../projects/ui-lib/src/lib/components/core/section-intro/section-intro.component.html","../../../projects/ui-lib/src/lib/components/core/category-progress/category-progress.component.ts","../../../projects/ui-lib/src/lib/components/core/category-progress/category-progress.component.html","../../../projects/ui-lib/src/lib/components/core/legal-footer/legal-footer.component.ts","../../../projects/ui-lib/src/lib/components/core/legal-footer/legal-footer.component.html","../../../projects/ui-lib/src/lib/components/core/links-footer/links-footer.component.ts","../../../projects/ui-lib/src/lib/components/core/links-footer/links-footer.component.html","../../../projects/ui-lib/src/lib/modules/icons/icon.module.ts","../../../projects/ui-lib/src/lib/components/shared/ui-icon/ui-icon.component.ts","../../../projects/ui-lib/src/lib/components/shared/ui-icon/ui-icon.component.html","../../../projects/ui-lib/src/lib/components/core/social-footer/social-footer.component.ts","../../../projects/ui-lib/src/lib/components/core/social-footer/social-footer.component.html","../../../projects/ui-lib/src/lib/components/effects/dynamic-background/effects/sphere-deform/sphere-deform.effect.ts","../../../projects/ui-lib/src/lib/components/effects/dynamic-background/effects/effect-registry.ts","../../../projects/ui-lib/src/lib/components/effects/dynamic-background/dynamic-background.component.ts","../../../projects/ui-lib/src/lib/components/effects/dynamic-background/dynamic-background.component.html","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/category-progress.mapper.ts","../../../projects/ui-lib/src/lib/utils/utils.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/nav-modal.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/header-clear.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/hero-section.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/legal-footer.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/links-footer.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/section-intro.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/social-footer.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/visual-footer.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/index.ts","../../../projects/ui-lib/src/lib/services/mapper/mapper.service.ts","../../../projects/ui-lib/src/lib/services/screen-sizer/screen-sizer.service.ts","../../../projects/ui-lib/src/public-api.ts","../../../projects/ui-lib/src/lluc_llull-ui-lib.ts"],"sourcesContent":["export enum LinkType {\n Internal = 'internal',\n External = 'external',\n Anchor = 'anchor',\n Pdf = 'pdf',\n NoLink = 'nolink',\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, EventEmitter, HostListener, inject, Input, OnInit, Output, PLATFORM_ID } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LinkType } from '../Enum/link-type.enum';\n\n@Directive({\n selector: '[linkType]',\n standalone: true,\n})\nexport class LinkTypeDirective implements OnInit {\n @Input() linkType?: LinkType;\n @Input() href?: string;\n @Output() anchorClicked = new EventEmitter<void>();\n\n private readonly platformId = inject(PLATFORM_ID);\n\n constructor(private readonly router: Router, private readonly elRef: ElementRef) {}\n\n ngOnInit(): void {\n this.setupLinkAttributes();\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event): void {\n if (!this.linkType || !this.href) {\n this.disableLink();\n return;\n }\n\n event.preventDefault();\n\n switch (this.linkType) {\n case 'internal':\n this.navigateInternal(this.href);\n break;\n case 'external':\n case 'pdf':\n this.openExternal(this.href);\n break;\n case 'anchor':\n this.scrollToAnchor(this.href);\n break;\n case 'nolink':\n this.disableLink();\n break;\n default:\n console.warn(`Unsupported linkType: ${this.linkType}`);\n }\n }\n\n private setupLinkAttributes() {\n if (!this.linkType || !this.href) {\n this.disableLink();\n return;\n }\n\n this.elRef.nativeElement.setAttribute('href', this.href);\n\n if (this.linkType === 'external') {\n this.elRef.nativeElement.setAttribute('rel', 'nofollow');\n }\n }\n\n private navigateInternal(url: string) {\n const cleanedUrl = url.trim().replace(/\\/+$/, '');\n this.anchorClicked.emit();\n this.router.navigateByUrl('/' + cleanedUrl);\n }\n\n private openExternal(url: string) {\n if (isPlatformBrowser(this.platformId)) {\n window.open(url, '_blank');\n }\n }\n\n private scrollToAnchor(id: string) {\n if (isPlatformBrowser(this.platformId)) {\n const el = document.getElementById(id);\n if (el) {\n const yOffset = -160;\n const y = el.getBoundingClientRect().top + window.scrollY + yOffset;\n window.scrollTo({ top: y, behavior: 'smooth' });\n this.anchorClicked.emit();\n } else {\n console.warn(`Anchor \"${id}\" not found`);\n }\n }\n }\n\n private disableLink() {\n const element = this.elRef.nativeElement;\n const parentLi = element.closest('li');\n const isInMenu = parentLi?.classList.contains('menu-item-has-children');\n\n if (!isInMenu) {\n element.removeAttribute('href');\n element.setAttribute('aria-disabled', 'true');\n element.setAttribute('tabindex', '-1');\n element.style.cursor = 'default';\n element.style.pointerEvents = 'none';\n }\n }\n}\nexport { LinkType };\n\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { LinkTypeDirective } from '../../../directives/link-type.directive';\nimport { UiLibButtonI } from '../../../interfaces/ui-lib-button.interface';\n\n@Component({\n selector: 'lib-hero-section',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './hero-section.component.html',\n styleUrl: './hero-section.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeroSectionComponent {\n @Input() pretitle?: string;\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() text?: string;\n @Input() buttons?: UiLibButtonI[];\n @Input() highlight?: string;\n}\n","<div class=\"hero-section\">\n @if (pretitle) {\n <h2 class=\"pretitle\">{{ pretitle }}</h2>\n }\n @if (title) {\n <h1 class=\"title\">\n @if (highlight && title.includes(highlight)) {\n {{ title.replace(highlight, '') }}\n <span class=\"highlight-text\">\n {{ highlight }}\n <div class=\"wave-wrapper\">\n <div class=\"wave\"></div>\n </div>\n </span>\n } @else {\n {{ title }}\n }\n </h1>\n }\n @if (subtitle) {\n <h2 class=\"subtitle\">{{ subtitle }}</h2>\n }\n @if (text) {\n <p class=\"text\">{{ text }}</p>\n }\n @if (buttons && buttons.length > 0) {\n <div class=\"buttons\">\n @for (button of buttons; track $index) {\n <a class=\"btn btn-link\" [href]=\"button.url\" [linkType]=\"button.linkType\">\n <span>{{ button.icon }}</span>{{ button.label }}\n </a>\n }\n </div>\n }\n</div>\n","import { LinkType } from \"../../../Enum/link-type.enum\";\nimport { HeroSectionComponent } from \"./hero-section.component\";\nimport { Meta, StoryObj } from '@storybook/angular';\n\nexport default {\n title: 'Core/HeroSection',\n component: HeroSectionComponent,\n tags: ['autodocs'],\n argTypes: {\n title: { control: 'text' },\n subtitle: { control: 'text' },\n text: { control: 'text' },\n buttons: { control: 'object' },\n },\n} as Meta<HeroSectionComponent>;\n\ntype Story = StoryObj<HeroSectionComponent>;\n\nexport const Default: Story = {\n args: {\n title: 'Título de ejemplo',\n subtitle: 'Subtítulo de ejemplo',\n text: 'Texto descriptivo de ejemplo para el Hero Section.',\n buttons: [\n { label: 'Botón 1', url: 'https://www.google.com', linkType: LinkType.External },\n { label: 'Botón 2', url: 'https://www.google.com', linkType: LinkType.External }\n ]\n }\n};","import {\n AfterViewInit,\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n} from '@angular/core';\nimport Swiper from 'swiper';\nimport { Navigation, Pagination, Autoplay } from 'swiper/modules';\n\nSwiper.use([Navigation, Pagination, Autoplay]);\n\n@Directive({\n selector: '[appSwiper]',\n standalone: true,\n})\nexport class SwiperDirective implements AfterViewInit, OnDestroy {\n @Input() swiperConfig: any;\n\n private swiperInstance?: Swiper;\n\n constructor(private el: ElementRef) {}\n\n ngAfterViewInit(): void {\n this.swiperInstance = new Swiper(this.el.nativeElement, {\n spaceBetween: 16,\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n pagination: { clickable: true },\n breakpoints: {\n 0: { slidesPerView: 1 }, // móviles\n 480: { slidesPerView: 1 }, // small tablets\n 768: { slidesPerView: 3 }, // tablets\n 1024: { slidesPerView: 4 }, // laptops\n 1280: { slidesPerView: 7 }, // desktop → máximo 7\n },\n ...this.swiperConfig,\n });\n }\n\n ngOnDestroy(): void {\n this.swiperInstance?.destroy(true, true);\n }\n}\n","export const mapLangModal = (props: any[], currentLang: string = 'es') => {\n const safeProps = Array.isArray(props) ? props : [];\n const allTranslations = safeProps.flatMap(lang => Array.isArray(lang.lang_translations) ? lang.lang_translations : []);\n return safeProps.map((lang: any) => {\n const found = allTranslations.find(\n (t: any) => t.lang_code === lang.code && t.target_lang_code === currentLang\n );\n const label = found?.label || lang.code;\n return {\n id: lang.id,\n code: lang.code,\n label\n };\n });\n};","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Inject, Optional } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { UiLibLangItemI } from '../../../interfaces/ui-lib-lang-item.interface';\nimport { mapLangModal } from '../../../services/mapper/component-mappers/lang-modal.mapper';\n\ninterface LangModalData {\n langs: any[];\n currentLang: string;\n}\n\n@Component({\n selector: 'lib-lang-modal',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './lang-modal.component.html',\n styleUrl: './lang-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LangModalComponent {\n langs!: UiLibLangItemI[];\n\n constructor(\n @Optional() @Inject(MAT_DIALOG_DATA) public data: LangModalData,\n @Optional() public dialogRef?: MatDialogRef<LangModalComponent>\n ) {\n this.langs = mapLangModal(data.langs, data.currentLang);\n }\n\n selectLang(lang: UiLibLangItemI) {\n this.dialogRef?.close(lang);\n }\n\n closeModal() {\n this.dialogRef?.close();\n }\n}\n","<div class=\"modal-content\">\n <button (click)=\"closeModal()\" class=\"close-btn\">✕</button>\n @if (langs && langs.length > 0) {\n <ol>\n @for (lang of langs; track $index) {\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 '../../../directives/link-type.directive';\nimport { UiLibNavItemsI, UiLibSocialItemsI } from '../../../interfaces/ui-lib-nav-items.interface';\n\n@Component({\n selector: 'lib-nav-modal',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './nav-modal.component.html',\n styleUrl: './nav-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NavModalComponent {\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n\n @Output() close = new EventEmitter<void>();\n\n closeModal() {\n this.close.emit();\n }\n}\n","<div class=\"modal-content\">\n <button (click)=\"closeModal()\" class=\"close-btn\">✕</button>\n @if (navItems && navItems.length > 0) {\n <ol>\n @for (item of navItems; track $index) {\n <a \n [href]=\"item.url\" \n [linkType]=\"item.linkType\" \n (click)=\"closeModal()\"\n >\n <li>\n <span class=\"modal-item\">{{ item.label }}</span>\n </li>\n </a>\n }\n </ol>\n }\n @if (socialItems) {\n <div class=\"buttons\">\n @for (social of socialItems; track $index) {\n <a\n class=\"btn btn-link\"\n [href]=\"social.url\"\n [linkType]=\"social.linkType\"\n >\n <span>{{ social.icon }}</span\n >{{ social.label }}\n </a>\n }\n </div>\n }\n</div>\n","import { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nexport type Theme = 'light' | 'dark';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThemeService {\n private currentThemeSubject = new BehaviorSubject<Theme>('light');\n public currentTheme$ = this.currentThemeSubject.asObservable();\n\n constructor(@Inject(PLATFORM_ID) private platformId: Object) {\n // Aplicar tema por defecto al inicio\n if (isPlatformBrowser(this.platformId)) {\n this.applyTheme('light');\n }\n }\n\n public getCurrentTheme(): Theme {\n return this.currentThemeSubject.value;\n }\n\n public setTheme(theme: Theme): void {\n this.currentThemeSubject.next(theme);\n this.applyTheme(theme);\n // NO guardar automáticamente en localStorage - solo cuando el usuario hace toggle\n }\n\n public toggleTheme(): void {\n const currentTheme = this.getCurrentTheme();\n const newTheme: Theme = currentTheme === 'light' ? 'dark' : 'light';\n \n // Guardar en localStorage solo cuando el usuario hace toggle\n if (isPlatformBrowser(this.platformId)) {\n localStorage.setItem('theme', newTheme);\n }\n \n this.setTheme(newTheme);\n }\n\n public resetTheme(): void {\n if (isPlatformBrowser(this.platformId)) {\n localStorage.removeItem('theme');\n this.currentThemeSubject.next('light');\n this.applyTheme('light');\n }\n }\n\n // Método para cargar el tema guardado (opcional)\n public loadSavedTheme(): void {\n if (isPlatformBrowser(this.platformId)) {\n const savedTheme = localStorage.getItem('theme') as Theme;\n if (savedTheme) {\n this.setTheme(savedTheme);\n }\n }\n }\n\n private applyTheme(theme: Theme): void {\n // Solo aplicar en el navegador\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n const root = document.documentElement;\n \n if (theme === 'dark') {\n root.setAttribute('data-theme', 'dark');\n } else {\n root.setAttribute('data-theme', 'light');\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { LinkTypeDirective } from '../../../directives';\nimport { UiLibButtonI } from '../../../interfaces/ui-lib-button.interface';\nimport { UiLibImageI } from '../../../interfaces/ui-lib-image.interface';\nimport { UiLibNavItemsI, UiLibSocialItemsI } from '../../../interfaces/ui-lib-nav-items.interface';\nimport { LangModalComponent } from \"../lang-modal\";\nimport { NavModalComponent } from \"../nav-modal\";\nimport { Theme, ThemeService } from '../../../services/theme';\n\n@Component({\n selector: 'lib-header-clear',\n standalone: true,\n imports: [CommonModule, LangModalComponent, NavModalComponent, LinkTypeDirective],\n templateUrl: './header-clear.component.html',\n styleUrl: './header-clear.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderClearComponent implements OnInit, OnDestroy {\n isMenuOpen = false;\n currentTheme: Theme = 'light';\n private themeSubscription?: Subscription;\n \n @Input() logo?: UiLibImageI;\n @Input() logoDark?: UiLibImageI;\n @Input() lang?: string;\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n @Input() homeLink?: UiLibButtonI;\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 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 this.isMenuOpen = !this.isMenuOpen;\n }\n\n getThemeIcon(): string {\n return this.currentTheme === 'light' ? '🌙' : '☀️';\n }\n}\n","<header class=\"header-clear\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <img [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\" [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\" />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions\">\n <!-- Idioma -->\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{lang}}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>{{getThemeIcon()}}</span>\n </button>\n\n <!-- Icono de menú -->\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</header>\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { LinkTypeDirective } from '../../../directives/link-type.directive';\nimport { UiLibButtonI } from '../../../interfaces/ui-lib-button.interface';\nimport { UiLibImageI } from '../../../interfaces/ui-lib-image.interface';\nimport { UiLibNavItemsI, UiLibSocialItemsI } from '../../../interfaces/ui-lib-nav-items.interface';\nimport { Theme, ThemeService } from '../../../services/theme';\nimport { LangModalComponent } from '../lang-modal/lang-modal.component';\nimport { NavModalComponent } from '../nav-modal/nav-modal.component';\n\n@Component({\n selector: 'lib-header-mobile',\n standalone: true,\n imports: [CommonModule, LangModalComponent, NavModalComponent, LinkTypeDirective],\n templateUrl: './header-mobile.component.html',\n styleUrl: './header-mobile.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderMobileComponent implements OnInit, OnDestroy {\n isMenuOpen = false;\n currentTheme: Theme = 'light';\n private themeSubscription?: Subscription;\n\n @Input() logo?: UiLibImageI;\n @Input() logoDark?: UiLibImageI;\n @Input() lang?: string;\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n @Input() homeLink?: UiLibButtonI;\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 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 this.isMenuOpen = !this.isMenuOpen;\n }\n\n getThemeIcon(): string {\n return this.currentTheme === 'light' ? '🌙' : '☀️';\n }\n}\n","<header class=\"header-mobile\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <img [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\" [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\" />\n <span>LLUC LLULL</span>\n </div>\n </a>\n</header>\n\n<div class=\"header-actions\">\n <!-- Idioma -->\n <div class=\"left\">\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n </div>\n\n <!-- Icono de tema -->\n <div class=\"center\">\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>{{getThemeIcon()}}</span>\n </button>\n </div>\n\n <!-- Icono de menú -->\n <div class=\"right\">\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</div>\n\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibButtonI } from '../../../interfaces';\nimport { LinkTypeDirective } from '../../../directives/link-type.directive';\n\n@Component({\n selector: 'lib-section-intro',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './section-intro.component.html',\n styleUrl: './section-intro.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SectionIntroComponent {\n @Input() pretitle?: string;\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() text?: string;\n @Input() button?: UiLibButtonI;\n}\n","<div class=\"section-intro\">\n @if(pretitle){\n <h2 class=\"pretitle\">{{pretitle}}</h2>\n }\n @if(title){\n <h1 class=\"title\">{{title}}</h1>\n }\n @if(subtitle){\n <h2 class=\"subtitle\">{{subtitle}}</h2>\n }\n @if(text){\n <p class=\"text\">{{text}}</p>\n }\n @if(button){\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn btn-link\"\n >\n {{button.label}} \n </a>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CategoryProgressI } from './category-progress.interface';\n\n@Component({\n selector: 'lib-category-progress',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './category-progress.component.html',\n styleUrl: './category-progress.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CategoryProgressComponent {\n @Input() pretitle?: string;\n @Input() title?: string;\n @Input() categories?: ProgressCategoryI[];\n}\n\nexport interface ProgressItemI {\n label: string;\n value: number;\n}\n\nexport interface ProgressCategoryI {\n title: string;\n items: ProgressItemI[];\n}\n","<div class=\"category-progress\">\n @if (pretitle){\n <h3 class=\"pretitle\">{{pretitle}}</h3>\n }\n @if (title){\n <h2 class=\"title\">{{title}}</h2>\n }\n <div class=\"progress-grid\">\n @for (category of categories; track $index) {\n <div class=\"category\">\n <h3 class=\"subtitle\">{{ category.title }}</h3>\n \n @for (item of category.items; track $index){\n <div class=\"item\">\n <span class=\"label\">{{ item.label }}</span>\n <div class=\"bar\">\n <div class=\"fill\" [style.width.%]=\"item.value\"></div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n \n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { LinkTypeDirective } from '../../../directives';\nimport { UiLibButtonI } from '../../../interfaces';\n\nexport type LegalFooterVariant = 'simple' | 'extended';\n\n@Component({\n selector: 'lib-legal-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './legal-footer.component.html',\n styleUrl: './legal-footer.component.scss'\n})\nexport class LegalFooterComponent {\n @Input() year?: number;\n @Input() brand?: string;\n @Input() credits?: string;\n @Input() links?: UiLibButtonI[];\n @Input() variant: LegalFooterVariant = 'simple';\n}\n","<div class=\"legal-footer\" [ngClass]=\"variant\">\n <!-- Variante simple -->\n @if (variant === 'simple') {\n <div class=\"legal-footer__simple\">\n <span class=\"legal-footer__simple-brand\"><b>{{ brand }} © {{ year }}</b></span>\n <span class=\"legal-footer__simple-credits\">{{ credits }}</span>\n </div>\n }\n\n <!-- Variante extendida -->\n @if (variant === 'extended') {\n <div class=\"legal-footer__extended\">\n <span class=\"legal-footer__year\"><b>{{ brand }} © {{ year }}</b></span>\n \n <div class=\"legal-footer__right\">\n @if(links?.length){\n <ul class=\"legal-footer__links\">\n @for (link of links; track $index) {\n <li><a [href]=\"link.url\">{{ link.label }}</a></li>\n }\n <li class=\"legal-footer__credits\">{{ credits }}</li>\n </ul>\n }\n </div>\n </div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UiLibButtonI } from '../../../interfaces';\nimport { LinkTypeDirective } from '../../../directives';\n\n@Component({\n selector: 'lib-links-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './links-footer.component.html',\n styleUrl: './links-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LinksFooterComponent {\n @Input() links?: UiLibButtonI[];\n}\n","@if(links) {\n <div class=\"links-footer\">\n <ul>\n @for (link of links; track $index) {\n <li>\n <a [href]=\"link.url\" [linkType]=\"link.linkType\" class=\"btn btn-link\">\n {{ link.label }}\n </a>\n </li>\n }\n </ul>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { LucideAngularModule, ArrowUpRight, ArrowRight, ArrowLeft } from 'lucide-angular';\n\nconst icons = {\n ArrowUpRight,\n ArrowRight,\n ArrowLeft, \n};\n\n@NgModule({\n imports: [\n LucideAngularModule.pick(icons)\n ],\n exports: [LucideAngularModule]\n})\nexport class IconsModule {}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport {\n siFacebook,\n siInstagram,\n siTiktok,\n siX,\n siYoutube,\n} from 'simple-icons';\nimport { IconsModule } from '../../../modules';\n\nconst brandIcons: Record<string, any> = {\n instagram: siInstagram,\n facebook: siFacebook,\n tiktok: siTiktok,\n youtube: siYoutube,\n twitter: siX,\n x: siX,\n};\n\n@Component({\n selector: 'ui-icon',\n standalone: true,\n imports: [CommonModule, IconsModule],\n templateUrl: './ui-icon.component.html',\n styleUrls: ['./ui-icon.component.scss'],\n})\nexport class UiIconComponent {\n @Input() name!: string;\n @Input() size: number = 24;\n @Input() color: string = 'currentColor';\n\n get isBrandIcon(): boolean {\n return !!brandIcons[this.name.toLowerCase()];\n }\n\n get brandIcon(): any {\n return brandIcons[this.name.toLowerCase()];\n }\n}\n","<!-- SimpleIcons -->\n<ng-container *ngIf=\"isBrandIcon; else lucideIcon\">\n <svg\n class=\"ui-icon ui-icon--brand\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [attr.fill]=\"color\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path [attr.d]=\"brandIcon.path\"></path>\n </svg>\n</ng-container>\n\n<!-- Lucide -->\n<ng-template #lucideIcon>\n <lucide-icon\n class=\"ui-icon ui-icon--lucide\"\n [name]=\"name\"\n [size]=\"size\"\n [color]=\"color\"\n ></lucide-icon>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibButtonI, UiLibImageI } from '../../../interfaces';\nimport { LinkTypeDirective, SwiperDirective } from '../../../directives';\nimport { UiIconComponent } from '../../shared/ui-icon';\n\n@Component({\n selector: 'lib-social-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective, SwiperDirective, UiIconComponent],\n templateUrl: './social-footer.component.html',\n styleUrl: './social-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SocialFooterComponent {\n @Input() images?: UiLibImageI[];\n @Input() socials?: UiLibButtonI[];\n @Input() hashtag?: string;\n}\n","<div class=\"social-footer\">\n <div class=\"social-footer__slider-images swiper\" appSwiper>\n <div class=\"swiper-wrapper\">\n @for (image of images; track $index) {\n <div class=\"swiper-slide\">\n <img [src]=\"image?.url\" [alt]=\"image?.alt || ''\" />\n </div>\n }\n </div>\n <div class=\"swiper-button-prev\">\n <ui-icon name=\"arrow-left\" [size]=\"18\" color=\"#fff\"></ui-icon>\n </div>\n <div class=\"swiper-button-next\">\n <ui-icon name=\"arrow-right\" [size]=\"18\" color=\"#fff\"></ui-icon>\n </div> \n </div>\n\n <div class=\"social-footer__bottom-section\">\n @if (hashtag) {\n <div class=\"social-footer__hashtag\">\n <span>{{ hashtag }}</span>\n </div>\n }\n @if (socials) {\n <div class=\"social-footer__socials\">\n @for (social of socials; track $index) {\n <a [href]=\"social.url\" [attr.aria-label]=\"social.label\" [linkType]=\"social.linkType\">\n @if(social.icon){\n <ui-icon [name]=\"social.icon\" [size]=\"28\"></ui-icon>\n }\n </a>\n }\n </div>\n }\n </div>\n</div>\n","import * as THREE from 'three';\nimport { DynamicEffect } from '../dynamic-effect.interface';\n\nexport class SphereDeformEffect implements DynamicEffect {\n private mesh!: THREE.Mesh;\n private time = 0;\n\n constructor(\n private size: number,\n private rotationSpeed: number,\n private color?: string,\n ) {}\n\n init(scene: THREE.Scene, _options: any): void {\n const geometry = new THREE.SphereGeometry(this.size, 128, 128);\n\n const material = this.color\n ? new THREE.MeshStandardMaterial({ color: this.color, flatShading: true })\n : new THREE.MeshNormalMaterial({ flatShading: true });\n\n this.mesh = new THREE.Mesh(geometry, material);\n scene.add(this.mesh);\n }\n\n animate(): void {\n this.time += 0.02;\n const positionAttr = this.mesh.geometry.attributes['position'] as THREE.BufferAttribute;\n const vertex = new THREE.Vector3();\n\n for (let i = 0; i < positionAttr.count; i++) {\n vertex.fromBufferAttribute(positionAttr, i);\n\n const offset =\n Math.sin(vertex.x * 3 + this.time) * 0.2 +\n Math.cos(vertex.y * 5 + this.time * 0.7) * 0.2;\n\n vertex.normalize().multiplyScalar(this.size + offset);\n\n positionAttr.setXYZ(i, vertex.x, vertex.y, vertex.z);\n }\n\n positionAttr.needsUpdate = true;\n this.mesh.geometry.computeVertexNormals();\n\n this.mesh.rotation.y += this.rotationSpeed;\n }\n\n dispose(): void {\n this.mesh?.geometry.dispose();\n (this.mesh?.material as THREE.Material)?.dispose();\n }\n}\n","import { DynamicEffect } from './dynamic-effect.interface';\nimport { SphereDeformEffect } from './sphere-deform/sphere-deform.effect';\n// import { RingTransformEffect } from './ring-transform/ring-transform.effect';\n// import { ParticlesEffect } from './particles/particles.effect';\n\nexport type EffectKey = 'sphere-deform' | 'ring-transform' | 'particles';\n\nexport const EFFECT_REGISTRY: Partial<Record<EffectKey, new (...args: any[]) => DynamicEffect>> = {\n 'sphere-deform': SphereDeformEffect,\n // 'ring-transform': RingTransformEffect,\n // 'particles': ParticlesEffect,\n};\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n Input,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n ViewChild,\n} from '@angular/core';\nimport * as THREE from 'three';\nimport { DynamicEffect } from './effects/dynamic-effect.interface';\nimport { EFFECT_REGISTRY, EffectKey } from './effects/effect-registry';\n\n@Component({\n selector: 'lib-dynamic-background',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './dynamic-background.component.html',\n styleUrl: './dynamic-background.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DynamicBackgroundComponent implements OnInit, OnDestroy {\n @ViewChild('bgCanvas', { static: true }) canvasRef!: ElementRef<HTMLCanvasElement>;\n\n @Input() effect: EffectKey = 'sphere-deform';\n @Input() rotationSpeed = 0.01;\n @Input() size = 2;\n @Input() backgroundColor = '#000000';\n @Input() elementColor?: string;\n\n private readonly platformId = inject(PLATFORM_ID);\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n\n private scene!: THREE.Scene;\n private camera!: THREE.PerspectiveCamera;\n private renderer!: THREE.WebGLRenderer;\n private animationId!: number;\n\n private currentEffect!: DynamicEffect;\n\n ngOnInit(): void {\n if (this.isBrowser) {\n this.initScene();\n this.loadEffect();\n this.animate();\n window.addEventListener('resize', this.onResize);\n }\n }\n\n ngOnDestroy(): void {\n if (this.isBrowser) {\n cancelAnimationFrame(this.animationId);\n this.renderer?.dispose();\n this.currentEffect?.dispose();\n window.removeEventListener('resize', this.onResize);\n }\n }\n\n private initScene(): void {\n const width = window.innerWidth;\n const height = window.innerHeight;\n\n this.scene = new THREE.Scene();\n this.scene.background = new THREE.Color(this.backgroundColor);\n\n this.camera = new THREE.PerspectiveCamera(75, width / height, 0.1, 1000);\n this.camera.position.z = 5;\n\n this.renderer = new THREE.WebGLRenderer({\n canvas: this.canvasRef.nativeElement,\n antialias: true,\n });\n this.renderer.setSize(width, height);\n\n const light = new THREE.DirectionalLight(0xffffff, 1);\n light.position.set(5, 5, 5).normalize();\n this.scene.add(light);\n }\n\n private loadEffect(): void {\n const EffectClass = EFFECT_REGISTRY[this.effect];\n if (!EffectClass) {\n throw new Error(`Efecto \"${this.effect}\" no está registrado en EFFECT_REGISTRY`);\n }\n this.currentEffect = new EffectClass(this.size, this.rotationSpeed, this.elementColor);\n this.currentEffect.init(this.scene, {});\n }\n\n private animate = (): void => {\n this.animationId = requestAnimationFrame(this.animate);\n this.currentEffect.animate();\n this.renderer.render(this.scene, this.camera);\n };\n\n private onResize = (): void => {\n const width = window.innerWidth;\n const height = window.innerHeight;\n this.camera.aspect = width / height;\n this.camera.updateProjectionMatrix();\n this.renderer.setSize(width, height);\n };\n}\n","<canvas #bgCanvas class=\"dynamic-bg-canvas\"></canvas>\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(\n (item: any) => ({\n title: item.title,\n items: item.items?.map(\n (subItem: any) => ({\n label: subItem.name,\n value: subItem.progress\n })\n )\n })\n ),\n});","import { UiLibButtonI } from '../interfaces/ui-lib-button.interface';\nimport { UiLibImageI } from '../interfaces/ui-lib-image.interface';\n\nexport function mapButtons(data: any): UiLibButtonI[] {\n if (!Array.isArray(data)) return [];\n\n return data\n .filter((item) => item && typeof item === 'object')\n .map(\n (item): UiLibButtonI => ({\n label: item.label ?? '',\n url: item.url ?? '#',\n linkType: item.link_type ?? 'none',\n icon: item.icon,\n })\n );\n}\n\nexport function mapImage(data: any): UiLibImageI | null {\n if (!data || typeof data !== 'object') return null;\n\n return {\n url: data.src ?? '',\n alt: data.alt ?? '',\n width: data.width,\n height: data.height,\n format: data.format,\n };\n}\n\nexport function mapImageOrGallery(data: any): UiLibImageI[] {\n if (!data) return [];\n\n // Si es array → galería\n if (Array.isArray(data)) {\n return data\n .filter((img) => img && typeof img === 'object')\n .map((img) => mapImage(img)!)\n .filter(Boolean);\n }\n\n // Si es objeto → imagen única\n const single = mapImage(data);\n return single ? [single] : [];\n}\n","import { UiLibNavItemsI, UiLibSocialItemsI } from \"../../../interfaces\";\n\n// helpers\nconst isArray = Array.isArray;\nconst isHttp = (u?: string | null) => !!u && /^https?:\\/\\//i.test(u ?? '');\n\nexport const mapNavModalWithLang = (props: any[], _langCode: string): UiLibNavItemsI[] =>\n mapNavModal(props);\n\nexport const mapNavModal = (props: any[]): UiLibNavItemsI[] => {\n if (!isArray(props)) return [];\n\n return props\n .map<UiLibNavItemsI | null>((item) => {\n const link = item?.nav_link ?? {};\n const url: string | undefined = link.url ?? link.external_url ?? undefined;\n\n const mapped: UiLibNavItemsI = {\n label: item?.label ?? link?.name ?? '',\n url,\n linkType: link?.linktype, \n name: link?.name,\n active: link?.active ?? true,\n children: isArray(link?.children) ? (link.children as any) : [], // UiLibButtonI[]\n };\n\n if (!mapped.label || !mapped.url) return null;\n return mapped;\n })\n .filter((x): x is UiLibNavItemsI => !!x);\n};\n\nexport const mapSocialLinks = (props: any[]): UiLibSocialItemsI[] => {\n if (!isArray(props)) return [];\n\n return props\n .map<UiLibSocialItemsI | null>((item) => {\n const link = item?.nav_link ?? item ?? {};\n const url: string | undefined = link.url ?? link.external_url ?? undefined;\n\n const mapped: UiLibSocialItemsI = {\n label: item?.label ?? link?.name ?? '',\n url: url ?? '',\n linkType: link?.linktype ?? (isHttp(url) ? 'external' : 'internal'),\n icon: (item?.icon ?? link?.icon ?? '') as string,\n order: item?.order ?? link?.order,\n };\n\n if (!mapped.label || !mapped.url) return null;\n\n if (mapped.icon == null) mapped.icon = '';\n\n return mapped;\n })\n .filter((x): x is UiLibSocialItemsI => !!x);\n};\n","import { mapImage } from \"../../../utils/utils\";\nimport { mapNavModalWithLang, mapSocialLinks } from \"./nav-modal.mapper\";\nimport { ComponentMapperFn } from \"./types\";\n\nexport const mapHeaderClear: ComponentMapperFn = (props) => {\n // Obtener el idioma de las props\n const currentLang = props?.lang || 'es';\n \n // Mapear solo los navLinks del nav-modal con el idioma correcto\n const navItems = mapNavModalWithLang(props?.['nav-modal']?.navLinks || [], currentLang);\n const socialItems = mapSocialLinks(props?.['nav-modal']?.socialLinks || []);\n \n return { \n logo: mapImage(props?.logo),\n logoDark: mapImage(props?.logoDark),\n lang: currentLang,\n navItems: navItems,\n socialItems: socialItems,\n homeLink: navItems[0]\n };\n};","import { mapButtons } from '../../../utils/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapHeroSection: ComponentMapperFn = (props) => ({\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});\n","import { mapButtons } from '../../../utils/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});","import { mapButtons } from '../../../utils/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapLinksFooter: ComponentMapperFn = (props) => ({ \n links: mapButtons(props?.footer_links),\n});","import { mapButtons } from '../../../utils/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?.button)[0],\n});\n","import { mapButtons, mapImage } from '../../../utils/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});","import { UiLibAddressI } from '../../../interfaces';\nimport { mapButtons, mapImage } from '../../../utils/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});","import { mapCategoryProgress } from './category-progress.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 { mapNavModal } from './nav-modal.mapper';\nimport { mapSectionIntro } from './section-intro.mapper';\nimport { mapSocialFooter } from './social-footer.mapper';\nimport { mapVisualFooter } from './visual-footer.mapper';\n\nexport const componentMappers: Record<string, (props: any) => any> = {\n 'hero-section': mapHeroSection,\n 'header-clear': mapHeaderClear,\n 'nav-modal': mapNavModal,\n 'lang-modal': mapLangModal,\n 'section-intro': mapSectionIntro,\n 'category-progress': mapCategoryProgress,\n 'links-footer': mapLinksFooter,\n 'legal-footer': mapLegalFooter,\n 'social-footer': mapSocialFooter,\n 'visual-footer': mapVisualFooter,\n};\n","import { inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { BodyComponent } from '../../interfaces/page-config.interface';\nimport { componentMappers } from './component-mappers';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapperService {\n private platformId = inject(PLATFORM_ID);\n\n mapComponents<T>(body: any[]): BodyComponent<T>[] {\n if (!body || body.length === 0) {\n return [];\n }\n\n return body\n .filter(\n (component) => component && component.name && component.props\n )\n .map((component) => {\n const name = component.name.toLowerCase();\n const mapper = componentMappers[name];\n\n const mapped: BodyComponent<T> = {\n name,\n order: component.order,\n props: {} as T,\n };\n\n if (mapper) {\n try {\n mapped.props = mapper(component.props) as T;\n } catch (e) {\n console.error(\n `Error mapping props for component \"${name}\"`,\n e\n );\n }\n } else {\n console.warn(`No mapper found for component \"${name}\"`);\n }\n\n return mapped;\n });\n }\n}\n","import { Injectable, PLATFORM_ID, inject, signal } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map, startWith } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class ScreenSizerService {\n readonly breakpoints = {\n xs: 480,\n sm: 768,\n md: 1024,\n lg: 1280,\n xl: 1536,\n };\n\n readonly isXs = signal(false);\n readonly isSm = signal(false);\n readonly isMd = signal(false);\n readonly isLg = signal(false);\n readonly isXl = signal(false);\n\n readonly minSm = signal(false);\n readonly minMd = signal(false);\n readonly minLg = signal(false);\n readonly minXl = signal(false);\n\n private readonly platformId = inject(PLATFORM_ID);\n\n get width(): number {\n if (isPlatformBrowser(this.platformId)) {\n return Math.min(window.innerWidth, window.outerWidth);\n }\n return 0;\n }\n\n constructor() {\n if (isPlatformBrowser(this.platformId)) {\n fromEvent(window, 'resize')\n .pipe(\n debounceTime(200),\n map(() => this.width),\n distinctUntilChanged(),\n startWith(this.width)\n )\n .subscribe(width => this.updateFlags(width));\n }\n }\n\n private updateFlags(width: number) {\n const { xs, sm, md, lg, xl } = this.breakpoints;\n\n this.isXs.set(width < sm);\n this.isSm.set(width >= sm && width < md);\n this.isMd.set(width >= md && width < lg);\n this.isLg.set(width >= lg && width < xl);\n this.isXl.set(width >= xl);\n\n this.minSm.set(width >= sm);\n this.minMd.set(width >= md);\n this.minLg.set(width >= lg);\n this.minXl.set(width >= xl);\n }\n\n // Métodos rápidos si no usas signals directamente\n isXsInstant() { return this.isXs(); }\n isSmInstant() { return this.isSm(); }\n isMdInstant() { return this.isMd(); }\n isLgInstant() { return this.isLg(); }\n isXlInstant() { return this.isXl(); }\n\n minSmInstant() { return this.minSm(); }\n minMdInstant() { return this.minMd(); }\n minLgInstant() { return this.minLg(); }\n minXlInstant() { return this.minXl(); }\n}\n","/*\n * Public API Surface of ui-lib\n */\n\n/* COMPONENTS */\nexport * from './lib/components/core/index';\nexport * from './lib/components/shared/index';\nexport * from './lib/components/effects/index';\n\n// /* SERVICES */\nexport * from './lib/services';\n\n// /* INTERFACES */\nexport * from './lib/interfaces';\n\n// /* UTILS */\nexport * from './lib/utils';\n\n// /* ENUMS */\nexport * from './lib/Enum';\n\n// /* DIRECTIVES */\nexport * from './lib/directives';\n\n// /* MODULES */\nexport * from './lib/modules';\n\n// export * from './lib/ui-lib.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.ThemeService","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lluc_llull-ui-lib.mjs","sources":["../../../projects/ui-lib/src/lib/Enum/link-type.enum.ts","../../../projects/ui-lib/src/lib/directives/link-type.directive.ts","../../../projects/ui-lib/src/lib/directives/swiper.directive.ts","../../../projects/ui-lib/src/lib/components/core/footers/legal-footer/legal-footer.component.ts","../../../projects/ui-lib/src/lib/components/core/footers/legal-footer/legal-footer.component.html","../../../projects/ui-lib/src/lib/components/core/footers/links-footer/links-footer.component.ts","../../../projects/ui-lib/src/lib/components/core/footers/links-footer/links-footer.component.html","../../../projects/ui-lib/src/lib/modules/icons/icon.module.ts","../../../projects/ui-lib/src/lib/components/shared/ui-icon/ui-icon.component.ts","../../../projects/ui-lib/src/lib/components/shared/ui-icon/ui-icon.component.html","../../../projects/ui-lib/src/lib/components/core/footers/social-footer/social-footer.component.ts","../../../projects/ui-lib/src/lib/components/core/footers/social-footer/social-footer.component.html","../../../projects/ui-lib/src/lib/components/core/footers/visual-footer/visual-footer.component.ts","../../../projects/ui-lib/src/lib/components/core/footers/visual-footer/visual-footer.component.html","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/lang-modal.mapper.ts","../../../projects/ui-lib/src/lib/components/core/modals/lang-modal/lang-modal.component.ts","../../../projects/ui-lib/src/lib/components/core/modals/lang-modal/lang-modal.component.html","../../../projects/ui-lib/src/lib/components/core/modals/nav-modal/nav-modal.component.ts","../../../projects/ui-lib/src/lib/components/core/modals/nav-modal/nav-modal.component.html","../../../projects/ui-lib/src/lib/services/theme/theme.service.ts","../../../projects/ui-lib/src/lib/components/core/headers/header-clear/header-clear.component.ts","../../../projects/ui-lib/src/lib/components/core/headers/header-clear/header-clear.component.html","../../../projects/ui-lib/src/lib/components/core/headers/header-mobile/header-mobile.component.ts","../../../projects/ui-lib/src/lib/components/core/headers/header-mobile/header-mobile.component.html","../../../projects/ui-lib/src/lib/components/core/sections/hero-section/hero-section.component.ts","../../../projects/ui-lib/src/lib/components/core/sections/hero-section/hero-section.component.html","../../../projects/ui-lib/src/lib/components/core/sections/hero-section/hero-section.stories.ts","../../../projects/ui-lib/src/lib/components/core/sections/section-intro/section-intro.component.ts","../../../projects/ui-lib/src/lib/components/core/sections/section-intro/section-intro.component.html","../../../projects/ui-lib/src/lib/components/core/sections/category-progress/category-progress.component.ts","../../../projects/ui-lib/src/lib/components/core/sections/category-progress/category-progress.component.html","../../../projects/ui-lib/src/lib/components/effects/dynamic-background/effects/sphere-deform/sphere-deform.effect.ts","../../../projects/ui-lib/src/lib/components/effects/dynamic-background/effects/effect-registry.ts","../../../projects/ui-lib/src/lib/components/effects/dynamic-background/dynamic-background.component.ts","../../../projects/ui-lib/src/lib/components/effects/dynamic-background/dynamic-background.component.html","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/category-progress.mapper.ts","../../../projects/ui-lib/src/lib/utils/utils.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/nav-modal.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/header-clear.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/hero-section.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/legal-footer.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/links-footer.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/section-intro.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/social-footer.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/visual-footer.mapper.ts","../../../projects/ui-lib/src/lib/services/mapper/component-mappers/index.ts","../../../projects/ui-lib/src/lib/services/mapper/mapper.service.ts","../../../projects/ui-lib/src/lib/services/screen-sizer/screen-sizer.service.ts","../../../projects/ui-lib/src/public-api.ts","../../../projects/ui-lib/src/lluc_llull-ui-lib.ts"],"sourcesContent":["export enum LinkType {\n Internal = 'internal',\n External = 'external',\n Anchor = 'anchor',\n Pdf = 'pdf',\n NoLink = 'nolink',\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, EventEmitter, HostListener, inject, Input, OnInit, Output, PLATFORM_ID } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LinkType } from '../Enum/link-type.enum';\n\n@Directive({\n selector: '[linkType]',\n standalone: true,\n})\nexport class LinkTypeDirective implements OnInit {\n @Input() linkType?: LinkType;\n @Input() href?: string;\n @Output() anchorClicked = new EventEmitter<void>();\n\n private readonly platformId = inject(PLATFORM_ID);\n\n constructor(private readonly router: Router, private readonly elRef: ElementRef) {}\n\n ngOnInit(): void {\n this.setupLinkAttributes();\n }\n\n @HostListener('click', ['$event'])\n onClick(event: Event): void {\n if (!this.linkType || !this.href) {\n this.disableLink();\n return;\n }\n\n event.preventDefault();\n\n switch (this.linkType) {\n case 'internal':\n this.navigateInternal(this.href);\n break;\n case 'external':\n case 'pdf':\n this.openExternal(this.href);\n break;\n case 'anchor':\n this.scrollToAnchor(this.href);\n break;\n case 'nolink':\n this.disableLink();\n break;\n default:\n console.warn(`Unsupported linkType: ${this.linkType}`);\n }\n }\n\n private setupLinkAttributes() {\n if (!this.linkType || !this.href) {\n this.disableLink();\n return;\n }\n\n this.elRef.nativeElement.setAttribute('href', this.href);\n\n if (this.linkType === 'external') {\n this.elRef.nativeElement.setAttribute('rel', 'nofollow');\n }\n }\n\n private navigateInternal(url: string) {\n const cleanedUrl = url.trim().replace(/\\/+$/, '');\n this.anchorClicked.emit();\n this.router.navigateByUrl('/' + cleanedUrl);\n }\n\n private openExternal(url: string) {\n if (isPlatformBrowser(this.platformId)) {\n window.open(url, '_blank');\n }\n }\n\n private scrollToAnchor(id: string) {\n if (isPlatformBrowser(this.platformId)) {\n const el = document.getElementById(id);\n if (el) {\n const yOffset = -160;\n const y = el.getBoundingClientRect().top + window.scrollY + yOffset;\n window.scrollTo({ top: y, behavior: 'smooth' });\n this.anchorClicked.emit();\n } else {\n console.warn(`Anchor \"${id}\" not found`);\n }\n }\n }\n\n private disableLink() {\n const element = this.elRef.nativeElement;\n const parentLi = element.closest('li');\n const isInMenu = parentLi?.classList.contains('menu-item-has-children');\n\n if (!isInMenu) {\n element.removeAttribute('href');\n element.setAttribute('aria-disabled', 'true');\n element.setAttribute('tabindex', '-1');\n element.style.cursor = 'default';\n element.style.pointerEvents = 'none';\n }\n }\n}\nexport { LinkType };\n\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n} from '@angular/core';\nimport Swiper from 'swiper';\nimport { Navigation, Pagination, Autoplay } from 'swiper/modules';\n\nSwiper.use([Navigation, Pagination, Autoplay]);\n\n@Directive({\n selector: '[appSwiper]',\n standalone: true,\n})\nexport class SwiperDirective implements AfterViewInit, OnDestroy {\n @Input() swiperConfig: any;\n\n private swiperInstance?: Swiper;\n\n constructor(private el: ElementRef) {}\n\n ngAfterViewInit(): void {\n this.swiperInstance = new Swiper(this.el.nativeElement, {\n spaceBetween: 16,\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n pagination: { clickable: true },\n breakpoints: {\n 0: { slidesPerView: 1 }, // móviles\n 480: { slidesPerView: 1 }, // small tablets\n 768: { slidesPerView: 3 }, // tablets\n 1024: { slidesPerView: 4 }, // laptops\n 1280: { slidesPerView: 7 }, // desktop → máximo 7\n },\n ...this.swiperConfig,\n });\n }\n\n ngOnDestroy(): void {\n this.swiperInstance?.destroy(true, true);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { LinkTypeDirective } from '../../../../directives';\nimport { UiLibButtonI } from '../../../../interfaces';\n\nexport type LegalFooterVariant = 'simple' | 'extended';\n\n@Component({\n selector: 'lib-legal-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './legal-footer.component.html',\n styleUrl: './legal-footer.component.scss'\n})\nexport class LegalFooterComponent {\n @Input() year?: number;\n @Input() brand?: string;\n @Input() credits?: string;\n @Input() links?: UiLibButtonI[];\n @Input() variant: LegalFooterVariant = 'simple';\n}\n","<div class=\"legal-footer\" [ngClass]=\"variant\">\n <!-- Variante simple -->\n @if (variant === 'simple') {\n <div class=\"legal-footer__simple\">\n <span class=\"legal-footer__simple-brand\"><b>{{ brand }} © {{ year }}</b></span>\n <span class=\"legal-footer__simple-credits\">{{ credits }}</span>\n </div>\n }\n\n <!-- Variante extendida -->\n @if (variant === 'extended') {\n <div class=\"legal-footer__extended\">\n <span class=\"legal-footer__year\"><b>{{ brand }} © {{ year }}</b></span>\n \n <div class=\"legal-footer__right\">\n @if(links?.length){\n <ul class=\"legal-footer__links\">\n @for (link of links; track $index) {\n <li><a [href]=\"link.url\">{{ link.label }}</a></li>\n }\n <li class=\"legal-footer__credits\">{{ credits }}</li>\n </ul>\n }\n </div>\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { LinkTypeDirective } from '../../../../directives';\nimport { UiLibButtonI } from '../../../../interfaces';\n\n@Component({\n selector: 'lib-links-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './links-footer.component.html',\n styleUrl: './links-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LinksFooterComponent {\n @Input() links?: UiLibButtonI[];\n}\n","@if(links) {\n <div class=\"links-footer\">\n <ul>\n @for (link of links; track $index) {\n <li>\n <a [href]=\"link.url\" [linkType]=\"link.linkType\" class=\"btn btn-link\">\n {{ link.label }}\n </a>\n </li>\n }\n </ul>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { LucideAngularModule, ArrowUpRight, ArrowRight, ArrowLeft } from 'lucide-angular';\n\nconst icons = {\n ArrowUpRight,\n ArrowRight,\n ArrowLeft, \n};\n\n@NgModule({\n imports: [\n LucideAngularModule.pick(icons)\n ],\n exports: [LucideAngularModule]\n})\nexport class IconsModule {}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport {\n siFacebook,\n siInstagram,\n siTiktok,\n siX,\n siYoutube,\n} from 'simple-icons';\nimport { IconsModule } from '../../../modules';\n\nconst brandIcons: Record<string, any> = {\n instagram: siInstagram,\n facebook: siFacebook,\n tiktok: siTiktok,\n youtube: siYoutube,\n twitter: siX,\n x: siX,\n};\n\n@Component({\n selector: 'ui-icon',\n standalone: true,\n imports: [CommonModule, IconsModule],\n templateUrl: './ui-icon.component.html',\n styleUrls: ['./ui-icon.component.scss'],\n})\nexport class UiIconComponent {\n @Input() name!: string;\n @Input() size: number = 24;\n @Input() color: string = 'currentColor';\n\n get isBrandIcon(): boolean {\n return !!brandIcons[this.name.toLowerCase()];\n }\n\n get brandIcon(): any {\n return brandIcons[this.name.toLowerCase()];\n }\n}\n","<!-- SimpleIcons -->\n<ng-container *ngIf=\"isBrandIcon; else lucideIcon\">\n <svg\n class=\"ui-icon ui-icon--brand\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n [attr.fill]=\"color\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path [attr.d]=\"brandIcon.path\"></path>\n </svg>\n</ng-container>\n\n<!-- Lucide -->\n<ng-template #lucideIcon>\n <lucide-icon\n class=\"ui-icon ui-icon--lucide\"\n [name]=\"name\"\n [size]=\"size\"\n [color]=\"color\"\n ></lucide-icon>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { LinkTypeDirective, SwiperDirective } from '../../../../directives';\nimport { UiLibButtonI, UiLibImageI } from '../../../../interfaces';\nimport { UiIconComponent } from '../../../shared/ui-icon';\n\n@Component({\n selector: 'lib-social-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective, SwiperDirective, UiIconComponent],\n templateUrl: './social-footer.component.html',\n styleUrl: './social-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SocialFooterComponent {\n @Input() images?: UiLibImageI[];\n @Input() socials?: UiLibButtonI[];\n @Input() hashtag?: string;\n}\n","<div class=\"social-footer\">\n <div class=\"social-footer__slider-images swiper\" appSwiper>\n <div class=\"swiper-wrapper\">\n @for (image of images; track $index) {\n <div class=\"swiper-slide\">\n <img [src]=\"image?.url\" [alt]=\"image?.alt || ''\" />\n </div>\n }\n </div>\n <div class=\"swiper-button-prev\">\n <ui-icon name=\"arrow-left\" [size]=\"18\" color=\"#fff\"></ui-icon>\n </div>\n <div class=\"swiper-button-next\">\n <ui-icon name=\"arrow-right\" [size]=\"18\" color=\"#fff\"></ui-icon>\n </div> \n </div>\n\n <div class=\"social-footer__bottom-section\">\n @if (hashtag) {\n <div class=\"social-footer__hashtag\">\n <span>{{ hashtag }}</span>\n </div>\n }\n @if (socials) {\n <div class=\"social-footer__socials\">\n @for (social of socials; track $index) {\n <a [href]=\"social.url\" [attr.aria-label]=\"social.label\" [linkType]=\"social.linkType\">\n @if(social.icon){\n <ui-icon [name]=\"social.icon\" [size]=\"28\"></ui-icon>\n }\n </a>\n }\n </div>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { LinkTypeDirective } from '../../../../directives';\nimport { UiLibAddressI, UiLibButtonI, UiLibImageI } from '../../../../interfaces';\n\n@Component({\n selector: 'lib-visual-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './visual-footer.component.html',\n styleUrl: './visual-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VisualFooterComponent {\n @Input() contactTitle?: string;\n @Input() contactPhone?: UiLibButtonI;\n @Input() contactEmail?: UiLibButtonI;\n @Input() addressTitle?: string;\n @Input() address?: UiLibAddressI;\n @Input() socialsTitle?: string;\n @Input() socials?: UiLibButtonI[];\n @Input() image?: UiLibImageI;\n}\n","<div class=\"visual-footer\">\n <div class=\"visual-footer__texts\">\n <div class=\"visual-footer__contact\">\n @if(contactTitle){\n <h2 class=\"title\">{{contactTitle}}</h2>\n }\n @if(contactPhone){\n <a [href]=\"contactPhone.url\" [linkType]=\"contactPhone.linkType\" class=\"btn btn-link\">\n <span>{{contactPhone.label}}</span>\n </a>\n }\n @if(contactEmail){\n <a [href]=\"contactEmail.url\" [linkType]=\"contactEmail.linkType\" class=\"btn btn-link\">\n <span>{{contactEmail.label}}</span>\n </a>\n }\n </div>\n <div class=\"visual-footer__address\">\n @if(addressTitle){\n <h2 class=\"title\">{{addressTitle}}</h2>\n }\n <p class=\"text\">\n <span>{{address?.address}}</span>\n <span>{{address?.cp}} {{address?.city}}</span>\n <span>{{address?.province}} {{address?.country}}</span>\n </p>\n </div>\n <div class=\"visual-footer__socials\">\n @if(socialsTitle){\n <h2 class=\"title\">{{socialsTitle}}</h2>\n }\n @if(socials){\n @for(social of socials; track $index){\n <a [href]=\"social.url\" [linkType]=\"social.linkType\" class=\"btn btn-link\">\n <span>{{social.label}}</span>\n </a>\n }\n }\n </div>\n </div>\n <div class=\"visual-footer__image\">\n @if(image){\n <img [src]=\"image.url\" [alt]=\"image.alt\" loading=\"lazy\">\n }\n </div>\n</div>","export const mapLangModal = (props: any[], currentLang: string = 'es') => {\n const safeProps = Array.isArray(props) ? props : [];\n const allTranslations = safeProps.flatMap(lang => Array.isArray(lang.lang_translations) ? lang.lang_translations : []);\n return safeProps.map((lang: any) => {\n const found = allTranslations.find(\n (t: any) => t.lang_code === lang.code && t.target_lang_code === currentLang\n );\n const label = found?.label || lang.code;\n return {\n id: lang.id,\n code: lang.code,\n label\n };\n });\n};","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Inject, Optional } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { UiLibLangItemI } from '../../../../interfaces';\nimport { mapLangModal } from '../../../../services/mapper/component-mappers/lang-modal.mapper';\n\ninterface LangModalData {\n langs: any[];\n currentLang: string;\n}\n\n@Component({\n selector: 'lib-lang-modal',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './lang-modal.component.html',\n styleUrl: './lang-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LangModalComponent {\n langs!: UiLibLangItemI[];\n\n constructor(\n @Optional() @Inject(MAT_DIALOG_DATA) public data: LangModalData,\n @Optional() public dialogRef?: MatDialogRef<LangModalComponent>\n ) {\n this.langs = mapLangModal(data.langs, data.currentLang);\n }\n\n selectLang(lang: UiLibLangItemI) {\n this.dialogRef?.close(lang);\n }\n\n closeModal() {\n this.dialogRef?.close();\n }\n}\n","<div class=\"modal-content\">\n <button (click)=\"closeModal()\" class=\"close-btn\">✕</button>\n @if (langs && langs.length > 0) {\n <ol>\n @for (lang of langs; track $index) {\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 '../../../../directives/link-type.directive';\nimport { UiLibNavItemsI, UiLibSocialItemsI } from '../../../../interfaces/ui-lib-nav-items.interface';\n\n@Component({\n selector: 'lib-nav-modal',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './nav-modal.component.html',\n styleUrl: './nav-modal.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NavModalComponent {\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n\n @Output() close = new EventEmitter<void>();\n\n closeModal() {\n this.close.emit();\n }\n}\n","<div class=\"modal-content\">\n <button (click)=\"closeModal()\" class=\"close-btn\">✕</button>\n @if (navItems && navItems.length > 0) {\n <ol>\n @for (item of navItems; track $index) {\n <a \n [href]=\"item.url\" \n [linkType]=\"item.linkType\" \n (click)=\"closeModal()\"\n >\n <li>\n <span class=\"modal-item\">{{ item.label }}</span>\n </li>\n </a>\n }\n </ol>\n }\n @if (socialItems) {\n <div class=\"buttons\">\n @for (social of socialItems; track $index) {\n <a\n class=\"btn btn-link\"\n [href]=\"social.url\"\n [linkType]=\"social.linkType\"\n >\n <span>{{ social.icon }}</span\n >{{ social.label }}\n </a>\n }\n </div>\n }\n</div>\n","import { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nexport type Theme = 'light' | 'dark';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThemeService {\n private currentThemeSubject = new BehaviorSubject<Theme>('light');\n public currentTheme$ = this.currentThemeSubject.asObservable();\n\n constructor(@Inject(PLATFORM_ID) private platformId: Object) {\n // Aplicar tema por defecto al inicio\n if (isPlatformBrowser(this.platformId)) {\n this.applyTheme('light');\n }\n }\n\n public getCurrentTheme(): Theme {\n return this.currentThemeSubject.value;\n }\n\n public setTheme(theme: Theme): void {\n this.currentThemeSubject.next(theme);\n this.applyTheme(theme);\n // NO guardar automáticamente en localStorage - solo cuando el usuario hace toggle\n }\n\n public toggleTheme(): void {\n const currentTheme = this.getCurrentTheme();\n const newTheme: Theme = currentTheme === 'light' ? 'dark' : 'light';\n \n // Guardar en localStorage solo cuando el usuario hace toggle\n if (isPlatformBrowser(this.platformId)) {\n localStorage.setItem('theme', newTheme);\n }\n \n this.setTheme(newTheme);\n }\n\n public resetTheme(): void {\n if (isPlatformBrowser(this.platformId)) {\n localStorage.removeItem('theme');\n this.currentThemeSubject.next('light');\n this.applyTheme('light');\n }\n }\n\n // Método para cargar el tema guardado (opcional)\n public loadSavedTheme(): void {\n if (isPlatformBrowser(this.platformId)) {\n const savedTheme = localStorage.getItem('theme') as Theme;\n if (savedTheme) {\n this.setTheme(savedTheme);\n }\n }\n }\n\n private applyTheme(theme: Theme): void {\n // Solo aplicar en el navegador\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n const root = document.documentElement;\n \n if (theme === 'dark') {\n root.setAttribute('data-theme', 'dark');\n } else {\n root.setAttribute('data-theme', 'light');\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { LinkTypeDirective } from '../../../../directives';\nimport { UiLibButtonI, UiLibImageI, UiLibNavItemsI, UiLibSocialItemsI } from '../../../../interfaces';\nimport { LangModalComponent, NavModalComponent } from '../../modals';\nimport { Theme, ThemeService } from '../../../../services/theme';\n\n@Component({\n selector: 'lib-header-clear',\n standalone: true,\n imports: [CommonModule, LangModalComponent, NavModalComponent, LinkTypeDirective],\n templateUrl: './header-clear.component.html',\n styleUrl: './header-clear.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderClearComponent implements OnInit, OnDestroy {\n isMenuOpen = false;\n currentTheme: Theme = 'light';\n private themeSubscription?: Subscription;\n \n @Input() logo?: UiLibImageI;\n @Input() logoDark?: UiLibImageI;\n @Input() lang?: string;\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n @Input() homeLink?: UiLibButtonI;\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 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 this.isMenuOpen = !this.isMenuOpen;\n }\n\n getThemeIcon(): string {\n return this.currentTheme === 'light' ? '🌙' : '☀️';\n }\n}\n","<header class=\"header-clear\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <img [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\" [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\" />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions\">\n <!-- Idioma -->\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{lang}}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>{{getThemeIcon()}}</span>\n </button>\n\n <!-- Icono de menú -->\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</header>\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { LinkTypeDirective } from '../../../../directives/link-type.directive';\nimport { UiLibButtonI } from '../../../../interfaces/ui-lib-button.interface';\nimport { UiLibImageI } from '../../../../interfaces/ui-lib-image.interface';\nimport { UiLibNavItemsI, UiLibSocialItemsI } from '../../../../interfaces/ui-lib-nav-items.interface';\nimport { Theme, ThemeService } from '../../../../services/theme';\nimport { LangModalComponent, NavModalComponent } from '../../modals';\n\n@Component({\n selector: 'lib-header-mobile',\n standalone: true,\n imports: [CommonModule, LangModalComponent, NavModalComponent, LinkTypeDirective],\n templateUrl: './header-mobile.component.html',\n styleUrl: './header-mobile.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderMobileComponent implements OnInit, OnDestroy {\n isMenuOpen = false;\n currentTheme: Theme = 'light';\n private themeSubscription?: Subscription;\n\n @Input() logo?: UiLibImageI;\n @Input() logoDark?: UiLibImageI;\n @Input() lang?: string;\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n @Input() homeLink?: UiLibButtonI;\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 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 this.isMenuOpen = !this.isMenuOpen;\n }\n\n getThemeIcon(): string {\n return this.currentTheme === 'light' ? '🌙' : '☀️';\n }\n}\n","<header class=\"header-mobile\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <img [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\" [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\" />\n <span>LLUC LLULL</span>\n </div>\n </a>\n</header>\n\n<div class=\"header-actions\">\n <!-- Idioma -->\n <div class=\"left\">\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n </div>\n\n <!-- Icono de tema -->\n <div class=\"center\">\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>{{getThemeIcon()}}</span>\n </button>\n </div>\n\n <!-- Icono de menú -->\n <div class=\"right\">\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</div>\n\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { LinkTypeDirective } from '../../../../directives/link-type.directive';\nimport { UiLibButtonI } from '../../../../interfaces/ui-lib-button.interface';\n\n@Component({\n selector: 'lib-hero-section',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './hero-section.component.html',\n styleUrl: './hero-section.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeroSectionComponent {\n @Input() pretitle?: string;\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() text?: string;\n @Input() buttons?: UiLibButtonI[];\n @Input() highlight?: string;\n}\n","<div class=\"hero-section\">\n @if (pretitle) {\n <h2 class=\"pretitle\">{{ pretitle }}</h2>\n }\n @if (title) {\n <h1 class=\"title\">\n @if (highlight && title.includes(highlight)) {\n {{ title.replace(highlight, '') }}\n <span class=\"highlight-text\">\n {{ highlight }}\n <div class=\"wave-wrapper\">\n <div class=\"wave\"></div>\n </div>\n </span>\n } @else {\n {{ title }}\n }\n </h1>\n }\n @if (subtitle) {\n <h2 class=\"subtitle\">{{ subtitle }}</h2>\n }\n @if (text) {\n <p class=\"text\">{{ text }}</p>\n }\n @if (buttons && buttons.length > 0) {\n <div class=\"buttons\">\n @for (button of buttons; track $index) {\n <a class=\"btn btn-link\" [href]=\"button.url\" [linkType]=\"button.linkType\">\n <span>{{ button.icon }}</span>{{ button.label }}\n </a>\n }\n </div>\n }\n</div>\n","import { LinkType } from \"../../../../Enum/link-type.enum\";\nimport { HeroSectionComponent } from \"./hero-section.component\";\nimport { Meta, StoryObj } from '@storybook/angular';\n\nexport default {\n title: 'Core/Sections/HeroSection',\n component: HeroSectionComponent,\n tags: ['autodocs'],\n argTypes: {\n title: { control: 'text' },\n subtitle: { control: 'text' },\n text: { control: 'text' },\n buttons: { control: 'object' },\n },\n} as Meta<HeroSectionComponent>;\n\ntype Story = StoryObj<HeroSectionComponent>;\n\nexport const Default: Story = {\n args: {\n title: 'Título de ejemplo',\n subtitle: 'Subtítulo de ejemplo',\n text: 'Texto descriptivo de ejemplo para el Hero Section.',\n buttons: [\n { label: 'Botón 1', url: 'https://www.google.com', linkType: LinkType.External },\n { label: 'Botón 2', url: 'https://www.google.com', linkType: LinkType.External }\n ]\n }\n};","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibButtonI } from '../../../../interfaces';\nimport { LinkTypeDirective } from '../../../../directives/link-type.directive';\n\n@Component({\n selector: 'lib-section-intro',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './section-intro.component.html',\n styleUrl: './section-intro.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SectionIntroComponent {\n @Input() pretitle?: string;\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() text?: string;\n @Input() button?: UiLibButtonI;\n}\n","<div class=\"section-intro\">\n @if(pretitle){\n <h2 class=\"pretitle\">{{pretitle}}</h2>\n }\n @if(title){\n <h1 class=\"title\">{{title}}</h1>\n }\n @if(subtitle){\n <h2 class=\"subtitle\">{{subtitle}}</h2>\n }\n @if(text){\n <p class=\"text\">{{text}}</p>\n }\n @if(button){\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn btn-link\"\n >\n {{button.label}} \n </a>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CategoryProgressI } from './category-progress.interface';\n\n@Component({\n selector: 'lib-category-progress',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './category-progress.component.html',\n styleUrl: './category-progress.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CategoryProgressComponent {\n @Input() pretitle?: string;\n @Input() title?: string;\n @Input() categories?: ProgressCategoryI[];\n}\n\nexport interface ProgressItemI {\n label: string;\n value: number;\n}\n\nexport interface ProgressCategoryI {\n title: string;\n items: ProgressItemI[];\n}\n","<div class=\"category-progress\">\n @if (pretitle){\n <h3 class=\"pretitle\">{{pretitle}}</h3>\n }\n @if (title){\n <h2 class=\"title\">{{title}}</h2>\n }\n <div class=\"progress-grid\">\n @for (category of categories; track $index) {\n <div class=\"category\">\n <h3 class=\"subtitle\">{{ category.title }}</h3>\n \n @for (item of category.items; track $index){\n <div class=\"item\">\n <span class=\"label\">{{ item.label }}</span>\n <div class=\"bar\">\n <div class=\"fill\" [style.width.%]=\"item.value\"></div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n \n</div>\n","import * as THREE from 'three';\nimport { DynamicEffect } from '../dynamic-effect.interface';\n\nexport class SphereDeformEffect implements DynamicEffect {\n private mesh!: THREE.Mesh;\n private time = 0;\n\n constructor(\n private size: number,\n private rotationSpeed: number,\n private color?: string,\n ) {}\n\n init(scene: THREE.Scene, _options: any): void {\n const geometry = new THREE.SphereGeometry(this.size, 128, 128);\n\n const material = this.color\n ? new THREE.MeshStandardMaterial({ color: this.color, flatShading: true })\n : new THREE.MeshNormalMaterial({ flatShading: true });\n\n this.mesh = new THREE.Mesh(geometry, material);\n scene.add(this.mesh);\n }\n\n animate(): void {\n this.time += 0.02;\n const positionAttr = this.mesh.geometry.attributes['position'] as THREE.BufferAttribute;\n const vertex = new THREE.Vector3();\n\n for (let i = 0; i < positionAttr.count; i++) {\n vertex.fromBufferAttribute(positionAttr, i);\n\n const offset =\n Math.sin(vertex.x * 3 + this.time) * 0.2 +\n Math.cos(vertex.y * 5 + this.time * 0.7) * 0.2;\n\n vertex.normalize().multiplyScalar(this.size + offset);\n\n positionAttr.setXYZ(i, vertex.x, vertex.y, vertex.z);\n }\n\n positionAttr.needsUpdate = true;\n this.mesh.geometry.computeVertexNormals();\n\n this.mesh.rotation.y += this.rotationSpeed;\n }\n\n dispose(): void {\n this.mesh?.geometry.dispose();\n (this.mesh?.material as THREE.Material)?.dispose();\n }\n}\n","import { DynamicEffect } from './dynamic-effect.interface';\nimport { SphereDeformEffect } from './sphere-deform/sphere-deform.effect';\n// import { RingTransformEffect } from './ring-transform/ring-transform.effect';\n// import { ParticlesEffect } from './particles/particles.effect';\n\nexport type EffectKey = 'sphere-deform' | 'ring-transform' | 'particles';\n\nexport const EFFECT_REGISTRY: Partial<Record<EffectKey, new (...args: any[]) => DynamicEffect>> = {\n 'sphere-deform': SphereDeformEffect,\n // 'ring-transform': RingTransformEffect,\n // 'particles': ParticlesEffect,\n};\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n Input,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n ViewChild,\n} from '@angular/core';\nimport * as THREE from 'three';\nimport { DynamicEffect } from './effects/dynamic-effect.interface';\nimport { EFFECT_REGISTRY, EffectKey } from './effects/effect-registry';\n\n@Component({\n selector: 'lib-dynamic-background',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './dynamic-background.component.html',\n styleUrl: './dynamic-background.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DynamicBackgroundComponent implements OnInit, OnDestroy {\n @ViewChild('bgCanvas', { static: true }) canvasRef!: ElementRef<HTMLCanvasElement>;\n\n @Input() effect: EffectKey = 'sphere-deform';\n @Input() rotationSpeed = 0.01;\n @Input() size = 2;\n @Input() backgroundColor = '#000000';\n @Input() elementColor?: string;\n\n private readonly platformId = inject(PLATFORM_ID);\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n\n private scene!: THREE.Scene;\n private camera!: THREE.PerspectiveCamera;\n private renderer!: THREE.WebGLRenderer;\n private animationId!: number;\n\n private currentEffect!: DynamicEffect;\n\n ngOnInit(): void {\n if (this.isBrowser) {\n this.initScene();\n this.loadEffect();\n this.animate();\n window.addEventListener('resize', this.onResize);\n }\n }\n\n ngOnDestroy(): void {\n if (this.isBrowser) {\n cancelAnimationFrame(this.animationId);\n this.renderer?.dispose();\n this.currentEffect?.dispose();\n window.removeEventListener('resize', this.onResize);\n }\n }\n\n private initScene(): void {\n const width = window.innerWidth;\n const height = window.innerHeight;\n\n this.scene = new THREE.Scene();\n this.scene.background = new THREE.Color(this.backgroundColor);\n\n this.camera = new THREE.PerspectiveCamera(75, width / height, 0.1, 1000);\n this.camera.position.z = 5;\n\n this.renderer = new THREE.WebGLRenderer({\n canvas: this.canvasRef.nativeElement,\n antialias: true,\n });\n this.renderer.setSize(width, height);\n\n const light = new THREE.DirectionalLight(0xffffff, 1);\n light.position.set(5, 5, 5).normalize();\n this.scene.add(light);\n }\n\n private loadEffect(): void {\n const EffectClass = EFFECT_REGISTRY[this.effect];\n if (!EffectClass) {\n throw new Error(`Efecto \"${this.effect}\" no está registrado en EFFECT_REGISTRY`);\n }\n this.currentEffect = new EffectClass(this.size, this.rotationSpeed, this.elementColor);\n this.currentEffect.init(this.scene, {});\n }\n\n private animate = (): void => {\n this.animationId = requestAnimationFrame(this.animate);\n this.currentEffect.animate();\n this.renderer.render(this.scene, this.camera);\n };\n\n private onResize = (): void => {\n const width = window.innerWidth;\n const height = window.innerHeight;\n this.camera.aspect = width / height;\n this.camera.updateProjectionMatrix();\n this.renderer.setSize(width, height);\n };\n}\n","<canvas #bgCanvas class=\"dynamic-bg-canvas\"></canvas>\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(\n (item: any) => ({\n title: item.title,\n items: item.items?.map(\n (subItem: any) => ({\n label: subItem.name,\n value: subItem.progress\n })\n )\n })\n ),\n});","import { UiLibButtonI } from '../interfaces/ui-lib-button.interface';\nimport { UiLibImageI } from '../interfaces/ui-lib-image.interface';\n\nexport function mapButtons(data: any): UiLibButtonI[] {\n if (!Array.isArray(data)) return [];\n\n return data\n .filter((item) => item && typeof item === 'object')\n .map(\n (item): UiLibButtonI => ({\n label: item.label ?? '',\n url: item.url ?? '#',\n linkType: item.link_type ?? 'none',\n icon: item.icon,\n })\n );\n}\n\nexport function mapImage(data: any): UiLibImageI | null {\n if (!data || typeof data !== 'object') return null;\n\n return {\n url: data.src ?? '',\n alt: data.alt ?? '',\n width: data.width,\n height: data.height,\n format: data.format,\n };\n}\n\nexport function mapImageOrGallery(data: any): UiLibImageI[] {\n if (!data) return [];\n\n // Si es array → galería\n if (Array.isArray(data)) {\n return data\n .filter((img) => img && typeof img === 'object')\n .map((img) => mapImage(img)!)\n .filter(Boolean);\n }\n\n // Si es objeto → imagen única\n const single = mapImage(data);\n return single ? [single] : [];\n}\n","import { UiLibNavItemsI, UiLibSocialItemsI } from \"../../../interfaces\";\n\n// helpers\nconst isArray = Array.isArray;\nconst isHttp = (u?: string | null) => !!u && /^https?:\\/\\//i.test(u ?? '');\n\nexport const mapNavModalWithLang = (props: any[], _langCode: string): UiLibNavItemsI[] =>\n mapNavModal(props);\n\nexport const mapNavModal = (props: any[]): UiLibNavItemsI[] => {\n if (!isArray(props)) return [];\n\n return props\n .map<UiLibNavItemsI | null>((item) => {\n const link = item?.nav_link ?? {};\n const url: string | undefined = link.url ?? link.external_url ?? undefined;\n\n const mapped: UiLibNavItemsI = {\n label: item?.label ?? link?.name ?? '',\n url,\n linkType: link?.linktype, \n name: link?.name,\n active: link?.active ?? true,\n children: isArray(link?.children) ? (link.children as any) : [], // UiLibButtonI[]\n };\n\n if (!mapped.label || !mapped.url) return null;\n return mapped;\n })\n .filter((x): x is UiLibNavItemsI => !!x);\n};\n\nexport const mapSocialLinks = (props: any[]): UiLibSocialItemsI[] => {\n if (!isArray(props)) return [];\n\n return props\n .map<UiLibSocialItemsI | null>((item) => {\n const link = item?.nav_link ?? item ?? {};\n const url: string | undefined = link.url ?? link.external_url ?? undefined;\n\n const mapped: UiLibSocialItemsI = {\n label: item?.label ?? link?.name ?? '',\n url: url ?? '',\n linkType: link?.linktype ?? (isHttp(url) ? 'external' : 'internal'),\n icon: (item?.icon ?? link?.icon ?? '') as string,\n order: item?.order ?? link?.order,\n };\n\n if (!mapped.label || !mapped.url) return null;\n\n if (mapped.icon == null) mapped.icon = '';\n\n return mapped;\n })\n .filter((x): x is UiLibSocialItemsI => !!x);\n};\n","import { mapImage } from \"../../../utils/utils\";\nimport { mapNavModalWithLang, mapSocialLinks } from \"./nav-modal.mapper\";\nimport { ComponentMapperFn } from \"./types\";\n\nexport const mapHeaderClear: ComponentMapperFn = (props) => {\n // Obtener el idioma de las props\n const currentLang = props?.lang || 'es';\n \n // Mapear solo los navLinks del nav-modal con el idioma correcto\n const navItems = mapNavModalWithLang(props?.['nav-modal']?.navLinks || [], currentLang);\n const socialItems = mapSocialLinks(props?.['nav-modal']?.socialLinks || []);\n \n return { \n logo: mapImage(props?.logo),\n logoDark: mapImage(props?.logoDark),\n lang: currentLang,\n navItems: navItems,\n socialItems: socialItems,\n homeLink: navItems[0]\n };\n};","import { mapButtons } from '../../../utils/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapHeroSection: ComponentMapperFn = (props) => ({\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});\n","import { mapButtons } from '../../../utils/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});","import { mapButtons } from '../../../utils/utils';\nimport { ComponentMapperFn } from './types';\n\nexport const mapLinksFooter: ComponentMapperFn = (props) => ({ \n links: mapButtons(props?.footer_links),\n});","import { mapButtons } from '../../../utils/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?.button)[0],\n});\n","import { mapButtons, mapImage } from '../../../utils/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});","import { UiLibAddressI } from '../../../interfaces';\nimport { mapButtons, mapImage } from '../../../utils/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});","import { mapCategoryProgress } from './category-progress.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 { mapNavModal } from './nav-modal.mapper';\nimport { mapSectionIntro } from './section-intro.mapper';\nimport { mapSocialFooter } from './social-footer.mapper';\nimport { mapVisualFooter } from './visual-footer.mapper';\n\nexport const componentMappers: Record<string, (props: any) => any> = {\n 'hero-section': mapHeroSection,\n 'header-clear': mapHeaderClear,\n 'nav-modal': mapNavModal,\n 'lang-modal': mapLangModal,\n 'section-intro': mapSectionIntro,\n 'category-progress': mapCategoryProgress,\n 'links-footer': mapLinksFooter,\n 'legal-footer': mapLegalFooter,\n 'social-footer': mapSocialFooter,\n 'visual-footer': mapVisualFooter,\n};\n","import { inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { BodyComponent } from '../../interfaces/page-config.interface';\nimport { componentMappers } from './component-mappers';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MapperService {\n private platformId = inject(PLATFORM_ID);\n\n mapComponents<T>(body: any[]): BodyComponent<T>[] {\n if (!body || body.length === 0) {\n return [];\n }\n\n return body\n .filter(\n (component) => component && component.name && component.props\n )\n .map((component) => {\n const name = component.name.toLowerCase();\n const mapper = componentMappers[name];\n\n const mapped: BodyComponent<T> = {\n name,\n order: component.order,\n props: {} as T,\n };\n\n if (mapper) {\n try {\n mapped.props = mapper(component.props) as T;\n } catch (e) {\n console.error(\n `Error mapping props for component \"${name}\"`,\n e\n );\n }\n } else {\n console.warn(`No mapper found for component \"${name}\"`);\n }\n\n return mapped;\n });\n }\n}\n","import { Injectable, PLATFORM_ID, inject, signal } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map, startWith } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class ScreenSizerService {\n readonly breakpoints = {\n xs: 480,\n sm: 768,\n md: 1024,\n lg: 1280,\n xl: 1536,\n };\n\n readonly isXs = signal(false);\n readonly isSm = signal(false);\n readonly isMd = signal(false);\n readonly isLg = signal(false);\n readonly isXl = signal(false);\n\n readonly minSm = signal(false);\n readonly minMd = signal(false);\n readonly minLg = signal(false);\n readonly minXl = signal(false);\n\n private readonly platformId = inject(PLATFORM_ID);\n\n get width(): number {\n if (isPlatformBrowser(this.platformId)) {\n return Math.min(window.innerWidth, window.outerWidth);\n }\n return 0;\n }\n\n constructor() {\n if (isPlatformBrowser(this.platformId)) {\n fromEvent(window, 'resize')\n .pipe(\n debounceTime(200),\n map(() => this.width),\n distinctUntilChanged(),\n startWith(this.width)\n )\n .subscribe(width => this.updateFlags(width));\n }\n }\n\n private updateFlags(width: number) {\n const { xs, sm, md, lg, xl } = this.breakpoints;\n\n this.isXs.set(width < sm);\n this.isSm.set(width >= sm && width < md);\n this.isMd.set(width >= md && width < lg);\n this.isLg.set(width >= lg && width < xl);\n this.isXl.set(width >= xl);\n\n this.minSm.set(width >= sm);\n this.minMd.set(width >= md);\n this.minLg.set(width >= lg);\n this.minXl.set(width >= xl);\n }\n\n // Métodos rápidos si no usas signals directamente\n isXsInstant() { return this.isXs(); }\n isSmInstant() { return this.isSm(); }\n isMdInstant() { return this.isMd(); }\n isLgInstant() { return this.isLg(); }\n isXlInstant() { return this.isXl(); }\n\n minSmInstant() { return this.minSm(); }\n minMdInstant() { return this.minMd(); }\n minLgInstant() { return this.minLg(); }\n minXlInstant() { return this.minXl(); }\n}\n","/*\n * Public API Surface of ui-lib\n */\n\n/* COMPONENTS */\nexport * from './lib/components/core/index';\nexport * from './lib/components/shared/index';\nexport * from './lib/components/effects/index';\n\n// /* SERVICES */\nexport * from './lib/services';\n\n// /* INTERFACES */\nexport * from './lib/interfaces';\n\n// /* UTILS */\nexport * from './lib/utils';\n\n// /* ENUMS */\nexport * from './lib/Enum';\n\n// /* DIRECTIVES */\nexport * from './lib/directives';\n\n// /* MODULES */\nexport * from './lib/modules';\n\n// export * from './lib/ui-lib.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.ThemeService"],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { UiLibAddressI, UiLibButtonI, UiLibImageI } from '../../../../interfaces';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class VisualFooterComponent {
|
|
4
|
+
contactTitle?: string;
|
|
5
|
+
contactPhone?: UiLibButtonI;
|
|
6
|
+
contactEmail?: UiLibButtonI;
|
|
7
|
+
addressTitle?: string;
|
|
8
|
+
address?: UiLibAddressI;
|
|
9
|
+
socialsTitle?: string;
|
|
10
|
+
socials?: UiLibButtonI[];
|
|
11
|
+
image?: UiLibImageI;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<VisualFooterComponent, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<VisualFooterComponent, "lib-visual-footer", never, { "contactTitle": { "alias": "contactTitle"; "required": false; }; "contactPhone": { "alias": "contactPhone"; "required": false; }; "contactEmail": { "alias": "contactEmail"; "required": false; }; "addressTitle": { "alias": "addressTitle"; "required": false; }; "address": { "alias": "address"; "required": false; }; "socialsTitle": { "alias": "socialsTitle"; "required": false; }; "socials": { "alias": "socials"; "required": false; }; "image": { "alias": "image"; "required": false; }; }, {}, never, never, true, never>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { UiLibAddressI, UiLibButtonI, UiLibImageI } from "../../../../interfaces";
|
|
2
|
+
export interface VisualFooterI {
|
|
3
|
+
contactTitle?: string;
|
|
4
|
+
contactPhone?: UiLibButtonI;
|
|
5
|
+
contactEmail?: UiLibButtonI;
|
|
6
|
+
addressTitle?: string;
|
|
7
|
+
address?: UiLibAddressI;
|
|
8
|
+
socialsTitle?: string;
|
|
9
|
+
socials?: UiLibButtonI[];
|
|
10
|
+
image?: UiLibImageI;
|
|
11
|
+
}
|
package/lib/components/core/{header-clear → headers/header-clear}/header-clear.component.d.ts
RENAMED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
-
import { UiLibButtonI } from '
|
|
3
|
-
import {
|
|
4
|
-
import { UiLibNavItemsI, UiLibSocialItemsI } from '../../../interfaces/ui-lib-nav-items.interface';
|
|
5
|
-
import { Theme, ThemeService } from '../../../services/theme';
|
|
2
|
+
import { UiLibButtonI, UiLibImageI, UiLibNavItemsI, UiLibSocialItemsI } from '../../../../interfaces';
|
|
3
|
+
import { Theme, ThemeService } from '../../../../services/theme';
|
|
6
4
|
import * as i0 from "@angular/core";
|
|
7
5
|
export declare class HeaderClearComponent implements OnInit, OnDestroy {
|
|
8
6
|
private themeService;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { UiLibButtonI, UiLibImageI, UiLibNavItemsI, UiLibSocialItemsI } from "../../../../interfaces";
|
|
2
|
+
export interface HeaderClearI {
|
|
3
|
+
logo?: UiLibImageI;
|
|
4
|
+
logoDark?: UiLibImageI;
|
|
5
|
+
lang?: string;
|
|
6
|
+
navItems?: UiLibNavItemsI[];
|
|
7
|
+
homeLink?: UiLibButtonI;
|
|
8
|
+
socialItems?: UiLibSocialItemsI[];
|
|
9
|
+
}
|
package/lib/components/core/{header-mobile → headers/header-mobile}/header-mobile.component.d.ts
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
-
import { UiLibButtonI } from '
|
|
3
|
-
import { UiLibImageI } from '
|
|
4
|
-
import { UiLibNavItemsI, UiLibSocialItemsI } from '
|
|
5
|
-
import { Theme, ThemeService } from '
|
|
2
|
+
import { UiLibButtonI } from '../../../../interfaces/ui-lib-button.interface';
|
|
3
|
+
import { UiLibImageI } from '../../../../interfaces/ui-lib-image.interface';
|
|
4
|
+
import { UiLibNavItemsI, UiLibSocialItemsI } from '../../../../interfaces/ui-lib-nav-items.interface';
|
|
5
|
+
import { Theme, ThemeService } from '../../../../services/theme';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export declare class HeaderMobileComponent implements OnInit, OnDestroy {
|
|
8
8
|
private themeService;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { UiLibButtonI, UiLibImageI, UiLibNavItemsI, UiLibSocialItemsI } from "../../../../interfaces";
|
|
2
|
+
export interface HeaderMobileI {
|
|
3
|
+
logo?: UiLibImageI;
|
|
4
|
+
logoDark?: UiLibImageI;
|
|
5
|
+
lang?: string;
|
|
6
|
+
navItems?: UiLibNavItemsI[];
|
|
7
|
+
homeLink?: UiLibButtonI;
|
|
8
|
+
socialItems?: UiLibSocialItemsI[];
|
|
9
|
+
}
|