ds-one 0.3.0-alpha.4 → 0.3.0-alpha.6

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 +1 @@
1
- {"version":3,"file":"ds-one.bundle.js","sources":["../node_modules/signal-polyfill/dist/index.js","../node_modules/@lit-labs/signals/lib/signal-watcher.js","../node_modules/lit-html/directive.js","../node_modules/lit-html/lit-html.js","../node_modules/@lit-labs/signals/index.js","../DS1/0-face/device.ts","../DS1/0-face/i18n.ts","../DS1/0-face/preferences.ts","../DS1/0-face/pricing.ts","../DS1/0-face/theme.ts","../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-element/lit-element.js","../DS1/2-core/ds-text.ts","../DS1/2-core/ds-button.ts","../DS1/2-core/ds-banner.ts","../DS1/2-core/ds-card.ts","../node_modules/lit-html/directives/unsafe-html.js","../DS1/2-core/generated/ds-icon-map.ts","../DS1/2-core/ds-icon.ts","../DS1/2-core/ds-cycle.ts","../DS1/2-core/ds-date.ts","../DS1/2-core/ds-gap.ts","../DS1/2-core/ds-input.ts","../DS1/2-core/ds-tooltip.ts","../DS1/3-unit/ds-row.ts","../DS1/3-unit/ds-accordion.ts","../DS1/3-unit/ds-form.ts","../DS1/3-unit/ds-list.ts","../DS1/3-unit/ds-table.ts","../DS1/4-page/ds-container.ts","../DS1/4-page/ds-grid.ts","../DS1/4-page/ds-layout.ts"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateIn = (member, obj) => {\n if (Object(obj) !== obj)\n throw TypeError('Cannot use the \"in\" operator on this value');\n return member.has(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction defaultEquals(a, b) {\n return Object.is(a, b);\n}\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet activeConsumer = null;\nlet inNotificationPhase = false;\nlet epoch = 1;\nconst SIGNAL = /* @__PURE__ */ Symbol(\"SIGNAL\");\nfunction setActiveConsumer(consumer) {\n const prev = activeConsumer;\n activeConsumer = consumer;\n return prev;\n}\nfunction getActiveConsumer() {\n return activeConsumer;\n}\nfunction isInNotificationPhase() {\n return inNotificationPhase;\n}\nconst REACTIVE_NODE = {\n version: 0,\n lastCleanEpoch: 0,\n dirty: false,\n producerNode: void 0,\n producerLastReadVersion: void 0,\n producerIndexOfThis: void 0,\n nextProducerIndex: 0,\n liveConsumerNode: void 0,\n liveConsumerIndexOfThis: void 0,\n consumerAllowSignalWrites: false,\n consumerIsAlwaysLive: false,\n producerMustRecompute: () => false,\n producerRecomputeValue: () => {\n },\n consumerMarkedDirty: () => {\n },\n consumerOnSignalRead: () => {\n }\n};\nfunction producerAccessed(node) {\n if (inNotificationPhase) {\n throw new Error(\n typeof ngDevMode !== \"undefined\" && ngDevMode ? `Assertion error: signal read during notification phase` : \"\"\n );\n }\n if (activeConsumer === null) {\n return;\n }\n activeConsumer.consumerOnSignalRead(node);\n const idx = activeConsumer.nextProducerIndex++;\n assertConsumerNode(activeConsumer);\n if (idx < activeConsumer.producerNode.length && activeConsumer.producerNode[idx] !== node) {\n if (consumerIsLive(activeConsumer)) {\n const staleProducer = activeConsumer.producerNode[idx];\n producerRemoveLiveConsumerAtIndex(staleProducer, activeConsumer.producerIndexOfThis[idx]);\n }\n }\n if (activeConsumer.producerNode[idx] !== node) {\n activeConsumer.producerNode[idx] = node;\n activeConsumer.producerIndexOfThis[idx] = consumerIsLive(activeConsumer) ? producerAddLiveConsumer(node, activeConsumer, idx) : 0;\n }\n activeConsumer.producerLastReadVersion[idx] = node.version;\n}\nfunction producerIncrementEpoch() {\n epoch++;\n}\nfunction producerUpdateValueVersion(node) {\n if (!node.dirty && node.lastCleanEpoch === epoch) {\n return;\n }\n if (!node.producerMustRecompute(node) && !consumerPollProducersForChange(node)) {\n node.dirty = false;\n node.lastCleanEpoch = epoch;\n return;\n }\n node.producerRecomputeValue(node);\n node.dirty = false;\n node.lastCleanEpoch = epoch;\n}\nfunction producerNotifyConsumers(node) {\n if (node.liveConsumerNode === void 0) {\n return;\n }\n const prev = inNotificationPhase;\n inNotificationPhase = true;\n try {\n for (const consumer of node.liveConsumerNode) {\n if (!consumer.dirty) {\n consumerMarkDirty(consumer);\n }\n }\n } finally {\n inNotificationPhase = prev;\n }\n}\nfunction producerUpdatesAllowed() {\n return (activeConsumer == null ? void 0 : activeConsumer.consumerAllowSignalWrites) !== false;\n}\nfunction consumerMarkDirty(node) {\n var _a;\n node.dirty = true;\n producerNotifyConsumers(node);\n (_a = node.consumerMarkedDirty) == null ? void 0 : _a.call(node.wrapper ?? node);\n}\nfunction consumerBeforeComputation(node) {\n node && (node.nextProducerIndex = 0);\n return setActiveConsumer(node);\n}\nfunction consumerAfterComputation(node, prevConsumer) {\n setActiveConsumer(prevConsumer);\n if (!node || node.producerNode === void 0 || node.producerIndexOfThis === void 0 || node.producerLastReadVersion === void 0) {\n return;\n }\n if (consumerIsLive(node)) {\n for (let i = node.nextProducerIndex; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n while (node.producerNode.length > node.nextProducerIndex) {\n node.producerNode.pop();\n node.producerLastReadVersion.pop();\n node.producerIndexOfThis.pop();\n }\n}\nfunction consumerPollProducersForChange(node) {\n assertConsumerNode(node);\n for (let i = 0; i < node.producerNode.length; i++) {\n const producer = node.producerNode[i];\n const seenVersion = node.producerLastReadVersion[i];\n if (seenVersion !== producer.version) {\n return true;\n }\n producerUpdateValueVersion(producer);\n if (seenVersion !== producer.version) {\n return true;\n }\n }\n return false;\n}\nfunction producerAddLiveConsumer(node, consumer, indexOfThis) {\n var _a;\n assertProducerNode(node);\n assertConsumerNode(node);\n if (node.liveConsumerNode.length === 0) {\n (_a = node.watched) == null ? void 0 : _a.call(node.wrapper);\n for (let i = 0; i < node.producerNode.length; i++) {\n node.producerIndexOfThis[i] = producerAddLiveConsumer(node.producerNode[i], node, i);\n }\n }\n node.liveConsumerIndexOfThis.push(indexOfThis);\n return node.liveConsumerNode.push(consumer) - 1;\n}\nfunction producerRemoveLiveConsumerAtIndex(node, idx) {\n var _a;\n assertProducerNode(node);\n assertConsumerNode(node);\n if (typeof ngDevMode !== \"undefined\" && ngDevMode && idx >= node.liveConsumerNode.length) {\n throw new Error(\n `Assertion error: active consumer index ${idx} is out of bounds of ${node.liveConsumerNode.length} consumers)`\n );\n }\n if (node.liveConsumerNode.length === 1) {\n (_a = node.unwatched) == null ? void 0 : _a.call(node.wrapper);\n for (let i = 0; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n const lastIdx = node.liveConsumerNode.length - 1;\n node.liveConsumerNode[idx] = node.liveConsumerNode[lastIdx];\n node.liveConsumerIndexOfThis[idx] = node.liveConsumerIndexOfThis[lastIdx];\n node.liveConsumerNode.length--;\n node.liveConsumerIndexOfThis.length--;\n if (idx < node.liveConsumerNode.length) {\n const idxProducer = node.liveConsumerIndexOfThis[idx];\n const consumer = node.liveConsumerNode[idx];\n assertConsumerNode(consumer);\n consumer.producerIndexOfThis[idxProducer] = idx;\n }\n}\nfunction consumerIsLive(node) {\n var _a;\n return node.consumerIsAlwaysLive || (((_a = node == null ? void 0 : node.liveConsumerNode) == null ? void 0 : _a.length) ?? 0) > 0;\n}\nfunction assertConsumerNode(node) {\n node.producerNode ?? (node.producerNode = []);\n node.producerIndexOfThis ?? (node.producerIndexOfThis = []);\n node.producerLastReadVersion ?? (node.producerLastReadVersion = []);\n}\nfunction assertProducerNode(node) {\n node.liveConsumerNode ?? (node.liveConsumerNode = []);\n node.liveConsumerIndexOfThis ?? (node.liveConsumerIndexOfThis = []);\n}\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction computedGet(node) {\n producerUpdateValueVersion(node);\n producerAccessed(node);\n if (node.value === ERRORED) {\n throw node.error;\n }\n return node.value;\n}\nfunction createComputed(computation) {\n const node = Object.create(COMPUTED_NODE);\n node.computation = computation;\n const computed = () => computedGet(node);\n computed[SIGNAL] = node;\n return computed;\n}\nconst UNSET = /* @__PURE__ */ Symbol(\"UNSET\");\nconst COMPUTING = /* @__PURE__ */ Symbol(\"COMPUTING\");\nconst ERRORED = /* @__PURE__ */ Symbol(\"ERRORED\");\nconst COMPUTED_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n value: UNSET,\n dirty: true,\n error: null,\n equal: defaultEquals,\n producerMustRecompute(node) {\n return node.value === UNSET || node.value === COMPUTING;\n },\n producerRecomputeValue(node) {\n if (node.value === COMPUTING) {\n throw new Error(\"Detected cycle in computations.\");\n }\n const oldValue = node.value;\n node.value = COMPUTING;\n const prevConsumer = consumerBeforeComputation(node);\n let newValue;\n let wasEqual = false;\n try {\n newValue = node.computation.call(node.wrapper);\n const oldOk = oldValue !== UNSET && oldValue !== ERRORED;\n wasEqual = oldOk && node.equal.call(node.wrapper, oldValue, newValue);\n } catch (err) {\n newValue = ERRORED;\n node.error = err;\n } finally {\n consumerAfterComputation(node, prevConsumer);\n }\n if (wasEqual) {\n node.value = oldValue;\n return;\n }\n node.value = newValue;\n node.version++;\n }\n };\n})();\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction defaultThrowError() {\n throw new Error();\n}\nlet throwInvalidWriteToSignalErrorFn = defaultThrowError;\nfunction throwInvalidWriteToSignalError() {\n throwInvalidWriteToSignalErrorFn();\n}\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction createSignal(initialValue) {\n const node = Object.create(SIGNAL_NODE);\n node.value = initialValue;\n const getter = () => {\n producerAccessed(node);\n return node.value;\n };\n getter[SIGNAL] = node;\n return getter;\n}\nfunction signalGetFn() {\n producerAccessed(this);\n return this.value;\n}\nfunction signalSetFn(node, newValue) {\n if (!producerUpdatesAllowed()) {\n throwInvalidWriteToSignalError();\n }\n if (!node.equal.call(node.wrapper, node.value, newValue)) {\n node.value = newValue;\n signalValueChanged(node);\n }\n}\nconst SIGNAL_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n equal: defaultEquals,\n value: void 0\n };\n})();\nfunction signalValueChanged(node) {\n node.version++;\n producerIncrementEpoch();\n producerNotifyConsumers(node);\n}\n/**\n * @license\n * Copyright 2024 Bloomberg Finance L.P.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst NODE = Symbol(\"node\");\nvar Signal;\n((Signal2) => {\n var _a, _brand, brand_fn, _b, _brand2, brand_fn2;\n class State {\n constructor(initialValue, options = {}) {\n __privateAdd(this, _brand);\n __publicField(this, _a);\n const ref = createSignal(initialValue);\n const node = ref[SIGNAL];\n this[NODE] = node;\n node.wrapper = this;\n if (options) {\n const equals = options.equals;\n if (equals) {\n node.equal = equals;\n }\n node.watched = options[Signal2.subtle.watched];\n node.unwatched = options[Signal2.subtle.unwatched];\n }\n }\n get() {\n if (!(0, Signal2.isState)(this))\n throw new TypeError(\"Wrong receiver type for Signal.State.prototype.get\");\n return signalGetFn.call(this[NODE]);\n }\n set(newValue) {\n if (!(0, Signal2.isState)(this))\n throw new TypeError(\"Wrong receiver type for Signal.State.prototype.set\");\n if (isInNotificationPhase()) {\n throw new Error(\"Writes to signals not permitted during Watcher callback\");\n }\n const ref = this[NODE];\n signalSetFn(ref, newValue);\n }\n }\n _a = NODE;\n _brand = new WeakSet();\n brand_fn = function() {\n };\n Signal2.isState = (s) => typeof s === \"object\" && __privateIn(_brand, s);\n Signal2.State = State;\n class Computed {\n // Create a Signal which evaluates to the value returned by the callback.\n // Callback is called with this signal as the parameter.\n constructor(computation, options) {\n __privateAdd(this, _brand2);\n __publicField(this, _b);\n const ref = createComputed(computation);\n const node = ref[SIGNAL];\n node.consumerAllowSignalWrites = true;\n this[NODE] = node;\n node.wrapper = this;\n if (options) {\n const equals = options.equals;\n if (equals) {\n node.equal = equals;\n }\n node.watched = options[Signal2.subtle.watched];\n node.unwatched = options[Signal2.subtle.unwatched];\n }\n }\n get() {\n if (!(0, Signal2.isComputed)(this))\n throw new TypeError(\"Wrong receiver type for Signal.Computed.prototype.get\");\n return computedGet(this[NODE]);\n }\n }\n _b = NODE;\n _brand2 = new WeakSet();\n brand_fn2 = function() {\n };\n Signal2.isComputed = (c) => typeof c === \"object\" && __privateIn(_brand2, c);\n Signal2.Computed = Computed;\n ((subtle2) => {\n var _a2, _brand3, brand_fn3, _assertSignals, assertSignals_fn;\n function untrack(cb) {\n let output;\n let prevActiveConsumer = null;\n try {\n prevActiveConsumer = setActiveConsumer(null);\n output = cb();\n } finally {\n setActiveConsumer(prevActiveConsumer);\n }\n return output;\n }\n subtle2.untrack = untrack;\n function introspectSources(sink) {\n var _a3;\n if (!(0, Signal2.isComputed)(sink) && !(0, Signal2.isWatcher)(sink)) {\n throw new TypeError(\"Called introspectSources without a Computed or Watcher argument\");\n }\n return ((_a3 = sink[NODE].producerNode) == null ? void 0 : _a3.map((n) => n.wrapper)) ?? [];\n }\n subtle2.introspectSources = introspectSources;\n function introspectSinks(signal) {\n var _a3;\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) {\n throw new TypeError(\"Called introspectSinks without a Signal argument\");\n }\n return ((_a3 = signal[NODE].liveConsumerNode) == null ? void 0 : _a3.map((n) => n.wrapper)) ?? [];\n }\n subtle2.introspectSinks = introspectSinks;\n function hasSinks(signal) {\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) {\n throw new TypeError(\"Called hasSinks without a Signal argument\");\n }\n const liveConsumerNode = signal[NODE].liveConsumerNode;\n if (!liveConsumerNode)\n return false;\n return liveConsumerNode.length > 0;\n }\n subtle2.hasSinks = hasSinks;\n function hasSources(signal) {\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isWatcher)(signal)) {\n throw new TypeError(\"Called hasSources without a Computed or Watcher argument\");\n }\n const producerNode = signal[NODE].producerNode;\n if (!producerNode)\n return false;\n return producerNode.length > 0;\n }\n subtle2.hasSources = hasSources;\n class Watcher {\n // When a (recursive) source of Watcher is written to, call this callback,\n // if it hasn't already been called since the last `watch` call.\n // No signals may be read or written during the notify.\n constructor(notify) {\n __privateAdd(this, _brand3);\n __privateAdd(this, _assertSignals);\n __publicField(this, _a2);\n let node = Object.create(REACTIVE_NODE);\n node.wrapper = this;\n node.consumerMarkedDirty = notify;\n node.consumerIsAlwaysLive = true;\n node.consumerAllowSignalWrites = false;\n node.producerNode = [];\n this[NODE] = node;\n }\n // Add these signals to the Watcher's set, and set the watcher to run its\n // notify callback next time any signal in the set (or one of its dependencies) changes.\n // Can be called with no arguments just to reset the \"notified\" state, so that\n // the notify callback will be invoked again.\n watch(...signals) {\n if (!(0, Signal2.isWatcher)(this)) {\n throw new TypeError(\"Called unwatch without Watcher receiver\");\n }\n __privateMethod(this, _assertSignals, assertSignals_fn).call(this, signals);\n const node = this[NODE];\n node.dirty = false;\n const prev = setActiveConsumer(node);\n for (const signal of signals) {\n producerAccessed(signal[NODE]);\n }\n setActiveConsumer(prev);\n }\n // Remove these signals from the watched set (e.g., for an effect which is disposed)\n unwatch(...signals) {\n if (!(0, Signal2.isWatcher)(this)) {\n throw new TypeError(\"Called unwatch without Watcher receiver\");\n }\n __privateMethod(this, _assertSignals, assertSignals_fn).call(this, signals);\n const node = this[NODE];\n assertConsumerNode(node);\n for (let i = node.producerNode.length - 1; i >= 0; i--) {\n if (signals.includes(node.producerNode[i].wrapper)) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n const lastIdx = node.producerNode.length - 1;\n node.producerNode[i] = node.producerNode[lastIdx];\n node.producerIndexOfThis[i] = node.producerIndexOfThis[lastIdx];\n node.producerNode.length--;\n node.producerIndexOfThis.length--;\n node.nextProducerIndex--;\n if (i < node.producerNode.length) {\n const idxConsumer = node.producerIndexOfThis[i];\n const producer = node.producerNode[i];\n assertProducerNode(producer);\n producer.liveConsumerIndexOfThis[idxConsumer] = i;\n }\n }\n }\n }\n // Returns the set of computeds in the Watcher's set which are still yet\n // to be re-evaluated\n getPending() {\n if (!(0, Signal2.isWatcher)(this)) {\n throw new TypeError(\"Called getPending without Watcher receiver\");\n }\n const node = this[NODE];\n return node.producerNode.filter((n) => n.dirty).map((n) => n.wrapper);\n }\n }\n _a2 = NODE;\n _brand3 = new WeakSet();\n brand_fn3 = function() {\n };\n _assertSignals = new WeakSet();\n assertSignals_fn = function(signals) {\n for (const signal of signals) {\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) {\n throw new TypeError(\"Called watch/unwatch without a Computed or State argument\");\n }\n }\n };\n Signal2.isWatcher = (w) => __privateIn(_brand3, w);\n subtle2.Watcher = Watcher;\n function currentComputed() {\n var _a3;\n return (_a3 = getActiveConsumer()) == null ? void 0 : _a3.wrapper;\n }\n subtle2.currentComputed = currentComputed;\n subtle2.watched = Symbol(\"watched\");\n subtle2.unwatched = Symbol(\"unwatched\");\n })(Signal2.subtle || (Signal2.subtle = {}));\n})(Signal || (Signal = {}));\nexport {\n Signal\n};\n","import{Signal as t}from\"signal-polyfill\";\n/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const i=Symbol(\"SignalWatcherBrand\"),s=new FinalizationRegistry((({watcher:t,signal:i})=>{t.unwatch(i)})),h=new WeakMap;function e(e){return!0===e[i]?(console.warn(\"SignalWatcher should not be applied to the same class more than once.\"),e):class extends e{constructor(){super(...arguments),this._$St=new t.State(0),this._$Si=!1,this._$So=!0,this._$Sh=new Set}_$Sl(){if(void 0!==this._$Su)return;this._$Sv=new t.Computed((()=>{this._$St.get(),super.performUpdate()}));const i=this._$Su=new t.subtle.Watcher((function(){const t=h.get(this);void 0!==t&&(!1===t._$Si&&t.requestUpdate(),this.watch())}));h.set(i,this),s.register(this,{watcher:i,signal:this._$Sv}),i.watch(this._$Sv)}_$Sp(){void 0!==this._$Su&&(this._$Su.unwatch(this._$Sv),this._$Sv=void 0,this._$Su=void 0)}performUpdate(){this.isUpdatePending&&(this._$Sl(),this._$Si=!0,this._$St.set(this._$St.get()+1),this._$Si=!1,this._$Sv.get())}update(t){try{this._$So?(this._$So=!1,super.update(t)):this._$Sh.forEach((t=>t.commit()))}finally{this.isUpdatePending=!1,this._$Sh.clear()}}requestUpdate(t,i,s){this._$So=!0,super.requestUpdate(t,i,s)}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){super.disconnectedCallback(),queueMicrotask((()=>{!1===this.isConnected&&this._$Sp()}))}_(t){this._$Sh.add(t);const i=this._$So;this.requestUpdate(),this._$So=i}m(t){this._$Sh.delete(t)}}}export{e as SignalWatcher};\n//# sourceMappingURL=signal-watcher.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.1\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{Signal as t}from\"signal-polyfill\";export*from\"signal-polyfill\";export{SignalWatcher}from\"./lib/signal-watcher.js\";export{WatchDirective,watch}from\"./lib/watch.js\";export{html,svg,withWatch}from\"./lib/html-tag.js\";\n/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const l=t.State,o=t.Computed,r=(l,o)=>new t.State(l,o),i=(l,o)=>new t.Computed(l,o);export{o as Computed,l as State,i as computed,r as signal};\n//# sourceMappingURL=index.js.map\n","// device.ts\n// Device detection, context utilities, and responsive scaling\n\nimport { signal } from \"@lit-labs/signals\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type DeviceType = \"mobile\" | \"tablet\" | \"desktop\";\n\nexport interface DeviceInfo {\n isMobile: boolean;\n isTablet: boolean;\n isDesktop: boolean;\n isTouchCapable: boolean;\n deviceType: DeviceType;\n userAgent: string;\n screenWidth: number;\n screenHeight: number;\n}\n\nexport type ScalingMode = \"auto\" | \"fixed\" | \"fluid\";\n\nexport interface ScalingConfig {\n mode: ScalingMode;\n baseWidth: number;\n minScale: number;\n maxScale: number;\n}\n\n// ============================================================================\n// Configuration & Signals\n// ============================================================================\n\nconst defaultScalingConfig: ScalingConfig = {\n mode: \"auto\",\n baseWidth: 280,\n minScale: 0.75,\n maxScale: 2.0,\n};\n\n/** Reactive scaling factor signal */\nexport const scalingFactor = signal<number>(1);\n\n/** Current scaling configuration */\nexport const scalingConfig = signal<ScalingConfig>(defaultScalingConfig);\n\n// ============================================================================\n// Device Detection\n// ============================================================================\n\n/**\n * Comprehensive mobile device detection\n * Combines user agent detection, touch capability, and viewport size\n */\nexport function detectMobileDevice(): boolean {\n if (typeof navigator === \"undefined\" || typeof window === \"undefined\") {\n return false;\n }\n\n const nav = navigator as any;\n const win = window as any;\n const ua: string =\n (nav && (nav.userAgent || nav.vendor)) || (win && win.opera) || \"\";\n\n // User agent based detection\n const uaMatchesMobile =\n /Mobile|Android|iP(ad|hone|od)|IEMobile|BlackBerry|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)|Windows Phone|Phone|Tablet/i.test(\n ua\n );\n\n // Touch capability detection\n const touchPoints = (nav && nav.maxTouchPoints) || 0;\n const isTouchCapable = touchPoints > 1;\n\n // Viewport detection\n const narrowViewport = win\n ? Math.min(win.innerWidth || 0, win.innerHeight || 0) <= 820\n : false;\n\n return uaMatchesMobile || (isTouchCapable && narrowViewport);\n}\n\n/**\n * Get detailed device information\n */\nexport function getDeviceInfo(): DeviceInfo {\n const isMobile = detectMobileDevice();\n const nav = navigator as any;\n const win = window as any;\n\n const touchPoints = (nav && nav.maxTouchPoints) || 0;\n const isTouchCapable = touchPoints > 1;\n\n // Use clientWidth instead of innerWidth to exclude scrollbars\n const screenWidth =\n typeof document !== \"undefined\"\n ? document.documentElement.clientWidth\n : win?.innerWidth || 0;\n const screenHeight =\n typeof document !== \"undefined\"\n ? document.documentElement.clientHeight\n : win?.innerHeight || 0;\n const isTablet = isMobile && Math.min(screenWidth, screenHeight) >= 600;\n\n return {\n isMobile,\n isTablet,\n isDesktop: !isMobile,\n isTouchCapable,\n deviceType: isMobile ? (isTablet ? \"tablet\" : \"mobile\") : \"desktop\",\n userAgent: (nav && (nav.userAgent || nav.vendor)) || \"\",\n screenWidth,\n screenHeight,\n };\n}\n\n// ============================================================================\n// Scaling\n// ============================================================================\n\n/**\n * Calculate the scaling factor based on viewport width\n * @param viewportWidth - Current viewport width in pixels\n * @param config - Scaling configuration\n * @returns The calculated scaling factor\n */\nexport function calculateScalingFactor(\n viewportWidth: number,\n config: ScalingConfig = scalingConfig.get()\n): number {\n if (config.mode === \"fixed\") {\n return 1;\n }\n\n const rawScale = viewportWidth / config.baseWidth;\n const clampedScale = Math.max(\n config.minScale,\n Math.min(config.maxScale, rawScale)\n );\n\n return Number(clampedScale.toFixed(3));\n}\n\n/**\n * Set the scaling configuration\n * @param config - Partial scaling configuration to apply\n */\nexport function setScalingConfig(config: Partial<ScalingConfig>): void {\n const currentConfig = scalingConfig.get();\n const newConfig = { ...currentConfig, ...config };\n scalingConfig.set(newConfig);\n\n // Recalculate scaling factor if in browser\n if (typeof window !== \"undefined\") {\n updateScalingFactor();\n }\n}\n\n/**\n * Update the scaling factor based on current viewport\n * Desktop always uses factor 1; mobile uses computed factor\n */\nexport function updateScalingFactor(): void {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n\n const isMobile = detectMobileDevice();\n\n // Desktop: always use factor 1\n if (!isMobile) {\n const factor = 1;\n scalingFactor.set(factor);\n document.documentElement.style.setProperty(\"--sf\", factor.toString());\n window.dispatchEvent(\n new CustomEvent(\"scaling-changed\", {\n detail: { scalingFactor: factor, config: scalingConfig.get() },\n })\n );\n return;\n }\n\n // Mobile: compute scaling based on viewport\n const viewportWidth = document.documentElement.clientWidth;\n const config = scalingConfig.get();\n const newFactor = calculateScalingFactor(viewportWidth, config);\n\n scalingFactor.set(newFactor);\n document.documentElement.style.setProperty(\"--sf\", newFactor.toString());\n\n window.dispatchEvent(\n new CustomEvent(\"scaling-changed\", {\n detail: { scalingFactor: newFactor, config },\n })\n );\n}\n\n/**\n * Get the current scaling factor\n * @returns The current scaling factor\n */\nexport function getScalingFactor(): number {\n return scalingFactor.get();\n}\n\n/**\n * Convert a design pixel value to scaled pixels\n * @param designPx - The design pixel value (based on 280px width)\n * @returns The scaled pixel value\n */\nexport function scale(designPx: number): number {\n return designPx * scalingFactor.get();\n}\n\n/**\n * Convert a scaled pixel value back to design pixels\n * @param scaledPx - The scaled pixel value\n * @returns The design pixel value\n */\nexport function unscale(scaledPx: number): number {\n const factor = scalingFactor.get();\n return factor === 0 ? scaledPx : scaledPx / factor;\n}\n\n// ============================================================================\n// Unified Initialization\n// ============================================================================\n\n/**\n * Initialize device detection and scaling\n * Sets CSS classes (.mobile/.desktop) and --sf custom property\n */\nexport function initDeviceDetection(): DeviceInfo {\n const deviceInfo = getDeviceInfo();\n\n if (typeof document === \"undefined\") {\n return deviceInfo;\n }\n\n // Set device class on html element\n if (deviceInfo.isMobile) {\n document.documentElement.classList.add(\"mobile\");\n document.documentElement.classList.remove(\"desktop\");\n } else {\n document.documentElement.classList.add(\"desktop\");\n document.documentElement.classList.remove(\"mobile\");\n }\n\n // Update scaling factor (handles --sf CSS property)\n updateScalingFactor();\n\n // Log device info\n const factor = scalingFactor.get();\n if (deviceInfo.isMobile) {\n console.log(\n `[DS one] Mobile device detected - ${deviceInfo.deviceType} (${deviceInfo.screenWidth}x${deviceInfo.screenHeight}), scaling factor: ${factor.toFixed(2)}`\n );\n } else {\n console.log(\n `[DS one] Desktop device detected (${deviceInfo.screenWidth}x${deviceInfo.screenHeight})`\n );\n }\n\n // Log additional details in development mode\n if (typeof window !== \"undefined\" && (window as any).DS_ONE_DEBUG) {\n console.log(\"[DS one] Device Info:\", {\n type: deviceInfo.deviceType,\n isMobile: deviceInfo.isMobile,\n isTablet: deviceInfo.isTablet,\n isDesktop: deviceInfo.isDesktop,\n isTouchCapable: deviceInfo.isTouchCapable,\n viewport: `${deviceInfo.screenWidth}x${deviceInfo.screenHeight}`,\n scalingFactor: factor,\n userAgent: deviceInfo.userAgent,\n });\n }\n\n return deviceInfo;\n}\n\n// Auto-initialize when module loads\nif (typeof window !== \"undefined\") {\n // Wait for DOM to be ready\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => {\n initDeviceDetection();\n });\n } else {\n // DOM is already ready\n initDeviceDetection();\n }\n\n // Single debounced resize handler for both device detection + scaling\n let resizeTimeout: ReturnType<typeof setTimeout>;\n window.addEventListener(\"resize\", () => {\n clearTimeout(resizeTimeout);\n resizeTimeout = setTimeout(() => {\n initDeviceDetection();\n }, 100);\n });\n\n // Also handle orientation change\n window.addEventListener(\"orientationchange\", () => {\n setTimeout(initDeviceDetection, 100);\n });\n}\n\n// ============================================================================\n// App-like Behavior\n// ============================================================================\n\n/**\n * Disable double-tap to zoom in the browser (app-like behavior)\n * Prevents all zoom gestures including double-tap and pinch-to-zoom\n */\nexport function applike(): void {\n if (typeof document === \"undefined\" || typeof window === \"undefined\") {\n return;\n }\n\n // Set viewport meta tag to prevent zoom - this is the most important step\n let viewport = document.querySelector('meta[name=\"viewport\"]');\n if (!viewport) {\n viewport = document.createElement(\"meta\");\n viewport.setAttribute(\"name\", \"viewport\");\n document.head.appendChild(viewport);\n }\n viewport.setAttribute(\n \"content\",\n \"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\"\n );\n\n // Apply touch-action: pan-x pan-y globally to prevent zoom but allow panning\n const style = document.createElement(\"style\");\n style.id = \"ds-one-applike-style\";\n style.textContent = `\n * {\n touch-action: pan-x pan-y !important;\n -ms-touch-action: pan-x pan-y !important;\n }\n html, body {\n touch-action: pan-x pan-y !important;\n -ms-touch-action: pan-x pan-y !important;\n }\n `;\n // Remove existing style if present\n const existingStyle = document.getElementById(\"ds-one-applike-style\");\n if (existingStyle) {\n existingStyle.remove();\n }\n document.head.appendChild(style);\n\n // Track touch events to prevent double-tap zoom\n let lastTouchEnd = 0;\n let touchStartTime = 0;\n\n const preventZoom = (event: TouchEvent | WheelEvent | Event) => {\n // Prevent pinch zoom (two fingers)\n if (event instanceof TouchEvent) {\n if (event.touches.length > 1) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n const now = Date.now();\n\n if (event.type === \"touchstart\") {\n // If touchstart happens within 300ms of last touchend, it's likely a double-tap\n if (now - lastTouchEnd < 300) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n touchStartTime = now;\n } else if (event.type === \"touchend\") {\n const touchDuration = now - touchStartTime;\n // If this is a quick tap (< 300ms) and happened soon after previous touchend, prevent it\n if (touchDuration < 300 && now - lastTouchEnd < 300) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n lastTouchEnd = now;\n } else if (event.type === \"touchmove\") {\n // Prevent any touchmove that might trigger zoom\n if (event.touches.length > 1) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n }\n\n // Prevent wheel zoom with ctrl/cmd key (common on trackpads)\n if (event instanceof WheelEvent && (event.ctrlKey || event.metaKey)) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n };\n\n // Use capture phase to catch events earlier\n const options = { passive: false, capture: true };\n\n // Prevent all zoom gestures - use capture phase\n document.addEventListener(\"touchstart\", preventZoom, options);\n document.addEventListener(\"touchmove\", preventZoom, options);\n document.addEventListener(\"touchend\", preventZoom, options);\n document.addEventListener(\"touchcancel\", preventZoom, options);\n\n // Prevent wheel zoom\n document.addEventListener(\"wheel\", preventZoom, options);\n\n // Prevent gesture events (iOS Safari) - use capture phase\n document.addEventListener(\n \"gesturestart\",\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n },\n options\n );\n document.addEventListener(\n \"gesturechange\",\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n },\n options\n );\n document.addEventListener(\n \"gestureend\",\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n },\n options\n );\n}\n","// Define the supported languages using ISO codes (extensible)\nexport type LanguageCode = string;\n\n// Define the structure of our translation data\ntype TranslationData = {\n [key: string]: string;\n};\n\ntype TranslationMap = Record<string, TranslationData>;\n\n// Bundled translations (keys.json may not exist - will use external translations if not available)\n// This is a fallback for when external translations aren't loaded\nlet translationKeys: TranslationMap = {};\n\n// Primary language list – prioritise the 10 requested languages when cycling\nconst LANGUAGE_PRIORITY_ORDER = [\n \"da\",\n \"de\",\n \"en\",\n \"es\",\n \"fr\",\n \"it\",\n \"ja\",\n \"pt\",\n \"sv\",\n \"zh\",\n] as const;\n\nconst LANGUAGE_PRIORITY_LOOKUP = new Map<string, number>(\n LANGUAGE_PRIORITY_ORDER.map((code, index) => [code, index])\n);\n\n// Fallback language names if Intl.DisplayNames is not available\nconst FALLBACK_LANGUAGE_NAMES: Record<string, string> = {\n da: \"Danish\",\n \"da-dk\": \"Danish\",\n de: \"German\",\n \"de-de\": \"German\",\n en: \"English\",\n \"en-us\": \"English\",\n es: \"Spanish\",\n \"es-es\": \"Spanish\",\n fr: \"French\",\n \"fr-fr\": \"French\",\n it: \"Italian\",\n \"it-it\": \"Italian\",\n ja: \"Japanese\",\n \"ja-jp\": \"Japanese\",\n pt: \"Portuguese\",\n \"pt-pt\": \"Portuguese\",\n sv: \"Swedish\",\n \"sv-se\": \"Swedish\",\n zh: \"Chinese\",\n \"zh-cn\": \"Chinese\",\n \"zh-tw\": \"Chinese\",\n \"zh-hans\": \"Chinese\",\n \"zh-hant\": \"Chinese\",\n};\n\nconst DISPLAY_NAME_CACHE = new Map<string, Intl.DisplayNames>();\nlet displayNameFallbackWarningShown = false;\n\n// Declare window property for external translations\ndeclare global {\n interface Window {\n DS_ONE_TRANSLATIONS?: Record<string, TranslationData>;\n DS_ONE_TRANSLATIONS_FILE?: string;\n }\n}\n\n// CDN Loader: Automatically detects and loads translation JSON files\n// for CDN users who want to use external translations\n\nconst DEFAULT_TRANSLATION_FILE = \"./translations.json\";\nlet loadAttempted = false;\n\nfunction normalizeCandidate(path: string): string | null {\n if (!path) {\n return null;\n }\n const trimmed = path.trim();\n if (!trimmed) {\n return null;\n }\n\n if (\n trimmed.startsWith(\"./\") ||\n trimmed.startsWith(\"../\") ||\n trimmed.startsWith(\"/\") ||\n /^https?:\\/\\//i.test(trimmed)\n ) {\n return trimmed;\n }\n\n return `./${trimmed}`;\n}\n\nfunction findAttributeCandidate(): string | null {\n if (typeof document === \"undefined\") {\n return null;\n }\n\n const scriptWithAttribute = document.querySelector(\n \"script[data-ds-one-translations]\"\n );\n const scriptCandidate = scriptWithAttribute?.getAttribute(\n \"data-ds-one-translations\"\n );\n if (scriptCandidate) {\n return scriptCandidate;\n }\n\n const metaCandidate = document\n .querySelector('meta[name=\"ds-one:translations\"]')\n ?.getAttribute(\"content\");\n if (metaCandidate) {\n return metaCandidate;\n }\n\n const linkCandidate = document\n .querySelector('link[rel=\"ds-one-translations\"]')\n ?.getAttribute(\"href\");\n if (linkCandidate) {\n return linkCandidate;\n }\n\n return null;\n}\n\nfunction resolveTranslationSources(): string[] {\n const candidates: string[] = [];\n\n const windowCandidate =\n typeof window !== \"undefined\" ? window.DS_ONE_TRANSLATIONS_FILE : null;\n const attributeCandidate = findAttributeCandidate();\n\n // Only use explicitly configured paths, or the single default\n const windowNormalized = normalizeCandidate(windowCandidate ?? \"\");\n if (windowNormalized) {\n candidates.push(windowNormalized);\n }\n\n const attrNormalized = normalizeCandidate(attributeCandidate ?? \"\");\n if (attrNormalized && !candidates.includes(attrNormalized)) {\n candidates.push(attrNormalized);\n }\n\n // Only try default if no explicit path was configured\n if (candidates.length === 0) {\n candidates.push(DEFAULT_TRANSLATION_FILE);\n }\n\n return candidates;\n}\n\nfunction validateTranslationMap(\n candidate: unknown\n): candidate is TranslationMap {\n if (!candidate || typeof candidate !== \"object\") {\n return false;\n }\n\n return Object.values(candidate).every(\n (entry) => entry && typeof entry === \"object\"\n );\n}\n\nasync function fetchTranslationFile(\n source: string\n): Promise<TranslationMap | null> {\n try {\n const response = await fetch(source);\n\n if (!response.ok) {\n // 404 is expected if no translations file exists - don't log as error\n return null;\n }\n\n const translations = await response.json();\n\n if (!validateTranslationMap(translations)) {\n console.warn(\n `[DS one] Invalid translation format in ${source}. Expected object with language codes as keys.`\n );\n return null;\n }\n\n const languages = Object.keys(translations);\n if (languages.length === 0) {\n console.warn(`[DS one] No languages found in ${source}`);\n return null;\n }\n\n return translations;\n } catch {\n // Silently fail - file likely doesn't exist or isn't valid JSON\n return null;\n }\n}\n\n/**\n * Attempts to load translations from a JSON file in the same directory\n */\nasync function loadExternalTranslations(): Promise<boolean> {\n // Only attempt once\n if (loadAttempted) {\n return false;\n }\n loadAttempted = true;\n\n if (typeof window === \"undefined\") {\n return false;\n }\n\n // Check if translations are already loaded (e.g., by the application)\n if (\n window.DS_ONE_TRANSLATIONS &&\n Object.keys(window.DS_ONE_TRANSLATIONS).length > 0\n ) {\n console.log(\n `[DS one] Translations already loaded (${Object.keys(window.DS_ONE_TRANSLATIONS).length} languages), skipping auto-load`\n );\n return true;\n }\n\n const sources = resolveTranslationSources();\n\n for (const source of sources) {\n const translations = await fetchTranslationFile(source);\n if (!translations) {\n continue;\n }\n\n window.DS_ONE_TRANSLATIONS = translations;\n\n const languages = Object.keys(translations);\n console.log(\n `[DS one] External translations loaded from ${source}: ${languages.length} language(s) – ${languages.join(\", \")}`\n );\n\n window.dispatchEvent(new CustomEvent(\"translations-ready\"));\n return true;\n }\n\n console.info(\n `[DS one] No external translations found at ${sources[0] ?? DEFAULT_TRANSLATION_FILE}. Using bundled translations.`\n );\n\n return false;\n}\n\n// Get translation data - prioritize external, fall back to bundled\nfunction getTranslationData(): TranslationMap {\n // Check for externally loaded translations first (CDN usage)\n if (typeof window !== \"undefined\" && window.DS_ONE_TRANSLATIONS) {\n return window.DS_ONE_TRANSLATIONS;\n }\n\n // Fall back to bundled translations\n return translationKeys as TranslationMap;\n}\n\n// Cached translation data - use getter to always get fresh data\nlet translationData = getTranslationData();\n\nconst defaultLanguage: LanguageCode = \"en\";\n\nfunction extractPrimarySubtag(code: LanguageCode): string {\n if (!code) {\n return \"\";\n }\n return code.toLowerCase().split(/[-_]/)[0] ?? \"\";\n}\n\nfunction getLanguagePriority(code: LanguageCode): number {\n const primary = extractPrimarySubtag(code);\n const priority = LANGUAGE_PRIORITY_LOOKUP.get(primary);\n\n if (typeof priority === \"number\") {\n return priority;\n }\n\n return LANGUAGE_PRIORITY_ORDER.length;\n}\n\nfunction sortLanguageCodes(codes: LanguageCode[]): LanguageCode[] {\n return [...codes].sort((a, b) => {\n const priorityA = getLanguagePriority(a);\n const priorityB = getLanguagePriority(b);\n\n if (priorityA !== priorityB) {\n return priorityA - priorityB;\n }\n\n return a.localeCompare(b);\n });\n}\n\nfunction getDisplayNameForLocale(\n locale: string,\n code: LanguageCode\n): string | undefined {\n const normalizedLocale = locale?.replace(\"_\", \"-\");\n if (!normalizedLocale) {\n return undefined;\n }\n\n try {\n let displayNames = DISPLAY_NAME_CACHE.get(normalizedLocale);\n\n if (!displayNames) {\n displayNames = new Intl.DisplayNames([normalizedLocale], {\n type: \"language\",\n });\n DISPLAY_NAME_CACHE.set(normalizedLocale, displayNames);\n }\n\n const cleanedCode = code.replace(\"_\", \"-\");\n\n // Try full tag first\n const fullMatch = displayNames.of(cleanedCode);\n if (fullMatch && fullMatch !== cleanedCode) {\n return fullMatch;\n }\n\n // Then the primary subtag\n const baseMatch = displayNames.of(extractPrimarySubtag(cleanedCode));\n if (baseMatch) {\n return baseMatch;\n }\n } catch (error) {\n // Intl.DisplayNames may not be supported; fall back gracefully\n if (!displayNameFallbackWarningShown) {\n console.info(\n \"[DS one] Intl.DisplayNames is not available, using fallback language names.\"\n );\n displayNameFallbackWarningShown = true;\n }\n }\n\n return undefined;\n}\n\nfunction getFallbackDisplayName(code: LanguageCode): string | undefined {\n const normalized = code.toLowerCase().replace(\"_\", \"-\");\n const direct = FALLBACK_LANGUAGE_NAMES[normalized];\n\n if (direct) {\n return direct;\n }\n\n const primary = extractPrimarySubtag(normalized);\n return FALLBACK_LANGUAGE_NAMES[primary];\n}\n\nexport function getLanguageDisplayName(\n code: LanguageCode,\n options: { locale?: string } = {}\n): string {\n if (!code) {\n return \"\";\n }\n\n const localesToTry: string[] = [];\n\n if (options.locale) {\n localesToTry.push(options.locale);\n }\n\n if (typeof navigator !== \"undefined\") {\n if (Array.isArray(navigator.languages)) {\n localesToTry.push(...navigator.languages);\n }\n if (navigator.language) {\n localesToTry.push(navigator.language);\n }\n }\n\n localesToTry.push(defaultLanguage);\n localesToTry.push(\"en\");\n\n const tried = new Set<string>();\n\n for (const locale of localesToTry) {\n if (!locale || tried.has(locale)) {\n continue;\n }\n tried.add(locale);\n\n const displayName = getDisplayNameForLocale(locale, code);\n if (displayName) {\n return displayName;\n }\n }\n\n const fallback = getFallbackDisplayName(code);\n if (fallback) {\n return fallback;\n }\n\n // Fall back to the primary subtag in uppercase\n const primary = extractPrimarySubtag(code);\n return primary ? primary.toUpperCase() : code;\n}\n\nconst BROWSER_LANGUAGE_PREFERENCES: Record<string, LanguageCode> = {\n da: \"da\",\n \"da-dk\": \"da\",\n de: \"de\",\n \"de-de\": \"de\",\n en: \"en\",\n \"en-us\": \"en\",\n \"en-gb\": \"en\",\n es: \"es\",\n \"es-es\": \"es\",\n \"es-mx\": \"es\",\n fr: \"fr\",\n \"fr-fr\": \"fr\",\n it: \"it\",\n \"it-it\": \"it\",\n ja: \"ja\",\n \"ja-jp\": \"ja\",\n pt: \"pt\",\n \"pt-pt\": \"pt\",\n \"pt-br\": \"pt\",\n sv: \"sv\",\n \"sv-se\": \"sv\",\n zh: \"zh\",\n \"zh-cn\": \"zh\",\n \"zh-hans\": \"zh\",\n \"zh-tw\": \"zh\",\n \"zh-hant\": \"zh\",\n};\n\nfunction resolvePreferredLanguage(languageTag: string): LanguageCode | null {\n if (!languageTag) {\n return null;\n }\n\n const normalized = languageTag.toLowerCase().replace(\"_\", \"-\");\n\n const directMatch = BROWSER_LANGUAGE_PREFERENCES[normalized];\n if (directMatch) {\n return directMatch;\n }\n\n const primary = extractPrimarySubtag(normalized);\n const primaryMatch = BROWSER_LANGUAGE_PREFERENCES[primary];\n if (primaryMatch) {\n return primaryMatch;\n }\n\n return languageTag as LanguageCode;\n}\n\n// Helper function to get browser language\nexport function getBrowserLanguage(): LanguageCode {\n if (typeof navigator === \"undefined\") {\n return defaultLanguage;\n }\n\n const browserLang = navigator.language;\n\n if (browserLang) {\n const resolved = resolvePreferredLanguage(browserLang);\n if (resolved) {\n return resolved;\n }\n }\n\n if (Array.isArray(navigator.languages)) {\n for (const candidate of navigator.languages) {\n const resolved = resolvePreferredLanguage(candidate);\n if (resolved) {\n return resolved;\n }\n }\n }\n\n return defaultLanguage;\n}\n\n// Get stored language from localStorage\nconst storedLanguage =\n typeof window !== \"undefined\"\n ? ((window.localStorage?.getItem(\n \"ds-one:language\"\n ) as LanguageCode | null) ?? undefined)\n : undefined;\n\n// Create a reactive signal for the current language (Portfolio pattern)\nexport const currentLanguage = {\n value:\n (localStorage.getItem(\"language\") as LanguageCode) || getBrowserLanguage(),\n set: function (lang: LanguageCode) {\n this.value = lang;\n localStorage.setItem(\"language\", lang);\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language: lang },\n bubbles: true,\n composed: true,\n })\n );\n },\n};\n\n// Auto-load translations when this module is imported (for CDN bundle)\nif (typeof window !== \"undefined\") {\n // Wait a bit to ensure the DOM is ready\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => {\n loadExternalTranslations();\n });\n } else {\n // DOM is already ready\n loadExternalTranslations();\n }\n}\n\n// Listen for external translations being loaded\nif (typeof window !== \"undefined\") {\n window.addEventListener(\"translations-ready\", () => {\n // Refresh translation data from external source\n translationData = getTranslationData();\n\n // Dispatch that translations are loaded\n window.dispatchEvent(new CustomEvent(\"translations-loaded\"));\n\n // Dispatch language-changed to update all components\n const currentLang = currentLanguage.value;\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language: currentLang },\n bubbles: true,\n composed: true,\n })\n );\n });\n}\n\n// Initialize translations on module load\n// Use setTimeout to give other parts of the app time to set up event listeners first\nsetTimeout(() => {\n // Since we directly imported the data, just dispatch the events\n window.dispatchEvent(new CustomEvent(\"translations-loaded\"));\n\n // Also dispatch language-changed with the current language\n const currentLang = currentLanguage.value;\n\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language: currentLang },\n bubbles: true,\n composed: true,\n })\n );\n}, 100);\n\n// Get translation by key\nexport function translate(key: string): string {\n const lang = currentLanguage.value;\n\n // Check if key exists in current language\n if (translationData?.[lang]?.[key]) {\n return translationData[lang][key];\n }\n\n // Try fallback to English\n if (lang !== defaultLanguage && translationData?.[defaultLanguage]?.[key]) {\n return translationData[defaultLanguage][key];\n }\n\n console.warn(\n `[DS one (Internationalization)] No translation found for key \"${key}\"`\n );\n return key;\n}\n\nexport function hasTranslation(\n key: string,\n language: LanguageCode = currentLanguage.value\n): boolean {\n if (!key) {\n return false;\n }\n\n const langData = translationData?.[language];\n if (langData && Object.prototype.hasOwnProperty.call(langData, key)) {\n return true;\n }\n\n if (\n language !== defaultLanguage &&\n translationData?.[defaultLanguage] &&\n Object.prototype.hasOwnProperty.call(translationData[defaultLanguage], key)\n ) {\n return true;\n }\n\n return false;\n}\n\n// Get text - synchronous version for components\nexport function getText(key: string): string {\n return translate(key);\n}\n\n// Get available languages - dynamically detect from loaded data\nexport function getAvailableLanguages(): Promise<LanguageCode[]> {\n // Always get fresh translation data\n const currentData = getTranslationData();\n\n if (currentData && Object.keys(currentData).length > 0) {\n const languages = Object.keys(currentData) as LanguageCode[];\n return Promise.resolve(sortLanguageCodes(languages));\n }\n return Promise.resolve([defaultLanguage]);\n}\n\n// Synchronous version for immediate use\nexport function getAvailableLanguagesSync(): LanguageCode[] {\n const currentData = getTranslationData();\n\n if (currentData && Object.keys(currentData).length > 0) {\n return sortLanguageCodes(Object.keys(currentData) as LanguageCode[]);\n }\n return [defaultLanguage];\n}\n\n// Load translations programmatically (for compatibility)\nexport function loadTranslations(\n language: LanguageCode,\n translations: TranslationData\n): void {\n // Since we have static data, this is mainly for compatibility\n console.log(\n `Loading additional translations for ${language}:`,\n Object.keys(translations).length,\n \"keys\"\n );\n}\n\n// Set language (Portfolio pattern)\nexport function setLanguage(language: LanguageCode): void {\n // Update the language in localStorage first\n localStorage.setItem(\"language\", language);\n\n // Then update the signal - this should trigger effects in components\n // that are subscribed to the signal\n currentLanguage.set(language);\n\n // Dispatch a custom event so non-signal-based components can update\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language },\n bubbles: true,\n composed: true,\n })\n );\n}\n","import type { LanguageCode } from \"./i18n\";\nimport type { ThemeType } from \"./theme\";\n\nexport type Preferences = {\n language?: LanguageCode;\n theme?: ThemeType;\n [key: string]: unknown;\n};\n\nexport function savePreferences(preferences: Preferences): void {\n if (typeof window === \"undefined\") {\n return;\n }\n\n try {\n const raw = window.localStorage?.getItem(\"ds-one:preferences\");\n const existing = raw ? (JSON.parse(raw) as Record<string, unknown>) : {};\n const next = { ...existing, ...preferences };\n window.localStorage?.setItem(\"ds-one:preferences\", JSON.stringify(next));\n } catch (error) {\n console.warn(\"ds-one: unable to persist preferences\", error);\n }\n}\n","/**\n * Currency label utilities for regional price display\n *\n * Note: This module provides currency symbols/labels based on language and region.\n * Consider moving this functionality into i18n.ts as it's region/locale-related.\n * Actual price values will be stored in a database or managed via Stripe.\n */\n\nimport type { LanguageCode } from \"./i18n\";\n\ntype PriceLabelOptions = {\n language: LanguageCode;\n country?: string;\n};\n\n// Simple price label mapping based on language/country\nconst PRICE_LABELS: Record<string, string> = {\n da: \"kr.\",\n nb: \"kr.\",\n sv: \"kr.\",\n de: \"€\",\n en: \"$\",\n pt: \"€\",\n es: \"€\",\n zh: \"¥\",\n ja: \"¥\",\n ko: \"₩\",\n};\n\nexport function getPriceLabel(options: PriceLabelOptions): string {\n const { language, country } = options;\n\n // If country is provided, try to map it to a currency\n if (country) {\n const countryUpper = country.toUpperCase();\n // Add country-specific mappings if needed\n if (countryUpper === \"US\" || countryUpper === \"USA\") {\n return \"$\";\n }\n if (countryUpper === \"GB\" || countryUpper === \"UK\") {\n return \"£\";\n }\n if (countryUpper === \"JP\" || countryUpper === \"JPN\") {\n return \"¥\";\n }\n if (countryUpper === \"CN\" || countryUpper === \"CHN\") {\n return \"¥\";\n }\n if (countryUpper === \"KR\" || countryUpper === \"KOR\") {\n return \"₩\";\n }\n }\n\n // Fall back to language-based mapping\n const primaryLang = language.toLowerCase().split(/[-_]/)[0];\n return PRICE_LABELS[primaryLang] || \"$\";\n}\n","import { signal } from \"@lit-labs/signals\";\n\nexport type ThemeType = \"light\" | \"dark\";\n\nfunction getInitialTheme(): ThemeType {\n if (typeof window === \"undefined\") {\n return \"light\";\n }\n\n const storedTheme = window.localStorage?.getItem(\"ds-one:theme\");\n if (storedTheme === \"light\" || storedTheme === \"dark\") {\n return storedTheme;\n }\n\n // Check system preference\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n return prefersDark ? \"dark\" : \"light\";\n}\n\nexport const currentTheme = signal<ThemeType>(getInitialTheme());\n\nexport function setTheme(theme: ThemeType): void {\n if (theme === currentTheme.get()) {\n return;\n }\n\n currentTheme.set(theme);\n\n if (typeof window !== \"undefined\") {\n try {\n window.localStorage?.setItem(\"ds-one:theme\", theme);\n } catch (error) {\n console.warn(\"ds-one: unable to persist theme preference\", error);\n }\n\n const root = window.document?.documentElement;\n if (root) {\n root.classList.remove(\"light-theme\", \"dark-theme\");\n root.classList.add(`${theme}-theme`);\n }\n\n window.dispatchEvent(\n new CustomEvent(\"theme-changed\", { detail: { theme } })\n );\n }\n}\n\n// Initialize theme on load\nif (typeof window !== \"undefined\") {\n const theme = currentTheme.get();\n const root = window.document?.documentElement;\n if (root) {\n root.classList.remove(\"light-theme\", \"dark-theme\");\n root.classList.add(`${theme}-theme`);\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.1\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.1\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { getText, currentLanguage } from \"../0-face/i18n\";\nimport styles from \"./styles/ds-text.css?inline\";\n\n/**\n * A component for displaying text from translations\n *\n * @element ds-text\n * @prop {string} text - The translation text to use\n */\nexport class Text extends LitElement {\n static get properties() {\n return {\n text: { type: String, reflect: true },\n _text: { type: String, state: true },\n };\n }\n\n declare text: string;\n declare _text: string;\n declare _currentLanguage: string;\n private boundHandlers: { languageChanged: EventListener };\n\n constructor() {\n super();\n this.text = \"\";\n this._text = \"\";\n this._currentLanguage = currentLanguage.value;\n\n // Create bound event handlers for proper cleanup\n this.boundHandlers = {\n languageChanged: (() => {\n console.log(\"Language changed event received in ds-text\");\n this._currentLanguage = currentLanguage.value;\n this._updateLanguageAttribute();\n this._loadText();\n this.requestUpdate();\n }) as EventListener,\n };\n }\n\n static styles = unsafeCSS(styles);\n\n connectedCallback() {\n super.connectedCallback();\n this._currentLanguage = currentLanguage.value;\n this._updateLanguageAttribute();\n this._loadText();\n\n // Listen for language changes\n window.addEventListener(\n \"language-changed\",\n this.boundHandlers.languageChanged\n );\n\n // Also listen for translations loaded event\n window.addEventListener(\n \"translations-loaded\",\n this.boundHandlers.languageChanged\n );\n\n // Listen for language changes via events instead of signals\n // The currentLanguage signal changes will trigger the language-changed event\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener(\n \"language-changed\",\n this.boundHandlers.languageChanged\n );\n window.removeEventListener(\n \"translations-loaded\",\n this.boundHandlers.languageChanged\n );\n }\n\n updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties);\n\n if (changedProperties.has(\"text\")) {\n this._loadText();\n }\n }\n\n _updateLanguageAttribute() {\n const lang = this._currentLanguage || currentLanguage.value;\n // Handles \"ja\", \"ja-JP\", \"zh-Hant\", \"zh-Hans\", etc.\n const parts = (lang || \"\").toLowerCase().split(/[-_]/).filter(Boolean);\n const primaryLang = parts[0] || \"\";\n\n if (primaryLang === \"ja\") {\n this.setAttribute(\"data-language\", \"ja\");\n return;\n }\n\n if (primaryLang === \"zh\") {\n // Prefer explicit script; otherwise infer from common regions.\n const hasHans =\n parts.includes(\"hans\") || parts.includes(\"cn\") || parts.includes(\"sg\");\n const hasHant =\n parts.includes(\"hant\") ||\n parts.includes(\"tw\") ||\n parts.includes(\"hk\") ||\n parts.includes(\"mo\");\n\n if (hasHans) this.setAttribute(\"data-language\", \"zh-hans\");\n else if (hasHant) this.setAttribute(\"data-language\", \"zh-hant\");\n else this.setAttribute(\"data-language\", \"zh\");\n return;\n }\n\n this.removeAttribute(\"data-language\");\n }\n\n _loadText() {\n if (!this.text) {\n this._text = \"\";\n this._updateLanguageAttribute();\n this.requestUpdate();\n return;\n }\n\n try {\n const translatedText = getText(this.text);\n this._text = translatedText || this.text;\n } catch (error) {\n console.error(\"Error loading text for text:\", this.text, error);\n this._text = this.text;\n }\n this._updateLanguageAttribute();\n this.requestUpdate();\n }\n\n render() {\n return html`<span>${this._text || this.text}</span>`;\n }\n}\n\ncustomElements.define(\"ds-text\", Text);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-text\": Text;\n }\n}\n","// ds-button.ts\n// Core button component\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport \"./ds-text\";\nimport styles from \"./styles/ds-button.css?inline\";\n\nexport class Button extends LitElement {\n static properties = {\n primary: { type: Boolean, reflect: true },\n secondary: { type: Boolean, reflect: true },\n disabled: { type: Boolean, reflect: true },\n blank: { type: Boolean, reflect: true },\n language: { type: String },\n text: { type: String },\n href: { type: String },\n _loading: { type: Boolean, state: true },\n };\n\n // Public properties\n declare primary: boolean;\n declare secondary: boolean;\n declare disabled: boolean;\n declare blank: boolean;\n declare language: string;\n declare text: string;\n declare href: string;\n\n // Private state\n declare _loading: boolean;\n\n constructor() {\n super();\n this.primary = false; // Default to no-background (no attribute)\n this.secondary = false;\n this.disabled = false;\n this.blank = false;\n this.language = \"en-US\";\n this.text = \"\";\n this.href = \"\";\n this._loading = false;\n }\n\n static styles = unsafeCSS(styles);\n\n connectedCallback() {\n super.connectedCallback();\n }\n\n render() {\n const hasTextProps = this.text;\n\n return html`\n <button\n ?primary=${this.primary}\n ?secondary=${this.secondary}\n ?disabled=${this.disabled}\n @click=${this._handleClick}\n >\n ${hasTextProps\n ? html`<ds-text .text=${this.text}></ds-text>`\n : html`<slot></slot>`}\n </button>\n `;\n }\n\n private _handleClick(e: Event) {\n // Prevent any action if disabled and stop event propagation\n if (this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n\n // If href is provided, navigate to the URL and do not bubble further\n if (this.href) {\n e.preventDefault();\n e.stopPropagation();\n if (this.blank) {\n window.open(this.href, \"_blank\", \"noopener,noreferrer\");\n } else {\n window.location.href = this.href;\n }\n return;\n }\n\n // Otherwise, rely on the native 'click' event bubbling from the inner\n // <button> through the shadow boundary to consumers of <ds-button>.\n // Do not re-dispatch a synthetic 'click' here to avoid duplicate events.\n }\n}\n\ncustomElements.define(\"ds-button\", Button);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-button\": Button;\n }\n}\n","// ds-banner.ts\n// Fixed banner component for notifications/alerts\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport { getText } from \"../0-face/i18n.js\";\nimport \"./ds-text.js\";\nimport \"./ds-button.js\";\nimport styles from \"./styles/ds-banner.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Banner extends LitElement {\n static properties = {\n text: { type: String },\n action: { type: String },\n href: { type: String },\n mailto: { type: String },\n subject: { type: String },\n describe: { type: String },\n appVersion: { type: String, attribute: \"app-version\" },\n variant: { type: String },\n version: { type: String },\n _showVersion: { type: Boolean, state: true },\n };\n\n text: string = \"\";\n action: string = \"\";\n href: string = \"\";\n mailto: string = \"\";\n subject: string = \"\";\n describe: string = \"\";\n appVersion: string = \"\";\n variant: string = \"warning\"; // warning, info, success, error\n version: string = \"\";\n _showVersion: boolean = false;\n\n private _boundUpdate = () => this.requestUpdate();\n\n connectedCallback() {\n super.connectedCallback();\n // Listen for translations and language changes to rebuild mailto URL\n window.addEventListener(\"translations-loaded\", this._boundUpdate);\n window.addEventListener(\"language-changed\", this._boundUpdate);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener(\"translations-loaded\", this._boundUpdate);\n window.removeEventListener(\"language-changed\", this._boundUpdate);\n }\n\n static styles = unsafeCSS(styles);\n\n private _toggleVersion() {\n if (this.version) {\n this._showVersion = !this._showVersion;\n }\n }\n\n private _getMailtoHref(): string {\n // If a direct href is provided, use it\n if (this.href && this.href !== \"#\") return this.href;\n\n // If mailto is provided, build internationalized URL\n if (this.mailto) {\n try {\n const subject = this.subject\n ? getText(this.subject) || this.subject\n : \"Issue report\";\n const describe = this.describe\n ? getText(this.describe) || this.describe\n : \"Describe the issue:\";\n const appVersionLabel = this.appVersion\n ? getText(this.appVersion) || this.appVersion\n : \"App version:\";\n\n const body = `${describe}\\n\\n\\n${appVersionLabel} ${this.version || \"\"}`;\n\n return `mailto:${this.mailto}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;\n } catch (error) {\n // Fallback if translations fail\n return `mailto:${this.mailto}?subject=Issue%20report&body=Describe%20the%20issue%3A%0A%0A%0AApp%20version%3A%20${this.version || \"\"}`;\n }\n }\n\n return \"#\";\n }\n\n render() {\n const mailtoHref = this._getMailtoHref();\n\n return html`\n <div class=\"text-wrapper\" @click=${this._toggleVersion}>\n ${this._showVersion && this.version\n ? html`<ds-text text=${this.version}></ds-text>`\n : html`<ds-text text=${this.text}><slot></slot></ds-text>`}\n </div>\n ${this.action\n ? html`\n <div class=\"action-wrapper\">\n <a href=${mailtoHref}>\n <ds-text text=${this.action}></ds-text>\n </a>\n </div>\n `\n : \"\"}\n `;\n }\n}\n\ncustomElements.define(\"ds-banner\", Banner);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-banner\": Banner;\n }\n}\n","// ds-card.ts\n// Card component for displaying content in a contained box\n\nimport { LitElement, html, css } from \"lit\";\n\nexport class Card extends LitElement {\n static properties = {\n variant: { type: String, reflect: true },\n elevation: { type: Number, reflect: true },\n interactive: { type: Boolean, reflect: true },\n disabled: { type: Boolean, reflect: true },\n padding: { type: String, reflect: true },\n };\n\n declare variant: \"default\" | \"outlined\" | \"elevated\" | \"filled\";\n declare elevation: number;\n declare interactive: boolean;\n declare disabled: boolean;\n declare padding: \"none\" | \"small\" | \"medium\" | \"large\";\n\n constructor() {\n super();\n this.variant = \"default\";\n this.elevation = 1;\n this.interactive = false;\n this.disabled = false;\n this.padding = \"medium\";\n }\n\n static styles = css`\n :host {\n display: block;\n box-sizing: border-box;\n border-radius: calc(var(--025) * var(--sf, 1));\n background-color: var(--card-background, var(--surface-color, #fff));\n color: var(--text-color-primary);\n transition:\n box-shadow 0.2s ease,\n transform 0.2s ease;\n }\n\n :host([variant=\"default\"]) {\n background-color: var(--card-background, var(--surface-color, #fff));\n border: 1px solid var(--border-color, rgba(0, 0, 0, 0.1));\n }\n\n :host([variant=\"outlined\"]) {\n background-color: transparent;\n border: 1px solid var(--border-color, rgba(0, 0, 0, 0.2));\n }\n\n :host([variant=\"elevated\"]) {\n background-color: var(--card-background, var(--surface-color, #fff));\n border: none;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n }\n\n :host([variant=\"filled\"]) {\n background-color: var(\n --card-background-filled,\n var(--surface-color-secondary, #f5f5f5)\n );\n border: none;\n }\n\n :host([elevation=\"0\"]) {\n box-shadow: none;\n }\n\n :host([elevation=\"1\"]) {\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);\n }\n\n :host([elevation=\"2\"]) {\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);\n }\n\n :host([elevation=\"3\"]) {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.16);\n }\n\n :host([interactive]) {\n cursor: pointer;\n }\n\n :host([interactive]:hover:not([disabled])) {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n }\n\n :host([interactive]:active:not([disabled])) {\n transform: translateY(0);\n }\n\n :host([disabled]) {\n opacity: 0.5;\n pointer-events: none;\n }\n\n :host([padding=\"none\"]) {\n padding: 0;\n }\n\n :host([padding=\"small\"]) {\n padding: calc(var(--025) * var(--sf, 1));\n }\n\n :host([padding=\"medium\"]) {\n padding: calc(var(--05) * var(--sf, 1));\n }\n\n :host([padding=\"large\"]) {\n padding: calc(var(--1) * var(--sf, 1));\n }\n\n .card-content {\n width: 100%;\n height: 100%;\n }\n `;\n\n render() {\n return html`\n <div class=\"card-content\" part=\"content\">\n <slot></slot>\n </div>\n `;\n }\n}\n\ncustomElements.define(\"ds-card\", Card);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-card\": Card;\n }\n}\n","import{nothing as t,noChange as i}from\"../lit-html.js\";import{Directive as r,PartType as s,directive as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends r{constructor(i){if(super(i),this.it=t,i.type!==s.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this._t=void 0,this.it=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.it)return this._t;this.it=r;const s=[r];return s.raw=s,this._t={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=n(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","/**\n * Auto-generated icon map - DO NOT EDIT\n * Generated by: bun run scripts/generate-icons.ts\n * Source: DS1/x-icon/*.svg\n */\n\nexport const iconNameToSvgMap: Record<string, string> = {\n \"1x\": \"<svg width=\\\"9\\\" height=\\\"8\\\" viewBox=\\\"0 0 9 8\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M2.20008 2.1176C1.96088 2.3776 1.48248 2.5024 1.09768 2.5024H0.848083V1.4H1.01448C1.68008 1.4 2.21048 1.0464 2.41848 0.307999H3.39608V7.692H2.20008V2.1176Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M4.27992 7.692L5.81912 4.9776L4.39432 2.492H5.68392L6.30792 3.7816C6.41192 3.9896 6.48472 4.1456 6.52632 4.312H6.54712C6.57832 4.156 6.65112 3.9792 6.75512 3.7712L7.33752 2.492H8.60632L7.21272 5.0088L8.75192 7.692H7.44152L6.72392 6.2672C6.61992 6.0592 6.53672 5.872 6.50552 5.7368H6.48472C6.45352 5.8512 6.37032 6.0488 6.25592 6.2672L5.53832 7.692H4.27992Z\\\" fill=\\\"#2A2A2A\\\"/>\\n</svg>\",\n \"1xdots\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M1.28996 0.148769V1.16877H0.269958V0.148769H1.28996Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M6.30998 0.148769V1.16877H5.28998V0.148769H6.30998Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M11.33 0.148769V1.16877H10.31V0.148769H11.33Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M1.28996 5.16877V6.18877H0.269958V5.16877H1.28996Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M6.30998 5.16877V6.18877H5.28998V5.16877H6.30998Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M11.33 5.16877V6.18877H10.31V5.16877H11.33Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M1.28996 10.1888V11.2088H0.269958V10.1888H1.28996Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M6.30998 10.1888V11.2088H5.28998V10.1888H6.30998Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M11.33 10.1888V11.2088H10.31V10.1888H11.33Z\\\" fill=\\\"#2A2A2A\\\"/>\\n</svg>\",\n \"1xgrid\": \"<svg width=\\\"17\\\" height=\\\"17\\\" viewBox=\\\"0 0 17 17\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M0.799988 3.34877L16.8 3.34877V4.36877L0.799988 4.36877V3.34877Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M0.799988 8.16877L16.8 8.16877V9.18877L0.799988 9.18877V8.16877Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M0.799988 12.9888H16.8V14.0088L0.799988 14.0088V12.9888Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M4.48999 16.6788L3.46999 16.6788L3.46999 0.678791L4.48999 0.678772L4.48999 16.6788Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M9.30999 16.6788L8.28999 16.6788L8.28999 0.678791L9.30999 0.678772L9.30999 16.6788Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M14.13 16.6788L13.11 16.6788L13.11 0.678791L14.13 0.678772L14.13 16.6788Z\\\" fill=\\\"#2A2A2A\\\"/>\\n</svg>\",\n \"1xlines\": \"<svg width=\\\"17\\\" height=\\\"12\\\" viewBox=\\\"0 0 17 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M0.799988 0.148769L16.8 0.14877V1.16877L0.799988 1.16877V0.148769Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M0.799988 5.16877L16.8 5.16877V6.18877L0.799988 6.18877V5.16877Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M0.799988 10.1888H16.8V11.2088L0.799988 11.2088V10.1888Z\\\" fill=\\\"#2A2A2A\\\"/>\\n</svg>\",\n \"2x\": \"<svg width=\\\"12\\\" height=\\\"8\\\" viewBox=\\\"0 0 12 8\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M3.2 2.12C2.96 2.38 2.48 2.5 2.1 2.5H1.85V1.4H2.01C2.68 1.4 3.21 1.05 3.42 0.31H4.4V7.69H3.2V2.12Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M5.28 7.69L6.82 4.98L5.39 2.49H6.68L7.31 3.78C7.41 3.99 7.48 4.15 7.53 4.31H7.55C7.58 4.16 7.65 3.98 7.76 3.77L8.34 2.49H9.61L8.21 5.01L9.75 7.69H8.44L7.72 6.27C7.62 6.06 7.54 5.87 7.51 5.74H7.48C7.45 5.85 7.37 6.05 7.26 6.27L6.54 7.69H5.28Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"2xdots\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"1\\\" cy=\\\"1\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"4\\\" cy=\\\"1\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"1\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"1\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"1\\\" cy=\\\"4\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"4\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"4\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"1\\\" cy=\\\"7\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"4\\\" cy=\\\"7\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"7\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"7\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"1\\\" cy=\\\"10\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"4\\\" cy=\\\"10\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"10\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"2xgrid\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"0\\\" y=\\\"0\\\" width=\\\"5.5\\\" height=\\\"5.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"6.5\\\" y=\\\"0\\\" width=\\\"5.5\\\" height=\\\"5.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"0\\\" y=\\\"6.5\\\" width=\\\"5.5\\\" height=\\\"5.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"6.5\\\" y=\\\"6.5\\\" width=\\\"5.5\\\" height=\\\"5.5\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"2xlines\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<line x1=\\\"0\\\" y1=\\\"1\\\" x2=\\\"12\\\" y2=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\"/>\\n<line x1=\\\"0\\\" y1=\\\"4\\\" x2=\\\"12\\\" y2=\\\"4\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\"/>\\n<line x1=\\\"0\\\" y1=\\\"7\\\" x2=\\\"12\\\" y2=\\\"7\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\"/>\\n<line x1=\\\"0\\\" y1=\\\"10\\\" x2=\\\"12\\\" y2=\\\"10\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\"/>\\n</svg>\",\n \"4x4\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"0\\\" y=\\\"0\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"3.5\\\" y=\\\"0\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"7\\\" y=\\\"0\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"10.5\\\" y=\\\"0\\\" width=\\\"1.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"0\\\" y=\\\"3.5\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"3.5\\\" y=\\\"3.5\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"7\\\" y=\\\"3.5\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"10.5\\\" y=\\\"3.5\\\" width=\\\"1.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"0\\\" y=\\\"7\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"3.5\\\" y=\\\"7\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"7\\\" y=\\\"7\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"10.5\\\" y=\\\"7\\\" width=\\\"1.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"0\\\" y=\\\"10.5\\\" width=\\\"2.5\\\" height=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"3.5\\\" y=\\\"10.5\\\" width=\\\"2.5\\\" height=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"7\\\" y=\\\"10.5\\\" width=\\\"2.5\\\" height=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"10.5\\\" y=\\\"10.5\\\" width=\\\"1.5\\\" height=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"apple\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M12.0351 10.793C11.8838 11.1424 11.7048 11.464 11.4974 11.7597C11.2147 12.1627 10.9832 12.4418 10.8048 12.5967C10.5283 12.851 10.232 12.9812 9.91475 12.9886C9.68698 12.9886 9.41229 12.9238 9.09255 12.7924C8.77176 12.6615 8.47695 12.5967 8.20739 12.5967C7.92469 12.5967 7.62148 12.6615 7.29717 12.7924C6.97237 12.9238 6.71071 12.9924 6.51065 12.9991C6.2064 13.0121 5.90314 12.8782 5.60044 12.5967C5.40723 12.4282 5.16557 12.1393 4.87607 11.73C4.56547 11.293 4.3101 10.7862 4.11005 10.2085C3.8958 9.58443 3.78839 8.98013 3.78839 8.39508C3.78839 7.72492 3.9332 7.14691 4.22325 6.66254C4.45121 6.27348 4.75447 5.96658 5.13403 5.74128C5.51359 5.51597 5.9237 5.40116 6.36535 5.39382C6.60701 5.39382 6.92391 5.46857 7.31773 5.61548C7.71043 5.76288 7.96259 5.83763 8.07314 5.83763C8.15579 5.83763 8.4359 5.75023 8.91077 5.57597C9.35983 5.41437 9.73883 5.34746 10.0493 5.37382C10.8906 5.44172 11.5227 5.77337 11.9431 6.37089C11.1906 6.8268 10.8184 7.46536 10.8258 8.28453C10.8326 8.9226 11.0641 9.45357 11.519 9.87516C11.7252 10.0708 11.9554 10.2221 12.2116 10.3295C12.156 10.4906 12.0974 10.6449 12.0351 10.793ZM10.1055 3.20006C10.1055 3.70017 9.92277 4.16713 9.55859 4.59933C9.11909 5.11315 8.5875 5.41005 8.01104 5.3632C8.0037 5.3032 7.99944 5.24006 7.99944 5.1737C7.99944 4.69359 8.20844 4.17978 8.5796 3.75967C8.76491 3.54696 9.00058 3.37009 9.28637 3.22901C9.57155 3.09002 9.84129 3.01316 10.095 3C10.1024 3.06686 10.1055 3.13372 10.1055 3.20006Z\\\" fill=\\\"black\\\"/>\\n</svg>\",\n \"avatar\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8.00001 8.56915C8.71876 8.56915 9.36524 8.67853 9.93946 8.89728C10.5137 9.11212 11.0039 9.39142 11.4102 9.73517C11.8203 10.0789 12.0434 10.4012 12.2583 10.7957C12.3903 11.0383 12.5357 11.3646 12.6249 11.756C12.6779 11.9885 12.7133 12.2215 12.7133 12.7234H3.28666C3.28666 12.2215 3.32208 11.9885 3.37507 11.756C3.46425 11.3646 3.6096 11.0383 3.74169 10.7957C3.95654 10.4012 4.17962 10.0789 4.58978 9.73517C4.99603 9.39142 5.48626 9.11212 6.06048 8.89728C6.6347 8.67853 7.28126 8.56915 8.00001 8.56915Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M8.00291 7.71044C7.60056 7.71044 7.22947 7.61191 6.88963 7.41484C6.55369 7.2142 6.28416 6.94369 6.08103 6.60331C5.87791 6.26293 5.77634 5.88314 5.77634 5.46394C5.77634 5.04832 5.87791 4.67569 6.08103 4.34607C6.28416 4.01285 6.55564 3.74951 6.89548 3.55603C7.23533 3.35897 7.60447 3.26044 8.00291 3.26044C8.40134 3.26044 8.76853 3.35718 9.10447 3.55065C9.44041 3.74055 9.70994 4.0021 9.91306 4.33532C10.1201 4.66495 10.2236 5.03757 10.2236 5.45319C10.2236 5.87598 10.1201 6.25935 9.91306 6.60331C9.70994 6.94369 9.44041 7.2142 9.10447 7.41484C8.76853 7.61191 8.40134 7.71044 8.00291 7.71044Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"check\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6.68649 11.884L12.443 6.13601L11.736 5.42715L6.68835 10.4827L4.26399 8.0501L3.55696 8.74525L6.68649 11.884Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"close\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M12.1215 4.58087L8.70453 7.99397L12.1176 11.4169L11.4106 12.112L7.99847 8.69108L4.58636 12.112L3.87836 11.4031L7.29535 7.99005L3.88226 4.56716L4.58929 3.87201L8.0014 7.29294L11.4145 3.87201L12.1215 4.58087Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"collapse\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M2 4L6 8L10 4\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\",\n \"color\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"3\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"column\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M4.67614 12.123L0.536957 7.98382L4.66961 3.85117L5.38124 4.54974L2.45639 7.47459L13.5436 7.50693L10.6122 4.5886L11.3239 3.87698L15.463 8.01616L11.3304 12.1488L10.6188 11.4503L13.5436 8.5254L2.45639 8.49306L5.38777 11.4114L4.67614 12.123Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"default\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M9.159 15V6.81H6.26V5.77H13.293V6.81H10.394V15H9.159Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M5.1 0V5.10001H0V0H5.1Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"delete\": \"<svg width=\\\"12\\\" height=\\\"14\\\" viewBox=\\\"0 0 12 14\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 3H11M4.5 3V1.5H7.5V3M2.5 3V12.5C2.5 13.0523 2.94772 13.5 3.5 13.5H8.5C9.05228 13.5 9.5 13.0523 9.5 12.5V3\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"4.5\\\" y1=\\\"5.5\\\" x2=\\\"4.5\\\" y2=\\\"11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n<line x1=\\\"7.5\\\" y1=\\\"5.5\\\" x2=\\\"7.5\\\" y2=\\\"11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\",\n \"dictate\": \"<svg width=\\\"12\\\" height=\\\"14\\\" viewBox=\\\"0 0 12 14\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"3.5\\\" y=\\\"0\\\" width=\\\"5\\\" height=\\\"8\\\" rx=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M1 6C1 8.76142 3.23858 11 6 11C8.76142 11 11 8.76142 11 6\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"6\\\" y1=\\\"11\\\" x2=\\\"6\\\" y2=\\\"14\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\"/>\\n<line x1=\\\"3.5\\\" y1=\\\"14\\\" x2=\\\"8.5\\\" y2=\\\"14\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\"/>\\n</svg>\",\n \"down\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M7.49645 12.5178V2.86102e-06H8.50702L8.50841 12.5174L11.4156 9.61018L12.1095 10.317L8.00173 14.4248L3.8905 10.3135L4.59784 9.60619L7.49645 12.5178Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"duplicate\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"3\\\" y=\\\"3\\\" width=\\\"8\\\" height=\\\"8\\\" rx=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M9 3V2C9 1.44772 8.55228 1 8 1H2C1.44772 1 1 1.44772 1 2V8C1 8.55228 1.44772 9 2 9H3\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n</svg>\",\n \"email\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"11\\\" viewBox=\\\"0 0 16 11\\\" fill=\\\"none\\\">\\n <path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M14.0871 0.989435L0.930906 0.988037L0.930542 11L13.0753 11H14.0871V0.989435ZM7.50709 8.0566L1.94249 2.49201L1.94248 9.98814H13.0753V2.48839L7.50709 8.0566ZM2.85116 2L7.50709 6.65593L12.1515 1.99952L2.85116 2Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"expand\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\">\\n <path d=\\\"M0 5.81415V0H5.80924L5.81842 0.990424H1.70698L11.0089 10.2943L10.9997 6.18585H12V12H6.19076L6.18158 11.0096H10.293L0.99115 1.70573L1.00033 5.81415H0Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"gallery\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M0 16V0H16L0 16ZM0.706055 0.769531V1.80957H3.60547V10H4.83984V1.80957H7.73926V0.769531H0.706055Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"globe\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6.87775 12.5554C7.08028 12.6051 7.28795 12.6416 7.49983 12.664V11.8571C7.2467 11.5176 7.00708 11.1483 6.79982 10.753C6.49693 10.8285 6.20261 10.9278 5.9183 11.0454C6.19879 11.6048 6.53384 12.111 6.87775 12.5554Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M5.19187 8.49193C5.23389 9.09581 5.36568 9.66767 5.55639 10.2017C5.83545 10.0858 6.12511 9.9844 6.42434 9.90232C6.26416 9.4557 6.15312 8.98405 6.11253 8.49193H5.19187Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M6.87775 3.42868C7.08028 3.37904 7.28795 3.34252 7.49983 3.3201V4.12696C7.2467 4.46645 7.00708 4.83584 6.79982 5.23109C6.49693 5.15561 6.20261 5.05627 5.9183 4.93873C6.19879 4.37926 6.53384 3.87306 6.87775 3.42868Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M5.19187 7.49217C5.23389 6.88828 5.36568 6.31643 5.55639 5.7824C5.83545 5.89834 6.12511 5.9997 6.42434 6.08178C6.26416 6.52839 6.15312 7.00004 6.11253 7.49217H5.19187Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M2.30171 7.99205H3.30171C3.30172 7.82319 3.31063 7.65642 3.32801 7.49217C3.42195 6.60422 3.76325 5.79004 4.28172 5.11985C3.98894 4.93686 3.71427 4.74365 3.45958 4.54857C2.73299 5.50512 2.30174 6.69824 2.30171 7.99205Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M2.30171 7.99205C2.30174 9.28585 2.73299 10.479 3.45958 11.4355C3.71427 11.2404 3.98894 11.0472 4.28172 10.8642C3.76325 10.1941 3.42195 9.37987 3.32801 8.49193C3.31063 8.32768 3.30172 8.1609 3.30171 7.99205H2.30171Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M9.12215 12.5552C8.91963 12.6048 8.71196 12.6414 8.50008 12.6638V11.8569C8.75321 11.5174 8.99283 11.148 9.20009 10.7528C9.50298 10.8283 9.7973 10.9276 10.0816 11.0452C9.80112 11.6046 9.46607 12.1108 9.12215 12.5552Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.808 8.49171C10.766 9.0956 10.6342 9.66745 10.4435 10.2015C10.1645 10.0855 9.87479 9.98418 9.57557 9.90211C9.73575 9.45549 9.84678 8.98384 9.88738 8.49171H10.808Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M9.12215 3.42847C8.91963 3.37883 8.71196 3.34231 8.50008 3.31989V4.12675C8.75321 4.46624 8.99283 4.83563 9.20009 5.23088C9.50298 5.1554 9.7973 5.05606 10.0816 4.93852C9.80112 4.37905 9.46607 3.87284 9.12215 3.42847Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.808 7.49196C10.766 6.88807 10.6342 6.31622 10.4435 5.78218C10.1645 5.89813 9.87479 5.99949 9.57557 6.08156C9.73575 6.52818 9.84678 6.99983 9.88738 7.49196H10.808Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M13.6982 7.99205L12.6982 7.99184C12.6982 7.82298 12.6893 7.65621 12.6719 7.49196C12.578 6.60401 12.2367 5.78983 11.7182 5.11964C12.011 4.93665 12.2856 4.74344 12.5403 4.54836C13.2669 5.5049 13.6982 6.69824 13.6982 7.99205Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M13.6982 7.99205C13.6982 9.28585 13.2669 10.4788 12.5403 11.4353C12.2856 11.2402 12.011 11.047 11.7182 10.864C12.2367 10.1938 12.578 9.37966 12.6719 8.49171C12.6893 8.32746 12.6982 8.16069 12.6982 7.99184L13.6982 7.99205Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M6.872 13.5787C7.2366 13.6519 7.61379 13.6903 7.99995 13.6903V12.6903C7.83102 12.6903 7.66416 12.6814 7.49983 12.664C7.28795 12.6416 7.08028 12.6051 6.87775 12.5554C6.14481 12.3758 5.47939 12.0241 4.9267 11.5457C4.62544 11.7252 4.3403 11.9201 4.0736 12.1216C4.83631 12.847 5.79974 13.3633 6.872 13.5787Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M3.45958 11.4355C3.64564 11.6805 3.85108 11.9099 4.0736 12.1216C4.3403 11.9201 4.62544 11.7252 4.9267 11.5457C4.68981 11.3407 4.47363 11.1123 4.28172 10.8642C3.98894 11.0472 3.71427 11.2404 3.45958 11.4355Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M4.9267 11.5457C5.24061 11.3587 5.57202 11.1885 5.9183 11.0454C5.78333 10.7762 5.661 10.4946 5.55639 10.2017C5.10182 10.3906 4.6754 10.6182 4.28172 10.8642C4.47363 11.1123 4.68981 11.3407 4.9267 11.5457Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M5.9183 11.0454C6.20261 10.9278 6.49693 10.8285 6.79982 10.753C6.65732 10.4812 6.53011 10.1972 6.42434 9.90232C6.12511 9.9844 5.83545 10.0858 5.55639 10.2017C5.661 10.4946 5.78333 10.7762 5.9183 11.0454Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M6.79982 10.753C7.02849 10.696 7.26203 10.6526 7.49983 10.6253V9.70209C7.12963 9.73818 6.77058 9.80734 6.42434 9.90232C6.53011 10.1972 6.65732 10.4812 6.79982 10.753Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M7.49983 12.664C7.66416 12.6814 7.83102 12.6903 7.99995 12.6903V7.99205H3.30171C3.30172 8.1609 3.31063 8.32768 3.32801 8.49193H5.19187H6.11253H7.49983V9.70209V10.6253V11.8571V12.664Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M7.99995 12.6903C8.16889 12.6903 8.33575 12.6812 8.50008 12.6638V11.8569V10.6251V9.70188V8.49171H9.88738H10.808H12.6719C12.6893 8.32746 12.6982 8.16069 12.6982 7.99184L7.99995 7.99205V12.6903Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M8.50008 10.6251C8.73788 10.6524 8.97142 10.6958 9.20009 10.7528C9.34259 10.481 9.4698 10.197 9.57557 9.90211C9.22932 9.80713 8.87028 9.73797 8.50008 9.70188V10.6251Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M9.20009 10.7528C9.50298 10.8283 9.7973 10.9276 10.0816 11.0452C10.2166 10.7759 10.3389 10.4944 10.4435 10.2015C10.1645 10.0855 9.87479 9.98418 9.57557 9.90211C9.4698 10.197 9.34259 10.481 9.20009 10.7528Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.0816 11.0452C10.4279 11.1883 10.7593 11.3585 11.0732 11.5455C11.3101 11.3404 11.5263 11.1121 11.7182 10.864C11.3245 10.618 10.8981 10.3904 10.4435 10.2015C10.3389 10.4944 10.2166 10.7759 10.0816 11.0452Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M11.9263 12.1214C12.1488 11.9097 12.3543 11.6803 12.5403 11.4353C12.2856 11.2402 12.011 11.047 11.7182 10.864C11.5263 11.1121 11.3101 11.3404 11.0732 11.5455C11.3745 11.725 11.6596 11.9199 11.9263 12.1214Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M7.99995 13.6903C8.38611 13.6903 8.7633 13.6517 9.12791 13.5784C10.2002 13.3631 11.1636 12.8468 11.9263 12.1214C11.6596 11.9199 11.3745 11.725 11.0732 11.5455C10.5205 12.0239 9.8551 12.3756 9.12215 12.5552C8.91963 12.6048 8.71196 12.6414 8.50008 12.6638C8.33575 12.6812 8.16889 12.6903 7.99995 12.6903V13.6903Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M9.20009 5.23088C8.97142 5.28786 8.73788 5.33124 8.50008 5.3586V6.28179C8.87028 6.24571 9.22932 6.17654 9.57557 6.08156C9.4698 5.78665 9.34259 5.50265 9.20009 5.23088Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M7.49983 5.35882C7.26203 5.33145 7.02849 5.28807 6.79982 5.23109C6.65732 5.50286 6.53011 5.78686 6.42434 6.08178C6.77058 6.17675 7.12963 6.24592 7.49983 6.282V5.35882Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M6.79982 5.23109C6.49693 5.15561 6.20261 5.05627 5.9183 4.93873C5.78333 5.20794 5.661 5.48948 5.55639 5.7824C5.83545 5.89834 6.12511 5.9997 6.42434 6.08178C6.53011 5.78686 6.65732 5.50286 6.79982 5.23109Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M5.9183 4.93873C5.57202 4.79556 5.24061 4.62538 4.9267 4.43838C4.68981 4.64343 4.47363 4.87178 4.28172 5.11985C4.6754 5.36592 5.10182 5.59352 5.55639 5.7824C5.661 5.48948 5.78333 5.20794 5.9183 4.93873Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M4.0736 3.86253C3.85108 4.07417 3.64564 4.30362 3.45958 4.54857C3.71427 4.74365 3.98894 4.93686 4.28172 5.11985C4.47363 4.87178 4.68981 4.64343 4.9267 4.43838C4.62544 4.25892 4.3403 4.06396 4.0736 3.86253Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M7.99995 2.29381C7.61379 2.29381 7.2366 2.33222 6.872 2.40544C5.79974 2.62077 4.83631 3.13711 4.0736 3.86253C4.3403 4.06396 4.62544 4.25892 4.9267 4.43838C5.47939 3.95997 6.14481 3.60833 6.87775 3.42868C7.08028 3.37904 7.28795 3.34252 7.49983 3.3201C7.66416 3.30271 7.83102 3.2938 7.99995 3.2938V2.29381Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M7.99995 3.2938C7.83102 3.2938 7.66416 3.30271 7.49983 3.3201V4.12696V5.35882V6.282V7.49217H6.11253H5.19187H3.32801C3.31063 7.65642 3.30172 7.82319 3.30171 7.99205H7.99995V3.2938Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M8.50008 3.31989C8.33575 3.3025 8.16889 3.2938 7.99995 3.2938V7.99205L12.6982 7.99184C12.6982 7.82298 12.6893 7.65621 12.6719 7.49196H10.808H9.88738H8.50008V6.28179V5.3586V4.12675V3.31989Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M9.12791 2.40523C8.7633 2.33201 8.38611 2.29381 7.99995 2.29381V3.2938C8.16889 3.2938 8.33575 3.3025 8.50008 3.31989C8.71196 3.34231 8.91963 3.37883 9.12215 3.42847C9.8551 3.60812 10.5205 3.95976 11.0732 4.43817C11.3745 4.25871 11.6596 4.06375 11.9263 3.86232C11.1636 3.13689 10.2002 2.62056 9.12791 2.40523Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.0816 4.93852C9.7973 5.05606 9.50298 5.1554 9.20009 5.23088C9.34259 5.50265 9.4698 5.78665 9.57557 6.08156C9.87479 5.99949 10.1645 5.89813 10.4435 5.78218C10.3389 5.48926 10.2166 5.20772 10.0816 4.93852Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M11.0732 4.43817C10.7593 4.62517 10.4279 4.79535 10.0816 4.93852C10.2166 5.20772 10.3389 5.48926 10.4435 5.78218C10.8981 5.5933 11.3245 5.3657 11.7182 5.11964C11.5263 4.87157 11.3101 4.64322 11.0732 4.43817Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M12.5403 4.54836C12.3543 4.3034 12.1488 4.07396 11.9263 3.86232C11.6596 4.06375 11.3745 4.25871 11.0732 4.43817C11.3101 4.64322 11.5263 4.87157 11.7182 5.11964C12.011 4.93665 12.2856 4.74344 12.5403 4.54836Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"google\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M13.0004 8.11502C13.0004 7.77514 12.9723 7.43342 12.9123 7.09904H8.10071V9.02447H10.8561C10.7418 9.64542 10.3744 10.1948 9.83641 10.5438V11.7932H11.4803C12.4456 10.9223 13.0004 9.63627 13.0004 8.11502Z\\\" fill=\\\"#4285F4\\\"/>\\n<path d=\\\"M8.10074 13.0001C9.47654 13.0001 10.6368 12.5573 11.4821 11.793L9.83829 10.5437C9.38094 10.8487 8.79049 11.0214 8.10259 11.0214C6.77176 11.0214 5.64336 10.1413 5.23849 8.95818H3.54215V10.2461C4.40813 11.9345 6.17195 13.0001 8.10074 13.0001Z\\\" fill=\\\"#34A853\\\"/>\\n<path d=\\\"M5.23681 8.95856C5.02313 8.33756 5.02313 7.66515 5.23681 7.04416V5.75627H3.54234C2.81882 7.1691 2.81863 8.83323 3.54215 10.2461L5.23681 8.95856Z\\\" fill=\\\"#FBBC04\\\"/>\\n<path d=\\\"M8.10074 4.97895C8.82799 4.96793 9.53089 5.23616 10.0576 5.72854L11.514 4.30101C10.5918 3.45222 9.36784 2.98556 8.10074 3.00026C6.17195 3.00026 4.40832 4.06603 3.54234 5.75627L5.23681 7.04416C5.63981 5.85915 6.76989 4.97895 8.10074 4.97895Z\\\" fill=\\\"#EA4335\\\"/>\\n</svg>\",\n \"group\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8.0716 12.8281C7.24826 12.8281 6.52893 12.6201 5.9136 12.2041C5.30693 11.7881 4.83893 11.2161 4.5096 10.4881C4.18893 9.7514 4.02859 8.9194 4.02859 7.99207C4.02859 7.0474 4.19326 6.21107 4.5226 5.48307C4.8606 4.7464 5.34593 4.1744 5.9786 3.76707C6.61993 3.35973 7.38693 3.15607 8.2796 3.15607C9.0596 3.15607 9.70093 3.30773 10.2036 3.61107C10.7149 3.9144 11.0919 4.2784 11.3346 4.70307C11.5859 5.11907 11.7419 5.53507 11.8026 5.95107L10.5806 6.12007C10.4939 5.6174 10.2643 5.17107 9.8916 4.78107C9.5276 4.39107 8.97726 4.19607 8.2406 4.19607C7.62526 4.19607 7.09226 4.3564 6.6416 4.67707C6.1996 4.99773 5.8616 5.44407 5.6276 6.01607C5.40226 6.58807 5.2896 7.25107 5.2896 8.00507C5.2896 9.12307 5.54093 10.0331 6.0436 10.7351C6.55493 11.4371 7.2916 11.7881 8.2536 11.7881C8.94693 11.7881 9.4886 11.6321 9.8786 11.3201C10.2686 10.9994 10.5286 10.6267 10.6586 10.2021C10.7973 9.7774 10.8666 9.37007 10.8666 8.98007V8.82407H8.1626V7.78407H11.9716V12.6071H11.0746L10.9056 11.1251C10.6976 11.6364 10.3423 12.0481 9.8396 12.3601C9.33693 12.6721 8.7476 12.8281 8.0716 12.8281Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"head\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M4.33452 12.7273V3.27274H5.4794V7.48296H10.5206V3.27274H11.6655V12.7273H10.5206V8.49859H5.4794V12.7273H4.33452Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"home\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 5L6 1L11 5V11H7.5V7.5H4.5V11H1V5Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"icon\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"1\\\" y=\\\"1\\\" width=\\\"10\\\" height=\\\"10\\\" rx=\\\"2\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"in\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M12.1361 3.56571L7.99688 7.72965L3.86423 3.57226L4.5628 2.85638L7.48765 5.79873L7.49661 9.59381e-07L8.51508 0L8.50612 5.79873L11.4244 2.84983L12.1361 3.56571Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M3.86395 12.3337L8.00314 8.16974L12.1358 12.3271L11.4372 13.043L8.51238 10.1007L8.49783 16H7.47936L7.4939 10.1007L4.57558 13.0496L3.86395 12.3337Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"left\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"9\\\" viewBox=\\\"0 0 16 9\\\" fill=\\\"none\\\">\\n <path d=\\\"M1.90697 3.60594H15.0636V4.61651L1.90734 4.61791L4.81456 7.52513L4.10774 8.21898L-1.23978e-05 4.11123L4.11122 0L4.81855 0.707338L1.90697 3.60594Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"lock\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M8 2.60742C9.53669 2.60746 10.7822 3.85296 10.7822 5.38965V7.64746H11.5996V13.3926H4.40039V7.64746H5.21777V5.38965C5.21779 3.85295 6.4633 2.60744 8 2.60742ZM8 3.62695C7.02663 3.62697 6.23733 4.41628 6.2373 5.38965V7.64746H9.7627V5.38965C9.76267 4.41629 8.97336 3.62699 8 3.62695Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"loop\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M12.0037 1.96826L12.0037 7.12486L14.9023 4.21328L15.6096 4.92061L11.4984 9.03184L7.39064 4.92409L8.08449 4.21727L10.9917 7.12449L10.9931 2.98673L5.00853 3.00323V1.98475L12.0037 1.96826Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M3.99657 14.0318L3.99657 8.87523L1.09796 11.7868L0.390625 11.0795L4.50185 6.96825L8.6096 11.076L7.91576 11.7828L5.00853 8.8756L5.00714 13.0134L10.9917 12.9972V14.0157L3.99657 14.0318Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.9917 12.9972V14.0157H12.0037V12.9973V9.85949L10.9917 9.85912V12.9972Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M3.99657 5.1225V6.14098H5.00853V5.12251V1.98475L3.99657 1.98438V5.1225Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"mic\": \"<svg width=\\\"10\\\" height=\\\"14\\\" viewBox=\\\"0 0 10 14\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"2.5\\\" y=\\\"1\\\" width=\\\"5\\\" height=\\\"7\\\" rx=\\\"2.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M1 6C1 8.76142 2.79086 11 5 11C7.20914 11 9 8.76142 9 6\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"5\\\" y1=\\\"11\\\" x2=\\\"5\\\" y2=\\\"13\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\",\n \"minimize\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8.20203 14.0654V8.21172H14.0465L14.0557 9.20887H9.91936L14.0789 13.3608L13.3587 14.0809L9.19919 9.92904L9.20842 14.0654H8.20203Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M7.77478 1.93962V7.79332H1.93032L1.92109 6.79616H6.05745L1.92109 2.63922L2.64126 1.91905L6.77762 6.07599L6.76839 1.93962H7.77478Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"more\": \"<svg width=\\\"12\\\" height=\\\"4\\\" viewBox=\\\"0 0 12 4\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"2\\\" cy=\\\"2\\\" r=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"6\\\" cy=\\\"2\\\" r=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"2\\\" r=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"note\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M13.9653 3.31348V12.6865H2.03467V3.31348H13.9653ZM3.03467 11.6865H12.9653V4.31348H3.03467V11.6865Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M8.00641 7.08004V7.99996H3.71344V7.08004H8.00641ZM9.9527 5.08004V5.99996H3.71344V5.08004H9.9527Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"open\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1.96 7.81289V1.9592H7.80797L7.81721 2.95636H3.67836L13.0422 12.3235L13.033 8.18711H14.04V14.0408H8.19203L8.18279 13.0436H12.3216L2.95776 3.67653L2.967 7.81289H1.96Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"page\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M12.9956 1.70508V14.2949H3.00439V1.70508H12.9956ZM3.92432 13.375H12.0757V2.625H3.92432V13.375ZM7.87842 7.85742V8.77734H5.12939V7.85742H7.87842ZM10.0259 5.92578V6.8457H5.12939V5.92578H10.0259ZM10.0259 3.99316V4.91406H5.12939V3.99316H10.0259Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"plus\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8.50235 2.6739L8.4996 7.5035L13.3334 7.51044L13.325 8.50193L8.49328 8.49569L8.49951 13.3274L7.49764 13.3268L7.50039 8.49717L2.66663 8.49024L2.67503 7.49875L7.50672 7.50499L7.50117 2.67261L8.50235 2.6739Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"right\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M13.1566 8.60594H0V9.61651L13.1562 9.61791L10.249 12.5251L10.9558 13.219L15.0636 9.11123L10.9524 5L10.245 5.70734L13.1566 8.60594Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"row\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M3.87698 4.67614L8.01617 0.536957L12.1488 4.66961L11.4503 5.38124L8.5254 2.45639L8.49306 13.5436L11.4114 10.6122L12.123 11.3239L7.98382 15.463L3.85117 11.3304L4.54974 10.6188L7.47459 13.5436L7.50693 2.45639L4.58861 5.38777L3.87698 4.67614Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"sdown\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8.50361 11.1717L8.50222 2.92134L7.49165 2.92134L7.49165 11.1713L4.58442 8.26409L3.89058 8.97091L7.99833 13.0787L12.1096 8.96744L11.4022 8.2601L8.50361 11.1717Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"search\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M9.08545 6.62646C9.08545 5.25128 7.9704 4.13623 6.59521 4.13623C5.22003 4.13623 4.10498 5.25128 4.10498 6.62646C4.10498 8.00165 5.22003 9.1167 6.59521 9.1167C7.9704 9.1167 9.08545 8.00165 9.08545 6.62646ZM10.105 6.62646C10.105 7.39551 9.85647 8.10577 9.43701 8.68408L12.9146 12.1616L12.1929 12.8833L8.72412 9.41455C8.13339 9.86631 7.39632 10.1362 6.59521 10.1362C4.6567 10.1362 3.08545 8.56498 3.08545 6.62646C3.08545 4.68795 4.6567 3.1167 6.59521 3.1167C8.53373 3.1167 10.105 4.68795 10.105 6.62646Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"see\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8.07669 3.70416C10.1007 3.70416 11.795 4.74149 12.9566 5.73248C13.5418 6.23179 14.005 6.72991 14.3218 7.10358C14.4804 7.29069 14.6032 7.44763 14.687 7.55865C14.7289 7.61411 14.7615 7.65861 14.7837 7.68951C14.7947 7.70477 14.8031 7.71711 14.8091 7.72565C14.812 7.72971 14.8143 7.73297 14.8159 7.73541C14.8167 7.73644 14.8174 7.73762 14.8179 7.73834L14.8189 7.73932C14.819 7.73947 14.8195 7.74054 14.4409 8.00006L14.8189 8.25983L14.8179 8.2608C14.8174 8.2616 14.8168 8.26345 14.8159 8.26471C14.8142 8.26716 14.812 8.27042 14.8091 8.27448C14.8031 8.28303 14.7947 8.29531 14.7837 8.31061C14.7615 8.34152 14.7289 8.38597 14.687 8.44147C14.6032 8.5525 14.4805 8.70941 14.3218 8.89655C14.005 9.27021 13.5418 9.76835 12.9566 10.2676C11.795 11.2586 10.1006 12.296 8.07669 12.296C6.05499 12.296 4.32326 11.2606 3.12552 10.2725C2.52184 9.77448 2.04049 9.27717 1.7095 8.90436C1.54374 8.71764 1.4147 8.56095 1.32669 8.45026C1.28274 8.39498 1.24843 8.35111 1.22513 8.32037C1.21356 8.30511 1.20507 8.29275 1.19876 8.28424C1.19566 8.28005 1.19275 8.27694 1.19095 8.27448C1.19016 8.27341 1.18952 8.27227 1.189 8.27155L1.18802 8.27057V8.26959L0.99173 8.00006L1.18802 7.73053V7.72955L1.189 7.72858C1.18953 7.72784 1.19013 7.72676 1.19095 7.72565C1.19276 7.72318 1.19563 7.72011 1.19876 7.71588C1.20506 7.70738 1.21356 7.69502 1.22513 7.67975C1.24842 7.64902 1.28277 7.6051 1.32669 7.54987C1.4147 7.43918 1.54374 7.28248 1.7095 7.09576C2.04048 6.72296 2.52183 6.22565 3.12552 5.7276C4.32326 4.73948 6.05499 3.70417 8.07669 3.70416ZM8.07669 4.62213C6.36481 4.62213 4.83715 5.50531 3.7095 6.43561C3.15087 6.8965 2.70364 7.35865 2.39603 7.70514C2.29735 7.81629 2.21535 7.91722 2.147 8.00006C2.21534 8.08289 2.29738 8.18387 2.39603 8.29498C2.70365 8.64147 3.15087 9.10363 3.7095 9.56451C4.83715 10.4948 6.36481 11.378 8.07669 11.378C9.7862 11.378 11.2738 10.4968 12.3609 9.5694C12.9 9.10949 13.3285 8.64854 13.6216 8.3028C13.7189 8.18799 13.7987 8.0844 13.8648 8.00006C13.7987 7.91573 13.7189 7.81214 13.6216 7.69733C13.3285 7.35158 12.9 6.89064 12.3609 6.43073C11.2738 5.50334 9.78624 4.62213 8.07669 4.62213ZM14.9976 8.00006L14.8199 8.25983L14.4409 8.00006L14.8199 7.7403L14.9976 8.00006Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M8.15292 5.66766C9.44109 5.66766 10.4858 6.71157 10.4859 7.99969C10.4859 9.28796 9.44119 10.3327 8.15292 10.3327C6.8648 10.3325 5.82089 9.28786 5.82089 7.99969C5.82106 6.71167 6.8649 5.66783 8.15292 5.66766Z\\\" fill=\\\"#1E1E1E\\\" stroke=\\\"#1E1E1E\\\" stroke-width=\\\"0.81\\\"/>\\n</svg>\",\n \"star\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M4.38604 13.4L5.77704 9.26605L2.42304 7.01705H6.53104L8.00004 2.58405L9.49504 7.01705H13.577L10.223 9.26605L11.64 13.4L8.00004 10.761L4.38604 13.4Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"status\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8.51244 5.31893L8.50618 1.97758H7.4877L7.49396 5.31893L8.51244 5.31893Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.2525 6.46416L12.6108 4.09704L11.8906 3.37687L9.53235 5.74399L10.2525 6.46416Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.6731 8.50438L14.0145 8.49812V7.47965L10.6731 7.4859L10.6731 8.50438Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M9.52792 10.2445L11.895 12.6027L12.6152 11.8826L10.2481 9.52429L9.52792 10.2445Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M7.4877 10.6651L7.49396 14.0064H8.51243L8.50618 10.6651L7.4877 10.6651Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M5.74762 9.51987L3.38935 11.887L4.10952 12.6072L6.46779 10.24L5.74762 9.51987Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M5.32699 7.47965L1.98564 7.48591L1.98564 8.50438L5.32699 8.49812L5.32699 7.47965Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M6.47222 5.73956L4.1051 3.3813L3.38493 4.10147L5.75204 6.45973L6.47222 5.73956Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"sup\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M7.49658 4.82836L7.49798 13.0787L8.50855 13.0787L8.50855 4.82873L11.4158 7.73596L12.1096 7.02913L8.00187 2.92138L3.89064 7.03261L4.59798 7.73995L7.49658 4.82836Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"title\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M7.38251 12.615V4.42501H4.48351V3.38501H11.5165V4.42501H8.61751V12.615H7.38251Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"titlestyle\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<g clip-path=\\\"url(#clip0_117_106)\\\">\\n<path d=\\\"M13.158 12.607V4.41701H10.259V3.37701H16.0011V4.41701H14.393V12.607H13.158Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M8.99904 3.49201V12.492H-0.000961304V3.49201H8.99904Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</g>\\n<defs>\\n<clipPath id=\\\"clip0_117_106\\\">\\n<rect width=\\\"16\\\" height=\\\"16\\\" fill=\\\"white\\\"/>\\n</clipPath>\\n</defs>\\n</svg>\",\n \"undo\": \"<svg width=\\\"12\\\" height=\\\"10\\\" viewBox=\\\"0 0 12 10\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 4L4 1M1 4L4 7M1 4H8C9.65685 4 11 5.34315 11 7V9\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" fill=\\\"none\\\"/>\\n</svg>\",\n \"ungroup\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M8.0715 12.8292C7.24817 12.8292 6.52884 12.6212 5.9135 12.2052C5.30684 11.7892 4.83884 11.2172 4.5095 10.4892C4.18884 9.7525 4.0285 8.9205 4.0285 7.99317C4.0285 7.29763 4.11777 6.66082 4.2963 6.08274L5.34525 7.13254C5.30809 7.40874 5.2895 7.69995 5.2895 8.00617C5.2895 9.12417 5.54084 10.0342 6.0435 10.7362C6.55484 11.4382 7.2915 11.7892 8.2535 11.7892C8.8321 11.7892 9.30507 11.6805 9.67242 11.4632L10.2574 12.0487C10.1317 12.1621 9.99244 12.2662 9.8395 12.3612C9.33684 12.6732 8.7475 12.8292 8.0715 12.8292ZM5.72335 3.94748C5.80556 3.88453 5.89061 3.82476 5.9785 3.76817C6.61984 3.36084 7.38684 3.15717 8.2795 3.15717C9.0595 3.15717 9.70084 3.30884 10.2035 3.61217C10.7148 3.9155 11.0918 4.2795 11.3345 4.70417C11.5858 5.12017 11.7418 5.53617 11.8025 5.95217L10.5805 6.12117C10.4938 5.6185 10.2642 5.17217 9.8915 4.78217C9.5275 4.39217 8.97717 4.19717 8.2405 4.19717C7.62517 4.19717 7.09217 4.3575 6.6415 4.67817C6.60526 4.70447 6.56971 4.73161 6.53486 4.7596L5.72335 3.94748ZM11.9715 10.2003L10.8646 9.09263C10.8646 9.12962 10.8659 9.05532 10.8646 9.09263L10.8665 8.82517H10.5974L9.55815 7.78517H11.9715V10.2003Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M3.81068 3.07916L3.09052 3.79933L12.4514 13.1638L13.1689 12.4463L3.81068 3.07916Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"unhead\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M5.47942 12.7273V8.49858H6.69908L5.68346 7.48296H5.47942V7.28193L4.33453 6.13704V12.7273H5.47942Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M5.47942 3.27273H5.08209L5.47942 3.67006V3.27273Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.5206 3.27273V7.48296H9.28601L10.3016 8.49858H10.5206V8.70465L11.6655 9.84953V3.27273H10.5206Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.5206 12.3299V12.7273H10.918L10.5206 12.3299Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M12.319 13.0436L2.96078 3.67653L3.68095 2.95636L13.0392 12.3235L12.319 13.0436Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"unicon\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M4.52511 10.7843L4.52511 6.28572L3.52511 5.2851L3.52511 12.4913H10.7269L9.72748 11.4913H6.14327L8.53309 10.2962L7.78818 9.5508L6.55733 10.1661L7.4805 9.24293L6.77369 8.53569L4.52511 10.7843Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M7.31174 7.99763L8.01844 8.705L8.50529 9.19232L9.24995 9.93768L10.8021 11.4913L11.8012 12.4913L12.4738 13.1646L12.4767 13.1617L13.1782 12.4603L13.194 12.4444L12.5251 11.7749L11.5251 10.774L10.21 9.45758L9.46543 8.71234L8.73861 7.98483L8.03191 7.27746L5.24837 4.4913L4.24932 3.4913L3.83573 3.07731L3.81838 3.09466L3.11694 3.7961L3.11556 3.79748L3.52511 4.20742L4.52511 5.20837L7.31174 7.99763ZM10.8074 11.4913L9.25314 9.93608L10.1882 9.46846L11.5251 10.8062V11.4913H10.8074Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M9.25314 9.93608L10.8074 11.4913H11.5251V10.8062L10.1882 9.46846L9.25314 9.93608Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M12.5251 10.7262V3.4913L5.2947 3.4913L6.29407 4.4913L10.8181 4.4913L8.55537 6.754L9.26218 7.46126L11.5251 5.19833V7.6827L10.1637 8.3633L10.9083 9.10837L11.5251 8.79989V9.72559L12.5251 10.7262ZM12.5251 11.8068L13.1782 12.4603L13.194 12.4444L12.5251 11.7749L11.5251 10.774L10.21 9.45758L9.46543 8.71234L8.73861 7.98483L8.03191 7.27746L5.24837 4.4913L4.24932 3.4913L3.83573 3.07731L3.81838 3.09466L4.21478 3.4913H3.52511V4.20451L3.11694 3.7961L3.11556 3.79748L3.52511 4.20742L4.52511 5.20837L7.31174 7.99763L8.01844 8.705L8.50529 9.19232L9.24995 9.93768L10.8021 11.4913L11.8012 12.4913L12.4738 13.1646L12.4767 13.1617L11.8068 12.4913H12.5251V11.8068ZM10.1882 9.46846L11.5251 10.8062V11.4913H10.8074L9.25314 9.93608L10.1882 9.46846ZM8.72205 8.00138L9.44352 8.7233L8.50832 9.1908L8.02063 8.70281L8.72205 8.00138ZM5.21415 4.4913L8.01524 7.29413L7.31382 7.99556L4.52511 5.20513V4.4913H5.21415Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"unlock\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M10.8617 2.90512C12.3984 2.90512 13.6438 4.15073 13.644 5.68735V7.95688H12.6244V5.68735C12.6243 4.71406 11.835 3.92465 10.8617 3.92465C9.88855 3.92482 9.09917 4.71417 9.09903 5.68735V7.59164H9.81583V13.3377H2.61563V7.59164H8.0795V5.68735C8.07964 4.15084 9.32522 2.90529 10.8617 2.90512ZM3.63516 12.3172H8.79532V8.61118H3.63516V12.3172Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"unmic\": \"<svg width=\\\"10\\\" height=\\\"14\\\" viewBox=\\\"0 0 10 14\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"2.5\\\" y=\\\"1\\\" width=\\\"5\\\" height=\\\"7\\\" rx=\\\"2.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M1 6C1 8.76142 2.79086 11 5 11C7.20914 11 9 8.76142 9 6\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"5\\\" y1=\\\"11\\\" x2=\\\"5\\\" y2=\\\"13\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n<line x1=\\\"1\\\" y1=\\\"1\\\" x2=\\\"9\\\" y2=\\\"13\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\",\n \"unsee\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M12.4541 12.789L13.1743 12.0688L12.6027 11.4967L12.6 11.4994L12.0137 10.9144C11.7332 11.103 11.4336 11.283 11.1164 11.4457L11.4068 11.7363L11.4046 11.7385L12.4541 12.789Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M5.96371 6.28857L9.79315 10.1213C10.0642 9.91923 10.2966 9.66816 10.4772 9.38122L6.69735 5.60959C6.41317 5.78931 6.16435 6.0199 5.96371 6.28857Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M3.68238 4.00893L3.09583 3.42183L3.79957 2.7181L3.816 2.70167L5.35651 4.24363L6.05746 4.94524L6.712 5.6004L10.4818 9.3738L11.3559 10.2487L12.0181 10.9115L12.6027 11.4967L12.6 11.4994L12.0137 10.9144C11.7332 11.103 11.4336 11.283 11.1164 11.4457L11.4068 11.7363L11.4046 11.7385L11.1136 11.4472L10.4275 10.7604L9.79075 10.1231L5.96207 6.29078L5.08276 5.41064L4.4124 4.73965L3.68238 4.00893ZM12.6382 10.4584C12.7502 10.37 12.8582 10.2812 12.9619 10.1927C13.5472 9.69339 14.0104 9.19525 14.3271 8.82158C14.4858 8.63445 14.6085 8.47754 14.6924 8.36651C14.7343 8.31101 14.7669 8.26656 14.7891 8.23565L14.7965 8.22527L14.8089 8.20741L14.8145 8.19951L14.8213 8.18975C14.8218 8.18905 14.8222 8.18816 14.8225 8.18737L14.8232 8.18584L14.8242 8.18487L15.0029 7.9251L14.8252 7.66533L14.4463 7.9251C14.8248 7.66558 14.8243 7.66451 14.8242 7.66436L14.8232 7.66338L14.8213 7.66045L14.8145 7.65069C14.8085 7.64215 14.8 7.62981 14.7891 7.61455C14.7669 7.58365 14.7343 7.53915 14.6924 7.48369C14.6085 7.37267 14.4858 7.21573 14.3271 7.02862C14.0104 6.65495 13.5472 6.15682 12.9619 5.65752C11.8003 4.66652 10.106 3.6292 8.08203 3.6292C7.38933 3.6292 6.73067 3.75074 6.11587 3.95029L6.86093 4.69373C7.25481 4.60011 7.6629 4.54717 8.08203 4.54717C9.79158 4.54717 11.2792 5.42838 12.3662 6.35576C12.9053 6.81567 13.3338 7.27662 13.627 7.62237C13.7119 7.72259 13.7835 7.81425 13.8443 7.89203L13.8701 7.9251L13.8442 7.95828C13.7834 8.03603 13.7119 8.12766 13.627 8.22783C13.3338 8.57358 12.9053 9.03452 12.3662 9.49444C12.2436 9.599 12.116 9.70298 11.9835 9.80517L12.6382 10.4584ZM5.58478 6.99004L9.09135 10.4996C8.80023 10.6051 8.48611 10.6626 8.15857 10.6626C6.64663 10.6626 5.42096 9.43698 5.42096 7.92504C5.42096 7.59666 5.47878 7.28179 5.58478 6.99004ZM10.371 11.7804L9.65051 11.0593C9.15436 11.2126 8.62958 11.303 8.08203 11.303C6.37015 11.303 4.84249 10.4199 3.71484 9.48955C3.15622 9.02867 2.70899 8.56651 2.40137 8.22002C2.31556 8.12337 2.24231 8.03438 2.17972 7.95834L2.15234 7.9251L2.17972 7.89186C2.24231 7.81582 2.31553 7.72686 2.40137 7.63018C2.70898 7.28369 3.15621 6.82154 3.71484 6.36065C3.93564 6.17849 4.17177 5.99814 4.42162 5.82588L3.76309 5.16678C3.53867 5.32681 3.32756 5.49036 3.13086 5.65264C2.52717 6.15069 2.04582 6.648 1.71484 7.0208C1.54908 7.20752 1.42004 7.36421 1.33203 7.4749C1.28811 7.53014 1.25376 7.57406 1.23047 7.60479C1.22314 7.61446 1.21704 7.62297 1.21196 7.63006L1.2041 7.64092C1.20236 7.64328 1.20069 7.64527 1.19925 7.647L1.19629 7.65069L1.19434 7.65362L1.19336 7.65557L0.99707 7.9251L1.19336 8.19561L1.19434 8.19658L1.19629 8.19951L1.19926 8.20322C1.20071 8.20495 1.20238 8.20695 1.2041 8.20928L1.21195 8.22013C1.21704 8.22723 1.22314 8.23575 1.23047 8.24541C1.25377 8.27615 1.28809 8.32002 1.33203 8.3753C1.42004 8.48598 1.54908 8.64268 1.71484 8.8294C2.04583 9.20221 2.52718 9.69952 3.13086 10.1976C4.3286 11.1857 6.06033 12.221 8.08203 12.221C8.90391 12.221 9.67144 12.0499 10.371 11.7804ZM10.8048 8.62904C10.8644 8.4044 10.8962 8.16843 10.8962 7.92504C10.8962 6.4131 9.6705 5.18743 8.15857 5.18743C7.91309 5.18743 7.67517 5.21974 7.44881 5.28033L10.8048 8.62904ZM9.79315 10.1213L5.96371 6.28857C6.16435 6.0199 6.41317 5.78931 6.69735 5.60959L10.4772 9.38122C10.2966 9.66816 10.0642 9.91923 9.79315 10.1213Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"unstar\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M10.1972 12.3545L7.99995 10.7617L4.3857 13.4014L5.7773 9.2666L2.42281 7.01758H4.86031L10.1972 12.3545Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M13.039 12.6807L12.3193 13.4014L2.96089 4.03418L3.68062 3.31348L13.039 12.6807Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M9.49507 7.01758H13.5771L10.5205 9.06738L7.01363 5.56055L7.99995 2.58496L9.49507 7.01758Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"untitle\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M3.76358 3.06275L3.06079 3.76553L4.35081 5.05677L4.35297 5.05461L7.35278 8.05725V6.65465L5.08414 4.38431H4.45378V3.75347L3.76358 3.06275Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M12.4191 13.1326L13.1232 12.4403L11.9204 11.2257L8.58778 7.89058V9.29342L11.3717 12.0799L11.3695 12.0821L12.4191 13.1326Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M6.16399 4.38431L5.12477 3.34431H11.4868V4.38431H8.58778V6.80992L7.35278 5.57399V4.38431H6.16399ZM7.35278 9.13802V12.5743H8.58778V10.3742L7.35278 9.13802Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M8.58778 7.89058L7.35278 6.65465V8.05725L8.58778 9.29342V7.89058Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M4.45378 3.75347V4.38431H5.08414L4.45378 3.75347Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"up\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M7.49645 3.48222V16H8.50702L8.50841 3.48259L11.4156 6.38982L12.1095 5.68299L8.00173 1.57524L3.8905 5.68647L4.59784 6.39381L7.49645 3.48222Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n};\n\nexport type IconName = keyof typeof iconNameToSvgMap;\n\nexport const iconNames = [\n \"1x\",\n \"1xdots\",\n \"1xgrid\",\n \"1xlines\",\n \"2x\",\n \"2xdots\",\n \"2xgrid\",\n \"2xlines\",\n \"4x4\",\n \"apple\",\n \"avatar\",\n \"check\",\n \"close\",\n \"collapse\",\n \"color\",\n \"column\",\n \"default\",\n \"delete\",\n \"dictate\",\n \"down\",\n \"duplicate\",\n \"email\",\n \"expand\",\n \"gallery\",\n \"globe\",\n \"google\",\n \"group\",\n \"head\",\n \"home\",\n \"icon\",\n \"in\",\n \"left\",\n \"lock\",\n \"loop\",\n \"mic\",\n \"minimize\",\n \"more\",\n \"note\",\n \"open\",\n \"page\",\n \"plus\",\n \"right\",\n \"row\",\n \"sdown\",\n \"search\",\n \"see\",\n \"star\",\n \"status\",\n \"sup\",\n \"title\",\n \"titlestyle\",\n \"undo\",\n \"ungroup\",\n \"unhead\",\n \"unicon\",\n \"unlock\",\n \"unmic\",\n \"unsee\",\n \"unstar\",\n \"untitle\",\n \"up\",\n] as const;\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport styles from \"./styles/ds-icon.css?inline\";\nimport { iconNameToSvgMap, type IconName } from \"./generated/ds-icon-map\";\n\nexport type IconVariant = \"glyph\" | \"primary\" | \"secondary\";\n\n/**\n * Icon component that renders SVG icons from the design system icon set.\n *\n * Usage:\n * <ds-icon type=\"close\"></ds-icon>\n * <ds-icon type=\"home\" variant=\"primary\"></ds-icon>\n *\n * Variants:\n * - glyph (default): No background, inherits text color. Like text.\n * - primary: Accent color background with contrasting icon color.\n * - secondary: Subtle background with icon color.\n *\n * Size is controlled by the `--sf` CSS variable (design system scale factor).\n * Color can be customized via `--icon-color` CSS variable.\n */\nexport class Icon extends LitElement {\n static properties = {\n type: { type: String, reflect: true },\n variant: { type: String, reflect: true },\n };\n\n private _type: IconName | \"\" = \"\";\n variant: IconVariant = \"glyph\";\n\n get type(): IconName | \"\" {\n return this._type;\n }\n\n set type(val: IconName | \"\") {\n const oldVal = this._type;\n this._type = val;\n this.requestUpdate(\"type\", oldVal);\n }\n\n static styles = unsafeCSS(styles);\n\n render() {\n if (!this._type) {\n return html`<slot></slot>`;\n }\n\n const svg = iconNameToSvgMap[this._type.toLowerCase() as IconName];\n if (svg) {\n return html`${unsafeHTML(svg)}`;\n }\n\n // Fallback to slot if icon not found\n return html`<slot></slot>`;\n }\n}\n\ncustomElements.define(\"ds-icon\", Icon);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-icon\": Icon;\n }\n}\n\nexport type { IconName };\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport {\n translate,\n currentLanguage,\n getAvailableLanguagesSync,\n getLanguageDisplayName,\n setLanguage,\n} from \"../0-face/i18n\";\nimport type { LanguageCode } from \"../0-face/i18n\";\nimport { currentTheme, setTheme } from \"../0-face/theme\";\nimport type { ThemeType } from \"../0-face/theme\";\nimport { savePreferences } from \"../0-face/preferences\";\nimport \"./ds-button\";\nimport \"./ds-icon\";\nimport \"./ds-text\";\nimport styles from \"./styles/ds-cycle.css?inline\";\n\n// Accent color utilities\nconst saveAccentColor = (color: string) => {\n localStorage.setItem(\"accentColor\", color);\n};\n\nconst getAccentColor = (): string => {\n return localStorage.getItem(\"accentColor\") || \"--sharp-blue\"; // Default color if none set\n};\n\nconst applyAccentColor = () => {\n const color = getAccentColor();\n document.documentElement.style.setProperty(\"--accent-color\", `var(${color})`);\n};\n\n// Notes style medium utilities\nconst saveNotesStyleMedium = (style: string) => {\n localStorage.setItem(\"notesStyleMedium\", style);\n};\n\nconst getNotesStyleMedium = (): string => {\n return localStorage.getItem(\"notesStyleMedium\") || \"note\"; // Default to note\n};\n\n// Note behavior utilities\nconst savePageStyle = (style: string) => {\n localStorage.setItem(\"pageStyle\", style);\n};\n\nconst getPageStyle = (): string => {\n return localStorage.getItem(\"pageStyle\") || \"note\"; // Default to note\n};\n\n// App width utilities removed\n\n// Use a regular class with proper TypeScript type declarations and JSDoc comments\nexport class Cycle extends LitElement {\n // Define reactive properties using Lit's property system\n static get properties() {\n return {\n type: { type: String },\n values: { type: Array },\n currentValue: { type: String, state: true }, // Make this a private state property\n translationsReady: { type: Boolean, state: true }, // Track if translations are loaded\n disabled: { type: Boolean, state: true },\n variant: { type: String },\n };\n }\n\n static styles = unsafeCSS(styles);\n\n // Add runtime properties using the any type\n // These are just for TypeScript and don't create shadowing fields\n declare type: string;\n declare values: string[];\n declare currentValue: string;\n declare translationsReady: boolean;\n declare disabled: boolean;\n declare variant: string;\n\n // Store bound event handlers for proper cleanup\n private boundHandlers: {\n translationsLoaded: EventListener;\n languageChanged: EventListener;\n handleLanguageChanged: EventListener;\n handleThemeChanged: EventListener;\n handleAccentColorChanged: EventListener;\n handleNoteBehaviorChanged: EventListener;\n };\n\n constructor() {\n super();\n\n // Initialize properties with default values\n this.type = \"\";\n this.values = [];\n this.currentValue = \"\";\n this.translationsReady = false;\n this.disabled = false;\n this.variant = \"\";\n\n // Bind event handlers to this instance for proper cleanup\n this.boundHandlers = {\n translationsLoaded: this.handleTranslationsLoaded.bind(this),\n languageChanged: this.handleLanguageChanged.bind(this),\n handleLanguageChanged: this.handleLanguageChanged.bind(this),\n handleThemeChanged: this.handleThemeChanged.bind(this),\n handleAccentColorChanged: this.handleAccentColorChanged.bind(this),\n handleNoteBehaviorChanged: this.handleNoteBehaviorChanged.bind(this),\n };\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n // Add event listeners\n window.addEventListener(\n \"translations-loaded\",\n this.boundHandlers.translationsLoaded\n );\n window.addEventListener(\n \"language-changed\",\n this.boundHandlers.languageChanged\n );\n window.addEventListener(\n \"theme-changed\",\n this.boundHandlers.handleThemeChanged\n );\n window.addEventListener(\n \"accent-color-changed\",\n this.boundHandlers.handleAccentColorChanged\n );\n window.addEventListener(\n \"page-style-changed\",\n this.boundHandlers.handleNoteBehaviorChanged\n );\n\n // Initialize the component\n this.initializeValues();\n }\n\n async initializeValues() {\n if (this.type === \"language\") {\n // Dynamically get available languages from translation data\n const availableLanguages = getAvailableLanguagesSync();\n this.values = availableLanguages;\n this.currentValue = currentLanguage.value;\n } else if (this.type === \"theme\") {\n // Set up theme cycling\n this.values = [\"light\", \"dark\"];\n\n // Set initial value based on current theme\n const currentThemeValue = currentTheme.get();\n this.currentValue = currentThemeValue;\n } else if (this.type === \"accent-color\") {\n // Set up accent color cycling\n this.values = [\n \"--apple-green\",\n \"--every-green\",\n \"--zenith-blue\",\n \"--sharp-blue\",\n \"--pink\",\n \"--tuned-red\",\n \"--orange\",\n \"--yellow\",\n ];\n\n // Set initial value based on current accent color\n const currentAccentColor = getAccentColor();\n this.currentValue = currentAccentColor;\n\n // Apply the accent color to ensure it's active\n applyAccentColor();\n } else if (this.type === \"notes-style-medium\") {\n // Set up notes style medium cycling\n this.values = [\"default\", \"big\", \"gallery\"];\n\n // Set initial value based on current notes style medium\n const currentNotesStyle = getNotesStyleMedium();\n this.currentValue = currentNotesStyle;\n\n // Check if this should be disabled based on note behavior\n const currentPageStyle = getPageStyle();\n this.disabled = currentPageStyle === \"note\";\n } else if (this.type === \"page-style\") {\n // Set up page style cycling\n this.values = [\"note\", \"page\"];\n\n // Set initial value based on current page style\n const currentPageStyle = getPageStyle();\n this.currentValue = currentPageStyle;\n } else if (this.type === \"icon-only\") {\n // Set up icon-only cycling (no label)\n this.values = [\"note\", \"page\"];\n\n // Set initial value\n this.currentValue = this.values[0];\n }\n\n // Request update to re-render with new values\n this.requestUpdate();\n }\n\n ensureThemeInitialized() {\n // Ensure theme is properly initialized\n const savedTheme = localStorage.getItem(\"theme\");\n if (!savedTheme) {\n const prefersDark = window.matchMedia(\n \"(prefers-color-scheme: dark)\"\n ).matches;\n const defaultTheme = prefersDark ? \"dark\" : \"light\";\n localStorage.setItem(\"theme\", defaultTheme);\n document.documentElement.classList.add(`${defaultTheme}-theme`);\n }\n }\n\n attributeChangedCallback(name: string, oldValue: string, newValue: string) {\n super.attributeChangedCallback(name, oldValue, newValue);\n\n if (name === \"type\" && oldValue !== newValue) {\n // Type changed, reinitialize values\n this.initializeValues();\n }\n }\n\n async setupInitialValue() {\n if (this.type === \"language\") {\n // Get current language\n const currentLang = currentLanguage.value;\n this.currentValue = currentLang;\n } else if (this.type === \"theme\") {\n // Get current theme\n const currentThemeValue = currentTheme.get();\n this.currentValue = currentThemeValue;\n } else if (this.type === \"accent-color\") {\n // Get current accent color\n const currentAccentColor = getAccentColor();\n this.currentValue = currentAccentColor;\n\n // Apply the accent color to ensure it's active\n applyAccentColor();\n } else if (this.type === \"notes-style-medium\") {\n // Get current notes style medium\n const currentNotesStyle = getNotesStyleMedium();\n this.currentValue = currentNotesStyle;\n\n // Check if this should be disabled based on note behavior\n const currentPageStyle = getPageStyle();\n this.disabled = currentPageStyle === \"note\";\n } else if (this.type === \"page-style\") {\n // Get current page style\n const currentPageStyle = getPageStyle();\n this.currentValue = currentPageStyle;\n } else if (this.type === \"icon-only\") {\n // Get current page style for icon-only\n const currentPageStyle = getPageStyle();\n this.currentValue = currentPageStyle;\n }\n\n this.requestUpdate();\n }\n\n handleSettingsChanges() {\n // Handle any settings changes that might affect this component\n this.setupInitialValue();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n // Remove event listeners\n window.removeEventListener(\n \"translations-loaded\",\n this.boundHandlers.translationsLoaded\n );\n window.removeEventListener(\n \"language-changed\",\n this.boundHandlers.languageChanged\n );\n window.removeEventListener(\n \"theme-changed\",\n this.boundHandlers.handleThemeChanged\n );\n window.removeEventListener(\n \"accent-color-changed\",\n this.boundHandlers.handleAccentColorChanged\n );\n window.removeEventListener(\n \"page-style-changed\",\n this.boundHandlers.handleNoteBehaviorChanged\n );\n }\n\n handleButtonClick(e: Event) {\n e.preventDefault();\n e.stopPropagation();\n\n // Don't handle clicks if disabled\n if (this.disabled) {\n return;\n }\n\n if (this.type === \"language\") {\n // Cycle through available languages\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newLanguage = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newLanguage;\n\n // Set the new language with view transition like Portfolio\n if ((document as any).startViewTransition) {\n (document as any).startViewTransition(() => {\n setLanguage(newLanguage as LanguageCode);\n });\n } else {\n setLanguage(newLanguage as LanguageCode);\n }\n\n // Save preferences\n savePreferences({ language: newLanguage as LanguageCode });\n\n // Dispatch language change event\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language: newLanguage },\n })\n );\n } else if (this.type === \"theme\") {\n // Cycle through themes\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newTheme = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newTheme;\n\n // Set the new theme using the shared helper\n setTheme(newTheme as ThemeType);\n\n // Save preferences\n savePreferences({ theme: newTheme as ThemeType });\n\n // Theme helper already emits the change event, so no manual dispatch here\n } else if (this.type === \"accent-color\") {\n // Cycle through accent colors\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newColor = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newColor;\n\n // Save the new accent color\n saveAccentColor(newColor);\n\n // Apply the new accent color\n applyAccentColor();\n\n // Save preferences\n savePreferences({ accentColor: newColor });\n\n // Dispatch accent color change event\n window.dispatchEvent(\n new CustomEvent(\"accent-color-changed\", {\n detail: { color: newColor },\n })\n );\n } else if (this.type === \"notes-style-medium\") {\n // Cycle through notes style medium options\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newStyle = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newStyle;\n\n // Save the new notes style medium\n saveNotesStyleMedium(newStyle);\n\n // Save preferences\n savePreferences({ notesStyleMedium: newStyle });\n\n // Dispatch notes style medium change event\n window.dispatchEvent(\n new CustomEvent(\"notes-style-medium-changed\", {\n detail: { style: newStyle },\n })\n );\n } else if (this.type === \"page-style\") {\n // Cycle through note behavior options\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newBehavior = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newBehavior;\n\n // Save the new note behavior\n savePageStyle(newBehavior);\n\n // Save preferences\n savePreferences({ pageStyle: newBehavior });\n\n // Dispatch note behavior change event\n window.dispatchEvent(\n new CustomEvent(\"page-style-changed\", {\n detail: { behavior: newBehavior },\n })\n );\n } else if (this.type === \"icon-only\") {\n // Cycle through icon-only options (note/page)\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newIconOnlyValue = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newIconOnlyValue;\n\n // Save the new page style\n savePageStyle(newIconOnlyValue);\n\n // Save preferences\n savePreferences({ pageStyle: newIconOnlyValue });\n\n // Dispatch page style change event\n window.dispatchEvent(\n new CustomEvent(\"page-style-changed\", {\n detail: { behavior: newIconOnlyValue },\n })\n );\n }\n\n // Request update to re-render\n this.requestUpdate();\n }\n\n getValueDisplay(value: string): string | any {\n if (this.type === \"language\") {\n return getLanguageDisplayName(value, {\n locale: currentLanguage.value,\n });\n } else if (this.type === \"theme\") {\n // Try to get translated theme name\n if (this.translationsReady) {\n const translatedName = translate(value);\n if (translatedName && translatedName !== value) {\n return translatedName;\n }\n }\n\n // Fall back to the theme value itself\n return value;\n } else if (this.type === \"accent-color\") {\n // Get color name from CSS variable\n return this.getColorName(value);\n } else if (this.type === \"notes-style-medium\") {\n // Return SVG icon for notes style medium\n return this.getNotesStyleIcon(value);\n } else if (this.type === \"page-style\") {\n // Return translated text for note behavior\n if (this.translationsReady) {\n const translatedText = translate(value === \"note\" ? \"Note\" : \"Page\");\n if (\n translatedText &&\n translatedText !== (value === \"note\" ? \"Note\" : \"Page\")\n ) {\n return translatedText;\n }\n }\n return value;\n } else if (this.type === \"icon-only\") {\n // Return SVG icon for icon-only type (note/page icons)\n if (value === \"note\") {\n return html`<ds-icon type=\"note\"></ds-icon>`;\n } else if (value === \"page\") {\n return html`<ds-icon type=\"page\"></ds-icon>`;\n }\n return html`<span>${value}</span>`;\n }\n\n return value;\n }\n\n getColorKey(colorVar: string): string {\n // Map CSS variables to translation text keys\n const colorMap: { [key: string]: string } = {\n \"--tuned-red\": \"Red\",\n \"--orange\": \"Orange\",\n \"--yellow\": \"Yellow\",\n \"--apple-green\": \"Apple green\",\n \"--every-green\": \"Green\",\n \"--zenith-blue\": \"Light blue\",\n \"--sharp-blue\": \"Blue\",\n \"--pink\": \"Pink\",\n };\n\n return colorMap[colorVar] || colorVar.replace(\"--\", \"\").replace(\"-\", \" \");\n }\n\n getColorName(colorVar: string): string {\n // Map CSS variables to translation text keys\n const colorMap: { [key: string]: string } = {\n \"--tuned-red\": \"Red\",\n \"--orange\": \"Orange\",\n \"--yellow\": \"Yellow\",\n \"--apple-green\": \"Apple green\",\n \"--every-green\": \"Green\",\n \"--zenith-blue\": \"Light blue\",\n \"--sharp-blue\": \"Blue\",\n \"--pink\": \"Pink\",\n };\n\n const translationText = colorMap[colorVar];\n if (translationText && this.translationsReady) {\n const translatedName = translate(translationText);\n if (translatedName && translatedName !== translationText) {\n return translatedName;\n }\n }\n\n // Fallback to simple name conversion\n return colorVar.replace(\"--\", \"\").replace(\"-\", \" \");\n }\n\n getNotesStyleIcon(style: string) {\n if (style === \"page\") {\n return html`<ds-icon type=\"page\"></ds-icon>`;\n } else if (style === \"note\") {\n return html`<ds-icon type=\"note\"></ds-icon>`;\n } else if (style === \"default\") {\n return html`<ds-icon type=\"default\"></ds-icon>`;\n } else if (style === \"big\") {\n return html`<ds-icon type=\"big\"></ds-icon>`;\n } else if (style === \"gallery\") {\n return html`<ds-icon type=\"gallery\"></ds-icon>`;\n }\n return html`<span>${style}</span>`;\n }\n\n render() {\n return html`\n <div class=\"cycle\">\n <ds-button\n variant=${this.type === \"accent-color\"\n ? \"primary\"\n : this.variant ||\n (this.type === \"language\" || this.type === \"theme\"\n ? \"secondary\"\n : \"primary\")}\n ?disabled=${this.disabled}\n @click=${this.handleButtonClick}\n >\n ${this.type === \"notes-style-medium\" || this.type === \"icon-only\"\n ? html`<span\n style=\"display: inline-flex; align-items: center; gap: var(--025)\"\n >${this.getValueDisplay(this.currentValue)}</span\n >`\n : this.type === \"language\"\n ? html`<ds-text\n text=${this.getValueDisplay(this.currentValue)}\n ></ds-text>`\n : this.type === \"theme\"\n ? html`<ds-text\n text=${this.currentValue === \"light\" ? \"Light\" : \"Dark\"}\n ></ds-text>`\n : this.type === \"accent-color\"\n ? html`<ds-text\n text=${this.getColorKey(this.currentValue)}\n ></ds-text>`\n : this.type === \"page-style\"\n ? html`<ds-text\n text=${this.currentValue === \"note\" ? \"Note\" : \"Page\"}\n ></ds-text>`\n : html`<ds-text\n text=${this.getValueDisplay(this.currentValue)}\n ></ds-text>`}\n </ds-button>\n </div>\n `;\n }\n\n private async waitForTranslations(): Promise<void> {\n return new Promise((resolve) => {\n if (this.translationsReady) {\n resolve();\n return;\n }\n\n const handleTranslationsLoaded = () => {\n this.translationsReady = true;\n resolve();\n };\n\n window.addEventListener(\"translations-loaded\", handleTranslationsLoaded, {\n once: true,\n });\n\n // Timeout after 5 seconds\n setTimeout(() => {\n this.translationsReady = true;\n resolve();\n }, 5000);\n });\n }\n\n private handleTranslationsLoaded() {\n this.translationsReady = true;\n\n // Refresh language values if this is a language cycle\n if (this.type === \"language\") {\n const availableLanguages = getAvailableLanguagesSync();\n this.values = availableLanguages;\n }\n\n this.setupInitialValue();\n }\n\n private handleLanguageChanged() {\n this.setupInitialValue();\n }\n\n private handleThemeChanged() {\n this.setupInitialValue();\n }\n\n private handleAccentColorChanged() {\n this.setupInitialValue();\n }\n\n private handleNoteBehaviorChanged() {\n this.setupInitialValue();\n }\n}\n\ncustomElements.define(\"ds-cycle\", Cycle);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-cycle\": Cycle;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-date.css?inline\";\n\n/**\n * A component for displaying the current year\n *\n * @element ds-date\n */\nexport class DateComponent extends LitElement {\n static styles = unsafeCSS(styles);\n\n render() {\n const year = new Date().getFullYear();\n return html`<span>${year}</span>`;\n }\n}\n\ncustomElements.define(\"ds-date\", DateComponent);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-date\": DateComponent;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-gap.css?inline\";\n\n/**\n * Full-width vertical spacer.\n *\n * Usage:\n * - <ds-gap unit></ds-gap>\n * - <ds-gap double></ds-gap>\n * - <ds-gap size=\"05\"></ds-gap>\n */\nexport class Gap extends LitElement {\n static properties = {\n /** Raw scale token selector (\"01\", \"025\", \"05\", \"08\", \"1\", \"2\", \"3\", \"4\", \"8\", \"12\") */\n size: { type: String, reflect: true },\n };\n\n declare size: string;\n\n constructor() {\n super();\n this.size = \"\";\n }\n\n static styles = unsafeCSS(styles);\n\n render() {\n return html``;\n }\n}\n\ncustomElements.define(\"ds-gap\", Gap);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-gap\": Gap;\n }\n}\n","// ds-input.ts\n// Input component for text and other input types\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport \"./ds-text\";\nimport styles from \"./styles/ds-input.css?inline\";\n\nexport class Input extends LitElement {\n static properties = {\n type: { type: String, reflect: true },\n name: { type: String, reflect: true },\n value: { type: String },\n placeholder: { type: String },\n placeholderKey: { type: String, attribute: \"placeholder-key\" },\n label: { type: String },\n labelText: { type: String, attribute: \"label-text\" },\n disabled: { type: Boolean, reflect: true },\n readonly: { type: Boolean, reflect: true },\n required: { type: Boolean, reflect: true },\n autofocus: { type: Boolean },\n autocomplete: { type: String },\n pattern: { type: String },\n minlength: { type: Number },\n maxlength: { type: Number },\n min: { type: String },\n max: { type: String },\n step: { type: String },\n variant: { type: String, reflect: true },\n error: { type: String },\n errorText: { type: String, attribute: \"error-text\" },\n _focused: { type: Boolean, state: true },\n };\n\n declare type:\n | \"text\"\n | \"password\"\n | \"email\"\n | \"number\"\n | \"tel\"\n | \"url\"\n | \"search\"\n | \"date\"\n | \"time\"\n | \"datetime-local\";\n declare name: string;\n declare value: string;\n declare placeholder: string;\n declare placeholderKey: string;\n declare label: string;\n declare labelText: string;\n declare disabled: boolean;\n declare readonly: boolean;\n declare required: boolean;\n declare autofocus: boolean;\n declare autocomplete: string;\n declare pattern: string;\n declare minlength: number;\n declare maxlength: number;\n declare min: string;\n declare max: string;\n declare step: string;\n declare variant: \"default\" | \"filled\" | \"outlined\";\n declare error: string;\n declare errorText: string;\n declare _focused: boolean;\n\n constructor() {\n super();\n this.type = \"text\";\n this.name = \"\";\n this.value = \"\";\n this.placeholder = \"\";\n this.placeholderKey = \"\";\n this.label = \"\";\n this.labelText = \"\";\n this.disabled = false;\n this.readonly = false;\n this.required = false;\n this.autofocus = false;\n this.autocomplete = \"off\";\n this.pattern = \"\";\n this.minlength = 0;\n this.maxlength = 0;\n this.min = \"\";\n this.max = \"\";\n this.step = \"\";\n this.variant = \"default\";\n this.error = \"\";\n this.errorText = \"\";\n this._focused = false;\n }\n\n static styles = unsafeCSS(styles);\n\n private _handleInput(e: Event): void {\n const target = e.target as HTMLInputElement;\n this.value = target.value;\n this.dispatchEvent(\n new CustomEvent(\"input-change\", {\n detail: { value: this.value, name: this.name },\n bubbles: true,\n })\n );\n }\n\n private _handleFocus(): void {\n this._focused = true;\n this.dispatchEvent(new CustomEvent(\"input-focus\", { bubbles: true }));\n }\n\n private _handleBlur(): void {\n this._focused = false;\n this.dispatchEvent(new CustomEvent(\"input-blur\", { bubbles: true }));\n }\n\n /**\n * Focus the input element\n */\n focus(): void {\n const input = this.shadowRoot?.querySelector(\"input\");\n input?.focus();\n }\n\n /**\n * Blur the input element\n */\n blur(): void {\n const input = this.shadowRoot?.querySelector(\"input\");\n input?.blur();\n }\n\n /**\n * Select all text in the input\n */\n select(): void {\n const input = this.shadowRoot?.querySelector(\"input\");\n input?.select();\n }\n\n render() {\n const hasError = Boolean(this.error || this.errorText);\n\n return html`\n <div class=\"input-wrapper\">\n ${this.label || this.labelText\n ? html`\n <label for=\"input\">\n ${this.labelText\n ? html`<ds-text .text=${this.labelText}></ds-text>`\n : this.label}\n </label>\n `\n : null}\n\n <div class=\"input-container\">\n <input\n id=\"input\"\n .type=${this.type}\n .name=${this.name}\n .value=${this.value}\n .placeholder=${this.placeholder}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n ?autofocus=${this.autofocus}\n autocomplete=${this.autocomplete}\n pattern=${this.pattern || \"\"}\n minlength=${this.minlength || \"\"}\n maxlength=${this.maxlength || \"\"}\n min=${this.min}\n max=${this.max}\n step=${this.step}\n class=${hasError ? \"has-error\" : \"\"}\n @input=${this._handleInput}\n @focus=${this._handleFocus}\n @blur=${this._handleBlur}\n />\n </div>\n\n ${hasError\n ? html`\n <div class=\"error-message\">\n ${this.errorText\n ? html`<ds-text .text=${this.errorText}></ds-text>`\n : this.error}\n </div>\n `\n : null}\n </div>\n `;\n }\n}\n\ncustomElements.define(\"ds-input\", Input);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-input\": Input;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { translate } from \"../0-face/i18n\";\nimport styles from \"./styles/ds-tooltip.css?inline\";\n\nexport class Tooltip extends LitElement {\n static properties = {\n text: { type: String, reflect: true },\n defaultValue: { type: String, reflect: true, attribute: \"default-value\" },\n _text: { state: true },\n _visible: { state: true },\n };\n\n declare text: string;\n declare defaultValue: string;\n private _text: string;\n private _visible: boolean;\n\n private boundWindowHandlers: {\n languageChanged: EventListener;\n translationsLoaded: EventListener;\n };\n private boundHostHandlers: {\n mouseenter: EventListener;\n mouseleave: EventListener;\n focusin: EventListener;\n focusout: EventListener;\n };\n\n constructor() {\n super();\n this.text = \"\";\n this.defaultValue = \"\";\n this._text = \"\";\n this._visible = false;\n\n this.boundWindowHandlers = {\n languageChanged: (() => {\n this._loadText();\n }) as EventListener,\n translationsLoaded: (() => {\n this._loadText();\n }) as EventListener,\n };\n\n this.boundHostHandlers = {\n mouseenter: (() => {\n this._visible = true;\n this.requestUpdate();\n }) as EventListener,\n mouseleave: (() => {\n this._visible = false;\n this.requestUpdate();\n }) as EventListener,\n focusin: (() => {\n this._visible = true;\n this.requestUpdate();\n }) as EventListener,\n focusout: (() => {\n this._visible = false;\n this.requestUpdate();\n }) as EventListener,\n };\n }\n\n static styles = unsafeCSS(styles);\n\n connectedCallback(): void {\n super.connectedCallback();\n this._loadText();\n\n window.addEventListener(\n \"language-changed\",\n this.boundWindowHandlers.languageChanged\n );\n window.addEventListener(\n \"translations-loaded\",\n this.boundWindowHandlers.translationsLoaded\n );\n\n this.addEventListener(\"mouseenter\", this.boundHostHandlers.mouseenter);\n this.addEventListener(\"mouseleave\", this.boundHostHandlers.mouseleave);\n this.addEventListener(\"focusin\", this.boundHostHandlers.focusin);\n this.addEventListener(\"focusout\", this.boundHostHandlers.focusout);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener(\n \"language-changed\",\n this.boundWindowHandlers.languageChanged\n );\n window.removeEventListener(\n \"translations-loaded\",\n this.boundWindowHandlers.translationsLoaded\n );\n\n this.removeEventListener(\"mouseenter\", this.boundHostHandlers.mouseenter);\n this.removeEventListener(\"mouseleave\", this.boundHostHandlers.mouseleave);\n this.removeEventListener(\"focusin\", this.boundHostHandlers.focusin);\n this.removeEventListener(\"focusout\", this.boundHostHandlers.focusout);\n }\n\n updated(changed: Map<string, unknown>): void {\n if (changed.has(\"text\") || changed.has(\"defaultValue\")) {\n this._loadText();\n }\n }\n\n _loadText(): void {\n if (!this.text) {\n this._text = this.defaultValue || \"\";\n this.requestUpdate();\n return;\n }\n\n try {\n const t = translate(this.text);\n this._text = t && t !== this.text ? t : this.defaultValue || this.text;\n } catch (err) {\n console.error(\"ds-tooltip: error loading text for text\", this.text, err);\n this._text = this.defaultValue || this.text;\n }\n this.requestUpdate();\n }\n\n render() {\n const bubbleClasses = [\"bubble\", this._visible ? \"visible\" : \"\"].join(\" \");\n\n return html`\n <span class=\"slot-wrapper\"><slot></slot></span>\n ${this._text\n ? html`<div class=\"${bubbleClasses}\">${this._text}</div>`\n : null}\n `;\n }\n}\n\ncustomElements.define(\"ds-tooltip\", Tooltip);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-tooltip\": Tooltip;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-row.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Row extends LitElement {\n static properties = {\n fill: { type: Boolean, reflect: true },\n centered: { type: Boolean, reflect: true },\n end: { type: Boolean, reflect: true },\n };\n\n declare fill: boolean;\n declare centered: boolean;\n declare end: boolean;\n\n constructor() {\n super();\n this.fill = false;\n this.centered = false;\n this.end = false;\n }\n\n static styles = unsafeCSS(styles);\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ncustomElements.define(\"ds-row\", Row);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-row\": Row;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport \"../2-core/ds-text\";\nimport \"../2-core/ds-icon\";\nimport \"./ds-row\";\nimport styles from \"./styles/ds-accordion.css?inline\";\n\n/**\n * Native accordion using <details>/<summary> (no JS toggle logic).\n *\n * Usage (with translation text):\n * <ds-accordion summary=\"How it began\" details=\"Designed in Hokkaido\"></ds-accordion>\n *\n * Usage (with slotted details content):\n * <ds-accordion summary=\"How it began\">\n * <div slot=\"details\">Rich HTML content here</div>\n * </ds-accordion>\n */\nexport class Accordion extends LitElement {\n static properties = {\n summary: { type: String },\n details: { type: String },\n open: { type: Boolean, reflect: true },\n _hasSlottedContent: { type: Boolean, state: true },\n };\n\n declare summary: string;\n declare details: string;\n declare open: boolean;\n declare _hasSlottedContent: boolean;\n\n constructor() {\n super();\n this.summary = \"\";\n this.details = \"\";\n this.open = false;\n this._hasSlottedContent = false;\n }\n\n static styles = unsafeCSS(styles);\n\n private _handleSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n const assignedNodes = slot.assignedNodes({ flatten: true });\n // Filter out empty text nodes (whitespace only)\n const hasContent = assignedNodes.some(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE ||\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim())\n );\n this._hasSlottedContent = hasContent;\n }\n\n render() {\n return html`\n <details ?open=${this.open}>\n <summary>\n <ds-row class=\"summaryRow\" centered>\n <ds-text .text=${this.summary}></ds-text>\n <ds-icon class=\"chevron\" aria-hidden=\"true\">\n <svg\n viewBox=\"0 0 10.157 8.219\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M5.078 8.219L0 3.141L1.414 1.727L5.078 5.391L8.743 1.727L10.157 3.141L5.078 8.219Z\"\n fill=\"currentColor\"\n />\n </svg>\n </ds-icon>\n </ds-row>\n </summary>\n\n <div class=\"detailsBody\">\n <slot name=\"details\" @slotchange=${this._handleSlotChange}></slot>\n ${!this._hasSlottedContent\n ? html`<ds-text\n class=\"detailsText\"\n .text=${this.details}\n ></ds-text>`\n : \"\"}\n </div>\n </details>\n `;\n }\n}\n\ncustomElements.define(\"ds-accordion\", Accordion);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-accordion\": Accordion;\n }\n}\n","// ds-form.ts\n// Form component for handling form submissions and validation\n\nimport { LitElement, html, css } from \"lit\";\n\nexport interface FormData {\n [key: string]: string | number | boolean | null;\n}\n\nexport interface FormValidationResult {\n valid: boolean;\n errors: { [key: string]: string };\n}\n\nexport class Form extends LitElement {\n static properties = {\n action: { type: String },\n method: { type: String },\n name: { type: String },\n novalidate: { type: Boolean, reflect: true },\n autocomplete: { type: String },\n _isSubmitting: { type: Boolean, state: true },\n };\n\n declare action: string;\n declare method: \"get\" | \"post\";\n declare name: string;\n declare novalidate: boolean;\n declare autocomplete: \"on\" | \"off\";\n declare _isSubmitting: boolean;\n\n constructor() {\n super();\n this.action = \"\";\n this.method = \"post\";\n this.name = \"\";\n this.novalidate = false;\n this.autocomplete = \"on\";\n this._isSubmitting = false;\n }\n\n static styles = css`\n :host {\n display: block;\n width: 100%;\n }\n\n form {\n display: flex;\n flex-direction: column;\n gap: calc(var(--05) * var(--sf, 1));\n width: 100%;\n }\n\n ::slotted(*) {\n width: 100%;\n }\n\n :host([disabled]) {\n opacity: 0.6;\n pointer-events: none;\n }\n `;\n\n /**\n * Get all form data as an object\n */\n getFormData(): FormData {\n const data: FormData = {};\n const slot = this.shadowRoot?.querySelector(\"slot\");\n const elements = slot?.assignedElements({ flatten: true }) || [];\n\n for (const element of elements) {\n this._collectFormData(element as HTMLElement, data);\n }\n\n return data;\n }\n\n private _collectFormData(element: HTMLElement, data: FormData): void {\n // Check if element has name and value properties\n const name = element.getAttribute(\"name\") || (element as any).name;\n if (name) {\n const value = (element as any).value;\n if (value !== undefined) {\n // Handle checkboxes and radio buttons\n if (\n element instanceof HTMLInputElement &&\n (element.type === \"checkbox\" || element.type === \"radio\")\n ) {\n if (element.type === \"checkbox\") {\n data[name] = element.checked;\n } else if (element.type === \"radio\" && element.checked) {\n data[name] = value;\n }\n } else {\n data[name] = value;\n }\n }\n }\n\n // Recursively check children\n const children =\n element.shadowRoot?.querySelectorAll(\"*\") || element.querySelectorAll(\"*\");\n children.forEach((child) => {\n this._collectFormData(child as HTMLElement, data);\n });\n }\n\n /**\n * Validate the form\n */\n validate(): FormValidationResult {\n const result: FormValidationResult = {\n valid: true,\n errors: {},\n };\n\n if (this.novalidate) {\n return result;\n }\n\n const slot = this.shadowRoot?.querySelector(\"slot\");\n const elements = slot?.assignedElements({ flatten: true }) || [];\n\n for (const element of elements) {\n this._validateElement(element as HTMLElement, result);\n }\n\n return result;\n }\n\n private _validateElement(\n element: HTMLElement,\n result: FormValidationResult\n ): void {\n const name = element.getAttribute(\"name\") || (element as any).name;\n\n // Check for custom validation on ds-input elements\n if (element.tagName.toLowerCase() === \"ds-input\") {\n const input = element as any;\n if (input.required && !input.value) {\n result.valid = false;\n result.errors[name || \"unknown\"] = \"This field is required\";\n }\n }\n\n // Check native form elements\n if (\n element instanceof HTMLInputElement ||\n element instanceof HTMLTextAreaElement ||\n element instanceof HTMLSelectElement\n ) {\n if (!element.checkValidity()) {\n result.valid = false;\n result.errors[name || \"unknown\"] = element.validationMessage;\n }\n }\n\n // Recursively check children\n const children =\n element.shadowRoot?.querySelectorAll(\"*\") || element.querySelectorAll(\"*\");\n children.forEach((child) => {\n this._validateElement(child as HTMLElement, result);\n });\n }\n\n /**\n * Reset the form\n */\n reset(): void {\n const slot = this.shadowRoot?.querySelector(\"slot\");\n const elements = slot?.assignedElements({ flatten: true }) || [];\n\n for (const element of elements) {\n this._resetElement(element as HTMLElement);\n }\n\n this.dispatchEvent(new CustomEvent(\"form-reset\", { bubbles: true }));\n }\n\n private _resetElement(element: HTMLElement): void {\n if (\n element instanceof HTMLInputElement ||\n element instanceof HTMLTextAreaElement ||\n element instanceof HTMLSelectElement\n ) {\n if (element instanceof HTMLInputElement && element.type === \"checkbox\") {\n element.checked = false;\n } else {\n element.value = \"\";\n }\n }\n\n // Handle ds-input elements\n if (element.tagName.toLowerCase() === \"ds-input\") {\n (element as any).value = \"\";\n }\n\n // Recursively reset children\n const children =\n element.shadowRoot?.querySelectorAll(\"*\") || element.querySelectorAll(\"*\");\n children.forEach((child) => {\n this._resetElement(child as HTMLElement);\n });\n }\n\n /**\n * Submit the form\n */\n async submit(): Promise<void> {\n if (this._isSubmitting) return;\n\n const validationResult = this.validate();\n if (!validationResult.valid) {\n this.dispatchEvent(\n new CustomEvent(\"form-invalid\", {\n detail: validationResult.errors,\n bubbles: true,\n })\n );\n return;\n }\n\n this._isSubmitting = true;\n const formData = this.getFormData();\n\n this.dispatchEvent(\n new CustomEvent(\"form-submit\", {\n detail: { data: formData },\n bubbles: true,\n })\n );\n\n // If action is provided, submit to the server\n if (this.action) {\n try {\n const response = await fetch(this.action, {\n method: this.method.toUpperCase(),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(formData),\n });\n\n this.dispatchEvent(\n new CustomEvent(\"form-response\", {\n detail: { response, data: formData },\n bubbles: true,\n })\n );\n } catch (error) {\n this.dispatchEvent(\n new CustomEvent(\"form-error\", {\n detail: { error, data: formData },\n bubbles: true,\n })\n );\n }\n }\n\n this._isSubmitting = false;\n }\n\n private _handleSubmit(e: Event): void {\n e.preventDefault();\n this.submit();\n }\n\n private _handleKeydown(e: KeyboardEvent): void {\n if (e.key === \"Enter\" && !e.shiftKey) {\n const target = e.target as HTMLElement;\n // Don't submit if in a textarea\n if (target.tagName.toLowerCase() !== \"textarea\") {\n e.preventDefault();\n this.submit();\n }\n }\n }\n\n render() {\n return html`\n <form\n .action=${this.action}\n .method=${this.method}\n .name=${this.name}\n ?novalidate=${this.novalidate}\n autocomplete=${this.autocomplete}\n @submit=${this._handleSubmit}\n @keydown=${this._handleKeydown}\n >\n <slot></slot>\n </form>\n `;\n }\n}\n\ncustomElements.define(\"ds-form\", Form);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-form\": Form;\n }\n}\n","// ds-list.ts\n// Unit component that\n// can be used to show a list of items consisting of components from core\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-list.css?inline\";\n\nexport class List extends LitElement {\n static styles = unsafeCSS(styles);\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ncustomElements.define(\"ds-list\", List);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-list\": List;\n }\n}\n\n","// ds-table.ts\n// Data table component\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-table.css?inline\";\n\nexport interface TableRow {\n product: string;\n users: string;\n retention: string;\n status?: string;\n}\n\nexport class DsTable extends LitElement {\n static properties = {\n data: { type: Array },\n columns: { type: Array },\n showStatus: { type: Boolean, attribute: \"show-status\" },\n };\n\n declare data: TableRow[];\n declare columns: string[];\n declare showStatus: boolean;\n\n constructor() {\n super();\n this.data = [];\n this.columns = [\"Product\", \"Users\", \"Retention\"];\n this.showStatus = true;\n }\n\n static styles = unsafeCSS(styles);\n\n render() {\n return html`\n <div class=\"table-container\">\n <div class=\"table-header\">\n <div class=\"header-cell product-cell\">Product</div>\n <div class=\"header-cell users-cell\">Users</div>\n <div class=\"header-cell retention-cell\">Retention</div>\n ${this.showStatus ? html`<div class=\"header-cell\">Status</div>` : \"\"}\n </div>\n <div class=\"table-body\">\n ${this.data.map(\n (row, rowIndex) => html`\n <div class=\"data-cell product-cell\">${row.product}</div>\n <div class=\"data-cell users-cell\">${row.users}</div>\n <div class=\"data-cell retention-cell\">${row.retention}</div>\n ${this.showStatus\n ? html`<div class=\"data-cell status-cell\">\n ${row.status || \"Pending\"}\n </div>`\n : \"\"}\n `\n )}\n </div>\n </div>\n `;\n }\n}\n\ncustomElements.define(\"ds-table\", DsTable);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-table\": DsTable;\n }\n}\n","// ds-container.ts\n// Container component with responsive width constraints\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-container.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Container extends LitElement {\n static styles = unsafeCSS(styles);\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ncustomElements.define(\"ds-container\", Container);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-container\": Container;\n }\n}\n","// ds-grid.ts\n// Simple grid layout component\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport { detectMobileDevice } from \"../0-face/device\";\nimport styles from \"./styles/ds-grid.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Grid extends LitElement {\n static properties = {\n align: { type: String },\n };\n\n align?: string;\n private resizeObserver?: () => void;\n private resizeTimeout?: any;\n\n static styles = unsafeCSS(styles);\n\n connectedCallback() {\n super.connectedCallback();\n this.updateMobileClass();\n\n // Listen for resize events to update mobile class\n this.resizeObserver = () => {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n this.resizeTimeout = setTimeout(() => {\n this.updateMobileClass();\n }, 100);\n };\n window.addEventListener(\"resize\", this.resizeObserver);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this.resizeObserver) {\n window.removeEventListener(\"resize\", this.resizeObserver);\n }\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n }\n\n private updateMobileClass() {\n const isMobile = detectMobileDevice();\n if (isMobile) {\n this.classList.add(\"mobile\");\n this.classList.remove(\"desktop\");\n } else {\n this.classList.add(\"desktop\");\n this.classList.remove(\"mobile\");\n }\n }\n\n render() {\n return html``;\n }\n}\n\ncustomElements.define(\"ds-grid\", Grid);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-grid\": Grid;\n }\n}\n","// ds-layout.ts\n// Simple grid layout component with view mode\n\nimport { LitElement, html, css, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-layout.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Layout extends LitElement {\n static properties = {\n mode: { type: String },\n align: { type: String },\n view: { type: Boolean },\n };\n\n mode: string = \"portfolio\";\n align?: string;\n view?: boolean;\n\n static styles = [\n unsafeCSS(styles),\n css`\n :host {\n display: grid;\n position: relative;\n width: 100%;\n }\n\n slot {\n display: contents;\n }\n\n :host([mode=\"portfolio\"]) {\n --portfolio-cols: 120px 480px 40px;\n --portfolio-rows: 120px 120px 60px 180px 60px 120px 60px 20px 120px\n 120px;\n --portfolio-areas: \"square . .\" \". title .\" \". header .\" \". projects .\"\n \". . .\" \". bio .\" \". . .\" \". nav .\" \". . .\" \". footer .\" \". . .\";\n --portfolio-overlay-cols: 120px 480px;\n --portfolio-overlay-areas: \"square .\" \". title\" \". header\" \". projects\"\n \". .\" \". bio\" \". .\" \". nav\" \". .\" \". footer\" \". .\";\n grid-template-columns: var(--portfolio-cols);\n grid-template-rows: var(--portfolio-rows);\n grid-template-areas: var(--portfolio-areas);\n min-height: 600px;\n background-color: rgba(165, 165, 165, 0.03);\n max-width: 640px;\n margin: 0;\n }\n\n :host([mode=\"portfolio\"]) .view-overlay {\n grid-template-columns: var(--portfolio-overlay-cols);\n grid-template-rows: var(--portfolio-rows);\n grid-template-areas: var(--portfolio-overlay-areas);\n }\n\n :host([mode=\"company\"]) {\n --company-cols: auto 400px auto;\n --company-rows: 80px 20px 20px 120px 20px 120px;\n --company-areas: \". . .\" \". header .\" \". . .\" \". content .\" \". . .\"\n \". footer .\";\n grid-template-columns: var(--company-cols);\n grid-template-rows: var(--company-rows);\n grid-template-areas: var(--company-areas);\n gap: 0;\n max-width: 100%;\n }\n\n :host([mode=\"company\"]) .view-overlay {\n grid-template-columns: var(--company-cols);\n grid-template-rows: var(--company-rows);\n grid-template-areas: var(--company-areas);\n gap: 0;\n }\n\n :host([align=\"left\"]),\n :host([mode=\"portfolio\"][align=\"left\"]),\n :host([mode=\"company\"][align=\"left\"]),\n :host([mode=\"app\"][align=\"left\"]),\n :host([mode=\"list\"][align=\"left\"]),\n :host([mode=\"home\"][align=\"left\"]),\n :host([mode=\"settings\"][align=\"left\"]) {\n margin: 0;\n justify-self: start;\n }\n\n :host([align=\"center\"]),\n :host([mode=\"portfolio\"][align=\"center\"]),\n :host([mode=\"company\"][align=\"center\"]),\n :host([mode=\"app\"][align=\"center\"]),\n :host([mode=\"list\"][align=\"center\"]),\n :host([mode=\"home\"][align=\"center\"]),\n :host([mode=\"settings\"][align=\"center\"]) {\n margin: 0 auto;\n justify-self: center;\n }\n\n :host([align=\"right\"]),\n :host([mode=\"portfolio\"][align=\"right\"]),\n :host([mode=\"company\"][align=\"right\"]),\n :host([mode=\"app\"][align=\"right\"]),\n :host([mode=\"list\"][align=\"right\"]),\n :host([mode=\"home\"][align=\"right\"]),\n :host([mode=\"settings\"][align=\"right\"]) {\n margin: 0 0 0 auto;\n justify-self: end;\n }\n\n /* App mode - Base */\n :host([mode=\"app\"]) {\n --app-cols: 100%;\n --app-overlay-cols: 100%;\n grid-template-columns: var(--app-cols);\n grid-template-rows: var(--app-layout);\n grid-template-areas: var(--app-layout-areas);\n min-height: 100vh;\n background-color: transparent;\n width: calc(240px * var(--sf, 1));\n max-width: calc(240px * var(--sf, 1));\n margin: 0 auto;\n }\n\n :host([mode=\"app\"]) .view-overlay {\n grid-template-columns: var(--app-overlay-cols);\n grid-template-rows: var(--app-layout);\n grid-template-areas: var(--app-layout-areas);\n }\n\n /* List mode - Base */\n :host([mode=\"list\"]) {\n --list-cols: 100%;\n --list-rows: calc(var(--unit) * var(--sf)) calc(var(--unit) * var(--sf))\n calc(var(--unit) * var(--sf)) calc(var(--twenty) * var(--sf));\n --list-areas: \"banner\" \".\" \"header\" \"board\";\n --list-overlay-cols: 100%;\n --list-overlay-rows: calc(var(--unit) * var(--sf))\n calc(var(--unit) * var(--sf)) calc(var(--unit) * var(--sf))\n calc(var(--twenty) * var(--sf));\n --list-overlay-areas: \"banner\" \".\" \"header\" \"board\";\n grid-template-columns: var(--list-cols);\n grid-template-rows: var(--list-rows);\n grid-template-areas: var(--list-areas);\n min-height: 100vh;\n background-color: transparent;\n width: calc(240px * var(--sf, 1));\n max-width: calc(240px * var(--sf, 1));\n margin: 0 auto;\n }\n\n :host([mode=\"list\"]) .view-overlay {\n grid-template-columns: var(--list-overlay-cols);\n grid-template-rows: var(--list-overlay-rows);\n grid-template-areas: var(--list-overlay-areas);\n }\n\n /* Home mode - Base */\n :host([mode=\"home\"]) {\n --home-cols: 100%;\n --home-areas: \"banner\" \".\" \"header\" \".\" \"lists\";\n --home-overlay-cols: 100%;\n --home-overlay-areas: \"banner\" \".\" \"header\" \".\" \"lists\";\n grid-template-columns: var(--home-cols);\n grid-template-rows: var(--home-layout);\n grid-template-areas: var(--home-areas);\n min-height: 100vh;\n background-color: transparent;\n width: calc(240px * var(--sf, 1));\n max-width: calc(240px * var(--sf, 1));\n margin: 0 auto;\n }\n\n :host([mode=\"home\"]) .view-overlay {\n grid-template-columns: var(--home-overlay-cols);\n grid-template-rows: var(--home-layout);\n grid-template-areas: var(--home-overlay-areas);\n }\n\n /* Settings mode - Base */\n :host([mode=\"settings\"]) {\n --settings-cols: 100%;\n --settings-overlay-cols: 100%;\n grid-template-columns: var(--settings-cols);\n grid-template-rows: var(--settings-layout);\n grid-template-areas: var(--settings-layout-areas);\n min-height: 100vh;\n background-color: transparent;\n width: calc(240px * var(--sf, 1));\n max-width: calc(240px * var(--sf, 1));\n margin: 0 auto;\n }\n\n :host([mode=\"settings\"]) .view-overlay {\n grid-template-columns: var(--settings-overlay-cols);\n grid-template-rows: var(--settings-layout);\n grid-template-areas: var(--settings-layout-areas);\n }\n\n .view-overlay {\n position: absolute;\n margin-left: -1px;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n z-index: 1000;\n display: grid;\n }\n\n .view-area {\n display: flex;\n width: calc(240px * var(--sf, 1));\n height: 100%;\n align-items: center;\n justify-content: center;\n font-family: var(--typeface-regular);\n font-size: calc(var(--type-size-default) * var(--05));\n color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n background-color: color-mix(\n in srgb,\n var(--accent-color) 25%,\n transparent\n );\n opacity: 1;\n position: relative;\n }\n\n .grid-area-label {\n position: absolute;\n top: calc(-20px * var(--sf, 1));\n left: 0;\n height: calc(20px * var(--sf, 1));\n width: fit-content;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0 calc(4px * var(--sf, 1));\n border-radius: calc(2px * var(--sf, 1));\n z-index: 10000;\n pointer-events: none;\n white-space: nowrap;\n }\n\n /* Banner label stays inside the area (first item) */\n :host([mode=\"app\"]) .view-area.view-banner .grid-area-label,\n :host([mode=\"list\"]) .view-area.view-banner .grid-area-label,\n :host([mode=\"home\"]) .view-area.view-banner .grid-area-label,\n :host([mode=\"settings\"]) .view-area.view-banner .grid-area-label,\n :host([mode=\"company\"]) .view-area.view-header .grid-area-label,\n :host([mode=\"portfolio\"]) .view-area.view-square .grid-area-label {\n top: 0;\n }\n\n .grid-area-label ds-text {\n font-size: calc(11px * var(--sf, 1));\n line-height: 1;\n color: white;\n text-transform: lowercase;\n }\n\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(1) {\n background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(2) {\n border-color: var(--sharp-blue);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(3) {\n border-color: var(--yellow);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(4) {\n border-color: var(--apple-green);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(4) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--apple-green) 70%, black) 0%,\n color-mix(in srgb, var(--apple-green) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(5) {\n border-color: var(--pink);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(5) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--pink) 70%, black) 0%,\n color-mix(in srgb, var(--pink) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(6) {\n border-color: var(--orange);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(6) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--orange) 70%, black) 0%,\n color-mix(in srgb, var(--orange) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(7) {\n border-color: var(--zenith-blue);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(7) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--zenith-blue) 70%, black) 0%,\n color-mix(in srgb, var(--zenith-blue) 70%, black) 100%\n );\n }\n\n :host([mode=\"company\"]) .view-area:nth-of-type(1) {\n border-color: var(--tuned-red);\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(2) {\n border-color: var(--sharp-blue);\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(3) {\n border-color: var(--yellow);\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n\n :host([mode=\"app\"]) .view-area:nth-of-type(1) {\n background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(2) {\n background-color: color-mix(\n in srgb,\n var(--sharp-blue) 25%,\n transparent\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(3) {\n background-color: color-mix(in srgb, var(--yellow) 25%, transparent);\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(4) {\n background-color: color-mix(\n in srgb,\n var(--apple-green) 25%,\n transparent\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(4) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--apple-green) 70%, black) 0%,\n color-mix(in srgb, var(--apple-green) 70%, black) 100%\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(5) {\n background-color: color-mix(in srgb, var(--pink) 25%, transparent);\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(5) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--pink) 70%, black) 0%,\n color-mix(in srgb, var(--pink) 70%, black) 100%\n );\n }\n\n :host([mode=\"list\"]) .view-area:nth-of-type(1) {\n background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(2) {\n background-color: color-mix(\n in srgb,\n var(--sharp-blue) 25%,\n transparent\n );\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(3) {\n background-color: color-mix(in srgb, var(--yellow) 25%, transparent);\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(4) {\n background-color: color-mix(\n in srgb,\n var(--apple-green) 25%,\n transparent\n );\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(4) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--apple-green) 70%, black) 0%,\n color-mix(in srgb, var(--apple-green) 70%, black) 100%\n );\n }\n\n :host([mode=\"home\"]) .view-area:nth-of-type(1) {\n background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(2) {\n background-color: color-mix(\n in srgb,\n var(--sharp-blue) 25%,\n transparent\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(3) {\n background-color: color-mix(in srgb, var(--yellow) 25%, transparent);\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(4) {\n background-color: color-mix(\n in srgb,\n var(--apple-green) 25%,\n transparent\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(4) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--apple-green) 70%, black) 0%,\n color-mix(in srgb, var(--apple-green) 70%, black) 100%\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(5) {\n background-color: color-mix(in srgb, var(--pink) 25%, transparent);\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(5) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--pink) 70%, black) 0%,\n color-mix(in srgb, var(--pink) 70%, black) 100%\n );\n }\n\n .view-square {\n grid-area: square;\n }\n\n .view-title {\n grid-area: title;\n }\n\n .view-header {\n grid-area: header;\n }\n\n .view-projects {\n grid-area: projects;\n }\n\n .view-bio {\n grid-area: bio;\n }\n\n .view-nav {\n grid-area: nav;\n }\n\n .view-footer {\n grid-area: footer;\n }\n\n .view-content {\n grid-area: content;\n }\n\n .view-banner {\n grid-area: banner;\n }\n\n .view-main {\n grid-area: main;\n }\n\n .view-page-dots {\n grid-area: page-dots;\n }\n\n .view-board {\n grid-area: board;\n }\n\n .view-message {\n grid-area: message;\n }\n\n .view-lists {\n grid-area: lists;\n }\n\n .view-settings {\n grid-area: settings;\n }\n\n :host([mode=\"settings\"]) .view-area:nth-of-type(1) {\n background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n }\n :host([mode=\"settings\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"settings\"]) .view-area:nth-of-type(2) {\n background-color: color-mix(\n in srgb,\n var(--sharp-blue) 25%,\n transparent\n );\n }\n :host([mode=\"settings\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n `,\n ];\n\n render() {\n const isView = this.view || this.mode === \"view\";\n const isPortfolio = this.mode === \"portfolio\";\n const isCompany = this.mode === \"company\";\n const isApp = this.mode === \"app\";\n const isList = this.mode === \"list\";\n const isHome = this.mode === \"home\";\n const isSettings = this.mode === \"settings\";\n\n return html`\n <slot></slot>\n ${isView\n ? html`\n <div class=\"view-overlay\">\n ${isSettings\n ? html`\n <div class=\"view-area view-banner\">\n <div class=\"grid-area-label\">\n <ds-text text=\"banner\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-settings\">\n <div class=\"grid-area-label\">\n <ds-text text=\"settings\"></ds-text>\n </div>\n </div>\n `\n : isHome\n ? html`\n <div class=\"view-area view-banner\">\n <div class=\"grid-area-label\">\n <ds-text text=\"banner\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text text=\"header\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-message\">\n <div class=\"grid-area-label\">\n <ds-text text=\"message\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-lists\">\n <div class=\"grid-area-label\">\n <ds-text text=\"lists\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-footer\">\n <div class=\"grid-area-label\">\n <ds-text text=\"footer\"></ds-text>\n </div>\n </div>\n `\n : isList\n ? html`\n <div class=\"view-area view-banner\">\n <div class=\"grid-area-label\">\n <ds-text text=\"banner\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text text=\"header\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-board\">\n <div class=\"grid-area-label\">\n <ds-text text=\"board\"></ds-text>\n </div>\n </div>\n `\n : isApp\n ? html`\n <div class=\"view-area view-banner\">\n <div class=\"grid-area-label\">\n <ds-text text=\"banner\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text text=\"header\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-main\">\n <div class=\"grid-area-label\">\n <ds-text text=\"main\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-page-dots\">\n <div class=\"grid-area-label\">\n <ds-text text=\"page-dots\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-footer\">\n <div class=\"grid-area-label\">\n <ds-text text=\"footer\"></ds-text>\n </div>\n </div>\n `\n : isCompany\n ? html`\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text text=\"header\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-content\">\n <div class=\"grid-area-label\">\n <ds-text text=\"content\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-footer\">\n <div class=\"grid-area-label\">\n <ds-text text=\"footer\"></ds-text>\n </div>\n </div>\n `\n : isPortfolio\n ? html`\n <div class=\"view-area view-square\">\n <div class=\"grid-area-label\">\n <ds-text text=\"square\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-title\">\n <div class=\"grid-area-label\">\n <ds-text text=\"title\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text text=\"header\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-projects\">\n <div class=\"grid-area-label\">\n <ds-text text=\"projects\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-bio\">\n <div class=\"grid-area-label\">\n <ds-text text=\"bio\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-nav\">\n <div class=\"grid-area-label\">\n <ds-text text=\"nav\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-footer\">\n <div class=\"grid-area-label\">\n <ds-text text=\"footer\"></ds-text>\n </div>\n </div>\n `\n : \"\"}\n </div>\n `\n : \"\"}\n `;\n }\n}\n\ncustomElements.define(\"ds-layout\", Layout);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-layout\": Layout;\n }\n}\n"],"names":["a","b","i","s","c","n","t","e","h","o","r","l","u","d","f","p","y","x","v","S","signal","LitElement","html","unsafeCSS","styles","css","unsafeHTML"],"mappings":"AAAA,IAAI,YAAY,OAAO;AACvB,IAAI,kBAAkB,CAAC,KAAK,KAAK,UAAU,OAAO,MAAM,UAAU,KAAK,KAAK,EAAE,YAAY,MAAM,cAAc,MAAM,UAAU,MAAM,MAAK,CAAE,IAAI,IAAI,GAAG,IAAI;AAC1J,IAAI,gBAAgB,CAAC,KAAK,KAAK,UAAU;AACvC,kBAAgB,KAAK,OAAO,QAAQ,WAAW,MAAM,KAAK,KAAK,KAAK;AACpE,SAAO;AACT;AACA,IAAI,gBAAgB,CAAC,KAAK,QAAQ,QAAQ;AACxC,MAAI,CAAC,OAAO,IAAI,GAAG;AACjB,UAAM,UAAU,YAAY,GAAG;AACnC;AACA,IAAI,cAAc,CAAC,QAAQ,QAAQ;AACjC,MAAI,OAAO,GAAG,MAAM;AAClB,UAAM,UAAU,4CAA4C;AAC9D,SAAO,OAAO,IAAI,GAAG;AACvB;AACA,IAAI,eAAe,CAAC,KAAK,QAAQ,UAAU;AACzC,MAAI,OAAO,IAAI,GAAG;AAChB,UAAM,UAAU,mDAAmD;AACrE,oBAAkB,UAAU,OAAO,IAAI,GAAG,IAAI,OAAO,IAAI,KAAK,KAAK;AACrE;AACA,IAAI,kBAAkB,CAAC,KAAK,QAAQ,WAAW;AAC7C,gBAAc,KAAK,QAAQ,uBAAuB;AAClD,SAAO;AACT;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,cAAcA,IAAGC,IAAG;AAC3B,SAAO,OAAO,GAAGD,IAAGC,EAAC;AACvB;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,IAAI,iBAAiB;AACrB,IAAI,sBAAsB;AAC1B,IAAI,QAAQ;AACZ,MAAM,SAAyB,uBAAO,QAAQ;AAC9C,SAAS,kBAAkB,UAAU;AACnC,QAAM,OAAO;AACb,mBAAiB;AACjB,SAAO;AACT;AACA,SAAS,oBAAoB;AAC3B,SAAO;AACT;AACA,SAAS,wBAAwB;AAC/B,SAAO;AACT;AACA,MAAM,gBAAgB;AAAA,EACpB,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,OAAO;AAAA,EACP,cAAc;AAAA,EACd,yBAAyB;AAAA,EACzB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,yBAAyB;AAAA,EACzB,2BAA2B;AAAA,EAC3B,sBAAsB;AAAA,EACtB,uBAAuB,MAAM;AAAA,EAC7B,wBAAwB,MAAM;AAAA,EAC9B;AAAA,EACA,qBAAqB,MAAM;AAAA,EAC3B;AAAA,EACA,sBAAsB,MAAM;AAAA,EAC5B;AACF;AACA,SAAS,iBAAiB,MAAM;AAC9B,MAAI,qBAAqB;AACvB,UAAM,IAAI;AAAA,MACR,OAAO,cAAc,eAAe,YAAY,2DAA2D;AAAA,IACjH;AAAA,EACE;AACA,MAAI,mBAAmB,MAAM;AAC3B;AAAA,EACF;AACA,iBAAe,qBAAqB,IAAI;AACxC,QAAM,MAAM,eAAe;AAC3B,qBAAmB,cAAc;AACjC,MAAI,MAAM,eAAe,aAAa,UAAU,eAAe,aAAa,GAAG,MAAM,MAAM;AACzF,QAAI,eAAe,cAAc,GAAG;AAClC,YAAM,gBAAgB,eAAe,aAAa,GAAG;AACrD,wCAAkC,eAAe,eAAe,oBAAoB,GAAG,CAAC;AAAA,IAC1F;AAAA,EACF;AACA,MAAI,eAAe,aAAa,GAAG,MAAM,MAAM;AAC7C,mBAAe,aAAa,GAAG,IAAI;AACnC,mBAAe,oBAAoB,GAAG,IAAI,eAAe,cAAc,IAAI,wBAAwB,MAAM,gBAAgB,GAAG,IAAI;AAAA,EAClI;AACA,iBAAe,wBAAwB,GAAG,IAAI,KAAK;AACrD;AACA,SAAS,yBAAyB;AAChC;AACF;AACA,SAAS,2BAA2B,MAAM;AACxC,MAAI,CAAC,KAAK,SAAS,KAAK,mBAAmB,OAAO;AAChD;AAAA,EACF;AACA,MAAI,CAAC,KAAK,sBAAsB,IAAI,KAAK,CAAC,+BAA+B,IAAI,GAAG;AAC9E,SAAK,QAAQ;AACb,SAAK,iBAAiB;AACtB;AAAA,EACF;AACA,OAAK,uBAAuB,IAAI;AAChC,OAAK,QAAQ;AACb,OAAK,iBAAiB;AACxB;AACA,SAAS,wBAAwB,MAAM;AACrC,MAAI,KAAK,qBAAqB,QAAQ;AACpC;AAAA,EACF;AACA,QAAM,OAAO;AACb,wBAAsB;AACtB,MAAI;AACF,eAAW,YAAY,KAAK,kBAAkB;AAC5C,UAAI,CAAC,SAAS,OAAO;AACnB,0BAAkB,QAAQ;AAAA,MAC5B;AAAA,IACF;AAAA,EACF,UAAC;AACC,0BAAsB;AAAA,EACxB;AACF;AACA,SAAS,yBAAyB;AAChC,UAAQ,kBAAkB,OAAO,SAAS,eAAe,+BAA+B;AAC1F;AACA,SAAS,kBAAkB,MAAM;AAC/B,MAAI;AACJ,OAAK,QAAQ;AACb,0BAAwB,IAAI;AAC5B,GAAC,KAAK,KAAK,wBAAwB,OAAO,SAAS,GAAG,KAAK,KAAK,WAAW,IAAI;AACjF;AACA,SAAS,0BAA0B,MAAM;AACvC,WAAS,KAAK,oBAAoB;AAClC,SAAO,kBAAkB,IAAI;AAC/B;AACA,SAAS,yBAAyB,MAAM,cAAc;AACpD,oBAAkB,YAAY;AAC9B,MAAI,CAAC,QAAQ,KAAK,iBAAiB,UAAU,KAAK,wBAAwB,UAAU,KAAK,4BAA4B,QAAQ;AAC3H;AAAA,EACF;AACA,MAAI,eAAe,IAAI,GAAG;AACxB,aAASC,KAAI,KAAK,mBAAmBA,KAAI,KAAK,aAAa,QAAQA,MAAK;AACtE,wCAAkC,KAAK,aAAaA,EAAC,GAAG,KAAK,oBAAoBA,EAAC,CAAC;AAAA,IACrF;AAAA,EACF;AACA,SAAO,KAAK,aAAa,SAAS,KAAK,mBAAmB;AACxD,SAAK,aAAa,IAAG;AACrB,SAAK,wBAAwB,IAAG;AAChC,SAAK,oBAAoB,IAAG;AAAA,EAC9B;AACF;AACA,SAAS,+BAA+B,MAAM;AAC5C,qBAAmB,IAAI;AACvB,WAASA,KAAI,GAAGA,KAAI,KAAK,aAAa,QAAQA,MAAK;AACjD,UAAM,WAAW,KAAK,aAAaA,EAAC;AACpC,UAAM,cAAc,KAAK,wBAAwBA,EAAC;AAClD,QAAI,gBAAgB,SAAS,SAAS;AACpC,aAAO;AAAA,IACT;AACA,+BAA2B,QAAQ;AACnC,QAAI,gBAAgB,SAAS,SAAS;AACpC,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,wBAAwB,MAAM,UAAU,aAAa;AAC5D,MAAI;AACJ,qBAAmB,IAAI;AACvB,qBAAmB,IAAI;AACvB,MAAI,KAAK,iBAAiB,WAAW,GAAG;AACtC,KAAC,KAAK,KAAK,YAAY,OAAO,SAAS,GAAG,KAAK,KAAK,OAAO;AAC3D,aAASA,KAAI,GAAGA,KAAI,KAAK,aAAa,QAAQA,MAAK;AACjD,WAAK,oBAAoBA,EAAC,IAAI,wBAAwB,KAAK,aAAaA,EAAC,GAAG,MAAMA,EAAC;AAAA,IACrF;AAAA,EACF;AACA,OAAK,wBAAwB,KAAK,WAAW;AAC7C,SAAO,KAAK,iBAAiB,KAAK,QAAQ,IAAI;AAChD;AACA,SAAS,kCAAkC,MAAM,KAAK;AACpD,MAAI;AACJ,qBAAmB,IAAI;AACvB,qBAAmB,IAAI;AACvB,MAAI,OAAO,cAAc,eAAe,aAAa,OAAO,KAAK,iBAAiB,QAAQ;AACxF,UAAM,IAAI;AAAA,MACR,0CAA0C,GAAG,wBAAwB,KAAK,iBAAiB,MAAM;AAAA,IACvG;AAAA,EACE;AACA,MAAI,KAAK,iBAAiB,WAAW,GAAG;AACtC,KAAC,KAAK,KAAK,cAAc,OAAO,SAAS,GAAG,KAAK,KAAK,OAAO;AAC7D,aAASA,KAAI,GAAGA,KAAI,KAAK,aAAa,QAAQA,MAAK;AACjD,wCAAkC,KAAK,aAAaA,EAAC,GAAG,KAAK,oBAAoBA,EAAC,CAAC;AAAA,IACrF;AAAA,EACF;AACA,QAAM,UAAU,KAAK,iBAAiB,SAAS;AAC/C,OAAK,iBAAiB,GAAG,IAAI,KAAK,iBAAiB,OAAO;AAC1D,OAAK,wBAAwB,GAAG,IAAI,KAAK,wBAAwB,OAAO;AACxE,OAAK,iBAAiB;AACtB,OAAK,wBAAwB;AAC7B,MAAI,MAAM,KAAK,iBAAiB,QAAQ;AACtC,UAAM,cAAc,KAAK,wBAAwB,GAAG;AACpD,UAAM,WAAW,KAAK,iBAAiB,GAAG;AAC1C,uBAAmB,QAAQ;AAC3B,aAAS,oBAAoB,WAAW,IAAI;AAAA,EAC9C;AACF;AACA,SAAS,eAAe,MAAM;AAC5B,MAAI;AACJ,SAAO,KAAK,2BAA2B,KAAK,QAAQ,OAAO,SAAS,KAAK,qBAAqB,OAAO,SAAS,GAAG,WAAW,KAAK;AACnI;AACA,SAAS,mBAAmB,MAAM;AAChC,OAAK,iBAAiB,KAAK,eAAe,CAAA;AAC1C,OAAK,wBAAwB,KAAK,sBAAsB,CAAA;AACxD,OAAK,4BAA4B,KAAK,0BAA0B,CAAA;AAClE;AACA,SAAS,mBAAmB,MAAM;AAChC,OAAK,qBAAqB,KAAK,mBAAmB,CAAA;AAClD,OAAK,4BAA4B,KAAK,0BAA0B,CAAA;AAClE;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,YAAY,MAAM;AACzB,6BAA2B,IAAI;AAC/B,mBAAiB,IAAI;AACrB,MAAI,KAAK,UAAU,SAAS;AAC1B,UAAM,KAAK;AAAA,EACb;AACA,SAAO,KAAK;AACd;AACA,SAAS,eAAe,aAAa;AACnC,QAAM,OAAO,OAAO,OAAO,aAAa;AACxC,OAAK,cAAc;AACnB,QAAM,WAAW,MAAM,YAAY,IAAI;AACvC,WAAS,MAAM,IAAI;AACnB,SAAO;AACT;AACA,MAAM,QAAwB,uBAAO,OAAO;AAC5C,MAAM,YAA4B,uBAAO,WAAW;AACpD,MAAM,UAA0B,uBAAO,SAAS;AAChD,MAAM,gBAAiC,uBAAM;AAC3C,SAAO;AAAA,IACL,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,sBAAsB,MAAM;AAC1B,aAAO,KAAK,UAAU,SAAS,KAAK,UAAU;AAAA,IAChD;AAAA,IACA,uBAAuB,MAAM;AAC3B,UAAI,KAAK,UAAU,WAAW;AAC5B,cAAM,IAAI,MAAM,iCAAiC;AAAA,MACnD;AACA,YAAM,WAAW,KAAK;AACtB,WAAK,QAAQ;AACb,YAAM,eAAe,0BAA0B,IAAI;AACnD,UAAI;AACJ,UAAI,WAAW;AACf,UAAI;AACF,mBAAW,KAAK,YAAY,KAAK,KAAK,OAAO;AAC7C,cAAM,QAAQ,aAAa,SAAS,aAAa;AACjD,mBAAW,SAAS,KAAK,MAAM,KAAK,KAAK,SAAS,UAAU,QAAQ;AAAA,MACtE,SAAS,KAAK;AACZ,mBAAW;AACX,aAAK,QAAQ;AAAA,MACf,UAAC;AACC,iCAAyB,MAAM,YAAY;AAAA,MAC7C;AACA,UAAI,UAAU;AACZ,aAAK,QAAQ;AACb;AAAA,MACF;AACA,WAAK,QAAQ;AACb,WAAK;AAAA,IACP;AAAA,EACJ;AACA,GAAC;AACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,oBAAoB;AAC3B,QAAM,IAAI,MAAK;AACjB;AACA,IAAI,mCAAmC;AACvC,SAAS,iCAAiC;AACxC,mCAAgC;AAClC;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,aAAa,cAAc;AAClC,QAAM,OAAO,OAAO,OAAO,WAAW;AACtC,OAAK,QAAQ;AACb,QAAM,SAAS,MAAM;AACnB,qBAAiB,IAAI;AACrB,WAAO,KAAK;AAAA,EACd;AACA,SAAO,MAAM,IAAI;AACjB,SAAO;AACT;AACA,SAAS,cAAc;AACrB,mBAAiB,IAAI;AACrB,SAAO,KAAK;AACd;AACA,SAAS,YAAY,MAAM,UAAU;AACnC,MAAI,CAAC,uBAAsB,GAAI;AAC7B,mCAA8B;AAAA,EAChC;AACA,MAAI,CAAC,KAAK,MAAM,KAAK,KAAK,SAAS,KAAK,OAAO,QAAQ,GAAG;AACxD,SAAK,QAAQ;AACb,uBAAmB,IAAI;AAAA,EACzB;AACF;AACA,MAAM,cAA+B,uBAAM;AACzC,SAAO;AAAA,IACL,GAAG;AAAA,IACH,OAAO;AAAA,IACP,OAAO;AAAA,EACX;AACA,GAAC;AACD,SAAS,mBAAmB,MAAM;AAChC,OAAK;AACL,yBAAsB;AACtB,0BAAwB,IAAI;AAC9B;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,MAAM,OAAO,OAAO,MAAM;AAC1B,IAAI;AAAA,CACH,CAAC,YAAY;AACT,MAAC,IAAI,QAAkB,IAAI;AAAA,EAC9B,MAAM,MAAM;AAAA,IACV,YAAY,cAAc,UAAU,IAAI;AACtC,mBAAa,MAAM,MAAM;AACzB,oBAAc,MAAM,EAAE;AACtB,YAAM,MAAM,aAAa,YAAY;AACrC,YAAM,OAAO,IAAI,MAAM;AACvB,WAAK,IAAI,IAAI;AACb,WAAK,UAAU;AACf,UAAI,SAAS;AACX,cAAM,SAAS,QAAQ;AACvB,YAAI,QAAQ;AACV,eAAK,QAAQ;AAAA,QACf;AACA,aAAK,UAAU,QAAQ,QAAQ,OAAO,OAAO;AAC7C,aAAK,YAAY,QAAQ,QAAQ,OAAO,SAAS;AAAA,MACnD;AAAA,IACF;AAAA,IACA,MAAM;AACJ,UAAI,EAAC,GAAI,QAAQ,SAAS,IAAI;AAC5B,cAAM,IAAI,UAAU,oDAAoD;AAC1E,aAAO,YAAY,KAAK,KAAK,IAAI,CAAC;AAAA,IACpC;AAAA,IACA,IAAI,UAAU;AACZ,UAAI,EAAC,GAAI,QAAQ,SAAS,IAAI;AAC5B,cAAM,IAAI,UAAU,oDAAoD;AAC1E,UAAI,sBAAqB,GAAI;AAC3B,cAAM,IAAI,MAAM,yDAAyD;AAAA,MAC3E;AACA,YAAM,MAAM,KAAK,IAAI;AACrB,kBAAY,KAAK,QAAQ;AAAA,IAC3B;AAAA,EACJ;AACE,OAAK;AACL,WAAS,oBAAI,QAAO;AAGpB,UAAQ,UAAU,CAACC,OAAM,OAAOA,OAAM,YAAY,YAAY,QAAQA,EAAC;AACvE,UAAQ,QAAQ;AAAA,EAChB,MAAM,SAAS;AAAA;AAAA;AAAA,IAGb,YAAY,aAAa,SAAS;AAChC,mBAAa,MAAM,OAAO;AAC1B,oBAAc,MAAM,EAAE;AACtB,YAAM,MAAM,eAAe,WAAW;AACtC,YAAM,OAAO,IAAI,MAAM;AACvB,WAAK,4BAA4B;AACjC,WAAK,IAAI,IAAI;AACb,WAAK,UAAU;AACf,UAAI,SAAS;AACX,cAAM,SAAS,QAAQ;AACvB,YAAI,QAAQ;AACV,eAAK,QAAQ;AAAA,QACf;AACA,aAAK,UAAU,QAAQ,QAAQ,OAAO,OAAO;AAC7C,aAAK,YAAY,QAAQ,QAAQ,OAAO,SAAS;AAAA,MACnD;AAAA,IACF;AAAA,IACA,MAAM;AACJ,UAAI,EAAC,GAAI,QAAQ,YAAY,IAAI;AAC/B,cAAM,IAAI,UAAU,uDAAuD;AAC7E,aAAO,YAAY,KAAK,IAAI,CAAC;AAAA,IAC/B;AAAA,EACJ;AACE,OAAK;AACL,YAAU,oBAAI,QAAO;AAGrB,UAAQ,aAAa,CAACC,OAAM,OAAOA,OAAM,YAAY,YAAY,SAASA,EAAC;AAC3E,UAAQ,WAAW;AACnB,GAAC,CAAC,YAAY;AACT,QAAC,KAAK,SAAoB,gBAAgB;AAC7C,aAAS,QAAQ,IAAI;AACnB,UAAI;AACJ,UAAI,qBAAqB;AACzB,UAAI;AACF,6BAAqB,kBAAkB,IAAI;AAC3C,iBAAS,GAAE;AAAA,MACb,UAAC;AACC,0BAAkB,kBAAkB;AAAA,MACtC;AACA,aAAO;AAAA,IACT;AACA,YAAQ,UAAU;AAClB,aAAS,kBAAkB,MAAM;AAC/B,UAAI;AACJ,UAAI,EAAC,GAAI,QAAQ,YAAY,IAAI,KAAK,KAAK,QAAQ,WAAW,IAAI,GAAG;AACnE,cAAM,IAAI,UAAU,iEAAiE;AAAA,MACvF;AACA,eAAS,MAAM,KAAK,IAAI,EAAE,iBAAiB,OAAO,SAAS,IAAI,IAAI,CAACC,OAAMA,GAAE,OAAO,MAAM,CAAA;AAAA,IAC3F;AACA,YAAQ,oBAAoB;AAC5B,aAAS,gBAAgB,QAAQ;AAC/B,UAAI;AACJ,UAAI,EAAC,GAAI,QAAQ,YAAY,MAAM,KAAK,KAAK,QAAQ,SAAS,MAAM,GAAG;AACrE,cAAM,IAAI,UAAU,kDAAkD;AAAA,MACxE;AACA,eAAS,MAAM,OAAO,IAAI,EAAE,qBAAqB,OAAO,SAAS,IAAI,IAAI,CAACA,OAAMA,GAAE,OAAO,MAAM,CAAA;AAAA,IACjG;AACA,YAAQ,kBAAkB;AAC1B,aAAS,SAAS,QAAQ;AACxB,UAAI,EAAC,GAAI,QAAQ,YAAY,MAAM,KAAK,KAAK,QAAQ,SAAS,MAAM,GAAG;AACrE,cAAM,IAAI,UAAU,2CAA2C;AAAA,MACjE;AACA,YAAM,mBAAmB,OAAO,IAAI,EAAE;AACtC,UAAI,CAAC;AACH,eAAO;AACT,aAAO,iBAAiB,SAAS;AAAA,IACnC;AACA,YAAQ,WAAW;AACnB,aAAS,WAAW,QAAQ;AAC1B,UAAI,EAAC,GAAI,QAAQ,YAAY,MAAM,KAAK,KAAK,QAAQ,WAAW,MAAM,GAAG;AACvE,cAAM,IAAI,UAAU,0DAA0D;AAAA,MAChF;AACA,YAAM,eAAe,OAAO,IAAI,EAAE;AAClC,UAAI,CAAC;AACH,eAAO;AACT,aAAO,aAAa,SAAS;AAAA,IAC/B;AACA,YAAQ,aAAa;AAAA,IACrB,MAAM,QAAQ;AAAA;AAAA;AAAA;AAAA,MAIZ,YAAY,QAAQ;AAClB,qBAAa,MAAM,OAAO;AAC1B,qBAAa,MAAM,cAAc;AACjC,sBAAc,MAAM,GAAG;AACvB,YAAI,OAAO,OAAO,OAAO,aAAa;AACtC,aAAK,UAAU;AACf,aAAK,sBAAsB;AAC3B,aAAK,uBAAuB;AAC5B,aAAK,4BAA4B;AACjC,aAAK,eAAe,CAAA;AACpB,aAAK,IAAI,IAAI;AAAA,MACf;AAAA;AAAA;AAAA;AAAA;AAAA,MAKA,SAAS,SAAS;AAChB,YAAI,EAAC,GAAI,QAAQ,WAAW,IAAI,GAAG;AACjC,gBAAM,IAAI,UAAU,yCAAyC;AAAA,QAC/D;AACA,wBAAgB,MAAM,gBAAgB,gBAAgB,EAAE,KAAK,MAAM,OAAO;AAC1E,cAAM,OAAO,KAAK,IAAI;AACtB,aAAK,QAAQ;AACb,cAAM,OAAO,kBAAkB,IAAI;AACnC,mBAAW,UAAU,SAAS;AAC5B,2BAAiB,OAAO,IAAI,CAAC;AAAA,QAC/B;AACA,0BAAkB,IAAI;AAAA,MACxB;AAAA;AAAA,MAEA,WAAW,SAAS;AAClB,YAAI,EAAC,GAAI,QAAQ,WAAW,IAAI,GAAG;AACjC,gBAAM,IAAI,UAAU,yCAAyC;AAAA,QAC/D;AACA,wBAAgB,MAAM,gBAAgB,gBAAgB,EAAE,KAAK,MAAM,OAAO;AAC1E,cAAM,OAAO,KAAK,IAAI;AACtB,2BAAmB,IAAI;AACvB,iBAASH,KAAI,KAAK,aAAa,SAAS,GAAGA,MAAK,GAAGA,MAAK;AACtD,cAAI,QAAQ,SAAS,KAAK,aAAaA,EAAC,EAAE,OAAO,GAAG;AAClD,8CAAkC,KAAK,aAAaA,EAAC,GAAG,KAAK,oBAAoBA,EAAC,CAAC;AACnF,kBAAM,UAAU,KAAK,aAAa,SAAS;AAC3C,iBAAK,aAAaA,EAAC,IAAI,KAAK,aAAa,OAAO;AAChD,iBAAK,oBAAoBA,EAAC,IAAI,KAAK,oBAAoB,OAAO;AAC9D,iBAAK,aAAa;AAClB,iBAAK,oBAAoB;AACzB,iBAAK;AACL,gBAAIA,KAAI,KAAK,aAAa,QAAQ;AAChC,oBAAM,cAAc,KAAK,oBAAoBA,EAAC;AAC9C,oBAAM,WAAW,KAAK,aAAaA,EAAC;AACpC,iCAAmB,QAAQ;AAC3B,uBAAS,wBAAwB,WAAW,IAAIA;AAAA,YAClD;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA;AAAA;AAAA,MAGA,aAAa;AACX,YAAI,EAAC,GAAI,QAAQ,WAAW,IAAI,GAAG;AACjC,gBAAM,IAAI,UAAU,4CAA4C;AAAA,QAClE;AACA,cAAM,OAAO,KAAK,IAAI;AACtB,eAAO,KAAK,aAAa,OAAO,CAACG,OAAMA,GAAE,KAAK,EAAE,IAAI,CAACA,OAAMA,GAAE,OAAO;AAAA,MACtE;AAAA,IACN;AACI,UAAM;AACN,cAAU,oBAAI,QAAO;AAGrB,qBAAiB,oBAAI,QAAO;AAC5B,uBAAmB,SAAS,SAAS;AACnC,iBAAW,UAAU,SAAS;AAC5B,YAAI,EAAC,GAAI,QAAQ,YAAY,MAAM,KAAK,KAAK,QAAQ,SAAS,MAAM,GAAG;AACrE,gBAAM,IAAI,UAAU,2DAA2D;AAAA,QACjF;AAAA,MACF;AAAA,IACF;AACA,YAAQ,YAAY,CAAC,MAAM,YAAY,SAAS,CAAC;AACjD,YAAQ,UAAU;AAClB,aAAS,kBAAkB;AACzB,UAAI;AACJ,cAAQ,MAAM,kBAAiB,MAAO,OAAO,SAAS,IAAI;AAAA,IAC5D;AACA,YAAQ,kBAAkB;AAC1B,YAAQ,UAAU,OAAO,SAAS;AAClC,YAAQ,YAAY,OAAO,WAAW;AAAA,EACxC,GAAG,QAAQ,WAAW,QAAQ,SAAS,CAAA,EAAG;AAC5C,GAAG,WAAW,SAAS,CAAA,EAAG;AClkB1B;AAAA;AAAA;AAAA;AAAA;AAI0C,IAAI,sBAAsB,CAAC,EAAC,SAAQC,IAAE,QAAOJ,GAAC,MAAI;AAAC,EAAAI,GAAE,QAAQJ,EAAC;AAAC,EAAC;ACL1G;AAAA;AAAA;AAAA;AAAA;AAKA,MAAMI,MAAE,EAAa,OAAM,EAAkD,GAAEC,MAAE,CAAAD,OAAG,IAAIC,QAAK,EAAC,iBAAgBD,IAAE,QAAOC,GAAC;AAAE,IAAA,MAAC,MAAM,EAAC;AAAA,EAAC,YAAYD,IAAE;AAAA,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,KAAKA,IAAEC,IAAEL,IAAE;AAAC,SAAK,OAAKI,IAAE,KAAK,OAAKC,IAAE,KAAK,OAAKL;AAAA,EAAC;AAAA,EAAC,KAAKI,IAAEC,IAAE;AAAC,WAAO,KAAK,OAAOD,IAAEC,EAAC;AAAA,EAAC;AAAA,EAAC,OAAOD,IAAEC,IAAE;AAAC,WAAO,KAAK,OAAO,GAAGA,EAAC;AAAA,EAAC;AAAC;ACL3S;AAAA;AAAA;AAAA;AAAA;AAKK,MAACD,MAAE,YAAWJ,MAAEI,IAAE,cAAaH,MAAED,MAAEA,IAAE,aAAa,YAAW,EAAC,YAAW,CAAAI,OAAGA,GAAC,CAAC,IAAE,QAAOC,MAAE,SAAQC,MAAE,OAAO,KAAK,OAAM,EAAG,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,KAAIC,MAAE,MAAID,KAAEH,MAAE,IAAII,GAAC,KAAIC,MAAE,UAASC,MAAE,MAAID,IAAE,cAAc,EAAE,GAAEN,MAAE,CAAAE,OAAG,SAAOA,MAAG,YAAU,OAAOA,MAAG,cAAY,OAAOA,IAAEN,MAAE,MAAM,SAAQY,MAAE,CAAAN,OAAGN,IAAEM,EAAC,KAAG,cAAY,OAAOA,KAAI,OAAO,QAAQ,GAAEO,MAAE,cAAcC,MAAE,uDAAsD,IAAE,QAAO,IAAE,MAAK,IAAE,OAAO,KAAKD,GAAC,qBAAqBA,GAAC,KAAKA,GAAC;AAAA,2BAAsC,GAAG,GAAEE,MAAE,MAAK,IAAE,MAAK,IAAE,sCAAqCC,MAAE,CAAAV,OAAG,CAACJ,OAAKC,QAAK,EAAC,YAAWG,IAAE,SAAQJ,IAAE,QAAOC,GAAC,IAAG,IAAEa,IAAE,CAAC,GAAgB,IAAE,OAAO,IAAI,cAAc,GAAE,IAAE,OAAO,IAAI,aAAa,GAAE,IAAE,oBAAI,WAAQ,IAAEN,IAAE,iBAAiBA,KAAE,GAAG;AAAE,SAAS,EAAEJ,IAAEJ,IAAE;AAAC,MAAG,CAACF,IAAEM,EAAC,KAAG,CAACA,GAAE,eAAe,KAAK,EAAE,OAAM,MAAM,gCAAgC;AAAE,SAAO,WAASH,MAAEA,IAAE,WAAWD,EAAC,IAAEA;AAAC;AAAC,MAAM,IAAE,CAACI,IAAEJ,OAAI;AAAC,QAAMC,KAAEG,GAAE,SAAO,GAAEG,KAAE;AAAG,MAAIC,IAAEC,KAAE,MAAIT,KAAE,UAAQ,MAAIA,KAAE,WAAS,IAAGE,KAAEU;AAAE,WAAQZ,KAAE,GAAEA,KAAEC,IAAED,MAAI;AAAC,UAAMC,KAAEG,GAAEJ,EAAC;AAAE,QAAIF,IAAEY,IAAEC,KAAE,IAAGG,KAAE;AAAE,WAAKA,KAAEb,GAAE,WAASC,GAAE,YAAUY,IAAEJ,KAAER,GAAE,KAAKD,EAAC,GAAE,SAAOS,MAAI,CAAAI,KAAEZ,GAAE,WAAUA,OAAIU,MAAE,UAAQF,GAAE,CAAC,IAAER,KAAE,IAAE,WAASQ,GAAE,CAAC,IAAER,KAAE,IAAE,WAASQ,GAAE,CAAC,KAAG,EAAE,KAAKA,GAAE,CAAC,CAAC,MAAIF,KAAE,OAAO,OAAKE,GAAE,CAAC,GAAE,GAAG,IAAGR,KAAE,KAAG,WAASQ,GAAE,CAAC,MAAIR,KAAE,KAAGA,OAAI,IAAE,QAAMQ,GAAE,CAAC,KAAGR,KAAEM,MAAGI,KAAED,KAAE,MAAI,WAASD,GAAE,CAAC,IAAEC,KAAE,MAAIA,KAAET,GAAE,YAAUQ,GAAE,CAAC,EAAE,QAAOZ,KAAEY,GAAE,CAAC,GAAER,KAAE,WAASQ,GAAE,CAAC,IAAE,IAAE,QAAMA,GAAE,CAAC,IAAE,IAAEG,OAAGX,OAAI,KAAGA,OAAIW,MAAEX,KAAE,IAAEA,OAAI,KAAGA,OAAI,IAAEA,KAAEU,OAAGV,KAAE,GAAEM,KAAE;AAAQ,UAAMO,KAAEb,OAAI,KAAGE,GAAEJ,KAAE,CAAC,EAAE,WAAW,IAAI,IAAE,MAAI;AAAG,IAAAS,MAAGP,OAAIU,MAAEX,KAAEE,MAAEQ,MAAG,KAAGJ,GAAE,KAAKT,EAAC,GAAEG,GAAE,MAAM,GAAEU,EAAC,IAAEN,MAAEJ,GAAE,MAAMU,EAAC,IAAEL,MAAES,MAAGd,KAAEK,OAAG,OAAKK,KAAEX,KAAEe;AAAA,EAAE;AAAC,SAAM,CAAC,EAAEX,IAAEK,MAAGL,GAAEH,EAAC,KAAG,UAAQ,MAAID,KAAE,WAAS,MAAIA,KAAE,YAAU,GAAG,GAAEO,EAAC;AAAC;AAAE,MAAM,EAAC;AAAA,EAAC,YAAY,EAAC,SAAQH,IAAE,YAAWH,GAAC,GAAEE,IAAE;AAAC,QAAIK;AAAE,SAAK,QAAM,CAAA;AAAG,QAAIN,KAAE,GAAEJ,KAAE;AAAE,UAAMY,KAAEN,GAAE,SAAO,GAAEO,KAAE,KAAK,OAAM,CAACC,IAAEI,EAAC,IAAE,EAAEZ,IAAEH,EAAC;AAAE,QAAG,KAAK,KAAG,EAAE,cAAcW,IAAET,EAAC,GAAE,EAAE,cAAY,KAAK,GAAG,SAAQ,MAAIF,MAAG,MAAIA,IAAE;AAAC,YAAMG,KAAE,KAAK,GAAG,QAAQ;AAAW,MAAAA,GAAE,YAAY,GAAGA,GAAE,UAAU;AAAA,IAAC;AAAC,WAAK,UAAQI,KAAE,EAAE,eAAaG,GAAE,SAAOD,MAAG;AAAC,UAAG,MAAIF,GAAE,UAAS;AAAC,YAAGA,GAAE,gBAAgB,YAAUJ,MAAKI,GAAE,kBAAiB,EAAG,KAAGJ,GAAE,SAASC,GAAC,GAAE;AAAC,gBAAML,KAAEgB,GAAElB,IAAG,GAAEG,KAAEO,GAAE,aAAaJ,EAAC,EAAE,MAAME,GAAC,GAAED,KAAE,eAAe,KAAKL,EAAC;AAAE,UAAAW,GAAE,KAAK,EAAC,MAAK,GAAE,OAAMT,IAAE,MAAKG,GAAE,CAAC,GAAE,SAAQJ,IAAE,MAAK,QAAMI,GAAE,CAAC,IAAE,IAAE,QAAMA,GAAE,CAAC,IAAE,IAAE,QAAMA,GAAE,CAAC,IAAE,IAAE,EAAC,CAAC,GAAEG,GAAE,gBAAgBJ,EAAC;AAAA,QAAC,MAAM,CAAAA,GAAE,WAAWE,GAAC,MAAIK,GAAE,KAAK,EAAC,MAAK,GAAE,OAAMT,GAAC,CAAC,GAAEM,GAAE,gBAAgBJ,EAAC;AAAG,YAAG,EAAE,KAAKI,GAAE,OAAO,GAAE;AAAC,gBAAMJ,KAAEI,GAAE,YAAY,MAAMF,GAAC,GAAEL,KAAEG,GAAE,SAAO;AAAE,cAAGH,KAAE,GAAE;AAAC,YAAAO,GAAE,cAAYR,MAAEA,IAAE,cAAY;AAAG,qBAAQA,KAAE,GAAEA,KAAEC,IAAED,KAAI,CAAAQ,GAAE,OAAOJ,GAAEJ,EAAC,GAAES,IAAC,CAAE,GAAE,EAAE,SAAQ,GAAGE,GAAE,KAAK,EAAC,MAAK,GAAE,OAAM,EAAET,GAAC,CAAC;AAAE,YAAAM,GAAE,OAAOJ,GAAEH,EAAC,GAAEQ,KAAG;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,WAAS,MAAID,GAAE,SAAS,KAAGA,GAAE,SAAOD,IAAE,CAAAI,GAAE,KAAK,EAAC,MAAK,GAAE,OAAMT,GAAC,CAAC;AAAA,WAAM;AAAC,YAAIE,KAAE;AAAG,eAAK,QAAMA,KAAEI,GAAE,KAAK,QAAQF,KAAEF,KAAE,CAAC,KAAI,CAAAO,GAAE,KAAK,EAAC,MAAK,GAAE,OAAMT,GAAC,CAAC,GAAEE,MAAGE,IAAE,SAAO;AAAA,MAAC;AAAC,MAAAJ;AAAA,IAAG;AAAA,EAAC;AAAA,EAAC,OAAO,cAAcE,IAAEJ,IAAE;AAAC,UAAMC,KAAEO,IAAE,cAAc,UAAU;AAAE,WAAOP,GAAE,YAAUG,IAAEH;AAAA,EAAC;AAAC;AAAC,SAASgB,IAAEb,IAAEJ,IAAEC,KAAEG,IAAEC,IAAE;AAAC,MAAGL,OAAI,EAAE,QAAOA;AAAE,MAAIM,KAAE,WAASD,KAAEJ,GAAE,OAAOI,EAAC,IAAEJ,GAAE;AAAK,QAAMM,KAAEL,IAAEF,EAAC,IAAE,SAAOA,GAAE;AAAgB,SAAOM,IAAG,gBAAcC,OAAID,IAAG,OAAO,KAAE,GAAE,WAASC,KAAED,KAAE,UAAQA,KAAE,IAAIC,GAAEH,EAAC,GAAEE,GAAE,KAAKF,IAAEH,IAAEI,EAAC,IAAG,WAASA,MAAGJ,GAAE,SAAFA,GAAE,OAAO,CAAA,IAAII,EAAC,IAAEC,KAAEL,GAAE,OAAKK,KAAG,WAASA,OAAIN,KAAEiB,IAAEb,IAAEE,GAAE,KAAKF,IAAEJ,GAAE,MAAM,GAAEM,IAAED,EAAC,IAAGL;AAAC;AAAC,MAAM,EAAC;AAAA,EAAC,YAAYI,IAAEJ,IAAE;AAAC,SAAK,OAAK,IAAG,KAAK,OAAK,QAAO,KAAK,OAAKI,IAAE,KAAK,OAAKJ;AAAA,EAAC;AAAA,EAAC,IAAI,aAAY;AAAC,WAAO,KAAK,KAAK;AAAA,EAAU;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,EAAEI,IAAE;AAAC,UAAK,EAAC,IAAG,EAAC,SAAQJ,GAAC,GAAE,OAAMC,GAAC,IAAE,KAAK,MAAKI,MAAGD,IAAG,iBAAeI,KAAG,WAAWR,IAAE,IAAE;AAAE,MAAE,cAAYK;AAAE,QAAIC,KAAE,EAAE,SAAQ,GAAGC,KAAE,GAAEJ,KAAE,GAAEM,KAAER,GAAE,CAAC;AAAE,WAAK,WAASQ,MAAG;AAAC,UAAGF,OAAIE,GAAE,OAAM;AAAC,YAAIT;AAAE,cAAIS,GAAE,OAAKT,KAAE,IAAI,EAAEM,IAAEA,GAAE,aAAY,MAAKF,EAAC,IAAE,MAAIK,GAAE,OAAKT,KAAE,IAAIS,GAAE,KAAKH,IAAEG,GAAE,MAAKA,GAAE,SAAQ,MAAKL,EAAC,IAAE,MAAIK,GAAE,SAAOT,KAAE,IAAI,EAAEM,IAAE,MAAKF,EAAC,IAAG,KAAK,KAAK,KAAKJ,EAAC,GAAES,KAAER,GAAE,EAAEE,EAAC;AAAA,MAAC;AAAC,MAAAI,OAAIE,IAAG,UAAQH,KAAE,EAAE,SAAQ,GAAGC;AAAA,IAAI;AAAC,WAAO,EAAE,cAAYC,KAAEH;AAAA,EAAC;AAAA,EAAC,EAAED,IAAE;AAAC,QAAIJ,KAAE;AAAE,eAAUC,MAAK,KAAK,KAAK,YAASA,OAAI,WAASA,GAAE,WAASA,GAAE,KAAKG,IAAEH,IAAED,EAAC,GAAEA,MAAGC,GAAE,QAAQ,SAAO,KAAGA,GAAE,KAAKG,GAAEJ,EAAC,CAAC,IAAGA;AAAA,EAAG;AAAC;AAAC,MAAM,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,MAAM,QAAM,KAAK;AAAA,EAAI;AAAA,EAAC,YAAYI,IAAEJ,IAAEC,IAAEI,IAAE;AAAC,SAAK,OAAK,GAAE,KAAK,OAAK,GAAE,KAAK,OAAK,QAAO,KAAK,OAAKD,IAAE,KAAK,OAAKJ,IAAE,KAAK,OAAKC,IAAE,KAAK,UAAQI,IAAE,KAAK,OAAKA,IAAG,eAAa;AAAA,EAAE;AAAA,EAAC,IAAI,aAAY;AAAC,QAAID,KAAE,KAAK,KAAK;AAAW,UAAMJ,KAAE,KAAK;AAAK,WAAO,WAASA,MAAG,OAAKI,IAAG,aAAWA,KAAEJ,GAAE,aAAYI;AAAA,EAAC;AAAA,EAAC,IAAI,YAAW;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,IAAI,UAAS;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,KAAKA,IAAEJ,KAAE,MAAK;AAAC,IAAAI,KAAEa,IAAE,MAAKb,IAAEJ,EAAC,GAAEE,IAAEE,EAAC,IAAEA,OAAI,KAAG,QAAMA,MAAG,OAAKA,MAAG,KAAK,SAAO,KAAG,KAAK,KAAI,GAAG,KAAK,OAAK,KAAGA,OAAI,KAAK,QAAMA,OAAI,KAAG,KAAK,EAAEA,EAAC,IAAE,WAASA,GAAE,aAAW,KAAK,EAAEA,EAAC,IAAE,WAASA,GAAE,WAAS,KAAK,EAAEA,EAAC,IAAEM,IAAEN,EAAC,IAAE,KAAK,EAAEA,EAAC,IAAE,KAAK,EAAEA,EAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,IAAE;AAAC,WAAO,KAAK,KAAK,WAAW,aAAaA,IAAE,KAAK,IAAI;AAAA,EAAC;AAAA,EAAC,EAAEA,IAAE;AAAC,SAAK,SAAOA,OAAI,KAAK,KAAI,GAAG,KAAK,OAAK,KAAK,EAAEA,EAAC;AAAA,EAAE;AAAA,EAAC,EAAEA,IAAE;AAAC,SAAK,SAAO,KAAGF,IAAE,KAAK,IAAI,IAAE,KAAK,KAAK,YAAY,OAAKE,KAAE,KAAK,EAAEI,IAAE,eAAeJ,EAAC,CAAC,GAAE,KAAK,OAAKA;AAAA,EAAC;AAAA,EAAC,EAAEA,IAAE;AAAC,UAAK,EAAC,QAAOJ,IAAE,YAAWC,GAAC,IAAEG,IAAEC,KAAE,YAAU,OAAOJ,KAAE,KAAK,KAAKG,EAAC,KAAG,WAASH,GAAE,OAAKA,GAAE,KAAG,EAAE,cAAc,EAAEA,GAAE,GAAEA,GAAE,EAAE,CAAC,CAAC,GAAE,KAAK,OAAO,IAAGA;AAAG,QAAG,KAAK,MAAM,SAAOI,GAAE,MAAK,KAAK,EAAEL,EAAC;AAAA,SAAM;AAAC,YAAMI,KAAE,IAAI,EAAEC,IAAE,IAAI,GAAEJ,KAAEG,GAAE,EAAE,KAAK,OAAO;AAAE,MAAAA,GAAE,EAAEJ,EAAC,GAAE,KAAK,EAAEC,EAAC,GAAE,KAAK,OAAKG;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,KAAKA,IAAE;AAAC,QAAIJ,KAAE,EAAE,IAAII,GAAE,OAAO;AAAE,WAAO,WAASJ,MAAG,EAAE,IAAII,GAAE,SAAQJ,KAAE,IAAI,EAAEI,EAAC,CAAC,GAAEJ;AAAA,EAAC;AAAA,EAAC,EAAEI,IAAE;AAACN,QAAE,KAAK,IAAI,MAAI,KAAK,OAAK,CAAA,GAAG,KAAK,KAAI;AAAI,UAAME,KAAE,KAAK;AAAK,QAAIC,IAAEI,KAAE;AAAE,eAAUC,MAAKF,GAAE,CAAAC,OAAIL,GAAE,SAAOA,GAAE,KAAKC,KAAE,IAAI,EAAE,KAAK,EAAEQ,IAAC,CAAE,GAAE,KAAK,EAAEA,KAAG,GAAE,MAAK,KAAK,OAAO,CAAC,IAAER,KAAED,GAAEK,EAAC,GAAEJ,GAAE,KAAKK,EAAC,GAAED;AAAI,IAAAA,KAAEL,GAAE,WAAS,KAAK,KAAKC,MAAGA,GAAE,KAAK,aAAYI,EAAC,GAAEL,GAAE,SAAOK;AAAA,EAAE;AAAA,EAAC,KAAKD,KAAE,KAAK,KAAK,aAAYJ,IAAE;AAAC,SAAI,KAAK,OAAO,OAAG,MAAGA,EAAC,GAAEI,OAAI,KAAK,QAAM;AAAC,YAAMJ,KAAEI,GAAE;AAAY,MAAAA,GAAE,OAAM,GAAGA,KAAEJ;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,aAAaI,IAAE;AAAC,eAAS,KAAK,SAAO,KAAK,OAAKA,IAAE,KAAK,OAAOA,EAAC;AAAA,EAAE;AAAC;AAAC,MAAM,EAAC;AAAA,EAAC,IAAI,UAAS;AAAC,WAAO,KAAK,QAAQ;AAAA,EAAO;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,YAAYA,IAAEJ,IAAEC,IAAEI,IAAEC,IAAE;AAAC,SAAK,OAAK,GAAE,KAAK,OAAK,GAAE,KAAK,OAAK,QAAO,KAAK,UAAQF,IAAE,KAAK,OAAKJ,IAAE,KAAK,OAAKK,IAAE,KAAK,UAAQC,IAAEL,GAAE,SAAO,KAAG,OAAKA,GAAE,CAAC,KAAG,OAAKA,GAAE,CAAC,KAAG,KAAK,OAAK,MAAMA,GAAE,SAAO,CAAC,EAAE,KAAK,IAAI,QAAM,GAAE,KAAK,UAAQA,MAAG,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,KAAKG,IAAEJ,KAAE,MAAKC,IAAEI,IAAE;AAAC,UAAMC,KAAE,KAAK;AAAQ,QAAIC,KAAE;AAAG,QAAG,WAASD,GAAE,CAAAF,KAAEa,IAAE,MAAKb,IAAEJ,IAAE,CAAC,GAAEO,KAAE,CAACL,IAAEE,EAAC,KAAGA,OAAI,KAAK,QAAMA,OAAI,GAAEG,OAAI,KAAK,OAAKH;AAAA,SAAO;AAAC,YAAMC,KAAED;AAAE,UAAID,IAAEK;AAAE,WAAIJ,KAAEE,GAAE,CAAC,GAAEH,KAAE,GAAEA,KAAEG,GAAE,SAAO,GAAEH,KAAI,CAAAK,KAAES,IAAE,MAAKZ,GAAEJ,KAAEE,EAAC,GAAEH,IAAEG,EAAC,GAAEK,OAAI,MAAIA,KAAE,KAAK,KAAKL,EAAC,IAAGI,YAAI,CAACL,IAAEM,EAAC,KAAGA,OAAI,KAAK,KAAKL,EAAC,IAAEK,OAAI,IAAEJ,KAAE,IAAEA,OAAI,MAAIA,OAAII,MAAG,MAAIF,GAAEH,KAAE,CAAC,IAAG,KAAK,KAAKA,EAAC,IAAEK;AAAA,IAAC;AAAC,IAAAD,MAAG,CAACF,MAAG,KAAK,EAAED,EAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,IAAE;AAAC,IAAAA,OAAI,IAAE,KAAK,QAAQ,gBAAgB,KAAK,IAAI,IAAE,KAAK,QAAQ,aAAa,KAAK,MAAKA,MAAG,EAAE;AAAA,EAAC;AAAC;AAAC,MAAM,UAAU,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAEA,IAAE;AAAC,SAAK,QAAQ,KAAK,IAAI,IAAEA,OAAI,IAAE,SAAOA;AAAA,EAAC;AAAC;AAAC,MAAM,UAAU,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAEA,IAAE;AAAC,SAAK,QAAQ,gBAAgB,KAAK,MAAK,CAAC,CAACA,MAAGA,OAAI,CAAC;AAAA,EAAC;AAAC;AAAC,MAAM,UAAU,EAAC;AAAA,EAAC,YAAYA,IAAEJ,IAAEC,IAAEI,IAAEC,IAAE;AAAC,UAAMF,IAAEJ,IAAEC,IAAEI,IAAEC,EAAC,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,KAAKF,IAAEJ,KAAE,MAAK;AAAC,SAAII,KAAEa,IAAE,MAAKb,IAAEJ,IAAE,CAAC,KAAG,OAAK,EAAE;AAAO,UAAMC,KAAE,KAAK,MAAKI,KAAED,OAAI,KAAGH,OAAI,KAAGG,GAAE,YAAUH,GAAE,WAASG,GAAE,SAAOH,GAAE,QAAMG,GAAE,YAAUH,GAAE,SAAQK,KAAEF,OAAI,MAAIH,OAAI,KAAGI;AAAG,IAAAA,MAAG,KAAK,QAAQ,oBAAoB,KAAK,MAAK,MAAKJ,EAAC,GAAEK,MAAG,KAAK,QAAQ,iBAAiB,KAAK,MAAK,MAAKF,EAAC,GAAE,KAAK,OAAKA;AAAA,EAAC;AAAA,EAAC,YAAYA,IAAE;AAAC,kBAAY,OAAO,KAAK,OAAK,KAAK,KAAK,KAAK,KAAK,SAAS,QAAM,KAAK,SAAQA,EAAC,IAAE,KAAK,KAAK,YAAYA,EAAC;AAAA,EAAC;AAAC;AAAC,MAAM,EAAC;AAAA,EAAC,YAAYA,IAAEJ,IAAEC,IAAE;AAAC,SAAK,UAAQG,IAAE,KAAK,OAAK,GAAE,KAAK,OAAK,QAAO,KAAK,OAAKJ,IAAE,KAAK,UAAQC;AAAA,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,KAAKG,IAAE;AAACa,QAAE,MAAKb,EAAC;AAAA,EAAC;AAAC;AAAM,MAA6D,IAAEA,IAAE;AAAuB,IAAI,GAAE,CAAC,IAAGA,IAAE,oBAAFA,IAAE,kBAAkB,CAAA,IAAI,KAAK,OAAO;AAAE,MAAM,IAAE,CAACA,IAAEJ,IAAEC,OAAI;AAAC,QAAMI,KAAEJ,IAAG,gBAAcD;AAAE,MAAIM,KAAED,GAAE;AAAW,MAAG,WAASC,IAAE;AAAC,UAAMF,KAAEH,IAAG,gBAAc;AAAK,IAAAI,GAAE,aAAWC,KAAE,IAAI,EAAEN,GAAE,aAAaS,IAAC,GAAGL,EAAC,GAAEA,IAAE,QAAOH,MAAG,CAAA,CAAE;AAAA,EAAC;AAAC,SAAOK,GAAE,KAAKF,EAAC,GAAEE;AAAC;ACJ16N;AAAA;AAAA;AAAA;AAAA;AAIWF,OAAE;AAAQA,OAAE;AAAQ,MAACI,MAAE,CAACC,IAAEF,OAAI,IAAIH,OAAE,MAAMK,IAAEF,EAAC;AC8BxD,MAAM,uBAAsC;AAAA,EAC1C,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAU;AAAA,EACV,UAAU;AACZ;AAGO,MAAM,gBAAgBW,IAAe,CAAC;AAGtC,MAAM,gBAAgBA,IAAsB,oBAAoB;AAUhE,SAAS,qBAA8B;AAC5C,MAAI,OAAO,cAAc,eAAe,OAAO,WAAW,aAAa;AACrE,WAAO;AAAA,EACT;AAEA,QAAM,MAAM;AACZ,QAAM,MAAM;AACZ,QAAM,KACH,QAAQ,IAAI,aAAa,IAAI,WAAa,OAAO,IAAI,SAAU;AAGlE,QAAM,kBACJ,qIAAqI;AAAA,IACnI;AAAA,EAAA;AAIJ,QAAM,cAAe,OAAO,IAAI,kBAAmB;AACnD,QAAM,iBAAiB,cAAc;AAGrC,QAAM,iBAAiB,MACnB,KAAK,IAAI,IAAI,cAAc,GAAG,IAAI,eAAe,CAAC,KAAK,MACvD;AAEJ,SAAO,mBAAoB,kBAAkB;AAC/C;AAKO,SAAS,gBAA4B;AAC1C,QAAM,WAAW,mBAAA;AACjB,QAAM,MAAM;AACZ,QAAM,MAAM;AAEZ,QAAM,cAAe,OAAO,IAAI,kBAAmB;AACnD,QAAM,iBAAiB,cAAc;AAGrC,QAAM,cACJ,OAAO,aAAa,cAChB,SAAS,gBAAgB,cACzB,KAAK,cAAc;AACzB,QAAM,eACJ,OAAO,aAAa,cAChB,SAAS,gBAAgB,eACzB,KAAK,eAAe;AAC1B,QAAM,WAAW,YAAY,KAAK,IAAI,aAAa,YAAY,KAAK;AAEpE,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,WAAW,CAAC;AAAA,IACZ;AAAA,IACA,YAAY,WAAY,WAAW,WAAW,WAAY;AAAA,IAC1D,WAAY,QAAQ,IAAI,aAAa,IAAI,WAAY;AAAA,IACrD;AAAA,IACA;AAAA,EAAA;AAEJ;AAYO,SAAS,uBACd,eACA,SAAwB,cAAc,OAC9B;AACR,MAAI,OAAO,SAAS,SAAS;AAC3B,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,gBAAgB,OAAO;AACxC,QAAM,eAAe,KAAK;AAAA,IACxB,OAAO;AAAA,IACP,KAAK,IAAI,OAAO,UAAU,QAAQ;AAAA,EAAA;AAGpC,SAAO,OAAO,aAAa,QAAQ,CAAC,CAAC;AACvC;AAMO,SAAS,iBAAiB,QAAsC;AACrE,QAAM,gBAAgB,cAAc,IAAA;AACpC,QAAM,YAAY,EAAE,GAAG,eAAe,GAAG,OAAA;AACzC,gBAAc,IAAI,SAAS;AAG3B,MAAI,OAAO,WAAW,aAAa;AACjC,wBAAA;AAAA,EACF;AACF;AAMO,SAAS,sBAA4B;AAC1C,MAAI,OAAO,WAAW,eAAe,OAAO,aAAa,aAAa;AACpE;AAAA,EACF;AAEA,QAAM,WAAW,mBAAA;AAGjB,MAAI,CAAC,UAAU;AACb,UAAM,SAAS;AACf,kBAAc,IAAI,MAAM;AACxB,aAAS,gBAAgB,MAAM,YAAY,QAAQ,OAAO,UAAU;AACpE,WAAO;AAAA,MACL,IAAI,YAAY,mBAAmB;AAAA,QACjC,QAAQ,EAAE,eAAe,QAAQ,QAAQ,cAAc,MAAI;AAAA,MAAE,CAC9D;AAAA,IAAA;AAEH;AAAA,EACF;AAGA,QAAM,gBAAgB,SAAS,gBAAgB;AAC/C,QAAM,SAAS,cAAc,IAAA;AAC7B,QAAM,YAAY,uBAAuB,eAAe,MAAM;AAE9D,gBAAc,IAAI,SAAS;AAC3B,WAAS,gBAAgB,MAAM,YAAY,QAAQ,UAAU,UAAU;AAEvE,SAAO;AAAA,IACL,IAAI,YAAY,mBAAmB;AAAA,MACjC,QAAQ,EAAE,eAAe,WAAW,OAAA;AAAA,IAAO,CAC5C;AAAA,EAAA;AAEL;AAMO,SAAS,mBAA2B;AACzC,SAAO,cAAc,IAAA;AACvB;AAOO,SAAS,MAAM,UAA0B;AAC9C,SAAO,WAAW,cAAc,IAAA;AAClC;AAOO,SAAS,QAAQ,UAA0B;AAChD,QAAM,SAAS,cAAc,IAAA;AAC7B,SAAO,WAAW,IAAI,WAAW,WAAW;AAC9C;AAUO,SAAS,sBAAkC;AAChD,QAAM,aAAa,cAAA;AAEnB,MAAI,OAAO,aAAa,aAAa;AACnC,WAAO;AAAA,EACT;AAGA,MAAI,WAAW,UAAU;AACvB,aAAS,gBAAgB,UAAU,IAAI,QAAQ;AAC/C,aAAS,gBAAgB,UAAU,OAAO,SAAS;AAAA,EACrD,OAAO;AACL,aAAS,gBAAgB,UAAU,IAAI,SAAS;AAChD,aAAS,gBAAgB,UAAU,OAAO,QAAQ;AAAA,EACpD;AAGA,sBAAA;AAGA,QAAM,SAAS,cAAc,IAAA;AAC7B,MAAI,WAAW,UAAU;AACvB,YAAQ;AAAA,MACN,qCAAqC,WAAW,UAAU,KAAK,WAAW,WAAW,IAAI,WAAW,YAAY,sBAAsB,OAAO,QAAQ,CAAC,CAAC;AAAA,IAAA;AAAA,EAE3J,OAAO;AACL,YAAQ;AAAA,MACN,qCAAqC,WAAW,WAAW,IAAI,WAAW,YAAY;AAAA,IAAA;AAAA,EAE1F;AAGA,MAAI,OAAO,WAAW,eAAgB,OAAe,cAAc;AACjE,YAAQ,IAAI,yBAAyB;AAAA,MACnC,MAAM,WAAW;AAAA,MACjB,UAAU,WAAW;AAAA,MACrB,UAAU,WAAW;AAAA,MACrB,WAAW,WAAW;AAAA,MACtB,gBAAgB,WAAW;AAAA,MAC3B,UAAU,GAAG,WAAW,WAAW,IAAI,WAAW,YAAY;AAAA,MAC9D,eAAe;AAAA,MACf,WAAW,WAAW;AAAA,IAAA,CACvB;AAAA,EACH;AAEA,SAAO;AACT;AAGA,IAAI,OAAO,WAAW,aAAa;AAEjC,MAAI,SAAS,eAAe,WAAW;AACrC,aAAS,iBAAiB,oBAAoB,MAAM;AAClD,0BAAA;AAAA,IACF,CAAC;AAAA,EACH,OAAO;AAEL,wBAAA;AAAA,EACF;AAGA,MAAI;AACJ,SAAO,iBAAiB,UAAU,MAAM;AACtC,iBAAa,aAAa;AAC1B,oBAAgB,WAAW,MAAM;AAC/B,0BAAA;AAAA,IACF,GAAG,GAAG;AAAA,EACR,CAAC;AAGD,SAAO,iBAAiB,qBAAqB,MAAM;AACjD,eAAW,qBAAqB,GAAG;AAAA,EACrC,CAAC;AACH;AAUO,SAAS,UAAgB;AAC9B,MAAI,OAAO,aAAa,eAAe,OAAO,WAAW,aAAa;AACpE;AAAA,EACF;AAGA,MAAI,WAAW,SAAS,cAAc,uBAAuB;AAC7D,MAAI,CAAC,UAAU;AACb,eAAW,SAAS,cAAc,MAAM;AACxC,aAAS,aAAa,QAAQ,UAAU;AACxC,aAAS,KAAK,YAAY,QAAQ;AAAA,EACpC;AACA,WAAS;AAAA,IACP;AAAA,IACA;AAAA,EAAA;AAIF,QAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,QAAM,KAAK;AACX,QAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWpB,QAAM,gBAAgB,SAAS,eAAe,sBAAsB;AACpE,MAAI,eAAe;AACjB,kBAAc,OAAA;AAAA,EAChB;AACA,WAAS,KAAK,YAAY,KAAK;AAG/B,MAAI,eAAe;AACnB,MAAI,iBAAiB;AAErB,QAAM,cAAc,CAAC,UAA2C;AAE9D,QAAI,iBAAiB,YAAY;AAC/B,UAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,cAAM,eAAA;AACN,cAAM,gBAAA;AACN;AAAA,MACF;AAEA,YAAM,MAAM,KAAK,IAAA;AAEjB,UAAI,MAAM,SAAS,cAAc;AAE/B,YAAI,MAAM,eAAe,KAAK;AAC5B,gBAAM,eAAA;AACN,gBAAM,gBAAA;AACN;AAAA,QACF;AACA,yBAAiB;AAAA,MACnB,WAAW,MAAM,SAAS,YAAY;AACpC,cAAM,gBAAgB,MAAM;AAE5B,YAAI,gBAAgB,OAAO,MAAM,eAAe,KAAK;AACnD,gBAAM,eAAA;AACN,gBAAM,gBAAA;AACN;AAAA,QACF;AACA,uBAAe;AAAA,MACjB,WAAW,MAAM,SAAS,aAAa;AAErC,YAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,gBAAM,eAAA;AACN,gBAAM,gBAAA;AACN;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAGA,QAAI,iBAAiB,eAAe,MAAM,WAAW,MAAM,UAAU;AACnE,YAAM,eAAA;AACN,YAAM,gBAAA;AACN;AAAA,IACF;AAAA,EACF;AAGA,QAAM,UAAU,EAAE,SAAS,OAAO,SAAS,KAAA;AAG3C,WAAS,iBAAiB,cAAc,aAAa,OAAO;AAC5D,WAAS,iBAAiB,aAAa,aAAa,OAAO;AAC3D,WAAS,iBAAiB,YAAY,aAAa,OAAO;AAC1D,WAAS,iBAAiB,eAAe,aAAa,OAAO;AAG7D,WAAS,iBAAiB,SAAS,aAAa,OAAO;AAGvD,WAAS;AAAA,IACP;AAAA,IACA,CAACb,OAAM;AACL,MAAAA,GAAE,eAAA;AACF,MAAAA,GAAE,gBAAA;AAAA,IACJ;AAAA,IACA;AAAA,EAAA;AAEF,WAAS;AAAA,IACP;AAAA,IACA,CAACA,OAAM;AACL,MAAAA,GAAE,eAAA;AACF,MAAAA,GAAE,gBAAA;AAAA,IACJ;AAAA,IACA;AAAA,EAAA;AAEF,WAAS;AAAA,IACP;AAAA,IACA,CAACA,OAAM;AACL,MAAAA,GAAE,eAAA;AACF,MAAAA,GAAE,gBAAA;AAAA,IACJ;AAAA,IACA;AAAA,EAAA;AAEJ;AC7aA,IAAI,kBAAkC,CAAA;AAGtC,MAAM,0BAA0B;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,2BAA2B,IAAI;AAAA,EACnC,wBAAwB,IAAI,CAAC,MAAM,UAAU,CAAC,MAAM,KAAK,CAAC;AAC5D;AAGA,MAAM,0BAAkD;AAAA,EACtD,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,WAAW;AAAA,EACX,WAAW;AACb;AAEA,MAAM,yCAAyB,IAAA;AAC/B,IAAI,kCAAkC;AAatC,MAAM,2BAA2B;AACjC,IAAI,gBAAgB;AAEpB,SAAS,mBAAmB,MAA6B;AACvD,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AACA,QAAM,UAAU,KAAK,KAAA;AACrB,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,MACE,QAAQ,WAAW,IAAI,KACvB,QAAQ,WAAW,KAAK,KACxB,QAAQ,WAAW,GAAG,KACtB,gBAAgB,KAAK,OAAO,GAC5B;AACA,WAAO;AAAA,EACT;AAEA,SAAO,KAAK,OAAO;AACrB;AAEA,SAAS,yBAAwC;AAC/C,MAAI,OAAO,aAAa,aAAa;AACnC,WAAO;AAAA,EACT;AAEA,QAAM,sBAAsB,SAAS;AAAA,IACnC;AAAA,EAAA;AAEF,QAAM,kBAAkB,qBAAqB;AAAA,IAC3C;AAAA,EAAA;AAEF,MAAI,iBAAiB;AACnB,WAAO;AAAA,EACT;AAEA,QAAM,gBAAgB,SACnB,cAAc,kCAAkC,GAC/C,aAAa,SAAS;AAC1B,MAAI,eAAe;AACjB,WAAO;AAAA,EACT;AAEA,QAAM,gBAAgB,SACnB,cAAc,iCAAiC,GAC9C,aAAa,MAAM;AACvB,MAAI,eAAe;AACjB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,SAAS,4BAAsC;AAC7C,QAAM,aAAuB,CAAA;AAE7B,QAAM,kBACJ,OAAO,WAAW,cAAc,OAAO,2BAA2B;AACpE,QAAM,qBAAqB,uBAAA;AAG3B,QAAM,mBAAmB,mBAAmB,mBAAmB,EAAE;AACjE,MAAI,kBAAkB;AACpB,eAAW,KAAK,gBAAgB;AAAA,EAClC;AAEA,QAAM,iBAAiB,mBAAmB,sBAAsB,EAAE;AAClE,MAAI,kBAAkB,CAAC,WAAW,SAAS,cAAc,GAAG;AAC1D,eAAW,KAAK,cAAc;AAAA,EAChC;AAGA,MAAI,WAAW,WAAW,GAAG;AAC3B,eAAW,KAAK,wBAAwB;AAAA,EAC1C;AAEA,SAAO;AACT;AAEA,SAAS,uBACP,WAC6B;AAC7B,MAAI,CAAC,aAAa,OAAO,cAAc,UAAU;AAC/C,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,OAAO,SAAS,EAAE;AAAA,IAC9B,CAAC,UAAU,SAAS,OAAO,UAAU;AAAA,EAAA;AAEzC;AAEA,eAAe,qBACb,QACgC;AAChC,MAAI;AACF,UAAM,WAAW,MAAM,MAAM,MAAM;AAEnC,QAAI,CAAC,SAAS,IAAI;AAEhB,aAAO;AAAA,IACT;AAEA,UAAM,eAAe,MAAM,SAAS,KAAA;AAEpC,QAAI,CAAC,uBAAuB,YAAY,GAAG;AACzC,cAAQ;AAAA,QACN,0CAA0C,MAAM;AAAA,MAAA;AAElD,aAAO;AAAA,IACT;AAEA,UAAM,YAAY,OAAO,KAAK,YAAY;AAC1C,QAAI,UAAU,WAAW,GAAG;AAC1B,cAAQ,KAAK,kCAAkC,MAAM,EAAE;AACvD,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT,QAAQ;AAEN,WAAO;AAAA,EACT;AACF;AAKA,eAAe,2BAA6C;AAE1D,MAAI,eAAe;AACjB,WAAO;AAAA,EACT;AACA,kBAAgB;AAEhB,MAAI,OAAO,WAAW,aAAa;AACjC,WAAO;AAAA,EACT;AAGA,MACE,OAAO,uBACP,OAAO,KAAK,OAAO,mBAAmB,EAAE,SAAS,GACjD;AACA,YAAQ;AAAA,MACN,yCAAyC,OAAO,KAAK,OAAO,mBAAmB,EAAE,MAAM;AAAA,IAAA;AAEzF,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,0BAAA;AAEhB,aAAW,UAAU,SAAS;AAC5B,UAAM,eAAe,MAAM,qBAAqB,MAAM;AACtD,QAAI,CAAC,cAAc;AACjB;AAAA,IACF;AAEA,WAAO,sBAAsB;AAE7B,UAAM,YAAY,OAAO,KAAK,YAAY;AAC1C,YAAQ;AAAA,MACN,8CAA8C,MAAM,KAAK,UAAU,MAAM,kBAAkB,UAAU,KAAK,IAAI,CAAC;AAAA,IAAA;AAGjH,WAAO,cAAc,IAAI,YAAY,oBAAoB,CAAC;AAC1D,WAAO;AAAA,EACT;AAEA,UAAQ;AAAA,IACN,8CAA8C,QAAQ,CAAC,KAAK,wBAAwB;AAAA,EAAA;AAGtF,SAAO;AACT;AAGA,SAAS,qBAAqC;AAE5C,MAAI,OAAO,WAAW,eAAe,OAAO,qBAAqB;AAC/D,WAAO,OAAO;AAAA,EAChB;AAGA,SAAO;AACT;AAGA,IAAI,kBAAkB,mBAAA;AAEtB,MAAM,kBAAgC;AAEtC,SAAS,qBAAqB,MAA4B;AACxD,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AACA,SAAO,KAAK,cAAc,MAAM,MAAM,EAAE,CAAC,KAAK;AAChD;AAEA,SAAS,oBAAoB,MAA4B;AACvD,QAAM,UAAU,qBAAqB,IAAI;AACzC,QAAM,WAAW,yBAAyB,IAAI,OAAO;AAErD,MAAI,OAAO,aAAa,UAAU;AAChC,WAAO;AAAA,EACT;AAEA,SAAO,wBAAwB;AACjC;AAEA,SAAS,kBAAkB,OAAuC;AAChE,SAAO,CAAC,GAAG,KAAK,EAAE,KAAK,CAACP,IAAGC,OAAM;AAC/B,UAAM,YAAY,oBAAoBD,EAAC;AACvC,UAAM,YAAY,oBAAoBC,EAAC;AAEvC,QAAI,cAAc,WAAW;AAC3B,aAAO,YAAY;AAAA,IACrB;AAEA,WAAOD,GAAE,cAAcC,EAAC;AAAA,EAC1B,CAAC;AACH;AAEA,SAAS,wBACP,QACA,MACoB;AACpB,QAAM,mBAAmB,QAAQ,QAAQ,KAAK,GAAG;AACjD,MAAI,CAAC,kBAAkB;AACrB,WAAO;AAAA,EACT;AAEA,MAAI;AACF,QAAI,eAAe,mBAAmB,IAAI,gBAAgB;AAE1D,QAAI,CAAC,cAAc;AACjB,qBAAe,IAAI,KAAK,aAAa,CAAC,gBAAgB,GAAG;AAAA,QACvD,MAAM;AAAA,MAAA,CACP;AACD,yBAAmB,IAAI,kBAAkB,YAAY;AAAA,IACvD;AAEA,UAAM,cAAc,KAAK,QAAQ,KAAK,GAAG;AAGzC,UAAM,YAAY,aAAa,GAAG,WAAW;AAC7C,QAAI,aAAa,cAAc,aAAa;AAC1C,aAAO;AAAA,IACT;AAGA,UAAM,YAAY,aAAa,GAAG,qBAAqB,WAAW,CAAC;AACnE,QAAI,WAAW;AACb,aAAO;AAAA,IACT;AAAA,EACF,SAAS,OAAO;AAEd,QAAI,CAAC,iCAAiC;AACpC,cAAQ;AAAA,QACN;AAAA,MAAA;AAEF,wCAAkC;AAAA,IACpC;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,uBAAuB,MAAwC;AACtE,QAAM,aAAa,KAAK,YAAA,EAAc,QAAQ,KAAK,GAAG;AACtD,QAAM,SAAS,wBAAwB,UAAU;AAEjD,MAAI,QAAQ;AACV,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,qBAAqB,UAAU;AAC/C,SAAO,wBAAwB,OAAO;AACxC;AAEO,SAAS,uBACd,MACA,UAA+B,IACvB;AACR,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AAEA,QAAM,eAAyB,CAAA;AAE/B,MAAI,QAAQ,QAAQ;AAClB,iBAAa,KAAK,QAAQ,MAAM;AAAA,EAClC;AAEA,MAAI,OAAO,cAAc,aAAa;AACpC,QAAI,MAAM,QAAQ,UAAU,SAAS,GAAG;AACtC,mBAAa,KAAK,GAAG,UAAU,SAAS;AAAA,IAC1C;AACA,QAAI,UAAU,UAAU;AACtB,mBAAa,KAAK,UAAU,QAAQ;AAAA,IACtC;AAAA,EACF;AAEA,eAAa,KAAK,eAAe;AACjC,eAAa,KAAK,IAAI;AAEtB,QAAM,4BAAY,IAAA;AAElB,aAAW,UAAU,cAAc;AACjC,QAAI,CAAC,UAAU,MAAM,IAAI,MAAM,GAAG;AAChC;AAAA,IACF;AACA,UAAM,IAAI,MAAM;AAEhB,UAAM,cAAc,wBAAwB,QAAQ,IAAI;AACxD,QAAI,aAAa;AACf,aAAO;AAAA,IACT;AAAA,EACF;AAEA,QAAM,WAAW,uBAAuB,IAAI;AAC5C,MAAI,UAAU;AACZ,WAAO;AAAA,EACT;AAGA,QAAM,UAAU,qBAAqB,IAAI;AACzC,SAAO,UAAU,QAAQ,YAAA,IAAgB;AAC3C;AAEA,MAAM,+BAA6D;AAAA,EACjE,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AAAA,EACT,WAAW;AACb;AAEA,SAAS,yBAAyB,aAA0C;AAC1E,MAAI,CAAC,aAAa;AAChB,WAAO;AAAA,EACT;AAEA,QAAM,aAAa,YAAY,YAAA,EAAc,QAAQ,KAAK,GAAG;AAE7D,QAAM,cAAc,6BAA6B,UAAU;AAC3D,MAAI,aAAa;AACf,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,qBAAqB,UAAU;AAC/C,QAAM,eAAe,6BAA6B,OAAO;AACzD,MAAI,cAAc;AAChB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAGO,SAAS,qBAAmC;AACjD,MAAI,OAAO,cAAc,aAAa;AACpC,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,UAAU;AAE9B,MAAI,aAAa;AACf,UAAM,WAAW,yBAAyB,WAAW;AACrD,QAAI,UAAU;AACZ,aAAO;AAAA,IACT;AAAA,EACF;AAEA,MAAI,MAAM,QAAQ,UAAU,SAAS,GAAG;AACtC,eAAW,aAAa,UAAU,WAAW;AAC3C,YAAM,WAAW,yBAAyB,SAAS;AACnD,UAAI,UAAU;AACZ,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAIE,OAAO,WAAW,cACZ,OAAO,cAAc;AAAA,EACrB;AACF,KAA6B,SAC7B;AAGC,MAAM,kBAAkB;AAAA,EAC7B,OACG,aAAa,QAAQ,UAAU,KAAsB,mBAAA;AAAA,EACxD,KAAK,SAAU,MAAoB;AACjC,SAAK,QAAQ;AACb,iBAAa,QAAQ,YAAY,IAAI;AACrC,WAAO;AAAA,MACL,IAAI,YAAY,oBAAoB;AAAA,QAClC,QAAQ,EAAE,UAAU,KAAA;AAAA,QACpB,SAAS;AAAA,QACT,UAAU;AAAA,MAAA,CACX;AAAA,IAAA;AAAA,EAEL;AACF;AAGA,IAAI,OAAO,WAAW,aAAa;AAEjC,MAAI,SAAS,eAAe,WAAW;AACrC,aAAS,iBAAiB,oBAAoB,MAAM;AAClD,+BAAA;AAAA,IACF,CAAC;AAAA,EACH,OAAO;AAEL,6BAAA;AAAA,EACF;AACF;AAGA,IAAI,OAAO,WAAW,aAAa;AACjC,SAAO,iBAAiB,sBAAsB,MAAM;AAElD,sBAAkB,mBAAA;AAGlB,WAAO,cAAc,IAAI,YAAY,qBAAqB,CAAC;AAG3D,UAAM,cAAc,gBAAgB;AACpC,WAAO;AAAA,MACL,IAAI,YAAY,oBAAoB;AAAA,QAClC,QAAQ,EAAE,UAAU,YAAA;AAAA,QACpB,SAAS;AAAA,QACT,UAAU;AAAA,MAAA,CACX;AAAA,IAAA;AAAA,EAEL,CAAC;AACH;AAIA,WAAW,MAAM;AAEf,SAAO,cAAc,IAAI,YAAY,qBAAqB,CAAC;AAG3D,QAAM,cAAc,gBAAgB;AAEpC,SAAO;AAAA,IACL,IAAI,YAAY,oBAAoB;AAAA,MAClC,QAAQ,EAAE,UAAU,YAAA;AAAA,MACpB,SAAS;AAAA,MACT,UAAU;AAAA,IAAA,CACX;AAAA,EAAA;AAEL,GAAG,GAAG;AAGC,SAAS,UAAU,KAAqB;AAC7C,QAAM,OAAO,gBAAgB;AAG7B,MAAI,kBAAkB,IAAI,IAAI,GAAG,GAAG;AAClC,WAAO,gBAAgB,IAAI,EAAE,GAAG;AAAA,EAClC;AAGA,MAAI,SAAS,mBAAmB,kBAAkB,eAAe,IAAI,GAAG,GAAG;AACzE,WAAO,gBAAgB,eAAe,EAAE,GAAG;AAAA,EAC7C;AAEA,UAAQ;AAAA,IACN,iEAAiE,GAAG;AAAA,EAAA;AAEtE,SAAO;AACT;AAEO,SAAS,eACd,KACA,WAAyB,gBAAgB,OAChC;AACT,MAAI,CAAC,KAAK;AACR,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,kBAAkB,QAAQ;AAC3C,MAAI,YAAY,OAAO,UAAU,eAAe,KAAK,UAAU,GAAG,GAAG;AACnE,WAAO;AAAA,EACT;AAEA,MACE,aAAa,mBACb,kBAAkB,eAAe,KACjC,OAAO,UAAU,eAAe,KAAK,gBAAgB,eAAe,GAAG,GAAG,GAC1E;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAGO,SAAS,QAAQ,KAAqB;AAC3C,SAAO,UAAU,GAAG;AACtB;AAGO,SAAS,wBAAiD;AAE/D,QAAM,cAAc,mBAAA;AAEpB,MAAI,eAAe,OAAO,KAAK,WAAW,EAAE,SAAS,GAAG;AACtD,UAAM,YAAY,OAAO,KAAK,WAAW;AACzC,WAAO,QAAQ,QAAQ,kBAAkB,SAAS,CAAC;AAAA,EACrD;AACA,SAAO,QAAQ,QAAQ,CAAC,eAAe,CAAC;AAC1C;AAGO,SAAS,4BAA4C;AAC1D,QAAM,cAAc,mBAAA;AAEpB,MAAI,eAAe,OAAO,KAAK,WAAW,EAAE,SAAS,GAAG;AACtD,WAAO,kBAAkB,OAAO,KAAK,WAAW,CAAmB;AAAA,EACrE;AACA,SAAO,CAAC,eAAe;AACzB;AAGO,SAAS,iBACd,UACA,cACM;AAEN,UAAQ;AAAA,IACN,uCAAuC,QAAQ;AAAA,IAC/C,OAAO,KAAK,YAAY,EAAE;AAAA,IAC1B;AAAA,EAAA;AAEJ;AAGO,SAAS,YAAY,UAA8B;AAExD,eAAa,QAAQ,YAAY,QAAQ;AAIzC,kBAAgB,IAAI,QAAQ;AAG5B,SAAO;AAAA,IACL,IAAI,YAAY,oBAAoB;AAAA,MAClC,QAAQ,EAAE,SAAA;AAAA,MACV,SAAS;AAAA,MACT,UAAU;AAAA,IAAA,CACX;AAAA,EAAA;AAEL;AC3oBO,SAAS,gBAAgB,aAAgC;AAC9D,MAAI,OAAO,WAAW,aAAa;AACjC;AAAA,EACF;AAEA,MAAI;AACF,UAAM,MAAM,OAAO,cAAc,QAAQ,oBAAoB;AAC7D,UAAM,WAAW,MAAO,KAAK,MAAM,GAAG,IAAgC,CAAA;AACtE,UAAM,OAAO,EAAE,GAAG,UAAU,GAAG,YAAA;AAC/B,WAAO,cAAc,QAAQ,sBAAsB,KAAK,UAAU,IAAI,CAAC;AAAA,EACzE,SAAS,OAAO;AACd,YAAQ,KAAK,yCAAyC,KAAK;AAAA,EAC7D;AACF;ACNA,MAAM,eAAuC;AAAA,EAC3C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEO,SAAS,cAAc,SAAoC;AAChE,QAAM,EAAE,UAAU,QAAA,IAAY;AAG9B,MAAI,SAAS;AACX,UAAM,eAAe,QAAQ,YAAA;AAE7B,QAAI,iBAAiB,QAAQ,iBAAiB,OAAO;AACnD,aAAO;AAAA,IACT;AACA,QAAI,iBAAiB,QAAQ,iBAAiB,MAAM;AAClD,aAAO;AAAA,IACT;AACA,QAAI,iBAAiB,QAAQ,iBAAiB,OAAO;AACnD,aAAO;AAAA,IACT;AACA,QAAI,iBAAiB,QAAQ,iBAAiB,OAAO;AACnD,aAAO;AAAA,IACT;AACA,QAAI,iBAAiB,QAAQ,iBAAiB,OAAO;AACnD,aAAO;AAAA,IACT;AAAA,EACF;AAGA,QAAM,cAAc,SAAS,YAAA,EAAc,MAAM,MAAM,EAAE,CAAC;AAC1D,SAAO,aAAa,WAAW,KAAK;AACtC;ACpDA,SAAS,kBAA6B;AACpC,MAAI,OAAO,WAAW,aAAa;AACjC,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,OAAO,cAAc,QAAQ,cAAc;AAC/D,MAAI,gBAAgB,WAAW,gBAAgB,QAAQ;AACrD,WAAO;AAAA,EACT;AAGA,QAAM,cAAc,OAAO,WAAW,8BAA8B,EAAE;AACtE,SAAO,cAAc,SAAS;AAChC;AAEO,MAAM,eAAemB,IAAkB,gBAAA,CAAiB;AAExD,SAAS,SAAS,OAAwB;AAC/C,MAAI,UAAU,aAAa,OAAO;AAChC;AAAA,EACF;AAEA,eAAa,IAAI,KAAK;AAEtB,MAAI,OAAO,WAAW,aAAa;AACjC,QAAI;AACF,aAAO,cAAc,QAAQ,gBAAgB,KAAK;AAAA,IACpD,SAAS,OAAO;AACd,cAAQ,KAAK,8CAA8C,KAAK;AAAA,IAClE;AAEA,UAAM,OAAO,OAAO,UAAU;AAC9B,QAAI,MAAM;AACR,WAAK,UAAU,OAAO,eAAe,YAAY;AACjD,WAAK,UAAU,IAAI,GAAG,KAAK,QAAQ;AAAA,IACrC;AAEA,WAAO;AAAA,MACL,IAAI,YAAY,iBAAiB,EAAE,QAAQ,EAAE,MAAA,GAAS;AAAA,IAAA;AAAA,EAE1D;AACF;AAGA,IAAI,OAAO,WAAW,aAAa;AACjC,QAAM,QAAQ,aAAa,IAAA;AAC3B,QAAM,OAAO,OAAO,UAAU;AAC9B,MAAI,MAAM;AACR,SAAK,UAAU,OAAO,eAAe,YAAY;AACjD,SAAK,UAAU,IAAI,GAAG,KAAK,QAAQ;AAAA,EACrC;AACF;ACvDA;AAAA;AAAA;AAAA;AAAA;AAKA,MAAM,IAAE,YAAWb,MAAE,EAAE,eAAa,WAAS,EAAE,YAAU,EAAE,SAAS,iBAAe,wBAAuB,SAAS,aAAW,aAAY,cAAc,WAAUJ,MAAE,OAAM,GAAGM,MAAE,oBAAI;AAAO,IAAA,MAAC,MAAM,EAAC;AAAA,EAAC,YAAYH,IAAEC,IAAEE,IAAE;AAAC,QAAG,KAAK,eAAa,MAAGA,OAAIN,IAAE,OAAM,MAAM,mEAAmE;AAAE,SAAK,UAAQG,IAAE,KAAK,IAAEC;AAAA,EAAC;AAAA,EAAC,IAAI,aAAY;AAAC,QAAID,KAAE,KAAK;AAAE,UAAMH,KAAE,KAAK;AAAE,QAAGI,OAAG,WAASD,IAAE;AAAC,YAAMC,KAAE,WAASJ,MAAG,MAAIA,GAAE;AAAO,MAAAI,OAAID,KAAEG,IAAE,IAAIN,EAAC,IAAG,WAASG,QAAK,KAAK,IAAEA,KAAE,IAAI,iBAAe,YAAY,KAAK,OAAO,GAAEC,MAAGE,IAAE,IAAIN,IAAEG,EAAC;AAAA,IAAE;AAAC,WAAOA;AAAA,EAAC;AAAA,EAAC,WAAU;AAAC,WAAO,KAAK;AAAA,EAAO;AAAC;AAAC,MAAMI,MAAE,CAAAJ,OAAG,IAAID,IAAE,YAAU,OAAOC,KAAEA,KAAEA,KAAE,IAAG,QAAOH,GAAC,GAAED,MAAE,CAACI,OAAKC,OAAI;AAAC,QAAME,KAAE,MAAIH,GAAE,SAAOA,GAAE,CAAC,IAAEC,GAAE,QAAQ,CAACA,IAAEJ,IAAEM,OAAIF,MAAG,CAAAD,OAAG;AAAC,QAAG,SAAKA,GAAE,aAAa,QAAOA,GAAE;AAAQ,QAAG,YAAU,OAAOA,GAAE,QAAOA;AAAE,UAAM,MAAM,qEAAmEA,KAAE,sFAAsF;AAAA,EAAC,GAAGH,EAAC,IAAEG,GAAEG,KAAE,CAAC,IAAGH,GAAE,CAAC,CAAC;AAAE,SAAO,IAAID,IAAEI,IAAEH,IAAEH,GAAC;AAAC,GAAE,IAAE,CAACA,IAAEM,OAAI;AAAC,MAAGF,IAAE,CAAAJ,GAAE,qBAAmBM,GAAE,KAAK,CAAAH,OAAGA,cAAa,gBAAcA,KAAEA,GAAE;MAAkB,YAAUC,MAAKE,IAAE;AAAC,UAAMA,KAAE,SAAS,cAAc,OAAO,GAAEJ,KAAE,EAAE;AAAS,eAASA,MAAGI,GAAE,aAAa,SAAQJ,EAAC,GAAEI,GAAE,cAAYF,GAAE,SAAQJ,GAAE,YAAYM,EAAC;AAAA,EAAC;AAAC,GAAEL,MAAEG,MAAE,CAAAD,OAAGA,KAAE,CAAAA,OAAGA,cAAa,iBAAe,CAAAA,OAAG;AAAC,MAAIC,KAAE;AAAG,aAAUJ,MAAKG,GAAE,SAAS,CAAAC,MAAGJ,GAAE;AAAQ,SAAOO,IAAEH,EAAC;AAAC,GAAGD,EAAC,IAAEA;ACJ3zC;AAAA;AAAA;AAAA;AAAA;AAIG,MAAK,EAAC,IAAGJ,KAAE,gBAAeK,KAAE,0BAAyB,GAAE,qBAAoB,GAAE,uBAAsBE,KAAE,gBAAeJ,GAAC,IAAE,QAAO,IAAE,YAAW,IAAE,EAAE,cAAa,IAAE,IAAE,EAAE,cAAY,IAAG,IAAE,EAAE,gCAA+B,IAAE,CAACC,IAAEH,OAAIG,IAAE,IAAE,EAAC,YAAYA,IAAEH,IAAE;AAAC,UAAOA,IAAC;AAAA,IAAE,KAAK;AAAQ,MAAAG,KAAEA,KAAE,IAAE;AAAK;AAAA,IAAM,KAAK;AAAA,IAAO,KAAK;AAAM,MAAAA,KAAE,QAAMA,KAAEA,KAAE,KAAK,UAAUA,EAAC;AAAA,EAAC;AAAC,SAAOA;AAAC,GAAE,cAAcA,IAAEH,IAAE;AAAC,MAAID,KAAEI;AAAE,UAAOH;IAAG,KAAK;AAAQ,MAAAD,KAAE,SAAOI;AAAE;AAAA,IAAM,KAAK;AAAO,MAAAJ,KAAE,SAAOI,KAAE,OAAK,OAAOA,EAAC;AAAE;AAAA,IAAM,KAAK;AAAA,IAAO,KAAK;AAAM,UAAG;AAAC,QAAAJ,KAAE,KAAK,MAAMI,EAAC;AAAA,MAAC,SAAOA,IAAE;AAAC,QAAAJ,KAAE;AAAA,MAAI;AAAA,EAAC;AAAC,SAAOA;AAAC,EAAC,GAAE,IAAE,CAACI,IAAEH,OAAI,CAACD,IAAEI,IAAEH,EAAC,GAAE,IAAE,EAAC,WAAU,MAAG,MAAK,QAAO,WAAU,GAAE,SAAQ,OAAG,YAAW,OAAG,YAAW,EAAC;AAAE,OAAO,aAAP,OAAO,WAAW,OAAO,UAAU,IAAE,EAAE,wBAAF,EAAE,sBAAsB,oBAAI;AAAQ,MAAM,UAAU,YAAW;AAAA,EAAC,OAAO,eAAeG,IAAE;AAAC,SAAK,KAAI,IAAI,KAAK,MAAL,KAAK,IAAI,CAAA,IAAI,KAAKA,EAAC;AAAA,EAAC;AAAA,EAAC,WAAW,qBAAoB;AAAC,WAAO,KAAK,SAAQ,GAAG,KAAK,QAAM,CAAC,GAAG,KAAK,KAAK,MAAM;AAAA,EAAC;AAAA,EAAC,OAAO,eAAeA,IAAEH,KAAE,GAAE;AAAC,QAAGA,GAAE,UAAQA,GAAE,YAAU,QAAI,KAAK,KAAI,GAAG,KAAK,UAAU,eAAeG,EAAC,OAAKH,KAAE,OAAO,OAAOA,EAAC,GAAG,UAAQ,OAAI,KAAK,kBAAkB,IAAIG,IAAEH,EAAC,GAAE,CAACA,GAAE,YAAW;AAAC,YAAMD,KAAE,OAAM,GAAGM,KAAE,KAAK,sBAAsBF,IAAEJ,IAAEC,EAAC;AAAE,iBAASK,MAAGD,IAAE,KAAK,WAAUD,IAAEE,EAAC;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,OAAO,sBAAsBF,IAAEH,IAAED,IAAE;AAAC,UAAK,EAAC,KAAIK,IAAE,KAAIG,GAAC,IAAE,EAAE,KAAK,WAAUJ,EAAC,KAAG,EAAC,MAAK;AAAC,aAAO,KAAKH,EAAC;AAAA,IAAC,GAAE,IAAIG,IAAE;AAAC,WAAKH,EAAC,IAAEG;AAAA,IAAC,EAAC;AAAE,WAAM,EAAC,KAAIC,IAAE,IAAIJ,IAAE;AAAC,YAAMK,KAAED,IAAG,KAAK,IAAI;AAAE,MAAAG,IAAG,KAAK,MAAKP,EAAC,GAAE,KAAK,cAAcG,IAAEE,IAAEN,EAAC;AAAA,IAAC,GAAE,cAAa,MAAG,YAAW,KAAE;AAAA,EAAC;AAAA,EAAC,OAAO,mBAAmBI,IAAE;AAAC,WAAO,KAAK,kBAAkB,IAAIA,EAAC,KAAG;AAAA,EAAC;AAAA,EAAC,OAAO,OAAM;AAAC,QAAG,KAAK,eAAe,EAAE,mBAAmB,CAAC,EAAE;AAAO,UAAMA,KAAED,GAAE,IAAI;AAAE,IAAAC,GAAE,SAAQ,GAAG,WAASA,GAAE,MAAI,KAAK,IAAE,CAAC,GAAGA,GAAE,CAAC,IAAG,KAAK,oBAAkB,IAAI,IAAIA,GAAE,iBAAiB;AAAA,EAAC;AAAA,EAAC,OAAO,WAAU;AAAC,QAAG,KAAK,eAAe,EAAE,WAAW,CAAC,EAAE;AAAO,QAAG,KAAK,YAAU,MAAG,KAAK,KAAI,GAAG,KAAK,eAAe,EAAE,YAAY,CAAC,GAAE;AAAC,YAAMA,KAAE,KAAK,YAAWH,KAAE,CAAC,GAAG,EAAEG,EAAC,GAAE,GAAGG,IAAEH,EAAC,CAAC;AAAE,iBAAUJ,MAAKC,GAAE,MAAK,eAAeD,IAAEI,GAAEJ,EAAC,CAAC;AAAA,IAAC;AAAC,UAAMI,KAAE,KAAK,OAAO,QAAQ;AAAE,QAAG,SAAOA,IAAE;AAAC,YAAMH,KAAE,oBAAoB,IAAIG,EAAC;AAAE,UAAG,WAASH,GAAE,YAAS,CAACG,IAAEJ,EAAC,KAAIC,GAAE,MAAK,kBAAkB,IAAIG,IAAEJ,EAAC;AAAA,IAAC;AAAC,SAAK,OAAK,oBAAI;AAAI,eAAS,CAACI,IAAEH,EAAC,KAAI,KAAK,mBAAkB;AAAC,YAAMD,KAAE,KAAK,KAAKI,IAAEH,EAAC;AAAE,iBAASD,MAAG,KAAK,KAAK,IAAIA,IAAEI,EAAC;AAAA,IAAC;AAAC,SAAK,gBAAc,KAAK,eAAe,KAAK,MAAM;AAAA,EAAC;AAAA,EAAC,OAAO,eAAeH,IAAE;AAAC,UAAMD,KAAE,CAAA;AAAG,QAAG,MAAM,QAAQC,EAAC,GAAE;AAAC,YAAMI,KAAE,IAAI,IAAIJ,GAAE,KAAK,IAAE,CAAC,EAAE,QAAO,CAAE;AAAE,iBAAUA,MAAKI,GAAE,CAAAL,GAAE,QAAQI,IAAEH,EAAC,CAAC;AAAA,IAAC,MAAM,YAASA,MAAGD,GAAE,KAAKI,IAAEH,EAAC,CAAC;AAAE,WAAOD;AAAA,EAAC;AAAA,EAAC,OAAO,KAAKI,IAAEH,IAAE;AAAC,UAAMD,KAAEC,GAAE;AAAU,WAAM,UAAKD,KAAE,SAAO,YAAU,OAAOA,KAAEA,KAAE,YAAU,OAAOI,KAAEA,GAAE,YAAW,IAAG;AAAA,EAAM;AAAA,EAAC,cAAa;AAAC,UAAK,GAAG,KAAK,OAAK,QAAO,KAAK,kBAAgB,OAAG,KAAK,aAAW,OAAG,KAAK,OAAK,MAAK,KAAK,KAAI;AAAA,EAAE;AAAA,EAAC,OAAM;AAAC,SAAK,OAAK,IAAI,SAAS,CAAAA,OAAG,KAAK,iBAAeA,GAAC,GAAG,KAAK,OAAK,oBAAI,OAAI,KAAK,KAAI,GAAG,KAAK,cAAa,GAAG,KAAK,YAAY,GAAG,SAAS,CAAAA,OAAGA,GAAE,IAAI,EAAC;AAAA,EAAE;AAAA,EAAC,cAAcA,IAAE;AAAC,KAAC,KAAK,SAAL,KAAK,OAAO,oBAAI,QAAK,IAAIA,EAAC,GAAE,WAAS,KAAK,cAAY,KAAK,eAAaA,GAAE,gBAAa;AAAA,EAAI;AAAA,EAAC,iBAAiBA,IAAE;AAAC,SAAK,MAAM,OAAOA,EAAC;AAAA,EAAC;AAAA,EAAC,OAAM;AAAC,UAAMA,KAAE,oBAAI,OAAIH,KAAE,KAAK,YAAY;AAAkB,eAAUD,MAAKC,GAAE,KAAI,EAAG,MAAK,eAAeD,EAAC,MAAII,GAAE,IAAIJ,IAAE,KAAKA,EAAC,CAAC,GAAE,OAAO,KAAKA,EAAC;AAAG,IAAAI,GAAE,OAAK,MAAI,KAAK,OAAKA;AAAA,EAAE;AAAA,EAAC,mBAAkB;AAAC,UAAMA,KAAE,KAAK,cAAY,KAAK,aAAa,KAAK,YAAY,iBAAiB;AAAE,WAAOH,EAAEG,IAAE,KAAK,YAAY,aAAa,GAAEA;AAAA,EAAC;AAAA,EAAC,oBAAmB;AAAC,SAAK,eAAL,KAAK,aAAa,KAAK,iBAAgB,IAAG,KAAK,eAAe,IAAE,GAAE,KAAK,MAAM,SAAS,CAAAA,OAAGA,GAAE,gBAAa,EAAI;AAAA,EAAE;AAAA,EAAC,eAAeA,IAAE;AAAA,EAAC;AAAA,EAAC,uBAAsB;AAAC,SAAK,MAAM,SAAS,CAAAA,OAAGA,GAAE,mBAAgB,EAAI;AAAA,EAAE;AAAA,EAAC,yBAAyBA,IAAEH,IAAED,IAAE;AAAC,SAAK,KAAKI,IAAEJ,EAAC;AAAA,EAAC;AAAA,EAAC,KAAKI,IAAEH,IAAE;AAAC,UAAMD,KAAE,KAAK,YAAY,kBAAkB,IAAII,EAAC,GAAEC,KAAE,KAAK,YAAY,KAAKD,IAAEJ,EAAC;AAAE,QAAG,WAASK,MAAG,SAAKL,GAAE,SAAQ;AAAC,YAAMM,MAAG,WAASN,GAAE,WAAW,cAAYA,GAAE,YAAU,GAAG,YAAYC,IAAED,GAAE,IAAI;AAAE,WAAK,OAAKI,IAAE,QAAME,KAAE,KAAK,gBAAgBD,EAAC,IAAE,KAAK,aAAaA,IAAEC,EAAC,GAAE,KAAK,OAAK;AAAA,IAAI;AAAA,EAAC;AAAA,EAAC,KAAKF,IAAEH,IAAE;AAAC,UAAMD,KAAE,KAAK,aAAYK,KAAEL,GAAE,KAAK,IAAII,EAAC;AAAE,QAAG,WAASC,MAAG,KAAK,SAAOA,IAAE;AAAC,YAAMD,KAAEJ,GAAE,mBAAmBK,EAAC,GAAEC,KAAE,cAAY,OAAOF,GAAE,YAAU,EAAC,eAAcA,GAAE,UAAS,IAAE,WAASA,GAAE,WAAW,gBAAcA,GAAE,YAAU;AAAE,WAAK,OAAKC;AAAE,YAAMG,KAAEF,GAAE,cAAcL,IAAEG,GAAE,IAAI;AAAE,WAAKC,EAAC,IAAEG,MAAG,KAAK,MAAM,IAAIH,EAAC,KAAGG,IAAE,KAAK,OAAK;AAAA,IAAI;AAAA,EAAC;AAAA,EAAC,cAAcJ,IAAEH,IAAED,IAAE;AAAC,QAAG,WAASI,IAAE;AAAC,YAAMC,KAAE,KAAK,aAAYC,KAAE,KAAKF,EAAC;AAAE,UAAGJ,YAAIK,GAAE,mBAAmBD,EAAC,IAAE,GAAGJ,GAAE,cAAY,GAAGM,IAAEL,EAAC,KAAGD,GAAE,cAAYA,GAAE,WAASM,OAAI,KAAK,MAAM,IAAIF,EAAC,KAAG,CAAC,KAAK,aAAaC,GAAE,KAAKD,IAAEJ,EAAC,CAAC,GAAG;AAAO,WAAK,EAAEI,IAAEH,IAAED,EAAC;AAAA,IAAC;AAAC,cAAK,KAAK,oBAAkB,KAAK,OAAK,KAAK,KAAI;AAAA,EAAG;AAAA,EAAC,EAAEI,IAAEH,IAAE,EAAC,YAAWD,IAAE,SAAQK,IAAE,SAAQC,GAAC,GAAEE,IAAE;AAAC,IAAAR,MAAG,EAAE,KAAK,SAAL,KAAK,OAAO,oBAAI,QAAK,IAAII,EAAC,MAAI,KAAK,KAAK,IAAIA,IAAEI,MAAGP,MAAG,KAAKG,EAAC,CAAC,GAAE,SAAKE,MAAG,WAASE,QAAK,KAAK,KAAK,IAAIJ,EAAC,MAAI,KAAK,cAAYJ,OAAIC,KAAE,SAAQ,KAAK,KAAK,IAAIG,IAAEH,EAAC,IAAG,SAAKI,MAAG,KAAK,SAAOD,OAAI,KAAK,SAAL,KAAK,OAAO,oBAAI,QAAK,IAAIA,EAAC;AAAA,EAAE;AAAA,EAAC,MAAM,OAAM;AAAC,SAAK,kBAAgB;AAAG,QAAG;AAAC,YAAM,KAAK;AAAA,IAAI,SAAOA,IAAE;AAAC,cAAQ,OAAOA,EAAC;AAAA,IAAC;AAAC,UAAMA,KAAE,KAAK,eAAc;AAAG,WAAO,QAAMA,MAAG,MAAMA,IAAE,CAAC,KAAK;AAAA,EAAe;AAAA,EAAC,iBAAgB;AAAC,WAAO,KAAK,cAAa;AAAA,EAAE;AAAA,EAAC,gBAAe;AAAC,QAAG,CAAC,KAAK,gBAAgB;AAAO,QAAG,CAAC,KAAK,YAAW;AAAC,UAAG,KAAK,eAAL,KAAK,aAAa,KAAK,iBAAgB,IAAG,KAAK,MAAK;AAAC,mBAAS,CAACA,IAAEH,EAAC,KAAI,KAAK,KAAK,MAAKG,EAAC,IAAEH;AAAE,aAAK,OAAK;AAAA,MAAM;AAAC,YAAMG,KAAE,KAAK,YAAY;AAAkB,UAAGA,GAAE,OAAK,EAAE,YAAS,CAACH,IAAED,EAAC,KAAII,IAAE;AAAC,cAAK,EAAC,SAAQA,GAAC,IAAEJ,IAAEK,KAAE,KAAKJ,EAAC;AAAE,iBAAKG,MAAG,KAAK,KAAK,IAAIH,EAAC,KAAG,WAASI,MAAG,KAAK,EAAEJ,IAAE,QAAOD,IAAEK,EAAC;AAAA,MAAC;AAAA,IAAC;AAAC,QAAID,KAAE;AAAG,UAAMH,KAAE,KAAK;AAAK,QAAG;AAAC,MAAAG,KAAE,KAAK,aAAaH,EAAC,GAAEG,MAAG,KAAK,WAAWH,EAAC,GAAE,KAAK,MAAM,SAAS,CAAAG,OAAGA,GAAE,aAAU,KAAO,KAAK,OAAOH,EAAC,KAAG,KAAK,KAAI;AAAA,IAAE,SAAOA,IAAE;AAAC,YAAMG,KAAE,OAAG,KAAK,KAAI,GAAGH;AAAA,IAAC;AAAC,IAAAG,MAAG,KAAK,KAAKH,EAAC;AAAA,EAAC;AAAA,EAAC,WAAWG,IAAE;AAAA,EAAC;AAAA,EAAC,KAAKA,IAAE;AAAC,SAAK,MAAM,SAAS,CAAAA,OAAGA,GAAE,cAAW,EAAI,GAAG,KAAK,eAAa,KAAK,aAAW,MAAG,KAAK,aAAaA,EAAC,IAAG,KAAK,QAAQA,EAAC;AAAA,EAAC;AAAA,EAAC,OAAM;AAAC,SAAK,OAAK,oBAAI,OAAI,KAAK,kBAAgB;AAAA,EAAE;AAAA,EAAC,IAAI,iBAAgB;AAAC,WAAO,KAAK,kBAAiB;AAAA,EAAE;AAAA,EAAC,oBAAmB;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,aAAaA,IAAE;AAAC,WAAM;AAAA,EAAE;AAAA,EAAC,OAAOA,IAAE;AAAC,SAAK,SAAL,KAAK,OAAO,KAAK,KAAK,SAAS,CAAAA,OAAG,KAAK,KAAKA,IAAE,KAAKA,EAAC,CAAC,EAAC,IAAG,KAAK,KAAI;AAAA,EAAE;AAAA,EAAC,QAAQA,IAAE;AAAA,EAAC;AAAA,EAAC,aAAaA,IAAE;AAAA,EAAC;AAAC;AAAC,EAAE,gBAAc,CAAA,GAAG,EAAE,oBAAkB,EAAC,MAAK,OAAM,GAAE,EAAE,EAAE,mBAAmB,CAAC,IAAE,oBAAI,OAAI,EAAE,EAAE,WAAW,CAAC,IAAE,oBAAI,OAAI,IAAI,EAAC,iBAAgB,EAAC,CAAC,IAAG,EAAE,4BAAF,EAAE,0BAA0B,CAAA,IAAI,KAAK,OAAO;ACJ7xL;AAAA;AAAA;AAAA;AAAA;AAIG,MAAM,IAAE;AAAW,MAAMJ,WAAUI,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,gBAAc,EAAC,MAAK,KAAI,GAAE,KAAK,OAAK;AAAA,EAAM;AAAA,EAAC,mBAAkB;AZL5I;AYK6I,UAAMA,KAAE,MAAM,iBAAgB;AAAG,YAAO,UAAK,eAAc,iBAAnB,GAAmB,eAAeA,GAAE,aAAWA;AAAA,EAAC;AAAA,EAAC,OAAOA,IAAE;AAAC,UAAMI,KAAE,KAAK,OAAM;AAAG,SAAK,eAAa,KAAK,cAAc,cAAY,KAAK,cAAa,MAAM,OAAOJ,EAAC,GAAE,KAAK,OAAKC,EAAEG,IAAE,KAAK,YAAW,KAAK,aAAa;AAAA,EAAC;AAAA,EAAC,oBAAmB;AAAC,UAAM,kBAAiB,GAAG,KAAK,MAAM,aAAa,IAAE;AAAA,EAAC;AAAA,EAAC,uBAAsB;AAAC,UAAM,qBAAoB,GAAG,KAAK,MAAM,aAAa,KAAE;AAAA,EAAC;AAAA,EAAC,SAAQ;AAAC,WAAOA;AAAAA,EAAC;AAAC;AAACR,GAAE,gBAAc,MAAGA,GAAE,WAAW,IAAE,MAAG,EAAE,2BAA2B,EAAC,YAAWA,GAAC,CAAC;AAAE,MAAMO,MAAE,EAAE;AAA0BA,MAAI,EAAC,YAAWP,GAAC,CAAC;AAAA,CAAwD,EAAE,uBAAF,EAAE,qBAAqB,KAAI,KAAK,OAAO;;ACKxxB,MAAM,QAAN,MAAM,cAAamB,GAAW;AAAA,EACnC,WAAW,aAAa;AACtB,WAAO;AAAA,MACL,MAAM,EAAE,MAAM,QAAQ,SAAS,KAAA;AAAA,MAC/B,OAAO,EAAE,MAAM,QAAQ,OAAO,KAAA;AAAA,IAAK;AAAA,EAEvC;AAAA,EAOA,cAAc;AACZ,UAAA;AACA,SAAK,OAAO;AACZ,SAAK,QAAQ;AACb,SAAK,mBAAmB,gBAAgB;AAGxC,SAAK,gBAAgB;AAAA,MACnB,kBAAkB,MAAM;AACtB,gBAAQ,IAAI,4CAA4C;AACxD,aAAK,mBAAmB,gBAAgB;AACxC,aAAK,yBAAA;AACL,aAAK,UAAA;AACL,aAAK,cAAA;AAAA,MACP;AAAA,IAAA;AAAA,EAEJ;AAAA,EAIA,oBAAoB;AAClB,UAAM,kBAAA;AACN,SAAK,mBAAmB,gBAAgB;AACxC,SAAK,yBAAA;AACL,SAAK,UAAA;AAGL,WAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA;AAIrB,WAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA;AAAA,EAKvB;AAAA,EAEA,uBAAuB;AACrB,UAAM,qBAAA;AACN,WAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA;AAErB,WAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA;AAAA,EAEvB;AAAA,EAEA,QAAQ,mBAAyC;AAC/C,UAAM,QAAQ,iBAAiB;AAE/B,QAAI,kBAAkB,IAAI,MAAM,GAAG;AACjC,WAAK,UAAA;AAAA,IACP;AAAA,EACF;AAAA,EAEA,2BAA2B;AACzB,UAAM,OAAO,KAAK,oBAAoB,gBAAgB;AAEtD,UAAM,SAAS,QAAQ,IAAI,cAAc,MAAM,MAAM,EAAE,OAAO,OAAO;AACrE,UAAM,cAAc,MAAM,CAAC,KAAK;AAEhC,QAAI,gBAAgB,MAAM;AACxB,WAAK,aAAa,iBAAiB,IAAI;AACvC;AAAA,IACF;AAEA,QAAI,gBAAgB,MAAM;AAExB,YAAM,UACJ,MAAM,SAAS,MAAM,KAAK,MAAM,SAAS,IAAI,KAAK,MAAM,SAAS,IAAI;AACvE,YAAM,UACJ,MAAM,SAAS,MAAM,KACrB,MAAM,SAAS,IAAI,KACnB,MAAM,SAAS,IAAI,KACnB,MAAM,SAAS,IAAI;AAErB,UAAI,QAAS,MAAK,aAAa,iBAAiB,SAAS;AAAA,eAChD,QAAS,MAAK,aAAa,iBAAiB,SAAS;AAAA,UACzD,MAAK,aAAa,iBAAiB,IAAI;AAC5C;AAAA,IACF;AAEA,SAAK,gBAAgB,eAAe;AAAA,EACtC;AAAA,EAEA,YAAY;AACV,QAAI,CAAC,KAAK,MAAM;AACd,WAAK,QAAQ;AACb,WAAK,yBAAA;AACL,WAAK,cAAA;AACL;AAAA,IACF;AAEA,QAAI;AACF,YAAM,iBAAiB,QAAQ,KAAK,IAAI;AACxC,WAAK,QAAQ,kBAAkB,KAAK;AAAA,IACtC,SAAS,OAAO;AACd,cAAQ,MAAM,gCAAgC,KAAK,MAAM,KAAK;AAC9D,WAAK,QAAQ,KAAK;AAAA,IACpB;AACA,SAAK,yBAAA;AACL,SAAK,cAAA;AAAA,EACP;AAAA,EAEA,SAAS;AACP,WAAOC,UAAa,KAAK,SAAS,KAAK,IAAI;AAAA,EAC7C;AACF;AAhGE,MAAO,SAASC,IAAUC,QAAM;AA/B3B,IAAM,OAAN;AAiIP,eAAe,OAAO,WAAW,IAAI;;ACpI9B,MAAM,UAAN,MAAM,gBAAeH,GAAW;AAAA,EAwBrC,cAAc;AACZ,UAAA;AACA,SAAK,UAAU;AACf,SAAK,YAAY;AACjB,SAAK,WAAW;AAChB,SAAK,QAAQ;AACb,SAAK,WAAW;AAChB,SAAK,OAAO;AACZ,SAAK,OAAO;AACZ,SAAK,WAAW;AAAA,EAClB;AAAA,EAIA,oBAAoB;AAClB,UAAM,kBAAA;AAAA,EACR;AAAA,EAEA,SAAS;AACP,UAAM,eAAe,KAAK;AAE1B,WAAOC;AAAAA;AAAAA,mBAEQ,KAAK,OAAO;AAAA,qBACV,KAAK,SAAS;AAAA,oBACf,KAAK,QAAQ;AAAA,iBAChB,KAAK,YAAY;AAAA;AAAA,UAExB,eACEA,mBAAsB,KAAK,IAAI,gBAC/BA,gBAAmB;AAAA;AAAA;AAAA,EAG7B;AAAA,EAEQ,aAAaf,IAAU;AAE7B,QAAI,KAAK,UAAU;AACjB,MAAAA,GAAE,eAAA;AACF,MAAAA,GAAE,gBAAA;AACF;AAAA,IACF;AAGA,QAAI,KAAK,MAAM;AACb,MAAAA,GAAE,eAAA;AACF,MAAAA,GAAE,gBAAA;AACF,UAAI,KAAK,OAAO;AACd,eAAO,KAAK,KAAK,MAAM,UAAU,qBAAqB;AAAA,MACxD,OAAO;AACL,eAAO,SAAS,OAAO,KAAK;AAAA,MAC9B;AACA;AAAA,IACF;AAAA,EAKF;AACF;AAlFE,QAAO,aAAa;AAAA,EAClB,SAAS,EAAE,MAAM,SAAS,SAAS,KAAA;AAAA,EACnC,WAAW,EAAE,MAAM,SAAS,SAAS,KAAA;AAAA,EACrC,UAAU,EAAE,MAAM,SAAS,SAAS,KAAA;AAAA,EACpC,OAAO,EAAE,MAAM,SAAS,SAAS,KAAA;AAAA,EACjC,UAAU,EAAE,MAAM,OAAA;AAAA,EAClB,MAAM,EAAE,MAAM,OAAA;AAAA,EACd,MAAM,EAAE,MAAM,OAAA;AAAA,EACd,UAAU,EAAE,MAAM,SAAS,OAAO,KAAA;AAAK;AA2BzC,QAAO,SAASgB,IAAUC,QAAM;AApC3B,IAAM,SAAN;AAqFP,eAAe,OAAO,aAAa,MAAM;;AC5ElC,MAAM,UAAN,MAAM,gBAAeH,GAAW;AAAA,EAAhC,cAAA;AAAA,UAAA,GAAA,SAAA;AAcL,SAAA,OAAe;AACf,SAAA,SAAiB;AACjB,SAAA,OAAe;AACf,SAAA,SAAiB;AACjB,SAAA,UAAkB;AAClB,SAAA,WAAmB;AACnB,SAAA,aAAqB;AACrB,SAAA,UAAkB;AAClB,SAAA,UAAkB;AAClB,SAAA,eAAwB;AAExB,SAAQ,eAAe,MAAM,KAAK,cAAA;AAAA,EAAc;AAAA,EAEhD,oBAAoB;AAClB,UAAM,kBAAA;AAEN,WAAO,iBAAiB,uBAAuB,KAAK,YAAY;AAChE,WAAO,iBAAiB,oBAAoB,KAAK,YAAY;AAAA,EAC/D;AAAA,EAEA,uBAAuB;AACrB,UAAM,qBAAA;AACN,WAAO,oBAAoB,uBAAuB,KAAK,YAAY;AACnE,WAAO,oBAAoB,oBAAoB,KAAK,YAAY;AAAA,EAClE;AAAA,EAIQ,iBAAiB;AACvB,QAAI,KAAK,SAAS;AAChB,WAAK,eAAe,CAAC,KAAK;AAAA,IAC5B;AAAA,EACF;AAAA,EAEQ,iBAAyB;AAE/B,QAAI,KAAK,QAAQ,KAAK,SAAS,YAAY,KAAK;AAGhD,QAAI,KAAK,QAAQ;AACf,UAAI;AACF,cAAM,UAAU,KAAK,UACjB,QAAQ,KAAK,OAAO,KAAK,KAAK,UAC9B;AACJ,cAAM,WAAW,KAAK,WAClB,QAAQ,KAAK,QAAQ,KAAK,KAAK,WAC/B;AACJ,cAAM,kBAAkB,KAAK,aACzB,QAAQ,KAAK,UAAU,KAAK,KAAK,aACjC;AAEJ,cAAM,OAAO,GAAG,QAAQ;AAAA;AAAA;AAAA,EAAS,eAAe,IAAI,KAAK,WAAW,EAAE;AAEtE,eAAO,UAAU,KAAK,MAAM,YAAY,mBAAmB,OAAO,CAAC,SAAS,mBAAmB,IAAI,CAAC;AAAA,MACtG,SAAS,OAAO;AAEd,eAAO,UAAU,KAAK,MAAM,qFAAqF,KAAK,WAAW,EAAE;AAAA,MACrI;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,SAAS;AACP,UAAM,aAAa,KAAK,eAAA;AAExB,WAAOC;AAAAA,yCAC8B,KAAK,cAAc;AAAA,UAClD,KAAK,gBAAgB,KAAK,UACxBA,kBAAqB,KAAK,OAAO,gBACjCA,kBAAqB,KAAK,IAAI,0BAA0B;AAAA;AAAA,QAE5D,KAAK,SACHA;AAAAA;AAAAA,wBAEc,UAAU;AAAA,gCACF,KAAK,MAAM;AAAA;AAAA;AAAA,cAIjC,EAAE;AAAA;AAAA,EAEV;AACF;AAhGE,QAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,OAAA;AAAA,EACd,QAAQ,EAAE,MAAM,OAAA;AAAA,EAChB,MAAM,EAAE,MAAM,OAAA;AAAA,EACd,QAAQ,EAAE,MAAM,OAAA;AAAA,EAChB,SAAS,EAAE,MAAM,OAAA;AAAA,EACjB,UAAU,EAAE,MAAM,OAAA;AAAA,EAClB,YAAY,EAAE,MAAM,QAAQ,WAAW,cAAA;AAAA,EACvC,SAAS,EAAE,MAAM,OAAA;AAAA,EACjB,SAAS,EAAE,MAAM,OAAA;AAAA,EACjB,cAAc,EAAE,MAAM,SAAS,OAAO,KAAA;AAAK;AA6B7C,QAAO,SAASC,IAAUC,QAAM;AAxC3B,IAAM,SAAN;AAmGP,eAAe,OAAO,aAAa,MAAM;AC9GlC,MAAM,QAAN,MAAM,cAAaH,GAAW;AAAA,EAenC,cAAc;AACZ,UAAA;AACA,SAAK,UAAU;AACf,SAAK,YAAY;AACjB,SAAK,cAAc;AACnB,SAAK,WAAW;AAChB,SAAK,UAAU;AAAA,EACjB;AAAA,EA8FA,SAAS;AACP,WAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAKT;AACF;AA1HE,MAAO,aAAa;AAAA,EAClB,SAAS,EAAE,MAAM,QAAQ,SAAS,KAAA;AAAA,EAClC,WAAW,EAAE,MAAM,QAAQ,SAAS,KAAA;AAAA,EACpC,aAAa,EAAE,MAAM,SAAS,SAAS,KAAA;AAAA,EACvC,UAAU,EAAE,MAAM,SAAS,SAAS,KAAA;AAAA,EACpC,SAAS,EAAE,MAAM,QAAQ,SAAS,KAAA;AAAK;AAkBzC,MAAO,SAASG;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAxBX,IAAM,OAAN;AA6HP,eAAe,OAAO,WAAW,IAAI;ACjIrC;AAAA;AAAA;AAAA;AAAA;AAIG,MAAM,UAAUf,IAAC;AAAA,EAAC,YAAYR,IAAE;AAAC,QAAG,MAAMA,EAAC,GAAE,KAAK,KAAGI,GAAEJ,GAAE,SAAOC,IAAE,MAAM,OAAM,MAAM,KAAK,YAAY,gBAAc,uCAAuC;AAAA,EAAC;AAAA,EAAC,OAAOO,IAAE;AAAC,QAAGA,OAAIJ,KAAG,QAAMI,GAAE,QAAO,KAAK,KAAG,QAAO,KAAK,KAAGA;AAAE,QAAGA,OAAIR,EAAE,QAAOQ;AAAE,QAAG,YAAU,OAAOA,GAAE,OAAM,MAAM,KAAK,YAAY,gBAAc,mCAAmC;AAAE,QAAGA,OAAI,KAAK,GAAG,QAAO,KAAK;AAAG,SAAK,KAAGA;AAAE,UAAMP,KAAE,CAACO,EAAC;AAAE,WAAOP,GAAE,MAAIA,IAAE,KAAK,KAAG,EAAC,YAAW,KAAK,YAAY,YAAW,SAAQA,IAAE,QAAO,CAAA,EAAE;AAAA,EAAC;AAAC;AAAC,EAAE,gBAAc,cAAa,EAAE,aAAW;AAAE,MAAM,IAAEE,IAAE,CAAC;;ACC5gB,MAAM,mBAA2C;AAAA,EACtD,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AAAA,EACX,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AAAA,EACX,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,UAAU;AAAA,EACV,WAAW;AAAA,EACX,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,SAAS;AAAA,EACT,UAAU;AAAA,EACV,WAAW;AAAA,EACX,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,WAAW;AAAA,EACX,MAAM;AACR;AC9CO,MAAM,QAAN,MAAM,cAAagB,GAAW;AAAA,EAA9B,cAAA;AAAA,UAAA,GAAA,SAAA;AAML,SAAQ,QAAuB;AAC/B,SAAA,UAAuB;AAAA,EAAA;AAAA,EAEvB,IAAI,OAAsB;AACxB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,KAAK,KAAoB;AAC3B,UAAM,SAAS,KAAK;AACpB,SAAK,QAAQ;AACb,SAAK,cAAc,QAAQ,MAAM;AAAA,EACnC;AAAA,EAIA,SAAS;AACP,QAAI,CAAC,KAAK,OAAO;AACf,aAAOC;AAAAA,IACT;AAEA,UAAM,MAAM,iBAAiB,KAAK,MAAM,aAAyB;AACjE,QAAI,KAAK;AACP,aAAOA,IAAOI,EAAW,GAAG,CAAC;AAAA,IAC/B;AAGA,WAAOJ;AAAAA,EACT;AACF;AAjCE,MAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,QAAQ,SAAS,KAAA;AAAA,EAC/B,SAAS,EAAE,MAAM,QAAQ,SAAS,KAAA;AAAK;AAgBzC,MAAO,SAASC,IAAUC,QAAM;AAnB3B,IAAM,OAAN;AAoCP,eAAe,OAAO,WAAW,IAAI;;ACxCrC,MAAM,kBAAkB,CAAC,UAAkB;AACzC,eAAa,QAAQ,eAAe,KAAK;AAC3C;AAEA,MAAM,iBAAiB,MAAc;AACnC,SAAO,aAAa,QAAQ,aAAa,KAAK;AAChD;AAEA,MAAM,mBAAmB,MAAM;AAC7B,QAAM,QAAQ,eAAA;AACd,WAAS,gBAAgB,MAAM,YAAY,kBAAkB,OAAO,KAAK,GAAG;AAC9E;AAGA,MAAM,uBAAuB,CAAC,UAAkB;AAC9C,eAAa,QAAQ,oBAAoB,KAAK;AAChD;AAEA,MAAM,sBAAsB,MAAc;AACxC,SAAO,aAAa,QAAQ,kBAAkB,KAAK;AACrD;AAGA,MAAM,gBAAgB,CAAC,UAAkB;AACvC,eAAa,QAAQ,aAAa,KAAK;AACzC;AAEA,MAAM,eAAe,MAAc;AACjC,SAAO,aAAa,QAAQ,WAAW,KAAK;AAC9C;AAKO,MAAM,SAAN,MAAM,eAAcH,GAAW;AAAA;AAAA,EAEpC,WAAW,aAAa;AACtB,WAAO;AAAA,MACL,MAAM,EAAE,MAAM,OAAA;AAAA,MACd,QAAQ,EAAE,MAAM,MAAA;AAAA,MAChB,cAAc,EAAE,MAAM,QAAQ,OAAO,KAAA;AAAA;AAAA,MACrC,mBAAmB,EAAE,MAAM,SAAS,OAAO,KAAA;AAAA;AAAA,MAC3C,UAAU,EAAE,MAAM,SAAS,OAAO,KAAA;AAAA,MAClC,SAAS,EAAE,MAAM,OAAA;AAAA,IAAO;AAAA,EAE5B;AAAA,EAuBA,cAAc;AACZ,UAAA;AAGA,SAAK,OAAO;AACZ,SAAK,SAAS,CAAA;AACd,SAAK,eAAe;AACpB,SAAK,oBAAoB;AACzB,SAAK,WAAW;AAChB,SAAK,UAAU;AAGf,SAAK,gBAAgB;AAAA,MACnB,oBAAoB,KAAK,yBAAyB,KAAK,IAAI;AAAA,MAC3D,iBAAiB,KAAK,sBAAsB,KAAK,IAAI;AAAA,MACrD,uBAAuB,KAAK,sBAAsB,KAAK,IAAI;AAAA,MAC3D,oBAAoB,KAAK,mBAAmB,KAAK,IAAI;AAAA,MACrD,0BAA0B,KAAK,yBAAyB,KAAK,IAAI;AAAA,MACjE,2BAA2B,KAAK,0BAA0B,KAAK,IAAI;AAAA,IAAA;AAAA,EAEvE;AAAA,EAEA,oBAAoB;AAClB,UAAM,kBAAA;AAGN,WAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA;AAErB,WAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA;AAErB,WAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA;AAErB,WAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA;AAErB,WAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA;AAIrB,SAAK,iBAAA;AAAA,EACP;AAAA,EAEA,MAAM,mBAAmB;AACvB,QAAI,KAAK,SAAS,YAAY;AAE5B,YAAM,qBAAqB,0BAAA;AAC3B,WAAK,SAAS;AACd,WAAK,eAAe,gBAAgB;AAAA,IACtC,WAAW,KAAK,SAAS,SAAS;AAEhC,WAAK,SAAS,CAAC,SAAS,MAAM;AAG9B,YAAM,oBAAoB,aAAa,IAAA;AACvC,WAAK,eAAe;AAAA,IACtB,WAAW,KAAK,SAAS,gBAAgB;AAEvC,WAAK,SAAS;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAIF,YAAM,qBAAqB,eAAA;AAC3B,WAAK,eAAe;AAGpB,uBAAA;AAAA,IACF,WAAW,KAAK,SAAS,sBAAsB;AAE7C,WAAK,SAAS,CAAC,WAAW,OAAO,SAAS;AAG1C,YAAM,oBAAoB,oBAAA;AAC1B,WAAK,eAAe;AAGpB,YAAM,mBAAmB,aAAA;AACzB,WAAK,WAAW,qBAAqB;AAAA,IACvC,WAAW,KAAK,SAAS,cAAc;AAErC,WAAK,SAAS,CAAC,QAAQ,MAAM;AAG7B,YAAM,mBAAmB,aAAA;AACzB,WAAK,eAAe;AAAA,IACtB,WAAW,KAAK,SAAS,aAAa;AAEpC,WAAK,SAAS,CAAC,QAAQ,MAAM;AAG7B,WAAK,eAAe,KAAK,OAAO,CAAC;AAAA,IACnC;AAGA,SAAK,cAAA;AAAA,EACP;AAAA,EAEA,yBAAyB;AAEvB,UAAM,aAAa,aAAa,QAAQ,OAAO;AAC/C,QAAI,CAAC,YAAY;AACf,YAAM,cAAc,OAAO;AAAA,QACzB;AAAA,MAAA,EACA;AACF,YAAM,eAAe,cAAc,SAAS;AAC5C,mBAAa,QAAQ,SAAS,YAAY;AAC1C,eAAS,gBAAgB,UAAU,IAAI,GAAG,YAAY,QAAQ;AAAA,IAChE;AAAA,EACF;AAAA,EAEA,yBAAyB,MAAc,UAAkB,UAAkB;AACzE,UAAM,yBAAyB,MAAM,UAAU,QAAQ;AAEvD,QAAI,SAAS,UAAU,aAAa,UAAU;AAE5C,WAAK,iBAAA;AAAA,IACP;AAAA,EACF;AAAA,EAEA,MAAM,oBAAoB;AACxB,QAAI,KAAK,SAAS,YAAY;AAE5B,YAAM,cAAc,gBAAgB;AACpC,WAAK,eAAe;AAAA,IACtB,WAAW,KAAK,SAAS,SAAS;AAEhC,YAAM,oBAAoB,aAAa,IAAA;AACvC,WAAK,eAAe;AAAA,IACtB,WAAW,KAAK,SAAS,gBAAgB;AAEvC,YAAM,qBAAqB,eAAA;AAC3B,WAAK,eAAe;AAGpB,uBAAA;AAAA,IACF,WAAW,KAAK,SAAS,sBAAsB;AAE7C,YAAM,oBAAoB,oBAAA;AAC1B,WAAK,eAAe;AAGpB,YAAM,mBAAmB,aAAA;AACzB,WAAK,WAAW,qBAAqB;AAAA,IACvC,WAAW,KAAK,SAAS,cAAc;AAErC,YAAM,mBAAmB,aAAA;AACzB,WAAK,eAAe;AAAA,IACtB,WAAW,KAAK,SAAS,aAAa;AAEpC,YAAM,mBAAmB,aAAA;AACzB,WAAK,eAAe;AAAA,IACtB;AAEA,SAAK,cAAA;AAAA,EACP;AAAA,EAEA,wBAAwB;AAEtB,SAAK,kBAAA;AAAA,EACP;AAAA,EAEA,uBAAuB;AACrB,UAAM,qBAAA;AAGN,WAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA;AAErB,WAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA;AAErB,WAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA;AAErB,WAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA;AAErB,WAAO;AAAA,MACL;AAAA,MACA,KAAK,cAAc;AAAA,IAAA;AAAA,EAEvB;AAAA,EAEA,kBAAkBd,IAAU;AAC1B,IAAAA,GAAE,eAAA;AACF,IAAAA,GAAE,gBAAA;AAGF,QAAI,KAAK,UAAU;AACjB;AAAA,IACF;AAEA,QAAI,KAAK,SAAS,YAAY;AAE5B,YAAM,eAAe,KAAK,OAAO,QAAQ,KAAK,YAAY;AAC1D,YAAM,aAAa,eAAe,KAAK,KAAK,OAAO;AACnD,YAAM,cAAc,KAAK,OAAO,SAAS;AAGzC,WAAK,eAAe;AAGpB,UAAK,SAAiB,qBAAqB;AACxC,iBAAiB,oBAAoB,MAAM;AAC1C,sBAAY,WAA2B;AAAA,QACzC,CAAC;AAAA,MACH,OAAO;AACL,oBAAY,WAA2B;AAAA,MACzC;AAGA,sBAAgB,EAAE,UAAU,aAA6B;AAGzD,aAAO;AAAA,QACL,IAAI,YAAY,oBAAoB;AAAA,UAClC,QAAQ,EAAE,UAAU,YAAA;AAAA,QAAY,CACjC;AAAA,MAAA;AAAA,IAEL,WAAW,KAAK,SAAS,SAAS;AAEhC,YAAM,eAAe,KAAK,OAAO,QAAQ,KAAK,YAAY;AAC1D,YAAM,aAAa,eAAe,KAAK,KAAK,OAAO;AACnD,YAAM,WAAW,KAAK,OAAO,SAAS;AAGtC,WAAK,eAAe;AAGpB,eAAS,QAAqB;AAG9B,sBAAgB,EAAE,OAAO,UAAuB;AAAA,IAGlD,WAAW,KAAK,SAAS,gBAAgB;AAEvC,YAAM,eAAe,KAAK,OAAO,QAAQ,KAAK,YAAY;AAC1D,YAAM,aAAa,eAAe,KAAK,KAAK,OAAO;AACnD,YAAM,WAAW,KAAK,OAAO,SAAS;AAGtC,WAAK,eAAe;AAGpB,sBAAgB,QAAQ;AAGxB,uBAAA;AAGA,sBAAgB,EAAE,aAAa,UAAU;AAGzC,aAAO;AAAA,QACL,IAAI,YAAY,wBAAwB;AAAA,UACtC,QAAQ,EAAE,OAAO,SAAA;AAAA,QAAS,CAC3B;AAAA,MAAA;AAAA,IAEL,WAAW,KAAK,SAAS,sBAAsB;AAE7C,YAAM,eAAe,KAAK,OAAO,QAAQ,KAAK,YAAY;AAC1D,YAAM,aAAa,eAAe,KAAK,KAAK,OAAO;AACnD,YAAM,WAAW,KAAK,OAAO,SAAS;AAGtC,WAAK,eAAe;AAGpB,2BAAqB,QAAQ;AAG7B,sBAAgB,EAAE,kBAAkB,UAAU;AAG9C,aAAO;AAAA,QACL,IAAI,YAAY,8BAA8B;AAAA,UAC5C,QAAQ,EAAE,OAAO,SAAA;AAAA,QAAS,CAC3B;AAAA,MAAA;AAAA,IAEL,WAAW,KAAK,SAAS,cAAc;AAErC,YAAM,eAAe,KAAK,OAAO,QAAQ,KAAK,YAAY;AAC1D,YAAM,aAAa,eAAe,KAAK,KAAK,OAAO;AACnD,YAAM,cAAc,KAAK,OAAO,SAAS;AAGzC,WAAK,eAAe;AAGpB,oBAAc,WAAW;AAGzB,sBAAgB,EAAE,WAAW,aAAa;AAG1C,aAAO;AAAA,QACL,IAAI,YAAY,sBAAsB;AAAA,UACpC,QAAQ,EAAE,UAAU,YAAA;AAAA,QAAY,CACjC;AAAA,MAAA;AAAA,IAEL,WAAW,KAAK,SAAS,aAAa;AAEpC,YAAM,eAAe,KAAK,OAAO,QAAQ,KAAK,YAAY;AAC1D,YAAM,aAAa,eAAe,KAAK,KAAK,OAAO;AACnD,YAAM,mBAAmB,KAAK,OAAO,SAAS;AAG9C,WAAK,eAAe;AAGpB,oBAAc,gBAAgB;AAG9B,sBAAgB,EAAE,WAAW,kBAAkB;AAG/C,aAAO;AAAA,QACL,IAAI,YAAY,sBAAsB;AAAA,UACpC,QAAQ,EAAE,UAAU,iBAAA;AAAA,QAAiB,CACtC;AAAA,MAAA;AAAA,IAEL;AAGA,SAAK,cAAA;AAAA,EACP;AAAA,EAEA,gBAAgB,OAA6B;AAC3C,QAAI,KAAK,SAAS,YAAY;AAC5B,aAAO,uBAAuB,OAAO;AAAA,QACnC,QAAQ,gBAAgB;AAAA,MAAA,CACzB;AAAA,IACH,WAAW,KAAK,SAAS,SAAS;AAEhC,UAAI,KAAK,mBAAmB;AAC1B,cAAM,iBAAiB,UAAU,KAAK;AACtC,YAAI,kBAAkB,mBAAmB,OAAO;AAC9C,iBAAO;AAAA,QACT;AAAA,MACF;AAGA,aAAO;AAAA,IACT,WAAW,KAAK,SAAS,gBAAgB;AAEvC,aAAO,KAAK,aAAa,KAAK;AAAA,IAChC,WAAW,KAAK,SAAS,sBAAsB;AAE7C,aAAO,KAAK,kBAAkB,KAAK;AAAA,IACrC,WAAW,KAAK,SAAS,cAAc;AAErC,UAAI,KAAK,mBAAmB;AAC1B,cAAM,iBAAiB,UAAU,UAAU,SAAS,SAAS,MAAM;AACnE,YACE,kBACA,oBAAoB,UAAU,SAAS,SAAS,SAChD;AACA,iBAAO;AAAA,QACT;AAAA,MACF;AACA,aAAO;AAAA,IACT,WAAW,KAAK,SAAS,aAAa;AAEpC,UAAI,UAAU,QAAQ;AACpB,eAAOe;AAAAA,MACT,WAAW,UAAU,QAAQ;AAC3B,eAAOA;AAAAA,MACT;AACA,aAAOA,UAAa,KAAK;AAAA,IAC3B;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,YAAY,UAA0B;AAEpC,UAAM,WAAsC;AAAA,MAC1C,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,UAAU;AAAA,IAAA;AAGZ,WAAO,SAAS,QAAQ,KAAK,SAAS,QAAQ,MAAM,EAAE,EAAE,QAAQ,KAAK,GAAG;AAAA,EAC1E;AAAA,EAEA,aAAa,UAA0B;AAErC,UAAM,WAAsC;AAAA,MAC1C,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,UAAU;AAAA,IAAA;AAGZ,UAAM,kBAAkB,SAAS,QAAQ;AACzC,QAAI,mBAAmB,KAAK,mBAAmB;AAC7C,YAAM,iBAAiB,UAAU,eAAe;AAChD,UAAI,kBAAkB,mBAAmB,iBAAiB;AACxD,eAAO;AAAA,MACT;AAAA,IACF;AAGA,WAAO,SAAS,QAAQ,MAAM,EAAE,EAAE,QAAQ,KAAK,GAAG;AAAA,EACpD;AAAA,EAEA,kBAAkB,OAAe;AAC/B,QAAI,UAAU,QAAQ;AACpB,aAAOA;AAAAA,IACT,WAAW,UAAU,QAAQ;AAC3B,aAAOA;AAAAA,IACT,WAAW,UAAU,WAAW;AAC9B,aAAOA;AAAAA,IACT,WAAW,UAAU,OAAO;AAC1B,aAAOA;AAAAA,IACT,WAAW,UAAU,WAAW;AAC9B,aAAOA;AAAAA,IACT;AACA,WAAOA,UAAa,KAAK;AAAA,EAC3B;AAAA,EAEA,SAAS;AACP,WAAOA;AAAAA;AAAAA;AAAAA,oBAGS,KAAK,SAAS,iBACpB,YACA,KAAK,YACJ,KAAK,SAAS,cAAc,KAAK,SAAS,UACvC,cACA,UAAU;AAAA,sBACN,KAAK,QAAQ;AAAA,mBAChB,KAAK,iBAAiB;AAAA;AAAA,YAE7B,KAAK,SAAS,wBAAwB,KAAK,SAAS,cAClDA;AAAAA;AAAAA,mBAEK,KAAK,gBAAgB,KAAK,YAAY,CAAC;AAAA,mBAE5C,KAAK,SAAS,aACZA;AAAAA,yBACS,KAAK,gBAAgB,KAAK,YAAY,CAAC;AAAA,+BAEhD,KAAK,SAAS,UACZA;AAAAA,2BACS,KAAK,iBAAiB,UAAU,UAAU,MAAM;AAAA,iCAEzD,KAAK,SAAS,iBACZA;AAAAA,6BACS,KAAK,YAAY,KAAK,YAAY,CAAC;AAAA,mCAE5C,KAAK,SAAS,eACZA;AAAAA,+BACS,KAAK,iBAAiB,SAAS,SAAS,MAAM;AAAA,qCAEvDA;AAAAA,+BACS,KAAK,gBAAgB,KAAK,YAAY,CAAC;AAAA,kCACpC;AAAA;AAAA;AAAA;AAAA,EAIhC;AAAA,EAEA,MAAc,sBAAqC;AACjD,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,UAAI,KAAK,mBAAmB;AAC1B,gBAAA;AACA;AAAA,MACF;AAEA,YAAM,2BAA2B,MAAM;AACrC,aAAK,oBAAoB;AACzB,gBAAA;AAAA,MACF;AAEA,aAAO,iBAAiB,uBAAuB,0BAA0B;AAAA,QACvE,MAAM;AAAA,MAAA,CACP;AAGD,iBAAW,MAAM;AACf,aAAK,oBAAoB;AACzB,gBAAA;AAAA,MACF,GAAG,GAAI;AAAA,IACT,CAAC;AAAA,EACH;AAAA,EAEQ,2BAA2B;AACjC,SAAK,oBAAoB;AAGzB,QAAI,KAAK,SAAS,YAAY;AAC5B,YAAM,qBAAqB,0BAAA;AAC3B,WAAK,SAAS;AAAA,IAChB;AAEA,SAAK,kBAAA;AAAA,EACP;AAAA,EAEQ,wBAAwB;AAC9B,SAAK,kBAAA;AAAA,EACP;AAAA,EAEQ,qBAAqB;AAC3B,SAAK,kBAAA;AAAA,EACP;AAAA,EAEQ,2BAA2B;AACjC,SAAK,kBAAA;AAAA,EACP;AAAA,EAEQ,4BAA4B;AAClC,SAAK,kBAAA;AAAA,EACP;AACF;AArjBE,OAAO,SAASC,IAAUC,QAAM;AAb3B,IAAM,QAAN;AAokBP,eAAe,OAAO,YAAY,KAAK;;AChnBhC,MAAM,iBAAN,MAAM,uBAAsBH,GAAW;AAAA,EAG5C,SAAS;AACP,UAAM,QAAO,oBAAI,KAAA,GAAO,YAAA;AACxB,WAAOC,UAAa,IAAI;AAAA,EAC1B;AACF;AANE,eAAO,SAASC,IAAUC,QAAM;AAD3B,IAAM,gBAAN;AASP,eAAe,OAAO,WAAW,aAAa;;ACNvC,MAAM,OAAN,MAAM,aAAYH,GAAW;AAAA,EAQlC,cAAc;AACZ,UAAA;AACA,SAAK,OAAO;AAAA,EACd;AAAA,EAIA,SAAS;AACP,WAAOC;AAAAA,EACT;AACF;AAjBE,KAAO,aAAa;AAAA;AAAA,EAElB,MAAM,EAAE,MAAM,QAAQ,SAAS,KAAA;AAAK;AAUtC,KAAO,SAASC,IAAUC,QAAM;AAb3B,IAAM,MAAN;AAoBP,eAAe,OAAO,UAAU,GAAG;;ACxB5B,MAAM,SAAN,MAAM,eAAcH,GAAW;AAAA,EA2DpC,cAAc;AACZ,UAAA;AACA,SAAK,OAAO;AACZ,SAAK,OAAO;AACZ,SAAK,QAAQ;AACb,SAAK,cAAc;AACnB,SAAK,iBAAiB;AACtB,SAAK,QAAQ;AACb,SAAK,YAAY;AACjB,SAAK,WAAW;AAChB,SAAK,WAAW;AAChB,SAAK,WAAW;AAChB,SAAK,YAAY;AACjB,SAAK,eAAe;AACpB,SAAK,UAAU;AACf,SAAK,YAAY;AACjB,SAAK,YAAY;AACjB,SAAK,MAAM;AACX,SAAK,MAAM;AACX,SAAK,OAAO;AACZ,SAAK,UAAU;AACf,SAAK,QAAQ;AACb,SAAK,YAAY;AACjB,SAAK,WAAW;AAAA,EAClB;AAAA,EAIQ,aAAad,IAAgB;AACnC,UAAM,SAASA,GAAE;AACjB,SAAK,QAAQ,OAAO;AACpB,SAAK;AAAA,MACH,IAAI,YAAY,gBAAgB;AAAA,QAC9B,QAAQ,EAAE,OAAO,KAAK,OAAO,MAAM,KAAK,KAAA;AAAA,QACxC,SAAS;AAAA,MAAA,CACV;AAAA,IAAA;AAAA,EAEL;AAAA,EAEQ,eAAqB;AAC3B,SAAK,WAAW;AAChB,SAAK,cAAc,IAAI,YAAY,eAAe,EAAE,SAAS,KAAA,CAAM,CAAC;AAAA,EACtE;AAAA,EAEQ,cAAoB;AAC1B,SAAK,WAAW;AAChB,SAAK,cAAc,IAAI,YAAY,cAAc,EAAE,SAAS,KAAA,CAAM,CAAC;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AACZ,UAAM,QAAQ,KAAK,YAAY,cAAc,OAAO;AACpD,WAAO,MAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAAa;AACX,UAAM,QAAQ,KAAK,YAAY,cAAc,OAAO;AACpD,WAAO,KAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,SAAe;AACb,UAAM,QAAQ,KAAK,YAAY,cAAc,OAAO;AACpD,WAAO,OAAA;AAAA,EACT;AAAA,EAEA,SAAS;AACP,UAAM,WAAW,QAAQ,KAAK,SAAS,KAAK,SAAS;AAErD,WAAOe;AAAAA;AAAAA,UAED,KAAK,SAAS,KAAK,YACjBA;AAAAA;AAAAA,kBAEM,KAAK,YACHA,mBAAsB,KAAK,SAAS,gBACpC,KAAK,KAAK;AAAA;AAAA,gBAGlB,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,oBAKI,KAAK,IAAI;AAAA,oBACT,KAAK,IAAI;AAAA,qBACR,KAAK,KAAK;AAAA,2BACJ,KAAK,WAAW;AAAA,wBACnB,KAAK,QAAQ;AAAA,wBACb,KAAK,QAAQ;AAAA,wBACb,KAAK,QAAQ;AAAA,yBACZ,KAAK,SAAS;AAAA,2BACZ,KAAK,YAAY;AAAA,sBACtB,KAAK,WAAW,EAAE;AAAA,wBAChB,KAAK,aAAa,EAAE;AAAA,wBACpB,KAAK,aAAa,EAAE;AAAA,kBAC1B,KAAK,GAAG;AAAA,kBACR,KAAK,GAAG;AAAA,mBACP,KAAK,IAAI;AAAA,oBACR,WAAW,cAAc,EAAE;AAAA,qBAC1B,KAAK,YAAY;AAAA,qBACjB,KAAK,YAAY;AAAA,oBAClB,KAAK,WAAW;AAAA;AAAA;AAAA;AAAA,UAI1B,WACEA;AAAAA;AAAAA,kBAEM,KAAK,YACHA,mBAAsB,KAAK,SAAS,gBACpC,KAAK,KAAK;AAAA;AAAA,gBAGlB,IAAI;AAAA;AAAA;AAAA,EAGd;AACF;AAvLE,OAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,QAAQ,SAAS,KAAA;AAAA,EAC/B,MAAM,EAAE,MAAM,QAAQ,SAAS,KAAA;AAAA,EAC/B,OAAO,EAAE,MAAM,OAAA;AAAA,EACf,aAAa,EAAE,MAAM,OAAA;AAAA,EACrB,gBAAgB,EAAE,MAAM,QAAQ,WAAW,kBAAA;AAAA,EAC3C,OAAO,EAAE,MAAM,OAAA;AAAA,EACf,WAAW,EAAE,MAAM,QAAQ,WAAW,aAAA;AAAA,EACtC,UAAU,EAAE,MAAM,SAAS,SAAS,KAAA;AAAA,EACpC,UAAU,EAAE,MAAM,SAAS,SAAS,KAAA;AAAA,EACpC,UAAU,EAAE,MAAM,SAAS,SAAS,KAAA;AAAA,EACpC,WAAW,EAAE,MAAM,QAAA;AAAA,EACnB,cAAc,EAAE,MAAM,OAAA;AAAA,EACtB,SAAS,EAAE,MAAM,OAAA;AAAA,EACjB,WAAW,EAAE,MAAM,OAAA;AAAA,EACnB,WAAW,EAAE,MAAM,OAAA;AAAA,EACnB,KAAK,EAAE,MAAM,OAAA;AAAA,EACb,KAAK,EAAE,MAAM,OAAA;AAAA,EACb,MAAM,EAAE,MAAM,OAAA;AAAA,EACd,SAAS,EAAE,MAAM,QAAQ,SAAS,KAAA;AAAA,EAClC,OAAO,EAAE,MAAM,OAAA;AAAA,EACf,WAAW,EAAE,MAAM,QAAQ,WAAW,aAAA;AAAA,EACtC,UAAU,EAAE,MAAM,SAAS,OAAO,KAAA;AAAK;AA8DzC,OAAO,SAASC,IAAUC,QAAM;AArF3B,IAAM,QAAN;AA0LP,eAAe,OAAO,YAAY,KAAK;;AC7LhC,MAAM,WAAN,MAAM,iBAAgBH,GAAW;AAAA,EAwBtC,cAAc;AACZ,UAAA;AACA,SAAK,OAAO;AACZ,SAAK,eAAe;AACpB,SAAK,QAAQ;AACb,SAAK,WAAW;AAEhB,SAAK,sBAAsB;AAAA,MACzB,kBAAkB,MAAM;AACtB,aAAK,UAAA;AAAA,MACP;AAAA,MACA,qBAAqB,MAAM;AACzB,aAAK,UAAA;AAAA,MACP;AAAA,IAAA;AAGF,SAAK,oBAAoB;AAAA,MACvB,aAAa,MAAM;AACjB,aAAK,WAAW;AAChB,aAAK,cAAA;AAAA,MACP;AAAA,MACA,aAAa,MAAM;AACjB,aAAK,WAAW;AAChB,aAAK,cAAA;AAAA,MACP;AAAA,MACA,UAAU,MAAM;AACd,aAAK,WAAW;AAChB,aAAK,cAAA;AAAA,MACP;AAAA,MACA,WAAW,MAAM;AACf,aAAK,WAAW;AAChB,aAAK,cAAA;AAAA,MACP;AAAA,IAAA;AAAA,EAEJ;AAAA,EAIA,oBAA0B;AACxB,UAAM,kBAAA;AACN,SAAK,UAAA;AAEL,WAAO;AAAA,MACL;AAAA,MACA,KAAK,oBAAoB;AAAA,IAAA;AAE3B,WAAO;AAAA,MACL;AAAA,MACA,KAAK,oBAAoB;AAAA,IAAA;AAG3B,SAAK,iBAAiB,cAAc,KAAK,kBAAkB,UAAU;AACrE,SAAK,iBAAiB,cAAc,KAAK,kBAAkB,UAAU;AACrE,SAAK,iBAAiB,WAAW,KAAK,kBAAkB,OAAO;AAC/D,SAAK,iBAAiB,YAAY,KAAK,kBAAkB,QAAQ;AAAA,EACnE;AAAA,EAEA,uBAA6B;AAC3B,UAAM,qBAAA;AACN,WAAO;AAAA,MACL;AAAA,MACA,KAAK,oBAAoB;AAAA,IAAA;AAE3B,WAAO;AAAA,MACL;AAAA,MACA,KAAK,oBAAoB;AAAA,IAAA;AAG3B,SAAK,oBAAoB,cAAc,KAAK,kBAAkB,UAAU;AACxE,SAAK,oBAAoB,cAAc,KAAK,kBAAkB,UAAU;AACxE,SAAK,oBAAoB,WAAW,KAAK,kBAAkB,OAAO;AAClE,SAAK,oBAAoB,YAAY,KAAK,kBAAkB,QAAQ;AAAA,EACtE;AAAA,EAEA,QAAQ,SAAqC;AAC3C,QAAI,QAAQ,IAAI,MAAM,KAAK,QAAQ,IAAI,cAAc,GAAG;AACtD,WAAK,UAAA;AAAA,IACP;AAAA,EACF;AAAA,EAEA,YAAkB;AAChB,QAAI,CAAC,KAAK,MAAM;AACd,WAAK,QAAQ,KAAK,gBAAgB;AAClC,WAAK,cAAA;AACL;AAAA,IACF;AAEA,QAAI;AACF,YAAMf,KAAI,UAAU,KAAK,IAAI;AAC7B,WAAK,QAAQA,MAAKA,OAAM,KAAK,OAAOA,KAAI,KAAK,gBAAgB,KAAK;AAAA,IACpE,SAAS,KAAK;AACZ,cAAQ,MAAM,2CAA2C,KAAK,MAAM,GAAG;AACvE,WAAK,QAAQ,KAAK,gBAAgB,KAAK;AAAA,IACzC;AACA,SAAK,cAAA;AAAA,EACP;AAAA,EAEA,SAAS;AACP,UAAM,gBAAgB,CAAC,UAAU,KAAK,WAAW,YAAY,EAAE,EAAE,KAAK,GAAG;AAEzE,WAAOgB;AAAAA;AAAAA,QAEH,KAAK,QACHA,gBAAmB,aAAa,KAAK,KAAK,KAAK,WAC/C,IAAI;AAAA;AAAA,EAEZ;AACF;AAlIE,SAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,QAAQ,SAAS,KAAA;AAAA,EAC/B,cAAc,EAAE,MAAM,QAAQ,SAAS,MAAM,WAAW,gBAAA;AAAA,EACxD,OAAO,EAAE,OAAO,KAAA;AAAA,EAChB,UAAU,EAAE,OAAO,KAAA;AAAK;AAuD1B,SAAO,SAASC,IAAUC,QAAM;AA5D3B,IAAM,UAAN;AAqIP,eAAe,OAAO,cAAc,OAAO;;AC/HpC,MAAM,OAAN,MAAM,aAAYH,GAAW;AAAA,EAWlC,cAAc;AACZ,UAAA;AACA,SAAK,OAAO;AACZ,SAAK,WAAW;AAChB,SAAK,MAAM;AAAA,EACb;AAAA,EAIA,SAAS;AACP,WAAOC;AAAAA,EACT;AACF;AAtBE,KAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,SAAS,SAAS,KAAA;AAAA,EAChC,UAAU,EAAE,MAAM,SAAS,SAAS,KAAA;AAAA,EACpC,KAAK,EAAE,MAAM,SAAS,SAAS,KAAA;AAAK;AActC,KAAO,SAASC,IAAUC,QAAM;AAlB3B,IAAM,MAAN;AAyBP,eAAe,OAAO,UAAU,GAAG;;AClB5B,MAAM,aAAN,MAAM,mBAAkBH,GAAW;AAAA,EAaxC,cAAc;AACZ,UAAA;AACA,SAAK,UAAU;AACf,SAAK,UAAU;AACf,SAAK,OAAO;AACZ,SAAK,qBAAqB;AAAA,EAC5B;AAAA,EAIQ,kBAAkBd,IAAU;AAClC,UAAM,OAAOA,GAAE;AACf,UAAM,gBAAgB,KAAK,cAAc,EAAE,SAAS,MAAM;AAE1D,UAAM,aAAa,cAAc;AAAA,MAC/B,CAAC,SACC,KAAK,aAAa,KAAK,gBACtB,KAAK,aAAa,KAAK,aAAa,KAAK,aAAa,KAAA;AAAA,IAAK;AAEhE,SAAK,qBAAqB;AAAA,EAC5B;AAAA,EAEA,SAAS;AACP,WAAOe;AAAAA,uBACY,KAAK,IAAI;AAAA;AAAA;AAAA,6BAGH,KAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6CAkBI,KAAK,iBAAiB;AAAA,YACvD,CAAC,KAAK,qBACJA;AAAAA;AAAAA,wBAEU,KAAK,OAAO;AAAA,6BAEtB,EAAE;AAAA;AAAA;AAAA;AAAA,EAId;AACF;AApEE,WAAO,aAAa;AAAA,EAClB,SAAS,EAAE,MAAM,OAAA;AAAA,EACjB,SAAS,EAAE,MAAM,OAAA;AAAA,EACjB,MAAM,EAAE,MAAM,SAAS,SAAS,KAAA;AAAA,EAChC,oBAAoB,EAAE,MAAM,SAAS,OAAO,KAAA;AAAK;AAgBnD,WAAO,SAASC,IAAUC,QAAM;AArB3B,IAAM,YAAN;AAuEP,eAAe,OAAO,gBAAgB,SAAS;AC1ExC,MAAM,QAAN,MAAM,cAAaH,GAAW;AAAA,EAiBnC,cAAc;AACZ,UAAA;AACA,SAAK,SAAS;AACd,SAAK,SAAS;AACd,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,SAAK,eAAe;AACpB,SAAK,gBAAgB;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EA4BA,cAAwB;AACtB,UAAM,OAAiB,CAAA;AACvB,UAAM,OAAO,KAAK,YAAY,cAAc,MAAM;AAClD,UAAM,WAAW,MAAM,iBAAiB,EAAE,SAAS,KAAA,CAAM,KAAK,CAAA;AAE9D,eAAW,WAAW,UAAU;AAC9B,WAAK,iBAAiB,SAAwB,IAAI;AAAA,IACpD;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,iBAAiB,SAAsB,MAAsB;AAEnE,UAAM,OAAO,QAAQ,aAAa,MAAM,KAAM,QAAgB;AAC9D,QAAI,MAAM;AACR,YAAM,QAAS,QAAgB;AAC/B,UAAI,UAAU,QAAW;AAEvB,YACE,mBAAmB,qBAClB,QAAQ,SAAS,cAAc,QAAQ,SAAS,UACjD;AACA,cAAI,QAAQ,SAAS,YAAY;AAC/B,iBAAK,IAAI,IAAI,QAAQ;AAAA,UACvB,WAAW,QAAQ,SAAS,WAAW,QAAQ,SAAS;AACtD,iBAAK,IAAI,IAAI;AAAA,UACf;AAAA,QACF,OAAO;AACL,eAAK,IAAI,IAAI;AAAA,QACf;AAAA,MACF;AAAA,IACF;AAGA,UAAM,WACJ,QAAQ,YAAY,iBAAiB,GAAG,KAAK,QAAQ,iBAAiB,GAAG;AAC3E,aAAS,QAAQ,CAAC,UAAU;AAC1B,WAAK,iBAAiB,OAAsB,IAAI;AAAA,IAClD,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,WAAiC;AAC/B,UAAM,SAA+B;AAAA,MACnC,OAAO;AAAA,MACP,QAAQ,CAAA;AAAA,IAAC;AAGX,QAAI,KAAK,YAAY;AACnB,aAAO;AAAA,IACT;AAEA,UAAM,OAAO,KAAK,YAAY,cAAc,MAAM;AAClD,UAAM,WAAW,MAAM,iBAAiB,EAAE,SAAS,KAAA,CAAM,KAAK,CAAA;AAE9D,eAAW,WAAW,UAAU;AAC9B,WAAK,iBAAiB,SAAwB,MAAM;AAAA,IACtD;AAEA,WAAO;AAAA,EACT;AAAA,EAEQ,iBACN,SACA,QACM;AACN,UAAM,OAAO,QAAQ,aAAa,MAAM,KAAM,QAAgB;AAG9D,QAAI,QAAQ,QAAQ,YAAA,MAAkB,YAAY;AAChD,YAAM,QAAQ;AACd,UAAI,MAAM,YAAY,CAAC,MAAM,OAAO;AAClC,eAAO,QAAQ;AACf,eAAO,OAAO,QAAQ,SAAS,IAAI;AAAA,MACrC;AAAA,IACF;AAGA,QACE,mBAAmB,oBACnB,mBAAmB,uBACnB,mBAAmB,mBACnB;AACA,UAAI,CAAC,QAAQ,iBAAiB;AAC5B,eAAO,QAAQ;AACf,eAAO,OAAO,QAAQ,SAAS,IAAI,QAAQ;AAAA,MAC7C;AAAA,IACF;AAGA,UAAM,WACJ,QAAQ,YAAY,iBAAiB,GAAG,KAAK,QAAQ,iBAAiB,GAAG;AAC3E,aAAS,QAAQ,CAAC,UAAU;AAC1B,WAAK,iBAAiB,OAAsB,MAAM;AAAA,IACpD,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AACZ,UAAM,OAAO,KAAK,YAAY,cAAc,MAAM;AAClD,UAAM,WAAW,MAAM,iBAAiB,EAAE,SAAS,KAAA,CAAM,KAAK,CAAA;AAE9D,eAAW,WAAW,UAAU;AAC9B,WAAK,cAAc,OAAsB;AAAA,IAC3C;AAEA,SAAK,cAAc,IAAI,YAAY,cAAc,EAAE,SAAS,KAAA,CAAM,CAAC;AAAA,EACrE;AAAA,EAEQ,cAAc,SAA4B;AAChD,QACE,mBAAmB,oBACnB,mBAAmB,uBACnB,mBAAmB,mBACnB;AACA,UAAI,mBAAmB,oBAAoB,QAAQ,SAAS,YAAY;AACtE,gBAAQ,UAAU;AAAA,MACpB,OAAO;AACL,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IACF;AAGA,QAAI,QAAQ,QAAQ,YAAA,MAAkB,YAAY;AAC/C,cAAgB,QAAQ;AAAA,IAC3B;AAGA,UAAM,WACJ,QAAQ,YAAY,iBAAiB,GAAG,KAAK,QAAQ,iBAAiB,GAAG;AAC3E,aAAS,QAAQ,CAAC,UAAU;AAC1B,WAAK,cAAc,KAAoB;AAAA,IACzC,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,SAAwB;AAC5B,QAAI,KAAK,cAAe;AAExB,UAAM,mBAAmB,KAAK,SAAA;AAC9B,QAAI,CAAC,iBAAiB,OAAO;AAC3B,WAAK;AAAA,QACH,IAAI,YAAY,gBAAgB;AAAA,UAC9B,QAAQ,iBAAiB;AAAA,UACzB,SAAS;AAAA,QAAA,CACV;AAAA,MAAA;AAEH;AAAA,IACF;AAEA,SAAK,gBAAgB;AACrB,UAAM,WAAW,KAAK,YAAA;AAEtB,SAAK;AAAA,MACH,IAAI,YAAY,eAAe;AAAA,QAC7B,QAAQ,EAAE,MAAM,SAAA;AAAA,QAChB,SAAS;AAAA,MAAA,CACV;AAAA,IAAA;AAIH,QAAI,KAAK,QAAQ;AACf,UAAI;AACF,cAAM,WAAW,MAAM,MAAM,KAAK,QAAQ;AAAA,UACxC,QAAQ,KAAK,OAAO,YAAA;AAAA,UACpB,SAAS;AAAA,YACP,gBAAgB;AAAA,UAAA;AAAA,UAElB,MAAM,KAAK,UAAU,QAAQ;AAAA,QAAA,CAC9B;AAED,aAAK;AAAA,UACH,IAAI,YAAY,iBAAiB;AAAA,YAC/B,QAAQ,EAAE,UAAU,MAAM,SAAA;AAAA,YAC1B,SAAS;AAAA,UAAA,CACV;AAAA,QAAA;AAAA,MAEL,SAAS,OAAO;AACd,aAAK;AAAA,UACH,IAAI,YAAY,cAAc;AAAA,YAC5B,QAAQ,EAAE,OAAO,MAAM,SAAA;AAAA,YACvB,SAAS;AAAA,UAAA,CACV;AAAA,QAAA;AAAA,MAEL;AAAA,IACF;AAEA,SAAK,gBAAgB;AAAA,EACvB;AAAA,EAEQ,cAAcd,IAAgB;AACpC,IAAAA,GAAE,eAAA;AACF,SAAK,OAAA;AAAA,EACP;AAAA,EAEQ,eAAeA,IAAwB;AAC7C,QAAIA,GAAE,QAAQ,WAAW,CAACA,GAAE,UAAU;AACpC,YAAM,SAASA,GAAE;AAEjB,UAAI,OAAO,QAAQ,YAAA,MAAkB,YAAY;AAC/C,QAAAA,GAAE,eAAA;AACF,aAAK,OAAA;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAAA,EAEA,SAAS;AACP,WAAOe;AAAAA;AAAAA,kBAEO,KAAK,MAAM;AAAA,kBACX,KAAK,MAAM;AAAA,gBACb,KAAK,IAAI;AAAA,sBACH,KAAK,UAAU;AAAA,uBACd,KAAK,YAAY;AAAA,kBACtB,KAAK,aAAa;AAAA,mBACjB,KAAK,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpC;AACF;AAxRE,MAAO,aAAa;AAAA,EAClB,QAAQ,EAAE,MAAM,OAAA;AAAA,EAChB,QAAQ,EAAE,MAAM,OAAA;AAAA,EAChB,MAAM,EAAE,MAAM,OAAA;AAAA,EACd,YAAY,EAAE,MAAM,SAAS,SAAS,KAAA;AAAA,EACtC,cAAc,EAAE,MAAM,OAAA;AAAA,EACtB,eAAe,EAAE,MAAM,SAAS,OAAO,KAAA;AAAK;AAoB9C,MAAO,SAASG;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AA3BX,IAAM,OAAN;AA2RP,eAAe,OAAO,WAAW,IAAI;;AClS9B,MAAM,QAAN,MAAM,cAAaJ,GAAW;AAAA,EAGnC,SAAS;AACP,WAAOC;AAAAA,EACT;AACF;AALE,MAAO,SAASC,IAAUC,QAAM;AAD3B,IAAM,OAAN;AAQP,eAAe,OAAO,WAAW,IAAI;;ACF9B,MAAM,WAAN,MAAM,iBAAgBH,GAAW;AAAA,EAWtC,cAAc;AACZ,UAAA;AACA,SAAK,OAAO,CAAA;AACZ,SAAK,UAAU,CAAC,WAAW,SAAS,WAAW;AAC/C,SAAK,aAAa;AAAA,EACpB;AAAA,EAIA,SAAS;AACP,WAAOC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,YAMC,KAAK,aAAaA,2CAA8C,EAAE;AAAA;AAAA;AAAA,YAGlE,KAAK,KAAK;AAAA,MACV,CAAC,KAAK,aAAaA;AAAAA,oDACqB,IAAI,OAAO;AAAA,kDACb,IAAI,KAAK;AAAA,sDACL,IAAI,SAAS;AAAA,gBACnD,KAAK,aACHA;AAAAA,sBACI,IAAI,UAAU,SAAS;AAAA,4BAE3B,EAAE;AAAA;AAAA,IAAA,CAET;AAAA;AAAA;AAAA;AAAA,EAIT;AACF;AA7CE,SAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,MAAA;AAAA,EACd,SAAS,EAAE,MAAM,MAAA;AAAA,EACjB,YAAY,EAAE,MAAM,SAAS,WAAW,cAAA;AAAc;AAcxD,SAAO,SAASC,IAAUC,QAAM;AAlB3B,IAAM,UAAN;AAgDP,eAAe,OAAO,YAAY,OAAO;;AChDlC,MAAM,aAAN,MAAM,mBAAkBH,GAAW;AAAA,EAGxC,SAAS;AACP,WAAOC;AAAAA,EACT;AACF;AALE,WAAO,SAASC,IAAUC,QAAM;AAD3B,IAAM,YAAN;AAQP,eAAe,OAAO,gBAAgB,SAAS;;ACPxC,MAAM,QAAN,MAAM,cAAaH,GAAW;AAAA,EAWnC,oBAAoB;AAClB,UAAM,kBAAA;AACN,SAAK,kBAAA;AAGL,SAAK,iBAAiB,MAAM;AAC1B,UAAI,KAAK,eAAe;AACtB,qBAAa,KAAK,aAAa;AAAA,MACjC;AACA,WAAK,gBAAgB,WAAW,MAAM;AACpC,aAAK,kBAAA;AAAA,MACP,GAAG,GAAG;AAAA,IACR;AACA,WAAO,iBAAiB,UAAU,KAAK,cAAc;AAAA,EACvD;AAAA,EAEA,uBAAuB;AACrB,UAAM,qBAAA;AACN,QAAI,KAAK,gBAAgB;AACvB,aAAO,oBAAoB,UAAU,KAAK,cAAc;AAAA,IAC1D;AACA,QAAI,KAAK,eAAe;AACtB,mBAAa,KAAK,aAAa;AAAA,IACjC;AAAA,EACF;AAAA,EAEQ,oBAAoB;AAC1B,UAAM,WAAW,mBAAA;AACjB,QAAI,UAAU;AACZ,WAAK,UAAU,IAAI,QAAQ;AAC3B,WAAK,UAAU,OAAO,SAAS;AAAA,IACjC,OAAO;AACL,WAAK,UAAU,IAAI,SAAS;AAC5B,WAAK,UAAU,OAAO,QAAQ;AAAA,IAChC;AAAA,EACF;AAAA,EAEA,SAAS;AACP,WAAOC;AAAAA,EACT;AACF;AAlDE,MAAO,aAAa;AAAA,EAClB,OAAO,EAAE,MAAM,OAAA;AAAO;AAOxB,MAAO,SAASC,IAAUC,QAAM;AAT3B,IAAM,OAAN;AAqDP,eAAe,OAAO,WAAW,IAAI;;ACtD9B,MAAM,UAAN,MAAM,gBAAeH,GAAW;AAAA,EAAhC,cAAA;AAAA,UAAA,GAAA,SAAA;AAOL,SAAA,OAAe;AAAA,EAAA;AAAA,EAqvBf,SAAS;AACP,UAAM,SAAS,KAAK,QAAQ,KAAK,SAAS;AAC1C,UAAM,cAAc,KAAK,SAAS;AAClC,UAAM,YAAY,KAAK,SAAS;AAChC,UAAM,QAAQ,KAAK,SAAS;AAC5B,UAAM,SAAS,KAAK,SAAS;AAC7B,UAAM,SAAS,KAAK,SAAS;AAC7B,UAAM,aAAa,KAAK,SAAS;AAEjC,WAAOC;AAAAA;AAAAA,QAEH,SACEA;AAAAA;AAAAA,gBAEM,aACEA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,sBAYA,SACEA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,wBA2BA,SACEA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,0BAiBA,QACEA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,4BA2BA,YACEA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,8BAiBA,cACEA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,gCAqCA,EAAE;AAAA;AAAA,cAGpB,EAAE;AAAA;AAAA,EAEV;AACF;AA95BE,QAAO,aAAa;AAAA,EAClB,MAAM,EAAE,MAAM,OAAA;AAAA,EACd,OAAO,EAAE,MAAM,OAAA;AAAA,EACf,MAAM,EAAE,MAAM,QAAA;AAAQ;AAOxB,QAAO,SAAS;AAAA,EACdC,IAAU,MAAM;AAAA,EAChBE;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAA;AAbG,IAAM,SAAN;AAi6BP,eAAe,OAAO,aAAa,MAAM;","x_google_ignoreList":[0,1,2,3,4,10,11,12,17]}
1
+ {"version":3,"file":"ds-one.bundle.js","sources":["../node_modules/signal-polyfill/dist/index.js","../node_modules/@lit-labs/signals/lib/signal-watcher.js","../node_modules/lit-html/directive.js","../node_modules/lit-html/lit-html.js","../node_modules/@lit-labs/signals/index.js","../DS1/0-face/device.ts","../DS1/0-face/i18n.ts","../DS1/0-face/preferences.ts","../DS1/0-face/pricing.ts","../DS1/0-face/theme.ts","../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-element/lit-element.js","../DS1/2-core/ds-text.ts","../DS1/2-core/ds-button.ts","../DS1/2-core/ds-banner.ts","../DS1/2-core/ds-card.ts","../node_modules/lit-html/directives/unsafe-html.js","../DS1/2-core/generated/ds-icon-map.ts","../DS1/2-core/ds-icon.ts","../DS1/2-core/ds-cycle.ts","../DS1/2-core/ds-date.ts","../DS1/2-core/ds-gap.ts","../DS1/2-core/ds-input.ts","../DS1/2-core/ds-tooltip.ts","../DS1/3-unit/ds-row.ts","../DS1/3-unit/ds-accordion.ts","../DS1/3-unit/ds-form.ts","../DS1/3-unit/ds-list.ts","../DS1/3-unit/ds-table.ts","../DS1/4-page/ds-container.ts","../DS1/4-page/ds-grid.ts","../DS1/4-page/ds-layout.ts"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar __accessCheck = (obj, member, msg) => {\n if (!member.has(obj))\n throw TypeError(\"Cannot \" + msg);\n};\nvar __privateIn = (member, obj) => {\n if (Object(obj) !== obj)\n throw TypeError('Cannot use the \"in\" operator on this value');\n return member.has(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n if (member.has(obj))\n throw TypeError(\"Cannot add the same private member more than once\");\n member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateMethod = (obj, member, method) => {\n __accessCheck(obj, member, \"access private method\");\n return method;\n};\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction defaultEquals(a, b) {\n return Object.is(a, b);\n}\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet activeConsumer = null;\nlet inNotificationPhase = false;\nlet epoch = 1;\nconst SIGNAL = /* @__PURE__ */ Symbol(\"SIGNAL\");\nfunction setActiveConsumer(consumer) {\n const prev = activeConsumer;\n activeConsumer = consumer;\n return prev;\n}\nfunction getActiveConsumer() {\n return activeConsumer;\n}\nfunction isInNotificationPhase() {\n return inNotificationPhase;\n}\nconst REACTIVE_NODE = {\n version: 0,\n lastCleanEpoch: 0,\n dirty: false,\n producerNode: void 0,\n producerLastReadVersion: void 0,\n producerIndexOfThis: void 0,\n nextProducerIndex: 0,\n liveConsumerNode: void 0,\n liveConsumerIndexOfThis: void 0,\n consumerAllowSignalWrites: false,\n consumerIsAlwaysLive: false,\n producerMustRecompute: () => false,\n producerRecomputeValue: () => {\n },\n consumerMarkedDirty: () => {\n },\n consumerOnSignalRead: () => {\n }\n};\nfunction producerAccessed(node) {\n if (inNotificationPhase) {\n throw new Error(\n typeof ngDevMode !== \"undefined\" && ngDevMode ? `Assertion error: signal read during notification phase` : \"\"\n );\n }\n if (activeConsumer === null) {\n return;\n }\n activeConsumer.consumerOnSignalRead(node);\n const idx = activeConsumer.nextProducerIndex++;\n assertConsumerNode(activeConsumer);\n if (idx < activeConsumer.producerNode.length && activeConsumer.producerNode[idx] !== node) {\n if (consumerIsLive(activeConsumer)) {\n const staleProducer = activeConsumer.producerNode[idx];\n producerRemoveLiveConsumerAtIndex(staleProducer, activeConsumer.producerIndexOfThis[idx]);\n }\n }\n if (activeConsumer.producerNode[idx] !== node) {\n activeConsumer.producerNode[idx] = node;\n activeConsumer.producerIndexOfThis[idx] = consumerIsLive(activeConsumer) ? producerAddLiveConsumer(node, activeConsumer, idx) : 0;\n }\n activeConsumer.producerLastReadVersion[idx] = node.version;\n}\nfunction producerIncrementEpoch() {\n epoch++;\n}\nfunction producerUpdateValueVersion(node) {\n if (!node.dirty && node.lastCleanEpoch === epoch) {\n return;\n }\n if (!node.producerMustRecompute(node) && !consumerPollProducersForChange(node)) {\n node.dirty = false;\n node.lastCleanEpoch = epoch;\n return;\n }\n node.producerRecomputeValue(node);\n node.dirty = false;\n node.lastCleanEpoch = epoch;\n}\nfunction producerNotifyConsumers(node) {\n if (node.liveConsumerNode === void 0) {\n return;\n }\n const prev = inNotificationPhase;\n inNotificationPhase = true;\n try {\n for (const consumer of node.liveConsumerNode) {\n if (!consumer.dirty) {\n consumerMarkDirty(consumer);\n }\n }\n } finally {\n inNotificationPhase = prev;\n }\n}\nfunction producerUpdatesAllowed() {\n return (activeConsumer == null ? void 0 : activeConsumer.consumerAllowSignalWrites) !== false;\n}\nfunction consumerMarkDirty(node) {\n var _a;\n node.dirty = true;\n producerNotifyConsumers(node);\n (_a = node.consumerMarkedDirty) == null ? void 0 : _a.call(node.wrapper ?? node);\n}\nfunction consumerBeforeComputation(node) {\n node && (node.nextProducerIndex = 0);\n return setActiveConsumer(node);\n}\nfunction consumerAfterComputation(node, prevConsumer) {\n setActiveConsumer(prevConsumer);\n if (!node || node.producerNode === void 0 || node.producerIndexOfThis === void 0 || node.producerLastReadVersion === void 0) {\n return;\n }\n if (consumerIsLive(node)) {\n for (let i = node.nextProducerIndex; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n while (node.producerNode.length > node.nextProducerIndex) {\n node.producerNode.pop();\n node.producerLastReadVersion.pop();\n node.producerIndexOfThis.pop();\n }\n}\nfunction consumerPollProducersForChange(node) {\n assertConsumerNode(node);\n for (let i = 0; i < node.producerNode.length; i++) {\n const producer = node.producerNode[i];\n const seenVersion = node.producerLastReadVersion[i];\n if (seenVersion !== producer.version) {\n return true;\n }\n producerUpdateValueVersion(producer);\n if (seenVersion !== producer.version) {\n return true;\n }\n }\n return false;\n}\nfunction producerAddLiveConsumer(node, consumer, indexOfThis) {\n var _a;\n assertProducerNode(node);\n assertConsumerNode(node);\n if (node.liveConsumerNode.length === 0) {\n (_a = node.watched) == null ? void 0 : _a.call(node.wrapper);\n for (let i = 0; i < node.producerNode.length; i++) {\n node.producerIndexOfThis[i] = producerAddLiveConsumer(node.producerNode[i], node, i);\n }\n }\n node.liveConsumerIndexOfThis.push(indexOfThis);\n return node.liveConsumerNode.push(consumer) - 1;\n}\nfunction producerRemoveLiveConsumerAtIndex(node, idx) {\n var _a;\n assertProducerNode(node);\n assertConsumerNode(node);\n if (typeof ngDevMode !== \"undefined\" && ngDevMode && idx >= node.liveConsumerNode.length) {\n throw new Error(\n `Assertion error: active consumer index ${idx} is out of bounds of ${node.liveConsumerNode.length} consumers)`\n );\n }\n if (node.liveConsumerNode.length === 1) {\n (_a = node.unwatched) == null ? void 0 : _a.call(node.wrapper);\n for (let i = 0; i < node.producerNode.length; i++) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n }\n }\n const lastIdx = node.liveConsumerNode.length - 1;\n node.liveConsumerNode[idx] = node.liveConsumerNode[lastIdx];\n node.liveConsumerIndexOfThis[idx] = node.liveConsumerIndexOfThis[lastIdx];\n node.liveConsumerNode.length--;\n node.liveConsumerIndexOfThis.length--;\n if (idx < node.liveConsumerNode.length) {\n const idxProducer = node.liveConsumerIndexOfThis[idx];\n const consumer = node.liveConsumerNode[idx];\n assertConsumerNode(consumer);\n consumer.producerIndexOfThis[idxProducer] = idx;\n }\n}\nfunction consumerIsLive(node) {\n var _a;\n return node.consumerIsAlwaysLive || (((_a = node == null ? void 0 : node.liveConsumerNode) == null ? void 0 : _a.length) ?? 0) > 0;\n}\nfunction assertConsumerNode(node) {\n node.producerNode ?? (node.producerNode = []);\n node.producerIndexOfThis ?? (node.producerIndexOfThis = []);\n node.producerLastReadVersion ?? (node.producerLastReadVersion = []);\n}\nfunction assertProducerNode(node) {\n node.liveConsumerNode ?? (node.liveConsumerNode = []);\n node.liveConsumerIndexOfThis ?? (node.liveConsumerIndexOfThis = []);\n}\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction computedGet(node) {\n producerUpdateValueVersion(node);\n producerAccessed(node);\n if (node.value === ERRORED) {\n throw node.error;\n }\n return node.value;\n}\nfunction createComputed(computation) {\n const node = Object.create(COMPUTED_NODE);\n node.computation = computation;\n const computed = () => computedGet(node);\n computed[SIGNAL] = node;\n return computed;\n}\nconst UNSET = /* @__PURE__ */ Symbol(\"UNSET\");\nconst COMPUTING = /* @__PURE__ */ Symbol(\"COMPUTING\");\nconst ERRORED = /* @__PURE__ */ Symbol(\"ERRORED\");\nconst COMPUTED_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n value: UNSET,\n dirty: true,\n error: null,\n equal: defaultEquals,\n producerMustRecompute(node) {\n return node.value === UNSET || node.value === COMPUTING;\n },\n producerRecomputeValue(node) {\n if (node.value === COMPUTING) {\n throw new Error(\"Detected cycle in computations.\");\n }\n const oldValue = node.value;\n node.value = COMPUTING;\n const prevConsumer = consumerBeforeComputation(node);\n let newValue;\n let wasEqual = false;\n try {\n newValue = node.computation.call(node.wrapper);\n const oldOk = oldValue !== UNSET && oldValue !== ERRORED;\n wasEqual = oldOk && node.equal.call(node.wrapper, oldValue, newValue);\n } catch (err) {\n newValue = ERRORED;\n node.error = err;\n } finally {\n consumerAfterComputation(node, prevConsumer);\n }\n if (wasEqual) {\n node.value = oldValue;\n return;\n }\n node.value = newValue;\n node.version++;\n }\n };\n})();\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction defaultThrowError() {\n throw new Error();\n}\nlet throwInvalidWriteToSignalErrorFn = defaultThrowError;\nfunction throwInvalidWriteToSignalError() {\n throwInvalidWriteToSignalErrorFn();\n}\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction createSignal(initialValue) {\n const node = Object.create(SIGNAL_NODE);\n node.value = initialValue;\n const getter = () => {\n producerAccessed(node);\n return node.value;\n };\n getter[SIGNAL] = node;\n return getter;\n}\nfunction signalGetFn() {\n producerAccessed(this);\n return this.value;\n}\nfunction signalSetFn(node, newValue) {\n if (!producerUpdatesAllowed()) {\n throwInvalidWriteToSignalError();\n }\n if (!node.equal.call(node.wrapper, node.value, newValue)) {\n node.value = newValue;\n signalValueChanged(node);\n }\n}\nconst SIGNAL_NODE = /* @__PURE__ */ (() => {\n return {\n ...REACTIVE_NODE,\n equal: defaultEquals,\n value: void 0\n };\n})();\nfunction signalValueChanged(node) {\n node.version++;\n producerIncrementEpoch();\n producerNotifyConsumers(node);\n}\n/**\n * @license\n * Copyright 2024 Bloomberg Finance L.P.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst NODE = Symbol(\"node\");\nvar Signal;\n((Signal2) => {\n var _a, _brand, brand_fn, _b, _brand2, brand_fn2;\n class State {\n constructor(initialValue, options = {}) {\n __privateAdd(this, _brand);\n __publicField(this, _a);\n const ref = createSignal(initialValue);\n const node = ref[SIGNAL];\n this[NODE] = node;\n node.wrapper = this;\n if (options) {\n const equals = options.equals;\n if (equals) {\n node.equal = equals;\n }\n node.watched = options[Signal2.subtle.watched];\n node.unwatched = options[Signal2.subtle.unwatched];\n }\n }\n get() {\n if (!(0, Signal2.isState)(this))\n throw new TypeError(\"Wrong receiver type for Signal.State.prototype.get\");\n return signalGetFn.call(this[NODE]);\n }\n set(newValue) {\n if (!(0, Signal2.isState)(this))\n throw new TypeError(\"Wrong receiver type for Signal.State.prototype.set\");\n if (isInNotificationPhase()) {\n throw new Error(\"Writes to signals not permitted during Watcher callback\");\n }\n const ref = this[NODE];\n signalSetFn(ref, newValue);\n }\n }\n _a = NODE;\n _brand = new WeakSet();\n brand_fn = function() {\n };\n Signal2.isState = (s) => typeof s === \"object\" && __privateIn(_brand, s);\n Signal2.State = State;\n class Computed {\n // Create a Signal which evaluates to the value returned by the callback.\n // Callback is called with this signal as the parameter.\n constructor(computation, options) {\n __privateAdd(this, _brand2);\n __publicField(this, _b);\n const ref = createComputed(computation);\n const node = ref[SIGNAL];\n node.consumerAllowSignalWrites = true;\n this[NODE] = node;\n node.wrapper = this;\n if (options) {\n const equals = options.equals;\n if (equals) {\n node.equal = equals;\n }\n node.watched = options[Signal2.subtle.watched];\n node.unwatched = options[Signal2.subtle.unwatched];\n }\n }\n get() {\n if (!(0, Signal2.isComputed)(this))\n throw new TypeError(\"Wrong receiver type for Signal.Computed.prototype.get\");\n return computedGet(this[NODE]);\n }\n }\n _b = NODE;\n _brand2 = new WeakSet();\n brand_fn2 = function() {\n };\n Signal2.isComputed = (c) => typeof c === \"object\" && __privateIn(_brand2, c);\n Signal2.Computed = Computed;\n ((subtle2) => {\n var _a2, _brand3, brand_fn3, _assertSignals, assertSignals_fn;\n function untrack(cb) {\n let output;\n let prevActiveConsumer = null;\n try {\n prevActiveConsumer = setActiveConsumer(null);\n output = cb();\n } finally {\n setActiveConsumer(prevActiveConsumer);\n }\n return output;\n }\n subtle2.untrack = untrack;\n function introspectSources(sink) {\n var _a3;\n if (!(0, Signal2.isComputed)(sink) && !(0, Signal2.isWatcher)(sink)) {\n throw new TypeError(\"Called introspectSources without a Computed or Watcher argument\");\n }\n return ((_a3 = sink[NODE].producerNode) == null ? void 0 : _a3.map((n) => n.wrapper)) ?? [];\n }\n subtle2.introspectSources = introspectSources;\n function introspectSinks(signal) {\n var _a3;\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) {\n throw new TypeError(\"Called introspectSinks without a Signal argument\");\n }\n return ((_a3 = signal[NODE].liveConsumerNode) == null ? void 0 : _a3.map((n) => n.wrapper)) ?? [];\n }\n subtle2.introspectSinks = introspectSinks;\n function hasSinks(signal) {\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) {\n throw new TypeError(\"Called hasSinks without a Signal argument\");\n }\n const liveConsumerNode = signal[NODE].liveConsumerNode;\n if (!liveConsumerNode)\n return false;\n return liveConsumerNode.length > 0;\n }\n subtle2.hasSinks = hasSinks;\n function hasSources(signal) {\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isWatcher)(signal)) {\n throw new TypeError(\"Called hasSources without a Computed or Watcher argument\");\n }\n const producerNode = signal[NODE].producerNode;\n if (!producerNode)\n return false;\n return producerNode.length > 0;\n }\n subtle2.hasSources = hasSources;\n class Watcher {\n // When a (recursive) source of Watcher is written to, call this callback,\n // if it hasn't already been called since the last `watch` call.\n // No signals may be read or written during the notify.\n constructor(notify) {\n __privateAdd(this, _brand3);\n __privateAdd(this, _assertSignals);\n __publicField(this, _a2);\n let node = Object.create(REACTIVE_NODE);\n node.wrapper = this;\n node.consumerMarkedDirty = notify;\n node.consumerIsAlwaysLive = true;\n node.consumerAllowSignalWrites = false;\n node.producerNode = [];\n this[NODE] = node;\n }\n // Add these signals to the Watcher's set, and set the watcher to run its\n // notify callback next time any signal in the set (or one of its dependencies) changes.\n // Can be called with no arguments just to reset the \"notified\" state, so that\n // the notify callback will be invoked again.\n watch(...signals) {\n if (!(0, Signal2.isWatcher)(this)) {\n throw new TypeError(\"Called unwatch without Watcher receiver\");\n }\n __privateMethod(this, _assertSignals, assertSignals_fn).call(this, signals);\n const node = this[NODE];\n node.dirty = false;\n const prev = setActiveConsumer(node);\n for (const signal of signals) {\n producerAccessed(signal[NODE]);\n }\n setActiveConsumer(prev);\n }\n // Remove these signals from the watched set (e.g., for an effect which is disposed)\n unwatch(...signals) {\n if (!(0, Signal2.isWatcher)(this)) {\n throw new TypeError(\"Called unwatch without Watcher receiver\");\n }\n __privateMethod(this, _assertSignals, assertSignals_fn).call(this, signals);\n const node = this[NODE];\n assertConsumerNode(node);\n for (let i = node.producerNode.length - 1; i >= 0; i--) {\n if (signals.includes(node.producerNode[i].wrapper)) {\n producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);\n const lastIdx = node.producerNode.length - 1;\n node.producerNode[i] = node.producerNode[lastIdx];\n node.producerIndexOfThis[i] = node.producerIndexOfThis[lastIdx];\n node.producerNode.length--;\n node.producerIndexOfThis.length--;\n node.nextProducerIndex--;\n if (i < node.producerNode.length) {\n const idxConsumer = node.producerIndexOfThis[i];\n const producer = node.producerNode[i];\n assertProducerNode(producer);\n producer.liveConsumerIndexOfThis[idxConsumer] = i;\n }\n }\n }\n }\n // Returns the set of computeds in the Watcher's set which are still yet\n // to be re-evaluated\n getPending() {\n if (!(0, Signal2.isWatcher)(this)) {\n throw new TypeError(\"Called getPending without Watcher receiver\");\n }\n const node = this[NODE];\n return node.producerNode.filter((n) => n.dirty).map((n) => n.wrapper);\n }\n }\n _a2 = NODE;\n _brand3 = new WeakSet();\n brand_fn3 = function() {\n };\n _assertSignals = new WeakSet();\n assertSignals_fn = function(signals) {\n for (const signal of signals) {\n if (!(0, Signal2.isComputed)(signal) && !(0, Signal2.isState)(signal)) {\n throw new TypeError(\"Called watch/unwatch without a Computed or State argument\");\n }\n }\n };\n Signal2.isWatcher = (w) => __privateIn(_brand3, w);\n subtle2.Watcher = Watcher;\n function currentComputed() {\n var _a3;\n return (_a3 = getActiveConsumer()) == null ? void 0 : _a3.wrapper;\n }\n subtle2.currentComputed = currentComputed;\n subtle2.watched = Symbol(\"watched\");\n subtle2.unwatched = Symbol(\"unwatched\");\n })(Signal2.subtle || (Signal2.subtle = {}));\n})(Signal || (Signal = {}));\nexport {\n Signal\n};\n","import{Signal as t}from\"signal-polyfill\";\n/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const i=Symbol(\"SignalWatcherBrand\"),s=new FinalizationRegistry((({watcher:t,signal:i})=>{t.unwatch(i)})),h=new WeakMap;function e(e){return!0===e[i]?(console.warn(\"SignalWatcher should not be applied to the same class more than once.\"),e):class extends e{constructor(){super(...arguments),this._$St=new t.State(0),this._$Si=!1,this._$So=!0,this._$Sh=new Set}_$Sl(){if(void 0!==this._$Su)return;this._$Sv=new t.Computed((()=>{this._$St.get(),super.performUpdate()}));const i=this._$Su=new t.subtle.Watcher((function(){const t=h.get(this);void 0!==t&&(!1===t._$Si&&t.requestUpdate(),this.watch())}));h.set(i,this),s.register(this,{watcher:i,signal:this._$Sv}),i.watch(this._$Sv)}_$Sp(){void 0!==this._$Su&&(this._$Su.unwatch(this._$Sv),this._$Sv=void 0,this._$Su=void 0)}performUpdate(){this.isUpdatePending&&(this._$Sl(),this._$Si=!0,this._$St.set(this._$St.get()+1),this._$Si=!1,this._$Sv.get())}update(t){try{this._$So?(this._$So=!1,super.update(t)):this._$Sh.forEach((t=>t.commit()))}finally{this.isUpdatePending=!1,this._$Sh.clear()}}requestUpdate(t,i,s){this._$So=!0,super.requestUpdate(t,i,s)}connectedCallback(){super.connectedCallback(),this.requestUpdate()}disconnectedCallback(){super.disconnectedCallback(),queueMicrotask((()=>{!1===this.isConnected&&this._$Sp()}))}_(t){this._$Sh.add(t);const i=this._$So;this.requestUpdate(),this._$So=i}m(t){this._$Sh.delete(t)}}}export{e as SignalWatcher};\n//# sourceMappingURL=signal-watcher.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.1\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{Signal as t}from\"signal-polyfill\";export*from\"signal-polyfill\";export{SignalWatcher}from\"./lib/signal-watcher.js\";export{WatchDirective,watch}from\"./lib/watch.js\";export{html,svg,withWatch}from\"./lib/html-tag.js\";\n/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const l=t.State,o=t.Computed,r=(l,o)=>new t.State(l,o),i=(l,o)=>new t.Computed(l,o);export{o as Computed,l as State,i as computed,r as signal};\n//# sourceMappingURL=index.js.map\n","// device.ts\n// Device detection, context utilities, and responsive scaling\n\nimport { signal } from \"@lit-labs/signals\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type DeviceType = \"mobile\" | \"tablet\" | \"desktop\";\n\nexport interface DeviceInfo {\n isMobile: boolean;\n isTablet: boolean;\n isDesktop: boolean;\n isTouchCapable: boolean;\n deviceType: DeviceType;\n userAgent: string;\n screenWidth: number;\n screenHeight: number;\n}\n\nexport type ScalingMode = \"auto\" | \"fixed\" | \"fluid\";\n\nexport interface ScalingConfig {\n mode: ScalingMode;\n baseWidth: number;\n minScale: number;\n maxScale: number;\n}\n\n// ============================================================================\n// Configuration & Signals\n// ============================================================================\n\nconst defaultScalingConfig: ScalingConfig = {\n mode: \"auto\",\n baseWidth: 280,\n minScale: 0.75,\n maxScale: 2.0,\n};\n\n/** Reactive scaling factor signal */\nexport const scalingFactor = signal<number>(1);\n\n/** Current scaling configuration */\nexport const scalingConfig = signal<ScalingConfig>(defaultScalingConfig);\n\n// ============================================================================\n// Device Detection\n// ============================================================================\n\n/**\n * Comprehensive mobile device detection\n * Combines user agent detection, touch capability, and viewport size\n */\nexport function detectMobileDevice(): boolean {\n if (typeof navigator === \"undefined\" || typeof window === \"undefined\") {\n return false;\n }\n\n const nav = navigator as any;\n const win = window as any;\n const ua: string =\n (nav && (nav.userAgent || nav.vendor)) || (win && win.opera) || \"\";\n\n // User agent based detection\n const uaMatchesMobile =\n /Mobile|Android|iP(ad|hone|od)|IEMobile|BlackBerry|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)|Windows Phone|Phone|Tablet/i.test(\n ua\n );\n\n // Touch capability detection\n const touchPoints = (nav && nav.maxTouchPoints) || 0;\n const isTouchCapable = touchPoints > 1;\n\n // Viewport detection\n const narrowViewport = win\n ? Math.min(win.innerWidth || 0, win.innerHeight || 0) <= 820\n : false;\n\n return uaMatchesMobile || (isTouchCapable && narrowViewport);\n}\n\n/**\n * Get detailed device information\n */\nexport function getDeviceInfo(): DeviceInfo {\n const isMobile = detectMobileDevice();\n const nav = navigator as any;\n const win = window as any;\n\n const touchPoints = (nav && nav.maxTouchPoints) || 0;\n const isTouchCapable = touchPoints > 1;\n\n // Use clientWidth instead of innerWidth to exclude scrollbars\n const screenWidth =\n typeof document !== \"undefined\"\n ? document.documentElement.clientWidth\n : win?.innerWidth || 0;\n const screenHeight =\n typeof document !== \"undefined\"\n ? document.documentElement.clientHeight\n : win?.innerHeight || 0;\n const isTablet = isMobile && Math.min(screenWidth, screenHeight) >= 600;\n\n return {\n isMobile,\n isTablet,\n isDesktop: !isMobile,\n isTouchCapable,\n deviceType: isMobile ? (isTablet ? \"tablet\" : \"mobile\") : \"desktop\",\n userAgent: (nav && (nav.userAgent || nav.vendor)) || \"\",\n screenWidth,\n screenHeight,\n };\n}\n\n// ============================================================================\n// Scaling\n// ============================================================================\n\n/**\n * Calculate the scaling factor based on viewport width\n * @param viewportWidth - Current viewport width in pixels\n * @param config - Scaling configuration\n * @returns The calculated scaling factor\n */\nexport function calculateScalingFactor(\n viewportWidth: number,\n config: ScalingConfig = scalingConfig.get()\n): number {\n if (config.mode === \"fixed\") {\n return 1;\n }\n\n const rawScale = viewportWidth / config.baseWidth;\n const clampedScale = Math.max(\n config.minScale,\n Math.min(config.maxScale, rawScale)\n );\n\n return Number(clampedScale.toFixed(3));\n}\n\n/**\n * Set the scaling configuration\n * @param config - Partial scaling configuration to apply\n */\nexport function setScalingConfig(config: Partial<ScalingConfig>): void {\n const currentConfig = scalingConfig.get();\n const newConfig = { ...currentConfig, ...config };\n scalingConfig.set(newConfig);\n\n // Recalculate scaling factor if in browser\n if (typeof window !== \"undefined\") {\n updateScalingFactor();\n }\n}\n\n/**\n * Update the scaling factor based on current viewport\n * Desktop always uses factor 1; mobile uses computed factor\n */\nexport function updateScalingFactor(): void {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n\n const isMobile = detectMobileDevice();\n\n // Desktop: always use factor 1\n if (!isMobile) {\n const factor = 1;\n scalingFactor.set(factor);\n document.documentElement.style.setProperty(\"--sf\", factor.toString());\n window.dispatchEvent(\n new CustomEvent(\"scaling-changed\", {\n detail: { scalingFactor: factor, config: scalingConfig.get() },\n })\n );\n return;\n }\n\n // Mobile: compute scaling based on viewport\n const viewportWidth = document.documentElement.clientWidth;\n const config = scalingConfig.get();\n const newFactor = calculateScalingFactor(viewportWidth, config);\n\n scalingFactor.set(newFactor);\n document.documentElement.style.setProperty(\"--sf\", newFactor.toString());\n\n window.dispatchEvent(\n new CustomEvent(\"scaling-changed\", {\n detail: { scalingFactor: newFactor, config },\n })\n );\n}\n\n/**\n * Get the current scaling factor\n * @returns The current scaling factor\n */\nexport function getScalingFactor(): number {\n return scalingFactor.get();\n}\n\n/**\n * Convert a design pixel value to scaled pixels\n * @param designPx - The design pixel value (based on 280px width)\n * @returns The scaled pixel value\n */\nexport function scale(designPx: number): number {\n return designPx * scalingFactor.get();\n}\n\n/**\n * Convert a scaled pixel value back to design pixels\n * @param scaledPx - The scaled pixel value\n * @returns The design pixel value\n */\nexport function unscale(scaledPx: number): number {\n const factor = scalingFactor.get();\n return factor === 0 ? scaledPx : scaledPx / factor;\n}\n\n// ============================================================================\n// Unified Initialization\n// ============================================================================\n\n/**\n * Initialize device detection and scaling\n * Sets CSS classes (.mobile/.desktop) and --sf custom property\n */\nexport function initDeviceDetection(): DeviceInfo {\n const deviceInfo = getDeviceInfo();\n\n if (typeof document === \"undefined\") {\n return deviceInfo;\n }\n\n // Set device class on html element\n if (deviceInfo.isMobile) {\n document.documentElement.classList.add(\"mobile\");\n document.documentElement.classList.remove(\"desktop\");\n } else {\n document.documentElement.classList.add(\"desktop\");\n document.documentElement.classList.remove(\"mobile\");\n }\n\n // Update scaling factor (handles --sf CSS property)\n updateScalingFactor();\n\n // Log device info\n const factor = scalingFactor.get();\n if (deviceInfo.isMobile) {\n console.log(\n `[DS one] Mobile device detected - ${deviceInfo.deviceType} (${deviceInfo.screenWidth}x${deviceInfo.screenHeight}), scaling factor: ${factor.toFixed(2)}`\n );\n } else {\n console.log(\n `[DS one] Desktop device detected (${deviceInfo.screenWidth}x${deviceInfo.screenHeight})`\n );\n }\n\n // Log additional details in development mode\n if (typeof window !== \"undefined\" && (window as any).DS_ONE_DEBUG) {\n console.log(\"[DS one] Device Info:\", {\n type: deviceInfo.deviceType,\n isMobile: deviceInfo.isMobile,\n isTablet: deviceInfo.isTablet,\n isDesktop: deviceInfo.isDesktop,\n isTouchCapable: deviceInfo.isTouchCapable,\n viewport: `${deviceInfo.screenWidth}x${deviceInfo.screenHeight}`,\n scalingFactor: factor,\n userAgent: deviceInfo.userAgent,\n });\n }\n\n return deviceInfo;\n}\n\n// Auto-initialize when module loads\nif (typeof window !== \"undefined\") {\n // Wait for DOM to be ready\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => {\n initDeviceDetection();\n });\n } else {\n // DOM is already ready\n initDeviceDetection();\n }\n\n // Single debounced resize handler for both device detection + scaling\n let resizeTimeout: ReturnType<typeof setTimeout>;\n window.addEventListener(\"resize\", () => {\n clearTimeout(resizeTimeout);\n resizeTimeout = setTimeout(() => {\n initDeviceDetection();\n }, 100);\n });\n\n // Also handle orientation change\n window.addEventListener(\"orientationchange\", () => {\n setTimeout(initDeviceDetection, 100);\n });\n}\n\n// ============================================================================\n// App-like Behavior\n// ============================================================================\n\n/**\n * Disable double-tap to zoom in the browser (app-like behavior)\n * Prevents all zoom gestures including double-tap and pinch-to-zoom\n */\nexport function applike(): void {\n if (typeof document === \"undefined\" || typeof window === \"undefined\") {\n return;\n }\n\n // Set viewport meta tag to prevent zoom - this is the most important step\n let viewport = document.querySelector('meta[name=\"viewport\"]');\n if (!viewport) {\n viewport = document.createElement(\"meta\");\n viewport.setAttribute(\"name\", \"viewport\");\n document.head.appendChild(viewport);\n }\n viewport.setAttribute(\n \"content\",\n \"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\"\n );\n\n // Apply touch-action: pan-x pan-y globally to prevent zoom but allow panning\n const style = document.createElement(\"style\");\n style.id = \"ds-one-applike-style\";\n style.textContent = `\n * {\n touch-action: pan-x pan-y !important;\n -ms-touch-action: pan-x pan-y !important;\n }\n html, body {\n touch-action: pan-x pan-y !important;\n -ms-touch-action: pan-x pan-y !important;\n }\n `;\n // Remove existing style if present\n const existingStyle = document.getElementById(\"ds-one-applike-style\");\n if (existingStyle) {\n existingStyle.remove();\n }\n document.head.appendChild(style);\n\n // Track touch events to prevent double-tap zoom\n let lastTouchEnd = 0;\n let touchStartTime = 0;\n\n const preventZoom = (event: TouchEvent | WheelEvent | Event) => {\n // Prevent pinch zoom (two fingers)\n if (event instanceof TouchEvent) {\n if (event.touches.length > 1) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n const now = Date.now();\n\n if (event.type === \"touchstart\") {\n // If touchstart happens within 300ms of last touchend, it's likely a double-tap\n if (now - lastTouchEnd < 300) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n touchStartTime = now;\n } else if (event.type === \"touchend\") {\n const touchDuration = now - touchStartTime;\n // If this is a quick tap (< 300ms) and happened soon after previous touchend, prevent it\n if (touchDuration < 300 && now - lastTouchEnd < 300) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n lastTouchEnd = now;\n } else if (event.type === \"touchmove\") {\n // Prevent any touchmove that might trigger zoom\n if (event.touches.length > 1) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n }\n\n // Prevent wheel zoom with ctrl/cmd key (common on trackpads)\n if (event instanceof WheelEvent && (event.ctrlKey || event.metaKey)) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n };\n\n // Use capture phase to catch events earlier\n const options = { passive: false, capture: true };\n\n // Prevent all zoom gestures - use capture phase\n document.addEventListener(\"touchstart\", preventZoom, options);\n document.addEventListener(\"touchmove\", preventZoom, options);\n document.addEventListener(\"touchend\", preventZoom, options);\n document.addEventListener(\"touchcancel\", preventZoom, options);\n\n // Prevent wheel zoom\n document.addEventListener(\"wheel\", preventZoom, options);\n\n // Prevent gesture events (iOS Safari) - use capture phase\n document.addEventListener(\n \"gesturestart\",\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n },\n options\n );\n document.addEventListener(\n \"gesturechange\",\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n },\n options\n );\n document.addEventListener(\n \"gestureend\",\n (e) => {\n e.preventDefault();\n e.stopPropagation();\n },\n options\n );\n}\n","// Define the supported languages using ISO codes (extensible)\nexport type LanguageCode = string;\n\n// Define the structure of our translation data\ntype TranslationData = {\n [key: string]: string;\n};\n\ntype TranslationMap = Record<string, TranslationData>;\n\n// Bundled translations (keys.json may not exist - will use external translations if not available)\n// This is a fallback for when external translations aren't loaded\nlet translationKeys: TranslationMap = {};\n\n// Primary language list – prioritise the 10 requested languages when cycling\nconst LANGUAGE_PRIORITY_ORDER = [\n \"da\",\n \"de\",\n \"en\",\n \"es\",\n \"fr\",\n \"it\",\n \"ja\",\n \"pt\",\n \"sv\",\n \"zh\",\n] as const;\n\nconst LANGUAGE_PRIORITY_LOOKUP = new Map<string, number>(\n LANGUAGE_PRIORITY_ORDER.map((code, index) => [code, index])\n);\n\n// Fallback language names if Intl.DisplayNames is not available\nconst FALLBACK_LANGUAGE_NAMES: Record<string, string> = {\n da: \"Danish\",\n \"da-dk\": \"Danish\",\n de: \"German\",\n \"de-de\": \"German\",\n en: \"English\",\n \"en-us\": \"English\",\n es: \"Spanish\",\n \"es-es\": \"Spanish\",\n fr: \"French\",\n \"fr-fr\": \"French\",\n it: \"Italian\",\n \"it-it\": \"Italian\",\n ja: \"Japanese\",\n \"ja-jp\": \"Japanese\",\n pt: \"Portuguese\",\n \"pt-pt\": \"Portuguese\",\n sv: \"Swedish\",\n \"sv-se\": \"Swedish\",\n zh: \"Chinese\",\n \"zh-cn\": \"Chinese\",\n \"zh-tw\": \"Chinese\",\n \"zh-hans\": \"Chinese\",\n \"zh-hant\": \"Chinese\",\n};\n\nconst DISPLAY_NAME_CACHE = new Map<string, Intl.DisplayNames>();\nlet displayNameFallbackWarningShown = false;\n\n// Declare window property for external translations\ndeclare global {\n interface Window {\n DS_ONE_TRANSLATIONS?: Record<string, TranslationData>;\n DS_ONE_TRANSLATIONS_FILE?: string;\n }\n}\n\n// CDN Loader: Automatically detects and loads translation JSON files\n// for CDN users who want to use external translations\n\nconst DEFAULT_TRANSLATION_FILE = \"./translations.json\";\nlet loadAttempted = false;\n\nfunction normalizeCandidate(path: string): string | null {\n if (!path) {\n return null;\n }\n const trimmed = path.trim();\n if (!trimmed) {\n return null;\n }\n\n if (\n trimmed.startsWith(\"./\") ||\n trimmed.startsWith(\"../\") ||\n trimmed.startsWith(\"/\") ||\n /^https?:\\/\\//i.test(trimmed)\n ) {\n return trimmed;\n }\n\n return `./${trimmed}`;\n}\n\nfunction findAttributeCandidate(): string | null {\n if (typeof document === \"undefined\") {\n return null;\n }\n\n const scriptWithAttribute = document.querySelector(\n \"script[data-ds-one-translations]\"\n );\n const scriptCandidate = scriptWithAttribute?.getAttribute(\n \"data-ds-one-translations\"\n );\n if (scriptCandidate) {\n return scriptCandidate;\n }\n\n const metaCandidate = document\n .querySelector('meta[name=\"ds-one:translations\"]')\n ?.getAttribute(\"content\");\n if (metaCandidate) {\n return metaCandidate;\n }\n\n const linkCandidate = document\n .querySelector('link[rel=\"ds-one-translations\"]')\n ?.getAttribute(\"href\");\n if (linkCandidate) {\n return linkCandidate;\n }\n\n return null;\n}\n\nfunction resolveTranslationSources(): string[] {\n const candidates: string[] = [];\n\n const windowCandidate =\n typeof window !== \"undefined\" ? window.DS_ONE_TRANSLATIONS_FILE : null;\n const attributeCandidate = findAttributeCandidate();\n\n // Only use explicitly configured paths, or the single default\n const windowNormalized = normalizeCandidate(windowCandidate ?? \"\");\n if (windowNormalized) {\n candidates.push(windowNormalized);\n }\n\n const attrNormalized = normalizeCandidate(attributeCandidate ?? \"\");\n if (attrNormalized && !candidates.includes(attrNormalized)) {\n candidates.push(attrNormalized);\n }\n\n // Only try default if no explicit path was configured\n if (candidates.length === 0) {\n candidates.push(DEFAULT_TRANSLATION_FILE);\n }\n\n return candidates;\n}\n\nfunction validateTranslationMap(\n candidate: unknown\n): candidate is TranslationMap {\n if (!candidate || typeof candidate !== \"object\") {\n return false;\n }\n\n return Object.values(candidate).every(\n (entry) => entry && typeof entry === \"object\"\n );\n}\n\nasync function fetchTranslationFile(\n source: string\n): Promise<TranslationMap | null> {\n try {\n const response = await fetch(source);\n\n if (!response.ok) {\n // 404 is expected if no translations file exists - don't log as error\n return null;\n }\n\n const translations = await response.json();\n\n if (!validateTranslationMap(translations)) {\n console.warn(\n `[DS one] Invalid translation format in ${source}. Expected object with language codes as keys.`\n );\n return null;\n }\n\n const languages = Object.keys(translations);\n if (languages.length === 0) {\n console.warn(`[DS one] No languages found in ${source}`);\n return null;\n }\n\n return translations;\n } catch {\n // Silently fail - file likely doesn't exist or isn't valid JSON\n return null;\n }\n}\n\n/**\n * Attempts to load translations from a JSON file in the same directory\n */\nasync function loadExternalTranslations(): Promise<boolean> {\n // Only attempt once\n if (loadAttempted) {\n return false;\n }\n loadAttempted = true;\n\n if (typeof window === \"undefined\") {\n return false;\n }\n\n // Check if translations are already loaded (e.g., by the application)\n if (\n window.DS_ONE_TRANSLATIONS &&\n Object.keys(window.DS_ONE_TRANSLATIONS).length > 0\n ) {\n console.log(\n `[DS one] Translations already loaded (${Object.keys(window.DS_ONE_TRANSLATIONS).length} languages), skipping auto-load`\n );\n return true;\n }\n\n const sources = resolveTranslationSources();\n\n for (const source of sources) {\n const translations = await fetchTranslationFile(source);\n if (!translations) {\n continue;\n }\n\n window.DS_ONE_TRANSLATIONS = translations;\n\n const languages = Object.keys(translations);\n console.log(\n `[DS one] External translations loaded from ${source}: ${languages.length} language(s) – ${languages.join(\", \")}`\n );\n\n window.dispatchEvent(new CustomEvent(\"translations-ready\"));\n return true;\n }\n\n console.info(\n `[DS one] No external translations found at ${sources[0] ?? DEFAULT_TRANSLATION_FILE}. Using bundled translations.`\n );\n\n return false;\n}\n\n// Get translation data - prioritize external, fall back to bundled\nfunction getTranslationData(): TranslationMap {\n // Check for externally loaded translations first (CDN usage)\n if (typeof window !== \"undefined\" && window.DS_ONE_TRANSLATIONS) {\n return window.DS_ONE_TRANSLATIONS;\n }\n\n // Fall back to bundled translations\n return translationKeys as TranslationMap;\n}\n\n// Cached translation data - use getter to always get fresh data\nlet translationData = getTranslationData();\n\nconst defaultLanguage: LanguageCode = \"en\";\n\nfunction extractPrimarySubtag(code: LanguageCode): string {\n if (!code) {\n return \"\";\n }\n return code.toLowerCase().split(/[-_]/)[0] ?? \"\";\n}\n\nfunction getLanguagePriority(code: LanguageCode): number {\n const primary = extractPrimarySubtag(code);\n const priority = LANGUAGE_PRIORITY_LOOKUP.get(primary);\n\n if (typeof priority === \"number\") {\n return priority;\n }\n\n return LANGUAGE_PRIORITY_ORDER.length;\n}\n\nfunction sortLanguageCodes(codes: LanguageCode[]): LanguageCode[] {\n return [...codes].sort((a, b) => {\n const priorityA = getLanguagePriority(a);\n const priorityB = getLanguagePriority(b);\n\n if (priorityA !== priorityB) {\n return priorityA - priorityB;\n }\n\n return a.localeCompare(b);\n });\n}\n\nfunction getDisplayNameForLocale(\n locale: string,\n code: LanguageCode\n): string | undefined {\n const normalizedLocale = locale?.replace(\"_\", \"-\");\n if (!normalizedLocale) {\n return undefined;\n }\n\n try {\n let displayNames = DISPLAY_NAME_CACHE.get(normalizedLocale);\n\n if (!displayNames) {\n displayNames = new Intl.DisplayNames([normalizedLocale], {\n type: \"language\",\n });\n DISPLAY_NAME_CACHE.set(normalizedLocale, displayNames);\n }\n\n const cleanedCode = code.replace(\"_\", \"-\");\n\n // Try full tag first\n const fullMatch = displayNames.of(cleanedCode);\n if (fullMatch && fullMatch !== cleanedCode) {\n return fullMatch;\n }\n\n // Then the primary subtag\n const baseMatch = displayNames.of(extractPrimarySubtag(cleanedCode));\n if (baseMatch) {\n return baseMatch;\n }\n } catch (error) {\n // Intl.DisplayNames may not be supported; fall back gracefully\n if (!displayNameFallbackWarningShown) {\n console.info(\n \"[DS one] Intl.DisplayNames is not available, using fallback language names.\"\n );\n displayNameFallbackWarningShown = true;\n }\n }\n\n return undefined;\n}\n\nfunction getFallbackDisplayName(code: LanguageCode): string | undefined {\n const normalized = code.toLowerCase().replace(\"_\", \"-\");\n const direct = FALLBACK_LANGUAGE_NAMES[normalized];\n\n if (direct) {\n return direct;\n }\n\n const primary = extractPrimarySubtag(normalized);\n return FALLBACK_LANGUAGE_NAMES[primary];\n}\n\nexport function getLanguageDisplayName(\n code: LanguageCode,\n options: { locale?: string } = {}\n): string {\n if (!code) {\n return \"\";\n }\n\n const localesToTry: string[] = [];\n\n if (options.locale) {\n localesToTry.push(options.locale);\n }\n\n if (typeof navigator !== \"undefined\") {\n if (Array.isArray(navigator.languages)) {\n localesToTry.push(...navigator.languages);\n }\n if (navigator.language) {\n localesToTry.push(navigator.language);\n }\n }\n\n localesToTry.push(defaultLanguage);\n localesToTry.push(\"en\");\n\n const tried = new Set<string>();\n\n for (const locale of localesToTry) {\n if (!locale || tried.has(locale)) {\n continue;\n }\n tried.add(locale);\n\n const displayName = getDisplayNameForLocale(locale, code);\n if (displayName) {\n return displayName;\n }\n }\n\n const fallback = getFallbackDisplayName(code);\n if (fallback) {\n return fallback;\n }\n\n // Fall back to the primary subtag in uppercase\n const primary = extractPrimarySubtag(code);\n return primary ? primary.toUpperCase() : code;\n}\n\nconst BROWSER_LANGUAGE_PREFERENCES: Record<string, LanguageCode> = {\n da: \"da\",\n \"da-dk\": \"da\",\n de: \"de\",\n \"de-de\": \"de\",\n en: \"en\",\n \"en-us\": \"en\",\n \"en-gb\": \"en\",\n es: \"es\",\n \"es-es\": \"es\",\n \"es-mx\": \"es\",\n fr: \"fr\",\n \"fr-fr\": \"fr\",\n it: \"it\",\n \"it-it\": \"it\",\n ja: \"ja\",\n \"ja-jp\": \"ja\",\n pt: \"pt\",\n \"pt-pt\": \"pt\",\n \"pt-br\": \"pt\",\n sv: \"sv\",\n \"sv-se\": \"sv\",\n zh: \"zh\",\n \"zh-cn\": \"zh\",\n \"zh-hans\": \"zh\",\n \"zh-tw\": \"zh\",\n \"zh-hant\": \"zh\",\n};\n\nfunction resolvePreferredLanguage(languageTag: string): LanguageCode | null {\n if (!languageTag) {\n return null;\n }\n\n const normalized = languageTag.toLowerCase().replace(\"_\", \"-\");\n\n const directMatch = BROWSER_LANGUAGE_PREFERENCES[normalized];\n if (directMatch) {\n return directMatch;\n }\n\n const primary = extractPrimarySubtag(normalized);\n const primaryMatch = BROWSER_LANGUAGE_PREFERENCES[primary];\n if (primaryMatch) {\n return primaryMatch;\n }\n\n return languageTag as LanguageCode;\n}\n\n// Helper function to get browser language\nexport function getBrowserLanguage(): LanguageCode {\n if (typeof navigator === \"undefined\") {\n return defaultLanguage;\n }\n\n const browserLang = navigator.language;\n\n if (browserLang) {\n const resolved = resolvePreferredLanguage(browserLang);\n if (resolved) {\n return resolved;\n }\n }\n\n if (Array.isArray(navigator.languages)) {\n for (const candidate of navigator.languages) {\n const resolved = resolvePreferredLanguage(candidate);\n if (resolved) {\n return resolved;\n }\n }\n }\n\n return defaultLanguage;\n}\n\n// Get stored language from localStorage\nconst storedLanguage =\n typeof window !== \"undefined\"\n ? ((window.localStorage?.getItem(\n \"ds-one:language\"\n ) as LanguageCode | null) ?? undefined)\n : undefined;\n\n// Create a reactive signal for the current language (Portfolio pattern)\nexport const currentLanguage = {\n value:\n (localStorage.getItem(\"language\") as LanguageCode) || getBrowserLanguage(),\n set: function (lang: LanguageCode) {\n this.value = lang;\n localStorage.setItem(\"language\", lang);\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language: lang },\n bubbles: true,\n composed: true,\n })\n );\n },\n};\n\n// Auto-load translations when this module is imported (for CDN bundle)\nif (typeof window !== \"undefined\") {\n // Wait a bit to ensure the DOM is ready\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => {\n loadExternalTranslations();\n });\n } else {\n // DOM is already ready\n loadExternalTranslations();\n }\n}\n\n// Listen for external translations being loaded\nif (typeof window !== \"undefined\") {\n window.addEventListener(\"translations-ready\", () => {\n // Refresh translation data from external source\n translationData = getTranslationData();\n\n // Dispatch that translations are loaded\n window.dispatchEvent(new CustomEvent(\"translations-loaded\"));\n\n // Dispatch language-changed to update all components\n const currentLang = currentLanguage.value;\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language: currentLang },\n bubbles: true,\n composed: true,\n })\n );\n });\n}\n\n// Initialize translations on module load\n// Use setTimeout to give other parts of the app time to set up event listeners first\nsetTimeout(() => {\n // Since we directly imported the data, just dispatch the events\n window.dispatchEvent(new CustomEvent(\"translations-loaded\"));\n\n // Also dispatch language-changed with the current language\n const currentLang = currentLanguage.value;\n\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language: currentLang },\n bubbles: true,\n composed: true,\n })\n );\n}, 100);\n\n// Get translation by key\nexport function translate(key: string): string {\n const lang = currentLanguage.value;\n\n // Check if key exists in current language\n if (translationData?.[lang]?.[key]) {\n return translationData[lang][key];\n }\n\n // Try fallback to English\n if (lang !== defaultLanguage && translationData?.[defaultLanguage]?.[key]) {\n return translationData[defaultLanguage][key];\n }\n\n console.warn(\n `[DS one (Internationalization)] No translation found for key \"${key}\"`\n );\n return key;\n}\n\nexport function hasTranslation(\n key: string,\n language: LanguageCode = currentLanguage.value\n): boolean {\n if (!key) {\n return false;\n }\n\n const langData = translationData?.[language];\n if (langData && Object.prototype.hasOwnProperty.call(langData, key)) {\n return true;\n }\n\n if (\n language !== defaultLanguage &&\n translationData?.[defaultLanguage] &&\n Object.prototype.hasOwnProperty.call(translationData[defaultLanguage], key)\n ) {\n return true;\n }\n\n return false;\n}\n\n// Get text - synchronous version for components\nexport function getText(key: string): string {\n return translate(key);\n}\n\n// Get available languages - dynamically detect from loaded data\nexport function getAvailableLanguages(): Promise<LanguageCode[]> {\n // Always get fresh translation data\n const currentData = getTranslationData();\n\n if (currentData && Object.keys(currentData).length > 0) {\n const languages = Object.keys(currentData) as LanguageCode[];\n return Promise.resolve(sortLanguageCodes(languages));\n }\n return Promise.resolve([defaultLanguage]);\n}\n\n// Synchronous version for immediate use\nexport function getAvailableLanguagesSync(): LanguageCode[] {\n const currentData = getTranslationData();\n\n if (currentData && Object.keys(currentData).length > 0) {\n return sortLanguageCodes(Object.keys(currentData) as LanguageCode[]);\n }\n return [defaultLanguage];\n}\n\n// Load translations programmatically (for compatibility)\nexport function loadTranslations(\n language: LanguageCode,\n translations: TranslationData\n): void {\n // Since we have static data, this is mainly for compatibility\n console.log(\n `Loading additional translations for ${language}:`,\n Object.keys(translations).length,\n \"keys\"\n );\n}\n\n// Set language (Portfolio pattern)\nexport function setLanguage(language: LanguageCode): void {\n // Update the language in localStorage first\n localStorage.setItem(\"language\", language);\n\n // Then update the signal - this should trigger effects in components\n // that are subscribed to the signal\n currentLanguage.set(language);\n\n // Dispatch a custom event so non-signal-based components can update\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language },\n bubbles: true,\n composed: true,\n })\n );\n}\n","import type { LanguageCode } from \"./i18n\";\nimport type { ThemeType } from \"./theme\";\n\nexport type Preferences = {\n language?: LanguageCode;\n theme?: ThemeType;\n [key: string]: unknown;\n};\n\nexport function savePreferences(preferences: Preferences): void {\n if (typeof window === \"undefined\") {\n return;\n }\n\n try {\n const raw = window.localStorage?.getItem(\"ds-one:preferences\");\n const existing = raw ? (JSON.parse(raw) as Record<string, unknown>) : {};\n const next = { ...existing, ...preferences };\n window.localStorage?.setItem(\"ds-one:preferences\", JSON.stringify(next));\n } catch (error) {\n console.warn(\"ds-one: unable to persist preferences\", error);\n }\n}\n","/**\n * Currency label utilities for regional price display\n *\n * Note: This module provides currency symbols/labels based on language and region.\n * Consider moving this functionality into i18n.ts as it's region/locale-related.\n * Actual price values will be stored in a database or managed via Stripe.\n */\n\nimport type { LanguageCode } from \"./i18n\";\n\ntype PriceLabelOptions = {\n language: LanguageCode;\n country?: string;\n};\n\n// Simple price label mapping based on language/country\nconst PRICE_LABELS: Record<string, string> = {\n da: \"kr.\",\n nb: \"kr.\",\n sv: \"kr.\",\n de: \"€\",\n en: \"$\",\n pt: \"€\",\n es: \"€\",\n zh: \"¥\",\n ja: \"¥\",\n ko: \"₩\",\n};\n\nexport function getPriceLabel(options: PriceLabelOptions): string {\n const { language, country } = options;\n\n // If country is provided, try to map it to a currency\n if (country) {\n const countryUpper = country.toUpperCase();\n // Add country-specific mappings if needed\n if (countryUpper === \"US\" || countryUpper === \"USA\") {\n return \"$\";\n }\n if (countryUpper === \"GB\" || countryUpper === \"UK\") {\n return \"£\";\n }\n if (countryUpper === \"JP\" || countryUpper === \"JPN\") {\n return \"¥\";\n }\n if (countryUpper === \"CN\" || countryUpper === \"CHN\") {\n return \"¥\";\n }\n if (countryUpper === \"KR\" || countryUpper === \"KOR\") {\n return \"₩\";\n }\n }\n\n // Fall back to language-based mapping\n const primaryLang = language.toLowerCase().split(/[-_]/)[0];\n return PRICE_LABELS[primaryLang] || \"$\";\n}\n","import { signal } from \"@lit-labs/signals\";\n\nexport type ThemeType = \"light\" | \"dark\";\n\nfunction getInitialTheme(): ThemeType {\n if (typeof window === \"undefined\") {\n return \"light\";\n }\n\n const storedTheme = window.localStorage?.getItem(\"ds-one:theme\");\n if (storedTheme === \"light\" || storedTheme === \"dark\") {\n return storedTheme;\n }\n\n // Check system preference\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n return prefersDark ? \"dark\" : \"light\";\n}\n\nexport const currentTheme = signal<ThemeType>(getInitialTheme());\n\nexport function setTheme(theme: ThemeType): void {\n if (theme === currentTheme.get()) {\n return;\n }\n\n currentTheme.set(theme);\n\n if (typeof window !== \"undefined\") {\n try {\n window.localStorage?.setItem(\"ds-one:theme\", theme);\n } catch (error) {\n console.warn(\"ds-one: unable to persist theme preference\", error);\n }\n\n const root = window.document?.documentElement;\n if (root) {\n root.classList.remove(\"light-theme\", \"dark-theme\");\n root.classList.add(`${theme}-theme`);\n }\n\n window.dispatchEvent(\n new CustomEvent(\"theme-changed\", { detail: { theme } })\n );\n }\n}\n\n// Initialize theme on load\nif (typeof window !== \"undefined\") {\n const theme = currentTheme.get();\n const root = window.document?.documentElement;\n if (root) {\n root.classList.remove(\"light-theme\", \"dark-theme\");\n root.classList.add(`${theme}-theme`);\n }\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.1\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.1\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { getText, currentLanguage } from \"../0-face/i18n\";\nimport styles from \"./styles/ds-text.css?inline\";\n\n/**\n * A component for displaying text from translations\n *\n * @element ds-text\n * @prop {string} text - The translation text to use\n */\nexport class Text extends LitElement {\n static get properties() {\n return {\n text: { type: String, reflect: true },\n _text: { type: String, state: true },\n };\n }\n\n declare text: string;\n declare _text: string;\n declare _currentLanguage: string;\n private boundHandlers: { languageChanged: EventListener };\n\n constructor() {\n super();\n this.text = \"\";\n this._text = \"\";\n this._currentLanguage = currentLanguage.value;\n\n // Create bound event handlers for proper cleanup\n this.boundHandlers = {\n languageChanged: (() => {\n console.log(\"Language changed event received in ds-text\");\n this._currentLanguage = currentLanguage.value;\n this._updateLanguageAttribute();\n this._loadText();\n this.requestUpdate();\n }) as EventListener,\n };\n }\n\n static styles = unsafeCSS(styles);\n\n connectedCallback() {\n super.connectedCallback();\n this._currentLanguage = currentLanguage.value;\n this._updateLanguageAttribute();\n this._loadText();\n\n // Listen for language changes\n window.addEventListener(\n \"language-changed\",\n this.boundHandlers.languageChanged\n );\n\n // Also listen for translations loaded event\n window.addEventListener(\n \"translations-loaded\",\n this.boundHandlers.languageChanged\n );\n\n // Listen for language changes via events instead of signals\n // The currentLanguage signal changes will trigger the language-changed event\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener(\n \"language-changed\",\n this.boundHandlers.languageChanged\n );\n window.removeEventListener(\n \"translations-loaded\",\n this.boundHandlers.languageChanged\n );\n }\n\n updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties);\n\n if (changedProperties.has(\"text\")) {\n this._loadText();\n }\n }\n\n _updateLanguageAttribute() {\n const lang = this._currentLanguage || currentLanguage.value;\n // Handles \"ja\", \"ja-JP\", \"zh-Hant\", \"zh-Hans\", etc.\n const parts = (lang || \"\").toLowerCase().split(/[-_]/).filter(Boolean);\n const primaryLang = parts[0] || \"\";\n\n if (primaryLang === \"ja\") {\n this.setAttribute(\"data-language\", \"ja\");\n return;\n }\n\n if (primaryLang === \"zh\") {\n // Prefer explicit script; otherwise infer from common regions.\n const hasHans =\n parts.includes(\"hans\") || parts.includes(\"cn\") || parts.includes(\"sg\");\n const hasHant =\n parts.includes(\"hant\") ||\n parts.includes(\"tw\") ||\n parts.includes(\"hk\") ||\n parts.includes(\"mo\");\n\n if (hasHans) this.setAttribute(\"data-language\", \"zh-hans\");\n else if (hasHant) this.setAttribute(\"data-language\", \"zh-hant\");\n else this.setAttribute(\"data-language\", \"zh\");\n return;\n }\n\n this.removeAttribute(\"data-language\");\n }\n\n _loadText() {\n if (!this.text) {\n this._text = \"\";\n this._updateLanguageAttribute();\n this.requestUpdate();\n return;\n }\n\n try {\n const translatedText = getText(this.text);\n this._text = translatedText || this.text;\n } catch (error) {\n console.error(\"Error loading text for text:\", this.text, error);\n this._text = this.text;\n }\n this._updateLanguageAttribute();\n this.requestUpdate();\n }\n\n render() {\n return html`<span>${this._text || this.text}</span>`;\n }\n}\n\ncustomElements.define(\"ds-text\", Text);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-text\": Text;\n }\n}\n","// ds-button.ts\n// Core button component\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport \"./ds-text\";\nimport styles from \"./styles/ds-button.css?inline\";\n\nexport class Button extends LitElement {\n static properties = {\n primary: { type: Boolean, reflect: true },\n secondary: { type: Boolean, reflect: true },\n disabled: { type: Boolean, reflect: true },\n blank: { type: Boolean, reflect: true },\n language: { type: String },\n text: { type: String },\n href: { type: String },\n _loading: { type: Boolean, state: true },\n };\n\n // Public properties\n declare primary: boolean;\n declare secondary: boolean;\n declare disabled: boolean;\n declare blank: boolean;\n declare language: string;\n declare text: string;\n declare href: string;\n\n // Private state\n declare _loading: boolean;\n\n constructor() {\n super();\n this.primary = false; // Default to no-background (no attribute)\n this.secondary = false;\n this.disabled = false;\n this.blank = false;\n this.language = \"en-US\";\n this.text = \"\";\n this.href = \"\";\n this._loading = false;\n }\n\n static styles = unsafeCSS(styles);\n\n connectedCallback() {\n super.connectedCallback();\n }\n\n render() {\n const hasTextProps = this.text;\n\n return html`\n <button\n ?primary=${this.primary}\n ?secondary=${this.secondary}\n ?disabled=${this.disabled}\n @click=${this._handleClick}\n >\n ${hasTextProps\n ? html`<ds-text .text=${this.text}></ds-text>`\n : html`<slot></slot>`}\n </button>\n `;\n }\n\n private _handleClick(e: Event) {\n // Prevent any action if disabled and stop event propagation\n if (this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n\n // If href is provided, navigate to the URL and do not bubble further\n if (this.href) {\n e.preventDefault();\n e.stopPropagation();\n if (this.blank) {\n window.open(this.href, \"_blank\", \"noopener,noreferrer\");\n } else {\n window.location.href = this.href;\n }\n return;\n }\n\n // Otherwise, rely on the native 'click' event bubbling from the inner\n // <button> through the shadow boundary to consumers of <ds-button>.\n // Do not re-dispatch a synthetic 'click' here to avoid duplicate events.\n }\n}\n\ncustomElements.define(\"ds-button\", Button);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-button\": Button;\n }\n}\n","// ds-banner.ts\n// Fixed banner component for notifications/alerts\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport { getText } from \"../0-face/i18n.js\";\nimport \"./ds-text.js\";\nimport \"./ds-button.js\";\nimport styles from \"./styles/ds-banner.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Banner extends LitElement {\n static properties = {\n text: { type: String },\n action: { type: String },\n href: { type: String },\n mailto: { type: String },\n subject: { type: String },\n describe: { type: String },\n appVersion: { type: String, attribute: \"app-version\" },\n variant: { type: String },\n version: { type: String },\n _showVersion: { type: Boolean, state: true },\n };\n\n text: string = \"\";\n action: string = \"\";\n href: string = \"\";\n mailto: string = \"\";\n subject: string = \"\";\n describe: string = \"\";\n appVersion: string = \"\";\n variant: string = \"warning\"; // warning, info, success, error\n version: string = \"\";\n _showVersion: boolean = false;\n\n private _boundUpdate = () => this.requestUpdate();\n\n connectedCallback() {\n super.connectedCallback();\n // Listen for translations and language changes to rebuild mailto URL\n window.addEventListener(\"translations-loaded\", this._boundUpdate);\n window.addEventListener(\"language-changed\", this._boundUpdate);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener(\"translations-loaded\", this._boundUpdate);\n window.removeEventListener(\"language-changed\", this._boundUpdate);\n }\n\n static styles = unsafeCSS(styles);\n\n private _toggleVersion() {\n if (this.version) {\n this._showVersion = !this._showVersion;\n }\n }\n\n private _getMailtoHref(): string {\n // If a direct href is provided, use it\n if (this.href && this.href !== \"#\") return this.href;\n\n // If mailto is provided, build internationalized URL\n if (this.mailto) {\n try {\n const subject = this.subject\n ? getText(this.subject) || this.subject\n : \"Issue report\";\n const describe = this.describe\n ? getText(this.describe) || this.describe\n : \"Describe the issue:\";\n const appVersionLabel = this.appVersion\n ? getText(this.appVersion) || this.appVersion\n : \"App version:\";\n\n const body = `${describe}\\n\\n\\n${appVersionLabel} ${this.version || \"\"}`;\n\n return `mailto:${this.mailto}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;\n } catch (error) {\n // Fallback if translations fail\n return `mailto:${this.mailto}?subject=Issue%20report&body=Describe%20the%20issue%3A%0A%0A%0AApp%20version%3A%20${this.version || \"\"}`;\n }\n }\n\n return \"#\";\n }\n\n render() {\n const mailtoHref = this._getMailtoHref();\n\n return html`\n <div class=\"text-wrapper\" @click=${this._toggleVersion}>\n ${this._showVersion && this.version\n ? html`<ds-text text=${this.version}></ds-text>`\n : html`<ds-text text=${this.text}><slot></slot></ds-text>`}\n </div>\n ${this.action\n ? html`\n <div class=\"action-wrapper\">\n <a href=${mailtoHref}>\n <ds-text text=${this.action}></ds-text>\n </a>\n </div>\n `\n : \"\"}\n `;\n }\n}\n\ncustomElements.define(\"ds-banner\", Banner);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-banner\": Banner;\n }\n}\n","// ds-card.ts\n// Card component for displaying content in a contained box\n\nimport { LitElement, html, css } from \"lit\";\n\nexport class Card extends LitElement {\n static properties = {\n variant: { type: String, reflect: true },\n elevation: { type: Number, reflect: true },\n interactive: { type: Boolean, reflect: true },\n disabled: { type: Boolean, reflect: true },\n padding: { type: String, reflect: true },\n };\n\n declare variant: \"default\" | \"outlined\" | \"elevated\" | \"filled\";\n declare elevation: number;\n declare interactive: boolean;\n declare disabled: boolean;\n declare padding: \"none\" | \"small\" | \"medium\" | \"large\";\n\n constructor() {\n super();\n this.variant = \"default\";\n this.elevation = 1;\n this.interactive = false;\n this.disabled = false;\n this.padding = \"medium\";\n }\n\n static styles = css`\n :host {\n display: block;\n box-sizing: border-box;\n border-radius: calc(var(--025) * var(--sf, 1));\n background-color: var(--card-background, var(--surface-color, #fff));\n color: var(--text-color-primary);\n transition:\n box-shadow 0.2s ease,\n transform 0.2s ease;\n }\n\n :host([variant=\"default\"]) {\n background-color: var(--card-background, var(--surface-color, #fff));\n border: 1px solid var(--border-color, rgba(0, 0, 0, 0.1));\n }\n\n :host([variant=\"outlined\"]) {\n background-color: transparent;\n border: 1px solid var(--border-color, rgba(0, 0, 0, 0.2));\n }\n\n :host([variant=\"elevated\"]) {\n background-color: var(--card-background, var(--surface-color, #fff));\n border: none;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n }\n\n :host([variant=\"filled\"]) {\n background-color: var(\n --card-background-filled,\n var(--surface-color-secondary, #f5f5f5)\n );\n border: none;\n }\n\n :host([elevation=\"0\"]) {\n box-shadow: none;\n }\n\n :host([elevation=\"1\"]) {\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);\n }\n\n :host([elevation=\"2\"]) {\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);\n }\n\n :host([elevation=\"3\"]) {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.16);\n }\n\n :host([interactive]) {\n cursor: pointer;\n }\n\n :host([interactive]:hover:not([disabled])) {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n }\n\n :host([interactive]:active:not([disabled])) {\n transform: translateY(0);\n }\n\n :host([disabled]) {\n opacity: 0.5;\n pointer-events: none;\n }\n\n :host([padding=\"none\"]) {\n padding: 0;\n }\n\n :host([padding=\"small\"]) {\n padding: calc(var(--025) * var(--sf, 1));\n }\n\n :host([padding=\"medium\"]) {\n padding: calc(var(--05) * var(--sf, 1));\n }\n\n :host([padding=\"large\"]) {\n padding: calc(var(--1) * var(--sf, 1));\n }\n\n .card-content {\n width: 100%;\n height: 100%;\n }\n `;\n\n render() {\n return html`\n <div class=\"card-content\" part=\"content\">\n <slot></slot>\n </div>\n `;\n }\n}\n\ncustomElements.define(\"ds-card\", Card);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-card\": Card;\n }\n}\n","import{nothing as t,noChange as i}from\"../lit-html.js\";import{Directive as r,PartType as s,directive as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends r{constructor(i){if(super(i),this.it=t,i.type!==s.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this._t=void 0,this.it=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.it)return this._t;this.it=r;const s=[r];return s.raw=s,this._t={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=n(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","/**\n * Auto-generated icon map - DO NOT EDIT\n * Generated by: bun run scripts/generate-icons.ts\n * Source: DS1/x-icon/*.svg\n */\n\nexport const iconNameToSvgMap: Record<string, string> = {\n \"1x\": \"<svg width=\\\"9\\\" height=\\\"8\\\" viewBox=\\\"0 0 9 8\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M2.20008 2.1176C1.96088 2.3776 1.48248 2.5024 1.09768 2.5024H0.848083V1.4H1.01448C1.68008 1.4 2.21048 1.0464 2.41848 0.307999H3.39608V7.692H2.20008V2.1176Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M4.27992 7.692L5.81912 4.9776L4.39432 2.492H5.68392L6.30792 3.7816C6.41192 3.9896 6.48472 4.1456 6.52632 4.312H6.54712C6.57832 4.156 6.65112 3.9792 6.75512 3.7712L7.33752 2.492H8.60632L7.21272 5.0088L8.75192 7.692H7.44152L6.72392 6.2672C6.61992 6.0592 6.53672 5.872 6.50552 5.7368H6.48472C6.45352 5.8512 6.37032 6.0488 6.25592 6.2672L5.53832 7.692H4.27992Z\\\" fill=\\\"#2A2A2A\\\"/>\\n</svg>\",\n \"1xdots\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M1.28996 0.148769V1.16877H0.269958V0.148769H1.28996Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M6.30998 0.148769V1.16877H5.28998V0.148769H6.30998Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M11.33 0.148769V1.16877H10.31V0.148769H11.33Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M1.28996 5.16877V6.18877H0.269958V5.16877H1.28996Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M6.30998 5.16877V6.18877H5.28998V5.16877H6.30998Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M11.33 5.16877V6.18877H10.31V5.16877H11.33Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M1.28996 10.1888V11.2088H0.269958V10.1888H1.28996Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M6.30998 10.1888V11.2088H5.28998V10.1888H6.30998Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M11.33 10.1888V11.2088H10.31V10.1888H11.33Z\\\" fill=\\\"#2A2A2A\\\"/>\\n</svg>\",\n \"1xgrid\": \"<svg width=\\\"17\\\" height=\\\"17\\\" viewBox=\\\"0 0 17 17\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M0.799988 3.34877L16.8 3.34877V4.36877L0.799988 4.36877V3.34877Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M0.799988 8.16877L16.8 8.16877V9.18877L0.799988 9.18877V8.16877Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M0.799988 12.9888H16.8V14.0088L0.799988 14.0088V12.9888Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M4.48999 16.6788L3.46999 16.6788L3.46999 0.678791L4.48999 0.678772L4.48999 16.6788Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M9.30999 16.6788L8.28999 16.6788L8.28999 0.678791L9.30999 0.678772L9.30999 16.6788Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M14.13 16.6788L13.11 16.6788L13.11 0.678791L14.13 0.678772L14.13 16.6788Z\\\" fill=\\\"#2A2A2A\\\"/>\\n</svg>\",\n \"1xlines\": \"<svg width=\\\"17\\\" height=\\\"12\\\" viewBox=\\\"0 0 17 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M0.799988 0.148769L16.8 0.14877V1.16877L0.799988 1.16877V0.148769Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M0.799988 5.16877L16.8 5.16877V6.18877L0.799988 6.18877V5.16877Z\\\" fill=\\\"#2A2A2A\\\"/>\\n<path d=\\\"M0.799988 10.1888H16.8V11.2088L0.799988 11.2088V10.1888Z\\\" fill=\\\"#2A2A2A\\\"/>\\n</svg>\",\n \"2x\": \"<svg width=\\\"12\\\" height=\\\"8\\\" viewBox=\\\"0 0 12 8\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M3.2 2.12C2.96 2.38 2.48 2.5 2.1 2.5H1.85V1.4H2.01C2.68 1.4 3.21 1.05 3.42 0.31H4.4V7.69H3.2V2.12Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M5.28 7.69L6.82 4.98L5.39 2.49H6.68L7.31 3.78C7.41 3.99 7.48 4.15 7.53 4.31H7.55C7.58 4.16 7.65 3.98 7.76 3.77L8.34 2.49H9.61L8.21 5.01L9.75 7.69H8.44L7.72 6.27C7.62 6.06 7.54 5.87 7.51 5.74H7.48C7.45 5.85 7.37 6.05 7.26 6.27L6.54 7.69H5.28Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"2xdots\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"1\\\" cy=\\\"1\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"4\\\" cy=\\\"1\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"1\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"1\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"1\\\" cy=\\\"4\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"4\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"4\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"1\\\" cy=\\\"7\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"4\\\" cy=\\\"7\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"7\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"7\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"1\\\" cy=\\\"10\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"4\\\" cy=\\\"10\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"7\\\" cy=\\\"10\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"0.75\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"2xgrid\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"0\\\" y=\\\"0\\\" width=\\\"5.5\\\" height=\\\"5.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"6.5\\\" y=\\\"0\\\" width=\\\"5.5\\\" height=\\\"5.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"0\\\" y=\\\"6.5\\\" width=\\\"5.5\\\" height=\\\"5.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"6.5\\\" y=\\\"6.5\\\" width=\\\"5.5\\\" height=\\\"5.5\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"2xlines\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<line x1=\\\"0\\\" y1=\\\"1\\\" x2=\\\"12\\\" y2=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\"/>\\n<line x1=\\\"0\\\" y1=\\\"4\\\" x2=\\\"12\\\" y2=\\\"4\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\"/>\\n<line x1=\\\"0\\\" y1=\\\"7\\\" x2=\\\"12\\\" y2=\\\"7\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\"/>\\n<line x1=\\\"0\\\" y1=\\\"10\\\" x2=\\\"12\\\" y2=\\\"10\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\"/>\\n</svg>\",\n \"4x4\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"0\\\" y=\\\"0\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"3.5\\\" y=\\\"0\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"7\\\" y=\\\"0\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"10.5\\\" y=\\\"0\\\" width=\\\"1.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"0\\\" y=\\\"3.5\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"3.5\\\" y=\\\"3.5\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"7\\\" y=\\\"3.5\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"10.5\\\" y=\\\"3.5\\\" width=\\\"1.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"0\\\" y=\\\"7\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"3.5\\\" y=\\\"7\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"7\\\" y=\\\"7\\\" width=\\\"2.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"10.5\\\" y=\\\"7\\\" width=\\\"1.5\\\" height=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"0\\\" y=\\\"10.5\\\" width=\\\"2.5\\\" height=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"3.5\\\" y=\\\"10.5\\\" width=\\\"2.5\\\" height=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"7\\\" y=\\\"10.5\\\" width=\\\"2.5\\\" height=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<rect x=\\\"10.5\\\" y=\\\"10.5\\\" width=\\\"1.5\\\" height=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"apple\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M12.0351 10.793C11.8838 11.1424 11.7048 11.464 11.4974 11.7597C11.2147 12.1627 10.9832 12.4418 10.8048 12.5967C10.5283 12.851 10.232 12.9812 9.91475 12.9886C9.68698 12.9886 9.41229 12.9238 9.09255 12.7924C8.77176 12.6615 8.47695 12.5967 8.20739 12.5967C7.92469 12.5967 7.62148 12.6615 7.29717 12.7924C6.97237 12.9238 6.71071 12.9924 6.51065 12.9991C6.2064 13.0121 5.90314 12.8782 5.60044 12.5967C5.40723 12.4282 5.16557 12.1393 4.87607 11.73C4.56547 11.293 4.3101 10.7862 4.11005 10.2085C3.8958 9.58443 3.78839 8.98013 3.78839 8.39508C3.78839 7.72492 3.9332 7.14691 4.22325 6.66254C4.45121 6.27348 4.75447 5.96658 5.13403 5.74128C5.51359 5.51597 5.9237 5.40116 6.36535 5.39382C6.60701 5.39382 6.92391 5.46857 7.31773 5.61548C7.71043 5.76288 7.96259 5.83763 8.07314 5.83763C8.15579 5.83763 8.4359 5.75023 8.91077 5.57597C9.35983 5.41437 9.73883 5.34746 10.0493 5.37382C10.8906 5.44172 11.5227 5.77337 11.9431 6.37089C11.1906 6.8268 10.8184 7.46536 10.8258 8.28453C10.8326 8.9226 11.0641 9.45357 11.519 9.87516C11.7252 10.0708 11.9554 10.2221 12.2116 10.3295C12.156 10.4906 12.0974 10.6449 12.0351 10.793ZM10.1055 3.20006C10.1055 3.70017 9.92277 4.16713 9.55859 4.59933C9.11909 5.11315 8.5875 5.41005 8.01104 5.3632C8.0037 5.3032 7.99944 5.24006 7.99944 5.1737C7.99944 4.69359 8.20844 4.17978 8.5796 3.75967C8.76491 3.54696 9.00058 3.37009 9.28637 3.22901C9.57155 3.09002 9.84129 3.01316 10.095 3C10.1024 3.06686 10.1055 3.13372 10.1055 3.20006Z\\\" fill=\\\"black\\\"/>\\n</svg>\",\n \"avatar\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8.00001 8.56915C8.71876 8.56915 9.36524 8.67853 9.93946 8.89728C10.5137 9.11212 11.0039 9.39142 11.4102 9.73517C11.8203 10.0789 12.0434 10.4012 12.2583 10.7957C12.3903 11.0383 12.5357 11.3646 12.6249 11.756C12.6779 11.9885 12.7133 12.2215 12.7133 12.7234H3.28666C3.28666 12.2215 3.32208 11.9885 3.37507 11.756C3.46425 11.3646 3.6096 11.0383 3.74169 10.7957C3.95654 10.4012 4.17962 10.0789 4.58978 9.73517C4.99603 9.39142 5.48626 9.11212 6.06048 8.89728C6.6347 8.67853 7.28126 8.56915 8.00001 8.56915Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M8.00291 7.71044C7.60056 7.71044 7.22947 7.61191 6.88963 7.41484C6.55369 7.2142 6.28416 6.94369 6.08103 6.60331C5.87791 6.26293 5.77634 5.88314 5.77634 5.46394C5.77634 5.04832 5.87791 4.67569 6.08103 4.34607C6.28416 4.01285 6.55564 3.74951 6.89548 3.55603C7.23533 3.35897 7.60447 3.26044 8.00291 3.26044C8.40134 3.26044 8.76853 3.35718 9.10447 3.55065C9.44041 3.74055 9.70994 4.0021 9.91306 4.33532C10.1201 4.66495 10.2236 5.03757 10.2236 5.45319C10.2236 5.87598 10.1201 6.25935 9.91306 6.60331C9.70994 6.94369 9.44041 7.2142 9.10447 7.41484C8.76853 7.61191 8.40134 7.71044 8.00291 7.71044Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"check\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6.68649 11.884L12.443 6.13601L11.736 5.42715L6.68835 10.4827L4.26399 8.0501L3.55696 8.74525L6.68649 11.884Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"close\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M12.1215 4.58087L8.70453 7.99397L12.1176 11.4169L11.4106 12.112L7.99847 8.69108L4.58636 12.112L3.87836 11.4031L7.29535 7.99005L3.88226 4.56716L4.58929 3.87201L8.0014 7.29294L11.4145 3.87201L12.1215 4.58087Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"collapse\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M2 4L6 8L10 4\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n</svg>\",\n \"color\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"3\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"column\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M4.67614 12.123L0.536957 7.98382L4.66961 3.85117L5.38124 4.54974L2.45639 7.47459L13.5436 7.50693L10.6122 4.5886L11.3239 3.87698L15.463 8.01616L11.3304 12.1488L10.6188 11.4503L13.5436 8.5254L2.45639 8.49306L5.38777 11.4114L4.67614 12.123Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"default\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M9.159 15V6.81H6.26V5.77H13.293V6.81H10.394V15H9.159Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M5.1 0V5.10001H0V0H5.1Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"delete\": \"<svg width=\\\"12\\\" height=\\\"14\\\" viewBox=\\\"0 0 12 14\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 3H11M4.5 3V1.5H7.5V3M2.5 3V12.5C2.5 13.0523 2.94772 13.5 3.5 13.5H8.5C9.05228 13.5 9.5 13.0523 9.5 12.5V3\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"4.5\\\" y1=\\\"5.5\\\" x2=\\\"4.5\\\" y2=\\\"11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n<line x1=\\\"7.5\\\" y1=\\\"5.5\\\" x2=\\\"7.5\\\" y2=\\\"11\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\",\n \"dictate\": \"<svg width=\\\"12\\\" height=\\\"14\\\" viewBox=\\\"0 0 12 14\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"3.5\\\" y=\\\"0\\\" width=\\\"5\\\" height=\\\"8\\\" rx=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M1 6C1 8.76142 3.23858 11 6 11C8.76142 11 11 8.76142 11 6\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"6\\\" y1=\\\"11\\\" x2=\\\"6\\\" y2=\\\"14\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\"/>\\n<line x1=\\\"3.5\\\" y1=\\\"14\\\" x2=\\\"8.5\\\" y2=\\\"14\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\"/>\\n</svg>\",\n \"down\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M7.49645 12.5178V2.86102e-06H8.50702L8.50841 12.5174L11.4156 9.61018L12.1095 10.317L8.00173 14.4248L3.8905 10.3135L4.59784 9.60619L7.49645 12.5178Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"duplicate\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"3\\\" y=\\\"3\\\" width=\\\"8\\\" height=\\\"8\\\" rx=\\\"1\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M9 3V2C9 1.44772 8.55228 1 8 1H2C1.44772 1 1 1.44772 1 2V8C1 8.55228 1.44772 9 2 9H3\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n</svg>\",\n \"email\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"11\\\" viewBox=\\\"0 0 16 11\\\" fill=\\\"none\\\">\\n <path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M14.0871 0.989435L0.930906 0.988037L0.930542 11L13.0753 11H14.0871V0.989435ZM7.50709 8.0566L1.94249 2.49201L1.94248 9.98814H13.0753V2.48839L7.50709 8.0566ZM2.85116 2L7.50709 6.65593L12.1515 1.99952L2.85116 2Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"exercise\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M9.11131 4.50523C8.89226 4.50523 8.69548 4.45325 8.52098 4.3493C8.34648 4.24163 8.20539 4.10054 8.09772 3.92604C7.99377 3.75154 7.94179 3.55662 7.94179 3.34128C7.94179 3.12594 7.99377 2.93102 8.09772 2.75652C8.20539 2.5783 8.34648 2.43722 8.52098 2.33326C8.69548 2.2293 8.89226 2.17732 9.11131 2.17732C9.32665 2.17732 9.52157 2.2293 9.69607 2.33326C9.87057 2.43722 10.0098 2.5783 10.1138 2.75652C10.2214 2.93102 10.2753 3.12594 10.2753 3.34128C10.2753 3.55662 10.2214 3.75154 10.1138 3.92604C10.0098 4.10054 9.87057 4.24163 9.69607 4.3493C9.52157 4.45325 9.32665 4.50523 9.11131 4.50523ZM7.29019 9.12207C7.13797 9.03668 6.98389 8.94386 6.82795 8.84361C6.67202 8.73965 6.55692 8.60228 6.48267 8.43149C6.40841 8.25699 6.41584 8.01938 6.50494 7.71864L6.9282 6.19269C6.9579 6.09616 6.94305 6.0219 6.88365 5.96992C6.82424 5.91794 6.7537 5.89567 6.67202 5.90309L5.93132 5.95322L5.70855 7.49031C5.66029 7.83559 5.48022 7.99524 5.16834 7.96925C5.01983 7.9544 4.90659 7.89314 4.82862 7.78547C4.75066 7.67409 4.72281 7.53486 4.74509 7.36778L5.00127 5.47984C5.01983 5.3239 5.07738 5.19952 5.17391 5.1067C5.27044 5.01388 5.39482 4.9619 5.54705 4.95077L7.40715 4.82268C7.89723 4.78555 8.30193 4.83753 8.62123 4.97861C8.94052 5.11598 9.22084 5.34989 9.46217 5.68033L10.3755 6.94453L11.701 6.3542C11.8495 6.28737 11.985 6.27251 12.1075 6.30964C12.2338 6.34677 12.3284 6.43402 12.3915 6.57139C12.4584 6.70877 12.4658 6.83871 12.4138 6.96123C12.3618 7.08376 12.2597 7.17843 12.1075 7.24526L10.4256 7.9971C10.3143 8.04908 10.1992 8.05836 10.0803 8.02495C9.96525 7.99153 9.87429 7.92284 9.80746 7.81889L9.21713 6.9668C9.16143 6.88512 9.09089 6.84985 9.0055 6.86099C8.9201 6.87213 8.86441 6.92596 8.83842 7.0225L8.44301 8.38137L10.4312 9.68456C10.5834 9.7848 10.6688 9.9296 10.6874 10.119C10.7059 10.3083 10.6503 10.4568 10.5203 10.5645L8.69362 12.1183C8.54511 12.2445 8.3966 12.3021 8.24809 12.2909C8.10329 12.2835 7.98634 12.2297 7.89723 12.1294C7.81184 12.0292 7.77286 11.9085 7.78028 11.7674C7.78771 11.6226 7.86382 11.4908 8.00862 11.372L9.30066 10.2526L7.29019 9.12207ZM3.73707 13.6999C3.6294 13.6034 3.56814 13.4772 3.55329 13.3212C3.54215 13.1653 3.60712 13.0186 3.74821 12.8813L5.53034 11.1103L6.15409 8.89373C6.25062 9.01997 6.37128 9.13878 6.51608 9.25016C6.66088 9.35783 6.83352 9.46736 7.03401 9.57874L7.2178 9.68456L6.50494 11.5224C6.46039 11.6338 6.42326 11.7117 6.39356 11.7563C6.36386 11.7971 6.31188 11.8547 6.23762 11.9289L4.51675 13.6275C4.38309 13.7575 4.24572 13.8224 4.10463 13.8224C3.96355 13.8262 3.84103 13.7853 3.73707 13.6999Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"expand\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\">\\n <path d=\\\"M0 5.81415V0H5.80924L5.81842 0.990424H1.70698L11.0089 10.2943L10.9997 6.18585H12V12H6.19076L6.18158 11.0096H10.293L0.99115 1.70573L1.00033 5.81415H0Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"gallery\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M0 16V0H16L0 16ZM0.706055 0.769531V1.80957H3.60547V10H4.83984V1.80957H7.73926V0.769531H0.706055Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"globe\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6.87775 12.5554C7.08028 12.6051 7.28795 12.6416 7.49983 12.664V11.8571C7.2467 11.5176 7.00708 11.1483 6.79982 10.753C6.49693 10.8285 6.20261 10.9278 5.9183 11.0454C6.19879 11.6048 6.53384 12.111 6.87775 12.5554Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M5.19187 8.49193C5.23389 9.09581 5.36568 9.66767 5.55639 10.2017C5.83545 10.0858 6.12511 9.9844 6.42434 9.90232C6.26416 9.4557 6.15312 8.98405 6.11253 8.49193H5.19187Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M6.87775 3.42868C7.08028 3.37904 7.28795 3.34252 7.49983 3.3201V4.12696C7.2467 4.46645 7.00708 4.83584 6.79982 5.23109C6.49693 5.15561 6.20261 5.05627 5.9183 4.93873C6.19879 4.37926 6.53384 3.87306 6.87775 3.42868Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M5.19187 7.49217C5.23389 6.88828 5.36568 6.31643 5.55639 5.7824C5.83545 5.89834 6.12511 5.9997 6.42434 6.08178C6.26416 6.52839 6.15312 7.00004 6.11253 7.49217H5.19187Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M2.30171 7.99205H3.30171C3.30172 7.82319 3.31063 7.65642 3.32801 7.49217C3.42195 6.60422 3.76325 5.79004 4.28172 5.11985C3.98894 4.93686 3.71427 4.74365 3.45958 4.54857C2.73299 5.50512 2.30174 6.69824 2.30171 7.99205Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M2.30171 7.99205C2.30174 9.28585 2.73299 10.479 3.45958 11.4355C3.71427 11.2404 3.98894 11.0472 4.28172 10.8642C3.76325 10.1941 3.42195 9.37987 3.32801 8.49193C3.31063 8.32768 3.30172 8.1609 3.30171 7.99205H2.30171Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M9.12215 12.5552C8.91963 12.6048 8.71196 12.6414 8.50008 12.6638V11.8569C8.75321 11.5174 8.99283 11.148 9.20009 10.7528C9.50298 10.8283 9.7973 10.9276 10.0816 11.0452C9.80112 11.6046 9.46607 12.1108 9.12215 12.5552Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.808 8.49171C10.766 9.0956 10.6342 9.66745 10.4435 10.2015C10.1645 10.0855 9.87479 9.98418 9.57557 9.90211C9.73575 9.45549 9.84678 8.98384 9.88738 8.49171H10.808Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M9.12215 3.42847C8.91963 3.37883 8.71196 3.34231 8.50008 3.31989V4.12675C8.75321 4.46624 8.99283 4.83563 9.20009 5.23088C9.50298 5.1554 9.7973 5.05606 10.0816 4.93852C9.80112 4.37905 9.46607 3.87284 9.12215 3.42847Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.808 7.49196C10.766 6.88807 10.6342 6.31622 10.4435 5.78218C10.1645 5.89813 9.87479 5.99949 9.57557 6.08156C9.73575 6.52818 9.84678 6.99983 9.88738 7.49196H10.808Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M13.6982 7.99205L12.6982 7.99184C12.6982 7.82298 12.6893 7.65621 12.6719 7.49196C12.578 6.60401 12.2367 5.78983 11.7182 5.11964C12.011 4.93665 12.2856 4.74344 12.5403 4.54836C13.2669 5.5049 13.6982 6.69824 13.6982 7.99205Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M13.6982 7.99205C13.6982 9.28585 13.2669 10.4788 12.5403 11.4353C12.2856 11.2402 12.011 11.047 11.7182 10.864C12.2367 10.1938 12.578 9.37966 12.6719 8.49171C12.6893 8.32746 12.6982 8.16069 12.6982 7.99184L13.6982 7.99205Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M6.872 13.5787C7.2366 13.6519 7.61379 13.6903 7.99995 13.6903V12.6903C7.83102 12.6903 7.66416 12.6814 7.49983 12.664C7.28795 12.6416 7.08028 12.6051 6.87775 12.5554C6.14481 12.3758 5.47939 12.0241 4.9267 11.5457C4.62544 11.7252 4.3403 11.9201 4.0736 12.1216C4.83631 12.847 5.79974 13.3633 6.872 13.5787Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M3.45958 11.4355C3.64564 11.6805 3.85108 11.9099 4.0736 12.1216C4.3403 11.9201 4.62544 11.7252 4.9267 11.5457C4.68981 11.3407 4.47363 11.1123 4.28172 10.8642C3.98894 11.0472 3.71427 11.2404 3.45958 11.4355Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M4.9267 11.5457C5.24061 11.3587 5.57202 11.1885 5.9183 11.0454C5.78333 10.7762 5.661 10.4946 5.55639 10.2017C5.10182 10.3906 4.6754 10.6182 4.28172 10.8642C4.47363 11.1123 4.68981 11.3407 4.9267 11.5457Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M5.9183 11.0454C6.20261 10.9278 6.49693 10.8285 6.79982 10.753C6.65732 10.4812 6.53011 10.1972 6.42434 9.90232C6.12511 9.9844 5.83545 10.0858 5.55639 10.2017C5.661 10.4946 5.78333 10.7762 5.9183 11.0454Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M6.79982 10.753C7.02849 10.696 7.26203 10.6526 7.49983 10.6253V9.70209C7.12963 9.73818 6.77058 9.80734 6.42434 9.90232C6.53011 10.1972 6.65732 10.4812 6.79982 10.753Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M7.49983 12.664C7.66416 12.6814 7.83102 12.6903 7.99995 12.6903V7.99205H3.30171C3.30172 8.1609 3.31063 8.32768 3.32801 8.49193H5.19187H6.11253H7.49983V9.70209V10.6253V11.8571V12.664Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M7.99995 12.6903C8.16889 12.6903 8.33575 12.6812 8.50008 12.6638V11.8569V10.6251V9.70188V8.49171H9.88738H10.808H12.6719C12.6893 8.32746 12.6982 8.16069 12.6982 7.99184L7.99995 7.99205V12.6903Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M8.50008 10.6251C8.73788 10.6524 8.97142 10.6958 9.20009 10.7528C9.34259 10.481 9.4698 10.197 9.57557 9.90211C9.22932 9.80713 8.87028 9.73797 8.50008 9.70188V10.6251Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M9.20009 10.7528C9.50298 10.8283 9.7973 10.9276 10.0816 11.0452C10.2166 10.7759 10.3389 10.4944 10.4435 10.2015C10.1645 10.0855 9.87479 9.98418 9.57557 9.90211C9.4698 10.197 9.34259 10.481 9.20009 10.7528Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.0816 11.0452C10.4279 11.1883 10.7593 11.3585 11.0732 11.5455C11.3101 11.3404 11.5263 11.1121 11.7182 10.864C11.3245 10.618 10.8981 10.3904 10.4435 10.2015C10.3389 10.4944 10.2166 10.7759 10.0816 11.0452Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M11.9263 12.1214C12.1488 11.9097 12.3543 11.6803 12.5403 11.4353C12.2856 11.2402 12.011 11.047 11.7182 10.864C11.5263 11.1121 11.3101 11.3404 11.0732 11.5455C11.3745 11.725 11.6596 11.9199 11.9263 12.1214Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M7.99995 13.6903C8.38611 13.6903 8.7633 13.6517 9.12791 13.5784C10.2002 13.3631 11.1636 12.8468 11.9263 12.1214C11.6596 11.9199 11.3745 11.725 11.0732 11.5455C10.5205 12.0239 9.8551 12.3756 9.12215 12.5552C8.91963 12.6048 8.71196 12.6414 8.50008 12.6638C8.33575 12.6812 8.16889 12.6903 7.99995 12.6903V13.6903Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M9.20009 5.23088C8.97142 5.28786 8.73788 5.33124 8.50008 5.3586V6.28179C8.87028 6.24571 9.22932 6.17654 9.57557 6.08156C9.4698 5.78665 9.34259 5.50265 9.20009 5.23088Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M7.49983 5.35882C7.26203 5.33145 7.02849 5.28807 6.79982 5.23109C6.65732 5.50286 6.53011 5.78686 6.42434 6.08178C6.77058 6.17675 7.12963 6.24592 7.49983 6.282V5.35882Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M6.79982 5.23109C6.49693 5.15561 6.20261 5.05627 5.9183 4.93873C5.78333 5.20794 5.661 5.48948 5.55639 5.7824C5.83545 5.89834 6.12511 5.9997 6.42434 6.08178C6.53011 5.78686 6.65732 5.50286 6.79982 5.23109Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M5.9183 4.93873C5.57202 4.79556 5.24061 4.62538 4.9267 4.43838C4.68981 4.64343 4.47363 4.87178 4.28172 5.11985C4.6754 5.36592 5.10182 5.59352 5.55639 5.7824C5.661 5.48948 5.78333 5.20794 5.9183 4.93873Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M4.0736 3.86253C3.85108 4.07417 3.64564 4.30362 3.45958 4.54857C3.71427 4.74365 3.98894 4.93686 4.28172 5.11985C4.47363 4.87178 4.68981 4.64343 4.9267 4.43838C4.62544 4.25892 4.3403 4.06396 4.0736 3.86253Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M7.99995 2.29381C7.61379 2.29381 7.2366 2.33222 6.872 2.40544C5.79974 2.62077 4.83631 3.13711 4.0736 3.86253C4.3403 4.06396 4.62544 4.25892 4.9267 4.43838C5.47939 3.95997 6.14481 3.60833 6.87775 3.42868C7.08028 3.37904 7.28795 3.34252 7.49983 3.3201C7.66416 3.30271 7.83102 3.2938 7.99995 3.2938V2.29381Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M7.99995 3.2938C7.83102 3.2938 7.66416 3.30271 7.49983 3.3201V4.12696V5.35882V6.282V7.49217H6.11253H5.19187H3.32801C3.31063 7.65642 3.30172 7.82319 3.30171 7.99205H7.99995V3.2938Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M8.50008 3.31989C8.33575 3.3025 8.16889 3.2938 7.99995 3.2938V7.99205L12.6982 7.99184C12.6982 7.82298 12.6893 7.65621 12.6719 7.49196H10.808H9.88738H8.50008V6.28179V5.3586V4.12675V3.31989Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M9.12791 2.40523C8.7633 2.33201 8.38611 2.29381 7.99995 2.29381V3.2938C8.16889 3.2938 8.33575 3.3025 8.50008 3.31989C8.71196 3.34231 8.91963 3.37883 9.12215 3.42847C9.8551 3.60812 10.5205 3.95976 11.0732 4.43817C11.3745 4.25871 11.6596 4.06375 11.9263 3.86232C11.1636 3.13689 10.2002 2.62056 9.12791 2.40523Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.0816 4.93852C9.7973 5.05606 9.50298 5.1554 9.20009 5.23088C9.34259 5.50265 9.4698 5.78665 9.57557 6.08156C9.87479 5.99949 10.1645 5.89813 10.4435 5.78218C10.3389 5.48926 10.2166 5.20772 10.0816 4.93852Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M11.0732 4.43817C10.7593 4.62517 10.4279 4.79535 10.0816 4.93852C10.2166 5.20772 10.3389 5.48926 10.4435 5.78218C10.8981 5.5933 11.3245 5.3657 11.7182 5.11964C11.5263 4.87157 11.3101 4.64322 11.0732 4.43817Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M12.5403 4.54836C12.3543 4.3034 12.1488 4.07396 11.9263 3.86232C11.6596 4.06375 11.3745 4.25871 11.0732 4.43817C11.3101 4.64322 11.5263 4.87157 11.7182 5.11964C12.011 4.93665 12.2856 4.74344 12.5403 4.54836Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"google\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M13.0004 8.11502C13.0004 7.77514 12.9723 7.43342 12.9123 7.09904H8.10071V9.02447H10.8561C10.7418 9.64542 10.3744 10.1948 9.83641 10.5438V11.7932H11.4803C12.4456 10.9223 13.0004 9.63627 13.0004 8.11502Z\\\" fill=\\\"#4285F4\\\"/>\\n<path d=\\\"M8.10074 13.0001C9.47654 13.0001 10.6368 12.5573 11.4821 11.793L9.83829 10.5437C9.38094 10.8487 8.79049 11.0214 8.10259 11.0214C6.77176 11.0214 5.64336 10.1413 5.23849 8.95818H3.54215V10.2461C4.40813 11.9345 6.17195 13.0001 8.10074 13.0001Z\\\" fill=\\\"#34A853\\\"/>\\n<path d=\\\"M5.23681 8.95856C5.02313 8.33756 5.02313 7.66515 5.23681 7.04416V5.75627H3.54234C2.81882 7.1691 2.81863 8.83323 3.54215 10.2461L5.23681 8.95856Z\\\" fill=\\\"#FBBC04\\\"/>\\n<path d=\\\"M8.10074 4.97895C8.82799 4.96793 9.53089 5.23616 10.0576 5.72854L11.514 4.30101C10.5918 3.45222 9.36784 2.98556 8.10074 3.00026C6.17195 3.00026 4.40832 4.06603 3.54234 5.75627L5.23681 7.04416C5.63981 5.85915 6.76989 4.97895 8.10074 4.97895Z\\\" fill=\\\"#EA4335\\\"/>\\n</svg>\",\n \"group\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8.0716 12.8281C7.24826 12.8281 6.52893 12.6201 5.9136 12.2041C5.30693 11.7881 4.83893 11.2161 4.5096 10.4881C4.18893 9.7514 4.02859 8.9194 4.02859 7.99207C4.02859 7.0474 4.19326 6.21107 4.5226 5.48307C4.8606 4.7464 5.34593 4.1744 5.9786 3.76707C6.61993 3.35973 7.38693 3.15607 8.2796 3.15607C9.0596 3.15607 9.70093 3.30773 10.2036 3.61107C10.7149 3.9144 11.0919 4.2784 11.3346 4.70307C11.5859 5.11907 11.7419 5.53507 11.8026 5.95107L10.5806 6.12007C10.4939 5.6174 10.2643 5.17107 9.8916 4.78107C9.5276 4.39107 8.97726 4.19607 8.2406 4.19607C7.62526 4.19607 7.09226 4.3564 6.6416 4.67707C6.1996 4.99773 5.8616 5.44407 5.6276 6.01607C5.40226 6.58807 5.2896 7.25107 5.2896 8.00507C5.2896 9.12307 5.54093 10.0331 6.0436 10.7351C6.55493 11.4371 7.2916 11.7881 8.2536 11.7881C8.94693 11.7881 9.4886 11.6321 9.8786 11.3201C10.2686 10.9994 10.5286 10.6267 10.6586 10.2021C10.7973 9.7774 10.8666 9.37007 10.8666 8.98007V8.82407H8.1626V7.78407H11.9716V12.6071H11.0746L10.9056 11.1251C10.6976 11.6364 10.3423 12.0481 9.8396 12.3601C9.33693 12.6721 8.7476 12.8281 8.0716 12.8281Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"head\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M4.33452 12.7273V3.27274H5.4794V7.48296H10.5206V3.27274H11.6655V12.7273H10.5206V8.49859H5.4794V12.7273H4.33452Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"home\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 5L6 1L11 5V11H7.5V7.5H4.5V11H1V5Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"icon\": \"<svg width=\\\"12\\\" height=\\\"12\\\" viewBox=\\\"0 0 12 12\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"1\\\" y=\\\"1\\\" width=\\\"10\\\" height=\\\"10\\\" rx=\\\"2\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"2.5\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"in\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M12.1361 3.56571L7.99688 7.72965L3.86423 3.57226L4.5628 2.85638L7.48765 5.79873L7.49661 9.59381e-07L8.51508 0L8.50612 5.79873L11.4244 2.84983L12.1361 3.56571Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M3.86395 12.3337L8.00314 8.16974L12.1358 12.3271L11.4372 13.043L8.51238 10.1007L8.49783 16H7.47936L7.4939 10.1007L4.57558 13.0496L3.86395 12.3337Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"left\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"9\\\" viewBox=\\\"0 0 16 9\\\" fill=\\\"none\\\">\\n <path d=\\\"M1.90697 3.60594H15.0636V4.61651L1.90734 4.61791L4.81456 7.52513L4.10774 8.21898L-1.23978e-05 4.11123L4.11122 0L4.81855 0.707338L1.90697 3.60594Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"life\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M3.76595 12.3556L12.2336 12.3556V13.3529L4.76332 13.3529L3.76595 13.3529V12.3556Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M4.76332 13.3529L3.76595 13.3529V7.16597L4.76329 7.16597L4.76332 13.3529Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M12.2336 13.3529H11.2363L11.2363 7.16599L12.2336 7.16597V13.3529Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M11.6251 6.4395H10.6278L10.6278 4.16374L11.6251 4.16372V6.4395Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M7.99993 2.64708L13.4713 8.11835L12.7661 8.82358L7.2947 3.35231L7.99993 2.64708Z\\\" fill=\\\"currentColor\\\"/>\\n<path d=\\\"M3.23393 8.82358L2.52869 8.11832L7.99993 2.64708L8.70517 3.3523L3.23393 8.82358Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"lock\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M8 2.60742C9.53669 2.60746 10.7822 3.85296 10.7822 5.38965V7.64746H11.5996V13.3926H4.40039V7.64746H5.21777V5.38965C5.21779 3.85295 6.4633 2.60744 8 2.60742ZM8 3.62695C7.02663 3.62697 6.23733 4.41628 6.2373 5.38965V7.64746H9.7627V5.38965C9.76267 4.41629 8.97336 3.62699 8 3.62695Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"loop\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M12.0037 1.96826L12.0037 7.12486L14.9023 4.21328L15.6096 4.92061L11.4984 9.03184L7.39064 4.92409L8.08449 4.21727L10.9917 7.12449L10.9931 2.98673L5.00853 3.00323V1.98475L12.0037 1.96826Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M3.99657 14.0318L3.99657 8.87523L1.09796 11.7868L0.390625 11.0795L4.50185 6.96825L8.6096 11.076L7.91576 11.7828L5.00853 8.8756L5.00714 13.0134L10.9917 12.9972V14.0157L3.99657 14.0318Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.9917 12.9972V14.0157H12.0037V12.9973V9.85949L10.9917 9.85912V12.9972Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M3.99657 5.1225V6.14098H5.00853V5.12251V1.98475L3.99657 1.98438V5.1225Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"mic\": \"<svg width=\\\"10\\\" height=\\\"14\\\" viewBox=\\\"0 0 10 14\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"2.5\\\" y=\\\"1\\\" width=\\\"5\\\" height=\\\"7\\\" rx=\\\"2.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M1 6C1 8.76142 2.79086 11 5 11C7.20914 11 9 8.76142 9 6\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"5\\\" y1=\\\"11\\\" x2=\\\"5\\\" y2=\\\"13\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\",\n \"minimize\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8.20203 14.0654V8.21172H14.0465L14.0557 9.20887H9.91936L14.0789 13.3608L13.3587 14.0809L9.19919 9.92904L9.20842 14.0654H8.20203Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M7.77478 1.93962V7.79332H1.93032L1.92109 6.79616H6.05745L1.92109 2.63922L2.64126 1.91905L6.77762 6.07599L6.76839 1.93962H7.77478Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"more\": \"<svg width=\\\"12\\\" height=\\\"4\\\" viewBox=\\\"0 0 12 4\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<circle cx=\\\"2\\\" cy=\\\"2\\\" r=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"6\\\" cy=\\\"2\\\" r=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n<circle cx=\\\"10\\\" cy=\\\"2\\\" r=\\\"1.5\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"note\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M13.9653 3.31348V12.6865H2.03467V3.31348H13.9653ZM3.03467 11.6865H12.9653V4.31348H3.03467V11.6865Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M8.00641 7.08004V7.99996H3.71344V7.08004H8.00641ZM9.9527 5.08004V5.99996H3.71344V5.08004H9.9527Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"open\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1.96 7.81289V1.9592H7.80797L7.81721 2.95636H3.67836L13.0422 12.3235L13.033 8.18711H14.04V14.0408H8.19203L8.18279 13.0436H12.3216L2.95776 3.67653L2.967 7.81289H1.96Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"page\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M12.9956 1.70508V14.2949H3.00439V1.70508H12.9956ZM3.92432 13.375H12.0757V2.625H3.92432V13.375ZM7.87842 7.85742V8.77734H5.12939V7.85742H7.87842ZM10.0259 5.92578V6.8457H5.12939V5.92578H10.0259ZM10.0259 3.99316V4.91406H5.12939V3.99316H10.0259Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"plus\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8.50235 2.6739L8.4996 7.5035L13.3334 7.51044L13.325 8.50193L8.49328 8.49569L8.49951 13.3274L7.49764 13.3268L7.50039 8.49717L2.66663 8.49024L2.67503 7.49875L7.50672 7.50499L7.50117 2.67261L8.50235 2.6739Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"rewind\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M12.0098 8.4352C12.0098 6.22054 10.2147 4.42544 8 4.42544V5.44497C9.65133 5.44497 10.9902 6.78387 10.9902 8.4352C10.9902 10.0865 9.65133 11.4254 8 11.4254C6.34867 11.4254 5.00977 10.0865 5.00977 8.4352H3.99023C3.99023 10.6499 5.78534 12.445 8 12.445C10.2147 12.445 12.0098 10.6499 12.0098 8.4352Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.8353 5.59987C9.26933 4.03387 6.73067 4.03387 5.16467 5.59987L5.88559 6.32079C7.05325 5.15312 8.94675 5.15312 10.1144 6.32079C11.2821 7.48845 11.2821 9.38195 10.1144 10.5496C8.94675 11.7173 7.05325 11.7173 5.88559 10.5496L5.16467 11.2705C6.73067 12.8365 9.26933 12.8365 10.8353 11.2705C12.4013 9.70453 12.4013 7.16587 10.8353 5.59987Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M5.15847 5.59315L5.8743 6.30846H7.93002V7.29888H4.16732V3.53894H5.16306L5.15847 5.59315Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"right\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M13.1566 8.60594H0V9.61651L13.1562 9.61791L10.249 12.5251L10.9558 13.219L15.0636 9.11123L10.9524 5L10.245 5.70734L13.1566 8.60594Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"row\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M3.87698 4.67614L8.01617 0.536957L12.1488 4.66961L11.4503 5.38124L8.5254 2.45639L8.49306 13.5436L11.4114 10.6122L12.123 11.3239L7.98382 15.463L3.85117 11.3304L4.54974 10.6188L7.47459 13.5436L7.50693 2.45639L4.58861 5.38777L3.87698 4.67614Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"school\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M5.48751 11.2972L10.4354 11.2964H5.49535L5.48751 11.2972Z\\\" fill=\\\"currentColor\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M5.49535 13.0423C4.81691 13.0423 4.2588 12.5265 4.19152 11.8658L4.18468 4.00851C4.18468 3.42828 4.65521 2.95775 5.23544 2.95775H10.7646C11.3448 2.95775 11.8153 3.42829 11.8153 4.00851V10.4123C11.8153 10.7646 11.6092 11.0692 11.3109 11.2115V12.1689C11.5526 12.169 11.7527 12.3649 11.7527 12.6066C11.7527 12.8483 11.5526 13.0421 11.3109 13.0423H5.49535ZM5.06017 11.7316C5.06017 11.5214 5.20914 11.3456 5.40729 11.3049L5.48751 11.2972L5.49535 11.2964H10.4354V12.1668H5.49535L5.40729 12.1574C5.20923 12.1167 5.06023 11.9417 5.06017 11.7316ZM10.798 4.09446H5.20187V5.49349H10.798V4.09446Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n \"sdown\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8.50361 11.1717L8.50222 2.92134L7.49165 2.92134L7.49165 11.1713L4.58442 8.26409L3.89058 8.97091L7.99833 13.0787L12.1096 8.96744L11.4022 8.2601L8.50361 11.1717Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"search\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M9.08545 6.62646C9.08545 5.25128 7.9704 4.13623 6.59521 4.13623C5.22003 4.13623 4.10498 5.25128 4.10498 6.62646C4.10498 8.00165 5.22003 9.1167 6.59521 9.1167C7.9704 9.1167 9.08545 8.00165 9.08545 6.62646ZM10.105 6.62646C10.105 7.39551 9.85647 8.10577 9.43701 8.68408L12.9146 12.1616L12.1929 12.8833L8.72412 9.41455C8.13339 9.86631 7.39632 10.1362 6.59521 10.1362C4.6567 10.1362 3.08545 8.56498 3.08545 6.62646C3.08545 4.68795 4.6567 3.1167 6.59521 3.1167C8.53373 3.1167 10.105 4.68795 10.105 6.62646Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"see\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8.07669 3.70416C10.1007 3.70416 11.795 4.74149 12.9566 5.73248C13.5418 6.23179 14.005 6.72991 14.3218 7.10358C14.4804 7.29069 14.6032 7.44763 14.687 7.55865C14.7289 7.61411 14.7615 7.65861 14.7837 7.68951C14.7947 7.70477 14.8031 7.71711 14.8091 7.72565C14.812 7.72971 14.8143 7.73297 14.8159 7.73541C14.8167 7.73644 14.8174 7.73762 14.8179 7.73834L14.8189 7.73932C14.819 7.73947 14.8195 7.74054 14.4409 8.00006L14.8189 8.25983L14.8179 8.2608C14.8174 8.2616 14.8168 8.26345 14.8159 8.26471C14.8142 8.26716 14.812 8.27042 14.8091 8.27448C14.8031 8.28303 14.7947 8.29531 14.7837 8.31061C14.7615 8.34152 14.7289 8.38597 14.687 8.44147C14.6032 8.5525 14.4805 8.70941 14.3218 8.89655C14.005 9.27021 13.5418 9.76835 12.9566 10.2676C11.795 11.2586 10.1006 12.296 8.07669 12.296C6.05499 12.296 4.32326 11.2606 3.12552 10.2725C2.52184 9.77448 2.04049 9.27717 1.7095 8.90436C1.54374 8.71764 1.4147 8.56095 1.32669 8.45026C1.28274 8.39498 1.24843 8.35111 1.22513 8.32037C1.21356 8.30511 1.20507 8.29275 1.19876 8.28424C1.19566 8.28005 1.19275 8.27694 1.19095 8.27448C1.19016 8.27341 1.18952 8.27227 1.189 8.27155L1.18802 8.27057V8.26959L0.99173 8.00006L1.18802 7.73053V7.72955L1.189 7.72858C1.18953 7.72784 1.19013 7.72676 1.19095 7.72565C1.19276 7.72318 1.19563 7.72011 1.19876 7.71588C1.20506 7.70738 1.21356 7.69502 1.22513 7.67975C1.24842 7.64902 1.28277 7.6051 1.32669 7.54987C1.4147 7.43918 1.54374 7.28248 1.7095 7.09576C2.04048 6.72296 2.52183 6.22565 3.12552 5.7276C4.32326 4.73948 6.05499 3.70417 8.07669 3.70416ZM8.07669 4.62213C6.36481 4.62213 4.83715 5.50531 3.7095 6.43561C3.15087 6.8965 2.70364 7.35865 2.39603 7.70514C2.29735 7.81629 2.21535 7.91722 2.147 8.00006C2.21534 8.08289 2.29738 8.18387 2.39603 8.29498C2.70365 8.64147 3.15087 9.10363 3.7095 9.56451C4.83715 10.4948 6.36481 11.378 8.07669 11.378C9.7862 11.378 11.2738 10.4968 12.3609 9.5694C12.9 9.10949 13.3285 8.64854 13.6216 8.3028C13.7189 8.18799 13.7987 8.0844 13.8648 8.00006C13.7987 7.91573 13.7189 7.81214 13.6216 7.69733C13.3285 7.35158 12.9 6.89064 12.3609 6.43073C11.2738 5.50334 9.78624 4.62213 8.07669 4.62213ZM14.9976 8.00006L14.8199 8.25983L14.4409 8.00006L14.8199 7.7403L14.9976 8.00006Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M8.15292 5.66766C9.44109 5.66766 10.4858 6.71157 10.4859 7.99969C10.4859 9.28796 9.44119 10.3327 8.15292 10.3327C6.8648 10.3325 5.82089 9.28786 5.82089 7.99969C5.82106 6.71167 6.8649 5.66783 8.15292 5.66766Z\\\" fill=\\\"#1E1E1E\\\" stroke=\\\"#1E1E1E\\\" stroke-width=\\\"0.81\\\"/>\\n</svg>\",\n \"star\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M4.38604 13.4L5.77704 9.26605L2.42304 7.01705H6.53104L8.00004 2.58405L9.49504 7.01705H13.577L10.223 9.26605L11.64 13.4L8.00004 10.761L4.38604 13.4Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"status\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8.51244 5.31893L8.50618 1.97758H7.4877L7.49396 5.31893L8.51244 5.31893Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.2525 6.46416L12.6108 4.09704L11.8906 3.37687L9.53235 5.74399L10.2525 6.46416Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.6731 8.50438L14.0145 8.49812V7.47965L10.6731 7.4859L10.6731 8.50438Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M9.52792 10.2445L11.895 12.6027L12.6152 11.8826L10.2481 9.52429L9.52792 10.2445Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M7.4877 10.6651L7.49396 14.0064H8.51243L8.50618 10.6651L7.4877 10.6651Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M5.74762 9.51987L3.38935 11.887L4.10952 12.6072L6.46779 10.24L5.74762 9.51987Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M5.32699 7.47965L1.98564 7.48591L1.98564 8.50438L5.32699 8.49812L5.32699 7.47965Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M6.47222 5.73956L4.1051 3.3813L3.38493 4.10147L5.75204 6.45973L6.47222 5.73956Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"sup\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M7.49658 4.82836L7.49798 13.0787L8.50855 13.0787L8.50855 4.82873L11.4158 7.73596L12.1096 7.02913L8.00187 2.92138L3.89064 7.03261L4.59798 7.73995L7.49658 4.82836Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"title\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M7.38251 12.615V4.42501H4.48351V3.38501H11.5165V4.42501H8.61751V12.615H7.38251Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"titlestyle\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<g clip-path=\\\"url(#clip0_117_106)\\\">\\n<path d=\\\"M13.158 12.607V4.41701H10.259V3.37701H16.0011V4.41701H14.393V12.607H13.158Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M8.99904 3.49201V12.492H-0.000961304V3.49201H8.99904Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</g>\\n<defs>\\n<clipPath id=\\\"clip0_117_106\\\">\\n<rect width=\\\"16\\\" height=\\\"16\\\" fill=\\\"white\\\"/>\\n</clipPath>\\n</defs>\\n</svg>\",\n \"undo\": \"<svg width=\\\"12\\\" height=\\\"10\\\" viewBox=\\\"0 0 12 10\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 4L4 1M1 4L4 7M1 4H8C9.65685 4 11 5.34315 11 7V9\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" fill=\\\"none\\\"/>\\n</svg>\",\n \"ungroup\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M8.0715 12.8292C7.24817 12.8292 6.52884 12.6212 5.9135 12.2052C5.30684 11.7892 4.83884 11.2172 4.5095 10.4892C4.18884 9.7525 4.0285 8.9205 4.0285 7.99317C4.0285 7.29763 4.11777 6.66082 4.2963 6.08274L5.34525 7.13254C5.30809 7.40874 5.2895 7.69995 5.2895 8.00617C5.2895 9.12417 5.54084 10.0342 6.0435 10.7362C6.55484 11.4382 7.2915 11.7892 8.2535 11.7892C8.8321 11.7892 9.30507 11.6805 9.67242 11.4632L10.2574 12.0487C10.1317 12.1621 9.99244 12.2662 9.8395 12.3612C9.33684 12.6732 8.7475 12.8292 8.0715 12.8292ZM5.72335 3.94748C5.80556 3.88453 5.89061 3.82476 5.9785 3.76817C6.61984 3.36084 7.38684 3.15717 8.2795 3.15717C9.0595 3.15717 9.70084 3.30884 10.2035 3.61217C10.7148 3.9155 11.0918 4.2795 11.3345 4.70417C11.5858 5.12017 11.7418 5.53617 11.8025 5.95217L10.5805 6.12117C10.4938 5.6185 10.2642 5.17217 9.8915 4.78217C9.5275 4.39217 8.97717 4.19717 8.2405 4.19717C7.62517 4.19717 7.09217 4.3575 6.6415 4.67817C6.60526 4.70447 6.56971 4.73161 6.53486 4.7596L5.72335 3.94748ZM11.9715 10.2003L10.8646 9.09263C10.8646 9.12962 10.8659 9.05532 10.8646 9.09263L10.8665 8.82517H10.5974L9.55815 7.78517H11.9715V10.2003Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M3.81068 3.07916L3.09052 3.79933L12.4514 13.1638L13.1689 12.4463L3.81068 3.07916Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"unhead\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M5.47942 12.7273V8.49858H6.69908L5.68346 7.48296H5.47942V7.28193L4.33453 6.13704V12.7273H5.47942Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M5.47942 3.27273H5.08209L5.47942 3.67006V3.27273Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.5206 3.27273V7.48296H9.28601L10.3016 8.49858H10.5206V8.70465L11.6655 9.84953V3.27273H10.5206Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M10.5206 12.3299V12.7273H10.918L10.5206 12.3299Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M12.319 13.0436L2.96078 3.67653L3.68095 2.95636L13.0392 12.3235L12.319 13.0436Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"unicon\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M4.52511 10.7843L4.52511 6.28572L3.52511 5.2851L3.52511 12.4913H10.7269L9.72748 11.4913H6.14327L8.53309 10.2962L7.78818 9.5508L6.55733 10.1661L7.4805 9.24293L6.77369 8.53569L4.52511 10.7843Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M7.31174 7.99763L8.01844 8.705L8.50529 9.19232L9.24995 9.93768L10.8021 11.4913L11.8012 12.4913L12.4738 13.1646L12.4767 13.1617L13.1782 12.4603L13.194 12.4444L12.5251 11.7749L11.5251 10.774L10.21 9.45758L9.46543 8.71234L8.73861 7.98483L8.03191 7.27746L5.24837 4.4913L4.24932 3.4913L3.83573 3.07731L3.81838 3.09466L3.11694 3.7961L3.11556 3.79748L3.52511 4.20742L4.52511 5.20837L7.31174 7.99763ZM10.8074 11.4913L9.25314 9.93608L10.1882 9.46846L11.5251 10.8062V11.4913H10.8074Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M9.25314 9.93608L10.8074 11.4913H11.5251V10.8062L10.1882 9.46846L9.25314 9.93608Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M12.5251 10.7262V3.4913L5.2947 3.4913L6.29407 4.4913L10.8181 4.4913L8.55537 6.754L9.26218 7.46126L11.5251 5.19833V7.6827L10.1637 8.3633L10.9083 9.10837L11.5251 8.79989V9.72559L12.5251 10.7262ZM12.5251 11.8068L13.1782 12.4603L13.194 12.4444L12.5251 11.7749L11.5251 10.774L10.21 9.45758L9.46543 8.71234L8.73861 7.98483L8.03191 7.27746L5.24837 4.4913L4.24932 3.4913L3.83573 3.07731L3.81838 3.09466L4.21478 3.4913H3.52511V4.20451L3.11694 3.7961L3.11556 3.79748L3.52511 4.20742L4.52511 5.20837L7.31174 7.99763L8.01844 8.705L8.50529 9.19232L9.24995 9.93768L10.8021 11.4913L11.8012 12.4913L12.4738 13.1646L12.4767 13.1617L11.8068 12.4913H12.5251V11.8068ZM10.1882 9.46846L11.5251 10.8062V11.4913H10.8074L9.25314 9.93608L10.1882 9.46846ZM8.72205 8.00138L9.44352 8.7233L8.50832 9.1908L8.02063 8.70281L8.72205 8.00138ZM5.21415 4.4913L8.01524 7.29413L7.31382 7.99556L4.52511 5.20513V4.4913H5.21415Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"unlock\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M10.8617 2.90512C12.3984 2.90512 13.6438 4.15073 13.644 5.68735V7.95688H12.6244V5.68735C12.6243 4.71406 11.835 3.92465 10.8617 3.92465C9.88855 3.92482 9.09917 4.71417 9.09903 5.68735V7.59164H9.81583V13.3377H2.61563V7.59164H8.0795V5.68735C8.07964 4.15084 9.32522 2.90529 10.8617 2.90512ZM3.63516 12.3172H8.79532V8.61118H3.63516V12.3172Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"unmic\": \"<svg width=\\\"10\\\" height=\\\"14\\\" viewBox=\\\"0 0 10 14\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<rect x=\\\"2.5\\\" y=\\\"1\\\" width=\\\"5\\\" height=\\\"7\\\" rx=\\\"2.5\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<path d=\\\"M1 6C1 8.76142 2.79086 11 5 11C7.20914 11 9 8.76142 9 6\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" fill=\\\"none\\\"/>\\n<line x1=\\\"5\\\" y1=\\\"11\\\" x2=\\\"5\\\" y2=\\\"13\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n<line x1=\\\"1\\\" y1=\\\"1\\\" x2=\\\"9\\\" y2=\\\"13\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.2\\\" stroke-linecap=\\\"round\\\"/>\\n</svg>\",\n \"unsee\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M12.4541 12.789L13.1743 12.0688L12.6027 11.4967L12.6 11.4994L12.0137 10.9144C11.7332 11.103 11.4336 11.283 11.1164 11.4457L11.4068 11.7363L11.4046 11.7385L12.4541 12.789Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M5.96371 6.28857L9.79315 10.1213C10.0642 9.91923 10.2966 9.66816 10.4772 9.38122L6.69735 5.60959C6.41317 5.78931 6.16435 6.0199 5.96371 6.28857Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M3.68238 4.00893L3.09583 3.42183L3.79957 2.7181L3.816 2.70167L5.35651 4.24363L6.05746 4.94524L6.712 5.6004L10.4818 9.3738L11.3559 10.2487L12.0181 10.9115L12.6027 11.4967L12.6 11.4994L12.0137 10.9144C11.7332 11.103 11.4336 11.283 11.1164 11.4457L11.4068 11.7363L11.4046 11.7385L11.1136 11.4472L10.4275 10.7604L9.79075 10.1231L5.96207 6.29078L5.08276 5.41064L4.4124 4.73965L3.68238 4.00893ZM12.6382 10.4584C12.7502 10.37 12.8582 10.2812 12.9619 10.1927C13.5472 9.69339 14.0104 9.19525 14.3271 8.82158C14.4858 8.63445 14.6085 8.47754 14.6924 8.36651C14.7343 8.31101 14.7669 8.26656 14.7891 8.23565L14.7965 8.22527L14.8089 8.20741L14.8145 8.19951L14.8213 8.18975C14.8218 8.18905 14.8222 8.18816 14.8225 8.18737L14.8232 8.18584L14.8242 8.18487L15.0029 7.9251L14.8252 7.66533L14.4463 7.9251C14.8248 7.66558 14.8243 7.66451 14.8242 7.66436L14.8232 7.66338L14.8213 7.66045L14.8145 7.65069C14.8085 7.64215 14.8 7.62981 14.7891 7.61455C14.7669 7.58365 14.7343 7.53915 14.6924 7.48369C14.6085 7.37267 14.4858 7.21573 14.3271 7.02862C14.0104 6.65495 13.5472 6.15682 12.9619 5.65752C11.8003 4.66652 10.106 3.6292 8.08203 3.6292C7.38933 3.6292 6.73067 3.75074 6.11587 3.95029L6.86093 4.69373C7.25481 4.60011 7.6629 4.54717 8.08203 4.54717C9.79158 4.54717 11.2792 5.42838 12.3662 6.35576C12.9053 6.81567 13.3338 7.27662 13.627 7.62237C13.7119 7.72259 13.7835 7.81425 13.8443 7.89203L13.8701 7.9251L13.8442 7.95828C13.7834 8.03603 13.7119 8.12766 13.627 8.22783C13.3338 8.57358 12.9053 9.03452 12.3662 9.49444C12.2436 9.599 12.116 9.70298 11.9835 9.80517L12.6382 10.4584ZM5.58478 6.99004L9.09135 10.4996C8.80023 10.6051 8.48611 10.6626 8.15857 10.6626C6.64663 10.6626 5.42096 9.43698 5.42096 7.92504C5.42096 7.59666 5.47878 7.28179 5.58478 6.99004ZM10.371 11.7804L9.65051 11.0593C9.15436 11.2126 8.62958 11.303 8.08203 11.303C6.37015 11.303 4.84249 10.4199 3.71484 9.48955C3.15622 9.02867 2.70899 8.56651 2.40137 8.22002C2.31556 8.12337 2.24231 8.03438 2.17972 7.95834L2.15234 7.9251L2.17972 7.89186C2.24231 7.81582 2.31553 7.72686 2.40137 7.63018C2.70898 7.28369 3.15621 6.82154 3.71484 6.36065C3.93564 6.17849 4.17177 5.99814 4.42162 5.82588L3.76309 5.16678C3.53867 5.32681 3.32756 5.49036 3.13086 5.65264C2.52717 6.15069 2.04582 6.648 1.71484 7.0208C1.54908 7.20752 1.42004 7.36421 1.33203 7.4749C1.28811 7.53014 1.25376 7.57406 1.23047 7.60479C1.22314 7.61446 1.21704 7.62297 1.21196 7.63006L1.2041 7.64092C1.20236 7.64328 1.20069 7.64527 1.19925 7.647L1.19629 7.65069L1.19434 7.65362L1.19336 7.65557L0.99707 7.9251L1.19336 8.19561L1.19434 8.19658L1.19629 8.19951L1.19926 8.20322C1.20071 8.20495 1.20238 8.20695 1.2041 8.20928L1.21195 8.22013C1.21704 8.22723 1.22314 8.23575 1.23047 8.24541C1.25377 8.27615 1.28809 8.32002 1.33203 8.3753C1.42004 8.48598 1.54908 8.64268 1.71484 8.8294C2.04583 9.20221 2.52718 9.69952 3.13086 10.1976C4.3286 11.1857 6.06033 12.221 8.08203 12.221C8.90391 12.221 9.67144 12.0499 10.371 11.7804ZM10.8048 8.62904C10.8644 8.4044 10.8962 8.16843 10.8962 7.92504C10.8962 6.4131 9.6705 5.18743 8.15857 5.18743C7.91309 5.18743 7.67517 5.21974 7.44881 5.28033L10.8048 8.62904ZM9.79315 10.1213L5.96371 6.28857C6.16435 6.0199 6.41317 5.78931 6.69735 5.60959L10.4772 9.38122C10.2966 9.66816 10.0642 9.91923 9.79315 10.1213Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"unstar\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M10.1972 12.3545L7.99995 10.7617L4.3857 13.4014L5.7773 9.2666L2.42281 7.01758H4.86031L10.1972 12.3545Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M13.039 12.6807L12.3193 13.4014L2.96089 4.03418L3.68062 3.31348L13.039 12.6807Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M9.49507 7.01758H13.5771L10.5205 9.06738L7.01363 5.56055L7.99995 2.58496L9.49507 7.01758Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"untitle\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M3.76358 3.06275L3.06079 3.76553L4.35081 5.05677L4.35297 5.05461L7.35278 8.05725V6.65465L5.08414 4.38431H4.45378V3.75347L3.76358 3.06275Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M12.4191 13.1326L13.1232 12.4403L11.9204 11.2257L8.58778 7.89058V9.29342L11.3717 12.0799L11.3695 12.0821L12.4191 13.1326Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M6.16399 4.38431L5.12477 3.34431H11.4868V4.38431H8.58778V6.80992L7.35278 5.57399V4.38431H6.16399ZM7.35278 9.13802V12.5743H8.58778V10.3742L7.35278 9.13802Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M8.58778 7.89058L7.35278 6.65465V8.05725L8.58778 9.29342V7.89058Z\\\" fill=\\\"#1E1E1E\\\"/>\\n<path d=\\\"M4.45378 3.75347V4.38431H5.08414L4.45378 3.75347Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"up\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M7.49645 3.48222V16H8.50702L8.50841 3.48259L11.4156 6.38982L12.1095 5.68299L8.00173 1.57524L3.8905 5.68647L4.59784 6.39381L7.49645 3.48222Z\\\" fill=\\\"#1E1E1E\\\"/>\\n</svg>\",\n \"work\": \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M13.8153 4.78289C13.8153 4.20267 13.3448 3.73213 12.7646 3.73213H8H3.23544C2.65521 3.73213 2.18468 4.20267 2.18468 4.78289V7.31419H13.8153L13.8153 4.78289ZM2.18468 8V11.2171C2.18468 11.7973 2.65521 12.2679 3.23544 12.2679H12.7646C13.3448 12.2679 13.8153 11.7973 13.8153 11.2171L13.8153 8L9.33239 7.98014V8.63222C9.33239 8.92233 9.09712 9.1576 8.807 9.1576H8H7.19299C6.90287 9.1576 6.66761 8.92233 6.66761 8.63222V7.98014L2.18468 8Z\\\" fill=\\\"currentColor\\\"/>\\n</svg>\",\n};\n\nexport type IconName = keyof typeof iconNameToSvgMap;\n\nexport const iconNames = [\n \"1x\",\n \"1xdots\",\n \"1xgrid\",\n \"1xlines\",\n \"2x\",\n \"2xdots\",\n \"2xgrid\",\n \"2xlines\",\n \"4x4\",\n \"apple\",\n \"avatar\",\n \"check\",\n \"close\",\n \"collapse\",\n \"color\",\n \"column\",\n \"default\",\n \"delete\",\n \"dictate\",\n \"down\",\n \"duplicate\",\n \"email\",\n \"exercise\",\n \"expand\",\n \"gallery\",\n \"globe\",\n \"google\",\n \"group\",\n \"head\",\n \"home\",\n \"icon\",\n \"in\",\n \"left\",\n \"life\",\n \"lock\",\n \"loop\",\n \"mic\",\n \"minimize\",\n \"more\",\n \"note\",\n \"open\",\n \"page\",\n \"plus\",\n \"rewind\",\n \"right\",\n \"row\",\n \"school\",\n \"sdown\",\n \"search\",\n \"see\",\n \"star\",\n \"status\",\n \"sup\",\n \"title\",\n \"titlestyle\",\n \"undo\",\n \"ungroup\",\n \"unhead\",\n \"unicon\",\n \"unlock\",\n \"unmic\",\n \"unsee\",\n \"unstar\",\n \"untitle\",\n \"up\",\n \"work\",\n] as const;\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport styles from \"./styles/ds-icon.css?inline\";\nimport { iconNameToSvgMap, type IconName } from \"./generated/ds-icon-map\";\n\nexport type IconVariant = \"glyph\" | \"primary\" | \"secondary\";\n\n/**\n * Icon component that renders SVG icons from the design system icon set.\n *\n * Usage:\n * <ds-icon type=\"close\"></ds-icon>\n * <ds-icon type=\"home\" variant=\"primary\"></ds-icon>\n *\n * Variants:\n * - glyph (default): No background, inherits text color. Like text.\n * - primary: Accent color background with contrasting icon color.\n * - secondary: Subtle background with icon color.\n *\n * Size is controlled by the `--sf` CSS variable (design system scale factor).\n * Color can be customized via `--icon-color` CSS variable.\n */\nexport class Icon extends LitElement {\n static properties = {\n type: { type: String, reflect: true },\n variant: { type: String, reflect: true },\n };\n\n private _type: IconName | \"\" = \"\";\n variant: IconVariant = \"glyph\";\n\n get type(): IconName | \"\" {\n return this._type;\n }\n\n set type(val: IconName | \"\") {\n const oldVal = this._type;\n this._type = val;\n this.requestUpdate(\"type\", oldVal);\n }\n\n static styles = unsafeCSS(styles);\n\n render() {\n if (!this._type) {\n return html`<slot></slot>`;\n }\n\n const svg = iconNameToSvgMap[this._type.toLowerCase() as IconName];\n if (svg) {\n return html`${unsafeHTML(svg)}`;\n }\n\n // Fallback to slot if icon not found\n return html`<slot></slot>`;\n }\n}\n\ncustomElements.define(\"ds-icon\", Icon);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-icon\": Icon;\n }\n}\n\nexport type { IconName };\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport {\n translate,\n currentLanguage,\n getAvailableLanguagesSync,\n getLanguageDisplayName,\n setLanguage,\n} from \"../0-face/i18n\";\nimport type { LanguageCode } from \"../0-face/i18n\";\nimport { currentTheme, setTheme } from \"../0-face/theme\";\nimport type { ThemeType } from \"../0-face/theme\";\nimport { savePreferences } from \"../0-face/preferences\";\nimport \"./ds-button\";\nimport \"./ds-icon\";\nimport \"./ds-text\";\nimport styles from \"./styles/ds-cycle.css?inline\";\n\n// Accent color utilities\nconst saveAccentColor = (color: string) => {\n localStorage.setItem(\"accentColor\", color);\n};\n\nconst getAccentColor = (): string => {\n return localStorage.getItem(\"accentColor\") || \"--sharp-blue\"; // Default color if none set\n};\n\nconst applyAccentColor = () => {\n const color = getAccentColor();\n document.documentElement.style.setProperty(\"--accent-color\", `var(${color})`);\n};\n\n// Notes style medium utilities\nconst saveNotesStyleMedium = (style: string) => {\n localStorage.setItem(\"notesStyleMedium\", style);\n};\n\nconst getNotesStyleMedium = (): string => {\n return localStorage.getItem(\"notesStyleMedium\") || \"note\"; // Default to note\n};\n\n// Note behavior utilities\nconst savePageStyle = (style: string) => {\n localStorage.setItem(\"pageStyle\", style);\n};\n\nconst getPageStyle = (): string => {\n return localStorage.getItem(\"pageStyle\") || \"note\"; // Default to note\n};\n\n// App width utilities removed\n\n// Use a regular class with proper TypeScript type declarations and JSDoc comments\nexport class Cycle extends LitElement {\n // Define reactive properties using Lit's property system\n static get properties() {\n return {\n type: { type: String },\n values: { type: Array },\n currentValue: { type: String, state: true }, // Make this a private state property\n translationsReady: { type: Boolean, state: true }, // Track if translations are loaded\n disabled: { type: Boolean, state: true },\n variant: { type: String },\n };\n }\n\n static styles = unsafeCSS(styles);\n\n // Add runtime properties using the any type\n // These are just for TypeScript and don't create shadowing fields\n declare type: string;\n declare values: string[];\n declare currentValue: string;\n declare translationsReady: boolean;\n declare disabled: boolean;\n declare variant: string;\n\n // Store bound event handlers for proper cleanup\n private boundHandlers: {\n translationsLoaded: EventListener;\n languageChanged: EventListener;\n handleLanguageChanged: EventListener;\n handleThemeChanged: EventListener;\n handleAccentColorChanged: EventListener;\n handleNoteBehaviorChanged: EventListener;\n };\n\n constructor() {\n super();\n\n // Initialize properties with default values\n this.type = \"\";\n this.values = [];\n this.currentValue = \"\";\n this.translationsReady = false;\n this.disabled = false;\n this.variant = \"\";\n\n // Bind event handlers to this instance for proper cleanup\n this.boundHandlers = {\n translationsLoaded: this.handleTranslationsLoaded.bind(this),\n languageChanged: this.handleLanguageChanged.bind(this),\n handleLanguageChanged: this.handleLanguageChanged.bind(this),\n handleThemeChanged: this.handleThemeChanged.bind(this),\n handleAccentColorChanged: this.handleAccentColorChanged.bind(this),\n handleNoteBehaviorChanged: this.handleNoteBehaviorChanged.bind(this),\n };\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n // Add event listeners\n window.addEventListener(\n \"translations-loaded\",\n this.boundHandlers.translationsLoaded\n );\n window.addEventListener(\n \"language-changed\",\n this.boundHandlers.languageChanged\n );\n window.addEventListener(\n \"theme-changed\",\n this.boundHandlers.handleThemeChanged\n );\n window.addEventListener(\n \"accent-color-changed\",\n this.boundHandlers.handleAccentColorChanged\n );\n window.addEventListener(\n \"page-style-changed\",\n this.boundHandlers.handleNoteBehaviorChanged\n );\n\n // Initialize the component\n this.initializeValues();\n }\n\n async initializeValues() {\n if (this.type === \"language\") {\n // Dynamically get available languages from translation data\n const availableLanguages = getAvailableLanguagesSync();\n this.values = availableLanguages;\n this.currentValue = currentLanguage.value;\n } else if (this.type === \"theme\") {\n // Set up theme cycling\n this.values = [\"light\", \"dark\"];\n\n // Set initial value based on current theme\n const currentThemeValue = currentTheme.get();\n this.currentValue = currentThemeValue;\n } else if (this.type === \"accent-color\") {\n // Set up accent color cycling\n this.values = [\n \"--apple-green\",\n \"--every-green\",\n \"--zenith-blue\",\n \"--sharp-blue\",\n \"--pink\",\n \"--tuned-red\",\n \"--orange\",\n \"--yellow\",\n ];\n\n // Set initial value based on current accent color\n const currentAccentColor = getAccentColor();\n this.currentValue = currentAccentColor;\n\n // Apply the accent color to ensure it's active\n applyAccentColor();\n } else if (this.type === \"notes-style-medium\") {\n // Set up notes style medium cycling\n this.values = [\"default\", \"big\", \"gallery\"];\n\n // Set initial value based on current notes style medium\n const currentNotesStyle = getNotesStyleMedium();\n this.currentValue = currentNotesStyle;\n\n // Check if this should be disabled based on note behavior\n const currentPageStyle = getPageStyle();\n this.disabled = currentPageStyle === \"note\";\n } else if (this.type === \"page-style\") {\n // Set up page style cycling\n this.values = [\"note\", \"page\"];\n\n // Set initial value based on current page style\n const currentPageStyle = getPageStyle();\n this.currentValue = currentPageStyle;\n } else if (this.type === \"icon-only\") {\n // Set up icon-only cycling (no label)\n this.values = [\"note\", \"page\"];\n\n // Set initial value\n this.currentValue = this.values[0];\n }\n\n // Request update to re-render with new values\n this.requestUpdate();\n }\n\n ensureThemeInitialized() {\n // Ensure theme is properly initialized\n const savedTheme = localStorage.getItem(\"theme\");\n if (!savedTheme) {\n const prefersDark = window.matchMedia(\n \"(prefers-color-scheme: dark)\"\n ).matches;\n const defaultTheme = prefersDark ? \"dark\" : \"light\";\n localStorage.setItem(\"theme\", defaultTheme);\n document.documentElement.classList.add(`${defaultTheme}-theme`);\n }\n }\n\n attributeChangedCallback(name: string, oldValue: string, newValue: string) {\n super.attributeChangedCallback(name, oldValue, newValue);\n\n if (name === \"type\" && oldValue !== newValue) {\n // Type changed, reinitialize values\n this.initializeValues();\n }\n }\n\n async setupInitialValue() {\n if (this.type === \"language\") {\n // Get current language\n const currentLang = currentLanguage.value;\n this.currentValue = currentLang;\n } else if (this.type === \"theme\") {\n // Get current theme\n const currentThemeValue = currentTheme.get();\n this.currentValue = currentThemeValue;\n } else if (this.type === \"accent-color\") {\n // Get current accent color\n const currentAccentColor = getAccentColor();\n this.currentValue = currentAccentColor;\n\n // Apply the accent color to ensure it's active\n applyAccentColor();\n } else if (this.type === \"notes-style-medium\") {\n // Get current notes style medium\n const currentNotesStyle = getNotesStyleMedium();\n this.currentValue = currentNotesStyle;\n\n // Check if this should be disabled based on note behavior\n const currentPageStyle = getPageStyle();\n this.disabled = currentPageStyle === \"note\";\n } else if (this.type === \"page-style\") {\n // Get current page style\n const currentPageStyle = getPageStyle();\n this.currentValue = currentPageStyle;\n } else if (this.type === \"icon-only\") {\n // Get current page style for icon-only\n const currentPageStyle = getPageStyle();\n this.currentValue = currentPageStyle;\n }\n\n this.requestUpdate();\n }\n\n handleSettingsChanges() {\n // Handle any settings changes that might affect this component\n this.setupInitialValue();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n // Remove event listeners\n window.removeEventListener(\n \"translations-loaded\",\n this.boundHandlers.translationsLoaded\n );\n window.removeEventListener(\n \"language-changed\",\n this.boundHandlers.languageChanged\n );\n window.removeEventListener(\n \"theme-changed\",\n this.boundHandlers.handleThemeChanged\n );\n window.removeEventListener(\n \"accent-color-changed\",\n this.boundHandlers.handleAccentColorChanged\n );\n window.removeEventListener(\n \"page-style-changed\",\n this.boundHandlers.handleNoteBehaviorChanged\n );\n }\n\n handleButtonClick(e: Event) {\n e.preventDefault();\n e.stopPropagation();\n\n // Don't handle clicks if disabled\n if (this.disabled) {\n return;\n }\n\n if (this.type === \"language\") {\n // Cycle through available languages\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newLanguage = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newLanguage;\n\n // Set the new language with view transition like Portfolio\n if ((document as any).startViewTransition) {\n (document as any).startViewTransition(() => {\n setLanguage(newLanguage as LanguageCode);\n });\n } else {\n setLanguage(newLanguage as LanguageCode);\n }\n\n // Save preferences\n savePreferences({ language: newLanguage as LanguageCode });\n\n // Dispatch language change event\n window.dispatchEvent(\n new CustomEvent(\"language-changed\", {\n detail: { language: newLanguage },\n })\n );\n } else if (this.type === \"theme\") {\n // Cycle through themes\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newTheme = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newTheme;\n\n // Set the new theme using the shared helper\n setTheme(newTheme as ThemeType);\n\n // Save preferences\n savePreferences({ theme: newTheme as ThemeType });\n\n // Theme helper already emits the change event, so no manual dispatch here\n } else if (this.type === \"accent-color\") {\n // Cycle through accent colors\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newColor = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newColor;\n\n // Save the new accent color\n saveAccentColor(newColor);\n\n // Apply the new accent color\n applyAccentColor();\n\n // Save preferences\n savePreferences({ accentColor: newColor });\n\n // Dispatch accent color change event\n window.dispatchEvent(\n new CustomEvent(\"accent-color-changed\", {\n detail: { color: newColor },\n })\n );\n } else if (this.type === \"notes-style-medium\") {\n // Cycle through notes style medium options\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newStyle = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newStyle;\n\n // Save the new notes style medium\n saveNotesStyleMedium(newStyle);\n\n // Save preferences\n savePreferences({ notesStyleMedium: newStyle });\n\n // Dispatch notes style medium change event\n window.dispatchEvent(\n new CustomEvent(\"notes-style-medium-changed\", {\n detail: { style: newStyle },\n })\n );\n } else if (this.type === \"page-style\") {\n // Cycle through note behavior options\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newBehavior = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newBehavior;\n\n // Save the new note behavior\n savePageStyle(newBehavior);\n\n // Save preferences\n savePreferences({ pageStyle: newBehavior });\n\n // Dispatch note behavior change event\n window.dispatchEvent(\n new CustomEvent(\"page-style-changed\", {\n detail: { behavior: newBehavior },\n })\n );\n } else if (this.type === \"icon-only\") {\n // Cycle through icon-only options (note/page)\n const currentIndex = this.values.indexOf(this.currentValue);\n const nextIndex = (currentIndex + 1) % this.values.length;\n const newIconOnlyValue = this.values[nextIndex];\n\n // Update current value\n this.currentValue = newIconOnlyValue;\n\n // Save the new page style\n savePageStyle(newIconOnlyValue);\n\n // Save preferences\n savePreferences({ pageStyle: newIconOnlyValue });\n\n // Dispatch page style change event\n window.dispatchEvent(\n new CustomEvent(\"page-style-changed\", {\n detail: { behavior: newIconOnlyValue },\n })\n );\n }\n\n // Request update to re-render\n this.requestUpdate();\n }\n\n getValueDisplay(value: string): string | any {\n if (this.type === \"language\") {\n return getLanguageDisplayName(value, {\n locale: currentLanguage.value,\n });\n } else if (this.type === \"theme\") {\n // Try to get translated theme name\n if (this.translationsReady) {\n const translatedName = translate(value);\n if (translatedName && translatedName !== value) {\n return translatedName;\n }\n }\n\n // Fall back to the theme value itself\n return value;\n } else if (this.type === \"accent-color\") {\n // Get color name from CSS variable\n return this.getColorName(value);\n } else if (this.type === \"notes-style-medium\") {\n // Return SVG icon for notes style medium\n return this.getNotesStyleIcon(value);\n } else if (this.type === \"page-style\") {\n // Return translated text for note behavior\n if (this.translationsReady) {\n const translatedText = translate(value === \"note\" ? \"Note\" : \"Page\");\n if (\n translatedText &&\n translatedText !== (value === \"note\" ? \"Note\" : \"Page\")\n ) {\n return translatedText;\n }\n }\n return value;\n } else if (this.type === \"icon-only\") {\n // Return SVG icon for icon-only type (note/page icons)\n if (value === \"note\") {\n return html`<ds-icon type=\"note\"></ds-icon>`;\n } else if (value === \"page\") {\n return html`<ds-icon type=\"page\"></ds-icon>`;\n }\n return html`<span>${value}</span>`;\n }\n\n return value;\n }\n\n getColorKey(colorVar: string): string {\n // Map CSS variables to translation text keys\n const colorMap: { [key: string]: string } = {\n \"--tuned-red\": \"Red\",\n \"--orange\": \"Orange\",\n \"--yellow\": \"Yellow\",\n \"--apple-green\": \"Apple green\",\n \"--every-green\": \"Green\",\n \"--zenith-blue\": \"Light blue\",\n \"--sharp-blue\": \"Blue\",\n \"--pink\": \"Pink\",\n };\n\n return colorMap[colorVar] || colorVar.replace(\"--\", \"\").replace(\"-\", \" \");\n }\n\n getColorName(colorVar: string): string {\n // Map CSS variables to translation text keys\n const colorMap: { [key: string]: string } = {\n \"--tuned-red\": \"Red\",\n \"--orange\": \"Orange\",\n \"--yellow\": \"Yellow\",\n \"--apple-green\": \"Apple green\",\n \"--every-green\": \"Green\",\n \"--zenith-blue\": \"Light blue\",\n \"--sharp-blue\": \"Blue\",\n \"--pink\": \"Pink\",\n };\n\n const translationText = colorMap[colorVar];\n if (translationText && this.translationsReady) {\n const translatedName = translate(translationText);\n if (translatedName && translatedName !== translationText) {\n return translatedName;\n }\n }\n\n // Fallback to simple name conversion\n return colorVar.replace(\"--\", \"\").replace(\"-\", \" \");\n }\n\n getNotesStyleIcon(style: string) {\n if (style === \"page\") {\n return html`<ds-icon type=\"page\"></ds-icon>`;\n } else if (style === \"note\") {\n return html`<ds-icon type=\"note\"></ds-icon>`;\n } else if (style === \"default\") {\n return html`<ds-icon type=\"default\"></ds-icon>`;\n } else if (style === \"big\") {\n return html`<ds-icon type=\"big\"></ds-icon>`;\n } else if (style === \"gallery\") {\n return html`<ds-icon type=\"gallery\"></ds-icon>`;\n }\n return html`<span>${style}</span>`;\n }\n\n render() {\n return html`\n <div class=\"cycle\">\n <ds-button\n variant=${this.type === \"accent-color\"\n ? \"primary\"\n : this.variant ||\n (this.type === \"language\" || this.type === \"theme\"\n ? \"secondary\"\n : \"primary\")}\n ?disabled=${this.disabled}\n @click=${this.handleButtonClick}\n >\n ${this.type === \"notes-style-medium\" || this.type === \"icon-only\"\n ? html`<span\n style=\"display: inline-flex; align-items: center; gap: var(--025)\"\n >${this.getValueDisplay(this.currentValue)}</span\n >`\n : this.type === \"language\"\n ? html`<ds-text\n text=${this.getValueDisplay(this.currentValue)}\n ></ds-text>`\n : this.type === \"theme\"\n ? html`<ds-text\n text=${this.currentValue === \"light\" ? \"Light\" : \"Dark\"}\n ></ds-text>`\n : this.type === \"accent-color\"\n ? html`<ds-text\n text=${this.getColorKey(this.currentValue)}\n ></ds-text>`\n : this.type === \"page-style\"\n ? html`<ds-text\n text=${this.currentValue === \"note\" ? \"Note\" : \"Page\"}\n ></ds-text>`\n : html`<ds-text\n text=${this.getValueDisplay(this.currentValue)}\n ></ds-text>`}\n </ds-button>\n </div>\n `;\n }\n\n private async waitForTranslations(): Promise<void> {\n return new Promise((resolve) => {\n if (this.translationsReady) {\n resolve();\n return;\n }\n\n const handleTranslationsLoaded = () => {\n this.translationsReady = true;\n resolve();\n };\n\n window.addEventListener(\"translations-loaded\", handleTranslationsLoaded, {\n once: true,\n });\n\n // Timeout after 5 seconds\n setTimeout(() => {\n this.translationsReady = true;\n resolve();\n }, 5000);\n });\n }\n\n private handleTranslationsLoaded() {\n this.translationsReady = true;\n\n // Refresh language values if this is a language cycle\n if (this.type === \"language\") {\n const availableLanguages = getAvailableLanguagesSync();\n this.values = availableLanguages;\n }\n\n this.setupInitialValue();\n }\n\n private handleLanguageChanged() {\n this.setupInitialValue();\n }\n\n private handleThemeChanged() {\n this.setupInitialValue();\n }\n\n private handleAccentColorChanged() {\n this.setupInitialValue();\n }\n\n private handleNoteBehaviorChanged() {\n this.setupInitialValue();\n }\n}\n\ncustomElements.define(\"ds-cycle\", Cycle);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-cycle\": Cycle;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-date.css?inline\";\n\n/**\n * A component for displaying the current year\n *\n * @element ds-date\n */\nexport class DateComponent extends LitElement {\n static styles = unsafeCSS(styles);\n\n render() {\n const year = new Date().getFullYear();\n return html`<span>${year}</span>`;\n }\n}\n\ncustomElements.define(\"ds-date\", DateComponent);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-date\": DateComponent;\n }\n}\n","import { LitElement, html, unsafeCSS, PropertyValues } from \"lit\";\nimport styles from \"./styles/ds-gap.css?inline\";\n\n/**\n * Full-width vertical spacer.\n *\n * Usage:\n * - <ds-gap unit></ds-gap>\n * - <ds-gap double></ds-gap>\n * - <ds-gap size=\"05\"></ds-gap>\n */\nexport class Gap extends LitElement {\n static properties = {\n /** Raw scale token selector (\"01\", \"025\", \"05\", \"08\", \"1\", \"2\", \"3\", \"4\", \"8\", \"12\") */\n size: { type: String, reflect: true },\n };\n\n declare size?: string;\n\n constructor() {\n super();\n }\n\n static styles = unsafeCSS(styles);\n\n updated(changedProperties: PropertyValues<this>) {\n super.updated(changedProperties);\n // Remove size attribute if it's empty or undefined\n if (changedProperties.has(\"size\")) {\n if (!this.size || this.size === \"\") {\n this.removeAttribute(\"size\");\n }\n }\n }\n\n render() {\n return html``;\n }\n}\n\ncustomElements.define(\"ds-gap\", Gap);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-gap\": Gap;\n }\n}\n","// ds-input.ts\n// Input component for text and other input types\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport { getText, currentLanguage } from \"../0-face/i18n\";\nimport \"./ds-text\";\nimport styles from \"./styles/ds-input.css?inline\";\n\nexport class Input extends LitElement {\n static properties = {\n type: { type: String, reflect: true },\n name: { type: String, reflect: true },\n value: { type: String },\n placeholder: { type: String },\n placeholderKey: { type: String, attribute: \"placeholder-key\" },\n label: { type: String },\n labelText: { type: String, attribute: \"label-text\" },\n disabled: { type: Boolean, reflect: true },\n readonly: { type: Boolean, reflect: true },\n required: { type: Boolean, reflect: true },\n autofocus: { type: Boolean },\n autocomplete: { type: String },\n pattern: { type: String },\n minlength: { type: Number },\n maxlength: { type: Number },\n min: { type: String },\n max: { type: String },\n step: { type: String },\n variant: { type: String, reflect: true },\n error: { type: String },\n errorText: { type: String, attribute: \"error-text\" },\n _focused: { type: Boolean, state: true },\n _placeholder: { type: String, state: true },\n _currentLanguage: { type: String, state: true },\n };\n\n declare type:\n | \"text\"\n | \"password\"\n | \"email\"\n | \"number\"\n | \"tel\"\n | \"url\"\n | \"search\"\n | \"date\"\n | \"time\"\n | \"datetime-local\";\n declare name: string;\n declare value: string;\n declare placeholder: string;\n declare placeholderKey: string;\n declare label: string;\n declare labelText: string;\n declare disabled: boolean;\n declare readonly: boolean;\n declare required: boolean;\n declare autofocus: boolean;\n declare autocomplete: string;\n declare pattern: string;\n declare minlength: number;\n declare maxlength: number;\n declare min: string;\n declare max: string;\n declare step: string;\n declare variant: \"default\" | \"filled\" | \"outlined\";\n declare error: string;\n declare errorText: string;\n declare _focused: boolean;\n declare _placeholder: string;\n declare _currentLanguage: string;\n private boundHandlers: { languageChanged: EventListener };\n\n constructor() {\n super();\n this.type = \"text\";\n this.name = \"\";\n this.value = \"\";\n this.placeholder = \"\";\n this.placeholderKey = \"\";\n this.label = \"\";\n this.labelText = \"\";\n this.disabled = false;\n this.readonly = false;\n this.required = false;\n this.autofocus = false;\n this.autocomplete = \"off\";\n this.pattern = \"\";\n this.minlength = 0;\n this.maxlength = 0;\n this.min = \"\";\n this.max = \"\";\n this.step = \"\";\n this.variant = \"default\";\n this.error = \"\";\n this.errorText = \"\";\n this._focused = false;\n this._placeholder = \"\";\n this._currentLanguage = currentLanguage.value;\n \n // Create bound event handlers for proper cleanup\n this.boundHandlers = {\n languageChanged: (() => {\n this._currentLanguage = currentLanguage.value;\n this._loadPlaceholder();\n this.requestUpdate();\n }) as EventListener,\n };\n }\n\n static styles = unsafeCSS(styles);\n\n connectedCallback() {\n super.connectedCallback();\n this._currentLanguage = currentLanguage.value;\n this._loadPlaceholder();\n\n // Listen for language changes\n window.addEventListener(\n \"language-changed\",\n this.boundHandlers.languageChanged\n );\n\n // Also listen for translations loaded event\n window.addEventListener(\n \"translations-loaded\",\n this.boundHandlers.languageChanged\n );\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener(\n \"language-changed\",\n this.boundHandlers.languageChanged\n );\n window.removeEventListener(\n \"translations-loaded\",\n this.boundHandlers.languageChanged\n );\n }\n\n updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties);\n\n if (changedProperties.has(\"placeholder\") || changedProperties.has(\"placeholderKey\")) {\n this._loadPlaceholder();\n }\n }\n\n private _loadPlaceholder() {\n const placeholderText = this.placeholderKey || this.placeholder;\n if (!placeholderText) {\n this._placeholder = \"\";\n this.requestUpdate();\n return;\n }\n\n try {\n const translatedText = getText(placeholderText);\n this._placeholder = translatedText || placeholderText;\n } catch (error) {\n // Fallback to original text if translation fails\n this._placeholder = placeholderText;\n }\n this.requestUpdate();\n }\n\n private _handleInput(e: Event): void {\n const target = e.target as HTMLInputElement;\n this.value = target.value;\n this.dispatchEvent(\n new CustomEvent(\"input-change\", {\n detail: { value: this.value, name: this.name },\n bubbles: true,\n })\n );\n }\n\n private _handleFocus(): void {\n this._focused = true;\n this.dispatchEvent(new CustomEvent(\"input-focus\", { bubbles: true }));\n }\n\n private _handleBlur(): void {\n this._focused = false;\n this.dispatchEvent(new CustomEvent(\"input-blur\", { bubbles: true }));\n }\n\n /**\n * Focus the input element\n */\n focus(): void {\n const input = this.shadowRoot?.querySelector(\"input\");\n input?.focus();\n }\n\n /**\n * Blur the input element\n */\n blur(): void {\n const input = this.shadowRoot?.querySelector(\"input\");\n input?.blur();\n }\n\n /**\n * Select all text in the input\n */\n select(): void {\n const input = this.shadowRoot?.querySelector(\"input\");\n input?.select();\n }\n\n render() {\n const hasError = Boolean(this.error || this.errorText);\n\n return html`\n <div class=\"input-wrapper\">\n ${this.label || this.labelText\n ? html`\n <label for=\"input\">\n ${this.labelText\n ? html`<ds-text .text=${this.labelText}></ds-text>`\n : this.label}\n </label>\n `\n : null}\n\n <div class=\"input-container\">\n <input\n id=\"input\"\n .type=${this.type}\n .name=${this.name}\n .value=${this.value}\n .placeholder=${this._placeholder || this.placeholder}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n ?autofocus=${this.autofocus}\n autocomplete=${this.autocomplete}\n pattern=${this.pattern || \"\"}\n minlength=${this.minlength || \"\"}\n maxlength=${this.maxlength || \"\"}\n min=${this.min}\n max=${this.max}\n step=${this.step}\n class=${hasError ? \"has-error\" : \"\"}\n @input=${this._handleInput}\n @focus=${this._handleFocus}\n @blur=${this._handleBlur}\n />\n </div>\n\n ${hasError\n ? html`\n <div class=\"error-message\">\n ${this.errorText\n ? html`<ds-text .text=${this.errorText}></ds-text>`\n : this.error}\n </div>\n `\n : null}\n </div>\n `;\n }\n}\n\ncustomElements.define(\"ds-input\", Input);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-input\": Input;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport { translate } from \"../0-face/i18n\";\nimport styles from \"./styles/ds-tooltip.css?inline\";\n\nexport class Tooltip extends LitElement {\n static properties = {\n text: { type: String, reflect: true },\n defaultValue: { type: String, reflect: true, attribute: \"default-value\" },\n _text: { state: true },\n _visible: { state: true },\n };\n\n declare text: string;\n declare defaultValue: string;\n private _text: string;\n private _visible: boolean;\n\n private boundWindowHandlers: {\n languageChanged: EventListener;\n translationsLoaded: EventListener;\n };\n private boundHostHandlers: {\n mouseenter: EventListener;\n mouseleave: EventListener;\n focusin: EventListener;\n focusout: EventListener;\n };\n\n constructor() {\n super();\n this.text = \"\";\n this.defaultValue = \"\";\n this._text = \"\";\n this._visible = false;\n\n this.boundWindowHandlers = {\n languageChanged: (() => {\n this._loadText();\n }) as EventListener,\n translationsLoaded: (() => {\n this._loadText();\n }) as EventListener,\n };\n\n this.boundHostHandlers = {\n mouseenter: (() => {\n this._visible = true;\n this.requestUpdate();\n }) as EventListener,\n mouseleave: (() => {\n this._visible = false;\n this.requestUpdate();\n }) as EventListener,\n focusin: (() => {\n this._visible = true;\n this.requestUpdate();\n }) as EventListener,\n focusout: (() => {\n this._visible = false;\n this.requestUpdate();\n }) as EventListener,\n };\n }\n\n static styles = unsafeCSS(styles);\n\n connectedCallback(): void {\n super.connectedCallback();\n this._loadText();\n\n window.addEventListener(\n \"language-changed\",\n this.boundWindowHandlers.languageChanged\n );\n window.addEventListener(\n \"translations-loaded\",\n this.boundWindowHandlers.translationsLoaded\n );\n\n this.addEventListener(\"mouseenter\", this.boundHostHandlers.mouseenter);\n this.addEventListener(\"mouseleave\", this.boundHostHandlers.mouseleave);\n this.addEventListener(\"focusin\", this.boundHostHandlers.focusin);\n this.addEventListener(\"focusout\", this.boundHostHandlers.focusout);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener(\n \"language-changed\",\n this.boundWindowHandlers.languageChanged\n );\n window.removeEventListener(\n \"translations-loaded\",\n this.boundWindowHandlers.translationsLoaded\n );\n\n this.removeEventListener(\"mouseenter\", this.boundHostHandlers.mouseenter);\n this.removeEventListener(\"mouseleave\", this.boundHostHandlers.mouseleave);\n this.removeEventListener(\"focusin\", this.boundHostHandlers.focusin);\n this.removeEventListener(\"focusout\", this.boundHostHandlers.focusout);\n }\n\n updated(changed: Map<string, unknown>): void {\n if (changed.has(\"text\") || changed.has(\"defaultValue\")) {\n this._loadText();\n }\n }\n\n _loadText(): void {\n if (!this.text) {\n this._text = this.defaultValue || \"\";\n this.requestUpdate();\n return;\n }\n\n try {\n const t = translate(this.text);\n this._text = t && t !== this.text ? t : this.defaultValue || this.text;\n } catch (err) {\n console.error(\"ds-tooltip: error loading text for text\", this.text, err);\n this._text = this.defaultValue || this.text;\n }\n this.requestUpdate();\n }\n\n render() {\n const bubbleClasses = [\"bubble\", this._visible ? \"visible\" : \"\"].join(\" \");\n\n return html`\n <span class=\"slot-wrapper\"><slot></slot></span>\n ${this._text\n ? html`<div class=\"${bubbleClasses}\">${this._text}</div>`\n : null}\n `;\n }\n}\n\ncustomElements.define(\"ds-tooltip\", Tooltip);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-tooltip\": Tooltip;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-row.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Row extends LitElement {\n static properties = {\n fill: { type: Boolean, reflect: true },\n centered: { type: Boolean, reflect: true },\n end: { type: Boolean, reflect: true },\n };\n\n declare fill: boolean;\n declare centered: boolean;\n declare end: boolean;\n\n constructor() {\n super();\n this.fill = false;\n this.centered = false;\n this.end = false;\n }\n\n static styles = unsafeCSS(styles);\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ncustomElements.define(\"ds-row\", Row);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-row\": Row;\n }\n}\n","import { LitElement, html, unsafeCSS } from \"lit\";\nimport \"../2-core/ds-text\";\nimport \"../2-core/ds-icon\";\nimport \"./ds-row\";\nimport styles from \"./styles/ds-accordion.css?inline\";\n\n/**\n * Native accordion using <details>/<summary> (no JS toggle logic).\n *\n * Usage (with translation text):\n * <ds-accordion summary=\"How it began\" details=\"Designed in Hokkaido\"></ds-accordion>\n *\n * Usage (with slotted details content):\n * <ds-accordion summary=\"How it began\">\n * <div slot=\"details\">Rich HTML content here</div>\n * </ds-accordion>\n */\nexport class Accordion extends LitElement {\n static properties = {\n summary: { type: String },\n details: { type: String },\n open: { type: Boolean, reflect: true },\n _hasSlottedContent: { type: Boolean, state: true },\n };\n\n declare summary: string;\n declare details: string;\n declare open: boolean;\n declare _hasSlottedContent: boolean;\n\n constructor() {\n super();\n this.summary = \"\";\n this.details = \"\";\n this.open = false;\n this._hasSlottedContent = false;\n }\n\n static styles = unsafeCSS(styles);\n\n private _handleSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n const assignedNodes = slot.assignedNodes({ flatten: true });\n // Filter out empty text nodes (whitespace only)\n const hasContent = assignedNodes.some(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE ||\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim())\n );\n this._hasSlottedContent = hasContent;\n }\n\n render() {\n return html`\n <details ?open=${this.open}>\n <summary>\n <ds-row class=\"summaryRow\" centered>\n <ds-text .text=${this.summary}></ds-text>\n <ds-icon class=\"chevron\" aria-hidden=\"true\">\n <svg\n viewBox=\"0 0 10.157 8.219\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path\n d=\"M5.078 8.219L0 3.141L1.414 1.727L5.078 5.391L8.743 1.727L10.157 3.141L5.078 8.219Z\"\n fill=\"currentColor\"\n />\n </svg>\n </ds-icon>\n </ds-row>\n </summary>\n\n <div class=\"detailsBody\">\n <slot name=\"details\" @slotchange=${this._handleSlotChange}></slot>\n ${!this._hasSlottedContent\n ? html`<ds-text\n class=\"detailsText\"\n .text=${this.details}\n ></ds-text>`\n : \"\"}\n </div>\n </details>\n `;\n }\n}\n\ncustomElements.define(\"ds-accordion\", Accordion);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-accordion\": Accordion;\n }\n}\n","// ds-form.ts\n// Form component for handling form submissions and validation\n\nimport { LitElement, html, css } from \"lit\";\n\nexport interface FormData {\n [key: string]: string | number | boolean | null;\n}\n\nexport interface FormValidationResult {\n valid: boolean;\n errors: { [key: string]: string };\n}\n\nexport class Form extends LitElement {\n static properties = {\n action: { type: String },\n method: { type: String },\n name: { type: String },\n novalidate: { type: Boolean, reflect: true },\n autocomplete: { type: String },\n _isSubmitting: { type: Boolean, state: true },\n };\n\n declare action: string;\n declare method: \"get\" | \"post\";\n declare name: string;\n declare novalidate: boolean;\n declare autocomplete: \"on\" | \"off\";\n declare _isSubmitting: boolean;\n\n constructor() {\n super();\n this.action = \"\";\n this.method = \"post\";\n this.name = \"\";\n this.novalidate = false;\n this.autocomplete = \"on\";\n this._isSubmitting = false;\n }\n\n static styles = css`\n :host {\n display: block;\n width: 100%;\n }\n\n form {\n display: flex;\n flex-direction: column;\n gap: calc(var(--05) * var(--sf, 1));\n width: 100%;\n }\n\n ::slotted(*) {\n width: 100%;\n }\n\n :host([disabled]) {\n opacity: 0.6;\n pointer-events: none;\n }\n `;\n\n /**\n * Get all form data as an object\n */\n getFormData(): FormData {\n const data: FormData = {};\n const slot = this.shadowRoot?.querySelector(\"slot\");\n const elements = slot?.assignedElements({ flatten: true }) || [];\n\n for (const element of elements) {\n this._collectFormData(element as HTMLElement, data);\n }\n\n return data;\n }\n\n private _collectFormData(element: HTMLElement, data: FormData): void {\n // Check if element has name and value properties\n const name = element.getAttribute(\"name\") || (element as any).name;\n if (name) {\n const value = (element as any).value;\n if (value !== undefined) {\n // Handle checkboxes and radio buttons\n if (\n element instanceof HTMLInputElement &&\n (element.type === \"checkbox\" || element.type === \"radio\")\n ) {\n if (element.type === \"checkbox\") {\n data[name] = element.checked;\n } else if (element.type === \"radio\" && element.checked) {\n data[name] = value;\n }\n } else {\n data[name] = value;\n }\n }\n }\n\n // Recursively check children\n const children =\n element.shadowRoot?.querySelectorAll(\"*\") || element.querySelectorAll(\"*\");\n children.forEach((child) => {\n this._collectFormData(child as HTMLElement, data);\n });\n }\n\n /**\n * Validate the form\n */\n validate(): FormValidationResult {\n const result: FormValidationResult = {\n valid: true,\n errors: {},\n };\n\n if (this.novalidate) {\n return result;\n }\n\n const slot = this.shadowRoot?.querySelector(\"slot\");\n const elements = slot?.assignedElements({ flatten: true }) || [];\n\n for (const element of elements) {\n this._validateElement(element as HTMLElement, result);\n }\n\n return result;\n }\n\n private _validateElement(\n element: HTMLElement,\n result: FormValidationResult\n ): void {\n const name = element.getAttribute(\"name\") || (element as any).name;\n\n // Check for custom validation on ds-input elements\n if (element.tagName.toLowerCase() === \"ds-input\") {\n const input = element as any;\n if (input.required && !input.value) {\n result.valid = false;\n result.errors[name || \"unknown\"] = \"This field is required\";\n }\n }\n\n // Check native form elements\n if (\n element instanceof HTMLInputElement ||\n element instanceof HTMLTextAreaElement ||\n element instanceof HTMLSelectElement\n ) {\n if (!element.checkValidity()) {\n result.valid = false;\n result.errors[name || \"unknown\"] = element.validationMessage;\n }\n }\n\n // Recursively check children\n const children =\n element.shadowRoot?.querySelectorAll(\"*\") || element.querySelectorAll(\"*\");\n children.forEach((child) => {\n this._validateElement(child as HTMLElement, result);\n });\n }\n\n /**\n * Reset the form\n */\n reset(): void {\n const slot = this.shadowRoot?.querySelector(\"slot\");\n const elements = slot?.assignedElements({ flatten: true }) || [];\n\n for (const element of elements) {\n this._resetElement(element as HTMLElement);\n }\n\n this.dispatchEvent(new CustomEvent(\"form-reset\", { bubbles: true }));\n }\n\n private _resetElement(element: HTMLElement): void {\n if (\n element instanceof HTMLInputElement ||\n element instanceof HTMLTextAreaElement ||\n element instanceof HTMLSelectElement\n ) {\n if (element instanceof HTMLInputElement && element.type === \"checkbox\") {\n element.checked = false;\n } else {\n element.value = \"\";\n }\n }\n\n // Handle ds-input elements\n if (element.tagName.toLowerCase() === \"ds-input\") {\n (element as any).value = \"\";\n }\n\n // Recursively reset children\n const children =\n element.shadowRoot?.querySelectorAll(\"*\") || element.querySelectorAll(\"*\");\n children.forEach((child) => {\n this._resetElement(child as HTMLElement);\n });\n }\n\n /**\n * Submit the form\n */\n async submit(): Promise<void> {\n if (this._isSubmitting) return;\n\n const validationResult = this.validate();\n if (!validationResult.valid) {\n this.dispatchEvent(\n new CustomEvent(\"form-invalid\", {\n detail: validationResult.errors,\n bubbles: true,\n })\n );\n return;\n }\n\n this._isSubmitting = true;\n const formData = this.getFormData();\n\n this.dispatchEvent(\n new CustomEvent(\"form-submit\", {\n detail: { data: formData },\n bubbles: true,\n })\n );\n\n // If action is provided, submit to the server\n if (this.action) {\n try {\n const response = await fetch(this.action, {\n method: this.method.toUpperCase(),\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(formData),\n });\n\n this.dispatchEvent(\n new CustomEvent(\"form-response\", {\n detail: { response, data: formData },\n bubbles: true,\n })\n );\n } catch (error) {\n this.dispatchEvent(\n new CustomEvent(\"form-error\", {\n detail: { error, data: formData },\n bubbles: true,\n })\n );\n }\n }\n\n this._isSubmitting = false;\n }\n\n private _handleSubmit(e: Event): void {\n e.preventDefault();\n this.submit();\n }\n\n private _handleKeydown(e: KeyboardEvent): void {\n if (e.key === \"Enter\" && !e.shiftKey) {\n const target = e.target as HTMLElement;\n // Don't submit if in a textarea\n if (target.tagName.toLowerCase() !== \"textarea\") {\n e.preventDefault();\n this.submit();\n }\n }\n }\n\n render() {\n return html`\n <form\n .action=${this.action}\n .method=${this.method}\n .name=${this.name}\n ?novalidate=${this.novalidate}\n autocomplete=${this.autocomplete}\n @submit=${this._handleSubmit}\n @keydown=${this._handleKeydown}\n >\n <slot></slot>\n </form>\n `;\n }\n}\n\ncustomElements.define(\"ds-form\", Form);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-form\": Form;\n }\n}\n","// ds-list.ts\n// Unit component that\n// can be used to show a list of items consisting of components from core\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-list.css?inline\";\n\nexport class List extends LitElement {\n static styles = unsafeCSS(styles);\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ncustomElements.define(\"ds-list\", List);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-list\": List;\n }\n}\n\n","// ds-table.ts\n// Data table component\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-table.css?inline\";\n\nexport interface TableRow {\n product: string;\n users: string;\n retention: string;\n status?: string;\n}\n\nexport class DsTable extends LitElement {\n static properties = {\n data: { type: Array },\n columns: { type: Array },\n showStatus: { type: Boolean, attribute: \"show-status\" },\n };\n\n declare data: TableRow[];\n declare columns: string[];\n declare showStatus: boolean;\n\n constructor() {\n super();\n this.data = [];\n this.columns = [\"Product\", \"Users\", \"Retention\"];\n this.showStatus = true;\n }\n\n static styles = unsafeCSS(styles);\n\n render() {\n return html`\n <div class=\"table-container\">\n <div class=\"table-header\">\n <div class=\"header-cell product-cell\">Product</div>\n <div class=\"header-cell users-cell\">Users</div>\n <div class=\"header-cell retention-cell\">Retention</div>\n ${this.showStatus ? html`<div class=\"header-cell\">Status</div>` : \"\"}\n </div>\n <div class=\"table-body\">\n ${this.data.map(\n (row, rowIndex) => html`\n <div class=\"data-cell product-cell\">${row.product}</div>\n <div class=\"data-cell users-cell\">${row.users}</div>\n <div class=\"data-cell retention-cell\">${row.retention}</div>\n ${this.showStatus\n ? html`<div class=\"data-cell status-cell\">\n ${row.status || \"Pending\"}\n </div>`\n : \"\"}\n `\n )}\n </div>\n </div>\n `;\n }\n}\n\ncustomElements.define(\"ds-table\", DsTable);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-table\": DsTable;\n }\n}\n","// ds-container.ts\n// Container component with responsive width constraints\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-container.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Container extends LitElement {\n static styles = unsafeCSS(styles);\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ncustomElements.define(\"ds-container\", Container);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-container\": Container;\n }\n}\n","// ds-grid.ts\n// Simple grid layout component\n\nimport { LitElement, html, unsafeCSS } from \"lit\";\nimport { detectMobileDevice } from \"../0-face/device\";\nimport styles from \"./styles/ds-grid.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Grid extends LitElement {\n static properties = {\n align: { type: String },\n };\n\n align?: string;\n private resizeObserver?: () => void;\n private resizeTimeout?: any;\n\n static styles = unsafeCSS(styles);\n\n connectedCallback() {\n super.connectedCallback();\n this.updateMobileClass();\n\n // Listen for resize events to update mobile class\n this.resizeObserver = () => {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n this.resizeTimeout = setTimeout(() => {\n this.updateMobileClass();\n }, 100);\n };\n window.addEventListener(\"resize\", this.resizeObserver);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n if (this.resizeObserver) {\n window.removeEventListener(\"resize\", this.resizeObserver);\n }\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n }\n\n private updateMobileClass() {\n const isMobile = detectMobileDevice();\n if (isMobile) {\n this.classList.add(\"mobile\");\n this.classList.remove(\"desktop\");\n } else {\n this.classList.add(\"desktop\");\n this.classList.remove(\"mobile\");\n }\n }\n\n render() {\n return html``;\n }\n}\n\ncustomElements.define(\"ds-grid\", Grid);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-grid\": Grid;\n }\n}\n","// ds-layout.ts\n// Simple grid layout component with view mode\n\nimport { LitElement, html, css, unsafeCSS } from \"lit\";\nimport styles from \"./styles/ds-layout.css?inline\";\n\ndeclare global {\n interface CustomElementRegistry {\n define(name: string, constructor: typeof LitElement): void;\n }\n var customElements: CustomElementRegistry;\n}\n\nexport class Layout extends LitElement {\n static properties = {\n mode: { type: String },\n align: { type: String },\n view: { type: Boolean },\n };\n\n mode: string = \"portfolio\";\n align?: string;\n view?: boolean;\n\n static styles = [\n unsafeCSS(styles),\n css`\n :host {\n display: grid;\n position: relative;\n width: 100%;\n }\n\n slot {\n display: contents;\n }\n\n :host([mode=\"portfolio\"]) {\n --portfolio-cols: 120px 480px 40px;\n --portfolio-rows: 120px 120px 60px 180px 60px 120px 60px 20px 120px\n 120px;\n --portfolio-areas: \"square . .\" \". title .\" \". header .\" \". projects .\"\n \". . .\" \". bio .\" \". . .\" \". nav .\" \". . .\" \". footer .\" \". . .\";\n --portfolio-overlay-cols: 120px 480px;\n --portfolio-overlay-areas: \"square .\" \". title\" \". header\" \". projects\"\n \". .\" \". bio\" \". .\" \". nav\" \". .\" \". footer\" \". .\";\n grid-template-columns: var(--portfolio-cols);\n grid-template-rows: var(--portfolio-rows);\n grid-template-areas: var(--portfolio-areas);\n min-height: 600px;\n background-color: rgba(165, 165, 165, 0.03);\n max-width: 640px;\n margin: 0;\n }\n\n :host([mode=\"portfolio\"]) .view-overlay {\n grid-template-columns: var(--portfolio-overlay-cols);\n grid-template-rows: var(--portfolio-rows);\n grid-template-areas: var(--portfolio-overlay-areas);\n }\n\n :host([mode=\"company\"]) {\n --company-cols: auto 400px auto;\n --company-rows: 80px 20px 20px 120px 20px 120px;\n --company-areas: \". . .\" \". header .\" \". . .\" \". content .\" \". . .\"\n \". footer .\";\n grid-template-columns: var(--company-cols);\n grid-template-rows: var(--company-rows);\n grid-template-areas: var(--company-areas);\n gap: 0;\n max-width: 100%;\n }\n\n :host([mode=\"company\"]) .view-overlay {\n grid-template-columns: var(--company-cols);\n grid-template-rows: var(--company-rows);\n grid-template-areas: var(--company-areas);\n gap: 0;\n }\n\n :host([align=\"left\"]),\n :host([mode=\"portfolio\"][align=\"left\"]),\n :host([mode=\"company\"][align=\"left\"]),\n :host([mode=\"app\"][align=\"left\"]),\n :host([mode=\"list\"][align=\"left\"]),\n :host([mode=\"home\"][align=\"left\"]),\n :host([mode=\"settings\"][align=\"left\"]) {\n margin: 0;\n justify-self: start;\n }\n\n :host([align=\"center\"]),\n :host([mode=\"portfolio\"][align=\"center\"]),\n :host([mode=\"company\"][align=\"center\"]),\n :host([mode=\"app\"][align=\"center\"]),\n :host([mode=\"list\"][align=\"center\"]),\n :host([mode=\"home\"][align=\"center\"]),\n :host([mode=\"settings\"][align=\"center\"]) {\n margin: 0 auto;\n justify-self: center;\n }\n\n :host([align=\"right\"]),\n :host([mode=\"portfolio\"][align=\"right\"]),\n :host([mode=\"company\"][align=\"right\"]),\n :host([mode=\"app\"][align=\"right\"]),\n :host([mode=\"list\"][align=\"right\"]),\n :host([mode=\"home\"][align=\"right\"]),\n :host([mode=\"settings\"][align=\"right\"]) {\n margin: 0 0 0 auto;\n justify-self: end;\n }\n\n /* App mode - Base */\n :host([mode=\"app\"]) {\n --app-cols: 100%;\n --app-overlay-cols: 100%;\n grid-template-columns: var(--app-cols);\n grid-template-rows: var(--app-layout);\n grid-template-areas: var(--app-layout-areas);\n min-height: 100vh;\n background-color: transparent;\n width: calc(240px * var(--sf, 1));\n max-width: calc(240px * var(--sf, 1));\n margin: 0 auto;\n }\n\n :host([mode=\"app\"]) .view-overlay {\n grid-template-columns: var(--app-overlay-cols);\n grid-template-rows: var(--app-layout);\n grid-template-areas: var(--app-layout-areas);\n }\n\n /* List mode - Base */\n :host([mode=\"list\"]) {\n --list-cols: 100%;\n --list-rows: calc(var(--unit) * var(--sf)) calc(var(--unit) * var(--sf))\n calc(var(--unit) * var(--sf)) calc(var(--twenty) * var(--sf));\n --list-areas: \"banner\" \".\" \"header\" \"board\";\n --list-overlay-cols: 100%;\n --list-overlay-rows: calc(var(--unit) * var(--sf))\n calc(var(--unit) * var(--sf)) calc(var(--unit) * var(--sf))\n calc(var(--twenty) * var(--sf));\n --list-overlay-areas: \"banner\" \".\" \"header\" \"board\";\n grid-template-columns: var(--list-cols);\n grid-template-rows: var(--list-rows);\n grid-template-areas: var(--list-areas);\n min-height: 100vh;\n background-color: transparent;\n width: calc(240px * var(--sf, 1));\n max-width: calc(240px * var(--sf, 1));\n margin: 0 auto;\n }\n\n :host([mode=\"list\"]) .view-overlay {\n grid-template-columns: var(--list-overlay-cols);\n grid-template-rows: var(--list-overlay-rows);\n grid-template-areas: var(--list-overlay-areas);\n }\n\n /* Home mode - Base */\n :host([mode=\"home\"]) {\n --home-cols: 100%;\n --home-areas: \"banner\" \".\" \"header\" \".\" \"lists\";\n --home-overlay-cols: 100%;\n --home-overlay-areas: \"banner\" \".\" \"header\" \".\" \"lists\";\n grid-template-columns: var(--home-cols);\n grid-template-rows: var(--home-layout);\n grid-template-areas: var(--home-areas);\n min-height: 100vh;\n background-color: transparent;\n width: calc(240px * var(--sf, 1));\n max-width: calc(240px * var(--sf, 1));\n margin: 0 auto;\n }\n\n :host([mode=\"home\"]) .view-overlay {\n grid-template-columns: var(--home-overlay-cols);\n grid-template-rows: var(--home-layout);\n grid-template-areas: var(--home-overlay-areas);\n }\n\n /* Settings mode - Base */\n :host([mode=\"settings\"]) {\n --settings-cols: 100%;\n --settings-overlay-cols: 100%;\n grid-template-columns: var(--settings-cols);\n grid-template-rows: var(--settings-layout);\n grid-template-areas: var(--settings-layout-areas);\n min-height: 100vh;\n background-color: transparent;\n width: calc(240px * var(--sf, 1));\n max-width: calc(240px * var(--sf, 1));\n margin: 0 auto;\n }\n\n :host([mode=\"settings\"]) .view-overlay {\n grid-template-columns: var(--settings-overlay-cols);\n grid-template-rows: var(--settings-layout);\n grid-template-areas: var(--settings-layout-areas);\n }\n\n .view-overlay {\n position: absolute;\n margin-left: -1px;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n z-index: 1000;\n display: grid;\n }\n\n .view-area {\n display: flex;\n width: calc(240px * var(--sf, 1));\n height: 100%;\n align-items: center;\n justify-content: center;\n font-family: var(--typeface-regular);\n font-size: calc(var(--type-size-default) * var(--05));\n color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n background-color: color-mix(\n in srgb,\n var(--accent-color) 25%,\n transparent\n );\n opacity: 1;\n position: relative;\n }\n\n .grid-area-label {\n position: absolute;\n top: calc(-20px * var(--sf, 1));\n left: 0;\n height: calc(20px * var(--sf, 1));\n width: fit-content;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0 calc(4px * var(--sf, 1));\n border-radius: calc(2px * var(--sf, 1));\n z-index: 10000;\n pointer-events: none;\n white-space: nowrap;\n }\n\n /* Banner label stays inside the area (first item) */\n :host([mode=\"app\"]) .view-area.view-banner .grid-area-label,\n :host([mode=\"list\"]) .view-area.view-banner .grid-area-label,\n :host([mode=\"home\"]) .view-area.view-banner .grid-area-label,\n :host([mode=\"settings\"]) .view-area.view-banner .grid-area-label,\n :host([mode=\"company\"]) .view-area.view-header .grid-area-label,\n :host([mode=\"portfolio\"]) .view-area.view-square .grid-area-label {\n top: 0;\n }\n\n .grid-area-label ds-text {\n font-size: calc(11px * var(--sf, 1));\n line-height: 1;\n color: white;\n text-transform: lowercase;\n }\n\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(1) {\n background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(2) {\n border-color: var(--sharp-blue);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(3) {\n border-color: var(--yellow);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(4) {\n border-color: var(--apple-green);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(4) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--apple-green) 70%, black) 0%,\n color-mix(in srgb, var(--apple-green) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(5) {\n border-color: var(--pink);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(5) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--pink) 70%, black) 0%,\n color-mix(in srgb, var(--pink) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(6) {\n border-color: var(--orange);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(6) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--orange) 70%, black) 0%,\n color-mix(in srgb, var(--orange) 70%, black) 100%\n );\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(7) {\n border-color: var(--zenith-blue);\n }\n :host([mode=\"portfolio\"]) .view-area:nth-of-type(7) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--zenith-blue) 70%, black) 0%,\n color-mix(in srgb, var(--zenith-blue) 70%, black) 100%\n );\n }\n\n :host([mode=\"company\"]) .view-area:nth-of-type(1) {\n border-color: var(--tuned-red);\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(2) {\n border-color: var(--sharp-blue);\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(3) {\n border-color: var(--yellow);\n }\n :host([mode=\"company\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n\n :host([mode=\"app\"]) .view-area:nth-of-type(1) {\n background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(2) {\n background-color: color-mix(\n in srgb,\n var(--sharp-blue) 25%,\n transparent\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(3) {\n background-color: color-mix(in srgb, var(--yellow) 25%, transparent);\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(4) {\n background-color: color-mix(\n in srgb,\n var(--apple-green) 25%,\n transparent\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(4) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--apple-green) 70%, black) 0%,\n color-mix(in srgb, var(--apple-green) 70%, black) 100%\n );\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(5) {\n background-color: color-mix(in srgb, var(--pink) 25%, transparent);\n }\n :host([mode=\"app\"]) .view-area:nth-of-type(5) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--pink) 70%, black) 0%,\n color-mix(in srgb, var(--pink) 70%, black) 100%\n );\n }\n\n :host([mode=\"list\"]) .view-area:nth-of-type(1) {\n background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(2) {\n background-color: color-mix(\n in srgb,\n var(--sharp-blue) 25%,\n transparent\n );\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(3) {\n background-color: color-mix(in srgb, var(--yellow) 25%, transparent);\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(4) {\n background-color: color-mix(\n in srgb,\n var(--apple-green) 25%,\n transparent\n );\n }\n :host([mode=\"list\"]) .view-area:nth-of-type(4) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--apple-green) 70%, black) 0%,\n color-mix(in srgb, var(--apple-green) 70%, black) 100%\n );\n }\n\n :host([mode=\"home\"]) .view-area:nth-of-type(1) {\n background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(2) {\n background-color: color-mix(\n in srgb,\n var(--sharp-blue) 25%,\n transparent\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(3) {\n background-color: color-mix(in srgb, var(--yellow) 25%, transparent);\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(3) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--yellow) 70%, black) 0%,\n color-mix(in srgb, var(--yellow) 70%, black) 100%\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(4) {\n background-color: color-mix(\n in srgb,\n var(--apple-green) 25%,\n transparent\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(4) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--apple-green) 70%, black) 0%,\n color-mix(in srgb, var(--apple-green) 70%, black) 100%\n );\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(5) {\n background-color: color-mix(in srgb, var(--pink) 25%, transparent);\n }\n :host([mode=\"home\"]) .view-area:nth-of-type(5) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--pink) 70%, black) 0%,\n color-mix(in srgb, var(--pink) 70%, black) 100%\n );\n }\n\n .view-square {\n grid-area: square;\n }\n\n .view-title {\n grid-area: title;\n }\n\n .view-header {\n grid-area: header;\n }\n\n .view-projects {\n grid-area: projects;\n }\n\n .view-bio {\n grid-area: bio;\n }\n\n .view-nav {\n grid-area: nav;\n }\n\n .view-footer {\n grid-area: footer;\n }\n\n .view-content {\n grid-area: content;\n }\n\n .view-banner {\n grid-area: banner;\n }\n\n .view-main {\n grid-area: main;\n }\n\n .view-page-dots {\n grid-area: page-dots;\n }\n\n .view-board {\n grid-area: board;\n }\n\n .view-message {\n grid-area: message;\n }\n\n .view-lists {\n grid-area: lists;\n }\n\n .view-settings {\n grid-area: settings;\n }\n\n :host([mode=\"settings\"]) .view-area:nth-of-type(1) {\n background-color: color-mix(in srgb, var(--tuned-red) 25%, transparent);\n }\n :host([mode=\"settings\"]) .view-area:nth-of-type(1) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--tuned-red) 70%, black) 0%,\n color-mix(in srgb, var(--tuned-red) 70%, black) 100%\n );\n }\n :host([mode=\"settings\"]) .view-area:nth-of-type(2) {\n background-color: color-mix(\n in srgb,\n var(--sharp-blue) 25%,\n transparent\n );\n }\n :host([mode=\"settings\"]) .view-area:nth-of-type(2) .grid-area-label {\n background-image:\n linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.2) 0%,\n rgba(0, 0, 0, 0.2) 100%\n ),\n linear-gradient(\n 90deg,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 0%,\n color-mix(in srgb, var(--sharp-blue) 70%, black) 100%\n );\n }\n `,\n ];\n\n render() {\n const isView = this.view || this.mode === \"view\";\n const isPortfolio = this.mode === \"portfolio\";\n const isCompany = this.mode === \"company\";\n const isApp = this.mode === \"app\";\n const isList = this.mode === \"list\";\n const isHome = this.mode === \"home\";\n const isSettings = this.mode === \"settings\";\n\n return html`\n <slot></slot>\n ${isView\n ? html`\n <div class=\"view-overlay\">\n ${isSettings\n ? html`\n <div class=\"view-area view-banner\">\n <div class=\"grid-area-label\">\n <ds-text text=\"banner\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-settings\">\n <div class=\"grid-area-label\">\n <ds-text text=\"settings\"></ds-text>\n </div>\n </div>\n `\n : isHome\n ? html`\n <div class=\"view-area view-banner\">\n <div class=\"grid-area-label\">\n <ds-text text=\"banner\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text text=\"header\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-message\">\n <div class=\"grid-area-label\">\n <ds-text text=\"message\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-lists\">\n <div class=\"grid-area-label\">\n <ds-text text=\"lists\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-footer\">\n <div class=\"grid-area-label\">\n <ds-text text=\"footer\"></ds-text>\n </div>\n </div>\n `\n : isList\n ? html`\n <div class=\"view-area view-banner\">\n <div class=\"grid-area-label\">\n <ds-text text=\"banner\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text text=\"header\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-board\">\n <div class=\"grid-area-label\">\n <ds-text text=\"board\"></ds-text>\n </div>\n </div>\n `\n : isApp\n ? html`\n <div class=\"view-area view-banner\">\n <div class=\"grid-area-label\">\n <ds-text text=\"banner\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text text=\"header\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-main\">\n <div class=\"grid-area-label\">\n <ds-text text=\"main\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-page-dots\">\n <div class=\"grid-area-label\">\n <ds-text text=\"page-dots\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-footer\">\n <div class=\"grid-area-label\">\n <ds-text text=\"footer\"></ds-text>\n </div>\n </div>\n `\n : isCompany\n ? html`\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text text=\"header\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-content\">\n <div class=\"grid-area-label\">\n <ds-text text=\"content\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-footer\">\n <div class=\"grid-area-label\">\n <ds-text text=\"footer\"></ds-text>\n </div>\n </div>\n `\n : isPortfolio\n ? html`\n <div class=\"view-area view-square\">\n <div class=\"grid-area-label\">\n <ds-text text=\"square\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-title\">\n <div class=\"grid-area-label\">\n <ds-text text=\"title\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-header\">\n <div class=\"grid-area-label\">\n <ds-text text=\"header\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-projects\">\n <div class=\"grid-area-label\">\n <ds-text text=\"projects\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-bio\">\n <div class=\"grid-area-label\">\n <ds-text text=\"bio\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-nav\">\n <div class=\"grid-area-label\">\n <ds-text text=\"nav\"></ds-text>\n </div>\n </div>\n <div class=\"view-area view-footer\">\n <div class=\"grid-area-label\">\n <ds-text text=\"footer\"></ds-text>\n </div>\n </div>\n `\n : \"\"}\n </div>\n `\n : \"\"}\n `;\n }\n}\n\ncustomElements.define(\"ds-layout\", Layout);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ds-layout\": Layout;\n }\n}\n"],"names":["a","b","i","s","c","n","t","e","h","o","r","l","u","d","f","p","y","x","v","S","signal","LitElement","html","unsafeCSS","styles","css","unsafeHTML"],"mappings":"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AA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAA;AAbG,IAAM,SAAN;AAi6BP,eAAe,OAAO,aAAa,MAAM;","x_google_ignoreList":[0,1,2,3,4,10,11,12,17]}