{"version":3,"sources":["webpack:///./node_modules/@motionone/dom/dist/animate/utils/controls.es.js","webpack:///./node_modules/@lit/reactive-element/css-tag.js","webpack:///./node_modules/@lit/reactive-element/reactive-element.js","webpack:///./node_modules/@motionone/utils/dist/progress.es.js","webpack:///./node_modules/dijkstrajs/dijkstra.js","webpack:///./node_modules/@lit/reactive-element/decorators/property.js","webpack:///./node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","webpack:///./node_modules/@lit/reactive-element/decorators/query.js","webpack:///./node_modules/@motionone/utils/dist/mix.es.js","webpack:///./node_modules/@motionone/utils/dist/offset.es.js","webpack:///./node_modules/@motionone/utils/dist/easing.es.js","webpack:///./node_modules/@motionone/utils/dist/wrap.es.js","webpack:///./node_modules/@motionone/utils/dist/interpolate.es.js","webpack:///./node_modules/@motionone/animation/dist/Animation.es.js","webpack:///./node_modules/@lit/reactive-element/decorators/base.js","webpack:///./node_modules/@motionone/utils/dist/time.es.js","webpack:///./node_modules/@motionone/utils/dist/is-function.es.js","webpack:///./node_modules/@motionone/easing/dist/cubic-bezier.es.js","webpack:///./node_modules/@motionone/animation/dist/utils/easing.es.js","webpack:///./node_modules/@motionone/easing/dist/steps.es.js","webpack:///./node_modules/@motionone/utils/dist/is-cubic-bezier.es.js","webpack:///./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","webpack:///../src/utils/ThemeUtil.ts","webpack:///../src/components/wcm-button/index.ts","webpack:///../src/components/wcm-button-big/index.ts","webpack:///../src/components/wcm-info-footer/index.ts","webpack:///../src/utils/SvgUtil.ts","webpack:///../src/components/wcm-modal-backcard/index.ts","webpack:///../src/components/wcm-modal-content/index.ts","webpack:///../src/components/wcm-modal-footer/index.ts","webpack:///../src/components/wcm-modal-header/index.ts","webpack:///../src/utils/UiUtil.ts","webpack:///../src/components/wcm-modal-router/index.ts","webpack:///../src/components/wcm-modal-toast/index.ts","webpack:///../src/utils/QrCode.ts","webpack:///../src/components/wcm-qrcode/index.ts","webpack:///../src/components/wcm-search-input/index.ts","webpack:///../src/components/wcm-spinner/index.ts","webpack:///../src/components/wcm-text/index.ts","webpack:///../src/components/wcm-wallet-button/index.ts","webpack:///../src/components/wcm-wallet-image/index.ts","webpack:///../src/contexts/wcm-explorer-context.ts","webpack:///../src/contexts/wcm-theme-context.ts","webpack:///../src/partials/wcm-android-wallet-selection/index.ts","webpack:///../src/partials/wcm-connector-waiting/index.ts","webpack:///../src/utils/DataUtil.ts","webpack:///../src/utils/TemplateUtil.ts","webpack:///../src/partials/wcm-desktop-wallet-selection/index.ts","webpack:///../src/partials/wcm-legal-notice/index.ts","webpack:///../src/partials/wcm-mobile-wallet-selection/index.ts","webpack:///../src/partials/wcm-modal/index.ts","webpack:///../src/partials/wcm-platform-selection/index.ts","webpack:///../src/partials/wcm-view-all-wallets-button/index.ts","webpack:///../src/partials/wcm-walletconnect-qr/index.ts","webpack:///../src/views/wcm-connect-wallet-view/index.ts","webpack:///../src/views/wcm-desktop-connecting-view/index.ts","webpack:///../src/views/wcm-install-wallet-view/index.ts","webpack:///../src/views/wcm-mobile-connecting-view/index.ts","webpack:///../src/views/wcm-mobile-qr-connecting-view/index.ts","webpack:///../src/views/wcm-qrcode-view/index.ts","webpack:///../src/views/wcm-wallet-explorer-view/index.ts","webpack:///../src/views/wcm-web-connecting-view/index.ts","webpack:///./node_modules/@lit/reactive-element/decorators/event-options.js","webpack:///./node_modules/encode-utf8/index.js","webpack:///./node_modules/@motionone/utils/dist/is-number.es.js","webpack:///./node_modules/@motionone/utils/dist/defaults.es.js","webpack:///./node_modules/@lit/reactive-element/decorators/query-all.js","webpack:///./node_modules/@motionone/dom/dist/animate/utils/stop-animation.es.js","webpack:///./node_modules/@motionone/utils/dist/clamp.es.js","webpack:///./node_modules/@lit/reactive-element/decorators/query-assigned-nodes.js","webpack:///./node_modules/@motionone/types/dist/MotionValue.es.js","webpack:///./node_modules/@motionone/dom/dist/animate/data.es.js","webpack:///./node_modules/@motionone/dom/dist/animate/utils/transforms.es.js","webpack:///./node_modules/@motionone/utils/dist/array.es.js","webpack:///./node_modules/@motionone/dom/dist/animate/utils/css-var.es.js","webpack:///./node_modules/@motionone/dom/dist/animate/utils/feature-detection.es.js","webpack:///./node_modules/@motionone/dom/dist/animate/utils/easing.es.js","webpack:///./node_modules/@motionone/dom/dist/animate/utils/get-style-name.es.js","webpack:///./node_modules/@motionone/dom/dist/animate/style.es.js","webpack:///./node_modules/@motionone/dom/dist/animate/animate-style.es.js","webpack:///./node_modules/@motionone/dom/dist/animate/utils/keyframes.es.js","webpack:///./node_modules/@motionone/dom/dist/animate/utils/get-unit.es.js","webpack:///./node_modules/@motionone/utils/dist/is-string.es.js","webpack:///./node_modules/@motionone/dom/dist/animate/utils/options.es.js","webpack:///./node_modules/@motionone/dom/dist/utils/stagger.es.js","webpack:///./node_modules/@motionone/dom/dist/animate/index.es.js","webpack:///./node_modules/@motionone/dom/dist/animate/create-animate.es.js","webpack:///./node_modules/@motionone/dom/dist/utils/resolve-elements.es.js","webpack:///./node_modules/@motionone/utils/dist/noop.es.js","webpack:///./node_modules/@lit/reactive-element/decorators/custom-element.js","webpack:///./node_modules/@lit/reactive-element/decorators/state.js","webpack:///./node_modules/@motionone/utils/dist/is-easing-list.es.js","webpack:///./node_modules/@motionone/utils/dist/is-easing-generator.es.js","webpack:///./node_modules/@lit/reactive-element/decorators/query-async.js"],"names":["i","createAnimation","factory","withControls","animationFactory","options","duration","Proxy","animations","map","filter","Boolean","controls","get","target","key","activeAnimation","state","getActiveAnimation","s","finished","Promise","all","selectFinished","catch","forEach","animation","callback","set","value","ms","length","window","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","Symbol","n","WeakMap","o","constructor","t","e","this","_$cssResult$","Error","cssText","styleSheet","replaceSync","toString","reduce","c","cssRules","r","trustedTypes","h","emptyScript","reactiveElementPolyfillSupport","toAttribute","Object","Array","JSON","stringify","fromAttribute","Number","parse","a","l","attribute","type","String","converter","reflect","hasChanged","d","HTMLElement","super","_$Ei","Map","isUpdatePending","hasUpdated","_$El","u","static","finalize","push","observedAttributes","elementProperties","_$Ep","_$Ev","noAccessor","hasOwnProperty","getPropertyDescriptor","defineProperty","requestUpdate","configurable","enumerable","getPrototypeOf","properties","getOwnPropertyNames","getOwnPropertySymbols","createProperty","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","_$E_","enableUpdating","_$AL","_$Eg","addController","_$ES","renderRoot","isConnected","hostConnected","call","removeController","splice","indexOf","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","adoptedStyleSheets","document","createElement","litNonce","setAttribute","textContent","appendChild","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$EO","removeAttribute","getPropertyOptions","has","_$EC","_$Ej","async","reject","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","update","_$Ek","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","mode","ReactiveElement","reactiveElementVersions","progress","min","max","dijkstra","single_source_shortest_paths","graph","predecessors","costs","closest","v","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","open","PriorityQueue","make","empty","pop","cost","msg","join","extract_shortest_path_from_predecessor_list","nodes","find_path","opts","T","queue","sorter","default_sorter","b","item","sort","shift","module","exports","kind","descriptor","finisher","placement","originalKey","initializer","HTMLSlotElement","assignedElements","assignedNodes","nodeType","Node","ELEMENT_NODE","slot","selector","querySelector","matches","mix","fillOffset","offset","remaining","offsetProgress","getEasingForSegment","easing","rangeSize","wrap","interpolate","output","input","defaultOffset","remainder","progressInRange","segmentEasing","keyframes","initialDuration","delay","endDelay","repeat","direction","startTime","rate","cancelTimestamp","totalDuration","playState","resolve","custom","updateDuration","interpolate$1","tick","timestamp","_a","pauseTime","Math","currentIteration","floor","iterationProgress","iterationIsOdd","p","latest","isAnimationFinished","frameRequestId","requestAnimationFrame","play","now","performance","pause","finish","stop","cancelAnimationFrame","cancel","commitStyles","currentTime","playbackRate","time","seconds","milliseconds","isFunction","calcBezier","a1","a2","binarySubdivide","x","lowerBound","upperBound","mX1","mX2","currentX","currentT","abs","cubicBezier","mY1","mY2","getTForX","aX","namedEasings","ease","functionArgsRegex","getEasingFunction","definition","startsWith","args","exec","argsArray","split","steps","expanded","rounded","ceil","parseFloat","trim","isCubicBezier","_taggedTemplateLiteral","strings","raw","slice","freeze","defineProperties","writable","g","ThemeUtil","getPreset","setTheme","root","themeVariables","ThemeCtrl","variables","__spreadValues","themeModeColors","light","foreground","1","2","3","background","overlay","dark","themeMode","themeModeVariables","entries","val","style","setProperty","globalCss","css","at","WcmButton","disabled","iconLeft","iconRight","onClick","variant","classes","textColor","html","classMap","LitElement","__decorateClass","property","customElement","WcmButtonBig","WcmInfoFooter","SvgUtil","CROSS_ICON","svg","WALLET_CONNECT_LOGO","WALLET_CONNECT_ICON","WALLET_CONNECT_ICON_COLORED","BACK_ICON","COPY_ICON","RETRY_ICON","DESKTOP_ICON","MOBILE_ICON","ARROW_DOWN_ICON","ARROW_UP_RIGHT_ICON","ARROW_RIGHT_ICON","QRCODE_ICON","SCAN_ICON","CHECKMARK_ICON","SEARCH_ICON","WALLET_PLACEHOLDER","GLOBE_ICON","pt","WcmModalBackcard","ModalCtrl","close","WcmModalContent","WcmModalFooter","WcmModalHeader","title","onAction","actionIcon","border","RouterCtrl","goBack","backBtn","history","content","backBtnTemplate","actionBtnTemplate","UiUtil","MOBILE_BREAKPOINT","WCM_RECENT_WALLET_DATA","EXPLORER_WALLET_URL","getShadowRootElement","el","getWalletIcon","id","image_id","walletImages","ConfigCtrl","ExplorerCtrl","getWalletImageUrl","getWalletName","name","short","isMobileAnimation","innerWidth","preloadImage","src","imagePromise","image","Image","onload","onerror","race","CoreUtil","wait","getErrorMessage","err","message","debounce","func","timer","timeout","next","clearTimeout","setTimeout","handleMobileLinking","wallet","walletConnectUri","OptionsCtrl","mobile","nativeUrl","native","universalUrl","universal","setRecentWallet","uri","href","formatUniversalUrl","formatNativeUrl","openHref","onRedirect","handleAndroidLinking","setWalletConnectAndroidDeepLink","handleUriCopy","navigator","clipboard","writeText","ToastCtrl","openToast","getCustomImageUrls","walletUrls","values","truncate","strLen","substring","localStorage","setItem","console","info","getRecentWallet","getItem","caseSafeIncludes","str1","str2","toUpperCase","includes","openWalletExplorerUrl","getCachedRouterWalletPlatforms","getWalletRouterData","desktop","isDesktop","isWeb","isMobile","goToConnectingView","setData","Wallet","isMobileDevice","Mt","WcmModalRouter","view","prevView","unsubscribe","oldHeight","resizeObserver","subscribe","routerState","onChangeRoute","ResizeObserver","conetnt","newHeight","contentRect","height","animate","routerEl","observe","contentEl","_b","disconnect","re","opacity","scale","viewTemplate","WcmModalToast","newState","closeToast","isAdjecentDots","cy","otherCy","cellSize","QrCodeUtil","size","logoSize","dotColor","dots","matrix","errorCorrectionLevel","arr","QRCodeUtil","create","modules","data","sqrt","rows","index","getMatrix","qrList","y","x1","y1","dotSize","clearArenaSize","matrixMiddleStart","matrixMiddleEnd","circles","row","_","j","cx","circlesToConnect","cys","newCys","every","some","groups","group","find","y2","Nt","WcmQrCode","imageId","walletId","imageUrl","ifDefined","svgTemplate","WcmSearchInput","onChange","WcmSpinner","WcmText","color","m","WcmWalletButton","label","installed","recent","EventsCtrl","click","handleClick","bind","sublabelTemplate","WcmWalletImage","WcmExplorerContext","preload","preloadData","images","url","enableExplorer","getRecomendedWallets","setIsDataLoaded","recomendedWallets","walletImgs","loadImages","preloadListings","preloadCustomImages","error","WcmThemeContext","unsubscribeTheme","WcmAndroidWalletSelection","wallets","recomendedCount","RECOMMENDED_WALLET_AMOUNT","onGoToQrcode","WcmConnectorWaiting","isError","isStale","radius","numRadius","parseInt","dashArray","dashOffset","svgLoaderTemplate","manualWallets","mobileWallets","desktopWallets","recentWalletId","recentWallet","platformWallets","links","skipRecent","TemplateUtil","onConnecting","manualWalletsTemplate","DataUtil","recomendedWalletsTemplate","recentWalletTemplate","vo","WcmDesktopWalletSelection","explorerExcludedWalletIds","isExplorerWallets","manualTemplate","recomendedTemplate","templates","isViewAll","isWallets","WcmLegalNotice","termsOfServiceUrl","privacyPolicyUrl","WcmMobileWalletSelection","onQrcode","WcmModal","active","unsubscribeModal","abortController","modalState","onOpenModalEvent","onCloseModalEvent","enabled","wcmStyles","getElementById","remove","head","insertAdjacentHTML","event","currentTarget","toggleBodyScroll","addKeyboardEvents","overlayEl","containerEl","removeKeyboardEvents","AbortController","addEventListener","tagName","focus","abort","onCloseModal","WcmPlatformSelection","isRetry","replace","onMobile","onDesktop","onWeb","WcmViewAllWalletsButton","reversedWallets","explorerImg","WcmWalletConnectQr","offsetWidth","WcmConnectWalletView","isAndroid","WcmDesktopConnectingView","openDesktopApp","routerData","onFormatAndRedirect","WcmInstallWalletView","homepage","onInstall","WcmMobileConnectingView","openMobileApp","forceUniversalUrl","downloadUrl","app","ios","onGoToAppStore","WcmMobileQrConnectingView","WcmQrcodeView","WcmWalletExplorerView","loading","listings","firstFetch","search","endReached","intersectionObserver","searchDebounce","resetSearch","fetchWallets","isLastPage","createPaginationObserver","IntersectionObserver","isIntersecting","placeholderEl","total","page","chains","getWallets","version","newListings","explorerImages","listing","isLoading","isSearch","isEmpty","onSearchChange","onConnect","WcmWebConnectingView","openWebWallet","isMobilePlatform","result","point","charCodeAt","second","Uint8Array","buffer","isNumber","defaults","stopAnimation","needsCommit","clamp","MotionValue","setAnimation","then","clearAnimation","generator","getAnimationData","element","transforms","getMotionValue","motionValues","axes","transformAlias","z","rotation","syntax","initialValue","toDefaultUnit","baseTransformProperties","translate","rotate","skew","transformDefinitions","asTransformCssVar","axis","compareTransformOrder","transformLookup","isTransform","addTransformToElement","array","addUniqueItem","transform","buildTransformTemplate","transformListToString","template","isCssVar","registeredProperties","registerCssVariable","add","CSS","registerProperty","inherits","testAnimation","featureTests","cssRegisterProperty","waapi","Element","partialKeyframes","linearEasing","results","supports","convertEasing","points","numPoints","round","generateLinearEasingPoints","cubicBezierAsString","getStyleName","getPropertyValue","getComputedStyle","animateStyle","keyframesDefinition","AnimationPolyfill","record","__MOTION_DEV_TOOLS_RECORD","isRecording","persist","allowWebkitAcceleration","valueIsTransform","canAnimateNatively","motionValue","readInitialValue","hydrateKeyframes","keyframesList","toUnit","finalKeyframe","isString","unit","match","getUnitConverter","animationOptions","iterations","fill","thisEasing","onfinish","oncancel","assign","getOptions","resolveOption","option","AnimatePolyfill","elements","selectorCache","querySelectorAll","from","resolveElements","numElements","animationFactories","valueOptions","createAnimate","noop","noopReturn","customElements","define","isEasingList","isEasingGenerator"],"mappings":"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","file":"js/chunk-2d57a0a5.cc0247a9.js","sourcesContent":["import { defaults, noop, time } from '@motionone/utils';\nimport { stopAnimation } from './stop-animation.es.js';\n\nconst createAnimation = (factory) => factory();\nconst withControls = (animationFactory, options, duration = defaults.duration) => {\n return new Proxy({\n animations: animationFactory.map(createAnimation).filter(Boolean),\n duration,\n options,\n }, controls);\n};\n/**\n * TODO:\n * Currently this returns the first animation, ideally it would return\n * the first active animation.\n */\nconst getActiveAnimation = (state) => state.animations[0];\nconst controls = {\n get: (target, key) => {\n const activeAnimation = getActiveAnimation(target);\n switch (key) {\n case \"duration\":\n return target.duration;\n case \"currentTime\":\n return time.s((activeAnimation === null || activeAnimation === void 0 ? void 0 : activeAnimation[key]) || 0);\n case \"playbackRate\":\n case \"playState\":\n return activeAnimation === null || activeAnimation === void 0 ? void 0 : activeAnimation[key];\n case \"finished\":\n if (!target.finished) {\n target.finished = Promise.all(target.animations.map(selectFinished)).catch(noop);\n }\n return target.finished;\n case \"stop\":\n return () => {\n target.animations.forEach((animation) => stopAnimation(animation));\n };\n case \"forEachNative\":\n /**\n * This is for internal use only, fire a callback for each\n * underlying animation.\n */\n return (callback) => {\n target.animations.forEach((animation) => callback(animation, target));\n };\n default:\n return typeof (activeAnimation === null || activeAnimation === void 0 ? void 0 : activeAnimation[key]) === \"undefined\"\n ? undefined\n : () => target.animations.forEach((animation) => animation[key]());\n }\n },\n set: (target, key, value) => {\n switch (key) {\n case \"currentTime\":\n value = time.ms(value);\n case \"currentTime\":\n case \"playbackRate\":\n for (let i = 0; i < target.animations.length; i++) {\n target.animations[i][key] = value;\n }\n return true;\n }\n return false;\n },\n};\nconst selectFinished = (animation) => animation.finished;\n\nexport { controls, withControls };\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=window,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),n=new WeakMap;class o{constructor(t,e,n){if(this._$cssResult$=!0,n!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=n.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&n.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new o(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,s,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[n+1]),t[0]);return new o(n,t,s)},S=(s,n)=>{e?s.adoptedStyleSheets=n.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):n.forEach((e=>{const n=document.createElement(\"style\"),o=t.litNonce;void 0!==o&&n.setAttribute(\"nonce\",o),n.textContent=e.cssText,s.appendChild(n)}))},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{o as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as i}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var s;const e=window,r=e.trustedTypes,h=r?r.emptyScript:\"\",o=e.reactiveElementPolyfillSupport,n={toAttribute(t,i){switch(i){case Boolean:t=t?h:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},a=(t,i)=>i!==t&&(i==i||t==t),l={attribute:!0,type:String,converter:n,reflect:!1,hasChanged:a},d=\"finalized\";class u extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(t){var i;this.finalize(),(null!==(i=this.h)&&void 0!==i?i:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this._$Ep(s,i);void 0!==e&&(this._$Ev.set(e,s),t.push(e))})),t}static createProperty(t,i=l){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s=\"symbol\"==typeof t?Symbol():\"__\"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const r=this[t];this[i]=e,this.requestUpdate(t,r,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l}static finalize(){if(this.hasOwnProperty(d))return!1;this[d]=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),void 0!==t.h&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty(\"properties\")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(t(i))}else void 0!==i&&s.push(t(i));return s}static _$Ep(t,i){const s=i.attribute;return!1===s?void 0:\"string\"==typeof s?s:\"string\"==typeof t?t.toLowerCase():void 0}u(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this._$ES)&&void 0!==i?i:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this._$ES)||void 0===i||i.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this._$Ei.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return i(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}))}attributeChangedCallback(t,i,s){this._$AK(t,s)}_$EO(t,i,s=l){var e;const r=this.constructor._$Ep(t,s);if(void 0!==r&&!0===s.reflect){const h=(void 0!==(null===(e=s.converter)||void 0===e?void 0:e.toAttribute)?s.converter:n).toAttribute(i,s.type);this._$El=t,null==h?this.removeAttribute(r):this.setAttribute(r,h),this._$El=null}}_$AK(t,i){var s;const e=this.constructor,r=e._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=e.getPropertyOptions(r),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(s=t.converter)||void 0===s?void 0:s.fromAttribute)?t.converter:n;this._$El=r,this[r]=h.fromAttribute(i,t.type),this._$El=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||a)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===s.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,i)=>this[i]=t)),this._$Ei=void 0);let i=!1;const s=this._$AL;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this._$Ek()}catch(t){throw i=!1,this._$Ek(),t}i&&this._$AE(s)}willUpdate(t){}_$AE(t){var i;null===(i=this._$ES)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,i)=>this._$EO(i,this[i],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}u[d]=!0,u.elementProperties=new Map,u.elementStyles=[],u.shadowRootOptions={mode:\"open\"},null==o||o({ReactiveElement:u}),(null!==(s=e.reactiveElementVersions)&&void 0!==s?s:e.reactiveElementVersions=[]).push(\"1.6.2\");export{u as ReactiveElement,n as defaultConverter,a as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","const progress = (min, max, value) => max - min === 0 ? 1 : (value - min) / (max - min);\n\nexport { progress };\n","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst i=(i,e)=>\"method\"===e.kind&&e.descriptor&&!(\"value\"in e.descriptor)?{...e,finisher(n){n.createProperty(e.key,i)}}:{kind:\"field\",key:Symbol(),placement:\"own\",descriptor:{},originalKey:e.key,initializer(){\"function\"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(n){n.createProperty(e.key,i)}},e=(i,e,n)=>{e.constructor.createProperty(n,i)};function n(n){return(t,o)=>void 0!==o?e(n,t,o):i(n,t)}export{n as property};\n//# sourceMappingURL=property.js.map\n","import{decorateProperty as o}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var n;const e=null!=(null===(n=window.HTMLSlotElement)||void 0===n?void 0:n.prototype.assignedElements)?(o,n)=>o.assignedElements(n):(o,n)=>o.assignedNodes(n).filter((o=>o.nodeType===Node.ELEMENT_NODE));function l(n){const{slot:l,selector:t}=null!=n?n:{};return o({descriptor:o=>({get(){var o;const r=\"slot\"+(l?`[name=${l}]`:\":not([name])\"),i=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(r),s=null!=i?e(i,n):[];return t?s.filter((o=>o.matches(t))):s},enumerable:!0,configurable:!0})})}export{l as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","import{decorateProperty as o}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function i(i,n){return o({descriptor:o=>{const t={get(){var o,n;return null!==(n=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(i))&&void 0!==n?n:null},enumerable:!0,configurable:!0};if(n){const n=\"symbol\"==typeof o?Symbol():\"__\"+o;t.get=function(){var o,t;return void 0===this[n]&&(this[n]=null!==(t=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(i))&&void 0!==t?t:null),this[n]}}return t}})}export{i as query};\n//# sourceMappingURL=query.js.map\n","const mix = (min, max, progress) => -progress * min + progress * max + min;\n\nexport { mix };\n","import { mix } from './mix.es.js';\nimport { progress } from './progress.es.js';\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = progress(0, remaining, i);\n offset.push(mix(min, 1, offsetProgress));\n }\n}\nfunction defaultOffset(length) {\n const offset = [0];\n fillOffset(offset, length - 1);\n return offset;\n}\n\nexport { defaultOffset, fillOffset };\n","import { isEasingList } from './is-easing-list.es.js';\nimport { wrap } from './wrap.es.js';\n\nfunction getEasingForSegment(easing, i) {\n return isEasingList(easing)\n ? easing[wrap(0, easing.length, i)]\n : easing;\n}\n\nexport { getEasingForSegment };\n","const wrap = (min, max, v) => {\n const rangeSize = max - min;\n return ((((v - min) % rangeSize) + rangeSize) % rangeSize) + min;\n};\n\nexport { wrap };\n","import { mix } from './mix.es.js';\nimport { noopReturn } from './noop.es.js';\nimport { fillOffset, defaultOffset } from './offset.es.js';\nimport { progress } from './progress.es.js';\nimport { getEasingForSegment } from './easing.es.js';\nimport { clamp } from './clamp.es.js';\n\nfunction interpolate(output, input = defaultOffset(output.length), easing = noopReturn) {\n const length = output.length;\n /**\n * If the input length is lower than the output we\n * fill the input to match. This currently assumes the input\n * is an animation progress value so is a good candidate for\n * moving outside the function.\n */\n const remainder = length - input.length;\n remainder > 0 && fillOffset(input, remainder);\n return (t) => {\n let i = 0;\n for (; i < length - 2; i++) {\n if (t < input[i + 1])\n break;\n }\n let progressInRange = clamp(0, 1, progress(input[i], input[i + 1], t));\n const segmentEasing = getEasingForSegment(easing, i);\n progressInRange = segmentEasing(progressInRange);\n return mix(output[i], output[i + 1], progressInRange);\n };\n}\n\nexport { interpolate };\n","import { noopReturn, defaults, isEasingGenerator, isEasingList, interpolate } from '@motionone/utils';\nimport { getEasingFunction } from './utils/easing.es.js';\n\nclass Animation {\n constructor(output, keyframes = [0, 1], { easing, duration: initialDuration = defaults.duration, delay = defaults.delay, endDelay = defaults.endDelay, repeat = defaults.repeat, offset, direction = \"normal\", } = {}) {\n this.startTime = null;\n this.rate = 1;\n this.t = 0;\n this.cancelTimestamp = null;\n this.easing = noopReturn;\n this.duration = 0;\n this.totalDuration = 0;\n this.repeat = 0;\n this.playState = \"idle\";\n this.finished = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n easing = easing || defaults.easing;\n if (isEasingGenerator(easing)) {\n const custom = easing.createAnimation(keyframes);\n easing = custom.easing;\n keyframes = custom.keyframes || keyframes;\n initialDuration = custom.duration || initialDuration;\n }\n this.repeat = repeat;\n this.easing = isEasingList(easing) ? noopReturn : getEasingFunction(easing);\n this.updateDuration(initialDuration);\n const interpolate$1 = interpolate(keyframes, offset, isEasingList(easing) ? easing.map(getEasingFunction) : noopReturn);\n this.tick = (timestamp) => {\n var _a;\n // TODO: Temporary fix for OptionsResolver typing\n delay = delay;\n let t = 0;\n if (this.pauseTime !== undefined) {\n t = this.pauseTime;\n }\n else {\n t = (timestamp - this.startTime) * this.rate;\n }\n this.t = t;\n // Convert to seconds\n t /= 1000;\n // Rebase on delay\n t = Math.max(t - delay, 0);\n /**\n * If this animation has finished, set the current time\n * to the total duration.\n */\n if (this.playState === \"finished\" && this.pauseTime === undefined) {\n t = this.totalDuration;\n }\n /**\n * Get the current progress (0-1) of the animation. If t is >\n * than duration we'll get values like 2.5 (midway through the\n * third iteration)\n */\n const progress = t / this.duration;\n // TODO progress += iterationStart\n /**\n * Get the current iteration (0 indexed). For instance the floor of\n * 2.5 is 2.\n */\n let currentIteration = Math.floor(progress);\n /**\n * Get the current progress of the iteration by taking the remainder\n * so 2.5 is 0.5 through iteration 2\n */\n let iterationProgress = progress % 1.0;\n if (!iterationProgress && progress >= 1) {\n iterationProgress = 1;\n }\n /**\n * If iteration progress is 1 we count that as the end\n * of the previous iteration.\n */\n iterationProgress === 1 && currentIteration--;\n /**\n * Reverse progress if we're not running in \"normal\" direction\n */\n const iterationIsOdd = currentIteration % 2;\n if (direction === \"reverse\" ||\n (direction === \"alternate\" && iterationIsOdd) ||\n (direction === \"alternate-reverse\" && !iterationIsOdd)) {\n iterationProgress = 1 - iterationProgress;\n }\n const p = t >= this.totalDuration ? 1 : Math.min(iterationProgress, 1);\n const latest = interpolate$1(this.easing(p));\n output(latest);\n const isAnimationFinished = this.pauseTime === undefined &&\n (this.playState === \"finished\" || t >= this.totalDuration + endDelay);\n if (isAnimationFinished) {\n this.playState = \"finished\";\n (_a = this.resolve) === null || _a === void 0 ? void 0 : _a.call(this, latest);\n }\n else if (this.playState !== \"idle\") {\n this.frameRequestId = requestAnimationFrame(this.tick);\n }\n };\n this.play();\n }\n play() {\n const now = performance.now();\n this.playState = \"running\";\n if (this.pauseTime !== undefined) {\n this.startTime = now - this.pauseTime;\n }\n else if (!this.startTime) {\n this.startTime = now;\n }\n this.cancelTimestamp = this.startTime;\n this.pauseTime = undefined;\n this.frameRequestId = requestAnimationFrame(this.tick);\n }\n pause() {\n this.playState = \"paused\";\n this.pauseTime = this.t;\n }\n finish() {\n this.playState = \"finished\";\n this.tick(0);\n }\n stop() {\n var _a;\n this.playState = \"idle\";\n if (this.frameRequestId !== undefined) {\n cancelAnimationFrame(this.frameRequestId);\n }\n (_a = this.reject) === null || _a === void 0 ? void 0 : _a.call(this, false);\n }\n cancel() {\n this.stop();\n this.tick(this.cancelTimestamp);\n }\n reverse() {\n this.rate *= -1;\n }\n commitStyles() { }\n updateDuration(duration) {\n this.duration = duration;\n this.totalDuration = duration * (this.repeat + 1);\n }\n get currentTime() {\n return this.t;\n }\n set currentTime(t) {\n if (this.pauseTime !== undefined || this.rate === 0) {\n this.pauseTime = t;\n }\n else {\n this.startTime = performance.now() - t / this.rate;\n }\n }\n get playbackRate() {\n return this.rate;\n }\n set playbackRate(rate) {\n this.rate = rate;\n }\n}\n\nexport { Animation };\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,o)=>{Object.defineProperty(t,o,e)},t=(e,t)=>({kind:\"method\",placement:\"prototype\",key:t.key,descriptor:e}),o=({finisher:e,descriptor:t})=>(o,n)=>{var r;if(void 0===n){const n=null!==(r=o.originalKey)&&void 0!==r?r:o.key,i=null!=t?{kind:\"method\",placement:\"prototype\",key:n,descriptor:t(o.key)}:{...o,key:n};return null!=e&&(i.finisher=function(t){e(t,n)}),i}{const r=o.constructor;void 0!==t&&Object.defineProperty(o,n,t(n)),null==e||e(r,n)}};export{o as decorateProperty,e as legacyPrototypeMethod,t as standardPrototypeMethod};\n//# sourceMappingURL=base.js.map\n","const time = {\n ms: (seconds) => seconds * 1000,\n s: (milliseconds) => milliseconds / 1000,\n};\n\nexport { time };\n","const isFunction = (value) => typeof value === \"function\";\n\nexport { isFunction };\n","import { noopReturn } from '@motionone/utils';\n\n/*\n Bezier function generator\n\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticiably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) * t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return noopReturn;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { cubicBezier, steps } from '@motionone/easing';\nimport { isFunction, isCubicBezier, noopReturn } from '@motionone/utils';\n\nconst namedEasings = {\n ease: cubicBezier(0.25, 0.1, 0.25, 1.0),\n \"ease-in\": cubicBezier(0.42, 0.0, 1.0, 1.0),\n \"ease-in-out\": cubicBezier(0.42, 0.0, 0.58, 1.0),\n \"ease-out\": cubicBezier(0.0, 0.0, 0.58, 1.0),\n};\nconst functionArgsRegex = /\\((.*?)\\)/;\nfunction getEasingFunction(definition) {\n // If already an easing function, return\n if (isFunction(definition))\n return definition;\n // If an easing curve definition, return bezier function\n if (isCubicBezier(definition))\n return cubicBezier(...definition);\n // If we have a predefined easing function, return\n if (namedEasings[definition])\n return namedEasings[definition];\n // If this is a steps function, attempt to create easing curve\n if (definition.startsWith(\"steps\")) {\n const args = functionArgsRegex.exec(definition);\n if (args) {\n const argsArray = args[1].split(\",\");\n return steps(parseFloat(argsArray[0]), argsArray[1].trim());\n }\n }\n return noopReturn;\n}\n\nexport { getEasingFunction };\n","import { clamp } from '@motionone/utils';\n\nconst steps = (steps, direction = \"end\") => (progress) => {\n progress =\n direction === \"end\"\n ? Math.min(progress, 0.999)\n : Math.max(progress, 0.001);\n const expanded = progress * steps;\n const rounded = direction === \"end\" ? Math.floor(expanded) : Math.ceil(expanded);\n return clamp(0, 1, rounded / steps);\n};\n\nexport { steps };\n","import { isNumber } from './is-number.es.js';\n\nconst isCubicBezier = (easing) => Array.isArray(easing) && isNumber(easing[0]);\n\nexport { isCubicBezier };\n","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","import { ThemeCtrl } from '@walletconnect/modal-core'\nimport { css } from 'lit'\n\nfunction themeModeVariables() {\n const themeMode = ThemeCtrl.state.themeMode ?? 'dark'\n const themeModePresets = {\n light: {\n foreground: { 1: `rgb(20,20,20)`, 2: `rgb(121,134,134)`, 3: `rgb(158,169,169)` },\n background: { 1: `rgb(255,255,255)`, 2: `rgb(241,243,243)`, 3: `rgb(228,231,231)` },\n overlay: 'rgba(0,0,0,0.1)'\n },\n dark: {\n foreground: { 1: `rgb(228,231,231)`, 2: `rgb(148,158,158)`, 3: `rgb(110,119,119)` },\n background: { 1: `rgb(20,20,20)`, 2: `rgb(39,42,42)`, 3: `rgb(59,64,64)` },\n overlay: 'rgba(255,255,255,0.1)'\n }\n }\n const themeModeColors = themeModePresets[themeMode]\n\n return {\n '--wcm-color-fg-1': themeModeColors.foreground[1],\n '--wcm-color-fg-2': themeModeColors.foreground[2],\n '--wcm-color-fg-3': themeModeColors.foreground[3],\n '--wcm-color-bg-1': themeModeColors.background[1],\n '--wcm-color-bg-2': themeModeColors.background[2],\n '--wcm-color-bg-3': themeModeColors.background[3],\n '--wcm-color-overlay': themeModeColors.overlay\n }\n}\n\nfunction themeVariablesPresets() {\n return {\n '--wcm-accent-color': '#3396FF',\n '--wcm-accent-fill-color': '#FFFFFF',\n '--wcm-z-index': '89',\n '--wcm-background-color': '#3396FF',\n '--wcm-background-border-radius': '8px',\n '--wcm-container-border-radius': '30px',\n '--wcm-wallet-icon-border-radius': '15px',\n '--wcm-wallet-icon-large-border-radius': '30px',\n '--wcm-wallet-icon-small-border-radius': '7px',\n '--wcm-input-border-radius': '28px',\n '--wcm-button-border-radius': '10px',\n '--wcm-notification-border-radius': '36px',\n '--wcm-secondary-button-border-radius': '28px',\n '--wcm-icon-button-border-radius': '50%',\n '--wcm-button-hover-highlight-border-radius': '10px',\n '--wcm-text-big-bold-size': '20px',\n '--wcm-text-big-bold-weight': '600',\n '--wcm-text-big-bold-line-height': '24px',\n '--wcm-text-big-bold-letter-spacing': '-0.03em',\n '--wcm-text-big-bold-text-transform': 'none',\n '--wcm-text-xsmall-bold-size': '10px',\n '--wcm-text-xsmall-bold-weight': '700',\n '--wcm-text-xsmall-bold-line-height': '12px',\n '--wcm-text-xsmall-bold-letter-spacing': '0.02em',\n '--wcm-text-xsmall-bold-text-transform': 'uppercase',\n '--wcm-text-xsmall-regular-size': '12px',\n '--wcm-text-xsmall-regular-weight': '600',\n '--wcm-text-xsmall-regular-line-height': '14px',\n '--wcm-text-xsmall-regular-letter-spacing': '-0.03em',\n '--wcm-text-xsmall-regular-text-transform': 'none',\n '--wcm-text-small-thin-size': '14px',\n '--wcm-text-small-thin-weight': '500',\n '--wcm-text-small-thin-line-height': '16px',\n '--wcm-text-small-thin-letter-spacing': '-0.03em',\n '--wcm-text-small-thin-text-transform': 'none',\n '--wcm-text-small-regular-size': '14px',\n '--wcm-text-small-regular-weight': '600',\n '--wcm-text-small-regular-line-height': '16px',\n '--wcm-text-small-regular-letter-spacing': '-0.03em',\n '--wcm-text-small-regular-text-transform': 'none',\n '--wcm-text-medium-regular-size': '16px',\n '--wcm-text-medium-regular-weight': '600',\n '--wcm-text-medium-regular-line-height': '20px',\n '--wcm-text-medium-regular-letter-spacing': '-0.03em',\n '--wcm-text-medium-regular-text-transform': 'none',\n '--wcm-font-family':\n \"-apple-system, system-ui, BlinkMacSystemFont, 'Segoe UI', Roboto, Ubuntu, 'Helvetica Neue', sans-serif\",\n '--wcm-font-feature-settings': `'tnum' on, 'lnum' on, 'case' on`,\n '--wcm-success-color': 'rgb(38,181,98)',\n '--wcm-error-color': 'rgb(242, 90, 103)',\n '--wcm-overlay-background-color': 'rgba(0, 0, 0, 0.3)',\n '--wcm-overlay-backdrop-filter': 'none'\n }\n}\n\nexport const ThemeUtil = {\n getPreset(key: string) {\n return themeVariablesPresets()[key as never]\n },\n\n setTheme() {\n const root: HTMLElement | null = document.querySelector(':root')\n const { themeVariables } = ThemeCtrl.state\n\n if (root) {\n const variables = {\n ...themeModeVariables(),\n ...themeVariablesPresets(),\n ...themeVariables\n }\n\n Object.entries(variables).forEach(([key, val]) => root.style.setProperty(key, val))\n }\n },\n\n globalCss: css`\n *,\n *::after,\n *::before {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n font-style: normal;\n text-rendering: optimizeSpeed;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n -webkit-tap-highlight-color: transparent;\n backface-visibility: hidden;\n }\n\n button {\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n border: none;\n background-color: transparent;\n transition: all 0.2s ease;\n }\n\n @media (hover: hover) and (pointer: fine) {\n button:active {\n transition: all 0.1s ease;\n transform: scale(0.93);\n }\n }\n\n button::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n transition: background-color, 0.2s ease;\n }\n\n button:disabled {\n cursor: not-allowed;\n }\n\n button svg,\n button wcm-text {\n position: relative;\n z-index: 1;\n }\n\n input {\n border: none;\n outline: none;\n appearance: none;\n }\n\n img {\n display: block;\n }\n\n ::selection {\n color: var(--wcm-accent-fill-color);\n background: var(--wcm-accent-color);\n }\n `\n}\n","import type { TemplateResult } from 'lit'\nimport { html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-button')\nexport class WcmButton extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- state & properties ------------------------------------------- //\n @property({ type: Boolean }) public disabled? = false\n @property() public iconLeft?: TemplateResult<2> = undefined\n @property() public iconRight?: TemplateResult<2> = undefined\n @property() public onClick: () => void = () => null\n @property() public variant: 'default' | 'ghost' | 'outline' = 'default'\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const classes = {\n 'wcm-icon-left': this.iconLeft !== undefined,\n 'wcm-icon-right': this.iconRight !== undefined,\n 'wcm-ghost': this.variant === 'ghost',\n 'wcm-outline': this.variant === 'outline'\n }\n let textColor = 'inverse'\n if (this.variant === 'ghost') {\n textColor = 'secondary'\n }\n if (this.variant === 'outline') {\n textColor = 'accent'\n }\n\n return html`\n \n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-button': WcmButton\n }\n}\n","import { html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport styles from './styles.css'\n\ntype Variant = 'primary' | 'secondary'\n\n@customElement('wcm-button-big')\nexport class WcmButtonBig extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- state & properties ------------------------------------------- //\n @property({ type: Boolean }) public disabled? = false\n @property() public variant?: Variant = 'primary'\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const classes = {\n 'wcm-secondary': this.variant === 'secondary'\n }\n\n return html`\n \n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-button-big': WcmButtonBig\n }\n}\n","import { html, LitElement } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-info-footer')\nexport class WcmInfoFooter extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- render ------------------------------------------------------- //\n protected render() {\n return html`\n
\n \n
\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-info-footer': WcmInfoFooter\n }\n}\n","import { svg } from 'lit-html'\n\nexport const SvgUtil = {\n CROSS_ICON: svg`\n \n \n \n `,\n\n WALLET_CONNECT_LOGO: svg`\n \n \n \n `,\n\n WALLET_CONNECT_ICON: svg`\n \n \n \n \n \n \n \n \n `,\n\n WALLET_CONNECT_ICON_COLORED: svg`\n \n \n \n \n `,\n\n BACK_ICON: svg`\n \n \n \n `,\n\n COPY_ICON: svg`\n \n \n \n `,\n\n RETRY_ICON: svg`\n \n \n \n `,\n\n DESKTOP_ICON: svg`\n \n \n \n \n `,\n\n MOBILE_ICON: svg`\n \n \n \n \n `,\n\n ARROW_DOWN_ICON: svg`\n \n \n \n `,\n\n ARROW_UP_RIGHT_ICON: svg`\n \n \n \n `,\n\n ARROW_RIGHT_ICON: svg`\n \n \n \n `,\n\n QRCODE_ICON: svg`\n \n \n \n \n \n `,\n\n SCAN_ICON: svg`\n \n \n \n `,\n\n CHECKMARK_ICON: svg`\n \n \n \n `,\n\n SEARCH_ICON: svg`\n \n \n \n `,\n\n WALLET_PLACEHOLDER: svg`\n \n \n \n \n \n \n \n \n \n \n \n `,\n\n GLOBE_ICON: svg`\n \n \n \n `\n}\n","import { ModalCtrl } from '@walletconnect/modal-core'\nimport { LitElement, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { SvgUtil } from '../../utils/SvgUtil'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-modal-backcard')\nexport class WcmModalBackcard extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- render ------------------------------------------------------- //\n protected render() {\n return html`\n
\n
\n ${SvgUtil.WALLET_CONNECT_LOGO}\n \n
\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-modal-backcard': WcmModalBackcard\n }\n}\n","import { html, LitElement } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-modal-content')\nexport class WcmModalContent extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- render ------------------------------------------------------- //\n protected render() {\n return html`\n
\n \n
\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-modal-content': WcmModalContent\n }\n}\n","import { html, LitElement } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-modal-footer')\nexport class WcmModalFooter extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- render ------------------------------------------------------- //\n protected render() {\n return html`\n \n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-modal-footer': WcmModalFooter\n }\n}\n","import { RouterCtrl } from '@walletconnect/modal-core'\nimport type { TemplateResult } from 'lit'\nimport { html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { SvgUtil } from '../../utils/SvgUtil'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-modal-header')\nexport class WcmModalHeader extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- state & properties ------------------------------------------- //\n @property() public title = ''\n @property() public onAction?: () => void = undefined\n @property() public actionIcon?: TemplateResult<2> = undefined\n @property({ type: Boolean }) public border = false\n\n // -- private ------------------------------------------------------ //\n private backBtnTemplate() {\n return html`\n \n `\n }\n\n private actionBtnTemplate() {\n return html``\n }\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const classes = {\n 'wcm-border': this.border\n }\n const backBtn = RouterCtrl.state.history.length > 1\n\n const content = this.title\n ? html`${this.title}`\n : html``\n\n return html`\n
\n ${backBtn ? this.backBtnTemplate() : null} ${content}\n ${this.onAction ? this.actionBtnTemplate() : null}\n
\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-modal-header': WcmModalHeader\n }\n}\n","import type { WalletData } from '@walletconnect/modal-core'\nimport {\n ConfigCtrl,\n CoreUtil,\n ExplorerCtrl,\n OptionsCtrl,\n RouterCtrl,\n ToastCtrl\n} from '@walletconnect/modal-core'\nimport type { LitElement } from 'lit'\n\nexport const UiUtil = {\n MOBILE_BREAKPOINT: 600,\n\n WCM_RECENT_WALLET_DATA: 'WCM_RECENT_WALLET_DATA',\n\n EXPLORER_WALLET_URL: 'https://explorer.walletconnect.com/?type=wallet',\n\n getShadowRootElement(root: LitElement, selector: string) {\n const el = root.renderRoot.querySelector(selector)\n if (!el) {\n throw new Error(`${selector} not found`)\n }\n\n return el as HTMLElement\n },\n\n getWalletIcon({ id, image_id }: { id: string; image_id?: string }) {\n const { walletImages } = ConfigCtrl.state\n\n if (walletImages?.[id]) {\n return walletImages[id]\n } else if (image_id) {\n return ExplorerCtrl.getWalletImageUrl(image_id)\n }\n\n return ''\n },\n\n getWalletName(name: string, short = false) {\n return short ? name.split(' ')[0] : name\n },\n\n isMobileAnimation() {\n return window.innerWidth <= UiUtil.MOBILE_BREAKPOINT\n },\n\n async preloadImage(src: string) {\n const imagePromise = new Promise((resolve, reject) => {\n const image = new Image()\n image.onload = resolve\n image.onerror = reject\n image.src = src\n })\n\n return Promise.race([imagePromise, CoreUtil.wait(3_000)])\n },\n\n getErrorMessage(err: unknown) {\n return err instanceof Error ? err.message : 'Unknown Error'\n },\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n debounce(func: (...args: any[]) => unknown, timeout = 500) {\n let timer: NodeJS.Timeout | undefined = undefined\n\n return (...args: unknown[]) => {\n function next() {\n func(...args)\n }\n if (timer) {\n clearTimeout(timer)\n }\n timer = setTimeout(next, timeout)\n }\n },\n\n handleMobileLinking(wallet: WalletData) {\n const { walletConnectUri } = OptionsCtrl.state\n const { mobile, name } = wallet\n const nativeUrl = mobile?.native\n const universalUrl = mobile?.universal\n\n UiUtil.setRecentWallet(wallet)\n\n function onRedirect(uri: string) {\n let href = ''\n if (nativeUrl) {\n href = CoreUtil.formatUniversalUrl(nativeUrl, uri, name)\n } else if (universalUrl) {\n href = CoreUtil.formatNativeUrl(universalUrl, uri, name)\n }\n CoreUtil.openHref(href, '_self')\n }\n\n if (walletConnectUri) {\n onRedirect(walletConnectUri)\n }\n },\n\n handleAndroidLinking() {\n const { walletConnectUri } = OptionsCtrl.state\n\n if (walletConnectUri) {\n CoreUtil.setWalletConnectAndroidDeepLink(walletConnectUri)\n CoreUtil.openHref(walletConnectUri, '_self')\n }\n },\n\n async handleUriCopy() {\n const { walletConnectUri } = OptionsCtrl.state\n if (walletConnectUri) {\n try {\n await navigator.clipboard.writeText(walletConnectUri)\n ToastCtrl.openToast('Link copied', 'success')\n } catch {\n ToastCtrl.openToast('Failed to copy', 'error')\n }\n }\n },\n\n getCustomImageUrls() {\n const { walletImages } = ConfigCtrl.state\n const walletUrls = Object.values(walletImages ?? {})\n\n return Object.values(walletUrls)\n },\n\n truncate(value: string, strLen = 8) {\n if (value.length <= strLen) {\n return value\n }\n\n return `${value.substring(0, 4)}...${value.substring(value.length - 4)}`\n },\n\n setRecentWallet(wallet: WalletData) {\n try {\n localStorage.setItem(UiUtil.WCM_RECENT_WALLET_DATA, JSON.stringify(wallet))\n } catch {\n console.info('Unable to set recent wallet')\n }\n },\n\n getRecentWallet() {\n try {\n const wallet = localStorage.getItem(UiUtil.WCM_RECENT_WALLET_DATA)\n if (wallet) {\n const json = JSON.parse(wallet)\n\n return json as WalletData\n }\n\n return undefined\n } catch {\n console.info('Unable to get recent wallet')\n }\n\n return undefined\n },\n\n caseSafeIncludes(str1: string, str2: string) {\n return str1.toUpperCase().includes(str2.toUpperCase())\n },\n\n openWalletExplorerUrl() {\n CoreUtil.openHref(UiUtil.EXPLORER_WALLET_URL, '_blank')\n },\n\n getCachedRouterWalletPlatforms() {\n const { desktop, mobile } = CoreUtil.getWalletRouterData()\n const isDesktop = Boolean(desktop?.native)\n const isWeb = Boolean(desktop?.universal)\n const isMobile = Boolean(mobile?.native) || Boolean(mobile?.universal)\n\n return { isDesktop, isMobile, isWeb }\n },\n\n goToConnectingView(wallet: WalletData) {\n RouterCtrl.setData({ Wallet: wallet })\n const isMobileDevice = CoreUtil.isMobile()\n const { isDesktop, isWeb, isMobile } = UiUtil.getCachedRouterWalletPlatforms()\n\n // Mobile\n if (isMobileDevice) {\n if (isMobile) {\n RouterCtrl.push('MobileConnecting')\n } else if (isWeb) {\n RouterCtrl.push('WebConnecting')\n } else {\n RouterCtrl.push('InstallWallet')\n }\n }\n\n // Desktop\n else if (isDesktop) {\n RouterCtrl.push('DesktopConnecting')\n } else if (isWeb) {\n RouterCtrl.push('WebConnecting')\n } else if (isMobile) {\n RouterCtrl.push('MobileQrcodeConnecting')\n } else {\n RouterCtrl.push('InstallWallet')\n }\n }\n}\n","import type { RouterView } from '@walletconnect/modal-core'\nimport { RouterCtrl } from '@walletconnect/modal-core'\nimport { html, LitElement } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\nimport { animate } from 'motion'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport { UiUtil } from '../../utils/UiUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-modal-router')\nexport class WcmModalRouter extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- state & properties ------------------------------------------- //\n @state() public view: RouterView = RouterCtrl.state.view\n @state() public prevView: RouterView = RouterCtrl.state.view\n\n // -- lifecycle ---------------------------------------------------- //\n public constructor() {\n super()\n this.unsubscribe = RouterCtrl.subscribe(routerState => {\n if (this.view !== routerState.view) {\n this.onChangeRoute()\n }\n })\n }\n\n public firstUpdated() {\n this.resizeObserver = new ResizeObserver(([conetnt]) => {\n const newHeight = `${conetnt.contentRect.height}px`\n if (this.oldHeight !== '0px') {\n animate(this.routerEl, { height: [this.oldHeight, newHeight] }, { duration: 0.2 })\n }\n this.oldHeight = newHeight\n })\n this.resizeObserver.observe(this.contentEl)\n }\n\n public disconnectedCallback() {\n this.unsubscribe?.()\n this.resizeObserver?.disconnect()\n }\n\n // -- private ------------------------------------------------------ //\n private readonly unsubscribe?: () => void = undefined\n private oldHeight = '0px'\n private resizeObserver?: ResizeObserver = undefined\n\n private get routerEl() {\n return UiUtil.getShadowRootElement(this, '.wcm-router')\n }\n\n private get contentEl() {\n return UiUtil.getShadowRootElement(this, '.wcm-content')\n }\n\n private viewTemplate() {\n switch (this.view) {\n case 'ConnectWallet':\n return html``\n case 'DesktopConnecting':\n return html``\n case 'MobileConnecting':\n return html``\n case 'WebConnecting':\n return html``\n case 'MobileQrcodeConnecting':\n return html``\n case 'WalletExplorer':\n return html``\n case 'Qrcode':\n return html``\n case 'InstallWallet':\n return html``\n default:\n return html`
Not Found
`\n }\n }\n\n private async onChangeRoute() {\n await animate(\n this.routerEl,\n { opacity: [1, 0], scale: [1, 1.02] },\n { duration: 0.15, delay: 0.1 }\n ).finished\n this.view = RouterCtrl.state.view\n animate(this.routerEl, { opacity: [0, 1], scale: [0.99, 1] }, { duration: 0.37, delay: 0.05 })\n }\n\n // -- render ------------------------------------------------------- //\n protected render() {\n return html`\n
\n
${this.viewTemplate()}
\n
\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-modal-router': WcmModalRouter\n }\n}\n","import { ToastCtrl } from '@walletconnect/modal-core'\nimport { html, LitElement } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { SvgUtil } from '../../utils/SvgUtil'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-modal-toast')\nexport class WcmModalToast extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- state & properties ------------------------------------------- //\n @state() public open = false\n\n public constructor() {\n super()\n this.unsubscribe = ToastCtrl.subscribe(newState => {\n if (newState.open) {\n this.open = true\n this.timeout = setTimeout(() => ToastCtrl.closeToast(), 2200)\n } else {\n this.open = false\n clearTimeout(this.timeout)\n }\n })\n }\n\n public disconnectedCallback() {\n this.unsubscribe?.()\n clearTimeout(this.timeout)\n ToastCtrl.closeToast()\n }\n\n // -- private ------------------------------------------------------ //\n private readonly unsubscribe?: () => void = undefined\n private timeout?: NodeJS.Timeout = undefined\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const { message, variant } = ToastCtrl.state\n const classes = {\n 'wcm-success': variant === 'success',\n 'wcm-error': variant === 'error'\n }\n\n return this.open\n ? html`\n
\n ${variant === 'success' ? SvgUtil.CHECKMARK_ICON : null}\n ${variant === 'error' ? SvgUtil.CROSS_ICON : null}\n ${message}\n
\n `\n : null\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-modal-toast': WcmModalToast\n }\n}\n","import type { TemplateResult } from 'lit'\nimport { svg } from 'lit'\nimport QRCodeUtil from 'qrcode'\n\ntype CoordinateMapping = [number, number[]]\n\nconst CONNECTING_ERROR_MARGIN = 0.1\nconst CIRCLE_SIZE_MODIFIER = 2.5\nconst QRCODE_MATRIX_MARGIN = 7\n\nfunction isAdjecentDots(cy: number, otherCy: number, cellSize: number) {\n if (cy === otherCy) {\n return false\n }\n const diff = cy - otherCy < 0 ? otherCy - cy : cy - otherCy\n\n return diff <= cellSize + CONNECTING_ERROR_MARGIN\n}\n\nfunction getMatrix(value: string, errorCorrectionLevel: QRCodeUtil.QRCodeErrorCorrectionLevel) {\n const arr = Array.prototype.slice.call(\n QRCodeUtil.create(value, { errorCorrectionLevel }).modules.data,\n 0\n )\n const sqrt = Math.sqrt(arr.length)\n\n return arr.reduce(\n (rows, key, index) =>\n (index % sqrt === 0 ? rows.push([key]) : rows[rows.length - 1].push(key)) && rows,\n []\n )\n}\n\nexport const QrCodeUtil = {\n generate(uri: string, size: number, logoSize: number) {\n const dotColor = '#141414'\n const edgeColor = '#ffffff'\n const dots: TemplateResult[] = []\n const matrix = getMatrix(uri, 'Q')\n const cellSize = size / matrix.length\n const qrList = [\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: 0, y: 1 }\n ]\n\n qrList.forEach(({ x, y }) => {\n const x1 = (matrix.length - QRCODE_MATRIX_MARGIN) * cellSize * x\n const y1 = (matrix.length - QRCODE_MATRIX_MARGIN) * cellSize * y\n const borderRadius = 0.45\n for (let i = 0; i < qrList.length; i += 1) {\n const dotSize = cellSize * (QRCODE_MATRIX_MARGIN - i * 2)\n dots.push(\n svg`\n \n `\n )\n }\n })\n\n const clearArenaSize = Math.floor((logoSize + 25) / cellSize)\n const matrixMiddleStart = matrix.length / 2 - clearArenaSize / 2\n const matrixMiddleEnd = matrix.length / 2 + clearArenaSize / 2 - 1\n const circles: [number, number][] = []\n\n // Getting coordinates for each of the QR code dots\n matrix.forEach((row: QRCodeUtil.QRCode[], i: number) => {\n row.forEach((_, j: number) => {\n if (matrix[i][j]) {\n if (\n !(\n (i < QRCODE_MATRIX_MARGIN && j < QRCODE_MATRIX_MARGIN) ||\n (i > matrix.length - (QRCODE_MATRIX_MARGIN + 1) && j < QRCODE_MATRIX_MARGIN) ||\n (i < QRCODE_MATRIX_MARGIN && j > matrix.length - (QRCODE_MATRIX_MARGIN + 1))\n )\n ) {\n if (\n !(\n i > matrixMiddleStart &&\n i < matrixMiddleEnd &&\n j > matrixMiddleStart &&\n j < matrixMiddleEnd\n )\n ) {\n const cx = i * cellSize + cellSize / 2\n const cy = j * cellSize + cellSize / 2\n circles.push([cx, cy])\n }\n }\n }\n })\n })\n\n // Cx to multiple cys\n const circlesToConnect: Record = {}\n\n // Mapping all dots cicles on the same x axis\n circles.forEach(([cx, cy]) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (circlesToConnect[cx]) {\n circlesToConnect[cx].push(cy)\n } else {\n circlesToConnect[cx] = [cy]\n }\n })\n\n // Drawing lonely dots\n Object.entries(circlesToConnect)\n // Only get dots that have neighbors\n .map(([cx, cys]) => {\n const newCys = cys.filter(cy =>\n cys.every(otherCy => !isAdjecentDots(cy, otherCy, cellSize))\n )\n\n return [Number(cx), newCys] as CoordinateMapping\n })\n .forEach(([cx, cys]) => {\n cys.forEach(cy => {\n dots.push(\n svg``\n )\n })\n })\n\n // Drawing lines for dots that are close to each other\n Object.entries(circlesToConnect)\n // Only get dots that have more than one dot on the x axis\n .filter(([_, cys]) => cys.length > 1)\n // Removing dots with no neighbors\n .map(([cx, cys]) => {\n const newCys = cys.filter(cy => cys.some(otherCy => isAdjecentDots(cy, otherCy, cellSize)))\n\n return [Number(cx), newCys] as CoordinateMapping\n })\n // Get the coordinates of the first and last dot of a line\n .map(([cx, cys]) => {\n cys.sort((a, b) => (a < b ? -1 : 1))\n const groups: number[][] = []\n\n for (const cy of cys) {\n const group = groups.find(item =>\n item.some(otherCy => isAdjecentDots(cy, otherCy, cellSize))\n )\n if (group) {\n group.push(cy)\n } else {\n groups.push([cy])\n }\n }\n\n return [cx, groups.map(item => [item[0], item[item.length - 1]])] as [number, number[][]]\n })\n .forEach(([cx, groups]) => {\n groups.forEach(([y1, y2]) => {\n dots.push(\n svg`\n \n `\n )\n })\n })\n\n return dots\n }\n}\n","import { ThemeCtrl } from '@walletconnect/modal-core'\nimport { html, LitElement, svg } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { QrCodeUtil } from '../../utils/QrCode'\nimport { SvgUtil } from '../../utils/SvgUtil'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-qrcode')\nexport class WcmQrCode extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- state & properties ------------------------------------------- //\n @property() public uri = ''\n @property({ type: Number }) public size = 0\n @property() public imageId?: string = undefined\n @property() public walletId?: string = undefined\n @property() public imageUrl?: string = undefined\n\n // -- private ------------------------------------------------------ //\n private svgTemplate() {\n const isLightMode = ThemeCtrl.state.themeMode === 'light'\n const size = isLightMode ? this.size : this.size - 18 * 2\n\n return svg`\n \n ${QrCodeUtil.generate(this.uri, size, size / 4)}\n \n `\n }\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const classes = {\n 'wcm-dark': ThemeCtrl.state.themeMode === 'dark'\n }\n\n return html`\n
\n ${this.walletId || this.imageUrl\n ? html`\n \n `\n : SvgUtil.WALLET_CONNECT_ICON_COLORED}\n ${this.svgTemplate()}\n
\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-qrcode': WcmQrCode\n }\n}\n","import { html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { SvgUtil } from '../../utils/SvgUtil'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-search-input')\nexport class WcmSearchInput extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n @property() public onChange = () => null\n\n // -- render ------------------------------------------------------- //\n protected render() {\n return html`\n \n ${SvgUtil.SEARCH_ICON}\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-search-input': WcmSearchInput\n }\n}\n","import { html, LitElement } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-spinner')\nexport class WcmSpinner extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- render ------------------------------------------------------- //\n protected render() {\n return html`\n \n \n \n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-spinner': WcmSpinner\n }\n}\n","import { html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport styles from './styles.css'\n\ntype Variant =\n | 'big-bold'\n | 'medium-regular'\n | 'small-regular'\n | 'small-thin'\n | 'xsmall-bold'\n | 'xsmall-regular'\n\ntype Color = 'accent' | 'error' | 'inverse' | 'primary' | 'secondary' | 'tertiary'\n\n@customElement('wcm-text')\nexport class WcmText extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- state & properties ------------------------------------------- //\n @property() public variant?: Variant = 'medium-regular'\n @property() public color?: Color | string = 'primary'\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const classes = {\n 'wcm-big-bold': this.variant === 'big-bold',\n 'wcm-medium-regular': this.variant === 'medium-regular',\n 'wcm-small-regular': this.variant === 'small-regular',\n 'wcm-small-thin': this.variant === 'small-thin',\n 'wcm-xsmall-regular': this.variant === 'xsmall-regular',\n 'wcm-xsmall-bold': this.variant === 'xsmall-bold',\n 'wcm-color-primary': this.color === 'primary',\n 'wcm-color-secondary': this.color === 'secondary',\n 'wcm-color-tertiary': this.color === 'tertiary',\n 'wcm-color-inverse': this.color === 'inverse',\n 'wcm-color-accnt': this.color === 'accent',\n 'wcm-color-error': this.color === 'error'\n }\n\n return html`\n \n \n \n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-text': WcmText\n }\n}\n","import { EventsCtrl } from '@walletconnect/modal-core'\nimport { html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport { UiUtil } from '../../utils/UiUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-wallet-button')\nexport class WcmWalletButton extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- state & properties ------------------------------------------- //\n @property() public onClick: () => void = () => null\n @property() public name = ''\n @property() public walletId = ''\n @property() public label?: string = undefined\n @property() public imageId?: string = undefined\n @property({ type: Boolean }) public installed? = false\n @property({ type: Boolean }) public recent? = false\n\n // -- private ------------------------------------------------------ //\n private sublabelTemplate() {\n if (this.recent) {\n return html`\n RECENT\n `\n } else if (this.installed) {\n return html`\n INSTALLED\n `\n }\n\n return null\n }\n\n private handleClick() {\n EventsCtrl.click({ name: 'WALLET_BUTTON', walletId: this.walletId })\n this.onClick()\n }\n\n // -- render ------------------------------------------------------- //\n protected render() {\n return html`\n \n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-wallet-button': WcmWalletButton\n }\n}\n","import { html, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { SvgUtil } from '../../utils/SvgUtil'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport { UiUtil } from '../../utils/UiUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-wallet-image')\nexport class WcmWalletImage extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- state & properties ------------------------------------------- //\n @property() public walletId = ''\n @property() public imageId?: string = undefined\n @property() public imageUrl?: string = undefined\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const src = this.imageUrl?.length\n ? this.imageUrl\n : UiUtil.getWalletIcon({ id: this.walletId, image_id: this.imageId })\n\n return html`\n ${src.length\n ? html`\n
\n ${this.id}\n
\n `\n : SvgUtil.WALLET_PLACEHOLDER}\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-wallet-image': WcmWalletImage\n }\n}\n","import { ConfigCtrl, ExplorerCtrl, OptionsCtrl, ToastCtrl } from '@walletconnect/modal-core'\nimport { LitElement } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\nimport { UiUtil } from '../utils/UiUtil'\n\n@customElement('wcm-explorer-context')\nexport class WcmExplorerContext extends LitElement {\n // -- state & properties ------------------------------------------- //\n @state() private preload = true\n\n // -- lifecycle ---------------------------------------------------- //\n public constructor() {\n super()\n\n // Load explorer and asset data\n this.preloadData()\n }\n\n // -- private ------------------------------------------------------ //\n private async loadImages(images?: string[]) {\n try {\n if (images?.length) {\n await Promise.all(images.map(async url => UiUtil.preloadImage(url)))\n }\n } catch {\n console.info('Unsuccessful attempt at preloading some images', images)\n }\n }\n\n private async preloadListings() {\n if (ConfigCtrl.state.enableExplorer) {\n await ExplorerCtrl.getRecomendedWallets()\n OptionsCtrl.setIsDataLoaded(true)\n const { recomendedWallets } = ExplorerCtrl.state\n const walletImgs = recomendedWallets.map(wallet => UiUtil.getWalletIcon(wallet))\n await this.loadImages(walletImgs)\n } else {\n OptionsCtrl.setIsDataLoaded(true)\n }\n }\n\n private async preloadCustomImages() {\n const images = UiUtil.getCustomImageUrls()\n await this.loadImages(images)\n }\n\n private async preloadData() {\n try {\n if (this.preload) {\n this.preload = false\n await Promise.all([this.preloadListings(), this.preloadCustomImages()])\n }\n } catch (err) {\n console.error(err)\n ToastCtrl.openToast('Failed preloading', 'error')\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-explorer-context': WcmExplorerContext\n }\n}\n","import { ThemeCtrl } from '@walletconnect/modal-core'\nimport { LitElement } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { ThemeUtil } from '../utils/ThemeUtil'\n\n@customElement('wcm-theme-context')\nexport class WcmThemeContext extends LitElement {\n // -- lifecycle ---------------------------------------------------- //\n public constructor() {\n super()\n\n // Set & Subscribe to theme state\n ThemeUtil.setTheme()\n this.unsubscribeTheme = ThemeCtrl.subscribe(ThemeUtil.setTheme)\n }\n\n public disconnectedCallback() {\n this.unsubscribeTheme?.()\n }\n\n // -- private ------------------------------------------------------ //\n private readonly unsubscribeTheme?: () => void = undefined\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-theme-context': WcmThemeContext\n }\n}\n","import { CoreUtil, ExplorerCtrl, RouterCtrl } from '@walletconnect/modal-core'\nimport { LitElement, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { SvgUtil } from '../../utils/SvgUtil'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport { UiUtil } from '../../utils/UiUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-android-wallet-selection')\nexport class WcmAndroidWalletSelection extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- private ------------------------------------------------------ //\n private onGoToQrcode() {\n RouterCtrl.push('Qrcode')\n }\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const { recomendedWallets } = ExplorerCtrl.state\n const wallets = [...recomendedWallets, ...recomendedWallets]\n const recomendedCount = CoreUtil.RECOMMENDED_WALLET_AMOUNT * 2\n\n return html`\n \n\n \n
\n ${SvgUtil.MOBILE_ICON}\n WalletConnect\n
\n\n
\n
\n ${[...Array(recomendedCount)].map((_, index) => {\n const wallet = wallets[index % wallets.length]\n\n return wallet\n ? html``\n : SvgUtil.WALLET_PLACEHOLDER\n })}\n
\n \n Select Wallet\n \n
\n
\n\n \n \n Choose WalletConnect to see supported apps on your device\n \n \n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-android-wallet-selection': WcmAndroidWalletSelection\n }\n}\n","import { ThemeCtrl } from '@walletconnect/modal-core'\nimport { LitElement, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-connector-waiting')\nexport class WcmConnectorWaiting extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- state & properties ------------------------------------------- //\n @property() public walletId?: string = undefined\n @property() public imageId?: string = undefined\n @property({ type: Boolean }) public isError = false\n @property({ type: Boolean }) public isStale = false\n @property() public label = ''\n\n // -- private ------------------------------------------------------ //\n private svgLoaderTemplate() {\n const ICON_SIZE = 88\n const DH_ARRAY = 317\n const DH_OFFSET = 425\n\n const radius =\n ThemeCtrl.state.themeVariables?.['--wcm-wallet-icon-large-border-radius'] ??\n ThemeUtil.getPreset('--wcm-wallet-icon-large-border-radius')\n let numRadius = 0\n\n if (radius.includes('%')) {\n numRadius = (ICON_SIZE / 100) * parseInt(radius, 10)\n } else {\n numRadius = parseInt(radius, 10)\n }\n\n numRadius *= 1.17\n const dashArray = DH_ARRAY - numRadius * 1.57\n const dashOffset = DH_OFFSET - numRadius * 1.8\n\n return html`\n \n \n \n \n `\n }\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const classes = {\n 'wcm-error': this.isError,\n 'wcm-stale': this.isStale\n }\n\n return html`\n
\n ${this.svgLoaderTemplate()}\n \n
\n \n ${this.isError ? 'Connection declined' : this.label}\n \n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-connector-waiting': WcmConnectorWaiting\n }\n}\n","import { ConfigCtrl, CoreUtil, ExplorerCtrl } from '@walletconnect/modal-core'\nimport { UiUtil } from './UiUtil'\n\nexport const DataUtil = {\n manualWallets() {\n const { mobileWallets, desktopWallets } = ConfigCtrl.state\n const recentWalletId = DataUtil.recentWallet()?.id\n const platformWallets = CoreUtil.isMobile() ? mobileWallets : desktopWallets\n const wallets = platformWallets?.filter(wallet => recentWalletId !== wallet.id)\n\n return (\n (CoreUtil.isMobile()\n ? wallets?.map(({ id, name, links }) => ({ id, name, mobile: links, links }))\n : wallets?.map(({ id, name, links }) => ({ id, name, desktop: links, links }))) ?? []\n )\n },\n\n recentWallet() {\n return UiUtil.getRecentWallet()\n },\n\n recomendedWallets(skipRecent = false) {\n const recentWalletId = skipRecent ? undefined : DataUtil.recentWallet()?.id\n const { recomendedWallets } = ExplorerCtrl.state\n const wallets = recomendedWallets.filter(wallet => recentWalletId !== wallet.id)\n\n return wallets\n }\n}\n","import type { WalletData } from '@walletconnect/modal-core'\nimport { html } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { DataUtil } from './DataUtil'\nimport { UiUtil } from './UiUtil'\n\nexport const TemplateUtil = {\n onConnecting(data: WalletData) {\n UiUtil.goToConnectingView(data)\n },\n\n manualWalletsTemplate() {\n const wallets = DataUtil.manualWallets()\n\n return wallets.map(\n wallet => html`\n this.onConnecting(wallet)}\n >\n `\n )\n },\n\n recomendedWalletsTemplate(skipRecent = false) {\n const wallets = DataUtil.recomendedWallets(skipRecent)\n\n return wallets.map(\n wallet => html`\n this.onConnecting(wallet)}\n >\n `\n )\n },\n\n recentWalletTemplate() {\n const wallet = DataUtil.recentWallet()\n\n if (!wallet) {\n return undefined\n }\n\n return html`\n this.onConnecting(wallet)}\n >\n `\n }\n}\n","import { ConfigCtrl } from '@walletconnect/modal-core'\nimport { LitElement, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { SvgUtil } from '../../utils/SvgUtil'\nimport { TemplateUtil } from '../../utils/TemplateUtil'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport { UiUtil } from '../../utils/UiUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-desktop-wallet-selection')\nexport class WcmDesktopWalletSelection extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const { explorerExcludedWalletIds, enableExplorer } = ConfigCtrl.state\n const isExplorerWallets = explorerExcludedWalletIds !== 'ALL' && enableExplorer\n const manualTemplate = TemplateUtil.manualWalletsTemplate()\n const recomendedTemplate = TemplateUtil.recomendedWalletsTemplate()\n const recentTemplate = TemplateUtil.recentWalletTemplate()\n let templates = [recentTemplate, ...manualTemplate, ...recomendedTemplate]\n templates = templates.filter(Boolean)\n\n const isViewAll = templates.length > 4 || isExplorerWallets\n let wallets = []\n if (isViewAll) {\n wallets = templates.slice(0, 3)\n } else {\n wallets = templates\n }\n const isWallets = Boolean(wallets.length)\n\n return html`\n \n\n \n
\n
\n ${SvgUtil.MOBILE_ICON}\n Mobile\n
\n\n
\n ${SvgUtil.SCAN_ICON}\n Scan with your wallet\n
\n
\n \n
\n\n ${isWallets\n ? html`\n \n
\n ${SvgUtil.DESKTOP_ICON}\n Desktop\n
\n\n
\n ${wallets}\n ${isViewAll\n ? html``\n : null}\n
\n
\n `\n : null}\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-desktop-wallet-selection': WcmDesktopWalletSelection\n }\n}\n","import { ConfigCtrl } from '@walletconnect/modal-core'\nimport { html, LitElement } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-legal-notice')\nexport class WcmLegalNotice extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const { termsOfServiceUrl, privacyPolicyUrl } = ConfigCtrl.state\n const isLegal = termsOfServiceUrl ?? privacyPolicyUrl\n\n if (!isLegal) {\n return null\n }\n\n return html`\n
\n \n By connecting your wallet to this app, you agree to the app's\n ${termsOfServiceUrl\n ? html`\n Terms of Service\n `\n : null}\n ${termsOfServiceUrl && privacyPolicyUrl ? 'and' : null}\n ${privacyPolicyUrl\n ? html`\n Privacy Policy\n `\n : null}\n \n
\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-legal-notice': WcmLegalNotice\n }\n}\n","import { ConfigCtrl, RouterCtrl } from '@walletconnect/modal-core'\nimport { LitElement, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { SvgUtil } from '../../utils/SvgUtil'\nimport { TemplateUtil } from '../../utils/TemplateUtil'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-mobile-wallet-selection')\nexport class WcmMobileWalletSelection extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- private ------------------------------------------------------ //\n private onQrcode() {\n RouterCtrl.push('Qrcode')\n }\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const { explorerExcludedWalletIds, enableExplorer } = ConfigCtrl.state\n const isExplorerWallets = explorerExcludedWalletIds !== 'ALL' && enableExplorer\n const manualTemplate = TemplateUtil.manualWalletsTemplate()\n const recomendedTemplate = TemplateUtil.recomendedWalletsTemplate()\n const recentTemplate = TemplateUtil.recentWalletTemplate()\n let templates = [recentTemplate, ...manualTemplate, ...recomendedTemplate]\n templates = templates.filter(Boolean)\n\n const isViewAll = templates.length > 8 || isExplorerWallets\n let wallets = []\n if (isViewAll) {\n wallets = templates.slice(0, 7)\n } else {\n wallets = templates\n }\n\n const isWallets = Boolean(wallets.length)\n\n return html`\n \n\n ${isWallets\n ? html`\n \n
\n ${wallets}\n ${isViewAll\n ? html``\n : null}\n
\n
\n `\n : null}\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-mobile-wallet-selection': WcmMobileWalletSelection\n }\n}\n","import { ModalCtrl } from '@walletconnect/modal-core'\nimport { LitElement, html } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { animate } from 'motion'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport { UiUtil } from '../../utils/UiUtil'\nimport styles from './styles.css'\n\ntype Target = HTMLElement | undefined\n\n@customElement('wcm-modal')\nexport class WcmModal extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- state & properties ------------------------------------------- //\n @state() private open = false\n @state() private active = false\n\n // -- lifecycle ---------------------------------------------------- //\n public constructor() {\n super()\n\n // Subscribe to modal state\n this.unsubscribeModal = ModalCtrl.subscribe(modalState => {\n if (modalState.open) {\n this.onOpenModalEvent()\n } else {\n this.onCloseModalEvent()\n }\n })\n }\n\n public disconnectedCallback() {\n this.unsubscribeModal?.()\n }\n\n // -- private ------------------------------------------------------ //\n private readonly unsubscribeModal?: () => void = undefined\n private abortController?: AbortController = undefined\n\n private get overlayEl() {\n return UiUtil.getShadowRootElement(this, '.wcm-overlay')\n }\n\n private get containerEl() {\n return UiUtil.getShadowRootElement(this, '.wcm-container')\n }\n\n private toggleBodyScroll(enabled: boolean) {\n const body = document.querySelector('body')\n if (body) {\n if (enabled) {\n const wcmStyles = document.getElementById('wcm-styles')\n wcmStyles?.remove()\n } else {\n document.head.insertAdjacentHTML(\n 'beforeend',\n ``\n )\n }\n }\n }\n\n private onCloseModal(event: PointerEvent) {\n if (event.target === event.currentTarget) {\n ModalCtrl.close()\n }\n }\n\n private onOpenModalEvent() {\n this.toggleBodyScroll(false)\n this.addKeyboardEvents()\n this.open = true\n setTimeout(async () => {\n const animation = UiUtil.isMobileAnimation() ? { y: ['50vh', '0vh'] } : { scale: [0.98, 1] }\n const delay = 0.1\n const duration = 0.2\n await Promise.all([\n animate(this.overlayEl, { opacity: [0, 1] }, { delay, duration }).finished,\n animate(this.containerEl, animation, { delay, duration }).finished\n ])\n this.active = true\n }, 0)\n }\n\n private async onCloseModalEvent() {\n this.toggleBodyScroll(true)\n this.removeKeyboardEvents()\n const animation = UiUtil.isMobileAnimation() ? { y: ['0vh', '50vh'] } : { scale: [1, 0.98] }\n const duration = 0.2\n await Promise.all([\n animate(this.overlayEl, { opacity: [1, 0] }, { duration }).finished,\n animate(this.containerEl, animation, { duration }).finished\n ])\n this.containerEl.removeAttribute('style')\n this.active = false\n this.open = false\n }\n\n private addKeyboardEvents() {\n this.abortController = new AbortController()\n window.addEventListener(\n 'keydown',\n event => {\n if (event.key === 'Escape') {\n ModalCtrl.close()\n } else if (event.key === 'Tab') {\n if (!(event.target as Target)?.tagName.includes('wcm-')) {\n this.containerEl.focus()\n }\n }\n },\n this.abortController\n )\n this.containerEl.focus()\n }\n\n private removeKeyboardEvents() {\n this.abortController?.abort()\n this.abortController = undefined\n }\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const classes = {\n 'wcm-overlay': true,\n 'wcm-active': this.active\n }\n\n return html`\n \n \n\n \n
\n ${this.open\n ? html`\n \n
\n \n \n
\n `\n : null}\n
\n \n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-modal': WcmModal\n }\n}\n","import { CoreUtil, RouterCtrl } from '@walletconnect/modal-core'\nimport { LitElement, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { SvgUtil } from '../../utils/SvgUtil'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-platform-selection')\nexport class WcmPlatformSelection extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- state & properties ------------------------------------------- //\n @property({ type: Boolean }) public isMobile = false\n @property({ type: Boolean }) public isDesktop = false\n @property({ type: Boolean }) public isWeb = false\n @property({ type: Boolean }) public isRetry = false\n\n // -- private ------------------------------------------------------ //\n private onMobile() {\n const isMobile = CoreUtil.isMobile()\n if (isMobile) {\n RouterCtrl.replace('MobileConnecting')\n } else {\n RouterCtrl.replace('MobileQrcodeConnecting')\n }\n }\n\n private onDesktop() {\n RouterCtrl.replace('DesktopConnecting')\n }\n\n private onWeb() {\n RouterCtrl.replace('WebConnecting')\n }\n\n // -- render ------------------------------------------------------- //\n protected render() {\n return html`\n
\n ${this.isRetry ? html`` : null}\n ${this.isMobile\n ? html`\n Mobile\n `\n : null}\n ${this.isDesktop\n ? html`\n Desktop\n `\n : null}\n ${this.isWeb\n ? html`\n Web\n `\n : null}\n
\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-platform-selection': WcmPlatformSelection\n }\n}\n","import { ExplorerCtrl, RouterCtrl } from '@walletconnect/modal-core'\nimport { LitElement, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { DataUtil } from '../../utils/DataUtil'\nimport { SvgUtil } from '../../utils/SvgUtil'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport { UiUtil } from '../../utils/UiUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-view-all-wallets-button')\nexport class WcmViewAllWalletsButton extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- render ------------------------------------------------------- //\n private onClick() {\n RouterCtrl.push('WalletExplorer')\n }\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const { recomendedWallets } = ExplorerCtrl.state\n const manualWallets = DataUtil.manualWallets()\n const reversedWallets = [...recomendedWallets, ...manualWallets].reverse().slice(0, 4)\n\n return html`\n \n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-view-all-wallets-button': WcmViewAllWalletsButton\n }\n}\n","import { OptionsCtrl } from '@walletconnect/modal-core'\nimport { LitElement, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport { UiUtil } from '../../utils/UiUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-walletconnect-qr')\nexport class WcmWalletConnectQr extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- state & properties ------------------------------------------- //\n @property() public walletId? = ''\n @property() public imageId? = ''\n @state() private uri? = ''\n\n // -- lifecycle ---------------------------------------------------- //\n public constructor() {\n super()\n setTimeout(() => {\n const { walletConnectUri } = OptionsCtrl.state\n this.uri = walletConnectUri\n }, 0)\n }\n\n // -- private ------------------------------------------------------ //\n\n private get overlayEl(): HTMLDivElement {\n return UiUtil.getShadowRootElement(this, '.wcm-qr-container') as HTMLDivElement\n }\n\n // -- render ------------------------------------------------------- //\n protected render() {\n return html`\n
\n ${this.uri\n ? html``\n : html``}\n
\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-walletconnect-qr': WcmWalletConnectQr\n }\n}\n","import { CoreUtil } from '@walletconnect/modal-core'\nimport { html, LitElement } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\n\n@customElement('wcm-connect-wallet-view')\nexport class WcmConnectWalletView extends LitElement {\n public static styles = [ThemeUtil.globalCss]\n\n // -- private ------------------------------------------------------ //\n private viewTemplate() {\n if (CoreUtil.isAndroid()) {\n return html``\n }\n\n if (CoreUtil.isMobile()) {\n return html``\n }\n\n return html``\n }\n\n // -- render ------------------------------------------------------- //\n protected render() {\n return html`\n ${this.viewTemplate()}\n \n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-connect-wallet-view': WcmConnectWalletView\n }\n}\n","import { CoreUtil, OptionsCtrl } from '@walletconnect/modal-core'\nimport { LitElement, html } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { SvgUtil } from '../../utils/SvgUtil'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport { UiUtil } from '../../utils/UiUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-desktop-connecting-view')\nexport class WcmDesktopConnectingView extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- state & properties ------------------------------------------- //\n @state() public isError = false\n\n // -- lifecycle ---------------------------------------------------- //\n public constructor() {\n super()\n this.openDesktopApp()\n }\n\n // -- private ------------------------------------------------------ //\n\n private onFormatAndRedirect(uri: string) {\n const { desktop, name } = CoreUtil.getWalletRouterData()\n const nativeUrl = desktop?.native\n\n if (nativeUrl) {\n const href = CoreUtil.formatNativeUrl(nativeUrl, uri, name)\n CoreUtil.openHref(href, '_self')\n }\n }\n\n private openDesktopApp() {\n const { walletConnectUri } = OptionsCtrl.state\n const routerData = CoreUtil.getWalletRouterData()\n UiUtil.setRecentWallet(routerData)\n if (walletConnectUri) {\n this.onFormatAndRedirect(walletConnectUri)\n }\n }\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const { name, id, image_id } = CoreUtil.getWalletRouterData()\n const { isMobile, isWeb } = UiUtil.getCachedRouterWalletPlatforms()\n\n return html`\n \n\n \n \n \n\n \n \n ${`Connection can continue loading if ${name} is not installed on your device`}\n \n\n \n \n Retry\n \n \n \n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-desktop-connecting-view': WcmDesktopConnectingView\n }\n}\n","import { CoreUtil } from '@walletconnect/modal-core'\nimport { LitElement, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { SvgUtil } from '../../utils/SvgUtil'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-install-wallet-view')\nexport class WcmInstallWalletView extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- private ------------------------------------------------------ //\n\n private onInstall(uri?: string) {\n if (uri) {\n CoreUtil.openHref(uri, '_blank')\n }\n }\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const { name, id, image_id, homepage } = CoreUtil.getWalletRouterData()\n\n return html`\n \n\n \n \n \n\n \n \n ${`Download ${name} to continue. If multiple browser extensions are installed, disable non ${name} ones and try again`}\n \n\n this.onInstall(homepage)} .iconLeft=${SvgUtil.ARROW_DOWN_ICON}>\n Download\n \n \n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-install-wallet-view': WcmInstallWalletView\n }\n}\n","import { CoreUtil, OptionsCtrl } from '@walletconnect/modal-core'\nimport { LitElement, html } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { SvgUtil } from '../../utils/SvgUtil'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport { UiUtil } from '../../utils/UiUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-mobile-connecting-view')\nexport class WcmMobileConnectingView extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- state & properties ------------------------------------------- //\n @state() public isError = false\n\n // -- lifecycle ---------------------------------------------------- //\n public constructor() {\n super()\n this.openMobileApp()\n }\n\n // -- private ------------------------------------------------------ //\n\n private onFormatAndRedirect(uri: string, forceUniversalUrl = false) {\n const { mobile, name } = CoreUtil.getWalletRouterData()\n const nativeUrl = mobile?.native\n const universalUrl = mobile?.universal\n\n if (nativeUrl && !forceUniversalUrl) {\n const href = CoreUtil.formatNativeUrl(nativeUrl, uri, name)\n CoreUtil.openHref(href, '_self')\n } else if (universalUrl) {\n const href = CoreUtil.formatUniversalUrl(universalUrl, uri, name)\n CoreUtil.openHref(href, '_self')\n }\n }\n\n private openMobileApp(forceUniversalUrl = false) {\n const { walletConnectUri } = OptionsCtrl.state\n const routerData = CoreUtil.getWalletRouterData()\n UiUtil.setRecentWallet(routerData)\n if (walletConnectUri) {\n this.onFormatAndRedirect(walletConnectUri, forceUniversalUrl)\n }\n }\n\n private onGoToAppStore(downloadUrl?: string) {\n if (downloadUrl) {\n CoreUtil.openHref(downloadUrl, '_blank')\n }\n }\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const { name, id, image_id, app, mobile } = CoreUtil.getWalletRouterData()\n const { isWeb } = UiUtil.getCachedRouterWalletPlatforms()\n const downloadUrl = app?.ios\n const universalUrl = mobile?.universal\n\n return html`\n \n\n \n \n \n\n \n \n this.openMobileApp(false)} .iconRight=${SvgUtil.RETRY_ICON}>\n Retry\n \n \n\n ${universalUrl\n ? html`\n \n Still doesn't work?\n this.openMobileApp(true)}>\n Try this alternate link\n \n \n `\n : null}\n \n\n \n
\n \n ${`Get ${name}`}\n
\n this.onGoToAppStore(downloadUrl)}\n variant=\"ghost\"\n >\n App Store\n \n
\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-mobile-connecting-view': WcmMobileConnectingView\n }\n}\n","import { CoreUtil } from '@walletconnect/modal-core'\nimport { LitElement, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { SvgUtil } from '../../utils/SvgUtil'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport { UiUtil } from '../../utils/UiUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-mobile-qr-connecting-view')\nexport class WcmMobileQrConnectingView extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const { name, id, image_id } = CoreUtil.getWalletRouterData()\n const { isDesktop, isWeb } = UiUtil.getCachedRouterWalletPlatforms()\n\n return html`\n \n\n \n \n \n\n \n \n ${`Scan this QR Code with your phone's camera or inside ${name} app`}\n \n\n \n \n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-mobile-qr-connecting-view': WcmMobileQrConnectingView\n }\n}\n","import { html, LitElement } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { SvgUtil } from '../../utils/SvgUtil'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport { UiUtil } from '../../utils/UiUtil'\n\n@customElement('wcm-qrcode-view')\nexport class WcmQrcodeView extends LitElement {\n public static styles = [ThemeUtil.globalCss]\n\n // -- render ------------------------------------------------------- //\n protected render() {\n return html`\n \n\n \n \n \n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-qrcode-view': WcmQrcodeView\n }\n}\n","import type { Listing } from '@walletconnect/modal-core'\nimport { CoreUtil, ExplorerCtrl, OptionsCtrl, ToastCtrl } from '@walletconnect/modal-core'\nimport { LitElement, html } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { TemplateUtil } from '../../utils/TemplateUtil'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport { UiUtil } from '../../utils/UiUtil'\nimport styles from './styles.css'\n\nconst PAGE_ENTRIES = 40\n\n@customElement('wcm-wallet-explorer-view')\nexport class WcmWalletExplorerView extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- state & properties ------------------------------------------- //\n @state() private loading = !ExplorerCtrl.state.wallets.listings.length\n @state() private firstFetch = !ExplorerCtrl.state.wallets.listings.length\n @state() private search = ''\n @state() private endReached = false\n\n // -- lifecycle ---------------------------------------------------- //\n public firstUpdated() {\n this.createPaginationObserver()\n }\n\n public disconnectedCallback() {\n this.intersectionObserver?.disconnect()\n }\n\n // -- private ------------------------------------------------------ //\n private get placeholderEl() {\n return UiUtil.getShadowRootElement(this, '.wcm-placeholder-block')\n }\n\n private intersectionObserver: IntersectionObserver | undefined = undefined\n\n private createPaginationObserver() {\n this.intersectionObserver = new IntersectionObserver(([element]) => {\n if (element.isIntersecting && !(this.search && this.firstFetch)) {\n this.fetchWallets()\n }\n })\n this.intersectionObserver.observe(this.placeholderEl)\n }\n\n private isLastPage() {\n const { wallets, search } = ExplorerCtrl.state\n const { listings, total } = this.search ? search : wallets\n\n return total <= PAGE_ENTRIES || listings.length >= total\n }\n\n private async fetchWallets() {\n const { wallets, search } = ExplorerCtrl.state\n const { listings, total, page } = this.search ? search : wallets\n\n if (\n !this.endReached &&\n (this.firstFetch || (total > PAGE_ENTRIES && listings.length < total))\n ) {\n try {\n this.loading = true\n const chains = OptionsCtrl.state.chains?.join(',')\n const { listings: newListings } = await ExplorerCtrl.getWallets({\n page: this.firstFetch ? 1 : page + 1,\n entries: PAGE_ENTRIES,\n search: this.search,\n version: 2,\n chains\n })\n const explorerImages = newListings.map(wallet => UiUtil.getWalletIcon(wallet))\n await Promise.all([\n ...explorerImages.map(async url => UiUtil.preloadImage(url)),\n CoreUtil.wait(300)\n ])\n this.endReached = this.isLastPage()\n } catch (err) {\n console.error(err)\n ToastCtrl.openToast(UiUtil.getErrorMessage(err), 'error')\n } finally {\n this.loading = false\n this.firstFetch = false\n }\n }\n }\n\n private onConnect(listing: Listing) {\n if (CoreUtil.isAndroid()) {\n UiUtil.handleMobileLinking(listing)\n } else {\n UiUtil.goToConnectingView(listing)\n }\n }\n\n private onSearchChange(event: Event) {\n const { value } = event.target as HTMLInputElement\n this.searchDebounce(value)\n }\n\n private readonly searchDebounce = UiUtil.debounce((value: string) => {\n if (value.length >= 3) {\n this.firstFetch = true\n this.endReached = false\n this.search = value\n ExplorerCtrl.resetSearch()\n this.fetchWallets()\n } else if (this.search) {\n this.search = ''\n this.endReached = this.isLastPage()\n ExplorerCtrl.resetSearch()\n }\n })\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const { wallets, search } = ExplorerCtrl.state\n const { listings } = this.search ? search : wallets\n const isLoading = this.loading && !listings.length\n const isSearch = this.search.length >= 3\n let manualWallets = TemplateUtil.manualWalletsTemplate()\n let recomendedWallets = TemplateUtil.recomendedWalletsTemplate(true)\n\n // If search is active, we only show results matching query\n if (isSearch) {\n manualWallets = manualWallets.filter(({ values }) =>\n UiUtil.caseSafeIncludes(values[0] as string, this.search)\n )\n recomendedWallets = recomendedWallets.filter(({ values }) =>\n UiUtil.caseSafeIncludes(values[0] as string, this.search)\n )\n }\n\n const isEmpty = !this.loading && !listings.length && !recomendedWallets.length\n const classes = {\n 'wcm-loading': isLoading,\n 'wcm-end-reached': this.endReached || !this.loading,\n 'wcm-empty': isEmpty\n }\n\n return html`\n \n \n \n\n \n
\n ${isLoading ? null : manualWallets} ${isLoading ? null : recomendedWallets}\n ${isLoading\n ? null\n : listings.map(\n listing => html`\n ${listing\n ? html`\n this.onConnect(listing)}\n >\n \n `\n : null}\n `\n )}\n
\n
\n ${isEmpty\n ? html`No results found`\n : null}\n ${!isEmpty && this.loading ? html`` : null}\n
\n
\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-wallet-explorer-view': WcmWalletExplorerView\n }\n}\n","import { CoreUtil, OptionsCtrl } from '@walletconnect/modal-core'\nimport { LitElement, html } from 'lit'\nimport { customElement, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { SvgUtil } from '../../utils/SvgUtil'\nimport { ThemeUtil } from '../../utils/ThemeUtil'\nimport { UiUtil } from '../../utils/UiUtil'\nimport styles from './styles.css'\n\n@customElement('wcm-web-connecting-view')\nexport class WcmWebConnectingView extends LitElement {\n public static styles = [ThemeUtil.globalCss, styles]\n\n // -- state & properties ------------------------------------------- //\n @state() public isError = false\n\n // -- lifecycle ---------------------------------------------------- //\n public constructor() {\n super()\n this.openWebWallet()\n }\n\n // -- private ------------------------------------------------------ //\n private onFormatAndRedirect(uri: string) {\n const { desktop, name } = CoreUtil.getWalletRouterData()\n const universalUrl = desktop?.universal\n\n if (universalUrl) {\n const href = CoreUtil.formatUniversalUrl(universalUrl, uri, name)\n CoreUtil.openHref(href, '_blank')\n }\n }\n\n private openWebWallet() {\n const { walletConnectUri } = OptionsCtrl.state\n const routerData = CoreUtil.getWalletRouterData()\n UiUtil.setRecentWallet(routerData)\n if (walletConnectUri) {\n this.onFormatAndRedirect(walletConnectUri)\n }\n }\n\n // -- render ------------------------------------------------------- //\n protected render() {\n const { name, id, image_id } = CoreUtil.getWalletRouterData()\n const { isMobile, isDesktop } = UiUtil.getCachedRouterWalletPlatforms()\n const isMobilePlatform = CoreUtil.isMobile()\n\n return html`\n \n\n \n \n \n\n \n \n ${`${name} web app has opened in a new tab. Go there, accept the connection, and come back`}\n \n\n \n \n Retry\n \n \n \n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'wcm-web-connecting-view': WcmWebConnectingView\n }\n}\n","import{decorateProperty as r}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e){return r({finisher:(r,t)=>{Object.assign(r.prototype[t],e)}})}export{e as eventOptions};\n//# sourceMappingURL=event-options.js.map\n","'use strict'\n\nmodule.exports = function encodeUtf8 (input) {\n var result = []\n var size = input.length\n\n for (var index = 0; index < size; index++) {\n var point = input.charCodeAt(index)\n\n if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {\n var second = input.charCodeAt(index + 1)\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000\n index += 1\n }\n }\n\n // US-ASCII\n if (point < 0x80) {\n result.push(point)\n continue\n }\n\n // 2-byte UTF-8\n if (point < 0x800) {\n result.push((point >> 6) | 192)\n result.push((point & 63) | 128)\n continue\n }\n\n // 3-byte UTF-8\n if (point < 0xD800 || (point >= 0xE000 && point < 0x10000)) {\n result.push((point >> 12) | 224)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // 4-byte UTF-8\n if (point >= 0x10000 && point <= 0x10FFFF) {\n result.push((point >> 18) | 240)\n result.push(((point >> 12) & 63) | 128)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // Invalid character\n result.push(0xEF, 0xBF, 0xBD)\n }\n\n return new Uint8Array(result).buffer\n}\n","const isNumber = (value) => typeof value === \"number\";\n\nexport { isNumber };\n","const defaults = {\n duration: 0.3,\n delay: 0,\n endDelay: 0,\n repeat: 0,\n easing: \"ease\",\n};\n\nexport { defaults };\n","import{decorateProperty as r}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e){return r({descriptor:r=>({get(){var r,o;return null!==(o=null===(r=this.renderRoot)||void 0===r?void 0:r.querySelectorAll(e))&&void 0!==o?o:[]},enumerable:!0,configurable:!0})})}export{e as queryAll};\n//# sourceMappingURL=query-all.js.map\n","function stopAnimation(animation, needsCommit = true) {\n if (!animation || animation.playState === \"finished\")\n return;\n // Suppress error thrown by WAAPI\n try {\n if (animation.stop) {\n animation.stop();\n }\n else {\n needsCommit && animation.commitStyles();\n animation.cancel();\n }\n }\n catch (e) { }\n}\n\nexport { stopAnimation };\n","const clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nexport { clamp };\n","import{decorateProperty as e}from\"./base.js\";import{queryAssignedElements as t}from\"./query-assigned-elements.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function o(o,n,r){let l,s=o;return\"object\"==typeof o?(s=o.slot,l=o):l={flatten:n},r?t({slot:s,flatten:n,selector:r}):e({descriptor:e=>({get(){var e,t;const o=\"slot\"+(s?`[name=${s}]`:\":not([name])\"),n=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelector(o);return null!==(t=null==n?void 0:n.assignedNodes(l))&&void 0!==t?t:[]},enumerable:!0,configurable:!0})})}export{o as queryAssignedNodes};\n//# sourceMappingURL=query-assigned-nodes.js.map\n","/**\n * The MotionValue tracks the state of a single animatable\n * value. Currently, updatedAt and current are unused. The\n * long term idea is to use this to minimise the number\n * of DOM reads, and to abstract the DOM interactions here.\n */\nclass MotionValue {\n setAnimation(animation) {\n this.animation = animation;\n animation === null || animation === void 0 ? void 0 : animation.finished.then(() => this.clearAnimation()).catch(() => { });\n }\n clearAnimation() {\n this.animation = this.generator = undefined;\n }\n}\n\nexport { MotionValue };\n","import { MotionValue } from '@motionone/types';\n\nconst data = new WeakMap();\nfunction getAnimationData(element) {\n if (!data.has(element)) {\n data.set(element, {\n transforms: [],\n values: new Map(),\n });\n }\n return data.get(element);\n}\nfunction getMotionValue(motionValues, name) {\n if (!motionValues.has(name)) {\n motionValues.set(name, new MotionValue());\n }\n return motionValues.get(name);\n}\n\nexport { getAnimationData, getMotionValue };\n","import { noopReturn, addUniqueItem } from '@motionone/utils';\nimport { getAnimationData } from '../data.es.js';\n\n/**\n * A list of all transformable axes. We'll use this list to generated a version\n * of each axes for each transform.\n */\nconst axes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * An ordered array of each transformable value. By default, transform values\n * will be sorted to this order.\n */\nconst order = [\"translate\", \"scale\", \"rotate\", \"skew\"];\nconst transformAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n};\nconst rotation = {\n syntax: \"\",\n initialValue: \"0deg\",\n toDefaultUnit: (v) => v + \"deg\",\n};\nconst baseTransformProperties = {\n translate: {\n syntax: \"\",\n initialValue: \"0px\",\n toDefaultUnit: (v) => v + \"px\",\n },\n rotate: rotation,\n scale: {\n syntax: \"\",\n initialValue: 1,\n toDefaultUnit: noopReturn,\n },\n skew: rotation,\n};\nconst transformDefinitions = new Map();\nconst asTransformCssVar = (name) => `--motion-${name}`;\n/**\n * Generate a list of every possible transform key\n */\nconst transforms = [\"x\", \"y\", \"z\"];\norder.forEach((name) => {\n axes.forEach((axis) => {\n transforms.push(name + axis);\n transformDefinitions.set(asTransformCssVar(name + axis), baseTransformProperties[name]);\n });\n});\n/**\n * A function to use with Array.sort to sort transform keys by their default order.\n */\nconst compareTransformOrder = (a, b) => transforms.indexOf(a) - transforms.indexOf(b);\n/**\n * Provide a quick way to check if a string is the name of a transform\n */\nconst transformLookup = new Set(transforms);\nconst isTransform = (name) => transformLookup.has(name);\nconst addTransformToElement = (element, name) => {\n // Map x to translateX etc\n if (transformAlias[name])\n name = transformAlias[name];\n const { transforms } = getAnimationData(element);\n addUniqueItem(transforms, name);\n /**\n * TODO: An optimisation here could be to cache the transform in element data\n * and only update if this has changed.\n */\n element.style.transform = buildTransformTemplate(transforms);\n};\nconst buildTransformTemplate = (transforms) => transforms\n .sort(compareTransformOrder)\n .reduce(transformListToString, \"\")\n .trim();\nconst transformListToString = (template, name) => `${template} ${name}(var(${asTransformCssVar(name)}))`;\n\nexport { addTransformToElement, asTransformCssVar, axes, buildTransformTemplate, compareTransformOrder, isTransform, transformAlias, transformDefinitions };\n","function addUniqueItem(array, item) {\n array.indexOf(item) === -1 && array.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n index > -1 && arr.splice(index, 1);\n}\n\nexport { addUniqueItem, removeItem };\n","import { transformDefinitions } from './transforms.es.js';\n\nconst isCssVar = (name) => name.startsWith(\"--\");\nconst registeredProperties = new Set();\nfunction registerCssVariable(name) {\n if (registeredProperties.has(name))\n return;\n registeredProperties.add(name);\n try {\n const { syntax, initialValue } = transformDefinitions.has(name)\n ? transformDefinitions.get(name)\n : {};\n CSS.registerProperty({\n name,\n inherits: false,\n syntax,\n initialValue,\n });\n }\n catch (e) { }\n}\n\nexport { isCssVar, registerCssVariable, registeredProperties };\n","const testAnimation = (keyframes, options) => document.createElement(\"div\").animate(keyframes, options);\nconst featureTests = {\n cssRegisterProperty: () => typeof CSS !== \"undefined\" &&\n Object.hasOwnProperty.call(CSS, \"registerProperty\"),\n waapi: () => Object.hasOwnProperty.call(Element.prototype, \"animate\"),\n partialKeyframes: () => {\n try {\n testAnimation({ opacity: [1] });\n }\n catch (e) {\n return false;\n }\n return true;\n },\n finished: () => Boolean(testAnimation({ opacity: [0, 1] }, { duration: 0.001 }).finished),\n linearEasing: () => {\n try {\n testAnimation({ opacity: 0 }, { easing: \"linear(0, 1)\" });\n }\n catch (e) {\n return false;\n }\n return true;\n },\n};\nconst results = {};\nconst supports = {};\nfor (const key in featureTests) {\n supports[key] = () => {\n if (results[key] === undefined)\n results[key] = featureTests[key]();\n return results[key];\n };\n}\n\nexport { supports };\n","import { isFunction, defaults, isCubicBezier, progress } from '@motionone/utils';\nimport { supports } from './feature-detection.es.js';\n\n// Create a linear easing point for every x second\nconst resolution = 0.015;\nconst generateLinearEasingPoints = (easing, duration) => {\n let points = \"\";\n const numPoints = Math.round(duration / resolution);\n for (let i = 0; i < numPoints; i++) {\n points += easing(progress(0, numPoints - 1, i)) + \", \";\n }\n return points.substring(0, points.length - 2);\n};\nconst convertEasing = (easing, duration) => {\n if (isFunction(easing)) {\n return supports.linearEasing()\n ? `linear(${generateLinearEasingPoints(easing, duration)})`\n : defaults.easing;\n }\n else {\n return isCubicBezier(easing) ? cubicBezierAsString(easing) : easing;\n }\n};\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\n\nexport { convertEasing, cubicBezierAsString, generateLinearEasingPoints };\n","import { isTransform, asTransformCssVar, transformAlias } from './transforms.es.js';\n\nfunction getStyleName(key) {\n if (transformAlias[key])\n key = transformAlias[key];\n return isTransform(key) ? asTransformCssVar(key) : key;\n}\n\nexport { getStyleName };\n","import { isCssVar } from './utils/css-var.es.js';\nimport { getStyleName } from './utils/get-style-name.es.js';\nimport { transformDefinitions } from './utils/transforms.es.js';\n\nconst style = {\n get: (element, name) => {\n name = getStyleName(name);\n let value = isCssVar(name)\n ? element.style.getPropertyValue(name)\n : getComputedStyle(element)[name];\n if (!value && value !== 0) {\n const definition = transformDefinitions.get(name);\n if (definition)\n value = definition.initialValue;\n }\n return value;\n },\n set: (element, name, value) => {\n name = getStyleName(name);\n if (isCssVar(name)) {\n element.style.setProperty(name, value);\n }\n else {\n element.style[name] = value;\n }\n },\n};\n\nexport { style };\n","import { getAnimationData, getMotionValue } from './data.es.js';\nimport { isCssVar, registerCssVariable } from './utils/css-var.es.js';\nimport { defaults, isEasingGenerator, isFunction, isEasingList, isNumber, time, noop } from '@motionone/utils';\nimport { isTransform, addTransformToElement, transformDefinitions } from './utils/transforms.es.js';\nimport { convertEasing } from './utils/easing.es.js';\nimport { supports } from './utils/feature-detection.es.js';\nimport { hydrateKeyframes, keyframesList } from './utils/keyframes.es.js';\nimport { style } from './style.es.js';\nimport { getStyleName } from './utils/get-style-name.es.js';\nimport { stopAnimation } from './utils/stop-animation.es.js';\nimport { getUnitConverter } from './utils/get-unit.es.js';\n\nfunction getDevToolsRecord() {\n return window.__MOTION_DEV_TOOLS_RECORD;\n}\nfunction animateStyle(element, key, keyframesDefinition, options = {}, AnimationPolyfill) {\n const record = getDevToolsRecord();\n const isRecording = options.record !== false && record;\n let animation;\n let { duration = defaults.duration, delay = defaults.delay, endDelay = defaults.endDelay, repeat = defaults.repeat, easing = defaults.easing, persist = false, direction, offset, allowWebkitAcceleration = false, } = options;\n const data = getAnimationData(element);\n const valueIsTransform = isTransform(key);\n let canAnimateNatively = supports.waapi();\n /**\n * If this is an individual transform, we need to map its\n * key to a CSS variable and update the element's transform style\n */\n valueIsTransform && addTransformToElement(element, key);\n const name = getStyleName(key);\n const motionValue = getMotionValue(data.values, name);\n /**\n * Get definition of value, this will be used to convert numerical\n * keyframes into the default value type.\n */\n const definition = transformDefinitions.get(name);\n /**\n * Stop the current animation, if any. Because this will trigger\n * commitStyles (DOM writes) and we might later trigger DOM reads,\n * this is fired now and we return a factory function to create\n * the actual animation that can get called in batch,\n */\n stopAnimation(motionValue.animation, !(isEasingGenerator(easing) && motionValue.generator) &&\n options.record !== false);\n /**\n * Batchable factory function containing all DOM reads.\n */\n return () => {\n const readInitialValue = () => { var _a, _b; return (_b = (_a = style.get(element, name)) !== null && _a !== void 0 ? _a : definition === null || definition === void 0 ? void 0 : definition.initialValue) !== null && _b !== void 0 ? _b : 0; };\n /**\n * Replace null values with the previous keyframe value, or read\n * it from the DOM if it's the first keyframe.\n */\n let keyframes = hydrateKeyframes(keyframesList(keyframesDefinition), readInitialValue);\n /**\n * Detect unit type of keyframes.\n */\n const toUnit = getUnitConverter(keyframes, definition);\n if (isEasingGenerator(easing)) {\n const custom = easing.createAnimation(keyframes, key !== \"opacity\", readInitialValue, name, motionValue);\n easing = custom.easing;\n keyframes = custom.keyframes || keyframes;\n duration = custom.duration || duration;\n }\n /**\n * If this is a CSS variable we need to register it with the browser\n * before it can be animated natively. We also set it with setProperty\n * rather than directly onto the element.style object.\n */\n if (isCssVar(name)) {\n if (supports.cssRegisterProperty()) {\n registerCssVariable(name);\n }\n else {\n canAnimateNatively = false;\n }\n }\n /**\n * If we've been passed a custom easing function, and this browser\n * does **not** support linear() easing, and the value is a transform\n * (and thus a pure number) we can still support the custom easing\n * by falling back to the animation polyfill.\n */\n if (valueIsTransform &&\n !supports.linearEasing() &&\n (isFunction(easing) || (isEasingList(easing) && easing.some(isFunction)))) {\n canAnimateNatively = false;\n }\n /**\n * If we can animate this value with WAAPI, do so.\n */\n if (canAnimateNatively) {\n /**\n * Convert numbers to default value types. Currently this only supports\n * transforms but it could also support other value types.\n */\n if (definition) {\n keyframes = keyframes.map((value) => isNumber(value) ? definition.toDefaultUnit(value) : value);\n }\n /**\n * If this browser doesn't support partial/implicit keyframes we need to\n * explicitly provide one.\n */\n if (keyframes.length === 1 &&\n (!supports.partialKeyframes() || isRecording)) {\n keyframes.unshift(readInitialValue());\n }\n const animationOptions = {\n delay: time.ms(delay),\n duration: time.ms(duration),\n endDelay: time.ms(endDelay),\n easing: !isEasingList(easing)\n ? convertEasing(easing, duration)\n : undefined,\n direction,\n iterations: repeat + 1,\n fill: \"both\",\n };\n animation = element.animate({\n [name]: keyframes,\n offset,\n easing: isEasingList(easing)\n ? easing.map((thisEasing) => convertEasing(thisEasing, duration))\n : undefined,\n }, animationOptions);\n /**\n * Polyfill finished Promise in browsers that don't support it\n */\n if (!animation.finished) {\n animation.finished = new Promise((resolve, reject) => {\n animation.onfinish = resolve;\n animation.oncancel = reject;\n });\n }\n const target = keyframes[keyframes.length - 1];\n animation.finished\n .then(() => {\n if (persist)\n return;\n // Apply styles to target\n style.set(element, name, target);\n // Ensure fill modes don't persist\n animation.cancel();\n })\n .catch(noop);\n /**\n * This forces Webkit to run animations on the main thread by exploiting\n * this condition:\n * https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp?rev=281238#L1099\n *\n * This fixes Webkit's timing bugs, like accelerated animations falling\n * out of sync with main thread animations and massive delays in starting\n * accelerated animations in WKWebView.\n */\n if (!allowWebkitAcceleration)\n animation.playbackRate = 1.000001;\n /**\n * If we can't animate the value natively then we can fallback to the numbers-only\n * polyfill for transforms.\n */\n }\n else if (AnimationPolyfill && valueIsTransform) {\n /**\n * If any keyframe is a string (because we measured it from the DOM), we need to convert\n * it into a number before passing to the Animation polyfill.\n */\n keyframes = keyframes.map((value) => typeof value === \"string\" ? parseFloat(value) : value);\n /**\n * If we only have a single keyframe, we need to create an initial keyframe by reading\n * the current value from the DOM.\n */\n if (keyframes.length === 1) {\n keyframes.unshift(parseFloat(readInitialValue()));\n }\n animation = new AnimationPolyfill((latest) => {\n style.set(element, name, toUnit ? toUnit(latest) : latest);\n }, keyframes, Object.assign(Object.assign({}, options), { duration,\n easing }));\n }\n else {\n const target = keyframes[keyframes.length - 1];\n style.set(element, name, definition && isNumber(target)\n ? definition.toDefaultUnit(target)\n : target);\n }\n if (isRecording) {\n record(element, key, keyframes, {\n duration,\n delay: delay,\n easing,\n repeat,\n offset,\n }, \"motion-one\");\n }\n motionValue.setAnimation(animation);\n return animation;\n };\n}\n\nexport { animateStyle };\n","function hydrateKeyframes(keyframes, readInitialValue) {\n for (let i = 0; i < keyframes.length; i++) {\n if (keyframes[i] === null) {\n keyframes[i] = i ? keyframes[i - 1] : readInitialValue();\n }\n }\n return keyframes;\n}\nconst keyframesList = (keyframes) => Array.isArray(keyframes) ? keyframes : [keyframes];\n\nexport { hydrateKeyframes, keyframesList };\n","import { noopReturn, isString } from '@motionone/utils';\n\nfunction getUnitConverter(keyframes, definition) {\n var _a;\n let toUnit = (definition === null || definition === void 0 ? void 0 : definition.toDefaultUnit) || noopReturn;\n const finalKeyframe = keyframes[keyframes.length - 1];\n if (isString(finalKeyframe)) {\n const unit = ((_a = finalKeyframe.match(/(-?[\\d.]+)([a-z%]*)/)) === null || _a === void 0 ? void 0 : _a[2]) || \"\";\n if (unit)\n toUnit = (value) => value + unit;\n }\n return toUnit;\n}\n\nexport { getUnitConverter };\n","const isString = (value) => typeof value === \"string\";\n\nexport { isString };\n","const getOptions = (options, key) => \n/**\n * TODO: Make test for this\n * Always return a new object otherwise delay is overwritten by results of stagger\n * and this results in no stagger\n */\noptions[key] ? Object.assign(Object.assign({}, options), options[key]) : Object.assign({}, options);\n\nexport { getOptions };\n","import { isNumber, isFunction } from '@motionone/utils';\nimport { getEasingFunction } from '@motionone/animation';\n\nfunction stagger(duration = 0.1, { start = 0, from = 0, easing } = {}) {\n return (i, total) => {\n const fromIndex = isNumber(from) ? from : getFromIndex(from, total);\n const distance = Math.abs(fromIndex - i);\n let delay = duration * distance;\n if (easing) {\n const maxDelay = total * duration;\n const easingFunction = getEasingFunction(easing);\n delay = easingFunction(delay / maxDelay) * maxDelay;\n }\n return start + delay;\n };\n}\nfunction getFromIndex(from, total) {\n if (from === \"first\") {\n return 0;\n }\n else {\n const lastIndex = total - 1;\n return from === \"last\" ? lastIndex : lastIndex / 2;\n }\n}\nfunction resolveOption(option, i, total) {\n return isFunction(option) ? option(i, total) : option;\n}\n\nexport { getFromIndex, resolveOption, stagger };\n","import { Animation } from '@motionone/animation';\nimport { createAnimate } from './create-animate.es.js';\n\nconst animate = createAnimate(Animation);\n\nexport { animate };\n","import { invariant } from 'hey-listen';\nimport { animateStyle } from './animate-style.es.js';\nimport { getOptions } from './utils/options.es.js';\nimport { resolveElements } from '../utils/resolve-elements.es.js';\nimport { withControls } from './utils/controls.es.js';\nimport { resolveOption } from '../utils/stagger.es.js';\n\nfunction createAnimate(AnimatePolyfill) {\n return function animate(elements, keyframes, options = {}) {\n elements = resolveElements(elements);\n const numElements = elements.length;\n invariant(Boolean(numElements), \"No valid element provided.\");\n invariant(Boolean(keyframes), \"No keyframes defined.\");\n /**\n * Create and start new animations\n */\n const animationFactories = [];\n for (let i = 0; i < numElements; i++) {\n const element = elements[i];\n for (const key in keyframes) {\n const valueOptions = getOptions(options, key);\n valueOptions.delay = resolveOption(valueOptions.delay, i, numElements);\n const animation = animateStyle(element, key, keyframes[key], valueOptions, AnimatePolyfill);\n animationFactories.push(animation);\n }\n }\n return withControls(animationFactories, options, \n /**\n * TODO:\n * If easing is set to spring or glide, duration will be dynamically\n * generated. Ideally we would dynamically generate this from\n * animation.effect.getComputedTiming().duration but this isn't\n * supported in iOS13 or our number polyfill. Perhaps it's possible\n * to Proxy animations returned from animateStyle that has duration\n * as a getter.\n */\n options.duration);\n };\n}\n\nexport { createAnimate };\n","function resolveElements(elements, selectorCache) {\n var _a;\n if (typeof elements === \"string\") {\n if (selectorCache) {\n (_a = selectorCache[elements]) !== null && _a !== void 0 ? _a : (selectorCache[elements] = document.querySelectorAll(elements));\n elements = selectorCache[elements];\n }\n else {\n elements = document.querySelectorAll(elements);\n }\n }\n else if (elements instanceof Element) {\n elements = [elements];\n }\n /**\n * Return an empty array\n */\n return Array.from(elements || []);\n}\n\nexport { resolveElements };\n","const noop = () => { };\nconst noopReturn = (v) => v;\n\nexport { noop, noopReturn };\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=e=>n=>\"function\"==typeof n?((e,n)=>(customElements.define(e,n),n))(e,n):((e,n)=>{const{kind:t,elements:s}=n;return{kind:t,elements:s,finisher(n){customElements.define(e,n)}}})(e,n);export{e as customElement};\n//# sourceMappingURL=custom-element.js.map\n","import{property as r}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function t(t){return r({...t,state:!0})}export{t as state};\n//# sourceMappingURL=state.js.map\n","import { isNumber } from './is-number.es.js';\n\nconst isEasingList = (easing) => Array.isArray(easing) && !isNumber(easing[0]);\n\nexport { isEasingList };\n","const isEasingGenerator = (easing) => typeof easing === \"object\" &&\n Boolean(easing.createAnimation);\n\nexport { isEasingGenerator };\n","import{decorateProperty as r}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction e(e){return r({descriptor:r=>({async get(){var r;return await this.updateComplete,null===(r=this.renderRoot)||void 0===r?void 0:r.querySelector(e)},enumerable:!0,configurable:!0})})}export{e as queryAsync};\n//# sourceMappingURL=query-async.js.map\n"],"sourceRoot":""}