@mattilsynet/design 1.2.1 → 1.2.2

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.
@@ -1,54 +1,54 @@
1
- var W = Object.defineProperty, N = Object.getOwnPropertySymbols, Y = Object.prototype.hasOwnProperty, z = Object.prototype.propertyIsEnumerable, R = (t, e, o) => e in t ? W(t, e, { enumerable: !0, configurable: !0, writable: !0, value: o }) : t[e] = o, G = (t, e) => {
1
+ var J = Object.defineProperty, B = Object.getOwnPropertySymbols, Q = Object.prototype.hasOwnProperty, Z = Object.prototype.propertyIsEnumerable, F = (t, e, o) => e in t ? J(t, e, { enumerable: !0, configurable: !0, writable: !0, value: o }) : t[e] = o, tt = (t, e) => {
2
2
  for (var o in e || (e = {}))
3
- Y.call(e, o) && R(t, o, e[o]);
4
- if (N)
5
- for (var o of N(e))
6
- z.call(e, o) && R(t, o, e[o]);
3
+ Q.call(e, o) && F(t, o, e[o]);
4
+ if (B)
5
+ for (var o of B(e))
6
+ Z.call(e, o) && F(t, o, e[o]);
7
7
  return t;
8
- }, C = typeof window < "u" && typeof window.document < "u" && typeof window.navigator < "u", B = C && /android/i.test(navigator.userAgent), J = C && /firefox/i.test(navigator.userAgent), Q = C && /iPad|iPhone|iPod/.test(navigator.userAgent), P;
9
- C && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474
10
- /^Mac/i.test(((P = navigator.userAgentData) == null ? void 0 : P.platform) || navigator.platform);
11
- var Z = "outline: 1px dotted; outline: 5px auto Highlight; outline: 5px auto -webkit-focus-ring-color", tt = typeof HTMLElement > "u" ? class {
8
+ }, T = typeof window < "u" && typeof window.document < "u" && typeof window.navigator < "u", V = T && /android/i.test(navigator.userAgent), et = T && /firefox/i.test(navigator.userAgent), ot = T && /iPad|iPhone|iPod/.test(navigator.userAgent), H;
9
+ T && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474
10
+ /^Mac/i.test(((H = navigator.userAgentData) == null ? void 0 : H.platform) || navigator.platform);
11
+ var it = "outline: 1px dotted; outline: 5px auto Highlight; outline: 5px auto -webkit-focus-ring-color", nt = typeof HTMLElement > "u" ? class {
12
12
  } : HTMLElement;
13
- function u(t, e, o) {
13
+ function l(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 F = (t, e, o) => {
16
+ var j = (t, e, o) => {
17
17
  for (const n of o[0].split(","))
18
18
  o[0] = n, Element.prototype[`${t}EventListener`].apply(e, o);
19
- }, V = (t, ...e) => F("add", t, e), et = (t, ...e) => F("remove", t, e), x = /* @__PURE__ */ new WeakMap(), $ = (t, e) => {
20
- if (e === void 0) return x.get(t);
19
+ }, R = (t, ...e) => j("add", t, e), rt = (t, ...e) => j("remove", t, e), k = /* @__PURE__ */ new WeakMap(), D = (t, e) => {
20
+ if (e === void 0) return k.get(t);
21
21
  try {
22
- x.get(t).disconnect(), x.delete(t);
22
+ k.get(t).disconnect(), k.delete(t);
23
23
  } catch {
24
24
  }
25
25
  if (e) {
26
26
  const o = new MutationObserver(
27
27
  (n) => t.handleEvent({ type: "mutation", detail: n })
28
28
  );
29
- o.observe(t, e), x.set(t, o);
29
+ o.observe(t, e), k.set(t, o);
30
30
  }
31
- }, ot = (t) => {
31
+ }, at = (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
- }, it = (t) => {
34
+ }, lt = (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
- }, nt = 0, rt = (t) => t ? (t.id || (t.id = `:${t.nodeName.toLowerCase()}${(++nt).toString(32)}`), t.id) : "", w = (t, e, o) => {
38
+ }, ut = 0, st = (t) => t ? (t.id || (t.id = `:${t.nodeName.toLowerCase()}${(++ut).toString(32)}`), t.id) : "", C = (t, e, o) => {
39
39
  const n = document.createElement(t);
40
- if (e && (n.textContent = e), o) for (const [i, r] of Object.entries(o)) u(n, i, r);
40
+ if (e && (n.textContent = e), o) for (const [r, a] of Object.entries(o)) l(n, r, a);
41
41
  return n;
42
- }, at = {
43
- define: (t, e) => !C || window.customElements.get(t) || window.customElements.define(t, e)
44
- }, lt = (t) => {
45
- const e = w("div");
46
- return e.style.cssText = "position:fixed;overflow:hidden;width:1px;white-space:nowrap", u(e, "aria-live", t), e;
47
- }, st = (t, e, o = "") => {
48
- var n, i;
49
- const r = { bubbles: !0, composed: !0, data: e, inputType: o }, l = HTMLInputElement.prototype;
50
- t.dispatchEvent(new InputEvent("beforeinput", r)), (i = (n = Object.getOwnPropertyDescriptor(l, "value")) == null ? void 0 : n.set) == null || i.call(t, e), t.dispatchEvent(new InputEvent("input", r)), t.dispatchEvent(new Event("change", { bubbles: !0 }));
51
- }, _, ut = 0, L = !1, H = "beforeinput,blur,focus,click,input,keydown,mousedown,mouseup", dt = { once: !0, passive: !0 }, ct = J && !B, vt = B || Q, I = "false", pt = "insertReplacementText", k = {
42
+ }, dt = {
43
+ define: (t, e) => !T || window.customElements.get(t) || window.customElements.define(t, e)
44
+ }, ct = (t) => {
45
+ const e = C("div");
46
+ return e.style.cssText = "position:fixed;overflow:hidden;width:1px;white-space:nowrap", l(e, "aria-live", t), e;
47
+ }, K = (t, e, o = "") => {
48
+ var n, r;
49
+ const a = { bubbles: !0, composed: !0, data: e, inputType: o }, s = HTMLInputElement.prototype;
50
+ t.dispatchEvent(new InputEvent("beforeinput", a)), (r = (n = Object.getOwnPropertyDescriptor(s, "value")) == null ? void 0 : n.set) == null || r.call(t, e), t.dispatchEvent(new InputEvent("input", a)), t.dispatchEvent(new Event("change", { bubbles: !0 }));
51
+ }, g, vt = 0, N = !1, q = "beforeinput,blur,focus,click,input,keydown,mousedown,mouseup", U = { once: !0, passive: !0 }, pt = et && !V, ft = V || ot, A = "false", mt = "insertReplacementText", O = {
52
52
  added: "Added",
53
53
  empty: "No selected",
54
54
  found: "Navigate left to find %d selected",
@@ -56,19 +56,20 @@ var F = (t, e, o) => {
56
56
  of: "of",
57
57
  remove: "Press to remove",
58
58
  removed: "Removed"
59
- }, ft = class extends tt {
59
+ }, ht = class extends nt {
60
60
  constructor() {
61
- super(), this._speak = "", this._texts = G({}, k), this._value = "", this.attachShadow({ mode: "open" }).append(
62
- w("slot"),
61
+ super(), this._speak = "", this._texts = tt({}, O), this._value = "", this.attachShadow({ mode: "open" }).append(
62
+ C("slot"),
63
63
  // Content slot
64
- w(
64
+ C(
65
65
  "style",
66
- `:host(:not([hidden])) { display: block; cursor: pointer } /* Must be display block in Safari to allow focus inside */
66
+ `: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 */
67
67
  :host(:not([data-multiple])) ::slotted(data),
68
68
  :host([data-multiple="false"]) ::slotted(data) { display: none } /* Hide data if not multiple */
69
+ ::slotted(del) { text-decoration: none }
69
70
  ::slotted(data) { display: inline-block; pointer-events: none }
70
71
  ::slotted(data)::after { content: '\\00D7'; content: '\\00D7' / ''; padding-inline: .5ch; pointer-events: auto }
71
- ::slotted(data:focus) { ${Z} }`
72
+ ::slotted(data:focus) { ${it} }`
72
73
  // Show focus outline around ::after only
73
74
  )
74
75
  );
@@ -76,35 +77,35 @@ var F = (t, e, o) => {
76
77
  // Locally store value to store value before input-click
77
78
  // Using ES2015 syntax for backwards compatibility
78
79
  static get observedAttributes() {
79
- return Object.keys(k).map((t) => `data-sr-${t}`);
80
+ return Object.keys(O).map((t) => `data-sr-${t}`);
80
81
  }
81
82
  connectedCallback() {
82
- this._root = it(this), V(this, H, this, !0), $(this, { childList: !0 }), setTimeout(E, 0, this), setTimeout(S, 0, this);
83
+ this._root = lt(this), R(this, q, this, !0), D(this, { childList: !0 }), setTimeout(w, 0, this), setTimeout($, 0, this);
83
84
  }
84
85
  attributeChangedCallback(t, e, o) {
85
86
  const n = t.split("data-sr-")[1];
86
- k[n] && (this._texts[n] = o || k[n]);
87
+ O[n] && (this._texts[n] = o || O[n]);
87
88
  }
88
89
  disconnectedCallback() {
89
- j(this), $(this, !1), et(this, H, this, !0), this._root = void 0;
90
+ X(this), D(this, !1), rt(this, q, this, !0), this._root = void 0;
90
91
  }
91
92
  handleEvent(t) {
92
93
  const e = t.target;
93
- t.type === "beforeinput" && (this._value = (e == null ? void 0 : e.value) || ""), t.type === "blur" && ht(this), t.type === "click" && _t(this, t), t.type === "focus" && mt(this, t), t.type === "input" && yt(this, t), t.type === "keydown" && gt(this, t), t.type === "mousedown" && (L = this.contains(e)), t.type === "mouseup" && (L = !1), t.type === "mutation" && E(this, t);
94
+ t.type === "beforeinput" && (this._value = (e == null ? void 0 : e.value) || ""), t.type === "blur" && _t(this), t.type === "click" && yt(this, t), t.type === "focus" && bt(this, t), t.type === "input" && Et(this, t), t.type === "keydown" && wt(this, t), t.type === "mousedown" && (N = this.contains(e)), t.type === "mouseup" && (N = !1), t.type === "mutation" && w(this, t);
94
95
  }
95
96
  get multiple() {
96
97
  var t;
97
- return ((t = u(this, "data-multiple")) != null ? t : I) !== I;
98
+ return ((t = l(this, "data-multiple")) != null ? t : A) !== A;
98
99
  }
99
100
  set multiple(t) {
100
- u(this, "data-multiple", t ? "" : null);
101
+ l(this, "data-multiple", t ? "" : null);
101
102
  }
102
103
  get creatable() {
103
104
  var t;
104
- return ((t = u(this, "data-creatable")) != null ? t : I) !== I;
105
+ return ((t = l(this, "data-creatable")) != null ? t : A) !== A;
105
106
  }
106
107
  set creatable(t) {
107
- u(this, "data-creatable", t ? "" : null);
108
+ l(this, "data-creatable", t ? "" : null);
108
109
  }
109
110
  get control() {
110
111
  return this._control || this.querySelector("input");
@@ -125,107 +126,113 @@ var F = (t, e, o) => {
125
126
  }
126
127
  add(t) {
127
128
  var e;
128
- const o = M(t);
129
+ const o = P(t);
129
130
  this.values.includes(o.value) || // Prevent duplicates
130
131
  ((e = this.control) == null || e.insertAdjacentElement("beforebegin", o));
131
132
  }
132
- }, b = (t) => {
133
+ }, _ = (t) => {
133
134
  var e;
134
135
  return ((e = t == null ? void 0 : t.textContent) == null ? void 0 : e.trim()) || "";
135
- }, M = (t) => typeof t == "string" ? w("data", t, { value: t }) : t instanceof HTMLDataElement ? t : w("data", t.label || t.value, {
136
+ }, P = (t) => typeof t == "string" ? C("data", t, { value: t }) : t instanceof HTMLDataElement ? t : C("data", t.label || t.value, {
136
137
  value: t.value || t.label || ""
137
- }), j = (t) => {
138
+ }), X = (t) => {
138
139
  t._focus = t._control = t._items = t._list = t._options = void 0;
139
- }, E = (t, e) => {
140
- var o, n, i;
141
- let { _focus: r, _speak: l, _texts: d, items: f, control: a, list: v, multiple: c } = t;
142
- const { addedNodes: p, removedNodes: T } = (e == null ? void 0 : e.detail[0]) || {}, m = (e == null ? void 0 : e.detail[1]) || (p == null ? void 0 : p[1]) || (p == null ? void 0 : p[1]) ? null : (p == null ? void 0 : p[0]) || (T == null ? void 0 : T[0]), A = c ? f.length : 1, O = [];
143
- (m == null ? void 0 : m.nodeName) === "DATA" && (c ? r : m === r) && (l = `${d[m.isConnected ? "added" : "removed"]} ${b(m)}, `, (vt || r === a) && (_.textContent = l), a == null || a.focus(), setTimeout(() => {
144
- var s, h;
145
- (h = (s = (r == null ? void 0 : r.nodeName) === "DATA" ? a : r) == null ? void 0 : s.focus) == null || h.call(s), t._speak = "", ct ? V(t, "blur", () => E(t), dt) : setTimeout(E, 100, t);
146
- }, 100));
147
- const q = m != null && m.isConnected ? m : f[0];
148
- for (const s of f)
149
- if (!c && s !== q) s.remove();
150
- else {
151
- const h = b(s), D = s.value || h, X = `${l}${h}, ${d.remove}, ${O.push(D)} ${d.of} ${A}`;
152
- u(s, "role", "button"), u(s, "value", D), u(s, "tabindex", "-1"), u(s, "aria-label", X);
153
- }
154
- for (const s of t.options || []) {
155
- const h = (o = u(s, "value")) != null ? o : b(s);
156
- u(s, "aria-label", l ? `${l}${b(s)}` : null), u(s, "selected", O.includes(h) ? "" : null);
157
- }
158
- const U = `${l}${b((n = a == null ? void 0 : a.labels) == null ? void 0 : n[0])}, ${c ? A ? d.found.replace("%d", `${A}`) : d.empty : ""}`;
159
- v && u(v, "aria-multiselectable", `${c}`), a && u(a, "list", rt(v)), a && u(a, "aria-label", U), a && (t._value = a.value);
140
+ }, w = (t, e) => {
141
+ var o, n, r;
142
+ let { _focus: a, _speak: s, _texts: u, items: p, control: i, list: d, multiple: c } = t;
143
+ const { addedNodes: f, removedNodes: m } = (e == null ? void 0 : e.detail[0]) || {}, b = (e == null ? void 0 : e.detail[1]) || (f == null ? void 0 : f[1]) || (f == null ? void 0 : f[1]) ? null : (f == null ? void 0 : f[0]) || (m == null ? void 0 : m[0]), L = c ? p.length : 1, M = [];
144
+ if ((b == null ? void 0 : b.nodeName) === "DATA" && (c ? a : b === a)) {
145
+ const v = (i == null ? void 0 : i.inputMode) || null, h = (a == null ? void 0 : a.nodeName) === "DATA" ? i : a;
146
+ s = `${u[b.isConnected ? "added" : "removed"]} ${_(b)}, `, (ft || a === i) && (g.textContent = s), i && i !== h && (l(i, "aria-hidden", "true"), i.inputMode = "none", i.focus()), setTimeout(() => {
147
+ var x;
148
+ i && l(i, "aria-hidden", null), i && l(i, "inputMode", v), (x = h == null ? void 0 : h.focus) == null || x.call(h), t._speak = "", pt ? R(t, "blur", () => w(t), U) : setTimeout(w, 100, t);
149
+ }, 100);
150
+ }
151
+ const Y = b != null && b.isConnected ? b : p[0];
152
+ Array.from(p, (v) => {
153
+ if (!c && v !== Y) return v.remove();
154
+ const h = _(v), x = v.value || h, G = `${s}${h}, ${u.remove}, ${M.push(x)} ${u.of} ${L}`;
155
+ l(v, "role", "button"), l(v, "value", x), l(v, "tabindex", "-1"), l(v, "aria-label", G);
156
+ });
157
+ for (const v of t.options || []) {
158
+ const h = (o = l(v, "value")) != null ? o : _(v);
159
+ l(v, "aria-label", s ? `${s}${_(v)}` : null), l(v, "selected", M.includes(h) ? "" : null);
160
+ }
161
+ const z = `${s}${_((n = i == null ? void 0 : i.labels) == null ? void 0 : n[0])}, ${c ? L ? u.found.replace("%d", `${L}`) : u.empty : ""}`;
162
+ d && l(d, "aria-multiselectable", `${c}`), i && l(i, "list", st(d)), i && l(i, "aria-label", z), t._value = (i == null ? void 0 : i.value) || "";
163
+ const S = t.querySelector("del");
164
+ S && l(S, "role", "button"), S && (S.hidden = !(i != null && i.value));
160
165
  const y = t.querySelector("select");
161
- y && (y.multiple = c), y && (y.textContent = ""), y == null || y.append(...O.map((s) => new Option("", s, !0, !0))), (i = $(t)) == null || i.takeRecords();
162
- }, S = (t, e) => {
163
- const { multiple: o, control: n, items: i } = t;
164
- if (!(o || !n || !i[0])) {
165
- if (e) return st(n, b(t.items[0]), "insertText");
166
- n.value = b(t.items[0]);
167
- }
168
- }, K = (t) => {
166
+ y && (y.multiple = c), y && (y.textContent = ""), y == null || y.append(...M.map((v) => new Option("", v, !0, !0))), (r = D(t)) == null || r.takeRecords();
167
+ }, $ = (t, e) => {
168
+ const { multiple: o, control: n, items: r } = t;
169
+ if (!(o || !n || !r[0])) {
170
+ if (e) return K(n, _(t.items[0]), "insertText");
171
+ n.value = _(t.items[0]);
172
+ }
173
+ }, W = (t) => {
169
174
  var e;
170
- const { options: o = [], creatable: n, control: i, items: r, multiple: l } = t, d = ((e = i == null ? void 0 : i.value) == null ? void 0 : e.trim()) || "", f = d.toLowerCase() || null;
171
- let a = [...o].find((c) => c.label.trim().toLowerCase() === f);
172
- const v = { bubbles: !0, cancelable: !0, detail: a };
173
- if (t.dispatchEvent(new CustomEvent("beforematch", v)))
174
- for (const c of o) c.selected = c === a;
175
- if (a = [...o].find((c) => c.selected), !a && n && d)
176
- return g(t, M(d));
177
- if (!a && !l && r[0]) return g(t, r[0]);
178
- if (!a || t.values.includes(a.value)) return E(t);
179
- g(t, a, !1);
180
- }, g = (t, e, o = !0) => {
181
- const n = M(e), i = [...t.items].find((l) => l.value === e.value), r = { bubbles: !0, cancelable: !0, detail: i || n };
182
- if (!(i && !o)) {
183
- if (!t.dispatchEvent(new CustomEvent("beforechange", r)))
184
- return E(t);
185
- i ? i.remove() : t.add(n), t.dispatchEvent(new CustomEvent("afterchange", r));
186
- }
187
- }, mt = (t, { target: e }) => {
188
- _ || (_ = lt("assertive")), _.isConnected || document.body.appendChild(_), e instanceof HTMLElement && (t._focus = e), t._items || (t._control = t.control || void 0, t._items = t.items, t._list = t.list || void 0, t._options = t.options || void 0);
189
- }, ht = (t) => L || setTimeout(bt, 0, t), bt = (t) => {
175
+ const { options: o = [], creatable: n, control: r, items: a, multiple: s } = t, u = ((e = r == null ? void 0 : r.value) == null ? void 0 : e.trim()) || "", p = u.toLowerCase() || null;
176
+ let i = [...o].find((c) => c.label.trim().toLowerCase() === p);
177
+ const d = { bubbles: !0, cancelable: !0, detail: i };
178
+ if (t.dispatchEvent(new CustomEvent("beforematch", d)))
179
+ for (const c of o) c.selected = c === i;
180
+ if (i = [...o].find((c) => c.selected), !i && n && u)
181
+ return E(t, P(u), !1);
182
+ if (!i && !s && a[0]) return E(t, a[0]);
183
+ if (!i || t.values.includes(i.value)) return w(t);
184
+ E(t, i, !1);
185
+ }, E = (t, e, o = !0) => {
186
+ const n = P(e), r = [...t.items].find((s) => s.value === e.value), a = { bubbles: !0, cancelable: !0, detail: r || n };
187
+ if (!(r && !o)) {
188
+ if (!t.dispatchEvent(new CustomEvent("beforechange", a)))
189
+ return w(t);
190
+ r ? r.remove() : t.add(n), t.dispatchEvent(new CustomEvent("afterchange", a));
191
+ }
192
+ }, bt = (t, { target: e }) => {
193
+ g || (g = ct("assertive")), g.isConnected || document.body.appendChild(g), e instanceof HTMLElement && (t._focus = e), t._items || (t._control = t.control || void 0, t._items = t.items, t._list = t.list || void 0, t._options = t.options || void 0);
194
+ }, _t = (t) => N || setTimeout(gt, 0, t), gt = (t) => {
190
195
  var e;
191
- !t._focus || t.contains((e = t._root) == null ? void 0 : e.activeElement) || (S(t, !0), j(t));
192
- }, _t = (t, e) => {
193
- var o;
194
- const { clientX: n, clientY: i, target: r } = e;
195
- for (const l of t.items) {
196
- const { top: d, right: f, bottom: a, left: v } = l.getBoundingClientRect();
197
- if (l.contains(r)) return g(t, l);
198
- if (i >= d && i <= a && n >= v && n <= f) return l.focus();
199
- }
200
- r === t && ((o = t.control) == null || o.focus());
196
+ !t._focus || t.contains((e = t._root) == null ? void 0 : e.activeElement) || ($(t, !0), X(t));
201
197
  }, yt = (t, e) => {
202
- var o;
203
- const { options: n = [], control: i, multiple: r } = t, l = ((o = i == null ? void 0 : i.value) == null ? void 0 : o.trim()) || "";
204
- if (!(e instanceof InputEvent ? !e.inputType || e.inputType === pt : !!l)) return r || K(t);
205
- e.stopImmediatePropagation(), i && (i.value = t._value);
206
- for (const f of n)
207
- if (f.value && f.value === l)
208
- return g(t, f, r), setTimeout(S, 0, t, !0);
209
- }, gt = (t, e) => {
198
+ var o, n;
199
+ const r = (n = (o = e.target) == null ? void 0 : o.closest) == null ? void 0 : n.call(o, "del"), { clientX: a, clientY: s, target: u } = e, { control: p, items: i } = t;
200
+ if (r && p)
201
+ return e.preventDefault(), K(p, "", "deleteContentBackward"), p.focus();
202
+ for (const d of i) {
203
+ const { top: c, right: f, bottom: m, left: I } = d.getBoundingClientRect();
204
+ if (d.contains(u)) return E(t, d);
205
+ if (s >= c && s <= m && a >= I && a <= f) return d.focus();
206
+ }
207
+ u === t && (p == null || p.focus());
208
+ }, Et = (t, e) => {
209
+ var o, n;
210
+ const { options: r = [], control: a, multiple: s } = t, u = ((o = a == null ? void 0 : a.value) == null ? void 0 : o.trim()) || "", p = e instanceof InputEvent ? !e.inputType || e.inputType === mt : !!u;
211
+ if ((n = t.querySelector("del")) == null || n.toggleAttribute("hidden", !u), !p) return s || W(t);
212
+ e.stopImmediatePropagation(), a && (a.value = t._value);
213
+ for (const i of r)
214
+ if (i.value && i.value === u)
215
+ return E(t, i, s), setTimeout($, 0, t, !0);
216
+ }, wt = (t, e) => {
210
217
  var o;
211
218
  if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) return;
212
- const { _texts: n, control: i, items: r, multiple: l } = t, { key: d, repeat: f, target: a } = e, v = i && i === a, c = v && (i == null ? void 0 : i.selectionEnd);
213
- let p = v ? r.length : [...r].indexOf(a);
214
- if (!(p === -1 || !v && ot(e))) {
215
- if (d === "ArrowRight" && !v) p += 1;
216
- else if (d === "ArrowLeft" && !c) p -= 1;
217
- else if (d === "Enter" && v) {
218
- const T = u(i, "form");
219
- return u(i, "form", "#"), requestAnimationFrame(() => u(i, "form", T)), l ? K(t) : !t.items[0] && _ && (_.textContent = `${n.invalid}${++ut % 2 ? " " : ""}`), S(t, !0);
220
- } else if ((d === "Backspace" || d === "Delete") && !c) {
221
- if (e.preventDefault(), !f && r[p]) return g(t, r[p]);
222
- v && (p -= 1);
223
- } else return v || (i == null ? void 0 : i.focus());
224
- e.preventDefault(), (o = r[Math.max(0, p)] || i) == null || o.focus();
219
+ const { _texts: n, control: r, items: a, multiple: s } = t, { key: u, repeat: p, target: i } = e, d = r && r === i, c = d && (r == null ? void 0 : r.selectionEnd), f = d && u === "Tab" && t.querySelector("del");
220
+ let m = d ? a.length : [...a].indexOf(i);
221
+ if (f && !f.hidden && (e.preventDefault(), f.tabIndex = -1, f.focus(), R(f, "blur", () => l(f, "tabindex", null), U)), !(!d && at(e) || m === -1)) {
222
+ if (u === "ArrowRight" && !d) m += 1;
223
+ else if (u === "ArrowLeft" && !c) m -= 1;
224
+ else if (u === "Enter" && d) {
225
+ const I = l(r, "form");
226
+ return l(r, "form", "#"), requestAnimationFrame(() => l(r, "form", I)), s ? W(t) : !t.items[0] && g && (g.textContent = `${n.invalid}${++vt % 2 ? " " : ""}`), $(t, !0);
227
+ } else if ((u === "Backspace" || u === "Delete") && !c) {
228
+ if (e.preventDefault(), !p && a[m]) return E(t, a[m]);
229
+ d && (m -= 1);
230
+ } else return d || (r == null ? void 0 : r.focus());
231
+ e.preventDefault(), (o = a[Math.max(0, m)] || r) == null || o.focus();
225
232
  }
226
233
  };
227
- at.define("u-combobox", ft);
234
+ dt.define("u-combobox", ht);
228
235
  export {
229
- ft as UHTMLComboboxElement
236
+ ht as UHTMLComboboxElement
230
237
  };
231
238
  //# 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 createAriaLive = (mode) => {\n const live = createElement(\"div\");\n live.style.cssText = \"position:fixed;overflow:hidden;width:1px;white-space:nowrap\";\n attr(live, \"aria-live\", mode);\n return live;\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 LIVE;\nvar LIVE_SR_FIX = 0;\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 } /* 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(data) { 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 // Show focus outline around ::after only\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 });\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 disconnectCache(this);\n mutationObserver(this, false);\n off(this, EVENTS, this, true);\n 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 return this._control || this.querySelector(\"input\");\n }\n get list() {\n return this._list || this.querySelector(\"u-datalist,datalist\") || null;\n }\n get items() {\n return this._items || this.getElementsByTagName(\"data\");\n }\n get options() {\n var _a2, _b;\n const tag = `${((_a2 = this.list) == null ? void 0 : _a2.nodeName) === \"U-DATALIST\" ? \"u-\" : \"\"}option`;\n return this._options || ((_b = this.list) == null ? void 0 : _b.getElementsByTagName(tag));\n }\n get values() {\n return [...this.items].map(({ value }) => value);\n }\n add(value) {\n var _a2;\n const item = createItem(value);\n this.values.includes(item.value) || // Prevent duplicates\n ((_a2 = this.control) == null ? void 0 : _a2.insertAdjacentElement(\"beforebegin\", item));\n }\n};\nvar text = (el) => {\n var _a2;\n return ((_a2 = el == null ? void 0 : el.textContent) == null ? void 0 : _a2.trim()) || \"\";\n};\nvar createItem = (value) => {\n if (typeof value === \"string\") return createElement(\"data\", value, { value });\n if (value instanceof HTMLDataElement) return value;\n return createElement(\"data\", value.label || value.value, {\n value: value.value || value.label || \"\"\n });\n};\nvar disconnectCache = (el) => {\n el._focus = el._control = el._items = el._list = el._options = void 0;\n};\nvar render = (self, e) => {\n var _a2, _b, _c;\n let { _focus, _speak, _texts, items, control, list, multiple } = self;\n const { addedNodes, removedNodes } = (e == null ? void 0 : e.detail[0]) || {};\n const isMultiEdit = (e == null ? void 0 : e.detail[1]) || (addedNodes == null ? void 0 : addedNodes[1]) || (addedNodes == null ? void 0 : addedNodes[1]);\n const edit = isMultiEdit ? null : (addedNodes == null ? void 0 : addedNodes[0]) || (removedNodes == null ? void 0 : removedNodes[0]);\n const total = multiple ? items.length : 1;\n const values = [];\n if ((edit == null ? void 0 : edit.nodeName) === \"DATA\" && (multiple ? _focus : edit === _focus)) {\n _speak = `${_texts[edit.isConnected ? \"added\" : \"removed\"]} ${text(edit)}, `;\n if (IS_MOBILE || _focus === control) LIVE.textContent = _speak;\n control == null ? void 0 : control.focus();\n setTimeout(() => {\n var _a3, _b2;\n (_b2 = (_a3 = (_focus == null ? void 0 : _focus.nodeName) === \"DATA\" ? control : _focus) == null ? void 0 : _a3.focus) == null ? void 0 : _b2.call(_a3);\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 const keep = (edit == null ? void 0 : edit.isConnected) ? edit : items[0];\n for (const item of items) {\n if (!multiple && item !== keep) item.remove();\n else {\n const label2 = text(item);\n const value = item.value || label2;\n const aria = `${_speak}${label2}, ${_texts.remove}, ${values.push(value)} ${_texts.of} ${total}`;\n attr(item, \"role\", \"button\");\n attr(item, \"value\", value);\n attr(item, \"tabindex\", \"-1\");\n attr(item, \"aria-label\", aria);\n }\n }\n for (const opt of self.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 const label = `${_speak}${text((_b = control == null ? void 0 : control.labels) == null ? void 0 : _b[0])}, ${multiple ? total ? _texts.found.replace(\"%d\", `${total}`) : _texts.empty : \"\"}`;\n if (list) attr(list, \"aria-multiselectable\", `${multiple}`);\n if (control) attr(control, \"list\", useId(list));\n if (control) attr(control, \"aria-label\", label);\n if (control) self._value = control.value;\n const select = self.querySelector(\"select\");\n if (select) select.multiple = multiple;\n if (select) select.textContent = \"\";\n select == null ? void 0 : select.append(...values.map((value) => new Option(\"\", value, true, true)));\n (_c = mutationObserver(self)) == null ? void 0 : _c.takeRecords();\n};\nvar syncInputValue = (self, withEvent) => {\n const { multiple, control, items } = self;\n if (multiple || !control || !items[0]) return;\n if (withEvent) return setValue(control, text(self.items[0]), \"insertText\");\n control.value = text(self.items[0]);\n};\nvar dispatchMatch = (self) => {\n var _a2;\n const { 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 if (!match && creatable && value)\n return dispatchChange(self, createItem(value));\n if (!match && !multiple && items[0]) return dispatchChange(self, items[0]);\n if (!match || self.values.includes(match.value)) return render(self);\n dispatchChange(self, match, false);\n};\nvar dispatchChange = (self, item, removeable = true) => {\n const add = createItem(item);\n const remove = [...self.items].find((i) => i.value === item.value);\n const event = { bubbles: true, cancelable: true, detail: remove || add };\n if (remove && !removeable) return;\n if (!self.dispatchEvent(new CustomEvent(\"beforechange\", event)))\n return render(self);\n remove ? remove.remove() : self.add(add);\n self.dispatchEvent(new CustomEvent(\"afterchange\", event));\n};\nvar onFocus = (self, { target }) => {\n if (!LIVE) LIVE = createAriaLive(\"assertive\");\n if (!LIVE.isConnected) document.body.appendChild(LIVE);\n if (target instanceof HTMLElement) self._focus = target;\n if (!self._items) {\n self._control = self.control || void 0;\n self._items = self.items;\n self._list = self.list || void 0;\n self._options = self.options || void 0;\n }\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 syncInputValue(self, true);\n disconnectCache(self);\n};\nvar onClick = (self, event) => {\n var _a2;\n const { clientX: x, clientY: y, target } = event;\n for (const item of self.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) (_a2 = self.control) == null ? void 0 : _a2.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) return multiple || dispatchMatch(self);\n event.stopImmediatePropagation();\n if (control) control.value = self._value;\n for (const opt of options)\n if (opt.value && opt.value === value) {\n dispatchChange(self, opt, multiple);\n return setTimeout(syncInputValue, 0, self, true);\n }\n};\nvar onKeyDown = (self, event) => {\n var _a2;\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) return;\n const { _texts, control, items, multiple } = 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 (index === -1 || !isControl && asButton(event)) 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 if (multiple) dispatchMatch(self);\n else if (!self.items[0] && LIVE)\n LIVE.textContent = `${_texts.invalid}${++LIVE_SR_FIX % 2 ? \"\\xA0\" : \"\"}`;\n return syncInputValue(self, true);\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","createAriaLive","mode","live","setValue","input","data","_b","proto","LIVE","LIVE_SR_FIX","IS_PRESS","EVENTS","EVENT_ONCE","IS_FIREFOX_MAC","IS_MOBILE","FALSE","CLICK","TEXTS","UHTMLComboboxElement","render","syncInputValue","_","disconnectCache","target","onBlur","onClick","onFocus","onInput","onKeyDown","tag","item","createItem","text","self","_c","_focus","_speak","_texts","items","control","list","multiple","addedNodes","removedNodes","edit","total","values","_a3","_b2","keep","label2","aria","opt","label","select","withEvent","dispatchMatch","creatable","query","match","o","dispatchChange","removeable","add","remove","i","onBlurred","x","y","top","right","bottom","left","repeat","isControl","inText","index","form"],"mappings":"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","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 createAriaLive = (mode) => {\n const live = createElement(\"div\");\n live.style.cssText = \"position:fixed;overflow:hidden;width:1px;white-space:nowrap\";\n attr(live, \"aria-live\", mode);\n return live;\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 LIVE;\nvar LIVE_SR_FIX = 0;\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(del) { text-decoration: none }\n\t\t\t\t::slotted(data) { 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 // Show focus outline around ::after only\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 });\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 disconnectCache(this);\n mutationObserver(this, false);\n off(this, EVENTS, this, true);\n 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 return this._control || this.querySelector(\"input\");\n }\n get list() {\n return this._list || this.querySelector(\"u-datalist,datalist\") || null;\n }\n get items() {\n return this._items || this.getElementsByTagName(\"data\");\n }\n get options() {\n var _a2, _b;\n const tag = `${((_a2 = this.list) == null ? void 0 : _a2.nodeName) === \"U-DATALIST\" ? \"u-\" : \"\"}option`;\n return this._options || ((_b = this.list) == null ? void 0 : _b.getElementsByTagName(tag));\n }\n get values() {\n return [...this.items].map(({ value }) => value);\n }\n add(value) {\n var _a2;\n const item = createItem(value);\n this.values.includes(item.value) || // Prevent duplicates\n ((_a2 = this.control) == null ? void 0 : _a2.insertAdjacentElement(\"beforebegin\", item));\n }\n};\nvar text = (el) => {\n var _a2;\n return ((_a2 = el == null ? void 0 : el.textContent) == null ? void 0 : _a2.trim()) || \"\";\n};\nvar createItem = (value) => {\n if (typeof value === \"string\") return createElement(\"data\", value, { value });\n if (value instanceof HTMLDataElement) return value;\n return createElement(\"data\", value.label || value.value, {\n value: value.value || value.label || \"\"\n });\n};\nvar disconnectCache = (el) => {\n el._focus = el._control = el._items = el._list = el._options = void 0;\n};\nvar render = (self, e) => {\n var _a2, _b, _c;\n let { _focus, _speak, _texts, items, control, list, multiple } = self;\n const { addedNodes, removedNodes } = (e == null ? void 0 : e.detail[0]) || {};\n const isMultiEdit = (e == null ? void 0 : e.detail[1]) || (addedNodes == null ? void 0 : addedNodes[1]) || (addedNodes == null ? void 0 : addedNodes[1]);\n const edit = isMultiEdit ? null : (addedNodes == null ? void 0 : addedNodes[0]) || (removedNodes == null ? void 0 : removedNodes[0]);\n const total = multiple ? items.length : 1;\n const values = [];\n if ((edit == null ? void 0 : edit.nodeName) === \"DATA\" && (multiple ? _focus : edit === _focus)) {\n const inputMode = (control == null ? void 0 : control.inputMode) || null;\n const nextFocus = (_focus == null ? void 0 : _focus.nodeName) === \"DATA\" ? control : _focus;\n _speak = `${_texts[edit.isConnected ? \"added\" : \"removed\"]} ${text(edit)}, `;\n if (IS_MOBILE || _focus === control) LIVE.textContent = _speak;\n if (control && control !== nextFocus) {\n attr(control, \"aria-hidden\", \"true\");\n control.inputMode = \"none\";\n control.focus();\n }\n setTimeout(() => {\n var _a3;\n if (control) attr(control, \"aria-hidden\", null);\n if (control) 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 const keep = (edit == null ? void 0 : edit.isConnected) ? edit : items[0];\n Array.from(items, (item) => {\n if (!multiple && item !== keep) return item.remove();\n const label2 = text(item);\n const value = item.value || label2;\n const aria = `${_speak}${label2}, ${_texts.remove}, ${values.push(value)} ${_texts.of} ${total}`;\n attr(item, \"role\", \"button\");\n attr(item, \"value\", value);\n attr(item, \"tabindex\", \"-1\");\n attr(item, \"aria-label\", aria);\n });\n for (const opt of self.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 const label = `${_speak}${text((_b = control == null ? void 0 : control.labels) == null ? void 0 : _b[0])}, ${multiple ? total ? _texts.found.replace(\"%d\", `${total}`) : _texts.empty : \"\"}`;\n if (list) attr(list, \"aria-multiselectable\", `${multiple}`);\n if (control) attr(control, \"list\", useId(list));\n if (control) attr(control, \"aria-label\", label);\n self._value = (control == null ? void 0 : control.value) || \"\";\n const del = self.querySelector(\"del\");\n if (del) attr(del, \"role\", \"button\");\n if (del) del.hidden = !(control == null ? void 0 : control.value);\n const select = self.querySelector(\"select\");\n if (select) select.multiple = multiple;\n if (select) select.textContent = \"\";\n select == null ? void 0 : select.append(...values.map((value) => new Option(\"\", value, true, true)));\n (_c = mutationObserver(self)) == null ? void 0 : _c.takeRecords();\n};\nvar syncInputValue = (self, withEvent) => {\n const { multiple, control, items } = self;\n if (multiple || !control || !items[0]) return;\n if (withEvent) return setValue(control, text(self.items[0]), \"insertText\");\n control.value = text(self.items[0]);\n};\nvar dispatchMatch = (self) => {\n var _a2;\n const { 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 if (!match && creatable && value)\n return dispatchChange(self, createItem(value), false);\n if (!match && !multiple && items[0]) return dispatchChange(self, items[0]);\n if (!match || self.values.includes(match.value)) return render(self);\n dispatchChange(self, match, false);\n};\nvar dispatchChange = (self, item, removeable = true) => {\n const add = createItem(item);\n const remove = [...self.items].find((i) => i.value === item.value);\n const event = { bubbles: true, cancelable: true, detail: remove || add };\n if (remove && !removeable) return;\n if (!self.dispatchEvent(new CustomEvent(\"beforechange\", event)))\n return render(self);\n remove ? remove.remove() : self.add(add);\n self.dispatchEvent(new CustomEvent(\"afterchange\", event));\n};\nvar onFocus = (self, { target }) => {\n if (!LIVE) LIVE = createAriaLive(\"assertive\");\n if (!LIVE.isConnected) document.body.appendChild(LIVE);\n if (target instanceof HTMLElement) self._focus = target;\n if (!self._items) {\n self._control = self.control || void 0;\n self._items = self.items;\n self._list = self.list || void 0;\n self._options = self.options || void 0;\n }\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 syncInputValue(self, true);\n disconnectCache(self);\n};\nvar onClick = (self, event) => {\n var _a2, _b;\n const clear = (_b = (_a2 = event.target) == null ? void 0 : _a2.closest) == null ? void 0 : _b.call(_a2, \"del\");\n const { clientX: x, clientY: y, target } = event;\n const { control, items } = self;\n if (clear && control) {\n event.preventDefault();\n setValue(control, \"\", \"deleteContentBackward\");\n return 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, _b;\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 (_b = self.querySelector(\"del\")) == null ? void 0 : _b.toggleAttribute(\"hidden\", !value);\n if (!isClick) return multiple || dispatchMatch(self);\n event.stopImmediatePropagation();\n if (control) control.value = self._value;\n for (const opt of options)\n if (opt.value && opt.value === value) {\n dispatchChange(self, opt, multiple);\n return setTimeout(syncInputValue, 0, self, true);\n }\n};\nvar onKeyDown = (self, event) => {\n var _a2;\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) return;\n const { _texts, control, items, multiple } = self;\n const { key, repeat, target } = event;\n const isControl = control && control === target;\n const inText = isControl && (control == null ? void 0 : control.selectionEnd);\n const clear = isControl && key === \"Tab\" && self.querySelector(\"del\");\n let index = isControl ? items.length : [...items].indexOf(target);\n if (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 if (multiple) dispatchMatch(self);\n else if (!self.items[0] && LIVE)\n LIVE.textContent = `${_texts.invalid}${++LIVE_SR_FIX % 2 ? \"\\xA0\" : \"\"}`;\n return syncInputValue(self, true);\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","createAriaLive","mode","live","setValue","input","data","_b","proto","LIVE","LIVE_SR_FIX","IS_PRESS","EVENTS","EVENT_ONCE","IS_FIREFOX_MAC","IS_MOBILE","FALSE","CLICK","TEXTS","UHTMLComboboxElement","render","syncInputValue","_","disconnectCache","target","onBlur","onClick","onFocus","onInput","onKeyDown","tag","item","createItem","text","self","_c","_focus","_speak","_texts","items","control","list","multiple","addedNodes","removedNodes","edit","total","values","inputMode","nextFocus","_a3","keep","label2","aria","opt","label","del","select","withEvent","dispatchMatch","creatable","query","match","o","dispatchChange","removeable","add","remove","i","onBlurred","clear","x","y","top","right","bottom","left","repeat","isControl","inText","index","form"],"mappings":"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","x_google_ignoreList":[0]}