import { h, r as registerInstance, c as createEvent, H as Host, g as getElement } from './index-090d31ca.js';
import { s as sanitizeVegaComponent } from './component-7d906393.js';
import { c as MapToComponentField, V as VegaSlimmer, M as MapToComponentMethod, I as InjectVegaSlimmer } from './global-slimmer-registry-17c4efd4.js';
import { V as VegaComponentUsageRuntimeMetricsSlimmer, I as InjectVegaGlobalSlimmer } from './component-usage-runtime-metrics-46020a03.js';
import { c as createEventEmitSlimmer } from './event-emit-slimmer-1c57093d.js';
import { i as VegaChange } from './vega-event-id-a6ccca66.js';
import { C as ChangeManager } from './change-manager-6a7eb88c.js';
import { i as SELECTION_TILE_VALUE_CHANGE, C as CHECKBOX_VALUE_CHANGE, R as RADIO_VALUE_CHANGE, F as FORM_ELEMENT_VALUE_CHANGE } from './static-subject-title-52f93124.js';
import { S as SubStateObserverSlimmer } from './sub-state-observer-slimmer-2adbbe00.js';
import { h as VegaInternalFieldErrorStateChange } from './vega-internal-event-id-db974a0d.js';
import { f as findParent } from './ui-b7600a48.js';
import { O as Observer } from './observer-3959f9dd.js';
import { d as domNodeSubjectFactory } from './dom-node-subject-observer-factory-aca0116e.js';
import { C as ChildNodesEventPreventSlimmer } from './child-nodes-event-prevent-slimmer-75f93d85.js';
import { C as ChildNodesNotifyObserverSlimmer } from './child-nodes-notify-observer-slimmer-a8cb19cf.js';
import { c as createSubStateNotifySlimmer } from './sub-state-notify-slimmer-63ecb465.js';
import { F as FormFieldControllerSlimmer } from './form-field-controller-slimmer-ae8478b5.js';
import { R as RequiredFieldRule } from './required-field-rule-ab4bdc47.js';
import './dynamic-slimmer-90b8af32.js';
import './internal-vega-event-manager-7cdf3c28.js';
import './try-get-document-bef0f526.js';
import './vega-env-manager-8f8dc473.js';
import './feature-flag-controller-30f7b625.js';
import './index-bfc6dfa2.js';
import './string-a953eafc.js';
import './misc-9fdbcfbb.js';
import './internal-translation-controller-d7dee4a0.js';
import './index-3b327f29.js';
import './page-resize-observer-slimmer-e24d36c5.js';
import './breakpoints-332702ed.js';
import './ui-93922c59.js';
import './breakpoints-d9faf11c.js';
import './internal-form-field-validation-rule.abstract-f5b6bdbf.js';
import './mutation-observer-slimmer-58ebc13c.js';
import './mutation-observer-filters-1a054fb0.js';
import './array-7888f339.js';
import './number-4398f2e1.js';

var __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  return c > 3 && r && Object.defineProperty(target, key, r), r;
};
class VegaSelectionTileRenderer extends VegaSlimmer {
  constructor() {
    super(...arguments);
    /**
     * Activation handler invoked from the host's `@Listen('click')` listener
     * (registered on the host element itself). The host carries
     * `role="radio"`/`"checkbox"`, `tabindex`, and the activation listeners,
     * so this is the only interactive node per tile. VoiceOver's VO+Space
     * dispatches a synthetic click on the focused host, which reaches this
     * function through `VegaSelectionTile.onHostClick()`.
     */
    this.activate = () => {
      if (this.disabled) {
        return;
      }
      if (!(this.selectType === 'radio' && this.checked)) {
        this.checkedController.onCheck(!this.checked);
      }
    };
    this.handleTileKeydown = (event) => {
      if (this.disabled) {
        return;
      }
      // eslint-disable-next-line spellcheck/spell-checker
      if (event.key === 'Enter' || event.key === ' ' || event.key === 'Spacebar') {
        event.preventDefault();
        this.activate();
      }
    };
  }
  getSelectorContainerRef() {
    return this.selectorContainerRef;
  }
  // Accessible name for the host's `aria-label`. Public because the
  // component renders the host and needs to call this to compute the
  // host's `aria-label` value (see `VegaSelectionTile.render`).
  //
  // Fallback chain: titleText (+ note) → trimmed host light-DOM text
  // (covers `content`/`prefix` slots) → `value`. `note` is appended so
  // VoiceOver announces both the title and the supporting line
  // (e.g. "Basic Plan, $9 / month") when traversing tiles with VO+→/VO+←;
  // the visual subtree is `aria-hidden`, so without this the note would
  // never reach the accessibility tree.
  //
  // The parent group's label is intentionally NOT prepended here: the
  // group renderer exposes its label as an independently focusable AT
  // stop, so duplicating it on every tile would make AT users hear the
  // group label N+1 times.
  getAccessibleName() {
    if (this.titleText) {
      return this.note ? `${this.titleText}, ${this.note}` : this.titleText;
    }
    // Prefer `innerText` so adjacent inline/block elements are separated
    // by whitespace (e.g. `<div>Pro Plan<span>Popular</span></div>` reads
    // as "Pro Plan Popular" instead of "Pro PlanPopular" from raw
    // `textContent` concatenation). Fall back to `textContent` for
    // environments (e.g. jsdom) that do not implement `innerText`, and
    // to `''` to satisfy the `string | null` type of `textContent`.
    const raw = this.host.innerText || this.host.textContent || '';
    const slotText = raw.replace(/\s+/g, ' ').trim();
    return slotText || this.value || '';
  }
  render() {
    // ARIA semantics (role/aria-*), focus (tabindex), and activation
    // handlers live on the COMPONENT HOST (see `VegaSelectionTile.render`
    // and the `@Listen('click')`/`@Listen('keydown')` methods on the
    // component class), not on this inner element. Keeping role + tabindex
    // off this element is what prevents Firefox/VoiceOver from triple-
    // announcing each tile (host group wrapper + inner role=radio + host
    // close). This element is now purely a layout/styling wrapper.
    return (h("vega-flex", { "align-items": "start", "justify-content": "start", gap: "size-16", class: {
        'selection-tile': true,
        'disabled': this.disabled,
        'checked': this.checked,
        'error': this.showError,
      } },
      h("div", { class: "vega-flex-grow", "aria-hidden": "true" }, this.renderContent()),
      this.renderSelect()));
  }
  renderContent() {
    if (this.hasContentSlot()) {
      return h("slot", { name: "content" });
    }
    else {
      return (h("vega-flex", { gap: "size-12" },
        h("vega-flex", { class: "vega-flex-shrink-0" }, this.renderPrefixIcon()),
        h("div", { class: "vega-flex-grow" }, this.renderText())));
    }
  }
  renderPrefixIcon() {
    if (this.hasPrefixSlot()) {
      return h("slot", { name: "prefix" });
    }
    else if (this.prefixIcon) {
      return (h("vega-icon", { icon: this.prefixIcon, size: "size-16", color: this.disabled ? 'text-secondary' : 'text-primary', class: "selection-tile-icon" }));
    }
  }
  renderText() {
    return (h("vega-flex", { class: "vega-flex-grow", direction: "col", "align-items": "start", "justify-content": "start" },
      h("div", { class: "selection-tile-title" }, this.titleText),
      this.note && h("div", { class: "selection-tile-note" }, this.note)));
  }
  renderSelect() {
    return (h("vega-flex", Object.assign({ "align-items": "start", class: "vega-flex-shrink-0 selection-tile-select", "aria-hidden": "true" }, { inert: true }, { ref: (ref) => (this.selectorContainerRef = ref) }), this.selectType === 'checkbox' ? this.renderCheckbox() : this.renderRadio()));
  }
  renderCheckbox() {
    return h("vega-checkbox", { size: "small", disabled: this.disabled, checked: this.checked });
  }
  renderRadio() {
    return h("vega-radio", { size: "small", disabled: this.disabled, checked: this.checked });
  }
  hasPrefixSlot() {
    return this.host.querySelector(`[slot=prefix]`) !== null;
  }
  hasContentSlot() {
    return this.host.querySelector(`[slot=content]`) !== null;
  }
}
__decorate$8([
  MapToComponentField()
], VegaSelectionTileRenderer.prototype, "host", void 0);
__decorate$8([
  MapToComponentField()
], VegaSelectionTileRenderer.prototype, "prefixIcon", void 0);
__decorate$8([
  MapToComponentField()
], VegaSelectionTileRenderer.prototype, "titleText", void 0);
__decorate$8([
  MapToComponentField()
], VegaSelectionTileRenderer.prototype, "note", void 0);
__decorate$8([
  MapToComponentField()
], VegaSelectionTileRenderer.prototype, "selectType", void 0);
__decorate$8([
  MapToComponentField()
], VegaSelectionTileRenderer.prototype, "disabled", void 0);
__decorate$8([
  MapToComponentField()
], VegaSelectionTileRenderer.prototype, "checked", void 0);
__decorate$8([
  MapToComponentField()
], VegaSelectionTileRenderer.prototype, "showError", void 0);
__decorate$8([
  MapToComponentField()
], VegaSelectionTileRenderer.prototype, "value", void 0);
__decorate$8([
  MapToComponentField()
], VegaSelectionTileRenderer.prototype, "checkedController", void 0);

var __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  return c > 3 && r && Object.defineProperty(target, key, r), r;
};
/**
 * The `VegaSelectionTileCheckedController` class in TypeScript manages the checked state of
 * a selection tile component.
 */
class VegaSelectionTileCheckedController extends VegaSlimmer {
  /**
   * The function `setChecked` in TypeScript sets the `checked` property to the specified boolean value.
   *
   * @param {boolean} checked - The `checked` parameter is a boolean value that determines whether an
   * item is selected or not. It is used in the `setChecked` method to update the `checked` property of
   * an object to the specified boolean value.
   */
  setChecked(checked) {
    this.checked = checked;
  }
  /**
   * The `onCheck` function in TypeScript updates the value, emits a change event, and notifies the
   * change manager based on the checked status.
   *
   * @param {boolean} checked - The `checked` parameter is a boolean value that indicates whether a
   * checkbox or a similar input element is checked or not.
   */
  onCheck(checked) {
    const value = checked ? this.value : '';
    this.checked = checked;
    this.changeEventEmitter.emit(value);
    ChangeManager.notify(SELECTION_TILE_VALUE_CHANGE, {
      host: this.host,
      detail: {
        checked: checked,
        value: this.value,
      },
    });
  }
}
__decorate$7([
  MapToComponentField()
], VegaSelectionTileCheckedController.prototype, "host", void 0);
__decorate$7([
  MapToComponentField({ writable: true })
], VegaSelectionTileCheckedController.prototype, "checked", void 0);
__decorate$7([
  MapToComponentField()
], VegaSelectionTileCheckedController.prototype, "changeEventEmitter", void 0);
__decorate$7([
  MapToComponentField()
], VegaSelectionTileCheckedController.prototype, "value", void 0);

var __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  return c > 3 && r && Object.defineProperty(target, key, r), r;
};
/**
 * The `VegaSelectionTileStateController` class is a TypeScript class that observes and manages
 * the state of a `HTMLVegaSelectionTileElement` component.
 */
class VegaSelectionTileStateController extends SubStateObserverSlimmer {
  // eslint-disable-next-line jsdoc/require-jsdoc
  constructor() {
    super({
      parent: 'vega-selection-tile-group',
      subStates: [
        {
          subStateName: 'selectType',
          parentStateName: 'selectType',
        },
        {
          subStateName: 'disabled',
          parentStateName: 'disabled',
          /**
           * If group defined disabled property we should synchronize this value,
           * 		otherwise keep the disabled value in selection tile unchanged.
           *
           * @param {Nullable<boolean>} groupDisabled - Disabled value in parent selection tile group.
           */
          callback: (groupDisabled) => {
            if (typeof groupDisabled === 'boolean') {
              this.disabled = groupDisabled;
            }
          },
        },
        {
          subStateName: 'checked',
          parentStateName: 'value',
          /**
           * Synchronize checked status according by the value from parent selection tile group.
           *
           * @param {string | string[]} groupValue - The value from parent selection tile group.
           */
          callback: (groupValue) => {
            this.checkedController.setChecked(Array.isArray(groupValue)
              ? groupValue.includes(this.value)
              : groupValue === this.value);
          },
        },
        {
          subStateName: 'distributeEvenly',
          parentStateName: 'distributeEvenly',
        },
      ],
    });
  }
}
__decorate$6([
  MapToComponentField()
], VegaSelectionTileStateController.prototype, "host", void 0);
__decorate$6([
  MapToComponentField({ writable: true })
], VegaSelectionTileStateController.prototype, "selectType", void 0);
__decorate$6([
  MapToComponentField({ writable: true })
], VegaSelectionTileStateController.prototype, "disabled", void 0);
__decorate$6([
  MapToComponentField()
], VegaSelectionTileStateController.prototype, "checked", void 0);
__decorate$6([
  MapToComponentField()
], VegaSelectionTileStateController.prototype, "value", void 0);
__decorate$6([
  MapToComponentField()
], VegaSelectionTileStateController.prototype, "checkedController", void 0);
__decorate$6([
  MapToComponentField({ writable: true })
], VegaSelectionTileStateController.prototype, "distributeEvenly", void 0);

var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  return c > 3 && r && Object.defineProperty(target, key, r), r;
};
/**
 * The `VegaSelectionTileShowErrorController` class is responsible for managing
 * the display of error messages in Vega selection tiles based on field error observations.
 */
class VegaSelectionTileShowErrorController extends VegaSlimmer {
  /**
   * Component lifecycle - [connectedCallback]{@link VegaSelectionTile.connectedCallback}
   */
  connectedCallback() {
    this.selectionTileGroup = findParent(this.host, 'vega-selection-tile-group');
    this.fieldErrorObserver = new Observer(this.canAcceptFieldErrorObserver.bind(this), this.fieldErrorObserverListener.bind(this));
    ChangeManager.register(domNodeSubjectFactory.getSubject(this.selectionTileGroup || this.host, VegaInternalFieldErrorStateChange), this.fieldErrorObserver);
  }
  /**
   * Component lifecycle - [disconnectedCallback]{@link VegaSelectionTile.disconnectedCallback}
   */
  disconnectedCallback() {
    ChangeManager.unregister(domNodeSubjectFactory.getSubject(this.selectionTileGroup, VegaInternalFieldErrorStateChange), this.fieldErrorObserver);
  }
  /**
   * The function `canAcceptFieldErrorObserver` always returns `true`.
   *
   * @returns {boolean} a boolean value, which indicates the current host is a checkbox or checkbox group.
   */
  canAcceptFieldErrorObserver() {
    return true;
  }
  /**
   * The function listens to the showError property of the returned object.
   *
   * @param {FieldErrorPayload} payload - The payload parameter is of type FieldErrorPayload, which is an object containing information about field.
   */
  fieldErrorObserverListener(payload) {
    this.showError = payload.showError;
  }
}
__decorate$5([
  MapToComponentField({ writable: true })
], VegaSelectionTileShowErrorController.prototype, "showError", void 0);
__decorate$5([
  MapToComponentField()
], VegaSelectionTileShowErrorController.prototype, "host", void 0);
__decorate$5([
  MapToComponentMethod('connectedCallback')
], VegaSelectionTileShowErrorController.prototype, "connectedCallback", null);
__decorate$5([
  MapToComponentMethod('disconnectedCallback')
], VegaSelectionTileShowErrorController.prototype, "disconnectedCallback", null);

const vegaSelectionTileCss = ":host::not(.distribute-evenly){display:block}:host(.distribute-evenly){display:flex;width:100%}:host(.distribute-evenly) .selection-tile{flex:1}:host{display:block}:host .selection-tile{padding-left:16px;padding-right:16px;padding-top:12px;padding-bottom:12px;border:1px solid rgba(var(--v-border-input-field, 171, 198, 216, 1));border-radius:8px;background-color:rgba(var(--v-bg-tile, 252, 252, 252, 1));color:rgba(var(--v-text-primary, 32, 54, 69, 1));cursor:pointer;margin:1px}:host .selection-tile:not(.disabled):hover{border:1px solid rgba(var(--v-border-input-field-hover, 115, 160, 190, 1));background-color:rgba(var(--v-bg-tile-hover, 245, 247, 247, 1))}:host .selection-tile:not(.disabled).checked{background-color:rgba(var(--v-bg-tile-selected, 242, 247, 255, 1));border:2px solid rgba(var(--v-border-tile-selected, 19, 98, 226, 1));margin:0px}:host .selection-tile:not(.disabled).checked:hover{border:2px solid rgba(var(--v-border-tile-selected-hover, 4, 112, 236, 1));background-color:rgba(var(--v-bg-tile-selected-hover, 229, 239, 255, 1))}:host .selection-tile:not(.disabled).error{border:1px solid rgba(var(--v-border-input-field-danger, 230, 50, 87, 1));background-color:rgba(var(--v-bg-tile, 252, 252, 252, 1))}:host .selection-tile:not(.disabled).error:hover{border:1px solid rgba(var(--v-border-input-field-danger-hover, 255, 87, 114, 1));background-color:rgba(var(--v-bg-tile-hover, 245, 247, 247, 1))}:host .selection-tile.disabled{border:1px solid rgba(var(--v-border-input-field-disabled, 222, 225, 227, 1));background-color:rgba(var(--v-bg-secondary, 245, 247, 247, 1));pointer-events:none}:host .selection-tile.disabled .selection-tile-title,:host .selection-tile.disabled .selection-tile-note{color:rgba(var(--v-text-input-disabled, 107, 116, 125, 1))}:host .selection-tile .selection-tile-title{font-family:\"Inter\", sans-serif;font-size:16px;font-weight:400;line-height:24px;letter-spacing:0px;color:rgba(var(--v-text-primary, 32, 54, 69, 1))}@media screen and (min-width: 768px) and (max-width: 1023px){:host .selection-tile .selection-tile-title{font-family:\"Inter\", sans-serif;font-size:16px;font-weight:400;line-height:24px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){:host .selection-tile .selection-tile-title{font-family:\"Inter\", sans-serif;font-size:16px;font-weight:400;line-height:24px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){:host .selection-tile .selection-tile-title{font-family:\"Inter\", sans-serif;font-size:16px;font-weight:400;line-height:24px;letter-spacing:0px}}:host .selection-tile .selection-tile-note{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px;color:rgba(var(--v-text-secondary, 107, 116, 125, 1))}@media screen and (min-width: 768px) and (max-width: 1023px){:host .selection-tile .selection-tile-note{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){:host .selection-tile .selection-tile-note{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){:host .selection-tile .selection-tile-note{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}:host .selection-tile .selection-tile-icon{margin-top:4px;margin-bottom:4px}:host .selection-tile .selection-tile-select{height:24px}:host .selection-tile .selection-tile-select vega-checkbox,:host .selection-tile .selection-tile-select vega-radio{margin-top:4px}:host(:focus-visible){outline:none}:host(:focus-visible:not([aria-disabled=true])) .selection-tile{border:1px solid rgba(var(--v-border-input-field-focus, 19, 98, 226, 1));background-color:rgba(var(--v-bg-tile, 252, 252, 252, 1));outline:2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));outline-offset:2px}:host(:focus-visible:not([aria-disabled=true])) .selection-tile.checked{border:2px solid rgba(var(--v-border-tile-selected, 19, 98, 226, 1));background-color:rgba(var(--v-bg-tile-selected, 242, 247, 255, 1));outline:2px solid rgba(var(--v-border-color-action, 19, 98, 226, 1));outline-offset:2px}:host(:focus-visible:not([aria-disabled=true])) .selection-tile.error{border:1px solid rgba(var(--v-border-input-field-danger, 230, 50, 87, 1));background-color:rgba(var(--v-bg-tile, 252, 252, 252, 1));outline:2px solid rgba(var(--v-border-color-danger, 230, 50, 87, 1));outline-offset:2px}";

var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
    r = Reflect.decorate(decorators, target, key, desc);
  else
    for (var i = decorators.length - 1; i >= 0; i--)
      if (d = decorators[i])
        r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  return c > 3 && r && Object.defineProperty(target, key, r), r;
};
const VegaSelectionTile = class {
  constructor(hostRef) {
    registerInstance(this, hostRef);
    this.vegaChange = createEvent(this, "vegaChange", 7);
    this.change = createEvent(this, "change", 7);
    this.globalSlimmers = {};
    this.renderer = new VegaSelectionTileRenderer();
    this.checkedController = new VegaSelectionTileCheckedController();
    this.stateController = new VegaSelectionTileStateController();
    this.showErrorController = new VegaSelectionTileShowErrorController();
    this.changeEventEmitter = createEventEmitSlimmer(VegaSelectionTile, VegaChange);
    this.checkboxEventPrevent = new ChildNodesEventPreventSlimmer([VegaChange], () => this.renderer.getSelectorContainerRef());
    this.checkboxValueChangeObserver = new ChildNodesNotifyObserverSlimmer(CHECKBOX_VALUE_CHANGE, (payload) => this.checkedController.onCheck(payload.detail));
    this.radioValueChangeObserver = new ChildNodesNotifyObserverSlimmer(RADIO_VALUE_CHANGE, (payload) => {
      if (payload.detail) {
        this.checkedController.onCheck(payload.detail);
      }
    });
    this.vegaComponentUsageRuntimeMetricsSlimmer = new VegaComponentUsageRuntimeMetricsSlimmer();
    /**
     * Indicates whether the parent selection tile group shows error message.
     */
    this.showError = false;
    /**
     * Distribute vega-selection-tile components evenly to always cover the entire available width of the parent
     */
    this.distributeEvenly = false;
    /**
     * Specifies the text content of the title displayed
     *    within the selection tile.
     *
     * @vegaVersion 2.7.0
     */
    this.titleText = '';
    /**
     * Determines if the selection tile is disabled.
     *
     * @vegaVersion 2.7.0
     */
    /* eslint-disable-next-line @stencil/strict-mutable */
    this.disabled = false;
    /**
     * Determines the selection method for the tile. Options are:
     *
     * - `radio`:
     *      Displays a radio button for selection.
     * - `checkbox`:
     *      Displays a checkbox for selection.
     *
     * @vegaVersion 2.7.0
     */
    /* eslint-disable-next-line @stencil/strict-mutable */
    this.selectType = 'radio';
    // Host-level activation listeners are attached via vDOM listeners
    // (`onClick` / `onKeyDown` on the `<Host>` element below). Stencil's
    // vDOM listeners use `addEventListener` under the hood, NOT the
    // `onclick`/`onkeydown` IDL properties, so:
    //   1. A consumer doing `tileEl.onclick = fn` cannot overwrite or
    //      remove our listener.
    //   2. A consumer attaching their own `addEventListener('click', ...)`
    //      coexists with ours and fires alongside it (DOM event spec).
    // So consumer code can observe / augment activation but cannot silently
    // break it. Only `event.stopImmediatePropagation()` in a handler that
    // runs before ours would suppress it -- an explicit opt-out, not a
    // surprise override.
    this.onHostClick = () => {
      this.renderer.activate();
    };
    this.onHostKeyDown = (event) => {
      this.renderer.handleTileKeydown(event);
    };
  }
  render() {
    // ARIA semantics, focus, and activation handlers ALL live on the host.
    //
    // Why not `role="presentation"` on the host + role on an inner shadow
    // element? Per ARIA 1.2, `role="presentation"`/`role="none"` is dropped
    // ("presentation conflict resolution") whenever the element has any
    // focusable descendants in the flat tree. Putting `tabindex="0"` on an
    // inner shadow element therefore demotes the host's presentation role,
    // and Firefox -- which enforces this rule strictly -- exposes the host
    // as a generic/group wrapper around the inner radio. VoiceOver then
    // triple-announces each tile:
    //   1. "<title>, group"               (host wrapper)
    //   2. "<title>, <note>, radio button" (inner role=radio)
    //   3. "end of <title>, group"        (host wrapper close)
    // Safari/Chrome happen to flatten the host out, masking the bug.
    // Collapsing role + tabindex + aria-* onto the host eliminates the
    // wrapper entirely -- the host *is* the radio/checkbox.
    //
    // NOTE on the `title` HTML attribute: `@Prop({ attribute: 'title' })
    // titleText` observes the `title` attribute, so we deliberately do
    // NOT pass `title={null}` to the Host -- doing so would strip the
    // attribute at render time, which would then trigger Stencil's
    // attribute observer and wipe `titleText` itself. The HTML `title`
    // attribute stays on the host as a harmless tooltip; the explicit
    // `aria-label` we emit takes precedence as the accessible name per
    // the W3C accessible name computation, so VoiceOver/NVDA announce
    // `aria-label` (which folds in the note line), not the tooltip text.
    return sanitizeVegaComponent(h(Host, { role: this.selectType === 'checkbox' ? 'checkbox' : 'radio', "aria-checked": this.checked ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', "aria-label": this.renderer.getAccessibleName() || undefined, tabindex: this.disabled ? -1 : 0, class: { 'distribute-evenly': this.distributeEvenly }, onClick: this.onHostClick, onKeyDown: this.onHostKeyDown }, this.renderer.render()), this.host);
  }
  get host() { return getElement(this); }
};
__decorate$4([
  InjectVegaGlobalSlimmer()
], VegaSelectionTile.prototype, "globalSlimmers", void 0);
__decorate$4([
  InjectVegaSlimmer()
], VegaSelectionTile.prototype, "renderer", void 0);
__decorate$4([
  InjectVegaSlimmer()
], VegaSelectionTile.prototype, "checkedController", void 0);
__decorate$4([
  InjectVegaSlimmer()
], VegaSelectionTile.prototype, "stateController", void 0);
__decorate$4([
  InjectVegaSlimmer()
], VegaSelectionTile.prototype, "showErrorController", void 0);
__decorate$4([
  InjectVegaSlimmer()
], VegaSelectionTile.prototype, "changeEventEmitter", void 0);
__decorate$4([
  InjectVegaSlimmer()
], VegaSelectionTile.prototype, "checkboxEventPrevent", void 0);
__decorate$4([
  InjectVegaSlimmer()
], VegaSelectionTile.prototype, "checkboxValueChangeObserver", void 0);
__decorate$4([
  InjectVegaSlimmer()
], VegaSelectionTile.prototype, "radioValueChangeObserver", void 0);
__decorate$4([
  InjectVegaSlimmer()
], VegaSelectionTile.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
VegaSelectionTile.style = vegaSelectionTileCss;

var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  return c > 3 && r && Object.defineProperty(target, key, r), r;
};
class VegaSelectionTileGroupRenderer extends VegaSlimmer {
  getGroupContainerRef() {
    return this.groupContainerRef;
  }
  render() {
    return (h("div", null,
      this.renderLabel(),
      this.renderContainer(),
      this.renderHint()));
  }
  renderLabel() {
    return (this.label && (
    // The label is exposed as its own focusable VoiceOver stop:
    // `tabindex="0"` puts it in the tab / VO swipe order, and
    // `aria-label` provides a clean accessible name that includes
    // "required" as a spoken word.
    //
    // The visible text + asterisk are wrapped in an
    // `aria-hidden="true"` span so VoiceOver does not descend into
    // the children and create extra swipe stops on the raw text
    // or the decorative "*" — the `aria-label` above is the
    // single thing AT users hear for this stop.
    h("div", { class: "vega-label" },
      h("span", { 
        // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
        tabindex: 0, "aria-label": this.required ? `${this.label} (required)` : this.label },
        h("span", { "aria-hidden": "true" },
          this.label,
          this.renderRequire())))));
  }
  renderRequire() {
    return (this.required && (h("span", { class: "vega-require", "aria-hidden": "true" }, "*")));
  }
  renderContainer() {
    return (
    // The container intentionally drops `role="radiogroup"`/`role="group"`
    // (and the group-level `aria-*` attributes those roles would imply)
    // so VoiceOver does not treat the container as a separate stop ahead
    // of the first tile. The group label above is now the single AT
    // stop that announces the group's purpose; child tiles are reached
    // directly after it without a wrapper announcement.
    h("div", { class: "container", ref: (e) => (this.groupContainerRef = e) },
      h("vega-flex", { direction: this.layout === 'horizontal' ? 'row' : 'col', gap: "size-12" },
        h("slot", { 
          /* eslint-disable-next-line react/jsx-no-bind */
          onSlotchange: 
          /**
           * The below method is e2e-test covered in
           * @see{module:vega-selection-tile-group-slot-change-e2e}
           */
          /* istanbul ignore next */
          () => this.itemsController.syncTileArrayAndValue() }))));
  }
  renderHint() {
    return (this.hint && (
    // Mirrors `renderLabel`: the hint is exposed as its own
    // focusable VoiceOver stop after the tile list, so AT users
    // can swipe to it and hear the supporting copy. The visible
    // text is wrapped in an `aria-hidden` span so VO only speaks
    // the `aria-label` once instead of also descending into the
    // child text node.
    h("div", { class: "vega-hint" },
      h("span", { 
        // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
        tabindex: 0, "aria-label": this.hint },
        h("span", { "aria-hidden": "true" }, this.hint)))));
  }
}
__decorate$3([
  MapToComponentField()
], VegaSelectionTileGroupRenderer.prototype, "host", void 0);
__decorate$3([
  MapToComponentField()
], VegaSelectionTileGroupRenderer.prototype, "label", void 0);
__decorate$3([
  MapToComponentField()
], VegaSelectionTileGroupRenderer.prototype, "required", void 0);
__decorate$3([
  MapToComponentField()
], VegaSelectionTileGroupRenderer.prototype, "hint", void 0);
__decorate$3([
  MapToComponentField()
], VegaSelectionTileGroupRenderer.prototype, "layout", void 0);
__decorate$3([
  MapToComponentField()
], VegaSelectionTileGroupRenderer.prototype, "itemsController", void 0);

var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  return c > 3 && r && Object.defineProperty(target, key, r), r;
};
/**
 * The `VegaSelectionTileGroupValueController` class in TypeScript manages the value selection for
 * a group of checkboxes or radio buttons.
 */
class VegaSelectionTileGroupValueController extends VegaSlimmer {
  /**
   * The `watchValue` function emits a change event with the current value and notifies the
   * `ChangeManager` about a form element value change.
   */
  watchValue() {
    this.changeEventEmitter.emit(this.value);
    ChangeManager.notify(FORM_ELEMENT_VALUE_CHANGE, {
      host: this.host,
      detail: this.value,
    });
  }
  /**
   * The function `onSelectionTilesChanged` determines whether to set the value from checkbox items or
   * radio items based on the selected type.
   */
  onSelectionTilesChanged() {
    this.selectType === 'checkbox' ? this.setValueFromCheckboxItems() : this.setValueFromRadioItems();
  }
  /**
   * The function `onSelectionTileChecked` checks the type of input and calls the appropriate function to set the value
   * based on the type (checkbox or radio).
   *
   * @param {VegaSelectionTileCheckedPayload} payload - The `value` parameter in the `onSelectionTileChecked` function is a string that represents
   * the value of the checkbox or radio button that was checked.
   */
  onSelectionTileChecked(payload) {
    this.selectType === 'checkbox' ? this.setValueFromCheckbox(payload) : this.setValueFromRadio(payload);
  }
  /**
   * The function `setValueFromCheckbox` updates the value array by adding or removing a specified value.
   *
   * @param {VegaSelectionTileCheckedPayload} payload - The `value` parameter in the `setValueFromCheckbox` function is a string
   * representing the value of a checkbox.
   */
  setValueFromCheckbox(payload) {
    if (payload.checked && !this.value.includes(payload.value)) {
      this.value = [...this.value, payload.value];
    }
    else if (!payload.checked && this.value.includes(payload.value)) {
      this.value = [...this.value.filter((value) => value !== payload.value)];
    }
  }
  /**
   * The function `setValueFromRadio` sets the value of a radio button in TypeScript.
   *
   * @param {VegaSelectionTileCheckedPayload} payload - The `value` parameter is a string that represents the value to be set for
   * the radio button.
   */
  setValueFromRadio(payload) {
    if (payload.checked) {
      this.value = payload.value;
    }
  }
  /**
   * The function `setValueFromCheckboxItems` sets the value of an element based on the checked items in
   * a selection tile array.
   */
  setValueFromCheckboxItems() {
    if (this.value.length === 0) {
      this.value = this.itemsController
        .getSelectionTileArray()
        .filter((tile) => tile.checked)
        .map((tile) => tile.value);
    }
  }
  /**
   * The function `setValueFromRadioItems` sets the value of a radio item based on the checked status of
   * the items.
   */
  setValueFromRadioItems() {
    if (!this.value) {
      const checkedItem = this.itemsController
        .getSelectionTileArray()
        .find((tile) => tile.checked);
      if (checkedItem) {
        this.value = checkedItem.value;
      }
    }
  }
}
__decorate$2([
  MapToComponentField()
], VegaSelectionTileGroupValueController.prototype, "host", void 0);
__decorate$2([
  MapToComponentField({ writable: true })
], VegaSelectionTileGroupValueController.prototype, "value", void 0);
__decorate$2([
  MapToComponentField()
], VegaSelectionTileGroupValueController.prototype, "selectType", void 0);
__decorate$2([
  MapToComponentField()
], VegaSelectionTileGroupValueController.prototype, "changeEventEmitter", void 0);
__decorate$2([
  MapToComponentField()
], VegaSelectionTileGroupValueController.prototype, "itemsController", void 0);
__decorate$2([
  MapToComponentMethod('watchValue')
], VegaSelectionTileGroupValueController.prototype, "watchValue", null);

var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  return c > 3 && r && Object.defineProperty(target, key, r), r;
};
/**
 * The `VegaSelectionTileGroupItemsController` class manages an array of selection tiles within a
 * Vega selection tile group component.
 */
class VegaSelectionTileGroupItemsController extends VegaSlimmer {
  constructor() {
    super(...arguments);
    this.selectionTileArray = [];
  }
  /**
   * The function initializes an array of selection tiles by querying the host element for elements with
   * the tag 'vega-selection-tile'.
   */
  initSelectionTileArray() {
    this.syncTileArrayAndValue();
  }
  /**
   * The function `getSelectionTileArray` returns an array of HTMLVegaSelectionTileElement elements.
   *
   * @returns {HTMLVegaSelectionTileElement[]} An array of HTMLVegaSelectionTileElement elements is being returned.
   */
  getSelectionTileArray() {
    return this.selectionTileArray;
  }
  /**
   * The function syncTileArrayAndValue() populates an array with elements selected by a querySelectorAll
   * method and triggers a callback function on a value controller.
   */
  syncTileArrayAndValue() {
    this.selectionTileArray = Array.from(this.host.querySelectorAll('vega-selection-tile'));
    this.valueController.onSelectionTilesChanged();
  }
  /**
   * This function returns an array of HTML input elements based on the type of selection tile.
   *
   * @returns {HTMLInputElement[]} An array of HTMLInputElement elements is being returned.
   */
  touchableAreaGetter() {
    const selector = this.selectType === 'checkbox' ? 'vega-checkbox' : 'vega-radio';
    return this.selectionTileArray.map((tile) => tile.shadowRoot.querySelector(selector).shadowRoot.querySelector('input'));
  }
}
__decorate$1([
  MapToComponentField()
], VegaSelectionTileGroupItemsController.prototype, "host", void 0);
__decorate$1([
  MapToComponentField()
], VegaSelectionTileGroupItemsController.prototype, "selectType", void 0);
__decorate$1([
  MapToComponentField()
], VegaSelectionTileGroupItemsController.prototype, "valueController", void 0);
__decorate$1([
  MapToComponentMethod('componentWillLoad')
], VegaSelectionTileGroupItemsController.prototype, "initSelectionTileArray", null);

const vegaSelectionTileGroupCss = ":host{display:block;text-align:left;line-height:normal}:host .vega-error{display:block;margin-top:12px;font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px;color:rgba(var(--v-text-error, 189, 41, 71, 1))}@media screen and (min-width: 768px) and (max-width: 1023px){:host .vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){:host .vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){:host .vega-error{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}:host .vega-hidden{display:none}:host .vega-label{font-family:\"Inter\", sans-serif;font-size:16px;font-weight:500;line-height:22px;letter-spacing:0px;margin-bottom:16px;color:rgba(var(--v-text-primary, 32, 54, 69, 1))}@media screen and (min-width: 768px) and (max-width: 1023px){:host .vega-label{font-family:\"Inter\", sans-serif;font-size:16px;font-weight:500;line-height:22px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){:host .vega-label{font-family:\"Inter\", sans-serif;font-size:16px;font-weight:500;line-height:22px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){:host .vega-label{font-family:\"Inter\", sans-serif;font-size:16px;font-weight:500;line-height:22px;letter-spacing:0px}}:host .vega-label .vega-require{color:rgba(var(--v-text-error, 189, 41, 71, 1));margin-left:4px}:host .vega-hint{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px;color:rgba(var(--v-text-secondary, 107, 116, 125, 1));padding-top:12px}@media screen and (min-width: 768px) and (max-width: 1023px){:host .vega-hint{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1024px) and (max-width: 1439px){:host .vega-hint{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}@media screen and (min-width: 1440px) and (max-width: 9999px){:host .vega-hint{font-family:\"Inter\", sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:0px}}";

var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
    r = Reflect.decorate(decorators, target, key, desc);
  else
    for (var i = decorators.length - 1; i >= 0; i--)
      if (d = decorators[i])
        r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  return c > 3 && r && Object.defineProperty(target, key, r), r;
};
const VegaSelectionTileGroup = class {
  constructor(hostRef) {
    registerInstance(this, hostRef);
    this.vegaChange = createEvent(this, "vegaChange", 7);
    this.change = createEvent(this, "change", 7);
    this.globalSlimmers = {};
    this.renderer = new VegaSelectionTileGroupRenderer();
    this.itemsController = new VegaSelectionTileGroupItemsController();
    this.valueController = new VegaSelectionTileGroupValueController();
    this.formFieldController = new FormFieldControllerSlimmer({
      propertyRules: [
        {
          propertyName: 'required',
          ruleFactory: (isRequired) => (isRequired ? new RequiredFieldRule() : null),
        },
      ],
      validationRulesName: 'validationRules',
      inputContainerGetter: () => this.renderer.getGroupContainerRef(),
      touchableAreaGetter: () => this.itemsController.touchableAreaGetter(),
      defaultValue: (target) => (target.selectType === 'checkbox' ? [] : ''),
      attributeGetter: (propertyName) => this[propertyName],
    });
    this.changeEventEmitter = createEventEmitSlimmer(VegaSelectionTileGroup, VegaChange);
    this.checkboxEventPrevent = new ChildNodesEventPreventSlimmer([VegaChange], () => this.renderer.getGroupContainerRef());
    this.selectionTileChangeObserver = new ChildNodesNotifyObserverSlimmer(SELECTION_TILE_VALUE_CHANGE, (payload) => this.valueController.onSelectionTileChecked(payload.detail));
    this.selectTypeNotifySlimmer = createSubStateNotifySlimmer(VegaSelectionTileGroup, 'selectType', 'watchSelectType');
    this.disabledNotifySlimmer = createSubStateNotifySlimmer(VegaSelectionTileGroup, 'disabled', 'watchDisabled');
    this.valueNotifySlimmer = createSubStateNotifySlimmer(VegaSelectionTileGroup, 'value', 'watchValue');
    this.distributeEvenlyNotifySlimmer = createSubStateNotifySlimmer(VegaSelectionTileGroup, 'distributeEvenly', 'watchDistributeEvenly');
    this.vegaComponentUsageRuntimeMetricsSlimmer = new VegaComponentUsageRuntimeMetricsSlimmer();
    /**
     * Specifies the label or title for the selection tile group.
     *    It provides descriptive text that helps identify
     *    the purpose of the selection tile group.
     *
     * @vegaVersion 2.7.0
     */
    this.label = '';
    /**
     * Distribute vega-selection-tile components evenly to always cover the entire available width of the vega-selection-tile-group
     *
     * @vegaVersion 2.58.0
     */
    this.distributeEvenly = false;
    /**
     * Determines the selection method for the tile group. Options are:
     *
     * - `radio`:
     *      Displays a radio button for selection.
     * - `checkbox`:
     *      Displays a checkbox for selection.
     *
     * @vegaVersion 2.7.0
     */
    this.selectType = 'radio';
    /**
     * Stores the selected values of the nested selection tiles
     *    within the selection tile group.
     *
     * @vegaVersion 2.7.0
     */
    /* eslint-disable-next-line @stencil/strict-mutable */
    this.value = this.selectType === 'checkbox' ? [] : '';
    /**
     * Controls the layout of the nested selection tiles
     *    within the selection tile group.
     *
     * @vegaVersion 2.7.0
     */
    this.layout = 'vertical';
    /**
     * Defines custom validation rules for the selection tile group field.
     *
     * @vegaVersion 2.7.0
     */
    this.validationRules = [];
    /**
     * Sets the validation status for the selection tile group.
     *
     * @vegaVersion 2.7.0
     */
    /* eslint-disable-next-line @stencil/strict-mutable */
    this.isValid = null;
  }
  watchDistributeEvenly() {
  }
  watchSelectType() {
  }
  watchValue() {
  }
  watchDisabled() {
  }
  watchValidationRules() {
  }
  render() {
    return sanitizeVegaComponent(h(Host, null, this.renderer.render()), this.host);
  }
  get host() { return getElement(this); }
  static get watchers() { return {
    "distributeEvenly": ["watchDistributeEvenly"],
    "selectType": ["watchSelectType"],
    "value": ["watchValue"],
    "disabled": ["watchDisabled"],
    "validationRules": ["watchValidationRules"]
  }; }
};
__decorate([
  InjectVegaGlobalSlimmer()
], VegaSelectionTileGroup.prototype, "globalSlimmers", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaSelectionTileGroup.prototype, "renderer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaSelectionTileGroup.prototype, "itemsController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaSelectionTileGroup.prototype, "valueController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaSelectionTileGroup.prototype, "formFieldController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaSelectionTileGroup.prototype, "changeEventEmitter", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaSelectionTileGroup.prototype, "checkboxEventPrevent", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaSelectionTileGroup.prototype, "selectionTileChangeObserver", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaSelectionTileGroup.prototype, "selectTypeNotifySlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaSelectionTileGroup.prototype, "disabledNotifySlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaSelectionTileGroup.prototype, "valueNotifySlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaSelectionTileGroup.prototype, "distributeEvenlyNotifySlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaSelectionTileGroup.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
VegaSelectionTileGroup.style = vegaSelectionTileGroupCss;

export { VegaSelectionTile as vega_selection_tile, VegaSelectionTileGroup as vega_selection_tile_group };
