import { html, unsafeCSS } from 'lit'; import { property } from 'lit/decorators.js'; import { PieElement } from '@justeattakeaway/pie-webc-core/src/internals/PieElement'; import { safeCustomElement } from '@justeattakeaway/pie-webc-core'; import { ifDefined } from 'lit/directives/if-defined.js'; import '@justeattakeaway/pie-link'; import '@justeattakeaway/pie-icons-webc/dist/IconChevronRight.js'; import styles from '../breadcrumb.scss?inline'; import { type BreadcrumbItemProps } from './defs'; const componentSelector = 'pie-breadcrumb-item'; // Valid values available to consumers export * from './defs'; /** * @tagname pie-breadcrumb-item */ @safeCustomElement('pie-breadcrumb-item') export class PieBreadcrumbItem extends PieElement implements BreadcrumbItemProps { @property({ type: String }) public href: BreadcrumbItemProps['href']; @property({ type: String }) public target: BreadcrumbItemProps['target']; @property({ type: Object }) public aria: BreadcrumbItemProps['aria']; /** * Renders a separator icon between breadcrumb items. * * @returns {TemplateResult} HTML template for the separator icon. * * @private */ private renderSeparator () { return html` `; } /** * Renders a navigation link for a breadcrumb item. * * @private */ private renderNavigationLink () { return html` `; } render () { return html`
  • ${this.renderNavigationLink()} ${this.renderSeparator()}
  • `; } // Renders a `CSSResult` generated from SCSS by Vite static styles = unsafeCSS(styles); } declare global { interface HTMLElementTagNameMap { [componentSelector]: PieBreadcrumbItem; } }