@triptease/tt-icon 1.1.10 → 1.1.11
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.
- package/CHANGELOG.md +7 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/web/TtIcon.js +8 -1
- package/dist/web/TtIcon.js.map +3 -3
- package/dist/web/index.js +8 -1
- package/dist/web/index.js.map +3 -3
- package/dist/web/tt-icon.js +8 -1
- package/dist/web/tt-icon.js.map +3 -3
- package/package.json +2 -2
package/dist/web/TtIcon.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../node_modules/@lit/reactive-element/src/css-tag.ts", "../../../../node_modules/@lit/reactive-element/src/reactive-element.ts", "../../../../node_modules/lit-html/src/lit-html.ts", "../../../../node_modules/lit-element/src/lit-element.ts", "../../../../node_modules/@lit/reactive-element/src/decorators/property.ts", "../../../icons/src/index.ts", "../../../icons/src/icons/account.ts", "../../../icons/src/icons/alert.ts", "../../../icons/src/icons/align-center.ts", "../../../icons/src/icons/align-left.ts", "../../../icons/src/icons/align-right.ts", "../../../icons/src/icons/arrow-down.ts", "../../../icons/src/icons/arrow-left.ts", "../../../icons/src/icons/arrow-right.ts", "../../../icons/src/icons/arrow-up.ts", "../../../icons/src/icons/audience-targeting.ts", "../../../icons/src/icons/bold.ts", "../../../icons/src/icons/bullet-list.ts", "../../../icons/src/icons/button.ts", "../../../icons/src/icons/calendar.ts", "../../../icons/src/icons/campaigns.ts", "../../../icons/src/icons/channels.ts", "../../../icons/src/icons/checkbox-checked.ts", "../../../icons/src/icons/chevron.ts", "../../../icons/src/icons/chevron-down.ts", "../../../icons/src/icons/chevron-right.ts", "../../../icons/src/icons/chevron-up.ts", "../../../icons/src/icons/clock.ts", "../../../icons/src/icons/close.ts", "../../../icons/src/icons/cog.ts", "../../../icons/src/icons/coin.ts", "../../../icons/src/icons/collapsible.ts", "../../../icons/src/icons/column.ts", "../../../icons/src/icons/comparison.ts", "../../../icons/src/icons/container.ts", "../../../icons/src/icons/countdown.ts", "../../../icons/src/icons/date-boost.ts", "../../../icons/src/icons/delete.ts", "../../../icons/src/icons/desktop.ts", "../../../icons/src/icons/dismissible.ts", "../../../icons/src/icons/divider.ts", "../../../icons/src/icons/double-chevron.ts", "../../../icons/src/icons/download.ts", "../../../icons/src/icons/dropdown.ts", "../../../icons/src/icons/duplicate.ts", "../../../icons/src/icons/edit.ts", "../../../icons/src/icons/email.ts", "../../../icons/src/icons/embed.ts", "../../../icons/src/icons/experiment.ts", "../../../icons/src/icons/external.ts", "../../../icons/src/icons/filter.ts", "../../../icons/src/icons/form.ts", "../../../icons/src/icons/gallery.ts", "../../../icons/src/icons/gear.ts", "../../../icons/src/icons/globe.ts", "../../../icons/src/icons/graph.ts", "../../../icons/src/icons/handle.ts", "../../../icons/src/icons/help.ts", "../../../icons/src/icons/home.ts", "../../../icons/src/icons/horizontal.ts", "../../../icons/src/icons/hotel.ts", "../../../icons/src/icons/info.ts", "../../../icons/src/icons/insights.ts", "../../../icons/src/icons/italic.ts", "../../../icons/src/icons/keyboard.ts", "../../../icons/src/icons/lightning-bolt.ts", "../../../icons/src/icons/link.ts", "../../../icons/src/icons/logout.ts", "../../../icons/src/icons/messages.ts", "../../../icons/src/icons/minus.ts", "../../../icons/src/icons/mobile.ts", "../../../icons/src/icons/move-to-parent.ts", "../../../icons/src/icons/multi-message.ts", "../../../icons/src/icons/new-tab.ts", "../../../icons/src/icons/numbered-list.ts", "../../../icons/src/icons/pause.ts", "../../../icons/src/icons/pause-filled.ts", "../../../icons/src/icons/pie-chart.ts", "../../../icons/src/icons/plus.ts", "../../../icons/src/icons/preview.ts", "../../../icons/src/icons/radio-checked.ts", "../../../icons/src/icons/redo.ts", "../../../icons/src/icons/rename.ts", "../../../icons/src/icons/section.ts", "../../../icons/src/icons/send.ts", "../../../icons/src/icons/share.ts", "../../../icons/src/icons/sidebar-collapsed.ts", "../../../icons/src/icons/sidebar-expanded.ts", "../../../icons/src/icons/stop.ts", "../../../icons/src/icons/stop-filled.ts", "../../../icons/src/icons/strikethrough.ts", "../../../icons/src/icons/tag.ts", "../../../icons/src/icons/target.ts", "../../../icons/src/icons/templates.ts", "../../../icons/src/icons/text.ts", "../../../icons/src/icons/text-input.ts", "../../../icons/src/icons/tick.ts", "../../../icons/src/icons/ticket.ts", "../../../icons/src/icons/tree-graph.ts", "../../../icons/src/icons/undo.ts", "../../../icons/src/icons/underline.ts", "../../../icons/src/icons/unlink.ts", "../../../icons/src/icons/user.ts", "../../../icons/src/icons/vertical.ts", "../../../icons/src/icons/wallet.ts", "../../../icons/src/icons/warning.ts", "../../../../node_modules/lit-html/src/directive.ts", "../../../../node_modules/lit-html/src/directives/unsafe-html.ts", "../../../../node_modules/lit-html/src/directives/unsafe-svg.ts", "../../../../node_modules/lit-html/src/directives/style-map.ts", "../../src/TtIcon.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nconst NODE_MODE = false;\n\n// Allows minifiers to rename references to globalThis\nconst global = globalThis;\n\n/**\n * Whether the current browser supports `adoptedStyleSheets`.\n */\nexport const supportsAdoptingStyleSheets: boolean =\n global.ShadowRoot &&\n (global.ShadyCSS === undefined || global.ShadyCSS.nativeShadow) &&\n 'adoptedStyleSheets' in Document.prototype &&\n 'replace' in CSSStyleSheet.prototype;\n\n/**\n * A CSSResult or native CSSStyleSheet.\n *\n * In browsers that support constructible CSS style sheets, CSSStyleSheet\n * object can be used for styling along side CSSResult from the `css`\n * template tag.\n */\nexport type CSSResultOrNative = CSSResult | CSSStyleSheet;\n\nexport type CSSResultArray = Array<CSSResultOrNative | CSSResultArray>;\n\n/**\n * A single CSSResult, CSSStyleSheet, or an array or nested arrays of those.\n */\nexport type CSSResultGroup = CSSResultOrNative | CSSResultArray;\n\nconst constructionToken = Symbol();\n\nconst cssTagCache = new WeakMap<TemplateStringsArray, CSSStyleSheet>();\n\n/**\n * A container for a string of CSS text, that may be used to create a CSSStyleSheet.\n *\n * CSSResult is the return value of `css`-tagged template literals and\n * `unsafeCSS()`. In order to ensure that CSSResults are only created via the\n * `css` tag and `unsafeCSS()`, CSSResult cannot be constructed directly.\n */\nexport class CSSResult {\n // This property needs to remain unminified.\n ['_$cssResult$'] = true;\n readonly cssText: string;\n private _styleSheet?: CSSStyleSheet;\n private _strings: TemplateStringsArray | undefined;\n\n private constructor(\n cssText: string,\n strings: TemplateStringsArray | undefined,\n safeToken: symbol\n ) {\n if (safeToken !== constructionToken) {\n throw new Error(\n 'CSSResult is not constructable. Use `unsafeCSS` or `css` instead.'\n );\n }\n this.cssText = cssText;\n this._strings = strings;\n }\n\n // This is a getter so that it's lazy. In practice, this means stylesheets\n // are not created until the first element instance is made.\n get styleSheet(): CSSStyleSheet | undefined {\n // If `supportsAdoptingStyleSheets` is true then we assume CSSStyleSheet is\n // constructable.\n let styleSheet = this._styleSheet;\n const strings = this._strings;\n if (supportsAdoptingStyleSheets && styleSheet === undefined) {\n const cacheable = strings !== undefined && strings.length === 1;\n if (cacheable) {\n styleSheet = cssTagCache.get(strings);\n }\n if (styleSheet === undefined) {\n (this._styleSheet = styleSheet = new CSSStyleSheet()).replaceSync(\n this.cssText\n );\n if (cacheable) {\n cssTagCache.set(strings, styleSheet);\n }\n }\n }\n return styleSheet;\n }\n\n toString(): string {\n return this.cssText;\n }\n}\n\ntype ConstructableCSSResult = CSSResult & {\n new (\n cssText: string,\n strings: TemplateStringsArray | undefined,\n safeToken: symbol\n ): CSSResult;\n};\n\nconst textFromCSSResult = (value: CSSResultGroup | number) => {\n // This property needs to remain unminified.\n if ((value as CSSResult)['_$cssResult$'] === true) {\n return (value as CSSResult).cssText;\n } else if (typeof value === 'number') {\n return value;\n } else {\n throw new Error(\n `Value passed to 'css' function must be a 'css' function result: ` +\n `${value}. Use 'unsafeCSS' to pass non-literal values, but take care ` +\n `to ensure page security.`\n );\n }\n};\n\n/**\n * Wrap a value for interpolation in a {@linkcode css} tagged template literal.\n *\n * This is unsafe because untrusted CSS text can be used to phone home\n * or exfiltrate data to an attacker controlled site. Take care to only use\n * this with trusted input.\n */\nexport const unsafeCSS = (value: unknown) =>\n new (CSSResult as ConstructableCSSResult)(\n typeof value === 'string' ? value : String(value),\n undefined,\n constructionToken\n );\n\n/**\n * A template literal tag which can be used with LitElement's\n * {@linkcode LitElement.styles} property to set element styles.\n *\n * For security reasons, only literal string values and number may be used in\n * embedded expressions. To incorporate non-literal values {@linkcode unsafeCSS}\n * may be used inside an expression.\n */\nexport const css = (\n strings: TemplateStringsArray,\n ...values: (CSSResultGroup | number)[]\n): CSSResult => {\n const cssText =\n strings.length === 1\n ? strings[0]\n : values.reduce(\n (acc, v, idx) => acc + textFromCSSResult(v) + strings[idx + 1],\n strings[0]\n );\n return new (CSSResult as ConstructableCSSResult)(\n cssText,\n strings,\n constructionToken\n );\n};\n\n/**\n * Applies the given styles to a `shadowRoot`. When Shadow DOM is\n * available but `adoptedStyleSheets` is not, styles are appended to the\n * `shadowRoot` to [mimic the native feature](https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot/adoptedStyleSheets).\n * Note, when shimming is used, any styles that are subsequently placed into\n * the shadowRoot should be placed *before* any shimmed adopted styles. This\n * will match spec behavior that gives adopted sheets precedence over styles in\n * shadowRoot.\n */\nexport const adoptStyles = (\n renderRoot: ShadowRoot,\n styles: Array<CSSResultOrNative>\n) => {\n if (supportsAdoptingStyleSheets) {\n (renderRoot as ShadowRoot).adoptedStyleSheets = styles.map((s) =>\n s instanceof CSSStyleSheet ? s : s.styleSheet!\n );\n } else {\n for (const s of styles) {\n const style = document.createElement('style');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const nonce = (global as any)['litNonce'];\n if (nonce !== undefined) {\n style.setAttribute('nonce', nonce);\n }\n style.textContent = (s as CSSResult).cssText;\n renderRoot.appendChild(style);\n }\n }\n};\n\nconst cssResultFromStyleSheet = (sheet: CSSStyleSheet) => {\n let cssText = '';\n for (const rule of sheet.cssRules) {\n cssText += rule.cssText;\n }\n return unsafeCSS(cssText);\n};\n\nexport const getCompatibleStyle =\n supportsAdoptingStyleSheets ||\n (NODE_MODE && global.CSSStyleSheet === undefined)\n ? (s: CSSResultOrNative) => s\n : (s: CSSResultOrNative) =>\n s instanceof CSSStyleSheet ? cssResultFromStyleSheet(s) : s;\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * Use this module if you want to create your own base class extending\n * {@link ReactiveElement}.\n * @packageDocumentation\n */\n\nimport {\n getCompatibleStyle,\n adoptStyles,\n CSSResultGroup,\n CSSResultOrNative,\n} from './css-tag.js';\nimport type {\n ReactiveController,\n ReactiveControllerHost,\n} from './reactive-controller.js';\n\n// In the Node build, this import will be injected by Rollup:\n// import {HTMLElement, customElements} from '@lit-labs/ssr-dom-shim';\n\nexport * from './css-tag.js';\nexport type {\n ReactiveController,\n ReactiveControllerHost,\n} from './reactive-controller.js';\n\n/**\n * Removes the `readonly` modifier from properties in the union K.\n *\n * This is a safer way to cast a value to a type with a mutable version of a\n * readonly field, than casting to an interface with the field re-declared\n * because it preserves the type of all the fields and warns on typos.\n */\ntype Mutable<T, K extends keyof T> = Omit<T, K> & {\n -readonly [P in keyof Pick<T, K>]: P extends K ? T[P] : never;\n};\n\n// TODO (justinfagnani): Add `hasOwn` here when we ship ES2022\nconst {\n is,\n defineProperty,\n getOwnPropertyDescriptor,\n getOwnPropertyNames,\n getOwnPropertySymbols,\n getPrototypeOf,\n} = Object;\n\nconst NODE_MODE = false;\n\n// Lets a minifier replace globalThis references with a minified name\nconst global = globalThis;\n\nif (NODE_MODE) {\n global.customElements ??= customElements;\n}\n\nconst DEV_MODE = true;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nconst trustedTypes = (global as unknown as {trustedTypes?: {emptyScript: ''}})\n .trustedTypes;\n\n// Temporary workaround for https://crbug.com/993268\n// Currently, any attribute starting with \"on\" is considered to be a\n// TrustedScript source. Such boolean attributes must be set to the equivalent\n// trusted emptyScript value.\nconst emptyStringForBooleanAttribute = trustedTypes\n ? (trustedTypes.emptyScript as unknown as '')\n : '';\n\nconst polyfillSupport = DEV_MODE\n ? global.reactiveElementPolyfillSupportDevMode\n : global.reactiveElementPolyfillSupport;\n\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n global.litIssuedWarnings ??= new Set();\n\n /**\n * Issue a warning if we haven't already, based either on `code` or `warning`.\n * Warnings are disabled automatically only by `warning`; disabling via `code`\n * can be done by users.\n */\n issueWarning = (code: string, warning: string) => {\n warning += ` See https://lit.dev/msg/${code} for more information.`;\n if (\n !global.litIssuedWarnings!.has(warning) &&\n !global.litIssuedWarnings!.has(code)\n ) {\n console.warn(warning);\n global.litIssuedWarnings!.add(warning);\n }\n };\n\n queueMicrotask(() => {\n issueWarning(\n 'dev-mode',\n `Lit is in dev mode. Not recommended for production!`\n );\n\n // Issue polyfill support warning.\n if (global.ShadyDOM?.inUse && polyfillSupport === undefined) {\n issueWarning(\n 'polyfill-support-missing',\n `Shadow DOM is being polyfilled via \\`ShadyDOM\\` but ` +\n `the \\`polyfill-support\\` module has not been loaded.`\n );\n }\n });\n}\n\n/**\n * Contains types that are part of the unstable debug API.\n *\n * Everything in this API is not stable and may change or be removed in the future,\n * even on patch releases.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace ReactiveUnstable {\n /**\n * When Lit is running in dev mode and `window.emitLitDebugLogEvents` is true,\n * we will emit 'lit-debug' events to window, with live details about the update and render\n * lifecycle. These can be useful for writing debug tooling and visualizations.\n *\n * Please be aware that running with window.emitLitDebugLogEvents has performance overhead,\n * making certain operations that are normally very cheap (like a no-op render) much slower,\n * because we must copy data and dispatch events.\n */\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace DebugLog {\n export type Entry = Update;\n export interface Update {\n kind: 'update';\n }\n }\n}\n\ninterface DebugLoggingWindow {\n // Even in dev mode, we generally don't want to emit these events, as that's\n // another level of cost, so only emit them when DEV_MODE is true _and_ when\n // window.emitLitDebugEvents is true.\n emitLitDebugLogEvents?: boolean;\n}\n\n/**\n * Useful for visualizing and logging insights into what the Lit template system is doing.\n *\n * Compiled out of prod mode builds.\n */\nconst debugLogEvent = DEV_MODE\n ? (event: ReactiveUnstable.DebugLog.Entry) => {\n const shouldEmit = (global as unknown as DebugLoggingWindow)\n .emitLitDebugLogEvents;\n if (!shouldEmit) {\n return;\n }\n global.dispatchEvent(\n new CustomEvent<ReactiveUnstable.DebugLog.Entry>('lit-debug', {\n detail: event,\n })\n );\n }\n : undefined;\n\n/*\n * When using Closure Compiler, JSCompiler_renameProperty(property, object) is\n * replaced at compile time by the munged name for object[property]. We cannot\n * alias this function, so we have to use a small shim that has the same\n * behavior when not compiling.\n */\n/*@__INLINE__*/\nconst JSCompiler_renameProperty = <P extends PropertyKey>(\n prop: P,\n _obj: unknown\n): P => prop;\n\n/**\n * Converts property values to and from attribute values.\n */\nexport interface ComplexAttributeConverter<Type = unknown, TypeHint = unknown> {\n /**\n * Called to convert an attribute value to a property\n * value.\n */\n fromAttribute?(value: string | null, type?: TypeHint): Type;\n\n /**\n * Called to convert a property value to an attribute\n * value.\n *\n * It returns unknown instead of string, to be compatible with\n * https://github.com/WICG/trusted-types (and similar efforts).\n */\n toAttribute?(value: Type, type?: TypeHint): unknown;\n}\n\ntype AttributeConverter<Type = unknown, TypeHint = unknown> =\n | ComplexAttributeConverter<Type>\n | ((value: string | null, type?: TypeHint) => Type);\n\n/**\n * Defines options for a property accessor.\n */\nexport interface PropertyDeclaration<Type = unknown, TypeHint = unknown> {\n /**\n * When set to `true`, indicates the property is internal private state. The\n * property should not be set by users. When using TypeScript, this property\n * should be marked as `private` or `protected`, and it is also a common\n * practice to use a leading `_` in the name. The property is not added to\n * `observedAttributes`.\n */\n readonly state?: boolean;\n\n /**\n * Indicates how and whether the property becomes an observed attribute.\n * If the value is `false`, the property is not added to `observedAttributes`.\n * If true or absent, the lowercased property name is observed (e.g. `fooBar`\n * becomes `foobar`). If a string, the string value is observed (e.g\n * `attribute: 'foo-bar'`).\n */\n readonly attribute?: boolean | string;\n\n /**\n * Indicates the type of the property. This is used only as a hint for the\n * `converter` to determine how to convert the attribute\n * to/from a property.\n */\n readonly type?: TypeHint;\n\n /**\n * Indicates how to convert the attribute to/from a property. If this value\n * is a function, it is used to convert the attribute value a the property\n * value. If it's an object, it can have keys for `fromAttribute` and\n * `toAttribute`. If no `toAttribute` function is provided and\n * `reflect` is set to `true`, the property value is set directly to the\n * attribute. A default `converter` is used if none is provided; it supports\n * `Boolean`, `String`, `Number`, `Object`, and `Array`. Note,\n * when a property changes and the converter is used to update the attribute,\n * the property is never updated again as a result of the attribute changing,\n * and vice versa.\n */\n readonly converter?: AttributeConverter<Type, TypeHint>;\n\n /**\n * Indicates if the property should reflect to an attribute.\n * If `true`, when the property is set, the attribute is set using the\n * attribute name determined according to the rules for the `attribute`\n * property option and the value of the property converted using the rules\n * from the `converter` property option.\n */\n readonly reflect?: boolean;\n\n /**\n * A function that indicates if a property should be considered changed when\n * it is set. The function should take the `newValue` and `oldValue` and\n * return `true` if an update should be requested.\n */\n hasChanged?(value: Type, oldValue: Type): boolean;\n\n /**\n * Indicates whether an accessor will be created for this property. By\n * default, an accessor will be generated for this property that requests an\n * update when set. If this flag is `true`, no accessor will be created, and\n * it will be the user's responsibility to call\n * `this.requestUpdate(propertyName, oldValue)` to request an update when\n * the property changes.\n */\n readonly noAccessor?: boolean;\n\n /**\n * Whether this property is wrapping accessors. This is set by `@property`\n * to control the initial value change and reflection logic.\n *\n * @internal\n */\n wrapped?: boolean;\n\n /**\n * When `true`, uses the initial value of the property as the default value,\n * which changes how attributes are handled:\n * - The initial value does *not* reflect, even if the `reflect` option is `true`.\n * Subsequent changes to the property will reflect, even if they are equal to the\n * default value.\n * - When the attribute is removed, the property is set to the default value\n * - The initial value will not trigger an old value in the `changedProperties` map\n * argument to update lifecycle methods.\n *\n * When set, properties must be initialized, either with a field initializer, or an\n * assignment in the constructor. Not initializing the property may lead to\n * improper handling of subsequent property assignments.\n *\n * While this behavior is opt-in, most properties that reflect to attributes should\n * use `useDefault: true` so that their initial values do not reflect.\n */\n useDefault?: boolean;\n}\n\n/**\n * Map of properties to PropertyDeclaration options. For each property an\n * accessor is made, and the property is processed according to the\n * PropertyDeclaration options.\n */\nexport interface PropertyDeclarations {\n readonly [key: string]: PropertyDeclaration;\n}\n\ntype PropertyDeclarationMap = Map<PropertyKey, PropertyDeclaration>;\n\ntype AttributeMap = Map<string, PropertyKey>;\n\n/**\n * A Map of property keys to values.\n *\n * Takes an optional type parameter T, which when specified as a non-any,\n * non-unknown type, will make the Map more strongly-typed, associating the map\n * keys with their corresponding value type on T.\n *\n * Use `PropertyValues<this>` when overriding ReactiveElement.update() and\n * other lifecycle methods in order to get stronger type-checking on keys\n * and values.\n */\n// This type is conditional so that if the parameter T is not specified, or\n// is `any`, the type will include `Map<PropertyKey, unknown>`. Since T is not\n// given in the uses of PropertyValues in this file, all uses here fallback to\n// meaning `Map<PropertyKey, unknown>`, but if a developer uses\n// `PropertyValues<this>` (or any other value for T) they will get a\n// strongly-typed Map type.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type PropertyValues<T = any> = T extends object\n ? PropertyValueMap<T>\n : Map<PropertyKey, unknown>;\n\n/**\n * Do not use, instead prefer {@linkcode PropertyValues}.\n */\n// This type must be exported such that JavaScript generated by the Google\n// Closure Compiler can import a type reference.\nexport interface PropertyValueMap<T> extends Map<PropertyKey, unknown> {\n get<K extends keyof T>(k: K): T[K] | undefined;\n set<K extends keyof T>(key: K, value: T[K]): this;\n has<K extends keyof T>(k: K): boolean;\n delete<K extends keyof T>(k: K): boolean;\n}\n\nexport const defaultConverter: ComplexAttributeConverter = {\n toAttribute(value: unknown, type?: unknown): unknown {\n switch (type) {\n case Boolean:\n value = value ? emptyStringForBooleanAttribute : null;\n break;\n case Object:\n case Array:\n // if the value is `null` or `undefined` pass this through\n // to allow removing/no change behavior.\n value = value == null ? value : JSON.stringify(value);\n break;\n }\n return value;\n },\n\n fromAttribute(value: string | null, type?: unknown) {\n let fromValue: unknown = value;\n switch (type) {\n case Boolean:\n fromValue = value !== null;\n break;\n case Number:\n fromValue = value === null ? null : Number(value);\n break;\n case Object:\n case Array:\n // Do *not* generate exception when invalid JSON is set as elements\n // don't normally complain on being mis-configured.\n // TODO(sorvell): Do generate exception in *dev mode*.\n try {\n // Assert to adhere to Bazel's \"must type assert JSON parse\" rule.\n fromValue = JSON.parse(value!) as unknown;\n } catch (e) {\n fromValue = null;\n }\n break;\n }\n return fromValue;\n },\n};\n\nexport interface HasChanged {\n (value: unknown, old: unknown): boolean;\n}\n\n/**\n * Change function that returns true if `value` is different from `oldValue`.\n * This method is used as the default for a property's `hasChanged` function.\n */\nexport const notEqual: HasChanged = (value: unknown, old: unknown): boolean =>\n !is(value, old);\n\nconst defaultPropertyDeclaration: PropertyDeclaration = {\n attribute: true,\n type: String,\n converter: defaultConverter,\n reflect: false,\n useDefault: false,\n hasChanged: notEqual,\n};\n\n/**\n * A string representing one of the supported dev mode warning categories.\n */\nexport type WarningKind =\n | 'change-in-update'\n | 'migration'\n | 'async-perform-update';\n\nexport type Initializer = (element: ReactiveElement) => void;\n\n// Temporary, until google3 is on TypeScript 5.2\ndeclare global {\n interface SymbolConstructor {\n readonly metadata: unique symbol;\n }\n}\n\n// Ensure metadata is enabled. TypeScript does not polyfill\n// Symbol.metadata, so we must ensure that it exists.\n(Symbol as {metadata: symbol}).metadata ??= Symbol('metadata');\n\ndeclare global {\n // This is public global API, do not change!\n // eslint-disable-next-line no-var\n var litPropertyMetadata: WeakMap<\n object,\n Map<PropertyKey, PropertyDeclaration>\n >;\n}\n\n// Map from a class's metadata object to property options\n// Note that we must use nullish-coalescing assignment so that we only use one\n// map even if we load multiple version of this module.\nglobal.litPropertyMetadata ??= new WeakMap<\n object,\n Map<PropertyKey, PropertyDeclaration>\n>();\n\n/**\n * Base element class which manages element properties and attributes. When\n * properties change, the `update` method is asynchronously called. This method\n * should be supplied by subclasses to render updates as desired.\n * @noInheritDoc\n */\nexport abstract class ReactiveElement\n // In the Node build, this `extends` clause will be substituted with\n // `(globalThis.HTMLElement ?? HTMLElement)`.\n //\n // This way, we will first prefer any global `HTMLElement` polyfill that the\n // user has assigned, and then fall back to the `HTMLElement` shim which has\n // been imported (see note at the top of this file about how this import is\n // generated by Rollup). Note that the `HTMLElement` variable has been\n // shadowed by this import, so it no longer refers to the global.\n extends HTMLElement\n implements ReactiveControllerHost\n{\n // Note: these are patched in only in DEV_MODE.\n /**\n * Read or set all the enabled warning categories for this class.\n *\n * This property is only used in development builds.\n *\n * @nocollapse\n * @category dev-mode\n */\n static enabledWarnings?: WarningKind[];\n\n /**\n * Enable the given warning category for this class.\n *\n * This method only exists in development builds, so it should be accessed\n * with a guard like:\n *\n * ```ts\n * // Enable for all ReactiveElement subclasses\n * ReactiveElement.enableWarning?.('migration');\n *\n * // Enable for only MyElement and subclasses\n * MyElement.enableWarning?.('migration');\n * ```\n *\n * @nocollapse\n * @category dev-mode\n */\n static enableWarning?: (warningKind: WarningKind) => void;\n\n /**\n * Disable the given warning category for this class.\n *\n * This method only exists in development builds, so it should be accessed\n * with a guard like:\n *\n * ```ts\n * // Disable for all ReactiveElement subclasses\n * ReactiveElement.disableWarning?.('migration');\n *\n * // Disable for only MyElement and subclasses\n * MyElement.disableWarning?.('migration');\n * ```\n *\n * @nocollapse\n * @category dev-mode\n */\n static disableWarning?: (warningKind: WarningKind) => void;\n\n /**\n * Adds an initializer function to the class that is called during instance\n * construction.\n *\n * This is useful for code that runs against a `ReactiveElement`\n * subclass, such as a decorator, that needs to do work for each\n * instance, such as setting up a `ReactiveController`.\n *\n * ```ts\n * const myDecorator = (target: typeof ReactiveElement, key: string) => {\n * target.addInitializer((instance: ReactiveElement) => {\n * // This is run during construction of the element\n * new MyController(instance);\n * });\n * }\n * ```\n *\n * Decorating a field will then cause each instance to run an initializer\n * that adds a controller:\n *\n * ```ts\n * class MyElement extends LitElement {\n * @myDecorator foo;\n * }\n * ```\n *\n * Initializers are stored per-constructor. Adding an initializer to a\n * subclass does not add it to a superclass. Since initializers are run in\n * constructors, initializers will run in order of the class hierarchy,\n * starting with superclasses and progressing to the instance's class.\n *\n * @nocollapse\n */\n static addInitializer(initializer: Initializer) {\n this.__prepare();\n (this._initializers ??= []).push(initializer);\n }\n\n static _initializers?: Initializer[];\n\n /*\n * Due to closure compiler ES6 compilation bugs, @nocollapse is required on\n * all static methods and properties with initializers. Reference:\n * - https://github.com/google/closure-compiler/issues/1776\n */\n\n /**\n * Maps attribute names to properties; for example `foobar` attribute to\n * `fooBar` property. Created lazily on user subclasses when finalizing the\n * class.\n * @nocollapse\n */\n private static __attributeToPropertyMap: AttributeMap;\n\n /**\n * Marks class as having been finalized, which includes creating properties\n * from `static properties`, but does *not* include all properties created\n * from decorators.\n * @nocollapse\n */\n protected static finalized: true | undefined;\n\n /**\n * Memoized list of all element properties, including any superclass\n * properties. Created lazily on user subclasses when finalizing the class.\n *\n * @nocollapse\n * @category properties\n */\n static elementProperties: PropertyDeclarationMap;\n\n /**\n * User-supplied object that maps property names to `PropertyDeclaration`\n * objects containing options for configuring reactive properties. When\n * a reactive property is set the element will update and render.\n *\n * By default properties are public fields, and as such, they should be\n * considered as primarily settable by element users, either via attribute or\n * the property itself.\n *\n * Generally, properties that are changed by the element should be private or\n * protected fields and should use the `state: true` option. Properties\n * marked as `state` do not reflect from the corresponding attribute\n *\n * However, sometimes element code does need to set a public property. This\n * should typically only be done in response to user interaction, and an event\n * should be fired informing the user; for example, a checkbox sets its\n * `checked` property when clicked and fires a `changed` event. Mutating\n * public properties should typically not be done for non-primitive (object or\n * array) properties. In other cases when an element needs to manage state, a\n * private property set with the `state: true` option should be used. When\n * needed, state properties can be initialized via public properties to\n * facilitate complex interactions.\n * @nocollapse\n * @category properties\n */\n static properties: PropertyDeclarations;\n\n /**\n * Memoized list of all element styles.\n * Created lazily on user subclasses when finalizing the class.\n * @nocollapse\n * @category styles\n */\n static elementStyles: Array<CSSResultOrNative> = [];\n\n /**\n * Array of styles to apply to the element. The styles should be defined\n * using the {@linkcode css} tag function, via constructible stylesheets, or\n * imported from native CSS module scripts.\n *\n * Note on Content Security Policy:\n *\n * Element styles are implemented with `<style>` tags when the browser doesn't\n * support adopted StyleSheets. To use such `<style>` tags with the style-src\n * CSP directive, the style-src value must either include 'unsafe-inline' or\n * `nonce-<base64-value>` with `<base64-value>` replaced be a server-generated\n * nonce.\n *\n * To provide a nonce to use on generated `<style>` elements, set\n * `window.litNonce` to a server-generated nonce in your page's HTML, before\n * loading application code:\n *\n * ```html\n * <script>\n * // Generated and unique per request:\n * window.litNonce = 'a1b2c3d4';\n * </script>\n * ```\n * @nocollapse\n * @category styles\n */\n static styles?: CSSResultGroup;\n\n /**\n * Returns a list of attributes corresponding to the registered properties.\n * @nocollapse\n * @category attributes\n */\n static get observedAttributes() {\n // Ensure we've created all properties\n this.finalize();\n // this.__attributeToPropertyMap is only undefined after finalize() in\n // ReactiveElement itself. ReactiveElement.observedAttributes is only\n // accessed with ReactiveElement as the receiver when a subclass or mixin\n // calls super.observedAttributes\n return (\n this.__attributeToPropertyMap && [...this.__attributeToPropertyMap.keys()]\n );\n }\n\n private __instanceProperties?: PropertyValues = undefined;\n\n /**\n * Creates a property accessor on the element prototype if one does not exist\n * and stores a {@linkcode PropertyDeclaration} for the property with the\n * given options. The property setter calls the property's `hasChanged`\n * property option or uses a strict identity check to determine whether or not\n * to request an update.\n *\n * This method may be overridden to customize properties; however,\n * when doing so, it's important to call `super.createProperty` to ensure\n * the property is setup correctly. This method calls\n * `getPropertyDescriptor` internally to get a descriptor to install.\n * To customize what properties do when they are get or set, override\n * `getPropertyDescriptor`. To customize the options for a property,\n * implement `createProperty` like this:\n *\n * ```ts\n * static createProperty(name, options) {\n * options = Object.assign(options, {myOption: true});\n * super.createProperty(name, options);\n * }\n * ```\n *\n * @nocollapse\n * @category properties\n */\n static createProperty(\n name: PropertyKey,\n options: PropertyDeclaration = defaultPropertyDeclaration\n ) {\n // If this is a state property, force the attribute to false.\n if (options.state) {\n (options as Mutable<PropertyDeclaration, 'attribute'>).attribute = false;\n }\n this.__prepare();\n // Whether this property is wrapping accessors.\n // Helps control the initial value change and reflection logic.\n if (this.prototype.hasOwnProperty(name)) {\n options = Object.create(options);\n options.wrapped = true;\n }\n this.elementProperties.set(name, options);\n if (!options.noAccessor) {\n const key = DEV_MODE\n ? // Use Symbol.for in dev mode to make it easier to maintain state\n // when doing HMR.\n Symbol.for(`${String(name)} (@property() cache)`)\n : Symbol();\n const descriptor = this.getPropertyDescriptor(name, key, options);\n if (descriptor !== undefined) {\n defineProperty(this.prototype, name, descriptor);\n }\n }\n }\n\n /**\n * Returns a property descriptor to be defined on the given named property.\n * If no descriptor is returned, the property will not become an accessor.\n * For example,\n *\n * ```ts\n * class MyElement extends LitElement {\n * static getPropertyDescriptor(name, key, options) {\n * const defaultDescriptor =\n * super.getPropertyDescriptor(name, key, options);\n * const setter = defaultDescriptor.set;\n * return {\n * get: defaultDescriptor.get,\n * set(value) {\n * setter.call(this, value);\n * // custom action.\n * },\n * configurable: true,\n * enumerable: true\n * }\n * }\n * }\n * ```\n *\n * @nocollapse\n * @category properties\n */\n protected static getPropertyDescriptor(\n name: PropertyKey,\n key: string | symbol,\n options: PropertyDeclaration\n ): PropertyDescriptor | undefined {\n const {get, set} = getOwnPropertyDescriptor(this.prototype, name) ?? {\n get(this: ReactiveElement) {\n return this[key as keyof typeof this];\n },\n set(this: ReactiveElement, v: unknown) {\n (this as unknown as Record<string | symbol, unknown>)[key] = v;\n },\n };\n if (DEV_MODE && get == null) {\n if ('value' in (getOwnPropertyDescriptor(this.prototype, name) ?? {})) {\n throw new Error(\n `Field ${JSON.stringify(String(name))} on ` +\n `${this.name} was declared as a reactive property ` +\n `but it's actually declared as a value on the prototype. ` +\n `Usually this is due to using @property or @state on a method.`\n );\n }\n issueWarning(\n 'reactive-property-without-getter',\n `Field ${JSON.stringify(String(name))} on ` +\n `${this.name} was declared as a reactive property ` +\n `but it does not have a getter. This will be an error in a ` +\n `future version of Lit.`\n );\n }\n return {\n get,\n set(this: ReactiveElement, value: unknown) {\n const oldValue = get?.call(this);\n set?.call(this, value);\n this.requestUpdate(name, oldValue, options);\n },\n configurable: true,\n enumerable: true,\n };\n }\n\n /**\n * Returns the property options associated with the given property.\n * These options are defined with a `PropertyDeclaration` via the `properties`\n * object or the `@property` decorator and are registered in\n * `createProperty(...)`.\n *\n * Note, this method should be considered \"final\" and not overridden. To\n * customize the options for a given property, override\n * {@linkcode createProperty}.\n *\n * @nocollapse\n * @final\n * @category properties\n */\n static getPropertyOptions(name: PropertyKey) {\n return this.elementProperties.get(name) ?? defaultPropertyDeclaration;\n }\n\n // Temporary, until google3 is on TypeScript 5.2\n declare static [Symbol.metadata]: object & Record<PropertyKey, unknown>;\n\n /**\n * Initializes static own properties of the class used in bookkeeping\n * for element properties, initializers, etc.\n *\n * Can be called multiple times by code that needs to ensure these\n * properties exist before using them.\n *\n * This method ensures the superclass is finalized so that inherited\n * property metadata can be copied down.\n * @nocollapse\n */\n private static __prepare() {\n if (\n this.hasOwnProperty(JSCompiler_renameProperty('elementProperties', this))\n ) {\n // Already prepared\n return;\n }\n // Finalize any superclasses\n const superCtor = getPrototypeOf(this) as typeof ReactiveElement;\n superCtor.finalize();\n\n // Create own set of initializers for this class if any exist on the\n // superclass and copy them down. Note, for a small perf boost, avoid\n // creating initializers unless needed.\n if (superCtor._initializers !== undefined) {\n this._initializers = [...superCtor._initializers];\n }\n // Initialize elementProperties from the superclass\n this.elementProperties = new Map(superCtor.elementProperties);\n }\n\n /**\n * Finishes setting up the class so that it's ready to be registered\n * as a custom element and instantiated.\n *\n * This method is called by the ReactiveElement.observedAttributes getter.\n * If you override the observedAttributes getter, you must either call\n * super.observedAttributes to trigger finalization, or call finalize()\n * yourself.\n *\n * @nocollapse\n */\n protected static finalize() {\n if (this.hasOwnProperty(JSCompiler_renameProperty('finalized', this))) {\n return;\n }\n this.finalized = true;\n this.__prepare();\n\n // Create properties from the static properties block:\n if (this.hasOwnProperty(JSCompiler_renameProperty('properties', this))) {\n const props = this.properties;\n const propKeys = [\n ...getOwnPropertyNames(props),\n ...getOwnPropertySymbols(props),\n ] as Array<keyof typeof props>;\n for (const p of propKeys) {\n this.createProperty(p, props[p]);\n }\n }\n\n // Create properties from standard decorator metadata:\n const metadata = this[Symbol.metadata];\n if (metadata !== null) {\n const properties = litPropertyMetadata.get(metadata);\n if (properties !== undefined) {\n for (const [p, options] of properties) {\n this.elementProperties.set(p, options);\n }\n }\n }\n\n // Create the attribute-to-property map\n this.__attributeToPropertyMap = new Map();\n for (const [p, options] of this.elementProperties) {\n const attr = this.__attributeNameForProperty(p, options);\n if (attr !== undefined) {\n this.__attributeToPropertyMap.set(attr, p);\n }\n }\n\n this.elementStyles = this.finalizeStyles(this.styles);\n\n if (DEV_MODE) {\n if (this.hasOwnProperty('createProperty')) {\n issueWarning(\n 'no-override-create-property',\n 'Overriding ReactiveElement.createProperty() is deprecated. ' +\n 'The override will not be called with standard decorators'\n );\n }\n if (this.hasOwnProperty('getPropertyDescriptor')) {\n issueWarning(\n 'no-override-get-property-descriptor',\n 'Overriding ReactiveElement.getPropertyDescriptor() is deprecated. ' +\n 'The override will not be called with standard decorators'\n );\n }\n }\n }\n\n /**\n * Options used when calling `attachShadow`. Set this property to customize\n * the options for the shadowRoot; for example, to create a closed\n * shadowRoot: `{mode: 'closed'}`.\n *\n * Note, these options are used in `createRenderRoot`. If this method\n * is customized, options should be respected if possible.\n * @nocollapse\n * @category rendering\n */\n static shadowRootOptions: ShadowRootInit = {mode: 'open'};\n\n /**\n * Takes the styles the user supplied via the `static styles` property and\n * returns the array of styles to apply to the element.\n * Override this method to integrate into a style management system.\n *\n * Styles are deduplicated preserving the _last_ instance in the list. This\n * is a performance optimization to avoid duplicated styles that can occur\n * especially when composing via subclassing. The last item is kept to try\n * to preserve the cascade order with the assumption that it's most important\n * that last added styles override previous styles.\n *\n * @nocollapse\n * @category styles\n */\n protected static finalizeStyles(\n styles?: CSSResultGroup\n ): Array<CSSResultOrNative> {\n const elementStyles = [];\n if (Array.isArray(styles)) {\n // Dedupe the flattened array in reverse order to preserve the last items.\n // Casting to Array<unknown> works around TS error that\n // appears to come from trying to flatten a type CSSResultArray.\n const set = new Set((styles as Array<unknown>).flat(Infinity).reverse());\n // Then preserve original order by adding the set items in reverse order.\n for (const s of set) {\n elementStyles.unshift(getCompatibleStyle(s as CSSResultOrNative));\n }\n } else if (styles !== undefined) {\n elementStyles.push(getCompatibleStyle(styles));\n }\n return elementStyles;\n }\n\n /**\n * Node or ShadowRoot into which element DOM should be rendered. Defaults\n * to an open shadowRoot.\n * @category rendering\n */\n readonly renderRoot!: HTMLElement | DocumentFragment;\n\n /**\n * Returns the property name for the given attribute `name`.\n * @nocollapse\n */\n private static __attributeNameForProperty(\n name: PropertyKey,\n options: PropertyDeclaration\n ) {\n const attribute = options.attribute;\n return attribute === false\n ? undefined\n : typeof attribute === 'string'\n ? attribute\n : typeof name === 'string'\n ? name.toLowerCase()\n : undefined;\n }\n\n // Initialize to an unresolved Promise so we can make sure the element has\n // connected before first update.\n private __updatePromise!: Promise<boolean>;\n\n /**\n * True if there is a pending update as a result of calling `requestUpdate()`.\n * Should only be read.\n * @category updates\n */\n isUpdatePending = false;\n\n /**\n * Is set to `true` after the first update. The element code cannot assume\n * that `renderRoot` exists before the element `hasUpdated`.\n * @category updates\n */\n hasUpdated = false;\n\n /**\n * Map with keys for any properties that have changed since the last\n * update cycle with previous values.\n *\n * @internal\n */\n _$changedProperties!: PropertyValues;\n\n /**\n * Records property default values when the\n * `useDefault` option is used.\n */\n private __defaultValues?: Map<PropertyKey, unknown>;\n\n /**\n * Properties that should be reflected when updated.\n */\n private __reflectingProperties?: Set<PropertyKey>;\n\n /**\n * Name of currently reflecting property\n */\n private __reflectingProperty: PropertyKey | null = null;\n\n /**\n * Set of controllers.\n */\n private __controllers?: Set<ReactiveController>;\n\n constructor() {\n super();\n this.__initialize();\n }\n\n /**\n * Internal only override point for customizing work done when elements\n * are constructed.\n */\n private __initialize() {\n this.__updatePromise = new Promise<boolean>(\n (res) => (this.enableUpdating = res)\n );\n this._$changedProperties = new Map();\n // This enqueues a microtask that must run before the first update, so it\n // must be called before requestUpdate()\n this.__saveInstanceProperties();\n // ensures first update will be caught by an early access of\n // `updateComplete`\n this.requestUpdate();\n (this.constructor as typeof ReactiveElement)._initializers?.forEach((i) =>\n i(this)\n );\n }\n\n /**\n * Registers a `ReactiveController` to participate in the element's reactive\n * update cycle. The element automatically calls into any registered\n * controllers during its lifecycle callbacks.\n *\n * If the element is connected when `addController()` is called, the\n * controller's `hostConnected()` callback will be immediately called.\n * @category controllers\n */\n addController(controller: ReactiveController) {\n (this.__controllers ??= new Set()).add(controller);\n // If a controller is added after the element has been connected,\n // call hostConnected. Note, re-using existence of `renderRoot` here\n // (which is set in connectedCallback) to avoid the need to track a\n // first connected state.\n if (this.renderRoot !== undefined && this.isConnected) {\n controller.hostConnected?.();\n }\n }\n\n /**\n * Removes a `ReactiveController` from the element.\n * @category controllers\n */\n removeController(controller: ReactiveController) {\n this.__controllers?.delete(controller);\n }\n\n /**\n * Fixes any properties set on the instance before upgrade time.\n * Otherwise these would shadow the accessor and break these properties.\n * The properties are stored in a Map which is played back after the\n * constructor runs.\n */\n private __saveInstanceProperties() {\n const instanceProperties = new Map<PropertyKey, unknown>();\n const elementProperties = (this.constructor as typeof ReactiveElement)\n .elementProperties;\n for (const p of elementProperties.keys() as IterableIterator<keyof this>) {\n if (this.hasOwnProperty(p)) {\n instanceProperties.set(p, this[p]);\n delete this[p];\n }\n }\n if (instanceProperties.size > 0) {\n this.__instanceProperties = instanceProperties;\n }\n }\n\n /**\n * Returns the node into which the element should render and by default\n * creates and returns an open shadowRoot. Implement to customize where the\n * element's DOM is rendered. For example, to render into the element's\n * childNodes, return `this`.\n *\n * @return Returns a node into which to render.\n * @category rendering\n */\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n const renderRoot =\n this.shadowRoot ??\n this.attachShadow(\n (this.constructor as typeof ReactiveElement).shadowRootOptions\n );\n adoptStyles(\n renderRoot,\n (this.constructor as typeof ReactiveElement).elementStyles\n );\n return renderRoot;\n }\n\n /**\n * On first connection, creates the element's renderRoot, sets up\n * element styling, and enables updating.\n * @category lifecycle\n */\n connectedCallback() {\n // Create renderRoot before controllers `hostConnected`\n (this as Mutable<typeof this, 'renderRoot'>).renderRoot ??=\n this.createRenderRoot();\n this.enableUpdating(true);\n this.__controllers?.forEach((c) => c.hostConnected?.());\n }\n\n /**\n * Note, this method should be considered final and not overridden. It is\n * overridden on the element instance with a function that triggers the first\n * update.\n * @category updates\n */\n protected enableUpdating(_requestedUpdate: boolean) {}\n\n /**\n * Allows for `super.disconnectedCallback()` in extensions while\n * reserving the possibility of making non-breaking feature additions\n * when disconnecting at some point in the future.\n * @category lifecycle\n */\n disconnectedCallback() {\n this.__controllers?.forEach((c) => c.hostDisconnected?.());\n }\n\n /**\n * Synchronizes property values when attributes change.\n *\n * Specifically, when an attribute is set, the corresponding property is set.\n * You should rarely need to implement this callback. If this method is\n * overridden, `super.attributeChangedCallback(name, _old, value)` must be\n * called.\n *\n * See [responding to attribute changes](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_custom_elements#responding_to_attribute_changes)\n * on MDN for more information about the `attributeChangedCallback`.\n * @category attributes\n */\n attributeChangedCallback(\n name: string,\n _old: string | null,\n value: string | null\n ) {\n this._$attributeToProperty(name, value);\n }\n\n private __propertyToAttribute(name: PropertyKey, value: unknown) {\n const elemProperties: PropertyDeclarationMap = (\n this.constructor as typeof ReactiveElement\n ).elementProperties;\n const options = elemProperties.get(name)!;\n const attr = (\n this.constructor as typeof ReactiveElement\n ).__attributeNameForProperty(name, options);\n if (attr !== undefined && options.reflect === true) {\n const converter =\n (options.converter as ComplexAttributeConverter)?.toAttribute !==\n undefined\n ? (options.converter as ComplexAttributeConverter)\n : defaultConverter;\n const attrValue = converter.toAttribute!(value, options.type);\n if (\n DEV_MODE &&\n (this.constructor as typeof ReactiveElement).enabledWarnings!.includes(\n 'migration'\n ) &&\n attrValue === undefined\n ) {\n issueWarning(\n 'undefined-attribute-value',\n `The attribute value for the ${name as string} property is ` +\n `undefined on element ${this.localName}. The attribute will be ` +\n `removed, but in the previous version of \\`ReactiveElement\\`, ` +\n `the attribute would not have changed.`\n );\n }\n // Track if the property is being reflected to avoid\n // setting the property again via `attributeChangedCallback`. Note:\n // 1. this takes advantage of the fact that the callback is synchronous.\n // 2. will behave incorrectly if multiple attributes are in the reaction\n // stack at time of calling. However, since we process attributes\n // in `update` this should not be possible (or an extreme corner case\n // that we'd like to discover).\n // mark state reflecting\n this.__reflectingProperty = name;\n if (attrValue == null) {\n this.removeAttribute(attr);\n } else {\n this.setAttribute(attr, attrValue as string);\n }\n // mark state not reflecting\n this.__reflectingProperty = null;\n }\n }\n\n /** @internal */\n _$attributeToProperty(name: string, value: string | null) {\n const ctor = this.constructor as typeof ReactiveElement;\n // Note, hint this as an `AttributeMap` so closure clearly understands\n // the type; it has issues with tracking types through statics\n const propName = (ctor.__attributeToPropertyMap as AttributeMap).get(name);\n // Use tracking info to avoid reflecting a property value to an attribute\n // if it was just set because the attribute changed.\n if (propName !== undefined && this.__reflectingProperty !== propName) {\n const options = ctor.getPropertyOptions(propName);\n const converter =\n typeof options.converter === 'function'\n ? {fromAttribute: options.converter}\n : options.converter?.fromAttribute !== undefined\n ? options.converter\n : defaultConverter;\n // mark state reflecting\n this.__reflectingProperty = propName;\n this[propName as keyof this] =\n converter.fromAttribute!(value, options.type) ??\n this.__defaultValues?.get(propName) ??\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (null as any);\n // mark state not reflecting\n this.__reflectingProperty = null;\n }\n }\n\n /**\n * Requests an update which is processed asynchronously. This should be called\n * when an element should update based on some state not triggered by setting\n * a reactive property. In this case, pass no arguments. It should also be\n * called when manually implementing a property setter. In this case, pass the\n * property `name` and `oldValue` to ensure that any configured property\n * options are honored.\n *\n * @param name name of requesting property\n * @param oldValue old value of requesting property\n * @param options property options to use instead of the previously\n * configured options\n * @category updates\n */\n requestUpdate(\n name?: PropertyKey,\n oldValue?: unknown,\n options?: PropertyDeclaration\n ): void {\n // If we have a property key, perform property update steps.\n if (name !== undefined) {\n if (DEV_MODE && (name as unknown) instanceof Event) {\n issueWarning(\n ``,\n `The requestUpdate() method was called with an Event as the property name. This is probably a mistake caused by binding this.requestUpdate as an event listener. Instead bind a function that will call it with no arguments: () => this.requestUpdate()`\n );\n }\n const ctor = this.constructor as typeof ReactiveElement;\n const newValue = this[name as keyof this];\n options ??= ctor.getPropertyOptions(name);\n const changed =\n (options.hasChanged ?? notEqual)(newValue, oldValue) ||\n // When there is no change, check a corner case that can occur when\n // 1. there's a initial value which was not reflected\n // 2. the property is subsequently set to this value.\n // For example, `prop: {useDefault: true, reflect: true}`\n // and el.prop = 'foo'. This should be considered a change if the\n // attribute is not set because we will now reflect the property to the attribute.\n (options.useDefault &&\n options.reflect &&\n newValue === this.__defaultValues?.get(name) &&\n !this.hasAttribute(ctor.__attributeNameForProperty(name, options)!));\n if (changed) {\n this._$changeProperty(name, oldValue, options);\n } else {\n // Abort the request if the property should not be considered changed.\n return;\n }\n }\n if (this.isUpdatePending === false) {\n this.__updatePromise = this.__enqueueUpdate();\n }\n }\n\n /**\n * @internal\n */\n _$changeProperty(\n name: PropertyKey,\n oldValue: unknown,\n {useDefault, reflect, wrapped}: PropertyDeclaration,\n initializeValue?: unknown\n ) {\n // Record default value when useDefault is used. This allows us to\n // restore this value when the attribute is removed.\n if (useDefault && !(this.__defaultValues ??= new Map()).has(name)) {\n this.__defaultValues.set(\n name,\n initializeValue ?? oldValue ?? this[name as keyof this]\n );\n // if this is not wrapping an accessor, it must be an initial setting\n // and in this case we do not want to record the change or reflect.\n if (wrapped !== true || initializeValue !== undefined) {\n return;\n }\n }\n // TODO (justinfagnani): Create a benchmark of Map.has() + Map.set(\n // vs just Map.set()\n if (!this._$changedProperties.has(name)) {\n // On the initial change, the old value should be `undefined`, except\n // with `useDefault`\n if (!this.hasUpdated && !useDefault) {\n oldValue = undefined;\n }\n this._$changedProperties.set(name, oldValue);\n }\n // Add to reflecting properties set.\n // Note, it's important that every change has a chance to add the\n // property to `__reflectingProperties`. This ensures setting\n // attribute + property reflects correctly.\n if (reflect === true && this.__reflectingProperty !== name) {\n (this.__reflectingProperties ??= new Set<PropertyKey>()).add(name);\n }\n }\n\n /**\n * Sets up the element to asynchronously update.\n */\n private async __enqueueUpdate() {\n this.isUpdatePending = true;\n try {\n // Ensure any previous update has resolved before updating.\n // This `await` also ensures that property changes are batched.\n await this.__updatePromise;\n } catch (e) {\n // Refire any previous errors async so they do not disrupt the update\n // cycle. Errors are refired so developers have a chance to observe\n // them, and this can be done by implementing\n // `window.onunhandledrejection`.\n Promise.reject(e);\n }\n const result = this.scheduleUpdate();\n // If `scheduleUpdate` returns a Promise, we await it. This is done to\n // enable coordinating updates with a scheduler. Note, the result is\n // checked to avoid delaying an additional microtask unless we need to.\n if (result != null) {\n await result;\n }\n return !this.isUpdatePending;\n }\n\n /**\n * Schedules an element update. You can override this method to change the\n * timing of updates by returning a Promise. The update will await the\n * returned Promise, and you should resolve the Promise to allow the update\n * to proceed. If this method is overridden, `super.scheduleUpdate()`\n * must be called.\n *\n * For instance, to schedule updates to occur just before the next frame:\n *\n * ```ts\n * override protected async scheduleUpdate(): Promise<unknown> {\n * await new Promise((resolve) => requestAnimationFrame(() => resolve()));\n * super.scheduleUpdate();\n * }\n * ```\n * @category updates\n */\n protected scheduleUpdate(): void | Promise<unknown> {\n const result = this.performUpdate();\n if (\n DEV_MODE &&\n (this.constructor as typeof ReactiveElement).enabledWarnings!.includes(\n 'async-perform-update'\n ) &&\n typeof (result as unknown as Promise<unknown> | undefined)?.then ===\n 'function'\n ) {\n issueWarning(\n 'async-perform-update',\n `Element ${this.localName} returned a Promise from performUpdate(). ` +\n `This behavior is deprecated and will be removed in a future ` +\n `version of ReactiveElement.`\n );\n }\n return result;\n }\n\n /**\n * Performs an element update. Note, if an exception is thrown during the\n * update, `firstUpdated` and `updated` will not be called.\n *\n * Call `performUpdate()` to immediately process a pending update. This should\n * generally not be needed, but it can be done in rare cases when you need to\n * update synchronously.\n *\n * @category updates\n */\n protected performUpdate(): void {\n // Abort any update if one is not pending when this is called.\n // This can happen if `performUpdate` is called early to \"flush\"\n // the update.\n if (!this.isUpdatePending) {\n return;\n }\n debugLogEvent?.({kind: 'update'});\n if (!this.hasUpdated) {\n // Create renderRoot before first update. This occurs in `connectedCallback`\n // but is done here to support out of tree calls to `enableUpdating`/`performUpdate`.\n (this as Mutable<typeof this, 'renderRoot'>).renderRoot ??=\n this.createRenderRoot();\n if (DEV_MODE) {\n // Produce warning if any reactive properties on the prototype are\n // shadowed by class fields. Instance fields set before upgrade are\n // deleted by this point, so any own property is caused by class field\n // initialization in the constructor.\n const ctor = this.constructor as typeof ReactiveElement;\n const shadowedProperties = [...ctor.elementProperties.keys()].filter(\n (p) => this.hasOwnProperty(p) && p in getPrototypeOf(this)\n );\n if (shadowedProperties.length) {\n throw new Error(\n `The following properties on element ${this.localName} will not ` +\n `trigger updates as expected because they are set using class ` +\n `fields: ${shadowedProperties.join(', ')}. ` +\n `Native class fields and some compiled output will overwrite ` +\n `accessors used for detecting changes. See ` +\n `https://lit.dev/msg/class-field-shadowing ` +\n `for more information.`\n );\n }\n }\n // Mixin instance properties once, if they exist.\n if (this.__instanceProperties) {\n // TODO (justinfagnani): should we use the stored value? Could a new value\n // have been set since we stored the own property value?\n for (const [p, value] of this.__instanceProperties) {\n this[p as keyof this] = value as this[keyof this];\n }\n this.__instanceProperties = undefined;\n }\n // Trigger initial value reflection and populate the initial\n // `changedProperties` map, but only for the case of properties created\n // via `createProperty` on accessors, which will not have already\n // populated the `changedProperties` map since they are not set.\n // We can't know if these accessors had initializers, so we just set\n // them anyway - a difference from experimental decorators on fields and\n // standard decorators on auto-accessors.\n // For context see:\n // https://github.com/lit/lit/pull/4183#issuecomment-1711959635\n const elementProperties = (this.constructor as typeof ReactiveElement)\n .elementProperties;\n if (elementProperties.size > 0) {\n for (const [p, options] of elementProperties) {\n const {wrapped} = options;\n const value = this[p as keyof this];\n if (\n wrapped === true &&\n !this._$changedProperties.has(p) &&\n value !== undefined\n ) {\n this._$changeProperty(p, undefined, options, value);\n }\n }\n }\n }\n let shouldUpdate = false;\n const changedProperties = this._$changedProperties;\n try {\n shouldUpdate = this.shouldUpdate(changedProperties);\n if (shouldUpdate) {\n this.willUpdate(changedProperties);\n this.__controllers?.forEach((c) => c.hostUpdate?.());\n this.update(changedProperties);\n } else {\n this.__markUpdated();\n }\n } catch (e) {\n // Prevent `firstUpdated` and `updated` from running when there's an\n // update exception.\n shouldUpdate = false;\n // Ensure element can accept additional updates after an exception.\n this.__markUpdated();\n throw e;\n }\n // The update is no longer considered pending and further updates are now allowed.\n if (shouldUpdate) {\n this._$didUpdate(changedProperties);\n }\n }\n\n /**\n * Invoked before `update()` to compute values needed during the update.\n *\n * Implement `willUpdate` to compute property values that depend on other\n * properties and are used in the rest of the update process.\n *\n * ```ts\n * willUpdate(changedProperties) {\n * // only need to check changed properties for an expensive computation.\n * if (changedProperties.has('firstName') || changedProperties.has('lastName')) {\n * this.sha = computeSHA(`${this.firstName} ${this.lastName}`);\n * }\n * }\n *\n * render() {\n * return html`SHA: ${this.sha}`;\n * }\n * ```\n *\n * @category updates\n */\n protected willUpdate(_changedProperties: PropertyValues): void {}\n\n // Note, this is an override point for polyfill-support.\n // @internal\n _$didUpdate(changedProperties: PropertyValues) {\n this.__controllers?.forEach((c) => c.hostUpdated?.());\n if (!this.hasUpdated) {\n this.hasUpdated = true;\n this.firstUpdated(changedProperties);\n }\n this.updated(changedProperties);\n if (\n DEV_MODE &&\n this.isUpdatePending &&\n (this.constructor as typeof ReactiveElement).enabledWarnings!.includes(\n 'change-in-update'\n )\n ) {\n issueWarning(\n 'change-in-update',\n `Element ${this.localName} scheduled an update ` +\n `(generally because a property was set) ` +\n `after an update completed, causing a new update to be scheduled. ` +\n `This is inefficient and should be avoided unless the next update ` +\n `can only be scheduled as a side effect of the previous update.`\n );\n }\n }\n\n private __markUpdated() {\n this._$changedProperties = new Map();\n this.isUpdatePending = false;\n }\n\n /**\n * Returns a Promise that resolves when the element has completed updating.\n * The Promise value is a boolean that is `true` if the element completed the\n * update without triggering another update. The Promise result is `false` if\n * a property was set inside `updated()`. If the Promise is rejected, an\n * exception was thrown during the update.\n *\n * To await additional asynchronous work, override the `getUpdateComplete`\n * method. For example, it is sometimes useful to await a rendered element\n * before fulfilling this Promise. To do this, first await\n * `super.getUpdateComplete()`, then any subsequent state.\n *\n * @return A promise of a boolean that resolves to true if the update completed\n * without triggering another update.\n * @category updates\n */\n get updateComplete(): Promise<boolean> {\n return this.getUpdateComplete();\n }\n\n /**\n * Override point for the `updateComplete` promise.\n *\n * It is not safe to override the `updateComplete` getter directly due to a\n * limitation in TypeScript which means it is not possible to call a\n * superclass getter (e.g. `super.updateComplete.then(...)`) when the target\n * language is ES5 (https://github.com/microsoft/TypeScript/issues/338).\n * This method should be overridden instead. For example:\n *\n * ```ts\n * class MyElement extends LitElement {\n * override async getUpdateComplete() {\n * const result = await super.getUpdateComplete();\n * await this._myChild.updateComplete;\n * return result;\n * }\n * }\n * ```\n *\n * @return A promise of a boolean that resolves to true if the update completed\n * without triggering another update.\n * @category updates\n */\n protected getUpdateComplete(): Promise<boolean> {\n return this.__updatePromise;\n }\n\n /**\n * Controls whether or not `update()` should be called when the element requests\n * an update. By default, this method always returns `true`, but this can be\n * customized to control when to update.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n protected shouldUpdate(_changedProperties: PropertyValues): boolean {\n return true;\n }\n\n /**\n * Updates the element. This method reflects property values to attributes.\n * It can be overridden to render and keep updated element DOM.\n * Setting properties inside this method will *not* trigger\n * another update.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n protected update(_changedProperties: PropertyValues) {\n // The forEach() expression will only run when __reflectingProperties is\n // defined, and it returns undefined, setting __reflectingProperties to\n // undefined\n this.__reflectingProperties &&= this.__reflectingProperties.forEach((p) =>\n this.__propertyToAttribute(p, this[p as keyof this])\n ) as undefined;\n this.__markUpdated();\n }\n\n /**\n * Invoked whenever the element is updated. Implement to perform\n * post-updating tasks via DOM APIs, for example, focusing an element.\n *\n * Setting properties inside this method will trigger the element to update\n * again after this update cycle completes.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n protected updated(_changedProperties: PropertyValues) {}\n\n /**\n * Invoked when the element is first updated. Implement to perform one time\n * work on the element after update.\n *\n * ```ts\n * firstUpdated() {\n * this.renderRoot.getElementById('my-text-area').focus();\n * }\n * ```\n *\n * Setting properties inside this method will trigger the element to update\n * again after this update cycle completes.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n protected firstUpdated(_changedProperties: PropertyValues) {}\n}\n// Assigned here to work around a jscompiler bug with static fields\n// when compiling to ES5.\n// https://github.com/google/closure-compiler/issues/3177\n(ReactiveElement as unknown as Record<string, unknown>)[\n JSCompiler_renameProperty('elementProperties', ReactiveElement)\n] = new Map();\n(ReactiveElement as unknown as Record<string, unknown>)[\n JSCompiler_renameProperty('finalized', ReactiveElement)\n] = new Map();\n\n// Apply polyfills if available\npolyfillSupport?.({ReactiveElement});\n\n// Dev mode warnings...\nif (DEV_MODE) {\n // Default warning set.\n ReactiveElement.enabledWarnings = [\n 'change-in-update',\n 'async-perform-update',\n ];\n const ensureOwnWarnings = function (ctor: typeof ReactiveElement) {\n if (\n !ctor.hasOwnProperty(JSCompiler_renameProperty('enabledWarnings', ctor))\n ) {\n ctor.enabledWarnings = ctor.enabledWarnings!.slice();\n }\n };\n ReactiveElement.enableWarning = function (\n this: typeof ReactiveElement,\n warning: WarningKind\n ) {\n ensureOwnWarnings(this);\n if (!this.enabledWarnings!.includes(warning)) {\n this.enabledWarnings!.push(warning);\n }\n };\n ReactiveElement.disableWarning = function (\n this: typeof ReactiveElement,\n warning: WarningKind\n ) {\n ensureOwnWarnings(this);\n const i = this.enabledWarnings!.indexOf(warning);\n if (i >= 0) {\n this.enabledWarnings!.splice(i, 1);\n }\n };\n}\n\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for ReactiveElement usage.\n(global.reactiveElementVersions ??= []).push('2.1.0');\nif (DEV_MODE && global.reactiveElementVersions.length > 1) {\n queueMicrotask(() => {\n issueWarning!(\n 'multiple-versions',\n `Multiple versions of Lit loaded. Loading multiple versions ` +\n `is not recommended.`\n );\n });\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n// IMPORTANT: these imports must be type-only\nimport type {Directive, DirectiveResult, PartInfo} from './directive.js';\nimport type {TrustedHTML, TrustedTypesWindow} from 'trusted-types/lib/index.js';\n\nconst DEV_MODE = true;\nconst ENABLE_EXTRA_SECURITY_HOOKS = true;\nconst ENABLE_SHADYDOM_NOPATCH = true;\nconst NODE_MODE = false;\n\n// Allows minifiers to rename references to globalThis\nconst global = globalThis;\n\n/**\n * Contains types that are part of the unstable debug API.\n *\n * Everything in this API is not stable and may change or be removed in the future,\n * even on patch releases.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace LitUnstable {\n /**\n * When Lit is running in dev mode and `window.emitLitDebugLogEvents` is true,\n * we will emit 'lit-debug' events to window, with live details about the update and render\n * lifecycle. These can be useful for writing debug tooling and visualizations.\n *\n * Please be aware that running with window.emitLitDebugLogEvents has performance overhead,\n * making certain operations that are normally very cheap (like a no-op render) much slower,\n * because we must copy data and dispatch events.\n */\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace DebugLog {\n export type Entry =\n | TemplatePrep\n | TemplateInstantiated\n | TemplateInstantiatedAndUpdated\n | TemplateUpdating\n | BeginRender\n | EndRender\n | CommitPartEntry\n | SetPartValue;\n export interface TemplatePrep {\n kind: 'template prep';\n template: Template;\n strings: TemplateStringsArray;\n clonableTemplate: HTMLTemplateElement;\n parts: TemplatePart[];\n }\n export interface BeginRender {\n kind: 'begin render';\n id: number;\n value: unknown;\n container: HTMLElement | DocumentFragment;\n options: RenderOptions | undefined;\n part: ChildPart | undefined;\n }\n export interface EndRender {\n kind: 'end render';\n id: number;\n value: unknown;\n container: HTMLElement | DocumentFragment;\n options: RenderOptions | undefined;\n part: ChildPart;\n }\n export interface TemplateInstantiated {\n kind: 'template instantiated';\n template: Template | CompiledTemplate;\n instance: TemplateInstance;\n options: RenderOptions | undefined;\n fragment: Node;\n parts: Array<Part | undefined>;\n values: unknown[];\n }\n export interface TemplateInstantiatedAndUpdated {\n kind: 'template instantiated and updated';\n template: Template | CompiledTemplate;\n instance: TemplateInstance;\n options: RenderOptions | undefined;\n fragment: Node;\n parts: Array<Part | undefined>;\n values: unknown[];\n }\n export interface TemplateUpdating {\n kind: 'template updating';\n template: Template | CompiledTemplate;\n instance: TemplateInstance;\n options: RenderOptions | undefined;\n parts: Array<Part | undefined>;\n values: unknown[];\n }\n export interface SetPartValue {\n kind: 'set part';\n part: Part;\n value: unknown;\n valueIndex: number;\n values: unknown[];\n templateInstance: TemplateInstance;\n }\n\n export type CommitPartEntry =\n | CommitNothingToChildEntry\n | CommitText\n | CommitNode\n | CommitAttribute\n | CommitProperty\n | CommitBooleanAttribute\n | CommitEventListener\n | CommitToElementBinding;\n\n export interface CommitNothingToChildEntry {\n kind: 'commit nothing to child';\n start: ChildNode;\n end: ChildNode | null;\n parent: Disconnectable | undefined;\n options: RenderOptions | undefined;\n }\n\n export interface CommitText {\n kind: 'commit text';\n node: Text;\n value: unknown;\n options: RenderOptions | undefined;\n }\n\n export interface CommitNode {\n kind: 'commit node';\n start: Node;\n parent: Disconnectable | undefined;\n value: Node;\n options: RenderOptions | undefined;\n }\n\n export interface CommitAttribute {\n kind: 'commit attribute';\n element: Element;\n name: string;\n value: unknown;\n options: RenderOptions | undefined;\n }\n\n export interface CommitProperty {\n kind: 'commit property';\n element: Element;\n name: string;\n value: unknown;\n options: RenderOptions | undefined;\n }\n\n export interface CommitBooleanAttribute {\n kind: 'commit boolean attribute';\n element: Element;\n name: string;\n value: boolean;\n options: RenderOptions | undefined;\n }\n\n export interface CommitEventListener {\n kind: 'commit event listener';\n element: Element;\n name: string;\n value: unknown;\n oldListener: unknown;\n options: RenderOptions | undefined;\n // True if we're removing the old event listener (e.g. because settings changed, or value is nothing)\n removeListener: boolean;\n // True if we're adding a new event listener (e.g. because first render, or settings changed)\n addListener: boolean;\n }\n\n export interface CommitToElementBinding {\n kind: 'commit to element binding';\n element: Element;\n value: unknown;\n options: RenderOptions | undefined;\n }\n }\n}\n\ninterface DebugLoggingWindow {\n // Even in dev mode, we generally don't want to emit these events, as that's\n // another level of cost, so only emit them when DEV_MODE is true _and_ when\n // window.emitLitDebugEvents is true.\n emitLitDebugLogEvents?: boolean;\n}\n\n/**\n * Useful for visualizing and logging insights into what the Lit template system is doing.\n *\n * Compiled out of prod mode builds.\n */\nconst debugLogEvent = DEV_MODE\n ? (event: LitUnstable.DebugLog.Entry) => {\n const shouldEmit = (global as unknown as DebugLoggingWindow)\n .emitLitDebugLogEvents;\n if (!shouldEmit) {\n return;\n }\n global.dispatchEvent(\n new CustomEvent<LitUnstable.DebugLog.Entry>('lit-debug', {\n detail: event,\n })\n );\n }\n : undefined;\n// Used for connecting beginRender and endRender events when there are nested\n// renders when errors are thrown preventing an endRender event from being\n// called.\nlet debugLogRenderId = 0;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nif (DEV_MODE) {\n global.litIssuedWarnings ??= new Set();\n\n /**\n * Issue a warning if we haven't already, based either on `code` or `warning`.\n * Warnings are disabled automatically only by `warning`; disabling via `code`\n * can be done by users.\n */\n issueWarning = (code: string, warning: string) => {\n warning += code\n ? ` See https://lit.dev/msg/${code} for more information.`\n : '';\n if (\n !global.litIssuedWarnings!.has(warning) &&\n !global.litIssuedWarnings!.has(code)\n ) {\n console.warn(warning);\n global.litIssuedWarnings!.add(warning);\n }\n };\n\n queueMicrotask(() => {\n issueWarning(\n 'dev-mode',\n `Lit is in dev mode. Not recommended for production!`\n );\n });\n}\n\nconst wrap =\n ENABLE_SHADYDOM_NOPATCH &&\n global.ShadyDOM?.inUse &&\n global.ShadyDOM?.noPatch === true\n ? (global.ShadyDOM!.wrap as <T extends Node>(node: T) => T)\n : <T extends Node>(node: T) => node;\n\nconst trustedTypes = (global as unknown as TrustedTypesWindow).trustedTypes;\n\n/**\n * Our TrustedTypePolicy for HTML which is declared using the html template\n * tag function.\n *\n * That HTML is a developer-authored constant, and is parsed with innerHTML\n * before any untrusted expressions have been mixed in. Therefor it is\n * considered safe by construction.\n */\nconst policy = trustedTypes\n ? trustedTypes.createPolicy('lit-html', {\n createHTML: (s) => s,\n })\n : undefined;\n\n/**\n * Used to sanitize any value before it is written into the DOM. This can be\n * used to implement a security policy of allowed and disallowed values in\n * order to prevent XSS attacks.\n *\n * One way of using this callback would be to check attributes and properties\n * against a list of high risk fields, and require that values written to such\n * fields be instances of a class which is safe by construction. Closure's Safe\n * HTML Types is one implementation of this technique (\n * https://github.com/google/safe-html-types/blob/master/doc/safehtml-types.md).\n * The TrustedTypes polyfill in API-only mode could also be used as a basis\n * for this technique (https://github.com/WICG/trusted-types).\n *\n * @param node The HTML node (usually either a #text node or an Element) that\n * is being written to. Note that this is just an exemplar node, the write\n * may take place against another instance of the same class of node.\n * @param name The name of an attribute or property (for example, 'href').\n * @param type Indicates whether the write that's about to be performed will\n * be to a property or a node.\n * @return A function that will sanitize this class of writes.\n */\nexport type SanitizerFactory = (\n node: Node,\n name: string,\n type: 'property' | 'attribute'\n) => ValueSanitizer;\n\n/**\n * A function which can sanitize values that will be written to a specific kind\n * of DOM sink.\n *\n * See SanitizerFactory.\n *\n * @param value The value to sanitize. Will be the actual value passed into\n * the lit-html template literal, so this could be of any type.\n * @return The value to write to the DOM. Usually the same as the input value,\n * unless sanitization is needed.\n */\nexport type ValueSanitizer = (value: unknown) => unknown;\n\nconst identityFunction: ValueSanitizer = (value: unknown) => value;\nconst noopSanitizer: SanitizerFactory = (\n _node: Node,\n _name: string,\n _type: 'property' | 'attribute'\n) => identityFunction;\n\n/** Sets the global sanitizer factory. */\nconst setSanitizer = (newSanitizer: SanitizerFactory) => {\n if (!ENABLE_EXTRA_SECURITY_HOOKS) {\n return;\n }\n if (sanitizerFactoryInternal !== noopSanitizer) {\n throw new Error(\n `Attempted to overwrite existing lit-html security policy.` +\n ` setSanitizeDOMValueFactory should be called at most once.`\n );\n }\n sanitizerFactoryInternal = newSanitizer;\n};\n\n/**\n * Only used in internal tests, not a part of the public API.\n */\nconst _testOnlyClearSanitizerFactoryDoNotCallOrElse = () => {\n sanitizerFactoryInternal = noopSanitizer;\n};\n\nconst createSanitizer: SanitizerFactory = (node, name, type) => {\n return sanitizerFactoryInternal(node, name, type);\n};\n\n// Added to an attribute name to mark the attribute as bound so we can find\n// it easily.\nconst boundAttributeSuffix = '$lit$';\n\n// This marker is used in many syntactic positions in HTML, so it must be\n// a valid element name and attribute name. We don't support dynamic names (yet)\n// but this at least ensures that the parse tree is closer to the template\n// intention.\nconst marker = `lit$${Math.random().toFixed(9).slice(2)}$`;\n\n// String used to tell if a comment is a marker comment\nconst markerMatch = '?' + marker;\n\n// Text used to insert a comment marker node. We use processing instruction\n// syntax because it's slightly smaller, but parses as a comment node.\nconst nodeMarker = `<${markerMatch}>`;\n\nconst d =\n NODE_MODE && global.document === undefined\n ? ({\n createTreeWalker() {\n return {};\n },\n } as unknown as Document)\n : document;\n\n// Creates a dynamic marker. We never have to search for these in the DOM.\nconst createMarker = () => d.createComment('');\n\n// https://tc39.github.io/ecma262/#sec-typeof-operator\ntype Primitive = null | undefined | boolean | number | string | symbol | bigint;\nconst isPrimitive = (value: unknown): value is Primitive =>\n value === null || (typeof value != 'object' && typeof value != 'function');\nconst isArray = Array.isArray;\nconst isIterable = (value: unknown): value is Iterable<unknown> =>\n isArray(value) ||\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n typeof (value as any)?.[Symbol.iterator] === 'function';\n\nconst SPACE_CHAR = `[ \\t\\n\\f\\r]`;\nconst ATTR_VALUE_CHAR = `[^ \\t\\n\\f\\r\"'\\`<>=]`;\nconst NAME_CHAR = `[^\\\\s\"'>=/]`;\n\n// These regexes represent the five parsing states that we care about in the\n// Template's HTML scanner. They match the *end* of the state they're named\n// after.\n// Depending on the match, we transition to a new state. If there's no match,\n// we stay in the same state.\n// Note that the regexes are stateful. We utilize lastIndex and sync it\n// across the multiple regexes used. In addition to the five regexes below\n// we also dynamically create a regex to find the matching end tags for raw\n// text elements.\n\n/**\n * End of text is: `<` followed by:\n * (comment start) or (tag) or (dynamic tag binding)\n */\nconst textEndRegex = /<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g;\nconst COMMENT_START = 1;\nconst TAG_NAME = 2;\nconst DYNAMIC_TAG_NAME = 3;\n\nconst commentEndRegex = /-->/g;\n/**\n * Comments not started with <!--, like </{, can be ended by a single `>`\n */\nconst comment2EndRegex = />/g;\n\n/**\n * The tagEnd regex matches the end of the \"inside an opening\" tag syntax\n * position. It either matches a `>`, an attribute-like sequence, or the end\n * of the string after a space (attribute-name position ending).\n *\n * See attributes in the HTML spec:\n * https://www.w3.org/TR/html5/syntax.html#elements-attributes\n *\n * \" \\t\\n\\f\\r\" are HTML space characters:\n * https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * So an attribute is:\n * * The name: any character except a whitespace character, (\"), ('), \">\",\n * \"=\", or \"/\". Note: this is different from the HTML spec which also excludes control characters.\n * * Followed by zero or more space characters\n * * Followed by \"=\"\n * * Followed by zero or more space characters\n * * Followed by:\n * * Any character except space, ('), (\"), \"<\", \">\", \"=\", (`), or\n * * (\") then any non-(\"), or\n * * (') then any non-(')\n */\nconst tagEndRegex = new RegExp(\n `>|${SPACE_CHAR}(?:(${NAME_CHAR}+)(${SPACE_CHAR}*=${SPACE_CHAR}*(?:${ATTR_VALUE_CHAR}|(\"|')|))|$)`,\n 'g'\n);\nconst ENTIRE_MATCH = 0;\nconst ATTRIBUTE_NAME = 1;\nconst SPACES_AND_EQUALS = 2;\nconst QUOTE_CHAR = 3;\n\nconst singleQuoteAttrEndRegex = /'/g;\nconst doubleQuoteAttrEndRegex = /\"/g;\n/**\n * Matches the raw text elements.\n *\n * Comments are not parsed within raw text elements, so we need to search their\n * text content for marker strings.\n */\nconst rawTextElement = /^(?:script|style|textarea|title)$/i;\n\n/** TemplateResult types */\nconst HTML_RESULT = 1;\nconst SVG_RESULT = 2;\nconst MATHML_RESULT = 3;\n\ntype ResultType = typeof HTML_RESULT | typeof SVG_RESULT | typeof MATHML_RESULT;\n\n// TemplatePart types\n// IMPORTANT: these must match the values in PartType\nconst ATTRIBUTE_PART = 1;\nconst CHILD_PART = 2;\nconst PROPERTY_PART = 3;\nconst BOOLEAN_ATTRIBUTE_PART = 4;\nconst EVENT_PART = 5;\nconst ELEMENT_PART = 6;\nconst COMMENT_PART = 7;\n\n/**\n * The return type of the template tag functions, {@linkcode html} and\n * {@linkcode svg} when it hasn't been compiled by @lit-labs/compiler.\n *\n * A `TemplateResult` object holds all the information about a template\n * expression required to render it: the template strings, expression values,\n * and type of template (html or svg).\n *\n * `TemplateResult` objects do not create any DOM on their own. To create or\n * update DOM you need to render the `TemplateResult`. See\n * [Rendering](https://lit.dev/docs/components/rendering) for more information.\n *\n */\nexport type UncompiledTemplateResult<T extends ResultType = ResultType> = {\n // This property needs to remain unminified.\n ['_$litType$']: T;\n strings: TemplateStringsArray;\n values: unknown[];\n};\n\n/**\n * This is a template result that may be either uncompiled or compiled.\n *\n * In the future, TemplateResult will be this type. If you want to explicitly\n * note that a template result is potentially compiled, you can reference this\n * type and it will continue to behave the same through the next major version\n * of Lit. This can be useful for code that wants to prepare for the next\n * major version of Lit.\n */\nexport type MaybeCompiledTemplateResult<T extends ResultType = ResultType> =\n | UncompiledTemplateResult<T>\n | CompiledTemplateResult;\n\n/**\n * The return type of the template tag functions, {@linkcode html} and\n * {@linkcode svg}.\n *\n * A `TemplateResult` object holds all the information about a template\n * expression required to render it: the template strings, expression values,\n * and type of template (html or svg).\n *\n * `TemplateResult` objects do not create any DOM on their own. To create or\n * update DOM you need to render the `TemplateResult`. See\n * [Rendering](https://lit.dev/docs/components/rendering) for more information.\n *\n * In Lit 4, this type will be an alias of\n * MaybeCompiledTemplateResult, so that code will get type errors if it assumes\n * that Lit templates are not compiled. When deliberately working with only\n * one, use either {@linkcode CompiledTemplateResult} or\n * {@linkcode UncompiledTemplateResult} explicitly.\n */\nexport type TemplateResult<T extends ResultType = ResultType> =\n UncompiledTemplateResult<T>;\n\nexport type HTMLTemplateResult = TemplateResult<typeof HTML_RESULT>;\n\nexport type SVGTemplateResult = TemplateResult<typeof SVG_RESULT>;\n\nexport type MathMLTemplateResult = TemplateResult<typeof MATHML_RESULT>;\n\n/**\n * A TemplateResult that has been compiled by @lit-labs/compiler, skipping the\n * prepare step.\n */\nexport interface CompiledTemplateResult {\n // This is a factory in order to make template initialization lazy\n // and allow ShadyRenderOptions scope to be passed in.\n // This property needs to remain unminified.\n ['_$litType$']: CompiledTemplate;\n values: unknown[];\n}\n\nexport interface CompiledTemplate extends Omit<Template, 'el'> {\n // el is overridden to be optional. We initialize it on first render\n el?: HTMLTemplateElement;\n\n // The prepared HTML string to create a template element from.\n // The type is a TemplateStringsArray to guarantee that the value came from\n // source code, preventing a JSON injection attack.\n h: TemplateStringsArray;\n}\n\n/**\n * Generates a template literal tag function that returns a TemplateResult with\n * the given result type.\n */\nconst tag =\n <T extends ResultType>(type: T) =>\n (strings: TemplateStringsArray, ...values: unknown[]): TemplateResult<T> => {\n // Warn against templates octal escape sequences\n // We do this here rather than in render so that the warning is closer to the\n // template definition.\n if (DEV_MODE && strings.some((s) => s === undefined)) {\n console.warn(\n 'Some template strings are undefined.\\n' +\n 'This is probably caused by illegal octal escape sequences.'\n );\n }\n if (DEV_MODE) {\n // Import static-html.js results in a circular dependency which g3 doesn't\n // handle. Instead we know that static values must have the field\n // `_$litStatic$`.\n if (\n values.some((val) => (val as {_$litStatic$: unknown})?.['_$litStatic$'])\n ) {\n issueWarning(\n '',\n `Static values 'literal' or 'unsafeStatic' cannot be used as values to non-static templates.\\n` +\n `Please use the static 'html' tag function. See https://lit.dev/docs/templates/expressions/#static-expressions`\n );\n }\n }\n return {\n // This property needs to remain unminified.\n ['_$litType$']: type,\n strings,\n values,\n };\n };\n\n/**\n * Interprets a template literal as an HTML template that can efficiently\n * render to and update a container.\n *\n * ```ts\n * const header = (title: string) => html`<h1>${title}</h1>`;\n * ```\n *\n * The `html` tag returns a description of the DOM to render as a value. It is\n * lazy, meaning no work is done until the template is rendered. When rendering,\n * if a template comes from the same expression as a previously rendered result,\n * it's efficiently updated instead of replaced.\n */\nexport const html = tag(HTML_RESULT);\n\n/**\n * Interprets a template literal as an SVG fragment that can efficiently render\n * to and update a container.\n *\n * ```ts\n * const rect = svg`<rect width=\"10\" height=\"10\"></rect>`;\n *\n * const myImage = html`\n * <svg viewBox=\"0 0 10 10\" xmlns=\"http://www.w3.org/2000/svg\">\n * ${rect}\n * </svg>`;\n * ```\n *\n * The `svg` *tag function* should only be used for SVG fragments, or elements\n * that would be contained **inside** an `<svg>` HTML element. A common error is\n * placing an `<svg>` *element* in a template tagged with the `svg` tag\n * function. The `<svg>` element is an HTML element and should be used within a\n * template tagged with the {@linkcode html} tag function.\n *\n * In LitElement usage, it's invalid to return an SVG fragment from the\n * `render()` method, as the SVG fragment will be contained within the element's\n * shadow root and thus not be properly contained within an `<svg>` HTML\n * element.\n */\nexport const svg = tag(SVG_RESULT);\n\n/**\n * Interprets a template literal as MathML fragment that can efficiently render\n * to and update a container.\n *\n * ```ts\n * const num = mathml`<mn>1</mn>`;\n *\n * const eq = html`\n * <math>\n * ${num}\n * </math>`;\n * ```\n *\n * The `mathml` *tag function* should only be used for MathML fragments, or\n * elements that would be contained **inside** a `<math>` HTML element. A common\n * error is placing a `<math>` *element* in a template tagged with the `mathml`\n * tag function. The `<math>` element is an HTML element and should be used\n * within a template tagged with the {@linkcode html} tag function.\n *\n * In LitElement usage, it's invalid to return an MathML fragment from the\n * `render()` method, as the MathML fragment will be contained within the\n * element's shadow root and thus not be properly contained within a `<math>`\n * HTML element.\n */\nexport const mathml = tag(MATHML_RESULT);\n\n/**\n * A sentinel value that signals that a value was handled by a directive and\n * should not be written to the DOM.\n */\nexport const noChange = Symbol.for('lit-noChange');\n\n/**\n * A sentinel value that signals a ChildPart to fully clear its content.\n *\n * ```ts\n * const button = html`${\n * user.isAdmin\n * ? html`<button>DELETE</button>`\n * : nothing\n * }`;\n * ```\n *\n * Prefer using `nothing` over other falsy values as it provides a consistent\n * behavior between various expression binding contexts.\n *\n * In child expressions, `undefined`, `null`, `''`, and `nothing` all behave the\n * same and render no nodes. In attribute expressions, `nothing` _removes_ the\n * attribute, while `undefined` and `null` will render an empty string. In\n * property expressions `nothing` becomes `undefined`.\n */\nexport const nothing = Symbol.for('lit-nothing');\n\n/**\n * The cache of prepared templates, keyed by the tagged TemplateStringsArray\n * and _not_ accounting for the specific template tag used. This means that\n * template tags cannot be dynamic - they must statically be one of html, svg,\n * or attr. This restriction simplifies the cache lookup, which is on the hot\n * path for rendering.\n */\nconst templateCache = new WeakMap<TemplateStringsArray, Template>();\n\n/**\n * Object specifying options for controlling lit-html rendering. Note that\n * while `render` may be called multiple times on the same `container` (and\n * `renderBefore` reference node) to efficiently update the rendered content,\n * only the options passed in during the first render are respected during\n * the lifetime of renders to that unique `container` + `renderBefore`\n * combination.\n */\nexport interface RenderOptions {\n /**\n * An object to use as the `this` value for event listeners. It's often\n * useful to set this to the host component rendering a template.\n */\n host?: object;\n /**\n * A DOM node before which to render content in the container.\n */\n renderBefore?: ChildNode | null;\n /**\n * Node used for cloning the template (`importNode` will be called on this\n * node). This controls the `ownerDocument` of the rendered DOM, along with\n * any inherited context. Defaults to the global `document`.\n */\n creationScope?: {importNode(node: Node, deep?: boolean): Node};\n /**\n * The initial connected state for the top-level part being rendered. If no\n * `isConnected` option is set, `AsyncDirective`s will be connected by\n * default. Set to `false` if the initial render occurs in a disconnected tree\n * and `AsyncDirective`s should see `isConnected === false` for their initial\n * render. The `part.setConnected()` method must be used subsequent to initial\n * render to change the connected state of the part.\n */\n isConnected?: boolean;\n}\n\nconst walker = d.createTreeWalker(\n d,\n 129 /* NodeFilter.SHOW_{ELEMENT|COMMENT} */\n);\n\nlet sanitizerFactoryInternal: SanitizerFactory = noopSanitizer;\n\n//\n// Classes only below here, const variable declarations only above here...\n//\n// Keeping variable declarations and classes together improves minification.\n// Interfaces and type aliases can be interleaved freely.\n//\n\n// Type for classes that have a `_directive` or `_directives[]` field, used by\n// `resolveDirective`\nexport interface DirectiveParent {\n _$parent?: DirectiveParent;\n _$isConnected: boolean;\n __directive?: Directive;\n __directives?: Array<Directive | undefined>;\n}\n\nfunction trustFromTemplateString(\n tsa: TemplateStringsArray,\n stringFromTSA: string\n): TrustedHTML {\n // A security check to prevent spoofing of Lit template results.\n // In the future, we may be able to replace this with Array.isTemplateObject,\n // though we might need to make that check inside of the html and svg\n // functions, because precompiled templates don't come in as\n // TemplateStringArray objects.\n if (!isArray(tsa) || !tsa.hasOwnProperty('raw')) {\n let message = 'invalid template strings array';\n if (DEV_MODE) {\n message = `\n Internal Error: expected template strings to be an array\n with a 'raw' field. Faking a template strings array by\n calling html or svg like an ordinary function is effectively\n the same as calling unsafeHtml and can lead to major security\n issues, e.g. opening your code up to XSS attacks.\n If you're using the html or svg tagged template functions normally\n and still seeing this error, please file a bug at\n https://github.com/lit/lit/issues/new?template=bug_report.md\n and include information about your build tooling, if any.\n `\n .trim()\n .replace(/\\n */g, '\\n');\n }\n throw new Error(message);\n }\n return policy !== undefined\n ? policy.createHTML(stringFromTSA)\n : (stringFromTSA as unknown as TrustedHTML);\n}\n\n/**\n * Returns an HTML string for the given TemplateStringsArray and result type\n * (HTML or SVG), along with the case-sensitive bound attribute names in\n * template order. The HTML contains comment markers denoting the `ChildPart`s\n * and suffixes on bound attributes denoting the `AttributeParts`.\n *\n * @param strings template strings array\n * @param type HTML or SVG\n * @return Array containing `[html, attrNames]` (array returned for terseness,\n * to avoid object fields since this code is shared with non-minified SSR\n * code)\n */\nconst getTemplateHtml = (\n strings: TemplateStringsArray,\n type: ResultType\n): [TrustedHTML, Array<string>] => {\n // Insert makers into the template HTML to represent the position of\n // bindings. The following code scans the template strings to determine the\n // syntactic position of the bindings. They can be in text position, where\n // we insert an HTML comment, attribute value position, where we insert a\n // sentinel string and re-write the attribute name, or inside a tag where\n // we insert the sentinel string.\n const l = strings.length - 1;\n // Stores the case-sensitive bound attribute names in the order of their\n // parts. ElementParts are also reflected in this array as undefined\n // rather than a string, to disambiguate from attribute bindings.\n const attrNames: Array<string> = [];\n let html =\n type === SVG_RESULT ? '<svg>' : type === MATHML_RESULT ? '<math>' : '';\n\n // When we're inside a raw text tag (not it's text content), the regex\n // will still be tagRegex so we can find attributes, but will switch to\n // this regex when the tag ends.\n let rawTextEndRegex: RegExp | undefined;\n\n // The current parsing state, represented as a reference to one of the\n // regexes\n let regex = textEndRegex;\n\n for (let i = 0; i < l; i++) {\n const s = strings[i];\n // The index of the end of the last attribute name. When this is\n // positive at end of a string, it means we're in an attribute value\n // position and need to rewrite the attribute name.\n // We also use a special value of -2 to indicate that we encountered\n // the end of a string in attribute name position.\n let attrNameEndIndex = -1;\n let attrName: string | undefined;\n let lastIndex = 0;\n let match!: RegExpExecArray | null;\n\n // The conditions in this loop handle the current parse state, and the\n // assignments to the `regex` variable are the state transitions.\n while (lastIndex < s.length) {\n // Make sure we start searching from where we previously left off\n regex.lastIndex = lastIndex;\n match = regex.exec(s);\n if (match === null) {\n break;\n }\n lastIndex = regex.lastIndex;\n if (regex === textEndRegex) {\n if (match[COMMENT_START] === '!--') {\n regex = commentEndRegex;\n } else if (match[COMMENT_START] !== undefined) {\n // We started a weird comment, like </{\n regex = comment2EndRegex;\n } else if (match[TAG_NAME] !== undefined) {\n if (rawTextElement.test(match[TAG_NAME])) {\n // Record if we encounter a raw-text element. We'll switch to\n // this regex at the end of the tag.\n rawTextEndRegex = new RegExp(`</${match[TAG_NAME]}`, 'g');\n }\n regex = tagEndRegex;\n } else if (match[DYNAMIC_TAG_NAME] !== undefined) {\n if (DEV_MODE) {\n throw new Error(\n 'Bindings in tag names are not supported. Please use static templates instead. ' +\n 'See https://lit.dev/docs/templates/expressions/#static-expressions'\n );\n }\n regex = tagEndRegex;\n }\n } else if (regex === tagEndRegex) {\n if (match[ENTIRE_MATCH] === '>') {\n // End of a tag. If we had started a raw-text element, use that\n // regex\n regex = rawTextEndRegex ?? textEndRegex;\n // We may be ending an unquoted attribute value, so make sure we\n // clear any pending attrNameEndIndex\n attrNameEndIndex = -1;\n } else if (match[ATTRIBUTE_NAME] === undefined) {\n // Attribute name position\n attrNameEndIndex = -2;\n } else {\n attrNameEndIndex = regex.lastIndex - match[SPACES_AND_EQUALS].length;\n attrName = match[ATTRIBUTE_NAME];\n regex =\n match[QUOTE_CHAR] === undefined\n ? tagEndRegex\n : match[QUOTE_CHAR] === '\"'\n ? doubleQuoteAttrEndRegex\n : singleQuoteAttrEndRegex;\n }\n } else if (\n regex === doubleQuoteAttrEndRegex ||\n regex === singleQuoteAttrEndRegex\n ) {\n regex = tagEndRegex;\n } else if (regex === commentEndRegex || regex === comment2EndRegex) {\n regex = textEndRegex;\n } else {\n // Not one of the five state regexes, so it must be the dynamically\n // created raw text regex and we're at the close of that element.\n regex = tagEndRegex;\n rawTextEndRegex = undefined;\n }\n }\n\n if (DEV_MODE) {\n // If we have a attrNameEndIndex, which indicates that we should\n // rewrite the attribute name, assert that we're in a valid attribute\n // position - either in a tag, or a quoted attribute value.\n console.assert(\n attrNameEndIndex === -1 ||\n regex === tagEndRegex ||\n regex === singleQuoteAttrEndRegex ||\n regex === doubleQuoteAttrEndRegex,\n 'unexpected parse state B'\n );\n }\n\n // We have four cases:\n // 1. We're in text position, and not in a raw text element\n // (regex === textEndRegex): insert a comment marker.\n // 2. We have a non-negative attrNameEndIndex which means we need to\n // rewrite the attribute name to add a bound attribute suffix.\n // 3. We're at the non-first binding in a multi-binding attribute, use a\n // plain marker.\n // 4. We're somewhere else inside the tag. If we're in attribute name\n // position (attrNameEndIndex === -2), add a sequential suffix to\n // generate a unique attribute name.\n\n // Detect a binding next to self-closing tag end and insert a space to\n // separate the marker from the tag end:\n const end =\n regex === tagEndRegex && strings[i + 1].startsWith('/>') ? ' ' : '';\n html +=\n regex === textEndRegex\n ? s + nodeMarker\n : attrNameEndIndex >= 0\n ? (attrNames.push(attrName!),\n s.slice(0, attrNameEndIndex) +\n boundAttributeSuffix +\n s.slice(attrNameEndIndex)) +\n marker +\n end\n : s + marker + (attrNameEndIndex === -2 ? i : end);\n }\n\n const htmlResult: string | TrustedHTML =\n html +\n (strings[l] || '<?>') +\n (type === SVG_RESULT ? '</svg>' : type === MATHML_RESULT ? '</math>' : '');\n\n // Returned as an array for terseness\n return [trustFromTemplateString(strings, htmlResult), attrNames];\n};\n\n/** @internal */\nexport type {Template};\nclass Template {\n /** @internal */\n el!: HTMLTemplateElement;\n\n parts: Array<TemplatePart> = [];\n\n constructor(\n // This property needs to remain unminified.\n {strings, ['_$litType$']: type}: UncompiledTemplateResult,\n options?: RenderOptions\n ) {\n let node: Node | null;\n let nodeIndex = 0;\n let attrNameIndex = 0;\n const partCount = strings.length - 1;\n const parts = this.parts;\n\n // Create template element\n const [html, attrNames] = getTemplateHtml(strings, type);\n this.el = Template.createElement(html, options);\n walker.currentNode = this.el.content;\n\n // Re-parent SVG or MathML nodes into template root\n if (type === SVG_RESULT || type === MATHML_RESULT) {\n const wrapper = this.el.content.firstChild!;\n wrapper.replaceWith(...wrapper.childNodes);\n }\n\n // Walk the template to find binding markers and create TemplateParts\n while ((node = walker.nextNode()) !== null && parts.length < partCount) {\n if (node.nodeType === 1) {\n if (DEV_MODE) {\n const tag = (node as Element).localName;\n // Warn if `textarea` includes an expression and throw if `template`\n // does since these are not supported. We do this by checking\n // innerHTML for anything that looks like a marker. This catches\n // cases like bindings in textarea there markers turn into text nodes.\n if (\n /^(?:textarea|template)$/i!.test(tag) &&\n (node as Element).innerHTML.includes(marker)\n ) {\n const m =\n `Expressions are not supported inside \\`${tag}\\` ` +\n `elements. See https://lit.dev/msg/expression-in-${tag} for more ` +\n `information.`;\n if (tag === 'template') {\n throw new Error(m);\n } else issueWarning('', m);\n }\n }\n // TODO (justinfagnani): for attempted dynamic tag names, we don't\n // increment the bindingIndex, and it'll be off by 1 in the element\n // and off by two after it.\n if ((node as Element).hasAttributes()) {\n for (const name of (node as Element).getAttributeNames()) {\n if (name.endsWith(boundAttributeSuffix)) {\n const realName = attrNames[attrNameIndex++];\n const value = (node as Element).getAttribute(name)!;\n const statics = value.split(marker);\n const m = /([.?@])?(.*)/.exec(realName)!;\n parts.push({\n type: ATTRIBUTE_PART,\n index: nodeIndex,\n name: m[2],\n strings: statics,\n ctor:\n m[1] === '.'\n ? PropertyPart\n : m[1] === '?'\n ? BooleanAttributePart\n : m[1] === '@'\n ? EventPart\n : AttributePart,\n });\n (node as Element).removeAttribute(name);\n } else if (name.startsWith(marker)) {\n parts.push({\n type: ELEMENT_PART,\n index: nodeIndex,\n });\n (node as Element).removeAttribute(name);\n }\n }\n }\n // TODO (justinfagnani): benchmark the regex against testing for each\n // of the 3 raw text element names.\n if (rawTextElement.test((node as Element).tagName)) {\n // For raw text elements we need to split the text content on\n // markers, create a Text node for each segment, and create\n // a TemplatePart for each marker.\n const strings = (node as Element).textContent!.split(marker);\n const lastIndex = strings.length - 1;\n if (lastIndex > 0) {\n (node as Element).textContent = trustedTypes\n ? (trustedTypes.emptyScript as unknown as '')\n : '';\n // Generate a new text node for each literal section\n // These nodes are also used as the markers for child parts\n for (let i = 0; i < lastIndex; i++) {\n (node as Element).append(strings[i], createMarker());\n // Walk past the marker node we just added\n walker.nextNode();\n parts.push({type: CHILD_PART, index: ++nodeIndex});\n }\n // Note because this marker is added after the walker's current\n // node, it will be walked to in the outer loop (and ignored), so\n // we don't need to adjust nodeIndex here\n (node as Element).append(strings[lastIndex], createMarker());\n }\n }\n } else if (node.nodeType === 8) {\n const data = (node as Comment).data;\n if (data === markerMatch) {\n parts.push({type: CHILD_PART, index: nodeIndex});\n } else {\n let i = -1;\n while ((i = (node as Comment).data.indexOf(marker, i + 1)) !== -1) {\n // Comment node has a binding marker inside, make an inactive part\n // The binding won't work, but subsequent bindings will\n parts.push({type: COMMENT_PART, index: nodeIndex});\n // Move to the end of the match\n i += marker.length - 1;\n }\n }\n }\n nodeIndex++;\n }\n\n if (DEV_MODE) {\n // If there was a duplicate attribute on a tag, then when the tag is\n // parsed into an element the attribute gets de-duplicated. We can detect\n // this mismatch if we haven't precisely consumed every attribute name\n // when preparing the template. This works because `attrNames` is built\n // from the template string and `attrNameIndex` comes from processing the\n // resulting DOM.\n if (attrNames.length !== attrNameIndex) {\n throw new Error(\n `Detected duplicate attribute bindings. This occurs if your template ` +\n `has duplicate attributes on an element tag. For example ` +\n `\"<input ?disabled=\\${true} ?disabled=\\${false}>\" contains a ` +\n `duplicate \"disabled\" attribute. The error was detected in ` +\n `the following template: \\n` +\n '`' +\n strings.join('${...}') +\n '`'\n );\n }\n }\n\n // We could set walker.currentNode to another node here to prevent a memory\n // leak, but every time we prepare a template, we immediately render it\n // and re-use the walker in new TemplateInstance._clone().\n debugLogEvent &&\n debugLogEvent({\n kind: 'template prep',\n template: this,\n clonableTemplate: this.el,\n parts: this.parts,\n strings,\n });\n }\n\n // Overridden via `litHtmlPolyfillSupport` to provide platform support.\n /** @nocollapse */\n static createElement(html: TrustedHTML, _options?: RenderOptions) {\n const el = d.createElement('template');\n el.innerHTML = html as unknown as string;\n return el;\n }\n}\n\nexport interface Disconnectable {\n _$parent?: Disconnectable;\n _$disconnectableChildren?: Set<Disconnectable>;\n // Rather than hold connection state on instances, Disconnectables recursively\n // fetch the connection state from the RootPart they are connected in via\n // getters up the Disconnectable tree via _$parent references. This pushes the\n // cost of tracking the isConnected state to `AsyncDirectives`, and avoids\n // needing to pass all Disconnectables (parts, template instances, and\n // directives) their connection state each time it changes, which would be\n // costly for trees that have no AsyncDirectives.\n _$isConnected: boolean;\n}\n\nfunction resolveDirective(\n part: ChildPart | AttributePart | ElementPart,\n value: unknown,\n parent: DirectiveParent = part,\n attributeIndex?: number\n): unknown {\n // Bail early if the value is explicitly noChange. Note, this means any\n // nested directive is still attached and is not run.\n if (value === noChange) {\n return value;\n }\n let currentDirective =\n attributeIndex !== undefined\n ? (parent as AttributePart).__directives?.[attributeIndex]\n : (parent as ChildPart | ElementPart | Directive).__directive;\n const nextDirectiveConstructor = isPrimitive(value)\n ? undefined\n : // This property needs to remain unminified.\n (value as DirectiveResult)['_$litDirective$'];\n if (currentDirective?.constructor !== nextDirectiveConstructor) {\n // This property needs to remain unminified.\n currentDirective?.['_$notifyDirectiveConnectionChanged']?.(false);\n if (nextDirectiveConstructor === undefined) {\n currentDirective = undefined;\n } else {\n currentDirective = new nextDirectiveConstructor(part as PartInfo);\n currentDirective._$initialize(part, parent, attributeIndex);\n }\n if (attributeIndex !== undefined) {\n ((parent as AttributePart).__directives ??= [])[attributeIndex] =\n currentDirective;\n } else {\n (parent as ChildPart | Directive).__directive = currentDirective;\n }\n }\n if (currentDirective !== undefined) {\n value = resolveDirective(\n part,\n currentDirective._$resolve(part, (value as DirectiveResult).values),\n currentDirective,\n attributeIndex\n );\n }\n return value;\n}\n\nexport type {TemplateInstance};\n/**\n * An updateable instance of a Template. Holds references to the Parts used to\n * update the template instance.\n */\nclass TemplateInstance implements Disconnectable {\n _$template: Template;\n _$parts: Array<Part | undefined> = [];\n\n /** @internal */\n _$parent: ChildPart;\n /** @internal */\n _$disconnectableChildren?: Set<Disconnectable> = undefined;\n\n constructor(template: Template, parent: ChildPart) {\n this._$template = template;\n this._$parent = parent;\n }\n\n // Called by ChildPart parentNode getter\n get parentNode() {\n return this._$parent.parentNode;\n }\n\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n\n // This method is separate from the constructor because we need to return a\n // DocumentFragment and we don't want to hold onto it with an instance field.\n _clone(options: RenderOptions | undefined) {\n const {\n el: {content},\n parts: parts,\n } = this._$template;\n const fragment = (options?.creationScope ?? d).importNode(content, true);\n walker.currentNode = fragment;\n\n let node = walker.nextNode()!;\n let nodeIndex = 0;\n let partIndex = 0;\n let templatePart = parts[0];\n\n while (templatePart !== undefined) {\n if (nodeIndex === templatePart.index) {\n let part: Part | undefined;\n if (templatePart.type === CHILD_PART) {\n part = new ChildPart(\n node as HTMLElement,\n node.nextSibling,\n this,\n options\n );\n } else if (templatePart.type === ATTRIBUTE_PART) {\n part = new templatePart.ctor(\n node as HTMLElement,\n templatePart.name,\n templatePart.strings,\n this,\n options\n );\n } else if (templatePart.type === ELEMENT_PART) {\n part = new ElementPart(node as HTMLElement, this, options);\n }\n this._$parts.push(part);\n templatePart = parts[++partIndex];\n }\n if (nodeIndex !== templatePart?.index) {\n node = walker.nextNode()!;\n nodeIndex++;\n }\n }\n // We need to set the currentNode away from the cloned tree so that we\n // don't hold onto the tree even if the tree is detached and should be\n // freed.\n walker.currentNode = d;\n return fragment;\n }\n\n _update(values: Array<unknown>) {\n let i = 0;\n for (const part of this._$parts) {\n if (part !== undefined) {\n debugLogEvent &&\n debugLogEvent({\n kind: 'set part',\n part,\n value: values[i],\n valueIndex: i,\n values,\n templateInstance: this,\n });\n if ((part as AttributePart).strings !== undefined) {\n (part as AttributePart)._$setValue(values, part as AttributePart, i);\n // The number of values the part consumes is part.strings.length - 1\n // since values are in between template spans. We increment i by 1\n // later in the loop, so increment it by part.strings.length - 2 here\n i += (part as AttributePart).strings!.length - 2;\n } else {\n part._$setValue(values[i]);\n }\n }\n i++;\n }\n }\n}\n\n/*\n * Parts\n */\ntype AttributeTemplatePart = {\n readonly type: typeof ATTRIBUTE_PART;\n readonly index: number;\n readonly name: string;\n readonly ctor: typeof AttributePart;\n readonly strings: ReadonlyArray<string>;\n};\ntype ChildTemplatePart = {\n readonly type: typeof CHILD_PART;\n readonly index: number;\n};\ntype ElementTemplatePart = {\n readonly type: typeof ELEMENT_PART;\n readonly index: number;\n};\ntype CommentTemplatePart = {\n readonly type: typeof COMMENT_PART;\n readonly index: number;\n};\n\n/**\n * A TemplatePart represents a dynamic part in a template, before the template\n * is instantiated. When a template is instantiated Parts are created from\n * TemplateParts.\n */\ntype TemplatePart =\n | ChildTemplatePart\n | AttributeTemplatePart\n | ElementTemplatePart\n | CommentTemplatePart;\n\nexport type Part =\n | ChildPart\n | AttributePart\n | PropertyPart\n | BooleanAttributePart\n | ElementPart\n | EventPart;\n\nexport type {ChildPart};\nclass ChildPart implements Disconnectable {\n readonly type = CHILD_PART;\n readonly options: RenderOptions | undefined;\n _$committedValue: unknown = nothing;\n /** @internal */\n __directive?: Directive;\n /** @internal */\n _$startNode: ChildNode;\n /** @internal */\n _$endNode: ChildNode | null;\n private _textSanitizer: ValueSanitizer | undefined;\n /** @internal */\n _$parent: Disconnectable | undefined;\n /**\n * Connection state for RootParts only (i.e. ChildPart without _$parent\n * returned from top-level `render`). This field is unused otherwise. The\n * intention would be clearer if we made `RootPart` a subclass of `ChildPart`\n * with this field (and a different _$isConnected getter), but the subclass\n * caused a perf regression, possibly due to making call sites polymorphic.\n * @internal\n */\n __isConnected: boolean;\n\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n // ChildParts that are not at the root should always be created with a\n // parent; only RootChildNode's won't, so they return the local isConnected\n // state\n return this._$parent?._$isConnected ?? this.__isConnected;\n }\n\n // The following fields will be patched onto ChildParts when required by\n // AsyncDirective\n /** @internal */\n _$disconnectableChildren?: Set<Disconnectable> = undefined;\n /** @internal */\n _$notifyConnectionChanged?(\n isConnected: boolean,\n removeFromParent?: boolean,\n from?: number\n ): void;\n /** @internal */\n _$reparentDisconnectables?(parent: Disconnectable): void;\n\n constructor(\n startNode: ChildNode,\n endNode: ChildNode | null,\n parent: TemplateInstance | ChildPart | undefined,\n options: RenderOptions | undefined\n ) {\n this._$startNode = startNode;\n this._$endNode = endNode;\n this._$parent = parent;\n this.options = options;\n // Note __isConnected is only ever accessed on RootParts (i.e. when there is\n // no _$parent); the value on a non-root-part is \"don't care\", but checking\n // for parent would be more code\n this.__isConnected = options?.isConnected ?? true;\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n // Explicitly initialize for consistent class shape.\n this._textSanitizer = undefined;\n }\n }\n\n /**\n * The parent node into which the part renders its content.\n *\n * A ChildPart's content consists of a range of adjacent child nodes of\n * `.parentNode`, possibly bordered by 'marker nodes' (`.startNode` and\n * `.endNode`).\n *\n * - If both `.startNode` and `.endNode` are non-null, then the part's content\n * consists of all siblings between `.startNode` and `.endNode`, exclusively.\n *\n * - If `.startNode` is non-null but `.endNode` is null, then the part's\n * content consists of all siblings following `.startNode`, up to and\n * including the last child of `.parentNode`. If `.endNode` is non-null, then\n * `.startNode` will always be non-null.\n *\n * - If both `.endNode` and `.startNode` are null, then the part's content\n * consists of all child nodes of `.parentNode`.\n */\n get parentNode(): Node {\n let parentNode: Node = wrap(this._$startNode).parentNode!;\n const parent = this._$parent;\n if (\n parent !== undefined &&\n parentNode?.nodeType === 11 /* Node.DOCUMENT_FRAGMENT */\n ) {\n // If the parentNode is a DocumentFragment, it may be because the DOM is\n // still in the cloned fragment during initial render; if so, get the real\n // parentNode the part will be committed into by asking the parent.\n parentNode = (parent as ChildPart | TemplateInstance).parentNode;\n }\n return parentNode;\n }\n\n /**\n * The part's leading marker node, if any. See `.parentNode` for more\n * information.\n */\n get startNode(): Node | null {\n return this._$startNode;\n }\n\n /**\n * The part's trailing marker node, if any. See `.parentNode` for more\n * information.\n */\n get endNode(): Node | null {\n return this._$endNode;\n }\n\n _$setValue(value: unknown, directiveParent: DirectiveParent = this): void {\n if (DEV_MODE && this.parentNode === null) {\n throw new Error(\n `This \\`ChildPart\\` has no \\`parentNode\\` and therefore cannot accept a value. This likely means the element containing the part was manipulated in an unsupported way outside of Lit's control such that the part's marker nodes were ejected from DOM. For example, setting the element's \\`innerHTML\\` or \\`textContent\\` can do this.`\n );\n }\n value = resolveDirective(this, value, directiveParent);\n if (isPrimitive(value)) {\n // Non-rendering child values. It's important that these do not render\n // empty text nodes to avoid issues with preventing default <slot>\n // fallback content.\n if (value === nothing || value == null || value === '') {\n if (this._$committedValue !== nothing) {\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit nothing to child',\n start: this._$startNode,\n end: this._$endNode,\n parent: this._$parent,\n options: this.options,\n });\n this._$clear();\n }\n this._$committedValue = nothing;\n } else if (value !== this._$committedValue && value !== noChange) {\n this._commitText(value);\n }\n // This property needs to remain unminified.\n } else if ((value as TemplateResult)['_$litType$'] !== undefined) {\n this._commitTemplateResult(value as TemplateResult);\n } else if ((value as Node).nodeType !== undefined) {\n if (DEV_MODE && this.options?.host === value) {\n this._commitText(\n `[probable mistake: rendered a template's host in itself ` +\n `(commonly caused by writing \\${this} in a template]`\n );\n console.warn(\n `Attempted to render the template host`,\n value,\n `inside itself. This is almost always a mistake, and in dev mode `,\n `we render some warning text. In production however, we'll `,\n `render it, which will usually result in an error, and sometimes `,\n `in the element disappearing from the DOM.`\n );\n return;\n }\n this._commitNode(value as Node);\n } else if (isIterable(value)) {\n this._commitIterable(value);\n } else {\n // Fallback, will render the string representation\n this._commitText(value);\n }\n }\n\n private _insert<T extends Node>(node: T) {\n return wrap(wrap(this._$startNode).parentNode!).insertBefore(\n node,\n this._$endNode\n );\n }\n\n private _commitNode(value: Node): void {\n if (this._$committedValue !== value) {\n this._$clear();\n if (\n ENABLE_EXTRA_SECURITY_HOOKS &&\n sanitizerFactoryInternal !== noopSanitizer\n ) {\n const parentNodeName = this._$startNode.parentNode?.nodeName;\n if (parentNodeName === 'STYLE' || parentNodeName === 'SCRIPT') {\n let message = 'Forbidden';\n if (DEV_MODE) {\n if (parentNodeName === 'STYLE') {\n message =\n `Lit does not support binding inside style nodes. ` +\n `This is a security risk, as style injection attacks can ` +\n `exfiltrate data and spoof UIs. ` +\n `Consider instead using css\\`...\\` literals ` +\n `to compose styles, and do dynamic styling with ` +\n `css custom properties, ::parts, <slot>s, ` +\n `and by mutating the DOM rather than stylesheets.`;\n } else {\n message =\n `Lit does not support binding inside script nodes. ` +\n `This is a security risk, as it could allow arbitrary ` +\n `code execution.`;\n }\n }\n throw new Error(message);\n }\n }\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit node',\n start: this._$startNode,\n parent: this._$parent,\n value: value,\n options: this.options,\n });\n this._$committedValue = this._insert(value);\n }\n }\n\n private _commitText(value: unknown): void {\n // If the committed value is a primitive it means we called _commitText on\n // the previous render, and we know that this._$startNode.nextSibling is a\n // Text node. We can now just replace the text content (.data) of the node.\n if (\n this._$committedValue !== nothing &&\n isPrimitive(this._$committedValue)\n ) {\n const node = wrap(this._$startNode).nextSibling as Text;\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n if (this._textSanitizer === undefined) {\n this._textSanitizer = createSanitizer(node, 'data', 'property');\n }\n value = this._textSanitizer(value);\n }\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit text',\n node,\n value,\n options: this.options,\n });\n (node as Text).data = value as string;\n } else {\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n const textNode = d.createTextNode('');\n this._commitNode(textNode);\n // When setting text content, for security purposes it matters a lot\n // what the parent is. For example, <style> and <script> need to be\n // handled with care, while <span> does not. So first we need to put a\n // text node into the document, then we can sanitize its content.\n if (this._textSanitizer === undefined) {\n this._textSanitizer = createSanitizer(textNode, 'data', 'property');\n }\n value = this._textSanitizer(value);\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit text',\n node: textNode,\n value,\n options: this.options,\n });\n textNode.data = value as string;\n } else {\n this._commitNode(d.createTextNode(value as string));\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit text',\n node: wrap(this._$startNode).nextSibling as Text,\n value,\n options: this.options,\n });\n }\n }\n this._$committedValue = value;\n }\n\n private _commitTemplateResult(\n result: TemplateResult | CompiledTemplateResult\n ): void {\n // This property needs to remain unminified.\n const {values, ['_$litType$']: type} = result;\n // If $litType$ is a number, result is a plain TemplateResult and we get\n // the template from the template cache. If not, result is a\n // CompiledTemplateResult and _$litType$ is a CompiledTemplate and we need\n // to create the <template> element the first time we see it.\n const template: Template | CompiledTemplate =\n typeof type === 'number'\n ? this._$getTemplate(result as UncompiledTemplateResult)\n : (type.el === undefined &&\n (type.el = Template.createElement(\n trustFromTemplateString(type.h, type.h[0]),\n this.options\n )),\n type);\n\n if ((this._$committedValue as TemplateInstance)?._$template === template) {\n debugLogEvent &&\n debugLogEvent({\n kind: 'template updating',\n template,\n instance: this._$committedValue as TemplateInstance,\n parts: (this._$committedValue as TemplateInstance)._$parts,\n options: this.options,\n values,\n });\n (this._$committedValue as TemplateInstance)._update(values);\n } else {\n const instance = new TemplateInstance(template as Template, this);\n const fragment = instance._clone(this.options);\n debugLogEvent &&\n debugLogEvent({\n kind: 'template instantiated',\n template,\n instance,\n parts: instance._$parts,\n options: this.options,\n fragment,\n values,\n });\n instance._update(values);\n debugLogEvent &&\n debugLogEvent({\n kind: 'template instantiated and updated',\n template,\n instance,\n parts: instance._$parts,\n options: this.options,\n fragment,\n values,\n });\n this._commitNode(fragment);\n this._$committedValue = instance;\n }\n }\n\n // Overridden via `litHtmlPolyfillSupport` to provide platform support.\n /** @internal */\n _$getTemplate(result: UncompiledTemplateResult) {\n let template = templateCache.get(result.strings);\n if (template === undefined) {\n templateCache.set(result.strings, (template = new Template(result)));\n }\n return template;\n }\n\n private _commitIterable(value: Iterable<unknown>): void {\n // For an Iterable, we create a new InstancePart per item, then set its\n // value to the item. This is a little bit of overhead for every item in\n // an Iterable, but it lets us recurse easily and efficiently update Arrays\n // of TemplateResults that will be commonly returned from expressions like:\n // array.map((i) => html`${i}`), by reusing existing TemplateInstances.\n\n // If value is an array, then the previous render was of an\n // iterable and value will contain the ChildParts from the previous\n // render. If value is not an array, clear this part and make a new\n // array for ChildParts.\n if (!isArray(this._$committedValue)) {\n this._$committedValue = [];\n this._$clear();\n }\n\n // Lets us keep track of how many items we stamped so we can clear leftover\n // items from a previous render\n const itemParts = this._$committedValue as ChildPart[];\n let partIndex = 0;\n let itemPart: ChildPart | undefined;\n\n for (const item of value) {\n if (partIndex === itemParts.length) {\n // If no existing part, create a new one\n // TODO (justinfagnani): test perf impact of always creating two parts\n // instead of sharing parts between nodes\n // https://github.com/lit/lit/issues/1266\n itemParts.push(\n (itemPart = new ChildPart(\n this._insert(createMarker()),\n this._insert(createMarker()),\n this,\n this.options\n ))\n );\n } else {\n // Reuse an existing part\n itemPart = itemParts[partIndex];\n }\n itemPart._$setValue(item);\n partIndex++;\n }\n\n if (partIndex < itemParts.length) {\n // itemParts always have end nodes\n this._$clear(\n itemPart && wrap(itemPart._$endNode!).nextSibling,\n partIndex\n );\n // Truncate the parts array so _value reflects the current state\n itemParts.length = partIndex;\n }\n }\n\n /**\n * Removes the nodes contained within this Part from the DOM.\n *\n * @param start Start node to clear from, for clearing a subset of the part's\n * DOM (used when truncating iterables)\n * @param from When `start` is specified, the index within the iterable from\n * which ChildParts are being removed, used for disconnecting directives in\n * those Parts.\n *\n * @internal\n */\n _$clear(\n start: ChildNode | null = wrap(this._$startNode).nextSibling,\n from?: number\n ) {\n this._$notifyConnectionChanged?.(false, true, from);\n while (start && start !== this._$endNode) {\n const n = wrap(start!).nextSibling;\n (wrap(start!) as Element).remove();\n start = n;\n }\n }\n /**\n * Implementation of RootPart's `isConnected`. Note that this method\n * should only be called on `RootPart`s (the `ChildPart` returned from a\n * top-level `render()` call). It has no effect on non-root ChildParts.\n * @param isConnected Whether to set\n * @internal\n */\n setConnected(isConnected: boolean) {\n if (this._$parent === undefined) {\n this.__isConnected = isConnected;\n this._$notifyConnectionChanged?.(isConnected);\n } else if (DEV_MODE) {\n throw new Error(\n 'part.setConnected() may only be called on a ' +\n 'RootPart returned from render().'\n );\n }\n }\n}\n\n/**\n * A top-level `ChildPart` returned from `render` that manages the connected\n * state of `AsyncDirective`s created throughout the tree below it.\n */\nexport interface RootPart extends ChildPart {\n /**\n * Sets the connection state for `AsyncDirective`s contained within this root\n * ChildPart.\n *\n * lit-html does not automatically monitor the connectedness of DOM rendered;\n * as such, it is the responsibility of the caller to `render` to ensure that\n * `part.setConnected(false)` is called before the part object is potentially\n * discarded, to ensure that `AsyncDirective`s have a chance to dispose of\n * any resources being held. If a `RootPart` that was previously\n * disconnected is subsequently re-connected (and its `AsyncDirective`s should\n * re-connect), `setConnected(true)` should be called.\n *\n * @param isConnected Whether directives within this tree should be connected\n * or not\n */\n setConnected(isConnected: boolean): void;\n}\n\nexport type {AttributePart};\nclass AttributePart implements Disconnectable {\n readonly type:\n | typeof ATTRIBUTE_PART\n | typeof PROPERTY_PART\n | typeof BOOLEAN_ATTRIBUTE_PART\n | typeof EVENT_PART = ATTRIBUTE_PART;\n readonly element: HTMLElement;\n readonly name: string;\n readonly options: RenderOptions | undefined;\n\n /**\n * If this attribute part represents an interpolation, this contains the\n * static strings of the interpolation. For single-value, complete bindings,\n * this is undefined.\n */\n readonly strings?: ReadonlyArray<string>;\n /** @internal */\n _$committedValue: unknown | Array<unknown> = nothing;\n /** @internal */\n __directives?: Array<Directive | undefined>;\n /** @internal */\n _$parent: Disconnectable;\n /** @internal */\n _$disconnectableChildren?: Set<Disconnectable> = undefined;\n\n protected _sanitizer: ValueSanitizer | undefined;\n\n get tagName() {\n return this.element.tagName;\n }\n\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n\n constructor(\n element: HTMLElement,\n name: string,\n strings: ReadonlyArray<string>,\n parent: Disconnectable,\n options: RenderOptions | undefined\n ) {\n this.element = element;\n this.name = name;\n this._$parent = parent;\n this.options = options;\n if (strings.length > 2 || strings[0] !== '' || strings[1] !== '') {\n this._$committedValue = new Array(strings.length - 1).fill(new String());\n this.strings = strings;\n } else {\n this._$committedValue = nothing;\n }\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n this._sanitizer = undefined;\n }\n }\n\n /**\n * Sets the value of this part by resolving the value from possibly multiple\n * values and static strings and committing it to the DOM.\n * If this part is single-valued, `this._strings` will be undefined, and the\n * method will be called with a single value argument. If this part is\n * multi-value, `this._strings` will be defined, and the method is called\n * with the value array of the part's owning TemplateInstance, and an offset\n * into the value array from which the values should be read.\n * This method is overloaded this way to eliminate short-lived array slices\n * of the template instance values, and allow a fast-path for single-valued\n * parts.\n *\n * @param value The part value, or an array of values for multi-valued parts\n * @param valueIndex the index to start reading values from. `undefined` for\n * single-valued parts\n * @param noCommit causes the part to not commit its value to the DOM. Used\n * in hydration to prime attribute parts with their first-rendered value,\n * but not set the attribute, and in SSR to no-op the DOM operation and\n * capture the value for serialization.\n *\n * @internal\n */\n _$setValue(\n value: unknown | Array<unknown>,\n directiveParent: DirectiveParent = this,\n valueIndex?: number,\n noCommit?: boolean\n ) {\n const strings = this.strings;\n\n // Whether any of the values has changed, for dirty-checking\n let change = false;\n\n if (strings === undefined) {\n // Single-value binding case\n value = resolveDirective(this, value, directiveParent, 0);\n change =\n !isPrimitive(value) ||\n (value !== this._$committedValue && value !== noChange);\n if (change) {\n this._$committedValue = value;\n }\n } else {\n // Interpolation case\n const values = value as Array<unknown>;\n value = strings[0];\n\n let i, v;\n for (i = 0; i < strings.length - 1; i++) {\n v = resolveDirective(this, values[valueIndex! + i], directiveParent, i);\n\n if (v === noChange) {\n // If the user-provided value is `noChange`, use the previous value\n v = (this._$committedValue as Array<unknown>)[i];\n }\n change ||=\n !isPrimitive(v) || v !== (this._$committedValue as Array<unknown>)[i];\n if (v === nothing) {\n value = nothing;\n } else if (value !== nothing) {\n value += (v ?? '') + strings[i + 1];\n }\n // We always record each value, even if one is `nothing`, for future\n // change detection.\n (this._$committedValue as Array<unknown>)[i] = v;\n }\n }\n if (change && !noCommit) {\n this._commitValue(value);\n }\n }\n\n /** @internal */\n _commitValue(value: unknown) {\n if (value === nothing) {\n (wrap(this.element) as Element).removeAttribute(this.name);\n } else {\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n if (this._sanitizer === undefined) {\n this._sanitizer = sanitizerFactoryInternal(\n this.element,\n this.name,\n 'attribute'\n );\n }\n value = this._sanitizer(value ?? '');\n }\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit attribute',\n element: this.element,\n name: this.name,\n value,\n options: this.options,\n });\n (wrap(this.element) as Element).setAttribute(\n this.name,\n (value ?? '') as string\n );\n }\n }\n}\n\nexport type {PropertyPart};\nclass PropertyPart extends AttributePart {\n override readonly type = PROPERTY_PART;\n\n /** @internal */\n override _commitValue(value: unknown) {\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n if (this._sanitizer === undefined) {\n this._sanitizer = sanitizerFactoryInternal(\n this.element,\n this.name,\n 'property'\n );\n }\n value = this._sanitizer(value);\n }\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit property',\n element: this.element,\n name: this.name,\n value,\n options: this.options,\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this.element as any)[this.name] = value === nothing ? undefined : value;\n }\n}\n\nexport type {BooleanAttributePart};\nclass BooleanAttributePart extends AttributePart {\n override readonly type = BOOLEAN_ATTRIBUTE_PART;\n\n /** @internal */\n override _commitValue(value: unknown) {\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit boolean attribute',\n element: this.element,\n name: this.name,\n value: !!(value && value !== nothing),\n options: this.options,\n });\n (wrap(this.element) as Element).toggleAttribute(\n this.name,\n !!value && value !== nothing\n );\n }\n}\n\ntype EventListenerWithOptions = EventListenerOrEventListenerObject &\n Partial<AddEventListenerOptions>;\n\n/**\n * An AttributePart that manages an event listener via add/removeEventListener.\n *\n * This part works by adding itself as the event listener on an element, then\n * delegating to the value passed to it. This reduces the number of calls to\n * add/removeEventListener if the listener changes frequently, such as when an\n * inline function is used as a listener.\n *\n * Because event options are passed when adding listeners, we must take case\n * to add and remove the part as a listener when the event options change.\n */\nexport type {EventPart};\nclass EventPart extends AttributePart {\n override readonly type = EVENT_PART;\n\n constructor(\n element: HTMLElement,\n name: string,\n strings: ReadonlyArray<string>,\n parent: Disconnectable,\n options: RenderOptions | undefined\n ) {\n super(element, name, strings, parent, options);\n\n if (DEV_MODE && this.strings !== undefined) {\n throw new Error(\n `A \\`<${element.localName}>\\` has a \\`@${name}=...\\` listener with ` +\n 'invalid content. Event listeners in templates must have exactly ' +\n 'one expression and no surrounding text.'\n );\n }\n }\n\n // EventPart does not use the base _$setValue/_resolveValue implementation\n // since the dirty checking is more complex\n /** @internal */\n override _$setValue(\n newListener: unknown,\n directiveParent: DirectiveParent = this\n ) {\n newListener =\n resolveDirective(this, newListener, directiveParent, 0) ?? nothing;\n if (newListener === noChange) {\n return;\n }\n const oldListener = this._$committedValue;\n\n // If the new value is nothing or any options change we have to remove the\n // part as a listener.\n const shouldRemoveListener =\n (newListener === nothing && oldListener !== nothing) ||\n (newListener as EventListenerWithOptions).capture !==\n (oldListener as EventListenerWithOptions).capture ||\n (newListener as EventListenerWithOptions).once !==\n (oldListener as EventListenerWithOptions).once ||\n (newListener as EventListenerWithOptions).passive !==\n (oldListener as EventListenerWithOptions).passive;\n\n // If the new value is not nothing and we removed the listener, we have\n // to add the part as a listener.\n const shouldAddListener =\n newListener !== nothing &&\n (oldListener === nothing || shouldRemoveListener);\n\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit event listener',\n element: this.element,\n name: this.name,\n value: newListener,\n options: this.options,\n removeListener: shouldRemoveListener,\n addListener: shouldAddListener,\n oldListener,\n });\n if (shouldRemoveListener) {\n this.element.removeEventListener(\n this.name,\n this,\n oldListener as EventListenerWithOptions\n );\n }\n if (shouldAddListener) {\n this.element.addEventListener(\n this.name,\n this,\n newListener as EventListenerWithOptions\n );\n }\n this._$committedValue = newListener;\n }\n\n handleEvent(event: Event) {\n if (typeof this._$committedValue === 'function') {\n this._$committedValue.call(this.options?.host ?? this.element, event);\n } else {\n (this._$committedValue as EventListenerObject).handleEvent(event);\n }\n }\n}\n\nexport type {ElementPart};\nclass ElementPart implements Disconnectable {\n readonly type = ELEMENT_PART;\n\n /** @internal */\n __directive?: Directive;\n\n // This is to ensure that every Part has a _$committedValue\n _$committedValue: undefined;\n\n /** @internal */\n _$parent!: Disconnectable;\n\n /** @internal */\n _$disconnectableChildren?: Set<Disconnectable> = undefined;\n\n options: RenderOptions | undefined;\n\n constructor(\n public element: Element,\n parent: Disconnectable,\n options: RenderOptions | undefined\n ) {\n this._$parent = parent;\n this.options = options;\n }\n\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n\n _$setValue(value: unknown): void {\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit to element binding',\n element: this.element,\n value,\n options: this.options,\n });\n resolveDirective(this, value);\n }\n}\n\n/**\n * END USERS SHOULD NOT RELY ON THIS OBJECT.\n *\n * Private exports for use by other Lit packages, not intended for use by\n * external users.\n *\n * We currently do not make a mangled rollup build of the lit-ssr code. In order\n * to keep a number of (otherwise private) top-level exports mangled in the\n * client side code, we export a _$LH object containing those members (or\n * helper methods for accessing private fields of those members), and then\n * re-export them for use in lit-ssr. This keeps lit-ssr agnostic to whether the\n * client-side code is being used in `dev` mode or `prod` mode.\n *\n * This has a unique name, to disambiguate it from private exports in\n * lit-element, which re-exports all of lit-html.\n *\n * @private\n */\nexport const _$LH = {\n // Used in lit-ssr\n _boundAttributeSuffix: boundAttributeSuffix,\n _marker: marker,\n _markerMatch: markerMatch,\n _HTML_RESULT: HTML_RESULT,\n _getTemplateHtml: getTemplateHtml,\n // Used in tests and private-ssr-support\n _TemplateInstance: TemplateInstance,\n _isIterable: isIterable,\n _resolveDirective: resolveDirective,\n _ChildPart: ChildPart,\n _AttributePart: AttributePart,\n _BooleanAttributePart: BooleanAttributePart,\n _EventPart: EventPart,\n _PropertyPart: PropertyPart,\n _ElementPart: ElementPart,\n};\n\n// Apply polyfills if available\nconst polyfillSupport = DEV_MODE\n ? global.litHtmlPolyfillSupportDevMode\n : global.litHtmlPolyfillSupport;\npolyfillSupport?.(Template, ChildPart);\n\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for lit-html usage.\n(global.litHtmlVersions ??= []).push('3.3.0');\nif (DEV_MODE && global.litHtmlVersions.length > 1) {\n queueMicrotask(() => {\n issueWarning!(\n 'multiple-versions',\n `Multiple versions of Lit loaded. ` +\n `Loading multiple versions is not recommended.`\n );\n });\n}\n\n/**\n * Renders a value, usually a lit-html TemplateResult, to the container.\n *\n * This example renders the text \"Hello, Zoe!\" inside a paragraph tag, appending\n * it to the container `document.body`.\n *\n * ```js\n * import {html, render} from 'lit';\n *\n * const name = \"Zoe\";\n * render(html`<p>Hello, ${name}!</p>`, document.body);\n * ```\n *\n * @param value Any [renderable\n * value](https://lit.dev/docs/templates/expressions/#child-expressions),\n * typically a {@linkcode TemplateResult} created by evaluating a template tag\n * like {@linkcode html} or {@linkcode svg}.\n * @param container A DOM container to render to. The first render will append\n * the rendered value to the container, and subsequent renders will\n * efficiently update the rendered value if the same result type was\n * previously rendered there.\n * @param options See {@linkcode RenderOptions} for options documentation.\n * @see\n * {@link https://lit.dev/docs/libraries/standalone-templates/#rendering-lit-html-templates| Rendering Lit HTML Templates}\n */\nexport const render = (\n value: unknown,\n container: HTMLElement | DocumentFragment,\n options?: RenderOptions\n): RootPart => {\n if (DEV_MODE && container == null) {\n // Give a clearer error message than\n // Uncaught TypeError: Cannot read properties of null (reading\n // '_$litPart$')\n // which reads like an internal Lit error.\n throw new TypeError(`The container to render into may not be ${container}`);\n }\n const renderId = DEV_MODE ? debugLogRenderId++ : 0;\n const partOwnerNode = options?.renderBefore ?? container;\n // This property needs to remain unminified.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let part: ChildPart = (partOwnerNode as any)['_$litPart$'];\n debugLogEvent &&\n debugLogEvent({\n kind: 'begin render',\n id: renderId,\n value,\n container,\n options,\n part,\n });\n if (part === undefined) {\n const endNode = options?.renderBefore ?? null;\n // This property needs to remain unminified.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (partOwnerNode as any)['_$litPart$'] = part = new ChildPart(\n container.insertBefore(createMarker(), endNode),\n endNode,\n undefined,\n options ?? {}\n );\n }\n part._$setValue(value);\n debugLogEvent &&\n debugLogEvent({\n kind: 'end render',\n id: renderId,\n value,\n container,\n options,\n part,\n });\n return part as RootPart;\n};\n\nif (ENABLE_EXTRA_SECURITY_HOOKS) {\n render.setSanitizer = setSanitizer;\n render.createSanitizer = createSanitizer;\n if (DEV_MODE) {\n render._testOnlyClearSanitizerFactoryDoNotCallOrElse =\n _testOnlyClearSanitizerFactoryDoNotCallOrElse;\n }\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * The main LitElement module, which defines the {@linkcode LitElement} base\n * class and related APIs.\n *\n * LitElement components can define a template and a set of observed\n * properties. Changing an observed property triggers a re-render of the\n * element.\n *\n * Import {@linkcode LitElement} and {@linkcode html} from this module to\n * create a component:\n *\n * ```js\n * import {LitElement, html} from 'lit-element';\n *\n * class MyElement extends LitElement {\n *\n * // Declare observed properties\n * static get properties() {\n * return {\n * adjective: {}\n * }\n * }\n *\n * constructor() {\n * this.adjective = 'awesome';\n * }\n *\n * // Define the element's template\n * render() {\n * return html`<p>your ${adjective} template here</p>`;\n * }\n * }\n *\n * customElements.define('my-element', MyElement);\n * ```\n *\n * `LitElement` extends {@linkcode ReactiveElement} and adds lit-html\n * templating. The `ReactiveElement` class is provided for users that want to\n * build their own custom element base classes that don't use lit-html.\n *\n * @packageDocumentation\n */\nimport {PropertyValues, ReactiveElement} from '@lit/reactive-element';\nimport {render, RenderOptions, noChange, RootPart} from 'lit-html';\nexport * from '@lit/reactive-element';\nexport * from 'lit-html';\n\nimport {LitUnstable} from 'lit-html';\nimport {ReactiveUnstable} from '@lit/reactive-element';\n\n/**\n * Contains types that are part of the unstable debug API.\n *\n * Everything in this API is not stable and may change or be removed in the future,\n * even on patch releases.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace Unstable {\n /**\n * When Lit is running in dev mode and `window.emitLitDebugLogEvents` is true,\n * we will emit 'lit-debug' events to window, with live details about the update and render\n * lifecycle. These can be useful for writing debug tooling and visualizations.\n *\n * Please be aware that running with window.emitLitDebugLogEvents has performance overhead,\n * making certain operations that are normally very cheap (like a no-op render) much slower,\n * because we must copy data and dispatch events.\n */\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace DebugLog {\n export type Entry =\n | LitUnstable.DebugLog.Entry\n | ReactiveUnstable.DebugLog.Entry;\n }\n}\n/*\n * When using Closure Compiler, JSCompiler_renameProperty(property, object) is\n * replaced at compile time by the munged name for object[property]. We cannot\n * alias this function, so we have to use a small shim that has the same\n * behavior when not compiling.\n */\n/*@__INLINE__*/\nconst JSCompiler_renameProperty = <P extends PropertyKey>(\n prop: P,\n _obj: unknown\n): P => prop;\n\nconst DEV_MODE = true;\n// Allows minifiers to rename references to globalThis\nconst global = globalThis;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n global.litIssuedWarnings ??= new Set();\n\n /**\n * Issue a warning if we haven't already, based either on `code` or `warning`.\n * Warnings are disabled automatically only by `warning`; disabling via `code`\n * can be done by users.\n */\n issueWarning = (code: string, warning: string) => {\n warning += ` See https://lit.dev/msg/${code} for more information.`;\n if (\n !global.litIssuedWarnings!.has(warning) &&\n !global.litIssuedWarnings!.has(code)\n ) {\n console.warn(warning);\n global.litIssuedWarnings!.add(warning);\n }\n };\n}\n\n/**\n * Base element class that manages element properties and attributes, and\n * renders a lit-html template.\n *\n * To define a component, subclass `LitElement` and implement a\n * `render` method to provide the component's template. Define properties\n * using the {@linkcode LitElement.properties properties} property or the\n * {@linkcode property} decorator.\n */\nexport class LitElement extends ReactiveElement {\n // This property needs to remain unminified.\n static ['_$litElement$'] = true;\n\n /**\n * @category rendering\n */\n readonly renderOptions: RenderOptions = {host: this};\n\n private __childPart: RootPart | undefined = undefined;\n\n /**\n * @category rendering\n */\n protected override createRenderRoot() {\n const renderRoot = super.createRenderRoot();\n // When adoptedStyleSheets are shimmed, they are inserted into the\n // shadowRoot by createRenderRoot. Adjust the renderBefore node so that\n // any styles in Lit content render before adoptedStyleSheets. This is\n // important so that adoptedStyleSheets have precedence over styles in\n // the shadowRoot.\n this.renderOptions.renderBefore ??= renderRoot!.firstChild as ChildNode;\n return renderRoot;\n }\n\n /**\n * Updates the element. This method reflects property values to attributes\n * and calls `render` to render DOM via lit-html. Setting properties inside\n * this method will *not* trigger another update.\n * @param changedProperties Map of changed properties with old values\n * @category updates\n */\n protected override update(changedProperties: PropertyValues) {\n // Setting properties in `render` should not trigger an update. Since\n // updates are allowed after super.update, it's important to call `render`\n // before that.\n const value = this.render();\n if (!this.hasUpdated) {\n this.renderOptions.isConnected = this.isConnected;\n }\n super.update(changedProperties);\n this.__childPart = render(value, this.renderRoot, this.renderOptions);\n }\n\n /**\n * Invoked when the component is added to the document's DOM.\n *\n * In `connectedCallback()` you should setup tasks that should only occur when\n * the element is connected to the document. The most common of these is\n * adding event listeners to nodes external to the element, like a keydown\n * event handler added to the window.\n *\n * ```ts\n * connectedCallback() {\n * super.connectedCallback();\n * addEventListener('keydown', this._handleKeydown);\n * }\n * ```\n *\n * Typically, anything done in `connectedCallback()` should be undone when the\n * element is disconnected, in `disconnectedCallback()`.\n *\n * @category lifecycle\n */\n override connectedCallback() {\n super.connectedCallback();\n this.__childPart?.setConnected(true);\n }\n\n /**\n * Invoked when the component is removed from the document's DOM.\n *\n * This callback is the main signal to the element that it may no longer be\n * used. `disconnectedCallback()` should ensure that nothing is holding a\n * reference to the element (such as event listeners added to nodes external\n * to the element), so that it is free to be garbage collected.\n *\n * ```ts\n * disconnectedCallback() {\n * super.disconnectedCallback();\n * window.removeEventListener('keydown', this._handleKeydown);\n * }\n * ```\n *\n * An element may be re-connected after being disconnected.\n *\n * @category lifecycle\n */\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.__childPart?.setConnected(false);\n }\n\n /**\n * Invoked on each update to perform rendering tasks. This method may return\n * any value renderable by lit-html's `ChildPart` - typically a\n * `TemplateResult`. Setting properties inside this method will *not* trigger\n * the element to update.\n * @category rendering\n */\n protected render(): unknown {\n return noChange;\n }\n}\n\n/**\n * Ensure this class is marked as `finalized` as an optimization ensuring\n * it will not needlessly try to `finalize`.\n *\n * Note this property name is a string to prevent breaking Closure JS Compiler\n * optimizations. See @lit/reactive-element for more information.\n */\n(LitElement as unknown as Record<string, unknown>)[\n JSCompiler_renameProperty('finalized', LitElement)\n] = true;\n\n// Install hydration if available\nglobal.litElementHydrateSupport?.({LitElement});\n\n// Apply polyfills if available\nconst polyfillSupport = DEV_MODE\n ? global.litElementPolyfillSupportDevMode\n : global.litElementPolyfillSupport;\npolyfillSupport?.({LitElement});\n\n/**\n * END USERS SHOULD NOT RELY ON THIS OBJECT.\n *\n * Private exports for use by other Lit packages, not intended for use by\n * external users.\n *\n * We currently do not make a mangled rollup build of the lit-ssr code. In order\n * to keep a number of (otherwise private) top-level exports mangled in the\n * client side code, we export a _$LE object containing those members (or\n * helper methods for accessing private fields of those members), and then\n * re-export them for use in lit-ssr. This keeps lit-ssr agnostic to whether the\n * client-side code is being used in `dev` mode or `prod` mode.\n *\n * This has a unique name, to disambiguate it from private exports in\n * lit-html, since this module re-exports all of lit-html.\n *\n * @private\n */\nexport const _$LE = {\n _$attributeToProperty: (\n el: LitElement,\n name: string,\n value: string | null\n ) => {\n // eslint-disable-next-line\n (el as any)._$attributeToProperty(name, value);\n },\n // eslint-disable-next-line\n _$changedProperties: (el: LitElement) => (el as any)._$changedProperties,\n};\n\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for LitElement usage.\n(global.litElementVersions ??= []).push('4.2.0');\nif (DEV_MODE && global.litElementVersions.length > 1) {\n queueMicrotask(() => {\n issueWarning!(\n 'multiple-versions',\n `Multiple versions of Lit loaded. Loading multiple versions ` +\n `is not recommended.`\n );\n });\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport {\n type PropertyDeclaration,\n type ReactiveElement,\n defaultConverter,\n notEqual,\n} from '../reactive-element.js';\nimport type {Interface} from './base.js';\n\nconst DEV_MODE = true;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n globalThis.litIssuedWarnings ??= new Set();\n\n /**\n * Issue a warning if we haven't already, based either on `code` or `warning`.\n * Warnings are disabled automatically only by `warning`; disabling via `code`\n * can be done by users.\n */\n issueWarning = (code: string, warning: string) => {\n warning += ` See https://lit.dev/msg/${code} for more information.`;\n if (\n !globalThis.litIssuedWarnings!.has(warning) &&\n !globalThis.litIssuedWarnings!.has(code)\n ) {\n console.warn(warning);\n globalThis.litIssuedWarnings!.add(warning);\n }\n };\n}\n\n// Overloads for property decorator so that TypeScript can infer the correct\n// return type when a decorator is used as an accessor decorator or a setter\n// decorator.\nexport type PropertyDecorator = {\n // accessor decorator signature\n <C extends Interface<ReactiveElement>, V>(\n target: ClassAccessorDecoratorTarget<C, V>,\n context: ClassAccessorDecoratorContext<C, V>\n ): ClassAccessorDecoratorResult<C, V>;\n\n // setter decorator signature\n <C extends Interface<ReactiveElement>, V>(\n target: (value: V) => void,\n context: ClassSetterDecoratorContext<C, V>\n ): (this: C, value: V) => void;\n\n // legacy decorator signature\n (\n protoOrDescriptor: Object,\n name: PropertyKey,\n descriptor?: PropertyDescriptor\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): any;\n};\n\nconst legacyProperty = (\n options: PropertyDeclaration | undefined,\n proto: Object,\n name: PropertyKey\n) => {\n const hasOwnProperty = proto.hasOwnProperty(name);\n (proto.constructor as typeof ReactiveElement).createProperty(name, options);\n // For accessors (which have a descriptor on the prototype) we need to\n // return a descriptor, otherwise TypeScript overwrites the descriptor we\n // define in createProperty() with the original descriptor. We don't do this\n // for fields, which don't have a descriptor, because this could overwrite\n // descriptor defined by other decorators.\n return hasOwnProperty\n ? Object.getOwnPropertyDescriptor(proto, name)\n : undefined;\n};\n\n// This is duplicated from a similar variable in reactive-element.ts, but\n// actually makes sense to have this default defined with the decorator, so\n// that different decorators could have different defaults.\nconst defaultPropertyDeclaration: PropertyDeclaration = {\n attribute: true,\n type: String,\n converter: defaultConverter,\n reflect: false,\n hasChanged: notEqual,\n};\n\n// Temporary type, until google3 is on TypeScript 5.2\ntype StandardPropertyContext<C, V> = (\n | ClassAccessorDecoratorContext<C, V>\n | ClassSetterDecoratorContext<C, V>\n) & {metadata: object};\n\n/**\n * Wraps a class accessor or setter so that `requestUpdate()` is called with the\n * property name and old value when the accessor is set.\n */\nexport const standardProperty = <C extends Interface<ReactiveElement>, V>(\n options: PropertyDeclaration = defaultPropertyDeclaration,\n target: ClassAccessorDecoratorTarget<C, V> | ((value: V) => void),\n context: StandardPropertyContext<C, V>\n): ClassAccessorDecoratorResult<C, V> | ((this: C, value: V) => void) => {\n const {kind, metadata} = context;\n\n if (DEV_MODE && metadata == null) {\n issueWarning(\n 'missing-class-metadata',\n `The class ${target} is missing decorator metadata. This ` +\n `could mean that you're using a compiler that supports decorators ` +\n `but doesn't support decorator metadata, such as TypeScript 5.1. ` +\n `Please update your compiler.`\n );\n }\n\n // Store the property options\n let properties = globalThis.litPropertyMetadata.get(metadata);\n if (properties === undefined) {\n globalThis.litPropertyMetadata.set(metadata, (properties = new Map()));\n }\n if (kind === 'setter') {\n options = Object.create(options);\n options.wrapped = true;\n }\n properties.set(context.name, options);\n\n if (kind === 'accessor') {\n // Standard decorators cannot dynamically modify the class, so we can't\n // replace a field with accessors. The user must use the new `accessor`\n // keyword instead.\n const {name} = context;\n return {\n set(this: ReactiveElement, v: V) {\n const oldValue = (\n target as ClassAccessorDecoratorTarget<C, V>\n ).get.call(this as unknown as C);\n (target as ClassAccessorDecoratorTarget<C, V>).set.call(\n this as unknown as C,\n v\n );\n this.requestUpdate(name, oldValue, options);\n },\n init(this: ReactiveElement, v: V): V {\n if (v !== undefined) {\n this._$changeProperty(name, undefined, options, v);\n }\n return v;\n },\n } as unknown as ClassAccessorDecoratorResult<C, V>;\n } else if (kind === 'setter') {\n const {name} = context;\n return function (this: ReactiveElement, value: V) {\n const oldValue = this[name as keyof ReactiveElement];\n (target as (value: V) => void).call(this, value);\n this.requestUpdate(name, oldValue, options);\n } as unknown as (this: C, value: V) => void;\n }\n throw new Error(`Unsupported decorator location: ${kind}`);\n};\n\n/**\n * A class field or accessor decorator which creates a reactive property that\n * reflects a corresponding attribute value. When a decorated property is set\n * the element will update and render. A {@linkcode PropertyDeclaration} may\n * optionally be supplied to configure property features.\n *\n * This decorator should only be used for public fields. As public fields,\n * properties should be considered as primarily settable by element users,\n * either via attribute or the property itself.\n *\n * Generally, properties that are changed by the element should be private or\n * protected fields and should use the {@linkcode state} decorator.\n *\n * However, sometimes element code does need to set a public property. This\n * should typically only be done in response to user interaction, and an event\n * should be fired informing the user; for example, a checkbox sets its\n * `checked` property when clicked and fires a `changed` event. Mutating public\n * properties should typically not be done for non-primitive (object or array)\n * properties. In other cases when an element needs to manage state, a private\n * property decorated via the {@linkcode state} decorator should be used. When\n * needed, state properties can be initialized via public properties to\n * facilitate complex interactions.\n *\n * ```ts\n * class MyElement {\n * @property({ type: Boolean })\n * clicked = false;\n * }\n * ```\n * @category Decorator\n * @ExportDecoratedItems\n */\nexport function property(options?: PropertyDeclaration): PropertyDecorator {\n return <C extends Interface<ReactiveElement>, V>(\n protoOrTarget:\n | object\n | ClassAccessorDecoratorTarget<C, V>\n | ((value: V) => void),\n nameOrContext:\n | PropertyKey\n | ClassAccessorDecoratorContext<C, V>\n | ClassSetterDecoratorContext<C, V>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): any => {\n return (\n typeof nameOrContext === 'object'\n ? standardProperty<C, V>(\n options,\n protoOrTarget as\n | ClassAccessorDecoratorTarget<C, V>\n | ((value: V) => void),\n nameOrContext as StandardPropertyContext<C, V>\n )\n : legacyProperty(\n options,\n protoOrTarget as Object,\n nameOrContext as PropertyKey\n )\n ) as PropertyDecorator;\n };\n}\n", "export { account } from './icons/account.js';\nexport { alert } from './icons/alert.js';\nexport { alignCenter } from './icons/align-center.js';\nexport { alignLeft } from './icons/align-left.js';\nexport { alignRight } from './icons/align-right.js';\nexport { arrowDown } from './icons/arrow-down.js';\nexport { arrowLeft } from './icons/arrow-left.js';\nexport { arrowRight } from './icons/arrow-right.js';\nexport { arrowUp } from './icons/arrow-up.js';\nexport { audienceTargeting } from './icons/audience-targeting.js';\nexport { bold } from './icons/bold.js';\nexport { bulletList } from './icons/bullet-list.js';\nexport { button } from './icons/button.js';\nexport { calendarIcon } from './icons/calendar.js';\nexport { campaigns } from './icons/campaigns.js';\nexport { channels } from './icons/channels.js';\nexport { checkboxChecked } from './icons/checkbox-checked.js';\nexport { chevron } from './icons/chevron.js';\nexport { chevronDown } from './icons/chevron-down.js';\nexport { chevronRight } from './icons/chevron-right.js';\nexport { chevronUp } from './icons/chevron-up.js';\nexport { clock } from './icons/clock.js';\nexport { close } from './icons/close.js';\nexport { cog } from './icons/cog.js';\nexport { coin } from './icons/coin.js';\nexport { collapsible } from './icons/collapsible.js';\nexport { column } from './icons/column.js';\nexport { comparison } from './icons/comparison.js';\nexport { container } from './icons/container.js';\nexport { countdown } from './icons/countdown.js';\nexport { dateBoost } from './icons/date-boost.js';\nexport { deleteIcon } from './icons/delete.js';\nexport { desktop } from './icons/desktop.js';\nexport { dismissible } from './icons/dismissible.js';\nexport { divider } from './icons/divider.js';\nexport { doubleChevron } from './icons/double-chevron.js';\nexport { download } from './icons/download.js';\nexport { dropdown } from './icons/dropdown.js';\nexport { duplicate } from './icons/duplicate.js';\nexport { edit } from './icons/edit.js';\nexport { email } from './icons/email.js';\nexport { embed } from './icons/embed.js';\nexport { experiment } from './icons/experiment.js';\nexport { external } from './icons/external.js';\nexport { filter } from './icons/filter.js';\nexport { form } from './icons/form.js';\nexport { gallery } from './icons/gallery.js';\nexport { gear } from './icons/gear.js';\nexport { globe } from './icons/globe.js';\nexport { graph } from './icons/graph.js';\nexport { handle } from './icons/handle.js';\nexport { help } from './icons/help.js';\nexport { home } from './icons/home.js';\nexport { horizontal } from './icons/horizontal.js';\nexport { hotel } from './icons/hotel.js';\nexport { info } from './icons/info.js';\nexport { insights } from './icons/insights.js';\nexport { italic } from './icons/italic.js';\nexport { keyboard } from './icons/keyboard.js';\nexport { lightningBolt } from './icons/lightning-bolt.js';\nexport { link } from './icons/link.js';\nexport { logout } from './icons/logout.js';\nexport { messages } from './icons/messages.js';\nexport { minus } from './icons/minus.js';\nexport { mobile } from './icons/mobile.js';\nexport { moveToParent } from './icons/move-to-parent.js';\nexport { multiMessage } from './icons/multi-message.js';\nexport { newTab } from './icons/new-tab.js';\nexport { numberedList } from './icons/numbered-list.js';\nexport { pause } from './icons/pause.js';\nexport { pauseFilled } from './icons/pause-filled.js';\nexport { pieChart } from './icons/pie-chart.js';\nexport { plus } from './icons/plus.js';\nexport { preview } from './icons/preview.js';\nexport { radioChecked } from './icons/radio-checked.js';\nexport { redo } from './icons/redo.js';\nexport { rename } from './icons/rename.js';\nexport { section } from './icons/section.js';\nexport { send } from './icons/send.js';\nexport { share } from './icons/share.js';\nexport { sidebarCollapsed } from './icons/sidebar-collapsed.js';\nexport { sidebarExpanded } from './icons/sidebar-expanded.js';\nexport { stop } from './icons/stop.js';\nexport { stopFilled } from './icons/stop-filled.js';\nexport { strikethrough } from './icons/strikethrough.js';\nexport { tag } from './icons/tag.js';\nexport { target } from './icons/target.js';\nexport { templates } from './icons/templates.js';\nexport { text } from './icons/text.js';\nexport { textInput } from './icons/text-input.js';\nexport { tick } from './icons/tick.js';\nexport { ticket } from './icons/ticket.js';\nexport { treeGraph } from './icons/tree-graph.js';\nexport { undo } from './icons/undo.js';\nexport { underline } from './icons/underline.js';\nexport { unlink } from './icons/unlink.js';\nexport { user } from './icons/user.js';\nexport { vertical } from './icons/vertical.js';\nexport { wallet } from './icons/wallet.js';\nexport { warning } from './icons/warning.js';\n", "export const account = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 2C17.5228 2 22 6.47715 22 12C22 15.2098 20.4857 18.0638 18.1348 19.8936C18.0344 20.055 17.8763 20.1738 17.6875 20.2227C16.0725 21.3418 14.1137 22 12 22C9.88604 22 7.92664 21.3421 6.31152 20.2227C6.12294 20.1736 5.96441 20.055 5.86426 19.8936C3.51367 18.0638 2 15.2095 2 12C2 6.47715 6.47715 2 12 2ZM11.25 15.5C9.1884 15.5 7.49093 17.0597 7.27344 19.0635C8.62515 19.9698 10.2503 20.5 12 20.5C13.7494 20.5 15.374 19.9695 16.7256 19.0635C16.508 17.0598 14.8116 15.5 12.75 15.5H11.25ZM12 3.5C7.30558 3.5 3.5 7.30558 3.5 12C3.5 14.3333 4.44073 16.4464 5.96289 17.9824C6.62169 15.683 8.73895 14 11.25 14H12.75C15.2609 14 17.3772 15.6832 18.0361 17.9824C19.5586 16.4464 20.5 14.3335 20.5 12C20.5 7.30558 16.6944 3.5 12 3.5ZM12 5.25C14.0711 5.25 15.75 6.92893 15.75 9C15.75 11.0711 14.0711 12.75 12 12.75C9.92893 12.75 8.25 11.0711 8.25 9C8.25 6.92893 9.92893 5.25 12 5.25ZM12 6.75C10.7574 6.75 9.75 7.75736 9.75 9C9.75 10.2426 10.7574 11.25 12 11.25C13.2426 11.25 14.25 10.2426 14.25 9C14.25 7.75736 13.2426 6.75 12 6.75Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const alert = `<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 20C15.5228 20 20 15.5228 20 10C20 4.47715 15.5228 0 10 0C4.47715 0 0 4.47715 0 10C0 15.5228 4.47715 20 10 20ZM9.25 5.75C9.25 5.33579 9.58579 5 10 5C10.4142 5 10.75 5.33579 10.75 5.75V11.25C10.75 11.6642 10.4142 12 10 12C9.58579 12 9.25 11.6642 9.25 11.25V5.75ZM10.75 13.75C10.75 14.1642 10.4142 14.5 10 14.5C9.58579 14.5 9.25 14.1642 9.25 13.75C9.25 13.3358 9.58579 13 10 13C10.4142 13 10.75 13.3358 10.75 13.75Z\" fill=\"currentColor\"/>\n</svg>`;\n", "export const alignCenter = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.25 7.5C15.6642 7.5 16 7.16421 16 6.75C16 6.33579 15.6642 6 15.25 6H8.75C8.33579 6 8 6.33579 8 6.75C8 7.16421 8.33579 7.5 8.75 7.5L15.25 7.5ZM19.25 11C19.6642 11 20 10.6642 20 10.25C20 9.83579 19.6642 9.5 19.25 9.5L4.75 9.5C4.33579 9.5 4 9.83579 4 10.25C4 10.6642 4.33579 11 4.75 11L19.25 11ZM16 13.75C16 14.1642 15.6642 14.5 15.25 14.5L8.75 14.5C8.33579 14.5 8 14.1642 8 13.75C8 13.3358 8.33579 13 8.75 13L15.25 13C15.6642 13 16 13.3358 16 13.75ZM19.25 18C19.6642 18 20 17.6642 20 17.25C20 16.8358 19.6642 16.5 19.25 16.5L4.75 16.5C4.33579 16.5 4 16.8358 4 17.25C4 17.6642 4.33579 18 4.75 18L19.25 18Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const alignLeft = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.25 7.5C11.6642 7.5 12 7.16421 12 6.75C12 6.33579 11.6642 6 11.25 6H4.75C4.33579 6 4 6.33579 4 6.75C4 7.16421 4.33579 7.5 4.75 7.5L11.25 7.5ZM19.25 11C19.6642 11 20 10.6642 20 10.25C20 9.83579 19.6642 9.5 19.25 9.5L4.75 9.5C4.33579 9.5 4 9.83579 4 10.25C4 10.6642 4.33579 11 4.75 11L19.25 11ZM12 13.75C12 14.1642 11.6642 14.5 11.25 14.5L4.75 14.5C4.33579 14.5 4 14.1642 4 13.75C4 13.3358 4.33579 13 4.75 13L11.25 13C11.6642 13 12 13.3358 12 13.75ZM19.25 18C19.6642 18 20 17.6642 20 17.25C20 16.8358 19.6642 16.5 19.25 16.5L4.75 16.5C4.33579 16.5 4 16.8358 4 17.25C4 17.6642 4.33579 18 4.75 18L19.25 18Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const alignRight = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19.25 7.5C19.6642 7.5 20 7.16421 20 6.75C20 6.33579 19.6642 6 19.25 6H12.75C12.3358 6 12 6.33579 12 6.75C12 7.16421 12.3358 7.5 12.75 7.5L19.25 7.5ZM19.25 11C19.6642 11 20 10.6642 20 10.25C20 9.83579 19.6642 9.5 19.25 9.5L4.75 9.5C4.33579 9.5 4 9.83579 4 10.25C4 10.6642 4.33579 11 4.75 11L19.25 11ZM20 13.75C20 14.1642 19.6642 14.5 19.25 14.5L12.75 14.5C12.3358 14.5 12 14.1642 12 13.75C12 13.3358 12.3358 13 12.75 13L19.25 13C19.6642 13 20 13.3358 20 13.75ZM19.25 18C19.6642 18 20 17.6642 20 17.25C20 16.8358 19.6642 16.5 19.25 16.5L4.75 16.5C4.33579 16.5 4 16.8358 4 17.25C4 17.6642 4.33579 18 4.75 18L19.25 18Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const arrowDown = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.51256 13.0126C6.80546 12.7197 7.28033 12.7197 7.57322 13.0126L11.2929 16.7323L11.2929 5.04292C11.2929 4.6287 11.6287 4.29292 12.0429 4.29292C12.4571 4.29292 12.7929 4.6287 12.7929 5.04292L12.7929 16.7323L16.5126 13.0126C16.8055 12.7197 17.2803 12.7197 17.5732 13.0126C17.8661 13.3055 17.8661 13.7804 17.5732 14.0732L12.0429 19.6036L6.51256 14.0732C6.21967 13.7804 6.21967 13.3055 6.51256 13.0126Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const arrowLeft = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.0303 6.46967C11.3232 6.76256 11.3232 7.23744 11.0303 7.53033L7.31066 11.25H19C19.4142 11.25 19.75 11.5858 19.75 12C19.75 12.4142 19.4142 12.75 19 12.75H7.31066L11.0303 16.4697C11.3232 16.7626 11.3232 17.2374 11.0303 17.5303C10.7374 17.8232 10.2626 17.8232 9.96967 17.5303L4.43934 12L9.96967 6.46967C10.2626 6.17678 10.7374 6.17678 11.0303 6.46967Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const arrowRight = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13.0555 17.5303C12.7626 17.2374 12.7626 16.7626 13.0555 16.4697L16.7752 12.75L5.08582 12.75C4.6716 12.75 4.33582 12.4142 4.33582 12C4.33582 11.5858 4.6716 11.25 5.08582 11.25L16.7752 11.25L13.0555 7.53033C12.7626 7.23744 12.7626 6.76256 13.0555 6.46967C13.3484 6.17678 13.8233 6.17678 14.1161 6.46967L19.6465 12L14.1161 17.5303C13.8233 17.8232 13.3484 17.8232 13.0555 17.5303Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const arrowUp = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17.5732 10.9875C17.2803 11.2804 16.8055 11.2804 16.5126 10.9875L12.7929 7.2678L12.7929 18.9571C12.7929 19.3714 12.4571 19.7071 12.0429 19.7071C11.6287 19.7071 11.2929 19.3714 11.2929 18.9571L11.2929 7.2678L7.57322 10.9875C7.28033 11.2804 6.80545 11.2804 6.51256 10.9875C6.21967 10.6946 6.21967 10.2197 6.51256 9.92681L12.0429 4.39648L17.5732 9.92681C17.8661 10.2197 17.8661 10.6946 17.5732 10.9875Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const audienceTargeting = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.25 5C3.25 4.0335 4.0335 3.25 5 3.25H7C7.41421 3.25 7.75 3.58579 7.75 4C7.75 4.41421 7.41421 4.75 7 4.75H5C4.86193 4.75 4.75 4.86193 4.75 5V7C4.75 7.41421 4.41421 7.75 4 7.75C3.58579 7.75 3.25 7.41421 3.25 7V5ZM4 16.25C4.41421 16.25 4.75 16.5858 4.75 17V19C4.75 19.1381 4.86193 19.25 5 19.25H7C7.41421 19.25 7.75 19.5858 7.75 20C7.75 20.4142 7.41421 20.75 7 20.75H5C4.0335 20.75 3.25 19.9665 3.25 19V17C3.25 16.5858 3.58579 16.25 4 16.25ZM20.75 17C20.75 16.5858 20.4142 16.25 20 16.25C19.5858 16.25 19.25 16.5858 19.25 17V19C19.25 19.1381 19.1381 19.25 19 19.25H17C16.5858 19.25 16.25 19.5858 16.25 20C16.25 20.4142 16.5858 20.75 17 20.75H19C19.9665 20.75 20.75 19.9665 20.75 19V17ZM16.25 4C16.25 3.58579 16.5858 3.25 17 3.25H19C19.9665 3.25 20.75 4.0335 20.75 5V7C20.75 7.41421 20.4142 7.75 20 7.75C19.5858 7.75 19.25 7.41421 19.25 7V5C19.25 4.86193 19.1381 4.75 19 4.75H17C16.5858 4.75 16.25 4.41421 16.25 4ZM12 7.75C11.3096 7.75 10.75 8.30964 10.75 9C10.75 9.69036 11.3096 10.25 12 10.25C12.6904 10.25 13.25 9.69036 13.25 9C13.25 8.30964 12.6904 7.75 12 7.75ZM9.25 9C9.25 7.48122 10.4812 6.25 12 6.25C13.5188 6.25 14.75 7.48122 14.75 9C14.75 10.5188 13.5188 11.75 12 11.75C10.4812 11.75 9.25 10.5188 9.25 9ZM7.25 16.4C7.25 14.6603 8.6603 13.25 10.4 13.25H13.6C15.3397 13.25 16.75 14.6603 16.75 16.4C16.75 17.1456 16.1456 17.75 15.4 17.75H8.6C7.85442 17.75 7.25 17.1456 7.25 16.4ZM15.2433 16.25C15.1675 15.409 14.4607 14.75 13.6 14.75H10.4C9.53929 14.75 8.83251 15.409 8.75673 16.25H15.2433Z\" fill=\"currentColor\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.25 5C3.25 4.0335 4.0335 3.25 5 3.25H7C7.41421 3.25 7.75 3.58579 7.75 4C7.75 4.41421 7.41421 4.75 7 4.75H5C4.86193 4.75 4.75 4.86193 4.75 5V7C4.75 7.41421 4.41421 7.75 4 7.75C3.58579 7.75 3.25 7.41421 3.25 7V5ZM4 16.25C4.41421 16.25 4.75 16.5858 4.75 17V19C4.75 19.1381 4.86193 19.25 5 19.25H7C7.41421 19.25 7.75 19.5858 7.75 20C7.75 20.4142 7.41421 20.75 7 20.75H5C4.0335 20.75 3.25 19.9665 3.25 19V17C3.25 16.5858 3.58579 16.25 4 16.25ZM20.75 17C20.75 16.5858 20.4142 16.25 20 16.25C19.5858 16.25 19.25 16.5858 19.25 17V19C19.25 19.1381 19.1381 19.25 19 19.25H17C16.5858 19.25 16.25 19.5858 16.25 20C16.25 20.4142 16.5858 20.75 17 20.75H19C19.9665 20.75 20.75 19.9665 20.75 19V17ZM16.25 4C16.25 3.58579 16.5858 3.25 17 3.25H19C19.9665 3.25 20.75 4.0335 20.75 5V7C20.75 7.41421 20.4142 7.75 20 7.75C19.5858 7.75 19.25 7.41421 19.25 7V5C19.25 4.86193 19.1381 4.75 19 4.75H17C16.5858 4.75 16.25 4.41421 16.25 4ZM12 7.75C11.3096 7.75 10.75 8.30964 10.75 9C10.75 9.69036 11.3096 10.25 12 10.25C12.6904 10.25 13.25 9.69036 13.25 9C13.25 8.30964 12.6904 7.75 12 7.75ZM9.25 9C9.25 7.48122 10.4812 6.25 12 6.25C13.5188 6.25 14.75 7.48122 14.75 9C14.75 10.5188 13.5188 11.75 12 11.75C10.4812 11.75 9.25 10.5188 9.25 9ZM7.25 16.4C7.25 14.6603 8.6603 13.25 10.4 13.25H13.6C15.3397 13.25 16.75 14.6603 16.75 16.4C16.75 17.1456 16.1456 17.75 15.4 17.75H8.6C7.85442 17.75 7.25 17.1456 7.25 16.4ZM15.2433 16.25C15.1675 15.409 14.4607 14.75 13.6 14.75H10.4C9.53929 14.75 8.83251 15.409 8.75673 16.25H15.2433Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const bold = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_8391_1177)\">\n<path d=\"M7 5H13C13.9283 5 14.8185 5.36875 15.4749 6.02513C16.1313 6.6815 16.5 7.57174 16.5 8.5C16.5 9.42826 16.1313 10.3185 15.4749 10.9749C14.8185 11.6313 13.9283 12 13 12H7V5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M13 12H14C14.9283 12 15.8185 12.3687 16.4749 13.0251C17.1313 13.6815 17.5 14.5717 17.5 15.5C17.5 16.4283 17.1313 17.3185 16.4749 17.9749C15.8185 18.6313 14.9283 19 14 19H7V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_8391_1177\">\n<rect width=\"24\" height=\"24\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n`;\n", "export const bulletList = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_8391_1173)\">\n<path d=\"M9 6H20\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M9 12H20\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M9 18H20\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M5 6V6.007\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M5 12V12.007\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M5 18V18.007\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_8391_1173\">\n<rect width=\"24\" height=\"24\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n`;\n", "export const button = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 6.5H6C5.17157 6.5 4.5 7.17157 4.5 8V16C4.5 16.8284 5.17157 17.5 6 17.5H11.4407C11.7487 17.5 12.0254 17.6883 12.1384 17.9748C12.3325 18.467 11.9697 19 11.4407 19H6C4.34315 19 3 17.6569 3 16V8C3 6.34315 4.34315 5 6 5H18C19.6569 5 21 6.34315 21 8V12.2295C21 12.7585 20.467 13.1213 19.9748 12.9272C19.6883 12.8142 19.5 12.5375 19.5 12.2295V8C19.5 7.17157 18.8284 6.5 18 6.5ZM20.933 14.9175L13.1419 11.8448C12.3283 11.5239 11.5239 12.3283 11.8448 13.1419L13.9677 18.5247C13.9677 18.5248 13.9678 18.525 13.9679 18.5252C13.9679 18.5253 13.968 18.5255 13.9681 18.5257L14.918 20.9343C15.2342 21.736 16.3488 21.789 16.7396 21.0208L18.0355 18.4734C18.1315 18.2848 18.2848 18.1315 18.4734 18.0355L20.1634 17.1758L21.0208 16.7396C21.7889 16.3489 21.7361 15.2346 20.9347 14.9182C20.9346 14.9181 20.9344 14.9181 20.9343 14.918C20.9339 14.9179 20.9334 14.9177 20.933 14.9175Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const calendarIcon = `<svg width=\"18\" height=\"19\" viewBox=\"0 0 18 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.75 0.75C5.75 0.335786 5.41421 0 5 0C4.58579 0 4.25 0.335786 4.25 0.75V2H3C1.34315 2 0 3.34315 0 5V16C0 17.6569 1.34315 19 3 19H15C16.6569 19 18 17.6569 18 16V5C18 3.34315 16.6569 2 15 2H13.75V0.75C13.75 0.335786 13.4142 0 13 0C12.5858 0 12.25 0.335786 12.25 0.75V2H5.75V0.75ZM3 3.5H15C15.8284 3.5 16.5 4.17157 16.5 5V7.25H1.5V5C1.5 4.17157 2.17157 3.5 3 3.5ZM1.5 8.75V16C1.5 16.8284 2.17157 17.5 3 17.5H15C15.8284 17.5 16.5 16.8284 16.5 16V8.75H1.5Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const campaigns = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13.75 11C13.75 9.47056 14.1646 8.11984 14.7956 7.17338C15.1658 6.61803 15.5905 6.22612 16.0341 5.99602L17.0795 5.75165C17.8298 5.78274 18.5916 6.25415 19.2044 7.17338C19.8354 8.11984 20.25 9.47056 20.25 11C20.25 12.5294 19.8354 13.8802 19.2044 14.8266C18.5916 15.7458 17.8298 16.2173 17.0794 16.2484L16.0341 16.004C15.5905 15.7739 15.1659 15.382 14.7956 14.8266C14.1646 13.8802 13.75 12.5294 13.75 11ZM12.25 11C12.25 9.3468 12.6627 7.80949 13.373 6.61808L5.48783 8.46138C4.46994 8.69932 3.75 9.60698 3.75 10.6523V11.3477C3.75 12.393 4.46994 13.3007 5.48783 13.5386L13.373 15.3819C12.6627 14.1905 12.25 12.6532 12.25 11ZM5.14639 7.00075L15.5263 4.57427C15.9817 4.36663 16.4756 4.25 17 4.25C18.4334 4.25 19.6392 5.12146 20.4525 6.34133C21.2692 7.56645 21.75 9.21573 21.75 11C21.75 12.7843 21.2692 14.4335 20.4525 15.6587C19.6392 16.8785 18.4334 17.75 17 17.75C16.4756 17.75 15.9817 17.6334 15.5263 17.4257L11.75 16.5429V17.5C11.75 19.2949 10.2949 20.75 8.5 20.75C6.70507 20.75 5.25 19.2949 5.25 17.5V15.0235L5.14639 14.9992C3.4499 14.6027 2.25 13.0899 2.25 11.3477V10.6523C2.25 8.91009 3.4499 7.39734 5.14639 7.00075ZM6.75 15.3741V17.5C6.75 18.4665 7.5335 19.25 8.5 19.25C9.4665 19.25 10.25 18.4665 10.25 17.5V16.1923L6.75 15.3741Z\" />\n</svg>`;\n", "export const channels = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18 3C19.6569 3 21 4.34315 21 6C21 7.65685 19.6569 9 18 9C17.4435 9 16.9243 8.84513 16.4775 8.58105L15.3076 9.75098C15.7443 10.3919 16 11.166 16 12C16 12.8334 15.7437 13.6064 15.3076 14.2471L16.4775 15.417C16.9241 15.1532 17.4438 15 18 15C19.6569 15 21 16.3431 21 18C21 19.6569 19.6569 21 18 21C16.3431 21 15 19.6569 15 18C15 17.4438 15.1532 16.9241 15.417 16.4775L14.2471 15.3076C13.6064 15.7437 12.8334 16 12 16C11.166 16 10.3919 15.7443 9.75098 15.3076L8.58105 16.4775C8.84513 16.9243 9 17.4435 9 18C9 19.6569 7.65685 21 6 21C4.34315 21 3 19.6569 3 18C3 16.3431 4.34315 15 6 15C6.55558 15 7.07429 15.1538 7.52051 15.417L8.69141 14.2471C8.2555 13.6065 8 12.8332 8 12C8 11.1665 8.25523 10.3927 8.69141 9.75195L7.52148 8.58203C7.07501 8.84569 6.55606 9 6 9C4.34315 9 3 7.65685 3 6C3 4.34315 4.34315 3 6 3C7.65685 3 9 4.34315 9 6C9 6.55606 8.84569 7.07501 8.58203 7.52148L9.75195 8.69141C9.73784 8.70101 9.72394 8.71092 9.70996 8.7207C10.3587 8.26679 11.1481 8 12 8C12.833 8 13.6066 8.25472 14.2471 8.69043L15.417 7.52051C15.1538 7.07429 15 6.55558 15 6C15 4.34315 16.3431 3 18 3ZM6 16.5C5.17157 16.5 4.5 17.1716 4.5 18C4.5 18.8284 5.17157 19.5 6 19.5C6.82843 19.5 7.5 18.8284 7.5 18C7.5 17.1716 6.82843 16.5 6 16.5ZM18 16.5C17.1716 16.5 16.5 17.1716 16.5 18C16.5 18.8284 17.1716 19.5 18 19.5C18.8284 19.5 19.5 18.8284 19.5 18C19.5 17.1716 18.8284 16.5 18 16.5ZM12 9.5C10.6193 9.5 9.5 10.6193 9.5 12C9.5 13.3807 10.6193 14.5 12 14.5C13.3807 14.5 14.5 13.3807 14.5 12C14.5 10.6193 13.3807 9.5 12 9.5ZM6 4.5C5.17157 4.5 4.5 5.17157 4.5 6C4.5 6.82843 5.17157 7.5 6 7.5C6.82843 7.5 7.5 6.82843 7.5 6C7.5 5.17157 6.82843 4.5 6 4.5ZM18 4.5C17.1716 4.5 16.5 5.17157 16.5 6C16.5 6.82843 17.1716 7.5 18 7.5C18.8284 7.5 19.5 6.82843 19.5 6C19.5 5.17157 18.8284 4.5 18 4.5Z\" />\n</svg>`;\n", "export const checkboxChecked = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect x=\"3.75\" y=\"3.75\" width=\"16.5\" height=\"16.5\" rx=\"2.25\" stroke=\"currentColor\" stroke-width=\"1.5\"/>\n<path d=\"M8 13.2L10 15L16 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n</svg>\n`;\n", "export const chevron = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"chevron\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.7073 6.29289C16.0978 6.68342 16.0978 7.31658 15.7073 7.70711L11.4144 12L15.7073 16.2929C16.0978 16.6834 16.0978 17.3166 15.7073 17.7071C15.3167 18.0976 14.6836 18.0976 14.293 17.7071L8.58594 12L14.293 6.29289C14.6836 5.90237 15.3167 5.90237 15.7073 6.29289Z\" fill=\"currentColor\"/>\n</svg>`;\n", "export const chevronDown = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"currentColor\" class=\"bi bi-chevron-down chevron-down\"\n viewBox=\"0 0 16 16\" role=\"presentation\">\n <path fill-rule=\"evenodd\"\n d=\"M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z\"\n stroke=\"currentColor\"/>\n </svg>`;\n", "export const chevronRight = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.96968 17.5303C8.67679 17.2374 8.67679 16.7626 8.96968 16.4697L13.4393 12L8.96968 7.53033C8.67679 7.23744 8.67679 6.76256 8.96968 6.46967C9.26257 6.17678 9.73745 6.17678 10.0303 6.46967L15.5607 12L10.0303 17.5303C9.73745 17.8232 9.26257 17.8232 8.96968 17.5303Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const chevronUp = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17.5303 15.0303C17.2374 15.3232 16.7626 15.3232 16.4697 15.0303L12 10.5607L7.53033 15.0303C7.23744 15.3232 6.76256 15.3232 6.46967 15.0303C6.17678 14.7374 6.17678 14.2626 6.46967 13.9697L12 8.43933L17.5303 13.9697C17.8232 14.2626 17.8232 14.7374 17.5303 15.0303Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const clock = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM12 3.5C7.30558 3.5 3.5 7.30558 3.5 12C3.5 16.6944 7.30558 20.5 12 20.5C16.6944 20.5 20.5 16.6944 20.5 12C20.5 7.30558 16.6944 3.5 12 3.5ZM12 5.25C12.4142 5.25 12.75 5.58579 12.75 6V11.25H16C16.4142 11.25 16.75 11.5858 16.75 12C16.75 12.4142 16.4142 12.75 16 12.75H11.25V6C11.25 5.58579 11.5858 5.25 12 5.25Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const close = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17.4801 7.58056C17.773 7.28767 17.773 6.8128 17.4801 6.5199C17.1872 6.22701 16.7123 6.22701 16.4194 6.5199L12 10.9393L7.58058 6.5199C7.28769 6.22701 6.81282 6.22701 6.51992 6.5199C6.22703 6.8128 6.22703 7.28767 6.51992 7.58056L10.9393 12L6.51992 16.4194C6.22703 16.7123 6.22703 17.1872 6.51992 17.4801C6.81282 17.773 7.28769 17.773 7.58058 17.4801L12 13.0606L16.4194 17.4801C16.7123 17.773 17.1872 17.773 17.4801 17.4801C17.773 17.1872 17.773 16.7123 17.4801 16.4194L13.0607 12L17.4801 7.58056Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const cog = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M13.6328 2.01367C14.0085 2.07631 14.3224 2.35007 14.4297 2.72559L15.0049 4.74219L16.8398 3.72363C17.1813 3.53396 17.5973 3.56262 17.9072 3.78418L18.0332 3.89062L20.1084 5.9668L20.2158 6.09277C20.4372 6.40274 20.466 6.81875 20.2764 7.16016L19.2568 8.99316L21.2744 9.57031C21.6502 9.67769 21.9239 9.9921 21.9863 10.3682L22 10.5322V13.4678L21.9863 13.6328C21.9237 14.0085 21.6499 14.3224 21.2744 14.4297L19.2568 15.0049L20.2764 16.8398C20.4661 17.1813 20.4374 17.5972 20.2158 17.9072L20.1094 18.0332L18.0332 20.1084L17.9072 20.2158C17.5973 20.4372 17.1813 20.466 16.8398 20.2764L15.0049 19.2568L14.4297 21.2744C14.3223 21.6502 14.0079 21.9239 13.6318 21.9863L13.4678 22H10.5322L10.3672 21.9863C9.99146 21.9237 9.6776 21.6499 9.57031 21.2744L8.99316 19.2568L7.16016 20.2764C6.81867 20.466 6.40275 20.4374 6.09277 20.2158L5.9668 20.1094L3.8916 18.0332L3.78418 17.9072C3.56278 17.5973 3.53398 17.1812 3.72363 16.8398L4.74219 15.0059L2.72559 14.4297C2.34982 14.3223 2.07606 14.0079 2.01367 13.6318L2 13.4678V10.5322L2.01367 10.3672C2.07633 9.99149 2.35009 9.6776 2.72559 9.57031L4.74219 8.99316L3.72363 7.16016C3.53394 6.81866 3.5626 6.40276 3.78418 6.09277L3.89062 5.9668L5.9668 3.8916L6.09277 3.78418C6.40275 3.56277 6.81875 3.53396 7.16016 3.72363L8.99316 4.74219L9.57031 2.72559C9.67768 2.34981 9.99209 2.07606 10.3682 2.01367L10.5322 2H13.4678L13.6328 2.01367ZM10.4014 5.27148C9.70554 5.47089 9.05368 5.77388 8.46484 6.16504L6.76074 5.21875L5.21777 6.76074L6.22363 8.57031L6.23242 8.56738C5.91398 9.13213 5.67275 9.74545 5.52051 10.3936L5.49023 10.3398L3.5 10.9092V13.0908L5.49121 13.6592L5.52051 13.6055C5.67256 14.2532 5.91338 14.8662 6.23145 15.4307L6.22363 15.4287L5.21875 17.2393L5.21777 17.2383V17.2393H5.21875L6.76074 18.7822L8.46484 17.834C9.05398 18.2254 9.7061 18.5281 10.4023 18.7275L10.9092 20.5H13.0908L13.5488 18.8916C14.3898 18.7443 15.1787 18.4482 15.8877 18.0293L17.2393 18.7812L18.7822 17.2393L18.085 15.9863C18.6037 15.2393 18.9814 14.3876 19.1777 13.4678L20.5 13.0908V10.9092L19.1777 10.5303C18.9812 9.61065 18.6038 8.75856 18.085 8.01172L18.7812 6.76074L17.2393 5.21777L15.8857 5.96875C15.1773 5.55053 14.389 5.25458 13.5488 5.10742L13.0908 3.5H10.9092L10.4014 5.27148ZM12 8C14.2091 8 16 9.79086 16 12C16 14.2091 14.2091 16 12 16C9.79086 16 8 14.2091 8 12C8 9.79086 9.79086 8 12 8ZM12 9.5C10.6193 9.5 9.5 10.6193 9.5 12C9.5 13.3807 10.6193 14.5 12 14.5C13.3807 14.5 14.5 13.3807 14.5 12C14.5 10.6193 13.3807 9.5 12 9.5Z\" fill=\"currentColor\"/>\n<path d=\"M13.6328 2.01367C14.0085 2.07631 14.3224 2.35007 14.4297 2.72559L15.0049 4.74219L16.8398 3.72363C17.1813 3.53396 17.5973 3.56262 17.9072 3.78418L18.0332 3.89062L20.1084 5.9668L20.2158 6.09277C20.4372 6.40274 20.466 6.81875 20.2764 7.16016L19.2568 8.99316L21.2744 9.57031C21.6502 9.67769 21.9239 9.9921 21.9863 10.3682L22 10.5322V13.4678L21.9863 13.6328C21.9237 14.0085 21.6499 14.3224 21.2744 14.4297L19.2568 15.0049L20.2764 16.8398C20.4661 17.1813 20.4374 17.5972 20.2158 17.9072L20.1094 18.0332L18.0332 20.1084L17.9072 20.2158C17.5973 20.4372 17.1813 20.466 16.8398 20.2764L15.0049 19.2568L14.4297 21.2744C14.3223 21.6502 14.0079 21.9239 13.6318 21.9863L13.4678 22H10.5322L10.3672 21.9863C9.99146 21.9237 9.6776 21.6499 9.57031 21.2744L8.99316 19.2568L7.16016 20.2764C6.81867 20.466 6.40275 20.4374 6.09277 20.2158L5.9668 20.1094L3.8916 18.0332L3.78418 17.9072C3.56278 17.5973 3.53398 17.1812 3.72363 16.8398L4.74219 15.0059L2.72559 14.4297C2.34982 14.3223 2.07606 14.0079 2.01367 13.6318L2 13.4678V10.5322L2.01367 10.3672C2.07633 9.99149 2.35009 9.6776 2.72559 9.57031L4.74219 8.99316L3.72363 7.16016C3.53394 6.81866 3.5626 6.40276 3.78418 6.09277L3.89062 5.9668L5.9668 3.8916L6.09277 3.78418C6.40275 3.56277 6.81875 3.53396 7.16016 3.72363L8.99316 4.74219L9.57031 2.72559C9.67768 2.34981 9.99209 2.07606 10.3682 2.01367L10.5322 2H13.4678L13.6328 2.01367ZM10.4014 5.27148C9.70554 5.47089 9.05368 5.77388 8.46484 6.16504L6.76074 5.21875L5.21777 6.76074L6.22363 8.57031L6.23242 8.56738C5.91398 9.13213 5.67275 9.74545 5.52051 10.3936L5.49023 10.3398L3.5 10.9092V13.0908L5.49121 13.6592L5.52051 13.6055C5.67256 14.2532 5.91338 14.8662 6.23145 15.4307L6.22363 15.4287L5.21875 17.2393L5.21777 17.2383V17.2393H5.21875L6.76074 18.7822L8.46484 17.834C9.05398 18.2254 9.7061 18.5281 10.4023 18.7275L10.9092 20.5H13.0908L13.5488 18.8916C14.3898 18.7443 15.1787 18.4482 15.8877 18.0293L17.2393 18.7812L18.7822 17.2393L18.085 15.9863C18.6037 15.2393 18.9814 14.3876 19.1777 13.4678L20.5 13.0908V10.9092L19.1777 10.5303C18.9812 9.61065 18.6038 8.75856 18.085 8.01172L18.7812 6.76074L17.2393 5.21777L15.8857 5.96875C15.1773 5.55053 14.389 5.25458 13.5488 5.10742L13.0908 3.5H10.9092L10.4014 5.27148ZM12 8C14.2091 8 16 9.79086 16 12C16 14.2091 14.2091 16 12 16C9.79086 16 8 14.2091 8 12C8 9.79086 9.79086 8 12 8ZM12 9.5C10.6193 9.5 9.5 10.6193 9.5 12C9.5 13.3807 10.6193 14.5 12 14.5C13.3807 14.5 14.5 13.3807 14.5 12C14.5 10.6193 13.3807 9.5 12 9.5Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const coin = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 20.5C16.6944 20.5 20.5 16.6944 20.5 12C20.5 7.30558 16.6944 3.5 12 3.5C7.30558 3.5 3.5 7.30558 3.5 12C3.5 16.6944 7.30558 20.5 12 20.5ZM12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM12 17.5C15.0376 17.5 17.5 15.0376 17.5 12C17.5 8.96243 15.0376 6.5 12 6.5C8.96243 6.5 6.5 8.96243 6.5 12C6.5 15.0376 8.96243 17.5 12 17.5ZM12 19C15.866 19 19 15.866 19 12C19 8.13401 15.866 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19ZM12 9C11.5858 9 11.25 9.33579 11.25 9.75V14.25C11.25 14.6642 11.5858 15 12 15C12.4142 15 12.75 14.6642 12.75 14.25V9.75C12.75 9.33579 12.4142 9 12 9Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const collapsible = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M15.5732 13.4697C15.8661 13.7626 15.8661 14.2374 15.5732 14.5303C15.2804 14.8232 14.8056 14.8231 14.5127 14.5303L12.793 12.8105V21C12.793 21.4142 12.4571 21.75 12.043 21.75C11.6288 21.75 11.293 21.4142 11.293 21V12.8105L9.57324 14.5303C9.28036 14.8231 8.80559 14.8231 8.5127 14.5303C8.21981 14.2374 8.21981 13.7626 8.5127 13.4697L12.043 9.93945L15.5732 13.4697ZM17 3.25C19.0711 3.25 20.75 4.92893 20.75 7V15C20.75 17.0711 19.0711 18.75 17 18.75H14.793V17.25H17C18.2426 17.25 19.25 16.2426 19.25 15V7C19.25 5.75736 18.2426 4.75 17 4.75H7C5.75736 4.75 4.75 5.75736 4.75 7V15C4.75 16.2426 5.75736 17.25 7 17.25H9.29297V18.75H7C4.92893 18.75 3.25 17.0711 3.25 15V7C3.25 4.92893 4.92893 3.25 7 3.25H17Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const column = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7 3.25C4.92893 3.25 3.25 4.92893 3.25 7V17C3.25 19.0711 4.92893 20.75 7 20.75H17C19.0711 20.75 20.75 19.0711 20.75 17V7C20.75 4.92893 19.0711 3.25 17 3.25H7ZM4.75 7C4.75 5.75736 5.75736 4.75 7 4.75H11.25L11.25 19.25H7C5.75736 19.25 4.75 18.2426 4.75 17V7ZM12.75 19.25H17C18.2426 19.25 19.25 18.2426 19.25 17V7C19.25 5.75736 18.2426 4.75 17 4.75H12.75L12.75 19.25Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const comparison = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.03032 4.53033C8.32321 4.23744 8.32321 3.76256 8.03032 3.46967C7.73743 3.17678 7.26255 3.17678 6.96966 3.46967L4.46966 5.96967L3.93933 6.5L4.46966 7.03033L6.96966 9.53033C7.26255 9.82322 7.73743 9.82322 8.03032 9.53033C8.32321 9.23744 8.32321 8.76256 8.03032 8.46967L6.81065 7.25H16C17.2426 7.25 18.25 8.25736 18.25 9.5V12C18.25 12.4142 18.5858 12.75 19 12.75C19.4142 12.75 19.75 12.4142 19.75 12V9.5C19.75 7.42893 18.0711 5.75 16 5.75H6.81065L8.03032 4.53033ZM15.9697 19.4697C15.6768 19.7626 15.6768 20.2374 15.9697 20.5303C16.2626 20.8232 16.7374 20.8232 17.0303 20.5303L19.5303 18.0303L20.0607 17.5L19.5303 16.9697L17.0303 14.4697C16.7374 14.1768 16.2626 14.1768 15.9697 14.4697C15.6768 14.7626 15.6768 15.2374 15.9697 15.5303L17.1893 16.75H8C6.75736 16.75 5.75 15.7426 5.75 14.5V12C5.75 11.5858 5.41421 11.25 5 11.25C4.58579 11.25 4.25 11.5858 4.25 12V14.5C4.25 16.5711 5.92893 18.25 8 18.25H17.1893L15.9697 19.4697Z\" fill=\"currentColor\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.03032 4.53033C8.32321 4.23744 8.32321 3.76256 8.03032 3.46967C7.73743 3.17678 7.26255 3.17678 6.96966 3.46967L4.46966 5.96967L3.93933 6.5L4.46966 7.03033L6.96966 9.53033C7.26255 9.82322 7.73743 9.82322 8.03032 9.53033C8.32321 9.23744 8.32321 8.76256 8.03032 8.46967L6.81065 7.25H16C17.2426 7.25 18.25 8.25736 18.25 9.5V12C18.25 12.4142 18.5858 12.75 19 12.75C19.4142 12.75 19.75 12.4142 19.75 12V9.5C19.75 7.42893 18.0711 5.75 16 5.75H6.81065L8.03032 4.53033ZM15.9697 19.4697C15.6768 19.7626 15.6768 20.2374 15.9697 20.5303C16.2626 20.8232 16.7374 20.8232 17.0303 20.5303L19.5303 18.0303L20.0607 17.5L19.5303 16.9697L17.0303 14.4697C16.7374 14.1768 16.2626 14.1768 15.9697 14.4697C15.6768 14.7626 15.6768 15.2374 15.9697 15.5303L17.1893 16.75H8C6.75736 16.75 5.75 15.7426 5.75 14.5V12C5.75 11.5858 5.41421 11.25 5 11.25C4.58579 11.25 4.25 11.5858 4.25 12V14.5C4.25 16.5711 5.92893 18.25 8 18.25H17.1893L15.9697 19.4697Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const container = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.75 4C7.75 3.58579 7.41421 3.25 7 3.25C6.58579 3.25 6.25 3.58579 6.25 4V6.25H4C3.58579 6.25 3.25 6.58579 3.25 7C3.25 7.41421 3.58579 7.75 4 7.75H6.25L6.25 16.25H4C3.58579 16.25 3.25 16.5858 3.25 17C3.25 17.4142 3.58579 17.75 4 17.75H6.25V20C6.25 20.4142 6.58579 20.75 7 20.75C7.41421 20.75 7.75 20.4142 7.75 20V17.75H16.25V20C16.25 20.4142 16.5858 20.75 17 20.75C17.4142 20.75 17.75 20.4142 17.75 20V17.75H20C20.4142 17.75 20.75 17.4142 20.75 17C20.75 16.5858 20.4142 16.25 20 16.25H17.75L17.75 7.75H20C20.4142 7.75 20.75 7.41421 20.75 7C20.75 6.58579 20.4142 6.25 20 6.25H17.75V4C17.75 3.58579 17.4142 3.25 17 3.25C16.5858 3.25 16.25 3.58579 16.25 4V6.25H7.75V4ZM16.25 16.25L16.25 7.75H7.75L7.75 16.25H16.25Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const countdown = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<circle cx=\"12\" cy=\"12\" r=\"7.25\" stroke=\"currentColor\" stroke-width=\"1.5\"/>\n<path d=\"M12 12L12 8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n<path d=\"M12 4L12 3\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n<path d=\"M14.5 2.75L9.5 2.75\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n<path d=\"M17 6L17.5 5.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n</svg>\n`;\n", "export const dateBoost = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.75 3C8.75 2.58579 8.41421 2.25 8 2.25C7.58579 2.25 7.25 2.58579 7.25 3V4.25H7C4.92893 4.25 3.25 5.92893 3.25 8V17C3.25 19.0711 4.92893 20.75 7 20.75H8.75V19.25H7C5.75736 19.25 4.75 18.2426 4.75 17V10.75H19.25V12H20.75V8C20.75 5.92893 19.0711 4.25 17 4.25H16.75V3C16.75 2.58579 16.4142 2.25 16 2.25C15.5858 2.25 15.25 2.58579 15.25 3V4.25H8.75V3ZM8 5.75H16H17C18.2426 5.75 19.25 6.75736 19.25 8V9.25H4.75V8C4.75 6.75736 5.75736 5.75 7 5.75H8ZM16.25 14.5C16.25 14.9142 16.5858 15.25 17 15.25H18.1893L16 17.4393L15.0303 16.4697L14.5 15.9393L13.9697 16.4697L10.9697 19.4697C10.6768 19.7626 10.6768 20.2374 10.9697 20.5303C11.2626 20.8232 11.7374 20.8232 12.0303 20.5303L14.5 18.0607L15.4697 19.0303L16 19.5607L16.5303 19.0303L19.25 16.3107V17.5C19.25 17.9142 19.5858 18.25 20 18.25C20.4142 18.25 20.75 17.9142 20.75 17.5V14.5V13.75H20H17C16.5858 13.75 16.25 14.0858 16.25 14.5Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const deleteIcon = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.0791 4.02927C9.40366 3.54243 9.95007 3.25 10.5352 3.25H13.4648C14.0499 3.25 14.5963 3.54243 14.9209 4.02927L16.4014 6.25H17.9918H18.0066H20C20.4142 6.25 20.75 6.58579 20.75 7C20.75 7.41421 20.4142 7.75 20 7.75H18.6945L17.9609 17.2876C17.8106 19.2413 16.1814 20.75 14.2219 20.75H9.77809C7.81858 20.75 6.18943 19.2414 6.03914 17.2876L5.30548 7.75H4C3.58579 7.75 3.25 7.41421 3.25 7C3.25 6.58579 3.58579 6.25 4 6.25H5.99339H6.00822H7.59861L9.0791 4.02927ZM7.98838 7.75C7.99567 7.75011 8.00296 7.75011 8.01024 7.75H15.9898C15.997 7.75011 16.0043 7.75011 16.0116 7.75H17.1901L16.4653 17.1726C16.3751 18.3448 15.3976 19.25 14.2219 19.25H9.77809C8.60239 19.25 7.62489 18.3448 7.53472 17.1726L6.80991 7.75H7.98838ZM14.5986 6.25H9.40139L10.3272 4.86133C10.3735 4.79178 10.4516 4.75 10.5352 4.75H13.4648C13.5484 4.75 13.6265 4.79178 13.6728 4.86133L14.5986 6.25ZM10 10.25C10.4142 10.25 10.75 10.5858 10.75 11V16C10.75 16.4142 10.4142 16.75 10 16.75C9.58579 16.75 9.25 16.4142 9.25 16V11C9.25 10.5858 9.58579 10.25 10 10.25ZM14.75 11C14.75 10.5858 14.4142 10.25 14 10.25C13.5858 10.25 13.25 10.5858 13.25 11V16C13.25 16.4142 13.5858 16.75 14 16.75C14.4142 16.75 14.75 16.4142 14.75 16V11Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const desktop = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.1543 3.00391C19.7394 3.08421 21 4.39489 21 6V14L20.9961 14.1543C20.9184 15.6883 19.6883 16.9184 18.1543 16.9961L18 17H14.0225L14.6475 19.5H17.25C17.6642 19.5 18 19.8358 18 20.25C18 20.6642 17.6642 21 17.25 21H6.75C6.33579 21 6 20.6642 6 20.25C6 19.8358 6.33579 19.5 6.75 19.5H9.35254L9.97754 17H6C4.34315 17 3 15.6569 3 14V6C3 4.34315 4.34315 3 6 3H18L18.1543 3.00391ZM11.5225 17L10.8975 19.5H13.1025L12.4775 17H11.5225ZM6 4.5C5.17157 4.5 4.5 5.17157 4.5 6V14C4.5 14.8284 5.17157 15.5 6 15.5H18C18.8284 15.5 19.5 14.8284 19.5 14V6C19.5 5.17157 18.8284 4.5 18 4.5H6Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const dismissible = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M17 3.25C19.0711 3.25 20.75 4.92893 20.75 7V17C20.75 19.0711 19.0711 20.75 17 20.75H7C4.92893 20.75 3.25 19.0711 3.25 17V7C3.25 4.92893 4.92893 3.25 7 3.25H17ZM7 4.75C5.75736 4.75 4.75 5.75736 4.75 7V17C4.75 18.2426 5.75736 19.25 7 19.25H17C18.2426 19.25 19.25 18.2426 19.25 17V7C19.25 5.75736 18.2426 4.75 17 4.75H7ZM14.0244 9.08496C14.3173 8.79238 14.7922 8.79217 15.085 9.08496C15.3774 9.37778 15.3774 9.85272 15.085 10.1455L13.0596 12.1699L15.085 14.1943C15.3774 14.4871 15.3774 14.9621 15.085 15.2549C14.7922 15.5476 14.3173 15.5474 14.0244 15.2549L11.999 13.2305L9.97559 15.2549C9.68281 15.5476 9.20794 15.5474 8.91504 15.2549C8.62217 14.962 8.6222 14.4872 8.91504 14.1943L10.9385 12.1699L8.91504 10.1455C8.62221 9.85262 8.62218 9.37784 8.91504 9.08496C9.20794 8.79243 9.6828 8.79224 9.97559 9.08496L11.999 11.1094L14.0244 9.08496Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const divider = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 3.5H6C5.72386 3.5 5.5 3.72386 5.5 4V6C5.5 6.27614 5.72386 6.5 6 6.5H18C18.2761 6.5 18.5 6.27614 18.5 6V4C18.5 3.72386 18.2761 3.5 18 3.5ZM6 2C4.89543 2 4 2.89543 4 4V6C4 7.10457 4.89543 8 6 8H18C19.1046 8 20 7.10457 20 6V4C20 2.89543 19.1046 2 18 2H6ZM18 17.5H6C5.72386 17.5 5.5 17.7239 5.5 18V20C5.5 20.2761 5.72386 20.5 6 20.5H18C18.2761 20.5 18.5 20.2761 18.5 20V18C18.5 17.7239 18.2761 17.5 18 17.5ZM6 16C4.89543 16 4 16.8954 4 18V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V18C20 16.8954 19.1046 16 18 16H6ZM5.75 11.25C5.33579 11.25 5 11.5858 5 12C5 12.4142 5.33579 12.75 5.75 12.75H18.25C18.6642 12.75 19 12.4142 19 12C19 11.5858 18.6642 11.25 18.25 11.25H5.75Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const doubleChevron = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 7L7 12L12 17\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M17.5 9.5L15 12L17.5 14.5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n</svg>`;\n", "export const download = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M20.5 12.25C20.9142 12.25 21.25 12.5858 21.25 13V16.25C21.25 18.3211 19.5711 20 17.5 20H6.5C4.42893 20 2.75 18.3211 2.75 16.25V13C2.75 12.5858 3.08579 12.25 3.5 12.25C3.91421 12.25 4.25 12.5858 4.25 13V16.25C4.25 17.4926 5.25736 18.5 6.5 18.5H17.5C18.7426 18.5 19.75 17.4926 19.75 16.25V13C19.75 12.5858 20.0858 12.25 20.5 12.25ZM12.043 3.29297C12.4572 3.293 12.793 3.62878 12.793 4.04297V12.7324L16.5127 9.0127C16.8056 8.7198 17.2803 8.7198 17.5732 9.0127C17.8661 9.30559 17.8661 9.78037 17.5732 10.0732L12.043 15.6035L6.5127 10.0732C6.2198 9.78035 6.2198 9.30559 6.5127 9.0127C6.80559 8.7198 7.28035 8.7198 7.57324 9.0127L11.293 12.7324V4.04297C11.293 3.62876 11.6288 3.29297 12.043 3.29297Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const dropdown = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.1543 3.00391C19.7394 3.08421 21 4.39489 21 6V18L20.9961 18.1543C20.9184 19.6883 19.6883 20.9184 18.1543 20.9961L18 21H6L5.8457 20.9961C4.31166 20.9184 3.08163 19.6883 3.00391 18.1543L3 18V6C3 4.39489 4.26056 3.08421 5.8457 3.00391L6 3H18L18.1543 3.00391ZM6 4.5C5.17157 4.5 4.5 5.17157 4.5 6V18C4.5 18.8284 5.17157 19.5 6 19.5H18C18.8284 19.5 19.5 18.8284 19.5 18V6C19.5 5.17157 18.8284 4.5 18 4.5H6ZM15.5264 9.41797C15.8209 9.17766 16.2557 9.19512 16.5303 9.46973C16.8049 9.74433 16.8223 10.1791 16.582 10.4736L16.5303 10.5303L12 15.0605L7.46973 10.5303L7.41797 10.4736C7.17766 10.1791 7.19512 9.74433 7.46973 9.46973C7.74433 9.19512 8.17905 9.17766 8.47363 9.41797L8.53027 9.46973L12 12.9395L15.4697 9.46973L15.5264 9.41797Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const duplicate = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13 3.25C10.9289 3.25 9.25 4.92893 9.25 7V11C9.25 13.0711 10.9289 14.75 13 14.75H17C19.0711 14.75 20.75 13.0711 20.75 11V7C20.75 4.92893 19.0711 3.25 17 3.25H13ZM10.75 7C10.75 5.75736 11.7574 4.75 13 4.75H17C18.2426 4.75 19.25 5.75736 19.25 7V11C19.25 12.2426 18.2426 13.25 17 13.25H13C11.7574 13.25 10.75 12.2426 10.75 11V7ZM3.25 13C3.25 10.9289 4.92893 9.25 7 9.25V10.75C5.75736 10.75 4.75 11.7574 4.75 13V17C4.75 18.2426 5.75736 19.25 7 19.25H11C12.2426 19.25 13.25 18.2426 13.25 17H14.75C14.75 19.0711 13.0711 20.75 11 20.75H7C4.92893 20.75 3.25 19.0711 3.25 17V13Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const edit = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.45321 14.5468C4.15846 14.8416 3.96316 15.221 3.89464 15.6322L3.11508 20.3095C3.05868 20.6479 3.35207 20.9413 3.69048 20.8849L8.36779 20.1054C8.77897 20.0368 9.15845 19.8416 9.45321 19.5468L20.8787 8.12133C22.0503 6.94975 22.0503 5.05026 20.8787 3.87869L20.1213 3.12133C18.9498 1.94975 17.0503 1.94975 15.8787 3.12132L4.45321 14.5468ZM18.4697 8.40902L19.818 7.06067C20.4038 6.47488 20.4038 5.52513 19.818 4.93935L20.8787 3.87869L19.818 4.93935L19.0607 4.18199C18.4749 3.5962 17.5251 3.5962 16.9393 4.18198L15.591 5.53034L18.4697 8.40902ZM17.409 9.46968L14.5303 6.591L7.87326 13.2481L8.47435 15.0513C8.549 15.2753 8.72473 15.451 8.94869 15.5257L10.7519 16.1267L17.409 9.46968ZM8.47435 16.9487L9.56609 17.3126L8.39255 18.4861C8.31886 18.5598 8.22399 18.6087 8.1212 18.6258L4.82483 19.1752L5.37423 15.8788C5.39136 15.776 5.44018 15.6811 5.51387 15.6075L6.68741 14.4339L7.05132 15.5257C7.27527 16.1975 7.80248 16.7247 8.47435 16.9487Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const email = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M19.1543 4.00391C20.7394 4.08421 22 5.39489 22 7V17C22 18.6051 20.7394 19.9158 19.1543 19.9961L19 20H5L4.8457 19.9961C3.26055 19.9158 2 18.6051 2 17V7C2 5.39489 3.26055 4.08421 4.8457 4.00391L5 4H19L19.1543 4.00391ZM14.4912 12.7891C13.1147 14.0125 11.0622 14.0506 9.64355 12.9033L9.50879 12.7891L3.5 7.44727V17C3.5 17.8284 4.17157 18.5 5 18.5H19C19.8284 18.5 20.5 17.8284 20.5 17V7.44727L14.4912 12.7891ZM5 5.5C4.61488 5.5 4.26463 5.64621 3.99902 5.88477L10.5049 11.668L10.6699 11.8008C11.5166 12.4225 12.6959 12.3784 13.4951 11.668L20 5.88477C19.7345 5.6465 19.3849 5.5 19 5.5H5Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const embed = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M16.75 18.25C17.9926 18.25 19 19.2574 19 20.5V21.25C19 21.6642 18.6642 22 18.25 22C17.8358 22 17.5 21.6642 17.5 21.25V20.5C17.5 20.0858 17.1642 19.75 16.75 19.75H7.25C6.83579 19.75 6.5 20.0858 6.5 20.5V21.25C6.5 21.6642 6.16421 22 5.75 22C5.33579 22 5 21.6642 5 21.25V20.5C5 19.2574 6.00736 18.25 7.25 18.25H16.75ZM18 8C19.1046 8 20 8.89543 20 10V14C20 15.1046 19.1046 16 18 16H6C4.89543 16 4 15.1046 4 14V10C4 8.89543 4.89543 8 6 8H18ZM6 9.5C5.72386 9.5 5.5 9.72386 5.5 10V14C5.5 14.2761 5.72386 14.5 6 14.5H18C18.2761 14.5 18.5 14.2761 18.5 14V10C18.5 9.72386 18.2761 9.5 18 9.5H6ZM18.25 2C18.6642 2 19 2.33579 19 2.75V3.5C19 4.74264 17.9926 5.75 16.75 5.75H7.25C6.00736 5.75 5 4.74264 5 3.5V2.75C5 2.33579 5.33579 2 5.75 2C6.16421 2 6.5 2.33579 6.5 2.75V3.5C6.5 3.91421 6.83579 4.25 7.25 4.25H16.75C17.1642 4.25 17.5 3.91421 17.5 3.5V2.75C17.5 2.33579 17.8358 2 18.25 2Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const experiment = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M16 2.25C16.4142 2.25005 16.75 2.58582 16.75 3C16.75 3.41418 16.4142 3.74995 16 3.75H15.3496V8.45312C15.3496 8.6767 15.4097 8.89635 15.5234 9.08887L20.4082 17.3555C21.2943 18.8553 20.2128 20.75 18.4707 20.75H5.67676C3.95209 20.7496 2.8689 18.8884 3.72071 17.3887L8.43652 9.08887C8.54339 8.90072 8.59957 8.68805 8.59961 8.47168V3.75H8C7.58578 3.75 7.25 3.41421 7.25 3C7.25 2.58579 7.58578 2.25 8 2.25H16ZM6.66113 15.25L5.02539 18.1299C4.74168 18.6296 5.10216 19.2496 5.67676 19.25H18.4707C19.0514 19.25 19.4116 18.6181 19.1162 18.1182L17.4219 15.25H6.66113ZM10.0996 8.47168C10.0996 8.9479 9.97549 9.41602 9.74023 9.83008L7.51367 13.75H16.5351L14.2324 9.85254C13.9821 9.42886 13.8496 8.94523 13.8496 8.45312V3.75H10.0996V8.47168Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const external = `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 2C6.41421 2 6.75 2.33579 6.75 2.75C6.75 3.16421 6.41421 3.5 6 3.5H4.75C4.05964 3.5 3.5 4.05964 3.5 4.75V11.25C3.5 11.9404 4.05964 12.5 4.75 12.5H11.25C11.9404 12.5 12.5 11.9404 12.5 11.25V10C12.5 9.58579 12.8358 9.25 13.25 9.25C13.6642 9.25 14 9.58579 14 10V11.25C14 12.7688 12.7688 14 11.25 14H4.75C3.23122 14 2 12.7688 2 11.25V4.75C2 3.23122 3.23122 2 4.75 2H6ZM14 6C14 6.41421 13.6642 6.75 13.25 6.75C12.8358 6.75 12.5 6.41421 12.5 6V4.56055L8.03027 9.03027C7.73738 9.32317 7.26262 9.32317 6.96973 9.03027C6.67683 8.73738 6.67683 8.26262 6.96973 7.96973L11.4395 3.5H10C9.58579 3.5 9.25 3.16421 9.25 2.75C9.25 2.33579 9.58579 2 10 2H14V6Z\" fill=\"currentColor\"/>\n</svg>`;\n", "export const filter = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M15.25 15.5C16.5085 15.5 17.5668 16.3461 17.8936 17.5H19.25C19.6642 17.5 20 17.8358 20 18.25C20 18.6642 19.6642 19 19.25 19H17.8936C17.5668 20.1539 16.5085 21 15.25 21C13.9915 21 12.9332 20.1539 12.6064 19H4.75C4.33579 19 4 18.6642 4 18.25C4 17.8358 4.33579 17.5 4.75 17.5H12.6064C12.9332 16.3461 13.9915 15.5 15.25 15.5ZM15.25 17C14.5596 17 14 17.5596 14 18.25C14 18.9404 14.5596 19.5 15.25 19.5C15.9404 19.5 16.5 18.9404 16.5 18.25C16.5 17.5596 15.9404 17 15.25 17ZM8.75 9.25C10.0085 9.25 11.0668 10.0961 11.3936 11.25H19.25C19.6642 11.25 20 11.5858 20 12C20 12.4142 19.6642 12.75 19.25 12.75H11.3936C11.0668 13.9039 10.0085 14.75 8.75 14.75C7.4915 14.75 6.43316 13.9039 6.10645 12.75H4.75C4.33579 12.75 4 12.4142 4 12C4 11.5858 4.33579 11.25 4.75 11.25H6.10645C6.43316 10.0961 7.4915 9.25 8.75 9.25ZM8.75 10.75C8.05964 10.75 7.5 11.3096 7.5 12C7.5 12.6904 8.05964 13.25 8.75 13.25C9.44036 13.25 10 12.6904 10 12C10 11.3096 9.44036 10.75 8.75 10.75ZM15.25 3C16.5085 3 17.5668 3.84614 17.8936 5H19.25C19.6642 5 20 5.33579 20 5.75C20 6.16421 19.6642 6.5 19.25 6.5H17.8936C17.5668 7.65386 16.5085 8.5 15.25 8.5C13.9915 8.5 12.9332 7.65386 12.6064 6.5H4.75C4.33579 6.5 4 6.16421 4 5.75C4 5.33579 4.33579 5 4.75 5H12.6064C12.9332 3.84614 13.9915 3 15.25 3ZM15.25 4.5C14.5596 4.5 14 5.05964 14 5.75C14 6.44036 14.5596 7 15.25 7C15.9404 7 16.5 6.44036 16.5 5.75C16.5 5.05964 15.9404 4.5 15.25 4.5Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const form = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M14 3.25C14.4142 3.25 14.75 3.58579 14.75 4C14.75 4.41421 14.4142 4.75 14 4.75H12.75V19.25H14C14.4142 19.25 14.75 19.5858 14.75 20C14.75 20.4142 14.4142 20.75 14 20.75H10C9.58579 20.75 9.25 20.4142 9.25 20C9.25 19.5858 9.58579 19.25 10 19.25H11.25V4.75H10C9.58579 4.75 9.25 4.41421 9.25 4C9.25 3.58579 9.58579 3.25 10 3.25H14ZM9.75 7.5H5C4.17157 7.5 3.5 8.17157 3.5 9V15C3.5 15.8284 4.17157 16.5 5 16.5H9.75V18H5L4.8457 17.9961C3.26055 17.9158 2 16.6051 2 15V9C2 7.39489 3.26055 6.08421 4.8457 6.00391L5 6H9.75V7.5ZM19.1543 6.00391C20.7394 6.08421 22 7.39489 22 9V15C22 16.6051 20.7394 17.9158 19.1543 17.9961L19 18H14.25V16.5H19C19.8284 16.5 20.5 15.8284 20.5 15V9C20.5 8.17157 19.8284 7.5 19 7.5H14.25V6H19L19.1543 6.00391Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const gallery = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 4.5H6.00002C5.17159 4.5 4.50002 5.17157 4.50002 6V15.5002L8.21092 11.7901C8.63248 11.3687 9.32682 11.4073 9.69904 11.8729L10.5088 12.8858L14.3344 8.74803C15.064 7.95881 16.3261 8.00775 16.9924 8.85109L19.5 12.0247V6C19.5 5.17157 18.8284 4.5 18 4.5ZM21 13.9231V6C21 4.34315 19.6569 3 18 3H6.00002C4.34316 3 3.00002 4.34315 3.00002 6V16.9999L2.99994 17V18C2.99994 19.4498 4.02832 20.6593 5.39541 20.9391C5.5785 20.9765 5.76766 20.9973 5.96124 20.9998L6.00002 21H18C19.6569 21 21 19.6569 21 18V14.1049L21.0885 14.035L21 13.9231ZM19.5 14.4442L15.8155 9.78104C15.7203 9.66057 15.54 9.65358 15.4358 9.76632L11.4561 14.0708L15.7962 19.5L18 19.5C18.8284 19.5 19.5 18.8284 19.5 18V14.4442ZM4.50002 18C4.50002 18.6795 4.95179 19.2534 5.57134 19.4379C5.65996 19.4642 5.752 19.4826 5.84665 19.4923C5.89705 19.4974 5.94819 19.5 5.99994 19.5H13.8758L8.87631 13.246L4.50002 17.6213V18Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const gear = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M13.4678 2C13.9142 2.00002 14.307 2.2963 14.4297 2.72559L15.0049 4.74219L16.8398 3.72363C17.1813 3.53396 17.5973 3.56262 17.9072 3.78418L18.0332 3.89062L20.1084 5.9668C20.4241 6.2825 20.4932 6.76987 20.2764 7.16016L19.2568 8.99316L21.2744 9.57031C21.6502 9.67769 21.9239 9.9921 21.9863 10.3682L22 10.5322V13.4678C22 13.9142 21.7037 14.307 21.2744 14.4297L19.2568 15.0049L20.2764 16.8398C20.4661 17.1813 20.4374 17.5972 20.2158 17.9072L20.1094 18.0332L18.0332 20.1084C17.7175 20.4241 17.2301 20.4932 16.8398 20.2764L15.0049 19.2568L14.4297 21.2744C14.3223 21.6502 14.0079 21.9239 13.6318 21.9863L13.4678 22H10.5322C10.0858 22 9.69297 21.7037 9.57031 21.2744L8.99316 19.2568L7.16016 20.2764C6.81867 20.466 6.40275 20.4374 6.09277 20.2158L5.9668 20.1094L3.8916 18.0332C3.5759 17.7175 3.50683 17.2301 3.72363 16.8398L4.74219 15.0059L2.72559 14.4297C2.34982 14.3223 2.07606 14.0079 2.01367 13.6318L2 13.4678V10.5322C2.00005 10.0858 2.29632 9.69296 2.72559 9.57031L4.74219 8.99316L3.72363 7.16016C3.53394 6.81866 3.5626 6.40276 3.78418 6.09277L3.89062 5.9668L5.9668 3.8916C6.28251 3.57589 6.76986 3.5068 7.16016 3.72363L8.99316 4.74219L9.57031 2.72559C9.67768 2.34981 9.99209 2.07606 10.3682 2.01367L10.5322 2H13.4678ZM10.4014 5.27148C9.70554 5.47089 9.05368 5.77388 8.46484 6.16504L6.76074 5.21875L5.21777 6.76074L6.22363 8.57031L6.23242 8.56738C5.91398 9.13213 5.67275 9.74545 5.52051 10.3936L5.49023 10.3398L3.5 10.9092V13.0908L5.49121 13.6592L5.52051 13.6055C5.67256 14.2532 5.91338 14.8662 6.23145 15.4307L6.22363 15.4287L5.21875 17.2393L5.21777 17.2383V17.2393H5.21875L6.76074 18.7822L8.46484 17.834C9.05398 18.2254 9.7061 18.5281 10.4023 18.7275L10.9092 20.5H13.0908L13.5488 18.8916C14.3898 18.7443 15.1787 18.4482 15.8877 18.0293L17.2393 18.7812L18.7822 17.2393L18.085 15.9863C18.6037 15.2393 18.9814 14.3876 19.1777 13.4678L20.5 13.0908V10.9092L19.1777 10.5303C18.9812 9.61065 18.6038 8.75856 18.085 8.01172L18.7812 6.76074L17.2393 5.21777L15.8857 5.96875C15.1773 5.55053 14.389 5.25458 13.5488 5.10742L13.0908 3.5H10.9092L10.4014 5.27148ZM12 8C14.2091 8 16 9.79086 16 12C16 14.2091 14.2091 16 12 16C9.79086 16 8 14.2091 8 12C8 9.79086 9.79086 8 12 8ZM12 9.5C10.6193 9.5 9.5 10.6193 9.5 12C9.5 13.3807 10.6193 14.5 12 14.5C13.3807 14.5 14.5 13.3807 14.5 12C14.5 10.6193 13.3807 9.5 12 9.5Z\" />\n<path d=\"M13.6328 2.01367C14.0085 2.07631 14.3224 2.35007 14.4297 2.72559L15.0049 4.74219L16.8398 3.72363C17.1813 3.53396 17.5973 3.56262 17.9072 3.78418L18.0332 3.89062L20.1084 5.9668L20.2158 6.09277C20.4372 6.40274 20.466 6.81875 20.2764 7.16016L19.2568 8.99316L21.2744 9.57031C21.6502 9.67769 21.9239 9.9921 21.9863 10.3682L22 10.5322V13.4678L21.9863 13.6328C21.9237 14.0085 21.6499 14.3224 21.2744 14.4297L19.2568 15.0049L20.2764 16.8398C20.4661 17.1813 20.4374 17.5972 20.2158 17.9072L20.1094 18.0332L18.0332 20.1084L17.9072 20.2158C17.5973 20.4372 17.1813 20.466 16.8398 20.2764L15.0049 19.2568L14.4297 21.2744C14.3223 21.6502 14.0079 21.9239 13.6318 21.9863L13.4678 22H10.5322L10.3672 21.9863C9.99146 21.9237 9.6776 21.6499 9.57031 21.2744L8.99316 19.2568L7.16016 20.2764C6.81867 20.466 6.40275 20.4374 6.09277 20.2158L5.9668 20.1094L3.8916 18.0332L3.78418 17.9072C3.56278 17.5973 3.53398 17.1812 3.72363 16.8398L4.74219 15.0059L2.72559 14.4297C2.34982 14.3223 2.07606 14.0079 2.01367 13.6318L2 13.4678V10.5322L2.01367 10.3672C2.07633 9.99149 2.35009 9.6776 2.72559 9.57031L4.74219 8.99316L3.72363 7.16016C3.53394 6.81866 3.5626 6.40276 3.78418 6.09277L3.89062 5.9668L5.9668 3.8916L6.09277 3.78418C6.40275 3.56277 6.81875 3.53396 7.16016 3.72363L8.99316 4.74219L9.57031 2.72559C9.67768 2.34981 9.99209 2.07606 10.3682 2.01367L10.5322 2H13.4678L13.6328 2.01367ZM10.4014 5.27148C9.70554 5.47089 9.05368 5.77388 8.46484 6.16504L6.76074 5.21875L5.21777 6.76074L6.22363 8.57031L6.23242 8.56738C5.91398 9.13213 5.67275 9.74545 5.52051 10.3936L5.49023 10.3398L3.5 10.9092V13.0908L5.49121 13.6592L5.52051 13.6055C5.67256 14.2532 5.91338 14.8662 6.23145 15.4307L6.22363 15.4287L5.21875 17.2393L5.21777 17.2383V17.2393H5.21875L6.76074 18.7822L8.46484 17.834C9.05398 18.2254 9.7061 18.5281 10.4023 18.7275L10.9092 20.5H13.0908L13.5488 18.8916C14.3898 18.7443 15.1787 18.4482 15.8877 18.0293L17.2393 18.7812L18.7822 17.2393L18.085 15.9863C18.6037 15.2393 18.9814 14.3876 19.1777 13.4678L20.5 13.0908V10.9092L19.1777 10.5303C18.9812 9.61065 18.6038 8.75856 18.085 8.01172L18.7812 6.76074L17.2393 5.21777L15.8857 5.96875C15.1773 5.55053 14.389 5.25458 13.5488 5.10742L13.0908 3.5H10.9092L10.4014 5.27148ZM12 8C14.2091 8 16 9.79086 16 12C16 14.2091 14.2091 16 12 16C9.79086 16 8 14.2091 8 12C8 9.79086 9.79086 8 12 8ZM12 9.5C10.6193 9.5 9.5 10.6193 9.5 12C9.5 13.3807 10.6193 14.5 12 14.5C13.3807 14.5 14.5 13.3807 14.5 12C14.5 10.6193 13.3807 9.5 12 9.5Z\" />\n</svg>`;\n", "export const globe = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM12 16.75C11.0568 16.75 10.1471 16.893 9.29004 17.1553C9.4447 17.6074 9.61762 18.0243 9.80566 18.4004C10.6308 20.0506 11.4935 20.5 12 20.5C12.5065 20.5 13.3692 20.0506 14.1943 18.4004C14.3823 18.0244 14.5544 17.6073 14.709 17.1553C13.8522 16.8931 12.943 16.75 12 16.75ZM7.89453 17.708C7.42298 17.942 6.97453 18.2156 6.55273 18.5234C7.2655 19.1193 8.07731 19.5992 8.95996 19.9375C8.5503 19.3088 8.19004 18.5567 7.89453 17.708ZM16.1035 17.708C15.808 18.5566 15.4487 19.3088 15.0391 19.9375C15.9218 19.5993 16.7334 19.1192 17.4463 18.5234C17.0242 18.2154 16.5754 17.942 16.1035 17.708ZM3.53516 12.75C3.69105 14.5326 4.39585 16.1568 5.48145 17.4531C6.09662 16.9833 6.76408 16.5789 7.47363 16.249C7.22084 15.1735 7.06173 13.9935 7.01562 12.75H3.53516ZM16.9844 12.75C16.9383 13.9936 16.7782 15.1735 16.5254 16.249C17.2351 16.5789 17.9023 16.9833 18.5176 17.4531C19.6034 16.1567 20.3089 14.5329 20.4648 12.75H16.9844ZM8.5166 12.75C8.55899 13.8091 8.68932 14.8049 8.88867 15.709C9.87374 15.4115 10.9183 15.25 12 15.25C13.0815 15.25 14.1254 15.4117 15.1104 15.709C15.3097 14.8048 15.441 13.8092 15.4834 12.75H8.5166ZM5.48145 6.54492C4.39531 7.84143 3.69109 9.46683 3.53516 11.25H7.01562C7.06174 10.0061 7.22072 8.82574 7.47363 7.75C6.76389 7.41996 6.09676 7.01497 5.48145 6.54492ZM15.1104 8.28906C14.1254 8.5865 13.0817 8.75 12 8.75C10.918 8.74999 9.87397 8.58667 8.88867 8.28906C8.68908 9.19368 8.55902 10.1902 8.5166 11.25H15.4834C15.441 10.1901 15.31 9.19373 15.1104 8.28906ZM18.5176 6.54492C17.9022 7.01496 17.2352 7.41999 16.5254 7.75C16.7783 8.82579 16.9383 10.0061 16.9844 11.25H20.4648C20.3089 9.46661 19.6039 7.84151 18.5176 6.54492ZM12 3.5C11.4935 3.5 10.6308 3.94942 9.80566 5.59961C9.61774 5.97547 9.44462 6.39196 9.29004 6.84375C10.1472 7.10595 11.0566 7.24999 12 7.25C12.9431 7.25 13.8521 7.10575 14.709 6.84375C14.5544 6.39208 14.3822 5.97538 14.1943 5.59961C13.3692 3.94942 12.5065 3.5 12 3.5ZM8.95996 4.06152C8.07715 4.3998 7.26463 4.87966 6.55176 5.47559C6.97401 5.78388 7.42337 6.05687 7.89551 6.29102C8.19104 5.44254 8.5503 4.69009 8.95996 4.06152ZM15.0391 4.06152C15.4487 4.68989 15.808 5.44185 16.1035 6.29004C16.5754 6.05606 17.0252 5.78461 17.4473 5.47656C16.7342 4.88048 15.9222 4.39981 15.0391 4.06152Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const graph = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.1543 3.00391C19.7394 3.08421 21 4.39489 21 6V18L20.9961 18.1543C20.9184 19.6883 19.6883 20.9184 18.1543 20.9961L18 21H6C4.39489 21 3.08421 19.7394 3.00391 18.1543L3 18V6C3 4.34315 4.34315 3 6 3H18L18.1543 3.00391ZM6 4.5C5.17157 4.5 4.5 5.17157 4.5 6V18C4.5 18.8284 5.17157 19.5 6 19.5H18C18.8284 19.5 19.5 18.8284 19.5 18V6C19.5 5.17157 18.8284 4.5 18 4.5H6ZM8 9C8.41421 9 8.75 9.33579 8.75 9.75V16.25C8.75 16.6642 8.41421 17 8 17C7.58579 17 7.25 16.6642 7.25 16.25V9.75C7.25 9.33579 7.58579 9 8 9ZM12 12C12.4142 12 12.75 12.3358 12.75 12.75V16.25C12.75 16.6642 12.4142 17 12 17C11.5858 17 11.25 16.6642 11.25 16.25V12.75C11.25 12.3358 11.5858 12 12 12ZM16 9C16.4142 9 16.75 9.33579 16.75 9.75V16.25C16.75 16.6642 16.4142 17 16 17C15.5858 17 15.25 16.6642 15.25 16.25V9.75C15.25 9.33579 15.5858 9 16 9Z\" />\n</svg>`;\n", "export const handle = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9 6C10.1046 6 11 5.10457 11 4C11 2.89543 10.1046 2 9 2C7.89543 2 7 2.89543 7 4C7 5.10457 7.89543 6 9 6ZM15 6C16.1046 6 17 5.10457 17 4C17 2.89543 16.1046 2 15 2C13.8954 2 13 2.89543 13 4C13 5.10457 13.8954 6 15 6ZM11 12C11 13.1046 10.1046 14 9 14C7.89543 14 7 13.1046 7 12C7 10.8954 7.89543 10 9 10C10.1046 10 11 10.8954 11 12ZM15 14C16.1046 14 17 13.1046 17 12C17 10.8954 16.1046 10 15 10C13.8954 10 13 10.8954 13 12C13 13.1046 13.8954 14 15 14ZM11 20C11 21.1046 10.1046 22 9 22C7.89543 22 7 21.1046 7 20C7 18.8954 7.89543 18 9 18C10.1046 18 11 18.8954 11 20ZM15 22C16.1046 22 17 21.1046 17 20C17 18.8954 16.1046 18 15 18C13.8954 18 13 18.8954 13 20C13 21.1046 13.8954 22 15 22Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const help = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 17.7502C12.5523 17.7502 13 18.1979 13 18.7502C12.9999 19.3024 12.5522 19.7502 12 19.7502C11.4478 19.7502 11.0001 19.3024 11 18.7502C11 18.1979 11.4477 17.7502 12 17.7502ZM10.1826 3.86156C11.0505 3.50218 12.0055 3.4078 12.9268 3.59105C13.8482 3.77434 14.6941 4.22755 15.3584 4.89183C16.0227 5.55612 16.4759 6.40212 16.6592 7.32347C16.8424 8.24467 16.7481 9.19985 16.3887 10.0676C16.0292 10.9355 15.4198 11.6776 14.6387 12.1995C14.5212 12.278 14.4007 12.3518 14.2774 12.4192C13.8445 12.6557 13.4464 12.9493 13.1651 13.2776C12.887 13.6022 12.75 13.9259 12.75 14.2502V16.0002C12.7499 16.4143 12.4142 16.7502 12 16.7502C11.5859 16.7502 11.2501 16.4143 11.25 16.0002V14.2502C11.25 13.4703 11.5873 12.8135 12.0254 12.302C12.4605 11.7942 13.0223 11.3958 13.5586 11.1028C13.6429 11.0567 13.7253 11.0061 13.8057 10.9524C14.34 10.5954 14.757 10.088 15.003 9.49437C15.2489 8.90066 15.3128 8.24674 15.1875 7.61644C15.0621 6.98606 14.7523 6.40688 14.2979 5.95238C13.8434 5.49787 13.2642 5.18814 12.6338 5.06273C12.0034 4.93739 11.3497 5.00135 10.7559 5.2473C10.1622 5.49329 9.65491 5.91026 9.29786 6.44457C8.94081 6.97899 8.75001 7.60751 8.75001 8.25023C8.74988 8.66434 8.41414 9.00023 8 9.00023C7.58587 9.00023 7.25013 8.66434 7.25 8.25023C7.25 7.31087 7.52895 6.39264 8.05078 5.61156C8.57271 4.83045 9.31471 4.22108 10.1826 3.86156Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const home = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M10.7725 3.95499C11.4946 3.39358 12.5054 3.39358 13.2275 3.95499L20.2275 9.39936C20.7146 9.77822 20.9999 10.3614 21 10.9785V18C21 19.6051 19.7394 20.9158 18.1543 20.9961L18 21H6C4.39489 21 3.08421 19.7394 3.00391 18.1543L3 18V10.9785C3.00007 10.4386 3.21792 9.92445 3.59863 9.55073L3.77246 9.39936L10.7725 3.95499ZM12.3066 5.13859C12.1263 4.99869 11.8737 4.99869 11.6934 5.13859L4.69336 10.583C4.57163 10.6776 4.50008 10.8243 4.5 10.9785V18C4.5 18.8284 5.17157 19.5 6 19.5H8V16C8.00014 14.3432 9.34323 13 11 13H13C14.6568 13 15.9999 14.3432 16 16V19.5H18C18.8284 19.5 19.5 18.8284 19.5 18V10.9785C19.4999 10.8243 19.4284 10.6776 19.3066 10.583L12.3066 5.13859ZM11 14.5C10.1717 14.5 9.50014 15.1717 9.5 16V19.5H14.5V16C14.4999 15.1717 13.8283 14.5 13 14.5H11Z\" />\n</svg>`;\n", "export const horizontal = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M7.21973 12.4697C7.51262 12.1768 7.98738 12.1768 8.28027 12.4697C8.5731 12.7626 8.57314 13.2374 8.28027 13.5303L7.06055 14.75H18.75C19.1642 14.75 19.5 15.0858 19.5 15.5C19.5 15.9142 19.1642 16.25 18.75 16.25H7.06055L8.28027 17.4697C8.5731 17.7626 8.57314 18.2374 8.28027 18.5303C7.9874 18.8231 7.51262 18.8231 7.21973 18.5303L4.18945 15.5L7.21973 12.4697ZM15.7197 5.46973C16.0126 5.17684 16.4874 5.17684 16.7803 5.46973L19.8105 8.50001L16.7803 11.5303C16.4874 11.8231 16.0126 11.8231 15.7197 11.5303C15.4268 11.2374 15.4268 10.7626 15.7197 10.4697L16.9395 9.25001H5.25C4.83581 9.25001 4.50004 8.91419 4.5 8.50001C4.5 8.08579 4.83579 7.75001 5.25 7.75001H16.9395L15.7197 6.53028C15.4268 6.23739 15.4268 5.76262 15.7197 5.46973Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const hotel = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M20.25 2C20.6642 2 21 2.33579 21 2.75C21 3.16421 20.6642 3.5 20.25 3.5H20V20.5H20.25C20.6642 20.5 21 20.8358 21 21.25C21 21.6642 20.6642 22 20.25 22H3.75C3.33579 22 3 21.6642 3 21.25C3 20.8358 3.33579 20.5 3.75 20.5H4V3.5H3.75C3.33579 3.5 3 3.16421 3 2.75C3 2.33579 3.33579 2 3.75 2H20.25ZM5.5 20.5H9V17.5H8C8 15.2909 9.79086 13.5 12 13.5C14.2091 13.5 16 15.2909 16 17.5H15V20.5H18.5V3.5H5.5V20.5ZM10.5 20.5H13.5V17.5H10.5V20.5ZM12 15C11.183 15 10.4601 15.3939 10.0039 16H13.9961C13.5399 15.3939 12.817 15 12 15ZM8.5 10C8.77614 10 9 10.2239 9 10.5V11.5C9 11.7761 8.77614 12 8.5 12H7.5C7.22386 12 7 11.7761 7 11.5V10.5C7 10.2239 7.22386 10 7.5 10H8.5ZM12.5 10C12.7761 10 13 10.2239 13 10.5V11.5C13 11.7761 12.7761 12 12.5 12H11.5C11.2239 12 11 11.7761 11 11.5V10.5C11 10.2239 11.2239 10 11.5 10H12.5ZM16.5 10C16.7761 10 17 10.2239 17 10.5V11.5C17 11.7761 16.7761 12 16.5 12H15.5C15.2239 12 15 11.7761 15 11.5V10.5C15 10.2239 15.2239 10 15.5 10H16.5ZM8.5 6C8.77614 6 9 6.22386 9 6.5V7.5C9 7.77614 8.77614 8 8.5 8H7.5C7.22386 8 7 7.77614 7 7.5V6.5C7 6.22386 7.22386 6 7.5 6H8.5ZM12.5 6C12.7761 6 13 6.22386 13 6.5V7.5C13 7.77614 12.7761 8 12.5 8H11.5C11.2239 8 11 7.77614 11 7.5V6.5C11 6.22386 11.2239 6 11.5 6H12.5ZM16.5 6C16.7761 6 17 6.22386 17 6.5V7.5C17 7.77614 16.7761 8 16.5 8H15.5C15.2239 8 15 7.77614 15 7.5V6.5C15 6.22386 15.2239 6 15.5 6H16.5Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const info = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20.5 12C20.5 16.6944 16.6944 20.5 12 20.5C7.30558 20.5 3.5 16.6944 3.5 12C3.5 7.30558 7.30558 3.5 12 3.5C16.6944 3.5 20.5 7.30558 20.5 12ZM22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM11.25 15.75C11.25 16.1642 11.5858 16.5 12 16.5C12.4142 16.5 12.75 16.1642 12.75 15.75V10.25C12.75 9.83579 12.4142 9.5 12 9.5C11.5858 9.5 11.25 9.83579 11.25 10.25V15.75ZM12.75 7.75C12.75 7.33579 12.4142 7 12 7C11.5858 7 11.25 7.33579 11.25 7.75C11.25 8.16421 11.5858 8.5 12 8.5C12.4142 8.5 12.75 8.16421 12.75 7.75Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const insights = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.1543 3.00391C19.7394 3.08421 21 4.39489 21 6V18L20.9961 18.1543C20.9184 19.6883 19.6883 20.9184 18.1543 20.9961L18 21H6C4.39489 21 3.08421 19.7394 3.00391 18.1543L3 18V6C3 4.34315 4.34315 3 6 3H18L18.1543 3.00391ZM6 4.5C5.17157 4.5 4.5 5.17157 4.5 6V18C4.5 18.8284 5.17157 19.5 6 19.5H18C18.8284 19.5 19.5 18.8284 19.5 18V6C19.5 5.17157 18.8284 4.5 18 4.5H6ZM8 9C8.41421 9 8.75 9.33579 8.75 9.75V16.25C8.75 16.6642 8.41421 17 8 17C7.58579 17 7.25 16.6642 7.25 16.25V9.75C7.25 9.33579 7.58579 9 8 9ZM12 12C12.4142 12 12.75 12.3358 12.75 12.75V16.25C12.75 16.6642 12.4142 17 12 17C11.5858 17 11.25 16.6642 11.25 16.25V12.75C11.25 12.3358 11.5858 12 12 12ZM16 9C16.4142 9 16.75 9.33579 16.75 9.75V16.25C16.75 16.6642 16.4142 17 16 17C15.5858 17 15.25 16.6642 15.25 16.25V9.75C15.25 9.33579 15.5858 9 16 9Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const italic = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M11 5H17\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M7 19H13\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M14 5L10 19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n`;\n", "export const keyboard = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"keyboard\">\n<g clip-path=\"url(#clip0_286_15035)\">\n<path d=\"M20 7V17H4V7H20ZM20 5H4C2.9 5 2.01 5.9 2.01 7L2 17C2 18.1 2.9 19 4 19H20C21.1 19 22 18.1 22 17V7C22 5.9 21.1 5 20 5ZM11 8H13V10H11V8ZM11 11H13V13H11V11ZM8 8H10V10H8V8ZM8 11H10V13H8V11ZM5 11H7V13H5V11ZM5 8H7V10H5V8ZM8 14H16V16H8V14ZM14 11H16V13H14V11ZM14 8H16V10H14V8ZM17 11H19V13H17V11ZM17 8H19V10H17V8Z\" fill=\"currentColor\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_286_15035\">\n<rect width=\"24\" height=\"24\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n`;\n", "export const lightningBolt = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M13.1856 1.27343C13.5176 1.35823 13.75 1.65724 13.75 1.99999V10.25H17C17.2647 10.25 17.5094 10.3896 17.6445 10.6172C17.7797 10.8448 17.785 11.127 17.6582 11.3594L11.6582 22.3594C11.494 22.6602 11.1466 22.8112 10.8145 22.7266C10.4824 22.6418 10.25 22.3427 10.25 22V13.75H7C6.73536 13.75 6.49061 13.6103 6.35547 13.3828C6.22035 13.1552 6.21505 12.873 6.3418 12.6406L12.3418 1.64062C12.506 1.33982 12.8534 1.18874 13.1856 1.27343ZM8.26368 12.25H11C11.4142 12.25 11.75 12.5858 11.75 13V19.0586L15.7363 11.75H13C12.5858 11.75 12.25 11.4142 12.25 11V4.94042L8.26368 12.25Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const link = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M10 14C10.3259 14.3326 10.7148 14.5968 11.1441 14.7772C11.5734 14.9576 12.0344 15.0505 12.5 15.0505C12.9656 15.0505 13.4266 14.9576 13.8559 14.7772C14.2852 14.5968 14.6741 14.3326 15 14L19 10C19.663 9.33697 20.0355 8.43769 20.0355 7.50001C20.0355 6.56233 19.663 5.66305 19 5.00001C18.337 4.33697 17.4377 3.96448 16.5 3.96448C15.5623 3.96448 14.663 4.33697 14 5.00001L13.5 5.50001\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M14 9.99997C13.6741 9.66737 13.2851 9.40315 12.8559 9.22276C12.4266 9.04238 11.9656 8.94946 11.5 8.94946C11.0344 8.94946 10.5734 9.04238 10.1441 9.22276C9.71484 9.40315 9.32587 9.66737 9 9.99997L5 14C4.33695 14.663 3.96446 15.5623 3.96446 16.5C3.96446 17.4377 4.33695 18.3369 5 19C5.66304 19.663 6.56231 20.0355 7.5 20.0355C8.43768 20.0355 9.33695 19.663 10 19L10.5 18.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n`;\n", "export const logout = `<svg width=\"17\" height=\"20\" viewBox=\"0 0 17 20\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 0C12.4142 0 12.75 0.335786 12.75 0.75C12.75 1.16421 12.4142 1.5 12 1.5H3.75C2.50736 1.5 1.5 2.50736 1.5 3.75V16.25C1.5 17.4926 2.50736 18.5 3.75 18.5H12C12.4142 18.5 12.75 18.8358 12.75 19.25C12.75 19.6642 12.4142 20 12 20H3.75C1.67893 20 0 18.3211 0 16.25V3.75C2.57706e-07 1.67893 1.67893 1.28851e-07 3.75 0H12ZM10.7197 5.71973C11.0125 5.42693 11.4874 5.42713 11.7803 5.71973L16.0605 10L11.7803 14.2803C11.4874 14.5729 11.0126 14.573 10.7197 14.2803C10.4272 13.9874 10.4272 13.5125 10.7197 13.2197L13.1895 10.75H6.5C6.08605 10.7498 5.7501 10.414 5.75 10C5.75009 9.58601 6.08604 9.25023 6.5 9.25H13.1895L10.7197 6.78027C10.4272 6.48743 10.4272 6.01254 10.7197 5.71973Z\" />\n</svg>`;\n", "export const messages = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18 4C19.6569 4 21 5.34315 21 7V15C21 16.6569 19.6569 18 18 18H14.2217L12.7471 19.6592C12.3493 20.1065 11.6507 20.1065 11.2529 19.6592L9.77832 18H6C4.34315 18 3 16.6569 3 15V7C3 5.34315 4.34315 4 6 4H18ZM6 5.5C5.22334 5.5 4.58461 6.09028 4.50781 6.84668L4.5 7V15C4.5 15.8284 5.17157 16.5 6 16.5H10.4521L10.8994 17.0039L12 18.2422L13.1006 17.0039L13.5479 16.5H18C18.7767 16.5 19.4154 15.9097 19.4922 15.1533L19.5 15V7C19.5 6.22334 18.9097 5.58461 18.1533 5.50781L18 5.5H6ZM8 10C8.55228 10 9 10.4477 9 11C9 11.5523 8.55228 12 8 12C7.44772 12 7 11.5523 7 11C7 10.4477 7.44772 10 8 10ZM12 10C12.5523 10 13 10.4477 13 11C13 11.5523 12.5523 12 12 12C11.4477 12 11 11.5523 11 11C11 10.4477 11.4477 10 12 10ZM16 10C16.5523 10 17 10.4477 17 11C17 11.5523 16.5523 12 16 12C15.4477 12 15 11.5523 15 11C15 10.4477 15.4477 10 16 10Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const minus = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19.75 12C19.75 12.4142 19.4142 12.75 19 12.75L5 12.75C4.58579 12.75 4.25 12.4142 4.25 12C4.25 11.5858 4.58579 11.25 5 11.25L19 11.25C19.4142 11.25 19.75 11.5858 19.75 12Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const mobile = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7 3.5H17C17.8284 3.5 18.5 4.17157 18.5 5V19C18.5 19.8284 17.8284 20.5 17 20.5H7C6.17157 20.5 5.5 19.8284 5.5 19V5C5.5 4.17157 6.17157 3.5 7 3.5ZM4 5C4 3.34315 5.34315 2 7 2H17C18.6569 2 20 3.34315 20 5V19C20 20.6569 18.6569 22 17 22H7C5.34315 22 4 20.6569 4 19V5ZM9.75 17.5C9.33579 17.5 9 17.8358 9 18.25C9 18.6642 9.33579 19 9.75 19H14.25C14.6642 19 15 18.6642 15 18.25C15 17.8358 14.6642 17.5 14.25 17.5H9.75Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const moveToParent = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.70415 8L8.97393 10.1799L7.89227 11.2615L4.24806 8.83205C3.65433 8.43623 3.65433 7.56377 4.24806 7.16795L11.4453 2.3698C11.7812 2.14587 12.2188 2.14587 12.5547 2.3698L19.7519 7.16795C20.3456 7.56377 20.3456 8.43623 19.7519 8.83205L16.1592 11.2272L15.0775 10.1455L18.2958 8L12 3.80278L5.70415 8ZM10.6287 11.3536L10.671 11.3112L11.5126 10.4697L12.0429 9.93934L12.5732 10.4697L13.3804 11.2769L13.4571 11.3536L13.8535 11.75L14.4621 12.3586L15.5732 13.4697C15.8661 13.7626 15.8661 14.2374 15.5732 14.5303C15.2803 14.8232 14.8054 14.8232 14.5125 14.5303L13.1893 13.2071L12.7929 12.8107L12.7929 21C12.7929 21.4142 12.4571 21.75 12.0429 21.75C11.6287 21.75 11.2929 21.4142 11.2929 21V13.5286L11.2929 13.5286V13.5178V12.8107L10.8621 13.2414L9.57321 14.5303C9.28032 14.8232 8.80545 14.8232 8.51255 14.5303C8.21966 14.2374 8.21966 13.7626 8.51255 13.4697L9.58932 12.3929L10.2322 11.75L10.6287 11.3536Z\" fill=\"currentColor\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.70415 8L8.97393 10.1799L7.89227 11.2615L4.24806 8.83205C3.65433 8.43623 3.65433 7.56377 4.24806 7.16795L11.4453 2.3698C11.7812 2.14587 12.2188 2.14587 12.5547 2.3698L19.7519 7.16795C20.3456 7.56377 20.3456 8.43623 19.7519 8.83205L16.1592 11.2272L15.0775 10.1455L18.2958 8L12 3.80278L5.70415 8ZM10.6287 11.3536L10.671 11.3112L11.5126 10.4697L12.0429 9.93934L12.5732 10.4697L13.3804 11.2769L13.4571 11.3536L13.8535 11.75L14.4621 12.3586L15.5732 13.4697C15.8661 13.7626 15.8661 14.2374 15.5732 14.5303C15.2803 14.8232 14.8054 14.8232 14.5125 14.5303L13.1893 13.2071L12.7929 12.8107L12.7929 21C12.7929 21.4142 12.4571 21.75 12.0429 21.75C11.6287 21.75 11.2929 21.4142 11.2929 21V13.5286L11.2929 13.5286V13.5178V12.8107L10.8621 13.2414L9.57321 14.5303C9.28032 14.8232 8.80545 14.8232 8.51255 14.5303C8.21966 14.2374 8.21966 13.7626 8.51255 13.4697L9.58932 12.3929L10.2322 11.75L10.6287 11.3536Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const multiMessage = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M13.5 2.5C14.6046 2.5 15.5 3.39543 15.5 4.5V7.5C15.5 8.53565 14.7128 9.387 13.7041 9.48926L13.5 9.5H12.75V11.25H16.5C17.4665 11.25 18.25 12.0335 18.25 13V14H19L19.2041 14.0107C20.2128 14.113 21 14.9643 21 16V19L20.9893 19.2041C20.8938 20.1457 20.1457 20.8938 19.2041 20.9893L19 21H16L15.7959 20.9893C14.8543 20.8938 14.1062 20.1457 14.0107 19.2041L14 19V16C14 14.8954 14.8954 14 16 14H16.75V13C16.75 12.8619 16.6381 12.75 16.5 12.75H7.5C7.36193 12.75 7.25 12.8619 7.25 13V14H8C9.10457 14 10 14.8954 10 16V19C10 20.0357 9.21278 20.887 8.2041 20.9893L8 21H5L4.7959 20.9893C3.85435 20.8938 3.1062 20.1457 3.01074 19.2041L3 19V16C3 14.8954 3.89543 14 5 14H5.75V13C5.75 12.0335 6.5335 11.25 7.5 11.25H11.25V9.5H10.5L10.2959 9.48926C9.35435 9.3938 8.6062 8.64565 8.51074 7.7041L8.5 7.5V4.5C8.5 3.39543 9.39543 2.5 10.5 2.5H13.5ZM16 15.5C15.7239 15.5 15.5 15.7239 15.5 16V19C15.5 19.2761 15.7239 19.5 16 19.5H19C19.2761 19.5 19.5 19.2761 19.5 19V16C19.5 15.7239 19.2761 15.5 19 15.5H16ZM5 15.5C4.72386 15.5 4.5 15.7239 4.5 16V19C4.5 19.2761 4.72386 19.5 5 19.5H8C8.27614 19.5 8.5 19.2761 8.5 19V16C8.5 15.7239 8.27614 15.5 8 15.5H5ZM10.5 4C10.2239 4 10 4.22386 10 4.5V7.5C10 7.77614 10.2239 8 10.5 8H13.5C13.7761 8 14 7.77614 14 7.5V4.5C14 4.22386 13.7761 4 13.5 4H10.5Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const newTab = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M9 3C9.41421 3 9.75 3.33579 9.75 3.75C9.75 4.16421 9.41421 4.5 9 4.5H6.75C5.50736 4.5 4.5 5.50736 4.5 6.75V17.25C4.5 18.4926 5.50736 19.5 6.75 19.5H17.25C18.4926 19.5 19.5 18.4926 19.5 17.25V15C19.5 14.5858 19.8358 14.25 20.25 14.25C20.6642 14.25 21 14.5858 21 15V17.25C21 19.3211 19.3211 21 17.25 21H6.75C4.67893 21 3 19.3211 3 17.25V6.75C3 4.67893 4.67893 3 6.75 3H9ZM21 9C21 9.41421 20.6642 9.75 20.25 9.75C19.8358 9.75 19.5 9.41421 19.5 9V5.56055L11.7803 13.2803C11.4874 13.5732 11.0126 13.5732 10.7197 13.2803C10.4268 12.9874 10.4268 12.5126 10.7197 12.2197L18.4395 4.5H15C14.5858 4.5 14.25 4.16421 14.25 3.75C14.25 3.33579 14.5858 3 15 3H21V9Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const numberedList = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_8391_1172)\">\n<path d=\"M11 6H20\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M11 12H20\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M12 18H20\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M4 16C4 15.4696 4.21071 14.9609 4.58579 14.5858C4.96086 14.2107 5.46957 14 6 14C6.53043 14 7.03914 14.2107 7.41421 14.5858C7.78929 14.9609 8 15.4696 8 16C8 16.591 7.5 17 7 17.5L4 20H8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M6 10V4L4 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_8391_1172\">\n<rect width=\"24\" height=\"24\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n`;\n", "export const pause = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M9 3C9.9665 3 10.75 3.7835 10.75 4.75V19.25C10.75 20.2165 9.9665 21 9 21H5.75C4.7835 21 4 20.2165 4 19.25V4.75C4 3.7835 4.7835 3 5.75 3H9ZM18.25 3C19.2165 3 20 3.7835 20 4.75V19.25C20 20.2165 19.2165 21 18.25 21H15C14.0335 21 13.25 20.2165 13.25 19.25V4.75C13.25 3.7835 14.0335 3 15 3H18.25ZM5.75 4.5C5.61193 4.5 5.5 4.61193 5.5 4.75V19.25C5.5 19.3881 5.61193 19.5 5.75 19.5H9C9.13807 19.5 9.25 19.3881 9.25 19.25V4.75C9.25 4.61193 9.13807 4.5 9 4.5H5.75ZM15 4.5C14.8619 4.5 14.75 4.61193 14.75 4.75V19.25C14.75 19.3881 14.8619 19.5 15 19.5H18.25C18.3881 19.5 18.5 19.3881 18.5 19.25V4.75C18.5 4.61193 18.3881 4.5 18.25 4.5H15Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const pauseFilled = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M9 3.75C9.55228 3.75 10 4.19772 10 4.75V19.25C10 19.8023 9.55228 20.25 9 20.25H5.75C5.19772 20.25 4.75 19.8023 4.75 19.25V4.75C4.75 4.19772 5.19772 3.75 5.75 3.75H9ZM18.25 3.75C18.8023 3.75 19.25 4.19772 19.25 4.75V19.25C19.25 19.8023 18.8023 20.25 18.25 20.25H15C14.4477 20.25 14 19.8023 14 19.25V4.75C14 4.19772 14.4477 3.75 15 3.75H18.25Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const pieChart = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2 12C2 7.16208 5.43552 3.12658 10 2.20004V3.73663C6.27063 4.63603 3.5 7.99446 3.5 12C3.5 16.6944 7.30558 20.5 12 20.5C16.0055 20.5 19.364 17.7294 20.2634 14H21.8C20.8734 18.5645 16.8379 22 12 22C6.47715 22 2 17.5228 2 12ZM21.9045 10.6123C21.9675 11.0658 22 11.5291 22 12H20.5H13.5H12V10.5V3.5V2C12.5098 2 13.0107 2.03815 13.5 2.11175C13.5037 2.11231 13.5075 2.11288 13.5112 2.11344C13.6755 2.13834 13.8384 2.16724 14 2.20004C14.136 2.22765 14.2711 2.25802 14.405 2.2911C16.1178 2.71396 17.6566 3.57818 18.894 4.75619C19.019 4.87521 19.141 4.99743 19.2597 5.12274C20.4296 6.35725 21.288 7.88995 21.7089 9.59497C21.742 9.72894 21.7724 9.86397 21.8 10C21.8335 10.1652 21.863 10.3319 21.8882 10.5C21.8939 10.5374 21.8993 10.5748 21.9045 10.6123ZM13.5 3.63193V10.5H20.3681C20.0716 8.83475 19.2902 7.33731 18.1751 6.15887C18.1737 6.15742 18.1723 6.15596 18.1709 6.15451L18.1709 6.15448C18.1649 6.14814 18.1589 6.14182 18.1529 6.13551C18.0576 6.03553 17.9598 5.93787 17.8598 5.84262C16.6785 4.7181 15.174 3.93 13.5 3.63193Z\" fill=\"currentColor\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2 12C2 7.16208 5.43552 3.12658 10 2.20004V3.73663C6.27063 4.63603 3.5 7.99446 3.5 12C3.5 16.6944 7.30558 20.5 12 20.5C16.0055 20.5 19.364 17.7294 20.2634 14H21.8C20.8734 18.5645 16.8379 22 12 22C6.47715 22 2 17.5228 2 12ZM21.9045 10.6123C21.9675 11.0658 22 11.5291 22 12H20.5H13.5H12V10.5V3.5V2C12.5098 2 13.0107 2.03815 13.5 2.11175C13.5037 2.11231 13.5075 2.11288 13.5112 2.11344C13.6755 2.13834 13.8384 2.16724 14 2.20004C14.136 2.22765 14.2711 2.25802 14.405 2.2911C16.1178 2.71396 17.6566 3.57818 18.894 4.75619C19.019 4.87521 19.141 4.99743 19.2597 5.12274C20.4296 6.35725 21.288 7.88995 21.7089 9.59497C21.742 9.72894 21.7724 9.86397 21.8 10C21.8335 10.1652 21.863 10.3319 21.8882 10.5C21.8939 10.5374 21.8993 10.5748 21.9045 10.6123ZM13.5 3.63193V10.5H20.3681C20.0716 8.83475 19.2902 7.33731 18.1751 6.15887C18.1737 6.15742 18.1723 6.15596 18.1709 6.15451L18.1709 6.15448C18.1649 6.14814 18.1589 6.14182 18.1529 6.13551C18.0576 6.03553 17.9598 5.93787 17.8598 5.84262C16.6785 4.7181 15.174 3.93 13.5 3.63193Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const plus = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.75 5C12.75 4.58579 12.4142 4.25 12 4.25C11.5858 4.25 11.25 4.58579 11.25 5V11.25H5C4.58579 11.25 4.25 11.5858 4.25 12C4.25 12.4142 4.58579 12.75 5 12.75H11.25V19C11.25 19.4142 11.5858 19.75 12 19.75C12.4142 19.75 12.75 19.4142 12.75 19V12.75H19C19.4142 12.75 19.75 12.4142 19.75 12C19.75 11.5858 19.4142 11.25 19 11.25H12.75V5Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const preview = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 5C15.8485 5.00004 19.1894 8.39903 20.8613 10.46C21.5982 11.3684 21.5982 12.6316 20.8613 13.54L20.5283 13.9414C18.7696 16.013 15.6078 19 12 19C8.3922 19 5.23043 16.013 3.47167 13.9414L3.13866 13.54C2.40178 12.6316 2.40178 11.3684 3.13866 10.46C4.81055 8.39901 8.1515 5 12 5ZM12 6.5C10.5157 6.5 9.02571 7.16106 7.63476 8.1709C6.25469 9.17288 5.09478 10.4301 4.3037 11.4053C4.01375 11.7629 4.01375 12.2371 4.3037 12.5947C5.09478 13.5699 6.25469 14.8271 7.63476 15.8291C9.02571 16.8389 10.5157 17.5 12 17.5C13.4843 17.5 14.9743 16.8389 16.3652 15.8291C17.7453 14.8271 18.9052 13.5699 19.6963 12.5947C19.9862 12.2371 19.9862 11.7629 19.6963 11.4053C18.9052 10.4301 17.7453 9.17288 16.3652 8.1709C14.9743 7.16106 13.4843 6.50002 12 6.5ZM12 9C13.6568 9.00004 15 10.3432 15 12C15 13.6568 13.6568 15 12 15C10.3431 15 8.99999 13.6569 8.99999 12C8.99999 10.3431 10.3431 9 12 9ZM12 10.5C11.1716 10.5 10.5 11.1716 10.5 12C10.5 12.8284 11.1716 13.5 12 13.5C12.8284 13.5 13.5 12.8284 13.5 12C13.5 11.1716 12.8284 10.5 12 10.5Z\" fill=\"currentColor\"/>\n<path d=\"M12 5C15.8485 5.00004 19.1895 8.39903 20.8613 10.46C21.5982 11.3684 21.5982 12.6316 20.8613 13.54L20.5283 13.9414C18.7696 16.013 15.6078 19 12 19C8.39221 19 5.23044 16.013 3.47167 13.9414L3.13866 13.54C2.40178 12.6316 2.40178 11.3684 3.13866 10.46C4.81056 8.39901 8.1515 5 12 5ZM12 6.5C10.5157 6.5 9.02572 7.16106 7.63476 8.1709C6.2547 9.17288 5.09478 10.4301 4.3037 11.4053C4.01375 11.7629 4.01375 12.2371 4.3037 12.5947C5.09478 13.5699 6.2547 14.8271 7.63476 15.8291C9.02572 16.8389 10.5157 17.5 12 17.5C13.4843 17.5 14.9743 16.8389 16.3652 15.8291C17.7453 14.8271 18.9052 13.5699 19.6963 12.5947C19.9862 12.2371 19.9862 11.7629 19.6963 11.4053C18.9052 10.4301 17.7453 9.17288 16.3652 8.1709C14.9743 7.16106 13.4843 6.50002 12 6.5ZM12 9C13.6568 9.00004 15 10.3432 15 12C15 13.6568 13.6568 15 12 15C10.3431 15 9 13.6569 9 12C9 10.3431 10.3431 9 12 9ZM12 10.5C11.1716 10.5 10.5 11.1716 10.5 12C10.5 12.8284 11.1716 13.5 12 13.5C12.8284 13.5 13.5 12.8284 13.5 12C13.5 11.1716 12.8284 10.5 12 10.5Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const radioChecked = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM12 3.5C7.30558 3.5 3.5 7.30558 3.5 12C3.5 16.6944 7.30558 20.5 12 20.5C16.6944 20.5 20.5 16.6944 20.5 12C20.5 7.30558 16.6944 3.5 12 3.5ZM12 6C15.3137 6 18 8.68629 18 12C18 15.3137 15.3137 18 12 18C8.68629 18 6 15.3137 6 12C6 8.68629 8.68629 6 12 6Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const redo = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13.822 7.29142C12.8907 6.83217 11.8442 6.65939 10.8147 6.79492C9.78527 6.93045 8.81911 7.36821 8.03843 8.05285C7.25776 8.73748 6.69763 9.63823 6.42889 10.6412C6.16014 11.6442 6.19485 12.7043 6.52862 13.6876C6.86238 14.6708 7.48022 15.533 8.304 16.1651C9.12778 16.7972 10.1205 17.1709 11.1566 17.2388C12.1928 17.3067 13.2258 17.0658 14.125 16.5466C14.4837 16.3395 14.9424 16.4624 15.1495 16.8212C15.3566 17.1799 15.2337 17.6386 14.875 17.8457C13.7188 18.5132 12.3907 18.8229 11.0585 18.7356C9.72636 18.6482 8.45001 18.1679 7.39086 17.3551C6.33171 16.5424 5.53735 15.4339 5.10822 14.1697C4.67909 12.9055 4.63447 11.5425 4.98 10.253C5.32553 8.96344 6.04569 7.80533 7.04941 6.92509C8.05314 6.04484 9.29534 5.48201 10.6189 5.30775C11.9425 5.1335 13.2881 5.35565 14.4854 5.94611C15.2577 6.32696 15.946 6.84999 16.5164 7.48357L18.1464 5.85355C18.4614 5.53857 19 5.76165 19 6.20711V10.5C19 10.7761 18.7761 11 18.5 11H14.2071C13.7616 11 13.5386 10.4614 13.8535 10.1464L15.4539 8.54611C15.0002 8.02679 14.4464 7.59935 13.822 7.29142Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const rename = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M13 4.5H6C5.17157 4.5 4.5 5.17157 4.5 6V18C4.5 18.8284 5.17157 19.5 6 19.5H18C18.8284 19.5 19.5 18.8284 19.5 18V11H21V18L20.9961 18.1543C20.9184 19.6883 19.6883 20.9184 18.1543 20.9961L18 21H6L5.8457 20.9961C4.31166 20.9184 3.08163 19.6883 3.00391 18.1543L3 18V6C3 4.39489 4.26056 3.08421 5.8457 3.00391L6 3H13V4.5ZM17.2246 3.69043C18.145 2.77005 19.6381 2.77024 20.5586 3.69043C21.4787 4.61088 21.4788 6.10307 20.5586 7.02344L13.3447 14.2373L13.2305 14.3428C12.9549 14.5784 12.6193 14.7359 12.2598 14.7959L9.58203 15.2412L9.51953 15.248C9.20881 15.261 8.95413 14.9831 9.00684 14.666L9.45312 11.9893C9.5131 11.6296 9.66962 11.2932 9.90527 11.0176L10.0117 10.9033L17.2246 3.69043ZM11.0723 11.9639C11.0171 12.0191 10.9756 12.0868 10.9512 12.1602L10.9326 12.2354L10.7158 13.5312L12.0127 13.3154L12.0879 13.2969C12.1614 13.2725 12.2289 13.231 12.2842 13.1758L12.5479 12.9111C11.9992 12.6828 11.5629 12.2491 11.335 11.7002L11.0723 11.9639ZM12.5146 10.5205L12.6992 11.0752L12.7324 11.1562C12.8191 11.3408 12.978 11.4835 13.1738 11.5488L13.7266 11.7324L17.9668 7.49316L16.7539 6.28027L12.5146 10.5205ZM19.498 4.75098C19.1842 4.43739 18.6871 4.41768 18.3506 4.69238L18.2852 4.75098L17.8145 5.21973L19.0273 6.43262L19.498 5.96289L19.5566 5.89746C19.8127 5.58326 19.8129 5.12953 19.5566 4.81543L19.498 4.75098Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const section = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7 3.25C4.92893 3.25 3.25 4.92893 3.25 7V17C3.25 19.0711 4.92893 20.75 7 20.75H17C19.0711 20.75 20.75 19.0711 20.75 17V7C20.75 4.92893 19.0711 3.25 17 3.25H7ZM4.75 7C4.75 5.75736 5.75736 4.75 7 4.75H17C18.2426 4.75 19.25 5.75736 19.25 7V11.25L4.75 11.25V7ZM4.75 12.75V17C4.75 18.2426 5.75736 19.25 7 19.25H17C18.2426 19.25 19.25 18.2426 19.25 17V12.75L4.75 12.75Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const send = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.30012 11.25L5.70479 7.09745L16.0861 11.25H8.30012ZM8.30012 12.75L5.70479 16.9025L16.0861 12.75H8.30012ZM19.6788 11.0715L4.84125 5.13649C3.94341 4.77735 3.10935 5.77494 3.62186 6.59496L7 12L3.62186 17.405C3.10935 18.225 3.94341 19.2226 4.84125 18.8635L19.6788 12.9285C20.517 12.5932 20.517 11.4068 19.6788 11.0715Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const share = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18 3C19.6569 3 21 4.34315 21 6C21 7.65685 19.6569 9 18 9C17.0969 9 16.2892 8.59911 15.7393 7.96777L9.84863 10.9121C9.94625 11.2581 10 11.6228 10 12C10 12.3766 9.94592 12.7405 9.84863 13.0859L15.7383 16.0303C16.2883 15.3993 17.0972 15 18 15C19.6569 15 21 16.3431 21 18C21 19.6569 19.6569 21 18 21C16.3431 21 15 19.6569 15 18C15 17.8198 15.0664 17.3711 15.0664 17.3711L9.17773 14.4268C8.44679 15.3825 7.2961 16 6 16C3.79086 16 2 14.2091 2 12C2 9.79086 3.79086 8 6 8C7.29555 8 8.44674 8.6163 9.17773 9.57129L15.0664 6.62793C15.0664 6.62793 15 6.17319 15 6C15 4.34315 16.3431 3 18 3ZM18 16.5C17.1716 16.5 16.5 17.1716 16.5 18C16.5 18.8284 17.1716 19.5 18 19.5C18.8284 19.5 19.5 18.8284 19.5 18C19.5 17.1716 18.8284 16.5 18 16.5ZM6 9.5C4.61929 9.5 3.5 10.6193 3.5 12C3.5 13.3807 4.61929 14.5 6 14.5C7.38071 14.5 8.5 13.3807 8.5 12C8.5 10.6193 7.38071 9.5 6 9.5ZM18 4.5C17.1716 4.5 16.5 5.17157 16.5 6C16.5 6.82843 17.1716 7.5 18 7.5C18.8284 7.5 19.5 6.82843 19.5 6C19.5 5.17157 18.8284 4.5 18 4.5Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const sidebarCollapsed = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M17 3.25C19.0711 3.25 20.75 4.92893 20.75 7V17C20.75 19.0711 19.0711 20.75 17 20.75H7C4.92893 20.75 3.25 19.0711 3.25 17V7C3.25 4.92893 4.92893 3.25 7 3.25H17ZM10 19.25H17C18.2426 19.25 19.25 18.2426 19.25 17V7C19.25 5.75736 18.2426 4.75 17 4.75H10V19.25Z\"/>\n</svg>`;\n", "export const sidebarExpanded = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M17 3.25C19.0711 3.25 20.75 4.92893 20.75 7V17C20.75 19.0711 19.0711 20.75 17 20.75H7C4.92893 20.75 3.25 19.0711 3.25 17V7C3.25 4.92893 4.92893 3.25 7 3.25H17ZM10.75 19.25H17C18.2426 19.25 19.25 18.2426 19.25 17V7C19.25 5.75736 18.2426 4.75 17 4.75H10.75V19.25ZM7 4.75C5.75736 4.75 4.75 5.75736 4.75 7V17C4.75 18.2426 5.75736 19.25 7 19.25H9.25V4.75H7Z\"/>\n</svg>`;\n", "export const stop = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M19.25 7C19.25 5.75736 18.2426 4.75 17 4.75H7C5.75736 4.75 4.75 5.75736 4.75 7V17C4.75 18.2426 5.75736 19.25 7 19.25H17C18.2426 19.25 19.25 18.2426 19.25 17V7ZM20.75 17C20.75 19.0711 19.0711 20.75 17 20.75H7C4.92893 20.75 3.25 19.0711 3.25 17V7C3.25 4.92893 4.92893 3.25 7 3.25H17C19.0711 3.25 20.75 4.92893 20.75 7V17Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const stopFilled = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M4 7C4 5.34315 5.34315 4 7 4H17C18.6569 4 20 5.34315 20 7V17C20 18.6569 18.6569 20 17 20H7C5.34315 20 4 18.6569 4 17V7Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const strikethrough = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5 12H19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M16 6.50002C15.7732 6.05998 15.2536 5.67167 14.5265 5.39902C13.7994 5.12638 12.9084 4.98565 12 5.00002H11C10.0717 5.00002 9.1815 5.36877 8.52513 6.02515C7.86875 6.68153 7.5 7.57177 7.5 8.50002C7.5 9.42828 7.86875 10.3185 8.52513 10.9749C9.1815 11.6313 10.0717 12 11 12H13C13.9283 12 14.8185 12.3688 15.4749 13.0252C16.1313 13.6815 16.5 14.5718 16.5 15.5C16.5 16.4283 16.1313 17.3185 15.4749 17.9749C14.8185 18.6313 13.9283 19 13 19H11.5C10.5916 19.0144 9.70056 18.8737 8.9735 18.601C8.24644 18.3284 7.72675 17.9401 7.5 17.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n`;\n", "export const tag = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5 3.25C4.0335 3.25 3.25 4.0335 3.25 5V12.5858C3.25 13.0499 3.43437 13.495 3.76256 13.8232L9.34835 19.409C10.8128 20.8735 13.1872 20.8735 14.6516 19.409L19.409 14.6517C20.8735 13.1872 20.8735 10.8128 19.409 9.34835L13.8232 3.76256C13.495 3.43437 13.0499 3.25 12.5858 3.25H5ZM4.75 5C4.75 4.86193 4.86193 4.75 5 4.75H12.5858C12.6521 4.75 12.7157 4.77634 12.7626 4.82322L18.3484 10.409C19.227 11.2877 19.227 12.7123 18.3483 13.591L13.591 18.3484C12.7123 19.227 11.2877 19.227 10.409 18.3484L4.82322 12.7626C4.77634 12.7157 4.75 12.6521 4.75 12.5858V5ZM9 11C10.1046 11 11 10.1046 11 9C11 7.89543 10.1046 7 9 7C7.89543 7 7 7.89543 7 9C7 10.1046 7.89543 11 9 11Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const target = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 20.5C16.6944 20.5 20.5 16.6944 20.5 12C20.5 7.30558 16.6944 3.5 12 3.5C7.30558 3.5 3.5 7.30558 3.5 12C3.5 16.6944 7.30558 20.5 12 20.5ZM12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM14 12C14 13.1046 13.1046 14 12 14C10.8954 14 10 13.1046 10 12C10 10.8954 10.8954 10 12 10C13.1046 10 14 10.8954 14 12ZM16.5 12C16.5 14.4853 14.4853 16.5 12 16.5C9.51472 16.5 7.5 14.4853 7.5 12C7.5 9.51472 9.51472 7.5 12 7.5C14.4853 7.5 16.5 9.51472 16.5 12ZM18 12C18 15.3137 15.3137 18 12 18C8.68629 18 6 15.3137 6 12C6 8.68629 8.68629 6 12 6C15.3137 6 18 8.68629 18 12Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const templates = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M17 3.25C19.0711 3.25 20.75 4.92893 20.75 7V17C20.75 19.0711 19.0711 20.75 17 20.75H7C4.92893 20.75 3.25 19.0711 3.25 17V7C3.25 4.92893 4.92893 3.25 7 3.25H17ZM12.75 19.25H17C18.2426 19.25 19.25 18.2426 19.25 17V12.75H12.75V19.25ZM7 4.75C5.75736 4.75 4.75 5.75736 4.75 7V17C4.75 18.2426 5.75736 19.25 7 19.25H11.25V4.75H7ZM12.75 11.25H19.25V7C19.25 5.75736 18.2426 4.75 17 4.75H12.75V11.25Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const text = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.5 4.5V6.25C4.5 6.66421 4.16421 7 3.75 7C3.33579 7 3 6.66421 3 6.25V4C3 3.44772 3.44772 3 4 3H20C20.5523 3 21 3.44772 21 4V6.25C21 6.66421 20.6642 7 20.25 7C19.8358 7 19.5 6.66421 19.5 6.25V4.5H12.75V19.5H15C15.4142 19.5 15.75 19.8358 15.75 20.25C15.75 20.6642 15.4142 21 15 21H9C8.58579 21 8.25 20.6642 8.25 20.25C8.25 19.8358 8.58579 19.5 9 19.5H11.25V4.5H4.5Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const textInput = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.1543 3.00391C19.7394 3.08421 21 4.39489 21 6V18L20.9961 18.1543C20.9184 19.6883 19.6883 20.9184 18.1543 20.9961L18 21H6L5.8457 20.9961C4.31166 20.9184 3.08163 19.6883 3.00391 18.1543L3 18V6C3 4.39489 4.26056 3.08421 5.8457 3.00391L6 3H18L18.1543 3.00391ZM6 4.5C5.17157 4.5 4.5 5.17157 4.5 6V18C4.5 18.8284 5.17157 19.5 6 19.5H18C18.8284 19.5 19.5 18.8284 19.5 18V6C19.5 5.17157 18.8284 4.5 18 4.5H6ZM16 12.75C16.4142 12.75 16.75 13.0858 16.75 13.5C16.75 13.9142 16.4142 14.25 16 14.25H8C7.58579 14.25 7.25 13.9142 7.25 13.5C7.25 13.0858 7.58579 12.75 8 12.75H16ZM16 9.25C16.4142 9.25 16.75 9.58579 16.75 10C16.75 10.4142 16.4142 10.75 16 10.75H8C7.58579 10.75 7.25 10.4142 7.25 10C7.25 9.58579 7.58579 9.25 8 9.25H16Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const tick = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M19.4802 6.48017C19.773 6.77303 19.773 7.24793 19.4802 7.54083L9.53028 17.4907C9.33798 17.6829 9.06797 17.7456 8.8218 17.6855C8.6985 17.6641 8.57871 17.6154 8.47653 17.5322L8.41921 17.4804L4.46936 13.5305C4.17668 13.2377 4.17677 12.7627 4.46936 12.4699C4.76221 12.177 5.23712 12.1771 5.53002 12.4699L8.97993 15.9198L18.4195 6.48017C18.7124 6.18738 19.1873 6.18731 19.4802 6.48017Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const ticket = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M20 17.5V19H4V17.5H20ZM20.5 17V15.1631C19.3175 14.6013 18.5 13.3962 18.5 12C18.5 10.6037 19.3173 9.3976 20.5 8.83594V7C20.5 6.75829 20.3286 6.55629 20.1006 6.50977L20 6.5H4C3.72386 6.5 3.5 6.72386 3.5 7V8.83594C4.68266 9.3976 5.5 10.6037 5.5 12C5.5 13.3962 4.68245 14.6013 3.5 15.1631V17C3.5 17.2761 3.72386 17.5 4 17.5V19C2.89543 19 2 18.1046 2 17V14C3.10457 14 4 13.1046 4 12C4 10.8954 3.10457 10 2 10V7C2 5.89543 2.89543 5 4 5H20C21.1046 5 22 5.89543 22 7V10C20.8954 10 20 10.8954 20 12C20 13.1046 20.8954 14 22 14V17C22 18.1046 21.1046 19 20 19V17.5C20.2761 17.5 20.5 17.2761 20.5 17Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const treeGraph = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.5 7C15.5 8.933 13.933 10.5 12 10.5C10.067 10.5 8.5 8.933 8.5 7C8.5 5.067 10.067 3.5 12 3.5C13.933 3.5 15.5 5.067 15.5 7ZM12.75 11.9441C13.4486 11.839 14.0999 11.5894 14.6724 11.2267L17.1981 15.6012C16.4705 16.1486 16 17.0194 16 18C16 19.6568 17.3431 21 19 21C20.6568 21 22 19.6568 22 18C22 16.3431 20.6568 15 19 15C18.8638 15 18.7298 15.0091 18.5984 15.0266L15.844 10.256C15.8374 10.2445 15.8305 10.2332 15.8234 10.2222C16.5575 9.35201 17 8.22768 17 7C17 4.23858 14.7614 2 12 2C9.23858 2 7 4.23858 7 7C7 8.22743 7.44229 9.35157 8.17618 10.2217L5.40203 15.0267C5.27053 15.0091 5.13632 15 5 15C3.34315 15 2 16.3431 2 18C2 19.6568 3.34315 21 5 21C6.65686 21 8 19.6568 8 18C8 17.0195 7.52964 16.1489 6.80224 15.6015L9.32791 11.2269C9.90035 11.5895 10.5515 11.8391 11.25 11.9441V15.0945C9.95608 15.4275 9 16.6021 9 18C9 19.6569 10.3431 21 12 21C13.6569 21 15 19.6569 15 18C15 16.6021 14.0439 15.4275 12.75 15.0945V11.9441ZM19 19.5C19.8284 19.5 20.5 18.8284 20.5 18C20.5 17.1716 19.8284 16.5 19 16.5C18.1716 16.5 17.5 17.1716 17.5 18C17.5 18.8284 18.1716 19.5 19 19.5ZM6.5 18C6.5 18.8284 5.82843 19.5 5 19.5C4.17157 19.5 3.5 18.8284 3.5 18C3.5 17.1716 4.17157 16.5 5 16.5C5.82843 16.5 6.5 17.1716 6.5 18ZM10.5 18C10.5 17.1716 11.1716 16.5 12 16.5C12.8284 16.5 13.5 17.1716 13.5 18C13.5 18.8284 12.8284 19.5 12 19.5C11.1716 19.5 10.5 18.8284 10.5 18Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const undo = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.67797 7.29142C10.6092 6.83217 11.6558 6.65939 12.6852 6.79492C13.7147 6.93045 14.6809 7.36821 15.4616 8.05285C16.2422 8.73748 16.8024 9.63823 17.0711 10.6412C17.3398 11.6442 17.3051 12.7043 16.9714 13.6876C16.6376 14.6708 16.0198 15.533 15.196 16.1651C14.3722 16.7972 13.3795 17.1709 12.3434 17.2388C11.3072 17.3067 10.2742 17.0658 9.37498 16.5466C9.01626 16.3395 8.55757 16.4624 8.35047 16.8212C8.14336 17.1799 8.26626 17.6386 8.62498 17.8457C9.78115 18.5132 11.1093 18.8229 12.4415 18.7356C13.7736 18.6482 15.05 18.1679 16.1091 17.3551C17.1683 16.5424 17.9626 15.4339 18.3918 14.1697C18.8209 12.9055 18.8655 11.5425 18.52 10.253C18.1745 8.96344 17.4543 7.80533 16.4506 6.92509C15.4468 6.04484 14.2046 5.48201 12.881 5.30775C11.5574 5.1335 10.2119 5.35565 9.01454 5.94611C8.24227 6.32696 7.55402 6.84999 6.98357 7.48357L5.35355 5.85355C5.03857 5.53857 4.5 5.76165 4.5 6.20711V10.5C4.5 10.7761 4.72386 11 5 11H9.29289C9.73835 11 9.96143 10.4614 9.64645 10.1464L8.04611 8.54611C8.49976 8.02679 9.05355 7.59935 9.67797 7.29142Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const underline = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M4.75005 19.2498H19.25\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M16.25 4.75024V11.0002C16.25 13.3475 14.3473 15.2502 12 15.2502C9.65284 15.2502 7.75005 13.3475 7.75005 11.0002V4.75024\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n`;\n", "export const unlink = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M6.4696 11.4697C6.76239 11.1769 7.23723 11.1771 7.53015 11.4697C7.82305 11.7626 7.82305 12.2373 7.53015 12.5302L5.53013 14.5302C4.44241 15.618 4.44263 17.3819 5.53013 18.4697C6.61796 19.5575 8.38179 19.5575 9.46962 18.4697L11.4696 16.4697C11.7624 16.1769 12.2373 16.1771 12.5302 16.4697C12.8231 16.7626 12.8231 17.2374 12.5302 17.5303L10.5302 19.5303C8.85656 21.2039 6.1432 21.2039 4.46958 19.5303C2.79628 17.8566 2.79607 15.1432 4.46958 13.4697L6.4696 11.4697ZM13.6249 14.8144C13.9837 14.6073 14.4422 14.7311 14.6494 15.0898L16.6494 18.5537C16.8565 18.9124 16.7337 19.371 16.375 19.5781C16.0163 19.785 15.5576 19.6623 15.3505 19.3037L13.3505 15.8398C13.1434 15.4811 13.2662 15.0215 13.6249 14.8144ZM14.8144 13.6249C15.0215 13.2663 15.4811 13.1434 15.8398 13.3505L19.3037 15.3505C19.6623 15.5576 19.785 16.0163 19.5781 16.375C19.371 16.7337 18.9124 16.8565 18.5537 16.6494L15.0898 14.6494C14.7311 14.4423 14.6073 13.9837 14.8144 13.6249ZM13.4697 4.46959C15.1432 2.79608 17.8566 2.79629 19.5303 4.46959C21.2039 6.14321 21.2039 8.85657 19.5303 10.5302L17.5302 12.5302C17.2373 12.8231 16.7626 12.8231 16.4697 12.5302C16.1771 12.2373 16.1769 11.7624 16.4697 11.4697L18.4697 9.46964C19.5575 8.38181 19.5575 6.61798 18.4697 5.53015C17.3819 4.44264 15.6179 4.44243 14.5302 5.53015L12.5302 7.53017C12.2373 7.82306 11.7625 7.82306 11.4696 7.53017C11.1771 7.23725 11.1769 6.7624 11.4696 6.46961L13.4697 4.46959ZM4.4227 7.62489C4.62991 7.26644 5.08852 7.14344 5.44713 7.35048L8.91102 9.3505C9.2697 9.55758 9.39243 10.0162 9.18544 10.3749C8.97833 10.7336 8.51974 10.8564 8.16102 10.6493L4.69712 8.64932C4.33846 8.44219 4.21561 7.98359 4.4227 7.62489ZM7.62488 4.42272C7.98358 4.21562 8.44217 4.33847 8.6493 4.69713L10.6493 8.16103C10.8564 8.51975 10.7336 8.97835 10.3749 9.18546C10.0162 9.39244 9.55756 9.26971 9.35048 8.91104L7.35046 5.44714C7.14342 5.08853 7.26642 4.62992 7.62488 4.42272Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const user = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 2C17.5228 2 22 6.47715 22 12C22 15.2098 20.4857 18.0638 18.1348 19.8936C18.0344 20.055 17.8763 20.1738 17.6875 20.2227C16.0725 21.3418 14.1137 22 12 22C9.88604 22 7.92664 21.3421 6.31152 20.2227C6.12294 20.1736 5.96441 20.055 5.86426 19.8936C3.51367 18.0638 2 15.2095 2 12C2 6.47715 6.47715 2 12 2ZM11.25 15.5C9.1884 15.5 7.49093 17.0597 7.27344 19.0635C8.62515 19.9698 10.2503 20.5 12 20.5C13.7494 20.5 15.374 19.9695 16.7256 19.0635C16.508 17.0598 14.8116 15.5 12.75 15.5H11.25ZM12 3.5C7.30558 3.5 3.5 7.30558 3.5 12C3.5 14.3333 4.44073 16.4464 5.96289 17.9824C6.62169 15.683 8.73895 14 11.25 14H12.75C15.2609 14 17.3772 15.6832 18.0361 17.9824C19.5586 16.4464 20.5 14.3335 20.5 12C20.5 7.30558 16.6944 3.5 12 3.5ZM12 5.25C14.0711 5.25 15.75 6.92893 15.75 9C15.75 11.0711 14.0711 12.75 12 12.75C9.92893 12.75 8.25 11.0711 8.25 9C8.25 6.92893 9.92893 5.25 12 5.25ZM12 6.75C10.7574 6.75 9.75 7.75736 9.75 9C9.75 10.2426 10.7574 11.25 12 11.25C13.2426 11.25 14.25 10.2426 14.25 9C14.25 7.75736 13.2426 6.75 12 6.75Z\" />\n</svg>`;\n", "export const vertical = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M15.5001 4.70703C15.9142 4.70707 16.25 5.04287 16.2501 5.45703V17.1465L17.4698 15.9268C17.7627 15.6339 18.2375 15.6339 18.5303 15.9268C18.8232 16.2196 18.8232 16.6944 18.5303 16.9873L15.5001 20.0176L12.4698 16.9873C12.1769 16.6944 12.1769 16.2197 12.4698 15.9268C12.7627 15.6339 13.2375 15.6339 13.5303 15.9268L14.7501 17.1465V5.45703C14.7501 5.04285 15.0859 4.70703 15.5001 4.70703ZM11.5303 7.42676C11.8232 7.71963 11.8232 8.19441 11.5303 8.4873C11.2374 8.7802 10.7627 8.78019 10.4698 8.4873L9.25006 7.26758V18.957C9.25006 19.3712 8.91424 19.707 8.50006 19.707C8.08585 19.707 7.75006 19.3712 7.75006 18.957V7.26758L6.53033 8.4873C6.23744 8.7802 5.76268 8.78019 5.46979 8.4873C5.17689 8.19441 5.17689 7.71965 5.46979 7.42676L8.50006 4.39648L11.5303 7.42676Z\" fill=\"currentColor\"/>\n<path d=\"M15.5 4.70703C15.9142 4.70707 16.25 5.04287 16.25 5.45703V17.1465L17.4697 15.9268C17.7626 15.6339 18.2374 15.6339 18.5303 15.9268C18.8231 16.2196 18.8231 16.6944 18.5303 16.9873L15.5 20.0176L12.4697 16.9873C12.1768 16.6944 12.1768 16.2197 12.4697 15.9268C12.7626 15.6339 13.2374 15.6339 13.5303 15.9268L14.75 17.1465V5.45703C14.75 5.04285 15.0858 4.70703 15.5 4.70703ZM11.5303 7.42676C11.8231 7.71963 11.8231 8.19441 11.5303 8.4873C11.2374 8.7802 10.7626 8.78019 10.4697 8.4873L9.25001 7.26758V18.957C9.25001 19.3712 8.91419 19.707 8.50001 19.707C8.08579 19.707 7.75001 19.3712 7.75001 18.957V7.26758L6.53028 8.4873C6.23739 8.7802 5.76262 8.78019 5.46973 8.4873C5.17684 8.19441 5.17684 7.71965 5.46973 7.42676L8.50001 4.39648L11.5303 7.42676Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const wallet = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M14.2275 3.02681C16.5581 2.53634 18.7497 4.3152 18.75 6.69674V7.09518C20.0437 7.42823 20.9998 8.60187 21 9.99948V16.9995C21 18.6046 19.7394 19.9153 18.1543 19.9956L18 19.9995H6C4.39489 19.9995 3.08421 18.7389 3.00391 17.1538L3 16.9995V8.43405C3.00022 6.66092 4.2424 5.12941 5.97754 4.76412L14.2275 3.02681ZM6 8.49948C5.17173 8.49948 4.50026 9.17127 4.5 9.99948V16.9995C4.5 17.8279 5.17157 18.4995 6 18.4995H18C18.8284 18.4995 19.5 17.8279 19.5 16.9995V9.99948C19.4997 9.17127 18.8283 8.49948 18 8.49948H6ZM16.5 11.9995C17.3283 11.9995 17.9997 12.6713 18 13.4995C18 14.3279 17.3284 14.9995 16.5 14.9995C15.6716 14.9995 15 14.3279 15 13.4995C15.0003 12.6713 15.6717 11.9995 16.5 11.9995ZM17.25 6.69674C17.2497 5.26791 15.9344 4.20028 14.5361 4.49459L6.28613 6.2319C5.67607 6.36042 5.16896 6.73055 4.85254 7.22799C5.20609 7.08147 5.59347 6.99948 6 6.99948H17.25V6.69674Z\" />\n</svg>`;\n", "export const warning = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20.5 12C20.5 16.6944 16.6944 20.5 12 20.5C7.30558 20.5 3.5 16.6944 3.5 12C3.5 7.30558 7.30558 3.5 12 3.5C16.6944 3.5 20.5 7.30558 20.5 12ZM22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM11.25 7.75C11.25 7.33579 11.5858 7 12 7C12.4142 7 12.75 7.33579 12.75 7.75V13.25C12.75 13.6642 12.4142 14 12 14C11.5858 14 11.25 13.6642 11.25 13.25V7.75ZM12.75 15.75C12.75 16.1642 12.4142 16.5 12 16.5C11.5858 16.5 11.25 16.1642 11.25 15.75C11.25 15.3358 11.5858 15 12 15C12.4142 15 12.75 15.3358 12.75 15.75Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {Disconnectable, Part} from './lit-html.js';\n\nexport {\n AttributePart,\n BooleanAttributePart,\n ChildPart,\n ElementPart,\n EventPart,\n Part,\n PropertyPart,\n} from './lit-html.js';\n\nexport interface DirectiveClass {\n new (part: PartInfo): Directive;\n}\n\n/**\n * This utility type extracts the signature of a directive class's render()\n * method so we can use it for the type of the generated directive function.\n */\nexport type DirectiveParameters<C extends Directive> = Parameters<C['render']>;\n\n/**\n * A generated directive function doesn't evaluate the directive, but just\n * returns a DirectiveResult object that captures the arguments.\n */\nexport interface DirectiveResult<C extends DirectiveClass = DirectiveClass> {\n /**\n * This property needs to remain unminified.\n * @internal\n */\n ['_$litDirective$']: C;\n /** @internal */\n values: DirectiveParameters<InstanceType<C>>;\n}\n\nexport const PartType = {\n ATTRIBUTE: 1,\n CHILD: 2,\n PROPERTY: 3,\n BOOLEAN_ATTRIBUTE: 4,\n EVENT: 5,\n ELEMENT: 6,\n} as const;\n\nexport type PartType = (typeof PartType)[keyof typeof PartType];\n\nexport interface ChildPartInfo {\n readonly type: typeof PartType.CHILD;\n}\n\nexport interface AttributePartInfo {\n readonly type:\n | typeof PartType.ATTRIBUTE\n | typeof PartType.PROPERTY\n | typeof PartType.BOOLEAN_ATTRIBUTE\n | typeof PartType.EVENT;\n readonly strings?: ReadonlyArray<string>;\n readonly name: string;\n readonly tagName: string;\n}\n\nexport interface ElementPartInfo {\n readonly type: typeof PartType.ELEMENT;\n}\n\n/**\n * Information about the part a directive is bound to.\n *\n * This is useful for checking that a directive is attached to a valid part,\n * such as with directive that can only be used on attribute bindings.\n */\nexport type PartInfo = ChildPartInfo | AttributePartInfo | ElementPartInfo;\n\n/**\n * Creates a user-facing directive function from a Directive class. This\n * function has the same parameters as the directive's render() method.\n */\nexport const directive =\n <C extends DirectiveClass>(c: C) =>\n (...values: DirectiveParameters<InstanceType<C>>): DirectiveResult<C> => ({\n // This property needs to remain unminified.\n ['_$litDirective$']: c,\n values,\n });\n\n/**\n * Base class for creating custom directives. Users should extend this class,\n * implement `render` and/or `update`, and then pass their subclass to\n * `directive`.\n */\nexport abstract class Directive implements Disconnectable {\n //@internal\n __part!: Part;\n //@internal\n __attributeIndex: number | undefined;\n //@internal\n __directive?: Directive;\n\n //@internal\n _$parent!: Disconnectable;\n\n // These will only exist on the AsyncDirective subclass\n //@internal\n _$disconnectableChildren?: Set<Disconnectable>;\n // This property needs to remain unminified.\n //@internal\n ['_$notifyDirectiveConnectionChanged']?(isConnected: boolean): void;\n\n constructor(_partInfo: PartInfo) {}\n\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n\n /** @internal */\n _$initialize(\n part: Part,\n parent: Disconnectable,\n attributeIndex: number | undefined\n ) {\n this.__part = part;\n this._$parent = parent;\n this.__attributeIndex = attributeIndex;\n }\n /** @internal */\n _$resolve(part: Part, props: Array<unknown>): unknown {\n return this.update(part, props);\n }\n\n abstract render(...props: Array<unknown>): unknown;\n\n update(_part: Part, props: Array<unknown>): unknown {\n return this.render(...props);\n }\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {nothing, TemplateResult, noChange} from '../lit-html.js';\nimport {directive, Directive, PartInfo, PartType} from '../directive.js';\n\nconst HTML_RESULT = 1;\n\nexport class UnsafeHTMLDirective extends Directive {\n static directiveName = 'unsafeHTML';\n static resultType = HTML_RESULT;\n\n private _value: unknown = nothing;\n private _templateResult?: TemplateResult;\n\n constructor(partInfo: PartInfo) {\n super(partInfo);\n if (partInfo.type !== PartType.CHILD) {\n throw new Error(\n `${\n (this.constructor as typeof UnsafeHTMLDirective).directiveName\n }() can only be used in child bindings`\n );\n }\n }\n\n render(value: string | typeof nothing | typeof noChange | undefined | null) {\n if (value === nothing || value == null) {\n this._templateResult = undefined;\n return (this._value = value);\n }\n if (value === noChange) {\n return value;\n }\n if (typeof value != 'string') {\n throw new Error(\n `${\n (this.constructor as typeof UnsafeHTMLDirective).directiveName\n }() called with a non-string value`\n );\n }\n if (value === this._value) {\n return this._templateResult;\n }\n this._value = value;\n const strings = [value] as unknown as TemplateStringsArray;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (strings as any).raw = strings;\n // WARNING: impersonating a TemplateResult like this is extremely\n // dangerous. Third-party directives should not do this.\n return (this._templateResult = {\n // Cast to a known set of integers that satisfy ResultType so that we\n // don't have to export ResultType and possibly encourage this pattern.\n // This property needs to remain unminified.\n ['_$litType$']: (this.constructor as typeof UnsafeHTMLDirective)\n .resultType as 1 | 2,\n strings,\n values: [],\n });\n }\n}\n\n/**\n * Renders the result as HTML, rather than text.\n *\n * The values `undefined`, `null`, and `nothing`, will all result in no content\n * (empty string) being rendered.\n *\n * Note, this is unsafe to use with any user-provided input that hasn't been\n * sanitized or escaped, as it may lead to cross-site-scripting\n * vulnerabilities.\n */\nexport const unsafeHTML = directive(UnsafeHTMLDirective);\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {directive} from '../directive.js';\nimport {UnsafeHTMLDirective} from './unsafe-html.js';\n\nconst SVG_RESULT = 2;\n\nclass UnsafeSVGDirective extends UnsafeHTMLDirective {\n static override directiveName = 'unsafeSVG';\n static override resultType = SVG_RESULT;\n}\n\n/**\n * Renders the result as SVG, rather than text.\n *\n * The values `undefined`, `null`, and `nothing`, will all result in no content\n * (empty string) being rendered.\n *\n * Note, this is unsafe to use with any user-provided input that hasn't been\n * sanitized or escaped, as it may lead to cross-site-scripting\n * vulnerabilities.\n */\nexport const unsafeSVG = directive(UnsafeSVGDirective);\n\n/**\n * The type of the class that powers this directive. Necessary for naming the\n * directive's return type.\n */\nexport type {UnsafeSVGDirective};\n", "/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {AttributePart, noChange} from '../lit-html.js';\nimport {\n directive,\n Directive,\n DirectiveParameters,\n PartInfo,\n PartType,\n} from '../directive.js';\n\n/**\n * A key-value set of CSS properties and values.\n *\n * The key should be either a valid CSS property name string, like\n * `'background-color'`, or a valid JavaScript camel case property name\n * for CSSStyleDeclaration like `backgroundColor`.\n */\nexport interface StyleInfo {\n [name: string]: string | number | undefined | null;\n}\n\nconst important = 'important';\n// The leading space is important\nconst importantFlag = ' !' + important;\n// How many characters to remove from a value, as a negative number\nconst flagTrim = 0 - importantFlag.length;\n\nclass StyleMapDirective extends Directive {\n private _previousStyleProperties?: Set<string>;\n\n constructor(partInfo: PartInfo) {\n super(partInfo);\n if (\n partInfo.type !== PartType.ATTRIBUTE ||\n partInfo.name !== 'style' ||\n (partInfo.strings?.length as number) > 2\n ) {\n throw new Error(\n 'The `styleMap` directive must be used in the `style` attribute ' +\n 'and must be the only part in the attribute.'\n );\n }\n }\n\n render(styleInfo: Readonly<StyleInfo>) {\n return Object.keys(styleInfo).reduce((style, prop) => {\n const value = styleInfo[prop];\n if (value == null) {\n return style;\n }\n // Convert property names from camel-case to dash-case, i.e.:\n // `backgroundColor` -> `background-color`\n // Vendor-prefixed names need an extra `-` appended to front:\n // `webkitAppearance` -> `-webkit-appearance`\n // Exception is any property name containing a dash, including\n // custom properties; we assume these are already dash-cased i.e.:\n // `--my-button-color` --> `--my-button-color`\n prop = prop.includes('-')\n ? prop\n : prop\n .replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g, '-$&')\n .toLowerCase();\n return style + `${prop}:${value};`;\n }, '');\n }\n\n override update(part: AttributePart, [styleInfo]: DirectiveParameters<this>) {\n const {style} = part.element as HTMLElement;\n\n if (this._previousStyleProperties === undefined) {\n this._previousStyleProperties = new Set(Object.keys(styleInfo));\n return this.render(styleInfo);\n }\n\n // Remove old properties that no longer exist in styleInfo\n for (const name of this._previousStyleProperties) {\n // If the name isn't in styleInfo or it's null/undefined\n if (styleInfo[name] == null) {\n this._previousStyleProperties!.delete(name);\n if (name.includes('-')) {\n style.removeProperty(name);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (style as any)[name] = null;\n }\n }\n }\n\n // Add or update properties\n for (const name in styleInfo) {\n const value = styleInfo[name];\n if (value != null) {\n this._previousStyleProperties.add(name);\n const isImportant =\n typeof value === 'string' && value.endsWith(importantFlag);\n if (name.includes('-') || isImportant) {\n style.setProperty(\n name,\n isImportant\n ? (value as string).slice(0, flagTrim)\n : (value as string),\n isImportant ? important : ''\n );\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (style as any)[name] = value;\n }\n }\n }\n return noChange;\n }\n}\n\n/**\n * A directive that applies CSS properties to an element.\n *\n * `styleMap` can only be used in the `style` attribute and must be the only\n * expression in the attribute. It takes the property names in the\n * {@link StyleInfo styleInfo} object and adds the properties to the inline\n * style of the element.\n *\n * Property names with dashes (`-`) are assumed to be valid CSS\n * property names and set on the element's style object using `setProperty()`.\n * Names without dashes are assumed to be camelCased JavaScript property names\n * and set on the element's style object using property assignment, allowing the\n * style object to translate JavaScript-style names to CSS property names.\n *\n * For example `styleMap({backgroundColor: 'red', 'border-top': '5px', '--size':\n * '0'})` sets the `background-color`, `border-top` and `--size` properties.\n *\n * @param styleInfo\n * @see {@link https://lit.dev/docs/templates/directives/#stylemap styleMap code samples on Lit.dev}\n */\nexport const styleMap = directive(StyleMapDirective);\n\n/**\n * The type of the class that powers this directive. Necessary for naming the\n * directive's return type.\n */\nexport type {StyleMapDirective};\n", "import { html, LitElement, css } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport * as Icons from '@triptease/icons';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { styleMap } from 'lit/directives/style-map.js';\n\nconst iconRegistry = Icons as Record<string, string>;\n\nexport class TtIcon extends LitElement {\n static styles = css`\n svg {\n width: 100%;\n height: 100%;\n display: block;\n }\n `;\n\n @property({ type: String })\n public name: string | undefined;\n\n @property({ type: String })\n public label: string | undefined;\n\n @property({ type: String })\n public color: string | undefined;\n\n @property({ type: Number })\n public size: 16 | 24 | 32 = 24;\n\n render() {\n if (!this.name) {\n throw new Error('name attribute is required');\n }\n\n const svg = iconRegistry[this.name];\n\n if (!svg) {\n throw new Error(`Icon ${this.name} not found`);\n }\n\n const sizeInPx = `${this.size}px`;\n\n return html`<span\n role=${this.label ? 'img' : 'presentation'}\n aria-label=\"${this.label}\"\n style=${styleMap({\n color: this.color,\n width: sizeInPx,\n height: sizeInPx,\n display: 'inline-block',\n lineHeight: 0,\n verticalAlign: 'middle',\n })}\n >${unsafeSVG(svg)}</span\n >`;\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
3
|
+
"sources": ["../../../../node_modules/@lit/reactive-element/src/css-tag.ts", "../../../../node_modules/@lit/reactive-element/src/reactive-element.ts", "../../../../node_modules/lit-html/src/lit-html.ts", "../../../../node_modules/lit-element/src/lit-element.ts", "../../../../node_modules/@lit/reactive-element/src/decorators/property.ts", "../../../icons/src/index.ts", "../../../icons/src/icons/account.ts", "../../../icons/src/icons/alert.ts", "../../../icons/src/icons/align-center.ts", "../../../icons/src/icons/align-left.ts", "../../../icons/src/icons/align-right.ts", "../../../icons/src/icons/arrow-down.ts", "../../../icons/src/icons/arrow-left.ts", "../../../icons/src/icons/arrow-right.ts", "../../../icons/src/icons/arrow-up.ts", "../../../icons/src/icons/audience-targeting.ts", "../../../icons/src/icons/bold.ts", "../../../icons/src/icons/bullet-list.ts", "../../../icons/src/icons/button.ts", "../../../icons/src/icons/calendar.ts", "../../../icons/src/icons/campaigns.ts", "../../../icons/src/icons/channels.ts", "../../../icons/src/icons/checkbox-checked.ts", "../../../icons/src/icons/chevron.ts", "../../../icons/src/icons/chevron-down.ts", "../../../icons/src/icons/chevron-right.ts", "../../../icons/src/icons/chevron-up.ts", "../../../icons/src/icons/clock.ts", "../../../icons/src/icons/close.ts", "../../../icons/src/icons/cog.ts", "../../../icons/src/icons/coin.ts", "../../../icons/src/icons/collapsible.ts", "../../../icons/src/icons/column.ts", "../../../icons/src/icons/comparison.ts", "../../../icons/src/icons/container.ts", "../../../icons/src/icons/countdown.ts", "../../../icons/src/icons/date-boost.ts", "../../../icons/src/icons/delete.ts", "../../../icons/src/icons/desktop.ts", "../../../icons/src/icons/disabled.ts", "../../../icons/src/icons/dismissible.ts", "../../../icons/src/icons/divider.ts", "../../../icons/src/icons/double-chevron.ts", "../../../icons/src/icons/download.ts", "../../../icons/src/icons/dropdown.ts", "../../../icons/src/icons/duplicate.ts", "../../../icons/src/icons/edit.ts", "../../../icons/src/icons/email.ts", "../../../icons/src/icons/embed.ts", "../../../icons/src/icons/experiment.ts", "../../../icons/src/icons/external.ts", "../../../icons/src/icons/filter.ts", "../../../icons/src/icons/form.ts", "../../../icons/src/icons/gallery.ts", "../../../icons/src/icons/gear.ts", "../../../icons/src/icons/globe.ts", "../../../icons/src/icons/graph.ts", "../../../icons/src/icons/handle.ts", "../../../icons/src/icons/help.ts", "../../../icons/src/icons/home.ts", "../../../icons/src/icons/horizontal.ts", "../../../icons/src/icons/hotel.ts", "../../../icons/src/icons/info.ts", "../../../icons/src/icons/insights.ts", "../../../icons/src/icons/italic.ts", "../../../icons/src/icons/keyboard.ts", "../../../icons/src/icons/lightning-bolt.ts", "../../../icons/src/icons/link.ts", "../../../icons/src/icons/logout.ts", "../../../icons/src/icons/messages.ts", "../../../icons/src/icons/minus.ts", "../../../icons/src/icons/mobile.ts", "../../../icons/src/icons/move-to-parent.ts", "../../../icons/src/icons/multi-message.ts", "../../../icons/src/icons/new-tab.ts", "../../../icons/src/icons/numbered-list.ts", "../../../icons/src/icons/pause.ts", "../../../icons/src/icons/pause-filled.ts", "../../../icons/src/icons/pie-chart.ts", "../../../icons/src/icons/plus.ts", "../../../icons/src/icons/preview.ts", "../../../icons/src/icons/radio-checked.ts", "../../../icons/src/icons/redo.ts", "../../../icons/src/icons/rename.ts", "../../../icons/src/icons/section.ts", "../../../icons/src/icons/send.ts", "../../../icons/src/icons/share.ts", "../../../icons/src/icons/sidebar-collapsed.ts", "../../../icons/src/icons/sidebar-expanded.ts", "../../../icons/src/icons/stop.ts", "../../../icons/src/icons/stop-filled.ts", "../../../icons/src/icons/strikethrough.ts", "../../../icons/src/icons/tag.ts", "../../../icons/src/icons/target.ts", "../../../icons/src/icons/templates.ts", "../../../icons/src/icons/text.ts", "../../../icons/src/icons/text-input.ts", "../../../icons/src/icons/tick.ts", "../../../icons/src/icons/ticket.ts", "../../../icons/src/icons/tree-graph.ts", "../../../icons/src/icons/undo.ts", "../../../icons/src/icons/underline.ts", "../../../icons/src/icons/unlink.ts", "../../../icons/src/icons/user.ts", "../../../icons/src/icons/vertical.ts", "../../../icons/src/icons/wallet.ts", "../../../icons/src/icons/warning.ts", "../../../../node_modules/lit-html/src/directive.ts", "../../../../node_modules/lit-html/src/directives/unsafe-html.ts", "../../../../node_modules/lit-html/src/directives/unsafe-svg.ts", "../../../../node_modules/lit-html/src/directives/style-map.ts", "../../src/TtIcon.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nconst NODE_MODE = false;\n\n// Allows minifiers to rename references to globalThis\nconst global = globalThis;\n\n/**\n * Whether the current browser supports `adoptedStyleSheets`.\n */\nexport const supportsAdoptingStyleSheets: boolean =\n global.ShadowRoot &&\n (global.ShadyCSS === undefined || global.ShadyCSS.nativeShadow) &&\n 'adoptedStyleSheets' in Document.prototype &&\n 'replace' in CSSStyleSheet.prototype;\n\n/**\n * A CSSResult or native CSSStyleSheet.\n *\n * In browsers that support constructible CSS style sheets, CSSStyleSheet\n * object can be used for styling along side CSSResult from the `css`\n * template tag.\n */\nexport type CSSResultOrNative = CSSResult | CSSStyleSheet;\n\nexport type CSSResultArray = Array<CSSResultOrNative | CSSResultArray>;\n\n/**\n * A single CSSResult, CSSStyleSheet, or an array or nested arrays of those.\n */\nexport type CSSResultGroup = CSSResultOrNative | CSSResultArray;\n\nconst constructionToken = Symbol();\n\nconst cssTagCache = new WeakMap<TemplateStringsArray, CSSStyleSheet>();\n\n/**\n * A container for a string of CSS text, that may be used to create a CSSStyleSheet.\n *\n * CSSResult is the return value of `css`-tagged template literals and\n * `unsafeCSS()`. In order to ensure that CSSResults are only created via the\n * `css` tag and `unsafeCSS()`, CSSResult cannot be constructed directly.\n */\nexport class CSSResult {\n // This property needs to remain unminified.\n ['_$cssResult$'] = true;\n readonly cssText: string;\n private _styleSheet?: CSSStyleSheet;\n private _strings: TemplateStringsArray | undefined;\n\n private constructor(\n cssText: string,\n strings: TemplateStringsArray | undefined,\n safeToken: symbol\n ) {\n if (safeToken !== constructionToken) {\n throw new Error(\n 'CSSResult is not constructable. Use `unsafeCSS` or `css` instead.'\n );\n }\n this.cssText = cssText;\n this._strings = strings;\n }\n\n // This is a getter so that it's lazy. In practice, this means stylesheets\n // are not created until the first element instance is made.\n get styleSheet(): CSSStyleSheet | undefined {\n // If `supportsAdoptingStyleSheets` is true then we assume CSSStyleSheet is\n // constructable.\n let styleSheet = this._styleSheet;\n const strings = this._strings;\n if (supportsAdoptingStyleSheets && styleSheet === undefined) {\n const cacheable = strings !== undefined && strings.length === 1;\n if (cacheable) {\n styleSheet = cssTagCache.get(strings);\n }\n if (styleSheet === undefined) {\n (this._styleSheet = styleSheet = new CSSStyleSheet()).replaceSync(\n this.cssText\n );\n if (cacheable) {\n cssTagCache.set(strings, styleSheet);\n }\n }\n }\n return styleSheet;\n }\n\n toString(): string {\n return this.cssText;\n }\n}\n\ntype ConstructableCSSResult = CSSResult & {\n new (\n cssText: string,\n strings: TemplateStringsArray | undefined,\n safeToken: symbol\n ): CSSResult;\n};\n\nconst textFromCSSResult = (value: CSSResultGroup | number) => {\n // This property needs to remain unminified.\n if ((value as CSSResult)['_$cssResult$'] === true) {\n return (value as CSSResult).cssText;\n } else if (typeof value === 'number') {\n return value;\n } else {\n throw new Error(\n `Value passed to 'css' function must be a 'css' function result: ` +\n `${value}. Use 'unsafeCSS' to pass non-literal values, but take care ` +\n `to ensure page security.`\n );\n }\n};\n\n/**\n * Wrap a value for interpolation in a {@linkcode css} tagged template literal.\n *\n * This is unsafe because untrusted CSS text can be used to phone home\n * or exfiltrate data to an attacker controlled site. Take care to only use\n * this with trusted input.\n */\nexport const unsafeCSS = (value: unknown) =>\n new (CSSResult as ConstructableCSSResult)(\n typeof value === 'string' ? value : String(value),\n undefined,\n constructionToken\n );\n\n/**\n * A template literal tag which can be used with LitElement's\n * {@linkcode LitElement.styles} property to set element styles.\n *\n * For security reasons, only literal string values and number may be used in\n * embedded expressions. To incorporate non-literal values {@linkcode unsafeCSS}\n * may be used inside an expression.\n */\nexport const css = (\n strings: TemplateStringsArray,\n ...values: (CSSResultGroup | number)[]\n): CSSResult => {\n const cssText =\n strings.length === 1\n ? strings[0]\n : values.reduce(\n (acc, v, idx) => acc + textFromCSSResult(v) + strings[idx + 1],\n strings[0]\n );\n return new (CSSResult as ConstructableCSSResult)(\n cssText,\n strings,\n constructionToken\n );\n};\n\n/**\n * Applies the given styles to a `shadowRoot`. When Shadow DOM is\n * available but `adoptedStyleSheets` is not, styles are appended to the\n * `shadowRoot` to [mimic the native feature](https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot/adoptedStyleSheets).\n * Note, when shimming is used, any styles that are subsequently placed into\n * the shadowRoot should be placed *before* any shimmed adopted styles. This\n * will match spec behavior that gives adopted sheets precedence over styles in\n * shadowRoot.\n */\nexport const adoptStyles = (\n renderRoot: ShadowRoot,\n styles: Array<CSSResultOrNative>\n) => {\n if (supportsAdoptingStyleSheets) {\n (renderRoot as ShadowRoot).adoptedStyleSheets = styles.map((s) =>\n s instanceof CSSStyleSheet ? s : s.styleSheet!\n );\n } else {\n for (const s of styles) {\n const style = document.createElement('style');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const nonce = (global as any)['litNonce'];\n if (nonce !== undefined) {\n style.setAttribute('nonce', nonce);\n }\n style.textContent = (s as CSSResult).cssText;\n renderRoot.appendChild(style);\n }\n }\n};\n\nconst cssResultFromStyleSheet = (sheet: CSSStyleSheet) => {\n let cssText = '';\n for (const rule of sheet.cssRules) {\n cssText += rule.cssText;\n }\n return unsafeCSS(cssText);\n};\n\nexport const getCompatibleStyle =\n supportsAdoptingStyleSheets ||\n (NODE_MODE && global.CSSStyleSheet === undefined)\n ? (s: CSSResultOrNative) => s\n : (s: CSSResultOrNative) =>\n s instanceof CSSStyleSheet ? cssResultFromStyleSheet(s) : s;\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * Use this module if you want to create your own base class extending\n * {@link ReactiveElement}.\n * @packageDocumentation\n */\n\nimport {\n getCompatibleStyle,\n adoptStyles,\n CSSResultGroup,\n CSSResultOrNative,\n} from './css-tag.js';\nimport type {\n ReactiveController,\n ReactiveControllerHost,\n} from './reactive-controller.js';\n\n// In the Node build, this import will be injected by Rollup:\n// import {HTMLElement, customElements} from '@lit-labs/ssr-dom-shim';\n\nexport * from './css-tag.js';\nexport type {\n ReactiveController,\n ReactiveControllerHost,\n} from './reactive-controller.js';\n\n/**\n * Removes the `readonly` modifier from properties in the union K.\n *\n * This is a safer way to cast a value to a type with a mutable version of a\n * readonly field, than casting to an interface with the field re-declared\n * because it preserves the type of all the fields and warns on typos.\n */\ntype Mutable<T, K extends keyof T> = Omit<T, K> & {\n -readonly [P in keyof Pick<T, K>]: P extends K ? T[P] : never;\n};\n\n// TODO (justinfagnani): Add `hasOwn` here when we ship ES2022\nconst {\n is,\n defineProperty,\n getOwnPropertyDescriptor,\n getOwnPropertyNames,\n getOwnPropertySymbols,\n getPrototypeOf,\n} = Object;\n\nconst NODE_MODE = false;\n\n// Lets a minifier replace globalThis references with a minified name\nconst global = globalThis;\n\nif (NODE_MODE) {\n global.customElements ??= customElements;\n}\n\nconst DEV_MODE = true;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nconst trustedTypes = (global as unknown as {trustedTypes?: {emptyScript: ''}})\n .trustedTypes;\n\n// Temporary workaround for https://crbug.com/993268\n// Currently, any attribute starting with \"on\" is considered to be a\n// TrustedScript source. Such boolean attributes must be set to the equivalent\n// trusted emptyScript value.\nconst emptyStringForBooleanAttribute = trustedTypes\n ? (trustedTypes.emptyScript as unknown as '')\n : '';\n\nconst polyfillSupport = DEV_MODE\n ? global.reactiveElementPolyfillSupportDevMode\n : global.reactiveElementPolyfillSupport;\n\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n global.litIssuedWarnings ??= new Set();\n\n /**\n * Issue a warning if we haven't already, based either on `code` or `warning`.\n * Warnings are disabled automatically only by `warning`; disabling via `code`\n * can be done by users.\n */\n issueWarning = (code: string, warning: string) => {\n warning += ` See https://lit.dev/msg/${code} for more information.`;\n if (\n !global.litIssuedWarnings!.has(warning) &&\n !global.litIssuedWarnings!.has(code)\n ) {\n console.warn(warning);\n global.litIssuedWarnings!.add(warning);\n }\n };\n\n queueMicrotask(() => {\n issueWarning(\n 'dev-mode',\n `Lit is in dev mode. Not recommended for production!`\n );\n\n // Issue polyfill support warning.\n if (global.ShadyDOM?.inUse && polyfillSupport === undefined) {\n issueWarning(\n 'polyfill-support-missing',\n `Shadow DOM is being polyfilled via \\`ShadyDOM\\` but ` +\n `the \\`polyfill-support\\` module has not been loaded.`\n );\n }\n });\n}\n\n/**\n * Contains types that are part of the unstable debug API.\n *\n * Everything in this API is not stable and may change or be removed in the future,\n * even on patch releases.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace ReactiveUnstable {\n /**\n * When Lit is running in dev mode and `window.emitLitDebugLogEvents` is true,\n * we will emit 'lit-debug' events to window, with live details about the update and render\n * lifecycle. These can be useful for writing debug tooling and visualizations.\n *\n * Please be aware that running with window.emitLitDebugLogEvents has performance overhead,\n * making certain operations that are normally very cheap (like a no-op render) much slower,\n * because we must copy data and dispatch events.\n */\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace DebugLog {\n export type Entry = Update;\n export interface Update {\n kind: 'update';\n }\n }\n}\n\ninterface DebugLoggingWindow {\n // Even in dev mode, we generally don't want to emit these events, as that's\n // another level of cost, so only emit them when DEV_MODE is true _and_ when\n // window.emitLitDebugEvents is true.\n emitLitDebugLogEvents?: boolean;\n}\n\n/**\n * Useful for visualizing and logging insights into what the Lit template system is doing.\n *\n * Compiled out of prod mode builds.\n */\nconst debugLogEvent = DEV_MODE\n ? (event: ReactiveUnstable.DebugLog.Entry) => {\n const shouldEmit = (global as unknown as DebugLoggingWindow)\n .emitLitDebugLogEvents;\n if (!shouldEmit) {\n return;\n }\n global.dispatchEvent(\n new CustomEvent<ReactiveUnstable.DebugLog.Entry>('lit-debug', {\n detail: event,\n })\n );\n }\n : undefined;\n\n/*\n * When using Closure Compiler, JSCompiler_renameProperty(property, object) is\n * replaced at compile time by the munged name for object[property]. We cannot\n * alias this function, so we have to use a small shim that has the same\n * behavior when not compiling.\n */\n/*@__INLINE__*/\nconst JSCompiler_renameProperty = <P extends PropertyKey>(\n prop: P,\n _obj: unknown\n): P => prop;\n\n/**\n * Converts property values to and from attribute values.\n */\nexport interface ComplexAttributeConverter<Type = unknown, TypeHint = unknown> {\n /**\n * Called to convert an attribute value to a property\n * value.\n */\n fromAttribute?(value: string | null, type?: TypeHint): Type;\n\n /**\n * Called to convert a property value to an attribute\n * value.\n *\n * It returns unknown instead of string, to be compatible with\n * https://github.com/WICG/trusted-types (and similar efforts).\n */\n toAttribute?(value: Type, type?: TypeHint): unknown;\n}\n\ntype AttributeConverter<Type = unknown, TypeHint = unknown> =\n | ComplexAttributeConverter<Type>\n | ((value: string | null, type?: TypeHint) => Type);\n\n/**\n * Defines options for a property accessor.\n */\nexport interface PropertyDeclaration<Type = unknown, TypeHint = unknown> {\n /**\n * When set to `true`, indicates the property is internal private state. The\n * property should not be set by users. When using TypeScript, this property\n * should be marked as `private` or `protected`, and it is also a common\n * practice to use a leading `_` in the name. The property is not added to\n * `observedAttributes`.\n */\n readonly state?: boolean;\n\n /**\n * Indicates how and whether the property becomes an observed attribute.\n * If the value is `false`, the property is not added to `observedAttributes`.\n * If true or absent, the lowercased property name is observed (e.g. `fooBar`\n * becomes `foobar`). If a string, the string value is observed (e.g\n * `attribute: 'foo-bar'`).\n */\n readonly attribute?: boolean | string;\n\n /**\n * Indicates the type of the property. This is used only as a hint for the\n * `converter` to determine how to convert the attribute\n * to/from a property.\n */\n readonly type?: TypeHint;\n\n /**\n * Indicates how to convert the attribute to/from a property. If this value\n * is a function, it is used to convert the attribute value a the property\n * value. If it's an object, it can have keys for `fromAttribute` and\n * `toAttribute`. If no `toAttribute` function is provided and\n * `reflect` is set to `true`, the property value is set directly to the\n * attribute. A default `converter` is used if none is provided; it supports\n * `Boolean`, `String`, `Number`, `Object`, and `Array`. Note,\n * when a property changes and the converter is used to update the attribute,\n * the property is never updated again as a result of the attribute changing,\n * and vice versa.\n */\n readonly converter?: AttributeConverter<Type, TypeHint>;\n\n /**\n * Indicates if the property should reflect to an attribute.\n * If `true`, when the property is set, the attribute is set using the\n * attribute name determined according to the rules for the `attribute`\n * property option and the value of the property converted using the rules\n * from the `converter` property option.\n */\n readonly reflect?: boolean;\n\n /**\n * A function that indicates if a property should be considered changed when\n * it is set. The function should take the `newValue` and `oldValue` and\n * return `true` if an update should be requested.\n */\n hasChanged?(value: Type, oldValue: Type): boolean;\n\n /**\n * Indicates whether an accessor will be created for this property. By\n * default, an accessor will be generated for this property that requests an\n * update when set. If this flag is `true`, no accessor will be created, and\n * it will be the user's responsibility to call\n * `this.requestUpdate(propertyName, oldValue)` to request an update when\n * the property changes.\n */\n readonly noAccessor?: boolean;\n\n /**\n * Whether this property is wrapping accessors. This is set by `@property`\n * to control the initial value change and reflection logic.\n *\n * @internal\n */\n wrapped?: boolean;\n\n /**\n * When `true`, uses the initial value of the property as the default value,\n * which changes how attributes are handled:\n * - The initial value does *not* reflect, even if the `reflect` option is `true`.\n * Subsequent changes to the property will reflect, even if they are equal to the\n * default value.\n * - When the attribute is removed, the property is set to the default value\n * - The initial value will not trigger an old value in the `changedProperties` map\n * argument to update lifecycle methods.\n *\n * When set, properties must be initialized, either with a field initializer, or an\n * assignment in the constructor. Not initializing the property may lead to\n * improper handling of subsequent property assignments.\n *\n * While this behavior is opt-in, most properties that reflect to attributes should\n * use `useDefault: true` so that their initial values do not reflect.\n */\n useDefault?: boolean;\n}\n\n/**\n * Map of properties to PropertyDeclaration options. For each property an\n * accessor is made, and the property is processed according to the\n * PropertyDeclaration options.\n */\nexport interface PropertyDeclarations {\n readonly [key: string]: PropertyDeclaration;\n}\n\ntype PropertyDeclarationMap = Map<PropertyKey, PropertyDeclaration>;\n\ntype AttributeMap = Map<string, PropertyKey>;\n\n/**\n * A Map of property keys to values.\n *\n * Takes an optional type parameter T, which when specified as a non-any,\n * non-unknown type, will make the Map more strongly-typed, associating the map\n * keys with their corresponding value type on T.\n *\n * Use `PropertyValues<this>` when overriding ReactiveElement.update() and\n * other lifecycle methods in order to get stronger type-checking on keys\n * and values.\n */\n// This type is conditional so that if the parameter T is not specified, or\n// is `any`, the type will include `Map<PropertyKey, unknown>`. Since T is not\n// given in the uses of PropertyValues in this file, all uses here fallback to\n// meaning `Map<PropertyKey, unknown>`, but if a developer uses\n// `PropertyValues<this>` (or any other value for T) they will get a\n// strongly-typed Map type.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type PropertyValues<T = any> = T extends object\n ? PropertyValueMap<T>\n : Map<PropertyKey, unknown>;\n\n/**\n * Do not use, instead prefer {@linkcode PropertyValues}.\n */\n// This type must be exported such that JavaScript generated by the Google\n// Closure Compiler can import a type reference.\nexport interface PropertyValueMap<T> extends Map<PropertyKey, unknown> {\n get<K extends keyof T>(k: K): T[K] | undefined;\n set<K extends keyof T>(key: K, value: T[K]): this;\n has<K extends keyof T>(k: K): boolean;\n delete<K extends keyof T>(k: K): boolean;\n}\n\nexport const defaultConverter: ComplexAttributeConverter = {\n toAttribute(value: unknown, type?: unknown): unknown {\n switch (type) {\n case Boolean:\n value = value ? emptyStringForBooleanAttribute : null;\n break;\n case Object:\n case Array:\n // if the value is `null` or `undefined` pass this through\n // to allow removing/no change behavior.\n value = value == null ? value : JSON.stringify(value);\n break;\n }\n return value;\n },\n\n fromAttribute(value: string | null, type?: unknown) {\n let fromValue: unknown = value;\n switch (type) {\n case Boolean:\n fromValue = value !== null;\n break;\n case Number:\n fromValue = value === null ? null : Number(value);\n break;\n case Object:\n case Array:\n // Do *not* generate exception when invalid JSON is set as elements\n // don't normally complain on being mis-configured.\n // TODO(sorvell): Do generate exception in *dev mode*.\n try {\n // Assert to adhere to Bazel's \"must type assert JSON parse\" rule.\n fromValue = JSON.parse(value!) as unknown;\n } catch (e) {\n fromValue = null;\n }\n break;\n }\n return fromValue;\n },\n};\n\nexport interface HasChanged {\n (value: unknown, old: unknown): boolean;\n}\n\n/**\n * Change function that returns true if `value` is different from `oldValue`.\n * This method is used as the default for a property's `hasChanged` function.\n */\nexport const notEqual: HasChanged = (value: unknown, old: unknown): boolean =>\n !is(value, old);\n\nconst defaultPropertyDeclaration: PropertyDeclaration = {\n attribute: true,\n type: String,\n converter: defaultConverter,\n reflect: false,\n useDefault: false,\n hasChanged: notEqual,\n};\n\n/**\n * A string representing one of the supported dev mode warning categories.\n */\nexport type WarningKind =\n | 'change-in-update'\n | 'migration'\n | 'async-perform-update';\n\nexport type Initializer = (element: ReactiveElement) => void;\n\n// Temporary, until google3 is on TypeScript 5.2\ndeclare global {\n interface SymbolConstructor {\n readonly metadata: unique symbol;\n }\n}\n\n// Ensure metadata is enabled. TypeScript does not polyfill\n// Symbol.metadata, so we must ensure that it exists.\n(Symbol as {metadata: symbol}).metadata ??= Symbol('metadata');\n\ndeclare global {\n // This is public global API, do not change!\n // eslint-disable-next-line no-var\n var litPropertyMetadata: WeakMap<\n object,\n Map<PropertyKey, PropertyDeclaration>\n >;\n}\n\n// Map from a class's metadata object to property options\n// Note that we must use nullish-coalescing assignment so that we only use one\n// map even if we load multiple version of this module.\nglobal.litPropertyMetadata ??= new WeakMap<\n object,\n Map<PropertyKey, PropertyDeclaration>\n>();\n\n/**\n * Base element class which manages element properties and attributes. When\n * properties change, the `update` method is asynchronously called. This method\n * should be supplied by subclasses to render updates as desired.\n * @noInheritDoc\n */\nexport abstract class ReactiveElement\n // In the Node build, this `extends` clause will be substituted with\n // `(globalThis.HTMLElement ?? HTMLElement)`.\n //\n // This way, we will first prefer any global `HTMLElement` polyfill that the\n // user has assigned, and then fall back to the `HTMLElement` shim which has\n // been imported (see note at the top of this file about how this import is\n // generated by Rollup). Note that the `HTMLElement` variable has been\n // shadowed by this import, so it no longer refers to the global.\n extends HTMLElement\n implements ReactiveControllerHost\n{\n // Note: these are patched in only in DEV_MODE.\n /**\n * Read or set all the enabled warning categories for this class.\n *\n * This property is only used in development builds.\n *\n * @nocollapse\n * @category dev-mode\n */\n static enabledWarnings?: WarningKind[];\n\n /**\n * Enable the given warning category for this class.\n *\n * This method only exists in development builds, so it should be accessed\n * with a guard like:\n *\n * ```ts\n * // Enable for all ReactiveElement subclasses\n * ReactiveElement.enableWarning?.('migration');\n *\n * // Enable for only MyElement and subclasses\n * MyElement.enableWarning?.('migration');\n * ```\n *\n * @nocollapse\n * @category dev-mode\n */\n static enableWarning?: (warningKind: WarningKind) => void;\n\n /**\n * Disable the given warning category for this class.\n *\n * This method only exists in development builds, so it should be accessed\n * with a guard like:\n *\n * ```ts\n * // Disable for all ReactiveElement subclasses\n * ReactiveElement.disableWarning?.('migration');\n *\n * // Disable for only MyElement and subclasses\n * MyElement.disableWarning?.('migration');\n * ```\n *\n * @nocollapse\n * @category dev-mode\n */\n static disableWarning?: (warningKind: WarningKind) => void;\n\n /**\n * Adds an initializer function to the class that is called during instance\n * construction.\n *\n * This is useful for code that runs against a `ReactiveElement`\n * subclass, such as a decorator, that needs to do work for each\n * instance, such as setting up a `ReactiveController`.\n *\n * ```ts\n * const myDecorator = (target: typeof ReactiveElement, key: string) => {\n * target.addInitializer((instance: ReactiveElement) => {\n * // This is run during construction of the element\n * new MyController(instance);\n * });\n * }\n * ```\n *\n * Decorating a field will then cause each instance to run an initializer\n * that adds a controller:\n *\n * ```ts\n * class MyElement extends LitElement {\n * @myDecorator foo;\n * }\n * ```\n *\n * Initializers are stored per-constructor. Adding an initializer to a\n * subclass does not add it to a superclass. Since initializers are run in\n * constructors, initializers will run in order of the class hierarchy,\n * starting with superclasses and progressing to the instance's class.\n *\n * @nocollapse\n */\n static addInitializer(initializer: Initializer) {\n this.__prepare();\n (this._initializers ??= []).push(initializer);\n }\n\n static _initializers?: Initializer[];\n\n /*\n * Due to closure compiler ES6 compilation bugs, @nocollapse is required on\n * all static methods and properties with initializers. Reference:\n * - https://github.com/google/closure-compiler/issues/1776\n */\n\n /**\n * Maps attribute names to properties; for example `foobar` attribute to\n * `fooBar` property. Created lazily on user subclasses when finalizing the\n * class.\n * @nocollapse\n */\n private static __attributeToPropertyMap: AttributeMap;\n\n /**\n * Marks class as having been finalized, which includes creating properties\n * from `static properties`, but does *not* include all properties created\n * from decorators.\n * @nocollapse\n */\n protected static finalized: true | undefined;\n\n /**\n * Memoized list of all element properties, including any superclass\n * properties. Created lazily on user subclasses when finalizing the class.\n *\n * @nocollapse\n * @category properties\n */\n static elementProperties: PropertyDeclarationMap;\n\n /**\n * User-supplied object that maps property names to `PropertyDeclaration`\n * objects containing options for configuring reactive properties. When\n * a reactive property is set the element will update and render.\n *\n * By default properties are public fields, and as such, they should be\n * considered as primarily settable by element users, either via attribute or\n * the property itself.\n *\n * Generally, properties that are changed by the element should be private or\n * protected fields and should use the `state: true` option. Properties\n * marked as `state` do not reflect from the corresponding attribute\n *\n * However, sometimes element code does need to set a public property. This\n * should typically only be done in response to user interaction, and an event\n * should be fired informing the user; for example, a checkbox sets its\n * `checked` property when clicked and fires a `changed` event. Mutating\n * public properties should typically not be done for non-primitive (object or\n * array) properties. In other cases when an element needs to manage state, a\n * private property set with the `state: true` option should be used. When\n * needed, state properties can be initialized via public properties to\n * facilitate complex interactions.\n * @nocollapse\n * @category properties\n */\n static properties: PropertyDeclarations;\n\n /**\n * Memoized list of all element styles.\n * Created lazily on user subclasses when finalizing the class.\n * @nocollapse\n * @category styles\n */\n static elementStyles: Array<CSSResultOrNative> = [];\n\n /**\n * Array of styles to apply to the element. The styles should be defined\n * using the {@linkcode css} tag function, via constructible stylesheets, or\n * imported from native CSS module scripts.\n *\n * Note on Content Security Policy:\n *\n * Element styles are implemented with `<style>` tags when the browser doesn't\n * support adopted StyleSheets. To use such `<style>` tags with the style-src\n * CSP directive, the style-src value must either include 'unsafe-inline' or\n * `nonce-<base64-value>` with `<base64-value>` replaced be a server-generated\n * nonce.\n *\n * To provide a nonce to use on generated `<style>` elements, set\n * `window.litNonce` to a server-generated nonce in your page's HTML, before\n * loading application code:\n *\n * ```html\n * <script>\n * // Generated and unique per request:\n * window.litNonce = 'a1b2c3d4';\n * </script>\n * ```\n * @nocollapse\n * @category styles\n */\n static styles?: CSSResultGroup;\n\n /**\n * Returns a list of attributes corresponding to the registered properties.\n * @nocollapse\n * @category attributes\n */\n static get observedAttributes() {\n // Ensure we've created all properties\n this.finalize();\n // this.__attributeToPropertyMap is only undefined after finalize() in\n // ReactiveElement itself. ReactiveElement.observedAttributes is only\n // accessed with ReactiveElement as the receiver when a subclass or mixin\n // calls super.observedAttributes\n return (\n this.__attributeToPropertyMap && [...this.__attributeToPropertyMap.keys()]\n );\n }\n\n private __instanceProperties?: PropertyValues = undefined;\n\n /**\n * Creates a property accessor on the element prototype if one does not exist\n * and stores a {@linkcode PropertyDeclaration} for the property with the\n * given options. The property setter calls the property's `hasChanged`\n * property option or uses a strict identity check to determine whether or not\n * to request an update.\n *\n * This method may be overridden to customize properties; however,\n * when doing so, it's important to call `super.createProperty` to ensure\n * the property is setup correctly. This method calls\n * `getPropertyDescriptor` internally to get a descriptor to install.\n * To customize what properties do when they are get or set, override\n * `getPropertyDescriptor`. To customize the options for a property,\n * implement `createProperty` like this:\n *\n * ```ts\n * static createProperty(name, options) {\n * options = Object.assign(options, {myOption: true});\n * super.createProperty(name, options);\n * }\n * ```\n *\n * @nocollapse\n * @category properties\n */\n static createProperty(\n name: PropertyKey,\n options: PropertyDeclaration = defaultPropertyDeclaration\n ) {\n // If this is a state property, force the attribute to false.\n if (options.state) {\n (options as Mutable<PropertyDeclaration, 'attribute'>).attribute = false;\n }\n this.__prepare();\n // Whether this property is wrapping accessors.\n // Helps control the initial value change and reflection logic.\n if (this.prototype.hasOwnProperty(name)) {\n options = Object.create(options);\n options.wrapped = true;\n }\n this.elementProperties.set(name, options);\n if (!options.noAccessor) {\n const key = DEV_MODE\n ? // Use Symbol.for in dev mode to make it easier to maintain state\n // when doing HMR.\n Symbol.for(`${String(name)} (@property() cache)`)\n : Symbol();\n const descriptor = this.getPropertyDescriptor(name, key, options);\n if (descriptor !== undefined) {\n defineProperty(this.prototype, name, descriptor);\n }\n }\n }\n\n /**\n * Returns a property descriptor to be defined on the given named property.\n * If no descriptor is returned, the property will not become an accessor.\n * For example,\n *\n * ```ts\n * class MyElement extends LitElement {\n * static getPropertyDescriptor(name, key, options) {\n * const defaultDescriptor =\n * super.getPropertyDescriptor(name, key, options);\n * const setter = defaultDescriptor.set;\n * return {\n * get: defaultDescriptor.get,\n * set(value) {\n * setter.call(this, value);\n * // custom action.\n * },\n * configurable: true,\n * enumerable: true\n * }\n * }\n * }\n * ```\n *\n * @nocollapse\n * @category properties\n */\n protected static getPropertyDescriptor(\n name: PropertyKey,\n key: string | symbol,\n options: PropertyDeclaration\n ): PropertyDescriptor | undefined {\n const {get, set} = getOwnPropertyDescriptor(this.prototype, name) ?? {\n get(this: ReactiveElement) {\n return this[key as keyof typeof this];\n },\n set(this: ReactiveElement, v: unknown) {\n (this as unknown as Record<string | symbol, unknown>)[key] = v;\n },\n };\n if (DEV_MODE && get == null) {\n if ('value' in (getOwnPropertyDescriptor(this.prototype, name) ?? {})) {\n throw new Error(\n `Field ${JSON.stringify(String(name))} on ` +\n `${this.name} was declared as a reactive property ` +\n `but it's actually declared as a value on the prototype. ` +\n `Usually this is due to using @property or @state on a method.`\n );\n }\n issueWarning(\n 'reactive-property-without-getter',\n `Field ${JSON.stringify(String(name))} on ` +\n `${this.name} was declared as a reactive property ` +\n `but it does not have a getter. This will be an error in a ` +\n `future version of Lit.`\n );\n }\n return {\n get,\n set(this: ReactiveElement, value: unknown) {\n const oldValue = get?.call(this);\n set?.call(this, value);\n this.requestUpdate(name, oldValue, options);\n },\n configurable: true,\n enumerable: true,\n };\n }\n\n /**\n * Returns the property options associated with the given property.\n * These options are defined with a `PropertyDeclaration` via the `properties`\n * object or the `@property` decorator and are registered in\n * `createProperty(...)`.\n *\n * Note, this method should be considered \"final\" and not overridden. To\n * customize the options for a given property, override\n * {@linkcode createProperty}.\n *\n * @nocollapse\n * @final\n * @category properties\n */\n static getPropertyOptions(name: PropertyKey) {\n return this.elementProperties.get(name) ?? defaultPropertyDeclaration;\n }\n\n // Temporary, until google3 is on TypeScript 5.2\n declare static [Symbol.metadata]: object & Record<PropertyKey, unknown>;\n\n /**\n * Initializes static own properties of the class used in bookkeeping\n * for element properties, initializers, etc.\n *\n * Can be called multiple times by code that needs to ensure these\n * properties exist before using them.\n *\n * This method ensures the superclass is finalized so that inherited\n * property metadata can be copied down.\n * @nocollapse\n */\n private static __prepare() {\n if (\n this.hasOwnProperty(JSCompiler_renameProperty('elementProperties', this))\n ) {\n // Already prepared\n return;\n }\n // Finalize any superclasses\n const superCtor = getPrototypeOf(this) as typeof ReactiveElement;\n superCtor.finalize();\n\n // Create own set of initializers for this class if any exist on the\n // superclass and copy them down. Note, for a small perf boost, avoid\n // creating initializers unless needed.\n if (superCtor._initializers !== undefined) {\n this._initializers = [...superCtor._initializers];\n }\n // Initialize elementProperties from the superclass\n this.elementProperties = new Map(superCtor.elementProperties);\n }\n\n /**\n * Finishes setting up the class so that it's ready to be registered\n * as a custom element and instantiated.\n *\n * This method is called by the ReactiveElement.observedAttributes getter.\n * If you override the observedAttributes getter, you must either call\n * super.observedAttributes to trigger finalization, or call finalize()\n * yourself.\n *\n * @nocollapse\n */\n protected static finalize() {\n if (this.hasOwnProperty(JSCompiler_renameProperty('finalized', this))) {\n return;\n }\n this.finalized = true;\n this.__prepare();\n\n // Create properties from the static properties block:\n if (this.hasOwnProperty(JSCompiler_renameProperty('properties', this))) {\n const props = this.properties;\n const propKeys = [\n ...getOwnPropertyNames(props),\n ...getOwnPropertySymbols(props),\n ] as Array<keyof typeof props>;\n for (const p of propKeys) {\n this.createProperty(p, props[p]);\n }\n }\n\n // Create properties from standard decorator metadata:\n const metadata = this[Symbol.metadata];\n if (metadata !== null) {\n const properties = litPropertyMetadata.get(metadata);\n if (properties !== undefined) {\n for (const [p, options] of properties) {\n this.elementProperties.set(p, options);\n }\n }\n }\n\n // Create the attribute-to-property map\n this.__attributeToPropertyMap = new Map();\n for (const [p, options] of this.elementProperties) {\n const attr = this.__attributeNameForProperty(p, options);\n if (attr !== undefined) {\n this.__attributeToPropertyMap.set(attr, p);\n }\n }\n\n this.elementStyles = this.finalizeStyles(this.styles);\n\n if (DEV_MODE) {\n if (this.hasOwnProperty('createProperty')) {\n issueWarning(\n 'no-override-create-property',\n 'Overriding ReactiveElement.createProperty() is deprecated. ' +\n 'The override will not be called with standard decorators'\n );\n }\n if (this.hasOwnProperty('getPropertyDescriptor')) {\n issueWarning(\n 'no-override-get-property-descriptor',\n 'Overriding ReactiveElement.getPropertyDescriptor() is deprecated. ' +\n 'The override will not be called with standard decorators'\n );\n }\n }\n }\n\n /**\n * Options used when calling `attachShadow`. Set this property to customize\n * the options for the shadowRoot; for example, to create a closed\n * shadowRoot: `{mode: 'closed'}`.\n *\n * Note, these options are used in `createRenderRoot`. If this method\n * is customized, options should be respected if possible.\n * @nocollapse\n * @category rendering\n */\n static shadowRootOptions: ShadowRootInit = {mode: 'open'};\n\n /**\n * Takes the styles the user supplied via the `static styles` property and\n * returns the array of styles to apply to the element.\n * Override this method to integrate into a style management system.\n *\n * Styles are deduplicated preserving the _last_ instance in the list. This\n * is a performance optimization to avoid duplicated styles that can occur\n * especially when composing via subclassing. The last item is kept to try\n * to preserve the cascade order with the assumption that it's most important\n * that last added styles override previous styles.\n *\n * @nocollapse\n * @category styles\n */\n protected static finalizeStyles(\n styles?: CSSResultGroup\n ): Array<CSSResultOrNative> {\n const elementStyles = [];\n if (Array.isArray(styles)) {\n // Dedupe the flattened array in reverse order to preserve the last items.\n // Casting to Array<unknown> works around TS error that\n // appears to come from trying to flatten a type CSSResultArray.\n const set = new Set((styles as Array<unknown>).flat(Infinity).reverse());\n // Then preserve original order by adding the set items in reverse order.\n for (const s of set) {\n elementStyles.unshift(getCompatibleStyle(s as CSSResultOrNative));\n }\n } else if (styles !== undefined) {\n elementStyles.push(getCompatibleStyle(styles));\n }\n return elementStyles;\n }\n\n /**\n * Node or ShadowRoot into which element DOM should be rendered. Defaults\n * to an open shadowRoot.\n * @category rendering\n */\n readonly renderRoot!: HTMLElement | DocumentFragment;\n\n /**\n * Returns the property name for the given attribute `name`.\n * @nocollapse\n */\n private static __attributeNameForProperty(\n name: PropertyKey,\n options: PropertyDeclaration\n ) {\n const attribute = options.attribute;\n return attribute === false\n ? undefined\n : typeof attribute === 'string'\n ? attribute\n : typeof name === 'string'\n ? name.toLowerCase()\n : undefined;\n }\n\n // Initialize to an unresolved Promise so we can make sure the element has\n // connected before first update.\n private __updatePromise!: Promise<boolean>;\n\n /**\n * True if there is a pending update as a result of calling `requestUpdate()`.\n * Should only be read.\n * @category updates\n */\n isUpdatePending = false;\n\n /**\n * Is set to `true` after the first update. The element code cannot assume\n * that `renderRoot` exists before the element `hasUpdated`.\n * @category updates\n */\n hasUpdated = false;\n\n /**\n * Map with keys for any properties that have changed since the last\n * update cycle with previous values.\n *\n * @internal\n */\n _$changedProperties!: PropertyValues;\n\n /**\n * Records property default values when the\n * `useDefault` option is used.\n */\n private __defaultValues?: Map<PropertyKey, unknown>;\n\n /**\n * Properties that should be reflected when updated.\n */\n private __reflectingProperties?: Set<PropertyKey>;\n\n /**\n * Name of currently reflecting property\n */\n private __reflectingProperty: PropertyKey | null = null;\n\n /**\n * Set of controllers.\n */\n private __controllers?: Set<ReactiveController>;\n\n constructor() {\n super();\n this.__initialize();\n }\n\n /**\n * Internal only override point for customizing work done when elements\n * are constructed.\n */\n private __initialize() {\n this.__updatePromise = new Promise<boolean>(\n (res) => (this.enableUpdating = res)\n );\n this._$changedProperties = new Map();\n // This enqueues a microtask that must run before the first update, so it\n // must be called before requestUpdate()\n this.__saveInstanceProperties();\n // ensures first update will be caught by an early access of\n // `updateComplete`\n this.requestUpdate();\n (this.constructor as typeof ReactiveElement)._initializers?.forEach((i) =>\n i(this)\n );\n }\n\n /**\n * Registers a `ReactiveController` to participate in the element's reactive\n * update cycle. The element automatically calls into any registered\n * controllers during its lifecycle callbacks.\n *\n * If the element is connected when `addController()` is called, the\n * controller's `hostConnected()` callback will be immediately called.\n * @category controllers\n */\n addController(controller: ReactiveController) {\n (this.__controllers ??= new Set()).add(controller);\n // If a controller is added after the element has been connected,\n // call hostConnected. Note, re-using existence of `renderRoot` here\n // (which is set in connectedCallback) to avoid the need to track a\n // first connected state.\n if (this.renderRoot !== undefined && this.isConnected) {\n controller.hostConnected?.();\n }\n }\n\n /**\n * Removes a `ReactiveController` from the element.\n * @category controllers\n */\n removeController(controller: ReactiveController) {\n this.__controllers?.delete(controller);\n }\n\n /**\n * Fixes any properties set on the instance before upgrade time.\n * Otherwise these would shadow the accessor and break these properties.\n * The properties are stored in a Map which is played back after the\n * constructor runs.\n */\n private __saveInstanceProperties() {\n const instanceProperties = new Map<PropertyKey, unknown>();\n const elementProperties = (this.constructor as typeof ReactiveElement)\n .elementProperties;\n for (const p of elementProperties.keys() as IterableIterator<keyof this>) {\n if (this.hasOwnProperty(p)) {\n instanceProperties.set(p, this[p]);\n delete this[p];\n }\n }\n if (instanceProperties.size > 0) {\n this.__instanceProperties = instanceProperties;\n }\n }\n\n /**\n * Returns the node into which the element should render and by default\n * creates and returns an open shadowRoot. Implement to customize where the\n * element's DOM is rendered. For example, to render into the element's\n * childNodes, return `this`.\n *\n * @return Returns a node into which to render.\n * @category rendering\n */\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n const renderRoot =\n this.shadowRoot ??\n this.attachShadow(\n (this.constructor as typeof ReactiveElement).shadowRootOptions\n );\n adoptStyles(\n renderRoot,\n (this.constructor as typeof ReactiveElement).elementStyles\n );\n return renderRoot;\n }\n\n /**\n * On first connection, creates the element's renderRoot, sets up\n * element styling, and enables updating.\n * @category lifecycle\n */\n connectedCallback() {\n // Create renderRoot before controllers `hostConnected`\n (this as Mutable<typeof this, 'renderRoot'>).renderRoot ??=\n this.createRenderRoot();\n this.enableUpdating(true);\n this.__controllers?.forEach((c) => c.hostConnected?.());\n }\n\n /**\n * Note, this method should be considered final and not overridden. It is\n * overridden on the element instance with a function that triggers the first\n * update.\n * @category updates\n */\n protected enableUpdating(_requestedUpdate: boolean) {}\n\n /**\n * Allows for `super.disconnectedCallback()` in extensions while\n * reserving the possibility of making non-breaking feature additions\n * when disconnecting at some point in the future.\n * @category lifecycle\n */\n disconnectedCallback() {\n this.__controllers?.forEach((c) => c.hostDisconnected?.());\n }\n\n /**\n * Synchronizes property values when attributes change.\n *\n * Specifically, when an attribute is set, the corresponding property is set.\n * You should rarely need to implement this callback. If this method is\n * overridden, `super.attributeChangedCallback(name, _old, value)` must be\n * called.\n *\n * See [responding to attribute changes](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_custom_elements#responding_to_attribute_changes)\n * on MDN for more information about the `attributeChangedCallback`.\n * @category attributes\n */\n attributeChangedCallback(\n name: string,\n _old: string | null,\n value: string | null\n ) {\n this._$attributeToProperty(name, value);\n }\n\n private __propertyToAttribute(name: PropertyKey, value: unknown) {\n const elemProperties: PropertyDeclarationMap = (\n this.constructor as typeof ReactiveElement\n ).elementProperties;\n const options = elemProperties.get(name)!;\n const attr = (\n this.constructor as typeof ReactiveElement\n ).__attributeNameForProperty(name, options);\n if (attr !== undefined && options.reflect === true) {\n const converter =\n (options.converter as ComplexAttributeConverter)?.toAttribute !==\n undefined\n ? (options.converter as ComplexAttributeConverter)\n : defaultConverter;\n const attrValue = converter.toAttribute!(value, options.type);\n if (\n DEV_MODE &&\n (this.constructor as typeof ReactiveElement).enabledWarnings!.includes(\n 'migration'\n ) &&\n attrValue === undefined\n ) {\n issueWarning(\n 'undefined-attribute-value',\n `The attribute value for the ${name as string} property is ` +\n `undefined on element ${this.localName}. The attribute will be ` +\n `removed, but in the previous version of \\`ReactiveElement\\`, ` +\n `the attribute would not have changed.`\n );\n }\n // Track if the property is being reflected to avoid\n // setting the property again via `attributeChangedCallback`. Note:\n // 1. this takes advantage of the fact that the callback is synchronous.\n // 2. will behave incorrectly if multiple attributes are in the reaction\n // stack at time of calling. However, since we process attributes\n // in `update` this should not be possible (or an extreme corner case\n // that we'd like to discover).\n // mark state reflecting\n this.__reflectingProperty = name;\n if (attrValue == null) {\n this.removeAttribute(attr);\n } else {\n this.setAttribute(attr, attrValue as string);\n }\n // mark state not reflecting\n this.__reflectingProperty = null;\n }\n }\n\n /** @internal */\n _$attributeToProperty(name: string, value: string | null) {\n const ctor = this.constructor as typeof ReactiveElement;\n // Note, hint this as an `AttributeMap` so closure clearly understands\n // the type; it has issues with tracking types through statics\n const propName = (ctor.__attributeToPropertyMap as AttributeMap).get(name);\n // Use tracking info to avoid reflecting a property value to an attribute\n // if it was just set because the attribute changed.\n if (propName !== undefined && this.__reflectingProperty !== propName) {\n const options = ctor.getPropertyOptions(propName);\n const converter =\n typeof options.converter === 'function'\n ? {fromAttribute: options.converter}\n : options.converter?.fromAttribute !== undefined\n ? options.converter\n : defaultConverter;\n // mark state reflecting\n this.__reflectingProperty = propName;\n this[propName as keyof this] =\n converter.fromAttribute!(value, options.type) ??\n this.__defaultValues?.get(propName) ??\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (null as any);\n // mark state not reflecting\n this.__reflectingProperty = null;\n }\n }\n\n /**\n * Requests an update which is processed asynchronously. This should be called\n * when an element should update based on some state not triggered by setting\n * a reactive property. In this case, pass no arguments. It should also be\n * called when manually implementing a property setter. In this case, pass the\n * property `name` and `oldValue` to ensure that any configured property\n * options are honored.\n *\n * @param name name of requesting property\n * @param oldValue old value of requesting property\n * @param options property options to use instead of the previously\n * configured options\n * @category updates\n */\n requestUpdate(\n name?: PropertyKey,\n oldValue?: unknown,\n options?: PropertyDeclaration\n ): void {\n // If we have a property key, perform property update steps.\n if (name !== undefined) {\n if (DEV_MODE && (name as unknown) instanceof Event) {\n issueWarning(\n ``,\n `The requestUpdate() method was called with an Event as the property name. This is probably a mistake caused by binding this.requestUpdate as an event listener. Instead bind a function that will call it with no arguments: () => this.requestUpdate()`\n );\n }\n const ctor = this.constructor as typeof ReactiveElement;\n const newValue = this[name as keyof this];\n options ??= ctor.getPropertyOptions(name);\n const changed =\n (options.hasChanged ?? notEqual)(newValue, oldValue) ||\n // When there is no change, check a corner case that can occur when\n // 1. there's a initial value which was not reflected\n // 2. the property is subsequently set to this value.\n // For example, `prop: {useDefault: true, reflect: true}`\n // and el.prop = 'foo'. This should be considered a change if the\n // attribute is not set because we will now reflect the property to the attribute.\n (options.useDefault &&\n options.reflect &&\n newValue === this.__defaultValues?.get(name) &&\n !this.hasAttribute(ctor.__attributeNameForProperty(name, options)!));\n if (changed) {\n this._$changeProperty(name, oldValue, options);\n } else {\n // Abort the request if the property should not be considered changed.\n return;\n }\n }\n if (this.isUpdatePending === false) {\n this.__updatePromise = this.__enqueueUpdate();\n }\n }\n\n /**\n * @internal\n */\n _$changeProperty(\n name: PropertyKey,\n oldValue: unknown,\n {useDefault, reflect, wrapped}: PropertyDeclaration,\n initializeValue?: unknown\n ) {\n // Record default value when useDefault is used. This allows us to\n // restore this value when the attribute is removed.\n if (useDefault && !(this.__defaultValues ??= new Map()).has(name)) {\n this.__defaultValues.set(\n name,\n initializeValue ?? oldValue ?? this[name as keyof this]\n );\n // if this is not wrapping an accessor, it must be an initial setting\n // and in this case we do not want to record the change or reflect.\n if (wrapped !== true || initializeValue !== undefined) {\n return;\n }\n }\n // TODO (justinfagnani): Create a benchmark of Map.has() + Map.set(\n // vs just Map.set()\n if (!this._$changedProperties.has(name)) {\n // On the initial change, the old value should be `undefined`, except\n // with `useDefault`\n if (!this.hasUpdated && !useDefault) {\n oldValue = undefined;\n }\n this._$changedProperties.set(name, oldValue);\n }\n // Add to reflecting properties set.\n // Note, it's important that every change has a chance to add the\n // property to `__reflectingProperties`. This ensures setting\n // attribute + property reflects correctly.\n if (reflect === true && this.__reflectingProperty !== name) {\n (this.__reflectingProperties ??= new Set<PropertyKey>()).add(name);\n }\n }\n\n /**\n * Sets up the element to asynchronously update.\n */\n private async __enqueueUpdate() {\n this.isUpdatePending = true;\n try {\n // Ensure any previous update has resolved before updating.\n // This `await` also ensures that property changes are batched.\n await this.__updatePromise;\n } catch (e) {\n // Refire any previous errors async so they do not disrupt the update\n // cycle. Errors are refired so developers have a chance to observe\n // them, and this can be done by implementing\n // `window.onunhandledrejection`.\n Promise.reject(e);\n }\n const result = this.scheduleUpdate();\n // If `scheduleUpdate` returns a Promise, we await it. This is done to\n // enable coordinating updates with a scheduler. Note, the result is\n // checked to avoid delaying an additional microtask unless we need to.\n if (result != null) {\n await result;\n }\n return !this.isUpdatePending;\n }\n\n /**\n * Schedules an element update. You can override this method to change the\n * timing of updates by returning a Promise. The update will await the\n * returned Promise, and you should resolve the Promise to allow the update\n * to proceed. If this method is overridden, `super.scheduleUpdate()`\n * must be called.\n *\n * For instance, to schedule updates to occur just before the next frame:\n *\n * ```ts\n * override protected async scheduleUpdate(): Promise<unknown> {\n * await new Promise((resolve) => requestAnimationFrame(() => resolve()));\n * super.scheduleUpdate();\n * }\n * ```\n * @category updates\n */\n protected scheduleUpdate(): void | Promise<unknown> {\n const result = this.performUpdate();\n if (\n DEV_MODE &&\n (this.constructor as typeof ReactiveElement).enabledWarnings!.includes(\n 'async-perform-update'\n ) &&\n typeof (result as unknown as Promise<unknown> | undefined)?.then ===\n 'function'\n ) {\n issueWarning(\n 'async-perform-update',\n `Element ${this.localName} returned a Promise from performUpdate(). ` +\n `This behavior is deprecated and will be removed in a future ` +\n `version of ReactiveElement.`\n );\n }\n return result;\n }\n\n /**\n * Performs an element update. Note, if an exception is thrown during the\n * update, `firstUpdated` and `updated` will not be called.\n *\n * Call `performUpdate()` to immediately process a pending update. This should\n * generally not be needed, but it can be done in rare cases when you need to\n * update synchronously.\n *\n * @category updates\n */\n protected performUpdate(): void {\n // Abort any update if one is not pending when this is called.\n // This can happen if `performUpdate` is called early to \"flush\"\n // the update.\n if (!this.isUpdatePending) {\n return;\n }\n debugLogEvent?.({kind: 'update'});\n if (!this.hasUpdated) {\n // Create renderRoot before first update. This occurs in `connectedCallback`\n // but is done here to support out of tree calls to `enableUpdating`/`performUpdate`.\n (this as Mutable<typeof this, 'renderRoot'>).renderRoot ??=\n this.createRenderRoot();\n if (DEV_MODE) {\n // Produce warning if any reactive properties on the prototype are\n // shadowed by class fields. Instance fields set before upgrade are\n // deleted by this point, so any own property is caused by class field\n // initialization in the constructor.\n const ctor = this.constructor as typeof ReactiveElement;\n const shadowedProperties = [...ctor.elementProperties.keys()].filter(\n (p) => this.hasOwnProperty(p) && p in getPrototypeOf(this)\n );\n if (shadowedProperties.length) {\n throw new Error(\n `The following properties on element ${this.localName} will not ` +\n `trigger updates as expected because they are set using class ` +\n `fields: ${shadowedProperties.join(', ')}. ` +\n `Native class fields and some compiled output will overwrite ` +\n `accessors used for detecting changes. See ` +\n `https://lit.dev/msg/class-field-shadowing ` +\n `for more information.`\n );\n }\n }\n // Mixin instance properties once, if they exist.\n if (this.__instanceProperties) {\n // TODO (justinfagnani): should we use the stored value? Could a new value\n // have been set since we stored the own property value?\n for (const [p, value] of this.__instanceProperties) {\n this[p as keyof this] = value as this[keyof this];\n }\n this.__instanceProperties = undefined;\n }\n // Trigger initial value reflection and populate the initial\n // `changedProperties` map, but only for the case of properties created\n // via `createProperty` on accessors, which will not have already\n // populated the `changedProperties` map since they are not set.\n // We can't know if these accessors had initializers, so we just set\n // them anyway - a difference from experimental decorators on fields and\n // standard decorators on auto-accessors.\n // For context see:\n // https://github.com/lit/lit/pull/4183#issuecomment-1711959635\n const elementProperties = (this.constructor as typeof ReactiveElement)\n .elementProperties;\n if (elementProperties.size > 0) {\n for (const [p, options] of elementProperties) {\n const {wrapped} = options;\n const value = this[p as keyof this];\n if (\n wrapped === true &&\n !this._$changedProperties.has(p) &&\n value !== undefined\n ) {\n this._$changeProperty(p, undefined, options, value);\n }\n }\n }\n }\n let shouldUpdate = false;\n const changedProperties = this._$changedProperties;\n try {\n shouldUpdate = this.shouldUpdate(changedProperties);\n if (shouldUpdate) {\n this.willUpdate(changedProperties);\n this.__controllers?.forEach((c) => c.hostUpdate?.());\n this.update(changedProperties);\n } else {\n this.__markUpdated();\n }\n } catch (e) {\n // Prevent `firstUpdated` and `updated` from running when there's an\n // update exception.\n shouldUpdate = false;\n // Ensure element can accept additional updates after an exception.\n this.__markUpdated();\n throw e;\n }\n // The update is no longer considered pending and further updates are now allowed.\n if (shouldUpdate) {\n this._$didUpdate(changedProperties);\n }\n }\n\n /**\n * Invoked before `update()` to compute values needed during the update.\n *\n * Implement `willUpdate` to compute property values that depend on other\n * properties and are used in the rest of the update process.\n *\n * ```ts\n * willUpdate(changedProperties) {\n * // only need to check changed properties for an expensive computation.\n * if (changedProperties.has('firstName') || changedProperties.has('lastName')) {\n * this.sha = computeSHA(`${this.firstName} ${this.lastName}`);\n * }\n * }\n *\n * render() {\n * return html`SHA: ${this.sha}`;\n * }\n * ```\n *\n * @category updates\n */\n protected willUpdate(_changedProperties: PropertyValues): void {}\n\n // Note, this is an override point for polyfill-support.\n // @internal\n _$didUpdate(changedProperties: PropertyValues) {\n this.__controllers?.forEach((c) => c.hostUpdated?.());\n if (!this.hasUpdated) {\n this.hasUpdated = true;\n this.firstUpdated(changedProperties);\n }\n this.updated(changedProperties);\n if (\n DEV_MODE &&\n this.isUpdatePending &&\n (this.constructor as typeof ReactiveElement).enabledWarnings!.includes(\n 'change-in-update'\n )\n ) {\n issueWarning(\n 'change-in-update',\n `Element ${this.localName} scheduled an update ` +\n `(generally because a property was set) ` +\n `after an update completed, causing a new update to be scheduled. ` +\n `This is inefficient and should be avoided unless the next update ` +\n `can only be scheduled as a side effect of the previous update.`\n );\n }\n }\n\n private __markUpdated() {\n this._$changedProperties = new Map();\n this.isUpdatePending = false;\n }\n\n /**\n * Returns a Promise that resolves when the element has completed updating.\n * The Promise value is a boolean that is `true` if the element completed the\n * update without triggering another update. The Promise result is `false` if\n * a property was set inside `updated()`. If the Promise is rejected, an\n * exception was thrown during the update.\n *\n * To await additional asynchronous work, override the `getUpdateComplete`\n * method. For example, it is sometimes useful to await a rendered element\n * before fulfilling this Promise. To do this, first await\n * `super.getUpdateComplete()`, then any subsequent state.\n *\n * @return A promise of a boolean that resolves to true if the update completed\n * without triggering another update.\n * @category updates\n */\n get updateComplete(): Promise<boolean> {\n return this.getUpdateComplete();\n }\n\n /**\n * Override point for the `updateComplete` promise.\n *\n * It is not safe to override the `updateComplete` getter directly due to a\n * limitation in TypeScript which means it is not possible to call a\n * superclass getter (e.g. `super.updateComplete.then(...)`) when the target\n * language is ES5 (https://github.com/microsoft/TypeScript/issues/338).\n * This method should be overridden instead. For example:\n *\n * ```ts\n * class MyElement extends LitElement {\n * override async getUpdateComplete() {\n * const result = await super.getUpdateComplete();\n * await this._myChild.updateComplete;\n * return result;\n * }\n * }\n * ```\n *\n * @return A promise of a boolean that resolves to true if the update completed\n * without triggering another update.\n * @category updates\n */\n protected getUpdateComplete(): Promise<boolean> {\n return this.__updatePromise;\n }\n\n /**\n * Controls whether or not `update()` should be called when the element requests\n * an update. By default, this method always returns `true`, but this can be\n * customized to control when to update.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n protected shouldUpdate(_changedProperties: PropertyValues): boolean {\n return true;\n }\n\n /**\n * Updates the element. This method reflects property values to attributes.\n * It can be overridden to render and keep updated element DOM.\n * Setting properties inside this method will *not* trigger\n * another update.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n protected update(_changedProperties: PropertyValues) {\n // The forEach() expression will only run when __reflectingProperties is\n // defined, and it returns undefined, setting __reflectingProperties to\n // undefined\n this.__reflectingProperties &&= this.__reflectingProperties.forEach((p) =>\n this.__propertyToAttribute(p, this[p as keyof this])\n ) as undefined;\n this.__markUpdated();\n }\n\n /**\n * Invoked whenever the element is updated. Implement to perform\n * post-updating tasks via DOM APIs, for example, focusing an element.\n *\n * Setting properties inside this method will trigger the element to update\n * again after this update cycle completes.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n protected updated(_changedProperties: PropertyValues) {}\n\n /**\n * Invoked when the element is first updated. Implement to perform one time\n * work on the element after update.\n *\n * ```ts\n * firstUpdated() {\n * this.renderRoot.getElementById('my-text-area').focus();\n * }\n * ```\n *\n * Setting properties inside this method will trigger the element to update\n * again after this update cycle completes.\n *\n * @param _changedProperties Map of changed properties with old values\n * @category updates\n */\n protected firstUpdated(_changedProperties: PropertyValues) {}\n}\n// Assigned here to work around a jscompiler bug with static fields\n// when compiling to ES5.\n// https://github.com/google/closure-compiler/issues/3177\n(ReactiveElement as unknown as Record<string, unknown>)[\n JSCompiler_renameProperty('elementProperties', ReactiveElement)\n] = new Map();\n(ReactiveElement as unknown as Record<string, unknown>)[\n JSCompiler_renameProperty('finalized', ReactiveElement)\n] = new Map();\n\n// Apply polyfills if available\npolyfillSupport?.({ReactiveElement});\n\n// Dev mode warnings...\nif (DEV_MODE) {\n // Default warning set.\n ReactiveElement.enabledWarnings = [\n 'change-in-update',\n 'async-perform-update',\n ];\n const ensureOwnWarnings = function (ctor: typeof ReactiveElement) {\n if (\n !ctor.hasOwnProperty(JSCompiler_renameProperty('enabledWarnings', ctor))\n ) {\n ctor.enabledWarnings = ctor.enabledWarnings!.slice();\n }\n };\n ReactiveElement.enableWarning = function (\n this: typeof ReactiveElement,\n warning: WarningKind\n ) {\n ensureOwnWarnings(this);\n if (!this.enabledWarnings!.includes(warning)) {\n this.enabledWarnings!.push(warning);\n }\n };\n ReactiveElement.disableWarning = function (\n this: typeof ReactiveElement,\n warning: WarningKind\n ) {\n ensureOwnWarnings(this);\n const i = this.enabledWarnings!.indexOf(warning);\n if (i >= 0) {\n this.enabledWarnings!.splice(i, 1);\n }\n };\n}\n\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for ReactiveElement usage.\n(global.reactiveElementVersions ??= []).push('2.1.0');\nif (DEV_MODE && global.reactiveElementVersions.length > 1) {\n queueMicrotask(() => {\n issueWarning!(\n 'multiple-versions',\n `Multiple versions of Lit loaded. Loading multiple versions ` +\n `is not recommended.`\n );\n });\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n// IMPORTANT: these imports must be type-only\nimport type {Directive, DirectiveResult, PartInfo} from './directive.js';\nimport type {TrustedHTML, TrustedTypesWindow} from 'trusted-types/lib/index.js';\n\nconst DEV_MODE = true;\nconst ENABLE_EXTRA_SECURITY_HOOKS = true;\nconst ENABLE_SHADYDOM_NOPATCH = true;\nconst NODE_MODE = false;\n\n// Allows minifiers to rename references to globalThis\nconst global = globalThis;\n\n/**\n * Contains types that are part of the unstable debug API.\n *\n * Everything in this API is not stable and may change or be removed in the future,\n * even on patch releases.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace LitUnstable {\n /**\n * When Lit is running in dev mode and `window.emitLitDebugLogEvents` is true,\n * we will emit 'lit-debug' events to window, with live details about the update and render\n * lifecycle. These can be useful for writing debug tooling and visualizations.\n *\n * Please be aware that running with window.emitLitDebugLogEvents has performance overhead,\n * making certain operations that are normally very cheap (like a no-op render) much slower,\n * because we must copy data and dispatch events.\n */\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace DebugLog {\n export type Entry =\n | TemplatePrep\n | TemplateInstantiated\n | TemplateInstantiatedAndUpdated\n | TemplateUpdating\n | BeginRender\n | EndRender\n | CommitPartEntry\n | SetPartValue;\n export interface TemplatePrep {\n kind: 'template prep';\n template: Template;\n strings: TemplateStringsArray;\n clonableTemplate: HTMLTemplateElement;\n parts: TemplatePart[];\n }\n export interface BeginRender {\n kind: 'begin render';\n id: number;\n value: unknown;\n container: HTMLElement | DocumentFragment;\n options: RenderOptions | undefined;\n part: ChildPart | undefined;\n }\n export interface EndRender {\n kind: 'end render';\n id: number;\n value: unknown;\n container: HTMLElement | DocumentFragment;\n options: RenderOptions | undefined;\n part: ChildPart;\n }\n export interface TemplateInstantiated {\n kind: 'template instantiated';\n template: Template | CompiledTemplate;\n instance: TemplateInstance;\n options: RenderOptions | undefined;\n fragment: Node;\n parts: Array<Part | undefined>;\n values: unknown[];\n }\n export interface TemplateInstantiatedAndUpdated {\n kind: 'template instantiated and updated';\n template: Template | CompiledTemplate;\n instance: TemplateInstance;\n options: RenderOptions | undefined;\n fragment: Node;\n parts: Array<Part | undefined>;\n values: unknown[];\n }\n export interface TemplateUpdating {\n kind: 'template updating';\n template: Template | CompiledTemplate;\n instance: TemplateInstance;\n options: RenderOptions | undefined;\n parts: Array<Part | undefined>;\n values: unknown[];\n }\n export interface SetPartValue {\n kind: 'set part';\n part: Part;\n value: unknown;\n valueIndex: number;\n values: unknown[];\n templateInstance: TemplateInstance;\n }\n\n export type CommitPartEntry =\n | CommitNothingToChildEntry\n | CommitText\n | CommitNode\n | CommitAttribute\n | CommitProperty\n | CommitBooleanAttribute\n | CommitEventListener\n | CommitToElementBinding;\n\n export interface CommitNothingToChildEntry {\n kind: 'commit nothing to child';\n start: ChildNode;\n end: ChildNode | null;\n parent: Disconnectable | undefined;\n options: RenderOptions | undefined;\n }\n\n export interface CommitText {\n kind: 'commit text';\n node: Text;\n value: unknown;\n options: RenderOptions | undefined;\n }\n\n export interface CommitNode {\n kind: 'commit node';\n start: Node;\n parent: Disconnectable | undefined;\n value: Node;\n options: RenderOptions | undefined;\n }\n\n export interface CommitAttribute {\n kind: 'commit attribute';\n element: Element;\n name: string;\n value: unknown;\n options: RenderOptions | undefined;\n }\n\n export interface CommitProperty {\n kind: 'commit property';\n element: Element;\n name: string;\n value: unknown;\n options: RenderOptions | undefined;\n }\n\n export interface CommitBooleanAttribute {\n kind: 'commit boolean attribute';\n element: Element;\n name: string;\n value: boolean;\n options: RenderOptions | undefined;\n }\n\n export interface CommitEventListener {\n kind: 'commit event listener';\n element: Element;\n name: string;\n value: unknown;\n oldListener: unknown;\n options: RenderOptions | undefined;\n // True if we're removing the old event listener (e.g. because settings changed, or value is nothing)\n removeListener: boolean;\n // True if we're adding a new event listener (e.g. because first render, or settings changed)\n addListener: boolean;\n }\n\n export interface CommitToElementBinding {\n kind: 'commit to element binding';\n element: Element;\n value: unknown;\n options: RenderOptions | undefined;\n }\n }\n}\n\ninterface DebugLoggingWindow {\n // Even in dev mode, we generally don't want to emit these events, as that's\n // another level of cost, so only emit them when DEV_MODE is true _and_ when\n // window.emitLitDebugEvents is true.\n emitLitDebugLogEvents?: boolean;\n}\n\n/**\n * Useful for visualizing and logging insights into what the Lit template system is doing.\n *\n * Compiled out of prod mode builds.\n */\nconst debugLogEvent = DEV_MODE\n ? (event: LitUnstable.DebugLog.Entry) => {\n const shouldEmit = (global as unknown as DebugLoggingWindow)\n .emitLitDebugLogEvents;\n if (!shouldEmit) {\n return;\n }\n global.dispatchEvent(\n new CustomEvent<LitUnstable.DebugLog.Entry>('lit-debug', {\n detail: event,\n })\n );\n }\n : undefined;\n// Used for connecting beginRender and endRender events when there are nested\n// renders when errors are thrown preventing an endRender event from being\n// called.\nlet debugLogRenderId = 0;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nif (DEV_MODE) {\n global.litIssuedWarnings ??= new Set();\n\n /**\n * Issue a warning if we haven't already, based either on `code` or `warning`.\n * Warnings are disabled automatically only by `warning`; disabling via `code`\n * can be done by users.\n */\n issueWarning = (code: string, warning: string) => {\n warning += code\n ? ` See https://lit.dev/msg/${code} for more information.`\n : '';\n if (\n !global.litIssuedWarnings!.has(warning) &&\n !global.litIssuedWarnings!.has(code)\n ) {\n console.warn(warning);\n global.litIssuedWarnings!.add(warning);\n }\n };\n\n queueMicrotask(() => {\n issueWarning(\n 'dev-mode',\n `Lit is in dev mode. Not recommended for production!`\n );\n });\n}\n\nconst wrap =\n ENABLE_SHADYDOM_NOPATCH &&\n global.ShadyDOM?.inUse &&\n global.ShadyDOM?.noPatch === true\n ? (global.ShadyDOM!.wrap as <T extends Node>(node: T) => T)\n : <T extends Node>(node: T) => node;\n\nconst trustedTypes = (global as unknown as TrustedTypesWindow).trustedTypes;\n\n/**\n * Our TrustedTypePolicy for HTML which is declared using the html template\n * tag function.\n *\n * That HTML is a developer-authored constant, and is parsed with innerHTML\n * before any untrusted expressions have been mixed in. Therefor it is\n * considered safe by construction.\n */\nconst policy = trustedTypes\n ? trustedTypes.createPolicy('lit-html', {\n createHTML: (s) => s,\n })\n : undefined;\n\n/**\n * Used to sanitize any value before it is written into the DOM. This can be\n * used to implement a security policy of allowed and disallowed values in\n * order to prevent XSS attacks.\n *\n * One way of using this callback would be to check attributes and properties\n * against a list of high risk fields, and require that values written to such\n * fields be instances of a class which is safe by construction. Closure's Safe\n * HTML Types is one implementation of this technique (\n * https://github.com/google/safe-html-types/blob/master/doc/safehtml-types.md).\n * The TrustedTypes polyfill in API-only mode could also be used as a basis\n * for this technique (https://github.com/WICG/trusted-types).\n *\n * @param node The HTML node (usually either a #text node or an Element) that\n * is being written to. Note that this is just an exemplar node, the write\n * may take place against another instance of the same class of node.\n * @param name The name of an attribute or property (for example, 'href').\n * @param type Indicates whether the write that's about to be performed will\n * be to a property or a node.\n * @return A function that will sanitize this class of writes.\n */\nexport type SanitizerFactory = (\n node: Node,\n name: string,\n type: 'property' | 'attribute'\n) => ValueSanitizer;\n\n/**\n * A function which can sanitize values that will be written to a specific kind\n * of DOM sink.\n *\n * See SanitizerFactory.\n *\n * @param value The value to sanitize. Will be the actual value passed into\n * the lit-html template literal, so this could be of any type.\n * @return The value to write to the DOM. Usually the same as the input value,\n * unless sanitization is needed.\n */\nexport type ValueSanitizer = (value: unknown) => unknown;\n\nconst identityFunction: ValueSanitizer = (value: unknown) => value;\nconst noopSanitizer: SanitizerFactory = (\n _node: Node,\n _name: string,\n _type: 'property' | 'attribute'\n) => identityFunction;\n\n/** Sets the global sanitizer factory. */\nconst setSanitizer = (newSanitizer: SanitizerFactory) => {\n if (!ENABLE_EXTRA_SECURITY_HOOKS) {\n return;\n }\n if (sanitizerFactoryInternal !== noopSanitizer) {\n throw new Error(\n `Attempted to overwrite existing lit-html security policy.` +\n ` setSanitizeDOMValueFactory should be called at most once.`\n );\n }\n sanitizerFactoryInternal = newSanitizer;\n};\n\n/**\n * Only used in internal tests, not a part of the public API.\n */\nconst _testOnlyClearSanitizerFactoryDoNotCallOrElse = () => {\n sanitizerFactoryInternal = noopSanitizer;\n};\n\nconst createSanitizer: SanitizerFactory = (node, name, type) => {\n return sanitizerFactoryInternal(node, name, type);\n};\n\n// Added to an attribute name to mark the attribute as bound so we can find\n// it easily.\nconst boundAttributeSuffix = '$lit$';\n\n// This marker is used in many syntactic positions in HTML, so it must be\n// a valid element name and attribute name. We don't support dynamic names (yet)\n// but this at least ensures that the parse tree is closer to the template\n// intention.\nconst marker = `lit$${Math.random().toFixed(9).slice(2)}$`;\n\n// String used to tell if a comment is a marker comment\nconst markerMatch = '?' + marker;\n\n// Text used to insert a comment marker node. We use processing instruction\n// syntax because it's slightly smaller, but parses as a comment node.\nconst nodeMarker = `<${markerMatch}>`;\n\nconst d =\n NODE_MODE && global.document === undefined\n ? ({\n createTreeWalker() {\n return {};\n },\n } as unknown as Document)\n : document;\n\n// Creates a dynamic marker. We never have to search for these in the DOM.\nconst createMarker = () => d.createComment('');\n\n// https://tc39.github.io/ecma262/#sec-typeof-operator\ntype Primitive = null | undefined | boolean | number | string | symbol | bigint;\nconst isPrimitive = (value: unknown): value is Primitive =>\n value === null || (typeof value != 'object' && typeof value != 'function');\nconst isArray = Array.isArray;\nconst isIterable = (value: unknown): value is Iterable<unknown> =>\n isArray(value) ||\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n typeof (value as any)?.[Symbol.iterator] === 'function';\n\nconst SPACE_CHAR = `[ \\t\\n\\f\\r]`;\nconst ATTR_VALUE_CHAR = `[^ \\t\\n\\f\\r\"'\\`<>=]`;\nconst NAME_CHAR = `[^\\\\s\"'>=/]`;\n\n// These regexes represent the five parsing states that we care about in the\n// Template's HTML scanner. They match the *end* of the state they're named\n// after.\n// Depending on the match, we transition to a new state. If there's no match,\n// we stay in the same state.\n// Note that the regexes are stateful. We utilize lastIndex and sync it\n// across the multiple regexes used. In addition to the five regexes below\n// we also dynamically create a regex to find the matching end tags for raw\n// text elements.\n\n/**\n * End of text is: `<` followed by:\n * (comment start) or (tag) or (dynamic tag binding)\n */\nconst textEndRegex = /<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g;\nconst COMMENT_START = 1;\nconst TAG_NAME = 2;\nconst DYNAMIC_TAG_NAME = 3;\n\nconst commentEndRegex = /-->/g;\n/**\n * Comments not started with <!--, like </{, can be ended by a single `>`\n */\nconst comment2EndRegex = />/g;\n\n/**\n * The tagEnd regex matches the end of the \"inside an opening\" tag syntax\n * position. It either matches a `>`, an attribute-like sequence, or the end\n * of the string after a space (attribute-name position ending).\n *\n * See attributes in the HTML spec:\n * https://www.w3.org/TR/html5/syntax.html#elements-attributes\n *\n * \" \\t\\n\\f\\r\" are HTML space characters:\n * https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * So an attribute is:\n * * The name: any character except a whitespace character, (\"), ('), \">\",\n * \"=\", or \"/\". Note: this is different from the HTML spec which also excludes control characters.\n * * Followed by zero or more space characters\n * * Followed by \"=\"\n * * Followed by zero or more space characters\n * * Followed by:\n * * Any character except space, ('), (\"), \"<\", \">\", \"=\", (`), or\n * * (\") then any non-(\"), or\n * * (') then any non-(')\n */\nconst tagEndRegex = new RegExp(\n `>|${SPACE_CHAR}(?:(${NAME_CHAR}+)(${SPACE_CHAR}*=${SPACE_CHAR}*(?:${ATTR_VALUE_CHAR}|(\"|')|))|$)`,\n 'g'\n);\nconst ENTIRE_MATCH = 0;\nconst ATTRIBUTE_NAME = 1;\nconst SPACES_AND_EQUALS = 2;\nconst QUOTE_CHAR = 3;\n\nconst singleQuoteAttrEndRegex = /'/g;\nconst doubleQuoteAttrEndRegex = /\"/g;\n/**\n * Matches the raw text elements.\n *\n * Comments are not parsed within raw text elements, so we need to search their\n * text content for marker strings.\n */\nconst rawTextElement = /^(?:script|style|textarea|title)$/i;\n\n/** TemplateResult types */\nconst HTML_RESULT = 1;\nconst SVG_RESULT = 2;\nconst MATHML_RESULT = 3;\n\ntype ResultType = typeof HTML_RESULT | typeof SVG_RESULT | typeof MATHML_RESULT;\n\n// TemplatePart types\n// IMPORTANT: these must match the values in PartType\nconst ATTRIBUTE_PART = 1;\nconst CHILD_PART = 2;\nconst PROPERTY_PART = 3;\nconst BOOLEAN_ATTRIBUTE_PART = 4;\nconst EVENT_PART = 5;\nconst ELEMENT_PART = 6;\nconst COMMENT_PART = 7;\n\n/**\n * The return type of the template tag functions, {@linkcode html} and\n * {@linkcode svg} when it hasn't been compiled by @lit-labs/compiler.\n *\n * A `TemplateResult` object holds all the information about a template\n * expression required to render it: the template strings, expression values,\n * and type of template (html or svg).\n *\n * `TemplateResult` objects do not create any DOM on their own. To create or\n * update DOM you need to render the `TemplateResult`. See\n * [Rendering](https://lit.dev/docs/components/rendering) for more information.\n *\n */\nexport type UncompiledTemplateResult<T extends ResultType = ResultType> = {\n // This property needs to remain unminified.\n ['_$litType$']: T;\n strings: TemplateStringsArray;\n values: unknown[];\n};\n\n/**\n * This is a template result that may be either uncompiled or compiled.\n *\n * In the future, TemplateResult will be this type. If you want to explicitly\n * note that a template result is potentially compiled, you can reference this\n * type and it will continue to behave the same through the next major version\n * of Lit. This can be useful for code that wants to prepare for the next\n * major version of Lit.\n */\nexport type MaybeCompiledTemplateResult<T extends ResultType = ResultType> =\n | UncompiledTemplateResult<T>\n | CompiledTemplateResult;\n\n/**\n * The return type of the template tag functions, {@linkcode html} and\n * {@linkcode svg}.\n *\n * A `TemplateResult` object holds all the information about a template\n * expression required to render it: the template strings, expression values,\n * and type of template (html or svg).\n *\n * `TemplateResult` objects do not create any DOM on their own. To create or\n * update DOM you need to render the `TemplateResult`. See\n * [Rendering](https://lit.dev/docs/components/rendering) for more information.\n *\n * In Lit 4, this type will be an alias of\n * MaybeCompiledTemplateResult, so that code will get type errors if it assumes\n * that Lit templates are not compiled. When deliberately working with only\n * one, use either {@linkcode CompiledTemplateResult} or\n * {@linkcode UncompiledTemplateResult} explicitly.\n */\nexport type TemplateResult<T extends ResultType = ResultType> =\n UncompiledTemplateResult<T>;\n\nexport type HTMLTemplateResult = TemplateResult<typeof HTML_RESULT>;\n\nexport type SVGTemplateResult = TemplateResult<typeof SVG_RESULT>;\n\nexport type MathMLTemplateResult = TemplateResult<typeof MATHML_RESULT>;\n\n/**\n * A TemplateResult that has been compiled by @lit-labs/compiler, skipping the\n * prepare step.\n */\nexport interface CompiledTemplateResult {\n // This is a factory in order to make template initialization lazy\n // and allow ShadyRenderOptions scope to be passed in.\n // This property needs to remain unminified.\n ['_$litType$']: CompiledTemplate;\n values: unknown[];\n}\n\nexport interface CompiledTemplate extends Omit<Template, 'el'> {\n // el is overridden to be optional. We initialize it on first render\n el?: HTMLTemplateElement;\n\n // The prepared HTML string to create a template element from.\n // The type is a TemplateStringsArray to guarantee that the value came from\n // source code, preventing a JSON injection attack.\n h: TemplateStringsArray;\n}\n\n/**\n * Generates a template literal tag function that returns a TemplateResult with\n * the given result type.\n */\nconst tag =\n <T extends ResultType>(type: T) =>\n (strings: TemplateStringsArray, ...values: unknown[]): TemplateResult<T> => {\n // Warn against templates octal escape sequences\n // We do this here rather than in render so that the warning is closer to the\n // template definition.\n if (DEV_MODE && strings.some((s) => s === undefined)) {\n console.warn(\n 'Some template strings are undefined.\\n' +\n 'This is probably caused by illegal octal escape sequences.'\n );\n }\n if (DEV_MODE) {\n // Import static-html.js results in a circular dependency which g3 doesn't\n // handle. Instead we know that static values must have the field\n // `_$litStatic$`.\n if (\n values.some((val) => (val as {_$litStatic$: unknown})?.['_$litStatic$'])\n ) {\n issueWarning(\n '',\n `Static values 'literal' or 'unsafeStatic' cannot be used as values to non-static templates.\\n` +\n `Please use the static 'html' tag function. See https://lit.dev/docs/templates/expressions/#static-expressions`\n );\n }\n }\n return {\n // This property needs to remain unminified.\n ['_$litType$']: type,\n strings,\n values,\n };\n };\n\n/**\n * Interprets a template literal as an HTML template that can efficiently\n * render to and update a container.\n *\n * ```ts\n * const header = (title: string) => html`<h1>${title}</h1>`;\n * ```\n *\n * The `html` tag returns a description of the DOM to render as a value. It is\n * lazy, meaning no work is done until the template is rendered. When rendering,\n * if a template comes from the same expression as a previously rendered result,\n * it's efficiently updated instead of replaced.\n */\nexport const html = tag(HTML_RESULT);\n\n/**\n * Interprets a template literal as an SVG fragment that can efficiently render\n * to and update a container.\n *\n * ```ts\n * const rect = svg`<rect width=\"10\" height=\"10\"></rect>`;\n *\n * const myImage = html`\n * <svg viewBox=\"0 0 10 10\" xmlns=\"http://www.w3.org/2000/svg\">\n * ${rect}\n * </svg>`;\n * ```\n *\n * The `svg` *tag function* should only be used for SVG fragments, or elements\n * that would be contained **inside** an `<svg>` HTML element. A common error is\n * placing an `<svg>` *element* in a template tagged with the `svg` tag\n * function. The `<svg>` element is an HTML element and should be used within a\n * template tagged with the {@linkcode html} tag function.\n *\n * In LitElement usage, it's invalid to return an SVG fragment from the\n * `render()` method, as the SVG fragment will be contained within the element's\n * shadow root and thus not be properly contained within an `<svg>` HTML\n * element.\n */\nexport const svg = tag(SVG_RESULT);\n\n/**\n * Interprets a template literal as MathML fragment that can efficiently render\n * to and update a container.\n *\n * ```ts\n * const num = mathml`<mn>1</mn>`;\n *\n * const eq = html`\n * <math>\n * ${num}\n * </math>`;\n * ```\n *\n * The `mathml` *tag function* should only be used for MathML fragments, or\n * elements that would be contained **inside** a `<math>` HTML element. A common\n * error is placing a `<math>` *element* in a template tagged with the `mathml`\n * tag function. The `<math>` element is an HTML element and should be used\n * within a template tagged with the {@linkcode html} tag function.\n *\n * In LitElement usage, it's invalid to return an MathML fragment from the\n * `render()` method, as the MathML fragment will be contained within the\n * element's shadow root and thus not be properly contained within a `<math>`\n * HTML element.\n */\nexport const mathml = tag(MATHML_RESULT);\n\n/**\n * A sentinel value that signals that a value was handled by a directive and\n * should not be written to the DOM.\n */\nexport const noChange = Symbol.for('lit-noChange');\n\n/**\n * A sentinel value that signals a ChildPart to fully clear its content.\n *\n * ```ts\n * const button = html`${\n * user.isAdmin\n * ? html`<button>DELETE</button>`\n * : nothing\n * }`;\n * ```\n *\n * Prefer using `nothing` over other falsy values as it provides a consistent\n * behavior between various expression binding contexts.\n *\n * In child expressions, `undefined`, `null`, `''`, and `nothing` all behave the\n * same and render no nodes. In attribute expressions, `nothing` _removes_ the\n * attribute, while `undefined` and `null` will render an empty string. In\n * property expressions `nothing` becomes `undefined`.\n */\nexport const nothing = Symbol.for('lit-nothing');\n\n/**\n * The cache of prepared templates, keyed by the tagged TemplateStringsArray\n * and _not_ accounting for the specific template tag used. This means that\n * template tags cannot be dynamic - they must statically be one of html, svg,\n * or attr. This restriction simplifies the cache lookup, which is on the hot\n * path for rendering.\n */\nconst templateCache = new WeakMap<TemplateStringsArray, Template>();\n\n/**\n * Object specifying options for controlling lit-html rendering. Note that\n * while `render` may be called multiple times on the same `container` (and\n * `renderBefore` reference node) to efficiently update the rendered content,\n * only the options passed in during the first render are respected during\n * the lifetime of renders to that unique `container` + `renderBefore`\n * combination.\n */\nexport interface RenderOptions {\n /**\n * An object to use as the `this` value for event listeners. It's often\n * useful to set this to the host component rendering a template.\n */\n host?: object;\n /**\n * A DOM node before which to render content in the container.\n */\n renderBefore?: ChildNode | null;\n /**\n * Node used for cloning the template (`importNode` will be called on this\n * node). This controls the `ownerDocument` of the rendered DOM, along with\n * any inherited context. Defaults to the global `document`.\n */\n creationScope?: {importNode(node: Node, deep?: boolean): Node};\n /**\n * The initial connected state for the top-level part being rendered. If no\n * `isConnected` option is set, `AsyncDirective`s will be connected by\n * default. Set to `false` if the initial render occurs in a disconnected tree\n * and `AsyncDirective`s should see `isConnected === false` for their initial\n * render. The `part.setConnected()` method must be used subsequent to initial\n * render to change the connected state of the part.\n */\n isConnected?: boolean;\n}\n\nconst walker = d.createTreeWalker(\n d,\n 129 /* NodeFilter.SHOW_{ELEMENT|COMMENT} */\n);\n\nlet sanitizerFactoryInternal: SanitizerFactory = noopSanitizer;\n\n//\n// Classes only below here, const variable declarations only above here...\n//\n// Keeping variable declarations and classes together improves minification.\n// Interfaces and type aliases can be interleaved freely.\n//\n\n// Type for classes that have a `_directive` or `_directives[]` field, used by\n// `resolveDirective`\nexport interface DirectiveParent {\n _$parent?: DirectiveParent;\n _$isConnected: boolean;\n __directive?: Directive;\n __directives?: Array<Directive | undefined>;\n}\n\nfunction trustFromTemplateString(\n tsa: TemplateStringsArray,\n stringFromTSA: string\n): TrustedHTML {\n // A security check to prevent spoofing of Lit template results.\n // In the future, we may be able to replace this with Array.isTemplateObject,\n // though we might need to make that check inside of the html and svg\n // functions, because precompiled templates don't come in as\n // TemplateStringArray objects.\n if (!isArray(tsa) || !tsa.hasOwnProperty('raw')) {\n let message = 'invalid template strings array';\n if (DEV_MODE) {\n message = `\n Internal Error: expected template strings to be an array\n with a 'raw' field. Faking a template strings array by\n calling html or svg like an ordinary function is effectively\n the same as calling unsafeHtml and can lead to major security\n issues, e.g. opening your code up to XSS attacks.\n If you're using the html or svg tagged template functions normally\n and still seeing this error, please file a bug at\n https://github.com/lit/lit/issues/new?template=bug_report.md\n and include information about your build tooling, if any.\n `\n .trim()\n .replace(/\\n */g, '\\n');\n }\n throw new Error(message);\n }\n return policy !== undefined\n ? policy.createHTML(stringFromTSA)\n : (stringFromTSA as unknown as TrustedHTML);\n}\n\n/**\n * Returns an HTML string for the given TemplateStringsArray and result type\n * (HTML or SVG), along with the case-sensitive bound attribute names in\n * template order. The HTML contains comment markers denoting the `ChildPart`s\n * and suffixes on bound attributes denoting the `AttributeParts`.\n *\n * @param strings template strings array\n * @param type HTML or SVG\n * @return Array containing `[html, attrNames]` (array returned for terseness,\n * to avoid object fields since this code is shared with non-minified SSR\n * code)\n */\nconst getTemplateHtml = (\n strings: TemplateStringsArray,\n type: ResultType\n): [TrustedHTML, Array<string>] => {\n // Insert makers into the template HTML to represent the position of\n // bindings. The following code scans the template strings to determine the\n // syntactic position of the bindings. They can be in text position, where\n // we insert an HTML comment, attribute value position, where we insert a\n // sentinel string and re-write the attribute name, or inside a tag where\n // we insert the sentinel string.\n const l = strings.length - 1;\n // Stores the case-sensitive bound attribute names in the order of their\n // parts. ElementParts are also reflected in this array as undefined\n // rather than a string, to disambiguate from attribute bindings.\n const attrNames: Array<string> = [];\n let html =\n type === SVG_RESULT ? '<svg>' : type === MATHML_RESULT ? '<math>' : '';\n\n // When we're inside a raw text tag (not it's text content), the regex\n // will still be tagRegex so we can find attributes, but will switch to\n // this regex when the tag ends.\n let rawTextEndRegex: RegExp | undefined;\n\n // The current parsing state, represented as a reference to one of the\n // regexes\n let regex = textEndRegex;\n\n for (let i = 0; i < l; i++) {\n const s = strings[i];\n // The index of the end of the last attribute name. When this is\n // positive at end of a string, it means we're in an attribute value\n // position and need to rewrite the attribute name.\n // We also use a special value of -2 to indicate that we encountered\n // the end of a string in attribute name position.\n let attrNameEndIndex = -1;\n let attrName: string | undefined;\n let lastIndex = 0;\n let match!: RegExpExecArray | null;\n\n // The conditions in this loop handle the current parse state, and the\n // assignments to the `regex` variable are the state transitions.\n while (lastIndex < s.length) {\n // Make sure we start searching from where we previously left off\n regex.lastIndex = lastIndex;\n match = regex.exec(s);\n if (match === null) {\n break;\n }\n lastIndex = regex.lastIndex;\n if (regex === textEndRegex) {\n if (match[COMMENT_START] === '!--') {\n regex = commentEndRegex;\n } else if (match[COMMENT_START] !== undefined) {\n // We started a weird comment, like </{\n regex = comment2EndRegex;\n } else if (match[TAG_NAME] !== undefined) {\n if (rawTextElement.test(match[TAG_NAME])) {\n // Record if we encounter a raw-text element. We'll switch to\n // this regex at the end of the tag.\n rawTextEndRegex = new RegExp(`</${match[TAG_NAME]}`, 'g');\n }\n regex = tagEndRegex;\n } else if (match[DYNAMIC_TAG_NAME] !== undefined) {\n if (DEV_MODE) {\n throw new Error(\n 'Bindings in tag names are not supported. Please use static templates instead. ' +\n 'See https://lit.dev/docs/templates/expressions/#static-expressions'\n );\n }\n regex = tagEndRegex;\n }\n } else if (regex === tagEndRegex) {\n if (match[ENTIRE_MATCH] === '>') {\n // End of a tag. If we had started a raw-text element, use that\n // regex\n regex = rawTextEndRegex ?? textEndRegex;\n // We may be ending an unquoted attribute value, so make sure we\n // clear any pending attrNameEndIndex\n attrNameEndIndex = -1;\n } else if (match[ATTRIBUTE_NAME] === undefined) {\n // Attribute name position\n attrNameEndIndex = -2;\n } else {\n attrNameEndIndex = regex.lastIndex - match[SPACES_AND_EQUALS].length;\n attrName = match[ATTRIBUTE_NAME];\n regex =\n match[QUOTE_CHAR] === undefined\n ? tagEndRegex\n : match[QUOTE_CHAR] === '\"'\n ? doubleQuoteAttrEndRegex\n : singleQuoteAttrEndRegex;\n }\n } else if (\n regex === doubleQuoteAttrEndRegex ||\n regex === singleQuoteAttrEndRegex\n ) {\n regex = tagEndRegex;\n } else if (regex === commentEndRegex || regex === comment2EndRegex) {\n regex = textEndRegex;\n } else {\n // Not one of the five state regexes, so it must be the dynamically\n // created raw text regex and we're at the close of that element.\n regex = tagEndRegex;\n rawTextEndRegex = undefined;\n }\n }\n\n if (DEV_MODE) {\n // If we have a attrNameEndIndex, which indicates that we should\n // rewrite the attribute name, assert that we're in a valid attribute\n // position - either in a tag, or a quoted attribute value.\n console.assert(\n attrNameEndIndex === -1 ||\n regex === tagEndRegex ||\n regex === singleQuoteAttrEndRegex ||\n regex === doubleQuoteAttrEndRegex,\n 'unexpected parse state B'\n );\n }\n\n // We have four cases:\n // 1. We're in text position, and not in a raw text element\n // (regex === textEndRegex): insert a comment marker.\n // 2. We have a non-negative attrNameEndIndex which means we need to\n // rewrite the attribute name to add a bound attribute suffix.\n // 3. We're at the non-first binding in a multi-binding attribute, use a\n // plain marker.\n // 4. We're somewhere else inside the tag. If we're in attribute name\n // position (attrNameEndIndex === -2), add a sequential suffix to\n // generate a unique attribute name.\n\n // Detect a binding next to self-closing tag end and insert a space to\n // separate the marker from the tag end:\n const end =\n regex === tagEndRegex && strings[i + 1].startsWith('/>') ? ' ' : '';\n html +=\n regex === textEndRegex\n ? s + nodeMarker\n : attrNameEndIndex >= 0\n ? (attrNames.push(attrName!),\n s.slice(0, attrNameEndIndex) +\n boundAttributeSuffix +\n s.slice(attrNameEndIndex)) +\n marker +\n end\n : s + marker + (attrNameEndIndex === -2 ? i : end);\n }\n\n const htmlResult: string | TrustedHTML =\n html +\n (strings[l] || '<?>') +\n (type === SVG_RESULT ? '</svg>' : type === MATHML_RESULT ? '</math>' : '');\n\n // Returned as an array for terseness\n return [trustFromTemplateString(strings, htmlResult), attrNames];\n};\n\n/** @internal */\nexport type {Template};\nclass Template {\n /** @internal */\n el!: HTMLTemplateElement;\n\n parts: Array<TemplatePart> = [];\n\n constructor(\n // This property needs to remain unminified.\n {strings, ['_$litType$']: type}: UncompiledTemplateResult,\n options?: RenderOptions\n ) {\n let node: Node | null;\n let nodeIndex = 0;\n let attrNameIndex = 0;\n const partCount = strings.length - 1;\n const parts = this.parts;\n\n // Create template element\n const [html, attrNames] = getTemplateHtml(strings, type);\n this.el = Template.createElement(html, options);\n walker.currentNode = this.el.content;\n\n // Re-parent SVG or MathML nodes into template root\n if (type === SVG_RESULT || type === MATHML_RESULT) {\n const wrapper = this.el.content.firstChild!;\n wrapper.replaceWith(...wrapper.childNodes);\n }\n\n // Walk the template to find binding markers and create TemplateParts\n while ((node = walker.nextNode()) !== null && parts.length < partCount) {\n if (node.nodeType === 1) {\n if (DEV_MODE) {\n const tag = (node as Element).localName;\n // Warn if `textarea` includes an expression and throw if `template`\n // does since these are not supported. We do this by checking\n // innerHTML for anything that looks like a marker. This catches\n // cases like bindings in textarea there markers turn into text nodes.\n if (\n /^(?:textarea|template)$/i!.test(tag) &&\n (node as Element).innerHTML.includes(marker)\n ) {\n const m =\n `Expressions are not supported inside \\`${tag}\\` ` +\n `elements. See https://lit.dev/msg/expression-in-${tag} for more ` +\n `information.`;\n if (tag === 'template') {\n throw new Error(m);\n } else issueWarning('', m);\n }\n }\n // TODO (justinfagnani): for attempted dynamic tag names, we don't\n // increment the bindingIndex, and it'll be off by 1 in the element\n // and off by two after it.\n if ((node as Element).hasAttributes()) {\n for (const name of (node as Element).getAttributeNames()) {\n if (name.endsWith(boundAttributeSuffix)) {\n const realName = attrNames[attrNameIndex++];\n const value = (node as Element).getAttribute(name)!;\n const statics = value.split(marker);\n const m = /([.?@])?(.*)/.exec(realName)!;\n parts.push({\n type: ATTRIBUTE_PART,\n index: nodeIndex,\n name: m[2],\n strings: statics,\n ctor:\n m[1] === '.'\n ? PropertyPart\n : m[1] === '?'\n ? BooleanAttributePart\n : m[1] === '@'\n ? EventPart\n : AttributePart,\n });\n (node as Element).removeAttribute(name);\n } else if (name.startsWith(marker)) {\n parts.push({\n type: ELEMENT_PART,\n index: nodeIndex,\n });\n (node as Element).removeAttribute(name);\n }\n }\n }\n // TODO (justinfagnani): benchmark the regex against testing for each\n // of the 3 raw text element names.\n if (rawTextElement.test((node as Element).tagName)) {\n // For raw text elements we need to split the text content on\n // markers, create a Text node for each segment, and create\n // a TemplatePart for each marker.\n const strings = (node as Element).textContent!.split(marker);\n const lastIndex = strings.length - 1;\n if (lastIndex > 0) {\n (node as Element).textContent = trustedTypes\n ? (trustedTypes.emptyScript as unknown as '')\n : '';\n // Generate a new text node for each literal section\n // These nodes are also used as the markers for child parts\n for (let i = 0; i < lastIndex; i++) {\n (node as Element).append(strings[i], createMarker());\n // Walk past the marker node we just added\n walker.nextNode();\n parts.push({type: CHILD_PART, index: ++nodeIndex});\n }\n // Note because this marker is added after the walker's current\n // node, it will be walked to in the outer loop (and ignored), so\n // we don't need to adjust nodeIndex here\n (node as Element).append(strings[lastIndex], createMarker());\n }\n }\n } else if (node.nodeType === 8) {\n const data = (node as Comment).data;\n if (data === markerMatch) {\n parts.push({type: CHILD_PART, index: nodeIndex});\n } else {\n let i = -1;\n while ((i = (node as Comment).data.indexOf(marker, i + 1)) !== -1) {\n // Comment node has a binding marker inside, make an inactive part\n // The binding won't work, but subsequent bindings will\n parts.push({type: COMMENT_PART, index: nodeIndex});\n // Move to the end of the match\n i += marker.length - 1;\n }\n }\n }\n nodeIndex++;\n }\n\n if (DEV_MODE) {\n // If there was a duplicate attribute on a tag, then when the tag is\n // parsed into an element the attribute gets de-duplicated. We can detect\n // this mismatch if we haven't precisely consumed every attribute name\n // when preparing the template. This works because `attrNames` is built\n // from the template string and `attrNameIndex` comes from processing the\n // resulting DOM.\n if (attrNames.length !== attrNameIndex) {\n throw new Error(\n `Detected duplicate attribute bindings. This occurs if your template ` +\n `has duplicate attributes on an element tag. For example ` +\n `\"<input ?disabled=\\${true} ?disabled=\\${false}>\" contains a ` +\n `duplicate \"disabled\" attribute. The error was detected in ` +\n `the following template: \\n` +\n '`' +\n strings.join('${...}') +\n '`'\n );\n }\n }\n\n // We could set walker.currentNode to another node here to prevent a memory\n // leak, but every time we prepare a template, we immediately render it\n // and re-use the walker in new TemplateInstance._clone().\n debugLogEvent &&\n debugLogEvent({\n kind: 'template prep',\n template: this,\n clonableTemplate: this.el,\n parts: this.parts,\n strings,\n });\n }\n\n // Overridden via `litHtmlPolyfillSupport` to provide platform support.\n /** @nocollapse */\n static createElement(html: TrustedHTML, _options?: RenderOptions) {\n const el = d.createElement('template');\n el.innerHTML = html as unknown as string;\n return el;\n }\n}\n\nexport interface Disconnectable {\n _$parent?: Disconnectable;\n _$disconnectableChildren?: Set<Disconnectable>;\n // Rather than hold connection state on instances, Disconnectables recursively\n // fetch the connection state from the RootPart they are connected in via\n // getters up the Disconnectable tree via _$parent references. This pushes the\n // cost of tracking the isConnected state to `AsyncDirectives`, and avoids\n // needing to pass all Disconnectables (parts, template instances, and\n // directives) their connection state each time it changes, which would be\n // costly for trees that have no AsyncDirectives.\n _$isConnected: boolean;\n}\n\nfunction resolveDirective(\n part: ChildPart | AttributePart | ElementPart,\n value: unknown,\n parent: DirectiveParent = part,\n attributeIndex?: number\n): unknown {\n // Bail early if the value is explicitly noChange. Note, this means any\n // nested directive is still attached and is not run.\n if (value === noChange) {\n return value;\n }\n let currentDirective =\n attributeIndex !== undefined\n ? (parent as AttributePart).__directives?.[attributeIndex]\n : (parent as ChildPart | ElementPart | Directive).__directive;\n const nextDirectiveConstructor = isPrimitive(value)\n ? undefined\n : // This property needs to remain unminified.\n (value as DirectiveResult)['_$litDirective$'];\n if (currentDirective?.constructor !== nextDirectiveConstructor) {\n // This property needs to remain unminified.\n currentDirective?.['_$notifyDirectiveConnectionChanged']?.(false);\n if (nextDirectiveConstructor === undefined) {\n currentDirective = undefined;\n } else {\n currentDirective = new nextDirectiveConstructor(part as PartInfo);\n currentDirective._$initialize(part, parent, attributeIndex);\n }\n if (attributeIndex !== undefined) {\n ((parent as AttributePart).__directives ??= [])[attributeIndex] =\n currentDirective;\n } else {\n (parent as ChildPart | Directive).__directive = currentDirective;\n }\n }\n if (currentDirective !== undefined) {\n value = resolveDirective(\n part,\n currentDirective._$resolve(part, (value as DirectiveResult).values),\n currentDirective,\n attributeIndex\n );\n }\n return value;\n}\n\nexport type {TemplateInstance};\n/**\n * An updateable instance of a Template. Holds references to the Parts used to\n * update the template instance.\n */\nclass TemplateInstance implements Disconnectable {\n _$template: Template;\n _$parts: Array<Part | undefined> = [];\n\n /** @internal */\n _$parent: ChildPart;\n /** @internal */\n _$disconnectableChildren?: Set<Disconnectable> = undefined;\n\n constructor(template: Template, parent: ChildPart) {\n this._$template = template;\n this._$parent = parent;\n }\n\n // Called by ChildPart parentNode getter\n get parentNode() {\n return this._$parent.parentNode;\n }\n\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n\n // This method is separate from the constructor because we need to return a\n // DocumentFragment and we don't want to hold onto it with an instance field.\n _clone(options: RenderOptions | undefined) {\n const {\n el: {content},\n parts: parts,\n } = this._$template;\n const fragment = (options?.creationScope ?? d).importNode(content, true);\n walker.currentNode = fragment;\n\n let node = walker.nextNode()!;\n let nodeIndex = 0;\n let partIndex = 0;\n let templatePart = parts[0];\n\n while (templatePart !== undefined) {\n if (nodeIndex === templatePart.index) {\n let part: Part | undefined;\n if (templatePart.type === CHILD_PART) {\n part = new ChildPart(\n node as HTMLElement,\n node.nextSibling,\n this,\n options\n );\n } else if (templatePart.type === ATTRIBUTE_PART) {\n part = new templatePart.ctor(\n node as HTMLElement,\n templatePart.name,\n templatePart.strings,\n this,\n options\n );\n } else if (templatePart.type === ELEMENT_PART) {\n part = new ElementPart(node as HTMLElement, this, options);\n }\n this._$parts.push(part);\n templatePart = parts[++partIndex];\n }\n if (nodeIndex !== templatePart?.index) {\n node = walker.nextNode()!;\n nodeIndex++;\n }\n }\n // We need to set the currentNode away from the cloned tree so that we\n // don't hold onto the tree even if the tree is detached and should be\n // freed.\n walker.currentNode = d;\n return fragment;\n }\n\n _update(values: Array<unknown>) {\n let i = 0;\n for (const part of this._$parts) {\n if (part !== undefined) {\n debugLogEvent &&\n debugLogEvent({\n kind: 'set part',\n part,\n value: values[i],\n valueIndex: i,\n values,\n templateInstance: this,\n });\n if ((part as AttributePart).strings !== undefined) {\n (part as AttributePart)._$setValue(values, part as AttributePart, i);\n // The number of values the part consumes is part.strings.length - 1\n // since values are in between template spans. We increment i by 1\n // later in the loop, so increment it by part.strings.length - 2 here\n i += (part as AttributePart).strings!.length - 2;\n } else {\n part._$setValue(values[i]);\n }\n }\n i++;\n }\n }\n}\n\n/*\n * Parts\n */\ntype AttributeTemplatePart = {\n readonly type: typeof ATTRIBUTE_PART;\n readonly index: number;\n readonly name: string;\n readonly ctor: typeof AttributePart;\n readonly strings: ReadonlyArray<string>;\n};\ntype ChildTemplatePart = {\n readonly type: typeof CHILD_PART;\n readonly index: number;\n};\ntype ElementTemplatePart = {\n readonly type: typeof ELEMENT_PART;\n readonly index: number;\n};\ntype CommentTemplatePart = {\n readonly type: typeof COMMENT_PART;\n readonly index: number;\n};\n\n/**\n * A TemplatePart represents a dynamic part in a template, before the template\n * is instantiated. When a template is instantiated Parts are created from\n * TemplateParts.\n */\ntype TemplatePart =\n | ChildTemplatePart\n | AttributeTemplatePart\n | ElementTemplatePart\n | CommentTemplatePart;\n\nexport type Part =\n | ChildPart\n | AttributePart\n | PropertyPart\n | BooleanAttributePart\n | ElementPart\n | EventPart;\n\nexport type {ChildPart};\nclass ChildPart implements Disconnectable {\n readonly type = CHILD_PART;\n readonly options: RenderOptions | undefined;\n _$committedValue: unknown = nothing;\n /** @internal */\n __directive?: Directive;\n /** @internal */\n _$startNode: ChildNode;\n /** @internal */\n _$endNode: ChildNode | null;\n private _textSanitizer: ValueSanitizer | undefined;\n /** @internal */\n _$parent: Disconnectable | undefined;\n /**\n * Connection state for RootParts only (i.e. ChildPart without _$parent\n * returned from top-level `render`). This field is unused otherwise. The\n * intention would be clearer if we made `RootPart` a subclass of `ChildPart`\n * with this field (and a different _$isConnected getter), but the subclass\n * caused a perf regression, possibly due to making call sites polymorphic.\n * @internal\n */\n __isConnected: boolean;\n\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n // ChildParts that are not at the root should always be created with a\n // parent; only RootChildNode's won't, so they return the local isConnected\n // state\n return this._$parent?._$isConnected ?? this.__isConnected;\n }\n\n // The following fields will be patched onto ChildParts when required by\n // AsyncDirective\n /** @internal */\n _$disconnectableChildren?: Set<Disconnectable> = undefined;\n /** @internal */\n _$notifyConnectionChanged?(\n isConnected: boolean,\n removeFromParent?: boolean,\n from?: number\n ): void;\n /** @internal */\n _$reparentDisconnectables?(parent: Disconnectable): void;\n\n constructor(\n startNode: ChildNode,\n endNode: ChildNode | null,\n parent: TemplateInstance | ChildPart | undefined,\n options: RenderOptions | undefined\n ) {\n this._$startNode = startNode;\n this._$endNode = endNode;\n this._$parent = parent;\n this.options = options;\n // Note __isConnected is only ever accessed on RootParts (i.e. when there is\n // no _$parent); the value on a non-root-part is \"don't care\", but checking\n // for parent would be more code\n this.__isConnected = options?.isConnected ?? true;\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n // Explicitly initialize for consistent class shape.\n this._textSanitizer = undefined;\n }\n }\n\n /**\n * The parent node into which the part renders its content.\n *\n * A ChildPart's content consists of a range of adjacent child nodes of\n * `.parentNode`, possibly bordered by 'marker nodes' (`.startNode` and\n * `.endNode`).\n *\n * - If both `.startNode` and `.endNode` are non-null, then the part's content\n * consists of all siblings between `.startNode` and `.endNode`, exclusively.\n *\n * - If `.startNode` is non-null but `.endNode` is null, then the part's\n * content consists of all siblings following `.startNode`, up to and\n * including the last child of `.parentNode`. If `.endNode` is non-null, then\n * `.startNode` will always be non-null.\n *\n * - If both `.endNode` and `.startNode` are null, then the part's content\n * consists of all child nodes of `.parentNode`.\n */\n get parentNode(): Node {\n let parentNode: Node = wrap(this._$startNode).parentNode!;\n const parent = this._$parent;\n if (\n parent !== undefined &&\n parentNode?.nodeType === 11 /* Node.DOCUMENT_FRAGMENT */\n ) {\n // If the parentNode is a DocumentFragment, it may be because the DOM is\n // still in the cloned fragment during initial render; if so, get the real\n // parentNode the part will be committed into by asking the parent.\n parentNode = (parent as ChildPart | TemplateInstance).parentNode;\n }\n return parentNode;\n }\n\n /**\n * The part's leading marker node, if any. See `.parentNode` for more\n * information.\n */\n get startNode(): Node | null {\n return this._$startNode;\n }\n\n /**\n * The part's trailing marker node, if any. See `.parentNode` for more\n * information.\n */\n get endNode(): Node | null {\n return this._$endNode;\n }\n\n _$setValue(value: unknown, directiveParent: DirectiveParent = this): void {\n if (DEV_MODE && this.parentNode === null) {\n throw new Error(\n `This \\`ChildPart\\` has no \\`parentNode\\` and therefore cannot accept a value. This likely means the element containing the part was manipulated in an unsupported way outside of Lit's control such that the part's marker nodes were ejected from DOM. For example, setting the element's \\`innerHTML\\` or \\`textContent\\` can do this.`\n );\n }\n value = resolveDirective(this, value, directiveParent);\n if (isPrimitive(value)) {\n // Non-rendering child values. It's important that these do not render\n // empty text nodes to avoid issues with preventing default <slot>\n // fallback content.\n if (value === nothing || value == null || value === '') {\n if (this._$committedValue !== nothing) {\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit nothing to child',\n start: this._$startNode,\n end: this._$endNode,\n parent: this._$parent,\n options: this.options,\n });\n this._$clear();\n }\n this._$committedValue = nothing;\n } else if (value !== this._$committedValue && value !== noChange) {\n this._commitText(value);\n }\n // This property needs to remain unminified.\n } else if ((value as TemplateResult)['_$litType$'] !== undefined) {\n this._commitTemplateResult(value as TemplateResult);\n } else if ((value as Node).nodeType !== undefined) {\n if (DEV_MODE && this.options?.host === value) {\n this._commitText(\n `[probable mistake: rendered a template's host in itself ` +\n `(commonly caused by writing \\${this} in a template]`\n );\n console.warn(\n `Attempted to render the template host`,\n value,\n `inside itself. This is almost always a mistake, and in dev mode `,\n `we render some warning text. In production however, we'll `,\n `render it, which will usually result in an error, and sometimes `,\n `in the element disappearing from the DOM.`\n );\n return;\n }\n this._commitNode(value as Node);\n } else if (isIterable(value)) {\n this._commitIterable(value);\n } else {\n // Fallback, will render the string representation\n this._commitText(value);\n }\n }\n\n private _insert<T extends Node>(node: T) {\n return wrap(wrap(this._$startNode).parentNode!).insertBefore(\n node,\n this._$endNode\n );\n }\n\n private _commitNode(value: Node): void {\n if (this._$committedValue !== value) {\n this._$clear();\n if (\n ENABLE_EXTRA_SECURITY_HOOKS &&\n sanitizerFactoryInternal !== noopSanitizer\n ) {\n const parentNodeName = this._$startNode.parentNode?.nodeName;\n if (parentNodeName === 'STYLE' || parentNodeName === 'SCRIPT') {\n let message = 'Forbidden';\n if (DEV_MODE) {\n if (parentNodeName === 'STYLE') {\n message =\n `Lit does not support binding inside style nodes. ` +\n `This is a security risk, as style injection attacks can ` +\n `exfiltrate data and spoof UIs. ` +\n `Consider instead using css\\`...\\` literals ` +\n `to compose styles, and do dynamic styling with ` +\n `css custom properties, ::parts, <slot>s, ` +\n `and by mutating the DOM rather than stylesheets.`;\n } else {\n message =\n `Lit does not support binding inside script nodes. ` +\n `This is a security risk, as it could allow arbitrary ` +\n `code execution.`;\n }\n }\n throw new Error(message);\n }\n }\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit node',\n start: this._$startNode,\n parent: this._$parent,\n value: value,\n options: this.options,\n });\n this._$committedValue = this._insert(value);\n }\n }\n\n private _commitText(value: unknown): void {\n // If the committed value is a primitive it means we called _commitText on\n // the previous render, and we know that this._$startNode.nextSibling is a\n // Text node. We can now just replace the text content (.data) of the node.\n if (\n this._$committedValue !== nothing &&\n isPrimitive(this._$committedValue)\n ) {\n const node = wrap(this._$startNode).nextSibling as Text;\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n if (this._textSanitizer === undefined) {\n this._textSanitizer = createSanitizer(node, 'data', 'property');\n }\n value = this._textSanitizer(value);\n }\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit text',\n node,\n value,\n options: this.options,\n });\n (node as Text).data = value as string;\n } else {\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n const textNode = d.createTextNode('');\n this._commitNode(textNode);\n // When setting text content, for security purposes it matters a lot\n // what the parent is. For example, <style> and <script> need to be\n // handled with care, while <span> does not. So first we need to put a\n // text node into the document, then we can sanitize its content.\n if (this._textSanitizer === undefined) {\n this._textSanitizer = createSanitizer(textNode, 'data', 'property');\n }\n value = this._textSanitizer(value);\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit text',\n node: textNode,\n value,\n options: this.options,\n });\n textNode.data = value as string;\n } else {\n this._commitNode(d.createTextNode(value as string));\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit text',\n node: wrap(this._$startNode).nextSibling as Text,\n value,\n options: this.options,\n });\n }\n }\n this._$committedValue = value;\n }\n\n private _commitTemplateResult(\n result: TemplateResult | CompiledTemplateResult\n ): void {\n // This property needs to remain unminified.\n const {values, ['_$litType$']: type} = result;\n // If $litType$ is a number, result is a plain TemplateResult and we get\n // the template from the template cache. If not, result is a\n // CompiledTemplateResult and _$litType$ is a CompiledTemplate and we need\n // to create the <template> element the first time we see it.\n const template: Template | CompiledTemplate =\n typeof type === 'number'\n ? this._$getTemplate(result as UncompiledTemplateResult)\n : (type.el === undefined &&\n (type.el = Template.createElement(\n trustFromTemplateString(type.h, type.h[0]),\n this.options\n )),\n type);\n\n if ((this._$committedValue as TemplateInstance)?._$template === template) {\n debugLogEvent &&\n debugLogEvent({\n kind: 'template updating',\n template,\n instance: this._$committedValue as TemplateInstance,\n parts: (this._$committedValue as TemplateInstance)._$parts,\n options: this.options,\n values,\n });\n (this._$committedValue as TemplateInstance)._update(values);\n } else {\n const instance = new TemplateInstance(template as Template, this);\n const fragment = instance._clone(this.options);\n debugLogEvent &&\n debugLogEvent({\n kind: 'template instantiated',\n template,\n instance,\n parts: instance._$parts,\n options: this.options,\n fragment,\n values,\n });\n instance._update(values);\n debugLogEvent &&\n debugLogEvent({\n kind: 'template instantiated and updated',\n template,\n instance,\n parts: instance._$parts,\n options: this.options,\n fragment,\n values,\n });\n this._commitNode(fragment);\n this._$committedValue = instance;\n }\n }\n\n // Overridden via `litHtmlPolyfillSupport` to provide platform support.\n /** @internal */\n _$getTemplate(result: UncompiledTemplateResult) {\n let template = templateCache.get(result.strings);\n if (template === undefined) {\n templateCache.set(result.strings, (template = new Template(result)));\n }\n return template;\n }\n\n private _commitIterable(value: Iterable<unknown>): void {\n // For an Iterable, we create a new InstancePart per item, then set its\n // value to the item. This is a little bit of overhead for every item in\n // an Iterable, but it lets us recurse easily and efficiently update Arrays\n // of TemplateResults that will be commonly returned from expressions like:\n // array.map((i) => html`${i}`), by reusing existing TemplateInstances.\n\n // If value is an array, then the previous render was of an\n // iterable and value will contain the ChildParts from the previous\n // render. If value is not an array, clear this part and make a new\n // array for ChildParts.\n if (!isArray(this._$committedValue)) {\n this._$committedValue = [];\n this._$clear();\n }\n\n // Lets us keep track of how many items we stamped so we can clear leftover\n // items from a previous render\n const itemParts = this._$committedValue as ChildPart[];\n let partIndex = 0;\n let itemPart: ChildPart | undefined;\n\n for (const item of value) {\n if (partIndex === itemParts.length) {\n // If no existing part, create a new one\n // TODO (justinfagnani): test perf impact of always creating two parts\n // instead of sharing parts between nodes\n // https://github.com/lit/lit/issues/1266\n itemParts.push(\n (itemPart = new ChildPart(\n this._insert(createMarker()),\n this._insert(createMarker()),\n this,\n this.options\n ))\n );\n } else {\n // Reuse an existing part\n itemPart = itemParts[partIndex];\n }\n itemPart._$setValue(item);\n partIndex++;\n }\n\n if (partIndex < itemParts.length) {\n // itemParts always have end nodes\n this._$clear(\n itemPart && wrap(itemPart._$endNode!).nextSibling,\n partIndex\n );\n // Truncate the parts array so _value reflects the current state\n itemParts.length = partIndex;\n }\n }\n\n /**\n * Removes the nodes contained within this Part from the DOM.\n *\n * @param start Start node to clear from, for clearing a subset of the part's\n * DOM (used when truncating iterables)\n * @param from When `start` is specified, the index within the iterable from\n * which ChildParts are being removed, used for disconnecting directives in\n * those Parts.\n *\n * @internal\n */\n _$clear(\n start: ChildNode | null = wrap(this._$startNode).nextSibling,\n from?: number\n ) {\n this._$notifyConnectionChanged?.(false, true, from);\n while (start && start !== this._$endNode) {\n const n = wrap(start!).nextSibling;\n (wrap(start!) as Element).remove();\n start = n;\n }\n }\n /**\n * Implementation of RootPart's `isConnected`. Note that this method\n * should only be called on `RootPart`s (the `ChildPart` returned from a\n * top-level `render()` call). It has no effect on non-root ChildParts.\n * @param isConnected Whether to set\n * @internal\n */\n setConnected(isConnected: boolean) {\n if (this._$parent === undefined) {\n this.__isConnected = isConnected;\n this._$notifyConnectionChanged?.(isConnected);\n } else if (DEV_MODE) {\n throw new Error(\n 'part.setConnected() may only be called on a ' +\n 'RootPart returned from render().'\n );\n }\n }\n}\n\n/**\n * A top-level `ChildPart` returned from `render` that manages the connected\n * state of `AsyncDirective`s created throughout the tree below it.\n */\nexport interface RootPart extends ChildPart {\n /**\n * Sets the connection state for `AsyncDirective`s contained within this root\n * ChildPart.\n *\n * lit-html does not automatically monitor the connectedness of DOM rendered;\n * as such, it is the responsibility of the caller to `render` to ensure that\n * `part.setConnected(false)` is called before the part object is potentially\n * discarded, to ensure that `AsyncDirective`s have a chance to dispose of\n * any resources being held. If a `RootPart` that was previously\n * disconnected is subsequently re-connected (and its `AsyncDirective`s should\n * re-connect), `setConnected(true)` should be called.\n *\n * @param isConnected Whether directives within this tree should be connected\n * or not\n */\n setConnected(isConnected: boolean): void;\n}\n\nexport type {AttributePart};\nclass AttributePart implements Disconnectable {\n readonly type:\n | typeof ATTRIBUTE_PART\n | typeof PROPERTY_PART\n | typeof BOOLEAN_ATTRIBUTE_PART\n | typeof EVENT_PART = ATTRIBUTE_PART;\n readonly element: HTMLElement;\n readonly name: string;\n readonly options: RenderOptions | undefined;\n\n /**\n * If this attribute part represents an interpolation, this contains the\n * static strings of the interpolation. For single-value, complete bindings,\n * this is undefined.\n */\n readonly strings?: ReadonlyArray<string>;\n /** @internal */\n _$committedValue: unknown | Array<unknown> = nothing;\n /** @internal */\n __directives?: Array<Directive | undefined>;\n /** @internal */\n _$parent: Disconnectable;\n /** @internal */\n _$disconnectableChildren?: Set<Disconnectable> = undefined;\n\n protected _sanitizer: ValueSanitizer | undefined;\n\n get tagName() {\n return this.element.tagName;\n }\n\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n\n constructor(\n element: HTMLElement,\n name: string,\n strings: ReadonlyArray<string>,\n parent: Disconnectable,\n options: RenderOptions | undefined\n ) {\n this.element = element;\n this.name = name;\n this._$parent = parent;\n this.options = options;\n if (strings.length > 2 || strings[0] !== '' || strings[1] !== '') {\n this._$committedValue = new Array(strings.length - 1).fill(new String());\n this.strings = strings;\n } else {\n this._$committedValue = nothing;\n }\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n this._sanitizer = undefined;\n }\n }\n\n /**\n * Sets the value of this part by resolving the value from possibly multiple\n * values and static strings and committing it to the DOM.\n * If this part is single-valued, `this._strings` will be undefined, and the\n * method will be called with a single value argument. If this part is\n * multi-value, `this._strings` will be defined, and the method is called\n * with the value array of the part's owning TemplateInstance, and an offset\n * into the value array from which the values should be read.\n * This method is overloaded this way to eliminate short-lived array slices\n * of the template instance values, and allow a fast-path for single-valued\n * parts.\n *\n * @param value The part value, or an array of values for multi-valued parts\n * @param valueIndex the index to start reading values from. `undefined` for\n * single-valued parts\n * @param noCommit causes the part to not commit its value to the DOM. Used\n * in hydration to prime attribute parts with their first-rendered value,\n * but not set the attribute, and in SSR to no-op the DOM operation and\n * capture the value for serialization.\n *\n * @internal\n */\n _$setValue(\n value: unknown | Array<unknown>,\n directiveParent: DirectiveParent = this,\n valueIndex?: number,\n noCommit?: boolean\n ) {\n const strings = this.strings;\n\n // Whether any of the values has changed, for dirty-checking\n let change = false;\n\n if (strings === undefined) {\n // Single-value binding case\n value = resolveDirective(this, value, directiveParent, 0);\n change =\n !isPrimitive(value) ||\n (value !== this._$committedValue && value !== noChange);\n if (change) {\n this._$committedValue = value;\n }\n } else {\n // Interpolation case\n const values = value as Array<unknown>;\n value = strings[0];\n\n let i, v;\n for (i = 0; i < strings.length - 1; i++) {\n v = resolveDirective(this, values[valueIndex! + i], directiveParent, i);\n\n if (v === noChange) {\n // If the user-provided value is `noChange`, use the previous value\n v = (this._$committedValue as Array<unknown>)[i];\n }\n change ||=\n !isPrimitive(v) || v !== (this._$committedValue as Array<unknown>)[i];\n if (v === nothing) {\n value = nothing;\n } else if (value !== nothing) {\n value += (v ?? '') + strings[i + 1];\n }\n // We always record each value, even if one is `nothing`, for future\n // change detection.\n (this._$committedValue as Array<unknown>)[i] = v;\n }\n }\n if (change && !noCommit) {\n this._commitValue(value);\n }\n }\n\n /** @internal */\n _commitValue(value: unknown) {\n if (value === nothing) {\n (wrap(this.element) as Element).removeAttribute(this.name);\n } else {\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n if (this._sanitizer === undefined) {\n this._sanitizer = sanitizerFactoryInternal(\n this.element,\n this.name,\n 'attribute'\n );\n }\n value = this._sanitizer(value ?? '');\n }\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit attribute',\n element: this.element,\n name: this.name,\n value,\n options: this.options,\n });\n (wrap(this.element) as Element).setAttribute(\n this.name,\n (value ?? '') as string\n );\n }\n }\n}\n\nexport type {PropertyPart};\nclass PropertyPart extends AttributePart {\n override readonly type = PROPERTY_PART;\n\n /** @internal */\n override _commitValue(value: unknown) {\n if (ENABLE_EXTRA_SECURITY_HOOKS) {\n if (this._sanitizer === undefined) {\n this._sanitizer = sanitizerFactoryInternal(\n this.element,\n this.name,\n 'property'\n );\n }\n value = this._sanitizer(value);\n }\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit property',\n element: this.element,\n name: this.name,\n value,\n options: this.options,\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this.element as any)[this.name] = value === nothing ? undefined : value;\n }\n}\n\nexport type {BooleanAttributePart};\nclass BooleanAttributePart extends AttributePart {\n override readonly type = BOOLEAN_ATTRIBUTE_PART;\n\n /** @internal */\n override _commitValue(value: unknown) {\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit boolean attribute',\n element: this.element,\n name: this.name,\n value: !!(value && value !== nothing),\n options: this.options,\n });\n (wrap(this.element) as Element).toggleAttribute(\n this.name,\n !!value && value !== nothing\n );\n }\n}\n\ntype EventListenerWithOptions = EventListenerOrEventListenerObject &\n Partial<AddEventListenerOptions>;\n\n/**\n * An AttributePart that manages an event listener via add/removeEventListener.\n *\n * This part works by adding itself as the event listener on an element, then\n * delegating to the value passed to it. This reduces the number of calls to\n * add/removeEventListener if the listener changes frequently, such as when an\n * inline function is used as a listener.\n *\n * Because event options are passed when adding listeners, we must take case\n * to add and remove the part as a listener when the event options change.\n */\nexport type {EventPart};\nclass EventPart extends AttributePart {\n override readonly type = EVENT_PART;\n\n constructor(\n element: HTMLElement,\n name: string,\n strings: ReadonlyArray<string>,\n parent: Disconnectable,\n options: RenderOptions | undefined\n ) {\n super(element, name, strings, parent, options);\n\n if (DEV_MODE && this.strings !== undefined) {\n throw new Error(\n `A \\`<${element.localName}>\\` has a \\`@${name}=...\\` listener with ` +\n 'invalid content. Event listeners in templates must have exactly ' +\n 'one expression and no surrounding text.'\n );\n }\n }\n\n // EventPart does not use the base _$setValue/_resolveValue implementation\n // since the dirty checking is more complex\n /** @internal */\n override _$setValue(\n newListener: unknown,\n directiveParent: DirectiveParent = this\n ) {\n newListener =\n resolveDirective(this, newListener, directiveParent, 0) ?? nothing;\n if (newListener === noChange) {\n return;\n }\n const oldListener = this._$committedValue;\n\n // If the new value is nothing or any options change we have to remove the\n // part as a listener.\n const shouldRemoveListener =\n (newListener === nothing && oldListener !== nothing) ||\n (newListener as EventListenerWithOptions).capture !==\n (oldListener as EventListenerWithOptions).capture ||\n (newListener as EventListenerWithOptions).once !==\n (oldListener as EventListenerWithOptions).once ||\n (newListener as EventListenerWithOptions).passive !==\n (oldListener as EventListenerWithOptions).passive;\n\n // If the new value is not nothing and we removed the listener, we have\n // to add the part as a listener.\n const shouldAddListener =\n newListener !== nothing &&\n (oldListener === nothing || shouldRemoveListener);\n\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit event listener',\n element: this.element,\n name: this.name,\n value: newListener,\n options: this.options,\n removeListener: shouldRemoveListener,\n addListener: shouldAddListener,\n oldListener,\n });\n if (shouldRemoveListener) {\n this.element.removeEventListener(\n this.name,\n this,\n oldListener as EventListenerWithOptions\n );\n }\n if (shouldAddListener) {\n this.element.addEventListener(\n this.name,\n this,\n newListener as EventListenerWithOptions\n );\n }\n this._$committedValue = newListener;\n }\n\n handleEvent(event: Event) {\n if (typeof this._$committedValue === 'function') {\n this._$committedValue.call(this.options?.host ?? this.element, event);\n } else {\n (this._$committedValue as EventListenerObject).handleEvent(event);\n }\n }\n}\n\nexport type {ElementPart};\nclass ElementPart implements Disconnectable {\n readonly type = ELEMENT_PART;\n\n /** @internal */\n __directive?: Directive;\n\n // This is to ensure that every Part has a _$committedValue\n _$committedValue: undefined;\n\n /** @internal */\n _$parent!: Disconnectable;\n\n /** @internal */\n _$disconnectableChildren?: Set<Disconnectable> = undefined;\n\n options: RenderOptions | undefined;\n\n constructor(\n public element: Element,\n parent: Disconnectable,\n options: RenderOptions | undefined\n ) {\n this._$parent = parent;\n this.options = options;\n }\n\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n\n _$setValue(value: unknown): void {\n debugLogEvent &&\n debugLogEvent({\n kind: 'commit to element binding',\n element: this.element,\n value,\n options: this.options,\n });\n resolveDirective(this, value);\n }\n}\n\n/**\n * END USERS SHOULD NOT RELY ON THIS OBJECT.\n *\n * Private exports for use by other Lit packages, not intended for use by\n * external users.\n *\n * We currently do not make a mangled rollup build of the lit-ssr code. In order\n * to keep a number of (otherwise private) top-level exports mangled in the\n * client side code, we export a _$LH object containing those members (or\n * helper methods for accessing private fields of those members), and then\n * re-export them for use in lit-ssr. This keeps lit-ssr agnostic to whether the\n * client-side code is being used in `dev` mode or `prod` mode.\n *\n * This has a unique name, to disambiguate it from private exports in\n * lit-element, which re-exports all of lit-html.\n *\n * @private\n */\nexport const _$LH = {\n // Used in lit-ssr\n _boundAttributeSuffix: boundAttributeSuffix,\n _marker: marker,\n _markerMatch: markerMatch,\n _HTML_RESULT: HTML_RESULT,\n _getTemplateHtml: getTemplateHtml,\n // Used in tests and private-ssr-support\n _TemplateInstance: TemplateInstance,\n _isIterable: isIterable,\n _resolveDirective: resolveDirective,\n _ChildPart: ChildPart,\n _AttributePart: AttributePart,\n _BooleanAttributePart: BooleanAttributePart,\n _EventPart: EventPart,\n _PropertyPart: PropertyPart,\n _ElementPart: ElementPart,\n};\n\n// Apply polyfills if available\nconst polyfillSupport = DEV_MODE\n ? global.litHtmlPolyfillSupportDevMode\n : global.litHtmlPolyfillSupport;\npolyfillSupport?.(Template, ChildPart);\n\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for lit-html usage.\n(global.litHtmlVersions ??= []).push('3.3.0');\nif (DEV_MODE && global.litHtmlVersions.length > 1) {\n queueMicrotask(() => {\n issueWarning!(\n 'multiple-versions',\n `Multiple versions of Lit loaded. ` +\n `Loading multiple versions is not recommended.`\n );\n });\n}\n\n/**\n * Renders a value, usually a lit-html TemplateResult, to the container.\n *\n * This example renders the text \"Hello, Zoe!\" inside a paragraph tag, appending\n * it to the container `document.body`.\n *\n * ```js\n * import {html, render} from 'lit';\n *\n * const name = \"Zoe\";\n * render(html`<p>Hello, ${name}!</p>`, document.body);\n * ```\n *\n * @param value Any [renderable\n * value](https://lit.dev/docs/templates/expressions/#child-expressions),\n * typically a {@linkcode TemplateResult} created by evaluating a template tag\n * like {@linkcode html} or {@linkcode svg}.\n * @param container A DOM container to render to. The first render will append\n * the rendered value to the container, and subsequent renders will\n * efficiently update the rendered value if the same result type was\n * previously rendered there.\n * @param options See {@linkcode RenderOptions} for options documentation.\n * @see\n * {@link https://lit.dev/docs/libraries/standalone-templates/#rendering-lit-html-templates| Rendering Lit HTML Templates}\n */\nexport const render = (\n value: unknown,\n container: HTMLElement | DocumentFragment,\n options?: RenderOptions\n): RootPart => {\n if (DEV_MODE && container == null) {\n // Give a clearer error message than\n // Uncaught TypeError: Cannot read properties of null (reading\n // '_$litPart$')\n // which reads like an internal Lit error.\n throw new TypeError(`The container to render into may not be ${container}`);\n }\n const renderId = DEV_MODE ? debugLogRenderId++ : 0;\n const partOwnerNode = options?.renderBefore ?? container;\n // This property needs to remain unminified.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let part: ChildPart = (partOwnerNode as any)['_$litPart$'];\n debugLogEvent &&\n debugLogEvent({\n kind: 'begin render',\n id: renderId,\n value,\n container,\n options,\n part,\n });\n if (part === undefined) {\n const endNode = options?.renderBefore ?? null;\n // This property needs to remain unminified.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (partOwnerNode as any)['_$litPart$'] = part = new ChildPart(\n container.insertBefore(createMarker(), endNode),\n endNode,\n undefined,\n options ?? {}\n );\n }\n part._$setValue(value);\n debugLogEvent &&\n debugLogEvent({\n kind: 'end render',\n id: renderId,\n value,\n container,\n options,\n part,\n });\n return part as RootPart;\n};\n\nif (ENABLE_EXTRA_SECURITY_HOOKS) {\n render.setSanitizer = setSanitizer;\n render.createSanitizer = createSanitizer;\n if (DEV_MODE) {\n render._testOnlyClearSanitizerFactoryDoNotCallOrElse =\n _testOnlyClearSanitizerFactoryDoNotCallOrElse;\n }\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * The main LitElement module, which defines the {@linkcode LitElement} base\n * class and related APIs.\n *\n * LitElement components can define a template and a set of observed\n * properties. Changing an observed property triggers a re-render of the\n * element.\n *\n * Import {@linkcode LitElement} and {@linkcode html} from this module to\n * create a component:\n *\n * ```js\n * import {LitElement, html} from 'lit-element';\n *\n * class MyElement extends LitElement {\n *\n * // Declare observed properties\n * static get properties() {\n * return {\n * adjective: {}\n * }\n * }\n *\n * constructor() {\n * this.adjective = 'awesome';\n * }\n *\n * // Define the element's template\n * render() {\n * return html`<p>your ${adjective} template here</p>`;\n * }\n * }\n *\n * customElements.define('my-element', MyElement);\n * ```\n *\n * `LitElement` extends {@linkcode ReactiveElement} and adds lit-html\n * templating. The `ReactiveElement` class is provided for users that want to\n * build their own custom element base classes that don't use lit-html.\n *\n * @packageDocumentation\n */\nimport {PropertyValues, ReactiveElement} from '@lit/reactive-element';\nimport {render, RenderOptions, noChange, RootPart} from 'lit-html';\nexport * from '@lit/reactive-element';\nexport * from 'lit-html';\n\nimport {LitUnstable} from 'lit-html';\nimport {ReactiveUnstable} from '@lit/reactive-element';\n\n/**\n * Contains types that are part of the unstable debug API.\n *\n * Everything in this API is not stable and may change or be removed in the future,\n * even on patch releases.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace Unstable {\n /**\n * When Lit is running in dev mode and `window.emitLitDebugLogEvents` is true,\n * we will emit 'lit-debug' events to window, with live details about the update and render\n * lifecycle. These can be useful for writing debug tooling and visualizations.\n *\n * Please be aware that running with window.emitLitDebugLogEvents has performance overhead,\n * making certain operations that are normally very cheap (like a no-op render) much slower,\n * because we must copy data and dispatch events.\n */\n // eslint-disable-next-line @typescript-eslint/no-namespace\n export namespace DebugLog {\n export type Entry =\n | LitUnstable.DebugLog.Entry\n | ReactiveUnstable.DebugLog.Entry;\n }\n}\n/*\n * When using Closure Compiler, JSCompiler_renameProperty(property, object) is\n * replaced at compile time by the munged name for object[property]. We cannot\n * alias this function, so we have to use a small shim that has the same\n * behavior when not compiling.\n */\n/*@__INLINE__*/\nconst JSCompiler_renameProperty = <P extends PropertyKey>(\n prop: P,\n _obj: unknown\n): P => prop;\n\nconst DEV_MODE = true;\n// Allows minifiers to rename references to globalThis\nconst global = globalThis;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n global.litIssuedWarnings ??= new Set();\n\n /**\n * Issue a warning if we haven't already, based either on `code` or `warning`.\n * Warnings are disabled automatically only by `warning`; disabling via `code`\n * can be done by users.\n */\n issueWarning = (code: string, warning: string) => {\n warning += ` See https://lit.dev/msg/${code} for more information.`;\n if (\n !global.litIssuedWarnings!.has(warning) &&\n !global.litIssuedWarnings!.has(code)\n ) {\n console.warn(warning);\n global.litIssuedWarnings!.add(warning);\n }\n };\n}\n\n/**\n * Base element class that manages element properties and attributes, and\n * renders a lit-html template.\n *\n * To define a component, subclass `LitElement` and implement a\n * `render` method to provide the component's template. Define properties\n * using the {@linkcode LitElement.properties properties} property or the\n * {@linkcode property} decorator.\n */\nexport class LitElement extends ReactiveElement {\n // This property needs to remain unminified.\n static ['_$litElement$'] = true;\n\n /**\n * @category rendering\n */\n readonly renderOptions: RenderOptions = {host: this};\n\n private __childPart: RootPart | undefined = undefined;\n\n /**\n * @category rendering\n */\n protected override createRenderRoot() {\n const renderRoot = super.createRenderRoot();\n // When adoptedStyleSheets are shimmed, they are inserted into the\n // shadowRoot by createRenderRoot. Adjust the renderBefore node so that\n // any styles in Lit content render before adoptedStyleSheets. This is\n // important so that adoptedStyleSheets have precedence over styles in\n // the shadowRoot.\n this.renderOptions.renderBefore ??= renderRoot!.firstChild as ChildNode;\n return renderRoot;\n }\n\n /**\n * Updates the element. This method reflects property values to attributes\n * and calls `render` to render DOM via lit-html. Setting properties inside\n * this method will *not* trigger another update.\n * @param changedProperties Map of changed properties with old values\n * @category updates\n */\n protected override update(changedProperties: PropertyValues) {\n // Setting properties in `render` should not trigger an update. Since\n // updates are allowed after super.update, it's important to call `render`\n // before that.\n const value = this.render();\n if (!this.hasUpdated) {\n this.renderOptions.isConnected = this.isConnected;\n }\n super.update(changedProperties);\n this.__childPart = render(value, this.renderRoot, this.renderOptions);\n }\n\n /**\n * Invoked when the component is added to the document's DOM.\n *\n * In `connectedCallback()` you should setup tasks that should only occur when\n * the element is connected to the document. The most common of these is\n * adding event listeners to nodes external to the element, like a keydown\n * event handler added to the window.\n *\n * ```ts\n * connectedCallback() {\n * super.connectedCallback();\n * addEventListener('keydown', this._handleKeydown);\n * }\n * ```\n *\n * Typically, anything done in `connectedCallback()` should be undone when the\n * element is disconnected, in `disconnectedCallback()`.\n *\n * @category lifecycle\n */\n override connectedCallback() {\n super.connectedCallback();\n this.__childPart?.setConnected(true);\n }\n\n /**\n * Invoked when the component is removed from the document's DOM.\n *\n * This callback is the main signal to the element that it may no longer be\n * used. `disconnectedCallback()` should ensure that nothing is holding a\n * reference to the element (such as event listeners added to nodes external\n * to the element), so that it is free to be garbage collected.\n *\n * ```ts\n * disconnectedCallback() {\n * super.disconnectedCallback();\n * window.removeEventListener('keydown', this._handleKeydown);\n * }\n * ```\n *\n * An element may be re-connected after being disconnected.\n *\n * @category lifecycle\n */\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.__childPart?.setConnected(false);\n }\n\n /**\n * Invoked on each update to perform rendering tasks. This method may return\n * any value renderable by lit-html's `ChildPart` - typically a\n * `TemplateResult`. Setting properties inside this method will *not* trigger\n * the element to update.\n * @category rendering\n */\n protected render(): unknown {\n return noChange;\n }\n}\n\n/**\n * Ensure this class is marked as `finalized` as an optimization ensuring\n * it will not needlessly try to `finalize`.\n *\n * Note this property name is a string to prevent breaking Closure JS Compiler\n * optimizations. See @lit/reactive-element for more information.\n */\n(LitElement as unknown as Record<string, unknown>)[\n JSCompiler_renameProperty('finalized', LitElement)\n] = true;\n\n// Install hydration if available\nglobal.litElementHydrateSupport?.({LitElement});\n\n// Apply polyfills if available\nconst polyfillSupport = DEV_MODE\n ? global.litElementPolyfillSupportDevMode\n : global.litElementPolyfillSupport;\npolyfillSupport?.({LitElement});\n\n/**\n * END USERS SHOULD NOT RELY ON THIS OBJECT.\n *\n * Private exports for use by other Lit packages, not intended for use by\n * external users.\n *\n * We currently do not make a mangled rollup build of the lit-ssr code. In order\n * to keep a number of (otherwise private) top-level exports mangled in the\n * client side code, we export a _$LE object containing those members (or\n * helper methods for accessing private fields of those members), and then\n * re-export them for use in lit-ssr. This keeps lit-ssr agnostic to whether the\n * client-side code is being used in `dev` mode or `prod` mode.\n *\n * This has a unique name, to disambiguate it from private exports in\n * lit-html, since this module re-exports all of lit-html.\n *\n * @private\n */\nexport const _$LE = {\n _$attributeToProperty: (\n el: LitElement,\n name: string,\n value: string | null\n ) => {\n // eslint-disable-next-line\n (el as any)._$attributeToProperty(name, value);\n },\n // eslint-disable-next-line\n _$changedProperties: (el: LitElement) => (el as any)._$changedProperties,\n};\n\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for LitElement usage.\n(global.litElementVersions ??= []).push('4.2.0');\nif (DEV_MODE && global.litElementVersions.length > 1) {\n queueMicrotask(() => {\n issueWarning!(\n 'multiple-versions',\n `Multiple versions of Lit loaded. Loading multiple versions ` +\n `is not recommended.`\n );\n });\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport {\n type PropertyDeclaration,\n type ReactiveElement,\n defaultConverter,\n notEqual,\n} from '../reactive-element.js';\nimport type {Interface} from './base.js';\n\nconst DEV_MODE = true;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nif (DEV_MODE) {\n // Ensure warnings are issued only 1x, even if multiple versions of Lit\n // are loaded.\n globalThis.litIssuedWarnings ??= new Set();\n\n /**\n * Issue a warning if we haven't already, based either on `code` or `warning`.\n * Warnings are disabled automatically only by `warning`; disabling via `code`\n * can be done by users.\n */\n issueWarning = (code: string, warning: string) => {\n warning += ` See https://lit.dev/msg/${code} for more information.`;\n if (\n !globalThis.litIssuedWarnings!.has(warning) &&\n !globalThis.litIssuedWarnings!.has(code)\n ) {\n console.warn(warning);\n globalThis.litIssuedWarnings!.add(warning);\n }\n };\n}\n\n// Overloads for property decorator so that TypeScript can infer the correct\n// return type when a decorator is used as an accessor decorator or a setter\n// decorator.\nexport type PropertyDecorator = {\n // accessor decorator signature\n <C extends Interface<ReactiveElement>, V>(\n target: ClassAccessorDecoratorTarget<C, V>,\n context: ClassAccessorDecoratorContext<C, V>\n ): ClassAccessorDecoratorResult<C, V>;\n\n // setter decorator signature\n <C extends Interface<ReactiveElement>, V>(\n target: (value: V) => void,\n context: ClassSetterDecoratorContext<C, V>\n ): (this: C, value: V) => void;\n\n // legacy decorator signature\n (\n protoOrDescriptor: Object,\n name: PropertyKey,\n descriptor?: PropertyDescriptor\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): any;\n};\n\nconst legacyProperty = (\n options: PropertyDeclaration | undefined,\n proto: Object,\n name: PropertyKey\n) => {\n const hasOwnProperty = proto.hasOwnProperty(name);\n (proto.constructor as typeof ReactiveElement).createProperty(name, options);\n // For accessors (which have a descriptor on the prototype) we need to\n // return a descriptor, otherwise TypeScript overwrites the descriptor we\n // define in createProperty() with the original descriptor. We don't do this\n // for fields, which don't have a descriptor, because this could overwrite\n // descriptor defined by other decorators.\n return hasOwnProperty\n ? Object.getOwnPropertyDescriptor(proto, name)\n : undefined;\n};\n\n// This is duplicated from a similar variable in reactive-element.ts, but\n// actually makes sense to have this default defined with the decorator, so\n// that different decorators could have different defaults.\nconst defaultPropertyDeclaration: PropertyDeclaration = {\n attribute: true,\n type: String,\n converter: defaultConverter,\n reflect: false,\n hasChanged: notEqual,\n};\n\n// Temporary type, until google3 is on TypeScript 5.2\ntype StandardPropertyContext<C, V> = (\n | ClassAccessorDecoratorContext<C, V>\n | ClassSetterDecoratorContext<C, V>\n) & {metadata: object};\n\n/**\n * Wraps a class accessor or setter so that `requestUpdate()` is called with the\n * property name and old value when the accessor is set.\n */\nexport const standardProperty = <C extends Interface<ReactiveElement>, V>(\n options: PropertyDeclaration = defaultPropertyDeclaration,\n target: ClassAccessorDecoratorTarget<C, V> | ((value: V) => void),\n context: StandardPropertyContext<C, V>\n): ClassAccessorDecoratorResult<C, V> | ((this: C, value: V) => void) => {\n const {kind, metadata} = context;\n\n if (DEV_MODE && metadata == null) {\n issueWarning(\n 'missing-class-metadata',\n `The class ${target} is missing decorator metadata. This ` +\n `could mean that you're using a compiler that supports decorators ` +\n `but doesn't support decorator metadata, such as TypeScript 5.1. ` +\n `Please update your compiler.`\n );\n }\n\n // Store the property options\n let properties = globalThis.litPropertyMetadata.get(metadata);\n if (properties === undefined) {\n globalThis.litPropertyMetadata.set(metadata, (properties = new Map()));\n }\n if (kind === 'setter') {\n options = Object.create(options);\n options.wrapped = true;\n }\n properties.set(context.name, options);\n\n if (kind === 'accessor') {\n // Standard decorators cannot dynamically modify the class, so we can't\n // replace a field with accessors. The user must use the new `accessor`\n // keyword instead.\n const {name} = context;\n return {\n set(this: ReactiveElement, v: V) {\n const oldValue = (\n target as ClassAccessorDecoratorTarget<C, V>\n ).get.call(this as unknown as C);\n (target as ClassAccessorDecoratorTarget<C, V>).set.call(\n this as unknown as C,\n v\n );\n this.requestUpdate(name, oldValue, options);\n },\n init(this: ReactiveElement, v: V): V {\n if (v !== undefined) {\n this._$changeProperty(name, undefined, options, v);\n }\n return v;\n },\n } as unknown as ClassAccessorDecoratorResult<C, V>;\n } else if (kind === 'setter') {\n const {name} = context;\n return function (this: ReactiveElement, value: V) {\n const oldValue = this[name as keyof ReactiveElement];\n (target as (value: V) => void).call(this, value);\n this.requestUpdate(name, oldValue, options);\n } as unknown as (this: C, value: V) => void;\n }\n throw new Error(`Unsupported decorator location: ${kind}`);\n};\n\n/**\n * A class field or accessor decorator which creates a reactive property that\n * reflects a corresponding attribute value. When a decorated property is set\n * the element will update and render. A {@linkcode PropertyDeclaration} may\n * optionally be supplied to configure property features.\n *\n * This decorator should only be used for public fields. As public fields,\n * properties should be considered as primarily settable by element users,\n * either via attribute or the property itself.\n *\n * Generally, properties that are changed by the element should be private or\n * protected fields and should use the {@linkcode state} decorator.\n *\n * However, sometimes element code does need to set a public property. This\n * should typically only be done in response to user interaction, and an event\n * should be fired informing the user; for example, a checkbox sets its\n * `checked` property when clicked and fires a `changed` event. Mutating public\n * properties should typically not be done for non-primitive (object or array)\n * properties. In other cases when an element needs to manage state, a private\n * property decorated via the {@linkcode state} decorator should be used. When\n * needed, state properties can be initialized via public properties to\n * facilitate complex interactions.\n *\n * ```ts\n * class MyElement {\n * @property({ type: Boolean })\n * clicked = false;\n * }\n * ```\n * @category Decorator\n * @ExportDecoratedItems\n */\nexport function property(options?: PropertyDeclaration): PropertyDecorator {\n return <C extends Interface<ReactiveElement>, V>(\n protoOrTarget:\n | object\n | ClassAccessorDecoratorTarget<C, V>\n | ((value: V) => void),\n nameOrContext:\n | PropertyKey\n | ClassAccessorDecoratorContext<C, V>\n | ClassSetterDecoratorContext<C, V>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): any => {\n return (\n typeof nameOrContext === 'object'\n ? standardProperty<C, V>(\n options,\n protoOrTarget as\n | ClassAccessorDecoratorTarget<C, V>\n | ((value: V) => void),\n nameOrContext as StandardPropertyContext<C, V>\n )\n : legacyProperty(\n options,\n protoOrTarget as Object,\n nameOrContext as PropertyKey\n )\n ) as PropertyDecorator;\n };\n}\n", "export { account } from './icons/account.js';\nexport { alert } from './icons/alert.js';\nexport { alignCenter } from './icons/align-center.js';\nexport { alignLeft } from './icons/align-left.js';\nexport { alignRight } from './icons/align-right.js';\nexport { arrowDown } from './icons/arrow-down.js';\nexport { arrowLeft } from './icons/arrow-left.js';\nexport { arrowRight } from './icons/arrow-right.js';\nexport { arrowUp } from './icons/arrow-up.js';\nexport { audienceTargeting } from './icons/audience-targeting.js';\nexport { bold } from './icons/bold.js';\nexport { bulletList } from './icons/bullet-list.js';\nexport { button } from './icons/button.js';\nexport { calendarIcon } from './icons/calendar.js';\nexport { campaigns } from './icons/campaigns.js';\nexport { channels } from './icons/channels.js';\nexport { checkboxChecked } from './icons/checkbox-checked.js';\nexport { chevron } from './icons/chevron.js';\nexport { chevronDown } from './icons/chevron-down.js';\nexport { chevronRight } from './icons/chevron-right.js';\nexport { chevronUp } from './icons/chevron-up.js';\nexport { clock } from './icons/clock.js';\nexport { close } from './icons/close.js';\nexport { cog } from './icons/cog.js';\nexport { coin } from './icons/coin.js';\nexport { collapsible } from './icons/collapsible.js';\nexport { column } from './icons/column.js';\nexport { comparison } from './icons/comparison.js';\nexport { container } from './icons/container.js';\nexport { countdown } from './icons/countdown.js';\nexport { dateBoost } from './icons/date-boost.js';\nexport { deleteIcon } from './icons/delete.js';\nexport { desktop } from './icons/desktop.js';\nexport { disabled } from './icons/disabled.js';\nexport { dismissible } from './icons/dismissible.js';\nexport { divider } from './icons/divider.js';\nexport { doubleChevron } from './icons/double-chevron.js';\nexport { download } from './icons/download.js';\nexport { dropdown } from './icons/dropdown.js';\nexport { duplicate } from './icons/duplicate.js';\nexport { edit } from './icons/edit.js';\nexport { email } from './icons/email.js';\nexport { embed } from './icons/embed.js';\nexport { experiment } from './icons/experiment.js';\nexport { external } from './icons/external.js';\nexport { filter } from './icons/filter.js';\nexport { form } from './icons/form.js';\nexport { gallery } from './icons/gallery.js';\nexport { gear } from './icons/gear.js';\nexport { globe } from './icons/globe.js';\nexport { graph } from './icons/graph.js';\nexport { handle } from './icons/handle.js';\nexport { help } from './icons/help.js';\nexport { home } from './icons/home.js';\nexport { horizontal } from './icons/horizontal.js';\nexport { hotel } from './icons/hotel.js';\nexport { info } from './icons/info.js';\nexport { insights } from './icons/insights.js';\nexport { italic } from './icons/italic.js';\nexport { keyboard } from './icons/keyboard.js';\nexport { lightningBolt } from './icons/lightning-bolt.js';\nexport { link } from './icons/link.js';\nexport { logout } from './icons/logout.js';\nexport { messages } from './icons/messages.js';\nexport { minus } from './icons/minus.js';\nexport { mobile } from './icons/mobile.js';\nexport { moveToParent } from './icons/move-to-parent.js';\nexport { multiMessage } from './icons/multi-message.js';\nexport { newTab } from './icons/new-tab.js';\nexport { numberedList } from './icons/numbered-list.js';\nexport { pause } from './icons/pause.js';\nexport { pauseFilled } from './icons/pause-filled.js';\nexport { pieChart } from './icons/pie-chart.js';\nexport { plus } from './icons/plus.js';\nexport { preview } from './icons/preview.js';\nexport { radioChecked } from './icons/radio-checked.js';\nexport { redo } from './icons/redo.js';\nexport { rename } from './icons/rename.js';\nexport { section } from './icons/section.js';\nexport { send } from './icons/send.js';\nexport { share } from './icons/share.js';\nexport { sidebarCollapsed } from './icons/sidebar-collapsed.js';\nexport { sidebarExpanded } from './icons/sidebar-expanded.js';\nexport { stop } from './icons/stop.js';\nexport { stopFilled } from './icons/stop-filled.js';\nexport { strikethrough } from './icons/strikethrough.js';\nexport { tag } from './icons/tag.js';\nexport { target } from './icons/target.js';\nexport { templates } from './icons/templates.js';\nexport { text } from './icons/text.js';\nexport { textInput } from './icons/text-input.js';\nexport { tick } from './icons/tick.js';\nexport { ticket } from './icons/ticket.js';\nexport { treeGraph } from './icons/tree-graph.js';\nexport { undo } from './icons/undo.js';\nexport { underline } from './icons/underline.js';\nexport { unlink } from './icons/unlink.js';\nexport { user } from './icons/user.js';\nexport { vertical } from './icons/vertical.js';\nexport { wallet } from './icons/wallet.js';\nexport { warning } from './icons/warning.js';\n", "export const account = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 2C17.5228 2 22 6.47715 22 12C22 15.2098 20.4857 18.0638 18.1348 19.8936C18.0344 20.055 17.8763 20.1738 17.6875 20.2227C16.0725 21.3418 14.1137 22 12 22C9.88604 22 7.92664 21.3421 6.31152 20.2227C6.12294 20.1736 5.96441 20.055 5.86426 19.8936C3.51367 18.0638 2 15.2095 2 12C2 6.47715 6.47715 2 12 2ZM11.25 15.5C9.1884 15.5 7.49093 17.0597 7.27344 19.0635C8.62515 19.9698 10.2503 20.5 12 20.5C13.7494 20.5 15.374 19.9695 16.7256 19.0635C16.508 17.0598 14.8116 15.5 12.75 15.5H11.25ZM12 3.5C7.30558 3.5 3.5 7.30558 3.5 12C3.5 14.3333 4.44073 16.4464 5.96289 17.9824C6.62169 15.683 8.73895 14 11.25 14H12.75C15.2609 14 17.3772 15.6832 18.0361 17.9824C19.5586 16.4464 20.5 14.3335 20.5 12C20.5 7.30558 16.6944 3.5 12 3.5ZM12 5.25C14.0711 5.25 15.75 6.92893 15.75 9C15.75 11.0711 14.0711 12.75 12 12.75C9.92893 12.75 8.25 11.0711 8.25 9C8.25 6.92893 9.92893 5.25 12 5.25ZM12 6.75C10.7574 6.75 9.75 7.75736 9.75 9C9.75 10.2426 10.7574 11.25 12 11.25C13.2426 11.25 14.25 10.2426 14.25 9C14.25 7.75736 13.2426 6.75 12 6.75Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const alert = `<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 20C15.5228 20 20 15.5228 20 10C20 4.47715 15.5228 0 10 0C4.47715 0 0 4.47715 0 10C0 15.5228 4.47715 20 10 20ZM9.25 5.75C9.25 5.33579 9.58579 5 10 5C10.4142 5 10.75 5.33579 10.75 5.75V11.25C10.75 11.6642 10.4142 12 10 12C9.58579 12 9.25 11.6642 9.25 11.25V5.75ZM10.75 13.75C10.75 14.1642 10.4142 14.5 10 14.5C9.58579 14.5 9.25 14.1642 9.25 13.75C9.25 13.3358 9.58579 13 10 13C10.4142 13 10.75 13.3358 10.75 13.75Z\" fill=\"currentColor\"/>\n</svg>`;\n", "export const alignCenter = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.25 7.5C15.6642 7.5 16 7.16421 16 6.75C16 6.33579 15.6642 6 15.25 6H8.75C8.33579 6 8 6.33579 8 6.75C8 7.16421 8.33579 7.5 8.75 7.5L15.25 7.5ZM19.25 11C19.6642 11 20 10.6642 20 10.25C20 9.83579 19.6642 9.5 19.25 9.5L4.75 9.5C4.33579 9.5 4 9.83579 4 10.25C4 10.6642 4.33579 11 4.75 11L19.25 11ZM16 13.75C16 14.1642 15.6642 14.5 15.25 14.5L8.75 14.5C8.33579 14.5 8 14.1642 8 13.75C8 13.3358 8.33579 13 8.75 13L15.25 13C15.6642 13 16 13.3358 16 13.75ZM19.25 18C19.6642 18 20 17.6642 20 17.25C20 16.8358 19.6642 16.5 19.25 16.5L4.75 16.5C4.33579 16.5 4 16.8358 4 17.25C4 17.6642 4.33579 18 4.75 18L19.25 18Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const alignLeft = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.25 7.5C11.6642 7.5 12 7.16421 12 6.75C12 6.33579 11.6642 6 11.25 6H4.75C4.33579 6 4 6.33579 4 6.75C4 7.16421 4.33579 7.5 4.75 7.5L11.25 7.5ZM19.25 11C19.6642 11 20 10.6642 20 10.25C20 9.83579 19.6642 9.5 19.25 9.5L4.75 9.5C4.33579 9.5 4 9.83579 4 10.25C4 10.6642 4.33579 11 4.75 11L19.25 11ZM12 13.75C12 14.1642 11.6642 14.5 11.25 14.5L4.75 14.5C4.33579 14.5 4 14.1642 4 13.75C4 13.3358 4.33579 13 4.75 13L11.25 13C11.6642 13 12 13.3358 12 13.75ZM19.25 18C19.6642 18 20 17.6642 20 17.25C20 16.8358 19.6642 16.5 19.25 16.5L4.75 16.5C4.33579 16.5 4 16.8358 4 17.25C4 17.6642 4.33579 18 4.75 18L19.25 18Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const alignRight = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19.25 7.5C19.6642 7.5 20 7.16421 20 6.75C20 6.33579 19.6642 6 19.25 6H12.75C12.3358 6 12 6.33579 12 6.75C12 7.16421 12.3358 7.5 12.75 7.5L19.25 7.5ZM19.25 11C19.6642 11 20 10.6642 20 10.25C20 9.83579 19.6642 9.5 19.25 9.5L4.75 9.5C4.33579 9.5 4 9.83579 4 10.25C4 10.6642 4.33579 11 4.75 11L19.25 11ZM20 13.75C20 14.1642 19.6642 14.5 19.25 14.5L12.75 14.5C12.3358 14.5 12 14.1642 12 13.75C12 13.3358 12.3358 13 12.75 13L19.25 13C19.6642 13 20 13.3358 20 13.75ZM19.25 18C19.6642 18 20 17.6642 20 17.25C20 16.8358 19.6642 16.5 19.25 16.5L4.75 16.5C4.33579 16.5 4 16.8358 4 17.25C4 17.6642 4.33579 18 4.75 18L19.25 18Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const arrowDown = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.51256 13.0126C6.80546 12.7197 7.28033 12.7197 7.57322 13.0126L11.2929 16.7323L11.2929 5.04292C11.2929 4.6287 11.6287 4.29292 12.0429 4.29292C12.4571 4.29292 12.7929 4.6287 12.7929 5.04292L12.7929 16.7323L16.5126 13.0126C16.8055 12.7197 17.2803 12.7197 17.5732 13.0126C17.8661 13.3055 17.8661 13.7804 17.5732 14.0732L12.0429 19.6036L6.51256 14.0732C6.21967 13.7804 6.21967 13.3055 6.51256 13.0126Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const arrowLeft = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.0303 6.46967C11.3232 6.76256 11.3232 7.23744 11.0303 7.53033L7.31066 11.25H19C19.4142 11.25 19.75 11.5858 19.75 12C19.75 12.4142 19.4142 12.75 19 12.75H7.31066L11.0303 16.4697C11.3232 16.7626 11.3232 17.2374 11.0303 17.5303C10.7374 17.8232 10.2626 17.8232 9.96967 17.5303L4.43934 12L9.96967 6.46967C10.2626 6.17678 10.7374 6.17678 11.0303 6.46967Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const arrowRight = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13.0555 17.5303C12.7626 17.2374 12.7626 16.7626 13.0555 16.4697L16.7752 12.75L5.08582 12.75C4.6716 12.75 4.33582 12.4142 4.33582 12C4.33582 11.5858 4.6716 11.25 5.08582 11.25L16.7752 11.25L13.0555 7.53033C12.7626 7.23744 12.7626 6.76256 13.0555 6.46967C13.3484 6.17678 13.8233 6.17678 14.1161 6.46967L19.6465 12L14.1161 17.5303C13.8233 17.8232 13.3484 17.8232 13.0555 17.5303Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const arrowUp = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17.5732 10.9875C17.2803 11.2804 16.8055 11.2804 16.5126 10.9875L12.7929 7.2678L12.7929 18.9571C12.7929 19.3714 12.4571 19.7071 12.0429 19.7071C11.6287 19.7071 11.2929 19.3714 11.2929 18.9571L11.2929 7.2678L7.57322 10.9875C7.28033 11.2804 6.80545 11.2804 6.51256 10.9875C6.21967 10.6946 6.21967 10.2197 6.51256 9.92681L12.0429 4.39648L17.5732 9.92681C17.8661 10.2197 17.8661 10.6946 17.5732 10.9875Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const audienceTargeting = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.25 5C3.25 4.0335 4.0335 3.25 5 3.25H7C7.41421 3.25 7.75 3.58579 7.75 4C7.75 4.41421 7.41421 4.75 7 4.75H5C4.86193 4.75 4.75 4.86193 4.75 5V7C4.75 7.41421 4.41421 7.75 4 7.75C3.58579 7.75 3.25 7.41421 3.25 7V5ZM4 16.25C4.41421 16.25 4.75 16.5858 4.75 17V19C4.75 19.1381 4.86193 19.25 5 19.25H7C7.41421 19.25 7.75 19.5858 7.75 20C7.75 20.4142 7.41421 20.75 7 20.75H5C4.0335 20.75 3.25 19.9665 3.25 19V17C3.25 16.5858 3.58579 16.25 4 16.25ZM20.75 17C20.75 16.5858 20.4142 16.25 20 16.25C19.5858 16.25 19.25 16.5858 19.25 17V19C19.25 19.1381 19.1381 19.25 19 19.25H17C16.5858 19.25 16.25 19.5858 16.25 20C16.25 20.4142 16.5858 20.75 17 20.75H19C19.9665 20.75 20.75 19.9665 20.75 19V17ZM16.25 4C16.25 3.58579 16.5858 3.25 17 3.25H19C19.9665 3.25 20.75 4.0335 20.75 5V7C20.75 7.41421 20.4142 7.75 20 7.75C19.5858 7.75 19.25 7.41421 19.25 7V5C19.25 4.86193 19.1381 4.75 19 4.75H17C16.5858 4.75 16.25 4.41421 16.25 4ZM12 7.75C11.3096 7.75 10.75 8.30964 10.75 9C10.75 9.69036 11.3096 10.25 12 10.25C12.6904 10.25 13.25 9.69036 13.25 9C13.25 8.30964 12.6904 7.75 12 7.75ZM9.25 9C9.25 7.48122 10.4812 6.25 12 6.25C13.5188 6.25 14.75 7.48122 14.75 9C14.75 10.5188 13.5188 11.75 12 11.75C10.4812 11.75 9.25 10.5188 9.25 9ZM7.25 16.4C7.25 14.6603 8.6603 13.25 10.4 13.25H13.6C15.3397 13.25 16.75 14.6603 16.75 16.4C16.75 17.1456 16.1456 17.75 15.4 17.75H8.6C7.85442 17.75 7.25 17.1456 7.25 16.4ZM15.2433 16.25C15.1675 15.409 14.4607 14.75 13.6 14.75H10.4C9.53929 14.75 8.83251 15.409 8.75673 16.25H15.2433Z\" fill=\"currentColor\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.25 5C3.25 4.0335 4.0335 3.25 5 3.25H7C7.41421 3.25 7.75 3.58579 7.75 4C7.75 4.41421 7.41421 4.75 7 4.75H5C4.86193 4.75 4.75 4.86193 4.75 5V7C4.75 7.41421 4.41421 7.75 4 7.75C3.58579 7.75 3.25 7.41421 3.25 7V5ZM4 16.25C4.41421 16.25 4.75 16.5858 4.75 17V19C4.75 19.1381 4.86193 19.25 5 19.25H7C7.41421 19.25 7.75 19.5858 7.75 20C7.75 20.4142 7.41421 20.75 7 20.75H5C4.0335 20.75 3.25 19.9665 3.25 19V17C3.25 16.5858 3.58579 16.25 4 16.25ZM20.75 17C20.75 16.5858 20.4142 16.25 20 16.25C19.5858 16.25 19.25 16.5858 19.25 17V19C19.25 19.1381 19.1381 19.25 19 19.25H17C16.5858 19.25 16.25 19.5858 16.25 20C16.25 20.4142 16.5858 20.75 17 20.75H19C19.9665 20.75 20.75 19.9665 20.75 19V17ZM16.25 4C16.25 3.58579 16.5858 3.25 17 3.25H19C19.9665 3.25 20.75 4.0335 20.75 5V7C20.75 7.41421 20.4142 7.75 20 7.75C19.5858 7.75 19.25 7.41421 19.25 7V5C19.25 4.86193 19.1381 4.75 19 4.75H17C16.5858 4.75 16.25 4.41421 16.25 4ZM12 7.75C11.3096 7.75 10.75 8.30964 10.75 9C10.75 9.69036 11.3096 10.25 12 10.25C12.6904 10.25 13.25 9.69036 13.25 9C13.25 8.30964 12.6904 7.75 12 7.75ZM9.25 9C9.25 7.48122 10.4812 6.25 12 6.25C13.5188 6.25 14.75 7.48122 14.75 9C14.75 10.5188 13.5188 11.75 12 11.75C10.4812 11.75 9.25 10.5188 9.25 9ZM7.25 16.4C7.25 14.6603 8.6603 13.25 10.4 13.25H13.6C15.3397 13.25 16.75 14.6603 16.75 16.4C16.75 17.1456 16.1456 17.75 15.4 17.75H8.6C7.85442 17.75 7.25 17.1456 7.25 16.4ZM15.2433 16.25C15.1675 15.409 14.4607 14.75 13.6 14.75H10.4C9.53929 14.75 8.83251 15.409 8.75673 16.25H15.2433Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const bold = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_8391_1177)\">\n<path d=\"M7 5H13C13.9283 5 14.8185 5.36875 15.4749 6.02513C16.1313 6.6815 16.5 7.57174 16.5 8.5C16.5 9.42826 16.1313 10.3185 15.4749 10.9749C14.8185 11.6313 13.9283 12 13 12H7V5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M13 12H14C14.9283 12 15.8185 12.3687 16.4749 13.0251C17.1313 13.6815 17.5 14.5717 17.5 15.5C17.5 16.4283 17.1313 17.3185 16.4749 17.9749C15.8185 18.6313 14.9283 19 14 19H7V12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_8391_1177\">\n<rect width=\"24\" height=\"24\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n`;\n", "export const bulletList = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_8391_1173)\">\n<path d=\"M9 6H20\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M9 12H20\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M9 18H20\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M5 6V6.007\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M5 12V12.007\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M5 18V18.007\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_8391_1173\">\n<rect width=\"24\" height=\"24\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n`;\n", "export const button = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 6.5H6C5.17157 6.5 4.5 7.17157 4.5 8V16C4.5 16.8284 5.17157 17.5 6 17.5H11.4407C11.7487 17.5 12.0254 17.6883 12.1384 17.9748C12.3325 18.467 11.9697 19 11.4407 19H6C4.34315 19 3 17.6569 3 16V8C3 6.34315 4.34315 5 6 5H18C19.6569 5 21 6.34315 21 8V12.2295C21 12.7585 20.467 13.1213 19.9748 12.9272C19.6883 12.8142 19.5 12.5375 19.5 12.2295V8C19.5 7.17157 18.8284 6.5 18 6.5ZM20.933 14.9175L13.1419 11.8448C12.3283 11.5239 11.5239 12.3283 11.8448 13.1419L13.9677 18.5247C13.9677 18.5248 13.9678 18.525 13.9679 18.5252C13.9679 18.5253 13.968 18.5255 13.9681 18.5257L14.918 20.9343C15.2342 21.736 16.3488 21.789 16.7396 21.0208L18.0355 18.4734C18.1315 18.2848 18.2848 18.1315 18.4734 18.0355L20.1634 17.1758L21.0208 16.7396C21.7889 16.3489 21.7361 15.2346 20.9347 14.9182C20.9346 14.9181 20.9344 14.9181 20.9343 14.918C20.9339 14.9179 20.9334 14.9177 20.933 14.9175Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const calendarIcon = `<svg width=\"18\" height=\"19\" viewBox=\"0 0 18 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.75 0.75C5.75 0.335786 5.41421 0 5 0C4.58579 0 4.25 0.335786 4.25 0.75V2H3C1.34315 2 0 3.34315 0 5V16C0 17.6569 1.34315 19 3 19H15C16.6569 19 18 17.6569 18 16V5C18 3.34315 16.6569 2 15 2H13.75V0.75C13.75 0.335786 13.4142 0 13 0C12.5858 0 12.25 0.335786 12.25 0.75V2H5.75V0.75ZM3 3.5H15C15.8284 3.5 16.5 4.17157 16.5 5V7.25H1.5V5C1.5 4.17157 2.17157 3.5 3 3.5ZM1.5 8.75V16C1.5 16.8284 2.17157 17.5 3 17.5H15C15.8284 17.5 16.5 16.8284 16.5 16V8.75H1.5Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const campaigns = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13.75 11C13.75 9.47056 14.1646 8.11984 14.7956 7.17338C15.1658 6.61803 15.5905 6.22612 16.0341 5.99602L17.0795 5.75165C17.8298 5.78274 18.5916 6.25415 19.2044 7.17338C19.8354 8.11984 20.25 9.47056 20.25 11C20.25 12.5294 19.8354 13.8802 19.2044 14.8266C18.5916 15.7458 17.8298 16.2173 17.0794 16.2484L16.0341 16.004C15.5905 15.7739 15.1659 15.382 14.7956 14.8266C14.1646 13.8802 13.75 12.5294 13.75 11ZM12.25 11C12.25 9.3468 12.6627 7.80949 13.373 6.61808L5.48783 8.46138C4.46994 8.69932 3.75 9.60698 3.75 10.6523V11.3477C3.75 12.393 4.46994 13.3007 5.48783 13.5386L13.373 15.3819C12.6627 14.1905 12.25 12.6532 12.25 11ZM5.14639 7.00075L15.5263 4.57427C15.9817 4.36663 16.4756 4.25 17 4.25C18.4334 4.25 19.6392 5.12146 20.4525 6.34133C21.2692 7.56645 21.75 9.21573 21.75 11C21.75 12.7843 21.2692 14.4335 20.4525 15.6587C19.6392 16.8785 18.4334 17.75 17 17.75C16.4756 17.75 15.9817 17.6334 15.5263 17.4257L11.75 16.5429V17.5C11.75 19.2949 10.2949 20.75 8.5 20.75C6.70507 20.75 5.25 19.2949 5.25 17.5V15.0235L5.14639 14.9992C3.4499 14.6027 2.25 13.0899 2.25 11.3477V10.6523C2.25 8.91009 3.4499 7.39734 5.14639 7.00075ZM6.75 15.3741V17.5C6.75 18.4665 7.5335 19.25 8.5 19.25C9.4665 19.25 10.25 18.4665 10.25 17.5V16.1923L6.75 15.3741Z\" />\n</svg>`;\n", "export const channels = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18 3C19.6569 3 21 4.34315 21 6C21 7.65685 19.6569 9 18 9C17.4435 9 16.9243 8.84513 16.4775 8.58105L15.3076 9.75098C15.7443 10.3919 16 11.166 16 12C16 12.8334 15.7437 13.6064 15.3076 14.2471L16.4775 15.417C16.9241 15.1532 17.4438 15 18 15C19.6569 15 21 16.3431 21 18C21 19.6569 19.6569 21 18 21C16.3431 21 15 19.6569 15 18C15 17.4438 15.1532 16.9241 15.417 16.4775L14.2471 15.3076C13.6064 15.7437 12.8334 16 12 16C11.166 16 10.3919 15.7443 9.75098 15.3076L8.58105 16.4775C8.84513 16.9243 9 17.4435 9 18C9 19.6569 7.65685 21 6 21C4.34315 21 3 19.6569 3 18C3 16.3431 4.34315 15 6 15C6.55558 15 7.07429 15.1538 7.52051 15.417L8.69141 14.2471C8.2555 13.6065 8 12.8332 8 12C8 11.1665 8.25523 10.3927 8.69141 9.75195L7.52148 8.58203C7.07501 8.84569 6.55606 9 6 9C4.34315 9 3 7.65685 3 6C3 4.34315 4.34315 3 6 3C7.65685 3 9 4.34315 9 6C9 6.55606 8.84569 7.07501 8.58203 7.52148L9.75195 8.69141C9.73784 8.70101 9.72394 8.71092 9.70996 8.7207C10.3587 8.26679 11.1481 8 12 8C12.833 8 13.6066 8.25472 14.2471 8.69043L15.417 7.52051C15.1538 7.07429 15 6.55558 15 6C15 4.34315 16.3431 3 18 3ZM6 16.5C5.17157 16.5 4.5 17.1716 4.5 18C4.5 18.8284 5.17157 19.5 6 19.5C6.82843 19.5 7.5 18.8284 7.5 18C7.5 17.1716 6.82843 16.5 6 16.5ZM18 16.5C17.1716 16.5 16.5 17.1716 16.5 18C16.5 18.8284 17.1716 19.5 18 19.5C18.8284 19.5 19.5 18.8284 19.5 18C19.5 17.1716 18.8284 16.5 18 16.5ZM12 9.5C10.6193 9.5 9.5 10.6193 9.5 12C9.5 13.3807 10.6193 14.5 12 14.5C13.3807 14.5 14.5 13.3807 14.5 12C14.5 10.6193 13.3807 9.5 12 9.5ZM6 4.5C5.17157 4.5 4.5 5.17157 4.5 6C4.5 6.82843 5.17157 7.5 6 7.5C6.82843 7.5 7.5 6.82843 7.5 6C7.5 5.17157 6.82843 4.5 6 4.5ZM18 4.5C17.1716 4.5 16.5 5.17157 16.5 6C16.5 6.82843 17.1716 7.5 18 7.5C18.8284 7.5 19.5 6.82843 19.5 6C19.5 5.17157 18.8284 4.5 18 4.5Z\" />\n</svg>`;\n", "export const checkboxChecked = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect x=\"3.75\" y=\"3.75\" width=\"16.5\" height=\"16.5\" rx=\"2.25\" stroke=\"currentColor\" stroke-width=\"1.5\"/>\n<path d=\"M8 13.2L10 15L16 9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n</svg>\n`;\n", "export const chevron = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"chevron\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.7073 6.29289C16.0978 6.68342 16.0978 7.31658 15.7073 7.70711L11.4144 12L15.7073 16.2929C16.0978 16.6834 16.0978 17.3166 15.7073 17.7071C15.3167 18.0976 14.6836 18.0976 14.293 17.7071L8.58594 12L14.293 6.29289C14.6836 5.90237 15.3167 5.90237 15.7073 6.29289Z\" fill=\"currentColor\"/>\n</svg>`;\n", "export const chevronDown = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" fill=\"currentColor\" class=\"bi bi-chevron-down chevron-down\"\n viewBox=\"0 0 16 16\" role=\"presentation\">\n <path fill-rule=\"evenodd\"\n d=\"M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z\"\n stroke=\"currentColor\"/>\n </svg>`;\n", "export const chevronRight = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.96968 17.5303C8.67679 17.2374 8.67679 16.7626 8.96968 16.4697L13.4393 12L8.96968 7.53033C8.67679 7.23744 8.67679 6.76256 8.96968 6.46967C9.26257 6.17678 9.73745 6.17678 10.0303 6.46967L15.5607 12L10.0303 17.5303C9.73745 17.8232 9.26257 17.8232 8.96968 17.5303Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const chevronUp = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17.5303 15.0303C17.2374 15.3232 16.7626 15.3232 16.4697 15.0303L12 10.5607L7.53033 15.0303C7.23744 15.3232 6.76256 15.3232 6.46967 15.0303C6.17678 14.7374 6.17678 14.2626 6.46967 13.9697L12 8.43933L17.5303 13.9697C17.8232 14.2626 17.8232 14.7374 17.5303 15.0303Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const clock = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM12 3.5C7.30558 3.5 3.5 7.30558 3.5 12C3.5 16.6944 7.30558 20.5 12 20.5C16.6944 20.5 20.5 16.6944 20.5 12C20.5 7.30558 16.6944 3.5 12 3.5ZM12 5.25C12.4142 5.25 12.75 5.58579 12.75 6V11.25H16C16.4142 11.25 16.75 11.5858 16.75 12C16.75 12.4142 16.4142 12.75 16 12.75H11.25V6C11.25 5.58579 11.5858 5.25 12 5.25Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const close = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17.4801 7.58056C17.773 7.28767 17.773 6.8128 17.4801 6.5199C17.1872 6.22701 16.7123 6.22701 16.4194 6.5199L12 10.9393L7.58058 6.5199C7.28769 6.22701 6.81282 6.22701 6.51992 6.5199C6.22703 6.8128 6.22703 7.28767 6.51992 7.58056L10.9393 12L6.51992 16.4194C6.22703 16.7123 6.22703 17.1872 6.51992 17.4801C6.81282 17.773 7.28769 17.773 7.58058 17.4801L12 13.0606L16.4194 17.4801C16.7123 17.773 17.1872 17.773 17.4801 17.4801C17.773 17.1872 17.773 16.7123 17.4801 16.4194L13.0607 12L17.4801 7.58056Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const cog = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M13.6328 2.01367C14.0085 2.07631 14.3224 2.35007 14.4297 2.72559L15.0049 4.74219L16.8398 3.72363C17.1813 3.53396 17.5973 3.56262 17.9072 3.78418L18.0332 3.89062L20.1084 5.9668L20.2158 6.09277C20.4372 6.40274 20.466 6.81875 20.2764 7.16016L19.2568 8.99316L21.2744 9.57031C21.6502 9.67769 21.9239 9.9921 21.9863 10.3682L22 10.5322V13.4678L21.9863 13.6328C21.9237 14.0085 21.6499 14.3224 21.2744 14.4297L19.2568 15.0049L20.2764 16.8398C20.4661 17.1813 20.4374 17.5972 20.2158 17.9072L20.1094 18.0332L18.0332 20.1084L17.9072 20.2158C17.5973 20.4372 17.1813 20.466 16.8398 20.2764L15.0049 19.2568L14.4297 21.2744C14.3223 21.6502 14.0079 21.9239 13.6318 21.9863L13.4678 22H10.5322L10.3672 21.9863C9.99146 21.9237 9.6776 21.6499 9.57031 21.2744L8.99316 19.2568L7.16016 20.2764C6.81867 20.466 6.40275 20.4374 6.09277 20.2158L5.9668 20.1094L3.8916 18.0332L3.78418 17.9072C3.56278 17.5973 3.53398 17.1812 3.72363 16.8398L4.74219 15.0059L2.72559 14.4297C2.34982 14.3223 2.07606 14.0079 2.01367 13.6318L2 13.4678V10.5322L2.01367 10.3672C2.07633 9.99149 2.35009 9.6776 2.72559 9.57031L4.74219 8.99316L3.72363 7.16016C3.53394 6.81866 3.5626 6.40276 3.78418 6.09277L3.89062 5.9668L5.9668 3.8916L6.09277 3.78418C6.40275 3.56277 6.81875 3.53396 7.16016 3.72363L8.99316 4.74219L9.57031 2.72559C9.67768 2.34981 9.99209 2.07606 10.3682 2.01367L10.5322 2H13.4678L13.6328 2.01367ZM10.4014 5.27148C9.70554 5.47089 9.05368 5.77388 8.46484 6.16504L6.76074 5.21875L5.21777 6.76074L6.22363 8.57031L6.23242 8.56738C5.91398 9.13213 5.67275 9.74545 5.52051 10.3936L5.49023 10.3398L3.5 10.9092V13.0908L5.49121 13.6592L5.52051 13.6055C5.67256 14.2532 5.91338 14.8662 6.23145 15.4307L6.22363 15.4287L5.21875 17.2393L5.21777 17.2383V17.2393H5.21875L6.76074 18.7822L8.46484 17.834C9.05398 18.2254 9.7061 18.5281 10.4023 18.7275L10.9092 20.5H13.0908L13.5488 18.8916C14.3898 18.7443 15.1787 18.4482 15.8877 18.0293L17.2393 18.7812L18.7822 17.2393L18.085 15.9863C18.6037 15.2393 18.9814 14.3876 19.1777 13.4678L20.5 13.0908V10.9092L19.1777 10.5303C18.9812 9.61065 18.6038 8.75856 18.085 8.01172L18.7812 6.76074L17.2393 5.21777L15.8857 5.96875C15.1773 5.55053 14.389 5.25458 13.5488 5.10742L13.0908 3.5H10.9092L10.4014 5.27148ZM12 8C14.2091 8 16 9.79086 16 12C16 14.2091 14.2091 16 12 16C9.79086 16 8 14.2091 8 12C8 9.79086 9.79086 8 12 8ZM12 9.5C10.6193 9.5 9.5 10.6193 9.5 12C9.5 13.3807 10.6193 14.5 12 14.5C13.3807 14.5 14.5 13.3807 14.5 12C14.5 10.6193 13.3807 9.5 12 9.5Z\" fill=\"currentColor\"/>\n<path d=\"M13.6328 2.01367C14.0085 2.07631 14.3224 2.35007 14.4297 2.72559L15.0049 4.74219L16.8398 3.72363C17.1813 3.53396 17.5973 3.56262 17.9072 3.78418L18.0332 3.89062L20.1084 5.9668L20.2158 6.09277C20.4372 6.40274 20.466 6.81875 20.2764 7.16016L19.2568 8.99316L21.2744 9.57031C21.6502 9.67769 21.9239 9.9921 21.9863 10.3682L22 10.5322V13.4678L21.9863 13.6328C21.9237 14.0085 21.6499 14.3224 21.2744 14.4297L19.2568 15.0049L20.2764 16.8398C20.4661 17.1813 20.4374 17.5972 20.2158 17.9072L20.1094 18.0332L18.0332 20.1084L17.9072 20.2158C17.5973 20.4372 17.1813 20.466 16.8398 20.2764L15.0049 19.2568L14.4297 21.2744C14.3223 21.6502 14.0079 21.9239 13.6318 21.9863L13.4678 22H10.5322L10.3672 21.9863C9.99146 21.9237 9.6776 21.6499 9.57031 21.2744L8.99316 19.2568L7.16016 20.2764C6.81867 20.466 6.40275 20.4374 6.09277 20.2158L5.9668 20.1094L3.8916 18.0332L3.78418 17.9072C3.56278 17.5973 3.53398 17.1812 3.72363 16.8398L4.74219 15.0059L2.72559 14.4297C2.34982 14.3223 2.07606 14.0079 2.01367 13.6318L2 13.4678V10.5322L2.01367 10.3672C2.07633 9.99149 2.35009 9.6776 2.72559 9.57031L4.74219 8.99316L3.72363 7.16016C3.53394 6.81866 3.5626 6.40276 3.78418 6.09277L3.89062 5.9668L5.9668 3.8916L6.09277 3.78418C6.40275 3.56277 6.81875 3.53396 7.16016 3.72363L8.99316 4.74219L9.57031 2.72559C9.67768 2.34981 9.99209 2.07606 10.3682 2.01367L10.5322 2H13.4678L13.6328 2.01367ZM10.4014 5.27148C9.70554 5.47089 9.05368 5.77388 8.46484 6.16504L6.76074 5.21875L5.21777 6.76074L6.22363 8.57031L6.23242 8.56738C5.91398 9.13213 5.67275 9.74545 5.52051 10.3936L5.49023 10.3398L3.5 10.9092V13.0908L5.49121 13.6592L5.52051 13.6055C5.67256 14.2532 5.91338 14.8662 6.23145 15.4307L6.22363 15.4287L5.21875 17.2393L5.21777 17.2383V17.2393H5.21875L6.76074 18.7822L8.46484 17.834C9.05398 18.2254 9.7061 18.5281 10.4023 18.7275L10.9092 20.5H13.0908L13.5488 18.8916C14.3898 18.7443 15.1787 18.4482 15.8877 18.0293L17.2393 18.7812L18.7822 17.2393L18.085 15.9863C18.6037 15.2393 18.9814 14.3876 19.1777 13.4678L20.5 13.0908V10.9092L19.1777 10.5303C18.9812 9.61065 18.6038 8.75856 18.085 8.01172L18.7812 6.76074L17.2393 5.21777L15.8857 5.96875C15.1773 5.55053 14.389 5.25458 13.5488 5.10742L13.0908 3.5H10.9092L10.4014 5.27148ZM12 8C14.2091 8 16 9.79086 16 12C16 14.2091 14.2091 16 12 16C9.79086 16 8 14.2091 8 12C8 9.79086 9.79086 8 12 8ZM12 9.5C10.6193 9.5 9.5 10.6193 9.5 12C9.5 13.3807 10.6193 14.5 12 14.5C13.3807 14.5 14.5 13.3807 14.5 12C14.5 10.6193 13.3807 9.5 12 9.5Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const coin = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 20.5C16.6944 20.5 20.5 16.6944 20.5 12C20.5 7.30558 16.6944 3.5 12 3.5C7.30558 3.5 3.5 7.30558 3.5 12C3.5 16.6944 7.30558 20.5 12 20.5ZM12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM12 17.5C15.0376 17.5 17.5 15.0376 17.5 12C17.5 8.96243 15.0376 6.5 12 6.5C8.96243 6.5 6.5 8.96243 6.5 12C6.5 15.0376 8.96243 17.5 12 17.5ZM12 19C15.866 19 19 15.866 19 12C19 8.13401 15.866 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19ZM12 9C11.5858 9 11.25 9.33579 11.25 9.75V14.25C11.25 14.6642 11.5858 15 12 15C12.4142 15 12.75 14.6642 12.75 14.25V9.75C12.75 9.33579 12.4142 9 12 9Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const collapsible = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M15.5732 13.4697C15.8661 13.7626 15.8661 14.2374 15.5732 14.5303C15.2804 14.8232 14.8056 14.8231 14.5127 14.5303L12.793 12.8105V21C12.793 21.4142 12.4571 21.75 12.043 21.75C11.6288 21.75 11.293 21.4142 11.293 21V12.8105L9.57324 14.5303C9.28036 14.8231 8.80559 14.8231 8.5127 14.5303C8.21981 14.2374 8.21981 13.7626 8.5127 13.4697L12.043 9.93945L15.5732 13.4697ZM17 3.25C19.0711 3.25 20.75 4.92893 20.75 7V15C20.75 17.0711 19.0711 18.75 17 18.75H14.793V17.25H17C18.2426 17.25 19.25 16.2426 19.25 15V7C19.25 5.75736 18.2426 4.75 17 4.75H7C5.75736 4.75 4.75 5.75736 4.75 7V15C4.75 16.2426 5.75736 17.25 7 17.25H9.29297V18.75H7C4.92893 18.75 3.25 17.0711 3.25 15V7C3.25 4.92893 4.92893 3.25 7 3.25H17Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const column = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7 3.25C4.92893 3.25 3.25 4.92893 3.25 7V17C3.25 19.0711 4.92893 20.75 7 20.75H17C19.0711 20.75 20.75 19.0711 20.75 17V7C20.75 4.92893 19.0711 3.25 17 3.25H7ZM4.75 7C4.75 5.75736 5.75736 4.75 7 4.75H11.25L11.25 19.25H7C5.75736 19.25 4.75 18.2426 4.75 17V7ZM12.75 19.25H17C18.2426 19.25 19.25 18.2426 19.25 17V7C19.25 5.75736 18.2426 4.75 17 4.75H12.75L12.75 19.25Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const comparison = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.03032 4.53033C8.32321 4.23744 8.32321 3.76256 8.03032 3.46967C7.73743 3.17678 7.26255 3.17678 6.96966 3.46967L4.46966 5.96967L3.93933 6.5L4.46966 7.03033L6.96966 9.53033C7.26255 9.82322 7.73743 9.82322 8.03032 9.53033C8.32321 9.23744 8.32321 8.76256 8.03032 8.46967L6.81065 7.25H16C17.2426 7.25 18.25 8.25736 18.25 9.5V12C18.25 12.4142 18.5858 12.75 19 12.75C19.4142 12.75 19.75 12.4142 19.75 12V9.5C19.75 7.42893 18.0711 5.75 16 5.75H6.81065L8.03032 4.53033ZM15.9697 19.4697C15.6768 19.7626 15.6768 20.2374 15.9697 20.5303C16.2626 20.8232 16.7374 20.8232 17.0303 20.5303L19.5303 18.0303L20.0607 17.5L19.5303 16.9697L17.0303 14.4697C16.7374 14.1768 16.2626 14.1768 15.9697 14.4697C15.6768 14.7626 15.6768 15.2374 15.9697 15.5303L17.1893 16.75H8C6.75736 16.75 5.75 15.7426 5.75 14.5V12C5.75 11.5858 5.41421 11.25 5 11.25C4.58579 11.25 4.25 11.5858 4.25 12V14.5C4.25 16.5711 5.92893 18.25 8 18.25H17.1893L15.9697 19.4697Z\" fill=\"currentColor\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.03032 4.53033C8.32321 4.23744 8.32321 3.76256 8.03032 3.46967C7.73743 3.17678 7.26255 3.17678 6.96966 3.46967L4.46966 5.96967L3.93933 6.5L4.46966 7.03033L6.96966 9.53033C7.26255 9.82322 7.73743 9.82322 8.03032 9.53033C8.32321 9.23744 8.32321 8.76256 8.03032 8.46967L6.81065 7.25H16C17.2426 7.25 18.25 8.25736 18.25 9.5V12C18.25 12.4142 18.5858 12.75 19 12.75C19.4142 12.75 19.75 12.4142 19.75 12V9.5C19.75 7.42893 18.0711 5.75 16 5.75H6.81065L8.03032 4.53033ZM15.9697 19.4697C15.6768 19.7626 15.6768 20.2374 15.9697 20.5303C16.2626 20.8232 16.7374 20.8232 17.0303 20.5303L19.5303 18.0303L20.0607 17.5L19.5303 16.9697L17.0303 14.4697C16.7374 14.1768 16.2626 14.1768 15.9697 14.4697C15.6768 14.7626 15.6768 15.2374 15.9697 15.5303L17.1893 16.75H8C6.75736 16.75 5.75 15.7426 5.75 14.5V12C5.75 11.5858 5.41421 11.25 5 11.25C4.58579 11.25 4.25 11.5858 4.25 12V14.5C4.25 16.5711 5.92893 18.25 8 18.25H17.1893L15.9697 19.4697Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const container = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.75 4C7.75 3.58579 7.41421 3.25 7 3.25C6.58579 3.25 6.25 3.58579 6.25 4V6.25H4C3.58579 6.25 3.25 6.58579 3.25 7C3.25 7.41421 3.58579 7.75 4 7.75H6.25L6.25 16.25H4C3.58579 16.25 3.25 16.5858 3.25 17C3.25 17.4142 3.58579 17.75 4 17.75H6.25V20C6.25 20.4142 6.58579 20.75 7 20.75C7.41421 20.75 7.75 20.4142 7.75 20V17.75H16.25V20C16.25 20.4142 16.5858 20.75 17 20.75C17.4142 20.75 17.75 20.4142 17.75 20V17.75H20C20.4142 17.75 20.75 17.4142 20.75 17C20.75 16.5858 20.4142 16.25 20 16.25H17.75L17.75 7.75H20C20.4142 7.75 20.75 7.41421 20.75 7C20.75 6.58579 20.4142 6.25 20 6.25H17.75V4C17.75 3.58579 17.4142 3.25 17 3.25C16.5858 3.25 16.25 3.58579 16.25 4V6.25H7.75V4ZM16.25 16.25L16.25 7.75H7.75L7.75 16.25H16.25Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const countdown = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<circle cx=\"12\" cy=\"12\" r=\"7.25\" stroke=\"currentColor\" stroke-width=\"1.5\"/>\n<path d=\"M12 12L12 8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n<path d=\"M12 4L12 3\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n<path d=\"M14.5 2.75L9.5 2.75\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n<path d=\"M17 6L17.5 5.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n</svg>\n`;\n", "export const dateBoost = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.75 3C8.75 2.58579 8.41421 2.25 8 2.25C7.58579 2.25 7.25 2.58579 7.25 3V4.25H7C4.92893 4.25 3.25 5.92893 3.25 8V17C3.25 19.0711 4.92893 20.75 7 20.75H8.75V19.25H7C5.75736 19.25 4.75 18.2426 4.75 17V10.75H19.25V12H20.75V8C20.75 5.92893 19.0711 4.25 17 4.25H16.75V3C16.75 2.58579 16.4142 2.25 16 2.25C15.5858 2.25 15.25 2.58579 15.25 3V4.25H8.75V3ZM8 5.75H16H17C18.2426 5.75 19.25 6.75736 19.25 8V9.25H4.75V8C4.75 6.75736 5.75736 5.75 7 5.75H8ZM16.25 14.5C16.25 14.9142 16.5858 15.25 17 15.25H18.1893L16 17.4393L15.0303 16.4697L14.5 15.9393L13.9697 16.4697L10.9697 19.4697C10.6768 19.7626 10.6768 20.2374 10.9697 20.5303C11.2626 20.8232 11.7374 20.8232 12.0303 20.5303L14.5 18.0607L15.4697 19.0303L16 19.5607L16.5303 19.0303L19.25 16.3107V17.5C19.25 17.9142 19.5858 18.25 20 18.25C20.4142 18.25 20.75 17.9142 20.75 17.5V14.5V13.75H20H17C16.5858 13.75 16.25 14.0858 16.25 14.5Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const deleteIcon = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.0791 4.02927C9.40366 3.54243 9.95007 3.25 10.5352 3.25H13.4648C14.0499 3.25 14.5963 3.54243 14.9209 4.02927L16.4014 6.25H17.9918H18.0066H20C20.4142 6.25 20.75 6.58579 20.75 7C20.75 7.41421 20.4142 7.75 20 7.75H18.6945L17.9609 17.2876C17.8106 19.2413 16.1814 20.75 14.2219 20.75H9.77809C7.81858 20.75 6.18943 19.2414 6.03914 17.2876L5.30548 7.75H4C3.58579 7.75 3.25 7.41421 3.25 7C3.25 6.58579 3.58579 6.25 4 6.25H5.99339H6.00822H7.59861L9.0791 4.02927ZM7.98838 7.75C7.99567 7.75011 8.00296 7.75011 8.01024 7.75H15.9898C15.997 7.75011 16.0043 7.75011 16.0116 7.75H17.1901L16.4653 17.1726C16.3751 18.3448 15.3976 19.25 14.2219 19.25H9.77809C8.60239 19.25 7.62489 18.3448 7.53472 17.1726L6.80991 7.75H7.98838ZM14.5986 6.25H9.40139L10.3272 4.86133C10.3735 4.79178 10.4516 4.75 10.5352 4.75H13.4648C13.5484 4.75 13.6265 4.79178 13.6728 4.86133L14.5986 6.25ZM10 10.25C10.4142 10.25 10.75 10.5858 10.75 11V16C10.75 16.4142 10.4142 16.75 10 16.75C9.58579 16.75 9.25 16.4142 9.25 16V11C9.25 10.5858 9.58579 10.25 10 10.25ZM14.75 11C14.75 10.5858 14.4142 10.25 14 10.25C13.5858 10.25 13.25 10.5858 13.25 11V16C13.25 16.4142 13.5858 16.75 14 16.75C14.4142 16.75 14.75 16.4142 14.75 16V11Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const desktop = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.1543 3.00391C19.7394 3.08421 21 4.39489 21 6V14L20.9961 14.1543C20.9184 15.6883 19.6883 16.9184 18.1543 16.9961L18 17H14.0225L14.6475 19.5H17.25C17.6642 19.5 18 19.8358 18 20.25C18 20.6642 17.6642 21 17.25 21H6.75C6.33579 21 6 20.6642 6 20.25C6 19.8358 6.33579 19.5 6.75 19.5H9.35254L9.97754 17H6C4.34315 17 3 15.6569 3 14V6C3 4.34315 4.34315 3 6 3H18L18.1543 3.00391ZM11.5225 17L10.8975 19.5H13.1025L12.4775 17H11.5225ZM6 4.5C5.17157 4.5 4.5 5.17157 4.5 6V14C4.5 14.8284 5.17157 15.5 6 15.5H18C18.8284 15.5 19.5 14.8284 19.5 14V6C19.5 5.17157 18.8284 4.5 18 4.5H6Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const disabled = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM6.82129 18.7383C8.25535 19.8421 10.0504 20.5 12 20.5C16.6944 20.5 20.5 16.6944 20.5 12C20.5 10.0504 19.8421 8.25535 18.7383 6.82129L6.82129 18.7383ZM12 3.5C7.30558 3.5 3.5 7.30558 3.5 12C3.5 14.2043 4.3396 16.2123 5.71582 17.7227L17.7227 5.71582C16.2123 4.3396 14.2043 3.5 12 3.5Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const dismissible = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M17 3.25C19.0711 3.25 20.75 4.92893 20.75 7V17C20.75 19.0711 19.0711 20.75 17 20.75H7C4.92893 20.75 3.25 19.0711 3.25 17V7C3.25 4.92893 4.92893 3.25 7 3.25H17ZM7 4.75C5.75736 4.75 4.75 5.75736 4.75 7V17C4.75 18.2426 5.75736 19.25 7 19.25H17C18.2426 19.25 19.25 18.2426 19.25 17V7C19.25 5.75736 18.2426 4.75 17 4.75H7ZM14.0244 9.08496C14.3173 8.79238 14.7922 8.79217 15.085 9.08496C15.3774 9.37778 15.3774 9.85272 15.085 10.1455L13.0596 12.1699L15.085 14.1943C15.3774 14.4871 15.3774 14.9621 15.085 15.2549C14.7922 15.5476 14.3173 15.5474 14.0244 15.2549L11.999 13.2305L9.97559 15.2549C9.68281 15.5476 9.20794 15.5474 8.91504 15.2549C8.62217 14.962 8.6222 14.4872 8.91504 14.1943L10.9385 12.1699L8.91504 10.1455C8.62221 9.85262 8.62218 9.37784 8.91504 9.08496C9.20794 8.79243 9.6828 8.79224 9.97559 9.08496L11.999 11.1094L14.0244 9.08496Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const divider = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 3.5H6C5.72386 3.5 5.5 3.72386 5.5 4V6C5.5 6.27614 5.72386 6.5 6 6.5H18C18.2761 6.5 18.5 6.27614 18.5 6V4C18.5 3.72386 18.2761 3.5 18 3.5ZM6 2C4.89543 2 4 2.89543 4 4V6C4 7.10457 4.89543 8 6 8H18C19.1046 8 20 7.10457 20 6V4C20 2.89543 19.1046 2 18 2H6ZM18 17.5H6C5.72386 17.5 5.5 17.7239 5.5 18V20C5.5 20.2761 5.72386 20.5 6 20.5H18C18.2761 20.5 18.5 20.2761 18.5 20V18C18.5 17.7239 18.2761 17.5 18 17.5ZM6 16C4.89543 16 4 16.8954 4 18V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V18C20 16.8954 19.1046 16 18 16H6ZM5.75 11.25C5.33579 11.25 5 11.5858 5 12C5 12.4142 5.33579 12.75 5.75 12.75H18.25C18.6642 12.75 19 12.4142 19 12C19 11.5858 18.6642 11.25 18.25 11.25H5.75Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const doubleChevron = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 7L7 12L12 17\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n<path d=\"M17.5 9.5L15 12L17.5 14.5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n</svg>`;\n", "export const download = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M20.5 12.25C20.9142 12.25 21.25 12.5858 21.25 13V16.25C21.25 18.3211 19.5711 20 17.5 20H6.5C4.42893 20 2.75 18.3211 2.75 16.25V13C2.75 12.5858 3.08579 12.25 3.5 12.25C3.91421 12.25 4.25 12.5858 4.25 13V16.25C4.25 17.4926 5.25736 18.5 6.5 18.5H17.5C18.7426 18.5 19.75 17.4926 19.75 16.25V13C19.75 12.5858 20.0858 12.25 20.5 12.25ZM12.043 3.29297C12.4572 3.293 12.793 3.62878 12.793 4.04297V12.7324L16.5127 9.0127C16.8056 8.7198 17.2803 8.7198 17.5732 9.0127C17.8661 9.30559 17.8661 9.78037 17.5732 10.0732L12.043 15.6035L6.5127 10.0732C6.2198 9.78035 6.2198 9.30559 6.5127 9.0127C6.80559 8.7198 7.28035 8.7198 7.57324 9.0127L11.293 12.7324V4.04297C11.293 3.62876 11.6288 3.29297 12.043 3.29297Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const dropdown = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.1543 3.00391C19.7394 3.08421 21 4.39489 21 6V18L20.9961 18.1543C20.9184 19.6883 19.6883 20.9184 18.1543 20.9961L18 21H6L5.8457 20.9961C4.31166 20.9184 3.08163 19.6883 3.00391 18.1543L3 18V6C3 4.39489 4.26056 3.08421 5.8457 3.00391L6 3H18L18.1543 3.00391ZM6 4.5C5.17157 4.5 4.5 5.17157 4.5 6V18C4.5 18.8284 5.17157 19.5 6 19.5H18C18.8284 19.5 19.5 18.8284 19.5 18V6C19.5 5.17157 18.8284 4.5 18 4.5H6ZM15.5264 9.41797C15.8209 9.17766 16.2557 9.19512 16.5303 9.46973C16.8049 9.74433 16.8223 10.1791 16.582 10.4736L16.5303 10.5303L12 15.0605L7.46973 10.5303L7.41797 10.4736C7.17766 10.1791 7.19512 9.74433 7.46973 9.46973C7.74433 9.19512 8.17905 9.17766 8.47363 9.41797L8.53027 9.46973L12 12.9395L15.4697 9.46973L15.5264 9.41797Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const duplicate = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13 3.25C10.9289 3.25 9.25 4.92893 9.25 7V11C9.25 13.0711 10.9289 14.75 13 14.75H17C19.0711 14.75 20.75 13.0711 20.75 11V7C20.75 4.92893 19.0711 3.25 17 3.25H13ZM10.75 7C10.75 5.75736 11.7574 4.75 13 4.75H17C18.2426 4.75 19.25 5.75736 19.25 7V11C19.25 12.2426 18.2426 13.25 17 13.25H13C11.7574 13.25 10.75 12.2426 10.75 11V7ZM3.25 13C3.25 10.9289 4.92893 9.25 7 9.25V10.75C5.75736 10.75 4.75 11.7574 4.75 13V17C4.75 18.2426 5.75736 19.25 7 19.25H11C12.2426 19.25 13.25 18.2426 13.25 17H14.75C14.75 19.0711 13.0711 20.75 11 20.75H7C4.92893 20.75 3.25 19.0711 3.25 17V13Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const edit = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.45321 14.5468C4.15846 14.8416 3.96316 15.221 3.89464 15.6322L3.11508 20.3095C3.05868 20.6479 3.35207 20.9413 3.69048 20.8849L8.36779 20.1054C8.77897 20.0368 9.15845 19.8416 9.45321 19.5468L20.8787 8.12133C22.0503 6.94975 22.0503 5.05026 20.8787 3.87869L20.1213 3.12133C18.9498 1.94975 17.0503 1.94975 15.8787 3.12132L4.45321 14.5468ZM18.4697 8.40902L19.818 7.06067C20.4038 6.47488 20.4038 5.52513 19.818 4.93935L20.8787 3.87869L19.818 4.93935L19.0607 4.18199C18.4749 3.5962 17.5251 3.5962 16.9393 4.18198L15.591 5.53034L18.4697 8.40902ZM17.409 9.46968L14.5303 6.591L7.87326 13.2481L8.47435 15.0513C8.549 15.2753 8.72473 15.451 8.94869 15.5257L10.7519 16.1267L17.409 9.46968ZM8.47435 16.9487L9.56609 17.3126L8.39255 18.4861C8.31886 18.5598 8.22399 18.6087 8.1212 18.6258L4.82483 19.1752L5.37423 15.8788C5.39136 15.776 5.44018 15.6811 5.51387 15.6075L6.68741 14.4339L7.05132 15.5257C7.27527 16.1975 7.80248 16.7247 8.47435 16.9487Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const email = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M19.1543 4.00391C20.7394 4.08421 22 5.39489 22 7V17C22 18.6051 20.7394 19.9158 19.1543 19.9961L19 20H5L4.8457 19.9961C3.26055 19.9158 2 18.6051 2 17V7C2 5.39489 3.26055 4.08421 4.8457 4.00391L5 4H19L19.1543 4.00391ZM14.4912 12.7891C13.1147 14.0125 11.0622 14.0506 9.64355 12.9033L9.50879 12.7891L3.5 7.44727V17C3.5 17.8284 4.17157 18.5 5 18.5H19C19.8284 18.5 20.5 17.8284 20.5 17V7.44727L14.4912 12.7891ZM5 5.5C4.61488 5.5 4.26463 5.64621 3.99902 5.88477L10.5049 11.668L10.6699 11.8008C11.5166 12.4225 12.6959 12.3784 13.4951 11.668L20 5.88477C19.7345 5.6465 19.3849 5.5 19 5.5H5Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const embed = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M16.75 18.25C17.9926 18.25 19 19.2574 19 20.5V21.25C19 21.6642 18.6642 22 18.25 22C17.8358 22 17.5 21.6642 17.5 21.25V20.5C17.5 20.0858 17.1642 19.75 16.75 19.75H7.25C6.83579 19.75 6.5 20.0858 6.5 20.5V21.25C6.5 21.6642 6.16421 22 5.75 22C5.33579 22 5 21.6642 5 21.25V20.5C5 19.2574 6.00736 18.25 7.25 18.25H16.75ZM18 8C19.1046 8 20 8.89543 20 10V14C20 15.1046 19.1046 16 18 16H6C4.89543 16 4 15.1046 4 14V10C4 8.89543 4.89543 8 6 8H18ZM6 9.5C5.72386 9.5 5.5 9.72386 5.5 10V14C5.5 14.2761 5.72386 14.5 6 14.5H18C18.2761 14.5 18.5 14.2761 18.5 14V10C18.5 9.72386 18.2761 9.5 18 9.5H6ZM18.25 2C18.6642 2 19 2.33579 19 2.75V3.5C19 4.74264 17.9926 5.75 16.75 5.75H7.25C6.00736 5.75 5 4.74264 5 3.5V2.75C5 2.33579 5.33579 2 5.75 2C6.16421 2 6.5 2.33579 6.5 2.75V3.5C6.5 3.91421 6.83579 4.25 7.25 4.25H16.75C17.1642 4.25 17.5 3.91421 17.5 3.5V2.75C17.5 2.33579 17.8358 2 18.25 2Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const experiment = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M16 2.25C16.4142 2.25005 16.75 2.58582 16.75 3C16.75 3.41418 16.4142 3.74995 16 3.75H15.3496V8.45312C15.3496 8.6767 15.4097 8.89635 15.5234 9.08887L20.4082 17.3555C21.2943 18.8553 20.2128 20.75 18.4707 20.75H5.67676C3.95209 20.7496 2.8689 18.8884 3.72071 17.3887L8.43652 9.08887C8.54339 8.90072 8.59957 8.68805 8.59961 8.47168V3.75H8C7.58578 3.75 7.25 3.41421 7.25 3C7.25 2.58579 7.58578 2.25 8 2.25H16ZM6.66113 15.25L5.02539 18.1299C4.74168 18.6296 5.10216 19.2496 5.67676 19.25H18.4707C19.0514 19.25 19.4116 18.6181 19.1162 18.1182L17.4219 15.25H6.66113ZM10.0996 8.47168C10.0996 8.9479 9.97549 9.41602 9.74023 9.83008L7.51367 13.75H16.5351L14.2324 9.85254C13.9821 9.42886 13.8496 8.94523 13.8496 8.45312V3.75H10.0996V8.47168Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const external = `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 2C6.41421 2 6.75 2.33579 6.75 2.75C6.75 3.16421 6.41421 3.5 6 3.5H4.75C4.05964 3.5 3.5 4.05964 3.5 4.75V11.25C3.5 11.9404 4.05964 12.5 4.75 12.5H11.25C11.9404 12.5 12.5 11.9404 12.5 11.25V10C12.5 9.58579 12.8358 9.25 13.25 9.25C13.6642 9.25 14 9.58579 14 10V11.25C14 12.7688 12.7688 14 11.25 14H4.75C3.23122 14 2 12.7688 2 11.25V4.75C2 3.23122 3.23122 2 4.75 2H6ZM14 6C14 6.41421 13.6642 6.75 13.25 6.75C12.8358 6.75 12.5 6.41421 12.5 6V4.56055L8.03027 9.03027C7.73738 9.32317 7.26262 9.32317 6.96973 9.03027C6.67683 8.73738 6.67683 8.26262 6.96973 7.96973L11.4395 3.5H10C9.58579 3.5 9.25 3.16421 9.25 2.75C9.25 2.33579 9.58579 2 10 2H14V6Z\" fill=\"currentColor\"/>\n</svg>`;\n", "export const filter = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M15.25 15.5C16.5085 15.5 17.5668 16.3461 17.8936 17.5H19.25C19.6642 17.5 20 17.8358 20 18.25C20 18.6642 19.6642 19 19.25 19H17.8936C17.5668 20.1539 16.5085 21 15.25 21C13.9915 21 12.9332 20.1539 12.6064 19H4.75C4.33579 19 4 18.6642 4 18.25C4 17.8358 4.33579 17.5 4.75 17.5H12.6064C12.9332 16.3461 13.9915 15.5 15.25 15.5ZM15.25 17C14.5596 17 14 17.5596 14 18.25C14 18.9404 14.5596 19.5 15.25 19.5C15.9404 19.5 16.5 18.9404 16.5 18.25C16.5 17.5596 15.9404 17 15.25 17ZM8.75 9.25C10.0085 9.25 11.0668 10.0961 11.3936 11.25H19.25C19.6642 11.25 20 11.5858 20 12C20 12.4142 19.6642 12.75 19.25 12.75H11.3936C11.0668 13.9039 10.0085 14.75 8.75 14.75C7.4915 14.75 6.43316 13.9039 6.10645 12.75H4.75C4.33579 12.75 4 12.4142 4 12C4 11.5858 4.33579 11.25 4.75 11.25H6.10645C6.43316 10.0961 7.4915 9.25 8.75 9.25ZM8.75 10.75C8.05964 10.75 7.5 11.3096 7.5 12C7.5 12.6904 8.05964 13.25 8.75 13.25C9.44036 13.25 10 12.6904 10 12C10 11.3096 9.44036 10.75 8.75 10.75ZM15.25 3C16.5085 3 17.5668 3.84614 17.8936 5H19.25C19.6642 5 20 5.33579 20 5.75C20 6.16421 19.6642 6.5 19.25 6.5H17.8936C17.5668 7.65386 16.5085 8.5 15.25 8.5C13.9915 8.5 12.9332 7.65386 12.6064 6.5H4.75C4.33579 6.5 4 6.16421 4 5.75C4 5.33579 4.33579 5 4.75 5H12.6064C12.9332 3.84614 13.9915 3 15.25 3ZM15.25 4.5C14.5596 4.5 14 5.05964 14 5.75C14 6.44036 14.5596 7 15.25 7C15.9404 7 16.5 6.44036 16.5 5.75C16.5 5.05964 15.9404 4.5 15.25 4.5Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const form = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M14 3.25C14.4142 3.25 14.75 3.58579 14.75 4C14.75 4.41421 14.4142 4.75 14 4.75H12.75V19.25H14C14.4142 19.25 14.75 19.5858 14.75 20C14.75 20.4142 14.4142 20.75 14 20.75H10C9.58579 20.75 9.25 20.4142 9.25 20C9.25 19.5858 9.58579 19.25 10 19.25H11.25V4.75H10C9.58579 4.75 9.25 4.41421 9.25 4C9.25 3.58579 9.58579 3.25 10 3.25H14ZM9.75 7.5H5C4.17157 7.5 3.5 8.17157 3.5 9V15C3.5 15.8284 4.17157 16.5 5 16.5H9.75V18H5L4.8457 17.9961C3.26055 17.9158 2 16.6051 2 15V9C2 7.39489 3.26055 6.08421 4.8457 6.00391L5 6H9.75V7.5ZM19.1543 6.00391C20.7394 6.08421 22 7.39489 22 9V15C22 16.6051 20.7394 17.9158 19.1543 17.9961L19 18H14.25V16.5H19C19.8284 16.5 20.5 15.8284 20.5 15V9C20.5 8.17157 19.8284 7.5 19 7.5H14.25V6H19L19.1543 6.00391Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const gallery = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 4.5H6.00002C5.17159 4.5 4.50002 5.17157 4.50002 6V15.5002L8.21092 11.7901C8.63248 11.3687 9.32682 11.4073 9.69904 11.8729L10.5088 12.8858L14.3344 8.74803C15.064 7.95881 16.3261 8.00775 16.9924 8.85109L19.5 12.0247V6C19.5 5.17157 18.8284 4.5 18 4.5ZM21 13.9231V6C21 4.34315 19.6569 3 18 3H6.00002C4.34316 3 3.00002 4.34315 3.00002 6V16.9999L2.99994 17V18C2.99994 19.4498 4.02832 20.6593 5.39541 20.9391C5.5785 20.9765 5.76766 20.9973 5.96124 20.9998L6.00002 21H18C19.6569 21 21 19.6569 21 18V14.1049L21.0885 14.035L21 13.9231ZM19.5 14.4442L15.8155 9.78104C15.7203 9.66057 15.54 9.65358 15.4358 9.76632L11.4561 14.0708L15.7962 19.5L18 19.5C18.8284 19.5 19.5 18.8284 19.5 18V14.4442ZM4.50002 18C4.50002 18.6795 4.95179 19.2534 5.57134 19.4379C5.65996 19.4642 5.752 19.4826 5.84665 19.4923C5.89705 19.4974 5.94819 19.5 5.99994 19.5H13.8758L8.87631 13.246L4.50002 17.6213V18Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const gear = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M13.4678 2C13.9142 2.00002 14.307 2.2963 14.4297 2.72559L15.0049 4.74219L16.8398 3.72363C17.1813 3.53396 17.5973 3.56262 17.9072 3.78418L18.0332 3.89062L20.1084 5.9668C20.4241 6.2825 20.4932 6.76987 20.2764 7.16016L19.2568 8.99316L21.2744 9.57031C21.6502 9.67769 21.9239 9.9921 21.9863 10.3682L22 10.5322V13.4678C22 13.9142 21.7037 14.307 21.2744 14.4297L19.2568 15.0049L20.2764 16.8398C20.4661 17.1813 20.4374 17.5972 20.2158 17.9072L20.1094 18.0332L18.0332 20.1084C17.7175 20.4241 17.2301 20.4932 16.8398 20.2764L15.0049 19.2568L14.4297 21.2744C14.3223 21.6502 14.0079 21.9239 13.6318 21.9863L13.4678 22H10.5322C10.0858 22 9.69297 21.7037 9.57031 21.2744L8.99316 19.2568L7.16016 20.2764C6.81867 20.466 6.40275 20.4374 6.09277 20.2158L5.9668 20.1094L3.8916 18.0332C3.5759 17.7175 3.50683 17.2301 3.72363 16.8398L4.74219 15.0059L2.72559 14.4297C2.34982 14.3223 2.07606 14.0079 2.01367 13.6318L2 13.4678V10.5322C2.00005 10.0858 2.29632 9.69296 2.72559 9.57031L4.74219 8.99316L3.72363 7.16016C3.53394 6.81866 3.5626 6.40276 3.78418 6.09277L3.89062 5.9668L5.9668 3.8916C6.28251 3.57589 6.76986 3.5068 7.16016 3.72363L8.99316 4.74219L9.57031 2.72559C9.67768 2.34981 9.99209 2.07606 10.3682 2.01367L10.5322 2H13.4678ZM10.4014 5.27148C9.70554 5.47089 9.05368 5.77388 8.46484 6.16504L6.76074 5.21875L5.21777 6.76074L6.22363 8.57031L6.23242 8.56738C5.91398 9.13213 5.67275 9.74545 5.52051 10.3936L5.49023 10.3398L3.5 10.9092V13.0908L5.49121 13.6592L5.52051 13.6055C5.67256 14.2532 5.91338 14.8662 6.23145 15.4307L6.22363 15.4287L5.21875 17.2393L5.21777 17.2383V17.2393H5.21875L6.76074 18.7822L8.46484 17.834C9.05398 18.2254 9.7061 18.5281 10.4023 18.7275L10.9092 20.5H13.0908L13.5488 18.8916C14.3898 18.7443 15.1787 18.4482 15.8877 18.0293L17.2393 18.7812L18.7822 17.2393L18.085 15.9863C18.6037 15.2393 18.9814 14.3876 19.1777 13.4678L20.5 13.0908V10.9092L19.1777 10.5303C18.9812 9.61065 18.6038 8.75856 18.085 8.01172L18.7812 6.76074L17.2393 5.21777L15.8857 5.96875C15.1773 5.55053 14.389 5.25458 13.5488 5.10742L13.0908 3.5H10.9092L10.4014 5.27148ZM12 8C14.2091 8 16 9.79086 16 12C16 14.2091 14.2091 16 12 16C9.79086 16 8 14.2091 8 12C8 9.79086 9.79086 8 12 8ZM12 9.5C10.6193 9.5 9.5 10.6193 9.5 12C9.5 13.3807 10.6193 14.5 12 14.5C13.3807 14.5 14.5 13.3807 14.5 12C14.5 10.6193 13.3807 9.5 12 9.5Z\" />\n<path d=\"M13.6328 2.01367C14.0085 2.07631 14.3224 2.35007 14.4297 2.72559L15.0049 4.74219L16.8398 3.72363C17.1813 3.53396 17.5973 3.56262 17.9072 3.78418L18.0332 3.89062L20.1084 5.9668L20.2158 6.09277C20.4372 6.40274 20.466 6.81875 20.2764 7.16016L19.2568 8.99316L21.2744 9.57031C21.6502 9.67769 21.9239 9.9921 21.9863 10.3682L22 10.5322V13.4678L21.9863 13.6328C21.9237 14.0085 21.6499 14.3224 21.2744 14.4297L19.2568 15.0049L20.2764 16.8398C20.4661 17.1813 20.4374 17.5972 20.2158 17.9072L20.1094 18.0332L18.0332 20.1084L17.9072 20.2158C17.5973 20.4372 17.1813 20.466 16.8398 20.2764L15.0049 19.2568L14.4297 21.2744C14.3223 21.6502 14.0079 21.9239 13.6318 21.9863L13.4678 22H10.5322L10.3672 21.9863C9.99146 21.9237 9.6776 21.6499 9.57031 21.2744L8.99316 19.2568L7.16016 20.2764C6.81867 20.466 6.40275 20.4374 6.09277 20.2158L5.9668 20.1094L3.8916 18.0332L3.78418 17.9072C3.56278 17.5973 3.53398 17.1812 3.72363 16.8398L4.74219 15.0059L2.72559 14.4297C2.34982 14.3223 2.07606 14.0079 2.01367 13.6318L2 13.4678V10.5322L2.01367 10.3672C2.07633 9.99149 2.35009 9.6776 2.72559 9.57031L4.74219 8.99316L3.72363 7.16016C3.53394 6.81866 3.5626 6.40276 3.78418 6.09277L3.89062 5.9668L5.9668 3.8916L6.09277 3.78418C6.40275 3.56277 6.81875 3.53396 7.16016 3.72363L8.99316 4.74219L9.57031 2.72559C9.67768 2.34981 9.99209 2.07606 10.3682 2.01367L10.5322 2H13.4678L13.6328 2.01367ZM10.4014 5.27148C9.70554 5.47089 9.05368 5.77388 8.46484 6.16504L6.76074 5.21875L5.21777 6.76074L6.22363 8.57031L6.23242 8.56738C5.91398 9.13213 5.67275 9.74545 5.52051 10.3936L5.49023 10.3398L3.5 10.9092V13.0908L5.49121 13.6592L5.52051 13.6055C5.67256 14.2532 5.91338 14.8662 6.23145 15.4307L6.22363 15.4287L5.21875 17.2393L5.21777 17.2383V17.2393H5.21875L6.76074 18.7822L8.46484 17.834C9.05398 18.2254 9.7061 18.5281 10.4023 18.7275L10.9092 20.5H13.0908L13.5488 18.8916C14.3898 18.7443 15.1787 18.4482 15.8877 18.0293L17.2393 18.7812L18.7822 17.2393L18.085 15.9863C18.6037 15.2393 18.9814 14.3876 19.1777 13.4678L20.5 13.0908V10.9092L19.1777 10.5303C18.9812 9.61065 18.6038 8.75856 18.085 8.01172L18.7812 6.76074L17.2393 5.21777L15.8857 5.96875C15.1773 5.55053 14.389 5.25458 13.5488 5.10742L13.0908 3.5H10.9092L10.4014 5.27148ZM12 8C14.2091 8 16 9.79086 16 12C16 14.2091 14.2091 16 12 16C9.79086 16 8 14.2091 8 12C8 9.79086 9.79086 8 12 8ZM12 9.5C10.6193 9.5 9.5 10.6193 9.5 12C9.5 13.3807 10.6193 14.5 12 14.5C13.3807 14.5 14.5 13.3807 14.5 12C14.5 10.6193 13.3807 9.5 12 9.5Z\" />\n</svg>`;\n", "export const globe = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM12 16.75C11.0568 16.75 10.1471 16.893 9.29004 17.1553C9.4447 17.6074 9.61762 18.0243 9.80566 18.4004C10.6308 20.0506 11.4935 20.5 12 20.5C12.5065 20.5 13.3692 20.0506 14.1943 18.4004C14.3823 18.0244 14.5544 17.6073 14.709 17.1553C13.8522 16.8931 12.943 16.75 12 16.75ZM7.89453 17.708C7.42298 17.942 6.97453 18.2156 6.55273 18.5234C7.2655 19.1193 8.07731 19.5992 8.95996 19.9375C8.5503 19.3088 8.19004 18.5567 7.89453 17.708ZM16.1035 17.708C15.808 18.5566 15.4487 19.3088 15.0391 19.9375C15.9218 19.5993 16.7334 19.1192 17.4463 18.5234C17.0242 18.2154 16.5754 17.942 16.1035 17.708ZM3.53516 12.75C3.69105 14.5326 4.39585 16.1568 5.48145 17.4531C6.09662 16.9833 6.76408 16.5789 7.47363 16.249C7.22084 15.1735 7.06173 13.9935 7.01562 12.75H3.53516ZM16.9844 12.75C16.9383 13.9936 16.7782 15.1735 16.5254 16.249C17.2351 16.5789 17.9023 16.9833 18.5176 17.4531C19.6034 16.1567 20.3089 14.5329 20.4648 12.75H16.9844ZM8.5166 12.75C8.55899 13.8091 8.68932 14.8049 8.88867 15.709C9.87374 15.4115 10.9183 15.25 12 15.25C13.0815 15.25 14.1254 15.4117 15.1104 15.709C15.3097 14.8048 15.441 13.8092 15.4834 12.75H8.5166ZM5.48145 6.54492C4.39531 7.84143 3.69109 9.46683 3.53516 11.25H7.01562C7.06174 10.0061 7.22072 8.82574 7.47363 7.75C6.76389 7.41996 6.09676 7.01497 5.48145 6.54492ZM15.1104 8.28906C14.1254 8.5865 13.0817 8.75 12 8.75C10.918 8.74999 9.87397 8.58667 8.88867 8.28906C8.68908 9.19368 8.55902 10.1902 8.5166 11.25H15.4834C15.441 10.1901 15.31 9.19373 15.1104 8.28906ZM18.5176 6.54492C17.9022 7.01496 17.2352 7.41999 16.5254 7.75C16.7783 8.82579 16.9383 10.0061 16.9844 11.25H20.4648C20.3089 9.46661 19.6039 7.84151 18.5176 6.54492ZM12 3.5C11.4935 3.5 10.6308 3.94942 9.80566 5.59961C9.61774 5.97547 9.44462 6.39196 9.29004 6.84375C10.1472 7.10595 11.0566 7.24999 12 7.25C12.9431 7.25 13.8521 7.10575 14.709 6.84375C14.5544 6.39208 14.3822 5.97538 14.1943 5.59961C13.3692 3.94942 12.5065 3.5 12 3.5ZM8.95996 4.06152C8.07715 4.3998 7.26463 4.87966 6.55176 5.47559C6.97401 5.78388 7.42337 6.05687 7.89551 6.29102C8.19104 5.44254 8.5503 4.69009 8.95996 4.06152ZM15.0391 4.06152C15.4487 4.68989 15.808 5.44185 16.1035 6.29004C16.5754 6.05606 17.0252 5.78461 17.4473 5.47656C16.7342 4.88048 15.9222 4.39981 15.0391 4.06152Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const graph = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.1543 3.00391C19.7394 3.08421 21 4.39489 21 6V18L20.9961 18.1543C20.9184 19.6883 19.6883 20.9184 18.1543 20.9961L18 21H6C4.39489 21 3.08421 19.7394 3.00391 18.1543L3 18V6C3 4.34315 4.34315 3 6 3H18L18.1543 3.00391ZM6 4.5C5.17157 4.5 4.5 5.17157 4.5 6V18C4.5 18.8284 5.17157 19.5 6 19.5H18C18.8284 19.5 19.5 18.8284 19.5 18V6C19.5 5.17157 18.8284 4.5 18 4.5H6ZM8 9C8.41421 9 8.75 9.33579 8.75 9.75V16.25C8.75 16.6642 8.41421 17 8 17C7.58579 17 7.25 16.6642 7.25 16.25V9.75C7.25 9.33579 7.58579 9 8 9ZM12 12C12.4142 12 12.75 12.3358 12.75 12.75V16.25C12.75 16.6642 12.4142 17 12 17C11.5858 17 11.25 16.6642 11.25 16.25V12.75C11.25 12.3358 11.5858 12 12 12ZM16 9C16.4142 9 16.75 9.33579 16.75 9.75V16.25C16.75 16.6642 16.4142 17 16 17C15.5858 17 15.25 16.6642 15.25 16.25V9.75C15.25 9.33579 15.5858 9 16 9Z\" />\n</svg>`;\n", "export const handle = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9 6C10.1046 6 11 5.10457 11 4C11 2.89543 10.1046 2 9 2C7.89543 2 7 2.89543 7 4C7 5.10457 7.89543 6 9 6ZM15 6C16.1046 6 17 5.10457 17 4C17 2.89543 16.1046 2 15 2C13.8954 2 13 2.89543 13 4C13 5.10457 13.8954 6 15 6ZM11 12C11 13.1046 10.1046 14 9 14C7.89543 14 7 13.1046 7 12C7 10.8954 7.89543 10 9 10C10.1046 10 11 10.8954 11 12ZM15 14C16.1046 14 17 13.1046 17 12C17 10.8954 16.1046 10 15 10C13.8954 10 13 10.8954 13 12C13 13.1046 13.8954 14 15 14ZM11 20C11 21.1046 10.1046 22 9 22C7.89543 22 7 21.1046 7 20C7 18.8954 7.89543 18 9 18C10.1046 18 11 18.8954 11 20ZM15 22C16.1046 22 17 21.1046 17 20C17 18.8954 16.1046 18 15 18C13.8954 18 13 18.8954 13 20C13 21.1046 13.8954 22 15 22Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const help = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 17.7502C12.5523 17.7502 13 18.1979 13 18.7502C12.9999 19.3024 12.5522 19.7502 12 19.7502C11.4478 19.7502 11.0001 19.3024 11 18.7502C11 18.1979 11.4477 17.7502 12 17.7502ZM10.1826 3.86156C11.0505 3.50218 12.0055 3.4078 12.9268 3.59105C13.8482 3.77434 14.6941 4.22755 15.3584 4.89183C16.0227 5.55612 16.4759 6.40212 16.6592 7.32347C16.8424 8.24467 16.7481 9.19985 16.3887 10.0676C16.0292 10.9355 15.4198 11.6776 14.6387 12.1995C14.5212 12.278 14.4007 12.3518 14.2774 12.4192C13.8445 12.6557 13.4464 12.9493 13.1651 13.2776C12.887 13.6022 12.75 13.9259 12.75 14.2502V16.0002C12.7499 16.4143 12.4142 16.7502 12 16.7502C11.5859 16.7502 11.2501 16.4143 11.25 16.0002V14.2502C11.25 13.4703 11.5873 12.8135 12.0254 12.302C12.4605 11.7942 13.0223 11.3958 13.5586 11.1028C13.6429 11.0567 13.7253 11.0061 13.8057 10.9524C14.34 10.5954 14.757 10.088 15.003 9.49437C15.2489 8.90066 15.3128 8.24674 15.1875 7.61644C15.0621 6.98606 14.7523 6.40688 14.2979 5.95238C13.8434 5.49787 13.2642 5.18814 12.6338 5.06273C12.0034 4.93739 11.3497 5.00135 10.7559 5.2473C10.1622 5.49329 9.65491 5.91026 9.29786 6.44457C8.94081 6.97899 8.75001 7.60751 8.75001 8.25023C8.74988 8.66434 8.41414 9.00023 8 9.00023C7.58587 9.00023 7.25013 8.66434 7.25 8.25023C7.25 7.31087 7.52895 6.39264 8.05078 5.61156C8.57271 4.83045 9.31471 4.22108 10.1826 3.86156Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const home = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M10.7725 3.95499C11.4946 3.39358 12.5054 3.39358 13.2275 3.95499L20.2275 9.39936C20.7146 9.77822 20.9999 10.3614 21 10.9785V18C21 19.6051 19.7394 20.9158 18.1543 20.9961L18 21H6C4.39489 21 3.08421 19.7394 3.00391 18.1543L3 18V10.9785C3.00007 10.4386 3.21792 9.92445 3.59863 9.55073L3.77246 9.39936L10.7725 3.95499ZM12.3066 5.13859C12.1263 4.99869 11.8737 4.99869 11.6934 5.13859L4.69336 10.583C4.57163 10.6776 4.50008 10.8243 4.5 10.9785V18C4.5 18.8284 5.17157 19.5 6 19.5H8V16C8.00014 14.3432 9.34323 13 11 13H13C14.6568 13 15.9999 14.3432 16 16V19.5H18C18.8284 19.5 19.5 18.8284 19.5 18V10.9785C19.4999 10.8243 19.4284 10.6776 19.3066 10.583L12.3066 5.13859ZM11 14.5C10.1717 14.5 9.50014 15.1717 9.5 16V19.5H14.5V16C14.4999 15.1717 13.8283 14.5 13 14.5H11Z\" />\n</svg>`;\n", "export const horizontal = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M7.21973 12.4697C7.51262 12.1768 7.98738 12.1768 8.28027 12.4697C8.5731 12.7626 8.57314 13.2374 8.28027 13.5303L7.06055 14.75H18.75C19.1642 14.75 19.5 15.0858 19.5 15.5C19.5 15.9142 19.1642 16.25 18.75 16.25H7.06055L8.28027 17.4697C8.5731 17.7626 8.57314 18.2374 8.28027 18.5303C7.9874 18.8231 7.51262 18.8231 7.21973 18.5303L4.18945 15.5L7.21973 12.4697ZM15.7197 5.46973C16.0126 5.17684 16.4874 5.17684 16.7803 5.46973L19.8105 8.50001L16.7803 11.5303C16.4874 11.8231 16.0126 11.8231 15.7197 11.5303C15.4268 11.2374 15.4268 10.7626 15.7197 10.4697L16.9395 9.25001H5.25C4.83581 9.25001 4.50004 8.91419 4.5 8.50001C4.5 8.08579 4.83579 7.75001 5.25 7.75001H16.9395L15.7197 6.53028C15.4268 6.23739 15.4268 5.76262 15.7197 5.46973Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const hotel = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M20.25 2C20.6642 2 21 2.33579 21 2.75C21 3.16421 20.6642 3.5 20.25 3.5H20V20.5H20.25C20.6642 20.5 21 20.8358 21 21.25C21 21.6642 20.6642 22 20.25 22H3.75C3.33579 22 3 21.6642 3 21.25C3 20.8358 3.33579 20.5 3.75 20.5H4V3.5H3.75C3.33579 3.5 3 3.16421 3 2.75C3 2.33579 3.33579 2 3.75 2H20.25ZM5.5 20.5H9V17.5H8C8 15.2909 9.79086 13.5 12 13.5C14.2091 13.5 16 15.2909 16 17.5H15V20.5H18.5V3.5H5.5V20.5ZM10.5 20.5H13.5V17.5H10.5V20.5ZM12 15C11.183 15 10.4601 15.3939 10.0039 16H13.9961C13.5399 15.3939 12.817 15 12 15ZM8.5 10C8.77614 10 9 10.2239 9 10.5V11.5C9 11.7761 8.77614 12 8.5 12H7.5C7.22386 12 7 11.7761 7 11.5V10.5C7 10.2239 7.22386 10 7.5 10H8.5ZM12.5 10C12.7761 10 13 10.2239 13 10.5V11.5C13 11.7761 12.7761 12 12.5 12H11.5C11.2239 12 11 11.7761 11 11.5V10.5C11 10.2239 11.2239 10 11.5 10H12.5ZM16.5 10C16.7761 10 17 10.2239 17 10.5V11.5C17 11.7761 16.7761 12 16.5 12H15.5C15.2239 12 15 11.7761 15 11.5V10.5C15 10.2239 15.2239 10 15.5 10H16.5ZM8.5 6C8.77614 6 9 6.22386 9 6.5V7.5C9 7.77614 8.77614 8 8.5 8H7.5C7.22386 8 7 7.77614 7 7.5V6.5C7 6.22386 7.22386 6 7.5 6H8.5ZM12.5 6C12.7761 6 13 6.22386 13 6.5V7.5C13 7.77614 12.7761 8 12.5 8H11.5C11.2239 8 11 7.77614 11 7.5V6.5C11 6.22386 11.2239 6 11.5 6H12.5ZM16.5 6C16.7761 6 17 6.22386 17 6.5V7.5C17 7.77614 16.7761 8 16.5 8H15.5C15.2239 8 15 7.77614 15 7.5V6.5C15 6.22386 15.2239 6 15.5 6H16.5Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const info = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20.5 12C20.5 16.6944 16.6944 20.5 12 20.5C7.30558 20.5 3.5 16.6944 3.5 12C3.5 7.30558 7.30558 3.5 12 3.5C16.6944 3.5 20.5 7.30558 20.5 12ZM22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM11.25 15.75C11.25 16.1642 11.5858 16.5 12 16.5C12.4142 16.5 12.75 16.1642 12.75 15.75V10.25C12.75 9.83579 12.4142 9.5 12 9.5C11.5858 9.5 11.25 9.83579 11.25 10.25V15.75ZM12.75 7.75C12.75 7.33579 12.4142 7 12 7C11.5858 7 11.25 7.33579 11.25 7.75C11.25 8.16421 11.5858 8.5 12 8.5C12.4142 8.5 12.75 8.16421 12.75 7.75Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const insights = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.1543 3.00391C19.7394 3.08421 21 4.39489 21 6V18L20.9961 18.1543C20.9184 19.6883 19.6883 20.9184 18.1543 20.9961L18 21H6C4.39489 21 3.08421 19.7394 3.00391 18.1543L3 18V6C3 4.34315 4.34315 3 6 3H18L18.1543 3.00391ZM6 4.5C5.17157 4.5 4.5 5.17157 4.5 6V18C4.5 18.8284 5.17157 19.5 6 19.5H18C18.8284 19.5 19.5 18.8284 19.5 18V6C19.5 5.17157 18.8284 4.5 18 4.5H6ZM8 9C8.41421 9 8.75 9.33579 8.75 9.75V16.25C8.75 16.6642 8.41421 17 8 17C7.58579 17 7.25 16.6642 7.25 16.25V9.75C7.25 9.33579 7.58579 9 8 9ZM12 12C12.4142 12 12.75 12.3358 12.75 12.75V16.25C12.75 16.6642 12.4142 17 12 17C11.5858 17 11.25 16.6642 11.25 16.25V12.75C11.25 12.3358 11.5858 12 12 12ZM16 9C16.4142 9 16.75 9.33579 16.75 9.75V16.25C16.75 16.6642 16.4142 17 16 17C15.5858 17 15.25 16.6642 15.25 16.25V9.75C15.25 9.33579 15.5858 9 16 9Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const italic = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M11 5H17\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M7 19H13\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M14 5L10 19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n`;\n", "export const keyboard = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"keyboard\">\n<g clip-path=\"url(#clip0_286_15035)\">\n<path d=\"M20 7V17H4V7H20ZM20 5H4C2.9 5 2.01 5.9 2.01 7L2 17C2 18.1 2.9 19 4 19H20C21.1 19 22 18.1 22 17V7C22 5.9 21.1 5 20 5ZM11 8H13V10H11V8ZM11 11H13V13H11V11ZM8 8H10V10H8V8ZM8 11H10V13H8V11ZM5 11H7V13H5V11ZM5 8H7V10H5V8ZM8 14H16V16H8V14ZM14 11H16V13H14V11ZM14 8H16V10H14V8ZM17 11H19V13H17V11ZM17 8H19V10H17V8Z\" fill=\"currentColor\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_286_15035\">\n<rect width=\"24\" height=\"24\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n`;\n", "export const lightningBolt = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M13.1856 1.27343C13.5176 1.35823 13.75 1.65724 13.75 1.99999V10.25H17C17.2647 10.25 17.5094 10.3896 17.6445 10.6172C17.7797 10.8448 17.785 11.127 17.6582 11.3594L11.6582 22.3594C11.494 22.6602 11.1466 22.8112 10.8145 22.7266C10.4824 22.6418 10.25 22.3427 10.25 22V13.75H7C6.73536 13.75 6.49061 13.6103 6.35547 13.3828C6.22035 13.1552 6.21505 12.873 6.3418 12.6406L12.3418 1.64062C12.506 1.33982 12.8534 1.18874 13.1856 1.27343ZM8.26368 12.25H11C11.4142 12.25 11.75 12.5858 11.75 13V19.0586L15.7363 11.75H13C12.5858 11.75 12.25 11.4142 12.25 11V4.94042L8.26368 12.25Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const link = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M10 14C10.3259 14.3326 10.7148 14.5968 11.1441 14.7772C11.5734 14.9576 12.0344 15.0505 12.5 15.0505C12.9656 15.0505 13.4266 14.9576 13.8559 14.7772C14.2852 14.5968 14.6741 14.3326 15 14L19 10C19.663 9.33697 20.0355 8.43769 20.0355 7.50001C20.0355 6.56233 19.663 5.66305 19 5.00001C18.337 4.33697 17.4377 3.96448 16.5 3.96448C15.5623 3.96448 14.663 4.33697 14 5.00001L13.5 5.50001\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M14 9.99997C13.6741 9.66737 13.2851 9.40315 12.8559 9.22276C12.4266 9.04238 11.9656 8.94946 11.5 8.94946C11.0344 8.94946 10.5734 9.04238 10.1441 9.22276C9.71484 9.40315 9.32587 9.66737 9 9.99997L5 14C4.33695 14.663 3.96446 15.5623 3.96446 16.5C3.96446 17.4377 4.33695 18.3369 5 19C5.66304 19.663 6.56231 20.0355 7.5 20.0355C8.43768 20.0355 9.33695 19.663 10 19L10.5 18.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n`;\n", "export const logout = `<svg width=\"17\" height=\"20\" viewBox=\"0 0 17 20\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 0C12.4142 0 12.75 0.335786 12.75 0.75C12.75 1.16421 12.4142 1.5 12 1.5H3.75C2.50736 1.5 1.5 2.50736 1.5 3.75V16.25C1.5 17.4926 2.50736 18.5 3.75 18.5H12C12.4142 18.5 12.75 18.8358 12.75 19.25C12.75 19.6642 12.4142 20 12 20H3.75C1.67893 20 0 18.3211 0 16.25V3.75C2.57706e-07 1.67893 1.67893 1.28851e-07 3.75 0H12ZM10.7197 5.71973C11.0125 5.42693 11.4874 5.42713 11.7803 5.71973L16.0605 10L11.7803 14.2803C11.4874 14.5729 11.0126 14.573 10.7197 14.2803C10.4272 13.9874 10.4272 13.5125 10.7197 13.2197L13.1895 10.75H6.5C6.08605 10.7498 5.7501 10.414 5.75 10C5.75009 9.58601 6.08604 9.25023 6.5 9.25H13.1895L10.7197 6.78027C10.4272 6.48743 10.4272 6.01254 10.7197 5.71973Z\" />\n</svg>`;\n", "export const messages = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18 4C19.6569 4 21 5.34315 21 7V15C21 16.6569 19.6569 18 18 18H14.2217L12.7471 19.6592C12.3493 20.1065 11.6507 20.1065 11.2529 19.6592L9.77832 18H6C4.34315 18 3 16.6569 3 15V7C3 5.34315 4.34315 4 6 4H18ZM6 5.5C5.22334 5.5 4.58461 6.09028 4.50781 6.84668L4.5 7V15C4.5 15.8284 5.17157 16.5 6 16.5H10.4521L10.8994 17.0039L12 18.2422L13.1006 17.0039L13.5479 16.5H18C18.7767 16.5 19.4154 15.9097 19.4922 15.1533L19.5 15V7C19.5 6.22334 18.9097 5.58461 18.1533 5.50781L18 5.5H6ZM8 10C8.55228 10 9 10.4477 9 11C9 11.5523 8.55228 12 8 12C7.44772 12 7 11.5523 7 11C7 10.4477 7.44772 10 8 10ZM12 10C12.5523 10 13 10.4477 13 11C13 11.5523 12.5523 12 12 12C11.4477 12 11 11.5523 11 11C11 10.4477 11.4477 10 12 10ZM16 10C16.5523 10 17 10.4477 17 11C17 11.5523 16.5523 12 16 12C15.4477 12 15 11.5523 15 11C15 10.4477 15.4477 10 16 10Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const minus = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19.75 12C19.75 12.4142 19.4142 12.75 19 12.75L5 12.75C4.58579 12.75 4.25 12.4142 4.25 12C4.25 11.5858 4.58579 11.25 5 11.25L19 11.25C19.4142 11.25 19.75 11.5858 19.75 12Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const mobile = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7 3.5H17C17.8284 3.5 18.5 4.17157 18.5 5V19C18.5 19.8284 17.8284 20.5 17 20.5H7C6.17157 20.5 5.5 19.8284 5.5 19V5C5.5 4.17157 6.17157 3.5 7 3.5ZM4 5C4 3.34315 5.34315 2 7 2H17C18.6569 2 20 3.34315 20 5V19C20 20.6569 18.6569 22 17 22H7C5.34315 22 4 20.6569 4 19V5ZM9.75 17.5C9.33579 17.5 9 17.8358 9 18.25C9 18.6642 9.33579 19 9.75 19H14.25C14.6642 19 15 18.6642 15 18.25C15 17.8358 14.6642 17.5 14.25 17.5H9.75Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const moveToParent = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.70415 8L8.97393 10.1799L7.89227 11.2615L4.24806 8.83205C3.65433 8.43623 3.65433 7.56377 4.24806 7.16795L11.4453 2.3698C11.7812 2.14587 12.2188 2.14587 12.5547 2.3698L19.7519 7.16795C20.3456 7.56377 20.3456 8.43623 19.7519 8.83205L16.1592 11.2272L15.0775 10.1455L18.2958 8L12 3.80278L5.70415 8ZM10.6287 11.3536L10.671 11.3112L11.5126 10.4697L12.0429 9.93934L12.5732 10.4697L13.3804 11.2769L13.4571 11.3536L13.8535 11.75L14.4621 12.3586L15.5732 13.4697C15.8661 13.7626 15.8661 14.2374 15.5732 14.5303C15.2803 14.8232 14.8054 14.8232 14.5125 14.5303L13.1893 13.2071L12.7929 12.8107L12.7929 21C12.7929 21.4142 12.4571 21.75 12.0429 21.75C11.6287 21.75 11.2929 21.4142 11.2929 21V13.5286L11.2929 13.5286V13.5178V12.8107L10.8621 13.2414L9.57321 14.5303C9.28032 14.8232 8.80545 14.8232 8.51255 14.5303C8.21966 14.2374 8.21966 13.7626 8.51255 13.4697L9.58932 12.3929L10.2322 11.75L10.6287 11.3536Z\" fill=\"currentColor\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.70415 8L8.97393 10.1799L7.89227 11.2615L4.24806 8.83205C3.65433 8.43623 3.65433 7.56377 4.24806 7.16795L11.4453 2.3698C11.7812 2.14587 12.2188 2.14587 12.5547 2.3698L19.7519 7.16795C20.3456 7.56377 20.3456 8.43623 19.7519 8.83205L16.1592 11.2272L15.0775 10.1455L18.2958 8L12 3.80278L5.70415 8ZM10.6287 11.3536L10.671 11.3112L11.5126 10.4697L12.0429 9.93934L12.5732 10.4697L13.3804 11.2769L13.4571 11.3536L13.8535 11.75L14.4621 12.3586L15.5732 13.4697C15.8661 13.7626 15.8661 14.2374 15.5732 14.5303C15.2803 14.8232 14.8054 14.8232 14.5125 14.5303L13.1893 13.2071L12.7929 12.8107L12.7929 21C12.7929 21.4142 12.4571 21.75 12.0429 21.75C11.6287 21.75 11.2929 21.4142 11.2929 21V13.5286L11.2929 13.5286V13.5178V12.8107L10.8621 13.2414L9.57321 14.5303C9.28032 14.8232 8.80545 14.8232 8.51255 14.5303C8.21966 14.2374 8.21966 13.7626 8.51255 13.4697L9.58932 12.3929L10.2322 11.75L10.6287 11.3536Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const multiMessage = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M13.5 2.5C14.6046 2.5 15.5 3.39543 15.5 4.5V7.5C15.5 8.53565 14.7128 9.387 13.7041 9.48926L13.5 9.5H12.75V11.25H16.5C17.4665 11.25 18.25 12.0335 18.25 13V14H19L19.2041 14.0107C20.2128 14.113 21 14.9643 21 16V19L20.9893 19.2041C20.8938 20.1457 20.1457 20.8938 19.2041 20.9893L19 21H16L15.7959 20.9893C14.8543 20.8938 14.1062 20.1457 14.0107 19.2041L14 19V16C14 14.8954 14.8954 14 16 14H16.75V13C16.75 12.8619 16.6381 12.75 16.5 12.75H7.5C7.36193 12.75 7.25 12.8619 7.25 13V14H8C9.10457 14 10 14.8954 10 16V19C10 20.0357 9.21278 20.887 8.2041 20.9893L8 21H5L4.7959 20.9893C3.85435 20.8938 3.1062 20.1457 3.01074 19.2041L3 19V16C3 14.8954 3.89543 14 5 14H5.75V13C5.75 12.0335 6.5335 11.25 7.5 11.25H11.25V9.5H10.5L10.2959 9.48926C9.35435 9.3938 8.6062 8.64565 8.51074 7.7041L8.5 7.5V4.5C8.5 3.39543 9.39543 2.5 10.5 2.5H13.5ZM16 15.5C15.7239 15.5 15.5 15.7239 15.5 16V19C15.5 19.2761 15.7239 19.5 16 19.5H19C19.2761 19.5 19.5 19.2761 19.5 19V16C19.5 15.7239 19.2761 15.5 19 15.5H16ZM5 15.5C4.72386 15.5 4.5 15.7239 4.5 16V19C4.5 19.2761 4.72386 19.5 5 19.5H8C8.27614 19.5 8.5 19.2761 8.5 19V16C8.5 15.7239 8.27614 15.5 8 15.5H5ZM10.5 4C10.2239 4 10 4.22386 10 4.5V7.5C10 7.77614 10.2239 8 10.5 8H13.5C13.7761 8 14 7.77614 14 7.5V4.5C14 4.22386 13.7761 4 13.5 4H10.5Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const newTab = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M9 3C9.41421 3 9.75 3.33579 9.75 3.75C9.75 4.16421 9.41421 4.5 9 4.5H6.75C5.50736 4.5 4.5 5.50736 4.5 6.75V17.25C4.5 18.4926 5.50736 19.5 6.75 19.5H17.25C18.4926 19.5 19.5 18.4926 19.5 17.25V15C19.5 14.5858 19.8358 14.25 20.25 14.25C20.6642 14.25 21 14.5858 21 15V17.25C21 19.3211 19.3211 21 17.25 21H6.75C4.67893 21 3 19.3211 3 17.25V6.75C3 4.67893 4.67893 3 6.75 3H9ZM21 9C21 9.41421 20.6642 9.75 20.25 9.75C19.8358 9.75 19.5 9.41421 19.5 9V5.56055L11.7803 13.2803C11.4874 13.5732 11.0126 13.5732 10.7197 13.2803C10.4268 12.9874 10.4268 12.5126 10.7197 12.2197L18.4395 4.5H15C14.5858 4.5 14.25 4.16421 14.25 3.75C14.25 3.33579 14.5858 3 15 3H21V9Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const numberedList = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_8391_1172)\">\n<path d=\"M11 6H20\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M11 12H20\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M12 18H20\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M4 16C4 15.4696 4.21071 14.9609 4.58579 14.5858C4.96086 14.2107 5.46957 14 6 14C6.53043 14 7.03914 14.2107 7.41421 14.5858C7.78929 14.9609 8 15.4696 8 16C8 16.591 7.5 17 7 17.5L4 20H8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M6 10V4L4 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_8391_1172\">\n<rect width=\"24\" height=\"24\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n`;\n", "export const pause = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M9 3C9.9665 3 10.75 3.7835 10.75 4.75V19.25C10.75 20.2165 9.9665 21 9 21H5.75C4.7835 21 4 20.2165 4 19.25V4.75C4 3.7835 4.7835 3 5.75 3H9ZM18.25 3C19.2165 3 20 3.7835 20 4.75V19.25C20 20.2165 19.2165 21 18.25 21H15C14.0335 21 13.25 20.2165 13.25 19.25V4.75C13.25 3.7835 14.0335 3 15 3H18.25ZM5.75 4.5C5.61193 4.5 5.5 4.61193 5.5 4.75V19.25C5.5 19.3881 5.61193 19.5 5.75 19.5H9C9.13807 19.5 9.25 19.3881 9.25 19.25V4.75C9.25 4.61193 9.13807 4.5 9 4.5H5.75ZM15 4.5C14.8619 4.5 14.75 4.61193 14.75 4.75V19.25C14.75 19.3881 14.8619 19.5 15 19.5H18.25C18.3881 19.5 18.5 19.3881 18.5 19.25V4.75C18.5 4.61193 18.3881 4.5 18.25 4.5H15Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const pauseFilled = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M9 3.75C9.55228 3.75 10 4.19772 10 4.75V19.25C10 19.8023 9.55228 20.25 9 20.25H5.75C5.19772 20.25 4.75 19.8023 4.75 19.25V4.75C4.75 4.19772 5.19772 3.75 5.75 3.75H9ZM18.25 3.75C18.8023 3.75 19.25 4.19772 19.25 4.75V19.25C19.25 19.8023 18.8023 20.25 18.25 20.25H15C14.4477 20.25 14 19.8023 14 19.25V4.75C14 4.19772 14.4477 3.75 15 3.75H18.25Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const pieChart = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2 12C2 7.16208 5.43552 3.12658 10 2.20004V3.73663C6.27063 4.63603 3.5 7.99446 3.5 12C3.5 16.6944 7.30558 20.5 12 20.5C16.0055 20.5 19.364 17.7294 20.2634 14H21.8C20.8734 18.5645 16.8379 22 12 22C6.47715 22 2 17.5228 2 12ZM21.9045 10.6123C21.9675 11.0658 22 11.5291 22 12H20.5H13.5H12V10.5V3.5V2C12.5098 2 13.0107 2.03815 13.5 2.11175C13.5037 2.11231 13.5075 2.11288 13.5112 2.11344C13.6755 2.13834 13.8384 2.16724 14 2.20004C14.136 2.22765 14.2711 2.25802 14.405 2.2911C16.1178 2.71396 17.6566 3.57818 18.894 4.75619C19.019 4.87521 19.141 4.99743 19.2597 5.12274C20.4296 6.35725 21.288 7.88995 21.7089 9.59497C21.742 9.72894 21.7724 9.86397 21.8 10C21.8335 10.1652 21.863 10.3319 21.8882 10.5C21.8939 10.5374 21.8993 10.5748 21.9045 10.6123ZM13.5 3.63193V10.5H20.3681C20.0716 8.83475 19.2902 7.33731 18.1751 6.15887C18.1737 6.15742 18.1723 6.15596 18.1709 6.15451L18.1709 6.15448C18.1649 6.14814 18.1589 6.14182 18.1529 6.13551C18.0576 6.03553 17.9598 5.93787 17.8598 5.84262C16.6785 4.7181 15.174 3.93 13.5 3.63193Z\" fill=\"currentColor\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2 12C2 7.16208 5.43552 3.12658 10 2.20004V3.73663C6.27063 4.63603 3.5 7.99446 3.5 12C3.5 16.6944 7.30558 20.5 12 20.5C16.0055 20.5 19.364 17.7294 20.2634 14H21.8C20.8734 18.5645 16.8379 22 12 22C6.47715 22 2 17.5228 2 12ZM21.9045 10.6123C21.9675 11.0658 22 11.5291 22 12H20.5H13.5H12V10.5V3.5V2C12.5098 2 13.0107 2.03815 13.5 2.11175C13.5037 2.11231 13.5075 2.11288 13.5112 2.11344C13.6755 2.13834 13.8384 2.16724 14 2.20004C14.136 2.22765 14.2711 2.25802 14.405 2.2911C16.1178 2.71396 17.6566 3.57818 18.894 4.75619C19.019 4.87521 19.141 4.99743 19.2597 5.12274C20.4296 6.35725 21.288 7.88995 21.7089 9.59497C21.742 9.72894 21.7724 9.86397 21.8 10C21.8335 10.1652 21.863 10.3319 21.8882 10.5C21.8939 10.5374 21.8993 10.5748 21.9045 10.6123ZM13.5 3.63193V10.5H20.3681C20.0716 8.83475 19.2902 7.33731 18.1751 6.15887C18.1737 6.15742 18.1723 6.15596 18.1709 6.15451L18.1709 6.15448C18.1649 6.14814 18.1589 6.14182 18.1529 6.13551C18.0576 6.03553 17.9598 5.93787 17.8598 5.84262C16.6785 4.7181 15.174 3.93 13.5 3.63193Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const plus = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.75 5C12.75 4.58579 12.4142 4.25 12 4.25C11.5858 4.25 11.25 4.58579 11.25 5V11.25H5C4.58579 11.25 4.25 11.5858 4.25 12C4.25 12.4142 4.58579 12.75 5 12.75H11.25V19C11.25 19.4142 11.5858 19.75 12 19.75C12.4142 19.75 12.75 19.4142 12.75 19V12.75H19C19.4142 12.75 19.75 12.4142 19.75 12C19.75 11.5858 19.4142 11.25 19 11.25H12.75V5Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const preview = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 5C15.8485 5.00004 19.1894 8.39903 20.8613 10.46C21.5982 11.3684 21.5982 12.6316 20.8613 13.54L20.5283 13.9414C18.7696 16.013 15.6078 19 12 19C8.3922 19 5.23043 16.013 3.47167 13.9414L3.13866 13.54C2.40178 12.6316 2.40178 11.3684 3.13866 10.46C4.81055 8.39901 8.1515 5 12 5ZM12 6.5C10.5157 6.5 9.02571 7.16106 7.63476 8.1709C6.25469 9.17288 5.09478 10.4301 4.3037 11.4053C4.01375 11.7629 4.01375 12.2371 4.3037 12.5947C5.09478 13.5699 6.25469 14.8271 7.63476 15.8291C9.02571 16.8389 10.5157 17.5 12 17.5C13.4843 17.5 14.9743 16.8389 16.3652 15.8291C17.7453 14.8271 18.9052 13.5699 19.6963 12.5947C19.9862 12.2371 19.9862 11.7629 19.6963 11.4053C18.9052 10.4301 17.7453 9.17288 16.3652 8.1709C14.9743 7.16106 13.4843 6.50002 12 6.5ZM12 9C13.6568 9.00004 15 10.3432 15 12C15 13.6568 13.6568 15 12 15C10.3431 15 8.99999 13.6569 8.99999 12C8.99999 10.3431 10.3431 9 12 9ZM12 10.5C11.1716 10.5 10.5 11.1716 10.5 12C10.5 12.8284 11.1716 13.5 12 13.5C12.8284 13.5 13.5 12.8284 13.5 12C13.5 11.1716 12.8284 10.5 12 10.5Z\" fill=\"currentColor\"/>\n<path d=\"M12 5C15.8485 5.00004 19.1895 8.39903 20.8613 10.46C21.5982 11.3684 21.5982 12.6316 20.8613 13.54L20.5283 13.9414C18.7696 16.013 15.6078 19 12 19C8.39221 19 5.23044 16.013 3.47167 13.9414L3.13866 13.54C2.40178 12.6316 2.40178 11.3684 3.13866 10.46C4.81056 8.39901 8.1515 5 12 5ZM12 6.5C10.5157 6.5 9.02572 7.16106 7.63476 8.1709C6.2547 9.17288 5.09478 10.4301 4.3037 11.4053C4.01375 11.7629 4.01375 12.2371 4.3037 12.5947C5.09478 13.5699 6.2547 14.8271 7.63476 15.8291C9.02572 16.8389 10.5157 17.5 12 17.5C13.4843 17.5 14.9743 16.8389 16.3652 15.8291C17.7453 14.8271 18.9052 13.5699 19.6963 12.5947C19.9862 12.2371 19.9862 11.7629 19.6963 11.4053C18.9052 10.4301 17.7453 9.17288 16.3652 8.1709C14.9743 7.16106 13.4843 6.50002 12 6.5ZM12 9C13.6568 9.00004 15 10.3432 15 12C15 13.6568 13.6568 15 12 15C10.3431 15 9 13.6569 9 12C9 10.3431 10.3431 9 12 9ZM12 10.5C11.1716 10.5 10.5 11.1716 10.5 12C10.5 12.8284 11.1716 13.5 12 13.5C12.8284 13.5 13.5 12.8284 13.5 12C13.5 11.1716 12.8284 10.5 12 10.5Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const radioChecked = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM12 3.5C7.30558 3.5 3.5 7.30558 3.5 12C3.5 16.6944 7.30558 20.5 12 20.5C16.6944 20.5 20.5 16.6944 20.5 12C20.5 7.30558 16.6944 3.5 12 3.5ZM12 6C15.3137 6 18 8.68629 18 12C18 15.3137 15.3137 18 12 18C8.68629 18 6 15.3137 6 12C6 8.68629 8.68629 6 12 6Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const redo = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13.822 7.29142C12.8907 6.83217 11.8442 6.65939 10.8147 6.79492C9.78527 6.93045 8.81911 7.36821 8.03843 8.05285C7.25776 8.73748 6.69763 9.63823 6.42889 10.6412C6.16014 11.6442 6.19485 12.7043 6.52862 13.6876C6.86238 14.6708 7.48022 15.533 8.304 16.1651C9.12778 16.7972 10.1205 17.1709 11.1566 17.2388C12.1928 17.3067 13.2258 17.0658 14.125 16.5466C14.4837 16.3395 14.9424 16.4624 15.1495 16.8212C15.3566 17.1799 15.2337 17.6386 14.875 17.8457C13.7188 18.5132 12.3907 18.8229 11.0585 18.7356C9.72636 18.6482 8.45001 18.1679 7.39086 17.3551C6.33171 16.5424 5.53735 15.4339 5.10822 14.1697C4.67909 12.9055 4.63447 11.5425 4.98 10.253C5.32553 8.96344 6.04569 7.80533 7.04941 6.92509C8.05314 6.04484 9.29534 5.48201 10.6189 5.30775C11.9425 5.1335 13.2881 5.35565 14.4854 5.94611C15.2577 6.32696 15.946 6.84999 16.5164 7.48357L18.1464 5.85355C18.4614 5.53857 19 5.76165 19 6.20711V10.5C19 10.7761 18.7761 11 18.5 11H14.2071C13.7616 11 13.5386 10.4614 13.8535 10.1464L15.4539 8.54611C15.0002 8.02679 14.4464 7.59935 13.822 7.29142Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const rename = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M13 4.5H6C5.17157 4.5 4.5 5.17157 4.5 6V18C4.5 18.8284 5.17157 19.5 6 19.5H18C18.8284 19.5 19.5 18.8284 19.5 18V11H21V18L20.9961 18.1543C20.9184 19.6883 19.6883 20.9184 18.1543 20.9961L18 21H6L5.8457 20.9961C4.31166 20.9184 3.08163 19.6883 3.00391 18.1543L3 18V6C3 4.39489 4.26056 3.08421 5.8457 3.00391L6 3H13V4.5ZM17.2246 3.69043C18.145 2.77005 19.6381 2.77024 20.5586 3.69043C21.4787 4.61088 21.4788 6.10307 20.5586 7.02344L13.3447 14.2373L13.2305 14.3428C12.9549 14.5784 12.6193 14.7359 12.2598 14.7959L9.58203 15.2412L9.51953 15.248C9.20881 15.261 8.95413 14.9831 9.00684 14.666L9.45312 11.9893C9.5131 11.6296 9.66962 11.2932 9.90527 11.0176L10.0117 10.9033L17.2246 3.69043ZM11.0723 11.9639C11.0171 12.0191 10.9756 12.0868 10.9512 12.1602L10.9326 12.2354L10.7158 13.5312L12.0127 13.3154L12.0879 13.2969C12.1614 13.2725 12.2289 13.231 12.2842 13.1758L12.5479 12.9111C11.9992 12.6828 11.5629 12.2491 11.335 11.7002L11.0723 11.9639ZM12.5146 10.5205L12.6992 11.0752L12.7324 11.1562C12.8191 11.3408 12.978 11.4835 13.1738 11.5488L13.7266 11.7324L17.9668 7.49316L16.7539 6.28027L12.5146 10.5205ZM19.498 4.75098C19.1842 4.43739 18.6871 4.41768 18.3506 4.69238L18.2852 4.75098L17.8145 5.21973L19.0273 6.43262L19.498 5.96289L19.5566 5.89746C19.8127 5.58326 19.8129 5.12953 19.5566 4.81543L19.498 4.75098Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const section = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7 3.25C4.92893 3.25 3.25 4.92893 3.25 7V17C3.25 19.0711 4.92893 20.75 7 20.75H17C19.0711 20.75 20.75 19.0711 20.75 17V7C20.75 4.92893 19.0711 3.25 17 3.25H7ZM4.75 7C4.75 5.75736 5.75736 4.75 7 4.75H17C18.2426 4.75 19.25 5.75736 19.25 7V11.25L4.75 11.25V7ZM4.75 12.75V17C4.75 18.2426 5.75736 19.25 7 19.25H17C18.2426 19.25 19.25 18.2426 19.25 17V12.75L4.75 12.75Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const send = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.30012 11.25L5.70479 7.09745L16.0861 11.25H8.30012ZM8.30012 12.75L5.70479 16.9025L16.0861 12.75H8.30012ZM19.6788 11.0715L4.84125 5.13649C3.94341 4.77735 3.10935 5.77494 3.62186 6.59496L7 12L3.62186 17.405C3.10935 18.225 3.94341 19.2226 4.84125 18.8635L19.6788 12.9285C20.517 12.5932 20.517 11.4068 19.6788 11.0715Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const share = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18 3C19.6569 3 21 4.34315 21 6C21 7.65685 19.6569 9 18 9C17.0969 9 16.2892 8.59911 15.7393 7.96777L9.84863 10.9121C9.94625 11.2581 10 11.6228 10 12C10 12.3766 9.94592 12.7405 9.84863 13.0859L15.7383 16.0303C16.2883 15.3993 17.0972 15 18 15C19.6569 15 21 16.3431 21 18C21 19.6569 19.6569 21 18 21C16.3431 21 15 19.6569 15 18C15 17.8198 15.0664 17.3711 15.0664 17.3711L9.17773 14.4268C8.44679 15.3825 7.2961 16 6 16C3.79086 16 2 14.2091 2 12C2 9.79086 3.79086 8 6 8C7.29555 8 8.44674 8.6163 9.17773 9.57129L15.0664 6.62793C15.0664 6.62793 15 6.17319 15 6C15 4.34315 16.3431 3 18 3ZM18 16.5C17.1716 16.5 16.5 17.1716 16.5 18C16.5 18.8284 17.1716 19.5 18 19.5C18.8284 19.5 19.5 18.8284 19.5 18C19.5 17.1716 18.8284 16.5 18 16.5ZM6 9.5C4.61929 9.5 3.5 10.6193 3.5 12C3.5 13.3807 4.61929 14.5 6 14.5C7.38071 14.5 8.5 13.3807 8.5 12C8.5 10.6193 7.38071 9.5 6 9.5ZM18 4.5C17.1716 4.5 16.5 5.17157 16.5 6C16.5 6.82843 17.1716 7.5 18 7.5C18.8284 7.5 19.5 6.82843 19.5 6C19.5 5.17157 18.8284 4.5 18 4.5Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const sidebarCollapsed = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M17 3.25C19.0711 3.25 20.75 4.92893 20.75 7V17C20.75 19.0711 19.0711 20.75 17 20.75H7C4.92893 20.75 3.25 19.0711 3.25 17V7C3.25 4.92893 4.92893 3.25 7 3.25H17ZM10 19.25H17C18.2426 19.25 19.25 18.2426 19.25 17V7C19.25 5.75736 18.2426 4.75 17 4.75H10V19.25Z\"/>\n</svg>`;\n", "export const sidebarExpanded = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M17 3.25C19.0711 3.25 20.75 4.92893 20.75 7V17C20.75 19.0711 19.0711 20.75 17 20.75H7C4.92893 20.75 3.25 19.0711 3.25 17V7C3.25 4.92893 4.92893 3.25 7 3.25H17ZM10.75 19.25H17C18.2426 19.25 19.25 18.2426 19.25 17V7C19.25 5.75736 18.2426 4.75 17 4.75H10.75V19.25ZM7 4.75C5.75736 4.75 4.75 5.75736 4.75 7V17C4.75 18.2426 5.75736 19.25 7 19.25H9.25V4.75H7Z\"/>\n</svg>`;\n", "export const stop = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M19.25 7C19.25 5.75736 18.2426 4.75 17 4.75H7C5.75736 4.75 4.75 5.75736 4.75 7V17C4.75 18.2426 5.75736 19.25 7 19.25H17C18.2426 19.25 19.25 18.2426 19.25 17V7ZM20.75 17C20.75 19.0711 19.0711 20.75 17 20.75H7C4.92893 20.75 3.25 19.0711 3.25 17V7C3.25 4.92893 4.92893 3.25 7 3.25H17C19.0711 3.25 20.75 4.92893 20.75 7V17Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const stopFilled = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M4 7C4 5.34315 5.34315 4 7 4H17C18.6569 4 20 5.34315 20 7V17C20 18.6569 18.6569 20 17 20H7C5.34315 20 4 18.6569 4 17V7Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const strikethrough = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5 12H19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M16 6.50002C15.7732 6.05998 15.2536 5.67167 14.5265 5.39902C13.7994 5.12638 12.9084 4.98565 12 5.00002H11C10.0717 5.00002 9.1815 5.36877 8.52513 6.02515C7.86875 6.68153 7.5 7.57177 7.5 8.50002C7.5 9.42828 7.86875 10.3185 8.52513 10.9749C9.1815 11.6313 10.0717 12 11 12H13C13.9283 12 14.8185 12.3688 15.4749 13.0252C16.1313 13.6815 16.5 14.5718 16.5 15.5C16.5 16.4283 16.1313 17.3185 15.4749 17.9749C14.8185 18.6313 13.9283 19 13 19H11.5C10.5916 19.0144 9.70056 18.8737 8.9735 18.601C8.24644 18.3284 7.72675 17.9401 7.5 17.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n`;\n", "export const tag = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5 3.25C4.0335 3.25 3.25 4.0335 3.25 5V12.5858C3.25 13.0499 3.43437 13.495 3.76256 13.8232L9.34835 19.409C10.8128 20.8735 13.1872 20.8735 14.6516 19.409L19.409 14.6517C20.8735 13.1872 20.8735 10.8128 19.409 9.34835L13.8232 3.76256C13.495 3.43437 13.0499 3.25 12.5858 3.25H5ZM4.75 5C4.75 4.86193 4.86193 4.75 5 4.75H12.5858C12.6521 4.75 12.7157 4.77634 12.7626 4.82322L18.3484 10.409C19.227 11.2877 19.227 12.7123 18.3483 13.591L13.591 18.3484C12.7123 19.227 11.2877 19.227 10.409 18.3484L4.82322 12.7626C4.77634 12.7157 4.75 12.6521 4.75 12.5858V5ZM9 11C10.1046 11 11 10.1046 11 9C11 7.89543 10.1046 7 9 7C7.89543 7 7 7.89543 7 9C7 10.1046 7.89543 11 9 11Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const target = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 20.5C16.6944 20.5 20.5 16.6944 20.5 12C20.5 7.30558 16.6944 3.5 12 3.5C7.30558 3.5 3.5 7.30558 3.5 12C3.5 16.6944 7.30558 20.5 12 20.5ZM12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM14 12C14 13.1046 13.1046 14 12 14C10.8954 14 10 13.1046 10 12C10 10.8954 10.8954 10 12 10C13.1046 10 14 10.8954 14 12ZM16.5 12C16.5 14.4853 14.4853 16.5 12 16.5C9.51472 16.5 7.5 14.4853 7.5 12C7.5 9.51472 9.51472 7.5 12 7.5C14.4853 7.5 16.5 9.51472 16.5 12ZM18 12C18 15.3137 15.3137 18 12 18C8.68629 18 6 15.3137 6 12C6 8.68629 8.68629 6 12 6C15.3137 6 18 8.68629 18 12Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const templates = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M17 3.25C19.0711 3.25 20.75 4.92893 20.75 7V17C20.75 19.0711 19.0711 20.75 17 20.75H7C4.92893 20.75 3.25 19.0711 3.25 17V7C3.25 4.92893 4.92893 3.25 7 3.25H17ZM12.75 19.25H17C18.2426 19.25 19.25 18.2426 19.25 17V12.75H12.75V19.25ZM7 4.75C5.75736 4.75 4.75 5.75736 4.75 7V17C4.75 18.2426 5.75736 19.25 7 19.25H11.25V4.75H7ZM12.75 11.25H19.25V7C19.25 5.75736 18.2426 4.75 17 4.75H12.75V11.25Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const text = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.5 4.5V6.25C4.5 6.66421 4.16421 7 3.75 7C3.33579 7 3 6.66421 3 6.25V4C3 3.44772 3.44772 3 4 3H20C20.5523 3 21 3.44772 21 4V6.25C21 6.66421 20.6642 7 20.25 7C19.8358 7 19.5 6.66421 19.5 6.25V4.5H12.75V19.5H15C15.4142 19.5 15.75 19.8358 15.75 20.25C15.75 20.6642 15.4142 21 15 21H9C8.58579 21 8.25 20.6642 8.25 20.25C8.25 19.8358 8.58579 19.5 9 19.5H11.25V4.5H4.5Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const textInput = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M18.1543 3.00391C19.7394 3.08421 21 4.39489 21 6V18L20.9961 18.1543C20.9184 19.6883 19.6883 20.9184 18.1543 20.9961L18 21H6L5.8457 20.9961C4.31166 20.9184 3.08163 19.6883 3.00391 18.1543L3 18V6C3 4.39489 4.26056 3.08421 5.8457 3.00391L6 3H18L18.1543 3.00391ZM6 4.5C5.17157 4.5 4.5 5.17157 4.5 6V18C4.5 18.8284 5.17157 19.5 6 19.5H18C18.8284 19.5 19.5 18.8284 19.5 18V6C19.5 5.17157 18.8284 4.5 18 4.5H6ZM16 12.75C16.4142 12.75 16.75 13.0858 16.75 13.5C16.75 13.9142 16.4142 14.25 16 14.25H8C7.58579 14.25 7.25 13.9142 7.25 13.5C7.25 13.0858 7.58579 12.75 8 12.75H16ZM16 9.25C16.4142 9.25 16.75 9.58579 16.75 10C16.75 10.4142 16.4142 10.75 16 10.75H8C7.58579 10.75 7.25 10.4142 7.25 10C7.25 9.58579 7.58579 9.25 8 9.25H16Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const tick = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M19.4802 6.48017C19.773 6.77303 19.773 7.24793 19.4802 7.54083L9.53028 17.4907C9.33798 17.6829 9.06797 17.7456 8.8218 17.6855C8.6985 17.6641 8.57871 17.6154 8.47653 17.5322L8.41921 17.4804L4.46936 13.5305C4.17668 13.2377 4.17677 12.7627 4.46936 12.4699C4.76221 12.177 5.23712 12.1771 5.53002 12.4699L8.97993 15.9198L18.4195 6.48017C18.7124 6.18738 19.1873 6.18731 19.4802 6.48017Z\" fill=\"currentColor\"/>\n</svg>\n\n`;\n", "export const ticket = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M20 17.5V19H4V17.5H20ZM20.5 17V15.1631C19.3175 14.6013 18.5 13.3962 18.5 12C18.5 10.6037 19.3173 9.3976 20.5 8.83594V7C20.5 6.75829 20.3286 6.55629 20.1006 6.50977L20 6.5H4C3.72386 6.5 3.5 6.72386 3.5 7V8.83594C4.68266 9.3976 5.5 10.6037 5.5 12C5.5 13.3962 4.68245 14.6013 3.5 15.1631V17C3.5 17.2761 3.72386 17.5 4 17.5V19C2.89543 19 2 18.1046 2 17V14C3.10457 14 4 13.1046 4 12C4 10.8954 3.10457 10 2 10V7C2 5.89543 2.89543 5 4 5H20C21.1046 5 22 5.89543 22 7V10C20.8954 10 20 10.8954 20 12C20 13.1046 20.8954 14 22 14V17C22 18.1046 21.1046 19 20 19V17.5C20.2761 17.5 20.5 17.2761 20.5 17Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const treeGraph = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.5 7C15.5 8.933 13.933 10.5 12 10.5C10.067 10.5 8.5 8.933 8.5 7C8.5 5.067 10.067 3.5 12 3.5C13.933 3.5 15.5 5.067 15.5 7ZM12.75 11.9441C13.4486 11.839 14.0999 11.5894 14.6724 11.2267L17.1981 15.6012C16.4705 16.1486 16 17.0194 16 18C16 19.6568 17.3431 21 19 21C20.6568 21 22 19.6568 22 18C22 16.3431 20.6568 15 19 15C18.8638 15 18.7298 15.0091 18.5984 15.0266L15.844 10.256C15.8374 10.2445 15.8305 10.2332 15.8234 10.2222C16.5575 9.35201 17 8.22768 17 7C17 4.23858 14.7614 2 12 2C9.23858 2 7 4.23858 7 7C7 8.22743 7.44229 9.35157 8.17618 10.2217L5.40203 15.0267C5.27053 15.0091 5.13632 15 5 15C3.34315 15 2 16.3431 2 18C2 19.6568 3.34315 21 5 21C6.65686 21 8 19.6568 8 18C8 17.0195 7.52964 16.1489 6.80224 15.6015L9.32791 11.2269C9.90035 11.5895 10.5515 11.8391 11.25 11.9441V15.0945C9.95608 15.4275 9 16.6021 9 18C9 19.6569 10.3431 21 12 21C13.6569 21 15 19.6569 15 18C15 16.6021 14.0439 15.4275 12.75 15.0945V11.9441ZM19 19.5C19.8284 19.5 20.5 18.8284 20.5 18C20.5 17.1716 19.8284 16.5 19 16.5C18.1716 16.5 17.5 17.1716 17.5 18C17.5 18.8284 18.1716 19.5 19 19.5ZM6.5 18C6.5 18.8284 5.82843 19.5 5 19.5C4.17157 19.5 3.5 18.8284 3.5 18C3.5 17.1716 4.17157 16.5 5 16.5C5.82843 16.5 6.5 17.1716 6.5 18ZM10.5 18C10.5 17.1716 11.1716 16.5 12 16.5C12.8284 16.5 13.5 17.1716 13.5 18C13.5 18.8284 12.8284 19.5 12 19.5C11.1716 19.5 10.5 18.8284 10.5 18Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const undo = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.67797 7.29142C10.6092 6.83217 11.6558 6.65939 12.6852 6.79492C13.7147 6.93045 14.6809 7.36821 15.4616 8.05285C16.2422 8.73748 16.8024 9.63823 17.0711 10.6412C17.3398 11.6442 17.3051 12.7043 16.9714 13.6876C16.6376 14.6708 16.0198 15.533 15.196 16.1651C14.3722 16.7972 13.3795 17.1709 12.3434 17.2388C11.3072 17.3067 10.2742 17.0658 9.37498 16.5466C9.01626 16.3395 8.55757 16.4624 8.35047 16.8212C8.14336 17.1799 8.26626 17.6386 8.62498 17.8457C9.78115 18.5132 11.1093 18.8229 12.4415 18.7356C13.7736 18.6482 15.05 18.1679 16.1091 17.3551C17.1683 16.5424 17.9626 15.4339 18.3918 14.1697C18.8209 12.9055 18.8655 11.5425 18.52 10.253C18.1745 8.96344 17.4543 7.80533 16.4506 6.92509C15.4468 6.04484 14.2046 5.48201 12.881 5.30775C11.5574 5.1335 10.2119 5.35565 9.01454 5.94611C8.24227 6.32696 7.55402 6.84999 6.98357 7.48357L5.35355 5.85355C5.03857 5.53857 4.5 5.76165 4.5 6.20711V10.5C4.5 10.7761 4.72386 11 5 11H9.29289C9.73835 11 9.96143 10.4614 9.64645 10.1464L8.04611 8.54611C8.49976 8.02679 9.05355 7.59935 9.67797 7.29142Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const underline = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M4.75005 19.2498H19.25\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M16.25 4.75024V11.0002C16.25 13.3475 14.3473 15.2502 12 15.2502C9.65284 15.2502 7.75005 13.3475 7.75005 11.0002V4.75024\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n`;\n", "export const unlink = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M6.4696 11.4697C6.76239 11.1769 7.23723 11.1771 7.53015 11.4697C7.82305 11.7626 7.82305 12.2373 7.53015 12.5302L5.53013 14.5302C4.44241 15.618 4.44263 17.3819 5.53013 18.4697C6.61796 19.5575 8.38179 19.5575 9.46962 18.4697L11.4696 16.4697C11.7624 16.1769 12.2373 16.1771 12.5302 16.4697C12.8231 16.7626 12.8231 17.2374 12.5302 17.5303L10.5302 19.5303C8.85656 21.2039 6.1432 21.2039 4.46958 19.5303C2.79628 17.8566 2.79607 15.1432 4.46958 13.4697L6.4696 11.4697ZM13.6249 14.8144C13.9837 14.6073 14.4422 14.7311 14.6494 15.0898L16.6494 18.5537C16.8565 18.9124 16.7337 19.371 16.375 19.5781C16.0163 19.785 15.5576 19.6623 15.3505 19.3037L13.3505 15.8398C13.1434 15.4811 13.2662 15.0215 13.6249 14.8144ZM14.8144 13.6249C15.0215 13.2663 15.4811 13.1434 15.8398 13.3505L19.3037 15.3505C19.6623 15.5576 19.785 16.0163 19.5781 16.375C19.371 16.7337 18.9124 16.8565 18.5537 16.6494L15.0898 14.6494C14.7311 14.4423 14.6073 13.9837 14.8144 13.6249ZM13.4697 4.46959C15.1432 2.79608 17.8566 2.79629 19.5303 4.46959C21.2039 6.14321 21.2039 8.85657 19.5303 10.5302L17.5302 12.5302C17.2373 12.8231 16.7626 12.8231 16.4697 12.5302C16.1771 12.2373 16.1769 11.7624 16.4697 11.4697L18.4697 9.46964C19.5575 8.38181 19.5575 6.61798 18.4697 5.53015C17.3819 4.44264 15.6179 4.44243 14.5302 5.53015L12.5302 7.53017C12.2373 7.82306 11.7625 7.82306 11.4696 7.53017C11.1771 7.23725 11.1769 6.7624 11.4696 6.46961L13.4697 4.46959ZM4.4227 7.62489C4.62991 7.26644 5.08852 7.14344 5.44713 7.35048L8.91102 9.3505C9.2697 9.55758 9.39243 10.0162 9.18544 10.3749C8.97833 10.7336 8.51974 10.8564 8.16102 10.6493L4.69712 8.64932C4.33846 8.44219 4.21561 7.98359 4.4227 7.62489ZM7.62488 4.42272C7.98358 4.21562 8.44217 4.33847 8.6493 4.69713L10.6493 8.16103C10.8564 8.51975 10.7336 8.97835 10.3749 9.18546C10.0162 9.39244 9.55756 9.26971 9.35048 8.91104L7.35046 5.44714C7.14342 5.08853 7.26642 4.62992 7.62488 4.42272Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const user = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 2C17.5228 2 22 6.47715 22 12C22 15.2098 20.4857 18.0638 18.1348 19.8936C18.0344 20.055 17.8763 20.1738 17.6875 20.2227C16.0725 21.3418 14.1137 22 12 22C9.88604 22 7.92664 21.3421 6.31152 20.2227C6.12294 20.1736 5.96441 20.055 5.86426 19.8936C3.51367 18.0638 2 15.2095 2 12C2 6.47715 6.47715 2 12 2ZM11.25 15.5C9.1884 15.5 7.49093 17.0597 7.27344 19.0635C8.62515 19.9698 10.2503 20.5 12 20.5C13.7494 20.5 15.374 19.9695 16.7256 19.0635C16.508 17.0598 14.8116 15.5 12.75 15.5H11.25ZM12 3.5C7.30558 3.5 3.5 7.30558 3.5 12C3.5 14.3333 4.44073 16.4464 5.96289 17.9824C6.62169 15.683 8.73895 14 11.25 14H12.75C15.2609 14 17.3772 15.6832 18.0361 17.9824C19.5586 16.4464 20.5 14.3335 20.5 12C20.5 7.30558 16.6944 3.5 12 3.5ZM12 5.25C14.0711 5.25 15.75 6.92893 15.75 9C15.75 11.0711 14.0711 12.75 12 12.75C9.92893 12.75 8.25 11.0711 8.25 9C8.25 6.92893 9.92893 5.25 12 5.25ZM12 6.75C10.7574 6.75 9.75 7.75736 9.75 9C9.75 10.2426 10.7574 11.25 12 11.25C13.2426 11.25 14.25 10.2426 14.25 9C14.25 7.75736 13.2426 6.75 12 6.75Z\" />\n</svg>`;\n", "export const vertical = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M15.5001 4.70703C15.9142 4.70707 16.25 5.04287 16.2501 5.45703V17.1465L17.4698 15.9268C17.7627 15.6339 18.2375 15.6339 18.5303 15.9268C18.8232 16.2196 18.8232 16.6944 18.5303 16.9873L15.5001 20.0176L12.4698 16.9873C12.1769 16.6944 12.1769 16.2197 12.4698 15.9268C12.7627 15.6339 13.2375 15.6339 13.5303 15.9268L14.7501 17.1465V5.45703C14.7501 5.04285 15.0859 4.70703 15.5001 4.70703ZM11.5303 7.42676C11.8232 7.71963 11.8232 8.19441 11.5303 8.4873C11.2374 8.7802 10.7627 8.78019 10.4698 8.4873L9.25006 7.26758V18.957C9.25006 19.3712 8.91424 19.707 8.50006 19.707C8.08585 19.707 7.75006 19.3712 7.75006 18.957V7.26758L6.53033 8.4873C6.23744 8.7802 5.76268 8.78019 5.46979 8.4873C5.17689 8.19441 5.17689 7.71965 5.46979 7.42676L8.50006 4.39648L11.5303 7.42676Z\" fill=\"currentColor\"/>\n<path d=\"M15.5 4.70703C15.9142 4.70707 16.25 5.04287 16.25 5.45703V17.1465L17.4697 15.9268C17.7626 15.6339 18.2374 15.6339 18.5303 15.9268C18.8231 16.2196 18.8231 16.6944 18.5303 16.9873L15.5 20.0176L12.4697 16.9873C12.1768 16.6944 12.1768 16.2197 12.4697 15.9268C12.7626 15.6339 13.2374 15.6339 13.5303 15.9268L14.75 17.1465V5.45703C14.75 5.04285 15.0858 4.70703 15.5 4.70703ZM11.5303 7.42676C11.8231 7.71963 11.8231 8.19441 11.5303 8.4873C11.2374 8.7802 10.7626 8.78019 10.4697 8.4873L9.25001 7.26758V18.957C9.25001 19.3712 8.91419 19.707 8.50001 19.707C8.08579 19.707 7.75001 19.3712 7.75001 18.957V7.26758L6.53028 8.4873C6.23739 8.7802 5.76262 8.78019 5.46973 8.4873C5.17684 8.19441 5.17684 7.71965 5.46973 7.42676L8.50001 4.39648L11.5303 7.42676Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "export const wallet = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M14.2275 3.02681C16.5581 2.53634 18.7497 4.3152 18.75 6.69674V7.09518C20.0437 7.42823 20.9998 8.60187 21 9.99948V16.9995C21 18.6046 19.7394 19.9153 18.1543 19.9956L18 19.9995H6C4.39489 19.9995 3.08421 18.7389 3.00391 17.1538L3 16.9995V8.43405C3.00022 6.66092 4.2424 5.12941 5.97754 4.76412L14.2275 3.02681ZM6 8.49948C5.17173 8.49948 4.50026 9.17127 4.5 9.99948V16.9995C4.5 17.8279 5.17157 18.4995 6 18.4995H18C18.8284 18.4995 19.5 17.8279 19.5 16.9995V9.99948C19.4997 9.17127 18.8283 8.49948 18 8.49948H6ZM16.5 11.9995C17.3283 11.9995 17.9997 12.6713 18 13.4995C18 14.3279 17.3284 14.9995 16.5 14.9995C15.6716 14.9995 15 14.3279 15 13.4995C15.0003 12.6713 15.6717 11.9995 16.5 11.9995ZM17.25 6.69674C17.2497 5.26791 15.9344 4.20028 14.5361 4.49459L6.28613 6.2319C5.67607 6.36042 5.16896 6.73055 4.85254 7.22799C5.20609 7.08147 5.59347 6.99948 6 6.99948H17.25V6.69674Z\" />\n</svg>`;\n", "export const warning = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20.5 12C20.5 16.6944 16.6944 20.5 12 20.5C7.30558 20.5 3.5 16.6944 3.5 12C3.5 7.30558 7.30558 3.5 12 3.5C16.6944 3.5 20.5 7.30558 20.5 12ZM22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM11.25 7.75C11.25 7.33579 11.5858 7 12 7C12.4142 7 12.75 7.33579 12.75 7.75V13.25C12.75 13.6642 12.4142 14 12 14C11.5858 14 11.25 13.6642 11.25 13.25V7.75ZM12.75 15.75C12.75 16.1642 12.4142 16.5 12 16.5C11.5858 16.5 11.25 16.1642 11.25 15.75C11.25 15.3358 11.5858 15 12 15C12.4142 15 12.75 15.3358 12.75 15.75Z\" fill=\"currentColor\"/>\n</svg>\n`;\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {Disconnectable, Part} from './lit-html.js';\n\nexport {\n AttributePart,\n BooleanAttributePart,\n ChildPart,\n ElementPart,\n EventPart,\n Part,\n PropertyPart,\n} from './lit-html.js';\n\nexport interface DirectiveClass {\n new (part: PartInfo): Directive;\n}\n\n/**\n * This utility type extracts the signature of a directive class's render()\n * method so we can use it for the type of the generated directive function.\n */\nexport type DirectiveParameters<C extends Directive> = Parameters<C['render']>;\n\n/**\n * A generated directive function doesn't evaluate the directive, but just\n * returns a DirectiveResult object that captures the arguments.\n */\nexport interface DirectiveResult<C extends DirectiveClass = DirectiveClass> {\n /**\n * This property needs to remain unminified.\n * @internal\n */\n ['_$litDirective$']: C;\n /** @internal */\n values: DirectiveParameters<InstanceType<C>>;\n}\n\nexport const PartType = {\n ATTRIBUTE: 1,\n CHILD: 2,\n PROPERTY: 3,\n BOOLEAN_ATTRIBUTE: 4,\n EVENT: 5,\n ELEMENT: 6,\n} as const;\n\nexport type PartType = (typeof PartType)[keyof typeof PartType];\n\nexport interface ChildPartInfo {\n readonly type: typeof PartType.CHILD;\n}\n\nexport interface AttributePartInfo {\n readonly type:\n | typeof PartType.ATTRIBUTE\n | typeof PartType.PROPERTY\n | typeof PartType.BOOLEAN_ATTRIBUTE\n | typeof PartType.EVENT;\n readonly strings?: ReadonlyArray<string>;\n readonly name: string;\n readonly tagName: string;\n}\n\nexport interface ElementPartInfo {\n readonly type: typeof PartType.ELEMENT;\n}\n\n/**\n * Information about the part a directive is bound to.\n *\n * This is useful for checking that a directive is attached to a valid part,\n * such as with directive that can only be used on attribute bindings.\n */\nexport type PartInfo = ChildPartInfo | AttributePartInfo | ElementPartInfo;\n\n/**\n * Creates a user-facing directive function from a Directive class. This\n * function has the same parameters as the directive's render() method.\n */\nexport const directive =\n <C extends DirectiveClass>(c: C) =>\n (...values: DirectiveParameters<InstanceType<C>>): DirectiveResult<C> => ({\n // This property needs to remain unminified.\n ['_$litDirective$']: c,\n values,\n });\n\n/**\n * Base class for creating custom directives. Users should extend this class,\n * implement `render` and/or `update`, and then pass their subclass to\n * `directive`.\n */\nexport abstract class Directive implements Disconnectable {\n //@internal\n __part!: Part;\n //@internal\n __attributeIndex: number | undefined;\n //@internal\n __directive?: Directive;\n\n //@internal\n _$parent!: Disconnectable;\n\n // These will only exist on the AsyncDirective subclass\n //@internal\n _$disconnectableChildren?: Set<Disconnectable>;\n // This property needs to remain unminified.\n //@internal\n ['_$notifyDirectiveConnectionChanged']?(isConnected: boolean): void;\n\n constructor(_partInfo: PartInfo) {}\n\n // See comment in Disconnectable interface for why this is a getter\n get _$isConnected() {\n return this._$parent._$isConnected;\n }\n\n /** @internal */\n _$initialize(\n part: Part,\n parent: Disconnectable,\n attributeIndex: number | undefined\n ) {\n this.__part = part;\n this._$parent = parent;\n this.__attributeIndex = attributeIndex;\n }\n /** @internal */\n _$resolve(part: Part, props: Array<unknown>): unknown {\n return this.update(part, props);\n }\n\n abstract render(...props: Array<unknown>): unknown;\n\n update(_part: Part, props: Array<unknown>): unknown {\n return this.render(...props);\n }\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {nothing, TemplateResult, noChange} from '../lit-html.js';\nimport {directive, Directive, PartInfo, PartType} from '../directive.js';\n\nconst HTML_RESULT = 1;\n\nexport class UnsafeHTMLDirective extends Directive {\n static directiveName = 'unsafeHTML';\n static resultType = HTML_RESULT;\n\n private _value: unknown = nothing;\n private _templateResult?: TemplateResult;\n\n constructor(partInfo: PartInfo) {\n super(partInfo);\n if (partInfo.type !== PartType.CHILD) {\n throw new Error(\n `${\n (this.constructor as typeof UnsafeHTMLDirective).directiveName\n }() can only be used in child bindings`\n );\n }\n }\n\n render(value: string | typeof nothing | typeof noChange | undefined | null) {\n if (value === nothing || value == null) {\n this._templateResult = undefined;\n return (this._value = value);\n }\n if (value === noChange) {\n return value;\n }\n if (typeof value != 'string') {\n throw new Error(\n `${\n (this.constructor as typeof UnsafeHTMLDirective).directiveName\n }() called with a non-string value`\n );\n }\n if (value === this._value) {\n return this._templateResult;\n }\n this._value = value;\n const strings = [value] as unknown as TemplateStringsArray;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (strings as any).raw = strings;\n // WARNING: impersonating a TemplateResult like this is extremely\n // dangerous. Third-party directives should not do this.\n return (this._templateResult = {\n // Cast to a known set of integers that satisfy ResultType so that we\n // don't have to export ResultType and possibly encourage this pattern.\n // This property needs to remain unminified.\n ['_$litType$']: (this.constructor as typeof UnsafeHTMLDirective)\n .resultType as 1 | 2,\n strings,\n values: [],\n });\n }\n}\n\n/**\n * Renders the result as HTML, rather than text.\n *\n * The values `undefined`, `null`, and `nothing`, will all result in no content\n * (empty string) being rendered.\n *\n * Note, this is unsafe to use with any user-provided input that hasn't been\n * sanitized or escaped, as it may lead to cross-site-scripting\n * vulnerabilities.\n */\nexport const unsafeHTML = directive(UnsafeHTMLDirective);\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {directive} from '../directive.js';\nimport {UnsafeHTMLDirective} from './unsafe-html.js';\n\nconst SVG_RESULT = 2;\n\nclass UnsafeSVGDirective extends UnsafeHTMLDirective {\n static override directiveName = 'unsafeSVG';\n static override resultType = SVG_RESULT;\n}\n\n/**\n * Renders the result as SVG, rather than text.\n *\n * The values `undefined`, `null`, and `nothing`, will all result in no content\n * (empty string) being rendered.\n *\n * Note, this is unsafe to use with any user-provided input that hasn't been\n * sanitized or escaped, as it may lead to cross-site-scripting\n * vulnerabilities.\n */\nexport const unsafeSVG = directive(UnsafeSVGDirective);\n\n/**\n * The type of the class that powers this directive. Necessary for naming the\n * directive's return type.\n */\nexport type {UnsafeSVGDirective};\n", "/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {AttributePart, noChange} from '../lit-html.js';\nimport {\n directive,\n Directive,\n DirectiveParameters,\n PartInfo,\n PartType,\n} from '../directive.js';\n\n/**\n * A key-value set of CSS properties and values.\n *\n * The key should be either a valid CSS property name string, like\n * `'background-color'`, or a valid JavaScript camel case property name\n * for CSSStyleDeclaration like `backgroundColor`.\n */\nexport interface StyleInfo {\n [name: string]: string | number | undefined | null;\n}\n\nconst important = 'important';\n// The leading space is important\nconst importantFlag = ' !' + important;\n// How many characters to remove from a value, as a negative number\nconst flagTrim = 0 - importantFlag.length;\n\nclass StyleMapDirective extends Directive {\n private _previousStyleProperties?: Set<string>;\n\n constructor(partInfo: PartInfo) {\n super(partInfo);\n if (\n partInfo.type !== PartType.ATTRIBUTE ||\n partInfo.name !== 'style' ||\n (partInfo.strings?.length as number) > 2\n ) {\n throw new Error(\n 'The `styleMap` directive must be used in the `style` attribute ' +\n 'and must be the only part in the attribute.'\n );\n }\n }\n\n render(styleInfo: Readonly<StyleInfo>) {\n return Object.keys(styleInfo).reduce((style, prop) => {\n const value = styleInfo[prop];\n if (value == null) {\n return style;\n }\n // Convert property names from camel-case to dash-case, i.e.:\n // `backgroundColor` -> `background-color`\n // Vendor-prefixed names need an extra `-` appended to front:\n // `webkitAppearance` -> `-webkit-appearance`\n // Exception is any property name containing a dash, including\n // custom properties; we assume these are already dash-cased i.e.:\n // `--my-button-color` --> `--my-button-color`\n prop = prop.includes('-')\n ? prop\n : prop\n .replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g, '-$&')\n .toLowerCase();\n return style + `${prop}:${value};`;\n }, '');\n }\n\n override update(part: AttributePart, [styleInfo]: DirectiveParameters<this>) {\n const {style} = part.element as HTMLElement;\n\n if (this._previousStyleProperties === undefined) {\n this._previousStyleProperties = new Set(Object.keys(styleInfo));\n return this.render(styleInfo);\n }\n\n // Remove old properties that no longer exist in styleInfo\n for (const name of this._previousStyleProperties) {\n // If the name isn't in styleInfo or it's null/undefined\n if (styleInfo[name] == null) {\n this._previousStyleProperties!.delete(name);\n if (name.includes('-')) {\n style.removeProperty(name);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (style as any)[name] = null;\n }\n }\n }\n\n // Add or update properties\n for (const name in styleInfo) {\n const value = styleInfo[name];\n if (value != null) {\n this._previousStyleProperties.add(name);\n const isImportant =\n typeof value === 'string' && value.endsWith(importantFlag);\n if (name.includes('-') || isImportant) {\n style.setProperty(\n name,\n isImportant\n ? (value as string).slice(0, flagTrim)\n : (value as string),\n isImportant ? important : ''\n );\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (style as any)[name] = value;\n }\n }\n }\n return noChange;\n }\n}\n\n/**\n * A directive that applies CSS properties to an element.\n *\n * `styleMap` can only be used in the `style` attribute and must be the only\n * expression in the attribute. It takes the property names in the\n * {@link StyleInfo styleInfo} object and adds the properties to the inline\n * style of the element.\n *\n * Property names with dashes (`-`) are assumed to be valid CSS\n * property names and set on the element's style object using `setProperty()`.\n * Names without dashes are assumed to be camelCased JavaScript property names\n * and set on the element's style object using property assignment, allowing the\n * style object to translate JavaScript-style names to CSS property names.\n *\n * For example `styleMap({backgroundColor: 'red', 'border-top': '5px', '--size':\n * '0'})` sets the `background-color`, `border-top` and `--size` properties.\n *\n * @param styleInfo\n * @see {@link https://lit.dev/docs/templates/directives/#stylemap styleMap code samples on Lit.dev}\n */\nexport const styleMap = directive(StyleMapDirective);\n\n/**\n * The type of the class that powers this directive. Necessary for naming the\n * directive's return type.\n */\nexport type {StyleMapDirective};\n", "import { html, LitElement, css } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport * as Icons from '@triptease/icons';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { styleMap } from 'lit/directives/style-map.js';\n\nconst iconRegistry = Icons as Record<string, string>;\n\nexport class TtIcon extends LitElement {\n static styles = css`\n svg {\n width: 100%;\n height: 100%;\n display: block;\n }\n `;\n\n @property({ type: String })\n public name: string | undefined;\n\n @property({ type: String })\n public label: string | undefined;\n\n @property({ type: String })\n public color: string | undefined;\n\n @property({ type: Number })\n public size: 16 | 24 | 32 = 24;\n\n render() {\n if (!this.name) {\n throw new Error('name attribute is required');\n }\n\n const svg = iconRegistry[this.name];\n\n if (!svg) {\n throw new Error(`Icon ${this.name} not found`);\n }\n\n const sizeInPx = `${this.size}px`;\n\n return html`<span\n role=${this.label ? 'img' : 'presentation'}\n aria-label=\"${this.label}\"\n style=${styleMap({\n color: this.color,\n width: sizeInPx,\n height: sizeInPx,\n display: 'inline-block',\n lineHeight: 0,\n verticalAlign: 'middle',\n })}\n >${unsafeSVG(svg)}</span\n >`;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["global", "globalThis", "supportsAdoptingStyleSheets", "ShadowRoot", "ShadyCSS", "nativeShadow", "Document", "prototype", "CSSStyleSheet", "constructionToken", "Symbol", "cssTagCache", "WeakMap", "CSSResult", "cssText", "strings", "safeToken", "this", "Error", "_strings", "styleSheet", "_styleSheet", "cacheable", "length", "get", "replaceSync", "set", "toString", "unsafeCSS", "value", "String", "css", "values", "reduce", "acc", "v", "idx", "adoptStyles", "renderRoot", "styles", "adoptedStyleSheets", "map", "s", "style", "document", "createElement", "nonce", "setAttribute", "textContent", "appendChild", "getCompatibleStyle", "sheet", "rule", "cssRules", "is", "defineProperty", "getOwnPropertyDescriptor", "getOwnPropertyNames", "getOwnPropertySymbols", "getPrototypeOf", "Object", "global", "globalThis", "trustedTypes", "emptyStringForBooleanAttribute", "emptyScript", "polyfillSupport", "reactiveElementPolyfillSupport", "JSCompiler_renameProperty", "prop", "_obj", "defaultConverter", "value", "type", "Boolean", "Array", "JSON", "stringify", "fromValue", "Number", "parse", "e", "notEqual", "old", "defaultPropertyDeclaration", "attribute", "String", "converter", "reflect", "useDefault", "hasChanged", "Symbol", "metadata", "litPropertyMetadata", "WeakMap", "ReactiveElement", "HTMLElement", "initializer", "this", "__prepare", "_initializers", "push", "observedAttributes", "finalize", "__attributeToPropertyMap", "keys", "name", "options", "state", "prototype", "hasOwnProperty", "create", "wrapped", "elementProperties", "set", "noAccessor", "key", "descriptor", "getPropertyDescriptor", "get", "v", "oldValue", "call", "requestUpdate", "configurable", "enumerable", "superCtor", "Map", "finalized", "props", "properties", "propKeys", "p", "createProperty", "attr", "__attributeNameForProperty", "elementStyles", "finalizeStyles", "styles", "isArray", "Set", "flat", "Infinity", "reverse", "s", "unshift", "getCompatibleStyle", "toLowerCase", "constructor", "super", "__instanceProperties", "isUpdatePending", "hasUpdated", "__reflectingProperty", "__initialize", "__updatePromise", "Promise", "res", "enableUpdating", "_$changedProperties", "__saveInstanceProperties", "forEach", "i", "controller", "__controllers", "add", "renderRoot", "isConnected", "hostConnected", "delete", "instanceProperties", "size", "createRenderRoot", "shadowRoot", "attachShadow", "shadowRootOptions", "adoptStyles", "connectedCallback", "c", "_requestedUpdate", "disconnectedCallback", "hostDisconnected", "_old", "_$attributeToProperty", "attrValue", "toAttribute", "removeAttribute", "setAttribute", "ctor", "propName", "getPropertyOptions", "fromAttribute", "__defaultValues", "newValue", "hasAttribute", "_$changeProperty", "__enqueueUpdate", "initializeValue", "has", "__reflectingProperties", "reject", "result", "scheduleUpdate", "performUpdate", "shouldUpdate", "changedProperties", "willUpdate", "hostUpdate", "update", "__markUpdated", "_$didUpdate", "_changedProperties", "hostUpdated", "firstUpdated", "updated", "updateComplete", "getUpdateComplete", "__propertyToAttribute", "mode", "reactiveElementVersions", "global", "globalThis", "trustedTypes", "policy", "createPolicy", "createHTML", "s", "boundAttributeSuffix", "marker", "Math", "random", "toFixed", "slice", "markerMatch", "nodeMarker", "d", "document", "createMarker", "createComment", "isPrimitive", "value", "isArray", "Array", "isIterable", "Symbol", "iterator", "SPACE_CHAR", "textEndRegex", "commentEndRegex", "comment2EndRegex", "tagEndRegex", "RegExp", "singleQuoteAttrEndRegex", "doubleQuoteAttrEndRegex", "rawTextElement", "tag", "type", "strings", "values", "_$litType$", "html", "svg", "mathml", "noChange", "for", "nothing", "templateCache", "WeakMap", "walker", "createTreeWalker", "trustFromTemplateString", "tsa", "stringFromTSA", "hasOwnProperty", "Error", "getTemplateHtml", "l", "length", "attrNames", "rawTextEndRegex", "regex", "i", "attrName", "match", "attrNameEndIndex", "lastIndex", "exec", "test", "end", "startsWith", "push", "Template", "constructor", "options", "node", "this", "parts", "nodeIndex", "attrNameIndex", "partCount", "el", "createElement", "currentNode", "content", "wrapper", "firstChild", "replaceWith", "childNodes", "nextNode", "nodeType", "hasAttributes", "name", "getAttributeNames", "endsWith", "realName", "statics", "getAttribute", "split", "m", "index", "ctor", "PropertyPart", "BooleanAttributePart", "EventPart", "AttributePart", "removeAttribute", "tagName", "textContent", "emptyScript", "append", "data", "indexOf", "_options", "innerHTML", "resolveDirective", "part", "parent", "attributeIndex", "currentDirective", "__directives", "__directive", "nextDirectiveConstructor", "_$initialize", "_$resolve", "TemplateInstance", "template", "_$parts", "_$disconnectableChildren", "_$template", "_$parent", "parentNode", "_$isConnected", "fragment", "creationScope", "importNode", "partIndex", "templatePart", "ChildPart", "nextSibling", "ElementPart", "_$setValue", "__isConnected", "startNode", "endNode", "_$committedValue", "_$startNode", "_$endNode", "isConnected", "directiveParent", "_$clear", "_commitText", "_commitTemplateResult", "_commitNode", "_commitIterable", "insertBefore", "_insert", "createTextNode", "result", "_$getTemplate", "h", "_update", "instance", "_clone", "get", "set", "itemParts", "itemPart", "item", "start", "from", "_$notifyConnectionChanged", "n", "remove", "element", "fill", "String", "valueIndex", "noCommit", "change", "v", "_commitValue", "setAttribute", "toggleAttribute", "super", "newListener", "oldListener", "shouldRemoveListener", "capture", "once", "passive", "shouldAddListener", "removeEventListener", "addEventListener", "event", "call", "host", "handleEvent", "polyfillSupport", "global", "litHtmlPolyfillSupport", "Template", "ChildPart", "litHtmlVersions", "push", "render", "value", "container", "options", "partOwnerNode", "renderBefore", "part", "endNode", "insertBefore", "createMarker", "_$setValue", "global", "globalThis", "LitElement", "ReactiveElement", "constructor", "this", "renderOptions", "host", "__childPart", "createRenderRoot", "renderRoot", "super", "renderBefore", "firstChild", "changedProperties", "value", "render", "hasUpdated", "isConnected", "update", "connectedCallback", "setConnected", "disconnectedCallback", "noChange", "litElementHydrateSupport", "polyfillSupport", "litElementPolyfillSupport", "global", "litElementVersions", "push", "defaultPropertyDeclaration", "attribute", "type", "String", "converter", "defaultConverter", "reflect", "hasChanged", "notEqual", "standardProperty", "options", "target", "context", "kind", "metadata", "properties", "globalThis", "litPropertyMetadata", "get", "set", "Map", "Object", "create", "wrapped", "name", "v", "oldValue", "call", "this", "requestUpdate", "_$changeProperty", "value", "Error", "property", "protoOrTarget", "nameOrContext", "proto", "hasOwnProperty", "constructor", "createProperty", "getOwnPropertyDescriptor", "PartType", "ATTRIBUTE", "CHILD", "PROPERTY", "BOOLEAN_ATTRIBUTE", "EVENT", "ELEMENT", "directive", "c", "values", "_$litDirective$", "Directive", "_partInfo", "_$isConnected", "this", "_$parent", "part", "parent", "attributeIndex", "__part", "__attributeIndex", "props", "update", "_part", "render", "UnsafeHTMLDirective", "Directive", "partInfo", "super", "this", "_value", "nothing", "type", "PartType", "CHILD", "Error", "constructor", "directiveName", "value", "_templateResult", "noChange", "strings", "raw", "_$litType$", "resultType", "values", "unsafeHTML", "directive", "UnsafeSVGDirective", "UnsafeHTMLDirective", "directiveName", "resultType", "unsafeSVG", "directive", "important", "importantFlag", "styleMap", "directive", "Directive", "partInfo", "super", "type", "PartType", "ATTRIBUTE", "name", "strings", "length", "Error", "styleInfo", "Object", "keys", "reduce", "style", "prop", "value", "includes", "replace", "toLowerCase", "part", "element", "this", "_previousStyleProperties", "Set", "render", "delete", "removeProperty", "add", "isImportant", "endsWith", "setProperty", "slice", "noChange", "i", "o", "n"]
|
|
7
7
|
}
|