UNPKG

@oslokommune/punkt-elements

Version:

Komponentbiblioteket til Punkt, et designsystem laget av Oslo Origo

145 lines (144 loc) 4.32 kB
import { a as e, c as t, d as n, r, s as i } from "./element-cZ85T_aa.js"; import { t as a } from "./class-map-C8HuhNzZ.js"; import { n as o, t as s } from "./element-with-slot-4J2o3SeU.js"; import { t as c } from "./if-defined-Cjj8qN-Z.js"; import { n as l, t as u } from "./ref-RS8Uv6uC.js"; //#region src/components/accordion/accordion.ts var d = class extends e { constructor(...e) { super(...e), this.ariaLabelledBy = "", this.compact = !1, this.skin = "borderless", this.name = ""; } updated(e) { e.has("skin") && this.requestUpdate(), e.has("name") && this.updateAccordionItemNames(); } updateAccordionItemNames() { if (this.name) { let e = this.renderRoot?.querySelector("slot"); e && e.assignedElements().forEach((e) => { e.tagName.toLowerCase() === "pkt-accordion-item" && (e.hasAttribute("name") || e.setAttribute("name", this.name)); }); } } firstUpdated() { let e = this.renderRoot?.querySelector("slot"); e && e.addEventListener("slotchange", () => { this.updateAccordionItemNames(); }); } render() { return n` <div part="container" class=${a({ "pkt-accordion": !0, "pkt-accordion--compact": this.compact, [`pkt-accordion--${this.skin}`]: this.skin })} data-testid="pkt-accordion" aria-labelledby=${this.ariaLabelledBy} > <slot></slot> </div> `; } }; r([i({ type: String, reflect: !0, attribute: "aria-labelledby" })], d.prototype, "ariaLabelledBy", void 0), r([i({ type: Boolean, reflect: !0, attribute: "compact" })], d.prototype, "compact", void 0), r([i({ type: String, reflect: !0, attribute: "skin" })], d.prototype, "skin", void 0), r([i({ type: String, reflect: !0, attribute: "name" })], d.prototype, "name", void 0); try { t("pkt-accordion")(d); } catch { console.warn("Forsøker å definere <pkt-accordion>, men den er allerede definert"); } //#endregion //#region src/components/accordion/accordionitem.ts var f = class extends s { constructor() { super(), this.defaultOpen = !1, this.title = "", this.skin = void 0, this.compact = !1, this.isOpen = !1, this.name = void 0, this.accordionItemRef = u(); } firstUpdated(e) { this.defaultOpen && (this.isOpen = !0); } render() { let e = { "pkt-accordion-item": !0, "pkt-accordion-item--compact": this.compact, [`pkt-accordion-item--${this.skin}`]: !!this.skin }, t = this.skin === "plus-minus"; return n` <details class=${a(e)} id=${this.id} ?open=${this.isOpen} ${l(this.accordionItemRef)} name=${c(this.name)} > <summary class="pkt-accordion-item__title" id=${`pkt-accordion-item-summary-${this.id}`}> ${this.title} ${t ? n` <pkt-icon name="plus-sign" class="pkt-accordion-item__icon pkt-accordion-item__icon--plus" aria-hidden="true" ></pkt-icon> <pkt-icon name="minus-sign" class="pkt-accordion-item__icon pkt-accordion-item__icon--minus" aria-hidden="true" ></pkt-icon> ` : n` <pkt-icon name="chevron-thin-down" class="pkt-accordion-item__icon" aria-hidden="true" ></pkt-icon> `} </summary> <div class="pkt-accordion-item__content" id="pkt-accordion-item__content-${this.id}" role="region" > <div class="pkt-accordion-item__content-inner">${o(this)}</div> </div> </details> `; } }; r([i({ type: Boolean })], f.prototype, "defaultOpen", void 0), r([i({ type: String })], f.prototype, "title", void 0), r([i({ type: String, reflect: !0 })], f.prototype, "skin", void 0), r([i({ type: Boolean, reflect: !0 })], f.prototype, "compact", void 0), r([i({ type: Boolean, reflect: !0 })], f.prototype, "isOpen", void 0), r([i({ type: String, reflect: !0 })], f.prototype, "name", void 0); try { t("pkt-accordion-item")(f); } catch { console.warn("Forsøker å definere <pkt-accordion-item>, men den er allerede definert"); } //#endregion //#region src/components/accordion/index.ts var p = d; //#endregion export { f as n, d as r, p as t };