/// <reference path="../../index.d.ts" />
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { Alignment, Scale } from "../interfaces.js";

/**
 * @cssproperty [--calcite-label-margin-bottom] - Specifies the component's bottom spacing.
 * @cssproperty [--calcite-label-text-color] - Specifies the component's text color.
 * @slot  - A slot for adding text and a component that can be labeled.
 */
export abstract class Label extends LitElement {
  /**
   * Specifies the component's text alignment.
   *
   * @default "start"
   */
  accessor alignment: Alignment;
  /** Specifies the `id` of the component the label is bound to. Use when the component the label is bound to does not reside within the component. */
  accessor for: string | undefined;
  /**
   * Defines the component's layout in relation to the slotted component. Use `"inline"` positions to wrap the label and slotted component on the same line.  [Deprecated] The `"default"` value is deprecated, use `"block"` instead.
   *
   * @default "default"
   */
  accessor layout: "block" | "inline" | "inline-space-between" | "default";
  /**
   * Specifies the size of the component.
   *
   * @default "m"
   */
  accessor scale: Scale;
}