@mattilsynet/design 1.3.6 → 1.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/mtds/app/app-observer.js +23 -28
  2. package/mtds/app/app-observer.js.map +1 -1
  3. package/mtds/app/app-toggle.js +10 -26
  4. package/mtds/app/app-toggle.js.map +1 -1
  5. package/mtds/app/app-toggle2.js +26 -14
  6. package/mtds/app/app-toggle2.js.map +1 -1
  7. package/mtds/app/app.js +1 -1
  8. package/mtds/dialog/dialog-observer.js +14 -15
  9. package/mtds/dialog/dialog-observer.js.map +1 -1
  10. package/mtds/errorsummary/errorsummary-observer.js +7 -8
  11. package/mtds/errorsummary/errorsummary-observer.js.map +1 -1
  12. package/mtds/external/@u-elements/u-combobox/dist/u-combobox.js +146 -132
  13. package/mtds/external/@u-elements/u-combobox/dist/u-combobox.js.map +1 -1
  14. package/mtds/external/@u-elements/u-datalist/dist/u-datalist.js +80 -79
  15. package/mtds/external/@u-elements/u-datalist/dist/u-datalist.js.map +1 -1
  16. package/mtds/external/@u-elements/u-details/dist/u-details.js +1 -1
  17. package/mtds/external/@u-elements/u-details/dist/u-details.js.map +1 -1
  18. package/mtds/external/@u-elements/u-progress/dist/u-progress.js +2 -2
  19. package/mtds/external/@u-elements/u-progress/dist/u-progress.js.map +1 -1
  20. package/mtds/external/@u-elements/u-tabs/dist/u-tabs.js +3 -3
  21. package/mtds/external/@u-elements/u-tabs/dist/u-tabs.js.map +1 -1
  22. package/mtds/field/field-observer.js +29 -34
  23. package/mtds/field/field-observer.js.map +1 -1
  24. package/mtds/field/field.d.ts +3 -0
  25. package/mtds/field/field.js +45 -45
  26. package/mtds/field/field.js.map +1 -1
  27. package/mtds/field/field.stories.d.ts +2 -1
  28. package/mtds/fieldset/fieldset-observer.js +10 -11
  29. package/mtds/fieldset/fieldset-observer.js.map +1 -1
  30. package/mtds/illustrations/index.json +17 -0
  31. package/mtds/illustrations/person-alert.svg +1 -0
  32. package/mtds/index.iife.js +7 -7
  33. package/mtds/logo/logo-observer.js +9 -9
  34. package/mtds/logo/logo-observer.js.map +1 -1
  35. package/mtds/package.json.js +1 -1
  36. package/mtds/popover/popover-observer.js +15 -17
  37. package/mtds/popover/popover-observer.js.map +1 -1
  38. package/mtds/popover/popover.d.ts +2 -1
  39. package/mtds/popover/popover.js.map +1 -1
  40. package/mtds/styles.css +1 -1
  41. package/mtds/styles.json +20 -20
  42. package/mtds/styles.module.css.js +88 -86
  43. package/mtds/styles.module.css.js.map +1 -1
  44. package/mtds/togglegroup/togglegroup-observer.js +9 -10
  45. package/mtds/togglegroup/togglegroup-observer.js.map +1 -1
  46. package/mtds/tooltip/tooltip-observer.js +20 -21
  47. package/mtds/tooltip/tooltip-observer.js.map +1 -1
  48. package/mtds/utils.d.ts +13 -0
  49. package/mtds/utils.js +68 -64
  50. package/mtds/utils.js.map +1 -1
  51. package/package.json +17 -15
  52. package/mtds/helptext/helptext-observer.d.ts +0 -1
  53. package/mtds/steps/steps-observer.d.ts +0 -1
@@ -1,22 +1,22 @@
1
- var X = Object.defineProperty, D = Object.getOwnPropertySymbols, W = Object.prototype.hasOwnProperty, Y = Object.prototype.propertyIsEnumerable, N = (t, e, o) => e in t ? X(t, e, { enumerable: !0, configurable: !0, writable: !0, value: o }) : t[e] = o, z = (t, e) => {
1
+ var z = Object.defineProperty, F = Object.getOwnPropertySymbols, G = Object.prototype.hasOwnProperty, J = Object.prototype.propertyIsEnumerable, H = (t, e, o) => e in t ? z(t, e, { enumerable: !0, configurable: !0, writable: !0, value: o }) : t[e] = o, Q = (t, e) => {
2
2
  for (var o in e || (e = {}))
3
- W.call(e, o) && N(t, o, e[o]);
4
- if (D)
5
- for (var o of D(e))
6
- Y.call(e, o) && N(t, o, e[o]);
3
+ G.call(e, o) && H(t, o, e[o]);
4
+ if (F)
5
+ for (var o of F(e))
6
+ J.call(e, o) && H(t, o, e[o]);
7
7
  return t;
8
- }, w = typeof window < "u" && typeof window.document < "u" && typeof window.navigator < "u", H = w && /android/i.test(navigator.userAgent), G = w && /firefox/i.test(navigator.userAgent), J = w && /iPad|iPhone|iPod/.test(navigator.userAgent), R;
8
+ }, w = typeof window < "u" && typeof window.document < "u" && typeof window.navigator < "u", V = w && /android/i.test(navigator.userAgent), Z = w && /firefox/i.test(navigator.userAgent), tt = w && /iPad|iPhone|iPod/.test(navigator.userAgent), B;
9
9
  w && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474
10
- /^Mac/i.test(((R = navigator.userAgentData) == null ? void 0 : R.platform) || navigator.platform);
11
- var Q = "outline: 1px dotted; outline: 5px auto Highlight; outline: 5px auto -webkit-focus-ring-color", Z = typeof HTMLElement > "u" ? class {
10
+ /^Mac/i.test(((B = navigator.userAgentData) == null ? void 0 : B.platform) || navigator.platform);
11
+ var et = "outline: 1px dotted; outline: 5px auto Highlight; outline: 5px auto -webkit-focus-ring-color", ot = typeof HTMLElement > "u" ? class {
12
12
  } : HTMLElement;
13
- function u(t, e, o) {
13
+ function s(t, e, o) {
14
14
  return o === void 0 ? t.getAttribute(e) : (o === null ? t.removeAttribute(e) : t.getAttribute(e) !== o && t.setAttribute(e, o), null);
15
15
  }
16
- var B = (t, e, o) => {
17
- for (const n of o[0].split(","))
18
- o[0] = n, Element.prototype[`${t}EventListener`].apply(e, o);
19
- }, A = (t, ...e) => B("add", t, e), tt = (t, ...e) => B("remove", t, e), x = /* @__PURE__ */ new WeakMap(), O = (t, e) => {
16
+ var q = (t, e, o) => {
17
+ for (const i of o[0].split(","))
18
+ o[0] = i, Element.prototype[`${t}EventListener`].apply(e, o);
19
+ }, O = (t, ...e) => q("add", t, e), it = (t, ...e) => q("remove", t, e), x = /* @__PURE__ */ new WeakMap(), L = (t, e) => {
20
20
  if (e === void 0) return x.get(t);
21
21
  try {
22
22
  x.get(t).disconnect(), x.delete(t);
@@ -24,30 +24,30 @@ var B = (t, e, o) => {
24
24
  }
25
25
  if (e) {
26
26
  const o = new MutationObserver(
27
- (n) => t.handleEvent({ type: "mutation", detail: n })
27
+ (i) => t.handleEvent({ type: "mutation", detail: i })
28
28
  );
29
29
  o.observe(t, e), x.set(t, o);
30
30
  }
31
- }, et = (t) => {
31
+ }, nt = (t) => {
32
32
  const e = "key" in t && (t.key === " " || t.key === "Enter");
33
33
  return e && t.preventDefault(), e && t.target instanceof HTMLElement && t.target.click(), e;
34
- }, ot = (t) => {
34
+ }, rt = (t) => {
35
35
  var e;
36
36
  const o = ((e = t.getRootNode) == null ? void 0 : e.call(t)) || t.ownerDocument;
37
37
  return o instanceof Document || o instanceof ShadowRoot ? o : document;
38
- }, it = 0, nt = (t) => t ? (t.id || (t.id = `:${t.nodeName.toLowerCase()}${(++it).toString(32)}`), t.id) : "", I = (t, e, o) => {
39
- const n = document.createElement(t);
40
- if (e && (n.textContent = e), o) for (const [i, a] of Object.entries(o)) u(n, i, a);
41
- return n;
42
- }, at = {
38
+ }, at = 0, lt = (t) => t ? (t.id || (t.id = `:${t.nodeName.toLowerCase()}${(++at).toString(32)}`), t.id) : "", C = (t, e, o) => {
39
+ const i = document.createElement(t);
40
+ if (e && (i.textContent = e), o) for (const [n, r] of Object.entries(o)) s(i, n, r);
41
+ return i;
42
+ }, st = {
43
43
  define: (t, e) => !w || window.customElements.get(t) || window.customElements.define(t, e)
44
- }, b, rt = 0, L = (t) => {
45
- b || (b = I("div"), b.style.cssText = "position:fixed;overflow:hidden;width:1px;white-space:nowrap", u(b, "aria-live", "assertive")), b.isConnected || document.body.append(b), t && (b.textContent = `${t}${rt++ % 2 ? " " : ""}`);
46
- }, F = (t, e, o = "") => {
47
- var n, i;
48
- const a = { bubbles: !0, composed: !0, data: e, inputType: o }, r = HTMLInputElement.prototype;
49
- t.dispatchEvent(new InputEvent("beforeinput", a)), (i = (n = Object.getOwnPropertyDescriptor(r, "value")) == null ? void 0 : n.set) == null || i.call(t, e), t.dispatchEvent(new InputEvent("input", a)), t.dispatchEvent(new Event("change", { bubbles: !0 }));
50
- }, $ = !1, P = "beforeinput,blur,focus,click,input,keydown,mousedown,mouseup", V = { once: !0, passive: !0 }, lt = G && !H, st = H || J, k = "false", ut = "insertReplacementText", C = {
44
+ }, y, ut = 0, M = (t) => {
45
+ y || (y = C("div"), y.style.cssText = "position:fixed;overflow:hidden;width:1px;white-space:nowrap", s(y, "aria-live", "assertive")), y.isConnected || document.body.append(y), t && (y.textContent = `${t}${ut++ % 2 ? " " : ""}`);
46
+ }, K = (t, e, o = "") => {
47
+ var i, n;
48
+ const r = { bubbles: !0, composed: !0, data: e, inputType: o }, a = HTMLInputElement.prototype;
49
+ t.dispatchEvent(new InputEvent("beforeinput", r)), (n = (i = Object.getOwnPropertyDescriptor(a, "value")) == null ? void 0 : i.set) == null || n.call(t, e), t.dispatchEvent(new InputEvent("input", r)), t.dispatchEvent(new Event("change", { bubbles: !0 }));
50
+ }, A = !1, N = (t) => (t?.type === "mouseup" && (A = !1), t?.type === "mousedown" && (A = !0, O(document, "mouseup", N, { once: !0 })), A), j = "beforeinput,blur,focus,click,input,keydown,mousedown", U = { once: !0, passive: !0 }, ct = Z && !V, dt = V || tt, k = "false", T = {
51
51
  added: "Added",
52
52
  empty: "No selected",
53
53
  found: "Navigate left to find %d selected",
@@ -55,12 +55,12 @@ var B = (t, e, o) => {
55
55
  of: "of",
56
56
  remove: "Press to remove",
57
57
  removed: "Removed"
58
- }, ct = class extends Z {
58
+ }, vt = class extends ot {
59
59
  constructor() {
60
- super(), this._speak = "", this._texts = z({}, C), this._value = "", this.attachShadow({ mode: "open" }).append(
61
- I("slot"),
60
+ super(), this._itemText = "", this._speak = "", this._texts = Q({}, T), this._value = "", this.attachShadow({ mode: "open" }).append(
61
+ C("slot"),
62
62
  // Content slot
63
- I(
63
+ C(
64
64
  "style",
65
65
  `:host(:not([hidden])) { display: block; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0) } /* Must be display block in Safari to allow focus inside */
66
66
  :host(:not([data-multiple])) ::slotted(data),
@@ -69,42 +69,50 @@ var B = (t, e, o) => {
69
69
  ::slotted(del) { text-decoration: none }
70
70
  ::slotted(data:not([hidden])) { display: inline-block; pointer-events: none }
71
71
  ::slotted(data)::after { content: '\\00D7'; content: '\\00D7' / ''; padding-inline: .5ch; pointer-events: auto }
72
- ::slotted(data:focus) { ${Q} }`
72
+ ::slotted(data:focus) { ${et} }`
73
73
  )
74
74
  );
75
75
  }
76
76
  // Locally store value to store value before input-click
77
77
  // Using ES2015 syntax for backwards compatibility
78
78
  static get observedAttributes() {
79
- return Object.keys(C).map((t) => `data-sr-${t}`);
79
+ return Object.keys(T).map((t) => `data-sr-${t}`);
80
80
  }
81
81
  connectedCallback() {
82
- this._root = ot(this), A(this, P, this, !0), O(this, { childList: !0, subtree: !0 }), setTimeout(T, 0, this), setTimeout(M, 0, this);
82
+ this._root = rt(this), O(this, j, this, !0), L(this, {
83
+ attributeFilter: ["value"],
84
+ // Respond to changes in <data> value,
85
+ attributes: !0,
86
+ characterData: !0,
87
+ // Respond to changes in <data> textContent
88
+ childList: !0,
89
+ subtree: !0
90
+ }), setTimeout(I, 0, this), setTimeout(S, 0, this);
83
91
  }
84
92
  attributeChangedCallback(t, e, o) {
85
- const n = t.split("data-sr-")[1];
86
- C[n] && (this._texts[n] = o || C[n]);
93
+ const i = t.split("data-sr-")[1];
94
+ T[i] && (this._texts[i] = o || T[i]);
87
95
  }
88
96
  disconnectedCallback() {
89
- O(this, !1), tt(this, P, this, !0), this._items = this._clear = this._focus = this._control = void 0, this._list = this._options = this._root = void 0;
97
+ L(this, !1), it(this, j, this, !0), this._items = this._clear = this._focus = this._control = void 0, this._list = this._options = this._root = void 0;
90
98
  }
91
99
  handleEvent(t) {
92
100
  const e = t.target;
93
- t.type === "beforeinput" && (this._value = (e == null ? void 0 : e.value) || ""), t.type === "blur" && vt(this), t.type === "click" && ft(this, t), t.type === "focus" && dt(this, t), t.type === "input" && mt(this, t), t.type === "keydown" && ht(this, t), t.type === "mousedown" && ($ = this.contains(e)), t.type === "mouseup" && ($ = !1), t.type === "mutation" && T(this, t);
101
+ t.type === "beforeinput" && (this._value = e?.value || ""), t.type === "blur" && ft(this), t.type === "click" && ht(this, t), t.type === "focus" && pt(this, t), t.type === "input" && _t(this, t), t.type === "keydown" && bt(this, t), t.type === "mousedown" && N(t), t.type === "mutation" && I(this, t);
94
102
  }
95
103
  get multiple() {
96
104
  var t;
97
- return ((t = u(this, "data-multiple")) != null ? t : k) !== k;
105
+ return ((t = s(this, "data-multiple")) != null ? t : k) !== k;
98
106
  }
99
107
  set multiple(t) {
100
- u(this, "data-multiple", t ? "" : null);
108
+ s(this, "data-multiple", t ? "" : null);
101
109
  }
102
110
  get creatable() {
103
111
  var t;
104
- return ((t = u(this, "data-creatable")) != null ? t : k) !== k;
112
+ return ((t = s(this, "data-creatable")) != null ? t : k) !== k;
105
113
  }
106
114
  set creatable(t) {
107
- u(this, "data-creatable", t ? "" : null);
115
+ s(this, "data-creatable", t ? "" : null);
108
116
  }
109
117
  get control() {
110
118
  var t;
@@ -132,111 +140,117 @@ var B = (t, e, o) => {
132
140
  get values() {
133
141
  return [...this.items].map(({ value: t }) => t);
134
142
  }
135
- }, y = (t) => {
143
+ }, b = (t) => {
136
144
  var e;
137
- return ((e = t == null ? void 0 : t.textContent) == null ? void 0 : e.trim()) || "";
138
- }, S = (t) => t instanceof HTMLDataElement, T = (t, e) => {
139
- var o, n;
140
- const { _focus: i, _texts: a, items: r, control: l, list: d, multiple: c } = t;
141
- let p = `${y((o = l == null ? void 0 : l.labels) == null ? void 0 : o[0])}, ${c ? r.length ? a.found.replace("%d", `${r.length}`) : a.empty : ""}`;
142
- const s = [];
143
- for (const { addedNodes: v, removedNodes: h } of (e == null ? void 0 : e.detail) || []) {
144
- for (const f of v) S(f) && s.unshift(f);
145
- for (const f of h) S(f) && s.push(f);
146
- }
147
- const _ = c ? s.length === 1 : s[0] === i;
148
- if (i && l && _) {
149
- const v = u(l, "inputmode"), h = S(i) ? l : i;
150
- t._speak = `${a[s[0].isConnected ? "added" : "removed"]} ${y(s[0])}, `, (st || i === l) && L(t._speak), l !== h && (u(l, "aria-expanded", null), u(l, "inputmode", "none"), p = " ", l.focus()), setTimeout(() => {
151
- var f;
152
- u(l, "aria-expanded", "true"), u(l, "inputmode", v), (f = h == null ? void 0 : h.focus) == null || f.call(h), t._speak = "", lt ? A(t, "blur", () => T(t), V) : setTimeout(T, 100, t);
145
+ return ((e = t?.textContent) == null ? void 0 : e.trim()) || "";
146
+ }, D = (t) => t instanceof HTMLDataElement, I = (t, e) => {
147
+ var o, i;
148
+ const { _focus: n, _texts: r, items: a, control: l, list: d, multiple: c } = t;
149
+ let v = `${b((o = l?.labels) == null ? void 0 : o[0])}, ${c ? a.length ? r.found.replace("%d", `${a.length}`) : r.empty : ""}`;
150
+ const u = [];
151
+ for (const { addedNodes: m, removedNodes: h } of e?.detail || []) {
152
+ for (const p of m) D(p) && u.unshift(p);
153
+ for (const p of h) D(p) && u.push(p);
154
+ }
155
+ const g = c ? u.length === 1 : u[0] === n;
156
+ if (n && l && g) {
157
+ const m = s(l, "inputmode"), h = D(n) ? l : n;
158
+ t._speak = `${r[u[0].isConnected ? "added" : "removed"]} ${b(u[0])}, `, (dt || n === l) && M(t._speak), l !== h && (s(l, "aria-expanded", null), s(l, "inputmode", "none"), v = " ", l.focus()), setTimeout(() => {
159
+ var p;
160
+ s(l, "aria-expanded", "true"), s(l, "inputmode", m), (p = h?.focus) == null || p.call(h), t._speak = "", ct ? O(t, "blur", () => I(t), U) : setTimeout(I, 100, t);
153
161
  }, 100);
154
162
  }
155
- let m = 0;
156
- for (const v of r) {
157
- const h = y(v), f = v.value || h, U = `${t._speak}${h}, ${a.remove}, ${++m} ${a.of} ${r.length}`;
158
- u(v, "role", "button"), u(v, "value", f), u(v, "tabindex", "-1"), u(v, "aria-label", U);
163
+ let f = 0;
164
+ const _ = t.querySelector("select");
165
+ for (const m of a) {
166
+ const h = _?.options[f], p = b(m), $ = m.value || p, Y = `${t._speak}${p}, ${r.remove}, ${++f} ${r.of} ${a.length}`;
167
+ s(m, "role", "button"), s(m, "value", $), s(m, "tabindex", "-1"), s(m, "aria-label", Y), h ? Object.assign(h, { textContent: p, value: $ }) : _?.appendChild(new Option(p, $, !0, !0));
159
168
  }
160
- !c && m > 1 && console.warn("u-combobox: Multiple <data> found in single mode."), d && u(d, "aria-multiselectable", `${c}`), l && u(l, "list", nt(d)), l && u(l, "aria-label", `${t._speak}${p}`);
161
- const g = t.querySelector("select");
162
- g && (g.multiple = c), g && (g.textContent = ""), g == null || g.append(...t.values.map((v) => new Option(v, v, !0, !0))), j(t), q(t), (n = O(t)) == null || n.takeRecords();
163
- }, j = (t) => {
169
+ _ && s(_, "multiple", c ? "" : null);
170
+ for (const m of [..._?.options || []].slice(f)) m.remove();
171
+ !c && f > 1 && console.warn("u-combobox: Multiple <data> found in single mode."), d && s(d, "aria-multiselectable", `${c}`), l && s(l, "list", lt(d)), l && s(l, "aria-label", `${t._speak}${v}`);
172
+ const R = b(a[0]);
173
+ R !== t._itemText && S(t, !1), t._itemText = R, X(t), W(t), (i = L(t)) == null || i.takeRecords();
174
+ }, X = (t) => {
164
175
  var e;
165
- t.clear && u(t.clear, "role", "button"), t.clear && (t.clear.hidden = !((e = t.control) != null && e.value));
166
- }, q = (t) => {
176
+ t.clear && s(t.clear, "role", "button"), t.clear && (t.clear.hidden = !((e = t.control) != null && e.value));
177
+ }, W = (t) => {
167
178
  var e;
168
- const { _speak: o, options: n = [], values: i } = t;
169
- for (const a of n) {
170
- const r = (e = u(a, "value")) != null ? e : y(a);
171
- u(a, "aria-label", o ? `${o}${y(a)}` : null), u(a, "selected", i.includes(r) ? "" : null);
172
- }
173
- }, M = (t) => {
174
- const { multiple: e, control: o, items: n } = t, i = y(n[0]);
175
- !e && o && i !== o.value && F(o, i, "insertText");
176
- }, K = (t, e = !0) => {
179
+ const { _speak: o, options: i = [], values: n } = t;
180
+ for (const r of i) {
181
+ const a = (e = s(r, "value")) != null ? e : b(r);
182
+ s(r, "aria-label", o ? `${o}${b(r)}` : null), s(r, "selected", n.includes(a) ? "" : null);
183
+ }
184
+ }, S = (t, e = !0) => {
185
+ const { multiple: o, control: i, items: n } = t, r = b(n[0]);
186
+ if (!(o || !i || r === i.value)) {
187
+ if (e) return K(i, r, "insertText");
188
+ i.value = r;
189
+ }
190
+ }, P = (t, e = !0) => {
177
191
  var o;
178
- const { _texts: n, options: i = [], creatable: a, control: r, items: l, multiple: d } = t, c = ((o = r == null ? void 0 : r.value) == null ? void 0 : o.trim()) || "", p = c.toLowerCase() || null;
179
- let s = [...i].find((m) => m.label.trim().toLowerCase() === p);
180
- const _ = { bubbles: !0, cancelable: !0, detail: s };
181
- if (t.dispatchEvent(new CustomEvent("beforematch", _)))
182
- for (const m of i) m.selected = m === s;
183
- if (s = [...i].find((m) => m.selected), q(t), s) return E(t, s, !1, !!e);
184
- if (a && c) return E(t, { value: c }, !1);
185
- !d && l[0] && E(t, l[0], !0, !1), e && L(n.invalid);
186
- }, E = (t, e, o = !0, n = !0) => {
187
- const { control: i, items: a, multiple: r } = t, l = I("data", e.label || e.value, {
192
+ const { _texts: i, options: n = [], creatable: r, control: a, items: l, multiple: d } = t, c = ((o = a?.value) == null ? void 0 : o.trim()) || "", v = c.toLowerCase() || null;
193
+ let u = [...n].find(
194
+ (f) => (s(f, "label") || b(f)).trim().toLowerCase() === v
195
+ );
196
+ const g = { bubbles: !0, cancelable: !0, detail: u };
197
+ if (t.dispatchEvent(new CustomEvent("beforematch", g)) || (u = [...n].find((f) => f.selected)), e)
198
+ return W(t), u ? E(t, u, !1) : r && c ? E(t, { value: c }, !1) : (!d && l[0] ? E(t, l[0]) : S(t), M(i.invalid));
199
+ for (const f of n) f.selected = f === u;
200
+ }, E = (t, e, o = !0) => {
201
+ const { control: i, items: n, multiple: r } = t, a = C("data", e.label || e.value, {
188
202
  value: e.value
189
- }), d = [...a].find((s) => s.value === e.value), c = { bubbles: !0, cancelable: !0, detail: d || l };
190
- if (!(d && !o) && t.dispatchEvent(new CustomEvent("beforechange", c))) {
191
- if (!r) for (const s of [...a]) s.remove();
192
- d ? d.remove() : i == null || i.insertAdjacentElement("beforebegin", l), t.dispatchEvent(new CustomEvent("afterchange", c));
193
- }
194
- n && setTimeout(M, 10, t);
195
- }, dt = (t, { target: e }) => {
196
- e instanceof HTMLElement && (t._focus = e), L();
197
- }, vt = (t) => $ || setTimeout(pt, 0, t), pt = (t) => {
203
+ }), l = [...n].find((v) => v.value === e.value), d = { bubbles: !0, cancelable: !0, detail: l || a };
204
+ if (l && !o) return S(t);
205
+ if (t.dispatchEvent(new CustomEvent("beforechange", d))) {
206
+ if (!r) for (const v of [...n]) v.remove();
207
+ l ? l.remove() : i?.insertAdjacentElement("beforebegin", a), t.dispatchEvent(new CustomEvent("afterchange", d));
208
+ }
209
+ }, pt = (t, { target: e }) => {
210
+ e instanceof HTMLElement && (t._focus = e), M();
211
+ }, ft = (t) => N() || setTimeout(mt, 0, t), mt = (t) => {
198
212
  var e;
199
- !t._focus || t.contains((e = t._root) == null ? void 0 : e.activeElement) || (t._focus = void 0, M(t));
200
- }, ft = (t, e) => {
201
- const { clientX: o, clientY: n, target: i } = e, { clear: a, control: r, items: l } = t;
202
- if (a != null && a.contains(i))
203
- return r && F(r, "", "deleteContentBackward"), r == null ? void 0 : r.focus();
213
+ !t._focus || t.contains((e = t._root) == null ? void 0 : e.activeElement) || (t.multiple || P(t), t._focus = void 0);
214
+ }, ht = (t, e) => {
215
+ const { clientX: o, clientY: i, target: n } = e, { clear: r, control: a, items: l } = t;
216
+ if (r?.contains(n))
217
+ return a && K(a, "", "deleteContentBackward"), a?.focus();
204
218
  for (const d of l) {
205
- const { top: c, right: p, bottom: s, left: _ } = d.getBoundingClientRect();
206
- if (d.contains(i)) return E(t, d);
207
- if (n >= c && n <= s && o >= _ && o <= p) return d.focus();
219
+ const { top: c, right: v, bottom: u, left: g } = d.getBoundingClientRect();
220
+ if (d.contains(n)) return E(t, d);
221
+ if (i >= c && i <= u && o >= g && o <= v) return d.focus();
208
222
  }
209
- i === t && (r == null || r.focus());
210
- }, mt = (t, e) => {
223
+ n === t && a?.focus();
224
+ }, _t = (t, e) => {
211
225
  var o;
212
- const { options: n = [], control: i, multiple: a } = t, r = ((o = i == null ? void 0 : i.value) == null ? void 0 : o.trim()) || "";
213
- if (e instanceof InputEvent ? !e.inputType || e.inputType === ut : !!r) {
214
- e.stopImmediatePropagation(), i && (i.value = t._value);
215
- for (const d of n)
216
- if (d.value && d.value === r)
217
- return E(t, d, a);
218
- } else a || K(t, !1);
219
- j(t);
220
- }, ht = (t, e) => {
226
+ const { options: i = [], control: n, multiple: r } = t, a = ((o = n?.value) == null ? void 0 : o.trim()) || "";
227
+ if (e instanceof InputEvent ? !e.inputType || e.inputType === "insertReplacementText" : !!a) {
228
+ e.stopImmediatePropagation(), n && (n.value = t._value);
229
+ for (const d of i)
230
+ if (d.value && d.value === a)
231
+ return E(t, d, r);
232
+ } else r || P(t, !1);
233
+ X(t);
234
+ }, bt = (t, e) => {
221
235
  var o;
222
236
  if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) return;
223
- const { clear: n, control: i, items: a } = t, { key: r, repeat: l, target: d } = e, c = i && i === d, p = c && (i == null ? void 0 : i.selectionEnd);
224
- let s = c ? a.length : [...a].indexOf(d);
225
- if (c && r === "Tab" && n && !n.hidden && (e.preventDefault(), n.tabIndex = -1, n.focus(), A(n, "blur", () => u(n, "tabindex", null), V)), !(!c && et(e) || s === -1)) {
226
- if (r === "ArrowRight" && !c) s += 1;
227
- else if (r === "ArrowLeft" && !p) s -= 1;
228
- else if (r === "Enter" && c) {
229
- const _ = u(i, "form");
230
- return u(i, "form", "#"), requestAnimationFrame(() => u(i, "form", _)), K(t);
231
- } else if ((r === "Backspace" || r === "Delete") && !p) {
232
- if (e.preventDefault(), !l && a[s]) return E(t, a[s]);
233
- c && (s -= 1);
234
- } else return c || (i == null ? void 0 : i.focus());
235
- e.preventDefault(), (o = a[Math.max(0, s)] || i) == null || o.focus();
237
+ const { clear: i, control: n, items: r } = t, { key: a, repeat: l, target: d } = e, c = n && n === d, v = c && n?.selectionEnd;
238
+ let u = c ? r.length : [...r].indexOf(d);
239
+ if (c && a === "Tab" && i && !i.hidden && (e.preventDefault(), i.tabIndex = -1, i.focus(), O(i, "blur", () => s(i, "tabindex", null), U)), !(!c && nt(e) || u === -1)) {
240
+ if (a === "ArrowRight" && !c) u += 1;
241
+ else if (a === "ArrowLeft" && !v) u -= 1;
242
+ else if (a === "Enter" && c) {
243
+ const g = s(n, "form");
244
+ return s(n, "form", "#"), requestAnimationFrame(() => s(n, "form", g)), P(t);
245
+ } else if ((a === "Backspace" || a === "Delete") && !v) {
246
+ if (e.preventDefault(), !l && r[u]) return E(t, r[u]);
247
+ c && (u -= 1);
248
+ } else return c || n?.focus();
249
+ e.preventDefault(), (o = r[Math.max(0, u)] || n) == null || o.focus();
236
250
  }
237
251
  };
238
- at.define("u-combobox", ct);
252
+ st.define("u-combobox", vt);
239
253
  export {
240
- ct as UHTMLComboboxElement
254
+ vt as UHTMLComboboxElement
241
255
  };
242
256
  //# sourceMappingURL=u-combobox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"u-combobox.js","sources":["../../../../../node_modules/@u-elements/u-combobox/dist/u-combobox.js"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\n\n// ../utils.ts\nvar IS_BROWSER = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.navigator !== \"undefined\";\nvar IS_ANDROID = IS_BROWSER && /android/i.test(navigator.userAgent);\nvar IS_FIREFOX = IS_BROWSER && /firefox/i.test(navigator.userAgent);\nvar IS_IOS = IS_BROWSER && /iPad|iPhone|iPod/.test(navigator.userAgent);\nvar _a;\nIS_BROWSER && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474\n/^Mac/i.test(((_a = navigator.userAgentData) == null ? void 0 : _a.platform) || navigator.platform);\nvar FOCUS_OUTLINE = \"outline: 1px dotted; outline: 5px auto Highlight; outline: 5px auto -webkit-focus-ring-color\";\nvar UHTMLElement = typeof HTMLElement === \"undefined\" ? class {\n} : HTMLElement;\nfunction attr(el, name, value) {\n if (value === void 0) return el.getAttribute(name);\n if (value === null) el.removeAttribute(name);\n else if (el.getAttribute(name) !== value) el.setAttribute(name, value);\n return null;\n}\nvar events = (action, element, rest) => {\n for (const type of rest[0].split(\",\")) {\n rest[0] = type;\n Element.prototype[`${action}EventListener`].apply(element, rest);\n }\n};\nvar on = (element, ...rest) => events(\"add\", element, rest);\nvar off = (element, ...rest) => events(\"remove\", element, rest);\nvar observers = /* @__PURE__ */ new WeakMap();\nvar mutationObserver = (element, options) => {\n if (options === void 0) return observers.get(element);\n try {\n observers.get(element).disconnect();\n observers.delete(element);\n } catch (err) {\n }\n if (options) {\n const observer = new MutationObserver(\n (detail) => element.handleEvent({ type: \"mutation\", detail })\n );\n observer.observe(element, options);\n observers.set(element, observer);\n }\n};\nvar asButton = (event) => {\n const isClick = \"key\" in event && (event.key === \" \" || event.key === \"Enter\");\n if (isClick) event.preventDefault();\n if (isClick && event.target instanceof HTMLElement) event.target.click();\n return isClick;\n};\nvar getRoot = (node) => {\n var _a2;\n const root = ((_a2 = node.getRootNode) == null ? void 0 : _a2.call(node)) || node.ownerDocument;\n return root instanceof Document || root instanceof ShadowRoot ? root : document;\n};\nvar id = 0;\nvar useId = (el) => {\n if (!el) return \"\";\n if (!el.id) el.id = `:${el.nodeName.toLowerCase()}${(++id).toString(32)}`;\n return el.id;\n};\nvar createElement = (tagName, text2, attrs) => {\n const el = document.createElement(tagName);\n if (text2) el.textContent = text2;\n if (attrs) for (const [key, val] of Object.entries(attrs)) attr(el, key, val);\n return el;\n};\nvar customElements = {\n define: (name, instance) => !IS_BROWSER || window.customElements.get(name) || window.customElements.define(name, instance)\n};\nvar LIVE;\nvar LIVE_SR_FIX = 0;\nvar speak = (text2) => {\n if (!LIVE) {\n LIVE = createElement(\"div\");\n LIVE.style.cssText = \"position:fixed;overflow:hidden;width:1px;white-space:nowrap\";\n attr(LIVE, \"aria-live\", \"assertive\");\n }\n if (!LIVE.isConnected) document.body.append(LIVE);\n if (text2) LIVE.textContent = `${text2}${LIVE_SR_FIX++ % 2 ? \"\\xA0\" : \"\"}`;\n};\nvar setValue = (input, data, type = \"\") => {\n var _a2, _b;\n const event = { bubbles: true, composed: true, data, inputType: type };\n const proto = HTMLInputElement.prototype;\n input.dispatchEvent(new InputEvent(\"beforeinput\", event));\n (_b = (_a2 = Object.getOwnPropertyDescriptor(proto, \"value\")) == null ? void 0 : _a2.set) == null ? void 0 : _b.call(input, data);\n input.dispatchEvent(new InputEvent(\"input\", event));\n input.dispatchEvent(new Event(\"change\", { bubbles: true }));\n};\n\n// u-combobox.ts\nvar IS_PRESS = false;\nvar EVENTS = \"beforeinput,blur,focus,click,input,keydown,mousedown,mouseup\";\nvar EVENT_ONCE = { once: true, passive: true };\nvar IS_FIREFOX_MAC = IS_FIREFOX && !IS_ANDROID;\nvar IS_MOBILE = IS_ANDROID || IS_IOS;\nvar FALSE = \"false\";\nvar CLICK = \"insertReplacementText\";\nvar TEXTS = {\n added: \"Added\",\n empty: \"No selected\",\n found: \"Navigate left to find %d selected\",\n invalid: \"Invalid value\",\n of: \"of\",\n remove: \"Press to remove\",\n removed: \"Removed\"\n};\nvar UHTMLComboboxElement = class extends UHTMLElement {\n constructor() {\n super();\n this._speak = \"\";\n this._texts = __spreadValues({}, TEXTS);\n this._value = \"\";\n this.attachShadow({ mode: \"open\" }).append(\n createElement(\"slot\"),\n // Content slot\n createElement(\n \"style\",\n `:host(:not([hidden])) { display: block; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0) } /* Must be display block in Safari to allow focus inside */\n\t\t\t\t:host(:not([data-multiple])) ::slotted(data),\n\t\t\t\t:host([data-multiple=\"false\"]) ::slotted(data) { display: none } /* Hide data if not multiple */\n\t\t\t\t::slotted(input[inputmode=\"none\"]) { outline: none } /* Hide temporary foucs outline flash */\n\t\t\t\t::slotted(del) { text-decoration: none }\n\t\t\t\t::slotted(data:not([hidden])) { display: inline-block; pointer-events: none }\n ::slotted(data)::after { content: '\\\\00D7'; content: '\\\\00D7' / ''; padding-inline: .5ch; pointer-events: auto }\n ::slotted(data:focus) { ${FOCUS_OUTLINE} }`\n )\n );\n }\n // Locally store value to store value before input-click\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return Object.keys(TEXTS).map((key) => `data-sr-${key}`);\n }\n connectedCallback() {\n this._root = getRoot(this);\n on(this, EVENTS, this, true);\n mutationObserver(this, { childList: true, subtree: true });\n setTimeout(render, 0, this);\n setTimeout(syncInputValue, 0, this);\n }\n attributeChangedCallback(prop, _, val) {\n const text2 = prop.split(\"data-sr-\")[1];\n if (TEXTS[text2]) this._texts[text2] = val || TEXTS[text2];\n }\n disconnectedCallback() {\n mutationObserver(this, false);\n off(this, EVENTS, this, true);\n this._items = this._clear = this._focus = this._control = void 0;\n this._list = this._options = this._root = void 0;\n }\n handleEvent(event) {\n const target = event.target;\n if (event.type === \"beforeinput\") this._value = (target == null ? void 0 : target.value) || \"\";\n if (event.type === \"blur\") onBlur(this);\n if (event.type === \"click\") onClick(this, event);\n if (event.type === \"focus\") onFocus(this, event);\n if (event.type === \"input\") onInput(this, event);\n if (event.type === \"keydown\") onKeyDown(this, event);\n if (event.type === \"mousedown\") IS_PRESS = this.contains(target);\n if (event.type === \"mouseup\") IS_PRESS = false;\n if (event.type === \"mutation\") render(this, event);\n }\n get multiple() {\n var _a2;\n return ((_a2 = attr(this, \"data-multiple\")) != null ? _a2 : FALSE) !== FALSE;\n }\n set multiple(value) {\n attr(this, \"data-multiple\", value ? \"\" : null);\n }\n get creatable() {\n var _a2;\n return ((_a2 = attr(this, \"data-creatable\")) != null ? _a2 : FALSE) !== FALSE;\n }\n set creatable(value) {\n attr(this, \"data-creatable\", value ? \"\" : null);\n }\n get control() {\n var _a2;\n if (!((_a2 = this._control) == null ? void 0 : _a2.isConnected))\n this._control = this.querySelector(\"input\");\n return this._control;\n }\n get list() {\n var _a2;\n if (!((_a2 = this._list) == null ? void 0 : _a2.isConnected))\n this._list = this.querySelector(\"u-datalist,datalist\");\n return this._list;\n }\n get clear() {\n var _a2;\n if (!((_a2 = this._clear) == null ? void 0 : _a2.isConnected)) this._clear = this.querySelector(\"del\");\n return this._clear;\n }\n get items() {\n if (!this._items) this._items = this.getElementsByTagName(\"data\");\n return this._items;\n }\n get options() {\n var _a2, _b;\n if (!this._options) {\n const tag = ((_a2 = this.list) == null ? void 0 : _a2.nodeName) === \"U-DATALIST\" ? \"u-option\" : \"option\";\n this._options = (_b = this.list) == null ? void 0 : _b.getElementsByTagName(tag);\n }\n return this._options;\n }\n get values() {\n return [...this.items].map(({ value }) => value);\n }\n};\nvar text = (el) => {\n var _a2;\n return ((_a2 = el == null ? void 0 : el.textContent) == null ? void 0 : _a2.trim()) || \"\";\n};\nvar isData = (el) => el instanceof HTMLDataElement;\nvar render = (self, event) => {\n var _a2, _b;\n const { _focus, _texts, items, control, list, multiple } = self;\n let label = `${text((_a2 = control == null ? void 0 : control.labels) == null ? void 0 : _a2[0])}, ${multiple ? items.length ? _texts.found.replace(\"%d\", `${items.length}`) : _texts.empty : \"\"}`;\n const edits = [];\n for (const { addedNodes, removedNodes } of (event == null ? void 0 : event.detail) || []) {\n for (const el of addedNodes) if (isData(el)) edits.unshift(el);\n for (const el of removedNodes) if (isData(el)) edits.push(el);\n }\n const shouldAnnounce = multiple ? edits.length === 1 : edits[0] === _focus;\n if (_focus && control && shouldAnnounce) {\n const inputMode = attr(control, \"inputmode\");\n const nextFocus = isData(_focus) ? control : _focus;\n self._speak = `${_texts[edits[0].isConnected ? \"added\" : \"removed\"]} ${text(edits[0])}, `;\n if (IS_MOBILE || _focus === control) speak(self._speak);\n if (control !== nextFocus) {\n attr(control, \"aria-expanded\", null);\n attr(control, \"inputmode\", \"none\");\n label = \"\\xA0\";\n control.focus();\n }\n setTimeout(() => {\n var _a3;\n attr(control, \"aria-expanded\", \"true\");\n attr(control, \"inputmode\", inputMode);\n (_a3 = nextFocus == null ? void 0 : nextFocus.focus) == null ? void 0 : _a3.call(nextFocus);\n self._speak = \"\";\n if (IS_FIREFOX_MAC) on(self, \"blur\", () => render(self), EVENT_ONCE);\n else setTimeout(render, 100, self);\n }, 100);\n }\n let idx = 0;\n for (const item of items) {\n const label2 = text(item);\n const value = item.value || label2;\n const aria = `${self._speak}${label2}, ${_texts.remove}, ${++idx} ${_texts.of} ${items.length}`;\n attr(item, \"role\", \"button\");\n attr(item, \"value\", value);\n attr(item, \"tabindex\", \"-1\");\n attr(item, \"aria-label\", aria);\n }\n if (!multiple && idx > 1)\n console.warn(\"u-combobox: Multiple <data> found in single mode.\");\n if (list) attr(list, \"aria-multiselectable\", `${multiple}`);\n if (control) attr(control, \"list\", useId(list));\n if (control) attr(control, \"aria-label\", `${self._speak}${label}`);\n const select = self.querySelector(\"select\");\n if (select) select.multiple = multiple;\n if (select) select.textContent = \"\";\n select == null ? void 0 : select.append(...self.values.map((val) => new Option(val, val, true, true)));\n syncClearWithInput(self);\n syncOptionsWithItems(self);\n (_b = mutationObserver(self)) == null ? void 0 : _b.takeRecords();\n};\nvar syncClearWithInput = (self) => {\n var _a2;\n if (self.clear) attr(self.clear, \"role\", \"button\");\n if (self.clear) self.clear.hidden = !((_a2 = self.control) == null ? void 0 : _a2.value);\n};\nvar syncOptionsWithItems = (self) => {\n var _a2;\n const { _speak, options = [], values } = self;\n for (const opt of options) {\n const value = (_a2 = attr(opt, \"value\")) != null ? _a2 : text(opt);\n attr(opt, \"aria-label\", _speak ? `${_speak}${text(opt)}` : null);\n attr(opt, \"selected\", values.includes(value) ? \"\" : null);\n }\n};\nvar syncInputValue = (self) => {\n const { multiple, control, items } = self;\n const value = text(items[0]);\n if (!multiple && control && value !== control.value)\n setValue(control, value, \"insertText\");\n};\nvar dispatchMatch = (self, sync = true) => {\n var _a2;\n const { _texts, options = [], creatable, control, items, multiple } = self;\n const value = ((_a2 = control == null ? void 0 : control.value) == null ? void 0 : _a2.trim()) || \"\";\n const query = value.toLowerCase() || null;\n let match = [...options].find((o) => o.label.trim().toLowerCase() === query);\n const event = { bubbles: true, cancelable: true, detail: match };\n if (self.dispatchEvent(new CustomEvent(\"beforematch\", event)))\n for (const opt of options) opt.selected = opt === match;\n match = [...options].find((o) => o.selected);\n syncOptionsWithItems(self);\n if (match) return dispatchChange(self, match, false, !!sync);\n if (creatable && value) return dispatchChange(self, { value }, false);\n if (!multiple && items[0]) dispatchChange(self, items[0], true, false);\n if (sync) speak(_texts.invalid);\n};\nvar dispatchChange = (self, item, removable = true, sync = true) => {\n const { control, items, multiple } = self;\n const add = createElement(\"data\", item.label || item.value, {\n value: item.value\n });\n const remove = [...items].find((i) => i.value === item.value);\n const event = { bubbles: true, cancelable: true, detail: remove || add };\n const skip = remove && !removable;\n if (!skip && self.dispatchEvent(new CustomEvent(\"beforechange\", event))) {\n if (!multiple) for (const item2 of [...items]) item2.remove();\n if (remove) remove.remove();\n else control == null ? void 0 : control.insertAdjacentElement(\"beforebegin\", add);\n self.dispatchEvent(new CustomEvent(\"afterchange\", event));\n }\n if (sync) setTimeout(syncInputValue, 10, self);\n};\nvar onFocus = (self, { target }) => {\n if (target instanceof HTMLElement) self._focus = target;\n speak();\n};\nvar onBlur = (self) => IS_PRESS || setTimeout(onBlurred, 0, self);\nvar onBlurred = (self) => {\n var _a2;\n if (!self._focus || self.contains((_a2 = self._root) == null ? void 0 : _a2.activeElement)) return;\n self._focus = void 0;\n syncInputValue(self);\n};\nvar onClick = (self, event) => {\n const { clientX: x, clientY: y, target } = event;\n const { clear, control, items } = self;\n if (clear == null ? void 0 : clear.contains(target)) {\n if (control) setValue(control, \"\", \"deleteContentBackward\");\n return control == null ? void 0 : control.focus();\n }\n for (const item of items) {\n const { top, right, bottom, left } = item.getBoundingClientRect();\n if (item.contains(target)) return dispatchChange(self, item);\n if (y >= top && y <= bottom && x >= left && x <= right) return item.focus();\n }\n if (target === self) control == null ? void 0 : control.focus();\n};\nvar onInput = (self, event) => {\n var _a2;\n const { options = [], control, multiple } = self;\n const value = ((_a2 = control == null ? void 0 : control.value) == null ? void 0 : _a2.trim()) || \"\";\n const isClick = event instanceof InputEvent ? !event.inputType || event.inputType === CLICK : !!value;\n if (isClick) {\n event.stopImmediatePropagation();\n if (control) control.value = self._value;\n for (const opt of options)\n if (opt.value && opt.value === value)\n return dispatchChange(self, opt, multiple);\n } else if (!multiple) dispatchMatch(self, false);\n syncClearWithInput(self);\n};\nvar onKeyDown = (self, event) => {\n var _a2;\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) return;\n const { clear, control, items } = self;\n const { key, repeat, target } = event;\n const isControl = control && control === target;\n const inText = isControl && (control == null ? void 0 : control.selectionEnd);\n let index = isControl ? items.length : [...items].indexOf(target);\n if (isControl && key === \"Tab\" && clear && !clear.hidden) {\n event.preventDefault();\n clear.tabIndex = -1;\n clear.focus();\n on(clear, \"blur\", () => attr(clear, \"tabindex\", null), EVENT_ONCE);\n }\n if (!isControl && asButton(event) || index === -1) return;\n if (key === \"ArrowRight\" && !isControl) index += 1;\n else if (key === \"ArrowLeft\" && !inText) index -= 1;\n else if (key === \"Enter\" && isControl) {\n const form = attr(control, \"form\");\n attr(control, \"form\", \"#\");\n requestAnimationFrame(() => attr(control, \"form\", form));\n return dispatchMatch(self);\n } else if ((key === \"Backspace\" || key === \"Delete\") && !inText) {\n event.preventDefault();\n if (!repeat && items[index]) return dispatchChange(self, items[index]);\n if (isControl) index -= 1;\n } else return isControl || (control == null ? void 0 : control.focus());\n event.preventDefault();\n (_a2 = items[Math.max(0, index)] || control) == null ? void 0 : _a2.focus();\n};\ncustomElements.define(\"u-combobox\", UHTMLComboboxElement);\n\nexport { UHTMLComboboxElement };\n"],"names":["__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","value","__spreadValues","a","b","prop","IS_BROWSER","IS_ANDROID","IS_FIREFOX","IS_IOS","_a","FOCUS_OUTLINE","UHTMLElement","attr","el","name","events","action","element","rest","type","on","off","observers","mutationObserver","options","observer","detail","asButton","event","isClick","getRoot","node","_a2","root","id","useId","createElement","tagName","text2","attrs","val","customElements","instance","LIVE","LIVE_SR_FIX","speak","setValue","input","data","_b","proto","IS_PRESS","EVENTS","EVENT_ONCE","IS_FIREFOX_MAC","IS_MOBILE","FALSE","CLICK","TEXTS","UHTMLComboboxElement","render","syncInputValue","_","target","onBlur","onClick","onFocus","onInput","onKeyDown","tag","text","isData","self","_focus","_texts","items","control","list","multiple","label","edits","addedNodes","removedNodes","shouldAnnounce","inputMode","nextFocus","_a3","idx","item","label2","aria","select","syncClearWithInput","syncOptionsWithItems","_speak","values","opt","dispatchMatch","sync","creatable","query","match","o","dispatchChange","removable","add","remove","i","item2","onBlurred","x","y","clear","top","right","bottom","left","repeat","isControl","inText","index","form"],"mappings":"AAAA,IAAIA,IAAY,OAAO,gBACnBC,IAAsB,OAAO,uBAC7BC,IAAe,OAAO,UAAU,gBAChCC,IAAe,OAAO,UAAU,sBAChCC,IAAkB,CAACC,GAAKC,GAAKC,MAAUD,KAAOD,IAAML,EAAUK,GAAKC,GAAK,EAAE,YAAY,IAAM,cAAc,IAAM,UAAU,IAAM,OAAAC,EAAK,CAAE,IAAIF,EAAIC,CAAG,IAAIC,GACtJC,IAAiB,CAACC,GAAGC,MAAM;AAC7B,WAASC,KAAQD,MAAMA,IAAI,CAAA;AACzB,IAAIR,EAAa,KAAKQ,GAAGC,CAAI,KAC3BP,EAAgBK,GAAGE,GAAMD,EAAEC,CAAI,CAAC;AACpC,MAAIV;AACF,aAASU,KAAQV,EAAoBS,CAAC;AACpC,MAAIP,EAAa,KAAKO,GAAGC,CAAI,KAC3BP,EAAgBK,GAAGE,GAAMD,EAAEC,CAAI,CAAC;AAEtC,SAAOF;AACT,GAGIG,IAAa,OAAO,SAAW,OAAe,OAAO,OAAO,WAAa,OAAe,OAAO,OAAO,YAAc,KACpHC,IAAaD,KAAc,WAAW,KAAK,UAAU,SAAS,GAC9DE,IAAaF,KAAc,WAAW,KAAK,UAAU,SAAS,GAC9DG,IAASH,KAAc,mBAAmB,KAAK,UAAU,SAAS,GAClEI;AACJJ;AACA,QAAQ,OAAOI,IAAK,UAAU,kBAAkB,OAAO,SAASA,EAAG,aAAa,UAAU,QAAQ;AAClG,IAAIC,IAAgB,gGAChBC,IAAe,OAAO,cAAgB,MAAc,MAAM;AAC9D,IAAI;AACJ,SAASC,EAAKC,GAAIC,GAAMd,GAAO;AAC7B,SAAIA,MAAU,SAAea,EAAG,aAAaC,CAAI,KAC7Cd,MAAU,OAAMa,EAAG,gBAAgBC,CAAI,IAClCD,EAAG,aAAaC,CAAI,MAAMd,KAAOa,EAAG,aAAaC,GAAMd,CAAK,GAC9D;AACT;AACA,IAAIe,IAAS,CAACC,GAAQC,GAASC,MAAS;AACtC,aAAWC,KAAQD,EAAK,CAAC,EAAE,MAAM,GAAG;AAClC,IAAAA,EAAK,CAAC,IAAIC,GACV,QAAQ,UAAU,GAAGH,CAAM,eAAe,EAAE,MAAMC,GAASC,CAAI;AAEnE,GACIE,IAAK,CAACH,MAAYC,MAASH,EAAO,OAAOE,GAASC,CAAI,GACtDG,KAAM,CAACJ,MAAYC,MAASH,EAAO,UAAUE,GAASC,CAAI,GAC1DI,IAA4B,oBAAI,QAAS,GACzCC,IAAmB,CAACN,GAASO,MAAY;AAC3C,MAAIA,MAAY,OAAQ,QAAOF,EAAU,IAAIL,CAAO;AACpD,MAAI;AACF,IAAAK,EAAU,IAAIL,CAAO,EAAE,WAAY,GACnCK,EAAU,OAAOL,CAAO;AAAA,EACzB,QAAa;AAAA,EAChB;AACE,MAAIO,GAAS;AACX,UAAMC,IAAW,IAAI;AAAA,MACnB,CAACC,MAAWT,EAAQ,YAAY,EAAE,MAAM,YAAY,QAAAS,EAAQ,CAAA;AAAA,IAC7D;AACD,IAAAD,EAAS,QAAQR,GAASO,CAAO,GACjCF,EAAU,IAAIL,GAASQ,CAAQ;AAAA,EACnC;AACA,GACIE,KAAW,CAACC,MAAU;AACxB,QAAMC,IAAU,SAASD,MAAUA,EAAM,QAAQ,OAAOA,EAAM,QAAQ;AACtE,SAAIC,KAASD,EAAM,eAAgB,GAC/BC,KAAWD,EAAM,kBAAkB,eAAaA,EAAM,OAAO,MAAO,GACjEC;AACT,GACIC,KAAU,CAACC,MAAS;AACtB,MAAIC;AACJ,QAAMC,MAASD,IAAMD,EAAK,gBAAgB,OAAO,SAASC,EAAI,KAAKD,CAAI,MAAMA,EAAK;AAClF,SAAOE,aAAgB,YAAYA,aAAgB,aAAaA,IAAO;AACzE,GACIC,KAAK,GACLC,KAAQ,CAACtB,MACNA,KACAA,EAAG,OAAIA,EAAG,KAAK,IAAIA,EAAG,SAAS,YAAW,CAAE,IAAI,EAAEqB,IAAI,SAAS,EAAE,CAAC,KAChErB,EAAG,MAFM,IAIduB,IAAgB,CAACC,GAASC,GAAOC,MAAU;AAC7C,QAAM1B,IAAK,SAAS,cAAcwB,CAAO;AAEzC,MADIC,MAAOzB,EAAG,cAAcyB,IACxBC,EAAO,YAAW,CAACxC,GAAKyC,CAAG,KAAK,OAAO,QAAQD,CAAK,EAAG,CAAA3B,EAAKC,GAAId,GAAKyC,CAAG;AAC5E,SAAO3B;AACT,GACI4B,KAAiB;AAAA,EACnB,QAAQ,CAAC3B,GAAM4B,MAAa,CAACrC,KAAc,OAAO,eAAe,IAAIS,CAAI,KAAK,OAAO,eAAe,OAAOA,GAAM4B,CAAQ;AAC3H,GACIC,GACAC,KAAc,GACdC,IAAQ,CAACP,MAAU;AACrB,EAAKK,MACHA,IAAOP,EAAc,KAAK,GAC1BO,EAAK,MAAM,UAAU,+DACrB/B,EAAK+B,GAAM,aAAa,WAAW,IAEhCA,EAAK,eAAa,SAAS,KAAK,OAAOA,CAAI,GAC5CL,MAAOK,EAAK,cAAc,GAAGL,CAAK,GAAGM,OAAgB,IAAI,MAAS,EAAE;AAC1E,GACIE,IAAW,CAACC,GAAOC,GAAM7B,IAAO,OAAO;AACzC,MAAIa,GAAKiB;AACT,QAAMrB,IAAQ,EAAE,SAAS,IAAM,UAAU,IAAM,MAAAoB,GAAM,WAAW7B,EAAM,GAChE+B,IAAQ,iBAAiB;AAC/B,EAAAH,EAAM,cAAc,IAAI,WAAW,eAAenB,CAAK,CAAC,IACvDqB,KAAMjB,IAAM,OAAO,yBAAyBkB,GAAO,OAAO,MAAM,OAAO,SAASlB,EAAI,QAAQ,QAAgBiB,EAAG,KAAKF,GAAOC,CAAI,GAChID,EAAM,cAAc,IAAI,WAAW,SAASnB,CAAK,CAAC,GAClDmB,EAAM,cAAc,IAAI,MAAM,UAAU,EAAE,SAAS,GAAI,CAAE,CAAC;AAC5D,GAGII,IAAW,IACXC,IAAS,gEACTC,IAAa,EAAE,MAAM,IAAM,SAAS,GAAM,GAC1CC,KAAiB/C,KAAc,CAACD,GAChCiD,KAAYjD,KAAcE,GAC1BgD,IAAQ,SACRC,KAAQ,yBACRC,IAAQ;AAAA,EACV,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,SAAS;AACX,GACIC,KAAuB,cAAchD,EAAa;AAAA,EACpD,cAAc;AACZ,UAAO,GACP,KAAK,SAAS,IACd,KAAK,SAASV,EAAe,CAAA,GAAIyD,CAAK,GACtC,KAAK,SAAS,IACd,KAAK,aAAa,EAAE,MAAM,OAAM,CAAE,EAAE;AAAA,MAClCtB,EAAc,MAAM;AAAA;AAAA,MAEpBA;AAAA,QACE;AAAA,QACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kCAO0B1B,CAAa;AAAA,MAC/C;AAAA,IACK;AAAA,EACL;AAAA;AAAA;AAAA,EAGE,WAAW,qBAAqB;AAC9B,WAAO,OAAO,KAAKgD,CAAK,EAAE,IAAI,CAAC3D,MAAQ,WAAWA,CAAG,EAAE;AAAA,EAC3D;AAAA,EACE,oBAAoB;AAClB,SAAK,QAAQ+B,GAAQ,IAAI,GACzBV,EAAG,MAAMgC,GAAQ,MAAM,EAAI,GAC3B7B,EAAiB,MAAM,EAAE,WAAW,IAAM,SAAS,IAAM,GACzD,WAAWqC,GAAQ,GAAG,IAAI,GAC1B,WAAWC,GAAgB,GAAG,IAAI;AAAA,EACtC;AAAA,EACE,yBAAyBzD,GAAM0D,GAAGtB,GAAK;AACrC,UAAMF,IAAQlC,EAAK,MAAM,UAAU,EAAE,CAAC;AACtC,IAAIsD,EAAMpB,CAAK,MAAG,KAAK,OAAOA,CAAK,IAAIE,KAAOkB,EAAMpB,CAAK;AAAA,EAC7D;AAAA,EACE,uBAAuB;AACrB,IAAAf,EAAiB,MAAM,EAAK,GAC5BF,GAAI,MAAM+B,GAAQ,MAAM,EAAI,GAC5B,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,KAAK,WAAW,QAC1D,KAAK,QAAQ,KAAK,WAAW,KAAK,QAAQ;AAAA,EAC9C;AAAA,EACE,YAAYxB,GAAO;AACjB,UAAMmC,IAASnC,EAAM;AACrB,IAAIA,EAAM,SAAS,kBAAe,KAAK,UAAUmC,KAAU,OAAO,SAASA,EAAO,UAAU,KACxFnC,EAAM,SAAS,UAAQoC,GAAO,IAAI,GAClCpC,EAAM,SAAS,WAASqC,GAAQ,MAAMrC,CAAK,GAC3CA,EAAM,SAAS,WAASsC,GAAQ,MAAMtC,CAAK,GAC3CA,EAAM,SAAS,WAASuC,GAAQ,MAAMvC,CAAK,GAC3CA,EAAM,SAAS,aAAWwC,GAAU,MAAMxC,CAAK,GAC/CA,EAAM,SAAS,gBAAauB,IAAW,KAAK,SAASY,CAAM,IAC3DnC,EAAM,SAAS,cAAWuB,IAAW,KACrCvB,EAAM,SAAS,cAAYgC,EAAO,MAAMhC,CAAK;AAAA,EACrD;AAAA,EACE,IAAI,WAAW;AACb,QAAII;AACJ,aAASA,IAAMpB,EAAK,MAAM,eAAe,MAAM,OAAOoB,IAAMwB,OAAWA;AAAA,EAC3E;AAAA,EACE,IAAI,SAASxD,GAAO;AAClB,IAAAY,EAAK,MAAM,iBAAiBZ,IAAQ,KAAK,IAAI;AAAA,EACjD;AAAA,EACE,IAAI,YAAY;AACd,QAAIgC;AACJ,aAASA,IAAMpB,EAAK,MAAM,gBAAgB,MAAM,OAAOoB,IAAMwB,OAAWA;AAAA,EAC5E;AAAA,EACE,IAAI,UAAUxD,GAAO;AACnB,IAAAY,EAAK,MAAM,kBAAkBZ,IAAQ,KAAK,IAAI;AAAA,EAClD;AAAA,EACE,IAAI,UAAU;AACZ,QAAIgC;AACJ,YAAOA,IAAM,KAAK,aAAa,QAAgBA,EAAI,gBACjD,KAAK,WAAW,KAAK,cAAc,OAAO,IACrC,KAAK;AAAA,EAChB;AAAA,EACE,IAAI,OAAO;AACT,QAAIA;AACJ,YAAOA,IAAM,KAAK,UAAU,QAAgBA,EAAI,gBAC9C,KAAK,QAAQ,KAAK,cAAc,qBAAqB,IAChD,KAAK;AAAA,EAChB;AAAA,EACE,IAAI,QAAQ;AACV,QAAIA;AACJ,YAAOA,IAAM,KAAK,WAAW,QAAgBA,EAAI,gBAAc,KAAK,SAAS,KAAK,cAAc,KAAK,IAC9F,KAAK;AAAA,EAChB;AAAA,EACE,IAAI,QAAQ;AACV,WAAK,KAAK,WAAQ,KAAK,SAAS,KAAK,qBAAqB,MAAM,IACzD,KAAK;AAAA,EAChB;AAAA,EACE,IAAI,UAAU;AACZ,QAAIA,GAAKiB;AACT,QAAI,CAAC,KAAK,UAAU;AAClB,YAAMoB,MAAQrC,IAAM,KAAK,SAAS,OAAO,SAASA,EAAI,cAAc,eAAe,aAAa;AAChG,WAAK,YAAYiB,IAAK,KAAK,SAAS,OAAO,SAASA,EAAG,qBAAqBoB,CAAG;AAAA,IACrF;AACI,WAAO,KAAK;AAAA,EAChB;AAAA,EACE,IAAI,SAAS;AACX,WAAO,CAAC,GAAG,KAAK,KAAK,EAAE,IAAI,CAAC,EAAE,OAAArE,EAAO,MAAKA,CAAK;AAAA,EACnD;AACA,GACIsE,IAAO,CAACzD,MAAO;AACjB,MAAImB;AACJ,WAASA,IAAMnB,KAAM,OAAO,SAASA,EAAG,gBAAgB,OAAO,SAASmB,EAAI,KAAM,MAAK;AACzF,GACIuC,IAAS,CAAC1D,MAAOA,aAAc,iBAC/B+C,IAAS,CAACY,GAAM5C,MAAU;AAC5B,MAAII,GAAKiB;AACT,QAAM,EAAE,QAAAwB,GAAQ,QAAAC,GAAQ,OAAAC,GAAO,SAAAC,GAAS,MAAAC,GAAM,UAAAC,EAAQ,IAAKN;AAC3D,MAAIO,IAAQ,GAAGT,GAAMtC,IAAM4C,KAAW,OAAO,SAASA,EAAQ,WAAW,OAAO,SAAS5C,EAAI,CAAC,CAAC,CAAC,KAAK8C,IAAWH,EAAM,SAASD,EAAO,MAAM,QAAQ,MAAM,GAAGC,EAAM,MAAM,EAAE,IAAID,EAAO,QAAQ,EAAE;AAChM,QAAMM,IAAQ,CAAE;AAChB,aAAW,EAAE,YAAAC,GAAY,cAAAC,EAAY,MAAOtD,KAAS,OAAO,SAASA,EAAM,WAAW,IAAI;AACxF,eAAWf,KAAMoE,EAAY,CAAIV,EAAO1D,CAAE,KAAGmE,EAAM,QAAQnE,CAAE;AAC7D,eAAWA,KAAMqE,EAAc,CAAIX,EAAO1D,CAAE,KAAGmE,EAAM,KAAKnE,CAAE;AAAA,EAChE;AACE,QAAMsE,IAAiBL,IAAWE,EAAM,WAAW,IAAIA,EAAM,CAAC,MAAMP;AACpE,MAAIA,KAAUG,KAAWO,GAAgB;AACvC,UAAMC,IAAYxE,EAAKgE,GAAS,WAAW,GACrCS,IAAYd,EAAOE,CAAM,IAAIG,IAAUH;AAC7C,IAAAD,EAAK,SAAS,GAAGE,EAAOM,EAAM,CAAC,EAAE,cAAc,UAAU,SAAS,CAAC,IAAIV,EAAKU,EAAM,CAAC,CAAC,CAAC,OACjFzB,MAAakB,MAAWG,MAAS/B,EAAM2B,EAAK,MAAM,GAClDI,MAAYS,MACdzE,EAAKgE,GAAS,iBAAiB,IAAI,GACnChE,EAAKgE,GAAS,aAAa,MAAM,GACjCG,IAAQ,KACRH,EAAQ,MAAO,IAEjB,WAAW,MAAM;AACf,UAAIU;AACJ,MAAA1E,EAAKgE,GAAS,iBAAiB,MAAM,GACrChE,EAAKgE,GAAS,aAAaQ,CAAS,IACnCE,IAAMD,KAAa,OAAO,SAASA,EAAU,UAAU,QAAgBC,EAAI,KAAKD,CAAS,GAC1Fb,EAAK,SAAS,IACVlB,KAAgBlC,EAAGoD,GAAM,QAAQ,MAAMZ,EAAOY,CAAI,GAAGnB,CAAU,IAC9D,WAAWO,GAAQ,KAAKY,CAAI;AAAA,IAClC,GAAE,GAAG;AAAA,EACV;AACE,MAAIe,IAAM;AACV,aAAWC,KAAQb,GAAO;AACxB,UAAMc,IAASnB,EAAKkB,CAAI,GAClBxF,IAAQwF,EAAK,SAASC,GACtBC,IAAO,GAAGlB,EAAK,MAAM,GAAGiB,CAAM,KAAKf,EAAO,MAAM,KAAK,EAAEa,CAAG,IAAIb,EAAO,EAAE,IAAIC,EAAM,MAAM;AAC7F,IAAA/D,EAAK4E,GAAM,QAAQ,QAAQ,GAC3B5E,EAAK4E,GAAM,SAASxF,CAAK,GACzBY,EAAK4E,GAAM,YAAY,IAAI,GAC3B5E,EAAK4E,GAAM,cAAcE,CAAI;AAAA,EACjC;AACE,EAAI,CAACZ,KAAYS,IAAM,KACrB,QAAQ,KAAK,mDAAmD,GAC9DV,KAAMjE,EAAKiE,GAAM,wBAAwB,GAAGC,CAAQ,EAAE,GACtDF,KAAShE,EAAKgE,GAAS,QAAQzC,GAAM0C,CAAI,CAAC,GAC1CD,KAAShE,EAAKgE,GAAS,cAAc,GAAGJ,EAAK,MAAM,GAAGO,CAAK,EAAE;AACjE,QAAMY,IAASnB,EAAK,cAAc,QAAQ;AAC1C,EAAImB,MAAQA,EAAO,WAAWb,IAC1Ba,MAAQA,EAAO,cAAc,KACjCA,KAAU,QAAgBA,EAAO,OAAO,GAAGnB,EAAK,OAAO,IAAI,CAAChC,MAAQ,IAAI,OAAOA,GAAKA,GAAK,IAAM,EAAI,CAAC,CAAC,GACrGoD,EAAmBpB,CAAI,GACvBqB,EAAqBrB,CAAI,IACxBvB,IAAK1B,EAAiBiD,CAAI,MAAM,QAAgBvB,EAAG,YAAa;AACnE,GACI2C,IAAqB,CAACpB,MAAS;AACjC,MAAIxC;AACJ,EAAIwC,EAAK,SAAO5D,EAAK4D,EAAK,OAAO,QAAQ,QAAQ,GAC7CA,EAAK,UAAOA,EAAK,MAAM,SAAS,GAAGxC,IAAMwC,EAAK,YAAY,QAAgBxC,EAAI;AACpF,GACI6D,IAAuB,CAACrB,MAAS;AACnC,MAAIxC;AACJ,QAAM,EAAE,QAAA8D,GAAQ,SAAAtE,IAAU,CAAA,GAAI,QAAAuE,EAAQ,IAAGvB;AACzC,aAAWwB,KAAOxE,GAAS;AACzB,UAAMxB,KAASgC,IAAMpB,EAAKoF,GAAK,OAAO,MAAM,OAAOhE,IAAMsC,EAAK0B,CAAG;AACjE,IAAApF,EAAKoF,GAAK,cAAcF,IAAS,GAAGA,CAAM,GAAGxB,EAAK0B,CAAG,CAAC,KAAK,IAAI,GAC/DpF,EAAKoF,GAAK,YAAYD,EAAO,SAAS/F,CAAK,IAAI,KAAK,IAAI;AAAA,EAC5D;AACA,GACI6D,IAAiB,CAACW,MAAS;AAC7B,QAAM,EAAE,UAAAM,GAAU,SAAAF,GAAS,OAAAD,EAAO,IAAGH,GAC/BxE,IAAQsE,EAAKK,EAAM,CAAC,CAAC;AAC3B,EAAI,CAACG,KAAYF,KAAW5E,MAAU4E,EAAQ,SAC5C9B,EAAS8B,GAAS5E,GAAO,YAAY;AACzC,GACIiG,IAAgB,CAACzB,GAAM0B,IAAO,OAAS;AACzC,MAAIlE;AACJ,QAAM,EAAE,QAAA0C,GAAQ,SAAAlD,IAAU,CAAE,GAAE,WAAA2E,GAAW,SAAAvB,GAAS,OAAAD,GAAO,UAAAG,EAAQ,IAAKN,GAChExE,MAAUgC,IAAM4C,KAAW,OAAO,SAASA,EAAQ,UAAU,OAAO,SAAS5C,EAAI,KAAM,MAAK,IAC5FoE,IAAQpG,EAAM,YAAW,KAAM;AACrC,MAAIqG,IAAQ,CAAC,GAAG7E,CAAO,EAAE,KAAK,CAAC8E,MAAMA,EAAE,MAAM,KAAI,EAAG,YAAW,MAAOF,CAAK;AAC3E,QAAMxE,IAAQ,EAAE,SAAS,IAAM,YAAY,IAAM,QAAQyE,EAAO;AAChE,MAAI7B,EAAK,cAAc,IAAI,YAAY,eAAe5C,CAAK,CAAC;AAC1D,eAAWoE,KAAOxE,EAAS,CAAAwE,EAAI,WAAWA,MAAQK;AAGpD,MAFAA,IAAQ,CAAC,GAAG7E,CAAO,EAAE,KAAK,CAAC8E,MAAMA,EAAE,QAAQ,GAC3CT,EAAqBrB,CAAI,GACrB6B,EAAO,QAAOE,EAAe/B,GAAM6B,GAAO,IAAO,CAAC,CAACH,CAAI;AAC3D,MAAIC,KAAanG,EAAO,QAAOuG,EAAe/B,GAAM,EAAE,OAAAxE,EAAO,GAAE,EAAK;AACpE,EAAI,CAAC8E,KAAYH,EAAM,CAAC,KAAG4B,EAAe/B,GAAMG,EAAM,CAAC,GAAG,IAAM,EAAK,GACjEuB,KAAMrD,EAAM6B,EAAO,OAAO;AAChC,GACI6B,IAAiB,CAAC/B,GAAMgB,GAAMgB,IAAY,IAAMN,IAAO,OAAS;AAClE,QAAM,EAAE,SAAAtB,GAAS,OAAAD,GAAO,UAAAG,EAAU,IAAGN,GAC/BiC,IAAMrE,EAAc,QAAQoD,EAAK,SAASA,EAAK,OAAO;AAAA,IAC1D,OAAOA,EAAK;AAAA,EAChB,CAAG,GACKkB,IAAS,CAAC,GAAG/B,CAAK,EAAE,KAAK,CAACgC,MAAMA,EAAE,UAAUnB,EAAK,KAAK,GACtD5D,IAAQ,EAAE,SAAS,IAAM,YAAY,IAAM,QAAQ8E,KAAUD,EAAK;AAExE,MAAI,EADSC,KAAU,CAACF,MACXhC,EAAK,cAAc,IAAI,YAAY,gBAAgB5C,CAAK,CAAC,GAAG;AACvE,QAAI,CAACkD,EAAU,YAAW8B,KAAS,CAAC,GAAGjC,CAAK,EAAG,CAAAiC,EAAM,OAAQ;AAC7D,IAAIF,IAAQA,EAAO,OAAQ,IACtB9B,KAAW,QAAgBA,EAAQ,sBAAsB,eAAe6B,CAAG,GAChFjC,EAAK,cAAc,IAAI,YAAY,eAAe5C,CAAK,CAAC;AAAA,EAC5D;AACE,EAAIsE,KAAM,WAAWrC,GAAgB,IAAIW,CAAI;AAC/C,GACIN,KAAU,CAACM,GAAM,EAAE,QAAAT,QAAa;AAClC,EAAIA,aAAkB,gBAAaS,EAAK,SAAST,IACjDlB,EAAO;AACT,GACImB,KAAS,CAACQ,MAASrB,KAAY,WAAW0D,IAAW,GAAGrC,CAAI,GAC5DqC,KAAY,CAACrC,MAAS;AACxB,MAAIxC;AACJ,EAAI,CAACwC,EAAK,UAAUA,EAAK,UAAUxC,IAAMwC,EAAK,UAAU,OAAO,SAASxC,EAAI,aAAa,MACzFwC,EAAK,SAAS,QACdX,EAAeW,CAAI;AACrB,GACIP,KAAU,CAACO,GAAM5C,MAAU;AAC7B,QAAM,EAAE,SAASkF,GAAG,SAASC,GAAG,QAAAhD,EAAM,IAAKnC,GACrC,EAAE,OAAAoF,GAAO,SAAApC,GAAS,OAAAD,EAAO,IAAGH;AAClC,MAAIwC,KAAS,QAAgBA,EAAM,SAASjD,CAAM;AAChD,WAAIa,KAAS9B,EAAS8B,GAAS,IAAI,uBAAuB,GACnDA,KAAW,OAAO,SAASA,EAAQ,MAAO;AAEnD,aAAWY,KAAQb,GAAO;AACxB,UAAM,EAAE,KAAAsC,GAAK,OAAAC,GAAO,QAAAC,GAAQ,MAAAC,EAAM,IAAG5B,EAAK,sBAAuB;AACjE,QAAIA,EAAK,SAASzB,CAAM,EAAG,QAAOwC,EAAe/B,GAAMgB,CAAI;AAC3D,QAAIuB,KAAKE,KAAOF,KAAKI,KAAUL,KAAKM,KAAQN,KAAKI,EAAO,QAAO1B,EAAK,MAAO;AAAA,EAC/E;AACE,EAAIzB,MAAWS,MAAMI,KAAW,QAAgBA,EAAQ,MAAO;AACjE,GACIT,KAAU,CAACK,GAAM5C,MAAU;AAC7B,MAAII;AACJ,QAAM,EAAE,SAAAR,IAAU,CAAA,GAAI,SAAAoD,GAAS,UAAAE,EAAU,IAAGN,GACtCxE,MAAUgC,IAAM4C,KAAW,OAAO,SAASA,EAAQ,UAAU,OAAO,SAAS5C,EAAI,KAAM,MAAK;AAElG,MADgBJ,aAAiB,aAAa,CAACA,EAAM,aAAaA,EAAM,cAAc6B,KAAQ,CAAC,CAACzD,GACnF;AACX,IAAA4B,EAAM,yBAA0B,GAC5BgD,MAASA,EAAQ,QAAQJ,EAAK;AAClC,eAAWwB,KAAOxE;AAChB,UAAIwE,EAAI,SAASA,EAAI,UAAUhG;AAC7B,eAAOuG,EAAe/B,GAAMwB,GAAKlB,CAAQ;AAAA,EAC9C,MAAM,CAAKA,KAAUmB,EAAczB,GAAM,EAAK;AAC/C,EAAAoB,EAAmBpB,CAAI;AACzB,GACIJ,KAAY,CAACI,GAAM5C,MAAU;AAC/B,MAAII;AACJ,MAAIJ,EAAM,UAAUA,EAAM,WAAWA,EAAM,WAAWA,EAAM,SAAU;AACtE,QAAM,EAAE,OAAAoF,GAAO,SAAApC,GAAS,OAAAD,EAAO,IAAGH,GAC5B,EAAE,KAAAzE,GAAK,QAAAsH,GAAQ,QAAAtD,EAAQ,IAAGnC,GAC1B0F,IAAY1C,KAAWA,MAAYb,GACnCwD,IAASD,MAAc1C,KAAW,OAAO,SAASA,EAAQ;AAChE,MAAI4C,IAAQF,IAAY3C,EAAM,SAAS,CAAC,GAAGA,CAAK,EAAE,QAAQZ,CAAM;AAOhE,MANIuD,KAAavH,MAAQ,SAASiH,KAAS,CAACA,EAAM,WAChDpF,EAAM,eAAgB,GACtBoF,EAAM,WAAW,IACjBA,EAAM,MAAO,GACb5F,EAAG4F,GAAO,QAAQ,MAAMpG,EAAKoG,GAAO,YAAY,IAAI,GAAG3D,CAAU,IAE/D,GAACiE,KAAa3F,GAASC,CAAK,KAAK4F,MAAU,KAC/C;AAAA,QAAIzH,MAAQ,gBAAgB,CAACuH,EAAW,CAAAE,KAAS;AAAA,aACxCzH,MAAQ,eAAe,CAACwH,EAAQ,CAAAC,KAAS;AAAA,aACzCzH,MAAQ,WAAWuH,GAAW;AACrC,YAAMG,IAAO7G,EAAKgE,GAAS,MAAM;AACjC,aAAAhE,EAAKgE,GAAS,QAAQ,GAAG,GACzB,sBAAsB,MAAMhE,EAAKgE,GAAS,QAAQ6C,CAAI,CAAC,GAChDxB,EAAczB,CAAI;AAAA,IAC7B,YAAczE,MAAQ,eAAeA,MAAQ,aAAa,CAACwH,GAAQ;AAE/D,UADA3F,EAAM,eAAgB,GAClB,CAACyF,KAAU1C,EAAM6C,CAAK,EAAG,QAAOjB,EAAe/B,GAAMG,EAAM6C,CAAK,CAAC;AACrE,MAAIF,MAAWE,KAAS;AAAA,IAC5B,MAAS,QAAOF,MAAc1C,KAAW,OAAO,SAASA,EAAQ;AAC/D,IAAAhD,EAAM,eAAgB,IACrBI,IAAM2C,EAAM,KAAK,IAAI,GAAG6C,CAAK,CAAC,KAAK5C,MAAY,QAAgB5C,EAAI,MAAO;AAAA;AAC7E;AACAS,GAAe,OAAO,cAAckB,EAAoB;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"u-combobox.js","sources":["../../../../../node_modules/@u-elements/u-combobox/dist/u-combobox.js"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\n\n// ../utils.ts\nvar IS_BROWSER = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.navigator !== \"undefined\";\nvar IS_ANDROID = IS_BROWSER && /android/i.test(navigator.userAgent);\nvar IS_FIREFOX = IS_BROWSER && /firefox/i.test(navigator.userAgent);\nvar IS_IOS = IS_BROWSER && /iPad|iPhone|iPod/.test(navigator.userAgent);\nvar _a;\nIS_BROWSER && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474\n/^Mac/i.test(((_a = navigator.userAgentData) == null ? void 0 : _a.platform) || navigator.platform);\nvar FOCUS_OUTLINE = \"outline: 1px dotted; outline: 5px auto Highlight; outline: 5px auto -webkit-focus-ring-color\";\nvar UHTMLElement = typeof HTMLElement === \"undefined\" ? class {\n} : HTMLElement;\nfunction attr(el, name, value) {\n if (value === void 0) return el.getAttribute(name);\n if (value === null) el.removeAttribute(name);\n else if (el.getAttribute(name) !== value) el.setAttribute(name, value);\n return null;\n}\nvar events = (action, element, rest) => {\n for (const type of rest[0].split(\",\")) {\n rest[0] = type;\n Element.prototype[`${action}EventListener`].apply(element, rest);\n }\n};\nvar on = (element, ...rest) => events(\"add\", element, rest);\nvar off = (element, ...rest) => events(\"remove\", element, rest);\nvar observers = /* @__PURE__ */ new WeakMap();\nvar mutationObserver = (element, options) => {\n if (options === void 0) return observers.get(element);\n try {\n observers.get(element).disconnect();\n observers.delete(element);\n } catch (_err) {\n }\n if (options) {\n const observer = new MutationObserver(\n (detail) => element.handleEvent({ type: \"mutation\", detail })\n );\n observer.observe(element, options);\n observers.set(element, observer);\n }\n};\nvar asButton = (event) => {\n const isClick = \"key\" in event && (event.key === \" \" || event.key === \"Enter\");\n if (isClick) event.preventDefault();\n if (isClick && event.target instanceof HTMLElement) event.target.click();\n return isClick;\n};\nvar getRoot = (node) => {\n var _a2;\n const root = ((_a2 = node.getRootNode) == null ? void 0 : _a2.call(node)) || node.ownerDocument;\n return root instanceof Document || root instanceof ShadowRoot ? root : document;\n};\nvar id = 0;\nvar useId = (el) => {\n if (!el) return \"\";\n if (!el.id) el.id = `:${el.nodeName.toLowerCase()}${(++id).toString(32)}`;\n return el.id;\n};\nvar createElement = (tagName, text2, attrs) => {\n const el = document.createElement(tagName);\n if (text2) el.textContent = text2;\n if (attrs) for (const [key, val] of Object.entries(attrs)) attr(el, key, val);\n return el;\n};\nvar customElements = {\n define: (name, instance) => !IS_BROWSER || window.customElements.get(name) || window.customElements.define(name, instance)\n};\nvar LIVE;\nvar LIVE_SR_FIX = 0;\nvar speak = (text2) => {\n if (!LIVE) {\n LIVE = createElement(\"div\");\n LIVE.style.cssText = \"position:fixed;overflow:hidden;width:1px;white-space:nowrap\";\n attr(LIVE, \"aria-live\", \"assertive\");\n }\n if (!LIVE.isConnected) document.body.append(LIVE);\n if (text2) LIVE.textContent = `${text2}${LIVE_SR_FIX++ % 2 ? \"\\xA0\" : \"\"}`;\n};\nvar setValue = (input, data, type = \"\") => {\n var _a2, _b;\n const event = { bubbles: true, composed: true, data, inputType: type };\n const proto = HTMLInputElement.prototype;\n input.dispatchEvent(new InputEvent(\"beforeinput\", event));\n (_b = (_a2 = Object.getOwnPropertyDescriptor(proto, \"value\")) == null ? void 0 : _a2.set) == null ? void 0 : _b.call(input, data);\n input.dispatchEvent(new InputEvent(\"input\", event));\n input.dispatchEvent(new Event(\"change\", { bubbles: true }));\n};\nvar IS_PRESS = false;\nvar isMouseDown = (event) => {\n if ((event == null ? void 0 : event.type) === \"mouseup\") IS_PRESS = false;\n if ((event == null ? void 0 : event.type) === \"mousedown\") {\n IS_PRESS = true;\n on(document, \"mouseup\", isMouseDown, { once: true });\n }\n return IS_PRESS;\n};\n\n// u-combobox.ts\nvar EVENTS = \"beforeinput,blur,focus,click,input,keydown,mousedown\";\nvar EVENT_ONCE = { once: true, passive: true };\nvar IS_FIREFOX_DESKTOP = IS_FIREFOX && !IS_ANDROID;\nvar IS_MOBILE = IS_ANDROID || IS_IOS;\nvar FALSE = \"false\";\nvar TEXTS = {\n added: \"Added\",\n empty: \"No selected\",\n found: \"Navigate left to find %d selected\",\n invalid: \"Invalid value\",\n of: \"of\",\n remove: \"Press to remove\",\n removed: \"Removed\"\n};\nvar UHTMLComboboxElement = class extends UHTMLElement {\n constructor() {\n super();\n this._itemText = \"\";\n // Locally store item text to compare change in single mode\n this._speak = \"\";\n this._texts = __spreadValues({}, TEXTS);\n this._value = \"\";\n this.attachShadow({ mode: \"open\" }).append(\n createElement(\"slot\"),\n // Content slot\n createElement(\n \"style\",\n `:host(:not([hidden])) { display: block; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0) } /* Must be display block in Safari to allow focus inside */\n\t\t\t\t:host(:not([data-multiple])) ::slotted(data),\n\t\t\t\t:host([data-multiple=\"false\"]) ::slotted(data) { display: none } /* Hide data if not multiple */\n\t\t\t\t::slotted(input[inputmode=\"none\"]) { outline: none } /* Hide temporary foucs outline flash */\n\t\t\t\t::slotted(del) { text-decoration: none }\n\t\t\t\t::slotted(data:not([hidden])) { display: inline-block; pointer-events: none }\n ::slotted(data)::after { content: '\\\\00D7'; content: '\\\\00D7' / ''; padding-inline: .5ch; pointer-events: auto }\n ::slotted(data:focus) { ${FOCUS_OUTLINE} }`\n )\n );\n }\n // Locally store value to store value before input-click\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return Object.keys(TEXTS).map((key) => `data-sr-${key}`);\n }\n connectedCallback() {\n this._root = getRoot(this);\n on(this, EVENTS, this, true);\n mutationObserver(this, {\n attributeFilter: [\"value\"],\n // Respond to changes in <data> value,\n attributes: true,\n characterData: true,\n // Respond to changes in <data> textContent\n childList: true,\n subtree: true\n });\n setTimeout(render, 0, this);\n setTimeout(syncInputValue, 0, this);\n }\n attributeChangedCallback(prop, _, val) {\n const text2 = prop.split(\"data-sr-\")[1];\n if (TEXTS[text2]) this._texts[text2] = val || TEXTS[text2];\n }\n disconnectedCallback() {\n mutationObserver(this, false);\n off(this, EVENTS, this, true);\n this._items = this._clear = this._focus = this._control = void 0;\n this._list = this._options = this._root = void 0;\n }\n handleEvent(event) {\n const target = event.target;\n if (event.type === \"beforeinput\") this._value = (target == null ? void 0 : target.value) || \"\";\n if (event.type === \"blur\") onBlur(this);\n if (event.type === \"click\") onClick(this, event);\n if (event.type === \"focus\") onFocus(this, event);\n if (event.type === \"input\") onInput(this, event);\n if (event.type === \"keydown\") onKeyDown(this, event);\n if (event.type === \"mousedown\") isMouseDown(event);\n if (event.type === \"mutation\") render(this, event);\n }\n get multiple() {\n var _a2;\n return ((_a2 = attr(this, \"data-multiple\")) != null ? _a2 : FALSE) !== FALSE;\n }\n set multiple(value) {\n attr(this, \"data-multiple\", value ? \"\" : null);\n }\n get creatable() {\n var _a2;\n return ((_a2 = attr(this, \"data-creatable\")) != null ? _a2 : FALSE) !== FALSE;\n }\n set creatable(value) {\n attr(this, \"data-creatable\", value ? \"\" : null);\n }\n get control() {\n var _a2;\n if (!((_a2 = this._control) == null ? void 0 : _a2.isConnected))\n this._control = this.querySelector(\"input\");\n return this._control;\n }\n get list() {\n var _a2;\n if (!((_a2 = this._list) == null ? void 0 : _a2.isConnected))\n this._list = this.querySelector(\"u-datalist,datalist\");\n return this._list;\n }\n get clear() {\n var _a2;\n if (!((_a2 = this._clear) == null ? void 0 : _a2.isConnected)) this._clear = this.querySelector(\"del\");\n return this._clear;\n }\n get items() {\n if (!this._items) this._items = this.getElementsByTagName(\"data\");\n return this._items;\n }\n get options() {\n var _a2, _b;\n if (!this._options) {\n const tag = ((_a2 = this.list) == null ? void 0 : _a2.nodeName) === \"U-DATALIST\" ? \"u-option\" : \"option\";\n this._options = (_b = this.list) == null ? void 0 : _b.getElementsByTagName(tag);\n }\n return this._options;\n }\n get values() {\n return [...this.items].map(({ value }) => value);\n }\n};\nvar text = (el) => {\n var _a2;\n return ((_a2 = el == null ? void 0 : el.textContent) == null ? void 0 : _a2.trim()) || \"\";\n};\nvar isData = (el) => el instanceof HTMLDataElement;\nvar render = (self, event) => {\n var _a2, _b;\n const { _focus, _texts, items, control, list, multiple } = self;\n let label = `${text((_a2 = control == null ? void 0 : control.labels) == null ? void 0 : _a2[0])}, ${multiple ? items.length ? _texts.found.replace(\"%d\", `${items.length}`) : _texts.empty : \"\"}`;\n const edits = [];\n for (const { addedNodes, removedNodes } of (event == null ? void 0 : event.detail) || []) {\n for (const el of addedNodes) if (isData(el)) edits.unshift(el);\n for (const el of removedNodes) if (isData(el)) edits.push(el);\n }\n const shouldAnnounce = multiple ? edits.length === 1 : edits[0] === _focus;\n if (_focus && control && shouldAnnounce) {\n const inputMode = attr(control, \"inputmode\");\n const nextFocus = isData(_focus) ? control : _focus;\n self._speak = `${_texts[edits[0].isConnected ? \"added\" : \"removed\"]} ${text(edits[0])}, `;\n if (IS_MOBILE || _focus === control) speak(self._speak);\n if (control !== nextFocus) {\n attr(control, \"aria-expanded\", null);\n attr(control, \"inputmode\", \"none\");\n label = \"\\xA0\";\n control.focus();\n }\n setTimeout(() => {\n var _a3;\n attr(control, \"aria-expanded\", \"true\");\n attr(control, \"inputmode\", inputMode);\n (_a3 = nextFocus == null ? void 0 : nextFocus.focus) == null ? void 0 : _a3.call(nextFocus);\n self._speak = \"\";\n if (IS_FIREFOX_DESKTOP) on(self, \"blur\", () => render(self), EVENT_ONCE);\n else setTimeout(render, 100, self);\n }, 100);\n }\n let idx = 0;\n const select = self.querySelector(\"select\");\n for (const item of items) {\n const option = select == null ? void 0 : select.options[idx];\n const label2 = text(item);\n const value = item.value || label2;\n const aria = `${self._speak}${label2}, ${_texts.remove}, ${++idx} ${_texts.of} ${items.length}`;\n attr(item, \"role\", \"button\");\n attr(item, \"value\", value);\n attr(item, \"tabindex\", \"-1\");\n attr(item, \"aria-label\", aria);\n if (option) Object.assign(option, { textContent: label2, value });\n else select == null ? void 0 : select.appendChild(new Option(label2, value, true, true));\n }\n if (select) attr(select, \"multiple\", multiple ? \"\" : null);\n for (const opt of [...(select == null ? void 0 : select.options) || []].slice(idx)) opt.remove();\n if (!multiple && idx > 1)\n console.warn(\"u-combobox: Multiple <data> found in single mode.\");\n if (list) attr(list, \"aria-multiselectable\", `${multiple}`);\n if (control) attr(control, \"list\", useId(list));\n if (control) attr(control, \"aria-label\", `${self._speak}${label}`);\n const itemText = text(items[0]);\n if (itemText !== self._itemText) syncInputValue(self, false);\n self._itemText = itemText;\n syncClearWithInput(self);\n syncOptionsWithItems(self);\n (_b = mutationObserver(self)) == null ? void 0 : _b.takeRecords();\n};\nvar syncClearWithInput = (self) => {\n var _a2;\n if (self.clear) attr(self.clear, \"role\", \"button\");\n if (self.clear) self.clear.hidden = !((_a2 = self.control) == null ? void 0 : _a2.value);\n};\nvar syncOptionsWithItems = (self) => {\n var _a2;\n const { _speak, options = [], values } = self;\n for (const opt of options) {\n const value = (_a2 = attr(opt, \"value\")) != null ? _a2 : text(opt);\n attr(opt, \"aria-label\", _speak ? `${_speak}${text(opt)}` : null);\n attr(opt, \"selected\", values.includes(value) ? \"\" : null);\n }\n};\nvar syncInputValue = (self, withEvent = true) => {\n const { multiple, control, items } = self;\n const value = text(items[0]);\n if (multiple || !control || value === control.value) return;\n if (withEvent) return setValue(control, value, \"insertText\");\n control.value = value;\n};\nvar dispatchMatch = (self, change = true) => {\n var _a2;\n const { _texts, options = [], creatable, control, items, multiple } = self;\n const value = ((_a2 = control == null ? void 0 : control.value) == null ? void 0 : _a2.trim()) || \"\";\n const query = value.toLowerCase() || null;\n let match = [...options].find(\n (opt) => (attr(opt, \"label\") || text(opt)).trim().toLowerCase() === query\n );\n const event = { bubbles: true, cancelable: true, detail: match };\n if (!self.dispatchEvent(new CustomEvent(\"beforematch\", event)))\n match = [...options].find((o) => o.selected);\n if (change) {\n syncOptionsWithItems(self);\n if (match) return dispatchChange(self, match, false);\n if (creatable && value) return dispatchChange(self, { value }, false);\n if (!multiple && items[0]) dispatchChange(self, items[0]);\n else syncInputValue(self);\n return speak(_texts.invalid);\n }\n for (const opt of options) opt.selected = opt === match;\n};\nvar dispatchChange = (self, item, removable = true) => {\n const { control, items, multiple } = self;\n const add = createElement(\"data\", item.label || item.value, {\n value: item.value\n });\n const remove = [...items].find((i) => i.value === item.value);\n const event = { bubbles: true, cancelable: true, detail: remove || add };\n const skip = remove && !removable;\n if (skip) return syncInputValue(self);\n if (self.dispatchEvent(new CustomEvent(\"beforechange\", event))) {\n if (!multiple) for (const item2 of [...items]) item2.remove();\n if (remove) remove.remove();\n else control == null ? void 0 : control.insertAdjacentElement(\"beforebegin\", add);\n self.dispatchEvent(new CustomEvent(\"afterchange\", event));\n }\n};\nvar onFocus = (self, { target }) => {\n if (target instanceof HTMLElement) self._focus = target;\n speak();\n};\nvar onBlur = (self) => isMouseDown() || setTimeout(onBlurred, 0, self);\nvar onBlurred = (self) => {\n var _a2;\n if (!self._focus || self.contains((_a2 = self._root) == null ? void 0 : _a2.activeElement)) return;\n if (!self.multiple) dispatchMatch(self);\n self._focus = void 0;\n};\nvar onClick = (self, event) => {\n const { clientX: x, clientY: y, target } = event;\n const { clear, control, items } = self;\n if (clear == null ? void 0 : clear.contains(target)) {\n if (control) setValue(control, \"\", \"deleteContentBackward\");\n return control == null ? void 0 : control.focus();\n }\n for (const item of items) {\n const { top, right, bottom, left } = item.getBoundingClientRect();\n if (item.contains(target)) return dispatchChange(self, item);\n if (y >= top && y <= bottom && x >= left && x <= right) return item.focus();\n }\n if (target === self) control == null ? void 0 : control.focus();\n};\nvar onInput = (self, event) => {\n var _a2;\n const { options = [], control, multiple } = self;\n const value = ((_a2 = control == null ? void 0 : control.value) == null ? void 0 : _a2.trim()) || \"\";\n const isClick = event instanceof InputEvent ? !event.inputType || event.inputType === \"insertReplacementText\" : !!value;\n if (isClick) {\n event.stopImmediatePropagation();\n if (control) control.value = self._value;\n for (const opt of options)\n if (opt.value && opt.value === value)\n return dispatchChange(self, opt, multiple);\n } else if (!multiple) dispatchMatch(self, false);\n syncClearWithInput(self);\n};\nvar onKeyDown = (self, event) => {\n var _a2;\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) return;\n const { clear, control, items } = self;\n const { key, repeat, target } = event;\n const isControl = control && control === target;\n const inText = isControl && (control == null ? void 0 : control.selectionEnd);\n let index = isControl ? items.length : [...items].indexOf(target);\n if (isControl && key === \"Tab\" && clear && !clear.hidden) {\n event.preventDefault();\n clear.tabIndex = -1;\n clear.focus();\n on(clear, \"blur\", () => attr(clear, \"tabindex\", null), EVENT_ONCE);\n }\n if (!isControl && asButton(event) || index === -1) return;\n if (key === \"ArrowRight\" && !isControl) index += 1;\n else if (key === \"ArrowLeft\" && !inText) index -= 1;\n else if (key === \"Enter\" && isControl) {\n const form = attr(control, \"form\");\n attr(control, \"form\", \"#\");\n requestAnimationFrame(() => attr(control, \"form\", form));\n return dispatchMatch(self);\n } else if ((key === \"Backspace\" || key === \"Delete\") && !inText) {\n event.preventDefault();\n if (!repeat && items[index]) return dispatchChange(self, items[index]);\n if (isControl) index -= 1;\n } else return isControl || (control == null ? void 0 : control.focus());\n event.preventDefault();\n (_a2 = items[Math.max(0, index)] || control) == null ? void 0 : _a2.focus();\n};\ncustomElements.define(\"u-combobox\", UHTMLComboboxElement);\n\nexport { UHTMLComboboxElement };\n"],"names":["__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","value","__spreadValues","a","b","prop","IS_BROWSER","IS_ANDROID","IS_FIREFOX","IS_IOS","_a","FOCUS_OUTLINE","UHTMLElement","attr","el","name","events","action","element","rest","type","on","off","observers","mutationObserver","options","observer","detail","asButton","event","isClick","getRoot","node","_a2","root","id","useId","createElement","tagName","text2","attrs","val","customElements","instance","LIVE","LIVE_SR_FIX","speak","setValue","input","data","_b","proto","IS_PRESS","isMouseDown","EVENTS","EVENT_ONCE","IS_FIREFOX_DESKTOP","IS_MOBILE","FALSE","TEXTS","UHTMLComboboxElement","render","syncInputValue","_","target","onBlur","onClick","onFocus","onInput","onKeyDown","tag","text","isData","self","_focus","_texts","items","control","list","multiple","label","edits","addedNodes","removedNodes","shouldAnnounce","inputMode","nextFocus","_a3","idx","select","item","option","label2","aria","opt","itemText","syncClearWithInput","syncOptionsWithItems","_speak","values","withEvent","dispatchMatch","change","creatable","query","match","o","dispatchChange","removable","add","remove","i","item2","onBlurred","x","y","clear","top","right","bottom","left","repeat","isControl","inText","index","form"],"mappings":"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","x_google_ignoreList":[0]}