@triptease/tt-navbar 0.1.1 → 0.1.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,2570 +0,0 @@
1
- /**
2
- * @triptease/tt-navbar v0.1.1
3
- */
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __decorateClass = (decorators, target2, key, kind) => {
7
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target2, key) : target2;
8
- for (var i7 = decorators.length - 1, decorator; i7 >= 0; i7--)
9
- if (decorator = decorators[i7])
10
- result = (kind ? decorator(target2, key, result) : decorator(result)) || result;
11
- if (kind && result) __defProp(target2, key, result);
12
- return result;
13
- };
14
-
15
- // ../../node_modules/@lit/reactive-element/css-tag.js
16
- var t = globalThis;
17
- var e = t.ShadowRoot && (void 0 === t.ShadyCSS || t.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype;
18
- var s = /* @__PURE__ */ Symbol();
19
- var o = /* @__PURE__ */ new WeakMap();
20
- var n = class {
21
- constructor(t6, e10, o10) {
22
- if (this._$cssResult$ = true, o10 !== s) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
23
- this.cssText = t6, this.t = e10;
24
- }
25
- get styleSheet() {
26
- let t6 = this.o;
27
- const s5 = this.t;
28
- if (e && void 0 === t6) {
29
- const e10 = void 0 !== s5 && 1 === s5.length;
30
- e10 && (t6 = o.get(s5)), void 0 === t6 && ((this.o = t6 = new CSSStyleSheet()).replaceSync(this.cssText), e10 && o.set(s5, t6));
31
- }
32
- return t6;
33
- }
34
- toString() {
35
- return this.cssText;
36
- }
37
- };
38
- var r = (t6) => new n("string" == typeof t6 ? t6 : t6 + "", void 0, s);
39
- var i = (t6, ...e10) => {
40
- const o10 = 1 === t6.length ? t6[0] : e10.reduce(((e11, s5, o11) => e11 + ((t7) => {
41
- if (true === t7._$cssResult$) return t7.cssText;
42
- if ("number" == typeof t7) return t7;
43
- throw Error("Value passed to 'css' function must be a 'css' function result: " + t7 + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.");
44
- })(s5) + t6[o11 + 1]), t6[0]);
45
- return new n(o10, t6, s);
46
- };
47
- var S = (s5, o10) => {
48
- if (e) s5.adoptedStyleSheets = o10.map(((t6) => t6 instanceof CSSStyleSheet ? t6 : t6.styleSheet));
49
- else for (const e10 of o10) {
50
- const o11 = document.createElement("style"), n5 = t.litNonce;
51
- void 0 !== n5 && o11.setAttribute("nonce", n5), o11.textContent = e10.cssText, s5.appendChild(o11);
52
- }
53
- };
54
- var c = e ? (t6) => t6 : (t6) => t6 instanceof CSSStyleSheet ? ((t7) => {
55
- let e10 = "";
56
- for (const s5 of t7.cssRules) e10 += s5.cssText;
57
- return r(e10);
58
- })(t6) : t6;
59
-
60
- // ../../node_modules/@lit/reactive-element/reactive-element.js
61
- var { is: i2, defineProperty: e2, getOwnPropertyDescriptor: h, getOwnPropertyNames: r2, getOwnPropertySymbols: o2, getPrototypeOf: n2 } = Object;
62
- var a = globalThis;
63
- var c2 = a.trustedTypes;
64
- var l = c2 ? c2.emptyScript : "";
65
- var p = a.reactiveElementPolyfillSupport;
66
- var d = (t6, s5) => t6;
67
- var u = { toAttribute(t6, s5) {
68
- switch (s5) {
69
- case Boolean:
70
- t6 = t6 ? l : null;
71
- break;
72
- case Object:
73
- case Array:
74
- t6 = null == t6 ? t6 : JSON.stringify(t6);
75
- }
76
- return t6;
77
- }, fromAttribute(t6, s5) {
78
- let i7 = t6;
79
- switch (s5) {
80
- case Boolean:
81
- i7 = null !== t6;
82
- break;
83
- case Number:
84
- i7 = null === t6 ? null : Number(t6);
85
- break;
86
- case Object:
87
- case Array:
88
- try {
89
- i7 = JSON.parse(t6);
90
- } catch (t7) {
91
- i7 = null;
92
- }
93
- }
94
- return i7;
95
- } };
96
- var f = (t6, s5) => !i2(t6, s5);
97
- var b = { attribute: true, type: String, converter: u, reflect: false, useDefault: false, hasChanged: f };
98
- Symbol.metadata ?? (Symbol.metadata = /* @__PURE__ */ Symbol("metadata")), a.litPropertyMetadata ?? (a.litPropertyMetadata = /* @__PURE__ */ new WeakMap());
99
- var y = class extends HTMLElement {
100
- static addInitializer(t6) {
101
- this._$Ei(), (this.l ?? (this.l = [])).push(t6);
102
- }
103
- static get observedAttributes() {
104
- return this.finalize(), this._$Eh && [...this._$Eh.keys()];
105
- }
106
- static createProperty(t6, s5 = b) {
107
- if (s5.state && (s5.attribute = false), this._$Ei(), this.prototype.hasOwnProperty(t6) && ((s5 = Object.create(s5)).wrapped = true), this.elementProperties.set(t6, s5), !s5.noAccessor) {
108
- const i7 = /* @__PURE__ */ Symbol(), h3 = this.getPropertyDescriptor(t6, i7, s5);
109
- void 0 !== h3 && e2(this.prototype, t6, h3);
110
- }
111
- }
112
- static getPropertyDescriptor(t6, s5, i7) {
113
- const { get: e10, set: r8 } = h(this.prototype, t6) ?? { get() {
114
- return this[s5];
115
- }, set(t7) {
116
- this[s5] = t7;
117
- } };
118
- return { get: e10, set(s6) {
119
- const h3 = e10?.call(this);
120
- r8?.call(this, s6), this.requestUpdate(t6, h3, i7);
121
- }, configurable: true, enumerable: true };
122
- }
123
- static getPropertyOptions(t6) {
124
- return this.elementProperties.get(t6) ?? b;
125
- }
126
- static _$Ei() {
127
- if (this.hasOwnProperty(d("elementProperties"))) return;
128
- const t6 = n2(this);
129
- t6.finalize(), void 0 !== t6.l && (this.l = [...t6.l]), this.elementProperties = new Map(t6.elementProperties);
130
- }
131
- static finalize() {
132
- if (this.hasOwnProperty(d("finalized"))) return;
133
- if (this.finalized = true, this._$Ei(), this.hasOwnProperty(d("properties"))) {
134
- const t7 = this.properties, s5 = [...r2(t7), ...o2(t7)];
135
- for (const i7 of s5) this.createProperty(i7, t7[i7]);
136
- }
137
- const t6 = this[Symbol.metadata];
138
- if (null !== t6) {
139
- const s5 = litPropertyMetadata.get(t6);
140
- if (void 0 !== s5) for (const [t7, i7] of s5) this.elementProperties.set(t7, i7);
141
- }
142
- this._$Eh = /* @__PURE__ */ new Map();
143
- for (const [t7, s5] of this.elementProperties) {
144
- const i7 = this._$Eu(t7, s5);
145
- void 0 !== i7 && this._$Eh.set(i7, t7);
146
- }
147
- this.elementStyles = this.finalizeStyles(this.styles);
148
- }
149
- static finalizeStyles(s5) {
150
- const i7 = [];
151
- if (Array.isArray(s5)) {
152
- const e10 = new Set(s5.flat(1 / 0).reverse());
153
- for (const s6 of e10) i7.unshift(c(s6));
154
- } else void 0 !== s5 && i7.push(c(s5));
155
- return i7;
156
- }
157
- static _$Eu(t6, s5) {
158
- const i7 = s5.attribute;
159
- return false === i7 ? void 0 : "string" == typeof i7 ? i7 : "string" == typeof t6 ? t6.toLowerCase() : void 0;
160
- }
161
- constructor() {
162
- super(), this._$Ep = void 0, this.isUpdatePending = false, this.hasUpdated = false, this._$Em = null, this._$Ev();
163
- }
164
- _$Ev() {
165
- this._$ES = new Promise(((t6) => this.enableUpdating = t6)), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), this.constructor.l?.forEach(((t6) => t6(this)));
166
- }
167
- addController(t6) {
168
- (this._$EO ?? (this._$EO = /* @__PURE__ */ new Set())).add(t6), void 0 !== this.renderRoot && this.isConnected && t6.hostConnected?.();
169
- }
170
- removeController(t6) {
171
- this._$EO?.delete(t6);
172
- }
173
- _$E_() {
174
- const t6 = /* @__PURE__ */ new Map(), s5 = this.constructor.elementProperties;
175
- for (const i7 of s5.keys()) this.hasOwnProperty(i7) && (t6.set(i7, this[i7]), delete this[i7]);
176
- t6.size > 0 && (this._$Ep = t6);
177
- }
178
- createRenderRoot() {
179
- const t6 = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
180
- return S(t6, this.constructor.elementStyles), t6;
181
- }
182
- connectedCallback() {
183
- this.renderRoot ?? (this.renderRoot = this.createRenderRoot()), this.enableUpdating(true), this._$EO?.forEach(((t6) => t6.hostConnected?.()));
184
- }
185
- enableUpdating(t6) {
186
- }
187
- disconnectedCallback() {
188
- this._$EO?.forEach(((t6) => t6.hostDisconnected?.()));
189
- }
190
- attributeChangedCallback(t6, s5, i7) {
191
- this._$AK(t6, i7);
192
- }
193
- _$ET(t6, s5) {
194
- const i7 = this.constructor.elementProperties.get(t6), e10 = this.constructor._$Eu(t6, i7);
195
- if (void 0 !== e10 && true === i7.reflect) {
196
- const h3 = (void 0 !== i7.converter?.toAttribute ? i7.converter : u).toAttribute(s5, i7.type);
197
- this._$Em = t6, null == h3 ? this.removeAttribute(e10) : this.setAttribute(e10, h3), this._$Em = null;
198
- }
199
- }
200
- _$AK(t6, s5) {
201
- const i7 = this.constructor, e10 = i7._$Eh.get(t6);
202
- if (void 0 !== e10 && this._$Em !== e10) {
203
- const t7 = i7.getPropertyOptions(e10), h3 = "function" == typeof t7.converter ? { fromAttribute: t7.converter } : void 0 !== t7.converter?.fromAttribute ? t7.converter : u;
204
- this._$Em = e10, this[e10] = h3.fromAttribute(s5, t7.type) ?? this._$Ej?.get(e10) ?? null, this._$Em = null;
205
- }
206
- }
207
- requestUpdate(t6, s5, i7) {
208
- if (void 0 !== t6) {
209
- const e10 = this.constructor, h3 = this[t6];
210
- if (i7 ?? (i7 = e10.getPropertyOptions(t6)), !((i7.hasChanged ?? f)(h3, s5) || i7.useDefault && i7.reflect && h3 === this._$Ej?.get(t6) && !this.hasAttribute(e10._$Eu(t6, i7)))) return;
211
- this.C(t6, s5, i7);
212
- }
213
- false === this.isUpdatePending && (this._$ES = this._$EP());
214
- }
215
- C(t6, s5, { useDefault: i7, reflect: e10, wrapped: h3 }, r8) {
216
- i7 && !(this._$Ej ?? (this._$Ej = /* @__PURE__ */ new Map())).has(t6) && (this._$Ej.set(t6, r8 ?? s5 ?? this[t6]), true !== h3 || void 0 !== r8) || (this._$AL.has(t6) || (this.hasUpdated || i7 || (s5 = void 0), this._$AL.set(t6, s5)), true === e10 && this._$Em !== t6 && (this._$Eq ?? (this._$Eq = /* @__PURE__ */ new Set())).add(t6));
217
- }
218
- async _$EP() {
219
- this.isUpdatePending = true;
220
- try {
221
- await this._$ES;
222
- } catch (t7) {
223
- Promise.reject(t7);
224
- }
225
- const t6 = this.scheduleUpdate();
226
- return null != t6 && await t6, !this.isUpdatePending;
227
- }
228
- scheduleUpdate() {
229
- return this.performUpdate();
230
- }
231
- performUpdate() {
232
- if (!this.isUpdatePending) return;
233
- if (!this.hasUpdated) {
234
- if (this.renderRoot ?? (this.renderRoot = this.createRenderRoot()), this._$Ep) {
235
- for (const [t8, s6] of this._$Ep) this[t8] = s6;
236
- this._$Ep = void 0;
237
- }
238
- const t7 = this.constructor.elementProperties;
239
- if (t7.size > 0) for (const [s6, i7] of t7) {
240
- const { wrapped: t8 } = i7, e10 = this[s6];
241
- true !== t8 || this._$AL.has(s6) || void 0 === e10 || this.C(s6, void 0, i7, e10);
242
- }
243
- }
244
- let t6 = false;
245
- const s5 = this._$AL;
246
- try {
247
- t6 = this.shouldUpdate(s5), t6 ? (this.willUpdate(s5), this._$EO?.forEach(((t7) => t7.hostUpdate?.())), this.update(s5)) : this._$EM();
248
- } catch (s6) {
249
- throw t6 = false, this._$EM(), s6;
250
- }
251
- t6 && this._$AE(s5);
252
- }
253
- willUpdate(t6) {
254
- }
255
- _$AE(t6) {
256
- this._$EO?.forEach(((t7) => t7.hostUpdated?.())), this.hasUpdated || (this.hasUpdated = true, this.firstUpdated(t6)), this.updated(t6);
257
- }
258
- _$EM() {
259
- this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = false;
260
- }
261
- get updateComplete() {
262
- return this.getUpdateComplete();
263
- }
264
- getUpdateComplete() {
265
- return this._$ES;
266
- }
267
- shouldUpdate(t6) {
268
- return true;
269
- }
270
- update(t6) {
271
- this._$Eq && (this._$Eq = this._$Eq.forEach(((t7) => this._$ET(t7, this[t7])))), this._$EM();
272
- }
273
- updated(t6) {
274
- }
275
- firstUpdated(t6) {
276
- }
277
- };
278
- y.elementStyles = [], y.shadowRootOptions = { mode: "open" }, y[d("elementProperties")] = /* @__PURE__ */ new Map(), y[d("finalized")] = /* @__PURE__ */ new Map(), p?.({ ReactiveElement: y }), (a.reactiveElementVersions ?? (a.reactiveElementVersions = [])).push("2.1.0");
279
-
280
- // ../../node_modules/lit-html/lit-html.js
281
- var t2 = globalThis;
282
- var i3 = t2.trustedTypes;
283
- var s2 = i3 ? i3.createPolicy("lit-html", { createHTML: (t6) => t6 }) : void 0;
284
- var e3 = "$lit$";
285
- var h2 = `lit$${Math.random().toFixed(9).slice(2)}$`;
286
- var o3 = "?" + h2;
287
- var n3 = `<${o3}>`;
288
- var r3 = document;
289
- var l2 = () => r3.createComment("");
290
- var c3 = (t6) => null === t6 || "object" != typeof t6 && "function" != typeof t6;
291
- var a2 = Array.isArray;
292
- var u2 = (t6) => a2(t6) || "function" == typeof t6?.[Symbol.iterator];
293
- var d2 = "[ \n\f\r]";
294
- var f2 = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g;
295
- var v = /-->/g;
296
- var _ = />/g;
297
- var m = RegExp(`>|${d2}(?:([^\\s"'>=/]+)(${d2}*=${d2}*(?:[^
298
- \f\r"'\`<>=]|("|')|))|$)`, "g");
299
- var p2 = /'/g;
300
- var g = /"/g;
301
- var $ = /^(?:script|style|textarea|title)$/i;
302
- var y2 = (t6) => (i7, ...s5) => ({ _$litType$: t6, strings: i7, values: s5 });
303
- var x = y2(1);
304
- var b2 = y2(2);
305
- var w = y2(3);
306
- var T = /* @__PURE__ */ Symbol.for("lit-noChange");
307
- var E = /* @__PURE__ */ Symbol.for("lit-nothing");
308
- var A = /* @__PURE__ */ new WeakMap();
309
- var C = r3.createTreeWalker(r3, 129);
310
- function P(t6, i7) {
311
- if (!a2(t6) || !t6.hasOwnProperty("raw")) throw Error("invalid template strings array");
312
- return void 0 !== s2 ? s2.createHTML(i7) : i7;
313
- }
314
- var V = (t6, i7) => {
315
- const s5 = t6.length - 1, o10 = [];
316
- let r8, l3 = 2 === i7 ? "<svg>" : 3 === i7 ? "<math>" : "", c5 = f2;
317
- for (let i8 = 0; i8 < s5; i8++) {
318
- const s6 = t6[i8];
319
- let a3, u5, d3 = -1, y3 = 0;
320
- for (; y3 < s6.length && (c5.lastIndex = y3, u5 = c5.exec(s6), null !== u5); ) y3 = c5.lastIndex, c5 === f2 ? "!--" === u5[1] ? c5 = v : void 0 !== u5[1] ? c5 = _ : void 0 !== u5[2] ? ($.test(u5[2]) && (r8 = RegExp("</" + u5[2], "g")), c5 = m) : void 0 !== u5[3] && (c5 = m) : c5 === m ? ">" === u5[0] ? (c5 = r8 ?? f2, d3 = -1) : void 0 === u5[1] ? d3 = -2 : (d3 = c5.lastIndex - u5[2].length, a3 = u5[1], c5 = void 0 === u5[3] ? m : '"' === u5[3] ? g : p2) : c5 === g || c5 === p2 ? c5 = m : c5 === v || c5 === _ ? c5 = f2 : (c5 = m, r8 = void 0);
321
- const x2 = c5 === m && t6[i8 + 1].startsWith("/>") ? " " : "";
322
- l3 += c5 === f2 ? s6 + n3 : d3 >= 0 ? (o10.push(a3), s6.slice(0, d3) + e3 + s6.slice(d3) + h2 + x2) : s6 + h2 + (-2 === d3 ? i8 : x2);
323
- }
324
- return [P(t6, l3 + (t6[s5] || "<?>") + (2 === i7 ? "</svg>" : 3 === i7 ? "</math>" : "")), o10];
325
- };
326
- var N = class _N {
327
- constructor({ strings: t6, _$litType$: s5 }, n5) {
328
- let r8;
329
- this.parts = [];
330
- let c5 = 0, a3 = 0;
331
- const u5 = t6.length - 1, d3 = this.parts, [f3, v3] = V(t6, s5);
332
- if (this.el = _N.createElement(f3, n5), C.currentNode = this.el.content, 2 === s5 || 3 === s5) {
333
- const t7 = this.el.content.firstChild;
334
- t7.replaceWith(...t7.childNodes);
335
- }
336
- for (; null !== (r8 = C.nextNode()) && d3.length < u5; ) {
337
- if (1 === r8.nodeType) {
338
- if (r8.hasAttributes()) for (const t7 of r8.getAttributeNames()) if (t7.endsWith(e3)) {
339
- const i7 = v3[a3++], s6 = r8.getAttribute(t7).split(h2), e10 = /([.?@])?(.*)/.exec(i7);
340
- d3.push({ type: 1, index: c5, name: e10[2], strings: s6, ctor: "." === e10[1] ? H : "?" === e10[1] ? I : "@" === e10[1] ? L : k }), r8.removeAttribute(t7);
341
- } else t7.startsWith(h2) && (d3.push({ type: 6, index: c5 }), r8.removeAttribute(t7));
342
- if ($.test(r8.tagName)) {
343
- const t7 = r8.textContent.split(h2), s6 = t7.length - 1;
344
- if (s6 > 0) {
345
- r8.textContent = i3 ? i3.emptyScript : "";
346
- for (let i7 = 0; i7 < s6; i7++) r8.append(t7[i7], l2()), C.nextNode(), d3.push({ type: 2, index: ++c5 });
347
- r8.append(t7[s6], l2());
348
- }
349
- }
350
- } else if (8 === r8.nodeType) if (r8.data === o3) d3.push({ type: 2, index: c5 });
351
- else {
352
- let t7 = -1;
353
- for (; -1 !== (t7 = r8.data.indexOf(h2, t7 + 1)); ) d3.push({ type: 7, index: c5 }), t7 += h2.length - 1;
354
- }
355
- c5++;
356
- }
357
- }
358
- static createElement(t6, i7) {
359
- const s5 = r3.createElement("template");
360
- return s5.innerHTML = t6, s5;
361
- }
362
- };
363
- function S2(t6, i7, s5 = t6, e10) {
364
- if (i7 === T) return i7;
365
- let h3 = void 0 !== e10 ? s5._$Co?.[e10] : s5._$Cl;
366
- const o10 = c3(i7) ? void 0 : i7._$litDirective$;
367
- return h3?.constructor !== o10 && (h3?._$AO?.(false), void 0 === o10 ? h3 = void 0 : (h3 = new o10(t6), h3._$AT(t6, s5, e10)), void 0 !== e10 ? (s5._$Co ?? (s5._$Co = []))[e10] = h3 : s5._$Cl = h3), void 0 !== h3 && (i7 = S2(t6, h3._$AS(t6, i7.values), h3, e10)), i7;
368
- }
369
- var M = class {
370
- constructor(t6, i7) {
371
- this._$AV = [], this._$AN = void 0, this._$AD = t6, this._$AM = i7;
372
- }
373
- get parentNode() {
374
- return this._$AM.parentNode;
375
- }
376
- get _$AU() {
377
- return this._$AM._$AU;
378
- }
379
- u(t6) {
380
- const { el: { content: i7 }, parts: s5 } = this._$AD, e10 = (t6?.creationScope ?? r3).importNode(i7, true);
381
- C.currentNode = e10;
382
- let h3 = C.nextNode(), o10 = 0, n5 = 0, l3 = s5[0];
383
- for (; void 0 !== l3; ) {
384
- if (o10 === l3.index) {
385
- let i8;
386
- 2 === l3.type ? i8 = new R(h3, h3.nextSibling, this, t6) : 1 === l3.type ? i8 = new l3.ctor(h3, l3.name, l3.strings, this, t6) : 6 === l3.type && (i8 = new z(h3, this, t6)), this._$AV.push(i8), l3 = s5[++n5];
387
- }
388
- o10 !== l3?.index && (h3 = C.nextNode(), o10++);
389
- }
390
- return C.currentNode = r3, e10;
391
- }
392
- p(t6) {
393
- let i7 = 0;
394
- for (const s5 of this._$AV) void 0 !== s5 && (void 0 !== s5.strings ? (s5._$AI(t6, s5, i7), i7 += s5.strings.length - 2) : s5._$AI(t6[i7])), i7++;
395
- }
396
- };
397
- var R = class _R {
398
- get _$AU() {
399
- return this._$AM?._$AU ?? this._$Cv;
400
- }
401
- constructor(t6, i7, s5, e10) {
402
- this.type = 2, this._$AH = E, this._$AN = void 0, this._$AA = t6, this._$AB = i7, this._$AM = s5, this.options = e10, this._$Cv = e10?.isConnected ?? true;
403
- }
404
- get parentNode() {
405
- let t6 = this._$AA.parentNode;
406
- const i7 = this._$AM;
407
- return void 0 !== i7 && 11 === t6?.nodeType && (t6 = i7.parentNode), t6;
408
- }
409
- get startNode() {
410
- return this._$AA;
411
- }
412
- get endNode() {
413
- return this._$AB;
414
- }
415
- _$AI(t6, i7 = this) {
416
- t6 = S2(this, t6, i7), c3(t6) ? t6 === E || null == t6 || "" === t6 ? (this._$AH !== E && this._$AR(), this._$AH = E) : t6 !== this._$AH && t6 !== T && this._(t6) : void 0 !== t6._$litType$ ? this.$(t6) : void 0 !== t6.nodeType ? this.T(t6) : u2(t6) ? this.k(t6) : this._(t6);
417
- }
418
- O(t6) {
419
- return this._$AA.parentNode.insertBefore(t6, this._$AB);
420
- }
421
- T(t6) {
422
- this._$AH !== t6 && (this._$AR(), this._$AH = this.O(t6));
423
- }
424
- _(t6) {
425
- this._$AH !== E && c3(this._$AH) ? this._$AA.nextSibling.data = t6 : this.T(r3.createTextNode(t6)), this._$AH = t6;
426
- }
427
- $(t6) {
428
- const { values: i7, _$litType$: s5 } = t6, e10 = "number" == typeof s5 ? this._$AC(t6) : (void 0 === s5.el && (s5.el = N.createElement(P(s5.h, s5.h[0]), this.options)), s5);
429
- if (this._$AH?._$AD === e10) this._$AH.p(i7);
430
- else {
431
- const t7 = new M(e10, this), s6 = t7.u(this.options);
432
- t7.p(i7), this.T(s6), this._$AH = t7;
433
- }
434
- }
435
- _$AC(t6) {
436
- let i7 = A.get(t6.strings);
437
- return void 0 === i7 && A.set(t6.strings, i7 = new N(t6)), i7;
438
- }
439
- k(t6) {
440
- a2(this._$AH) || (this._$AH = [], this._$AR());
441
- const i7 = this._$AH;
442
- let s5, e10 = 0;
443
- for (const h3 of t6) e10 === i7.length ? i7.push(s5 = new _R(this.O(l2()), this.O(l2()), this, this.options)) : s5 = i7[e10], s5._$AI(h3), e10++;
444
- e10 < i7.length && (this._$AR(s5 && s5._$AB.nextSibling, e10), i7.length = e10);
445
- }
446
- _$AR(t6 = this._$AA.nextSibling, i7) {
447
- for (this._$AP?.(false, true, i7); t6 && t6 !== this._$AB; ) {
448
- const i8 = t6.nextSibling;
449
- t6.remove(), t6 = i8;
450
- }
451
- }
452
- setConnected(t6) {
453
- void 0 === this._$AM && (this._$Cv = t6, this._$AP?.(t6));
454
- }
455
- };
456
- var k = class {
457
- get tagName() {
458
- return this.element.tagName;
459
- }
460
- get _$AU() {
461
- return this._$AM._$AU;
462
- }
463
- constructor(t6, i7, s5, e10, h3) {
464
- this.type = 1, this._$AH = E, this._$AN = void 0, this.element = t6, this.name = i7, this._$AM = e10, this.options = h3, s5.length > 2 || "" !== s5[0] || "" !== s5[1] ? (this._$AH = Array(s5.length - 1).fill(new String()), this.strings = s5) : this._$AH = E;
465
- }
466
- _$AI(t6, i7 = this, s5, e10) {
467
- const h3 = this.strings;
468
- let o10 = false;
469
- if (void 0 === h3) t6 = S2(this, t6, i7, 0), o10 = !c3(t6) || t6 !== this._$AH && t6 !== T, o10 && (this._$AH = t6);
470
- else {
471
- const e11 = t6;
472
- let n5, r8;
473
- for (t6 = h3[0], n5 = 0; n5 < h3.length - 1; n5++) r8 = S2(this, e11[s5 + n5], i7, n5), r8 === T && (r8 = this._$AH[n5]), o10 || (o10 = !c3(r8) || r8 !== this._$AH[n5]), r8 === E ? t6 = E : t6 !== E && (t6 += (r8 ?? "") + h3[n5 + 1]), this._$AH[n5] = r8;
474
- }
475
- o10 && !e10 && this.j(t6);
476
- }
477
- j(t6) {
478
- t6 === E ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t6 ?? "");
479
- }
480
- };
481
- var H = class extends k {
482
- constructor() {
483
- super(...arguments), this.type = 3;
484
- }
485
- j(t6) {
486
- this.element[this.name] = t6 === E ? void 0 : t6;
487
- }
488
- };
489
- var I = class extends k {
490
- constructor() {
491
- super(...arguments), this.type = 4;
492
- }
493
- j(t6) {
494
- this.element.toggleAttribute(this.name, !!t6 && t6 !== E);
495
- }
496
- };
497
- var L = class extends k {
498
- constructor(t6, i7, s5, e10, h3) {
499
- super(t6, i7, s5, e10, h3), this.type = 5;
500
- }
501
- _$AI(t6, i7 = this) {
502
- if ((t6 = S2(this, t6, i7, 0) ?? E) === T) return;
503
- const s5 = this._$AH, e10 = t6 === E && s5 !== E || t6.capture !== s5.capture || t6.once !== s5.once || t6.passive !== s5.passive, h3 = t6 !== E && (s5 === E || e10);
504
- e10 && this.element.removeEventListener(this.name, this, s5), h3 && this.element.addEventListener(this.name, this, t6), this._$AH = t6;
505
- }
506
- handleEvent(t6) {
507
- "function" == typeof this._$AH ? this._$AH.call(this.options?.host ?? this.element, t6) : this._$AH.handleEvent(t6);
508
- }
509
- };
510
- var z = class {
511
- constructor(t6, i7, s5) {
512
- this.element = t6, this.type = 6, this._$AN = void 0, this._$AM = i7, this.options = s5;
513
- }
514
- get _$AU() {
515
- return this._$AM._$AU;
516
- }
517
- _$AI(t6) {
518
- S2(this, t6);
519
- }
520
- };
521
- var Z = { M: e3, P: h2, A: o3, C: 1, L: V, R: M, D: u2, V: S2, I: R, H: k, N: I, U: L, B: H, F: z };
522
- var j = t2.litHtmlPolyfillSupport;
523
- j?.(N, R), (t2.litHtmlVersions ?? (t2.litHtmlVersions = [])).push("3.3.0");
524
- var B = (t6, i7, s5) => {
525
- const e10 = s5?.renderBefore ?? i7;
526
- let h3 = e10._$litPart$;
527
- if (void 0 === h3) {
528
- const t7 = s5?.renderBefore ?? null;
529
- e10._$litPart$ = h3 = new R(i7.insertBefore(l2(), t7), t7, void 0, s5 ?? {});
530
- }
531
- return h3._$AI(t6), h3;
532
- };
533
-
534
- // ../../node_modules/lit-element/lit-element.js
535
- var s3 = globalThis;
536
- var i4 = class extends y {
537
- constructor() {
538
- super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0;
539
- }
540
- createRenderRoot() {
541
- var _a;
542
- const t6 = super.createRenderRoot();
543
- return (_a = this.renderOptions).renderBefore ?? (_a.renderBefore = t6.firstChild), t6;
544
- }
545
- update(t6) {
546
- const r8 = this.render();
547
- this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t6), this._$Do = B(r8, this.renderRoot, this.renderOptions);
548
- }
549
- connectedCallback() {
550
- super.connectedCallback(), this._$Do?.setConnected(true);
551
- }
552
- disconnectedCallback() {
553
- super.disconnectedCallback(), this._$Do?.setConnected(false);
554
- }
555
- render() {
556
- return T;
557
- }
558
- };
559
- i4._$litElement$ = true, i4["finalized"] = true, s3.litElementHydrateSupport?.({ LitElement: i4 });
560
- var o4 = s3.litElementPolyfillSupport;
561
- o4?.({ LitElement: i4 });
562
- (s3.litElementVersions ?? (s3.litElementVersions = [])).push("4.2.0");
563
-
564
- // ../../node_modules/@lit/reactive-element/decorators/property.js
565
- var o5 = { attribute: true, type: String, converter: u, reflect: false, hasChanged: f };
566
- var r4 = (t6 = o5, e10, r8) => {
567
- const { kind: n5, metadata: i7 } = r8;
568
- let s5 = globalThis.litPropertyMetadata.get(i7);
569
- if (void 0 === s5 && globalThis.litPropertyMetadata.set(i7, s5 = /* @__PURE__ */ new Map()), "setter" === n5 && ((t6 = Object.create(t6)).wrapped = true), s5.set(r8.name, t6), "accessor" === n5) {
570
- const { name: o10 } = r8;
571
- return { set(r9) {
572
- const n6 = e10.get.call(this);
573
- e10.set.call(this, r9), this.requestUpdate(o10, n6, t6);
574
- }, init(e11) {
575
- return void 0 !== e11 && this.C(o10, void 0, t6, e11), e11;
576
- } };
577
- }
578
- if ("setter" === n5) {
579
- const { name: o10 } = r8;
580
- return function(r9) {
581
- const n6 = this[o10];
582
- e10.call(this, r9), this.requestUpdate(o10, n6, t6);
583
- };
584
- }
585
- throw Error("Unsupported decorator location: " + n5);
586
- };
587
- function n4(t6) {
588
- return (e10, o10) => "object" == typeof o10 ? r4(t6, e10, o10) : ((t7, e11, o11) => {
589
- const r8 = e11.hasOwnProperty(o11);
590
- return e11.constructor.createProperty(o11, t7), r8 ? Object.getOwnPropertyDescriptor(e11, o11) : void 0;
591
- })(t6, e10, o10);
592
- }
593
-
594
- // ../../node_modules/@lit/reactive-element/decorators/state.js
595
- function r5(r8) {
596
- return n4({ ...r8, state: true, attribute: false });
597
- }
598
-
599
- // ../../node_modules/@lit/reactive-element/decorators/base.js
600
- var e4 = (e10, t6, c5) => (c5.configurable = true, c5.enumerable = true, Reflect.decorate && "object" != typeof t6 && Object.defineProperty(e10, t6, c5), c5);
601
-
602
- // ../../node_modules/@lit/reactive-element/decorators/query.js
603
- function e5(e10, r8) {
604
- return (n5, s5, i7) => {
605
- const o10 = (t6) => t6.renderRoot?.querySelector(e10) ?? null;
606
- if (r8) {
607
- const { get: e11, set: r9 } = "object" == typeof s5 ? n5 : i7 ?? /* @__PURE__ */ (() => {
608
- const t6 = /* @__PURE__ */ Symbol();
609
- return { get() {
610
- return this[t6];
611
- }, set(e12) {
612
- this[t6] = e12;
613
- } };
614
- })();
615
- return e4(n5, s5, { get() {
616
- let t6 = e11.call(this);
617
- return void 0 === t6 && (t6 = o10(this), (null !== t6 || this.hasUpdated) && r9.call(this, t6)), t6;
618
- } });
619
- }
620
- return e4(n5, s5, { get() {
621
- return o10(this);
622
- } });
623
- };
624
- }
625
-
626
- // ../../node_modules/@lit/reactive-element/decorators/query-all.js
627
- var e6;
628
- function r6(r8) {
629
- return (n5, o10) => e4(n5, o10, { get() {
630
- return (this.renderRoot ?? (e6 ?? (e6 = document.createDocumentFragment()))).querySelectorAll(r8);
631
- } });
632
- }
633
-
634
- // ../../node_modules/@lit/reactive-element/decorators/query-assigned-elements.js
635
- function o6(o10) {
636
- return (e10, n5) => {
637
- const { slot: r8, selector: s5 } = o10 ?? {}, c5 = "slot" + (r8 ? `[name=${r8}]` : ":not([name])");
638
- return e4(e10, n5, { get() {
639
- const t6 = this.renderRoot?.querySelector(c5), e11 = t6?.assignedElements(o10) ?? [];
640
- return void 0 === s5 ? e11 : e11.filter(((t7) => t7.matches(s5)));
641
- } });
642
- };
643
- }
644
-
645
- // ../../node_modules/lit-html/directive.js
646
- var t3 = { ATTRIBUTE: 1, CHILD: 2, PROPERTY: 3, BOOLEAN_ATTRIBUTE: 4, EVENT: 5, ELEMENT: 6 };
647
- var e7 = (t6) => (...e10) => ({ _$litDirective$: t6, values: e10 });
648
- var i5 = class {
649
- constructor(t6) {
650
- }
651
- get _$AU() {
652
- return this._$AM._$AU;
653
- }
654
- _$AT(t6, e10, i7) {
655
- this._$Ct = t6, this._$AM = e10, this._$Ci = i7;
656
- }
657
- _$AS(t6, e10) {
658
- return this.update(t6, e10);
659
- }
660
- update(t6, e10) {
661
- return this.render(...e10);
662
- }
663
- };
664
-
665
- // ../../node_modules/lit-html/directives/unsafe-html.js
666
- var e8 = class extends i5 {
667
- constructor(i7) {
668
- if (super(i7), this.it = E, i7.type !== t3.CHILD) throw Error(this.constructor.directiveName + "() can only be used in child bindings");
669
- }
670
- render(r8) {
671
- if (r8 === E || null == r8) return this._t = void 0, this.it = r8;
672
- if (r8 === T) return r8;
673
- if ("string" != typeof r8) throw Error(this.constructor.directiveName + "() called with a non-string value");
674
- if (r8 === this.it) return this._t;
675
- this.it = r8;
676
- const s5 = [r8];
677
- return s5.raw = s5, this._t = { _$litType$: this.constructor.resultType, strings: s5, values: [] };
678
- }
679
- };
680
- e8.directiveName = "unsafeHTML", e8.resultType = 1;
681
- var o7 = e7(e8);
682
-
683
- // ../../node_modules/lit-html/directives/unsafe-svg.js
684
- var t4 = class extends e8 {
685
- };
686
- t4.directiveName = "unsafeSVG", t4.resultType = 2;
687
- var o8 = e7(t4);
688
-
689
- // ../icons/dist/esm/src/icons/alert.js
690
- var alert = `<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
691
- <path fill-rule="evenodd" clip-rule="evenodd" d="M10 20C15.5228 20 20 15.5228 20 10C20 4.47715 15.5228 0 10 0C4.47715 0 0 4.47715 0 10C0 15.5228 4.47715 20 10 20ZM9.25 5.75C9.25 5.33579 9.58579 5 10 5C10.4142 5 10.75 5.33579 10.75 5.75V11.25C10.75 11.6642 10.4142 12 10 12C9.58579 12 9.25 11.6642 9.25 11.25V5.75ZM10.75 13.75C10.75 14.1642 10.4142 14.5 10 14.5C9.58579 14.5 9.25 14.1642 9.25 13.75C9.25 13.3358 9.58579 13 10 13C10.4142 13 10.75 13.3358 10.75 13.75Z" fill="currentColor"/>
692
- </svg>`;
693
-
694
- // ../icons/dist/esm/src/icons/campaigns.js
695
- var campaigns = `<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
696
- <path fill-rule="evenodd" clip-rule="evenodd" d="M13.75 11C13.75 9.47056 14.1646 8.11984 14.7956 7.17338C15.1658 6.61803 15.5905 6.22612 16.0341 5.99602L17.0795 5.75165C17.8298 5.78274 18.5916 6.25415 19.2044 7.17338C19.8354 8.11984 20.25 9.47056 20.25 11C20.25 12.5294 19.8354 13.8802 19.2044 14.8266C18.5916 15.7458 17.8298 16.2173 17.0794 16.2484L16.0341 16.004C15.5905 15.7739 15.1659 15.382 14.7956 14.8266C14.1646 13.8802 13.75 12.5294 13.75 11ZM12.25 11C12.25 9.3468 12.6627 7.80949 13.373 6.61808L5.48783 8.46138C4.46994 8.69932 3.75 9.60698 3.75 10.6523V11.3477C3.75 12.393 4.46994 13.3007 5.48783 13.5386L13.373 15.3819C12.6627 14.1905 12.25 12.6532 12.25 11ZM5.14639 7.00075L15.5263 4.57427C15.9817 4.36663 16.4756 4.25 17 4.25C18.4334 4.25 19.6392 5.12146 20.4525 6.34133C21.2692 7.56645 21.75 9.21573 21.75 11C21.75 12.7843 21.2692 14.4335 20.4525 15.6587C19.6392 16.8785 18.4334 17.75 17 17.75C16.4756 17.75 15.9817 17.6334 15.5263 17.4257L11.75 16.5429V17.5C11.75 19.2949 10.2949 20.75 8.5 20.75C6.70507 20.75 5.25 19.2949 5.25 17.5V15.0235L5.14639 14.9992C3.4499 14.6027 2.25 13.0899 2.25 11.3477V10.6523C2.25 8.91009 3.4499 7.39734 5.14639 7.00075ZM6.75 15.3741V17.5C6.75 18.4665 7.5335 19.25 8.5 19.25C9.4665 19.25 10.25 18.4665 10.25 17.5V16.1923L6.75 15.3741Z" />
697
- </svg>`;
698
-
699
- // ../icons/dist/esm/src/icons/channels.js
700
- var channels = `<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
701
- <path d="M18 3C19.6569 3 21 4.34315 21 6C21 7.65685 19.6569 9 18 9C17.4435 9 16.9243 8.84513 16.4775 8.58105L15.3076 9.75098C15.7443 10.3919 16 11.166 16 12C16 12.8334 15.7437 13.6064 15.3076 14.2471L16.4775 15.417C16.9241 15.1532 17.4438 15 18 15C19.6569 15 21 16.3431 21 18C21 19.6569 19.6569 21 18 21C16.3431 21 15 19.6569 15 18C15 17.4438 15.1532 16.9241 15.417 16.4775L14.2471 15.3076C13.6064 15.7437 12.8334 16 12 16C11.166 16 10.3919 15.7443 9.75098 15.3076L8.58105 16.4775C8.84513 16.9243 9 17.4435 9 18C9 19.6569 7.65685 21 6 21C4.34315 21 3 19.6569 3 18C3 16.3431 4.34315 15 6 15C6.55558 15 7.07429 15.1538 7.52051 15.417L8.69141 14.2471C8.2555 13.6065 8 12.8332 8 12C8 11.1665 8.25523 10.3927 8.69141 9.75195L7.52148 8.58203C7.07501 8.84569 6.55606 9 6 9C4.34315 9 3 7.65685 3 6C3 4.34315 4.34315 3 6 3C7.65685 3 9 4.34315 9 6C9 6.55606 8.84569 7.07501 8.58203 7.52148L9.75195 8.69141C9.73784 8.70101 9.72394 8.71092 9.70996 8.7207C10.3587 8.26679 11.1481 8 12 8C12.833 8 13.6066 8.25472 14.2471 8.69043L15.417 7.52051C15.1538 7.07429 15 6.55558 15 6C15 4.34315 16.3431 3 18 3ZM6 16.5C5.17157 16.5 4.5 17.1716 4.5 18C4.5 18.8284 5.17157 19.5 6 19.5C6.82843 19.5 7.5 18.8284 7.5 18C7.5 17.1716 6.82843 16.5 6 16.5ZM18 16.5C17.1716 16.5 16.5 17.1716 16.5 18C16.5 18.8284 17.1716 19.5 18 19.5C18.8284 19.5 19.5 18.8284 19.5 18C19.5 17.1716 18.8284 16.5 18 16.5ZM12 9.5C10.6193 9.5 9.5 10.6193 9.5 12C9.5 13.3807 10.6193 14.5 12 14.5C13.3807 14.5 14.5 13.3807 14.5 12C14.5 10.6193 13.3807 9.5 12 9.5ZM6 4.5C5.17157 4.5 4.5 5.17157 4.5 6C4.5 6.82843 5.17157 7.5 6 7.5C6.82843 7.5 7.5 6.82843 7.5 6C7.5 5.17157 6.82843 4.5 6 4.5ZM18 4.5C17.1716 4.5 16.5 5.17157 16.5 6C16.5 6.82843 17.1716 7.5 18 7.5C18.8284 7.5 19.5 6.82843 19.5 6C19.5 5.17157 18.8284 4.5 18 4.5Z" />
702
- </svg>`;
703
-
704
- // ../icons/dist/esm/src/icons/chevron-down.js
705
- var chevronDown = `
706
- <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="currentColor" class="bi bi-chevron-down chevron-down"
707
- viewBox="0 0 16 16" role="presentation">
708
- <path fill-rule="evenodd"
709
- d="M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z"
710
- stroke="currentColor"/>
711
- </svg>`;
712
-
713
- // ../icons/dist/esm/src/icons/external.js
714
- var external = `<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
715
- <path d="M6 2C6.41421 2 6.75 2.33579 6.75 2.75C6.75 3.16421 6.41421 3.5 6 3.5H4.75C4.05964 3.5 3.5 4.05964 3.5 4.75V11.25C3.5 11.9404 4.05964 12.5 4.75 12.5H11.25C11.9404 12.5 12.5 11.9404 12.5 11.25V10C12.5 9.58579 12.8358 9.25 13.25 9.25C13.6642 9.25 14 9.58579 14 10V11.25C14 12.7688 12.7688 14 11.25 14H4.75C3.23122 14 2 12.7688 2 11.25V4.75C2 3.23122 3.23122 2 4.75 2H6ZM14 6C14 6.41421 13.6642 6.75 13.25 6.75C12.8358 6.75 12.5 6.41421 12.5 6V4.56055L8.03027 9.03027C7.73738 9.32317 7.26262 9.32317 6.96973 9.03027C6.67683 8.73738 6.67683 8.26262 6.96973 7.96973L11.4395 3.5H10C9.58579 3.5 9.25 3.16421 9.25 2.75C9.25 2.33579 9.58579 2 10 2H14V6Z" fill="currentColor"/>
716
- </svg>`;
717
-
718
- // ../icons/dist/esm/src/icons/gear.js
719
- var gear = `<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
720
- <path d="M13.4678 2C13.9142 2.00002 14.307 2.2963 14.4297 2.72559L15.0049 4.74219L16.8398 3.72363C17.1813 3.53396 17.5973 3.56262 17.9072 3.78418L18.0332 3.89062L20.1084 5.9668C20.4241 6.2825 20.4932 6.76987 20.2764 7.16016L19.2568 8.99316L21.2744 9.57031C21.6502 9.67769 21.9239 9.9921 21.9863 10.3682L22 10.5322V13.4678C22 13.9142 21.7037 14.307 21.2744 14.4297L19.2568 15.0049L20.2764 16.8398C20.4661 17.1813 20.4374 17.5972 20.2158 17.9072L20.1094 18.0332L18.0332 20.1084C17.7175 20.4241 17.2301 20.4932 16.8398 20.2764L15.0049 19.2568L14.4297 21.2744C14.3223 21.6502 14.0079 21.9239 13.6318 21.9863L13.4678 22H10.5322C10.0858 22 9.69297 21.7037 9.57031 21.2744L8.99316 19.2568L7.16016 20.2764C6.81867 20.466 6.40275 20.4374 6.09277 20.2158L5.9668 20.1094L3.8916 18.0332C3.5759 17.7175 3.50683 17.2301 3.72363 16.8398L4.74219 15.0059L2.72559 14.4297C2.34982 14.3223 2.07606 14.0079 2.01367 13.6318L2 13.4678V10.5322C2.00005 10.0858 2.29632 9.69296 2.72559 9.57031L4.74219 8.99316L3.72363 7.16016C3.53394 6.81866 3.5626 6.40276 3.78418 6.09277L3.89062 5.9668L5.9668 3.8916C6.28251 3.57589 6.76986 3.5068 7.16016 3.72363L8.99316 4.74219L9.57031 2.72559C9.67768 2.34981 9.99209 2.07606 10.3682 2.01367L10.5322 2H13.4678ZM10.4014 5.27148C9.70554 5.47089 9.05368 5.77388 8.46484 6.16504L6.76074 5.21875L5.21777 6.76074L6.22363 8.57031L6.23242 8.56738C5.91398 9.13213 5.67275 9.74545 5.52051 10.3936L5.49023 10.3398L3.5 10.9092V13.0908L5.49121 13.6592L5.52051 13.6055C5.67256 14.2532 5.91338 14.8662 6.23145 15.4307L6.22363 15.4287L5.21875 17.2393L5.21777 17.2383V17.2393H5.21875L6.76074 18.7822L8.46484 17.834C9.05398 18.2254 9.7061 18.5281 10.4023 18.7275L10.9092 20.5H13.0908L13.5488 18.8916C14.3898 18.7443 15.1787 18.4482 15.8877 18.0293L17.2393 18.7812L18.7822 17.2393L18.085 15.9863C18.6037 15.2393 18.9814 14.3876 19.1777 13.4678L20.5 13.0908V10.9092L19.1777 10.5303C18.9812 9.61065 18.6038 8.75856 18.085 8.01172L18.7812 6.76074L17.2393 5.21777L15.8857 5.96875C15.1773 5.55053 14.389 5.25458 13.5488 5.10742L13.0908 3.5H10.9092L10.4014 5.27148ZM12 8C14.2091 8 16 9.79086 16 12C16 14.2091 14.2091 16 12 16C9.79086 16 8 14.2091 8 12C8 9.79086 9.79086 8 12 8ZM12 9.5C10.6193 9.5 9.5 10.6193 9.5 12C9.5 13.3807 10.6193 14.5 12 14.5C13.3807 14.5 14.5 13.3807 14.5 12C14.5 10.6193 13.3807 9.5 12 9.5Z" />
721
- <path d="M13.6328 2.01367C14.0085 2.07631 14.3224 2.35007 14.4297 2.72559L15.0049 4.74219L16.8398 3.72363C17.1813 3.53396 17.5973 3.56262 17.9072 3.78418L18.0332 3.89062L20.1084 5.9668L20.2158 6.09277C20.4372 6.40274 20.466 6.81875 20.2764 7.16016L19.2568 8.99316L21.2744 9.57031C21.6502 9.67769 21.9239 9.9921 21.9863 10.3682L22 10.5322V13.4678L21.9863 13.6328C21.9237 14.0085 21.6499 14.3224 21.2744 14.4297L19.2568 15.0049L20.2764 16.8398C20.4661 17.1813 20.4374 17.5972 20.2158 17.9072L20.1094 18.0332L18.0332 20.1084L17.9072 20.2158C17.5973 20.4372 17.1813 20.466 16.8398 20.2764L15.0049 19.2568L14.4297 21.2744C14.3223 21.6502 14.0079 21.9239 13.6318 21.9863L13.4678 22H10.5322L10.3672 21.9863C9.99146 21.9237 9.6776 21.6499 9.57031 21.2744L8.99316 19.2568L7.16016 20.2764C6.81867 20.466 6.40275 20.4374 6.09277 20.2158L5.9668 20.1094L3.8916 18.0332L3.78418 17.9072C3.56278 17.5973 3.53398 17.1812 3.72363 16.8398L4.74219 15.0059L2.72559 14.4297C2.34982 14.3223 2.07606 14.0079 2.01367 13.6318L2 13.4678V10.5322L2.01367 10.3672C2.07633 9.99149 2.35009 9.6776 2.72559 9.57031L4.74219 8.99316L3.72363 7.16016C3.53394 6.81866 3.5626 6.40276 3.78418 6.09277L3.89062 5.9668L5.9668 3.8916L6.09277 3.78418C6.40275 3.56277 6.81875 3.53396 7.16016 3.72363L8.99316 4.74219L9.57031 2.72559C9.67768 2.34981 9.99209 2.07606 10.3682 2.01367L10.5322 2H13.4678L13.6328 2.01367ZM10.4014 5.27148C9.70554 5.47089 9.05368 5.77388 8.46484 6.16504L6.76074 5.21875L5.21777 6.76074L6.22363 8.57031L6.23242 8.56738C5.91398 9.13213 5.67275 9.74545 5.52051 10.3936L5.49023 10.3398L3.5 10.9092V13.0908L5.49121 13.6592L5.52051 13.6055C5.67256 14.2532 5.91338 14.8662 6.23145 15.4307L6.22363 15.4287L5.21875 17.2393L5.21777 17.2383V17.2393H5.21875L6.76074 18.7822L8.46484 17.834C9.05398 18.2254 9.7061 18.5281 10.4023 18.7275L10.9092 20.5H13.0908L13.5488 18.8916C14.3898 18.7443 15.1787 18.4482 15.8877 18.0293L17.2393 18.7812L18.7822 17.2393L18.085 15.9863C18.6037 15.2393 18.9814 14.3876 19.1777 13.4678L20.5 13.0908V10.9092L19.1777 10.5303C18.9812 9.61065 18.6038 8.75856 18.085 8.01172L18.7812 6.76074L17.2393 5.21777L15.8857 5.96875C15.1773 5.55053 14.389 5.25458 13.5488 5.10742L13.0908 3.5H10.9092L10.4014 5.27148ZM12 8C14.2091 8 16 9.79086 16 12C16 14.2091 14.2091 16 12 16C9.79086 16 8 14.2091 8 12C8 9.79086 9.79086 8 12 8ZM12 9.5C10.6193 9.5 9.5 10.6193 9.5 12C9.5 13.3807 10.6193 14.5 12 14.5C13.3807 14.5 14.5 13.3807 14.5 12C14.5 10.6193 13.3807 9.5 12 9.5Z" />
722
- </svg>`;
723
-
724
- // ../icons/dist/esm/src/icons/graph.js
725
- var graph = `<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
726
- <path d="M18.1543 3.00391C19.7394 3.08421 21 4.39489 21 6V18L20.9961 18.1543C20.9184 19.6883 19.6883 20.9184 18.1543 20.9961L18 21H6C4.39489 21 3.08421 19.7394 3.00391 18.1543L3 18V6C3 4.34315 4.34315 3 6 3H18L18.1543 3.00391ZM6 4.5C5.17157 4.5 4.5 5.17157 4.5 6V18C4.5 18.8284 5.17157 19.5 6 19.5H18C18.8284 19.5 19.5 18.8284 19.5 18V6C19.5 5.17157 18.8284 4.5 18 4.5H6ZM8 9C8.41421 9 8.75 9.33579 8.75 9.75V16.25C8.75 16.6642 8.41421 17 8 17C7.58579 17 7.25 16.6642 7.25 16.25V9.75C7.25 9.33579 7.58579 9 8 9ZM12 12C12.4142 12 12.75 12.3358 12.75 12.75V16.25C12.75 16.6642 12.4142 17 12 17C11.5858 17 11.25 16.6642 11.25 16.25V12.75C11.25 12.3358 11.5858 12 12 12ZM16 9C16.4142 9 16.75 9.33579 16.75 9.75V16.25C16.75 16.6642 16.4142 17 16 17C15.5858 17 15.25 16.6642 15.25 16.25V9.75C15.25 9.33579 15.5858 9 16 9Z" />
727
- </svg>`;
728
-
729
- // ../icons/dist/esm/src/icons/home.js
730
- var home = `<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
731
- <path d="M10.7725 3.95499C11.4946 3.39358 12.5054 3.39358 13.2275 3.95499L20.2275 9.39936C20.7146 9.77822 20.9999 10.3614 21 10.9785V18C21 19.6051 19.7394 20.9158 18.1543 20.9961L18 21H6C4.39489 21 3.08421 19.7394 3.00391 18.1543L3 18V10.9785C3.00007 10.4386 3.21792 9.92445 3.59863 9.55073L3.77246 9.39936L10.7725 3.95499ZM12.3066 5.13859C12.1263 4.99869 11.8737 4.99869 11.6934 5.13859L4.69336 10.583C4.57163 10.6776 4.50008 10.8243 4.5 10.9785V18C4.5 18.8284 5.17157 19.5 6 19.5H8V16C8.00014 14.3432 9.34323 13 11 13H13C14.6568 13 15.9999 14.3432 16 16V19.5H18C18.8284 19.5 19.5 18.8284 19.5 18V10.9785C19.4999 10.8243 19.4284 10.6776 19.3066 10.583L12.3066 5.13859ZM11 14.5C10.1717 14.5 9.50014 15.1717 9.5 16V19.5H14.5V16C14.4999 15.1717 13.8283 14.5 13 14.5H11Z" />
732
- </svg>`;
733
-
734
- // ../icons/dist/esm/src/icons/logout.js
735
- var logout = `<svg width="17" height="20" viewBox="0 0 17 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
736
- <path d="M12 0C12.4142 0 12.75 0.335786 12.75 0.75C12.75 1.16421 12.4142 1.5 12 1.5H3.75C2.50736 1.5 1.5 2.50736 1.5 3.75V16.25C1.5 17.4926 2.50736 18.5 3.75 18.5H12C12.4142 18.5 12.75 18.8358 12.75 19.25C12.75 19.6642 12.4142 20 12 20H3.75C1.67893 20 0 18.3211 0 16.25V3.75C2.57706e-07 1.67893 1.67893 1.28851e-07 3.75 0H12ZM10.7197 5.71973C11.0125 5.42693 11.4874 5.42713 11.7803 5.71973L16.0605 10L11.7803 14.2803C11.4874 14.5729 11.0126 14.573 10.7197 14.2803C10.4272 13.9874 10.4272 13.5125 10.7197 13.2197L13.1895 10.75H6.5C6.08605 10.7498 5.7501 10.414 5.75 10C5.75009 9.58601 6.08604 9.25023 6.5 9.25H13.1895L10.7197 6.78027C10.4272 6.48743 10.4272 6.01254 10.7197 5.71973Z" />
737
- </svg>`;
738
-
739
- // ../icons/dist/esm/src/icons/sidebar-collapsed.js
740
- var sidebarCollapsed = `<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
741
- <path d="M17 3.25C19.0711 3.25 20.75 4.92893 20.75 7V17C20.75 19.0711 19.0711 20.75 17 20.75H7C4.92893 20.75 3.25 19.0711 3.25 17V7C3.25 4.92893 4.92893 3.25 7 3.25H17ZM10 19.25H17C18.2426 19.25 19.25 18.2426 19.25 17V7C19.25 5.75736 18.2426 4.75 17 4.75H10V19.25Z"/>
742
- </svg>`;
743
-
744
- // ../icons/dist/esm/src/icons/user.js
745
- var user = `<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
746
- <path d="M12 2C17.5228 2 22 6.47715 22 12C22 15.2098 20.4857 18.0638 18.1348 19.8936C18.0344 20.055 17.8763 20.1738 17.6875 20.2227C16.0725 21.3418 14.1137 22 12 22C9.88604 22 7.92664 21.3421 6.31152 20.2227C6.12294 20.1736 5.96441 20.055 5.86426 19.8936C3.51367 18.0638 2 15.2095 2 12C2 6.47715 6.47715 2 12 2ZM11.25 15.5C9.1884 15.5 7.49093 17.0597 7.27344 19.0635C8.62515 19.9698 10.2503 20.5 12 20.5C13.7494 20.5 15.374 19.9695 16.7256 19.0635C16.508 17.0598 14.8116 15.5 12.75 15.5H11.25ZM12 3.5C7.30558 3.5 3.5 7.30558 3.5 12C3.5 14.3333 4.44073 16.4464 5.96289 17.9824C6.62169 15.683 8.73895 14 11.25 14H12.75C15.2609 14 17.3772 15.6832 18.0361 17.9824C19.5586 16.4464 20.5 14.3335 20.5 12C20.5 7.30558 16.6944 3.5 12 3.5ZM12 5.25C14.0711 5.25 15.75 6.92893 15.75 9C15.75 11.0711 14.0711 12.75 12 12.75C9.92893 12.75 8.25 11.0711 8.25 9C8.25 6.92893 9.92893 5.25 12 5.25ZM12 6.75C10.7574 6.75 9.75 7.75736 9.75 9C9.75 10.2426 10.7574 11.25 12 11.25C13.2426 11.25 14.25 10.2426 14.25 9C14.25 7.75736 13.2426 6.75 12 6.75Z" />
747
- </svg>`;
748
-
749
- // ../icons/dist/esm/src/icons/wallet.js
750
- var wallet = `<svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
751
- <path d="M14.2275 3.02681C16.5581 2.53634 18.7497 4.3152 18.75 6.69674V7.09518C20.0437 7.42823 20.9998 8.60187 21 9.99948V16.9995C21 18.6046 19.7394 19.9153 18.1543 19.9956L18 19.9995H6C4.39489 19.9995 3.08421 18.7389 3.00391 17.1538L3 16.9995V8.43405C3.00022 6.66092 4.2424 5.12941 5.97754 4.76412L14.2275 3.02681ZM6 8.49948C5.17173 8.49948 4.50026 9.17127 4.5 9.99948V16.9995C4.5 17.8279 5.17157 18.4995 6 18.4995H18C18.8284 18.4995 19.5 17.8279 19.5 16.9995V9.99948C19.4997 9.17127 18.8283 8.49948 18 8.49948H6ZM16.5 11.9995C17.3283 11.9995 17.9997 12.6713 18 13.4995C18 14.3279 17.3284 14.9995 16.5 14.9995C15.6716 14.9995 15 14.3279 15 13.4995C15.0003 12.6713 15.6717 11.9995 16.5 11.9995ZM17.25 6.69674C17.2497 5.26791 15.9344 4.20028 14.5361 4.49459L6.28613 6.2319C5.67607 6.36042 5.16896 6.73055 4.85254 7.22799C5.20609 7.08147 5.59347 6.99948 6 6.99948H17.25V6.69674Z" />
752
- </svg>`;
753
-
754
- // ../../node_modules/lit-html/directives/if-defined.js
755
- var o9 = (o10) => o10 ?? E;
756
-
757
- // ../../node_modules/lit-html/directive-helpers.js
758
- var { I: t5 } = Z;
759
- var s4 = () => document.createComment("");
760
- var r7 = (o10, i7, n5) => {
761
- const e10 = o10._$AA.parentNode, l3 = void 0 === i7 ? o10._$AB : i7._$AA;
762
- if (void 0 === n5) {
763
- const i8 = e10.insertBefore(s4(), l3), c5 = e10.insertBefore(s4(), l3);
764
- n5 = new t5(i8, c5, o10, o10.options);
765
- } else {
766
- const t6 = n5._$AB.nextSibling, i8 = n5._$AM, c5 = i8 !== o10;
767
- if (c5) {
768
- let t7;
769
- n5._$AQ?.(o10), n5._$AM = o10, void 0 !== n5._$AP && (t7 = o10._$AU) !== i8._$AU && n5._$AP(t7);
770
- }
771
- if (t6 !== l3 || c5) {
772
- let o11 = n5._$AA;
773
- for (; o11 !== t6; ) {
774
- const t7 = o11.nextSibling;
775
- e10.insertBefore(o11, l3), o11 = t7;
776
- }
777
- }
778
- }
779
- return n5;
780
- };
781
- var v2 = (o10, t6, i7 = o10) => (o10._$AI(t6, i7), o10);
782
- var u3 = {};
783
- var m2 = (o10, t6 = u3) => o10._$AH = t6;
784
- var p3 = (o10) => o10._$AH;
785
- var M2 = (o10) => {
786
- o10._$AP?.(false, true);
787
- let t6 = o10._$AA;
788
- const i7 = o10._$AB.nextSibling;
789
- for (; t6 !== i7; ) {
790
- const o11 = t6.nextSibling;
791
- t6.remove(), t6 = o11;
792
- }
793
- };
794
-
795
- // ../../node_modules/lit-html/directives/repeat.js
796
- var u4 = (e10, s5, t6) => {
797
- const r8 = /* @__PURE__ */ new Map();
798
- for (let l3 = s5; l3 <= t6; l3++) r8.set(e10[l3], l3);
799
- return r8;
800
- };
801
- var c4 = e7(class extends i5 {
802
- constructor(e10) {
803
- if (super(e10), e10.type !== t3.CHILD) throw Error("repeat() can only be used in text expressions");
804
- }
805
- dt(e10, s5, t6) {
806
- let r8;
807
- void 0 === t6 ? t6 = s5 : void 0 !== s5 && (r8 = s5);
808
- const l3 = [], o10 = [];
809
- let i7 = 0;
810
- for (const s6 of e10) l3[i7] = r8 ? r8(s6, i7) : i7, o10[i7] = t6(s6, i7), i7++;
811
- return { values: o10, keys: l3 };
812
- }
813
- render(e10, s5, t6) {
814
- return this.dt(e10, s5, t6).values;
815
- }
816
- update(s5, [t6, r8, c5]) {
817
- const d3 = p3(s5), { values: p4, keys: a3 } = this.dt(t6, r8, c5);
818
- if (!Array.isArray(d3)) return this.ut = a3, p4;
819
- const h3 = this.ut ?? (this.ut = []), v3 = [];
820
- let m3, y3, x2 = 0, j2 = d3.length - 1, k2 = 0, w2 = p4.length - 1;
821
- for (; x2 <= j2 && k2 <= w2; ) if (null === d3[x2]) x2++;
822
- else if (null === d3[j2]) j2--;
823
- else if (h3[x2] === a3[k2]) v3[k2] = v2(d3[x2], p4[k2]), x2++, k2++;
824
- else if (h3[j2] === a3[w2]) v3[w2] = v2(d3[j2], p4[w2]), j2--, w2--;
825
- else if (h3[x2] === a3[w2]) v3[w2] = v2(d3[x2], p4[w2]), r7(s5, v3[w2 + 1], d3[x2]), x2++, w2--;
826
- else if (h3[j2] === a3[k2]) v3[k2] = v2(d3[j2], p4[k2]), r7(s5, d3[x2], d3[j2]), j2--, k2++;
827
- else if (void 0 === m3 && (m3 = u4(a3, k2, w2), y3 = u4(h3, x2, j2)), m3.has(h3[x2])) if (m3.has(h3[j2])) {
828
- const e10 = y3.get(a3[k2]), t7 = void 0 !== e10 ? d3[e10] : null;
829
- if (null === t7) {
830
- const e11 = r7(s5, d3[x2]);
831
- v2(e11, p4[k2]), v3[k2] = e11;
832
- } else v3[k2] = v2(t7, p4[k2]), r7(s5, d3[x2], t7), d3[e10] = null;
833
- k2++;
834
- } else M2(d3[j2]), j2--;
835
- else M2(d3[x2]), x2++;
836
- for (; k2 <= w2; ) {
837
- const e10 = r7(s5, v3[w2 + 1]);
838
- v2(e10, p4[k2]), v3[k2++] = e10;
839
- }
840
- for (; x2 <= j2; ) {
841
- const e10 = d3[x2++];
842
- null !== e10 && M2(e10);
843
- }
844
- return this.ut = a3, m2(s5, v3), T;
845
- }
846
- });
847
-
848
- // ../../node_modules/lit-html/directives/guard.js
849
- var e9 = {};
850
- var i6 = e7(class extends i5 {
851
- constructor() {
852
- super(...arguments), this.ot = e9;
853
- }
854
- render(r8, t6) {
855
- return t6();
856
- }
857
- update(t6, [s5, e10]) {
858
- if (Array.isArray(s5)) {
859
- if (Array.isArray(this.ot) && this.ot.length === s5.length && s5.every(((r8, t7) => r8 === this.ot[t7]))) return T;
860
- } else if (this.ot === s5) return T;
861
- return this.ot = Array.isArray(s5) ? Array.from(s5) : s5, this.render(s5, e10);
862
- }
863
- });
864
-
865
- // ../tt-combobox/dist/esm/src/styles.js
866
- var styles = i`
867
- :host {
868
- display: flex;
869
- flex-direction: var(--tt-combobox-flex-direction, row);
870
- align-items: var(--tt-combobox-align-items, center);
871
- justify-content: var(--tt-combobox-justify-content, initial);
872
- align-content: var(--tt-combobox-align-content, initial);
873
- gap: var(--tt-combobox-gap, 0.5rem);
874
- font-size: var(--tt-combobox-font-size, var(--font-size-200));
875
- color: var(--tt-combobox-color, var(--color-text-400));
876
- }
877
-
878
- :host([disabled]) .tt-combobox-container {
879
- border-color: var(--tt-combobox-disabled-border-color, var(--color-border-200));
880
- color: var(--tt-combobox-disabled-color, var(--color-text-200));
881
- background-color: var(--tt-combobox-disabled-background-color, var(--color-surface-200));
882
- pointer-events: none;
883
- }
884
-
885
- .tt-combobox-container:focus-within {
886
- outline: 5px auto Highlight;
887
- outline: 5px auto -webkit-focus-ring-color;
888
- }
889
-
890
- .tt-combobox-container:hover {
891
- background-color: var(--tt-combobox-hover-background-color, var(--color-surface-300));
892
- }
893
-
894
- :host([invalid]) .tt-combobox-container,
895
- :host(:state(interacted):invalid) .tt-combobox-container {
896
- outline: 1px solid var(--color-alert-strong);
897
- }
898
-
899
- .errormessage {
900
- visibility: hidden;
901
- display: flex;
902
- align-items: center;
903
- gap: var(--space-scale-0-5);
904
- color: var(--color-alert-strong);
905
-
906
- &[data-hidden] {
907
- display: none;
908
- }
909
- }
910
-
911
- .errormessage svg path {
912
- fill: var(--color-alert-strong);
913
- height: 20px;
914
- }
915
-
916
- .tt-combobox-container:has([role='combobox'][aria-invalid='true']) ~ .errormessage {
917
- visibility: visible;
918
- }
919
-
920
- :has([role='combobox'][aria-invalid='true']) ::slotted([slot='error']) {
921
- color: var(--color-alert-strong);
922
- font-size: var(--font-size-100);
923
- margin: 0;
924
- font-weight: var(--font-weight-regular);
925
- line-height: 1.2;
926
- }
927
-
928
- slot[name='option']::slotted(*) {
929
- display: none;
930
- }
931
-
932
- * {
933
- box-sizing: border-box;
934
- font-family: var(--font-family-sans);
935
- cursor: inherit;
936
- }
937
-
938
- .tt-combobox-container {
939
- position: relative;
940
- max-width: var(--tt-combobox-max-width, 300px);
941
- min-width: var(--tt-combobox-min-width, 250px);
942
- display: flex;
943
- flex-direction: row;
944
- align-items: center;
945
- border-radius: var(--border-radius);
946
- border-color: var(--tt-combobox-border-color, var(--color-border-400));
947
- border-style: solid;
948
- border-width: var(--tt-combobox-border-width, 1px);
949
- background-color: var(--tt-combobox-background-color, var(--color-surface-100));
950
- padding: 0.5rem;
951
- gap: 0.25rem;
952
- //width: 100%;
953
- }
954
-
955
- [role='listbox'] {
956
- display: none;
957
- }
958
-
959
- [role='combobox'] {
960
- width: 100%;
961
- border-style: none;
962
- background-color: transparent;
963
- font-size: var(--tt-combobox-font-size, var(--font-size-200));
964
- }
965
-
966
- .hide-caret {
967
- caret-color: transparent;
968
- }
969
-
970
- [role='combobox']::placeholder {
971
- color: var(--tt-combobox-placeholder-color, var(--color-text-300));
972
- font-family: var(--font-family-inter);
973
- font-size: var(--tt-combobox-font-size, var(--font-size-200));
974
- }
975
-
976
- :host([disabled]) [role='combobox']::placeholder {
977
- color: var(--tt-combobox-disabled-placeholder-color, var(--color-text-200));
978
- }
979
-
980
- [role='combobox']:placeholder-shown {
981
- text-overflow: ellipsis;
982
- overflow: clip;
983
- }
984
-
985
- [role='combobox']:focus {
986
- outline: none;
987
- }
988
-
989
- [role='combobox'] ~ button {
990
- appearance: none;
991
- padding: 0;
992
- border-width: 0;
993
- background-color: transparent;
994
- aspect-ratio: 1;
995
- }
996
-
997
- [role='combobox'] ~ button svg {
998
- transition: transform 0.2s ease-in-out;
999
- color: var(--tt-combobox-dropdown-color, var(--color-text-400));
1000
- }
1001
-
1002
- [role='combobox'][aria-expanded='true'] ~ button svg {
1003
- transform: rotate(180deg);
1004
- }
1005
-
1006
- [role='combobox'][aria-expanded='true'] ~ [role='listbox'] {
1007
- display: block;
1008
- width: max-content;
1009
- max-width: var(--tt-combobox-list-max-width, 35ch);
1010
- min-width: 100%;
1011
- background-color: var(--tt-combobox-list-background-color, var(--color-surface-100, white));
1012
- border: 1px solid var(--tt-combobox-border-color, var(--color-border-300));
1013
- border-radius: var(--border-radius);
1014
- box-shadow: var(--box-shadow-lg);
1015
- padding: 0;
1016
- position: absolute;
1017
- top: var(--tt-combobox-top, calc(100% + 0.5rem));
1018
- left: var(--tt-combobox-left, 0);
1019
- right: var(--tt-combobox-right, unset);
1020
- bottom: var(--tt-combobox-bottom, unset);
1021
- z-index: 2;
1022
- margin: 0;
1023
- list-style: none;
1024
- max-height: var(--tt-combobox-max-height, 400px);
1025
- overflow-y: auto;
1026
-
1027
- .no-results {
1028
- display: none;
1029
- }
1030
-
1031
- &:not(:has(tt-option:not([hidden], .select-all))) {
1032
- .no-results {
1033
- display: flex;
1034
- padding: 0.5rem;
1035
- box-sizing: border-box;
1036
- text-align: left;
1037
- text-overflow: ellipsis;
1038
- text-wrap: nowrap;
1039
- align-items: center;
1040
- gap: 0.25rem;
1041
- max-width: 100%;
1042
- width: 100%;
1043
- overflow-y: visible;
1044
- flex: 1;
1045
-
1046
- span {
1047
- overflow: hidden;
1048
- text-overflow: ellipsis;
1049
- white-space: nowrap;
1050
- flex: 1;
1051
- line-height: 1.1;
1052
- }
1053
- }
1054
-
1055
- .select-all {
1056
- display: none;
1057
- }
1058
- }
1059
- }
1060
-
1061
- [role='combobox'][aria-expanded='true'] ~ [role='listbox'][data-open-upward] {
1062
- top: unset;
1063
- bottom: calc(100% + 0.5rem);
1064
- }
1065
-
1066
- slot[name='icon'] {
1067
- display: inline-block;
1068
- max-width: var(--tt-combobox-icon-size, 1rem);
1069
- aspect-ratio: 1;
1070
- }
1071
-
1072
- tt-option.select-all::part(option) {
1073
- border-bottom: 1px solid var(--color-border-300);
1074
- }
1075
-
1076
- label {
1077
- font-size: var(--tt-combobox-label-font-size, inherit);
1078
- color: var(--tt-combobox-label-color, inherit);
1079
- font-weight: var(--tt-combobox-label-font-weight, inherit);
1080
-
1081
- &[data-hidden] {
1082
- display: none;
1083
- }
1084
- }
1085
- `;
1086
-
1087
- // ../tt-combobox/dist/esm/src/TtCombobox.js
1088
- var __decorate = function(decorators, target2, key, desc) {
1089
- var c5 = arguments.length, r8 = c5 < 3 ? target2 : desc === null ? desc = Object.getOwnPropertyDescriptor(target2, key) : desc, d3;
1090
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r8 = Reflect.decorate(decorators, target2, key, desc);
1091
- else for (var i7 = decorators.length - 1; i7 >= 0; i7--) if (d3 = decorators[i7]) r8 = (c5 < 3 ? d3(r8) : c5 > 3 ? d3(target2, key, r8) : d3(target2, key)) || r8;
1092
- return c5 > 3 && r8 && Object.defineProperty(target2, key, r8), r8;
1093
- };
1094
- var TtCombobox = class extends i4 {
1095
- get form() {
1096
- return this.internals.form;
1097
- }
1098
- get _isAllSelected() {
1099
- return Boolean(this._visibleOptionsNotSelectAll.length) && Array.from(this._visibleOptionsNotSelectAll).every((option) => this.value.includes(option.value));
1100
- }
1101
- get _selectedVisibleOptions() {
1102
- return Array.from(this._visibleOptions).filter((option) => this.value.includes(option.value));
1103
- }
1104
- get _selectedOptions() {
1105
- return Array.from(this._visibleOptionsNotSelectAll).filter((option) => this.value.includes(option.value));
1106
- }
1107
- constructor() {
1108
- super();
1109
- this.multiselect = false;
1110
- this.disabled = false;
1111
- this.invalid = false;
1112
- this.displaySelectAll = false;
1113
- this.required = false;
1114
- this.name = "";
1115
- this.ariaLabelledby = E;
1116
- this.hideCaret = false;
1117
- this.openUpward = false;
1118
- this._activeOption = -1;
1119
- this._expanded = false;
1120
- this._filter = "";
1121
- this.value = [];
1122
- this._slotObserver = new MutationObserver((mutations) => {
1123
- mutations.forEach((mutation) => {
1124
- if (mutation.type === "attributes") {
1125
- this.requestUpdate("options");
1126
- }
1127
- });
1128
- });
1129
- this._valueChanged = () => {
1130
- this._selectableOptions.forEach((option) => {
1131
- if (this.value.includes(option.value)) {
1132
- this._checkOption(option);
1133
- } else {
1134
- this._uncheckOption(option);
1135
- }
1136
- });
1137
- this.internals.setFormValue(JSON.stringify(this.value));
1138
- };
1139
- this._listenForOptionChange = () => {
1140
- this.options.forEach((option) => {
1141
- this._slotObserver.observe(option, { attributes: true, attributeFilter: ["selected", "disabled", "hidden"] });
1142
- });
1143
- };
1144
- this._selectAll = (event) => {
1145
- event.preventDefault();
1146
- event.stopPropagation();
1147
- if (this._filter !== "" && this._isAllSelected) {
1148
- const selectedVisibleValues = this._selectedVisibleOptions.map((option) => option.value);
1149
- this.value = this.value.filter((value) => !selectedVisibleValues.includes(value));
1150
- } else if (this._filter !== "") {
1151
- this.value = Array.from(/* @__PURE__ */ new Set([...this.value, ...Array.from(this._selectableVisibleOptions).map((option) => option.value)]));
1152
- } else if (this.value.length === this._selectableOptions.length) {
1153
- this.value = [];
1154
- } else {
1155
- this.value = Array.from(this._selectableOptions).map((option) => option.value);
1156
- }
1157
- };
1158
- this._renderSelectAll = () => {
1159
- if (!this.multiselect || !this.displaySelectAll) {
1160
- return E;
1161
- }
1162
- const id = `${this.id}-option-select-all`;
1163
- const active = this._getActiveOptionId() === id;
1164
- const selected = this._isAllSelected;
1165
- return x`
1166
- <tt-option
1167
- id="${id}"
1168
- class="select-all"
1169
- ?selected=${selected}
1170
- ?active=${active}
1171
- include-checkbox
1172
- @click="${this._selectAll}"
1173
- exportparts="option, checkbox"
1174
- part="option"
1175
- value="select-all"
1176
- >Select all</tt-option
1177
- >
1178
- `;
1179
- };
1180
- this._renderChevron = () => x`
1181
- <button
1182
- type="button"
1183
- aria-label="Expand"
1184
- @click="${this._onChevronClick}"
1185
- aria-expanded="${this._expanded}"
1186
- aria-controls="${this.id}-list"
1187
- tabindex="-1"
1188
- ?disabled=${this.disabled}
1189
- part="arrow"
1190
- >
1191
- ${o8(chevronDown)}
1192
- </button>
1193
- `;
1194
- this.internals = this.attachInternals();
1195
- }
1196
- _handleFocusOut(e10) {
1197
- if (!this.shadowRoot.contains(e10.relatedTarget)) {
1198
- this._expanded = false;
1199
- }
1200
- this._filter = "";
1201
- }
1202
- _onFocus() {
1203
- this._comboboxInput.focus();
1204
- }
1205
- connectedCallback() {
1206
- super.connectedCallback();
1207
- this.addEventListener("focus", this._onFocus);
1208
- }
1209
- disconnectedCallback() {
1210
- super.disconnectedCallback();
1211
- this.removeEventListener("focus", this._onFocus);
1212
- }
1213
- firstUpdated(changedProperties) {
1214
- this.internals.setFormValue(JSON.stringify(this.value));
1215
- this._reportValidity();
1216
- this._listenForOptionChange();
1217
- super.firstUpdated(changedProperties);
1218
- }
1219
- update(changedProperties) {
1220
- if (changedProperties.has("value")) {
1221
- this._valueChanged();
1222
- if (changedProperties.get("value") !== void 0 && JSON.stringify(changedProperties.get("value")) !== JSON.stringify(this.value)) {
1223
- this._dispatchSelectedOptions();
1224
- this._reportValidity();
1225
- }
1226
- }
1227
- if (changedProperties.has("_expanded") && changedProperties.get("_expanded") && !this._expanded) {
1228
- this.internals.states.add("interacted");
1229
- }
1230
- if (changedProperties.has("options")) {
1231
- this.updateComplete.then(() => {
1232
- const selectedAssignedOptions = Array.from(this.options).filter((option) => option.selected);
1233
- this.value = Array.from(/* @__PURE__ */ new Set([...this.value, ...selectedAssignedOptions.map((option) => option.value)]));
1234
- this._listenForOptionChange();
1235
- });
1236
- }
1237
- super.update(changedProperties);
1238
- }
1239
- _reportValidity() {
1240
- if (this.required && !this.value.length) {
1241
- const errorMessage = this.multiselect ? "Please select at least one option" : "Please select an option";
1242
- this.internals.setValidity({
1243
- valueMissing: true
1244
- }, errorMessage, this._comboboxInput);
1245
- this.internals.states.add("--invalid");
1246
- } else if (!this.internals.validity.valid) {
1247
- this.internals.setValidity({});
1248
- if (this.internals.states.has("--invalid")) {
1249
- this.internals.states.delete("--invalid");
1250
- }
1251
- }
1252
- }
1253
- get labels() {
1254
- return [...this.internals.labels];
1255
- }
1256
- get labelContent() {
1257
- if (this.ariaLabel !== null) {
1258
- return this.ariaLabel;
1259
- }
1260
- return this.labels.map((label) => label.innerText).join(", ");
1261
- }
1262
- _onKeyUp(event) {
1263
- switch (event.key) {
1264
- case "ArrowDown":
1265
- event.preventDefault();
1266
- if (!this._expanded) {
1267
- this._expanded = true;
1268
- this._activeOption = -1;
1269
- } else {
1270
- this._activeOption = Math.min(this._visibleOptions.length - 1, this._activeOption + 1);
1271
- }
1272
- break;
1273
- case "ArrowUp":
1274
- event.preventDefault();
1275
- if (this._expanded) {
1276
- this._activeOption = Math.max(0, this._activeOption - 1);
1277
- }
1278
- break;
1279
- case "Escape":
1280
- event.preventDefault();
1281
- if (this._expanded) {
1282
- this._expanded = false;
1283
- } else if (this._filter !== "") {
1284
- this._filter = "";
1285
- }
1286
- break;
1287
- case "Enter":
1288
- event.preventDefault();
1289
- if (this._expanded) {
1290
- this._visibleOptions[this._activeOption].click();
1291
- }
1292
- break;
1293
- default:
1294
- break;
1295
- }
1296
- }
1297
- _uncheckOption(option) {
1298
- if (option.dataset.deselectable !== "true")
1299
- return;
1300
- option.setAttribute("aria-selected", "false");
1301
- const checkbox = option.querySelector('input[type="checkbox"]');
1302
- if (checkbox) {
1303
- checkbox.checked = false;
1304
- }
1305
- }
1306
- _checkOption(option) {
1307
- if (!this.multiselect) {
1308
- this._selectableOptions.forEach((opt) => {
1309
- this._uncheckOption(opt);
1310
- });
1311
- }
1312
- option.setAttribute("aria-selected", "true");
1313
- const checkbox = option.querySelector('input[type="checkbox"]');
1314
- if (checkbox) {
1315
- checkbox.checked = true;
1316
- }
1317
- }
1318
- _getActiveOptionId() {
1319
- if (this._activeOption === -1 || this._visibleOptions.length === 0) {
1320
- return void 0;
1321
- }
1322
- const option = this._visibleOptions[this._activeOption];
1323
- return option.id;
1324
- }
1325
- _onClick() {
1326
- this._expanded = !this._expanded;
1327
- if (this._expanded) {
1328
- this.shadowRoot?.querySelector('input[role="combobox"]')?.focus();
1329
- }
1330
- }
1331
- _onChevronClick() {
1332
- this.shadowRoot?.querySelector('input[role="combobox"]')?.focus();
1333
- }
1334
- _onClickOption(event) {
1335
- event.preventDefault();
1336
- event.stopPropagation();
1337
- const option = event.currentTarget;
1338
- if (option.disabled)
1339
- return;
1340
- const selectedValue = option.value;
1341
- if (this.multiselect) {
1342
- if (this.value.includes(selectedValue)) {
1343
- this.value = this.value.filter((value) => value !== selectedValue);
1344
- } else {
1345
- this.value = [...this.value, selectedValue];
1346
- }
1347
- } else {
1348
- this.value = [selectedValue];
1349
- this._expanded = false;
1350
- }
1351
- }
1352
- _onInput(event) {
1353
- const input = event.target;
1354
- const filter2 = input.value;
1355
- if (filter2 !== "" && !this._expanded) {
1356
- this._expanded = true;
1357
- }
1358
- this._activeOption = -1;
1359
- this._filter = filter2;
1360
- }
1361
- _dispatchSelectedOptions() {
1362
- this.dispatchEvent(new Event("change", {
1363
- bubbles: true,
1364
- composed: true
1365
- }));
1366
- }
1367
- get _isValid() {
1368
- return this.internals.validity.valid && !this.invalid;
1369
- }
1370
- _renderCombobox() {
1371
- const placeHolderValue = i6([this.placeholder, this.disabled, this.value, this.activeOptions.length, this.selectAllPlaceholder, this._filter], () => {
1372
- if (this.placeholder) {
1373
- return this.placeholder;
1374
- }
1375
- if (this.disabled) {
1376
- return "Disabled";
1377
- }
1378
- if (!this.value.length) {
1379
- return "No options selected";
1380
- }
1381
- if (this.value.length === 1) {
1382
- return Array.from(this._selectableVisibleOptions).find((option) => option.value === this.value[0])?.textContent?.trim();
1383
- }
1384
- const permanentlyHiddenValues = Array.from(this.options).filter((option) => option.hidden).map((option) => option.value);
1385
- const selectedCount = this.value.filter((val) => !permanentlyHiddenValues.includes(val)).length;
1386
- const totalSelectableCount = this.options.length - permanentlyHiddenValues.length;
1387
- if (this._filter === "" && selectedCount === totalSelectableCount && totalSelectableCount > 0) {
1388
- return this.selectAllPlaceholder || "All options selected";
1389
- }
1390
- return `${selectedCount} options selected`;
1391
- });
1392
- return x` <input
1393
- type="text"
1394
- id="${this.id}"
1395
- name="${this.name}"
1396
- autocomplete="off"
1397
- aria-label="${this.labelContent}"
1398
- aria-labelledby="${this.ariaLabelledby}"
1399
- role="combobox"
1400
- aria-controls="${this.id}-list"
1401
- aria-expanded="${this._expanded}"
1402
- aria-autocomplete="list"
1403
- aria-haspopup="listbox"
1404
- aria-disabled="${this.disabled}"
1405
- aria-invalid="${!this._isValid}"
1406
- aria-errormessage="${!this._isValid ? `error-msg-${this.id}` : E}"
1407
- aria-required="${this.required}"
1408
- ?disabled=${this.disabled}
1409
- aria-activedescendant="${o9(this._getActiveOptionId())}"
1410
- @input="${this._onInput}"
1411
- .value="${this._filter}"
1412
- .placeholder="${placeHolderValue}"
1413
- @focusout="${this._handleFocusOut}"
1414
- part="input"
1415
- class=${this.hideCaret ? "hide-caret" : ""}
1416
- />`;
1417
- }
1418
- _renderOption(option) {
1419
- const hidden = Boolean(this._filter !== "" && !option.value.toLowerCase().includes(this._filter.toLowerCase()) && !option.innerText.toLowerCase().includes(this._filter.toLowerCase()) || option.hidden);
1420
- const id = `${this.id}-option-${option.value}`;
1421
- const active = this._getActiveOptionId() === id;
1422
- const selected = this.value.includes(option.value);
1423
- return x`
1424
- <tt-option
1425
- id="${id}"
1426
- value="${option.value}"
1427
- ?selected=${selected}
1428
- ?disabled=${option.disabled}
1429
- ?active=${active}
1430
- ?include-checkbox=${this.multiselect}
1431
- ?hidden=${hidden}
1432
- @click="${this._onClickOption}"
1433
- >
1434
- ${o7(option.innerHTML)}
1435
- </tt-option>
1436
- `;
1437
- }
1438
- _hasErrorContent() {
1439
- return this.errorElements?.length > 0;
1440
- }
1441
- render() {
1442
- return x`
1443
- <div
1444
- class="tt-combobox-container"
1445
- @focus="${this._onFocus}"
1446
- @keydown="${this._onKeyUp}"
1447
- @click="${this._onClick}"
1448
- aria-disabled="${this.disabled}"
1449
- part="container"
1450
- >
1451
- <slot name="icon" part="icon"></slot>
1452
- ${this._renderCombobox()} ${this._renderChevron()}
1453
- <ul
1454
- id="${this.id}-list"
1455
- role="listbox"
1456
- aria-multiselectable="${this.multiselect}"
1457
- aria-label="${this.labelContent}"
1458
- part="listbox"
1459
- ?data-open-upward="${this.openUpward}"
1460
- >
1461
- ${this._renderSelectAll()} ${c4(this.options, (opt) => opt.value, this._renderOption.bind(this))}
1462
-
1463
- <li part="no-results" class="no-results">No results</li>
1464
- </ul>
1465
- </div>
1466
- <slot name="option" @slotchange=${() => this.requestUpdate("options")}></slot>
1467
- <div
1468
- class="errormessage"
1469
- id="error-msg-${this.id}"
1470
- role="alert"
1471
- aria-atomic="true"
1472
- ?data-hidden="${!this._hasErrorContent()}"
1473
- part="error"
1474
- >
1475
- ${o8(alert)}
1476
- <slot name="error"></slot>
1477
- </div>
1478
- `;
1479
- }
1480
- };
1481
- TtCombobox.styles = styles;
1482
- TtCombobox.formAssociated = true;
1483
- TtCombobox.shadowRootOptions = {
1484
- ...i4.shadowRootOptions,
1485
- delegatesFocus: true
1486
- };
1487
- __decorate([
1488
- n4({ type: Boolean })
1489
- ], TtCombobox.prototype, "multiselect", void 0);
1490
- __decorate([
1491
- n4({ type: Boolean })
1492
- ], TtCombobox.prototype, "disabled", void 0);
1493
- __decorate([
1494
- n4({ type: Boolean })
1495
- ], TtCombobox.prototype, "invalid", void 0);
1496
- __decorate([
1497
- n4({ type: Boolean, attribute: "display-select-all" })
1498
- ], TtCombobox.prototype, "displaySelectAll", void 0);
1499
- __decorate([
1500
- n4({ type: Boolean })
1501
- ], TtCombobox.prototype, "required", void 0);
1502
- __decorate([
1503
- n4({ type: String })
1504
- ], TtCombobox.prototype, "name", void 0);
1505
- __decorate([
1506
- n4({ type: String, attribute: "aria-labelledby" })
1507
- ], TtCombobox.prototype, "ariaLabelledby", void 0);
1508
- __decorate([
1509
- n4({ type: Boolean, attribute: "hide-caret" })
1510
- ], TtCombobox.prototype, "hideCaret", void 0);
1511
- __decorate([
1512
- n4({ type: String })
1513
- ], TtCombobox.prototype, "placeholder", void 0);
1514
- __decorate([
1515
- n4({ type: String, attribute: "select-all-placeholder" })
1516
- ], TtCombobox.prototype, "selectAllPlaceholder", void 0);
1517
- __decorate([
1518
- n4({ type: Boolean, attribute: "open-upward" })
1519
- ], TtCombobox.prototype, "openUpward", void 0);
1520
- __decorate([
1521
- r5()
1522
- ], TtCombobox.prototype, "_activeOption", void 0);
1523
- __decorate([
1524
- r5()
1525
- ], TtCombobox.prototype, "_expanded", void 0);
1526
- __decorate([
1527
- r5()
1528
- ], TtCombobox.prototype, "_filter", void 0);
1529
- __decorate([
1530
- o6({ slot: "option", selector: "option" })
1531
- ], TtCombobox.prototype, "options", void 0);
1532
- __decorate([
1533
- o6({ slot: "option", selector: "tt-option:not([disabled])" })
1534
- ], TtCombobox.prototype, "activeOptions", void 0);
1535
- __decorate([
1536
- o6({ slot: "error" })
1537
- ], TtCombobox.prototype, "errorElements", void 0);
1538
- __decorate([
1539
- r6("tt-option:not([hidden], [disabled])")
1540
- ], TtCombobox.prototype, "_visibleOptions", void 0);
1541
- __decorate([
1542
- r6("tt-option:not([hidden], .select-all)")
1543
- ], TtCombobox.prototype, "_visibleOptionsNotSelectAll", void 0);
1544
- __decorate([
1545
- r6("tt-option:not([disabled], .select-all)")
1546
- ], TtCombobox.prototype, "_selectableOptions", void 0);
1547
- __decorate([
1548
- r6("tt-option:not([disabled], [hidden], .select-all)")
1549
- ], TtCombobox.prototype, "_selectableVisibleOptions", void 0);
1550
- __decorate([
1551
- e5('input[role="combobox"]')
1552
- ], TtCombobox.prototype, "_comboboxInput", void 0);
1553
- __decorate([
1554
- e5("button:has(svg)")
1555
- ], TtCombobox.prototype, "_chevronButton", void 0);
1556
- __decorate([
1557
- n4({ type: Array, attribute: "value" })
1558
- ], TtCombobox.prototype, "value", void 0);
1559
-
1560
- // ../tt-combobox/dist/esm/src/tt-option/styles.js
1561
- var styles2 = i`
1562
- li {
1563
- cursor: pointer;
1564
- display: flex;
1565
- padding: 0.5rem;
1566
- box-sizing: border-box;
1567
- text-align: left;
1568
- text-overflow: ellipsis;
1569
- text-wrap: nowrap;
1570
- align-items: center;
1571
- gap: 0.25rem;
1572
- max-width: 100%;
1573
- width: 100%;
1574
- overflow-y: visible;
1575
- flex: 1;
1576
-
1577
- input[type='checkbox'] {
1578
- width: var(--checkbox-size, var(--space-scale-2));
1579
- aspect-ratio: 1;
1580
- flex: 0 0 auto;
1581
- accent-color: var(--color-primary-400);
1582
- pointer-events: none;
1583
- }
1584
-
1585
- span {
1586
- overflow: hidden;
1587
- text-overflow: ellipsis;
1588
- white-space: nowrap;
1589
- flex: 1;
1590
- line-height: 1.1;
1591
- }
1592
-
1593
- &[aria-hidden='true'] {
1594
- visibility: hidden;
1595
- display: none;
1596
- }
1597
-
1598
- &[aria-disabled='true'] {
1599
- pointer-events: none;
1600
- opacity: 0.5;
1601
- }
1602
-
1603
- &[aria-selected='true']:not(:has(input[type='checkbox'])) {
1604
- color: var(--tt-combobox-option-selected-color, var(--color-primary-400));
1605
- font-weight: var(--font-weight-medium);
1606
- }
1607
- }
1608
-
1609
- :host([active]),
1610
- :host(:hover) {
1611
- li {
1612
- background-color: var(--tt-combobox-option-background-color-hover, var(--color-surface-300));
1613
- color: var(--tt-combobox-option-color-hover, inherit);
1614
- }
1615
-
1616
- &:first-child li {
1617
- border-top-left-radius: var(--border-radius);
1618
- border-top-right-radius: var(--border-radius);
1619
- }
1620
-
1621
- &:last-child li {
1622
- border-bottom-left-radius: var(--border-radius);
1623
- border-bottom-right-radius: var(--border-radius);
1624
- }
1625
- }
1626
-
1627
- :host([disabled]) {
1628
- pointer-events: none;
1629
- }
1630
- `;
1631
-
1632
- // ../tt-combobox/dist/esm/src/tt-option/TtOption.js
1633
- var __decorate2 = function(decorators, target2, key, desc) {
1634
- var c5 = arguments.length, r8 = c5 < 3 ? target2 : desc === null ? desc = Object.getOwnPropertyDescriptor(target2, key) : desc, d3;
1635
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r8 = Reflect.decorate(decorators, target2, key, desc);
1636
- else for (var i7 = decorators.length - 1; i7 >= 0; i7--) if (d3 = decorators[i7]) r8 = (c5 < 3 ? d3(r8) : c5 > 3 ? d3(target2, key, r8) : d3(target2, key)) || r8;
1637
- return c5 > 3 && r8 && Object.defineProperty(target2, key, r8), r8;
1638
- };
1639
- var TtOption = class extends i4 {
1640
- constructor() {
1641
- super(...arguments);
1642
- this.disabled = false;
1643
- this.selected = false;
1644
- this.active = false;
1645
- this.value = "";
1646
- this.includeCheckbox = false;
1647
- this._onClick = (event) => {
1648
- if (this.disabled) {
1649
- event.preventDefault();
1650
- event.stopImmediatePropagation();
1651
- event.stopPropagation();
1652
- }
1653
- };
1654
- }
1655
- connectedCallback() {
1656
- super.connectedCallback();
1657
- this.addEventListener("click", this._onClick);
1658
- }
1659
- disconnectedCallback() {
1660
- super.disconnectedCallback();
1661
- this.removeEventListener("click", this._onClick);
1662
- }
1663
- render() {
1664
- return x`
1665
- <li
1666
- role="option"
1667
- aria-selected="${this.selected}"
1668
- aria-disabled="${this.disabled}"
1669
- ?aria-hidden="${this.hidden}"
1670
- data-active="${this.active}"
1671
- data-value="${this.value}"
1672
- @click="${this._onClick}"
1673
- @mousedown="${(event) => event.preventDefault()}"
1674
- part="option"
1675
- >
1676
- ${this.includeCheckbox ? x`<input type="checkbox" ?checked=${this.selected} role="presentation" tabindex="-1" part="checkbox" />` : E}
1677
- <span>
1678
- <slot></slot>
1679
- </span>
1680
- </li>
1681
- `;
1682
- }
1683
- };
1684
- TtOption.styles = styles2;
1685
- TtOption.shadowRootOptions = {
1686
- ...i4.shadowRootOptions,
1687
- delegatesFocus: true
1688
- };
1689
- __decorate2([
1690
- n4({ type: Boolean })
1691
- ], TtOption.prototype, "disabled", void 0);
1692
- __decorate2([
1693
- n4({ type: Boolean })
1694
- ], TtOption.prototype, "selected", void 0);
1695
- __decorate2([
1696
- n4({ type: Boolean })
1697
- ], TtOption.prototype, "active", void 0);
1698
- __decorate2([
1699
- n4({ type: String })
1700
- ], TtOption.prototype, "value", void 0);
1701
- __decorate2([
1702
- n4({ type: Boolean, attribute: "include-checkbox" })
1703
- ], TtOption.prototype, "includeCheckbox", void 0);
1704
-
1705
- // ../tt-combobox/dist/esm/src/tt-option/tt-option.js
1706
- if (typeof window !== "undefined") {
1707
- if (!window.customElements.get("tt-option")) {
1708
- window.customElements.define("tt-option", TtOption);
1709
- }
1710
- }
1711
-
1712
- // ../tt-combobox/dist/esm/src/tt-combobox.js
1713
- if (typeof window !== "undefined") {
1714
- if (!window.customElements.get("tt-combobox")) {
1715
- window.customElements.define("tt-combobox", TtCombobox);
1716
- }
1717
- }
1718
-
1719
- // src/styles.ts
1720
- var visuallyHiddenCss = i`
1721
- position: absolute;
1722
- width: 1px;
1723
- height: 1px;
1724
- margin: -1px;
1725
- padding: 0;
1726
- border: 0;
1727
- overflow: hidden;
1728
- clip: rect(0 0 0 0);
1729
- clip-path: inset(50%);
1730
- white-space: nowrap;
1731
- `;
1732
- var styles3 = i`
1733
- :host {
1734
- --nav-bar-width: 260px;
1735
-
1736
- display: block;
1737
- height: 100vh;
1738
- }
1739
-
1740
- :host:has(.sidebar-closed) {
1741
- --nav-bar-width: fit-content;
1742
- }
1743
-
1744
- * {
1745
- box-sizing: border-box;
1746
- }
1747
-
1748
- nav {
1749
- --menu-font-size: var(--font-size-200);
1750
- max-width: var(--nav-bar-width);
1751
- width: var(--nav-bar-width);
1752
- min-height: 100vh;
1753
- height: max-content;
1754
- display: flex;
1755
- align-items: start;
1756
- gap: var(--space-scale-3-5);
1757
- flex-direction: column;
1758
- background-color: var(--color-surface-inverted-100);
1759
- color: var(--color-text-inverted-400);
1760
- padding-top: var(--space-scale-2);
1761
- padding-bottom: var(--space-scale-2);
1762
- z-index: 1;
1763
-
1764
- .nav-items {
1765
- display: flex;
1766
- flex-direction: column;
1767
- padding: 0 var(--space-scale-1);
1768
- width: 100%;
1769
- }
1770
-
1771
- .nav-items.sidebar-closed {
1772
- a span {
1773
- ${visuallyHiddenCss}
1774
- }
1775
-
1776
- details summary span {
1777
- ${visuallyHiddenCss}
1778
- }
1779
- }
1780
-
1781
- .sidebar-header {
1782
- width: 100%;
1783
- display: grid;
1784
- grid-template-columns: 1fr auto;
1785
- align-items: center;
1786
- justify-content: center;
1787
- padding: 0 var(--space-scale-2);
1788
-
1789
- button {
1790
- background-color: transparent;
1791
- color: var(--color-text-inverted-400);
1792
- border: none;
1793
- }
1794
- }
1795
-
1796
- .sidebar-header.sidebar-closed {
1797
- padding: 0 var(--space-scale-1);
1798
- .logo {
1799
- display: none;
1800
- visibility: hidden;
1801
- }
1802
- }
1803
-
1804
- hr {
1805
- width: 100%;
1806
- height: 1px;
1807
- background-color: var(--color-surface-inverted-200);
1808
- border: none;
1809
- }
1810
-
1811
- .tertiary-nav {
1812
- display: flex;
1813
- flex-direction: column;
1814
- margin-top: auto;
1815
- width: 100%;
1816
-
1817
- .external-link {
1818
- font-size: var(--menu-font-size);
1819
- line-height: var(--font-line-height-100);
1820
-
1821
- .icon {
1822
- width: var(--space-scale-2);
1823
- height: var(--space-scale-2);
1824
- }
1825
- }
1826
- }
1827
-
1828
- .tertiary-nav.sidebar-closed {
1829
- .external-link,
1830
- hr,
1831
- #client-selector {
1832
- display: none;
1833
- visibility: hidden;
1834
- }
1835
-
1836
- a span {
1837
- ${visuallyHiddenCss}
1838
- }
1839
- }
1840
-
1841
- .icon {
1842
- display: flex;
1843
- align-items: center;
1844
- width: var(--space-scale-3);
1845
- height: var(--space-scale-3);
1846
- color: var(--nav-item-color);
1847
- }
1848
-
1849
- .nav-item {
1850
- display: flex;
1851
- font-size: var(--menu-font-size);
1852
- line-height: var(--font-line-height-100);
1853
- gap: var(--space-scale-1-5);
1854
- border-radius: var(--border-radius-100);
1855
- color: var(--nav-item-color);
1856
- align-items: center;
1857
- padding: var(--space-scale-1);
1858
- width: 100%;
1859
- text-decoration: none;
1860
- }
1861
- }
1862
-
1863
- nav.sidebar-closed {
1864
- width: fit-content;
1865
-
1866
- :host {
1867
- --nav-bar-width: fit-content;
1868
- }
1869
- }
1870
-
1871
- details {
1872
- border-radius: var(--border-radius-100);
1873
-
1874
- summary {
1875
- font-size: var(--menu-font-size);
1876
- line-height: var(--font-line-height-100);
1877
- position: relative;
1878
- display: flex;
1879
- align-items: baseline;
1880
-
1881
- &::marker {
1882
- display: none;
1883
- }
1884
-
1885
- &::-webkit-details-marker {
1886
- display: none;
1887
- }
1888
- }
1889
-
1890
- .chevron {
1891
- margin-left: auto;
1892
- margin-right: var(--space-scale-1);
1893
- width: var(--space-scale-2);
1894
- }
1895
-
1896
- &[open] .chevron svg {
1897
- transform: rotate(180deg);
1898
- }
1899
-
1900
- .dropdown-items {
1901
- display: flex;
1902
- flex-direction: column;
1903
- }
1904
- }
1905
-
1906
- details > summary {
1907
- display: flex;
1908
- gap: var(--space-scale-1-5);
1909
- padding: var(--space-scale-1);
1910
- border-radius: var(--border-radius-100);
1911
- color: var(--nav-item-color);
1912
- align-items: center;
1913
-
1914
- a {
1915
- color: var(--nav-item-color);
1916
- }
1917
-
1918
- &:hover,
1919
- &:focus-visible {
1920
- background-color: var(--color-surface-inverted-200);
1921
- border-radius: var(--border-radius-100);
1922
- text-decoration: none;
1923
- }
1924
- }
1925
-
1926
- .sidebar-closed details:has(.current-page) > summary {
1927
- --nav-item-color: var(--color-primary-400);
1928
- border-radius: var(--border-radius-100);
1929
- background-color: var(--color-primary-100);
1930
- color: var(--nav-item-color);
1931
- }
1932
-
1933
- .sub-nav-item {
1934
- width: 100%;
1935
- display: flex;
1936
- padding-left: 44px;
1937
- padding-top: 10px;
1938
- padding-bottom: 10px;
1939
- color: var(--color-text-inverted-400);
1940
- font-size: var(--menu-font-size);
1941
- line-height: var(--font-line-height-100);
1942
- text-decoration: none;
1943
-
1944
- button {
1945
- color: var(--color-text-inverted-400);
1946
- padding: 0;
1947
- }
1948
- }
1949
-
1950
- .sub-nav-item:hover,
1951
- .sub-nav-item:focus-visible,
1952
- .nav-item:hover,
1953
- .nav-item:focus-visible {
1954
- background-color: var(--color-surface-inverted-200);
1955
- border-radius: var(--border-radius-100);
1956
- text-decoration: none;
1957
- color: var(--color-text-inverted-400);
1958
-
1959
- .icon {
1960
- color: var(--color-text-inverted-400);
1961
- }
1962
- }
1963
-
1964
- .current-page {
1965
- --nav-item-color: var(--color-primary-400);
1966
- border-radius: var(--border-radius-100);
1967
- background-color: var(--color-primary-100);
1968
- color: var(--nav-item-color);
1969
- }
1970
-
1971
- .link-page {
1972
- display: flex;
1973
- position: absolute;
1974
- overflow: auto;
1975
- flex-direction: column;
1976
- gap: var(--space-scale-4);
1977
- padding: var(--space-scale-5);
1978
- left: var(--nav-bar-width);
1979
- background-color: var(--color-surface-200);
1980
- width: calc(100% - var(--nav-bar-width));
1981
- height: 100%;
1982
- }
1983
-
1984
- .tooltip {
1985
- position: absolute;
1986
- display: flex;
1987
- white-space: nowrap;
1988
- align-items: center;
1989
- gap: var(--space-scale-1);
1990
- color: black;
1991
- background-color: var(--color-surface-600);
1992
- padding: var(--space-scale-1);
1993
- z-index: 1000;
1994
- border-radius: var(--border-radius-50);
1995
- font-weight: var(--font-weight-medium);
1996
- }
1997
-
1998
- .nav-toggle-button {
1999
- position: relative;
2000
- }
2001
-
2002
- .nav-toggle-tooltip {
2003
- left: 100%;
2004
- top: 100%;
2005
- visibility: hidden;
2006
- opacity: 0;
2007
- }
2008
-
2009
- .nav-toggle-button:hover .nav-toggle-tooltip {
2010
- visibility: visible;
2011
- opacity: 1;
2012
- }
2013
-
2014
- #client-selector {
2015
- display: flex;
2016
- align-items: center;
2017
- padding: var(--space-scale-1) 0;
2018
- margin-bottom: var(--space-scale-2);
2019
- }
2020
-
2021
- #client-selector tt-combobox {
2022
- --tt-combobox-color: var(--color-text-inverted-400);
2023
- --tt-combobox-dropdown-color: var(--color-text-inverted-400);
2024
- --tt-combobox-list-background-color: var(--color-surface-inverted-100);
2025
- --tt-combobox-option-background-color-hover: var(--color-surface-inverted-200);
2026
- --tt-combobox-placeholder-color: var(--color-text-inverted-300);
2027
- --tt-combobox-background-color: var(--color-surface-inverted-100);
2028
- --tt-combobox-hover-background-color: var(--color-surface-inverted-200);
2029
- --tt-combobox-list-max-width: 80ch;
2030
- --tt-combobox-min-width: 244px;
2031
- --tt-combobox-max-width: 244px;
2032
- --tt-combobox-option-selected-color: var(--color-text-inverted-500);
2033
- --tt-combobox-border-color: var(--color-surface-inverted-200);
2034
- }
2035
-
2036
- .single-client-name {
2037
- height: 39px;
2038
- padding: var(--space-scale-1); /* match tt-combobox height */
2039
- font-size: var(--font-size-200);
2040
- color: var(--color-text-inverted-200);
2041
- text-wrap: nowrap;
2042
- overflow: hidden;
2043
- text-overflow: ellipsis;
2044
- }
2045
- `;
2046
-
2047
- // src/triptease-logo.ts
2048
- var tripteaseLogo = `<svg width="112" height="32" viewBox="0 0 112 32" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-label="Triptease Logo">
2049
- <rect width="112" height="32" fill="url(#pattern0_72_1169)"/>
2050
- <defs>
2051
- <pattern id="pattern0_72_1169" patternContentUnits="objectBoundingBox" width="1" height="1">
2052
- <use xlink:href="#image0_72_1169" transform="matrix(0.000881057 0 0 0.0030837 0 -0.00110132)"/>
2053
- </pattern>
2054
- <image id="image0_72_1169" width="1135" height="325" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABG8AAAFFCAIAAADdPldRAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAEb6ADAAQAAAABAAABRQAAAACmZMhMAABAAElEQVR4Ae2dB4AkRdmwb9OFvQMOUAmSDyQoQbiABBVQ9AgKd0eWrCLZj4zir3yCYCCDKIgS5chJFBBE+QThOHJQkuSspMu36X+6a7e3d3Znb3d2dmd65mmavZruik9VV9Vb9VZVTVtb2zAvCUhAAhKQgAQkIAEJSEACEugngdp+2te6BCQgAQlIQAISkIAEJCABCUQElKYsBxKQgAQkIAEJSEACEpCABAohoDRVCDXdSEACEpCABCQgAQlIQAISUJqyDEhAAhKQgAQkIAEJSEACEiiEgNJUIdR0IwEJSEACEpCABCQgAQlIQGnKMiABCUhAAhKQgAQkIAEJSKAQAkpThVDTjQQkIAEJSEACEpCABCQgAaUpy4AEJCABCUhAAhKQgAQkIIFCCChNFUJNNxKQgAQkIAEJSEACEpCABJSmLAMSkIAEJCABCUhAAhKQgAQKIaA0VQg13UhAAhKQgAQkIAEJSEACElCasgxIQAISkIAEJCABCUhAAhIohIDSVCHUdCMBCUhAAhKQgAQkIAEJSEBpyjIgAQlIQAISkIAEJCABCUigEAJKU4VQ040EJCABCUhAAhKQgAQkIAGlKcuABCQgAQlIQAISkIAEJCCBQggoTRVCTTcSkIAEJCABCUhAAhKQgASUpiwDEpCABCQgAQlIQAISkIAECiGgNFUINd1IQAISkIAEJCABCUhAAhJQmrIMSEACEpCABCQgAQlIQAISKISA0lQh1HQjAQlIQAISkIAEJCABCUhAacoyIAEJSEACEpCABCQgAQlIoBACSlOFUNONBCQgAQlIQAISkIAEJCABpSnLgAQkIAEJSEACEpCABCQggUIIKE0VQk03EpCABCQgAQlIQAISkIAElKYsAxKQgAQkIAEJSEACEpCABAohoDRVCDXdSEACEpCABCQgAQlIQAISUJqyDEhAAhKQgAQkIAEJSEACEiiEgNJUIdR0IwEJSEACEpCABCQgAQlIQGnKMiABCUhAAhKQgAQkIAEJSKAQAkpThVDTjQQkIAEJSEACEpCABCQgAaUpy4AEJCABCUhAAhKQgAQkIIFCCChNFUJNNxKQgAQkIAEJSEACEpCABJSmLAMSkIAEJCABCUhAAhKQgAQKIaA0VQg13UhAAhKQgAQkIAEJSEACElCasgxIQAISkIAEJCABCUhAAhIohIDSVCHUdCMBCUhAAhKQgAQkIAEJSEBpyjIgAQlIQAISkIAEJCABCUigEAJKU4VQ040EJCABCUhAAhKQgAQkIAGlKcuABCQgAQlIQAISkIAEJCCBQggoTRVCTTcSkIAEJCABCUhAAhKQgASUpiwDEpCABCQgAQlIQAISkIAECiGgNFUINd1IQAISkIAEJCABCUhAAhJQmrIMSEACEpCABCQgAQlIQAISKISA0lQh1HQjAQlIQAISkIAEJCABCUhAacoyIAEJSEACEpCABCQgAQlIoBACSlOFUNONBCQgAQlIQAISkIAEJCABpSnLgAQkIAEJSEACEpCABCQggUIIKE0VQk03EpCABCQgAQlIQAISkIAElKYsAxKQgAQkIAEJSEACEpCABAohoDRVCDXdSEACEpCABCQgAQlIQAISUJqyDEhAAhKQgAQkIAEJSEACEiiEgNJUIdR0IwEJSEACEpCABCQgAQlIQGnKMiABCUhAAhKQgAQkIAEJSKAQAkpThVDTjQQkIAEJSEACEpCABCQgAaUpy4AEJCABCUhAAhKQgAQkIIFCCChNFUJNNxKQgAQkIAEJSEACEpCABJSmLAMSkIAEJCABCUhAAhKQgAQKIaA0VQg13UhAAhKQgAQkIAEJSEACElCasgxIQAISkIAEJCABCUhAAhIohIDSVCHUdCMBCUhAAhKQgAQkIAEJSEBpyjIgAQlIQAISkIAEJCABCUigEAJKU4VQ040EJCABCUhAAhKQgAQkIAGlKcuABCQgAQlIQAISkIAEJCCBQggoTRVCTTcSkIAEJCABCUhAAhKQgASUpiwDEpCABCQgAQlIQAISkIAECiGgNFUINd1IQAISkIAEJCABCUhAAhJQmrIMSEACEpCABCQgAQlIQAISKISA0lQh1HQjAQlIQAISkIAEJCABCUhAacoyIAEJSEACEpCABCQgAQlIoBACSlOFUNONBCQgAQlIQAISkIAEJCABpSnLgAQkIAEJSEACEpCABCQggUIIKE0VQk03EpCABCQgAQlIQAISkIAE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21ZeaaVe0sde2Gj6xcuo/L564VQtr9g8nRV3pJbzKPOlmTHysCtxTg8mn32fS0ACfSfAxBRiwK233hqOggxiUlgHxRohPr011lijR9+wed999z388EORXlZ1XPmqIEZ8XnjhBY61RKe9OkiYSgn0g4C9vX7AKjeriVpzuUWswuJD65JcyEjMM3zyk5/srumXpBotCcw4cT+ihElVG2qGseEvAlW83q/noZF4TXy0J2To51U1rkpPPCswk7vS01pG6bv55pvZ6yXaXAE17I5FQUgIHB279FJL33DDDUsvtRRT1tTb3XVATvvFadFS2CoQqCZNmhRm6qiI2DUnXR1xIvkdt9/+5muv929lchkVgdJEJayPTVbJ9hIJuuM5dy+WfVVuBJSmyi1HjE9ZE6hviA6emjtvXvc9/brEm9baw867EKnqH5QZjixjo7DeKSBO9W7BtxKQQAEEUPO76KKLRo8eHeajEh8494Jp4d123x2Vv7332Sc625clUpzinbqo8x+cOfONV19rKd3J2qnoDLpxxRVXamioh0y8eKpz9IcRH8jsvscec2fPJhIL5rWf9jvoETIACWSBgNJUFnIpTxwd4MwDZjAfs165ufmtN9/sPn45mKHqd7YJREO8NcPefvutbCfD2EsgmwTuv//+p556CjW/nOgjISz/yU9+4xvfQJdg3333GbPYYpEU0XWHoTA/89Of/jQ6Urair5Dw7bffjklyEso+8unkNjc3A5DTqI74nyPmzZmLyh+CaJA/09Y05xBgo8jkznnlz0oioDRVSblpWgadABtLcNrgG2++ydrlQQ/MACqCQLSEPT5y6rlnn6uIBJkICWSMwKWXXhqprrW0jBkzJh115IdtJk9uHDWKwQ627MPMBHLOqb7z589jBO2mm2569eVX0m4r1bz9dttzzjjnK+bMpbNpB4eAkOq777579912e/7Z55BF2SyxUjmYLgn0i4DSVL9wldJyUD5IBjkweA09gTB69+QTT9A2py8aYK6gaN65EXbXMc6hj60hlgOBaNF2tOlwzaOPPZovPoyIr7HGp+jtpQsV5nz2fS4BCSySQNBGe/vNt27/020o2rJciifDh0dTLigX8NGxbupb3/42kgNDHky2HHPssWH+KtTzwX+maPgSG0ePPu20X/AkR1dwkXHInIU1116b/XLYS4mpp5zlwYwhQgYt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BCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgyAaWpLOeecZeABCQgAQlIQAISkIAESkdAaap07A1ZAhKQgAQkIAEJSEACEsgygf8P8E5YI8a8mpEAAAAASUVORK5CYII="/>
2055
- </defs>
2056
- </svg>`;
2057
-
2058
- // src/urlMappings.ts
2059
- var urlMappings = {
2060
- "/paidsearch/:clientKey/*": "/channels",
2061
- "/meta/:clientKey/*": "/channels",
2062
- "/retargeting/:clientKey/*": "/channels",
2063
- "/messages/:clientKey/*": "/channels",
2064
- "/:clientKey/email": "/channels",
2065
- "/pricematch/:clientKey/*": "/channels",
2066
- "/chat/insights/:clientKey": "/channels",
2067
- "/:clientKey/meta/*": "/channels",
2068
- "/:clientKey/paidsearch/*": "/channels",
2069
- "/:clientKey/retargeting/*": "/channels",
2070
- "/:clientKey/messages/*": "/channels",
2071
- "/:clientKey/pricematch/*": "/channels",
2072
- "/:clientKey/chat/insights": "/channels",
2073
- "/:clientKey/parity": "/parity/$CLIENT_KEY",
2074
- "/:clientKey/parity/*": "/parity/$CLIENT_KEY",
2075
- // Settings routes - legacy paths map to new navbar link
2076
- "/settings/:clientKey/*": "/$CLIENT_KEY/settings/guides",
2077
- // Settings routes with :clientKey first (excluding guides/hotels which have direct links)
2078
- "/:clientKey/settings/branding": "/$CLIENT_KEY/settings/guides",
2079
- "/:clientKey/settings/price-check": "/$CLIENT_KEY/settings/guides",
2080
- "/:clientKey/settings/price-config": "/$CLIENT_KEY/settings/guides",
2081
- "/:clientKey/settings/hotel-details-finder": "/$CLIENT_KEY/settings/guides",
2082
- "/:clientKey/settings/deactivation-center": "/$CLIENT_KEY/settings/guides",
2083
- "/:clientKey/account/team": "/account/team/$CLIENT_KEY",
2084
- "/:clientKey/account/team/*": "/account/team/$CLIENT_KEY",
2085
- "/:clientKey/account/billing-management": "/account/billing-management/$CLIENT_KEY",
2086
- "/:clientKey/account/billing-management/*": "/account/billing-management/$CLIENT_KEY",
2087
- "/:clientKey/subscriptions": "/subscriptions/$CLIENT_KEY",
2088
- "/:clientKey/subscriptions/*": "/subscriptions/$CLIENT_KEY"
2089
- };
2090
-
2091
- // src/Routes.ts
2092
- var Routes = {
2093
- CampaignManager: "CampaignManager"
2094
- };
2095
-
2096
- // src/Config.ts
2097
- var Config = {
2098
- NavbarStateCookieName: "tt-navbar-state",
2099
- NavbarStateCookieOpenValue: "open",
2100
- NavbarStateCookieClosedValue: "closed"
2101
- };
2102
-
2103
- // src/TtNavbar.ts
2104
- var jsonArrayConverter = (value) => {
2105
- if (!value) return [];
2106
- try {
2107
- return JSON.parse(value);
2108
- } catch {
2109
- return [];
2110
- }
2111
- };
2112
- var TtNavbar = class extends i4 {
2113
- constructor() {
2114
- super(...arguments);
2115
- this.campaignManagerUrl = "https://app.campaign-manager.triptease.io";
2116
- this.clients = [];
2117
- this.initialState = void 0;
2118
- this.isOpen = true;
2119
- /*
2120
- * Set the active state for the current page.
2121
- *
2122
- * This function iterates over all nav links and compares the current URL path with the href of each link.
2123
- * If the current URL path starts with the href of a link, the link is marked as active. If multiple links
2124
- * share the same prefix, the longest prefix is used as it is more specific.
2125
- *
2126
- * Example:
2127
- * - Current URL: /channels/123
2128
- * - Nav links:
2129
- * - /channels
2130
- * - /channels/123
2131
- * - /channels/456
2132
- *
2133
- * Loop 1: currentPath = /channels/123, linkPath = /channels, bestMatch = /channels
2134
- * Loop 2: currentPath = /channels/123, linkPath = /channels/123, bestMatch = /channels/123
2135
- * Loop 3: currentPath = /channels/123, linkPath = /channels/456, bestMatch = /channels/123
2136
- * Result: /channels/123 is marked as active
2137
- *
2138
- */
2139
- this.setActiveState = () => {
2140
- const currentPath = window.location.pathname;
2141
- let bestMatch;
2142
- let bestMatchLength = 0;
2143
- if (this.activeRoute === Routes.CampaignManager) {
2144
- bestMatch = this.campaignManagerLink;
2145
- }
2146
- if (!bestMatch && this.clientKey) {
2147
- const parsedPath = currentPath.replace(this.clientKey, "$CLIENT_KEY");
2148
- let mappedUrl = urlMappings[parsedPath];
2149
- const matchedPattern = this.mappedUrlPatterns.find(
2150
- (pattern) => pattern.test(currentPath, window.location.origin)
2151
- )?.pathname;
2152
- if (matchedPattern) {
2153
- mappedUrl = urlMappings[matchedPattern];
2154
- }
2155
- if (mappedUrl) {
2156
- const clientSpecificUrl = mappedUrl.replace("$CLIENT_KEY", this.clientKey);
2157
- const links = Object.values(this.allNavLinks);
2158
- bestMatch = links.find((link2) => link2.href.includes(clientSpecificUrl));
2159
- }
2160
- }
2161
- if (!bestMatch) {
2162
- for (const link2 of this.allNavLinks) {
2163
- const linkPath = new URL(link2.href).pathname;
2164
- if (currentPath.startsWith(linkPath)) {
2165
- if (linkPath.length > bestMatchLength) {
2166
- bestMatch = link2;
2167
- bestMatchLength = linkPath.length;
2168
- }
2169
- }
2170
- }
2171
- }
2172
- for (const link2 of this.allNavLinks) {
2173
- link2.classList.remove("current-page");
2174
- if (link2.hasAttribute("aria-current")) {
2175
- link2.attributes.removeNamedItem("aria-current");
2176
- }
2177
- }
2178
- if (bestMatch) {
2179
- bestMatch.classList.add("current-page");
2180
- bestMatch.setAttribute("aria-current", "page");
2181
- const parentDetails = bestMatch.closest("details");
2182
- if (parentDetails) {
2183
- parentDetails.setAttribute("open", "");
2184
- }
2185
- } else {
2186
- console.error(`No matching nav link found for path: ${currentPath}`);
2187
- }
2188
- };
2189
- this.closeAllDetails = (element) => {
2190
- this.allDetailsElements.forEach((detail) => {
2191
- if (element && !detail.contains(element)) {
2192
- detail.removeAttribute("open");
2193
- } else if (!element) {
2194
- detail.removeAttribute("open");
2195
- }
2196
- });
2197
- };
2198
- this.toggleSidebar = () => {
2199
- this.closeAllDetails();
2200
- this.isOpen = !this.isOpen;
2201
- const { NavbarStateCookieName, NavbarStateCookieOpenValue, NavbarStateCookieClosedValue } = Config;
2202
- const domain = window.location.hostname.endsWith(".triptease.io") ? "domain=.triptease.io" : "";
2203
- document.cookie = `${NavbarStateCookieName}=${this.isOpen ? NavbarStateCookieOpenValue : NavbarStateCookieClosedValue}; path=/; max-age=31536000; ${domain}`;
2204
- };
2205
- this.handleDetailsToggle = (e10) => {
2206
- const { newState } = e10;
2207
- const target2 = e10.currentTarget;
2208
- if (newState === "open") {
2209
- if (!this.isOpen) {
2210
- this.toggleSidebar();
2211
- }
2212
- this.closeAllDetails(target2);
2213
- }
2214
- };
2215
- this.buildUrl = (path) => {
2216
- if (!this.clientKey) throw new Error("clientKey is required");
2217
- const formattedPath = path.replace("$CLIENT_KEY", this.clientKey);
2218
- if (!this.platformUrl) return formattedPath;
2219
- return new URL(formattedPath, this.platformUrl).toString();
2220
- };
2221
- this.onAnchorClick = (e10) => {
2222
- if (this.navigate) {
2223
- this.navigate(e10);
2224
- this.setActiveState();
2225
- }
2226
- };
2227
- this.handleClientChange = (e10) => {
2228
- const combobox = e10.target;
2229
- const selectedClientKey = combobox.value?.[0];
2230
- if (selectedClientKey && this.onClientChange) {
2231
- this.onClientChange(selectedClientKey);
2232
- }
2233
- };
2234
- }
2235
- firstUpdated() {
2236
- this.setActiveState();
2237
- }
2238
- connectedCallback() {
2239
- window.addEventListener("popstate", this.setActiveState);
2240
- window.addEventListener("tetris:navigate", this.setActiveState);
2241
- super.connectedCallback();
2242
- if (this.initialState) {
2243
- this.isOpen = this.initialState === "open";
2244
- }
2245
- }
2246
- disconnectedCallback() {
2247
- window.removeEventListener("popstate", this.setActiveState);
2248
- window.removeEventListener("tetris:navigate", this.setActiveState);
2249
- super.disconnectedCallback();
2250
- }
2251
- get mappedUrlPatterns() {
2252
- return Object.keys(urlMappings).map(
2253
- (pattern) => new URLPattern({ pathname: pattern, baseURL: window.location.origin })
2254
- );
2255
- }
2256
- render() {
2257
- return x`
2258
- <nav id=${this.id} class="${this.isOpen ? "" : "sidebar-closed"}">
2259
- <div class="sidebar-header ${this.isOpen ? "" : "sidebar-closed"}">
2260
- <div class="logo">
2261
- ${o8(tripteaseLogo)}
2262
- </div>
2263
- <button id="navbar-toggle-btn" class="nav-item nav-toggle-button" @click=${this.toggleSidebar}>
2264
- ${o8(sidebarCollapsed)}
2265
- <span class="tooltip nav-toggle-tooltip">
2266
- ${o8(sidebarCollapsed)}
2267
- <span>${this.isOpen ? x`Collapse sidebar` : x`Expand sidebar`}</span>
2268
- </span>
2269
- </button>
2270
- </div>
2271
-
2272
- <div class="nav-items ${this.isOpen ? "" : "sidebar-closed"}">
2273
- <a
2274
- class="nav-item"
2275
- href=${this.buildUrl("/")}
2276
- @click=${this.onAnchorClick}
2277
- data-intercom-target="dashboard"
2278
- >${o8(home)}<span>Dashboard</span></a
2279
- >
2280
- <a id="${Routes.CampaignManager}" class="nav-item" href=${this.campaignManagerUrl}
2281
- @click=${this.onAnchorClick}
2282
- data-intercom-target="campaigns"
2283
- >${o8(campaigns)}<span>Campaigns</span></a
2284
- >
2285
- <a
2286
- class="nav-item"
2287
- href=${this.buildUrl("/$CLIENT_KEY/channels")}
2288
- @click=${this.onAnchorClick}
2289
- data-intercom-target="channels"
2290
- >${o8(channels)}<span>Channels</span></a
2291
- >
2292
- <details id="market-insights" @toggle=${this.handleDetailsToggle} data-intercom-target="market-insights">
2293
- <summary>
2294
- ${o8(graph)}
2295
- <span>Market Insights</span>
2296
- <span class="icon chevron"> ${o8(chevronDown)}</span>
2297
- </summary>
2298
- <div class="dropdown-items">
2299
- <a
2300
- class="sub-nav-item"
2301
- href=${this.buildUrl("/parity/$CLIENT_KEY")}
2302
- @click=${this.onAnchorClick}
2303
- data-intercom-target="parity-monitoring"
2304
- >Parity monitoring</a
2305
- >
2306
- <a
2307
- class="sub-nav-item"
2308
- href=${this.buildUrl("/$CLIENT_KEY/guest-insights")}
2309
- @click=${this.onAnchorClick}
2310
- data-intercom-target="guest-insights"
2311
- >Guest insights</a
2312
- >
2313
- </div>
2314
- </details>
2315
- <details id="settings" @toggle=${this.handleDetailsToggle} data-intercom-target="settings">
2316
- <summary>
2317
- ${o8(gear)}
2318
- <span>Settings</span>
2319
- <span class="icon chevron"> ${o8(chevronDown)}</span>
2320
- </summary>
2321
- <div class="dropdown-items">
2322
- <a
2323
- class="sub-nav-item"
2324
- href=${this.buildUrl("/$CLIENT_KEY/guest-behavioural-data")}
2325
- @click=${this.onAnchorClick}
2326
- data-intercom-target="email-setup"
2327
- >Email setup</a
2328
- >
2329
- <a
2330
- class="sub-nav-item"
2331
- href=${this.buildUrl("/$CLIENT_KEY/crm-config")}
2332
- @click=${this.onAnchorClick}
2333
- data-intercom-target="crm-connectivity"
2334
- >CRM connectivity</a
2335
- >
2336
- <a
2337
- class="sub-nav-item"
2338
- href=${this.buildUrl("/$CLIENT_KEY/settings/guides")}
2339
- @click=${this.onAnchorClick}
2340
- data-intercom-target="group-settings"
2341
- >Group settings</a
2342
- >
2343
- <a
2344
- class="sub-nav-item"
2345
- href=${this.buildUrl("/$CLIENT_KEY/settings/hotels")}
2346
- @click=${this.onAnchorClick}
2347
- data-intercom-target="property-settings"
2348
- >Property settings</a
2349
- >
2350
- </div>
2351
- </details>
2352
- <hr />
2353
- <details id="account" @toggle=${this.handleDetailsToggle} data-intercom-target="account">
2354
- <summary>
2355
- ${o8(user)}
2356
- <span>Account</span>
2357
- <span class="icon chevron"> ${o8(chevronDown)}</span>
2358
- </summary>
2359
- <div class="dropdown-items">
2360
- <a
2361
- class="sub-nav-item"
2362
- href=${this.buildUrl("/account")}
2363
- @click=${this.onAnchorClick}
2364
- data-intercom-target="user-settings"
2365
- >User settings</a
2366
- >
2367
- <!-- TODO: Change to /$CLIENT_KEY/account/team when the change in Tetris is ready -->
2368
- <a
2369
- class="sub-nav-item"
2370
- href=${this.buildUrl("/account/team/$CLIENT_KEY")}
2371
- @click=${this.onAnchorClick}
2372
- data-intercom-target="team-permissions"
2373
- >Team and permissions</a
2374
- >
2375
- </div>
2376
- </details>
2377
- <details id="billing-routes" @toggle=${this.handleDetailsToggle} data-intercom-target="billing">
2378
- <summary>
2379
- ${o8(wallet)}
2380
- <span>Billing</span>
2381
- <span class="icon chevron"> ${o8(chevronDown)}</span>
2382
- </summary>
2383
- <div>
2384
- <!-- TODO: Change to /$CLIENT_KEY/account/billing-management when the change in Tetris is ready -->
2385
- <a
2386
- class="sub-nav-item"
2387
- href=${this.buildUrl("/account/billing-management/$CLIENT_KEY")}
2388
- @click=${this.onAnchorClick}
2389
- data-intercom-target="booking-reconciliation"
2390
- >Booking reconciliation</a
2391
- >
2392
- <!-- TODO: Change to /$CLIENT_KEY/subscriptions when the change in Tetris is ready -->
2393
- <a
2394
- class="sub-nav-item"
2395
- href=${this.buildUrl("/subscriptions/$CLIENT_KEY")}
2396
- @click=${this.onAnchorClick}
2397
- data-intercom-target="subscriptions"
2398
- >Subscriptions</a
2399
- >
2400
- </div>
2401
- </details>
2402
- </div>
2403
- <div class="tertiary-nav ${this.isOpen ? "" : "sidebar-closed"}">
2404
- <div id="external-links" class="nav-items">
2405
- <a
2406
- class="nav-item external-link"
2407
- href='https://triptease.canny.io/feature-requests'
2408
- target="_blank"
2409
- rel="noreferrer"
2410
- >
2411
- Feature requests
2412
- ${o8(external)}
2413
- </a>
2414
- <a
2415
- class='nav-item external-link'
2416
- href='https://triptease.canny.io/changelog'
2417
- target="_blank"
2418
- rel="noreferrer"
2419
- >
2420
- Product updates
2421
- ${o8(external)}
2422
- </a>
2423
- <a
2424
- class='nav-item external-link'
2425
- href='https://help.triptease.com/'
2426
- target="_blank"
2427
- rel="noreferrer"
2428
- >
2429
- Help center
2430
- ${o8(external)}
2431
- </a>
2432
- <hr />
2433
- </div>
2434
- <div class='nav-items'>
2435
- <div id="client-selector">
2436
- ${this.clients.length > 1 ? x`
2437
- <tt-combobox
2438
- .openUpward=${true}
2439
- .value=${this.clientKey ? [this.clientKey] : []}
2440
- @change=${this.handleClientChange}
2441
- >
2442
- ${this.clients.map(
2443
- (client) => x`
2444
- <option slot="option" value=${client.clientKey}>${client.displayName}</option>
2445
- `
2446
- )}
2447
- </tt-combobox>
2448
- ` : x`
2449
- <div class="single-client-name">
2450
- ${this.clients.find((m3) => m3.clientKey === this.clientKey)?.displayName}
2451
- </div>
2452
- `}
2453
- </div>
2454
- <a
2455
- id="logout-link"
2456
- class="nav-item"
2457
- href=${this.buildUrl("/logout")}
2458
- @click=${this.onAnchorClick}
2459
- data-intercom-target="logout"
2460
- >${o8(logout)}<span>Logout</span></a>
2461
- </div>
2462
- </nav>
2463
- `;
2464
- }
2465
- };
2466
- TtNavbar.styles = styles3;
2467
- __decorateClass([
2468
- n4({ type: Function })
2469
- ], TtNavbar.prototype, "navigate", 2);
2470
- __decorateClass([
2471
- n4({ type: String, attribute: "campaign-manager-url" })
2472
- ], TtNavbar.prototype, "campaignManagerUrl", 2);
2473
- __decorateClass([
2474
- n4({ type: String, attribute: "platform-url" })
2475
- ], TtNavbar.prototype, "platformUrl", 2);
2476
- __decorateClass([
2477
- n4({ type: String, attribute: "client-key" })
2478
- ], TtNavbar.prototype, "clientKey", 2);
2479
- __decorateClass([
2480
- n4({ type: String, attribute: "active-route" })
2481
- ], TtNavbar.prototype, "activeRoute", 2);
2482
- __decorateClass([
2483
- n4({ type: Array, converter: jsonArrayConverter })
2484
- ], TtNavbar.prototype, "clients", 2);
2485
- __decorateClass([
2486
- n4({ type: String, attribute: "initial-state" })
2487
- ], TtNavbar.prototype, "initialState", 2);
2488
- __decorateClass([
2489
- r5()
2490
- ], TtNavbar.prototype, "isOpen", 2);
2491
- __decorateClass([
2492
- n4({ type: Object })
2493
- ], TtNavbar.prototype, "onClientChange", 2);
2494
- __decorateClass([
2495
- r6("details")
2496
- ], TtNavbar.prototype, "allDetailsElements", 2);
2497
- __decorateClass([
2498
- r6("a")
2499
- ], TtNavbar.prototype, "allNavLinks", 2);
2500
- __decorateClass([
2501
- e5(`a#${Routes.CampaignManager}`)
2502
- ], TtNavbar.prototype, "campaignManagerLink", 2);
2503
-
2504
- // src/tt-navbar.ts
2505
- if (typeof window !== "undefined") {
2506
- if (!window.customElements.get("tt-navbar")) {
2507
- window.customElements.define("tt-navbar", TtNavbar);
2508
- }
2509
- }
2510
- /*! Bundled license information:
2511
-
2512
- @lit/reactive-element/css-tag.js:
2513
- (**
2514
- * @license
2515
- * Copyright 2019 Google LLC
2516
- * SPDX-License-Identifier: BSD-3-Clause
2517
- *)
2518
-
2519
- @lit/reactive-element/reactive-element.js:
2520
- lit-html/lit-html.js:
2521
- lit-element/lit-element.js:
2522
- @lit/reactive-element/decorators/custom-element.js:
2523
- @lit/reactive-element/decorators/property.js:
2524
- @lit/reactive-element/decorators/state.js:
2525
- @lit/reactive-element/decorators/event-options.js:
2526
- @lit/reactive-element/decorators/base.js:
2527
- @lit/reactive-element/decorators/query.js:
2528
- @lit/reactive-element/decorators/query-all.js:
2529
- @lit/reactive-element/decorators/query-async.js:
2530
- @lit/reactive-element/decorators/query-assigned-nodes.js:
2531
- lit-html/directive.js:
2532
- lit-html/directives/unsafe-html.js:
2533
- lit-html/directives/unsafe-svg.js:
2534
- lit-html/directives/repeat.js:
2535
- (**
2536
- * @license
2537
- * Copyright 2017 Google LLC
2538
- * SPDX-License-Identifier: BSD-3-Clause
2539
- *)
2540
-
2541
- lit-html/is-server.js:
2542
- (**
2543
- * @license
2544
- * Copyright 2022 Google LLC
2545
- * SPDX-License-Identifier: BSD-3-Clause
2546
- *)
2547
-
2548
- @lit/reactive-element/decorators/query-assigned-elements.js:
2549
- (**
2550
- * @license
2551
- * Copyright 2021 Google LLC
2552
- * SPDX-License-Identifier: BSD-3-Clause
2553
- *)
2554
-
2555
- lit-html/directives/if-defined.js:
2556
- lit-html/directives/guard.js:
2557
- (**
2558
- * @license
2559
- * Copyright 2018 Google LLC
2560
- * SPDX-License-Identifier: BSD-3-Clause
2561
- *)
2562
-
2563
- lit-html/directive-helpers.js:
2564
- (**
2565
- * @license
2566
- * Copyright 2020 Google LLC
2567
- * SPDX-License-Identifier: BSD-3-Clause
2568
- *)
2569
- */
2570
- //# sourceMappingURL=tt-navbar.js.map