@progressive-development/pd-page
Version:
Progressive development page helper, teaser, menu, footer.
79 lines • 4.31 kB
TypeScript
import { LitElement, CSSResultGroup } from 'lit';
import { PdFooterLink, PdFooterMadeBy, PdFooterSection } from '../types';
import { SocialEntry } from '@progressive-development/pd-composite';
/**
* Modern mega-footer with hierarchical sections, social media, and legal links.
*
* @summary Footer with section columns, social icons, legal links, and slots.
*
* @tagname pd-footer
*
* @event footer-link - Fired when a section link or legal link is clicked.
*
* @slot logo - Company or brand logo, rendered above sections.
* @slot extra - Custom content (newsletter, CTA), rendered beside sections on desktop.
*
* @cssprop --pd-footer-bg-col - Footer background (color or gradient). Default: `var(--pd-default-col)`.
* @cssprop --pd-footer-font-col - Footer text color. Default: `var(--pd-on-primary-col)`.
* @cssprop --pd-footer-gradient - Gradient overlay for bg-image. Default: `none`.
* @cssprop --pd-footer-text-shadow - Text shadow for readability over images. Default: `none`.
* @cssprop --pd-footer-bg-size - CSS background-size for the bg image. Default: `cover`.
* @cssprop --pd-footer-bg-repeat - CSS background-repeat for the bg image. Default: `no-repeat`.
* @cssprop --pd-footer-bg-attachment - CSS background-attachment for the bg image. Default: `scroll`.
* @cssprop --pd-footer-bg-position - CSS background-position for the bg image. Default: `center`.
* @cssprop --pd-footer-font-family - Footer font family. Default: `var(--pd-default-font-link-family)`.
* @cssprop --pd-footer-font-size - Footer font size. Default: `1em`.
* @cssprop --pd-footer-max-width - Max width of content area. Default: `var(--pd-content-max-width, 1170px)`.
* @cssprop --pd-footer-padding - Main content padding. Default: `var(--pd-spacing-lg) var(--pd-spacing-md)`.
* @cssprop --pd-footer-section-gap - Gap between section columns. Default: `var(--pd-spacing-lg)`.
* @cssprop --pd-footer-heading-font-size - Section heading size. Default: `1.1em`.
* @cssprop --pd-footer-heading-font-weight - Section heading weight. Default: `bold`.
* @cssprop --pd-footer-link-font-size - Section link size. Default: `0.95em`.
* @cssprop --pd-footer-link-hover-col - Link hover color. Default: `var(--pd-default-hover-col)`.
* @cssprop --pd-footer-social-icon-size - Social icon size. Default: `2.5rem`.
* @cssprop --pd-footer-social-gap - Social icon spacing. Default: `var(--pd-spacing-sm)`.
* @cssprop --pd-footer-divider-col - Divider color. Default: `rgba(255,255,255,0.15)`.
* @cssprop --pd-footer-bottom-col - Bottom bar background. Default: `var(--pd-default-light-col)`.
* @cssprop --pd-footer-bottom-font-size - Bottom bar font size. Default: `0.9em`.
* @cssprop --pd-footer-bottom-font-col - Bottom bar text color. Default: `var(--pd-default-dark-col)`.
*/
export declare class PdFooter extends LitElement {
/** Hierarchical navigation sections (columns on desktop, accordions on mobile). */
sections: PdFooterSection[];
/** Social media links. Resolved against SOCIAL_PROVIDERS for icons and URLs. */
socialLinks: SocialEntry[];
/** Legal / bottom-bar links (e.g., Privacy, Imprint, Terms). */
legalLinks: PdFooterLink[];
/** Copyright text, e.g. "2026 PD Progressive Development UG". */
copyright: string;
/** Version string, e.g. "v1.2.3". Hidden by default. */
version: string;
/** Whether to show the version string in the bottom bar. */
showVersion: boolean;
/** Developer or agency reference with text and email/link. */
madeBy?: PdFooterMadeBy;
/** Background image URL for the footer main area. */
bgImage: string;
private _isMobile;
private _openSections;
private _mediaQueryList?;
private _boundMediaQueryHandler;
static styles: CSSResultGroup;
connectedCallback(): void;
disconnectedCallback(): void;
render(): import('lit').TemplateResult<1>;
private _renderSections;
private _renderAccordion;
private _renderSocialLinks;
private _renderBottomBar;
private _footerLinkClicked;
private _handleLinkKeydown;
private _toggleSection;
private _handleSectionKeydown;
private _clickMadeBy;
private _handleMadeByKeydown;
private _handleMediaQuery;
private _findProvider;
private _toSocialUrl;
}
//# sourceMappingURL=PdFooter.d.ts.map