@tuwaio/nova-core 0.8.1 → 0.9.0
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/package.json +3 -3
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`. `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'),p=require('react'),l=require('@radix-ui/react-dialog'),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 p__namespace=/*#__PURE__*/_interopNamespace(p);var l__namespace=/*#__PURE__*/_interopNamespace(l);var Ke="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 re(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]=re(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 L="Unknown";function ne(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}function z(e){let o={name:L,id:L.toLowerCase(),filePath:L.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} ${ne(a)}`:r.name,id:r.id,filePath:r.filePath?.split(":")[1],chainId:e}}function B(e){return S(e)!==void 0}function O(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 ae(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 ie(e,o){let t=ae(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=ie(t,o)),`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(t)))}`}var P=e=>`${e.replace(/\s+/g,"-").toLowerCase()}.svg`;function lo(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 So({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 ce=p__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"})]}));ce.displayName="CloseIcon";var me="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(me,"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 fe="https://raw.githubusercontent.com/0xa3k5/web3icons/refs/heads/main/raw-svgs",E=new Map;function I({githubSrc:e,className:o,alt:t,firstPathFill:n,...r}){let a=`${e}|${n??""}`,m=E.get(a),[i,c]=p.useState(null),[w,b]=p.useState("idle"),h=m||i,x=m?"success":w;return p.useEffect(()=>{let v=true;return E.has(a)?void 0:((async()=>{b("loading");try{let M=await fetch(`${fe}/${e}`);if(!M.ok)throw new Error(`Failed to load icon: ${M.status}`);let ee=await M.text();if(v){let F=N(ee,n);E.set(a,F),c(F),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,Ho=l__namespace.Trigger,ve=l__namespace.Portal,Yo=l__namespace.Close,ge={initial:{opacity:0,scale:.9,y:20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.9,transition:{duration:.2}}},we={initial:{opacity:0,y:"100%"},animate:{opacity:1,y:"0%"},exit:{opacity:0,y:"100%",transition:{duration:.2}}},be={initial:{opacity:0},animate:{opacity:1},exit:{opacity:0}},j=({className:e,backdropAnimation:o})=>(p__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??be,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)})})}));j.displayName=l__namespace.Overlay.displayName;var he=p__namespace.forwardRef(({className:e,children:o,modalAnimation:t,backdropAnimation:n,...r},a)=>{let[m,i]=p__namespace.useState(false);p__namespace.useEffect(()=>{i(O());},[]);let c=t??(m?we:ge);return jsxRuntime.jsxs(ve,{children:[jsxRuntime.jsx(j,{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})})})})})]})});he.displayName=l__namespace.Content.displayName;var ye=({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});ye.displayName="DialogHeader";var xe=({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});xe.displayName="DialogFooter";var Ce=p__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}));Ce.displayName=l__namespace.Title.displayName;var Se=p__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}));Se.displayName=l__namespace.Description.displayName;function y({children:e,iconId:o,alt:t,firstPathFill:n,...r}){let[a,m]=p.useState(null),i=p.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 X=new Map;function Ie(e){let[o="",t=""]=e.split(":"),n=o==="token"?t.replace(/[- ]+/g,"_").toUpperCase():(t.match(/[a-z0-9]+/gi)??[]).map(r=>r[0].toUpperCase()+r.slice(1).toLowerCase()).join("");return `${o.charAt(0).toUpperCase()}${o.slice(1)}${n}`}function Z(e){let o=Ie(e),t=X.get(o);return t||(t=import('@web3icons/react/dynamicIconImports').then(async({default:n})=>{let r=n[o];return r?(await r()).default:null}).catch(()=>null),X.set(o,t)),t}function R({filePath:e,variant:o,className:t,ref:n}){let r=p.use(Z(e));return r?p.createElement(r,{ref:n,variant:o,className:t}):null}var Ee="var(--tuwa-testnet-icons)";function dt({chainId:e,variant:o="background",className:t}){let n=z(e),r=typeof e=="string",a=r?e.split(":")[0].toLowerCase():e,i=r&&B(e)||n.name.toLowerCase().includes("testnet")?Ee: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(I,{githubSrc:b,className:c,firstPathFill:i}):jsxRuntime.jsx(p.Suspense,{fallback:jsxRuntime.jsx(f,{animate:true,className:t}),children:jsxRuntime.jsx(y,{iconId:`${e}-${o}`,className:c,firstPathFill:i,children:v=>jsxRuntime.jsx(R,{ref:v,filePath:h,variant:o})})})}function wt({starsCount:e}){let[o,t]=p.useState(false);p.useEffect(()=>t(true),[]);let n=p.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 xt({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 ze={walletconnect:"wallet-connect"};function Be(e){return wallets.wallets.find(o=>o.id===e||o.name?.toLowerCase()===e)?.filePath}var Oe=({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 Mt({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(Oe,{ref:c})});let a=ze[r]??r,m=`wallets/${o}/${P(a)}`,i=Be(a);return i?jsxRuntime.jsx(p.Suspense,{fallback:jsxRuntime.jsx(f,{animate:true,className:t}),children:jsxRuntime.jsx(y,{iconId:`${a}-${o}`,className:n,children:c=>jsxRuntime.jsx(R,{ref:c,filePath:i,variant:o})})}):jsxRuntime.jsx(I,{githubSrc:m,className:n})}function Wt(e=2e3){let[o,t]=p.useState(false),[n,r]=p.useState(null),a=p.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 Gt(e){let o=r=>typeof window<"u"?window.matchMedia(r).matches:false,[t,n]=p.useState(o(e));return p.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=So;exports.CloseIcon=ce;exports.Dialog=_o;exports.DialogClose=Yo;exports.DialogContent=he;exports.DialogDescription=Se;exports.DialogFooter=xe;exports.DialogHeader=ye;exports.DialogOverlay=j;exports.DialogPortal=ve;exports.DialogTitle=Ce;exports.DialogTrigger=Ho;exports.FallbackIcon=f;exports.GithubFallbackIcon=I;exports.NetworkIcon=dt;exports.StarsBackground=wt;exports.SvgImg=T;exports.SvgToImg=y;exports.ToastCloseButton=xt;exports.WalletIcon=Mt;exports.applyFirstPathFill=ie;exports.cn=s;exports.deepMerge=re;exports.formatIconNameForGithub=P;exports.getChainName=z;exports.isSolanaDev=B;exports.isTouchDevice=O;exports.resolveCssVariable=ae;exports.standardButtonClasses=Ke;exports.svgToBase64=N;exports.textCenterEllipsis=lo;exports.useCopyToClipboard=Wt;exports.useMediaQuery=Gt;
|
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 p from'react';import {useState,useEffect,useCallback,Suspense,useMemo,use,createElement}from'react';import*as l from'@radix-ui/react-dialog';import {wallets}from'@web3icons/common/metadata/wallets';var Ke="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 re(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]=re(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 L="Unknown";function ne(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}function z(e){let o={name:L,id:L.toLowerCase(),filePath:L.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} ${ne(a)}`:r.name,id:r.id,filePath:r.filePath?.split(":")[1],chainId:e}}function B(e){return S(e)!==void 0}function O(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 ae(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 ie(e,o){let t=ae(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=ie(t,o)),`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(t)))}`}var P=e=>`${e.replace(/\s+/g,"-").toLowerCase()}.svg`;function lo(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 So({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 ce=p.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"})]}));ce.displayName="CloseIcon";var me="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(me,"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 fe="https://raw.githubusercontent.com/0xa3k5/web3icons/refs/heads/main/raw-svgs",E=new Map;function I({githubSrc:e,className:o,alt:t,firstPathFill:n,...r}){let a=`${e}|${n??""}`,m=E.get(a),[i,c]=useState(null),[w,b]=useState("idle"),h=m||i,x=m?"success":w;return useEffect(()=>{let v=true;return E.has(a)?void 0:((async()=>{b("loading");try{let M=await fetch(`${fe}/${e}`);if(!M.ok)throw new Error(`Failed to load icon: ${M.status}`);let ee=await M.text();if(v){let F=N(ee,n);E.set(a,F),c(F),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,Ho=l.Trigger,ve=l.Portal,Yo=l.Close,ge={initial:{opacity:0,scale:.9,y:20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.9,transition:{duration:.2}}},we={initial:{opacity:0,y:"100%"},animate:{opacity:1,y:"0%"},exit:{opacity:0,y:"100%",transition:{duration:.2}}},be={initial:{opacity:0},animate:{opacity:1},exit:{opacity:0}},j=({className:e,backdropAnimation:o})=>(p.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??be,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)})})}));j.displayName=l.Overlay.displayName;var he=p.forwardRef(({className:e,children:o,modalAnimation:t,backdropAnimation:n,...r},a)=>{let[m,i]=p.useState(false);p.useEffect(()=>{i(O());},[]);let c=t??(m?we:ge);return jsxs(ve,{children:[jsx(j,{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})})})})})]})});he.displayName=l.Content.displayName;var ye=({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});ye.displayName="DialogHeader";var xe=({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});xe.displayName="DialogFooter";var Ce=p.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}));Ce.displayName=l.Title.displayName;var Se=p.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}));Se.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 X=new Map;function Ie(e){let[o="",t=""]=e.split(":"),n=o==="token"?t.replace(/[- ]+/g,"_").toUpperCase():(t.match(/[a-z0-9]+/gi)??[]).map(r=>r[0].toUpperCase()+r.slice(1).toLowerCase()).join("");return `${o.charAt(0).toUpperCase()}${o.slice(1)}${n}`}function Z(e){let o=Ie(e),t=X.get(o);return t||(t=import('@web3icons/react/dynamicIconImports').then(async({default:n})=>{let r=n[o];return r?(await r()).default:null}).catch(()=>null),X.set(o,t)),t}function R({filePath:e,variant:o,className:t,ref:n}){let r=use(Z(e));return r?createElement(r,{ref:n,variant:o,className:t}):null}var Ee="var(--tuwa-testnet-icons)";function dt({chainId:e,variant:o="background",className:t}){let n=z(e),r=typeof e=="string",a=r?e.split(":")[0].toLowerCase():e,i=r&&B(e)||n.name.toLowerCase().includes("testnet")?Ee: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(I,{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(R,{ref:v,filePath:h,variant:o})})})}function wt({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 xt({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 ze={walletconnect:"wallet-connect"};function Be(e){return wallets.find(o=>o.id===e||o.name?.toLowerCase()===e)?.filePath}var Oe=({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 Mt({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(Oe,{ref:c})});let a=ze[r]??r,m=`wallets/${o}/${P(a)}`,i=Be(a);return i?jsx(Suspense,{fallback:jsx(f,{animate:true,className:t}),children:jsx(y,{iconId:`${a}-${o}`,className:n,children:c=>jsx(R,{ref:c,filePath:i,variant:o})})}):jsx(I,{githubSrc:m,className:n})}function Wt(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 Gt(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{So as ChevronArrowWithAnim,ce as CloseIcon,_o as Dialog,Yo as DialogClose,he as DialogContent,Se as DialogDescription,xe as DialogFooter,ye as DialogHeader,j as DialogOverlay,ve as DialogPortal,Ce as DialogTitle,Ho as DialogTrigger,f as FallbackIcon,I as GithubFallbackIcon,dt as NetworkIcon,wt as StarsBackground,T as SvgImg,y as SvgToImg,xt as ToastCloseButton,Mt as WalletIcon,ie as applyFirstPathFill,s as cn,re as deepMerge,P as formatIconNameForGithub,z as getChainName,B as isSolanaDev,O as isTouchDevice,ae as resolveCssVariable,Ke as standardButtonClasses,N as svgToBase64,lo as textCenterEllipsis,Wt as useCopyToClipboard,Gt as useMediaQuery};
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tuwaio/nova-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "Oleksandr Tkach",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
|
-
"description": "
|
|
7
|
+
"description": "L6 core of Nova UI Kit (TUWA): the --tuwa-* theme variables, the dialog, network and wallet icons, and the hooks and helpers shared by the Nova components.",
|
|
8
8
|
"main": "./dist/index.cjs",
|
|
9
9
|
"module": "./dist/index.js",
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
@@ -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",
|