@turtleclub/earn-widget 0.5.0-beta.57 → 0.5.0-beta.59

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.
Files changed (2) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +5 -5
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import {clsx}from'clsx';import {createContext,useMemo,useRef,useEffect,useCallback,useContext,useState}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {Card,cn,BaseSelector,iconUrlToImg,OpportunityRateEstimator,Button,Skeleton,SwapInput,SwapDetails,DropdownMenu,DropdownMenuTrigger,DropdownMenuContent,DropdownMenuItem}from'@turtleclub/ui';import {cva}from'class-variance-authority';import {useCheckMembership,useCreateMembershipAgreement,useCreateMembership,useBalance,useWidgetOpportunities,useTokenBalance,useSwapRoute}from'@turtleclub/hooks';import {atom,useAtom,useAtomValue}from'jotai';import {ChevronLeft,Wallet2Icon,LogOutIcon}from'lucide-react';import {SLIPPAGE_DEFAULT,APRBreakdownTooltip,BalancesDataTable,OpportunitiesTable,useTransactionQueue,RouteDetails,TransactionStatusSection,ConfirmButton}from'@turtleclub/opportunities';import {parseUnits}from'viem';import {formatNumber,formatToken}from'@turtleclub/utils';import {mainnet}from'viem/chains';function B(...e){return clsx(e)}var Ce=createContext(null);function Te({config:e,children:t}){return jsx(Ce.Provider,{value:e,children:t})}function F(){let e=useContext(Ce);if(!e)throw new Error("useWidgetConfig must be used within WidgetConfigProvider");return e}function H(e){return `rgb(from ${e} calc(255 - r) calc(255 - g) calc(255 - b))`}function Wt(e,t=10){return `color-mix(in srgb, ${e} ${100-t}%, black)`}function xe(e,t){let o=t==="dark",r={"--color-brand-black":o?e.background_dark:H(e.background_dark),"--color-brand-white":o?e.foreground_dark:H(e.foreground_dark),"--color-brand-green":o?e.primary_dark:Wt(e.primary_dark)};return (e.card!==void 0||e.card_dark!==void 0)&&(r["--color-surface-primary"]=o?e.card_dark??e.card??e.background_dark:H(e.card_dark??e.background_dark)),(e.muted_foreground!==void 0||e.muted_foreground_dark!==void 0)&&(r["--muted-foreground"]=o?e.muted_foreground_dark??e.muted_foreground??e.foreground_dark:H(e.muted_foreground_dark??e.muted_foreground_dark??e.foreground_dark)),r}var we={background:"#F9F9F9",background_dark:"#141514",foreground:"#141514",foreground_dark:"#F9F9F9",primary:"#73F36C",primary_dark:"#73F36C",card:"#F9F9F9",card_dark:"#141514",muted_foreground:"#14151480",muted_foreground_dark:"#FFFFFF80"},Ne="dark",We="Montserrat, sans-serif",Oe="DM Sans, sans-serif";function N(){let e=F(),t=e?.theme??Ne,o=e?.fontFamily??We,r=e?.fontSecondary??Oe,n=e?.widgetWidth??"default",a=e?.customWidth??"100%",i=e?.showNavigation??true,c=e?.padding??"default",s=e?.rounding??"default",d=e?.styles??we,p=xe(d,t==="auto"?"dark":t);return {theme:t,coreTokenCSS:p,fontPrimary:o,fontSecondary:r,widgetWidth:n,customWidth:a,showNavigation:i,padding:c,rounding:s,config:e,widgetStyles:d}}var Se={xxs:"h-4 text-xs",xs:"h-6 text-sm",sm:"h-8 text-2xl",md:"h-12 text-4xl",lg:"h-16 text-6xl"};function Ee({light:e,dark:t,fallback:o="Turtle Club",className:r,size:n="lg"}){let[a,i]=useState(false),{theme:c}=N(),d=c==="dark"?t||e:e||t;return d&&!a?jsx("div",{className:cn("flex justify-center items-center",r),children:jsx("img",{src:d,alt:o,className:cn("object-contain",Se[n]),onError:()=>i(true),onLoad:()=>i(false)})}):jsx("div",{className:cn("flex justify-center items-center",r),children:jsx("span",{className:cn("font-bold text-primary",Se[n]),children:o})})}function Ae(){let e=F();return {light:e?.logo?.light,dark:e?.logo?.dark,fallback:e?.logo?.fallback||"Turtle Club"}}var At=cva("p-0",{variants:{padding:{none:"p-0",sm:"p-3",default:"p-4",md:"p-6",lg:"p-7"}},defaultVariants:{padding:"default"}});function te({children:e,className:t,variant:o,padding:r,rounding:n,showLogo:a=true,logoSize:i="xs",...c}){let{padding:s}=N(),{light:d,dark:m,fallback:p}=Ae(),k=At({padding:r??s});return jsxs(Card,{className:B(t,k),...c,variant:o,gradient:"white",children:[a&&jsx("div",{className:"flex-shrink-0 py-2",children:jsx(Ee,{light:d,dark:m,fallback:p,size:i})}),e]})}var Pe=createContext(null),Le=createContext(""),_e=({adapter:e,distributorId:t,children:o})=>jsx(Pe.Provider,{value:e,children:jsx(Le.Provider,{value:t,children:o})}),W=()=>{let e=useContext(Pe);if(!e)throw new Error("useAdapter must be used within an AdapterProvider");return e},P=()=>useContext(Le);function Be({children:e}){let t=F(),{theme:o,coreTokenCSS:r,fontPrimary:n,fontSecondary:a,widgetWidth:i}=N();return jsx("div",{className:B("turtle-widget-root text-foreground","antialiased transition-all duration-700 ease-linear w-full overflow-hidden","h-full flex items-center justify-center",o==="dark"?"dark":""),style:{...r,"--font-primary":n,"--font-secondary":a,fontFamily:n,backgroundColor:"transparent",maxHeight:"90vh"},children:jsx("div",{className:B("flex flex-col gap-2 h-full overflow-hidden",i==="full"?"w-full items-center":i==="custom"?"items-stretch":"items-center"),style:{...i==="custom"&&t.customWidth?{width:t.customWidth}:i==="default"?{width:"620px"}:{}},children:jsx("div",{className:"w-full max-w-md h-full flex flex-col gap-2 overflow-hidden",children:e})})})}var O=()=>{let e=W(),t=useRef(void 0),o=useRef(false),{data:r,isLoading:n,refetch:a}=useCheckMembership({params:{address:e.user||"",walletEcosystem:"evm"},enabled:!!e.user}),{mutateAsync:i,isPending:c,error:s}=useCreateMembershipAgreement(),{mutateAsync:d,isPending:m,error:p}=useCreateMembership();useEffect(()=>{let g=e.user;if(!g){t.current!==void 0&&(t.current=void 0);return}g!==t.current&&(t.current=g,k(g));},[e.user]);let k=async g=>{if(!o.current){o.current=true;try{let{data:A}=await a();if(A?.isMember){console.log("[useWidgetAuth] User is already a member");return}console.log("[useWidgetAuth] User is not a member, starting membership flow..."),console.log("[useWidgetAuth] Creating membership agreement...");let R=await i({address:g,walletEcosystem:"evm",url:window.location.href,chainId:String(e.network||1)});console.log("[useWidgetAuth] Requesting signature from wallet...");let f=await e.signMessage(R.message);console.log("[useWidgetAuth] Creating membership with signature...");let C=await d({address:g,walletEcosystem:"evm",signature:f,nonce:R.nonce});C.isMember?console.log("[useWidgetAuth] Membership created successfully!"):console.error("[useWidgetAuth] Failed to create membership:",C.error);}catch(A){console.error("[useWidgetAuth] Membership flow error:",A);}finally{o.current=false;}}},u=n||c||m,l=s?.message||p?.message||null;return {address:e.user,isConnected:!!e.user,isMember:r?.isMember,currentChain:e.network,connect:e.openConnectionModal,disconnect:e.disconnect,changeNetwork:e.changeNetwork,isLoading:u,error:l}};function Ue(e){let[t,o]=useState(e),r=useCallback(n=>{o(n);},[]);return {currentTab:t,setTab:r}}var Ut=atom({id:"none"});function h(){let[e,t]=useAtom(Ut),o=useCallback((n,a)=>{t({id:n,data:a});},[t]),r=useCallback(()=>{t({id:"none"});},[t]);return {currentOverlay:e.id,overlayData:e.data,isOverlayOpen:e.id!=="none",openOverlay:o,closeOverlay:r}}function ne({tabs:e,overlays:t,defaultTab:o}){let {showNavigation:r}=N(),{currentTab:n}=Ue(o),{currentOverlay:i,overlayData:c}=h();useMemo(()=>Object.entries(e).filter(([u,l])=>l.visible!==false).map(([u,l])=>({value:u,label:l.label})),[e]);let m=useMemo(()=>e[n].component,[n,e]),p=useMemo(()=>i==="none"?null:t[i].component,[i,t]);return jsxs(Fragment,{children:[r&&false,jsx("div",{className:"flex-1 min-h-0 overflow-hidden flex flex-col gap-2 bg-transparent",children:jsx(te,{variant:"border",className:"flex-1 min-h-0 w-full flex flex-col overflow-hidden",children:jsx("div",{className:"flex-1 min-h-0 overflow-hidden",children:p?jsx(p,{data:c}):jsx(m,{})})})})]})}function M({onBack:e,children:t,className:o}){let{closeOverlay:r}=h();return jsxs("div",{className:`flex flex-col h-full ${o||""}`,children:[jsx("div",{className:"flex items-center gap-2 pb-3",children:jsx(Button,{variant:"green",border:"interactive",size:"icon",onClick:e??r,className:"h-8 w-8 shrink-0","aria-label":"Go back",children:jsx(ChevronLeft,{className:"h-5 w-5"})})}),jsx("div",{className:"flex-1 min-h-0 overflow-auto pt-4",children:t})]})}var ae=atom(null),ie=atom(null),se=atom(SLIPPAGE_DEFAULT),de=atom(null),$e=atom(e=>{let t=e(ae),o=e(de),r=e(ie),n=e(se),a=!!(r&&Number.parseFloat(r)>0),i=!!t&&!!o&&a&&!!n,c=i?{chain:Number(t?.receiptToken?.chain.chainId)??1,token_in:o?.token.address??"",token_out:t?.receiptToken?.address??"",amount:parseUnits(r??"0",o?.token.decimals??18).toString(),slippage:n}:void 0;return {opportunity:t,tokenBalance:o,amount:r,options:c,isValid:i}});function T(){let[e,t]=useAtom(ae),[o,r]=useAtom(de),[n,a]=useAtom(ie),[i,c]=useAtom(se),s=useAtomValue($e),d=useCallback(()=>{r(null),a(""),c(SLIPPAGE_DEFAULT);},[r,a,c]);return useEffect(()=>{o&&(a(""),c(SLIPPAGE_DEFAULT));},[o,a,c]),{opportunity:e,tokenBalance:o,amount:n,slippage:i,isValid:s.isValid,options:s.options,selectOpportunity:t,selectTokenBalance:r,setAmount:a,setSlippage:c,reset:d}}function He(){let e=P(),{data:t,isLoading:o,error:r}=useWidgetOpportunities(e),{changeNetwork:n,network:a}=W(),{selectOpportunity:i,selectTokenBalance:c}=T(),{closeOverlay:s}=h();return o?jsx("div",{children:"Loading..."}):r?jsxs("div",{children:["Error: ",r.message]}):t===void 0?jsx("div",{children:"No data"}):t.opportunities&&t.opportunities.length===0?jsx("div",{children:"No opportunities"}):jsx(M,{children:jsx(OpportunitiesTable,{opportunities:t.opportunities||[],currentNetwork:a,onSelectOpportunity:i,onChangeNetwork:n,onResetToken:()=>c(null),onClose:s,isWidget:true})})}var Ye=()=>{let{openOverlay:e}=h();return jsx("button",{onClick:()=>{e("balances"),console.log("Positions Content Click");},children:"Positions Content Click"})};var Qe=()=>jsx("div",{children:"Discover Content"});function qe(e){return {chainId:Number(e.receiptToken?.chain.chainId)??mainnet.id,address:e.receiptToken?.address??"",symbol:e.receiptToken?.symbol??"",decimals:e.receiptToken?.decimals??18}}function et({opportunity:e,address:t,distributorId:o,executeTransaction:r,refetchBalances:n,refreshSelectedToken:a,stickyButton:i=false}){let{openOverlay:c}=h(),{chainId:s,symbol:d,decimals:m}=useMemo(()=>qe(e),[e]),{setAmount:p,setSlippage:k,tokenBalance:u,amount:l,slippage:g,options:A,isValid:R,reset:f}=T(),{usdValue:C,hasInsufficientBalance:y,handleMaxClick:I}=useTokenBalance({tokenBalance:u,amount:l??void 0,setAmount:w=>p(w??null)}),{routeDetails:D,isReady:ht,outputAmount:$,fetchedRoute:Z,routeError:pe,isLoadingRoute:fe}=useSwapRoute(R,t,o,A),vt=useCallback(async w=>{let ee={from:w.from,to:w.to,data:w.data,value:BigInt(w.value),chainId:s??1};return await r(ee)},[r,s]),{steps:yt,currentStep:ge,canExecute:he,isExecuting:z,allCompleted:bt,hasError:ve,cancelled:K,executeCurrentTransaction:ye,resetQueue:kt,totalSteps:be,completedSteps:ke,showTxStatus:j}=useTransactionQueue({earnRoute:Z,userAddress:t,chainId:s,sendTransaction:vt,onSuccess:()=>{n(),a();}}),Ct=useMemo(()=>{let w=l?formatNumber(l,6,true,false):"0",ee=$&&m?formatToken($,{decimals:m},true,false,6):"0";return {deposit:l?`${w} ${u?.token.symbol||"ETH"}`:"0 ETH",receive:$&&m?`${ee} ${d||"ETH"}`:"0 ETH",equivalentInUsd:l&&u?.token.priceUsd?(Number.parseFloat(l)*u.token.priceUsd).toFixed(2):"0.00",defaultOpen:true,slippage:g,setSlippage:k}},[l,$,m,d,u,g]);return jsxs("div",{className:cn("grid gap-3 flex-1 min-h-0",i?"grid-rows-[auto_1fr_auto] pb-6":"grid-rows-[auto_1fr]"),children:[jsx(SwapInput,{tokens:[],useCustomTokenSelector:true,selectedTokenData:u?.token,onCustomTokenSelectorClick:()=>c("balances"),value:l??void 0,onChange:p,usdValue:y?void 0:C,balance:u?formatToken(u.amount,u.token,true,false,5):"0",onMaxClick:I,className:cn("p-5",y?"border-destructive/50 border":"border-border border")}),jsxs("div",{className:"overflow-auto min-h-0 space-y-3",children:[ht&&D&&jsx(SwapDetails,{details:Ct}),D&&D.length>0&&jsx(RouteDetails,{value:{steps:D}}),ge&&l&&j&&jsx(TransactionStatusSection,{steps:yt,currentStep:ge,allCompleted:bt,cancelled:K,tokenSymbol:u?.token.symbol||"",amount:l,resetQueue:kt,resetForm:f,refetchBalances:n}),!i&&!j&&jsx("div",{className:"pt-3",children:jsx(ConfirmButton,{fetchedRoute:Z,routeError:pe,isLoadingRoute:fe,canExecute:he,isExecuting:z,hasError:ve,cancelled:K,executeCurrentTransaction:ye,totalSteps:be,completedSteps:ke,showingTransactionStatus:z,hasInsufficientBalance:y})})]}),i&&!j&&jsx("div",{className:"w-full",children:jsx(ConfirmButton,{fetchedRoute:Z,routeError:pe,isLoadingRoute:fe,canExecute:he,isExecuting:z,hasError:ve,cancelled:K,executeCurrentTransaction:ye,totalSteps:be,completedSteps:ke,showingTransactionStatus:z,hasInsufficientBalance:y})})]})}var bo=(e,t)=>{let o=e.filter(n=>Number(n.token.chain.chainId)===t);return o.filter(n=>(typeof n.amount=="bigint"?n.amount:BigInt(n.amount))>0n)[0]??o[0]??null};function ot(){let{user:e,network:t,sendTransaction:o}=W(),r=P(),{openOverlay:n}=h(),{tokenBalance:a,selectOpportunity:i,selectTokenBalance:c,opportunity:s}=T(),d=useRef(null),m=useRef(null),{balances:p,isLoading:k,refetchAll:u}=useBalance({chainIds:[Number(s?.receiptToken?.chain.chainId)??mainnet.id],address:e,depositOpportunity:s}),{data:l,isLoading:g}=useWidgetOpportunities(r);useEffect(()=>{if(l&&l.opportunities&&l.opportunities.length>0&&!s){let f=t??mainnet.id,y=l.opportunities.find(I=>Number(I.receiptToken?.chain.chainId)===f)||l.opportunities[0];i(y);}},[l,s,t]),useEffect(()=>{let f=t??mainnet.id;if(m.current!==null&&m.current!==f&&l?.opportunities&&l.opportunities.length>0){let y=l.opportunities.find(I=>Number(I.receiptToken?.chain.chainId)===f);y&&i(y);}m.current=f;},[t,l,i]),useEffect(()=>{let f=Number(s?.receiptToken?.chain.chainId)??mainnet.id,C=a?.token.chain.chainId,y=d.current!==f,I=!a||Number(C)!==f;if(y&&I&&p.length>0){let D=bo(p,f);D&&(c(D),d.current=f);}else y||(d.current=f);},[s,a,p,c]);let A=useMemo(()=>k||g,[k,g]),R=useCallback(()=>{if(!a)return;let f=p.find(C=>C.token.address.toLowerCase()===a.token.address.toLowerCase()&&Number(C.token.chain.chainId)===Number(a.token.chain.chainId));f&&c(f);},[p,a,c]);return {address:e,network:t,distributorId:r,openOverlay:n,sendTransaction:o,isLoading:A,refetchBalances:u,refreshSelectedToken:R}}function xo(e,t=4){return e?`${e.slice(0,t+2)}...${e.slice(-t)}`:""}function rt(){let{isMember:e,isLoading:t,address:o,isConnected:r,disconnect:n}=O();if(t)return jsx("div",{className:"h-10 w-[133px] animate-pulse rounded-full bg-neutral-alpha-10"});if(!r)return null;if(r&&e)return jsx(Button,{variant:"ghost",border:"bordered",onClick:n,className:"group min-w-[140px] transition-colors",children:jsxs("div",{className:"gap-2 flex text-md items-center justify-between",children:[jsx(Wallet2Icon,{className:"size-6 stroke-accent group-hover:hidden"}),jsx(LogOutIcon,{className:"hidden size-6 stroke-destructive group-hover:block"}),jsx("span",{className:"group-hover:hidden",children:xo(o)}),jsx("span",{className:"hidden group-hover:block text-foreground",children:"Disconnect"})]})})}function at(){let e=P(),{data:t}=useWidgetOpportunities(e),o=t?.chains||[],{changeNetwork:r,currentChain:n,isConnected:a}=O(),i=useMemo(()=>o.find(s=>Number(s.chainId)===n)||o[0],[o,n]),c=async s=>{try{await r(s);}catch(d){console.error("Failed to change network:",d);}};return a?jsxs(DropdownMenu,{children:[jsx(DropdownMenuTrigger,{src:i?.logoUrl,children:i?.name}),jsx(DropdownMenuContent,{children:o.map(s=>jsxs(DropdownMenuItem,{onClick:()=>c(Number(s.chainId)),children:[jsx("img",{src:s.logoUrl,alt:s.name,className:"size-6 rounded-full"}),s.name]},s.id))})]}):null}function ue(){return jsxs("div",{className:"flex justify-between items-center gap-2",children:[jsx(rt,{}),jsx(at,{})]})}var dt=()=>jsx("div",{className:"mt-5 flex flex-col gap-4 h-full",children:jsxs("div",{className:"space-y-3",children:[jsxs("div",{className:"flex gap-3",children:[jsx(Skeleton,{className:"h-12 flex-1 rounded-turtle"}),jsx(Skeleton,{className:"h-12 w-48 rounded-turtle"})]}),jsxs(Card,{variant:"shadow",gradient:"white",className:"rounded-turtle space-y-2",children:[jsxs("div",{className:"flex justify-between p-4",children:[jsx(Skeleton,{className:"h-8 w-24"}),jsx(Skeleton,{className:"h-8 w-56 rounded-full"})]}),jsxs("div",{className:"mx-4 mb-4 space-y-1",children:[jsxs("div",{className:"flex justify-between",children:[jsx(Skeleton,{className:"h-4 w-16"}),jsx(Skeleton,{className:"h-4 w-40"})]}),jsxs("div",{className:"flex justify-between",children:[jsx(Skeleton,{className:"h-4 w-16"}),jsx(Skeleton,{className:"h-4 w-40"})]})]})]}),jsxs(Card,{variant:"shadow",className:"rounded-turtle p-4",children:[jsx("div",{className:"mb-4",children:jsx(Skeleton,{className:"h-20 w-full rounded-turtle"})}),jsxs("div",{className:"flex justify-between items-center mb-4",children:[jsx(Skeleton,{className:"h-10 w-40 rounded-full"}),jsx(Skeleton,{className:"h-5 w-32"})]})]}),jsx(Skeleton,{className:"h-14 w-full rounded-turtle"})]})});var ct=()=>{let{isConnected:e,connect:t}=O(),{address:o,distributorId:r,openOverlay:n,sendTransaction:a,isLoading:i,refetchBalances:c,refreshSelectedToken:s}=ot(),{opportunity:d,amount:m,tokenBalance:p}=T(),k=u=>u.filter(l=>l.rewardType!=="points").reduce((l,g)=>l+(g.yield??0),0);return i?jsx(dt,{}):jsxs("div",{className:"mt-5 flex flex-col gap-4 h-full",children:[jsxs("div",{className:"text-foreground space-y-3",children:[jsx(ue,{}),jsxs(Card,{variant:"shadow",gradient:"white",className:cn("rounded-turtle space-y-2"),children:[jsxs("div",{className:"flex justify-between p-4",children:[jsx(APRBreakdownTooltip,{vaultConfig:d?.vaultConfig??void 0,incentives:d?.incentives||[],isWidget:true,className:"text-xl text-primary"}),jsx(BaseSelector,{icon:iconUrlToImg(d?.receiptToken?.logoUrl||"",d?.receiptToken?.symbol||""),text:d?.name||"",onClick:()=>n("opportunities"),size:"sm"})]}),jsx(OpportunityRateEstimator,{value:{symbol:d?.baseTokens?.symbol||"",price:d?.baseTokens?.priceUsd||0,depositedAmountUsd:Number(Number(m??0)*Number(p?.token.priceUsd??0))||0,apr:k(d?.incentives||[])}})]})]}),d&&o&&r&&jsx(et,{opportunity:d,address:o,distributorId:r,stickyButton:true,refetchBalances:c,refreshSelectedToken:s,executeTransaction:async u=>await a(u)}),!e&&jsx("div",{className:"mt-auto sticky bottom-0",children:jsx(Button,{variant:"green",border:"interactive",size:"lg",onClick:t,className:"w-full",children:"Connect Wallet"})})]})};function ut(){let{selectTokenBalance:e,opportunity:t}=T(),{closeOverlay:o}=h(),{user:r}=W(),n=Number(t?.receiptToken?.chain.chainId)??mainnet.id,{balances:a,isLoading:i,error:c}=useBalance({chainIds:[n],address:r||"",depositOpportunity:t}),s=useMemo(()=>a.filter(m=>Number(m.token.chain.chainId)===n),[a,n]),d=useCallback(m=>{e(m),o();},[e,o]);return c?jsxs("div",{children:["Error: ",c.message]}):jsx(M,{children:jsx(BalancesDataTable,{balances:s,isLoading:i,onBalanceSelect:d,emptyStateMessage:"No balances found"})})}function ft(){let{isMember:e}=O(),t=useMemo(()=>({positions:{label:"Your Positions",component:Ye,visible:e},earn:{label:"Earn",component:ct},discover:{label:"Discover",component:Qe}}),[e]),o=useMemo(()=>({opportunities:{component:He},balances:{component:ut}}),[]);return jsx(Be,{children:jsx(ne,{tabs:t,overlays:o,defaultTab:"earn"})})}function gt({adapter:e,config:t,distributorId:o}){return jsx(Te,{config:t,children:jsx(_e,{adapter:e,distributorId:o,children:jsx(ft,{})})})}var Go={theme:"dark",widgetWidth:"default",customWidth:"100%",padding:"default",rounding:"default",fontFamily:"Montserrat",fontSecondary:"DM Sans",deals:[],campaigns:[],styles:{background:"#141514",background_dark:"#F9F9F9",foreground:"#F9F9F9",foreground_dark:"#141514",card:"#141514",card_dark:"#F9F9F9",muted_foreground:"#FFFFFF80",muted_foreground_dark:"#14151480",primary:"#73F36C",primary_dark:"#73F36C"}};//! Will be deprecated when just use distributorId to fetch everything from the API
1
+ import {clsx}from'clsx';import {createContext,useMemo,useRef,useEffect,useCallback,useContext,useState}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {Card,BaseSelector,iconUrlToImg,OpportunityRateEstimator,cn,Button,Skeleton,SwapInput,SwapDetails,DropdownMenu,DropdownMenuTrigger,DropdownMenuContent,DropdownMenuItem}from'@turtleclub/ui';import {cva}from'class-variance-authority';import {useCheckMembership,useCreateMembershipAgreement,useCreateMembership,useBalance,useWidgetOpportunities,useTokenBalance,useSwapRoute}from'@turtleclub/hooks';import {atom,useAtom,useAtomValue}from'jotai';import {ChevronLeft,Wallet2Icon,LogOutIcon}from'lucide-react';import {SLIPPAGE_DEFAULT,APRBreakdownTooltip,BalancesDataTable,OpportunitiesTable,useTransactionQueue,RouteDetails,TransactionStatusSection,ConfirmButton}from'@turtleclub/opportunities';import {parseUnits}from'viem';import {formatNumber,formatToken}from'@turtleclub/utils';import {mainnet}from'viem/chains';function B(...e){return clsx(e)}var Ce=createContext(null);function Te({config:e,children:t}){return jsx(Ce.Provider,{value:e,children:t})}function F(){let e=useContext(Ce);if(!e)throw new Error("useWidgetConfig must be used within WidgetConfigProvider");return e}function H(e){return `rgb(from ${e} calc(255 - r) calc(255 - g) calc(255 - b))`}function Wt(e,t=10){return `color-mix(in srgb, ${e} ${100-t}%, black)`}function xe(e,t){let o=t==="dark",r={"--color-brand-black":o?e.background_dark:H(e.background_dark),"--color-brand-white":o?e.foreground_dark:H(e.foreground_dark),"--color-brand-green":o?e.primary_dark:Wt(e.primary_dark)};return (e.card!==void 0||e.card_dark!==void 0)&&(r["--color-surface-primary"]=o?e.card_dark??e.card??e.background_dark:H(e.card_dark??e.background_dark)),(e.muted_foreground!==void 0||e.muted_foreground_dark!==void 0)&&(r["--muted-foreground"]=o?e.muted_foreground_dark??e.muted_foreground??e.foreground_dark:H(e.muted_foreground_dark??e.muted_foreground_dark??e.foreground_dark)),r}var we={background:"#F9F9F9",background_dark:"#141514",foreground:"#141514",foreground_dark:"#F9F9F9",primary:"#73F36C",primary_dark:"#73F36C",card:"#F9F9F9",card_dark:"#141514",muted_foreground:"#14151480",muted_foreground_dark:"#FFFFFF80"},Ne="dark",We="Montserrat, sans-serif",Oe="DM Sans, sans-serif";function N(){let e=F(),t=e?.theme??Ne,o=e?.fontFamily??We,r=e?.fontSecondary??Oe,n=e?.widgetWidth??"default",a=e?.customWidth??"100%",i=e?.showNavigation??true,c=e?.padding??"default",s=e?.rounding??"default",d=e?.styles??we,p=xe(d,t==="auto"?"dark":t);return {theme:t,coreTokenCSS:p,fontPrimary:o,fontSecondary:r,widgetWidth:n,customWidth:a,showNavigation:i,padding:c,rounding:s,config:e,widgetStyles:d}}var Se={xxs:"h-4 text-xs",xs:"h-6 text-sm",sm:"h-8 text-2xl",md:"h-12 text-4xl",lg:"h-16 text-6xl"};function Ee({light:e,dark:t,fallback:o="Turtle Club",className:r,size:n="lg"}){let[a,i]=useState(false),{theme:c}=N(),d=c==="dark"?t||e:e||t;return d&&!a?jsx("div",{className:cn("flex justify-center items-center",r),children:jsx("img",{src:d,alt:o,className:cn("object-contain",Se[n]),onError:()=>i(true),onLoad:()=>i(false)})}):jsx("div",{className:cn("flex justify-center items-center",r),children:jsx("span",{className:cn("font-bold text-primary",Se[n]),children:o})})}function Ae(){let e=F();return {light:e?.logo?.light,dark:e?.logo?.dark,fallback:e?.logo?.fallback||"Turtle Club"}}var At=cva("p-0",{variants:{padding:{none:"p-0",sm:"p-3",default:"p-4",md:"p-6",lg:"p-7"}},defaultVariants:{padding:"default"}});function te({children:e,className:t,variant:o,padding:r,rounding:n,showLogo:a=true,logoSize:i="xs",...c}){let{padding:s}=N(),{light:d,dark:m,fallback:p}=Ae(),k=At({padding:r??s});return jsxs(Card,{className:B(t,k),...c,variant:o,gradient:"white",children:[a&&jsx("div",{className:"flex-shrink-0 py-2",children:jsx(Ee,{light:d,dark:m,fallback:p,size:i})}),e]})}var Pe=createContext(null),Le=createContext(""),_e=({adapter:e,distributorId:t,children:o})=>jsx(Pe.Provider,{value:e,children:jsx(Le.Provider,{value:t,children:o})}),W=()=>{let e=useContext(Pe);if(!e)throw new Error("useAdapter must be used within an AdapterProvider");return e},P=()=>useContext(Le);function Be({children:e}){let t=F(),{theme:o,coreTokenCSS:r,fontPrimary:n,fontSecondary:a,widgetWidth:i}=N();return jsx("div",{className:B("turtle-widget-root text-foreground","antialiased transition-all duration-700 ease-linear w-full overflow-hidden","h-full flex items-center justify-center",o==="dark"?"dark":""),style:{...r,"--font-primary":n,"--font-secondary":a,fontFamily:n,backgroundColor:"transparent",maxHeight:"90vh"},children:jsx("div",{className:B("flex flex-col gap-2 h-full overflow-hidden",i==="full"?"w-full items-center":i==="custom"?"items-stretch":"items-center"),style:{...i==="custom"&&t.customWidth?{width:t.customWidth}:i==="default"?{width:"620px"}:{}},children:jsx("div",{className:"w-full max-w-md h-full flex flex-col gap-2 overflow-hidden",children:e})})})}var O=()=>{let e=W(),t=useRef(void 0),o=useRef(false),{data:r,isLoading:n,refetch:a}=useCheckMembership({params:{address:e.user||"",walletEcosystem:"evm"},enabled:!!e.user}),{mutateAsync:i,isPending:c,error:s}=useCreateMembershipAgreement(),{mutateAsync:d,isPending:m,error:p}=useCreateMembership();useEffect(()=>{let g=e.user;if(!g){t.current!==void 0&&(t.current=void 0);return}g!==t.current&&(t.current=g,k(g));},[e.user]);let k=async g=>{if(!o.current){o.current=true;try{let{data:A}=await a();if(A?.isMember){console.log("[useWidgetAuth] User is already a member");return}console.log("[useWidgetAuth] User is not a member, starting membership flow..."),console.log("[useWidgetAuth] Creating membership agreement...");let R=await i({address:g,walletEcosystem:"evm",url:window.location.href,chainId:String(e.network||1)});console.log("[useWidgetAuth] Requesting signature from wallet...");let f=await e.signMessage(R.message);console.log("[useWidgetAuth] Creating membership with signature...");let C=await d({address:g,walletEcosystem:"evm",signature:f,nonce:R.nonce});C.isMember?console.log("[useWidgetAuth] Membership created successfully!"):console.error("[useWidgetAuth] Failed to create membership:",C.error);}catch(A){console.error("[useWidgetAuth] Membership flow error:",A);}finally{o.current=false;}}},u=n||c||m,l=s?.message||p?.message||null;return {address:e.user,isConnected:!!e.user,isMember:r?.isMember,currentChain:e.network,connect:e.openConnectionModal,disconnect:e.disconnect,changeNetwork:e.changeNetwork,isLoading:u,error:l}};function Ue(e){let[t,o]=useState(e),r=useCallback(n=>{o(n);},[]);return {currentTab:t,setTab:r}}var Ut=atom({id:"none"});function h(){let[e,t]=useAtom(Ut),o=useCallback((n,a)=>{t({id:n,data:a});},[t]),r=useCallback(()=>{t({id:"none"});},[t]);return {currentOverlay:e.id,overlayData:e.data,isOverlayOpen:e.id!=="none",openOverlay:o,closeOverlay:r}}function ne({tabs:e,overlays:t,defaultTab:o}){let {showNavigation:r}=N(),{currentTab:n}=Ue(o),{currentOverlay:i,overlayData:c}=h();useMemo(()=>Object.entries(e).filter(([u,l])=>l.visible!==false).map(([u,l])=>({value:u,label:l.label})),[e]);let m=useMemo(()=>e[n].component,[n,e]),p=useMemo(()=>i==="none"?null:t[i].component,[i,t]);return jsxs(Fragment,{children:[r&&false,jsx("div",{className:"flex-1 min-h-0 overflow-hidden flex flex-col gap-2 bg-transparent",children:jsx(te,{variant:"border",className:"flex-1 min-h-0 w-full flex flex-col overflow-hidden",children:jsx("div",{className:"flex-1 min-h-0 overflow-hidden",children:p?jsx(p,{data:c}):jsx(m,{})})})})]})}function M({onBack:e,children:t,className:o}){let{closeOverlay:r}=h();return jsxs("div",{className:`flex flex-col h-full ${o||""}`,children:[jsx("div",{className:"flex items-center gap-2 pb-3",children:jsx(Button,{variant:"green",border:"interactive",size:"icon",onClick:e??r,className:"h-8 w-8 shrink-0","aria-label":"Go back",children:jsx(ChevronLeft,{className:"h-5 w-5"})})}),jsx("div",{className:"flex-1 min-h-0 overflow-auto pt-4",children:t})]})}var ae=atom(null),ie=atom(null),se=atom(SLIPPAGE_DEFAULT),de=atom(null),$e=atom(e=>{let t=e(ae),o=e(de),r=e(ie),n=e(se),a=!!(r&&Number.parseFloat(r)>0),i=!!t&&!!o&&a&&!!n,c=i?{chain:Number(t?.receiptToken?.chain.chainId)??1,token_in:o?.token.address??"",token_out:t?.receiptToken?.address??"",amount:parseUnits(r??"0",o?.token.decimals??18).toString(),slippage:n}:void 0;return {opportunity:t,tokenBalance:o,amount:r,options:c,isValid:i}});function T(){let[e,t]=useAtom(ae),[o,r]=useAtom(de),[n,a]=useAtom(ie),[i,c]=useAtom(se),s=useAtomValue($e),d=useCallback(()=>{r(null),a(""),c(SLIPPAGE_DEFAULT);},[r,a,c]);return useEffect(()=>{o&&(a(""),c(SLIPPAGE_DEFAULT));},[o,a,c]),{opportunity:e,tokenBalance:o,amount:n,slippage:i,isValid:s.isValid,options:s.options,selectOpportunity:t,selectTokenBalance:r,setAmount:a,setSlippage:c,reset:d}}function He(){let e=P(),{data:t,isLoading:o,error:r}=useWidgetOpportunities(e),{changeNetwork:n,network:a}=W(),{selectOpportunity:i,selectTokenBalance:c}=T(),{closeOverlay:s}=h();return o?jsx("div",{children:"Loading..."}):r?jsxs("div",{children:["Error: ",r.message]}):t===void 0?jsx("div",{children:"No data"}):t.opportunities&&t.opportunities.length===0?jsx("div",{children:"No opportunities"}):jsx(M,{children:jsx(OpportunitiesTable,{opportunities:t.opportunities||[],currentNetwork:a,onSelectOpportunity:i,onChangeNetwork:n,onResetToken:()=>c(null),onClose:s,isWidget:true})})}var Ye=()=>{let{openOverlay:e}=h();return jsx("button",{onClick:()=>{e("balances"),console.log("Positions Content Click");},children:"Positions Content Click"})};var Qe=()=>jsx("div",{children:"Discover Content"});function qe(e){return {chainId:Number(e.receiptToken?.chain.chainId)??mainnet.id,address:e.receiptToken?.address??"",symbol:e.receiptToken?.symbol??"",decimals:e.receiptToken?.decimals??18}}function et({opportunity:e,address:t,distributorId:o,executeTransaction:r,refetchBalances:n,refreshSelectedToken:a,stickyButton:i=false}){let{openOverlay:c}=h(),{chainId:s,symbol:d,decimals:m}=useMemo(()=>qe(e),[e]),{setAmount:p,setSlippage:k,tokenBalance:u,amount:l,slippage:g,options:A,isValid:R,reset:f}=T(),{usdValue:C,hasInsufficientBalance:y,handleMaxClick:I}=useTokenBalance({tokenBalance:u,amount:l??void 0,setAmount:w=>p(w??null)}),{routeDetails:D,isReady:ht,outputAmount:$,fetchedRoute:Z,routeError:pe,isLoadingRoute:fe}=useSwapRoute(R,t,o,A),vt=useCallback(async w=>{let ee={from:w.from,to:w.to,data:w.data,value:BigInt(w.value),chainId:s??1};return await r(ee)},[r,s]),{steps:yt,currentStep:ge,canExecute:he,isExecuting:z,allCompleted:bt,hasError:ve,cancelled:K,executeCurrentTransaction:ye,resetQueue:kt,totalSteps:be,completedSteps:ke,showTxStatus:j}=useTransactionQueue({earnRoute:Z,userAddress:t,chainId:s,sendTransaction:vt,onSuccess:()=>{n(),a();}}),Ct=useMemo(()=>{let w=l?formatNumber(l,6,true,false):"0",ee=$&&m?formatToken($,{decimals:m},true,false,6):"0";return {deposit:l?`${w} ${u?.token.symbol||"ETH"}`:"0 ETH",receive:$&&m?`${ee} ${d||"ETH"}`:"0 ETH",equivalentInUsd:l&&u?.token.priceUsd?(Number.parseFloat(l)*u.token.priceUsd).toFixed(2):"0.00",defaultOpen:true,slippage:g,setSlippage:k}},[l,$,m,d,u,g]);return jsxs("div",{className:cn("grid gap-3 flex-1 min-h-0",i?"grid-rows-[auto_1fr_auto] pb-6":"grid-rows-[auto_1fr]"),children:[jsx(SwapInput,{tokens:[],useCustomTokenSelector:true,selectedTokenData:u?.token,onCustomTokenSelectorClick:()=>c("balances"),value:l??void 0,onChange:p,usdValue:y?void 0:C,balance:u?formatToken(u.amount,u.token,true,false,5):"0",onMaxClick:I,className:cn("p-5",y?"border-destructive/50 border":"border-border border")}),jsxs("div",{className:"overflow-auto min-h-0 space-y-3",children:[ht&&D&&jsx(SwapDetails,{details:Ct}),D&&D.length>0&&jsx(RouteDetails,{value:{steps:D}}),ge&&l&&j&&jsx(TransactionStatusSection,{steps:yt,currentStep:ge,allCompleted:bt,cancelled:K,tokenSymbol:u?.token.symbol||"",amount:l,resetQueue:kt,resetForm:f,refetchBalances:n}),!i&&!j&&jsx("div",{className:"pt-3",children:jsx(ConfirmButton,{fetchedRoute:Z,routeError:pe,isLoadingRoute:fe,canExecute:he,isExecuting:z,hasError:ve,cancelled:K,executeCurrentTransaction:ye,totalSteps:be,completedSteps:ke,showingTransactionStatus:z,hasInsufficientBalance:y})})]}),i&&!j&&jsx("div",{className:"w-full",children:jsx(ConfirmButton,{fetchedRoute:Z,routeError:pe,isLoadingRoute:fe,canExecute:he,isExecuting:z,hasError:ve,cancelled:K,executeCurrentTransaction:ye,totalSteps:be,completedSteps:ke,showingTransactionStatus:z,hasInsufficientBalance:y})})]})}var bo=(e,t)=>{let o=e.filter(n=>Number(n.token.chain.chainId)===t);return o.filter(n=>(typeof n.amount=="bigint"?n.amount:BigInt(n.amount))>0n)[0]??o[0]??null};function ot(){let{user:e,network:t,sendTransaction:o}=W(),r=P(),{openOverlay:n}=h(),{tokenBalance:a,selectOpportunity:i,selectTokenBalance:c,opportunity:s}=T(),d=useRef(null),m=useRef(null),{balances:p,isLoading:k,refetchAll:u}=useBalance({chainIds:[Number(s?.receiptToken?.chain.chainId)??mainnet.id],address:e,depositOpportunity:s}),{data:l,isLoading:g}=useWidgetOpportunities(r);useEffect(()=>{if(l&&l.opportunities&&l.opportunities.length>0&&!s){let f=t??mainnet.id,y=l.opportunities.find(I=>Number(I.receiptToken?.chain.chainId)===f)||l.opportunities[0];i(y);}},[l,s,t]),useEffect(()=>{let f=t??mainnet.id;if(m.current!==null&&m.current!==f&&l?.opportunities&&l.opportunities.length>0){let y=l.opportunities.find(I=>Number(I.receiptToken?.chain.chainId)===f);y&&i(y);}m.current=f;},[t,l,i]),useEffect(()=>{let f=Number(s?.receiptToken?.chain.chainId)??mainnet.id,C=a?.token.chain.chainId,y=d.current!==f,I=!a||Number(C)!==f;if(y&&I&&p.length>0){let D=bo(p,f);D&&(c(D),d.current=f);}else y||(d.current=f);},[s,a,p,c]);let A=useMemo(()=>k||g,[k,g]),R=useCallback(()=>{if(!a)return;let f=p.find(C=>C.token.address.toLowerCase()===a.token.address.toLowerCase()&&Number(C.token.chain.chainId)===Number(a.token.chain.chainId));f&&c(f);},[p,a,c]);return {address:e,network:t,distributorId:r,openOverlay:n,sendTransaction:o,isLoading:A,refetchBalances:u,refreshSelectedToken:R}}function xo(e,t=4){return e?`${e.slice(0,t+2)}...${e.slice(-t)}`:""}function rt(){let{isMember:e,isLoading:t,address:o,isConnected:r,disconnect:n}=O();if(t)return jsx("div",{className:"h-10 w-[133px] animate-pulse rounded-full bg-neutral-alpha-10"});if(!r)return null;if(r&&e)return jsx(Button,{variant:"ghost",border:"bordered",onClick:n,className:"group min-w-[140px] transition-colors",children:jsxs("div",{className:"gap-2 flex text-md items-center justify-between",children:[jsx(Wallet2Icon,{className:"size-6 stroke-accent group-hover:hidden"}),jsx(LogOutIcon,{className:"hidden size-6 stroke-destructive group-hover:block"}),jsx("span",{className:"group-hover:hidden",children:xo(o)}),jsx("span",{className:"hidden group-hover:block text-foreground",children:"Disconnect"})]})})}function at(){let e=P(),{data:t}=useWidgetOpportunities(e),o=t?.chains||[],{changeNetwork:r,currentChain:n,isConnected:a}=O(),i=useMemo(()=>o.find(s=>Number(s.chainId)===n)||o[0],[o,n]),c=async s=>{try{await r(s);}catch(d){console.error("Failed to change network:",d);}};return a?jsxs(DropdownMenu,{children:[jsx(DropdownMenuTrigger,{src:i?.logoUrl,children:i?.name}),jsx(DropdownMenuContent,{children:o.map(s=>jsxs(DropdownMenuItem,{onClick:()=>c(Number(s.chainId)),children:[jsx("img",{src:s.logoUrl,alt:s.name,className:"size-6 rounded-full"}),s.name]},s.id))})]}):null}function ue(){return jsxs("div",{className:"flex justify-between items-center gap-2",children:[jsx(rt,{}),jsx(at,{})]})}var dt=()=>jsx("div",{className:"mt-5 flex flex-col gap-4 h-full",children:jsxs("div",{className:"space-y-3",children:[jsxs("div",{className:"flex gap-3",children:[jsx(Skeleton,{className:"h-12 flex-1 rounded-turtle"}),jsx(Skeleton,{className:"h-12 w-48 rounded-turtle"})]}),jsxs(Card,{variant:"shadow",gradient:"white",className:"rounded-turtle space-y-2",children:[jsxs("div",{className:"flex justify-between p-4",children:[jsx(Skeleton,{className:"h-8 w-24"}),jsx(Skeleton,{className:"h-8 w-56 rounded-full"})]}),jsxs("div",{className:"mx-4 mb-4 space-y-1",children:[jsxs("div",{className:"flex justify-between",children:[jsx(Skeleton,{className:"h-4 w-16"}),jsx(Skeleton,{className:"h-4 w-40"})]}),jsxs("div",{className:"flex justify-between",children:[jsx(Skeleton,{className:"h-4 w-16"}),jsx(Skeleton,{className:"h-4 w-40"})]})]})]}),jsxs(Card,{variant:"shadow",className:"rounded-turtle p-4",children:[jsx("div",{className:"mb-4",children:jsx(Skeleton,{className:"h-20 w-full rounded-turtle"})}),jsxs("div",{className:"flex justify-between items-center mb-4",children:[jsx(Skeleton,{className:"h-10 w-40 rounded-full"}),jsx(Skeleton,{className:"h-5 w-32"})]})]}),jsx(Skeleton,{className:"h-14 w-full rounded-turtle"})]})});var ct=()=>{let{isConnected:e,connect:t}=O(),{address:o,distributorId:r,openOverlay:n,sendTransaction:a,isLoading:i,refetchBalances:c,refreshSelectedToken:s}=ot(),{opportunity:d,amount:m,tokenBalance:p}=T(),k=u=>u.filter(l=>l.rewardType!=="points").reduce((l,g)=>l+(g.yield??0),0);return i?jsx(dt,{}):jsxs("div",{className:"mt-5 flex flex-col gap-4 h-full",children:[jsxs("div",{className:"text-foreground space-y-3",children:[jsx(ue,{}),jsxs(Card,{variant:"shadow",gradient:"white",className:cn("rounded-turtle space-y-2"),children:[jsxs("div",{className:"flex justify-between p-4",children:[jsx(APRBreakdownTooltip,{vaultConfig:d?.vaultConfig??void 0,incentives:d?.incentives||[],isWidget:true,className:"text-xl text-primary"}),jsx(BaseSelector,{icon:iconUrlToImg(d?.receiptToken?.logoUrl||"",d?.receiptToken?.symbol||""),text:d?.name||"",onClick:()=>n("opportunities"),size:"sm"})]}),jsx(OpportunityRateEstimator,{value:{symbol:d?.baseTokens?.symbol||"",price:d?.baseTokens?.priceUsd||0,depositedAmountUsd:Number(Number(m??0)*Number(p?.token.priceUsd??0))||0,apr:k(d?.incentives||[])}})]})]}),d&&o&&r&&jsx(et,{opportunity:d,address:o,distributorId:r,stickyButton:true,refetchBalances:c,refreshSelectedToken:s,executeTransaction:async u=>await a(u)}),!e&&jsx("div",{className:"mt-auto sticky bottom-0",children:jsx(Button,{variant:"green",border:"interactive",size:"lg",onClick:t,className:"w-full",children:"Connect Wallet"})})]})};function ut(){let{selectTokenBalance:e,opportunity:t}=T(),{closeOverlay:o}=h(),{user:r}=W(),n=Number(t?.receiptToken?.chain.chainId)??mainnet.id,{balances:a,isLoading:i,error:c}=useBalance({chainIds:[n],address:r||"",depositOpportunity:t}),s=useMemo(()=>a.filter(m=>Number(m.token.chain.chainId)===n),[a,n]),d=useCallback(m=>{e(m),o();},[e,o]);return c?jsxs("div",{children:["Error: ",c.message]}):jsx(M,{children:jsx(BalancesDataTable,{balances:s,isLoading:i,onBalanceSelect:d,emptyStateMessage:"No balances found"})})}function ft(){let{isMember:e}=O(),t=useMemo(()=>({positions:{label:"Your Positions",component:Ye,visible:e},earn:{label:"Earn",component:ct},discover:{label:"Discover",component:Qe}}),[e]),o=useMemo(()=>({opportunities:{component:He},balances:{component:ut}}),[]);return jsx(Be,{children:jsx(ne,{tabs:t,overlays:o,defaultTab:"earn"})})}function gt({adapter:e,config:t,distributorId:o}){return jsx(Te,{config:t,children:jsx(_e,{adapter:e,distributorId:o,children:jsx(ft,{})})})}var Go={theme:"dark",widgetWidth:"default",customWidth:"100%",padding:"default",rounding:"default",fontFamily:"Montserrat",fontSecondary:"DM Sans",deals:[],campaigns:[],styles:{background:"#141514",background_dark:"#F9F9F9",foreground:"#F9F9F9",foreground_dark:"#141514",card:"#141514",card_dark:"#F9F9F9",muted_foreground:"#FFFFFF80",muted_foreground_dark:"#14151480",primary:"#73F36C",primary_dark:"#73F36C"}};//! Will be deprecated when just use distributorId to fetch everything from the API
2
2
  export{gt as EarnWidget,Go as defaultWidgetStyleConfig};//# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@turtleclub/earn-widget",
3
- "version": "0.5.0-beta.57",
3
+ "version": "0.5.0-beta.59",
4
4
  "description": "Configurable and self-contained Turtle Earn widget for third-party integration",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -41,9 +41,9 @@
41
41
  "dependencies": {
42
42
  "@tailwindcss/postcss": "^4.1.11",
43
43
  "@turtleclub/chains": "0.3.0",
44
- "@turtleclub/hooks": "0.5.0-beta.41",
45
- "@turtleclub/opportunities": "0.1.0-beta.57",
46
- "@turtleclub/ui": "0.7.0-beta.21",
44
+ "@turtleclub/hooks": "0.5.0-beta.43",
45
+ "@turtleclub/opportunities": "0.1.0-beta.59",
46
+ "@turtleclub/ui": "0.7.0-beta.22",
47
47
  "@turtleclub/utils": "0.4.0-beta.0",
48
48
  "class-variance-authority": "^0.7.1",
49
49
  "clsx": "^2.1.1",
@@ -85,5 +85,5 @@
85
85
  "publishConfig": {
86
86
  "access": "public"
87
87
  },
88
- "gitHead": "4752e7b695cd8733bc41b21a79ffaa33b82aa7a0"
88
+ "gitHead": "11cf816a868a361c6745919cee9883c5dbedb788"
89
89
  }