@tuwaio/nova-core 0.8.2 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/web3-icons.cjs +2 -0
- package/dist/web3-icons.d.cts +23 -0
- package/dist/web3-icons.d.ts +23 -0
- package/dist/web3-icons.js +2 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
- **Theme variables:** `dist/index.css` defines the `--tuwa-*` CSS variables (colors, borders, rounded corners, status colors) for the light theme on `:root` and for the dark theme on `.dark`, the Geist Mono font (embedded, no font request), the Tailwind CSS v4 utilities of the package, prefixed with `novacore:`, and a few global rules: `scrollbar-gutter: stable` on `html`, no page scrolling while a Nova dialog is open, and no padding and background on `react-toastify` toasts (`.Toastify__toast`), which the Nova toasts draw themselves. Every Nova component reads these variables, so overriding them restyles the whole kit.
|
|
13
13
|
- **Dialog:** `Dialog`, `DialogTrigger`, `DialogPortal`, `DialogClose` are the Radix UI primitives; `DialogOverlay`, `DialogContent`, `DialogHeader`, `DialogFooter`, `DialogTitle` and `DialogDescription` add the Nova styles and `framer-motion` animations. The connect and transaction modals of the L7 packages use them.
|
|
14
|
-
- **Icons:** `NetworkIcon` and `WalletIcon` render icons from `@web3icons/react
|
|
14
|
+
- **Icons:** `NetworkIcon` and `WalletIcon` render icons from `@web3icons/react`, loaded on demand one icon at a time (only the network and wallet metadata of `@web3icons/common` is bundled, not the token list), fetch missing ones from the web3icons repository on GitHub (`GithubFallbackIcon`) and show `FallbackIcon` otherwise; `NetworkIcon` recolors the icons of testnets and of the Solana devnet and testnet with `--tuwa-testnet-icons`. The icon loader is a separate client module (`'use client'`), so server code (React Server Components, route handlers) that imports `cn`, `getChainName` or other helpers does not compile the icons. `SvgToImg` and `SvgImg` render an SVG as an `<img>`, so identical icons on one page do not share SVG `id`s. `CloseIcon`, `ChevronArrowWithAnim`, `ToastCloseButton` and `StarsBackground` are small shared parts.
|
|
15
15
|
- **Hooks and helpers:** `useCopyToClipboard` and `useMediaQuery`; `cn` (`clsx` + `tailwind-merge`), `deepMerge`, `getChainName`, `isSolanaDev`, `isTouchDevice`, `textCenterEllipsis`, the SVG helpers used by the icons and `standardButtonClasses`.
|
|
16
16
|
|
|
17
17
|
---
|
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var framerMotion=require('framer-motion'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),metadata=require('@web3icons/common/metadata'),orbitCore=require('@tuwaio/orbit-core'),jsxRuntime=require('react/jsx-runtime'),d=require('react'),c=require('@radix-ui/react-dialog');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var d__namespace=/*#__PURE__*/_interopNamespace(d);var c__namespace=/*#__PURE__*/_interopNamespace(c);var _e="novacore:cursor-pointer novacore:rounded-[var(--tuwa-rounded-corners)] novacore:bg-[var(--tuwa-standart-button-bg)] novacore:px-3 novacore:py-2 novacore:flex novacore:items-center novacore:gap-1 novacore:text-sm novacore:font-mono novacore:font-semibold novacore:text-[var(--tuwa-text-primary)] novacore:transition-colors novacore:hover:bg-[var(--tuwa-standart-button-hover)] novacore:disabled:cursor-not-allowed novacore:disabled:opacity-50 novacore:min-h-[36px]";function s(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var y=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function oe(e,o){let t={...e};return y(e)&&y(o)&&Object.keys(o).forEach(n=>{let r=e[n],a=o[n];y(r)&&y(a)?t[n]=oe(r,a):t[n]=a;}),t}function x(e){if(typeof e!="string")return;let o=e.indexOf(":");if(o<0||e.slice(0,o).toLowerCase()!=="solana")return;let t=e.slice(o+1),n=orbitCore.getSolanaCluster(t)??orbitCore.getSolanaCluster(t.toLowerCase());return n==="devnet"||n==="testnet"?n:void 0}var M="Unknown";function te(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}function G(e){let o={name:M,id:M.toLowerCase(),filePath:M.toLowerCase(),chainId:e};if(typeof e=="number"){let i=metadata.networks.find(m=>m.chainId===e);return i?{name:i.name,id:i.id,filePath:i.filePath?.split(":")[1],chainId:e}:o}let[t,n]=e?e.split(":"):[e],r=metadata.networks.find(i=>i.id===t);if(!r)return o;let a=n?x(e):void 0;return {name:a?`${r.name} ${te(a)}`:r.name,id:r.id,filePath:r.filePath?.split(":")[1],chainId:e}}function $(e){return x(e)!==void 0}function B(e=1200){if(typeof window>"u")return false;let o="ontouchstart"in window,t=navigator.maxTouchPoints>0,n=false;window.matchMedia&&(n=window.matchMedia("(pointer: coarse)").matches);let r=o||t||n,a=window.innerWidth<=e;return r&&a}function re(e){if(!e.startsWith("var("))return e;let o=e.match(/var\(\s*(--[\w-]+)/);if(!o)return e;let t=o[1];return getComputedStyle(document.documentElement).getPropertyValue(t).trim()||e}function ne(e,o){let t=re(o),r=new DOMParser().parseFromString(e,"image/svg+xml");if(r.querySelector("parsererror"))return console.warn("SVG parse error, returning original"),e;let l=r.querySelector("path");return l&&l.setAttribute("fill",t),new XMLSerializer().serializeToString(r.documentElement)}function C(e,o){let t=e;return o&&(t=ne(t,o)),`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(t)))}`}var N=e=>`${e.replace(/\s+/g,"-").toLowerCase()}.svg`;function io(e,o,t){if(!e)return "";if(e.length<=o+t)return e;let n=e.slice(0,o),r=e.slice(e.length-t);return `${n}...${r}`}function yo({className:e,strokeWidth:o,isOpen:t}){return jsxRuntime.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:o??2,stroke:"currentColor",className:s("novacore:w-4 novacore:h-4 novacore:text-[var(--tuwa-text-secondary)]",e),children:[jsxRuntime.jsx(framerMotion.AnimatePresence,{children:t&&jsxRuntime.jsx(framerMotion.motion.path,{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5",variants:{hidden:{translateY:3,scaleY:.8,opacity:0},visible:{translateY:0,scaleY:1,opacity:1}},initial:"hidden",animate:"visible",transition:{duration:.4}})}),jsxRuntime.jsx(framerMotion.AnimatePresence,{children:!t&&jsxRuntime.jsx(framerMotion.motion.path,{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5",className:"novacore:relative",variants:{hidden:{translateY:-3,scaleY:.8,opacity:0},visible:{translateY:0,scaleY:1,opacity:1}},initial:"hidden",animate:"visible",transition:{duration:.4}})})]})}var ie=d__namespace.forwardRef(({className:e,...o},t)=>jsxRuntime.jsxs("svg",{ref:t,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:s("novacore:h-5 novacore:w-5 novacore:text-[var(--tuwa-text-primary)] novacore:transition-colors",e),...o,children:[jsxRuntime.jsx("path",{d:"M18 6 6 18"}),jsxRuntime.jsx("path",{d:"m6 6 12 12"})]}));ie.displayName="CloseIcon";var ce="novacore:flex novacore:items-center novacore:justify-center novacore:w-full novacore:h-full novacore:rounded-full novacore:text-[var(--tuwa-text-secondary)] novacore:bg-[var(--tuwa-bg-muted)]",f=({animate:e=false,content:o="",className:t})=>jsxRuntime.jsx("div",{className:s(ce,"Nova_Web3_Icon",t,{"novacore:animate-pulse":e}),children:o});function k({src:e,alt:o,...t}){return jsxRuntime.jsx("img",{...t,src:e,alt:o??"",draggable:false,onDragStart:n=>n.preventDefault(),style:{outline:"none",pointerEvents:"none"}})}var de="https://raw.githubusercontent.com/0xa3k5/web3icons/refs/heads/main/raw-svgs",L=new Map;function P({githubSrc:e,className:o,alt:t,firstPathFill:n,...r}){let a=`${e}|${n??""}`,l=L.get(a),[i,m]=d.useState(null),[w,b]=d.useState("idle"),D=l||i,g=l?"success":w;return d.useEffect(()=>{let I=true;return L.has(a)?void 0:((async()=>{b("loading");try{let R=await fetch(`${de}/${e}`);if(!R.ok)throw new Error(`Failed to load icon: ${R.status}`);let j=await R.text();if(I){let V=C(j,n);L.set(a,V),m(V),b("success");}}catch{I&&b("error");}})(),()=>{I=false;})},[e,n,a]),g==="loading"||g==="idle"?jsxRuntime.jsx(f,{animate:true,className:o}):g==="success"&&D?jsxRuntime.jsx(k,{...r,src:D,alt:t,className:o}):jsxRuntime.jsx(f,{content:"?",className:o})}var Bo=c__namespace.Root,Oo=c__namespace.Trigger,pe=c__namespace.Portal,Ho=c__namespace.Close,fe={initial:{opacity:0,scale:.9,y:20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.9,transition:{duration:.2}}},ve={initial:{opacity:0,y:"100%"},animate:{opacity:1,y:"0%"},exit:{opacity:0,y:"100%",transition:{duration:.2}}},ge={initial:{opacity:0},animate:{opacity:1},exit:{opacity:0}},K=({className:e,backdropAnimation:o})=>(d__namespace.useEffect(()=>(typeof window<"u"&&window.document.body.classList.add("NovaModalOpen"),()=>{typeof window<"u"&&window.document.body.classList.remove("NovaModalOpen");}),[]),jsxRuntime.jsx(framerMotion.AnimatePresence,{children:jsxRuntime.jsx(framerMotion.motion.div,{variants:o??ge,transition:{duration:.2,ease:"easeInOut"},animate:"animate",initial:"initial",exit:"exit",className:"novacore:relative novacore:overflow-hidden",children:jsxRuntime.jsx("div",{className:s("novacore:fixed novacore:inset-0 novacore:z-50 novacore:bg-black/55 novacore:backdrop-blur-sm novacore:backdrop-saturate-150",e)})})}));K.displayName=c__namespace.Overlay.displayName;var we=d__namespace.forwardRef(({className:e,children:o,modalAnimation:t,backdropAnimation:n,...r},a)=>{let[l,i]=d__namespace.useState(false);d__namespace.useEffect(()=>{i(B());},[]);let m=t??(l?ve:fe);return jsxRuntime.jsxs(pe,{children:[jsxRuntime.jsx(K,{backdropAnimation:n}),jsxRuntime.jsx(c__namespace.Content,{"aria-describedby":"tuwa:modal-content",ref:a,className:s("NovaNoScrolling novacore:fixed novacore:bottom-0 novacore:left-0 novacore:p-0 novacore:sm:bottom-auto novacore:sm:left-[50%] novacore:sm:top-[50%] novacore:sm:translate-x-[-50%] novacore:sm:translate-y-[-50%] novacore:z-50 novacore:sm:p-4 novacore:outline-none",e),...r,children:jsxRuntime.jsx(framerMotion.motion.div,{layout:true,className:"NovaNoScrolling novacore:relative novacore:overflow-hidden",transition:{layout:{duration:.2,ease:[.1,.1,.2,1]}},children:jsxRuntime.jsx(framerMotion.AnimatePresence,{children:jsxRuntime.jsx(framerMotion.motion.div,{variants:m,transition:{duration:.2,ease:"easeInOut"},animate:"animate",initial:"initial",exit:"exit",className:"NovaNoScrolling novacore:relative novacore:overflow-hidden novacore:bg-[var(--tuwa-bg-primary)] novacore:border novacore:border-[var(--tuwa-border-primary)] novacore:rounded-t-[var(--tuwa-rounded-corners)] novacore:sm:rounded-[var(--tuwa-rounded-corners)]",children:jsxRuntime.jsx("div",{className:s("NovaNoScrolling NovaDialogContent__elements novacore:relative novacore:flex novacore:max-h-[100dvh] novacore:w-full novacore:flex-col novacore:overflow-y-auto","novacore:[transform:translateZ(0)] novacore:[backface-visibility:hidden]"),children:o})})})})})]})});we.displayName=c__namespace.Content.displayName;var be=({className:e,...o})=>jsxRuntime.jsx("div",{"aria-describedby":"tuwa:modal-header",className:s("novacore:sticky novacore:flex novacore:top-0 novacore:z-11 novacore:w-full novacore:flex-row novacore:items-center novacore:justify-between","novacore:border-b novacore:border-[var(--tuwa-border-primary)] novacore:bg-[var(--tuwa-bg-primary)] novacore:p-4",e),...o});be.displayName="DialogHeader";var he=({className:e,...o})=>jsxRuntime.jsx("div",{"aria-describedby":"tuwa:modal-footer",className:s("novacore:flex novacore:flex-col-reverse novacore:sm:flex-row novacore:sm:justify-end novacore:sm:space-x-2",e),...o});he.displayName="DialogFooter";var ye=d__namespace.forwardRef(({className:e,...o},t)=>jsxRuntime.jsx(c__namespace.Title,{ref:t,"aria-describedby":"tuwa:modal-title",className:s("novacore:text-lg novacore:font-bold novacore:leading-none novacore:tracking-tight novacore:text-[var(--tuwa-text-primary)] novacore:m-0 novacore:font-mono",e),...o}));ye.displayName=c__namespace.Title.displayName;var xe=d__namespace.forwardRef(({className:e,...o},t)=>jsxRuntime.jsx(c__namespace.Description,{"aria-describedby":"tuwa:modal-description",ref:t,className:s("novacore:text-sm novacore:text-[var(--tuwa-text-secondary)]",e),...o}));xe.displayName=c__namespace.Description.displayName;function h({children:e,iconId:o,alt:t,firstPathFill:n,...r}){let[a,l]=d.useState(null),i=d.useCallback(m=>{if(m){let w=C(m.outerHTML,n);l({id:o,src:w});}},[o,n]);return a&&a.id===o?jsxRuntime.jsx(k,{...r,src:a.src,alt:t}):jsxRuntime.jsx(jsxRuntime.Fragment,{children:e(i)})}var X=d.lazy(()=>import('@web3icons/react/dynamic').then(e=>({default:e.NetworkIcon}))),De="var(--tuwa-testnet-icons)";function nt({chainId:e,variant:o="background",className:t}){let n=G(e),r=typeof e=="string",a=r?e.split(":")[0].toLowerCase():e,i=r&&$(e)||n.name.toLowerCase().includes("testnet")?De:void 0,m=s("novacore:w-full novacore:h-full novacore:rounded-full",t),w=typeof a=="string"?a:n.filePath,b=`networks/${o}/${N(w)}`;return n.name==="Unknown"?typeof e=="number"?jsxRuntime.jsx(f,{content:"?",className:t}):jsxRuntime.jsx(P,{githubSrc:b,className:m,firstPathFill:i}):jsxRuntime.jsx(d.Suspense,{fallback:jsxRuntime.jsx(f,{animate:true,className:t}),children:jsxRuntime.jsx(h,{iconId:`${e}-${o}`,className:m,firstPathFill:i,children:g=>typeof a=="string"?jsxRuntime.jsx(X,{ref:g,id:a,variant:o}):jsxRuntime.jsx(X,{ref:g,chainId:a,variant:o})})})}function ct({starsCount:e}){let[o,t]=d.useState(false);d.useEffect(()=>t(true),[]);let n=d.useMemo(()=>o?Array.from({length:e??200}).map(()=>({x:Math.random()*window.innerWidth,y:Math.random()*window.innerHeight,r:Math.random()*1+.5,isSupernova:Math.random()<.1,delay:Math.random()*10,duration:5+Math.random()*5})):[],[o]);return jsxRuntime.jsx("div",{className:"novacore:absolute novacore:inset-0 novacore:z-1 novacore:h-full novacore:w-full novacore:overflow-hidden",children:jsxRuntime.jsxs("svg",{width:"100%",height:"100%",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("defs",{children:jsxRuntime.jsx("style",{children:`
|
|
1
|
+
'use strict';var framerMotion=require('framer-motion'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),networks=require('@web3icons/common/metadata/networks'),orbitCore=require('@tuwaio/orbit-core'),jsxRuntime=require('react/jsx-runtime'),d=require('react'),l=require('@radix-ui/react-dialog'),web3Icons_cjs=require('./web3-icons.cjs'),wallets=require('@web3icons/common/metadata/wallets');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var d__namespace=/*#__PURE__*/_interopNamespace(d);var l__namespace=/*#__PURE__*/_interopNamespace(l);var Ue="novacore:cursor-pointer novacore:rounded-[var(--tuwa-rounded-corners)] novacore:bg-[var(--tuwa-standart-button-bg)] novacore:px-3 novacore:py-2 novacore:flex novacore:items-center novacore:gap-1 novacore:text-sm novacore:font-mono novacore:font-semibold novacore:text-[var(--tuwa-text-primary)] novacore:transition-colors novacore:hover:bg-[var(--tuwa-standart-button-hover)] novacore:disabled:cursor-not-allowed novacore:disabled:opacity-50 novacore:min-h-[36px]";function s(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var C=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function ee(e,o){let t={...e};return C(e)&&C(o)&&Object.keys(o).forEach(n=>{let r=e[n],a=o[n];C(r)&&C(a)?t[n]=ee(r,a):t[n]=a;}),t}function S(e){if(typeof e!="string")return;let o=e.indexOf(":");if(o<0||e.slice(0,o).toLowerCase()!=="solana")return;let t=e.slice(o+1),n=orbitCore.getSolanaCluster(t)??orbitCore.getSolanaCluster(t.toLowerCase());return n==="devnet"||n==="testnet"?n:void 0}var M="Unknown";function oe(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}function G(e){let o={name:M,id:M.toLowerCase(),filePath:M.toLowerCase(),chainId:e};if(typeof e=="number"){let i=networks.networks.find(c=>c.chainId===e);return i?{name:i.name,id:i.id,filePath:i.filePath?.split(":")[1],chainId:e}:o}let[t,n]=e?e.split(":"):[e],r=networks.networks.find(i=>i.id===t);if(!r)return o;let a=n?S(e):void 0;return {name:a?`${r.name} ${oe(a)}`:r.name,id:r.id,filePath:r.filePath?.split(":")[1],chainId:e}}function $(e){return S(e)!==void 0}function B(e=1200){if(typeof window>"u")return false;let o="ontouchstart"in window,t=navigator.maxTouchPoints>0,n=false;window.matchMedia&&(n=window.matchMedia("(pointer: coarse)").matches);let r=o||t||n,a=window.innerWidth<=e;return r&&a}function te(e){if(!e.startsWith("var("))return e;let o=e.match(/var\(\s*(--[\w-]+)/);if(!o)return e;let t=o[1];return getComputedStyle(document.documentElement).getPropertyValue(t).trim()||e}function re(e,o){let t=te(o),r=new DOMParser().parseFromString(e,"image/svg+xml");if(r.querySelector("parsererror"))return console.warn("SVG parse error, returning original"),e;let m=r.querySelector("path");return m&&m.setAttribute("fill",t),new XMLSerializer().serializeToString(r.documentElement)}function N(e,o){let t=e;return o&&(t=re(t,o)),`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(t)))}`}var P=e=>`${e.replace(/\s+/g,"-").toLowerCase()}.svg`;function ao(e,o,t){if(!e)return "";if(e.length<=o+t)return e;let n=e.slice(0,o),r=e.slice(e.length-t);return `${n}...${r}`}function ho({className:e,strokeWidth:o,isOpen:t}){return jsxRuntime.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:o??2,stroke:"currentColor",className:s("novacore:w-4 novacore:h-4 novacore:text-[var(--tuwa-text-secondary)]",e),children:[jsxRuntime.jsx(framerMotion.AnimatePresence,{children:t&&jsxRuntime.jsx(framerMotion.motion.path,{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5",variants:{hidden:{translateY:3,scaleY:.8,opacity:0},visible:{translateY:0,scaleY:1,opacity:1}},initial:"hidden",animate:"visible",transition:{duration:.4}})}),jsxRuntime.jsx(framerMotion.AnimatePresence,{children:!t&&jsxRuntime.jsx(framerMotion.motion.path,{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5",className:"novacore:relative",variants:{hidden:{translateY:-3,scaleY:.8,opacity:0},visible:{translateY:0,scaleY:1,opacity:1}},initial:"hidden",animate:"visible",transition:{duration:.4}})})]})}var ae=d__namespace.forwardRef(({className:e,...o},t)=>jsxRuntime.jsxs("svg",{ref:t,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:s("novacore:h-5 novacore:w-5 novacore:text-[var(--tuwa-text-primary)] novacore:transition-colors",e),...o,children:[jsxRuntime.jsx("path",{d:"M18 6 6 18"}),jsxRuntime.jsx("path",{d:"m6 6 12 12"})]}));ae.displayName="CloseIcon";var se="novacore:flex novacore:items-center novacore:justify-center novacore:w-full novacore:h-full novacore:rounded-full novacore:text-[var(--tuwa-text-secondary)] novacore:bg-[var(--tuwa-bg-muted)]",f=({animate:e=false,content:o="",className:t})=>jsxRuntime.jsx("div",{className:s(se,"Nova_Web3_Icon",t,{"novacore:animate-pulse":e}),children:o});function T({src:e,alt:o,...t}){return jsxRuntime.jsx("img",{...t,src:e,alt:o??"",draggable:false,onDragStart:n=>n.preventDefault(),style:{outline:"none",pointerEvents:"none"}})}var ue="https://raw.githubusercontent.com/0xa3k5/web3icons/refs/heads/main/raw-svgs",L=new Map;function D({githubSrc:e,className:o,alt:t,firstPathFill:n,...r}){let a=`${e}|${n??""}`,m=L.get(a),[i,c]=d.useState(null),[w,b]=d.useState("idle"),h=m||i,x=m?"success":w;return d.useEffect(()=>{let v=true;return L.has(a)?void 0:((async()=>{b("loading");try{let I=await fetch(`${ue}/${e}`);if(!I.ok)throw new Error(`Failed to load icon: ${I.status}`);let Z=await I.text();if(v){let V=N(Z,n);L.set(a,V),c(V),b("success");}}catch{v&&b("error");}})(),()=>{v=false;})},[e,n,a]),x==="loading"||x==="idle"?jsxRuntime.jsx(f,{animate:true,className:o}):x==="success"&&h?jsxRuntime.jsx(T,{...r,src:h,alt:t,className:o}):jsxRuntime.jsx(f,{content:"?",className:o})}var $o=l__namespace.Root,Bo=l__namespace.Trigger,de=l__namespace.Portal,Oo=l__namespace.Close,pe={initial:{opacity:0,scale:.9,y:20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.9,transition:{duration:.2}}},fe={initial:{opacity:0,y:"100%"},animate:{opacity:1,y:"0%"},exit:{opacity:0,y:"100%",transition:{duration:.2}}},ve={initial:{opacity:0},animate:{opacity:1},exit:{opacity:0}},K=({className:e,backdropAnimation:o})=>(d__namespace.useEffect(()=>(typeof window<"u"&&window.document.body.classList.add("NovaModalOpen"),()=>{typeof window<"u"&&window.document.body.classList.remove("NovaModalOpen");}),[]),jsxRuntime.jsx(framerMotion.AnimatePresence,{children:jsxRuntime.jsx(framerMotion.motion.div,{variants:o??ve,transition:{duration:.2,ease:"easeInOut"},animate:"animate",initial:"initial",exit:"exit",className:"novacore:relative novacore:overflow-hidden",children:jsxRuntime.jsx("div",{className:s("novacore:fixed novacore:inset-0 novacore:z-50 novacore:bg-black/55 novacore:backdrop-blur-sm novacore:backdrop-saturate-150",e)})})}));K.displayName=l__namespace.Overlay.displayName;var ge=d__namespace.forwardRef(({className:e,children:o,modalAnimation:t,backdropAnimation:n,...r},a)=>{let[m,i]=d__namespace.useState(false);d__namespace.useEffect(()=>{i(B());},[]);let c=t??(m?fe:pe);return jsxRuntime.jsxs(de,{children:[jsxRuntime.jsx(K,{backdropAnimation:n}),jsxRuntime.jsx(l__namespace.Content,{"aria-describedby":"tuwa:modal-content",ref:a,className:s("NovaNoScrolling novacore:fixed novacore:bottom-0 novacore:left-0 novacore:p-0 novacore:sm:bottom-auto novacore:sm:left-[50%] novacore:sm:top-[50%] novacore:sm:translate-x-[-50%] novacore:sm:translate-y-[-50%] novacore:z-50 novacore:sm:p-4 novacore:outline-none",e),...r,children:jsxRuntime.jsx(framerMotion.motion.div,{layout:true,className:"NovaNoScrolling novacore:relative novacore:overflow-hidden",transition:{layout:{duration:.2,ease:[.1,.1,.2,1]}},children:jsxRuntime.jsx(framerMotion.AnimatePresence,{children:jsxRuntime.jsx(framerMotion.motion.div,{variants:c,transition:{duration:.2,ease:"easeInOut"},animate:"animate",initial:"initial",exit:"exit",className:"NovaNoScrolling novacore:relative novacore:overflow-hidden novacore:bg-[var(--tuwa-bg-primary)] novacore:border novacore:border-[var(--tuwa-border-primary)] novacore:rounded-t-[var(--tuwa-rounded-corners)] novacore:sm:rounded-[var(--tuwa-rounded-corners)]",children:jsxRuntime.jsx("div",{className:s("NovaNoScrolling NovaDialogContent__elements novacore:relative novacore:flex novacore:max-h-[100dvh] novacore:w-full novacore:flex-col novacore:overflow-y-auto","novacore:[transform:translateZ(0)] novacore:[backface-visibility:hidden]"),children:o})})})})})]})});ge.displayName=l__namespace.Content.displayName;var we=({className:e,...o})=>jsxRuntime.jsx("div",{"aria-describedby":"tuwa:modal-header",className:s("novacore:sticky novacore:flex novacore:top-0 novacore:z-11 novacore:w-full novacore:flex-row novacore:items-center novacore:justify-between","novacore:border-b novacore:border-[var(--tuwa-border-primary)] novacore:bg-[var(--tuwa-bg-primary)] novacore:p-4",e),...o});we.displayName="DialogHeader";var be=({className:e,...o})=>jsxRuntime.jsx("div",{"aria-describedby":"tuwa:modal-footer",className:s("novacore:flex novacore:flex-col-reverse novacore:sm:flex-row novacore:sm:justify-end novacore:sm:space-x-2",e),...o});be.displayName="DialogFooter";var he=d__namespace.forwardRef(({className:e,...o},t)=>jsxRuntime.jsx(l__namespace.Title,{ref:t,"aria-describedby":"tuwa:modal-title",className:s("novacore:text-lg novacore:font-bold novacore:leading-none novacore:tracking-tight novacore:text-[var(--tuwa-text-primary)] novacore:m-0 novacore:font-mono",e),...o}));he.displayName=l__namespace.Title.displayName;var ye=d__namespace.forwardRef(({className:e,...o},t)=>jsxRuntime.jsx(l__namespace.Description,{"aria-describedby":"tuwa:modal-description",ref:t,className:s("novacore:text-sm novacore:text-[var(--tuwa-text-secondary)]",e),...o}));ye.displayName=l__namespace.Description.displayName;function y({children:e,iconId:o,alt:t,firstPathFill:n,...r}){let[a,m]=d.useState(null),i=d.useCallback(c=>{if(c){let w=N(c.outerHTML,n);m({id:o,src:w});}},[o,n]);return a&&a.id===o?jsxRuntime.jsx(T,{...r,src:a.src,alt:t}):jsxRuntime.jsx(jsxRuntime.Fragment,{children:e(i)})}var De="var(--tuwa-testnet-icons)";function at({chainId:e,variant:o="background",className:t}){let n=G(e),r=typeof e=="string",a=r?e.split(":")[0].toLowerCase():e,i=r&&$(e)||n.name.toLowerCase().includes("testnet")?De:void 0,c=s("novacore:w-full novacore:h-full novacore:rounded-full",t),w=typeof a=="string"?a:n.filePath,b=`networks/${o}/${P(w)}`,h=networks.networks.find(v=>v.id===n.id)?.filePath;return n.name==="Unknown"||!h?typeof e=="number"?jsxRuntime.jsx(f,{content:"?",className:t}):jsxRuntime.jsx(D,{githubSrc:b,className:c,firstPathFill:i}):jsxRuntime.jsx(d.Suspense,{fallback:jsxRuntime.jsx(f,{animate:true,className:t}),children:jsxRuntime.jsx(y,{iconId:`${e}-${o}`,className:c,firstPathFill:i,children:v=>jsxRuntime.jsx(web3Icons_cjs.Web3IconLazy,{ref:v,filePath:h,variant:o})})})}function lt({starsCount:e}){let[o,t]=d.useState(false);d.useEffect(()=>t(true),[]);let n=d.useMemo(()=>o?Array.from({length:e??200}).map(()=>({x:Math.random()*window.innerWidth,y:Math.random()*window.innerHeight,r:Math.random()*1+.5,isSupernova:Math.random()<.1,delay:Math.random()*10,duration:5+Math.random()*5})):[],[o]);return jsxRuntime.jsx("div",{className:"novacore:absolute novacore:inset-0 novacore:z-1 novacore:h-full novacore:w-full novacore:overflow-hidden",children:jsxRuntime.jsxs("svg",{width:"100%",height:"100%",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("defs",{children:jsxRuntime.jsx("style",{children:`
|
|
2
2
|
/* Pulse animation now includes scale for a more organic feel. */
|
|
3
3
|
@keyframes pulse {
|
|
4
4
|
0%, 100% {
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
transform-origin: center;
|
|
45
45
|
stroke-width: 2;
|
|
46
46
|
}
|
|
47
|
-
`})}),n.map((r,a)=>jsxRuntime.jsx("circle",{cx:r.x,cy:r.y,r:r.r,fill:"rgba(var(--tuwa-bg-primary), 0.7)",className:r.isSupernova?"supernova":"pulsar",style:{animationDelay:`${r.delay}s`,animationDuration:`${r.duration}s`}},a))]})})}function
|
|
48
|
-
exports.ChevronArrowWithAnim=
|
|
47
|
+
`})}),n.map((r,a)=>jsxRuntime.jsx("circle",{cx:r.x,cy:r.y,r:r.r,fill:"rgba(var(--tuwa-bg-primary), 0.7)",className:r.isSupernova?"supernova":"pulsar",style:{animationDelay:`${r.delay}s`,animationDuration:`${r.duration}s`}},a))]})})}function pt({closeToast:e,ariaLabel:o="Close toast notification",title:t="Close toast notification",className:n,iconClassName:r}){return jsxRuntime.jsx("button",{type:"button",onClick:e,"aria-label":o,title:t,className:s("novacore:absolute novacore:top-2 novacore:right-2 novacore:cursor-pointer novacore:rounded-[var(--tuwa-rounded-corners)] novacore:p-1","novacore:text-[var(--tuwa-text-tertiary)] novacore:transition-colors","novacore:hover:bg-[var(--tuwa-bg-muted)] novacore:hover:text-[var(--tuwa-text-primary)]",n),children:jsxRuntime.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:s("novacore:h-5 novacore:w-5",r),children:jsxRuntime.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"})})})}var Ve={walletconnect:"wallet-connect"};function We(e){return wallets.wallets.find(o=>o.id===e||o.name?.toLowerCase()===e)?.filePath}var ze=({className:e,ref:o})=>jsxRuntime.jsxs("svg",{ref:o,className:e,fill:"none",viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{fill:"#fff",fillRule:"evenodd",d:"M16 0c8.84 0 16 7.16 16 16s-7.16 16-16 16S0 24.84 0 16 7.16 0 16 0",clipRule:"evenodd"}),jsxRuntime.jsx("path",{fill:"#000",fillRule:"evenodd",d:"M16.54 2.01h1.53c.5.09.99.23 1.48.42.21.25.19.48-.05.69q-.195.045-.39 0c-1.86-.65-3.55-.35-5.07.89 2.39.7 3.84 2.27 4.36 4.7.12.85.08 1.68-.12 2.51.87 0 1.74 0 2.61-.02.39-.4.7-.85.94-1.35-.45-.45-.65-.99-.59-1.63-1.15.08-1.79-.44-1.92-1.58.14-1.12.78-1.67 1.92-1.63a.7.7 0 0 0-.12-.49l-.89-.89c-.02-.45.19-.6.62-.47.24.19.46.39.66.62.71-.79 1.5-.89 2.39-.32.44.42.62.94.54 1.55 1.49.02 2.11.76 1.85 2.22-.08.17-.17.34-.27.49.53.59.87 1.28 1.01 2.07.08 4.6.1 9.19.05 13.79-.19 1.58-1 2.71-2.44 3.37-.29.1-.59.2-.89.27H7.2c-1.31-.33-2.05-1.17-2.24-2.51-.03-5.24-.03-10.47 0-15.71.3-1.62 1.28-2.46 2.93-2.54 1.26-1.77 2.98-2.64 5.17-2.61.96-1.01 2.13-1.62 3.5-1.85zm6.11 1.87c.39-.03.7.12.91.44.06.39.09.79.1 1.18.02.12.07.21.17.27.41 0 .82.04 1.23.1.49.26.63.65.42 1.16-.07.14-.18.25-.32.32-.39.06-.79.09-1.18.1-.12.02-.21.07-.27.17l-.15 1.33c-.32.46-.72.55-1.21.27a.76.76 0 0 1-.27-.37c-.06-.41-.09-.82-.1-1.23a.35.35 0 0 0-.27-.17l-1.08-.05c-.46-.24-.62-.61-.47-1.11.14-.27.36-.43.66-.47l.99-.05s.09-.04.12-.07l.15-1.28q.18-.39.57-.54m-10.49.79c2.41-.09 4.12.94 5.15 3.1.44 1.12.48 2.25.12 3.4-.84.06-1.67.07-2.51.02.56-.68.52-1.32-.1-1.92-.26-.13-.54-.19-.84-.17.02-.95 0-1.91-.07-2.86-.21-.41-.55-.58-1.01-.52-.17.03-.31.09-.44.2-.72.92-1.43 1.85-2.14 2.78-.28.45-.29.91-.05 1.38q.225.3.57.42c.34.02.69.03 1.03.02v.69c-1.3.02-2.59 0-3.89-.05-.58-2.1-.08-3.88 1.53-5.34.79-.62 1.68-1 2.66-1.16zm.83 1.82c.07 0 .13.03.17.1l.05 3.05c.04.09.1.16.17.22l.89.05c.22.08.3.24.22.47q-.27.42-.57.81c-.43.02-.85.03-1.28.02 0-.41 0-.82-.02-1.23a.46.46 0 0 0-.17-.17l-1.28-.05c-.3-.1-.37-.29-.22-.57.7-.89 1.39-1.79 2.04-2.71zm-5.81.84h.2a6.1 6.1 0 0 0-.25 3.77c-.59-.13-1.01-.49-1.26-1.06-.36-1.29.08-2.19 1.31-2.71m17.98.83c.05 0 .1 0 .15.02q.825.855.96 2.04.045 1.305 0 2.61a3.76 3.76 0 0 0-2.54-1.55c-.61-.05-1.21-.08-1.82-.1.26-.31.48-.66.64-1.03 1.31.02 1.94-.62 1.87-1.95.26.02.5 0 .74-.05zM5.7 11.22c.41.4.91.65 1.48.76l16.06.05c1.42.13 2.38.87 2.88 2.19.07.24.12.49.15.74.03 2.86.03 5.71 0 8.57-.21 1.44-1 2.38-2.39 2.83-.24.05-.49.08-.74.1-1.26.02-2.53.03-3.79.02 0-1.33 0-2.66.02-3.99l1.55-1.55c1.42-.04 2.09-.78 1.99-2.19-.24-.88-.81-1.34-1.72-1.38-1.2.12-1.81.8-1.82 2.02l-1.92 1.92c-.08.11-.14.22-.2.34-.07 1.61-.1 3.22-.07 4.83h-.44c0-2.28 0-4.56-.02-6.85a1.8 1.8 0 0 0-.15-.34l-1.13-1.13c0-1.23-.61-1.92-1.82-2.07-1.29.17-1.87.91-1.72 2.22q.465 1.395 1.95 1.35l.71.71c0 .3.04.6.1.89.25.21.48.19.69-.05.03-.39.03-.79 0-1.18-.2-.25-.43-.49-.66-.71.15-.1.29-.22.39-.37.3.27.58.55.86.84.02 2.23.03 4.47.02 6.7h-.59c0-1.38 0-2.76-.02-4.14-.15-.25-.35-.31-.62-.17a1 1 0 0 0-.12.22c-.02 1.36-.03 2.73-.02 4.09h-.44c0-.99 0-1.97-.02-2.96-.02-.09-.06-.17-.1-.25-.67-.72-1.36-1.43-2.07-2.12-.06-1.48-.82-2.13-2.29-1.95-1.02.41-1.42 1.16-1.21 2.24q.51 1.32 1.95 1.26l1.55 1.55c.02.74.03 1.48.02 2.22-1.56.02-3.12 0-4.68-.07-.9-.24-1.42-.83-1.55-1.75-.02-4.48-.03-8.96-.02-13.45zm7.79 5.66c.84.06 1.19.5 1.06 1.33-.32.62-.8.79-1.45.52-.46-.37-.56-.82-.32-1.35.18-.26.42-.42.71-.49zm7.43 1.28c.89-.03 1.29.4 1.21 1.28-.33.67-.83.85-1.5.52-.54-.49-.58-1-.1-1.55.12-.11.25-.19.39-.25M9.94 19.94c.84 0 1.22.4 1.16 1.23-.28.68-.76.89-1.45.62-.63-.54-.65-1.09-.05-1.67l.34-.17zm9.75.24c.16.13.3.27.44.42-.53.52-1.05 1.05-1.55 1.6-.02 1.43-.03 2.86-.02 4.28h-.59c0-1.51 0-3.02.02-4.53a71 71 0 0 1 1.7-1.77M11.56 22c.62.53 1.21 1.11 1.75 1.72.02.92.03 1.84.02 2.76h-.59c0-.85 0-1.71-.02-2.56l-1.48-1.48s-.03-.07 0-.1c.12-.11.22-.22.32-.34",clipRule:"evenodd"})]});function St({walletName:e,variant:o="background",className:t}){let n=s("novacore:w-full novacore:h-full novacore:rounded-full",t),r=e.toLowerCase();if(r==="impersonatedwallet")return jsxRuntime.jsx(y,{iconId:"impersonatedwallet",className:n,children:c=>jsxRuntime.jsx(ze,{ref:c})});let a=Ve[r]??r,m=`wallets/${o}/${P(a)}`,i=We(a);return i?jsxRuntime.jsx(d.Suspense,{fallback:jsxRuntime.jsx(f,{animate:true,className:t}),children:jsxRuntime.jsx(y,{iconId:`${a}-${o}`,className:n,children:c=>jsxRuntime.jsx(web3Icons_cjs.Web3IconLazy,{ref:c,filePath:i,variant:o})})}):jsxRuntime.jsx(D,{githubSrc:m,className:n})}function Tt(e=2e3){let[o,t]=d.useState(false),[n,r]=d.useState(null),a=d.useCallback(async m=>{if(!m)return {copied:false,error:new Error("There is no text to copy.")};try{return await navigator.clipboard.writeText(m),t(!0),r(null),setTimeout(()=>t(!1),e),{copied:!0}}catch(i){let c=i instanceof Error?i:new Error("Failed to copy text.");return console.error(c),r(c),setTimeout(()=>r(null),e),{copied:false,error:c}}},[e]);return {isCopied:o,copy:a,error:n}}function It(e){let o=r=>typeof window<"u"?window.matchMedia(r).matches:false,[t,n]=d.useState(o(e));return d.useEffect(()=>{let r=window.matchMedia(e),a=()=>n(r.matches);return a(),window.addEventListener("resize",a),()=>window.removeEventListener("resize",a)},[e]),t}
|
|
48
|
+
exports.ChevronArrowWithAnim=ho;exports.CloseIcon=ae;exports.Dialog=$o;exports.DialogClose=Oo;exports.DialogContent=ge;exports.DialogDescription=ye;exports.DialogFooter=be;exports.DialogHeader=we;exports.DialogOverlay=K;exports.DialogPortal=de;exports.DialogTitle=he;exports.DialogTrigger=Bo;exports.FallbackIcon=f;exports.GithubFallbackIcon=D;exports.NetworkIcon=at;exports.StarsBackground=lt;exports.SvgImg=T;exports.SvgToImg=y;exports.ToastCloseButton=pt;exports.WalletIcon=St;exports.applyFirstPathFill=re;exports.cn=s;exports.deepMerge=ee;exports.formatIconNameForGithub=P;exports.getChainName=G;exports.isSolanaDev=$;exports.isTouchDevice=B;exports.resolveCssVariable=te;exports.standardButtonClasses=Ue;exports.svgToBase64=N;exports.textCenterEllipsis=ao;exports.useCopyToClipboard=Tt;exports.useMediaQuery=It;
|
package/dist/index.d.cts
CHANGED
|
@@ -160,8 +160,8 @@ interface NetworkIconProps {
|
|
|
160
160
|
className?: string;
|
|
161
161
|
}
|
|
162
162
|
/**
|
|
163
|
-
* The icon of a network. Networks listed in `@web3icons/common` are drawn with `@web3icons/react`, loaded on demand
|
|
164
|
-
* (a pulsing {@link FallbackIcon} is shown meanwhile) and rendered through {@link SvgToImg}. An unknown numeric chain
|
|
163
|
+
* The icon of a network. Networks listed in `@web3icons/common` are drawn with `@web3icons/react`, loaded on demand one
|
|
164
|
+
* icon at a time (a pulsing {@link FallbackIcon} is shown meanwhile) and rendered through {@link SvgToImg}. An unknown numeric chain
|
|
165
165
|
* shows a `?` placeholder; an unknown string id is fetched from the web3icons repository on GitHub
|
|
166
166
|
* ({@link GithubFallbackIcon}). Testnets and the Solana devnet and testnet are recolored with `--tuwa-testnet-icons`.
|
|
167
167
|
*
|
|
@@ -311,7 +311,7 @@ interface WalletIconProps {
|
|
|
311
311
|
* It handles logic for:
|
|
312
312
|
* 1. Rendering a custom SVG for 'impersonatedwallet' (Watch mode).
|
|
313
313
|
* 2. Normalizing IDs for common wallets (e.g. 'walletconnect' -> 'wallet-connect').
|
|
314
|
-
* 3. Lazy loading other icons from @web3icons/react.
|
|
314
|
+
* 3. Lazy loading other icons from @web3icons/react, one icon at a time (see `Web3IconLazy`).
|
|
315
315
|
*
|
|
316
316
|
* @param props - {@link WalletIconProps}
|
|
317
317
|
* @returns The wallet icon or a fallback UI.
|
package/dist/index.d.ts
CHANGED
|
@@ -160,8 +160,8 @@ interface NetworkIconProps {
|
|
|
160
160
|
className?: string;
|
|
161
161
|
}
|
|
162
162
|
/**
|
|
163
|
-
* The icon of a network. Networks listed in `@web3icons/common` are drawn with `@web3icons/react`, loaded on demand
|
|
164
|
-
* (a pulsing {@link FallbackIcon} is shown meanwhile) and rendered through {@link SvgToImg}. An unknown numeric chain
|
|
163
|
+
* The icon of a network. Networks listed in `@web3icons/common` are drawn with `@web3icons/react`, loaded on demand one
|
|
164
|
+
* icon at a time (a pulsing {@link FallbackIcon} is shown meanwhile) and rendered through {@link SvgToImg}. An unknown numeric chain
|
|
165
165
|
* shows a `?` placeholder; an unknown string id is fetched from the web3icons repository on GitHub
|
|
166
166
|
* ({@link GithubFallbackIcon}). Testnets and the Solana devnet and testnet are recolored with `--tuwa-testnet-icons`.
|
|
167
167
|
*
|
|
@@ -311,7 +311,7 @@ interface WalletIconProps {
|
|
|
311
311
|
* It handles logic for:
|
|
312
312
|
* 1. Rendering a custom SVG for 'impersonatedwallet' (Watch mode).
|
|
313
313
|
* 2. Normalizing IDs for common wallets (e.g. 'walletconnect' -> 'wallet-connect').
|
|
314
|
-
* 3. Lazy loading other icons from @web3icons/react.
|
|
314
|
+
* 3. Lazy loading other icons from @web3icons/react, one icon at a time (see `Web3IconLazy`).
|
|
315
315
|
*
|
|
316
316
|
* @param props - {@link WalletIconProps}
|
|
317
317
|
* @returns The wallet icon or a fallback UI.
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {motion,AnimatePresence}from'framer-motion';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {networks,wallets}from'@web3icons/common/metadata';import {getSolanaCluster}from'@tuwaio/orbit-core';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import*as d from'react';import {lazy,useState,useEffect,useCallback,Suspense,useMemo}from'react';import*as c from'@radix-ui/react-dialog';var _e="novacore:cursor-pointer novacore:rounded-[var(--tuwa-rounded-corners)] novacore:bg-[var(--tuwa-standart-button-bg)] novacore:px-3 novacore:py-2 novacore:flex novacore:items-center novacore:gap-1 novacore:text-sm novacore:font-mono novacore:font-semibold novacore:text-[var(--tuwa-text-primary)] novacore:transition-colors novacore:hover:bg-[var(--tuwa-standart-button-hover)] novacore:disabled:cursor-not-allowed novacore:disabled:opacity-50 novacore:min-h-[36px]";function s(...e){return twMerge(clsx(e))}var y=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function oe(e,o){let t={...e};return y(e)&&y(o)&&Object.keys(o).forEach(n=>{let r=e[n],a=o[n];y(r)&&y(a)?t[n]=oe(r,a):t[n]=a;}),t}function x(e){if(typeof e!="string")return;let o=e.indexOf(":");if(o<0||e.slice(0,o).toLowerCase()!=="solana")return;let t=e.slice(o+1),n=getSolanaCluster(t)??getSolanaCluster(t.toLowerCase());return n==="devnet"||n==="testnet"?n:void 0}var M="Unknown";function te(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}function G(e){let o={name:M,id:M.toLowerCase(),filePath:M.toLowerCase(),chainId:e};if(typeof e=="number"){let i=networks.find(m=>m.chainId===e);return i?{name:i.name,id:i.id,filePath:i.filePath?.split(":")[1],chainId:e}:o}let[t,n]=e?e.split(":"):[e],r=networks.find(i=>i.id===t);if(!r)return o;let a=n?x(e):void 0;return {name:a?`${r.name} ${te(a)}`:r.name,id:r.id,filePath:r.filePath?.split(":")[1],chainId:e}}function $(e){return x(e)!==void 0}function B(e=1200){if(typeof window>"u")return false;let o="ontouchstart"in window,t=navigator.maxTouchPoints>0,n=false;window.matchMedia&&(n=window.matchMedia("(pointer: coarse)").matches);let r=o||t||n,a=window.innerWidth<=e;return r&&a}function re(e){if(!e.startsWith("var("))return e;let o=e.match(/var\(\s*(--[\w-]+)/);if(!o)return e;let t=o[1];return getComputedStyle(document.documentElement).getPropertyValue(t).trim()||e}function ne(e,o){let t=re(o),r=new DOMParser().parseFromString(e,"image/svg+xml");if(r.querySelector("parsererror"))return console.warn("SVG parse error, returning original"),e;let l=r.querySelector("path");return l&&l.setAttribute("fill",t),new XMLSerializer().serializeToString(r.documentElement)}function C(e,o){let t=e;return o&&(t=ne(t,o)),`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(t)))}`}var N=e=>`${e.replace(/\s+/g,"-").toLowerCase()}.svg`;function io(e,o,t){if(!e)return "";if(e.length<=o+t)return e;let n=e.slice(0,o),r=e.slice(e.length-t);return `${n}...${r}`}function yo({className:e,strokeWidth:o,isOpen:t}){return jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:o??2,stroke:"currentColor",className:s("novacore:w-4 novacore:h-4 novacore:text-[var(--tuwa-text-secondary)]",e),children:[jsx(AnimatePresence,{children:t&&jsx(motion.path,{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5",variants:{hidden:{translateY:3,scaleY:.8,opacity:0},visible:{translateY:0,scaleY:1,opacity:1}},initial:"hidden",animate:"visible",transition:{duration:.4}})}),jsx(AnimatePresence,{children:!t&&jsx(motion.path,{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5",className:"novacore:relative",variants:{hidden:{translateY:-3,scaleY:.8,opacity:0},visible:{translateY:0,scaleY:1,opacity:1}},initial:"hidden",animate:"visible",transition:{duration:.4}})})]})}var ie=d.forwardRef(({className:e,...o},t)=>jsxs("svg",{ref:t,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:s("novacore:h-5 novacore:w-5 novacore:text-[var(--tuwa-text-primary)] novacore:transition-colors",e),...o,children:[jsx("path",{d:"M18 6 6 18"}),jsx("path",{d:"m6 6 12 12"})]}));ie.displayName="CloseIcon";var ce="novacore:flex novacore:items-center novacore:justify-center novacore:w-full novacore:h-full novacore:rounded-full novacore:text-[var(--tuwa-text-secondary)] novacore:bg-[var(--tuwa-bg-muted)]",f=({animate:e=false,content:o="",className:t})=>jsx("div",{className:s(ce,"Nova_Web3_Icon",t,{"novacore:animate-pulse":e}),children:o});function k({src:e,alt:o,...t}){return jsx("img",{...t,src:e,alt:o??"",draggable:false,onDragStart:n=>n.preventDefault(),style:{outline:"none",pointerEvents:"none"}})}var de="https://raw.githubusercontent.com/0xa3k5/web3icons/refs/heads/main/raw-svgs",L=new Map;function P({githubSrc:e,className:o,alt:t,firstPathFill:n,...r}){let a=`${e}|${n??""}`,l=L.get(a),[i,m]=useState(null),[w,b]=useState("idle"),D=l||i,g=l?"success":w;return useEffect(()=>{let I=true;return L.has(a)?void 0:((async()=>{b("loading");try{let R=await fetch(`${de}/${e}`);if(!R.ok)throw new Error(`Failed to load icon: ${R.status}`);let j=await R.text();if(I){let V=C(j,n);L.set(a,V),m(V),b("success");}}catch{I&&b("error");}})(),()=>{I=false;})},[e,n,a]),g==="loading"||g==="idle"?jsx(f,{animate:true,className:o}):g==="success"&&D?jsx(k,{...r,src:D,alt:t,className:o}):jsx(f,{content:"?",className:o})}var Bo=c.Root,Oo=c.Trigger,pe=c.Portal,Ho=c.Close,fe={initial:{opacity:0,scale:.9,y:20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.9,transition:{duration:.2}}},ve={initial:{opacity:0,y:"100%"},animate:{opacity:1,y:"0%"},exit:{opacity:0,y:"100%",transition:{duration:.2}}},ge={initial:{opacity:0},animate:{opacity:1},exit:{opacity:0}},K=({className:e,backdropAnimation:o})=>(d.useEffect(()=>(typeof window<"u"&&window.document.body.classList.add("NovaModalOpen"),()=>{typeof window<"u"&&window.document.body.classList.remove("NovaModalOpen");}),[]),jsx(AnimatePresence,{children:jsx(motion.div,{variants:o??ge,transition:{duration:.2,ease:"easeInOut"},animate:"animate",initial:"initial",exit:"exit",className:"novacore:relative novacore:overflow-hidden",children:jsx("div",{className:s("novacore:fixed novacore:inset-0 novacore:z-50 novacore:bg-black/55 novacore:backdrop-blur-sm novacore:backdrop-saturate-150",e)})})}));K.displayName=c.Overlay.displayName;var we=d.forwardRef(({className:e,children:o,modalAnimation:t,backdropAnimation:n,...r},a)=>{let[l,i]=d.useState(false);d.useEffect(()=>{i(B());},[]);let m=t??(l?ve:fe);return jsxs(pe,{children:[jsx(K,{backdropAnimation:n}),jsx(c.Content,{"aria-describedby":"tuwa:modal-content",ref:a,className:s("NovaNoScrolling novacore:fixed novacore:bottom-0 novacore:left-0 novacore:p-0 novacore:sm:bottom-auto novacore:sm:left-[50%] novacore:sm:top-[50%] novacore:sm:translate-x-[-50%] novacore:sm:translate-y-[-50%] novacore:z-50 novacore:sm:p-4 novacore:outline-none",e),...r,children:jsx(motion.div,{layout:true,className:"NovaNoScrolling novacore:relative novacore:overflow-hidden",transition:{layout:{duration:.2,ease:[.1,.1,.2,1]}},children:jsx(AnimatePresence,{children:jsx(motion.div,{variants:m,transition:{duration:.2,ease:"easeInOut"},animate:"animate",initial:"initial",exit:"exit",className:"NovaNoScrolling novacore:relative novacore:overflow-hidden novacore:bg-[var(--tuwa-bg-primary)] novacore:border novacore:border-[var(--tuwa-border-primary)] novacore:rounded-t-[var(--tuwa-rounded-corners)] novacore:sm:rounded-[var(--tuwa-rounded-corners)]",children:jsx("div",{className:s("NovaNoScrolling NovaDialogContent__elements novacore:relative novacore:flex novacore:max-h-[100dvh] novacore:w-full novacore:flex-col novacore:overflow-y-auto","novacore:[transform:translateZ(0)] novacore:[backface-visibility:hidden]"),children:o})})})})})]})});we.displayName=c.Content.displayName;var be=({className:e,...o})=>jsx("div",{"aria-describedby":"tuwa:modal-header",className:s("novacore:sticky novacore:flex novacore:top-0 novacore:z-11 novacore:w-full novacore:flex-row novacore:items-center novacore:justify-between","novacore:border-b novacore:border-[var(--tuwa-border-primary)] novacore:bg-[var(--tuwa-bg-primary)] novacore:p-4",e),...o});be.displayName="DialogHeader";var he=({className:e,...o})=>jsx("div",{"aria-describedby":"tuwa:modal-footer",className:s("novacore:flex novacore:flex-col-reverse novacore:sm:flex-row novacore:sm:justify-end novacore:sm:space-x-2",e),...o});he.displayName="DialogFooter";var ye=d.forwardRef(({className:e,...o},t)=>jsx(c.Title,{ref:t,"aria-describedby":"tuwa:modal-title",className:s("novacore:text-lg novacore:font-bold novacore:leading-none novacore:tracking-tight novacore:text-[var(--tuwa-text-primary)] novacore:m-0 novacore:font-mono",e),...o}));ye.displayName=c.Title.displayName;var xe=d.forwardRef(({className:e,...o},t)=>jsx(c.Description,{"aria-describedby":"tuwa:modal-description",ref:t,className:s("novacore:text-sm novacore:text-[var(--tuwa-text-secondary)]",e),...o}));xe.displayName=c.Description.displayName;function h({children:e,iconId:o,alt:t,firstPathFill:n,...r}){let[a,l]=useState(null),i=useCallback(m=>{if(m){let w=C(m.outerHTML,n);l({id:o,src:w});}},[o,n]);return a&&a.id===o?jsx(k,{...r,src:a.src,alt:t}):jsx(Fragment,{children:e(i)})}var X=lazy(()=>import('@web3icons/react/dynamic').then(e=>({default:e.NetworkIcon}))),De="var(--tuwa-testnet-icons)";function nt({chainId:e,variant:o="background",className:t}){let n=G(e),r=typeof e=="string",a=r?e.split(":")[0].toLowerCase():e,i=r&&$(e)||n.name.toLowerCase().includes("testnet")?De:void 0,m=s("novacore:w-full novacore:h-full novacore:rounded-full",t),w=typeof a=="string"?a:n.filePath,b=`networks/${o}/${N(w)}`;return n.name==="Unknown"?typeof e=="number"?jsx(f,{content:"?",className:t}):jsx(P,{githubSrc:b,className:m,firstPathFill:i}):jsx(Suspense,{fallback:jsx(f,{animate:true,className:t}),children:jsx(h,{iconId:`${e}-${o}`,className:m,firstPathFill:i,children:g=>typeof a=="string"?jsx(X,{ref:g,id:a,variant:o}):jsx(X,{ref:g,chainId:a,variant:o})})})}function ct({starsCount:e}){let[o,t]=useState(false);useEffect(()=>t(true),[]);let n=useMemo(()=>o?Array.from({length:e??200}).map(()=>({x:Math.random()*window.innerWidth,y:Math.random()*window.innerHeight,r:Math.random()*1+.5,isSupernova:Math.random()<.1,delay:Math.random()*10,duration:5+Math.random()*5})):[],[o]);return jsx("div",{className:"novacore:absolute novacore:inset-0 novacore:z-1 novacore:h-full novacore:w-full novacore:overflow-hidden",children:jsxs("svg",{width:"100%",height:"100%",xmlns:"http://www.w3.org/2000/svg",children:[jsx("defs",{children:jsx("style",{children:`
|
|
1
|
+
import {motion,AnimatePresence}from'framer-motion';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {networks}from'@web3icons/common/metadata/networks';import {getSolanaCluster}from'@tuwaio/orbit-core';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import*as d from'react';import {useState,useEffect,useCallback,Suspense,useMemo}from'react';import*as l from'@radix-ui/react-dialog';import {Web3IconLazy}from'./web3-icons.js';import {wallets}from'@web3icons/common/metadata/wallets';var Ue="novacore:cursor-pointer novacore:rounded-[var(--tuwa-rounded-corners)] novacore:bg-[var(--tuwa-standart-button-bg)] novacore:px-3 novacore:py-2 novacore:flex novacore:items-center novacore:gap-1 novacore:text-sm novacore:font-mono novacore:font-semibold novacore:text-[var(--tuwa-text-primary)] novacore:transition-colors novacore:hover:bg-[var(--tuwa-standart-button-hover)] novacore:disabled:cursor-not-allowed novacore:disabled:opacity-50 novacore:min-h-[36px]";function s(...e){return twMerge(clsx(e))}var C=e=>typeof e=="object"&&e!==null&&!Array.isArray(e);function ee(e,o){let t={...e};return C(e)&&C(o)&&Object.keys(o).forEach(n=>{let r=e[n],a=o[n];C(r)&&C(a)?t[n]=ee(r,a):t[n]=a;}),t}function S(e){if(typeof e!="string")return;let o=e.indexOf(":");if(o<0||e.slice(0,o).toLowerCase()!=="solana")return;let t=e.slice(o+1),n=getSolanaCluster(t)??getSolanaCluster(t.toLowerCase());return n==="devnet"||n==="testnet"?n:void 0}var M="Unknown";function oe(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}function G(e){let o={name:M,id:M.toLowerCase(),filePath:M.toLowerCase(),chainId:e};if(typeof e=="number"){let i=networks.find(c=>c.chainId===e);return i?{name:i.name,id:i.id,filePath:i.filePath?.split(":")[1],chainId:e}:o}let[t,n]=e?e.split(":"):[e],r=networks.find(i=>i.id===t);if(!r)return o;let a=n?S(e):void 0;return {name:a?`${r.name} ${oe(a)}`:r.name,id:r.id,filePath:r.filePath?.split(":")[1],chainId:e}}function $(e){return S(e)!==void 0}function B(e=1200){if(typeof window>"u")return false;let o="ontouchstart"in window,t=navigator.maxTouchPoints>0,n=false;window.matchMedia&&(n=window.matchMedia("(pointer: coarse)").matches);let r=o||t||n,a=window.innerWidth<=e;return r&&a}function te(e){if(!e.startsWith("var("))return e;let o=e.match(/var\(\s*(--[\w-]+)/);if(!o)return e;let t=o[1];return getComputedStyle(document.documentElement).getPropertyValue(t).trim()||e}function re(e,o){let t=te(o),r=new DOMParser().parseFromString(e,"image/svg+xml");if(r.querySelector("parsererror"))return console.warn("SVG parse error, returning original"),e;let m=r.querySelector("path");return m&&m.setAttribute("fill",t),new XMLSerializer().serializeToString(r.documentElement)}function N(e,o){let t=e;return o&&(t=re(t,o)),`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(t)))}`}var P=e=>`${e.replace(/\s+/g,"-").toLowerCase()}.svg`;function ao(e,o,t){if(!e)return "";if(e.length<=o+t)return e;let n=e.slice(0,o),r=e.slice(e.length-t);return `${n}...${r}`}function ho({className:e,strokeWidth:o,isOpen:t}){return jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:o??2,stroke:"currentColor",className:s("novacore:w-4 novacore:h-4 novacore:text-[var(--tuwa-text-secondary)]",e),children:[jsx(AnimatePresence,{children:t&&jsx(motion.path,{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5",variants:{hidden:{translateY:3,scaleY:.8,opacity:0},visible:{translateY:0,scaleY:1,opacity:1}},initial:"hidden",animate:"visible",transition:{duration:.4}})}),jsx(AnimatePresence,{children:!t&&jsx(motion.path,{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5",className:"novacore:relative",variants:{hidden:{translateY:-3,scaleY:.8,opacity:0},visible:{translateY:0,scaleY:1,opacity:1}},initial:"hidden",animate:"visible",transition:{duration:.4}})})]})}var ae=d.forwardRef(({className:e,...o},t)=>jsxs("svg",{ref:t,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:s("novacore:h-5 novacore:w-5 novacore:text-[var(--tuwa-text-primary)] novacore:transition-colors",e),...o,children:[jsx("path",{d:"M18 6 6 18"}),jsx("path",{d:"m6 6 12 12"})]}));ae.displayName="CloseIcon";var se="novacore:flex novacore:items-center novacore:justify-center novacore:w-full novacore:h-full novacore:rounded-full novacore:text-[var(--tuwa-text-secondary)] novacore:bg-[var(--tuwa-bg-muted)]",f=({animate:e=false,content:o="",className:t})=>jsx("div",{className:s(se,"Nova_Web3_Icon",t,{"novacore:animate-pulse":e}),children:o});function T({src:e,alt:o,...t}){return jsx("img",{...t,src:e,alt:o??"",draggable:false,onDragStart:n=>n.preventDefault(),style:{outline:"none",pointerEvents:"none"}})}var ue="https://raw.githubusercontent.com/0xa3k5/web3icons/refs/heads/main/raw-svgs",L=new Map;function D({githubSrc:e,className:o,alt:t,firstPathFill:n,...r}){let a=`${e}|${n??""}`,m=L.get(a),[i,c]=useState(null),[w,b]=useState("idle"),h=m||i,x=m?"success":w;return useEffect(()=>{let v=true;return L.has(a)?void 0:((async()=>{b("loading");try{let I=await fetch(`${ue}/${e}`);if(!I.ok)throw new Error(`Failed to load icon: ${I.status}`);let Z=await I.text();if(v){let V=N(Z,n);L.set(a,V),c(V),b("success");}}catch{v&&b("error");}})(),()=>{v=false;})},[e,n,a]),x==="loading"||x==="idle"?jsx(f,{animate:true,className:o}):x==="success"&&h?jsx(T,{...r,src:h,alt:t,className:o}):jsx(f,{content:"?",className:o})}var $o=l.Root,Bo=l.Trigger,de=l.Portal,Oo=l.Close,pe={initial:{opacity:0,scale:.9,y:20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.9,transition:{duration:.2}}},fe={initial:{opacity:0,y:"100%"},animate:{opacity:1,y:"0%"},exit:{opacity:0,y:"100%",transition:{duration:.2}}},ve={initial:{opacity:0},animate:{opacity:1},exit:{opacity:0}},K=({className:e,backdropAnimation:o})=>(d.useEffect(()=>(typeof window<"u"&&window.document.body.classList.add("NovaModalOpen"),()=>{typeof window<"u"&&window.document.body.classList.remove("NovaModalOpen");}),[]),jsx(AnimatePresence,{children:jsx(motion.div,{variants:o??ve,transition:{duration:.2,ease:"easeInOut"},animate:"animate",initial:"initial",exit:"exit",className:"novacore:relative novacore:overflow-hidden",children:jsx("div",{className:s("novacore:fixed novacore:inset-0 novacore:z-50 novacore:bg-black/55 novacore:backdrop-blur-sm novacore:backdrop-saturate-150",e)})})}));K.displayName=l.Overlay.displayName;var ge=d.forwardRef(({className:e,children:o,modalAnimation:t,backdropAnimation:n,...r},a)=>{let[m,i]=d.useState(false);d.useEffect(()=>{i(B());},[]);let c=t??(m?fe:pe);return jsxs(de,{children:[jsx(K,{backdropAnimation:n}),jsx(l.Content,{"aria-describedby":"tuwa:modal-content",ref:a,className:s("NovaNoScrolling novacore:fixed novacore:bottom-0 novacore:left-0 novacore:p-0 novacore:sm:bottom-auto novacore:sm:left-[50%] novacore:sm:top-[50%] novacore:sm:translate-x-[-50%] novacore:sm:translate-y-[-50%] novacore:z-50 novacore:sm:p-4 novacore:outline-none",e),...r,children:jsx(motion.div,{layout:true,className:"NovaNoScrolling novacore:relative novacore:overflow-hidden",transition:{layout:{duration:.2,ease:[.1,.1,.2,1]}},children:jsx(AnimatePresence,{children:jsx(motion.div,{variants:c,transition:{duration:.2,ease:"easeInOut"},animate:"animate",initial:"initial",exit:"exit",className:"NovaNoScrolling novacore:relative novacore:overflow-hidden novacore:bg-[var(--tuwa-bg-primary)] novacore:border novacore:border-[var(--tuwa-border-primary)] novacore:rounded-t-[var(--tuwa-rounded-corners)] novacore:sm:rounded-[var(--tuwa-rounded-corners)]",children:jsx("div",{className:s("NovaNoScrolling NovaDialogContent__elements novacore:relative novacore:flex novacore:max-h-[100dvh] novacore:w-full novacore:flex-col novacore:overflow-y-auto","novacore:[transform:translateZ(0)] novacore:[backface-visibility:hidden]"),children:o})})})})})]})});ge.displayName=l.Content.displayName;var we=({className:e,...o})=>jsx("div",{"aria-describedby":"tuwa:modal-header",className:s("novacore:sticky novacore:flex novacore:top-0 novacore:z-11 novacore:w-full novacore:flex-row novacore:items-center novacore:justify-between","novacore:border-b novacore:border-[var(--tuwa-border-primary)] novacore:bg-[var(--tuwa-bg-primary)] novacore:p-4",e),...o});we.displayName="DialogHeader";var be=({className:e,...o})=>jsx("div",{"aria-describedby":"tuwa:modal-footer",className:s("novacore:flex novacore:flex-col-reverse novacore:sm:flex-row novacore:sm:justify-end novacore:sm:space-x-2",e),...o});be.displayName="DialogFooter";var he=d.forwardRef(({className:e,...o},t)=>jsx(l.Title,{ref:t,"aria-describedby":"tuwa:modal-title",className:s("novacore:text-lg novacore:font-bold novacore:leading-none novacore:tracking-tight novacore:text-[var(--tuwa-text-primary)] novacore:m-0 novacore:font-mono",e),...o}));he.displayName=l.Title.displayName;var ye=d.forwardRef(({className:e,...o},t)=>jsx(l.Description,{"aria-describedby":"tuwa:modal-description",ref:t,className:s("novacore:text-sm novacore:text-[var(--tuwa-text-secondary)]",e),...o}));ye.displayName=l.Description.displayName;function y({children:e,iconId:o,alt:t,firstPathFill:n,...r}){let[a,m]=useState(null),i=useCallback(c=>{if(c){let w=N(c.outerHTML,n);m({id:o,src:w});}},[o,n]);return a&&a.id===o?jsx(T,{...r,src:a.src,alt:t}):jsx(Fragment,{children:e(i)})}var De="var(--tuwa-testnet-icons)";function at({chainId:e,variant:o="background",className:t}){let n=G(e),r=typeof e=="string",a=r?e.split(":")[0].toLowerCase():e,i=r&&$(e)||n.name.toLowerCase().includes("testnet")?De:void 0,c=s("novacore:w-full novacore:h-full novacore:rounded-full",t),w=typeof a=="string"?a:n.filePath,b=`networks/${o}/${P(w)}`,h=networks.find(v=>v.id===n.id)?.filePath;return n.name==="Unknown"||!h?typeof e=="number"?jsx(f,{content:"?",className:t}):jsx(D,{githubSrc:b,className:c,firstPathFill:i}):jsx(Suspense,{fallback:jsx(f,{animate:true,className:t}),children:jsx(y,{iconId:`${e}-${o}`,className:c,firstPathFill:i,children:v=>jsx(Web3IconLazy,{ref:v,filePath:h,variant:o})})})}function lt({starsCount:e}){let[o,t]=useState(false);useEffect(()=>t(true),[]);let n=useMemo(()=>o?Array.from({length:e??200}).map(()=>({x:Math.random()*window.innerWidth,y:Math.random()*window.innerHeight,r:Math.random()*1+.5,isSupernova:Math.random()<.1,delay:Math.random()*10,duration:5+Math.random()*5})):[],[o]);return jsx("div",{className:"novacore:absolute novacore:inset-0 novacore:z-1 novacore:h-full novacore:w-full novacore:overflow-hidden",children:jsxs("svg",{width:"100%",height:"100%",xmlns:"http://www.w3.org/2000/svg",children:[jsx("defs",{children:jsx("style",{children:`
|
|
2
2
|
/* Pulse animation now includes scale for a more organic feel. */
|
|
3
3
|
@keyframes pulse {
|
|
4
4
|
0%, 100% {
|
|
@@ -44,5 +44,5 @@ import {motion,AnimatePresence}from'framer-motion';import {clsx}from'clsx';impor
|
|
|
44
44
|
transform-origin: center;
|
|
45
45
|
stroke-width: 2;
|
|
46
46
|
}
|
|
47
|
-
`})}),n.map((r,a)=>jsx("circle",{cx:r.x,cy:r.y,r:r.r,fill:"rgba(var(--tuwa-bg-primary), 0.7)",className:r.isSupernova?"supernova":"pulsar",style:{animationDelay:`${r.delay}s`,animationDuration:`${r.duration}s`}},a))]})})}function
|
|
48
|
-
export{
|
|
47
|
+
`})}),n.map((r,a)=>jsx("circle",{cx:r.x,cy:r.y,r:r.r,fill:"rgba(var(--tuwa-bg-primary), 0.7)",className:r.isSupernova?"supernova":"pulsar",style:{animationDelay:`${r.delay}s`,animationDuration:`${r.duration}s`}},a))]})})}function pt({closeToast:e,ariaLabel:o="Close toast notification",title:t="Close toast notification",className:n,iconClassName:r}){return jsx("button",{type:"button",onClick:e,"aria-label":o,title:t,className:s("novacore:absolute novacore:top-2 novacore:right-2 novacore:cursor-pointer novacore:rounded-[var(--tuwa-rounded-corners)] novacore:p-1","novacore:text-[var(--tuwa-text-tertiary)] novacore:transition-colors","novacore:hover:bg-[var(--tuwa-bg-muted)] novacore:hover:text-[var(--tuwa-text-primary)]",n),children:jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:s("novacore:h-5 novacore:w-5",r),children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"})})})}var Ve={walletconnect:"wallet-connect"};function We(e){return wallets.find(o=>o.id===e||o.name?.toLowerCase()===e)?.filePath}var ze=({className:e,ref:o})=>jsxs("svg",{ref:o,className:e,fill:"none",viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg",children:[jsx("path",{fill:"#fff",fillRule:"evenodd",d:"M16 0c8.84 0 16 7.16 16 16s-7.16 16-16 16S0 24.84 0 16 7.16 0 16 0",clipRule:"evenodd"}),jsx("path",{fill:"#000",fillRule:"evenodd",d:"M16.54 2.01h1.53c.5.09.99.23 1.48.42.21.25.19.48-.05.69q-.195.045-.39 0c-1.86-.65-3.55-.35-5.07.89 2.39.7 3.84 2.27 4.36 4.7.12.85.08 1.68-.12 2.51.87 0 1.74 0 2.61-.02.39-.4.7-.85.94-1.35-.45-.45-.65-.99-.59-1.63-1.15.08-1.79-.44-1.92-1.58.14-1.12.78-1.67 1.92-1.63a.7.7 0 0 0-.12-.49l-.89-.89c-.02-.45.19-.6.62-.47.24.19.46.39.66.62.71-.79 1.5-.89 2.39-.32.44.42.62.94.54 1.55 1.49.02 2.11.76 1.85 2.22-.08.17-.17.34-.27.49.53.59.87 1.28 1.01 2.07.08 4.6.1 9.19.05 13.79-.19 1.58-1 2.71-2.44 3.37-.29.1-.59.2-.89.27H7.2c-1.31-.33-2.05-1.17-2.24-2.51-.03-5.24-.03-10.47 0-15.71.3-1.62 1.28-2.46 2.93-2.54 1.26-1.77 2.98-2.64 5.17-2.61.96-1.01 2.13-1.62 3.5-1.85zm6.11 1.87c.39-.03.7.12.91.44.06.39.09.79.1 1.18.02.12.07.21.17.27.41 0 .82.04 1.23.1.49.26.63.65.42 1.16-.07.14-.18.25-.32.32-.39.06-.79.09-1.18.1-.12.02-.21.07-.27.17l-.15 1.33c-.32.46-.72.55-1.21.27a.76.76 0 0 1-.27-.37c-.06-.41-.09-.82-.1-1.23a.35.35 0 0 0-.27-.17l-1.08-.05c-.46-.24-.62-.61-.47-1.11.14-.27.36-.43.66-.47l.99-.05s.09-.04.12-.07l.15-1.28q.18-.39.57-.54m-10.49.79c2.41-.09 4.12.94 5.15 3.1.44 1.12.48 2.25.12 3.4-.84.06-1.67.07-2.51.02.56-.68.52-1.32-.1-1.92-.26-.13-.54-.19-.84-.17.02-.95 0-1.91-.07-2.86-.21-.41-.55-.58-1.01-.52-.17.03-.31.09-.44.2-.72.92-1.43 1.85-2.14 2.78-.28.45-.29.91-.05 1.38q.225.3.57.42c.34.02.69.03 1.03.02v.69c-1.3.02-2.59 0-3.89-.05-.58-2.1-.08-3.88 1.53-5.34.79-.62 1.68-1 2.66-1.16zm.83 1.82c.07 0 .13.03.17.1l.05 3.05c.04.09.1.16.17.22l.89.05c.22.08.3.24.22.47q-.27.42-.57.81c-.43.02-.85.03-1.28.02 0-.41 0-.82-.02-1.23a.46.46 0 0 0-.17-.17l-1.28-.05c-.3-.1-.37-.29-.22-.57.7-.89 1.39-1.79 2.04-2.71zm-5.81.84h.2a6.1 6.1 0 0 0-.25 3.77c-.59-.13-1.01-.49-1.26-1.06-.36-1.29.08-2.19 1.31-2.71m17.98.83c.05 0 .1 0 .15.02q.825.855.96 2.04.045 1.305 0 2.61a3.76 3.76 0 0 0-2.54-1.55c-.61-.05-1.21-.08-1.82-.1.26-.31.48-.66.64-1.03 1.31.02 1.94-.62 1.87-1.95.26.02.5 0 .74-.05zM5.7 11.22c.41.4.91.65 1.48.76l16.06.05c1.42.13 2.38.87 2.88 2.19.07.24.12.49.15.74.03 2.86.03 5.71 0 8.57-.21 1.44-1 2.38-2.39 2.83-.24.05-.49.08-.74.1-1.26.02-2.53.03-3.79.02 0-1.33 0-2.66.02-3.99l1.55-1.55c1.42-.04 2.09-.78 1.99-2.19-.24-.88-.81-1.34-1.72-1.38-1.2.12-1.81.8-1.82 2.02l-1.92 1.92c-.08.11-.14.22-.2.34-.07 1.61-.1 3.22-.07 4.83h-.44c0-2.28 0-4.56-.02-6.85a1.8 1.8 0 0 0-.15-.34l-1.13-1.13c0-1.23-.61-1.92-1.82-2.07-1.29.17-1.87.91-1.72 2.22q.465 1.395 1.95 1.35l.71.71c0 .3.04.6.1.89.25.21.48.19.69-.05.03-.39.03-.79 0-1.18-.2-.25-.43-.49-.66-.71.15-.1.29-.22.39-.37.3.27.58.55.86.84.02 2.23.03 4.47.02 6.7h-.59c0-1.38 0-2.76-.02-4.14-.15-.25-.35-.31-.62-.17a1 1 0 0 0-.12.22c-.02 1.36-.03 2.73-.02 4.09h-.44c0-.99 0-1.97-.02-2.96-.02-.09-.06-.17-.1-.25-.67-.72-1.36-1.43-2.07-2.12-.06-1.48-.82-2.13-2.29-1.95-1.02.41-1.42 1.16-1.21 2.24q.51 1.32 1.95 1.26l1.55 1.55c.02.74.03 1.48.02 2.22-1.56.02-3.12 0-4.68-.07-.9-.24-1.42-.83-1.55-1.75-.02-4.48-.03-8.96-.02-13.45zm7.79 5.66c.84.06 1.19.5 1.06 1.33-.32.62-.8.79-1.45.52-.46-.37-.56-.82-.32-1.35.18-.26.42-.42.71-.49zm7.43 1.28c.89-.03 1.29.4 1.21 1.28-.33.67-.83.85-1.5.52-.54-.49-.58-1-.1-1.55.12-.11.25-.19.39-.25M9.94 19.94c.84 0 1.22.4 1.16 1.23-.28.68-.76.89-1.45.62-.63-.54-.65-1.09-.05-1.67l.34-.17zm9.75.24c.16.13.3.27.44.42-.53.52-1.05 1.05-1.55 1.6-.02 1.43-.03 2.86-.02 4.28h-.59c0-1.51 0-3.02.02-4.53a71 71 0 0 1 1.7-1.77M11.56 22c.62.53 1.21 1.11 1.75 1.72.02.92.03 1.84.02 2.76h-.59c0-.85 0-1.71-.02-2.56l-1.48-1.48s-.03-.07 0-.1c.12-.11.22-.22.32-.34",clipRule:"evenodd"})]});function St({walletName:e,variant:o="background",className:t}){let n=s("novacore:w-full novacore:h-full novacore:rounded-full",t),r=e.toLowerCase();if(r==="impersonatedwallet")return jsx(y,{iconId:"impersonatedwallet",className:n,children:c=>jsx(ze,{ref:c})});let a=Ve[r]??r,m=`wallets/${o}/${P(a)}`,i=We(a);return i?jsx(Suspense,{fallback:jsx(f,{animate:true,className:t}),children:jsx(y,{iconId:`${a}-${o}`,className:n,children:c=>jsx(Web3IconLazy,{ref:c,filePath:i,variant:o})})}):jsx(D,{githubSrc:m,className:n})}function Tt(e=2e3){let[o,t]=useState(false),[n,r]=useState(null),a=useCallback(async m=>{if(!m)return {copied:false,error:new Error("There is no text to copy.")};try{return await navigator.clipboard.writeText(m),t(!0),r(null),setTimeout(()=>t(!1),e),{copied:!0}}catch(i){let c=i instanceof Error?i:new Error("Failed to copy text.");return console.error(c),r(c),setTimeout(()=>r(null),e),{copied:false,error:c}}},[e]);return {isCopied:o,copy:a,error:n}}function It(e){let o=r=>typeof window<"u"?window.matchMedia(r).matches:false,[t,n]=useState(o(e));return useEffect(()=>{let r=window.matchMedia(e),a=()=>n(r.matches);return a(),window.addEventListener("resize",a),()=>window.removeEventListener("resize",a)},[e]),t}
|
|
48
|
+
export{ho as ChevronArrowWithAnim,ae as CloseIcon,$o as Dialog,Oo as DialogClose,ge as DialogContent,ye as DialogDescription,be as DialogFooter,we as DialogHeader,K as DialogOverlay,de as DialogPortal,he as DialogTitle,Bo as DialogTrigger,f as FallbackIcon,D as GithubFallbackIcon,at as NetworkIcon,lt as StarsBackground,T as SvgImg,y as SvgToImg,pt as ToastCloseButton,St as WalletIcon,re as applyFirstPathFill,s as cn,ee as deepMerge,P as formatIconNameForGithub,G as getChainName,$ as isSolanaDev,B as isTouchDevice,te as resolveCssVariable,Ue as standardButtonClasses,N as svgToBase64,ao as textCenterEllipsis,Tt as useCopyToClipboard,It as useMediaQuery};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';var react=require('react');var a=new Map;function p(t){let[e="",n=""]=t.split(":"),r=e==="token"?n.replace(/[- ]+/g,"_").toUpperCase():(n.match(/[a-z0-9]+/gi)??[]).map(o=>o[0].toUpperCase()+o.slice(1).toLowerCase()).join("");return `${e.charAt(0).toUpperCase()}${e.slice(1)}${r}`}function c(t){let e=p(t),n=a.get(e);return n||(n=import('@web3icons/react/dynamicIconImports').then(async({default:r})=>{let o=r[e];return o?(await o()).default:null}).catch(()=>null),a.set(e,n)),n}function m({filePath:t,variant:e,className:n,ref:r}){let o=react.use(c(t));return o?react.createElement(o,{ref:r,variant:e,className:n}):null}exports.Web3IconLazy=m;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Ref } from 'react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Renders an icon of `@web3icons/react` loaded with `loadWeb3Icon` (one icon at a time). It suspends while the icon loads, so render it
|
|
6
|
+
* inside `Suspense`, and renders nothing when the icon does not exist.
|
|
7
|
+
*
|
|
8
|
+
* @param props - The `filePath` of the icon in the metadata, its `variant`, `className` and the `ref` of the SVG element.
|
|
9
|
+
* @returns The icon element, or `null`.
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
declare function Web3IconLazy({ filePath, variant, className, ref, }: {
|
|
13
|
+
filePath: string;
|
|
14
|
+
variant?: 'background' | 'branded' | 'mono';
|
|
15
|
+
className?: string;
|
|
16
|
+
ref?: Ref<SVGSVGElement>;
|
|
17
|
+
}): React.ReactElement<{
|
|
18
|
+
ref?: Ref<SVGSVGElement>;
|
|
19
|
+
variant?: "background" | "branded" | "mono";
|
|
20
|
+
className?: string;
|
|
21
|
+
}, string | React.JSXElementConstructor<any>> | null;
|
|
22
|
+
|
|
23
|
+
export { Web3IconLazy };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Ref } from 'react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Renders an icon of `@web3icons/react` loaded with `loadWeb3Icon` (one icon at a time). It suspends while the icon loads, so render it
|
|
6
|
+
* inside `Suspense`, and renders nothing when the icon does not exist.
|
|
7
|
+
*
|
|
8
|
+
* @param props - The `filePath` of the icon in the metadata, its `variant`, `className` and the `ref` of the SVG element.
|
|
9
|
+
* @returns The icon element, or `null`.
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
declare function Web3IconLazy({ filePath, variant, className, ref, }: {
|
|
13
|
+
filePath: string;
|
|
14
|
+
variant?: 'background' | 'branded' | 'mono';
|
|
15
|
+
className?: string;
|
|
16
|
+
ref?: Ref<SVGSVGElement>;
|
|
17
|
+
}): React.ReactElement<{
|
|
18
|
+
ref?: Ref<SVGSVGElement>;
|
|
19
|
+
variant?: "background" | "branded" | "mono";
|
|
20
|
+
className?: string;
|
|
21
|
+
}, string | React.JSXElementConstructor<any>> | null;
|
|
22
|
+
|
|
23
|
+
export { Web3IconLazy };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import {use,createElement}from'react';var a=new Map;function p(t){let[e="",n=""]=t.split(":"),r=e==="token"?n.replace(/[- ]+/g,"_").toUpperCase():(n.match(/[a-z0-9]+/gi)??[]).map(o=>o[0].toUpperCase()+o.slice(1).toLowerCase()).join("");return `${e.charAt(0).toUpperCase()}${e.slice(1)}${r}`}function c(t){let e=p(t),n=a.get(e);return n||(n=import('@web3icons/react/dynamicIconImports').then(async({default:r})=>{let o=r[e];return o?(await o()).default:null}).catch(()=>null),a.set(e,n)),n}function m({filePath:t,variant:e,className:n,ref:r}){let o=use(c(t));return o?createElement(o,{ref:r,variant:e,className:n}):null}export{m as Web3IconLazy};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tuwaio/nova-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "Oleksandr Tkach",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"@radix-ui/react-dialog": "^1.2.0",
|
|
63
63
|
"@tailwindcss/postcss": "^4.3.3",
|
|
64
64
|
"@tailwindcss/vite": "^4.3.3",
|
|
65
|
-
"@tuwaio/orbit-core": "0.5.
|
|
65
|
+
"@tuwaio/orbit-core": "0.5.1",
|
|
66
66
|
"@types/react": "^19.3.0",
|
|
67
67
|
"@web3icons/common": "^0.11.53",
|
|
68
68
|
"@web3icons/react": "^4.1.24",
|