coration-hover: underline;
  }
  .mmg.collapsed:not(.nested) .header {
    font-weight: var(--maui-font-weight-bold);
  }

  .mmg .header {
    ${p({ size: "collapsible", tenant: "mmg" })};
    align-items: center;
  }

  .mmg .header[aria-expanded='true'] {
    color: var(--maui-collapsible-hover-color-header);
  }

  .mmg .header:hover span {
    text-decoration: none;
  }

  .mmg.collapsed .icon-expand {
    transform: rotate(135deg);
  }

  .mmg.nested {
    --maui-collapsible-padding-header: var(--maui-spacing-3)
      var(--maui-spacing-3);
    --maui-collapsible-section-padding: 0 var(--maui-spacing-3)
      var(--maui-spacing-5);
  }

  .mmg.nested .header {
    ${p({ size: "collapsible-nested", tenant: "mmg" })};
  }

  @media screen and (min-width: ${S["mini-tablet"]["min-width"]}px) {
    .mmg,
    .mmg.nested {
      --maui-collapsible-padding-header: var(--maui-spacing-3)
        var(--maui-spacing-3);
    }

    .mmg.nested {
      margin-left: 15px;
    }
  }
`, cv = [
  tv,
  ov,
  iv,
  av,
  rv,
  nv,
  sv,
  lv
];
var dv = Object.defineProperty, uv = Object.getOwnPropertyDescriptor, Gt = (a, e, t, o) => {
  for (var i = o > 1 ? void 0 : o ? uv(e, t) : e, r = a.length - 1, n; r >= 0; r--)
    (n = a[r]) && (i = (o ? n(e, t, i) : n(i)) || i);
  return o && i && dv(e, t, i), i;
};
class ct extends k {
  constructor() {
    super(), this.collapsedState = "hidden", this.scrolling = !1, this.componentName = "collapsibleitem";
  }
  connectedCallback() {
    super.connectedCallback(), this.expanded && (this.collapsedState = "expanded"), this.headlineType || (this.headlineType = this.type === "nested" ? "h4" : "h3");
  }
  updated(e) {
    super.updated(e), e.has("expanded") && this.handleExpandedChange();
  }
  handleExpandedChange() {
    (this.expanded && (this.collapsedState === "collapsed" || this.collapsedState === "hidden") || !this.expanded && this.collapsedState === "expanded") && this.toggleCollapsedState();
  }
  toggleCollapsedState() {
    this.collapsedState === "collapsed" || this.collapsedState === "hidden" ? this.expandSection() : this.collapseSection();
  }
  /** Collapse the item */
  collapseSection() {
    const e = this.expandablePane.scrollHeight, t = this.expandablePane.style.transition;
    this.expandablePane.style.transition = "", requestAnimationFrame(() => {
      this.expandablePane.style.height = `${e}px`, this.expandablePane.style.transition = t, this.emit("maui-collapse"), requestAnimationFrame(() => {
        this.expandablePane.style.height = "0px", this.collapsedState = "collapsed";
        const o = () => {
          this.expandablePane.removeEventListener(
            "transitionend",
            o
          ), this.collapsedState = "hidden", this.expanded = !1, this.emit("maui-after-collapse");
        };
        this.expandablePane.addEventListener(
          "transitionend",
          o
        );
      });
    });
  }
  /** Expand the item */
  expandSection() {
    this.collapsedState = "collapsed", this.emit("maui-expand"), setTimeout(() => {
      const e = this.expandablePane.scrollHeight;
      this.expandablePane.style.height = `${e}px`, this.collapsedState = "expanding", this.expanded = !0, this.scrolling && this.scrollIntoView({ behavior: "smooth" });
      const t = () => {
        this.expandablePane.removeEventListener(
          "transitionend",
          t
        ), this.expandablePane.style.height = "", this.collapsedState = "expanded", this.emit("maui-after-expand");
      };
      this.expandablePane.addEventListener(
        "transitionend",
        t
      );
    });
  }
  render() {
    const e = this.collapsedState === "collapsed" || this.collapsedState === "hidden";
    return u`<div
      class=${y({
      [this.componentName]: !0,
      [this.theme]: !0,
      collapsed: e,
      nested: this.type === "nested"
    })}
    >
      <maui-headline type=${U(this.headlineType)} layout="h4">
        <button
          @click=${this.toggleCollapsedState}
          class="header"
          id=${`${this.id}-toggle`}
          aria-controls=${`${this.id}-section`}
          aria-expanded=${!e}
        >
          <slot name="header">
            <span class="header-text">${this.headline}</span>
          </slot>
          ${this.customIcon ? null : u`<maui-icon
                .theme=${this.theme}
                aria-hidden="true"
                class="icon-expand"
                use="icon-collapse"
              ></maui-icon>`}
        </button>
      </maui-headline>
      <div
        class=${y({
      "expandable-pane": !0,
      collapsed: this.collapsedState === "collapsed",
      hidden: this.collapsedState === "hidden"
    })}
      >
        <div
          role="region"
          aria-labelledby=${`${this.id}-toggle`}
          class="section"
          id=${`${this.id}-section`}
          aria-hidden=${e}
        >
          <slot></slot>
        </div>
      </div>
    </div>`;
  }
}
ct.styles = cv;
Gt([
  O()
], ct.prototype, "collapsedState", 2);
Gt([
  M(".expandable-pane")
], ct.prototype, "expandablePane", 2);
Gt([
  l({ type: String })
], ct.prototype, "headlineType", 2);
Gt([
  l({ type: String })
], ct.prototype, "headline", 2);
Gt([
  l({ type: String })
], ct.prototype, "type", 2);
Gt([
  l({ type: Boolean })
], ct.prototype, "customIcon", 2);
Gt([
  l({ type: Boolean, reflect: !0 })
], ct.prototype, "expanded", 2);
Gt([
  l({ type: Boolean })
], ct.prototype, "scrolling", 2);
w("maui-collapsible-item", ct);
const mv = s`
  .pick maui-input {
    cursor: pointer;
  }
`, hv = [mv];
var pv = Object.defineProperty, gv = Object.getOwnPropertyDescriptor, ee = (a, e, t, o) => {
  for (var i = o > 1 ? void 0 : o ? gv(e, t) : e, r = a.length - 1, n; r >= 0; r--)
    (n = a[r]) && (i = (o ? n(e, t, i) : n(i)) || i);
  return o && i && pv(e, t, i), i;
};
class q extends Te {
  constructor() {
    super(), this.showCalendarModal = !1, this.currentValue = "", this.variant = "type", this.label = "Pick a date", this.assistiveClose = "Close", this.assistiveIcon = "Open calendar", this.assistiveSelectedDate = "Selected date", this.hint = "", this.placeholder = "", this.required = !1, this.clearable = !1, this.componentName = "maui-datepicker";
  }
  handleInputClick(e) {
    this.variant === "pick" && (e.stopPropagation(), e.preventDefault(), this.showCalendarModal = !0);
  }
  handleInputComplete(e) {
    const t = { locale: this.customLocale || navigator.languages[0] }, o = e.detail.value.masked, i = tb(o, t);
    this.selectedDate = i.toISOString(), this.emit("maui-change", {
      detail: {
        date: i,
        formattedDate: o
      }
    });
  }
  handleInputKeydown(e) {
    const t = e.detail.event;
    this.variant === "pick" && (t.key === "Enter" || t.key === " ") && (this.showCalendarModal = !0, e.preventDefault(), e.stopPropagation(), e.stopImmediatePropagation());
  }
  getNormalizedValue(e, t) {
    if (!e && !t)
      return "";
    const o = {
      locale: this.customLocale || navigator.languages[0]
    }, { format: i, separators: r } = kr(o), n = i.split(r[0]).map((m) => m.replace(/[\u{0080}-\u{10FFFF}]/gu, "")), c = new Date(e ? e.detail.day : t);
    return n.map((m) => {
      switch (m) {
        case "DD":
          return `${c.getDate()}`.padStart(2, "0");
        case "MM":
          return `${c.getMonth() + 1}`.padStart(2, "0");
        case "YYYY":
          return c.getFullYear();
        default:
          return "";
      }
    }).join(r[0]);
  }
  focus(e) {
    super.handleFocus(), this.input.focus(e);
  }
  blur() {
    super.handleBlur(), this.input.blur();
  }
  handleModalChange(e) {
    e.stopImmediatePropagation(), e.stopPropagation(), this.currentValue = this.getNormalizedValue(e), this.selectedDate = e.detail.day;
  }
  handleClear() {
    this.currentValue = "", this.selectedDate = void 0, this.emit("maui-change", {
      detail: {
        date: void 0,
        formattedDate: ""
      }
    });
  }
  reportValidity() {
    return this.input.setCustomValidity(this.customErrorMessage), this.input.reportValidity();
  }
  watchCustomErrorMessage() {
    this.input && this.input.setCustomValidity(this.customErrorMessage);
  }
  firstUpdated() {
    this.currentValue = this.getNormalizedValue(void 0, this.selectedDate);
  }
  render() {
    return u`<div
      class=${y({
      [this.componentName]: !0,
      [this.variant]: !0
    })}
    >
      <maui-masked-input
        .theme=${this.theme}
        type="date"
        ?preserveHint=${this.hint ? !0 : void 0}
        ?preservePlaceholder=${this.placeholder ? !0 : void 0}
        .value=${this.currentValue || ""}
        .customLocale=${this.customLocale}
        @maui-complete=${this.handleInputComplete}
        @maui-change=${(e) => {
      e.stopImmediatePropagation(), e.stopPropagation();
    }}
        .minDate=${this.min}
        .maxDate=${this.max}
      >
        <maui-input
          .theme=${this.theme}
          @maui-click=${this.handleInputClick}
          id="input"
          class="validation-input"
          name="enter-date"
          aria-label=${U(
      U(this.variant === "pick" ? this.assistiveIcon : null) === null ? void 0 : U(this.variant === "pick" ? this.assistiveIcon : null)
    )}
          .assistiveIcon=${this.assistiveIcon}
          hint=${this.hint}
          placeholder=${this.placeholder}
          .label=${this.label}
          ?readonly=${this.variant === "pick"}
          .title=${this.label}
          icon=${this.variant === "pick" ? "icon-datepicker" : ""}
          @maui-keydown=${this.handleInputKeydown}
          @maui-clear=${this.handleClear}
          ?required=${this.required}
          ?clearable=${this.clearable}
          ?hasError=${this.hasError}
          .customErrorMessage=${this.customErrorMessage}
          .errorMessage=${this.errorMessage}
        >
        </maui-input>
      </maui-masked-input>
      <maui-calendar-modal
        .theme=${this.theme}
        ?open=${this.showCalendarModal}
        .startDate=${this.startDate}
        .endDate=${this.endDate}
        .min=${this.min}
        .max=${this.max}
        .label=${this.label}
        .assistiveClose=${this.assistiveClose}
        .assistiveSelectedDate=${this.assistiveSelectedDate}
        selected-date=${this.selectedDate || ""}
        .customLocale=${this.customLocale}
        @maui-change=${this.handleModalChange}
        @maui-after-hide=${() => {
      this.showCalendarModal = !1;
    }}
      ></maui-calendar-modal>
    </div>`;
  }
}
q.styles = hv;
ee([
  M("#input")
], q.prototype, "input", 2);
ee([
  O()
], q.prototype, "showCalendarModal", 2);
ee([
  O()
], q.prototype, "currentValue", 2);
ee([
  l({ type: String })
], q.prototype, "variant", 2);
ee([
  l({ attribute: "label", type: String })
], q.prototype, "label", 2);
ee([
  l({ attribute: "assistive-close", type: String })
], q.prototype, "assistiveClose", 2);
ee([
  l({ attribute: "assistive-icon", type: String })
], q.prototype, "assistiveIcon", 2);
ee([
  l({ attribute: "assistive-selected-date", type: String })
], q.prototype, "assistiveSelectedDate", 2);
ee([
  l({ type: String, reflect: !0 })
], q.prototype, "hint", 2);
ee([
  l({ type: String, reflect: !0 })
], q.prototype, "placeholder", 2);
ee([
  l({ type: String, attribute: "custom-locale" })
], q.prototype, "customLocale", 2);
ee([
  l({ type: String, attribute: "start-date", reflect: !0 })
], q.prototype, "startDate", 2);
ee([
  l({ type: String, attribute: "end-date", reflect: !0 })
], q.prototype, "endDate", 2);
ee([
  l({ type: String, reflect: !0 })
], q.prototype, "min", 2);
ee([
  l({ type: String, reflect: !0 })
], q.prototype, "max", 2);
ee([
  l({ type: Boolean, reflect: !0 })
], q.prototype, "required", 2);
ee([
  l({ type: Boolean, reflect: !0 })
], q.prototype, "clearable", 2);
ee([
  l({ type: String, attribute: "selected-date", reflect: !0 })
], q.prototype, "selectedDate", 2);
ee([
  F("customErrorMessage")
], q.prototype, "watchCustomErrorMessage", 1);
w("maui-datepicker", q);
const bv = (a) => {
  const e = h(a);
  return s`
    .${e} {
      --maui-fd-strikethrough-color-code: var(--maui-color-message-error);
    }
    .${e}.minimal {
      ${b({ size: "h5", tenant: a }).mobile};
    }
    .${e}.small {
      ${b({ size: "h4", tenant: a }).mobile};
    }
    .${e}.medium {
      ${b({ size: "h3", tenant: a }).mobile};
    }
    .${e}.large {
      ${b({ size: "h2", tenant: a }).mobile};
    }
    .${e}.extra-large {
      ${b({ size: "h1", tenant: a }).mobile};
    }
    .${e} .code {
      font-weight: var(--maui-font-weight-bold);
    }
    .${e} .name {
      ${d({ size: "copy-medium", tenant: a })};
    }
    .${e}.extra-large .name {
      ${d({ size: "copy-large", tenant: a })};
    }

    @media screen and (min-width: ${S["mini-tablet"]["min-width"]}px) {
      .${e}.minimal {
        ${b({ size: "h5", tenant: a }).desktop};
      }
      .${e}.small {
        ${b({ size: "h4", tenant: a }).desktop};
      }
      .${e}.medium {
        ${b({ size: "h3", tenant: a }).desktop};
      }
      .${e}.large {
        ${b({ size: "h2", tenant: a }).desktop};
      }
      .${e}.extra-large {
        ${b({ size: "h1", tenant: a }).desktop};
      }
    }
  `;
}, vv = s`
  ${C}

  ${A}

  .flight-display {
    --maui-fd-strikethrough-color-code: var(--maui-color-message-error);
    --maui-fd-strikethrough-color-name: var(--maui-color-text-copy);
    --maui-fd-strikethrough-size: 2px;
    border: 0;
    display: grid;
    grid-template-areas: 'origin travel destination';
    grid-template-columns: 1fr auto 1fr;
    justify-content: space-between;
    align-items: flex-start;
    position: relative;
    text-decoration: none;
    white-space: nowrap;
    font-weight: var(--maui-font-weight-regular);
    gap: 0 var(--maui-spacing-3);

    container-type: inline-size;
  }

  .showLongName {
    grid-template-areas: 'origin travel destination' 'originName unused destinationName';
  }

  .minimal {
    --maui-fd-icon-size: 16px;
    display: inline-grid;
    justify-content: flex-start;
    align-items: flex-start;
  }
  .small {
    --maui-fd-icon-size: 24px;
  }
  .medium {
    --maui-fd-icon-size: 32px;
  }
  .large {
    --maui-fd-icon-size: 40px;
  }
  .extra-large {
    --maui-fd-icon-size: 48px;
  }

  maui-icon {
    --maui-icon-size-override: var(--maui-fd-icon-size);
  }

  .travel {
    grid-area: travel;
    display: grid;
    place-content: start center;
    height: 100%;
  }

  .destination.codes.diverted {
    grid-template-columns: auto max-content;
    justify-content: flex-end;
  }

  .codes {
    display: inline-grid;
  }
  .codes.diverted {
    column-gap: var(--maui-spacing-2);
    grid-template-columns: max-content auto;
  }
  .origin-codes {
    grid-area: origin;
  }
  .destination.codes {
    grid-area: destination;
    text-align: right;
    grid-template-columns: auto max-content;
  }
  .code {
    display: block;
    text-transform: uppercase;
    font-family: var(--maui-font-family-headline);
    color: var(--maui-color-text-headline);
  }
  .name {
    display: block;
    font-family: var(--maui-font-family-copy);
    color: var(--maui-color-text-copy);
    word-wrap: break-word;
    white-space: normal;
    font-weight: var(--maui-fd-font-weight-normal);
    word-wrap: break-word;
    white-space: normal;
  }
  .origin-codes.name {
    grid-area: originName;
  }
  .destination.name {
    grid-area: destinationName;
    text-align: right;
  }
  .cancelled .code,
  .diverted.code {
    /* text-decoration shorthand cannot be used/did not work on safari */
    text-decoration-line: line-through;
    text-decoration-color: var(--maui-fd-strikethrough-color-code);
    text-decoration-thickness: var(--maui-fd-strikethrough-size);
  }

  .cancelled .name,
  .diverted.name {
    text-decoration-line: line-through;
    text-decoration-color: var(--maui-fd-strikethrough-color-code);
  }
  .medium {
    --maui-fd-strikethrough-size: 3px;
  }
  .extra-large {
    --maui-fd-strikethrough-size: 5px;
  }

  @container (max-width: ${S.mobile["max-width"]}px) {
    .origin.codes.diverted,
    .destination.codes.diverted {
      grid-template-columns: auto;
      grid-template-areas: 'regular' 'diverted';
    }

    .codes.diverted .alternative {
      grid-area: regular;
    }

    .codes.diverted .original {
      grid-area: diverted;
    }
  }
`, fv = s`
  ${bv("lh")}
`, yv = s`
  .os.minimal {
    ${b({ size: "h5", tenant: "os" }).mobile};
  }

  .os.minimal maui-icon {
    padding-top: 3px; /* offset icon/line-height */
  }

  .os.small {
    ${b({ size: "h4", tenant: "os" }).mobile};
  }

  .os.minimal .code,
  .os.small .code {
    font-family: var(--maui-font-family-copy);
  }

  .os.medium {
    ${b({ size: "h3", tenant: "os" }).mobile};
  }
  .os.large {
    ${b({ size: "h2", tenant: "os" }).mobile};
  }
  .os.extra-large {
    ${b({ size: "h1", tenant: "os" }).mobile};
  }
  .os .name {
    ${d({ size: "copy-medium", tenant: "os" })};
  }
  .os.extra-large .name {
    ${d({ size: "copy-large", tenant: "os" })};
  }

  @media screen and (min-width: ${S["mini-tablet"]["min-width"]}px) {
    .os.minimal {
      ${b({ size: "h5", tenant: "os" }).desktop};
    }
    .os.small {
      ${b({ size: "h4", tenant: "os" }).desktop};
    }
    .os.medium {
      ${b({ size: "h3", tenant: "os" }).desktop};
    }
    .os.large {
      ${b({ size: "h2", tenant: "os" }).desktop};
    }
    .os.extra-large {
      ${b({ size: "h1", tenant: "os" }).desktop};
    }
  }
`, xv = s`
  .lx.minimal {
    ${b({ size: "h5", tenant: "lx" }).mobile};
  }
  .lx.minimal maui-icon {
    padding-top: 3px; /* offset icon/line-height */
  }

  .lx.small {
    ${b({ size: "h4", tenant: "lx" }).mobile};
  }
  .lx.small maui-icon {
    padding-top: 4px; /* offset icon/line-height */
  }
  .lx.medium {
    ${b({ size: "h3", tenant: "lx" }).mobile};
  }
  .lx.medium maui-icon {
    padding-top: 1px; /* offset icon/line-height */
  }
  .lx.large {
    ${b({ size: "h2", tenant: "lx" }).mobile};
  }
  .lx.extra-large {
    ${b({ size: "h1", tenant: "lx" }).mobile};
  }
  .lx .name {
    ${d({ size: "copy-medium", tenant: "lx" })};
  }
  .lx.extra-large .name {
    ${d({ size: "copy-large", tenant: "lx" })};
  }
  .lx .code {
    font-weight: var(--maui-font-weight-bold);
  }

  @media screen and (min-width: ${S["mini-tablet"]["min-width"]}px) {
    .lx.minimal {
      ${b({ size: "h5", tenant: "lx" }).desktop};
    }
    .lx.small {
      ${b({ size: "h4", tenant: "lx" }).desktop};
    }
    .lx.medium {
      ${b({ size: "h3", tenant: "lx" }).desktop};
    }
    .lx.large {
      ${b({ size: "h2", tenant: "lx" }).desktop};
    }
    .lx.extra-large {
      ${b({ size: "h1", tenant: "lx" }).desktop};
    }
  }
`, $v = s`
  .sn.minimal {
    ${b({ size: "h5", tenant: "sn" }).mobile};
  }
  .sn.small {
    ${b({ size: "h4", tenant: "sn" }).mobile};
  }
  .sn.small maui-icon {
    padding-top: 1px; /* offset icon/line-height */
  }
  .sn.medium {
    ${b({ size: "h3", tenant: "sn" }).mobile};
  }
  .sn.large {
    ${b({ size: "h2", tenant: "sn" }).mobile};
  }
  .sn.extra-large {
    ${b({ size: "h1", tenant: "sn" }).mobile};
  }
  .sn.extra-large .codes {
    padding-top: 4px; /* offset icon/line-height */
  }
  .sn .code {
    font-weight: var(--maui-font-weight-bold);
  }
  .sn .name {
    ${d({ size: "copy-medium", tenant: "sn" })};
  }
  .sn.extra-large .name {
    ${d({ size: "copy-large", tenant: "sn" })};
  }

  @media screen and (min-width: ${S["mini-tablet"]["min-width"]}px) {
    .sn.minimal {
      ${b({ size: "h5", tenant: "sn" }).desktop};
    }
    .sn.small {
      ${b({ size: "h4", tenant: "sn" }).desktop};
    }
    .sn.medium {
      ${b({ size: "h3", tenant: "sn" }).desktop};
    }
    .sn.large {
      ${b({ size: "h2", tenant: "sn" }).desktop};
    }
    .sn.extra-large {
      ${b({ size: "h1", tenant: "sn" }).desktop};
    }
  }
`, wv = s`
  .b2b {
    --maui-fd-strikethrough-color-code: var(--maui-color-message-error);
  }
  .b2b.minimal {
    ${b({ size: "h5", tenant: "b2b" }).mobile};
  }
  .b2b.small {
    ${b({ size: "h4", tenant: "b2b" }).mobile};
  }
  .b2b.medium {
    ${b({ size: "h3", tenant: "b2b" }).mobile};
  }
  .b2b.large {
    ${b({ size: "h2", tenant: "b2b" }).mobile};
  }
  .b2b.extra-large {
    ${b({ size: "h1", tenant: "b2b" }).mobile};
  }
  .b2b .code {
    font-weight: var(--maui-font-weight-regular);
  }
  .b2b.minimal .code,
  .b2b.small .code {
    font-weight: var(--maui-font-weight-bold);
  }

  .b2b.extra-large .code {
    font-weight: var(--maui-font-weight-thin);
  }
  .b2b .name {
    ${d({ size: "copy-medium", tenant: "b2b" })};
  }
  .b2b.extra-large .name {
    ${d({ size: "copy-large", tenant: "b2b" })};
  }

  @media screen and (min-width: ${S["mini-tablet"]["min-width"]}px) {
    .b2b.minimal {
      ${b({ size: "h5", tenant: "b2b" }).desktop};
    }
    .b2b.small {
      ${b({ size: "h4", tenant: "b2b" }).desktop};
    }
    .b2b.medium {
      ${b({ size: "h3", tenant: "b2b" }).desktop};
    }
    .b2b.large {
      ${b({ size: "h2", tenant: "b2b" }).desktop};
    }
    .b2b.extra-large {
      ${b({ size: "h1", tenant: "b2b" }).desktop};
    }
  }
`, _v = s`
  .four_y maui-icon {
    --maui-icon-color-override: var(--maui-color-text-headline);
  }

  .four_y .codes {
    font-weight: var(--maui-font-weight-bold);
  }

  .four_y.minimal {
    --maui-fd-icon-size: 16px;
    ${b({ size: "h5", tenant: "four_y" }).mobile};
  }
  .four_y.minimal .travel {
    padding-top: 6px; /* offset icon/line-height */
  }

  .four_y.small {
    ${b({ size: "h4", tenant: "four_y" }).mobile};
    --maui-fd-icon-size: 24px;
  }
  .four_y.small .travel {
    padding-top: 4px; /* offset icon/line-height */
  }
  .four_y.medium {
    ${b({ size: "h3", tenant: "four_y" }).mobile};
    --maui-fd-icon-size: 28px;
  }
  .four_y.medium .travel {
    padding-top: 3px; /* offset icon/line-height */
  }
  .four_y.large {
    ${b({ size: "h2", tenant: "four_y" }).mobile};
    --maui-fd-icon-size: 32px;
  }
  .four_y.large .travel {
    padding-top: 4px; /* offset icon/line-height */
  }
  .four_y.extra-large {
    ${b({ size: "h1", tenant: "four_y" }).mobile};
    --maui-fd-icon-size: 48px;
  }
  .four_y .name {
    ${d({ size: "copy-small", tenant: "four_y" })};
  }

  .four_y.extra-large .name {
    ${d({ size: "copy-medium", tenant: "four_y" })};
  }

  .cancelled .name,
  .diverted.name {
    text-decoration-color: var(--maui-color-text-copy);
  }

  @media screen and (min-width: ${S["mini-tablet"]["min-width"]}px) {
    .four_y .name {
      ${d({ size: "copy-medium", tenant: "four_y" })};
    }

    .four_y.minimal {
      ${b({ size: "h5", tenant: "four_y" }).desktop};
    }

    .four_y.small {
      ${b({ size: "h4", tenant: "four_y" }).desktop};
    }
    .four_y.small .travel {
      padding-top: 5px; /* offset icon/line-height */
    }
    .four_y.medium {
      ${b({ size: "h3", tenant: "four_y" }).desktop};
      --maui-fd-icon-size: 32px;
    }
    .four_y.medium .travel {
      padding-top: 4px; /* offset icon/line-height */
    }
    .four_y.large {
      ${b({ size: "h2", tenant: "four_y" }).desktop};
      --maui-fd-icon-size: 48px;
    }
    .four_y.large .travel {
      padding-top: 1px; /* offset icon/line-height */
    }
    .four_y.extra-large {
      ${b({ size: "h1", tenant: "four_y" }).desktop};
      --maui-fd-icon-size: 60px;
    }
    .four_y.extra-large .travel {
      padding-top: 4px; /* offset icon/line-height */
    }
  }
`, kv = s`
  .mmg.minimal {
    ${b({ size: "h5", tenant: "mmg" }).mobile};
  }
  .mmg.minimal maui-icon {
    padding-top: 3px; /* offset icon/line-height */
  }

  .mmg.small {
    ${b({ size: "h4", tenant: "mmg" }).mobile};
  }
  .mmg.small maui-icon {
    padding-top: 4px; /* offset icon/line-height */
  }
  .mmg.medium {
    ${b({ size: "h3", tenant: "mmg" }).mobile};
  }
  .mmg.medium maui-icon {
    padding-top: 1px; /* offset icon/line-height */
  }
  .mmg.large {
    ${b({ size: "h2", tenant: "mmg" }).mobile};
  }
  .mmg.extra-large {
    ${b({ size: "h1", tenant: "mmg" }).mobile};
  }
  .mmg .name {
    ${d({ size: "copy-medium", tenant: "mmg" })};
  }
  .mmg.extra-large .name {
    ${d({ size: "copy-large", tenant: "mmg" })};
  }
  .mmg .code {
    font-weight: var(--maui-font-weight-bold);
  }

  @media screen and (min-width: ${S["mini-tablet"]["min-width"]}px) {
    .mmg.minimal {
      ${b({ size: "h5", tenant: "mmg" }).desktop};
    }
    .mmg.small {
      ${b({ size: "h4", tenant: "mmg" }).desktop};
    }
    .mmg.medium {
      ${b({ size: "h3", tenant: "mmg" }).desktop};
    }
    .mmg.large {
      ${b({ size: "h2", tenant: "mmg" }).desktop};
    }
    .mmg.extra-large {
      ${b({ size: "h1", tenant: "mmg" }).desktop};
    }
  }
`, Sv = [
  vv,
  fv,
  yv,
  xv,
  $v,
  wv,
  _v,
  kv
];
var Ov = Object.defineProperty, Mv = Object.getOwnPropertyDescriptor, Ce = (a, e, t, o) => {
  for (var i = o > 1 ? void 0 : o ? Mv(e, t) : e, r = a.length - 1, n; r >= 0; r--)
    (n = a[r]) && (i = (o ? n(e, t, i) : n(i)) || i);
  return o && i && Ov(e, t, i), i;
};
class ye extends k {
  constructor() {
    super(), this.travelModeLabel = "", this.size = "medium", this.componentName = "flight-display";
  }
  handleSlotChange(e) {
    const t = e.target;
    t.name === "status" && X(t, ["MAUI-COPY"], 1, !0);
  }
  render() {
    const e = this.alternativeOriginCode || this.alternativeOriginName, t = this.alternativeDestinationCode || this.alternativeDestinationName, o = this.size === "minimal" && !this.travelMode ? "icon-journey-minimal" : this.travelMode || "icon-journey-airplane";
    return u`<div
      class="${y({
      [this.componentName]: !0,
      [this.theme]: !0,
      cancelled: this.cancelled,
      showLongName: !!this.showLongName,
      [this.size]: !0
    })}"
    >
      <div
        class="origin codes ${y({
      diverted: e
    })}"
      >
        ${this.alternativeOriginCode ? u`<div class="alternative">
              <span title=${this.alternativeOriginName} class="code"
                >${this.alternativeOriginCode}</span
              >
            </div>` : ""}

        <div class="orginal">
          <span
            class="code ${y({
      diverted: e
    })}"
            title=${this.originName}
            >${this.originCode}</span
          >
        </div>
      </div>
      ${this.showLongName && this.size !== "minimal" ? u`<span class="origin name"
            >${this.alternativeOriginCode ? this.alternativeOriginName : this.originName}</span
          >` : ""}

      <div class="travel">
        <maui-icon
          .theme=${this.theme}
          use=${o}
          size=${["small", this.theme === "four_y" ? "" : "minimal"].includes(
      this.size
    ) ? "small" : "medium"}
          .ariaLabel=${this.travelModeLabel}
        ></maui-icon>
        <slot name="status" @slotchange=${this.handleSlotChange}></slot>
      </div>

      <div
        class="destination codes ${y({
      diverted: t
    })}"
      >
        <div class="orginal">
          <span
            class="code  ${y({
      diverted: t
    })}"
            title=${this.destinationName}
            >${this.destinationCode}</span
          >
        </div>

        ${this.alternativeDestinationCode ? u`<div class="alternative">
              <span class="code" title=${this.alternativeDestinationName}
                >${this.alternativeDestinationCode}</span
              >
            </div>` : ""}
      </div>
      ${this.showLongName && this.size !== "minimal" ? u`<span class="destination name"
            >${this.alternativeDestinationCode ? this.alternativeDestinationName : this.destinationName}</span
          >` : ""}
    </div>`;
  }
}
ye.styles = Sv;
Ce([
  l({ type: String })
], ye.prototype, "originCode", 2);
Ce([
  l({ type: String })
], ye.prototype, "originName", 2);
Ce([
  l({ type: String })
], ye.prototype, "destinationCode", 2);
Ce([
  l({ type: String })
], ye.prototype, "destinationName", 2);
Ce([
  l({ type: String })
], ye.prototype, "travelMode", 2);
Ce([
  l({ type: String })
], ye.prototype, "travelModeLabel", 2);
Ce([
  l({ type: Boolean })
], ye.prototype, "showLongName", 2);
Ce([
  l({ type: String })
], ye.prototype, "size", 2);
Ce([
  l({ type: Boolean })
], ye.prototype, "cancelled", 2);
Ce([
  l({ type: String })
], ye.prototype, "alternativeOriginCode", 2);
Ce([
  l({ type: String })
], ye.prototype, "alternativeOriginName", 2);
Ce([
  l({ type: String })
], ye.prototype, "alternativeDestinationCode", 2);
Ce([
  l({ type: String })
], ye.prototype, "alternativeDestinationName", 2);
w("maui-flight-display", ye);
const Lv = s`
  ${C}

  ${A}

  .form-error {
    padding: 18px 18px 18px 14px;
    position: relative;
    background: var(--maui-color-message-bg-error);
  }

  .list {
    display: grid;
    gap: var(--maui-spacing-3);
    grid-auto-flow: column;
    position: relative;
    grid-template-columns: 24px 10fr;
  }

  .form-error maui-icon {
    --maui-icon-color: var(--maui-color-message-error);
  }

  .form-error:has(.headline) .content {
    padding-top: 1px;
  }

  .content {
    display: grid;
    gap: var(--maui-spacing-3);
    text-align: left;
  }

  .content-wrapper {
    display: grid;
    grid-auto-flow: column;
    grid-gap: var(--maui-spacing-3);
  }

  .close {
    text-align: right;
  }

  .headline {
    display: block;
  }
`, Bv = s`
  .os.form-error maui-headline,
  .os.form-error maui-icon-link,
  .os.form-error ::slotted(maui-icon-link),
  .os.form-error ::slotted(maui-navigation-link),
  .os.form-error ::slotted(maui-copy),
  .os.form-error ::slotted(maui-form-error-message) {
    --maui-icon-color: var(--maui-color-message-error) !important;
    --maui-color-interaction-interaction: var(
      --maui-color-message-error
    ) !important;
    --maui-color-text-copy: var(--maui-color-message-error);
  }

  .os.form-error {
    padding: 18px 18px 18px 18px;
  }

  .os.form-error maui-headline {
    --maui-line-height-3: 25px;
  }

  .os .headline {
    ${p({ size: "notification", tenant: "os" })};
  }
`, Cv = s`
  .lx.form-error maui-headline {
    --maui-line-height-4: 25px;
  }

  .lx.form-error {
    padding: 20px 20px 22px 14px;
  }

  .lx.form-error maui-icon {
    --maui-icon-color: var(--maui-color-grey-08) !important;
  }

  .lx.form-error ::slotted(maui-icon-link),
  .lx.form-error ::slotted(maui-navigation-link),
  .lx.form-error ::slotted(maui-copy),
  .lx.form-error ::slotted(maui-form-error-message) {
    --maui-color-interaction-interaction: var(--maui-color-brand-pine-grey);
    --maui-color-interaction-interactionhover: var(--maui-color-grey-08);
  }

  .lx .headline {
    ${p({ size: "notification", tenant: "lx" })};
  }
`, zv = s`
  .sn.form-error {
    padding: 15px 20px 15px 10px;
  }

  .sn.form-error .content {
    gap: var(--maui-spacing-2);
  }

  .sn.form-error .content-wrapper {
    margin-right: 5px;
  }

  .sn.form-error maui-headline {
    --maui-line-height-4: var(--maui-line-height-5);
  }

  .sn .headline {
    ${p({ size: "notification", tenant: "sn" })};
  }
`, Av = s`
  .lh .headline {
    ${p({ size: "notification", tenant: "lh" })};
  }
`, Fv = s`
  .b2b .headline {
    ${p({ size: "notification", tenant: "b2b" })};
  }
`, Nv = s`
  .four_y {
    border-radius: var(--maui-radii-radius-2);
    padding: var(--maui-spacing-4);
  }

  .four_y.form-error {
    padding: calc(var(--maui-spacing-3) + var(--maui-spacing-2))
      calc(var(--maui-spacing-3) + var(--maui-spacing-2))
      calc(var(--maui-spacing-3) + var(--maui-spacing-2)) var(--maui-spacing-3);
  }

  .four_y.form-error ::slotted(maui-icon-link),
  .four_y.form-error ::slotted(maui-navigation-link),
  .four_y.form-error ::slotted(maui-form-error-message) {
    --maui-icon-color: var(--maui-color-message-error) !important;
    --maui-color-interaction-interaction: var(
      --maui-color-message-error
    ) !important;
    --maui-color-interaction-interactionhover: var(
      --maui-color-message-error
    ) !important;
  }

  .four_y .headline {
    ${p({ size: "notification", tenant: "four_y" })};
    color: var(--maui-color-text-copy);
  }
`, Iv = s`
  .mmg.form-error {
    padding: var(--maui-spacing-5) var(--maui-spacing-5) var(--maui-spacing-6);
  }

  .mmg .list {
    gap: var(--maui-spacing-2);
  }

  .mmg.form-error .content {
    gap: var(--maui-spacing-3);
  }

  .mmg.form-error .content-wrapper {
    margin-right: 5px;
  }

  .mmg .headline {
    ${p({ size: "notification", tenant: "mmg" })};
    font-weight: var(--maui-font-weight-bold);
  }
`, Uv = [
  Lv,
  Cv,
  Bv,
  zv,
  Av,
  Fv,
  Nv,
  Iv
], Rv = s`
  ${C}

  ${A}

  .form-error-message {
    display: grid;
    grid-auto-flow: column;
    gap: var(--maui-spacing-3);
  }

  .copy {
    text-align: left;
  }

  .link {
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    align-items: flex-end;
  }

  @media screen and (max-width: ${S["mini-tablet"]["min-width"]}px) {
    .form-error-message {
      grid-auto-flow: row;
    }
    .link {
      justify-content: flex-start;
    }
  }
`, Dv = s`
  .sn ::slotted(maui-navigation-link) {
    --maui-color-interaction-interaction: var(
      --maui-color-message-error
    ) !important;
    --maui-color-interaction-interactionhover: var(
      --maui-color-message-error
    ) !important;
  }
`, Ev = s`
  .four_y {
    --maui-focus-outline-box-shadow: 0 0 0 1px var(--maui-color-message-error);
  }
`, Pv = s`
  .mmg.form-error-message {
    grid-auto-flow: row;
    gap: var(--maui-spacing-4);
  }

  .mmg .link {
    justify-content: flex-start;
  }
`, Hv = [Rv, Dv, Ev, Pv];
class $s extends k {
  constructor() {
    super(), this.hasSlotController = new be(this, "link"), this.componentName = "form-error-message";
  }
  /** Test slotted elements to be only of types copy or navigational link. If anything else is present, don't show children altogether. */
  testAllowedAssignments(e, t) {
    const o = e.target.assignedNodes();
    o.forEach((i) => {
      t.includes(i.nodeName) || (i.nodeName !== "#text" && console.error(
        `Only ${t.join(
          ", "
        )} are accepted as a child component. Removed: ${i.nodeName}`
      ), i.parentNode.removeChild(i));
    }), ["four_y"].includes(this.theme) && (o.filter((i) => ["MAUI-COPY"].indexOf(i.nodeName) >= 0).forEach((i) => {
      i.setAttribute("size", "copy-small");
    }), o.filter(
      (i) => [
        "MAUI-LINK",
        "MAUI-FUNCTIONAL-LINK",
        "MAUI-NAVIGATION-LINK",
        "MAUI-SERVICE-LINK",
        "MAUI-ICON-LINK"
      ].indexOf(i.nodeName) >= 0
    ).forEach((i) => {
      i.setAttribute("size", "small");
    }));
  }
  handleSlotChange(e, t) {
    const o = t === "COPY" ? ["MAUI-COPY"] : [
      "MAUI-LINK",
      "MAUI-FUNCTIONAL-LINK",
      "MAUI-NAVIGATION-LINK",
      "MAUI-SERVICE-LINK",
      "MAUI-ICON-LINK"
    ];
    this.testAllowedAssignments(e, o);
  }
  /**
   * This method will trigger animation to the provided `HTMLElement` using the provided `ScrollIntoViewOptions`.
   * @param element HTMLElement
   * @param options ScrollIntoViewOptions
   */
  // eslint-disable-next-line no-undef
  animateIntoView(e, t) {
    e.scrollIntoView(t);
  }
  handleScroll(e) {
    this.animateIntoView(e.detail.element, e.detail.options);
  }
  render() {
    const t = Array.from(this.children).some((i) => i.tagName === "MAUI-COPY"), o = this.hasSlotController.test("link");
    return u`
      <div
        class=${y({ [this.componentName]: !0, [this.theme]: !0 })}
      >
        ${t ? u`
              <div class="copy">
                <slot
                  @slotchange=${(i) => this.handleSlotChange(i, "COPY")}
                ></slot>
              </div>
              ${o ? u`
                    <div class="link">
                      <slot
                        name="link"
                        @slotchange=${(i) => {
      this.handleSlotChange(i, "LINK");
    }}
                        @maui-scroll-to=${this.handleScroll}
                      ></slot>
                    </div>
                  ` : ""}
            ` : console.error(
      `No MAUI-COPY was provided for MAUI-FORM-ERROR-MESSAGE. Removed: ${this.nodeName}`
    )}
      </div>
    `;
  }
}
$s.styles = Hv;
w("maui-form-error-message", $s);
var Gv = Object.defineProperty, Yv = Object.getOwnPropertyDescriptor, Or = (a, e, t, o) => {
  for (var i = o > 1 ? void 0 : o ? Yv(e, t) : e, r = a.length - 1, n; r >= 0; r--)
    (n = a[r]) && (i = (o ? n(e, t, i) : n(i)) || i);
  return o && i && Gv(e, t, i), i;
};
class Ci extends k {
  constructor() {
    super(), this.componentName = "form-error";
  }
  /** Test slotted elements to be only of types copy, button or navigational link. If anything else is present, don't show children altogether. */
  testAllowedAssignments(e, t) {
    e.target.assignedNodes().forEach((i) => {
      t.includes(i.nodeName) ? i.theme = this.theme : (i.nodeName !== "#text" && console.error(
        `Only ${t.join(
          ", "
        )} are accepted as a child component. If a link has been used for primary action, please use slot="action" Removed: ${i.nodeName}`
      ), i.parentNode.removeChild(i));
    });
  }
  handleSlotChange(e) {
    const t = ["MAUI-FORM-ERROR-MESSAGE"];
    this.testAllowedAssignments(e, t);
  }
  render() {
    return u`
      <div
        class="${y({
      [this.componentName]: !0,
      [this.theme]: !0
    })}"
      >
        <div class="list">
          <maui-icon
            name="status-icon"
            .theme=${this.theme}
            .size=${"medium"}
            use="icon-error"
          >
          </maui-icon>
          <div
            class="${y({
      "content-wrapper": !0,
      noHeadline: !this.headline
    })}"
          >
            <div class="content">
              ${this.headline ? u` <maui-headline .theme=${this.theme} .type=${"h4"}>
                    <span class="headline">${this.headline}</span>
                  </maui-headline>` : ""}
              <slot @slotchange=${this.handleSlotChange}></slot>
              <slot name="action" @slotchange=${this.handleSlotChange}></slot>
            </div>
          </div>
        </div>
      </div>
    `;
  }
}
Ci.styles = Uv;
Or([
  M(".form-error")
], Ci.prototype, "formError", 2);
Or([
  M(".content")
], Ci.prototype, "content", 2);
Or([
  l({ reflect: !0 })
], Ci.prototype, "headline", 2);
w("maui-form-error", Ci);
/**
 * @license
 * Copyright 2017 Google LLC
 * SPDX-License-Identifier: BSD-3-Clause
 */
const rn = (a, e, t) => {
  const o = /* @__PURE__ */ new Map();
  for (let i = e; i <= t; i++)
    o.set(a[i], i);
  return o;
}, Tv = bi(class extends vi {
  constructor(a) {
    if (super(a), a.type !== Ze.CHILD)
      throw Error("repeat() can only be used in text expressions");
  }
  dt(a, e, t) {
    let o;
    t === void 0 ? t = e : e !== void 0 && (o = e);
    const i = [], r = [];
    let n = 0;
    for (const c of a)
      i[n] = o ? o(c, n) : n, r[n] = t(c, n), n++;
    return { values: r, keys: i };
  }
  render(a, e, t) {
    return this.dt(a, e, t).values;
  }
  update(a, [e, t, o]) {
    const i = Fm(a), { values: r, keys: n } = this.dt(e, t, o);
    if (!Array.isArray(i))
      return this.ut = n, r;
    const c = this.ut ??= [], m = [];
    let g, f, v = 0, x = i.length - 1, _ = 0, $ = r.length - 1;
    for (; v <= x && _ <= $; )
      if (i[v] === null)
        v++;
      else if (i[x] === null)
        x--;
      else if (c[v] === n[_])
        m[_] = to(i[v], r[_]), v++, _++;
      else if (c[x] === n[$])
        m[$] = to(i[x], r[$]), x--, $--;
      else if (c[v] === n[$])
        m[$] = to(i[v], r[$]), ai(a, m[$ + 1], i[v]), v++, $--;
      else if (c[x] === n[_])
        m[_] = to(i[x], r[_]), ai(a, i[v], i[x]), x--, _++;
      else if (g === void 0 && (g = rn(n, _, $), f = rn(c, v, x)), g.has(c[v]))
        if (g.has(c[x])) {
          const L = f.get(n[_]), N = L !== void 0 ? i[L] : null;
          if (N === null) {
            const R = ai(a, i[v]);
            to(R, r[_]), m[_] = R;
          } else
            m[_] = to(N, r[_]), ai(a, i[v], N), i[L] = null;
          _++;
        } else
          Ra(i[x]), x--;
      else
        Ra(i[v]), v++;
    for (; _ <= $; ) {
      const L = ai(a, m[$ + 1]);
      to(L, r[_]), m[_++] = L;
    }
    for (; v <= x; ) {
      const L = i[v++];
      L !== null && Ra(L);
    }
    return this.ut = n, Qn(a, m), we;
  }
}), ws = (a) => {
  const e = h(a);
  return s`
    /** label */
    .${e}.input {
      padding-top: 18px; /* label height */
    }

    .${e} .label {
      transform: translateY(10px);
      opacity: 0;
      transition: all 0.3s ease-in-out;
      margin-bottom: 4px;
      position: absolute;
      top: 0;
    }

    /** Visually hidden when not supposed to be shown */
    .${e}:not(.has-value, .has-focus) .label {
      border: 0;
      clip: rect(0 0 0 0);
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      width: 1px;
    }

    .${e}.has-value .label,
    .${e}.has-focus .label {
      transform: translateY(0);
      opacity: 1;
    }

    /** border-wrapper */

    .${e} .border-wrapper {
      border-bottom: 2px solid var(--maui-color-grey-07);
      background-color: transparent;
      background-color: hsl(from var(--maui-color-brand-light) h s l / 0);
    }

    .${e} .control,
    .${e} ::slotted(input) {
      background-color: transparent;
      background-color: hsl(from var(--maui-color-brand-light) h s l / 0);
    }

    .${e}.disabled .border-wrapper {
      border-color: var(--maui-color-disabled-foreground);
    }

    .${e}:focus-within .border-wrapper {
      background: var(--maui-color-brand-light);
    }

    .${e} .border-wrapper .border-right {
      z-index: 1;
      position: absolute;
      right: 0;
      bottom: 0;
      width: 2px;
      height: 20px;
      background-color: var(--maui-color-grey-07);
    }

    .${e}.has-icon .border-wrapper .border-right {
      display: none;
    }

    .${e}.disabled .border-wrapper .border-right {
      background-color: var(--maui-color-disabled-foreground);
    }

    .${e}.has-error .border-wrapper .border-right {
      background-color: var(--maui-color-message-error);
    }

    .${e}.has-value .border-wrapper {
      border-color: var(--maui-color-text-copy);
    }

    .${e}.disabled.has-value .border-wrapper {
      border-color: var(--maui-color-disabled-foreground);
    }

    .${e}.has-focus .border-wrapper {
      box-shadow: 0 0 6px 1px var(--maui-color-interaction-interaction);
      border-color: var(--maui-color-interaction-interaction);
      caret-color: var(--maui-color-interaction-interaction);
    }

    .${e}.has-error .border-wrapper {
      border-color: var(--maui-color-message-error);
      caret-color: var(--maui-color-message-error);
    }

    .${e}.has-error.has-focus .border-wrapper {
      box-shadow: 0 0 6px 1px var(--maui-color-message-error);
    }

    /** control */

    .${e}:not(.disabled) .control::placeholder {
      color: var(--maui-color-text-caption);
    }

    .${e} .control,
    .${e} ::slotted(.control) {
      ${p({ size: "forms-large", tenant: a })};
      padding-block: 6px;
      padding-inline-start: 0px;
      transition: all 0.3s ease-in-out;
    }

    .${e}.has-value .control,
    .${e}.has-value ::slotted(.control) {
      color: var(--maui-color-text-copy);
      caret-color: var(--maui-color-text-copy);
    }

    .${e}.has-error.has-value .control,
    .${e}.has-error.has-value ::slotted(.control) {
      color: var(--maui-color-message-error);
    }

    .${e}.has-focus .control,
    .${e}.has-focus ::slotted(.control) {
      padding-inline: 10px;
    }

    /** other */

    .${e}.has-focus .icon-wrapper {
      margin-right: 10px;
    }

    .${e} .icon-wrapper.has-optional:not(.has-icon) {
      padding-right: 10px;
    }

    .${e}.has-focus .icon-wrapper.has-optional:not(.has-icon) {
      padding-right: initial;
    }

    .${e} .info-wrapper {
      margin-top: 6px;
    }

    .${e} .optional-label {
      ${d({ size: "copy-small", tenant: a })};
    }

    .${e}:not(.disabled) .optional-label {
      color: var(--maui-color-grey-07);
    }

    .${e}:not(.disabled).has-error {
      --maui-icon-color-override: var(--maui-color-message-error);
    }
  `;
}, Xv = s`
  ${C}

  ${A}

  :host {
    display: inline;
    position: relative;
  }

  :focus-visible {
    outline: none;
  }

  .input {
    position: relative;
    display: flex;
    flex-direction: column;
    font-family: var(--maui-font-family-copy);
    z-index: 0;
  }

  .control,
  ::slotted(.control) {
    width: 100%;
    border: 0;
    ${p({ size: "forms-large", tenant: "wl" })};
    font-family: var(--maui-font-family-copy);
  }

  .border-wrapper {
    position: relative;
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
    flex-direction: row;
    flex-wrap: nowrap;
    transition: all 0.3s ease-in-out;
  }

  .control:focus,
  ::slotted(.control):focus {
    border: 0;
    outline: none;
  }

  .control::placeholder,
  ::slotted(.control)::placeholder {
    opacity: 1; /* Required for FF */
  }

  .disabled.has-value .border-wrapper {
    cursor: not-allowed;
    color: var(--maui-color-disabled-foreground);
  }

  .control[disabled]::placeholder,
  ::slotted(.control[disabled]) {
    color: var(--maui-color-disabled-foreground);
  }

  .control[disabled],
  ::slotted(.control[disabled]) {
    background: var(--maui-color-brand-light);
  }

  .has-value.disabled .control[disabled],
  .has-value.disabled ::slotted(.control[disabled]) {
    color: var(--maui-color-disabled-foreground);
  }

  .icon-wrapper {
    display: flex;
    gap: 5px;
    align-items: center;
    z-index: 2;
    transition: all 0.3s ease-in-out;
  }

  .optional-label {
    position: relative;
    font-family: var(--maui-font-family-copy, sans-serif);
    ${d({ size: "copy-small", tenant: "wl" })};
    color: gray;
    pointer-events: none;
  }

  .disabled .optional-label {
    color: var(--maui-color-disabled-foreground);
  }

  .hint {
    line-height: 1;
  }

  .clear,
  .icon {
    visibility: hidden;
    opacity: 0;
    position: relative;
    background: none;
    border: none;
    padding: 0;
    font: inherit;
    cursor: pointer;
    outline: inherit;
  }

  :host(:focus-within) .clear,
  .icon {
    visibility: visible;
    opacity: 1;
  }

  .disabled .icon {
    cursor: not-allowed;
    --maui-icon-color-override: var(--maui-color-disabled-foreground);
  }

  .disabled {
    --maui-label-color-override: var(--maui-color-disabled-foreground);
    --maui-hint-color-override: var(--maui-color-disabled-foreground);
  }

  ${H("clear")}
  ${H("icon")}

  /** Override browser standards */
  .control[type='number'],
  ::slotted(.control[type='number']) {
    -moz-appearance: textfield;
  }

  .control[type='number']::-webkit-inner-spin-button,
  .control[type='number']::-webkit-outer-spin-button,
  ::slotted(.control[type='number']::-webkit-inner-spin-button),
  ::slotted(.control[type='number']::-webkit-outer-spin-button) {
    -webkit-appearance: none;
  }
`, Vv = s`
  ${ws("lh")}
`, jv = s`
  /** label */

  .lx .label {
    position: absolute;
    z-index: 2;
    left: 12px;
    top: 7px;
    opacity: 0;
    --maui-label-color-override: var(--maui-color-interaction-interaction);
  }

  .lx .control,
  .lx ::slotted(.control) {
    ${p({ size: "forms-large", tenant: "lx" })};
  }

  .lx.disabled .label {
    --maui-label-color-override: var(--maui-color-disabled-foreground);
  }

  .lx.has-value .label,
  .lx.has-focus .label {
    opacity: 1;
  }

  /** border-wrapper */

  .lx .border-wrapper {
    height: 50px;
    border: 1px solid var(--maui-color-grey-02);
    box-sizing: border-box;
  }

  .lx .border-wrapper {
    background-color: var(--maui-color-brand-light);
  }

  /** control */

  .lx .control::placeholder {
    color: var(--maui-color-interaction-interaction);
  }

  .lx .control[disabled]::placeholder {
    color: var(--maui-color-disabled-foreground);
  }

  .lx .control {
    padding: 0 20px 0 10px;
  }

  .lx.has-value .control,
  .lx.has-focus .control {
    padding: 22px 20px 2px 11px;
  }

  .lx.has-error:not(.disabled) .border-wrapper {
    border-color: var(--maui-color-message-error);
  }

  /** other */

  .lx .info-wrapper {
    margin-top: 6px;
  }

  .lx .icon-wrapper {
    --maui-icon-color-override: var(--maui-color-interaction-interaction);
    margin-right: 10px;
  }

  .lx .optional-label {
    ${d({ size: "copy-small", tenant: "lx" })};
  }

  .lx:not(.disabled) .optional-label {
    color: var(--maui-color-interaction-interaction);
  }

  ${H("input", "has-focus", "border-wrapper", "lx")}
`, qv = s`
  /** label */
  .os .label {
    position: absolute;
    z-index: 2;
    left: 12px;
    top: 8px;
    opacity: 0;
    --maui-label-color-override: var(--maui-color-grey-07);
  }

  .os.disabled .label {
    --maui-label-color-override: var(--maui-color-disabled-foreground);
  }

  .os.has-value .label,
  .os.has-focus .label {
    opacity: 1;
  }

  /** border-wrapper */

  .os .border-wrapper {
    border-radius: 3px;
    background-color: var(--maui-color-grey-02);
  }

  .os .border-wrapper {
    height: 50px;
    display: flex;
  }

  /** control */

  .os .control,
  .os ::slotted(.control) {
    padding: 0 12px;
    background-color: transparent;
    ${p({ size: "forms-large", tenant: "os" })};
  }

  .os .control::placeholder {
    color: var(--maui-color-grey-07);
  }

  .os .control:autofill {
    color: #000;
    -webkit-text-fill-color: #000;
    box-shadow: 0 0 1000px 1000px #d8e3e8 inset;
    -webkit-box-shadow: 0 0 1000px 1000px #d8e3e8 inset;
  }

  .os .control:-webkit-autofill {
    color: #000;
    -webkit-text-fill-color: #000;
    box-shadow: 0 0 1000px 1000px #d8e3e8 inset;
    -webkit-box-shadow: 0 0 1000px 1000px #d8e3e8 inset;
  }

  .os.has-value .control,
  .os.has-focus .control {
    padding: 21px 12px 4px;
  }

  .os:not(.has-error, .disabled) .clear,
  .os:not(.has-error, .disabled) .icon {
    --maui-icon-color-override: var(--maui-color-grey-07);
  }

  .os.has-error:not(.has-focus) .control,
  .os.has-error:not(.has-focus) .control::placeholder {
    color: var(--maui-color-message-error);
    caret-color: var(--maui-color-message-error);
  }

  .os .control[disabled],
  .os.disabled.has-value .control[disabled] {
    cursor: not-allowed;
    color: var(--maui-color-disabled-foreground);
    background: var(--maui-color-disabled-background);
  }

  .os .control[disabled]::placeholder {
    color: var(--maui-color-disabled-foreground);
  }

  //Added otherwise I got a white background for images
  .os.disabled.has-value .border-wrapper {
    background: var(--maui-color-disabled-background);
  }

  /** other */

  .os .info-wrapper {
    margin-top: 6px;
  }

  .os .icon-wrapper {
    --maui-icon-color-override: var(--maui-color-grey-07);
    margin-right: 12px;
  }

  .os .optional-label {
    ${d({ size: "copy-small", tenant: "os" })};
  }

  .os:not(.disabled) .optional-label {
    color: var(--maui-color-grey-07);
  }

  .os.has-focus {
    --maui-focus-outline-offset: 4px;
  }

  .os:not(.disabled).has-error .clear {
    --maui-icon-color-override: var(--maui-color-message-error);
  }

  ${H("input", "has-focus", "border-wrapper", "os")}
`, Kv = s`
  /** label */

  .sn .label {
    position: absolute;
    z-index: 2;
    left: 10px;
    top: 5px;
    opacity: 0;
  }

  .sn {
    --maui-focus-radius: 0;
  }

  .sn.has-value .label,
  .sn.has-focus .label {
    opacity: 1;
  }

  /** border-wrapper */

  .sn .border-wrapper {
    height: 50px;
    border: 1px solid var(--maui-color-grey-07);
    box-sizing: border-box;
    background-color: var(--maui-color-brand-light);
  }

  /** control */

  .sn .control,
  .sn ::slotted(.control) {
    ${p({ size: "forms-large", tenant: "sn" })};
    padding: 0 20px 0 10px;
  }

  .sn ::slotted(input) {
    color: var(--maui-color-interaction-buttonsecondary);
  }

  .sn .border-wrapper .control,
  .sn .border-wrapper .control::placeholder {
    color: var(--maui-color-text-caption);
  }

  .sn.disabled .border-wrapper {
    border-color: var(--maui-color-disabled-foreground);
  }

  .sn .border-wrapper .control[disabled]::placeholder {
    color: var(--maui-color-disabled-foreground);
  }

  .sn .control:autofill {
    color: var(--maui-color-interaction-buttonsecondary);
    -webkit-text-fill-color: var(--maui-color-interaction-buttonsecondary);
    box-shadow: 0 0 1000px 1000px var(--maui-color-grey-01) inset;
    -webkit-box-shadow: 0 0 1000px 1000px var(--maui-color-grey-01) inset;
  }

  .sn .control:-webkit-autofill {
    color: var(--maui-color-interaction-buttonsecondary);
    -webkit-text-fill-color: var(--maui-color-interaction-buttonsecondary);
    box-shadow: 0 0 1000px 1000px var(--maui-color-grey-01) inset;
    -webkit-box-shadow: 0 0 1000px 1000px var(--maui-color-grey-01) inset;
  }

  .sn.has-value .control,
  .sn.has-focus .control {
    padding: 20px 20px 6px 9px;
    color: var(--maui-color-interaction-buttonsecondary);
  }

  .sn.has-error:not(.has-focus) .control {
    color: var(--maui-color-message-error);
    border-color: var(--maui-color-message-error);
  }

  .sn.has-error:not(.has-focus) .control::placeholder {
    color: var(--maui-color-message-error);
  }

  .sn.has-error:not(.disabled) .border-wrapper {
    border-color: var(--maui-color-message-error);
  }

  /** other */

  .sn .info-wrapper {
    margin-top: 5px;
  }

  .sn .icon-wrapper {
    margin-right: 10px;
  }

  .sn .optional-label {
    ${d({ size: "copy-small", tenant: "sn" })};
  }

  .sn:not(.disabled) .optional-label {
    color: var(--maui-color-text-caption);
  }

  .sn .clear,
  .sn .icon {
    --maui-icon-color-override: var(--maui-color-interaction-buttonsecondary);
  }

  .sn.has-error {
    --maui-icon-color-override: green;
  }

  ${H("input", "has-focus", "border-wrapper", "sn")}
`, Wv = s`
  ${ws("b2b")}
`, Zv = s`
  .four_y {
    --maui-focus-radius: var(--maui-radii-pill-radius);

    --maui-input-inset: calc(var(--maui-spacing-3) + var(--maui-spacing-2));
  }
  /** label */
  .four_y .label {
    position: absolute;
    z-index: 2;
    left: var(--maui-input-inset);
    top: 7px;
    opacity: 0;
  }

  .four_y.disabled .label {
    --maui-label-color-override: var(--maui-color-disabled-foreground);
  }

  .four_y.has-value .label,
  .four_y.has-focus .label {
    opacity: 1;
  }

  /** border-wrapper */

  .four_y .border-wrapper {
    border-radius: var(--maui-radii-pill-radius);
    background-color: var(--maui-color-grey-02);
  }

  .four_y .border-wrapper {
    height: 50px;
    display: flex;
  }

  /** control */

  .four_y .control,
  .four_y ::slotted(.control) {
    padding: 0 var(--maui-input-inset);
    background-color: transparent;
    ${p({ size: "forms-large", tenant: "four_y" })};
    border-radius: var(--maui-radii-pill-radius);
  }

  .four_y .control,
  .four_y ::slotted(.control) {
    color: var(--maui-color-text-copy);
  }

  .four_y .control::placeholder {
    color: var(--maui-color-text-copy);
  }

  .four_y.has-value .control,
  .four_y.has-focus .control,
  .four_y.has-value ::slotted(.control),
  .four_y.has-focus ::slotted(.control) {
    padding: 21px var(--maui-input-inset) 5px;
    font-weight: var(--maui-font-weight-bold);
  }

  .four_y.has-value.has-error .control,
  .four_y.has-focus.has-error .control,
  .four_y.has-value.has-error ::slotted(.control),
  .four_y.has-focus.has-error ::slotted(.control) {
    color: var(--maui-color-text-copy);
  }

  .four_y.has-value.clearable .control,
  .four_y.has-focus.clearable .control,
  .four_y.has-value.has-icon .control,
  .four_y.has-focus.has-icon .control {
    padding-right: var(--maui-spacing-2);
  }

  .four_y:not(.has-error, .disabled) .clear,
  .four_y:not(.has-error, .disabled) .icon {
    --maui-icon-color-override: var(--maui-color-interaction-interaction);
  }

  .four_y.has-error:not(.disabled) .clear,
  .four_y.has-error:not(.disabled) .icon {
    --maui-icon-color-override: var(--maui-color-message-error);
  }

  .four_y .control[disabled],
  .four_y.disabled.has-value .control[disabled] {
    cursor: not-allowed;
    color: var(--maui-color-disabled-foreground);
  }

  .four_y .control[disabled]::placeholder {
    color: var(--maui-color-disabled-foreground);
  }

  .four_y.disabled .border-wrapper {
    background: var(--maui-color-disabled-background);
  }

  //Added otherwise I got a white background for images
  .four_y.disabled.has-value .border-wrapper {
    background: var(--maui-color-disabled-background);
  }

  .four_y.has-error .border-wrapper {
    --maui-effect-shadow-focus-color: var(--maui-color-message-error);
    --maui-focus-outline-box-shadow: var(--maui-effect-shadow-focus-offset-x)
      var(--maui-effect-shadow-focus-offset-y)
      var(--maui-effect-shadow-focus-radius)
      var(--maui-effect-shadow-focus-spread)
      var(--maui-effect-shadow-focus-color);
    background-color: var(--maui-color-message-bg-error);
  }

  /** other */

  .four_y .info-wrapper {
    margin-top: 6px;
    margin-left: var(--maui-input-inset);
  }

  .four_y .icon-wrapper {
    margin-right: 13px;
    --maui-focus-outline-offset: 2px;
  }

  .four_y .optional-label {
    ${d({ size: "copy-small", tenant: "four_y" })};
  }

  .four_y:not(.disabled) .optional-label {
    color: var(--maui-color-grey-07);
  }

  .four_y.has-focus {
    --maui-focus-outline-offset: 3px;
  }

  .four_y:not(.disabled).has-error .clear {
    --maui-icon-color-override: var(--maui-color-message-error);
  }

  ${H("input", "has-focus", "border-wrapper", "four_y")}
`, Qv = s`
  /** label */

  .mmg .label {
    position: absolute;
    z-index: 2;
    left: 12px;
    top: 7px;
    opacity: 0;
    --maui-label-color-override: var(--maui-color-brand-mmg-grey8);
  }

  .mmg .control,
  .mmg ::slotted(.control) {
    ${p({ size: "forms-large", tenant: "mmg" })};
  }

  .mmg.disabled .label {
    --maui-label-color-override: var(--maui-color-disabled-foreground);
  }

  .mmg.has-value .label,
  .mmg.has-focus .label {
    opacity: 1;
  }

  /** border-wrapper */
  .mmg .border-wrapper {
    height: 50px;
    border: 1px solid var(--maui-color-brand-mmg-grey8);
    border-radius: 2px;
    box-sizing: border-box;
  }

  .mmg.disabled.has-value:read-only .border-wrapper,
  .mmg.disabled.has-icon:read-only .border-wrapper {
    border-color: var(--maui-color-brand-mmg-grey3);
  }

  .mmg.has-value .border-wrapper {
    border: 1px solid var(--maui-color-brand-mmg-deepblue);
  }

  .mmg.has-focus .border-wrapper {
    border: var(--maui-spacing-0) solid
      var(--maui-color-interaction-interactionhover);
  }

  /** control */

  .mmg .control::placeholder {
    color: var(--maui-color-brand-mmg-grey8);
  }

  .mmg .control[disabled]::placeholder {
    color: var(--maui-color-disabled-foreground);
  }

  .mmg .control {
    color: var(--maui-color-text-copy);
    padding: 0 var(--maui-spacing-5) 0 var(--maui-spacing-3);
    border-radius: 2px;
  }

  .mmg.has-error:not(.disabled) .control {
    color: var(--maui-color-message-error);
  }

  .mmg.has-value .control,
  .mmg.has-focus .control {
    padding: 22px 20px 2px 11px;
  }

  .mmg.disabled.has-value:read-only .control,
  .mmg.disabled.has-icon:read-only .control {
    color: var(--maui-color-text-caption);
  }

  .mmg.has-focus .control {
    color: var(--maui-color-interaction-interactionhover);
  }

  .mmg.has-error:not(.disabled) .border-wrapper {
    border-color: var(--maui-color-message-error);
  }

  /** other */

  .mmg .info-wrapper {
    margin-top: 6px;
  }

  .mmg .icon-wrapper {
    --maui-icon-color-override: var(--maui-color-interaction-interaction);
    margin-right: 10px;
  }

  .mmg .optional-label {
    ${d({ size: "copy-small", tenant: "mmg" })};
  }

  .mmg:not(.disabled) .optional-label {
    color: var(--maui-color-interaction-interaction);
  }

  .mmg.has-error:not(.disabled) .hint {
    color: var(--maui-color-message-error);
  }
`, Jv = [
  Xv,
  Vv,
  jv,
  qv,
  Kv,
  Wv,
  Zv,
  Qv
], ef = [
  // 'date',
  // 'datetime-local',
  "email",
  "number",
  "password",
  // 'search',
  "tel",
  "text",
  // 'time',
  "url"
], _s = ({
  baseClass: a,
  slots: e,
  hasSlotController: t
}) => e.filter((o) => o !== "[default]").map((o) => ({
  [`${a}--has-${o}`]: t.test(o)
})).reduce((o, i) => ({ ...o, ...i }), {});
var tf = Object.defineProperty, of = Object.getOwnPropertyDescriptor, P = (a, e, t, o) => {
  for (var i = o > 1 ? void 0 : o ? of(e, t) : e, r = a.length - 1, n; r >= 0; r--)
    (n = a[r]) && (i = (o ? n(e, t, i) : n(i)) || i);
  return o && i && tf(e, t, i), i;
};
const D = class Za extends Ne {
  constructor() {
    super(), this.formControlController = new tt(this), this.hasSlotController = new be(
      this,
      ...Za.slots
    ), this.hasFocus = !1, this.type = "text", this.controlled = !1, this.label = "", this.hint = "", this.title = "", this.passwordVisible = !1, this.clearable = !1, this.readonly = !1, this.invalid = !1, this.preventDefaultKeys = [], this.assistiveClear = "Clear", this.assistiveIcon = "", this.assistiveSlottedIcon = "", this.componentName = "input";
  }
  // to be aligned with .validation-input
  get control() {
    return this.shadowControl || this.inputSlot;
  }
  /** Gets or sets the current value as a `Date` object. Returns `null` if the value can't be converted. */
  get valueAsDate() {
    return this.control?.valueAsDate ?? null;
  }
  set valueAsDate(e) {
    const t = document.createElement("input");
    t.type = "date", t.valueAsDate = e, this.value = t.value;
  }
  /** Gets or sets the current value as a number. Returns `NaN` if the value can't be converted. */
  get valueAsNumber() {
    return this.control?.valueAsNumber ?? parseFloat(this.value);
  }
  set valueAsNumber(e) {
    const t = document.createElement("input");
    t.type = "number", t.valueAsNumber = e, this.value = t.value;
  }
  /** Sets focus on the input. */
  focus(e) {
    this.control?.focus(e);
  }
  /** Removes focus from the input. */
  blur() {
    this.control?.blur();
  }
  handleBlur() {
    this.hasFocus = !1, xt(this, "maui-blur");
  }
  handleFocus() {
    this.hasFocus = !0, xt(this, "maui-focus");
  }
  handleChange() {
    this.controlled || (this.value = this.control.value), this.emit("maui-change", { detail: { value: this.control.value } });
  }
  handleInput() {
    this.controlled || (this.value = this.control.value), this.emit("maui-input", { detail: { value: this.control.value } });
  }
  handleInvalid() {
    this.invalid = !0;
  }
  handleClearClick() {
    this.value = "", this.emit("maui-clear"), this.emit("maui-change"), this.emit("maui-input"), this.control?.focus();
  }
  handleClick() {
    this.emit("maui-click", {
      detail: { source: "input" },
      cancelable: !0
    });
  }
  handleIconClick() {
    this.emit("maui-click", { detail: { source: "icon" }, cancelable: !0 });
  }
  handleIconKeyDown(e) {
    e.stopPropagation(), (e.key === "Enter" || e.key === " ") && this.handleIconClick();
  }
  handleKeyDown(e) {
    this.preventDefaultKeys.includes(e.key) && e.preventDefault(), this.emit("maui-keydown", { detail: { event: e } }), e.stopPropagation();
    const t = e.metaKey || e.ctrlKey || e.shiftKey || e.altKey;
    e.key === "Enter" && !t && setTimeout(() => {
      e.defaultPrevented;
    });
  }
  getType() {
    return ef.indexOf(this.type) === -1 || this.type === "password" && this.passwordVisible ? "text" : this.type;
  }
  firstUpdated() {
    super.firstUpdated(), this.formControlController.updateValidity();
  }
  handleInputSlotChange(e) {
    const t = e.target;
    X(t, ["INPUT"], 1);
    const o = t.assignedElements({
      flatten: !0
    })[0];
    this.inputSlot = o;
  }
  /**
   * initialize input if no slotted input exists
   * to avoid setting same attributes to both inputs
   * @returns html input with event listeners
   */
  initInput() {
    const e = document.createElement("input");
    return e.addEventListener("change", this.handleChange.bind(this)), e.addEventListener("input", this.handleInput.bind(this)), e.addEventListener("invalid", this.handleInvalid.bind(this)), e.addEventListener("keydown", this.handleKeyDown.bind(this)), e.addEventListener(