@esri/calcite-components
Version:
Web Components for Esri's Calcite Design System.
39 lines (38 loc) • 2.62 kB
JavaScript
/*! All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://github.com/Esri/calcite-design-system/blob/dev/LICENSE.md for details.
v3.2.1 */
import { c as customElement } from "../../chunks/runtime.js";
import { html } from "lit-html";
import { LitElement, nothing, safeClassMap } from "@arcgis/lumina";
import { css } from "@lit/reactive-element/css-tag.js";
const CSS = {
container: "container",
containerNoSpacing: "container--no-spacing",
heading: "heading"
};
const styles = css`.scale--s{font-size:var(--calcite-font-size--2);line-height:1rem;--calcite-internal-autocomplete-item-group-spacing-unit: .5rem}.scale--m{font-size:var(--calcite-font-size--1);line-height:1rem;--calcite-internal-autocomplete-item-group-spacing-unit: .75rem}.scale--l{font-size:var(--calcite-font-size-0);line-height:1.25rem;--calcite-internal-autocomplete-item-group-spacing-unit: 1rem}:host{margin:0;display:flex;flex-direction:column}.container{display:flex;flex-direction:column;background-color:var(--calcite-autocomplete-background-color, var(--calcite-color-foreground-1));padding-block-start:var(--calcite-internal-autocomplete-item-group-spacing-unit)}.container--no-spacing{padding-block-start:0}.heading{border:0 solid;box-sizing:border-box;inline-size:100%;min-inline-size:0px;max-inline-size:100%;border-block-end-width:1px;font-weight:var(--calcite-font-weight-bold);word-wrap:break-word;word-break:break-word;color:var(--calcite-autocomplete-text-color, var(--calcite-color-text-2));border-block-end-color:var(--calcite-autocomplete-border-color, var(--calcite-color-border-3));padding-block:var(--calcite-internal-autocomplete-item-group-spacing-unit);padding-inline:var(--calcite-internal-autocomplete-item-group-spacing-unit)}:host([hidden]){display:none}[hidden]{display:none}`;
class AutocompleteItemGroup extends LitElement {
constructor() {
super(...arguments);
this.disableSpacing = false;
this.scale = "m";
}
static {
this.properties = { disableSpacing: [5, {}, { type: Boolean }], heading: 1, label: 1, scale: 1 };
}
static {
this.styles = styles;
}
render() {
const { scale } = this;
return html`<div aria-label=${this.label ?? this.heading ?? nothing} class=${safeClassMap({
[CSS.container]: true,
[CSS.containerNoSpacing]: this.disableSpacing,
[`scale--${scale}`]: true
})} role=group><div class=${safeClassMap(CSS.heading)} role=presentation>${this.heading}</div><slot></slot></div>`;
}
}
customElement("calcite-autocomplete-item-group", AutocompleteItemGroup);
export {
AutocompleteItemGroup
};