PageSourceSearch

https://www.qt.io/hubfs/qt-web-components/2.0.0-rc.2/qt-button-kDzCVDmX.js

js qt.io collected 2026-09-24 07:26:48 UTC 7,555 bytes, 116 lines download raw bytes

1import { e as u } from "./event-9GaQoHNJ.js";
2import { r as h, n as a, s as p, x as b, t as v } from "./property-xCGpOSAp.js";
3import { e as m } from "./query-d5psdZGA.js";
4import { e as f } from "./class-map-5wuZ2AWL.js";
5import { o as s } from "./if-defined-GkN4kO_w.js";
6const g = globalThis.SubmitEvent = typeof globalThis.SubmitEvent < "u" ? SubmitEvent : Event, y = (r) => {
7  if (!(!r.noValidate && !r.reportValidity())) {
8    const t = new g("submit", {
9      bubbles: !0,
10      cancelable: !0
11    });
12    r.dispatchEvent(t), t.defaultPrevented || r.submit();
13  }
14}, q = ":host{display:var(--qt-button-display, inline-block);max-width:100%;position:relative}.label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.button{--main-color: var(--qt-color-neutral-black);--hover-color: color-mix(in srgb, var(--main-color), #fff 20%);--active-color-light: color-mix(in srgb, var(--main-color), #000 10%);--active-color-dark: color-mix(in srgb, var(--main-color), #000 20%);--bg-color: var(--main-color);--content-color: var(--qt-color-neutral-white);--border-color: var(--main-color);--border-width: 1px;--border-radius: var(--qt-border-radius-m);--padding-top: var(--qt-size-2xs);--padding-bottom: var(--qt-size-xs);--padding-horizontal: var(--qt-size-xl);--height: calc(var(--qt-size-3xl) + var(--qt-size-3xs));--font: var(--qt-font-paragraph);--icon-margin: var(--qt-size-2xs);--icon-size: var(--qt-font-size-xl);display:flex;gap:var(--icon-margin);justify-content:var(--qt-button-justify-content, center);align-items:center;box-sizing:border-box;border:none;border-radius:var(--border-radius);text-decoration:none;width:100%;height:var(--qt-button-height, var(--height));padding:var(--padding-top) var(--padding-horizontal) var(--padding-bottom);background-color:var(--bg-color);color:var(--content-color);font:var(--font);font-weight:var(--qt-font-weight-bold);font-kerning:none;-webkit-user-select:none;user-select:none;cursor:pointer;transition:all .3s cubic-bezier(.19,1,.22,1)}:host(:hover:not([disabled])) .button{--bg-color: var(--hover-color)}:host(:hover:not([disabled])[appearance=outline]) .button{--bg-color: transparent;opacity:.8}:host(:active:not([disabled])) .button{--bg-color: var(--active-color-light)}:host(:active:not([disabled])[theme=dark]) .button{--bg-color: var(--active-color-dark)}:host(:active:not([disabled])[appearance=outline]) .button{--bg-color: transparent;--border-color: var(--active-color-light);--content-color: var(--active-color-light);opacity:1}:host(:active:not([disabled])[appearance=outline][theme=dark]) .button{--border-color: var(--active-color-dark);--content-color: var(--active-color-dark)}.button:focus{outline:none}.button:focus-visible{position:relative;outline:none}:host([brand=group]) .button{--main-color: var(--qt-color-group-primary);--content-color: var(--qt-color-group-secondary)}:host([brand=development]) .button{--main-color: var(--qt-color-development-primary);--content-color: var(--qt-color-development-secondary)}:host([brand=qa]) .button{--main-color: var(--qt-color-qa-primary);--content-color: var(--qt-color-qa-secondary)}:host([theme=dark]) .button{--content-color: var(--qt-color-neutral-white)}:host([theme=dark][brand=group]) .button{--main-color: var(--qt-color-group-secondary)}:host([theme=dark][brand=development]) .button{--main-color: var(--qt-color-development-secondary)}:host([theme=dark][brand=qa]) .button{--main-color: var(--qt-color-qa-secondary)}:host([appearance=outline]) .button{--bg-color: transparent;--content-color: var(--main-color);border:solid var(--border-width) var(--border-color)}:host .button[aria-disabled=true]{--main-color: var(--qt-color-disabled-dark);--content-color: var(--qt-color-neutral-darker);pointer-events:none;text-decoration:none}:host([theme=dark]) .button[aria-disabled=true]{--main-color: var(--qt-color-disabled-light);--content-color: var(--qt-color-disabled-dark)}:host([appearance=outline]) .button[aria-disabled=true]{--main-color: var(--qt-color-disabled-dark);--content-color: var(--main-color)}:host([theme=dark][appearance=outline]) .button[aria-disabled=true]{--main-color: var(--qt-color-disabled-light)}:host([brand=neutral]) .button[aria-disabled=true]{--main-color: var(--qt-color-disabled-light);--content-color: var(--qt-color-disabled-dark)}:host([brand=neutral][appearance=outline]) .button[aria-disabled=true]{--content-color: var(--main-color)}:host([disabled]){cursor:not-allowed}:host ::slotted(qt-icon){font-size:var(--icon-size)}:host .has-icon:not(.has-content){--icon-margin: 0;--padding-horizontal: var(--padding-bottom)}";
15var k = Object.defineProperty, x = Object.getOwnPropertyDescriptor, e = (r, t, n, i) => {
16  for (var l = i > 1 ? void 0 : i ? x(t, n) : t, c = r.length - 1, d; c >= 0; c--)
17    (d = r[c]) && (l = (i ? d(t, n, l) : d(l)) || l);
18  return i && l && k(t, n, l), l;
19};
20let o = class extends p {
21  constructor() {
22    super(...arguments), this.brand = "neutral", this.appearance = "fill", this.theme = "light", this.disabled = !1, this.autofocus = !1, this.target = "_self";
23  }
24  _handleClick() {
25    var r;
26    if (this.type === "submit") {
27      let t;
28      this.form instanceof HTMLFormElement ? t = this.form : typeof this.form == "string" ? t = document.getElementById(this.form) : t = this.closest("form"), t && y(t);
29    }
30    (r = this.onClick) == null || r.call(this, "Click event fired!");
31  }
32  focus() {
33    this.button.focus();
34  }
35  get _hasIconSlot() {
36    return this.querySelector(':scope > [slot="icon"]') !== null;
37  }
38  get _hasDefaultSlot() {
39    return [...this.childNodes].some((t) => {
40      var i;
41      const n = t.nodeType;
42      return n === t.TEXT_NODE && ((i = t.textContent) == null ? void 0 : i.trim()) !== "" || n === t.ELEMENT_NODE && !t.hasAttribute("slot");
43    });
44  }
45  render() {
46    const r = !!this.href, t = f({
47      button: !0,
48      "has-icon": this._hasIconSlot,
49      "has-content": this._hasDefaultSlot
50    }), n = b`<slot name="icon"></slot><span class="label"><slot></slot></span>`;
51    return r ? b`<a
52                  class=${t}
53                  ?autofocus=${this.autofocus}
54                  href=${s(this.href)}
55                  target=${s(this.target)}
56                  aria-disabled="${s(this.disabled)}"
57                  aria-label="${s(this.label)}"
58                  role="button"
59              >
60                  ${n}
61              </a>` : b`<button
62                  class=${t}
63                  ?autofocus=${this.autofocus}
64                  ?disabled=${this.disabled}
65                  @click="${this._handleClick}"
66                  aria-disabled="${s(this.disabled)}"
67                  aria-label="${s(this.label)}"
68              >
69                  ${n}
70              </button>`;
71  }
72};
73o.styles = h(q);
74e([
75  a({ type: String, reflect: !0 })
76], o.prototype, "brand", 2);
77e([
78  a({ type: String, reflect: !0 })
79], o.prototype, "appearance", 2);
80e([
81  a({ type: String, reflect: !0 })
82], o.prototype, "theme", 2);
83e([
84  a({ type: String })
85], o.prototype, "label", 2);
86e([
87  a({ type: Boolean, reflect: !0 })
88], o.prototype, "disabled", 2);
89e([
90  a({ type: Boolean, reflect: !0 })
91], o.prototype, "autofocus", 2);
92e([
93  a({ type: String })
94], o.prototype, "href", 2);
95e([
96  a({ type: String })
97], o.prototype, "target", 2);
98e([
99  a({ type: String })
100], o.prototype, "type", 2);
101e([
102  a({ type: String })
103], o.prototype, "form", 2);
104e([
105  m(".button")
106], o.prototype, "button", 2);
107e([
108  u("qt-click")
109], o.prototype, "onClick", 2);
110o = e([
111  v("qt-button")
112], o);
113export {
114  o as Q,
115  y as s
116};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.