/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ import { html, ifDefined } from "chrome://global/content/vendor/lit.all.mjs"; import { MozLitElement } from "chrome://global/content/lit-utils.mjs"; /** * Cards contain content and actions about a single subject. * There are two card types: * The default type where no type attribute is required and the card * will have no extra functionality. * * The "accordion" type will initially not show any content. The card * will contain an arrow to expand the card so that all of the content * is visible. * * * @property {string} heading - The heading text that will be used for the card. * @property {string} type - (optional) The type of card. No type specified * will be the default card. The other available type is "accordion" * @slot content - The content to show inside of the card. */ export default class MozCard extends MozLitElement { static queries = { detailsEl: "#moz-card-details", headingEl: "#heading", contentSlotEl: "#content", }; static properties = { heading: { type: String }, type: { type: String, reflect: true }, expanded: { type: Boolean }, }; constructor() { super(); this.expanded = false; this.type = "default"; } headingTemplate() { if (!this.heading) { return ""; } return html`