@orderly.network/ui-scaffold 2.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/accountMenu/menu.ui.tsx","../src/components/accountMenu/useWidgetBuilder.script.ts","../src/components/scaffoldContext.ts","../src/components/accountMenu/menu.widget.tsx","../src/components/main/mainNav.ui.tsx","../src/components/main/navItem.tsx","../src/components/main/mainNavItems.tsx","../src/components/main/products.tsx","../src/components/main/productItem.tsx","../src/components/accountSummary/accountSummary.ui.tsx","../src/components/accountSummary/useWidgetBuilder.script.ts","../src/components/accountSummary/accountSummary.widget.tsx","../src/components/chainMenu/chainMenu.ui.tsx","../src/components/chainMenu/useWidgetBuilder.script.ts","../src/components/chainMenu/chainMenu.widget.tsx","../src/components/main/useWidgetBuilder.script.ts","../src/components/main/campaignButton.tsx","../src/components/main/mainNav.widget.tsx","../src/components/sidebar/sidebar.ui.tsx","../src/components/sidebar/useSideNavBuilder.script.tsx","../src/components/sidebar/sidebar.widget.tsx","../src/components/footer/footer.ui.tsx","../src/components/icons/communtiyIcons.tsx","../src/components/icons/orderlyNetworkTextIcon.tsx","../src/components/icons/signal.tsx","../src/components/icons/infoIcon.tsx","../src/components/icons/closeIcon.tsx","../src/components/footer/footer.script.tsx","../src/components/footer/footer.widget.tsx","../src/components/maintenanceTips/ui.tsx","../src/components/maintenanceTips/script.tsx","../src/components/maintenanceTips/widget.tsx","../src/components/scaffold.tsx","../src/utils/chain.ts"],"names":["AccountStatusEnum","Button","Divider","DropdownMenuContent","DropdownMenuGroup","DropdownMenuItem","DropdownMenuPortal","DropdownMenuRoot","DropdownMenuTrigger","EVMAvatar","Flex","Text","Tooltip","jsx","jsxs","AccountMenu","props","state","onDisconnect","onOpenExplorer","r","e","WalletMenu","address","event","useAccount","useChains","useWalletConnector","WalletConnectorModalId","modal","toast","useCallback","createContext","useContext","ExpandableContext","useScaffoldContext","useAppContext","ChainSelectorId","useAccountMenu","disconnect","connectedChain","account","checkChainSupport","connectWallet","_","findByChainId","onCrateAccount","res","err","onCreateOrderlyKey","switchChain","status","statusChangeHandler","error","connect","nextState","chainInfo","explorer_base_url","AccountMenuWidget","useMemo","ChevronDownIcon","PopoverContent","Box","cn","PopoverAnchor","PopoverRoot","cloneElement","useRef","useState","Fragment","NavItem","classNames","currentPath","item","onClick","buttonProps","isActive","onClickHandler","button","ItemIcon","SubMenus","subItem","open","setOpen","timer","onMouseEnter","index","SubMenu","SubMenuTitle","name","Tag","OutlinkIcon","ICON_CLASSNAME","MainNavItems","items","ProductItem","active","ProductsMenu","onItemClick","current","className","currentItem","product","Logo","EyeCloseIcon","EyeIcon","Popover","AccountSummary","type","rest","element","FreeCollateral","UnrealPnL","CurrentLeverage","MaxLeverage","TotalValue","AccountInfoPopover","totalValue","visible","onToggleVisibility","freeCollateral","currentLeverage","IdentityButton","useLeverage","useLocalStorage","useMarginRatio","usePositionStream","useCollateral","useTotalValueBuilderScript","setType","setVisible","aggregated","totalUnrealizedROI","wrongNetwork","maxLeverage","onTypeChange","unavailable","AccountSummaryWidget","Select","ChainMenu","useConfig","useEffect","useChainMenuBuilderScript","chains","setChain","currentChainId","setCurrentChainId","onChainChanged","networkId","firstChain","onChainChange","chain","ChainMenuWidget","CampaignPositionEnum","useMainNavBuilder","campaignPosition","routerAdapter","setCurrent","currentProduct","setCurrentProduct","onItemClickHandler","scope","lastItem","args","mainNavConfig","config","converted","CampaignButton","MainNav","logo","products","campaigns","children","MainNavWidget","memo","tv","menuItemVariants","MenuItem","mode","SideMenus","SideBarHeader","title","titleElemet","SideBar","onItemSelect","useSideNavBuilder","expanded","setExpand","SideNavbarWidget","React","CommuntiyTelegramIcon","ref","size","CommuntiyDiscordIcon","CommuntiyXIcon","OrderlyNetworkTextIcon","opacity","SignalIcon","InfoIcon","viewBox","CloseIcon","WsNetworkStatus","FooterUI","signalClsName","openUrl","url","useWsStatus","useFooterScript","wsStatus","footerConfig","FooterWidget","Dialog","DialogBody","DialogContent","DialogHeader","DialogTitle","useMediaQuery","MEDIA_TABLET","MaintenanceTipsUI","showTips","showDialog","tipsContent","closeTips","dialogContent","useMaintenanceStatus","format","UTCDateMini","getTimestamp","getTimeString","timestamp","date","oneDay","useMaintenanceScript","setShowTips","setShowDialog","startTime","endTime","brokerName","startDate","endDate","MaintenanceTipsWidget","Grid","OrderlyContext","chainId","Scaffold","expand","sideBarDefaultWidth","checkChainSupportHandle","onExpandChange","footerHeight"],"mappings":"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","sourcesContent":["import { AccountStatusEnum } from \"@orderly.network/types\";\nimport {\n Button,\n Divider,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuPortal,\n DropdownMenuRoot,\n DropdownMenuTrigger,\n EVMAvatar,\n Flex,\n Match,\n Text,\n Tooltip,\n} from \"@orderly.network/ui\";\n\nexport type AccountMenuProps = {\n accountState: AccountState;\n address?: string;\n onDisconnect: () => void;\n connect: () => Promise<void>;\n onCrateAccount: () => Promise<void>;\n onCreateOrderlyKey: () => Promise<void>;\n onOpenExplorer: () => void;\n};\n\nexport const AccountMenu = (props: AccountMenuProps) => {\n const { accountState: state, onDisconnect, onOpenExplorer } = props;\n\n if (state.status <= AccountStatusEnum.NotConnected || state.validating) {\n return (\n <Tooltip\n open\n content={\"Please connect wallet before starting to trade\"}\n align={\"end\"}\n className=\"oui-bg-base-5\"\n arrow={{ className: \"oui-fill-base-5\" }}\n >\n <Button\n data-testid=\"oui-testid-nav-bar-connectWallet-btn\"\n size=\"md\"\n variant=\"gradient\"\n angle={45}\n className=\"wallet-connect-button\"\n loading={state.validating}\n disabled={state.validating}\n onClick={() => {\n props\n .connect()\n .then((r) => {\n console.log(\"*****\", r);\n })\n .catch((e) => console.error(e));\n }}\n >\n Connect wallet\n </Button>\n </Tooltip>\n );\n }\n\n console.log(\n \"🔗 account state\",\n state.status,\n state.status <= AccountStatusEnum.NotSignedIn\n );\n\n if (state.status <= AccountStatusEnum.NotSignedIn) {\n return (\n <Tooltip\n open\n content={\"Please sign in before starting to trade\"}\n align={\"end\"}\n className=\"oui-bg-base-5\"\n arrow={{ className: \"oui-fill-base-5\" }}\n >\n <Button size=\"md\" onClick={() => props.onCrateAccount()}>\n Sign in\n </Button>\n </Tooltip>\n );\n }\n\n if (state.status <= AccountStatusEnum.DisabledTrading) {\n return (\n <Tooltip\n open\n className=\"oui-bg-base-5\"\n arrow={{ className: \"oui-fill-base-5\" }}\n content={\"Please enable trading before starting to trade\"}\n align={\"end\"}\n >\n <Button\n size=\"md\"\n onClick={() => {\n props\n .onCreateOrderlyKey()\n .then((r) => console.log(r))\n .catch((e) => console.error(e));\n }}\n >\n Enable trading\n </Button>\n </Tooltip>\n );\n }\n\n if (state.status === AccountStatusEnum.EnableTrading) {\n return (\n <WalletMenu\n address={state.address!}\n onDisconnect={onDisconnect}\n onOpenExplorer={onOpenExplorer}\n />\n );\n }\n};\n\nexport type AccountState = {\n status: AccountStatusEnum;\n\n /**\n * whether the account is validating\n */\n validating: boolean;\n\n accountId?: string;\n userId?: string;\n address?: string;\n isNew?: boolean;\n\n connectWallet?: {\n name: string;\n chainId: number;\n };\n};\n\nconst WalletMenu = (props: {\n address: string;\n onDisconnect: () => void;\n onOpenExplorer: () => void;\n}) => {\n const { address, onDisconnect } = props;\n\n return (\n <DropdownMenuRoot>\n <DropdownMenuTrigger asChild>\n <Button size=\"md\" variant=\"gradient\" angle={45} data-testid=\"oui-testid-nav-bar-address-btn\">\n <Text.formatted rule=\"address\" className=\"oui-text-[rgba(0,0,0,.88)]\">\n {address}\n </Text.formatted>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuPortal>\n <DropdownMenuContent\n size={\"xl\"}\n align={\"end\"}\n onCloseAutoFocus={(e) => e.preventDefault()}\n style={{ width: \"280px\" }}\n className={\"oui-py-5 oui-font-semibold\"}\n sideOffset={12}\n >\n <DropdownMenuGroup>\n <Flex px={4}>\n <Flex gap={2} className={\"oui-flex-1\"}>\n <EVMAvatar address={address} size={\"md\"} />\n <Text.formatted rule={\"address\"} size={\"base\"}>\n {address}\n </Text.formatted>\n </Flex>\n <Flex gap={2}>\n <button\n onClick={async () => {\n // copy\n await navigator.clipboard.writeText(address);\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n // fill=\"none\"\n className=\"oui-fill-[rgba(255,255,255,0.36)] hover:oui-fill-primary\"\n >\n <path\n d=\"M5.249 2.243a3 3 0 0 0-3 3v4.5a3 3 0 0 0 3 3 3 3 0 0 0 3 3h4.5a3 3 0 0 0 3-3v-4.5a3 3 0 0 0-3-3 3 3 0 0 0-3-3zm7.5 4.5a1.5 1.5 0 0 1 1.5 1.5v4.5a1.5 1.5 0 0 1-1.5 1.5h-4.5a1.5 1.5 0 0 1-1.5-1.5h3a3 3 0 0 0 3-3z\"\n // fill=\"currentcolor\"\n // fillOpacity=\".36\"\n\n // className={''}\n />\n </svg>\n </button>\n <button onClick={() => props.onOpenExplorer()}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n className=\"oui-fill-[rgba(255,255,255,0.36)] hover:oui-fill-primary\"\n >\n <path d=\"M12.7432 15.7432C14.3999 15.7432 15.7432 14.3999 15.7432 12.7432V5.24316C15.7432 3.58641 14.3999 2.24316 12.7432 2.24316H5.24316C3.58641 2.24316 2.24316 3.58641 2.24316 5.24316V12.7432C2.24316 14.3999 3.58641 15.7432 5.24316 15.7432H12.7432ZM6.74316 11.9932C6.55116 11.9932 6.35092 11.9287 6.20392 11.7824C5.91142 11.4892 5.91142 10.9972 6.20392 10.7039L9.20392 7.70392L7.49316 5.99316H11.9932V10.4932L10.2824 8.78241L7.28241 11.7824C7.13616 11.9287 6.93516 11.9932 6.74316 11.9932Z\" />\n </svg>\n </button>\n </Flex>\n </Flex>\n </DropdownMenuGroup>\n <Divider className={\"oui-mx-4 oui-my-3\"} intensity={8} />\n {/* <DropdownMenuGroup>\n <DropdownMenuItem size={\"xl\"}>\n <Flex gap={2}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n >\n <path\n opacity=\".998\"\n d=\"M5.243 2.197a3 3 0 0 0-3 3v7.5a3 3 0 0 0 3 3h7.5a3 3 0 0 0 3-3v-7.5a3 3 0 0 0-3-3zm0 1.5h7.5a1.5 1.5 0 0 1 1.5 1.5v7.5a1.52 1.52 0 0 1-.754 1.298c-.144-1.771-2.046-2.798-4.496-2.798S4.603 12.251 4.486 14a1.52 1.52 0 0 1-.743-1.303v-7.5a1.5 1.5 0 0 1 1.5-1.5m3.75 1.5a2.625 2.625 0 1 0 0 5.25 2.625 2.625 0 0 0 0-5.25\"\n fill=\"#fff\"\n fillOpacity=\".8\"\n />\n </svg>\n <span>Overview</span>\n </Flex>\n </DropdownMenuItem>\n <DropdownMenuItem size={\"xl\"}>\n <Flex gap={2}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n >\n <path\n d=\"M5.693 1.499c-1.463 0-2.672 1.11-2.672 2.508v9.984c0 1.398 1.209 2.508 2.672 2.508h6.657c1.463 0 2.672-1.11 2.672-2.508V6.726c0-2.672-2.58-5.227-5.25-5.227zm4.829 1.594c1.329.352 2.562 1.58 2.906 2.906h-1.735c-.667 0-1.171-.472-1.171-1.008zm-3.75 2.906h.75a.75.75 0 0 1 0 1.5h-.75a.75.75 0 0 1 0-1.5m0 3h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5m0 3h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5\"\n fill=\"#fff\"\n fillOpacity=\".8\"\n />\n </svg>\n <span>Orders</span>\n </Flex>\n </DropdownMenuItem>\n </DropdownMenuGroup>\n <Divider className={\"oui-mx-4 oui-my-3\"} intensity={8} /> */}\n <DropdownMenuGroup>\n <DropdownMenuItem\n size={\"xl\"}\n onSelect={(event) => {\n event.preventDefault();\n onDisconnect();\n }}\n data-testid=\"oui-testid-nav-bar-dropDownMenuItem-disconnect\"\n >\n <Flex gap={2} className={\"oui-text-danger-light\"} >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.97 14.03a.75.75 0 0 1 0-1.06l.262-.263C2.594 12.354 1.5 11.108 1.5 9.06c0-2.447 1.563-3.75 3.75-3.75H6a.75.75 0 0 1 0 1.5h-.75C3.837 6.81 3 7.508 3 9.06s.837 2.25 2.25 2.25h.38l1.188-1.188a.75.75 0 0 1-.068-.312v-.75c0-1.162.381-2.19 1.172-2.883.645-.565 1.512-.867 2.578-.867h1.13l1.34-1.34a.75.75 0 0 1 1.061 1.06l-9 9a.75.75 0 0 1-1.06 0m6.14-7.2L8.27 8.668c.065-.583.281-1.056.635-1.367.289-.253.684-.419 1.205-.473M7.825 12.8l3.414-3.415c-.126 2.12-1.496 3.297-3.414 3.415m7.705-6.58a.75.75 0 0 0-1.06 1.06c.508.509.53 1.202.53 1.72 0 .739-.014 1.203-.53 1.72-.165.164-.455.307-.825.405a3.8 3.8 0 0 1-.895.125H12a.75.75 0 0 0 0 1.5h.75c.31 0 .787-.045 1.28-.175.48-.127 1.065-.36 1.5-.795.97-.97.97-1.991.97-2.75v-.06c0-.51.002-1.778-.97-2.75\"\n fill=\"currentcolor\"\n />\n </svg>\n <span>Disconnect</span>\n </Flex>\n </DropdownMenuItem>\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenuPortal>\n </DropdownMenuRoot>\n );\n};\n","import {\n useAccount,\n useChains,\n useWalletConnector,\n} from \"@orderly.network/hooks\";\nimport { WalletConnectorModalId } from \"@orderly.network/ui-connector\";\nimport { modal, toast } from \"@orderly.network/ui\";\nimport { useCallback, useEffect, useMemo } from \"react\";\nimport { useScaffoldContext } from \"../scaffoldContext\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { ChainSelectorId } from \"@orderly.network/ui-chain-selector\";\n\nexport const useAccountMenu = (): any => {\n const { disconnect, connectedChain } = useWalletConnector();\n const { account, state } = useAccount();\n const { checkChainSupport } = useScaffoldContext();\n const { connectWallet } = useAppContext();\n\n const [_, { findByChainId }] = useChains();\n\n const onCrateAccount = async () => {\n modal.show(WalletConnectorModalId).then(\n (res) => console.log(\"return ::\", res),\n (err) => console.log(\"error:::\", err)\n );\n };\n\n const onCreateOrderlyKey = async () => {\n modal.show(WalletConnectorModalId).then(\n (res) => console.log(\"return ::\", res),\n (err) => console.log(\"error:::\", err)\n );\n };\n\n const switchChain = () => {\n account.once(\"validate:end\", (status) => {\n if (status < AccountStatusEnum.EnableTrading) {\n statusChangeHandler({\n status,\n });\n } else {\n toast.success(\"Wallet connected\");\n }\n });\n\n modal\n .show<{\n wrongNetwork: boolean;\n }>(ChainSelectorId)\n .then(\n (r) => {\n if (!r.wrongNetwork) {\n if (state.status < AccountStatusEnum.EnableTrading) {\n statusChangeHandler(state);\n } else {\n toast.success(\"Wallet connected\");\n }\n }\n },\n (error) => console.log(\"[switchChain error]\", error)\n );\n };\n\n const connect = async () => {\n const res = await connectWallet();\n\n if (!res) return;\n\n if (res.wrongNetwork) {\n switchChain();\n } else {\n statusChangeHandler(res);\n }\n };\n\n const statusChangeHandler = (nextState: any) => {\n if (nextState.validating || nextState.status <= AccountStatusEnum.Connected)\n return;\n\n if (nextState.status < AccountStatusEnum.SignedIn) {\n onCrateAccount();\n }\n if (nextState.status < AccountStatusEnum.EnableTrading) {\n onCreateOrderlyKey();\n }\n };\n\n const onOpenExplorer = useCallback(() => {\n if (!connectedChain) return;\n const chainInfo = findByChainId(\n connectedChain!.id as number,\n \"network_infos\"\n );\n\n if (chainInfo) {\n // @ts-ignore\n const { explorer_base_url } = chainInfo;\n if (explorer_base_url) {\n if (explorer_base_url.endsWith(\"/\")) {\n window.open(`${explorer_base_url}address/${account.address}`);\n } else {\n window.open(`${explorer_base_url}/address/${account.address}`);\n }\n }\n }\n }, [state, connectedChain]);\n\n return {\n address: state.address,\n accountState: state,\n connect,\n onCrateAccount,\n onCreateOrderlyKey,\n onOpenExplorer,\n onDisconnect: async () => {\n await disconnect({\n label: state.connectWallet?.name,\n });\n await account.disconnect();\n },\n } as const;\n};\n\nexport type AccountMenuProps = ReturnType<typeof useAccountMenu>;\n","import { createContext, useContext } from \"react\";\nimport { FooterConfig } from \"./footer\";\n\nexport type routerAdapter = {\n onRouteChange: (options: {\n href: string;\n name: string;\n scope?: string;\n }) => void;\n currentPath?: string;\n};\n\nexport type ExpandableState = {\n routerAdapter?: routerAdapter;\n expanded?: boolean;\n setExpand: (expand: boolean) => void;\n // unsupported: boolean;\n checkChainSupport: (chainId: number | string) => boolean;\n footerConfig?: FooterConfig;\n};\n\nexport const ExpandableContext = createContext<ExpandableState>(\n {} as ExpandableState\n);\n\nexport const useScaffoldContext = () => {\n return useContext(ExpandableContext);\n};\n","import { AccountMenu } from \"./menu.ui\";\nimport { useAccountMenu } from \"./useWidgetBuilder.script\";\n\nexport const AccountMenuWidget = () => {\n const state = useAccountMenu();\n return <AccountMenu {...state} />;\n};\n","import { FC, PropsWithChildren, useMemo } from \"react\";\nimport {\n MainNavClassNames,\n MainNavItems,\n MainNavItemsProps,\n} from \"./mainNavItems\";\n\nimport { ProductsMenu, ProductsProps } from \"./products\";\nimport { Flex, Logo } from \"@orderly.network/ui\";\nimport type { LogoProps } from \"@orderly.network/ui\";\nimport { AccountMenuWidget } from \"../accountMenu\";\nimport { AccountSummaryWidget } from \"../accountSummary\";\nimport { ChainMenuWidget } from \"../chainMenu\";\nimport type { MainNavItem } from \"./navItem\";\nimport { CampaignPositionEnum } from \"./useWidgetBuilder.script\";\nimport { CampaignButton, CampaignProps } from \"./campaignButton\";\n\n// export type CampaignPosition = \"menuLeading\" | \"menuTailing\" | \"navTailing\";\n\nexport type MainNavProps = {\n className?: string;\n logo: LogoProps;\n products: ProductsProps;\n mainMenus: MainNavItemsProps;\n wrongNetwork: boolean;\n isConnected: boolean;\n campaigns?: CampaignProps;\n campaignPosition?: CampaignPositionEnum;\n classNames?: {\n root?: string;\n mainNav?: MainNavClassNames;\n // subNav?: string;\n logo?: string;\n products?: string;\n account?: string;\n chains?: string;\n campaignButton?: string;\n };\n};\n\nexport const MainNav: FC<PropsWithChildren<MainNavProps>> = (props) => {\n console.log(\"MainNavProps\", props);\n const { className, logo, products, classNames, campaigns, campaignPosition } =\n props;\n\n const children = useMemo(() => {\n if (typeof props.children === \"undefined\") return null;\n\n return <Flex grow>{props.children}</Flex>;\n }, [props.children]);\n\n return (\n <Flex\n as=\"header\"\n itemAlign={\"center\"}\n height={\"48px\"}\n justify={\"between\"}\n px={3}\n className={`orderly-main-nav ${className} ${classNames?.root} oui-font-semibold`}\n >\n <Flex itemAlign={\"center\"} gap={4}>\n <Logo {...logo} />\n <ProductsMenu {...products} className={classNames?.products} />\n <MainNavItems {...props.mainMenus} classNames={classNames?.mainNav} />\n </Flex>\n {children}\n\n <Flex itemAlign={\"center\"} gap={4}>\n {campaignPosition === CampaignPositionEnum.navTailing && campaigns ? (\n <CampaignButton\n {...campaigns}\n className={classNames?.campaignButton}\n />\n ) : null}\n <AccountSummaryWidget />\n <ChainMenuWidget />\n {props.wrongNetwork && props.isConnected ? null : <AccountMenuWidget />}\n </Flex>\n </Flex>\n );\n};\n\nMainNav.displayName = \"MainNav\";\n","import { ChevronDownIcon, PopoverContent } from \"@orderly.network/ui\";\nimport { Flex } from \"@orderly.network/ui\";\nimport { Box, cn, PopoverAnchor, PopoverRoot, Text } from \"@orderly.network/ui\";\nimport React, {\n cloneElement,\n FC,\n HTMLAttributeAnchorTarget,\n PropsWithChildren,\n ReactElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nexport type MainNavItem = {\n id?: string;\n testid?: string;\n name: string;\n href: string;\n target?: HTMLAttributeAnchorTarget;\n icon?: string | React.ReactElement;\n activeIcon?: string | React.ReactElement;\n tag?: string;\n description?: string;\n disabled?: boolean;\n children?: MainNavItem[];\n className?: string;\n asChild?: boolean;\n};\n\nexport const NavItem: FC<\n Omit<React.HTMLAttributes<HTMLButtonElement>, \"onClick\"> & {\n item: MainNavItem;\n onClick?: (item: MainNavItem[]) => void;\n // active?: boolean;\n currentPath?: string[];\n classNames?: {\n navItem?: string;\n subMenu?: string;\n };\n }\n> = (props) => {\n const { classNames, currentPath, item, onClick, ...buttonProps } = props;\n\n const isActive = useMemo(\n () => props.currentPath?.[0] === props.item.href,\n [currentPath]\n );\n\n const onClickHandler = useCallback(() => {\n if (Array.isArray(props.item.children)) return;\n props.onClick?.([props.item]);\n }, [props.item]);\n\n const button = (\n <button\n id={item.id}\n data-testid={item.testid}\n {...buttonProps}\n disabled={props.item.disabled}\n data-actived={isActive}\n className={cn( \n \"oui-text-base-contrast-36 oui-text-sm oui-relative oui-group oui-rounded oui-px-3 oui-py-1 oui-h-[32px] hover:oui-bg-base-7\",\n classNames?.navItem\n )}\n onClick={onClickHandler}\n >\n <span className={\"oui-flex oui-items-center\"}>\n <ItemIcon isActive={isActive} item={props.item} />\n <Text.gradient color={isActive ? \"brand\" : \"inherit\"} angle={45}>\n {props.item.name}\n </Text.gradient>\n {Array.isArray(props.item.children) && (\n <span className={\"oui-ml-1 group-data-[open=true]:oui-rotate-180\"}>\n {isActive ? (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M2.913 4.515a.5.5 0 0 0-.328.202.51.51 0 0 0 .14.701L5.722 7.41a.51.51 0 0 0 .562 0l2.995-1.992a.51.51 0 0 0 .14-.7.51.51 0 0 0-.701-.14L6.002 6.382 3.287 4.577a.5.5 0 0 0-.374-.062\"\n fill=\"url(#mainNavDropDownIcon)\"\n />\n <defs>\n <linearGradient\n id=\"mainNavDropDownIcon\"\n x1=\"9.502\"\n y1=\"5.994\"\n x2=\"2.502\"\n y2=\"5.994\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#59B0FE\" />\n <stop offset=\"1\" stop-color=\"#26FEFE\" />\n </linearGradient>\n </defs>\n </svg>\n ) : (\n <ChevronDownIcon size={12} color={\"white\"} />\n )}\n </span>\n )}\n </span>\n <Box\n invisible={!isActive}\n position=\"absolute\"\n bottom={0}\n left={\"50%\"}\n height={\"3px\"}\n r=\"full\"\n width={\"60%\"}\n gradient=\"brand\"\n angle={45}\n className=\"-oui-translate-x-1/2 \"\n />\n </button>\n );\n\n if (!Array.isArray(props.item.children)) return button;\n\n return (\n <SubMenus\n items={props.item.children}\n className={classNames?.subMenu}\n current={props.currentPath?.[1]}\n onItemClick={(subItem: MainNavItem) => {\n props.onClick?.([props.item, subItem]);\n }}\n >\n {button}\n </SubMenus>\n );\n};\n\nconst SubMenus = (\n props: PropsWithChildren<{\n items: MainNavItem[];\n className?: string;\n current?: string;\n onItemClick: (item: MainNavItem) => void;\n }>\n) => {\n const [open, setOpen] = useState(false);\n const timer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const onMouseEnter = useCallback(() => {\n if (timer.current) {\n clearTimeout(timer.current);\n timer.current = null;\n }\n // setOpen(true);\n }, []);\n\n const classNames = (props.children as ReactElement).props.className;\n\n return (\n <PopoverRoot open={open}>\n <PopoverAnchor>\n <div\n className={\"oui-group\"}\n data-open={open}\n onMouseEnter={() => {\n setOpen(true);\n }}\n onMouseLeave={() => {\n timer.current = setTimeout(() => {\n setOpen(false);\n }, 150);\n }}\n >\n {cloneElement(props.children as React.ReactElement, {\n className: cn(classNames, open && \"oui-bg-base-7\"),\n })}\n </div>\n </PopoverAnchor>\n <PopoverContent\n align=\"start\"\n onMouseEnter={onMouseEnter}\n onMouseLeave={() => {\n setOpen(false);\n timer.current ? clearTimeout(timer.current) : void 0;\n }}\n className={cn(\n \"oui-p-1 oui-w-[260px] oui-border oui-border-line-6 oui-space-y-[2px]\",\n props.className\n )}\n >\n {props.items.map((item, index) => {\n return (\n <SubMenu\n key={index}\n item={item}\n onClick={props.onItemClick}\n active={item.href === props.current}\n />\n );\n })}\n </PopoverContent>\n </PopoverRoot>\n );\n};\n\nconst SubMenu = (props: {\n item: MainNavItem;\n active?: boolean;\n onClick: (item: MainNavItem) => void;\n}) => {\n const { item } = props;\n return (\n <Flex\n px={2}\n py={3}\n gapX={2}\n data-active={props.active ?? false}\n className={cn(\n \"hover:oui-bg-base-6 oui-cursor-pointer oui-text-base-contrast-80 oui-items-start oui-w-full oui-group data-[active=true]:oui-bg-base-5\"\n // props.active && \"oui-bg-base-5\"\n )}\n r={\"md\"}\n onClick={() => {\n props.onClick(item);\n }}\n data-testid={item.testid}\n >\n {!!props.item.icon && (\n <div className=\"oui-translate-y-1 oui-relative oui-w-6 oui-h-6\">\n <ItemIcon isActive={props.active ?? false} item={props.item} />\n </div>\n )}\n\n <div className=\"oui-flex-1\">\n <SubMenuTitle item={item} isActive={props.active} />\n {typeof item.description !== \"undefined\" && (\n <Text size={\"2xs\"} as={\"div\"} intensity={36}>\n {item.description}\n </Text>\n )}\n </div>\n </Flex>\n );\n};\n\nconst SubMenuTitle = (props: { item: MainNavItem; isActive?: boolean }) => {\n const {\n item: { name },\n isActive,\n } = props;\n return (\n <Flex itemAlign={\"center\"} width={\"100%\"} position=\"relative\">\n <div className=\"oui-flex-1 oui-flex\">\n <Text.gradient\n color={isActive ? \"brand\" : \"inherit\"}\n size={\"xs\"}\n as={\"div\"}\n intensity={80}\n weight={\"semibold\"}\n >\n {name}\n </Text.gradient>\n {typeof props.item.tag !== \"undefined\" && <Tag item={props.item} />}\n </div>\n {props.item.target === \"_blank\" && <OutlinkIcon />}\n </Flex>\n );\n};\n\nconst Tag = (props: { item: MainNavItem }) => {\n return (\n <div\n className={\n \"oui-px-2 oui-py-1 oui-ml-1 oui-rounded oui-inline-flex oui-bg-gradient-to-r oui-from-[rgb(var(--oui-gradient-brand-start)_/_0.12)] oui-to-[rgb(var(--oui-gradient-brand-end)_/_0.12)]\"\n }\n >\n <Text.gradient color={\"brand\"} size={\"3xs\"}>\n {props.item.tag}\n </Text.gradient>\n </div>\n );\n};\n\nconst ICON_CLASSNAME =\n \"oui-flex oui-border oui-border-line oui-w-6 oui-h-6 oui-rounded-md oui-justify-center oui-items-center oui-absolute oui-left-0 oui-top-0\";\n\nconst ItemIcon = (props: { item: MainNavItem; isActive: boolean }) => {\n const { item, isActive } = props;\n\n if (!props.item.icon) return null;\n if (typeof props.item.icon === \"string\") {\n return (\n <span className={\"oui-w-[20px] oui-h-[20px] oui-mr-1\"}>\n {\n <img\n src={\n isActive\n ? (props.item.activeIcon as string) || props.item.icon\n : props.item.icon\n }\n className={\"oui-max-w-full oui-max-h-full\"}\n />\n }\n </span>\n );\n }\n // return isActive ? props.item.activeIcon || props.item.icon : props.item.icon;\n return (\n <>\n <div\n className={cn(\n ICON_CLASSNAME,\n \"group-data-[active=true]:oui-invisible group-hover:oui-invisible\"\n )}\n >\n {props.item.icon}\n </div>\n <div\n className={cn(\n ICON_CLASSNAME,\n \"oui-invisible group-data-[active=true]:oui-visible group-hover:oui-visible\"\n )}\n >\n {props.item.activeIcon || props.item.icon}\n </div>\n </>\n );\n};\n\nconst OutlinkIcon = () => {\n return (\n <>\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"oui-absolute oui-right-0 oui-top-0 group-hover:oui-invisible\"\n >\n <path\n d=\"M14.159 17.492a3.333 3.333 0 0 0 3.333-3.333V5.826a3.333 3.333 0 0 0-3.333-3.334H5.826a3.333 3.333 0 0 0-3.334 3.334v8.333a3.333 3.333 0 0 0 3.334 3.333zm-6.667-4.166a.85.85 0 0 1-.599-.235.86.86 0 0 1 0-1.198l3.333-3.333-1.9-1.901h5v5l-1.901-1.9L8.09 13.09a.84.84 0 0 1-.599.235\"\n fill=\"#fff\"\n fillOpacity=\".2\"\n />\n </svg>\n\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"oui-absolute oui-right-0 oui-top-0 oui-invisible group-hover:oui-visible\"\n >\n <path\n d=\"M14.159 17.492a3.333 3.333 0 0 0 3.333-3.333V5.826a3.333 3.333 0 0 0-3.333-3.334H5.826a3.333 3.333 0 0 0-3.334 3.334v8.333a3.333 3.333 0 0 0 3.334 3.333zm-6.667-4.166a.85.85 0 0 1-.599-.235.86.86 0 0 1 0-1.198l3.333-3.333-1.9-1.901h5v5l-1.901-1.9L8.09 13.09a.84.84 0 0 1-.599.235\"\n fill=\"url(#outlineIcon)\"\n />\n <defs>\n <linearGradient\n id=\"outlineIcon\"\n x1=\"17.492\"\n y1=\"9.992\"\n x2=\"2.492\"\n y2=\"9.992\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#59B0FE\" />\n <stop offset=\"1\" stopColor=\"#26FEFE\" />\n </linearGradient>\n </defs>\n </svg>\n </>\n );\n};\n","import { FC } from \"react\";\nimport { MainNavItem, NavItem } from \"./navItem\";\nimport { Flex } from \"@orderly.network/ui\";\n\nexport type MainNavClassNames = {\n root?: string;\n navItem?: string;\n subMenu?: string;\n};\n\nexport type MainNavItemsProps = {\n items?: MainNavItem[];\n current?: string[];\n classNames?: MainNavClassNames;\n onItemClick?: (item: MainNavItem[]) => void;\n};\n\nexport const MainNavItems: FC<MainNavItemsProps> = (props) => {\n const { items, classNames } = props;\n\n if (!Array.isArray(items) || items.length === 0) return null;\n\n return (\n <Flex gap={2} className={classNames?.root}>\n {items?.map((item, index) => (\n <NavItem\n key={index}\n item={item}\n // active={item.href === props.current?.[0]}\n currentPath={props.current}\n onClick={props.onItemClick}\n />\n ))}\n </Flex>\n );\n};\n","import { FC, useMemo } from \"react\";\n\nimport { ProductItem } from \"./productItem\";\nimport { cn, Flex } from \"@orderly.network/ui\";\n\nexport type ProductsProps = {\n items?: ProductItem[];\n current?: string;\n className?: string;\n onItemClick?: (product: ProductItem) => void;\n};\n\nexport const ProductsMenu: FC<ProductsProps> = (props) => {\n const { items, onItemClick, current, className } = props;\n const currentItem = useMemo(() => {\n if (typeof current !== \"undefined\") return current;\n\n return items?.[0]?.href;\n }, [current, items]);\n\n if (!Array.isArray(items) || items.length === 0) return null;\n\n return (\n <Flex\n gap={0}\n border\n r=\"md\"\n className={cn(\"oui-p-[1px]\", className)}\n borderColor={12}\n >\n {items?.map((product, index) => {\n return (\n <ProductItem\n key={index}\n item={product}\n onClick={onItemClick}\n active={currentItem == product.href}\n />\n );\n })}\n </Flex>\n );\n};\n","import { Button, cn } from \"@orderly.network/ui\";\nimport { FC } from \"react\";\n\nexport type ProductItem = {\n name: string;\n href: string;\n};\n\nexport const ProductItem: FC<{\n item: ProductItem;\n active?: boolean;\n onClick?: (product: ProductItem) => void;\n}> = (props) => {\n const { active, item, onClick } = props;\n return (\n <Button\n variant={active ? \"gradient\" : \"text\"}\n color=\"secondary\"\n size=\"sm\"\n angle={45}\n className={cn(\n active ? \"oui-text-[rgba(0_,_0_,_0_,_0.88)]\" : \"hover:oui-bg-base-7\"\n )}\n onClick={() => {\n onClick?.(item);\n }}\n >\n {item.name}\n </Button>\n );\n};\n","import React, { FC } from \"react\";\nimport {\n Box,\n EyeCloseIcon,\n EyeIcon,\n Flex,\n Popover,\n Text,\n} from \"@orderly.network/ui\";\nimport { AccountSummaryType } from \"./useWidgetBuilder.script\";\n\ntype AccountSummaryUi = {\n totalValue: number | null;\n freeCollateral: number | null;\n maxLeverage: number | null;\n currentLeverage: number | null;\n unrealized_pnl_ROI: number | null;\n unrealPnL: number | null;\n visible?: boolean;\n onToggleVisibility?: () => void;\n type: AccountSummaryType;\n onTypeChange: (type: AccountSummaryType) => void;\n};\n\nexport const AccountSummary = (props: AccountSummaryUi) => {\n const { type, ...rest } = props;\n let element;\n switch (props.type) {\n case \"freeCollateral\":\n element = (\n <FreeCollateral\n freeCollateral={props.freeCollateral}\n visible={props.visible}\n onToggleVisibility={props.onToggleVisibility}\n />\n );\n break;\n case \"unrealPnL\":\n element = (\n <UnrealPnL\n unrealPnL={props.unrealPnL}\n unrealized_pnl_ROI={props.unrealized_pnl_ROI}\n visible={props.visible}\n onToggleVisibility={props.onToggleVisibility}\n />\n );\n break;\n case \"currentLeverage\":\n element = <CurrentLeverage currentLeverage={props.currentLeverage} />;\n break;\n case \"maxLeverage\":\n element = <MaxLeverage maxLeverage={props.maxLeverage} />;\n break;\n case \"totalValue\":\n default:\n element = (\n <TotalValue\n totalValue={props.totalValue}\n onToggleVisibility={props.onToggleVisibility}\n visible={props.visible}\n />\n );\n }\n\n return (\n <Popover\n content={\n <AccountInfoPopover\n totalValue={rest.totalValue}\n freeCollateral={props.freeCollateral}\n maxLeverage={props.maxLeverage}\n currentLeverage={props.currentLeverage}\n unrealized_pnl_ROI={props.unrealized_pnl_ROI}\n unrealPnL={props.unrealPnL}\n type={props.type}\n onTypeChange={props.onTypeChange}\n visible={props.visible}\n />\n }\n contentProps={{\n onOpenAutoFocus: (event) => event.preventDefault(),\n sideOffset: 12,\n }}\n arrow\n >\n <div className={\"oui-cursor-pointer\"}>{element}</div>\n </Popover>\n );\n};\n\n//----------------- TotalValue -----------------\nconst TotalValue: FC<{\n totalValue: number | null;\n visible?: boolean;\n onToggleVisibility?: () => void;\n}> = (props) => {\n const { totalValue = 0, visible = true, onToggleVisibility } = props;\n return (\n <Flex\n direction={\"column\"}\n gap={0}\n className=\"oui-text-2xs\"\n itemAlign={\"start\"}\n >\n <Flex gap={1} itemAlign={\"center\"}>\n <Text intensity={54} className=\"oui-whitespace-nowrap\">\n Total Value\n </Text>\n <button onClick={() => onToggleVisibility?.()}>\n {visible ? (\n <EyeIcon size={12} className=\"oui-text-primary-light\" opacity={1} />\n ) : (\n <EyeCloseIcon\n size={12}\n className=\"oui-text-primary-light\"\n opacity={1}\n />\n )}\n </button>\n\n <Text intensity={54}>≈</Text>\n </Flex>\n <Text.numeral\n visible={props.visible}\n unit=\"USDC\"\n unitClassName=\"oui-text-base-contrast-20 oui-ml-1\"\n as=\"div\"\n >\n {totalValue ?? \"-\"}\n </Text.numeral>\n </Flex>\n );\n};\n\n//----------------- FreeCollateral -----------------\nconst FreeCollateral: FC<{\n freeCollateral?: number | null;\n visible?: boolean;\n onToggleVisibility?: () => void;\n}> = (props) => {\n const { freeCollateral, visible, onToggleVisibility } = props;\n return (\n <Flex\n direction={\"column\"}\n gap={0}\n className=\"oui-text-2xs\"\n itemAlign={\"start\"}\n >\n <Flex gap={1} itemAlign={\"center\"}>\n <Text intensity={54} className=\"oui-whitespace-nowrap\">\n Free collateral\n </Text>\n <button onClick={() => onToggleVisibility?.()}>\n {visible ? (\n <EyeIcon size={12} className=\"oui-text-primary-light\" opacity={1} />\n ) : (\n <EyeCloseIcon\n size={12}\n className=\"oui-text-primary-light\"\n opacity={1}\n />\n )}\n </button>\n </Flex>\n {/* <Box>\n <Text intensity={54} className=\"oui-whitespace-nowrap\">\n Free collateral\n </Text>\n </Box> */}\n <Text.numeral\n unit=\"USDC\"\n unitClassName=\"oui-text-base-contrast-20 oui-ml-1\"\n visible={visible}\n as=\"div\"\n >\n {freeCollateral ?? \"-\"}\n </Text.numeral>\n </Flex>\n );\n};\n\n//----------------- CurrentLeverage -----------------\nconst CurrentLeverage: FC<{\n currentLeverage: number | null;\n}> = (props) => {\n const { currentLeverage } = props;\n return (\n <Flex\n direction={\"column\"}\n gap={0}\n className=\"oui-text-2xs\"\n itemAlign={\"start\"}\n >\n <Box>\n <Text intensity={54} className=\"oui-whitespace-nowrap\">\n Current leverage\n </Text>\n </Box>\n <Text.numeral as={\"div\"} unit=\"x\">\n {currentLeverage ?? 0}\n </Text.numeral>\n </Flex>\n );\n};\n\n//----------------- MaxLeverage -----------------\nconst MaxLeverage: FC<{\n maxLeverage: number | null;\n}> = (props) => {\n return (\n <Flex\n direction={\"column\"}\n gap={0}\n className=\"oui-text-2xs\"\n itemAlign={\"start\"}\n >\n <Box>\n <Text intensity={54} className=\"oui-whitespace-nowrap\">\n Max leverage\n </Text>\n </Box>\n <Text color=\"primary\" as={\"div\"}>{`${props.maxLeverage ?? \"--\"}x`}</Text>\n </Flex>\n );\n};\n\n//----------------- UnrealPnL -----------------\nconst UnrealPnL: FC<{\n unrealized_pnl_ROI: number | null;\n unrealPnL: number | null;\n visible?: boolean;\n onToggleVisibility?: () => void;\n}> = (props) => {\n const { visible, onToggleVisibility } = props;\n return (\n <Flex\n direction={\"column\"}\n gap={0}\n className=\"oui-text-2xs\"\n itemAlign={\"start\"}\n >\n <Flex gap={1} itemAlign={\"center\"}>\n <Text intensity={54} className=\"oui-whitespace-nowrap\">\n Unreal. PnL\n </Text>\n <button onClick={() => onToggleVisibility?.()}>\n {visible ? (\n <EyeIcon size={12} className=\"oui-text-primary-light\" opacity={1} />\n ) : (\n <EyeCloseIcon\n size={12}\n className=\"oui-text-primary-light\"\n opacity={1}\n />\n )}\n </button>\n </Flex>\n {/* <Box>\n <Text intensity={54} className=\"oui-whitespace-nowrap\">\n Unreal. PnL\n </Text>\n </Box> */}\n <Text.numeral\n as={\"div\"}\n coloring\n showIdentifier\n weight={\"semibold\"}\n visible={visible}\n suffix={\n <Text.numeral coloring prefix={\"(\"} suffix={\")\"} rule={\"percentages\"}>\n {props.unrealized_pnl_ROI ?? \"-\"}\n </Text.numeral>\n }\n >\n {props.unrealPnL ?? \"-\"}\n </Text.numeral>\n </Flex>\n );\n};\n\n//----------------- AccountInfoPopover -----------------\nconst AccountInfoPopover = (props: {\n totalValue: number | null;\n freeCollateral: number | null;\n maxLeverage: number | null;\n currentLeverage: number | null;\n unrealPnL: number | null;\n unrealized_pnl_ROI: number | null;\n type: AccountSummaryType;\n visible?: boolean;\n onTypeChange: (type: AccountSummaryType) => void;\n}) => {\n const { totalValue } = props;\n return (\n <Flex\n className={\"oui-text-2xs oui-font-semibold\"}\n direction={\"column\"}\n gapY={1}\n >\n <Flex justify={\"between\"} width={\"100%\"}>\n <Flex className={\"oui-text-base-contrast-54\"} gapX={2}>\n <IdentityButton\n active={props.type === \"totalValue\"}\n onClick={() => props.onTypeChange(\"totalValue\")}\n />\n <span>Total Value</span>\n </Flex>\n <Text.numeral\n visible={props.visible}\n unit=\"USDC\"\n unitClassName={\"oui-text-base-contrast-36 oui-ml-1\"}\n >\n {totalValue ?? \"-\"}\n </Text.numeral>\n </Flex>\n <Flex justify={\"between\"} width={\"100%\"}>\n <Flex className={\"oui-text-base-contrast-54\"} gapX={2}>\n <IdentityButton\n active={props.type === \"freeCollateral\"}\n onClick={() => props.onTypeChange(\"freeCollateral\")}\n />\n <span>Free collateral</span>\n </Flex>\n <Text.numeral\n unit=\"USDC\"\n visible={props.visible}\n unitClassName={\"oui-text-base-contrast-36 oui-ml-1\"}\n >\n {props.freeCollateral ?? \"-\"}\n </Text.numeral>\n </Flex>\n <Flex justify={\"between\"} width={\"100%\"}>\n <Flex className={\"oui-text-base-contrast-54\"} gapX={2}>\n <IdentityButton\n active={props.type === \"unrealPnL\"}\n onClick={() => props.onTypeChange(\"unrealPnL\")}\n />\n <span>Unreal. PnL</span>\n </Flex>\n <Text.numeral\n coloring\n showIdentifier\n visible={props.visible}\n suffix={\n <Text.numeral\n coloring\n prefix={\"(\"}\n visible={props.visible}\n suffix={\")\"}\n rule={\"percentages\"}\n >\n {props.unrealized_pnl_ROI ?? \"-\"}\n </Text.numeral>\n }\n >\n {props.unrealPnL ?? \"-\"}\n </Text.numeral>\n </Flex>\n <Flex justify={\"between\"} width={\"100%\"}>\n <Flex className={\"oui-text-base-contrast-54\"} gapX={2}>\n <IdentityButton\n active={props.type === \"currentLeverage\"}\n onClick={() => props.onTypeChange(\"currentLeverage\")}\n />\n <span>Current leverage</span>\n </Flex>\n <Text.numeral unit=\"x\">{props.currentLeverage ?? \"-\"}</Text.numeral>\n </Flex>\n <Flex justify={\"between\"} width={\"100%\"}>\n <Flex className={\"oui-text-base-contrast-54\"} gapX={2}>\n <IdentityButton\n active={props.type === \"maxLeverage\"}\n onClick={() => props.onTypeChange(\"maxLeverage\")}\n />\n <span>Max leverage</span>\n </Flex>\n <Text color=\"primary\">{`${props.maxLeverage ?? \"-\"}x`}</Text>\n </Flex>\n </Flex>\n );\n};\n\nconst IdentityButton = (props: {\n active: boolean;\n onClick: React.MouseEventHandler;\n}) => {\n return (\n <button onClick={props.onClick}>\n {props.active ? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n >\n <path\n d=\"M7.506.977a.56.56 0 0 0-.365.16C6.367 1.88 6.13 2.5 6.413 3.348c-.661.506-1.078.63-1.903.63-1.127 0-1.863.137-2.364.637v.016a1.187 1.187 0 0 0 0 1.686l1.4 1.411-2.385 2.385a.513.513 0 0 0-.015.717.514.514 0 0 0 .719 0l2.394-2.395 1.403 1.396a1.19 1.19 0 0 0 1.687 0h.016c.501-.5.64-1.142.64-2.358 0-.773.16-1.319.64-1.893.924.271 1.462.012 2.22-.746a.5.5 0 0 0 .14-.36c0-.175-.044-.445-.156-.78a4 4 0 0 0-.984-1.577 4 4 0 0 0-1.578-.984C7.95 1.02 7.682.977 7.506.977\"\n fill=\"currentcolor\"\n className={\"oui-text-primary-light\"}\n />\n </svg>\n ) : (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n >\n <path\n d=\"M7.506.977a.56.56 0 0 0-.365.16C6.367 1.88 6.13 2.5 6.413 3.348c-.661.506-1.078.63-1.903.63-1.127 0-1.863.137-2.364.637v.016a1.187 1.187 0 0 0 0 1.686l1.4 1.411-2.385 2.385a.513.513 0 0 0-.015.717.514.514 0 0 0 .719 0l2.394-2.395 1.403 1.396a1.19 1.19 0 0 0 1.687 0h.016c.501-.5.64-1.142.64-2.358 0-.773.16-1.319.64-1.893.924.271 1.462.012 2.22-.746a.5.5 0 0 0 .14-.36c0-.175-.044-.445-.156-.78a4 4 0 0 0-.984-1.577 4 4 0 0 0-1.578-.984C7.95 1.02 7.682.977 7.506.977m.193 1.027c.531.098 1.066.45 1.447.83.381.382.706.848.84 1.459-.477.458-.77.494-1.247.243a.5.5 0 0 0-.583.087c-.91.91-1.15 1.736-1.15 2.85 0 .97-.057 1.33-.36 1.655-.085.092-.203.078-.281 0L2.849 5.615a.18.18 0 0 1-.012-.255c.178-.217.576-.386 1.669-.386 1.306.001 2-.335 2.859-1.14a.5.5 0 0 0 .094-.578c-.257-.513-.217-.784.24-1.252\"\n fill=\"currentcolor\"\n />\n </svg>\n )}\n </button>\n );\n};\n","import {\n useLeverage,\n useLocalStorage,\n useMarginRatio,\n usePositionStream,\n} from \"@orderly.network/hooks\";\nimport { useCollateral, useAccount } from \"@orderly.network/hooks\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport { AccountStatusEnum } from \"@orderly.network/types\";\n\nexport type AccountSummaryType =\n | \"totalValue\"\n | \"freeCollateral\"\n | \"unrealPnL\"\n | \"currentLeverage\"\n | \"maxLeverage\";\n\nexport const useTotalValueBuilderScript = () => {\n const [type, setType] = useLocalStorage<AccountSummaryType>(\n \"accountSummaryType\",\n \"totalValue\"\n );\n const { freeCollateral, totalValue } = useCollateral({\n dp: 2,\n });\n\n const { state } = useAccount();\n\n const [visible, setVisible] = useLocalStorage(\"orderly_assets_visible\", true);\n\n const [{ aggregated, totalUnrealizedROI }] = usePositionStream();\n const { wrongNetwork } = useAppContext();\n\n const { currentLeverage } = useMarginRatio();\n\n const [maxLeverage] = useLeverage();\n\n const onTypeChange = (type: AccountSummaryType) => {\n setType(type);\n };\n\n const unavailable =\n wrongNetwork || state.status < AccountStatusEnum.EnableTrading;\n\n return {\n totalValue: unavailable ? null : totalValue,\n freeCollateral: unavailable ? null : freeCollateral,\n maxLeverage: unavailable ? null : maxLeverage,\n currentLeverage: unavailable ? null : currentLeverage,\n unrealPnL: unavailable ? null : aggregated?.unrealPnL,\n unrealized_pnl_ROI: unavailable ? null : totalUnrealizedROI,\n type,\n onTypeChange,\n visible,\n wrongNetwork,\n onToggleVisibility: () => setVisible(!visible),\n };\n};\n\nexport type UseTotalValueBuilderScript = ReturnType<\n typeof useTotalValueBuilderScript\n>;\n","import { AccountSummary } from \"./accountSummary.ui\";\nimport { useTotalValueBuilderScript } from \"./useWidgetBuilder.script\";\n\nexport const AccountSummaryWidget = () => {\n const state = useTotalValueBuilderScript();\n return <AccountSummary {...state} />;\n};\n","import { AccountStatusEnum, NetworkId } from \"@orderly.network/types\";\nimport { Button, Flex, modal, Select, Tooltip } from \"@orderly.network/ui\";\nimport { ChainSelectorId } from \"@orderly.network/ui-chain-selector\";\nimport { WalletConnectorModalId } from \"@orderly.network/ui-connector\";\n\ntype ChainItem = {\n name: string;\n id: number;\n lowestFee?: boolean;\n isTestnet?: boolean;\n};\n\nexport const ChainMenu = (props: {\n chains: {\n mainnet: ChainItem[];\n testnet: ChainItem[];\n };\n onChange?: (chain: ChainItem) => Promise<any>;\n // currentChain?: ChainItem;\n currentChainId?: number;\n wrongNetwork: boolean;\n isConnected: boolean;\n accountStatus: AccountStatusEnum;\n networkId: NetworkId\n}) => {\n if (props.wrongNetwork && props.isConnected) {\n return (\n <Tooltip\n open\n content={\"Please switch to a supported network to continue.\"}\n className=\"oui-bg-base-5\"\n arrow={{ className: \"oui-fill-base-5\" }}\n >\n <Button\n color=\"warning\"\n size=\"md\"\n onClick={() => {\n modal\n .show<{\n wrongNetwork: boolean;\n }>(ChainSelectorId,{\n networkId:props.networkId\n })\n .then(\n (r) => {\n if (\n !r.wrongNetwork &&\n props.accountStatus < AccountStatusEnum.EnableTrading\n ) {\n modal.show(WalletConnectorModalId).then(\n (r) => console.log(r),\n (error) => console.log(error)\n );\n }\n },\n (error) => console.log(error)\n );\n }}\n >\n Wrong network\n </Button>\n </Tooltip>\n );\n }\n\n return (\n <Flex justify={\"center\"}>\n {/* @ts-ignore */}\n <Select.chains\n chains={props.chains}\n size=\"md\"\n value={props.currentChainId}\n variant=\"contained\"\n onChange={props.onChange}\n />\n </Flex>\n );\n};\n","import {\n useConfig,\n useAccount,\n useChains,\n useWalletConnector,\n} from \"@orderly.network/hooks\";\nimport { NetworkId } from \"@orderly.network/types\";\n\nimport { useEffect, useMemo, useState } from \"react\";\nimport { useAppContext } from \"@orderly.network/react-app\";\n\nexport const useChainMenuBuilderScript = () => {\n const [chains] = useChains();\n const { state } = useAccount();\n const { setChain, connectedChain } = useWalletConnector();\n\n const [currentChainId, setCurrentChainId] = useState<number | undefined>();\n\n const { wrongNetwork, onChainChanged } = useAppContext();\n\n const networkId = useConfig(\"networkId\") as NetworkId;\n\n useEffect(() => {\n if (connectedChain) {\n setCurrentChainId(\n typeof connectedChain.id === \"number\"\n ? connectedChain.id\n : parseInt(connectedChain.id)\n );\n } else {\n if (!!currentChainId) return;\n const firstChain =\n networkId === \"mainnet\"\n ? chains.mainnet?.[0]?.network_infos\n : chains.testnet?.[0]?.network_infos;\n if (!firstChain) return;\n setCurrentChainId(firstChain.chain_id);\n }\n }, [connectedChain, chains, currentChainId, networkId]);\n\n const onChainChange = async (chain: { id: number; isTestnet: boolean }) => {\n // if (!connectedChain) return;\n\n if (connectedChain) {\n const result = await setChain({\n chainId: chain.id,\n });\n if (!result) return;\n onChainChanged?.(chain.id, {\n isTestnet: chain.isTestnet,\n isWalletConnected: true,\n });\n } else {\n onChainChanged?.(chain.id, {\n isTestnet: chain.isTestnet,\n isWalletConnected: false,\n });\n }\n };\n\n return {\n chains: {\n mainnet: chains.mainnet.map((chain) => ({\n name: chain.network_infos.name,\n id: chain.network_infos.chain_id,\n lowestFee: chain.network_infos.bridgeless,\n isTestnet: false,\n })),\n testnet: chains.testnet.map((chain) => ({\n name: chain.network_infos.name,\n id: chain.network_infos.chain_id,\n lowestFee: chain.network_infos.bridgeless,\n isTestnet: true,\n })),\n },\n // currentChain,\n currentChainId,\n onChange: onChainChange,\n isConnected: !!connectedChain,\n wrongNetwork,\n accountStatus: state.status,\n networkId,\n };\n};\n\nexport type UseChainMenuBuilderScript = ReturnType<\n typeof useChainMenuBuilderScript\n>;\n","import { ChainMenu } from \"./chainMenu.ui\";\nimport { useChainMenuBuilderScript } from \"./useWidgetBuilder.script\";\n\nexport const ChainMenuWidget = () => {\n const state = useChainMenuBuilderScript();\n // @ts-ignore\n return <ChainMenu {...state} />;\n};\n","import { useMemo, useState } from \"react\";\nimport { useScaffoldContext } from \"../scaffoldContext\";\nimport { useWalletConnector } from \"@orderly.network/hooks\";\nimport { ProductItem } from \"./productItem\";\nimport { useAppContext } from \"@orderly.network/react-app\";\nimport type { MainNavItem } from \"./navItem\";\n\n// export type CampaignPosition = \"menuLeading\" | \"menuTailing\" | \"navTailing\";\nexport enum CampaignPositionEnum {\n menuLeading = \"menuLeading\",\n menuTailing = \"menuTailing\",\n navTailing = \"navTailing\",\n}\n\nexport type MainNavWidgetProps = {\n logo: {\n src: string;\n alt: string;\n };\n mainMenus: MainNavItem[];\n\n products: MainNavItem[];\n\n campaigns?: MainNavItem;\n campaignPosition?: CampaignPositionEnum;\n\n initialProduct: string;\n /**\n * initial menu path, if it has submenus, use array\n * @type string | string[]\n */\n initialMenu: string | string[];\n\n onItemClick?: (options: {\n href: string;\n name: string;\n scope?: string;\n }) => void;\n};\n\nexport const useMainNavBuilder = (props: Partial<MainNavWidgetProps>) => {\n const { onItemClick, campaignPosition = CampaignPositionEnum.navTailing } =\n props;\n\n const { routerAdapter } = useScaffoldContext();\n const { connectedChain } = useWalletConnector();\n const { wrongNetwork } = useAppContext();\n const [current, setCurrent] = useState(() => {\n if (typeof props.initialMenu === \"undefined\") return [];\n\n return !Array.isArray(props.initialMenu)\n ? [props.initialMenu]\n : props.initialMenu;\n });\n const [currentProduct, setCurrentProduct] = useState(\n () => props?.initialProduct ?? props?.products?.[0].href ?? \"\"\n );\n\n const onItemClickHandler = (scope: string) => (item: MainNavItem[]) => {\n const lastItem = item[item.length - 1];\n\n if (!lastItem) return;\n\n /**\n * If the target is not _blank, we should update the current state\n */\n if (lastItem.target !== \"_blank\") {\n setCurrent(item.map((item) => item.href));\n }\n\n const current = item[item.length - 1];\n const args = {\n href: current.href,\n name: current.name,\n scope,\n target: current.target,\n };\n\n if (typeof onItemClick === \"function\") {\n onItemClick(args);\n return;\n }\n\n routerAdapter?.onRouteChange(args);\n };\n\n const mainNavConfig = useMemo(() => {\n const config = {\n logo: {\n //https://mintlify.s3-us-west-1.amazonaws.com/orderly/logo/dark.png\n src: \"https://testnet-dex-evm.woo.org/images/woofipro.svg\",\n alt: \"woofipro\",\n },\n mainMenus: [\n // { name: \"Trading\", href: \"/trading\" },\n // { name: \"Portfolio\", href: \"/portfolio\" },\n // { name: \"Markets\", href: \"/markets\" },\n // { name: \"Rewards\", href: \"/rewards\" },\n ],\n products: [\n // { name: \"Swap\", href: \"/swap\" },\n // { name: \"Perps\", href: \"/perps\" },\n ],\n ...props,\n campaignPosition,\n };\n\n if (props.campaigns) {\n if (campaignPosition === CampaignPositionEnum.menuTailing) {\n config.mainMenus = [...config.mainMenus, props.campaigns];\n } else if (campaignPosition === CampaignPositionEnum.menuLeading) {\n config.mainMenus = [props.campaigns, ...config.mainMenus];\n } else {\n config.campaigns = props.campaigns;\n }\n }\n\n return config;\n }, [props]);\n\n const converted: any = {};\n\n if (mainNavConfig.products && mainNavConfig.products.length) {\n converted.products = {\n items: mainNavConfig.products,\n current: currentProduct,\n onItemClick: (product: ProductItem) => {\n // No need to modify the intenal state\n const args = {\n href: product.href,\n name: product.name,\n scope: \"product\",\n };\n\n if (typeof onItemClick === \"function\") {\n onItemClick(args);\n return;\n }\n\n routerAdapter?.onRouteChange(args);\n\n // routerAdapter?.onRouteChange(args);\n },\n };\n }\n\n if (mainNavConfig.mainMenus && mainNavConfig.mainMenus.length) {\n converted.mainMenus = {\n items: mainNavConfig.mainMenus,\n /**\n * @type string\n * The current item of the router\n */\n current,\n onItemClick: onItemClickHandler(\"mainMenu\"),\n // onItemClick: (item: MainNavItem[]) => {\n // const lastItem = item[item.length - 1];\n\n // if (!lastItem) return;\n\n // /**\n // * If the target is not _blank, we should update the current state\n // */\n // if (lastItem.target !== \"_blank\") {\n // setCurrent(item.map((item) => item.href));\n // }\n\n // const current = item[item.length - 1];\n // const args = {\n // href: current.href,\n // name: current.name,\n // scope: \"mainMenu\",\n // target: current.target,\n // };\n\n // if (typeof onItemClick === \"function\") {\n // onItemClick(args);\n // return;\n // }\n\n // routerAdapter?.onRouteChange(args);\n // },\n };\n }\n\n if (mainNavConfig.campaigns && mainNavConfig.campaigns.children?.length) {\n converted.campaigns = {\n item: mainNavConfig.campaigns,\n current,\n onItemClick: onItemClickHandler(\"campaign\"),\n // onItemClick: (item: MainNavItem[]) => {\n // const lastItem = item[item.length - 1];\n\n // if (!lastItem) return;\n\n // /**\n // * If the target is not _blank, we should update the current state\n // */\n // if (lastItem.target !== \"_blank\") {\n // setCurrent(item.map((item) => item.href));\n // }\n\n // const current = item[item.length - 1];\n // const args = {\n // href: current.href,\n // name: current.name,\n // scope: \"campaign\",\n // target: current.target,\n // };\n\n // if (typeof onItemClick === \"function\") {\n // onItemClick(args);\n // return;\n // }\n\n // routerAdapter?.onRouteChange(args);\n // },\n };\n }\n\n // return converted;\n\n return {\n // currentProduct,\n // logo: mainNavConfig.logo,\n ...mainNavConfig,\n\n isConnected: !!connectedChain,\n wrongNetwork,\n ...converted,\n };\n};\n\nexport type MainNavBuilder = ReturnType<typeof useMainNavBuilder>;\n","import { Divider } from \"@orderly.network/ui\";\nimport { MainNavItem, NavItem } from \"./navItem\";\nimport { cn } from \"@orderly.network/ui\";\n\nexport type CampaignProps = {\n item: MainNavItem;\n className?: string;\n onItemClick?: (item: MainNavItem[]) => void;\n current?: string[];\n // classNames?: MainNavClassNames;\n};\n\nexport const CampaignButton = (props: CampaignProps) => {\n return (\n <>\n <NavItem\n item={props.item}\n style={{\n // @ts-ignore\n \"--oui-gradient-angle\": \"188deg\",\n \"--oui-gradient-primary-stop-start\": \"26%\",\n \"--oui-gradient-primary-stop-end\": \"80%\",\n // \"--oui-gradient-primary-start\": \"var(--oui-gradient-primary-end)\",\n // \"--oui-gradient-primary-end\": \"var(--oui-gradient-primary-start)\",\n }}\n onClick={props.onItemClick}\n classNames={{\n navItem: cn(\"oui-gradient-primary oui-text-white\", props.className),\n }}\n />\n <Divider direction=\"vertical\" className=\"oui-h-8\" intensity={8} />\n </>\n );\n};\n","import { MainNav, MainNavProps } from \"./mainNav.ui\";\nimport {\n MainNavWidgetProps,\n useMainNavBuilder,\n} from \"./useWidgetBuilder.script\";\n\nimport { PropsWithChildren } from \"react\";\n\nexport const MainNavWidget = (\n props: PropsWithChildren<\n Partial<MainNavWidgetProps & Pick<MainNavProps, \"classNames\">>\n >\n) => {\n const { children, ...rest } = props;\n const state = useMainNavBuilder(rest);\n return <MainNav {...state} children={children} />;\n};\n","import React, { FC, memo } from \"react\";\nimport {\n Box,\n Flex,\n tv,\n VariantProps,\n Text,\n cn,\n Tooltip,\n} from \"@orderly.network/ui\";\n\ntype SideMenuItem = {\n name: string;\n icon?: React.ReactNode;\n href?: string;\n disabled?: boolean;\n onClick?: () => void;\n};\n\nconst menuItemVariants = tv({\n slots: {\n button: [\n \"oui-h-10\",\n \"oui-px-3\",\n \"oui-rounded-md\",\n \"oui-w-full\",\n \"oui-text-left\",\n \"oui-text-base\",\n \"oui-text-base-contrast-36\",\n // \"oui-flex\",\n \"oui-group\",\n // \"oui-space-x-2\",\n // \"oui-items-center\",\n \"hover:oui-bg-base-8\",\n \"oui-transition-colors\",\n \"group-data-[state=closed]/bar:oui-w-[42px]\",\n \"oui-overflow-hidden\",\n ],\n icon: [],\n },\n variants: {\n mode: {\n \"icon-only\": {\n button: \"oui-w-10\",\n icon: \"w-6 h-6\",\n },\n full: {\n button: \"oui-full\",\n icon: \"w-6 h-6\",\n },\n },\n active: {\n true: {\n button: \"oui-bg-base-5 hover:oui-bg-base-5\",\n },\n },\n open: {\n true: {\n button: \"\",\n },\n },\n },\n});\n\nconst MenuItem: FC<\n {\n item: SideMenuItem;\n active?: boolean;\n open?: boolean;\n onClick?: (item: SideMenuItem) => void;\n } & VariantProps<typeof menuItemVariants>\n> = memo((props) => {\n const { item, mode, open, onClick, active, ...rest } = props;\n const { button } = menuItemVariants({\n mode,\n active: props.active,\n open: props.open,\n });\n const children = (\n <button\n data-actived={props.active}\n disabled={item.disabled}\n className={button()}\n onClick={() => {\n props.onClick?.(item);\n }}\n >\n <Flex itemAlign={\"center\"} gap={2} as=\"span\">\n {item.icon}\n {props.open && (\n <Text.gradient\n color={props.active ? \"brand\" : \"inherit\"}\n angle={45}\n size=\"base\"\n className=\"oui-animate-in oui-fade-in\"\n >\n {item.name}\n </Text.gradient>\n )}\n </Flex>\n </button>\n );\n\n if (props.open) {\n return <li className=\"oui-min-w-[120px]\">{children}</li>;\n }\n\n return (\n <li>\n <Tooltip content={item.name} side=\"right\" align=\"center\" sideOffset={20}>\n {children}\n </Tooltip>\n </li>\n );\n});\n\nconst SideMenus: FC<{\n menus: SideMenuItem[];\n current?: string;\n open?: boolean;\n onItemSelect?: (item: SideMenuItem) => void;\n}> = (props) => {\n return (\n <Box py={6}>\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"oui-absolute oui-invisible oui-pointer-events-none\"\n >\n <defs>\n <linearGradient\n id=\"side-menu-gradient\"\n x1=\"15.7432\"\n y1=\"8.94726\"\n x2=\"2.24316\"\n y2=\"8.94726\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#59B0FE\" />\n <stop offset=\"1\" stopColor=\"#26FEFE\" />\n </linearGradient>\n </defs>\n </svg>\n <ul className=\"oui-space-y-4\">\n {props.menus.map((item, index) => {\n return (\n <MenuItem\n key={index}\n item={item}\n open={props.open}\n active={item.href === props.current}\n onClick={props.onItemSelect}\n />\n );\n })}\n </ul>\n </Box>\n );\n};\n\ntype SideBarHeaderProps = {\n onToggle?: () => void;\n open?: boolean;\n title?: React.ReactNode;\n};\n\nconst SideBarHeader: FC<SideBarHeaderProps> = (props) => {\n const { title } = props;\n\n const titleElemet =\n typeof title === \"string\" ? (\n <Text intensity={54} size=\"xs\">\n {title}\n </Text>\n ) : (\n title\n );\n\n return (\n <Flex\n justify={props.open ? \"between\" : \"center\"}\n itemAlign={\"center\"}\n className=\"oui-h-6\"\n >\n {props.open ? titleElemet : null}\n\n <button\n onClick={() => {\n props.onToggle?.();\n }}\n >\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"group-data-[state=closed]/bar:oui-rotate-90\"\n >\n <path\n d=\"M5.82552 17.4922C3.98469 17.4922 2.49219 15.9997 2.49219 14.1589V5.82552C2.49219 3.98469 3.98469 2.49219 5.82552 2.49219H14.1589C15.9997 2.49219 17.4922 3.98469 17.4922 5.82552V14.1589C17.4922 15.9997 15.9997 17.4922 14.1589 17.4922H5.82552ZM12.4922 13.3255C12.7055 13.3255 12.928 13.2538 13.0913 13.0913C13.4163 12.7655 13.4163 12.2189 13.0913 11.893L9.75802 8.55969L11.6589 6.65885H6.65885V11.6589L8.55969 9.75802L11.893 13.0913C12.0555 13.2538 12.2789 13.3255 12.4922 13.3255Z\"\n fill=\"white\"\n fillOpacity=\"0.2\"\n />\n </svg>\n </button>\n </Flex>\n );\n};\n\ntype SideBarProps = {\n title?: React.ReactNode;\n items: SideMenuItem[];\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n onItemSelect?: (item: SideMenuItem) => void;\n current?: string;\n className?: string;\n maxWidth?: number;\n minWidth?: number;\n style?: React.CSSProperties;\n};\n\nconst SideBar = (props: SideBarProps) => {\n const { open = true, items, current, onItemSelect } = props;\n\n return (\n <Box\n data-state={open ? \"opened\" : \"closed\"}\n className={cn(\"oui-group/bar\", props.className)}\n style={props.style}\n >\n <SideBarHeader\n open={open}\n title={props.title}\n onToggle={() => {\n props.onOpenChange?.(!open);\n }}\n />\n <SideMenus\n menus={items}\n current={current}\n onItemSelect={onItemSelect}\n open={open}\n />\n </Box>\n );\n};\n\nSideBar.displayName = \"SideBar\";\n\nexport { SideBar };\n\nexport type { SideBarProps, SideMenuItem };\n","import React, { useEffect } from \"react\";\nimport { useMemo, useState } from \"react\";\nimport { SideBarProps } from \"./sidebar.ui\";\nimport { useScaffoldContext } from \"../scaffoldContext\";\n\nexport const useSideNavBuilder = (\n props?: Partial<SideBarProps>\n): SideBarProps => {\n const [current, setCurrent] = useState(props?.items?.[0].href || \"/\");\n const { expanded, setExpand } = useScaffoldContext();\n\n if (typeof setExpand === \"undefined\") {\n console.warn(\"SideBar component must be used within a Scaffold component\");\n }\n\n return {\n items: [],\n current,\n open: expanded,\n onOpenChange: (open) => {\n setExpand?.(open);\n },\n onItemSelect: (item) => {\n if (item.href) {\n setCurrent(item.href);\n }\n },\n ...props,\n };\n};\n","import { SideBar, SideBarProps } from \"./sidebar.ui\";\nimport { useSideNavBuilder } from \"./useSideNavBuilder.script\";\n\nexport const SideNavbarWidget = (props?: Partial<SideBarProps>) => {\n const state = useSideNavBuilder(props);\n\n return <SideBar {...state} />;\n};\n","import { FC, useMemo } from \"react\";\nimport { cn, Divider, Flex, Text } from \"@orderly.network/ui\";\n\nimport {\n CommuntiyDiscordIcon,\n CommuntiyTelegramIcon,\n CommuntiyXIcon,\n OrderlyNetworkTextIcon,\n SignalIcon,\n} from \"../icons/index\";\n\nimport { FooterReturns } from \"./footer.script\";\nimport { BaseIcon, BaseIconProps } from \"@orderly.network/ui/src/icon/baseIcon\";\nimport { WsNetworkStatus } from \"@orderly.network/hooks\";\n\nexport const FooterUI: FC<FooterReturns> = (props) => {\n const signalClsName = useMemo(() => {\n switch (props.wsStatus) {\n case WsNetworkStatus.Connected:\n return \"oui-fill-success-light oui-text-success-light\";\n case WsNetworkStatus.Disconnected:\n return \"oui-fill-danger-light oui-text-danger-light\";\n case WsNetworkStatus.Unstable:\n return \"oui-fill-warning-light oui-text-warning-light\";\n }\n }, [props.wsStatus]);\n\n const openUrl = (url?: string) => {\n window.open(url, \"_blank\");\n };\n\n return (\n <Flex\n direction={\"row\"}\n justify={\"between\"}\n height={29}\n px={3}\n className=\"oui-hidden lg:oui-flex oui-bg-base-9 oui-border-t-2 oui-border-line-6\"\n >\n <Flex>\n <Flex\n direction={\"row\"}\n itemAlign={\"center\"}\n gap={1}\n className={signalClsName}\n >\n <SignalIcon\n // className={cn(signalClsName, \"oui-fill-success-light\")}\n fillOpacity={1}\n fill=\"currentColor\"\n />\n <Text size=\"2xs\">Operational</Text>\n </Flex>\n <Divider\n direction=\"vertical\"\n className=\"oui-h-[18px] oui-px-1 oui-ml-2 oui-border-line-12\"\n />\n <Flex gap={2}>\n <Text intensity={54} size=\"2xs\">\n Join our community\n </Text>\n <Flex direction={\"row\"} gap={1}>\n {typeof props.config?.telegramUrl !== \"undefined\" && (\n <CommuntiyTelegramIcon\n className=\"oui-fill-white/[.54] hover:oui-fill-white/[.98] oui-cursor-pointer\"\n fill=\"currentColor\"\n fillOpacity={1}\n onClick={(e) => openUrl(props.config?.telegramUrl)}\n />\n )}\n {typeof props.config?.discordmUrl !== \"undefined\" && (\n <CommuntiyDiscordIcon\n className=\"oui-fill-white/[.54] hover:oui-fill-white/[.98] oui-cursor-pointer\"\n fill=\"currentColor\"\n fillOpacity={1}\n onClick={(e) => openUrl(props.config?.discordmUrl)}\n />\n )}\n {typeof props.config?.twitterUrl !== \"undefined\" && (\n <CommuntiyXIcon\n className=\"oui-fill-white/[.54] hover:oui-fill-white/[.98] oui-cursor-pointer\"\n fill=\"currentColor\"\n fillOpacity={1}\n onClick={(e) => openUrl(props.config?.twitterUrl)}\n />\n )}\n </Flex>\n </Flex>\n </Flex>\n <Flex direction={\"row\"} gap={1}>\n <Text intensity={54} size=\"2xs\">\n Powered by\n </Text>\n <OrderlyNetworkTextIcon />\n </Flex>\n </Flex>\n );\n};\n","import { BaseIconProps } from \"@orderly.network/ui\";\nimport React from \"react\";\n\nexport const CommuntiyTelegramIcon = React.forwardRef<\n SVGSVGElement,\n BaseIconProps\n>((props, ref) => {\n const { size = 20, ...rest } = props;\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n ref={ref}\n fill=\"#fff\"\n fillOpacity=\".54\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...rest}\n >\n <path d=\"M4.108 9.464S9.645 7.13 11.565 6.31c.736-.328 3.233-1.38 3.233-1.38s1.152-.46 1.056.658c-.032.46-.288 2.069-.544 3.81-.384 2.463-.8 5.157-.8 5.157s-.064.755-.608.887c-.544.13-1.44-.46-1.6-.592-.129-.098-2.401-1.576-3.233-2.299-.224-.197-.48-.591.032-1.051a124 124 0 0 0 3.36-3.285c.384-.394.768-1.313-.832-.197-2.272 1.61-4.513 3.12-4.513 3.12s-.512.33-1.472.034-2.08-.69-2.08-.69-.768-.493.544-1.018\" />\n </svg>\n );\n});\nexport const CommuntiyDiscordIcon = React.forwardRef<\n SVGSVGElement,\n BaseIconProps\n>((props, ref) => {\n const { size = 20, ...rest } = props;\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n ref={ref}\n fill=\"#fff\"\n fillOpacity=\".54\"\n {...rest}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M14.956 5.522c1.604 2.374 2.396 5.053 2.1 8.136a.05.05 0 0 1-.02.033 11.7 11.7 0 0 1-3.55 1.805.045.045 0 0 1-.05-.017 9.6 9.6 0 0 1-.725-1.188.046.046 0 0 1 .024-.063 7 7 0 0 0 1.108-.531.046.046 0 0 0 .004-.076 6 6 0 0 1-.22-.174.04.04 0 0 0-.047-.006c-2.296 1.068-4.812 1.068-7.136 0a.04.04 0 0 0-.046.006 6 6 0 0 1-.22.174.046.046 0 0 0 .005.076c.353.204.721.384 1.107.531.025.01.037.039.025.063a8.5 8.5 0 0 1-.725 1.188.05.05 0 0 1-.05.017 11.7 11.7 0 0 1-3.546-1.805.05.05 0 0 1-.018-.033c-.248-2.667.257-5.368 2.097-8.137a.04.04 0 0 1 .02-.016 11.6 11.6 0 0 1 2.89-.903.05.05 0 0 1 .046.022c.125.224.269.51.366.744a10.7 10.7 0 0 1 3.246 0 8 8 0 0 1 .36-.744.044.044 0 0 1 .046-.022 11.7 11.7 0 0 1 2.89.903q.012.005.019.017m-6.018 5.07c.011-.788-.56-1.44-1.276-1.44-.71 0-1.276.647-1.276 1.44 0 .795.576 1.442 1.276 1.442.71 0 1.276-.647 1.276-1.441m4.718 0c.011-.788-.56-1.44-1.276-1.44-.71 0-1.276.647-1.276 1.44 0 .795.577 1.442 1.276 1.442.717 0 1.276-.647 1.276-1.441\" />\n </svg>\n );\n});\nexport const CommuntiyXIcon = React.forwardRef<\n SVGSVGElement,\n BaseIconProps\n>((props, ref) => {\n const { size = 20, ...rest } = props;\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 20 20\"\n ref={ref}\n fill=\"#fff\"\n fillOpacity=\".54\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...rest}\n >\n <path d=\"m4.42 4.73 4.633 6.194-4.662 5.037H5.44l4.082-4.41 3.298 4.41h3.57l-4.893-6.543 4.34-4.689h-1.05l-3.759 4.062-3.037-4.062zm1.543.772h1.64l7.244 9.686h-1.64z\" />\n </svg>\n );\n});\n\nCommuntiyXIcon.displayName = \"CommuntiyXIcon\";\nCommuntiyTelegramIcon.displayName = \"CommuntiyTelegramIcon\";\nCommuntiyDiscordIcon.displayName = \"CommuntiyDiscordIcon\";\n","import { BaseIconProps } from \"@orderly.network/ui\";\nimport React from \"react\";\n\nexport const OrderlyNetworkTextIcon = React.forwardRef<\n SVGSVGElement,\n BaseIconProps\n>((props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <svg\n width={96}\n hanging={11}\n ref={ref}\n viewBox=\"0 0 96 11\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...rest}\n >\n <path\n d=\"M10.757 8.635h1.862V6.164c0-1.485.874-1.904 1.69-1.904.148 0 .284.011.477.034V2.729a1.8 1.8 0 0 0-.454-.056c-.896 0-1.452.6-1.68 1.53h-.033V2.74h-1.862zm7.221.113c.874 0 1.475-.464 1.634-.907v.794h1.861V.7h-1.86v2.834c-.16-.442-.761-.907-1.635-.907-1.203 0-2.565.885-2.565 3.06 0 2.188 1.362 3.061 2.565 3.061m-.817-3.06c0-1.043.624-1.52 1.282-1.52.647 0 1.249.477 1.249 1.52s-.602 1.519-1.249 1.519c-.658 0-1.282-.476-1.282-1.52m8.538 3.061c1.453 0 2.508-.748 2.78-2.108h-1.634c-.102.385-.352.703-1.112.703-.726 0-1.18-.329-1.282-1.19h4.074c.023-.136.034-.25.034-.465 0-2.301-1.34-3.06-2.86-3.06-1.578 0-3.007.838-3.007 3.037 0 2.29 1.543 3.083 3.007 3.083m-1.237-3.672c.114-.68.5-1.043 1.192-1.043.85 0 1.112.533 1.146 1.043zm5.304 3.559h1.861V6.164c0-1.485.874-1.904 1.691-1.904.148 0 .284.011.477.034V2.729a1.8 1.8 0 0 0-.454-.056c-.897 0-1.453.6-1.68 1.53h-.034V2.74h-1.861zm5.117 0h1.861V.7h-1.861zm3.481.725v1.565c1.827.192 2.588-.42 3.382-2.358L44.13 2.74h-1.906L40.93 6.265 39.67 2.74h-1.895l2.145 5.293c.148.352.159.533.034.816-.102.227-.363.669-1.589.51m9.808-.724h1.895V3.897h.045l2.86 4.738h2.043V.7h-1.907v4.863h-.045L50.136.7h-1.963zm11.054.113c1.453 0 2.508-.748 2.78-2.108h-1.633c-.102.385-.352.703-1.113.703-.726 0-1.18-.329-1.282-1.19h4.074c.023-.136.034-.25.034-.465 0-2.301-1.339-3.06-2.86-3.06-1.577 0-3.007.838-3.007 3.037 0 2.29 1.543 3.083 3.007 3.083M57.99 5.076c.114-.68.5-1.043 1.192-1.043.851 0 1.112.533 1.146 1.043zm8.005 3.638c.352 0 .692-.045.976-.124V7.218c-.26.023-.363.023-.488.023-.601 0-.715-.329-.715-.737V4.18h1.158V2.74h-1.158V1.2h-1.86v1.54h-1.01v1.44h1.01v2.585c0 1.371.816 1.95 2.087 1.95m3.365-.08h2.1l.942-3.423.942 3.423h2.088l1.543-5.894h-1.759l-.919 4.103h-.045l-1.056-4.103h-1.6l-1.055 4.103h-.046l-.919-4.103h-1.748zm11.195.113c1.486 0 2.995-.895 2.995-3.06s-1.509-3.06-2.995-3.06c-1.499 0-2.997.895-2.997 3.06s1.498 3.06 2.996 3.06m-1.26-3.06c0-1.043.533-1.52 1.26-1.52.714 0 1.248.477 1.248 1.52s-.534 1.519-1.248 1.519c-.727 0-1.26-.476-1.26-1.52m5.461 2.948h1.86V6.164c0-1.485.875-1.904 1.692-1.904.147 0 .283.011.476.034V2.729a1.8 1.8 0 0 0-.454-.056c-.896 0-1.452.6-1.68 1.53h-.033V2.74h-1.861zm5.117 0h1.86v-1.7l.466-.5 1.76 2.2H96l-2.667-3.4 2.36-2.494h-2.03l-1.93 2.199V.7h-1.861z\"\n fill=\"#fff\"\n fillOpacity={opacity}\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.632 1.043c.046.037.02.11-.04.11H1.779c-.06 0-.087-.073-.04-.11A4.67 4.67 0 0 1 4.685 0a4.66 4.66 0 0 1 2.947 1.043M2.862 5.96a.18.18 0 0 0-.146-.078H.265a.084.084 0 0 0-.081.107 4.687 4.687 0 0 0 9.001 0 .084.084 0 0 0-.081-.107H6.653a.18.18 0 0 0-.146.078 2.22 2.22 0 0 1-1.823.948c-.753 0-1.42-.375-1.822-.948m3.471-2.77c.034.037.082.06.132.06H9.03c.058 0 .1-.057.08-.112a4.7 4.7 0 0 0-.79-1.412.17.17 0 0 0-.13-.061H1.18a.17.17 0 0 0-.13.061c-.34.417-.609.894-.79 1.412a.084.084 0 0 0 .08.111h2.564c.05 0 .098-.022.132-.06.407-.448.995-.73 1.648-.73a2.22 2.22 0 0 1 1.648.73M6.89 5.37a.066.066 0 0 1-.063-.084 2.23 2.23 0 0 0-.077-1.43.067.067 0 0 1 .06-.091h2.417c.03 0 .057.021.063.051a4.7 4.7 0 0 1 .038 1.5.064.064 0 0 1-.063.054zm-4.347-.084a.066.066 0 0 1-.063.084H.105a.064.064 0 0 1-.063-.055A4.7 4.7 0 0 1 .08 3.816a.064.064 0 0 1 .063-.051H2.56c.046 0 .078.048.06.091a2.22 2.22 0 0 0-.077 1.43\"\n fill=\"#fff\"\n fillOpacity={opacity}\n />\n </svg>\n );\n});\n","import { BaseIconProps } from \"@orderly.network/ui\";\nimport React from \"react\";\n// import { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const SignalIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { size = 18, ...rest } = props;\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 18 18\"\n ref={ref}\n className=\"oui-fill-success-light\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...rest}\n >\n <path d=\"M9.02092 2.92969C6.18562 2.92969 3.51037 4.13854 1.68502 6.18754C1.40947 6.49676 1.446 6.96671 1.75537 7.24218C2.0646 7.51743 2.53447 7.48143 2.81002 7.17183C4.35112 5.44196 6.6141 4.42969 9.02092 4.42969C11.4205 4.42969 13.6369 5.43123 15.185 7.17183C15.4603 7.48143 15.9301 7.51743 16.2397 7.24218C16.5492 6.96694 16.5853 6.49699 16.31 6.18754C14.4787 4.12856 11.8512 2.92969 9.02092 2.92969ZM9.02092 5.92969C7.04092 5.92969 5.20867 6.78461 3.93502 8.25019C3.6633 8.56294 3.6927 9.03318 4.00537 9.30468C4.31797 9.57618 4.7883 9.54693 5.06002 9.23418C6.05175 8.09343 7.47982 7.42968 9.02092 7.42968C10.5348 7.42968 11.9446 8.08144 12.935 9.18769C13.2113 9.49593 13.681 9.51093 13.9897 9.23418C14.2983 8.95818 14.3364 8.48793 14.06 8.17968C12.7879 6.75896 10.9659 5.92969 9.02092 5.92969ZM9.02092 8.92968C7.91917 8.92968 6.89242 9.40218 6.18502 10.2189C5.91375 10.5317 5.94225 11.0019 6.25537 11.2734C6.56835 11.5449 7.03875 11.5164 7.31002 11.2029C7.73542 10.7124 8.3589 10.4297 9.02092 10.4297C9.6684 10.4297 10.2604 10.7072 10.685 11.1797C10.962 11.4879 11.4552 11.5037 11.7631 11.2262C12.0712 10.9494 12.087 10.4799 11.81 10.1717C11.1037 9.38643 10.0983 8.92968 9.02092 8.92968ZM8.99752 11.9297C8.81609 11.9297 8.64374 12.0047 8.50537 12.1404C8.50537 12.1404 7.3935 13.2362 6.95842 13.6637C6.52342 14.0919 6.7968 14.9319 7.49752 14.9297H9.63037H10.4975C11.1864 14.9319 11.477 14.0739 11.0366 13.6404C10.5961 13.2069 9.51322 12.1404 9.51314 12.1404C9.37469 12.0047 9.17894 11.9297 8.99752 11.9297Z\" />\n </svg>\n );\n }\n);\n\nSignalIcon.displayName = \"SignalIcon\";\n","import React, { FC } from \"react\";\nimport { SVGProps } from \"react\";\n\nexport interface IconProps extends SVGProps<SVGSVGElement> {\n size: number;\n}\n\nexport const InfoIcon: FC<IconProps> = (props) => {\n const { size = 20, viewBox, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={`${size}px`}\n height={`${size}px`}\n fill=\"none\"\n viewBox={`0 0 20 20`}\n {...rest}\n >\n <path\n d=\"M10.012 1.66602C5.40954 1.66602 1.67871 5.39685 1.67871 9.99935C1.67871 14.6018 5.40954 18.3327 10.012 18.3327C14.6145 18.3327 18.3454 14.6018 18.3454 9.99935C18.3454 5.39685 14.6145 1.66602 10.012 1.66602ZM10.012 5.83268C10.472 5.83268 10.8454 6.20602 10.8454 6.66602V10.8327C10.8454 11.2927 10.472 11.666 10.012 11.666C9.55204 11.666 9.17871 11.2927 9.17871 10.8327V6.66602C9.17871 6.20602 9.55204 5.83268 10.012 5.83268ZM10.012 12.4993C10.472 12.4993 10.8454 12.8727 10.8454 13.3327C10.8454 13.7927 10.472 14.166 10.012 14.166C9.55204 14.166 9.17871 13.7927 9.17871 13.3327C9.17871 12.8727 9.55204 12.4993 10.012 12.4993Z\"\n fill=\"#FF7D00\"\n />\n </svg>\n );\n};\n","import React, { FC } from \"react\";\nimport { SVGProps } from \"react\";\n\nexport interface IconProps extends SVGProps<SVGSVGElement> {\n size: number;\n}\n\nexport const CloseIcon: FC<IconProps> = (props) => {\n const { size = 16, viewBox, ...rest } = props;\n return (\n <svg\n width={`${size}px`}\n height={`${size}px`}\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...rest}\n >\n <path\n d=\"M3.32972 2.60449C3.15912 2.60449 2.98072 2.66183 2.85052 2.79183C2.59019 3.0525 2.59019 3.48982 2.85052 3.75049L7.03806 7.93782L2.85052 12.1252C2.59019 12.3858 2.59019 12.8232 2.85052 13.0838C3.11092 13.3438 3.54852 13.3438 3.80892 13.0838L7.99639 8.89649L12.1839 13.0838C12.4443 13.3438 12.8819 13.3438 13.1423 13.0838C13.4026 12.8232 13.4026 12.3858 13.1423 12.1252L8.95472 7.93782L13.1423 3.75049C13.4026 3.48982 13.4026 3.0525 13.1423 2.79183C13.0121 2.66183 12.8336 2.60449 12.6631 2.60449C12.4925 2.60449 12.3141 2.66183 12.1839 2.79183L7.99639 6.97916L3.80892 2.79183C3.67872 2.66183 3.50032 2.60449 3.32972 2.60449Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n","import { useWsStatus, WsNetworkStatus } from \"@orderly.network/hooks\";\nimport { FooterConfig } from \".\";\nimport { useScaffoldContext } from \"../scaffoldContext\";\n\nexport type FooterReturns = {\n wsStatus: WsNetworkStatus,\n config?: FooterConfig,\n};\n\nexport const useFooterScript = (): FooterReturns => {\n\n const wsStatus = useWsStatus();\n const { footerConfig } = useScaffoldContext();\n\n return {\n wsStatus,\n config: footerConfig,\n };\n};\n","import { useFooterScript } from \"./footer.script\";\nimport { FooterUI } from \"./footer.ui\";\n\nexport const FooterWidget = () => {\n const state = useFooterScript();\n return (\n <FooterUI {...state}/>\n );\n};\n","import {\n Box,\n cn,\n Dialog,\n DialogBody,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n Divider,\n Flex,\n} from \"@orderly.network/ui\";\nimport { CloseIcon, InfoIcon } from \"../icons\";\nimport { MaintenanceTipInterface } from \"./script\";\nimport { useMediaQuery } from \"@orderly.network/hooks\";\nimport { MEDIA_TABLET } from \"@orderly.network/types\";\n\nexport const MaintenanceTipsUI = (props: MaintenanceTipInterface) => {\n const isTable = useMediaQuery(MEDIA_TABLET);\n if (isTable) {\n return <></>;\n }\n const { showTips, showDialog, tipsContent, closeTips, dialogContent } = props;\n if (showDialog) {\n return (\n <Dialog open={true}>\n <DialogContent closable={false}>\n <DialogHeader>\n <DialogTitle>System upgrade in progress</DialogTitle>\n </DialogHeader>\n <Divider />\n <DialogBody>{dialogContent}</DialogBody>\n </DialogContent>\n </Dialog>\n );\n }\n if (!showTips) {\n return <></>;\n }\n return (\n <Flex\n className={cn(\n \"oui-w-full oui-bg-warning/10 oui-text-warning oui-text-sm oui-relative oui-gap-1 oui-pl-4 oui-pr-[60px] oui-py-3\",\n \"oui-min-h-[48px]\",\n \"oui-justify-start oui-items-start\",\n \"xl:oui-justify-center xl:oui-items-center xl:oui-px-4\"\n )}\n >\n <InfoIcon size={20} className=\"oui-flex-shrink-0 oui-w-5 oui-h-5 \" />\n <Box className=\"oui-font-semibold \">{tipsContent}</Box>\n <CloseIcon\n size={16}\n className=\"oui-absolute oui-right-4 oui-text-secondary/[0.36] hover:oui-text-secondary/80 oui-cursor-pointer -oui-translate-y-2/4 oui-top-2/4\"\n onClick={closeTips}\n />\n </Flex>\n );\n};\n","import { useMaintenanceStatus } from \"@orderly.network/hooks\";\nimport { useContext, useEffect, useMemo, useState } from \"react\";\nimport { format } from \"date-fns\";\nimport { UTCDateMini } from \"@date-fns/utc\";\nimport { getTimestamp } from \"@orderly.network/utils\";\nfunction getTimeString(timestamp: number) {\n const date = format(new UTCDateMini(timestamp), \"MMM dd\");\n const time = format(new UTCDateMini(timestamp), \"h:mm aa\");\n return `${time} (UTC) on ${date}`;\n}\n\nconst oneDay = 1000 * 60 * 60 * 24;\n\nexport interface MaintenanceTipInterface {\n tipsContent: string;\n showTips: boolean;\n closeTips: () => void;\n showDialog: boolean;\n dialogContent?: string;\n}\n\nexport const useMaintenanceScript = (): MaintenanceTipInterface => {\n const [showTips, setShowTips] = useState(false);\n const [showDialog, setShowDialog] = useState(false);\n const { startTime, endTime, status, brokerName } = useMaintenanceStatus();\n\n const startDate = useMemo(() => {\n if (!startTime) {\n return \"-\";\n }\n return getTimeString(startTime);\n }, [startTime]);\n\n const endDate = useMemo(() => {\n if (!endTime) {\n return \"-\";\n }\n return getTimeString(endTime);\n }, [endTime]);\n\n const closeTips = () => {\n window.localStorage.setItem(`Maintenance_${startTime}`, \"1\");\n setShowTips(false);\n };\n\n useEffect(() => {\n if (status === 2) {\n setShowTips(false);\n setShowDialog(true);\n return;\n }\n setShowDialog(false);\n if (startTime) {\n if (startTime < getTimestamp() + oneDay) {\n // check localstorage\n if (!window.localStorage.getItem(`Maintenance_${startTime}`)) {\n setShowTips(true);\n }\n }\n }\n }, [startTime, status]);\n const tipsContent = `${brokerName} will be temporarily unavailable for a scheduled upgrade from ${startDate} to ${endDate}.`;\n const dialogContent = `Sorry, ${brokerName} is temporarily unavailable due to a scheduled upgrade. The service is expected to be back by ${endDate}.`;\n return {\n tipsContent,\n showTips,\n closeTips,\n showDialog,\n dialogContent,\n };\n};\n","import { MaintenanceTipsUI } from \"./ui\";\nimport { useMaintenanceScript } from \"./script\";\n\nexport const MaintenanceTipsWidget = () => {\n const props = useMaintenanceScript();\n return <MaintenanceTipsUI {...props} />;\n};\n","import { Box, cn, Grid, type SizeType } from \"@orderly.network/ui\";\nimport { MainNavWidget } from \"./main/mainNav.widget\";\nimport React, { PropsWithChildren, useContext } from \"react\";\nimport { SideNavbarWidget } from \"./sidebar\";\nimport { SideBarProps } from \"./sidebar\";\nimport {\n OrderlyContext,\n useChains,\n useLocalStorage,\n} from \"@orderly.network/hooks\";\nimport { useMemo } from \"react\";\nimport {\n ExpandableContext,\n // MainNavProps,\n routerAdapter,\n} from \"./scaffoldContext\";\nimport { checkChainSupport } from \"../utils/chain\";\nimport { FooterConfig, FooterWidget } from \"./footer\";\nimport { MainNavWidgetProps } from \"./main/useWidgetBuilder.script\";\nimport { MaintenanceTipsWidget } from \"./maintenanceTips\";\n\nexport type LayoutProps = {\n /**\n * Custom left sidebar component,\n * if provided, the layout will use this component over the default sidebar component\n */\n leftSidebar?: React.ReactNode;\n gap?: number;\n maxWidth?: number;\n bodyPadding?: SizeType;\n leftSideProps?: SideBarProps;\n rightSidebar?: React.ReactNode;\n topBar?: React.ReactNode;\n // topBarProps?:\n mainNavProps?: PropsWithChildren<MainNavWidgetProps>;\n footer?: React.ReactNode;\n routerAdapter?: routerAdapter;\n footerHeight?: number;\n footerIsSticky?: boolean;\n footerConfig?: FooterConfig;\n classNames?: {\n content?: string;\n body?: string;\n leftSidebar?: string;\n topNavbar?: string;\n footer?: string;\n };\n};\n\nexport const Scaffold = (props: PropsWithChildren<LayoutProps>) => {\n const { classNames, footerConfig, routerAdapter } = props;\n const [expand, setExpand] = useLocalStorage(\n \"orderly_scaffold_expanded\",\n true\n );\n // const [unsupported, setUnsupported] = useState(true);\n const [chains] = useChains();\n\n const sideBarDefaultWidth = useMemo(() => props.maxWidth || 185, []);\n const { networkId } = useContext<any>(OrderlyContext);\n\n const checkChainSupportHandle = (chainId: number | string) => {\n return checkChainSupport(\n chainId,\n networkId === \"testnet\" ? chains.testnet : chains.mainnet\n );\n };\n\n const onExpandChange = (expand: boolean) => {\n setExpand(expand);\n };\n\n const footerHeight =\n props.footerHeight !== undefined ? props.footerHeight : 29;\n\n return (\n <div\n className=\"oui-flex oui-flex-col oui-overflow-auto\"\n style={{\n height: `calc(100vh - ${footerHeight}px)`,\n }}\n >\n <ExpandableContext.Provider\n value={{\n routerAdapter,\n expanded: expand,\n setExpand: onExpandChange,\n // unsupported,\n checkChainSupport: checkChainSupportHandle,\n footerConfig,\n // mainNavProps: props.mainNavProps,\n }}\n >\n {/* Top main nav */}\n <Box\n className={cn(\n \"oui-hidden xl:oui-block\",\n \"oui-border-b oui-border-line-12\",\n classNames?.topNavbar\n )}\n >\n {props.topBar ?? <MainNavWidget {...props.mainNavProps} />}\n </Box>\n <MaintenanceTipsWidget />\n {/*--------- body start ------ */}\n {props.leftSidebar === null ? (\n // ----------No leftSidebar layout start ---------\n <Box className={classNames?.content}>{props.children}</Box>\n ) : (\n // ----------No leftSidebar layout end ---------\n // ---------- left & body layout start ---------\n <Grid\n className={cn(\n \"oui-box-content oui-transition-all oui-flex xl:oui-grid\",\n \"oui-flex-1\",\n classNames?.body\n )}\n style={{\n // marginBottom: `${props.footerHeight ?? 29}px`,\n gridTemplateColumns: `${\n expand ? sideBarDefaultWidth + \"px\" : \"98px\"\n } 1fr`,\n // gridTemplateRows: \"auto 1fr\",\n // gridTemplateAreas: `\"left main\" \"left main\"`,\n }}\n >\n <div className={cn(classNames?.leftSidebar)}>\n {/* @ts-ignore */}\n {typeof props.leftSidebar !== \"undefined\" ? (\n props.leftSidebar\n ) : (\n <SideNavbarWidget {...props.leftSideProps} />\n )}\n\n {/* <SideNavbarWidget {...props.leftSideProps} /> */}\n </div>\n <Box width={\"100%\"} className={classNames?.content}>\n {props.children}\n </Box>\n </Grid>\n // ---------- left & body layout end ---------\n )}\n\n <Box\n className={cn(\n \"oui-fixed oui-bottom-0 oui-z-50\",\n \"oui-w-full\",\n classNames?.footer\n )}\n >\n {props.footer || <FooterWidget />}\n </Box>\n </ExpandableContext.Provider>\n </div>\n );\n};\n","import { API } from \"@orderly.network/types\";\n\nexport function checkChainSupport(\n chainId: number | string,\n chains: API.Chain[]\n) {\n if (typeof chainId === \"string\") {\n chainId = parseInt(chainId);\n }\n return chains.some((chain) => {\n return chain.network_infos.chain_id === chainId;\n });\n}\n"]}
package/dist/index.mjs ADDED
@@ -0,0 +1,17 @@
1
+ import { AccountStatusEnum, MEDIA_TABLET } from '@orderly.network/types';
2
+ import { tv, Flex, Text, Tooltip, cn, Button, modal, Select, Box, Divider, Dialog, DialogContent, DialogHeader, DialogTitle, DialogBody, Grid, DropdownMenuRoot, DropdownMenuTrigger, DropdownMenuPortal, DropdownMenuContent, DropdownMenuGroup, EVMAvatar, DropdownMenuItem, Popover, EyeIcon, EyeCloseIcon, Logo, toast, ChevronDownIcon, PopoverRoot, PopoverAnchor, PopoverContent } from '@orderly.network/ui';
3
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
+ import { WsNetworkStatus, useMediaQuery, useLocalStorage, useChains, OrderlyContext, useWalletConnector, useAccount, useCollateral, usePositionStream, useMarginRatio, useLeverage, useConfig, useWsStatus, useMaintenanceStatus } from '@orderly.network/hooks';
5
+ import { WalletConnectorModalId } from '@orderly.network/ui-connector';
6
+ import fe, { createContext, memo, useContext, useMemo, useCallback, useState, useEffect, useRef, cloneElement } from 'react';
7
+ import { useAppContext } from '@orderly.network/react-app';
8
+ import { ChainSelectorId } from '@orderly.network/ui-chain-selector';
9
+ import { format } from 'date-fns';
10
+ import { UTCDateMini } from '@date-fns/utc';
11
+ import { getTimestamp } from '@orderly.network/utils';
12
+
13
+ var ae=e=>{let{accountState:t,onDisconnect:n,onOpenExplorer:o}=e;if(t.status<=AccountStatusEnum.NotConnected||t.validating)return jsx(Tooltip,{open:!0,content:"Please connect wallet before starting to trade",align:"end",className:"oui-bg-base-5",arrow:{className:"oui-fill-base-5"},children:jsx(Button,{"data-testid":"oui-testid-nav-bar-connectWallet-btn",size:"md",variant:"gradient",angle:45,className:"wallet-connect-button",loading:t.validating,disabled:t.validating,onClick:()=>{e.connect().then(a=>{}).catch(a=>{});},children:"Connect wallet"})});if(t.status<=AccountStatusEnum.NotSignedIn)return jsx(Tooltip,{open:!0,content:"Please sign in before starting to trade",align:"end",className:"oui-bg-base-5",arrow:{className:"oui-fill-base-5"},children:jsx(Button,{size:"md",onClick:()=>e.onCrateAccount(),children:"Sign in"})});if(t.status<=AccountStatusEnum.DisabledTrading)return jsx(Tooltip,{open:!0,className:"oui-bg-base-5",arrow:{className:"oui-fill-base-5"},content:"Please enable trading before starting to trade",align:"end",children:jsx(Button,{size:"md",onClick:()=>{e.onCreateOrderlyKey().then(a=>{}).catch(a=>{});},children:"Enable trading"})});if(t.status===AccountStatusEnum.EnableTrading)return jsx(yt,{address:t.address,onDisconnect:n,onOpenExplorer:o})},yt=e=>{let{address:t,onDisconnect:n}=e;return jsxs(DropdownMenuRoot,{children:[jsx(DropdownMenuTrigger,{asChild:!0,children:jsx(Button,{size:"md",variant:"gradient",angle:45,"data-testid":"oui-testid-nav-bar-address-btn",children:jsx(Text.formatted,{rule:"address",className:"oui-text-[rgba(0,0,0,.88)]",children:t})})}),jsx(DropdownMenuPortal,{children:jsxs(DropdownMenuContent,{size:"xl",align:"end",onCloseAutoFocus:o=>o.preventDefault(),style:{width:"280px"},className:"oui-py-5 oui-font-semibold",sideOffset:12,children:[jsx(DropdownMenuGroup,{children:jsxs(Flex,{px:4,children:[jsxs(Flex,{gap:2,className:"oui-flex-1",children:[jsx(EVMAvatar,{address:t,size:"md"}),jsx(Text.formatted,{rule:"address",size:"base",children:t})]}),jsxs(Flex,{gap:2,children:[jsx("button",{onClick:async()=>{await navigator.clipboard.writeText(t);},children:jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 18 18",className:"oui-fill-[rgba(255,255,255,0.36)] hover:oui-fill-primary",children:jsx("path",{d:"M5.249 2.243a3 3 0 0 0-3 3v4.5a3 3 0 0 0 3 3 3 3 0 0 0 3 3h4.5a3 3 0 0 0 3-3v-4.5a3 3 0 0 0-3-3 3 3 0 0 0-3-3zm7.5 4.5a1.5 1.5 0 0 1 1.5 1.5v4.5a1.5 1.5 0 0 1-1.5 1.5h-4.5a1.5 1.5 0 0 1-1.5-1.5h3a3 3 0 0 0 3-3z"})})}),jsx("button",{onClick:()=>e.onOpenExplorer(),children:jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 18 18",className:"oui-fill-[rgba(255,255,255,0.36)] hover:oui-fill-primary",children:jsx("path",{d:"M12.7432 15.7432C14.3999 15.7432 15.7432 14.3999 15.7432 12.7432V5.24316C15.7432 3.58641 14.3999 2.24316 12.7432 2.24316H5.24316C3.58641 2.24316 2.24316 3.58641 2.24316 5.24316V12.7432C2.24316 14.3999 3.58641 15.7432 5.24316 15.7432H12.7432ZM6.74316 11.9932C6.55116 11.9932 6.35092 11.9287 6.20392 11.7824C5.91142 11.4892 5.91142 10.9972 6.20392 10.7039L9.20392 7.70392L7.49316 5.99316H11.9932V10.4932L10.2824 8.78241L7.28241 11.7824C7.13616 11.9287 6.93516 11.9932 6.74316 11.9932Z"})})})]})]})}),jsx(Divider,{className:"oui-mx-4 oui-my-3",intensity:8}),jsx(DropdownMenuGroup,{children:jsx(DropdownMenuItem,{size:"xl",onSelect:o=>{o.preventDefault(),n();},"data-testid":"oui-testid-nav-bar-dropDownMenuItem-disconnect",children:jsxs(Flex,{gap:2,className:"oui-text-danger-light",children:[jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",children:jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.97 14.03a.75.75 0 0 1 0-1.06l.262-.263C2.594 12.354 1.5 11.108 1.5 9.06c0-2.447 1.563-3.75 3.75-3.75H6a.75.75 0 0 1 0 1.5h-.75C3.837 6.81 3 7.508 3 9.06s.837 2.25 2.25 2.25h.38l1.188-1.188a.75.75 0 0 1-.068-.312v-.75c0-1.162.381-2.19 1.172-2.883.645-.565 1.512-.867 2.578-.867h1.13l1.34-1.34a.75.75 0 0 1 1.061 1.06l-9 9a.75.75 0 0 1-1.06 0m6.14-7.2L8.27 8.668c.065-.583.281-1.056.635-1.367.289-.253.684-.419 1.205-.473M7.825 12.8l3.414-3.415c-.126 2.12-1.496 3.297-3.414 3.415m7.705-6.58a.75.75 0 0 0-1.06 1.06c.508.509.53 1.202.53 1.72 0 .739-.014 1.203-.53 1.72-.165.164-.455.307-.825.405a3.8 3.8 0 0 1-.895.125H12a.75.75 0 0 0 0 1.5h.75c.31 0 .787-.045 1.28-.175.48-.127 1.065-.36 1.5-.795.97-.97.97-1.991.97-2.75v-.06c0-.51.002-1.778-.97-2.75",fill:"currentcolor"})}),jsx("span",{children:"Disconnect"})]})})})]})})]})};var O=createContext({}),I=()=>useContext(O);var Fe=()=>{let {disconnect:e,connectedChain:t}=useWalletConnector(),{account:n,state:o}=useAccount();I();let {connectWallet:s}=useAppContext(),[c,{findByChainId:d}]=useChains(),g=async()=>{modal.show(WalletConnectorModalId).then(l=>{},l=>{});},w=async()=>{modal.show(WalletConnectorModalId).then(l=>{},l=>{});},u=()=>{n.once("validate:end",l=>{l<AccountStatusEnum.EnableTrading?b({status:l}):toast.success("Wallet connected");}),modal.show(ChainSelectorId).then(l=>{l.wrongNetwork||(o.status<AccountStatusEnum.EnableTrading?b(o):toast.success("Wallet connected"));},l=>{});},f=async()=>{let l=await s();l&&(l.wrongNetwork?u():b(l));},b=l=>{l.validating||l.status<=AccountStatusEnum.Connected||(l.status<AccountStatusEnum.SignedIn&&g(),l.status<AccountStatusEnum.EnableTrading&&w());},p=useCallback(()=>{if(!t)return;let l=d(t.id,"network_infos");if(l){let{explorer_base_url:P}=l;P&&(P.endsWith("/")?window.open(`${P}address/${n.address}`):window.open(`${P}/address/${n.address}`));}},[o,t]);return {address:o.address,accountState:o,connect:f,onCrateAccount:g,onCreateOrderlyKey:w,onOpenExplorer:p,onDisconnect:async()=>{await e({label:o.connectWallet?.name}),await n.disconnect();}}};var H=()=>{let e=Fe();return jsx(ae,{...e})};var G=e=>{let{classNames:t,currentPath:n,item:o,onClick:a,...s}=e,c=useMemo(()=>e.currentPath?.[0]===e.item.href,[n]),d=useCallback(()=>{Array.isArray(e.item.children)||e.onClick?.([e.item]);},[e.item]),g=jsxs("button",{id:o.id,"data-testid":o.testid,...s,disabled:e.item.disabled,"data-actived":c,className:cn("oui-text-base-contrast-36 oui-text-sm oui-relative oui-group oui-rounded oui-px-3 oui-py-1 oui-h-[32px] hover:oui-bg-base-7",t?.navItem),onClick:d,children:[jsxs("span",{className:"oui-flex oui-items-center",children:[jsx(Ve,{isActive:c,item:e.item}),jsx(Text.gradient,{color:c?"brand":"inherit",angle:45,children:e.item.name}),Array.isArray(e.item.children)&&jsx("span",{className:"oui-ml-1 group-data-[open=true]:oui-rotate-180",children:c?jsxs("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("path",{d:"M2.913 4.515a.5.5 0 0 0-.328.202.51.51 0 0 0 .14.701L5.722 7.41a.51.51 0 0 0 .562 0l2.995-1.992a.51.51 0 0 0 .14-.7.51.51 0 0 0-.701-.14L6.002 6.382 3.287 4.577a.5.5 0 0 0-.374-.062",fill:"url(#mainNavDropDownIcon)"}),jsx("defs",{children:jsxs("linearGradient",{id:"mainNavDropDownIcon",x1:"9.502",y1:"5.994",x2:"2.502",y2:"5.994",gradientUnits:"userSpaceOnUse",children:[jsx("stop",{"stop-color":"#59B0FE"}),jsx("stop",{offset:"1","stop-color":"#26FEFE"})]})})]}):jsx(ChevronDownIcon,{size:12,color:"white"})})]}),jsx(Box,{invisible:!c,position:"absolute",bottom:0,left:"50%",height:"3px",r:"full",width:"60%",gradient:"brand",angle:45,className:"-oui-translate-x-1/2 "})]});return Array.isArray(e.item.children)?jsx(Ot,{items:e.item.children,className:t?.subMenu,current:e.currentPath?.[1],onItemClick:w=>{e.onClick?.([e.item,w]);},children:g}):g},Ot=e=>{let[t,n]=useState(!1),o=useRef(null),a=useCallback(()=>{o.current&&(clearTimeout(o.current),o.current=null);},[]),s=e.children.props.className;return jsxs(PopoverRoot,{open:t,children:[jsx(PopoverAnchor,{children:jsx("div",{className:"oui-group","data-open":t,onMouseEnter:()=>{n(!0);},onMouseLeave:()=>{o.current=setTimeout(()=>{n(!1);},150);},children:cloneElement(e.children,{className:cn(s,t&&"oui-bg-base-7")})})}),jsx(PopoverContent,{align:"start",onMouseEnter:a,onMouseLeave:()=>{n(!1),o.current&&clearTimeout(o.current);},className:cn("oui-p-1 oui-w-[260px] oui-border oui-border-line-6 oui-space-y-[2px]",e.className),children:e.items.map((c,d)=>jsx(Ht,{item:c,onClick:e.onItemClick,active:c.href===e.current},d))})]})},Ht=e=>{let{item:t}=e;return jsxs(Flex,{px:2,py:3,gapX:2,"data-active":e.active??!1,className:cn("hover:oui-bg-base-6 oui-cursor-pointer oui-text-base-contrast-80 oui-items-start oui-w-full oui-group data-[active=true]:oui-bg-base-5"),r:"md",onClick:()=>{e.onClick(t);},"data-testid":t.testid,children:[!!e.item.icon&&jsx("div",{className:"oui-translate-y-1 oui-relative oui-w-6 oui-h-6",children:jsx(Ve,{isActive:e.active??!1,item:e.item})}),jsxs("div",{className:"oui-flex-1",children:[jsx(Ut,{item:t,isActive:e.active}),typeof t.description<"u"&&jsx(Text,{size:"2xs",as:"div",intensity:36,children:t.description})]})]})},Ut=e=>{let{item:{name:t},isActive:n}=e;return jsxs(Flex,{itemAlign:"center",width:"100%",position:"relative",children:[jsxs("div",{className:"oui-flex-1 oui-flex",children:[jsx(Text.gradient,{color:n?"brand":"inherit",size:"xs",as:"div",intensity:80,weight:"semibold",children:t}),typeof e.item.tag<"u"&&jsx(Gt,{item:e.item})]}),e.item.target==="_blank"&&jsx($t,{})]})},Gt=e=>jsx("div",{className:"oui-px-2 oui-py-1 oui-ml-1 oui-rounded oui-inline-flex oui-bg-gradient-to-r oui-from-[rgb(var(--oui-gradient-brand-start)_/_0.12)] oui-to-[rgb(var(--oui-gradient-brand-end)_/_0.12)]",children:jsx(Text.gradient,{color:"brand",size:"3xs",children:e.item.tag})}),Ae="oui-flex oui-border oui-border-line oui-w-6 oui-h-6 oui-rounded-md oui-justify-center oui-items-center oui-absolute oui-left-0 oui-top-0",Ve=e=>{let{item:t,isActive:n}=e;return e.item.icon?typeof e.item.icon=="string"?jsx("span",{className:"oui-w-[20px] oui-h-[20px] oui-mr-1",children:jsx("img",{src:n&&e.item.activeIcon||e.item.icon,className:"oui-max-w-full oui-max-h-full"})}):jsxs(Fragment,{children:[jsx("div",{className:cn(Ae,"group-data-[active=true]:oui-invisible group-hover:oui-invisible"),children:e.item.icon}),jsx("div",{className:cn(Ae,"oui-invisible group-data-[active=true]:oui-visible group-hover:oui-visible"),children:e.item.activeIcon||e.item.icon})]}):null},$t=()=>jsxs(Fragment,{children:[jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"oui-absolute oui-right-0 oui-top-0 group-hover:oui-invisible",children:jsx("path",{d:"M14.159 17.492a3.333 3.333 0 0 0 3.333-3.333V5.826a3.333 3.333 0 0 0-3.333-3.334H5.826a3.333 3.333 0 0 0-3.334 3.334v8.333a3.333 3.333 0 0 0 3.334 3.333zm-6.667-4.166a.85.85 0 0 1-.599-.235.86.86 0 0 1 0-1.198l3.333-3.333-1.9-1.901h5v5l-1.901-1.9L8.09 13.09a.84.84 0 0 1-.599.235",fill:"#fff",fillOpacity:".2"})}),jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"oui-absolute oui-right-0 oui-top-0 oui-invisible group-hover:oui-visible",children:[jsx("path",{d:"M14.159 17.492a3.333 3.333 0 0 0 3.333-3.333V5.826a3.333 3.333 0 0 0-3.333-3.334H5.826a3.333 3.333 0 0 0-3.334 3.334v8.333a3.333 3.333 0 0 0 3.334 3.333zm-6.667-4.166a.85.85 0 0 1-.599-.235.86.86 0 0 1 0-1.198l3.333-3.333-1.9-1.901h5v5l-1.901-1.9L8.09 13.09a.84.84 0 0 1-.599.235",fill:"url(#outlineIcon)"}),jsx("defs",{children:jsxs("linearGradient",{id:"outlineIcon",x1:"17.492",y1:"9.992",x2:"2.492",y2:"9.992",gradientUnits:"userSpaceOnUse",children:[jsx("stop",{stopColor:"#59B0FE"}),jsx("stop",{offset:"1",stopColor:"#26FEFE"})]})})]})]});var ze=e=>{let{items:t,classNames:n}=e;return !Array.isArray(t)||t.length===0?null:jsx(Flex,{gap:2,className:n?.root,children:t?.map((o,a)=>jsx(G,{item:o,currentPath:e.current,onClick:e.onItemClick},a))})};var De=e=>{let{active:t,item:n,onClick:o}=e;return jsx(Button,{variant:t?"gradient":"text",color:"secondary",size:"sm",angle:45,className:cn(t?"oui-text-[rgba(0_,_0_,_0_,_0.88)]":"hover:oui-bg-base-7"),onClick:()=>{o?.(n);},children:n.name})};var se=e=>{let{items:t,onItemClick:n,current:o,className:a}=e,s=useMemo(()=>typeof o<"u"?o:t?.[0]?.href,[o,t]);return !Array.isArray(t)||t.length===0?null:jsx(Flex,{gap:0,border:!0,r:"md",className:cn("oui-p-[1px]",a),borderColor:12,children:t?.map((c,d)=>jsx(De,{item:c,onClick:n,active:s==c.href},d))})};var ue=e=>{let{type:t,...n}=e,o;switch(e.type){case"freeCollateral":o=jsx(to,{freeCollateral:e.freeCollateral,visible:e.visible,onToggleVisibility:e.onToggleVisibility});break;case"unrealPnL":o=jsx(io,{unrealPnL:e.unrealPnL,unrealized_pnl_ROI:e.unrealized_pnl_ROI,visible:e.visible,onToggleVisibility:e.onToggleVisibility});break;case"currentLeverage":o=jsx(oo,{currentLeverage:e.currentLeverage});break;case"maxLeverage":o=jsx(no,{maxLeverage:e.maxLeverage});break;case"totalValue":default:o=jsx(eo,{totalValue:e.totalValue,onToggleVisibility:e.onToggleVisibility,visible:e.visible});}return jsx(Popover,{content:jsx(ao,{totalValue:n.totalValue,freeCollateral:e.freeCollateral,maxLeverage:e.maxLeverage,currentLeverage:e.currentLeverage,unrealized_pnl_ROI:e.unrealized_pnl_ROI,unrealPnL:e.unrealPnL,type:e.type,onTypeChange:e.onTypeChange,visible:e.visible}),contentProps:{onOpenAutoFocus:a=>a.preventDefault(),sideOffset:12},arrow:!0,children:jsx("div",{className:"oui-cursor-pointer",children:o})})},eo=e=>{let{totalValue:t=0,visible:n=!0,onToggleVisibility:o}=e;return jsxs(Flex,{direction:"column",gap:0,className:"oui-text-2xs",itemAlign:"start",children:[jsxs(Flex,{gap:1,itemAlign:"center",children:[jsx(Text,{intensity:54,className:"oui-whitespace-nowrap",children:"Total Value"}),jsx("button",{onClick:()=>o?.(),children:n?jsx(EyeIcon,{size:12,className:"oui-text-primary-light",opacity:1}):jsx(EyeCloseIcon,{size:12,className:"oui-text-primary-light",opacity:1})}),jsx(Text,{intensity:54,children:"\u2248"})]}),jsx(Text.numeral,{visible:e.visible,unit:"USDC",unitClassName:"oui-text-base-contrast-20 oui-ml-1",as:"div",children:t??"-"})]})},to=e=>{let{freeCollateral:t,visible:n,onToggleVisibility:o}=e;return jsxs(Flex,{direction:"column",gap:0,className:"oui-text-2xs",itemAlign:"start",children:[jsxs(Flex,{gap:1,itemAlign:"center",children:[jsx(Text,{intensity:54,className:"oui-whitespace-nowrap",children:"Free collateral"}),jsx("button",{onClick:()=>o?.(),children:n?jsx(EyeIcon,{size:12,className:"oui-text-primary-light",opacity:1}):jsx(EyeCloseIcon,{size:12,className:"oui-text-primary-light",opacity:1})})]}),jsx(Text.numeral,{unit:"USDC",unitClassName:"oui-text-base-contrast-20 oui-ml-1",visible:n,as:"div",children:t??"-"})]})},oo=e=>{let{currentLeverage:t}=e;return jsxs(Flex,{direction:"column",gap:0,className:"oui-text-2xs",itemAlign:"start",children:[jsx(Box,{children:jsx(Text,{intensity:54,className:"oui-whitespace-nowrap",children:"Current leverage"})}),jsx(Text.numeral,{as:"div",unit:"x",children:t??0})]})},no=e=>jsxs(Flex,{direction:"column",gap:0,className:"oui-text-2xs",itemAlign:"start",children:[jsx(Box,{children:jsx(Text,{intensity:54,className:"oui-whitespace-nowrap",children:"Max leverage"})}),jsx(Text,{color:"primary",as:"div",children:`${e.maxLeverage??"--"}x`})]}),io=e=>{let{visible:t,onToggleVisibility:n}=e;return jsxs(Flex,{direction:"column",gap:0,className:"oui-text-2xs",itemAlign:"start",children:[jsxs(Flex,{gap:1,itemAlign:"center",children:[jsx(Text,{intensity:54,className:"oui-whitespace-nowrap",children:"Unreal. PnL"}),jsx("button",{onClick:()=>n?.(),children:t?jsx(EyeIcon,{size:12,className:"oui-text-primary-light",opacity:1}):jsx(EyeCloseIcon,{size:12,className:"oui-text-primary-light",opacity:1})})]}),jsx(Text.numeral,{as:"div",coloring:!0,showIdentifier:!0,weight:"semibold",visible:t,suffix:jsx(Text.numeral,{coloring:!0,prefix:"(",suffix:")",rule:"percentages",children:e.unrealized_pnl_ROI??"-"}),children:e.unrealPnL??"-"})]})},ao=e=>{let{totalValue:t}=e;return jsxs(Flex,{className:"oui-text-2xs oui-font-semibold",direction:"column",gapY:1,children:[jsxs(Flex,{justify:"between",width:"100%",children:[jsxs(Flex,{className:"oui-text-base-contrast-54",gapX:2,children:[jsx(E,{active:e.type==="totalValue",onClick:()=>e.onTypeChange("totalValue")}),jsx("span",{children:"Total Value"})]}),jsx(Text.numeral,{visible:e.visible,unit:"USDC",unitClassName:"oui-text-base-contrast-36 oui-ml-1",children:t??"-"})]}),jsxs(Flex,{justify:"between",width:"100%",children:[jsxs(Flex,{className:"oui-text-base-contrast-54",gapX:2,children:[jsx(E,{active:e.type==="freeCollateral",onClick:()=>e.onTypeChange("freeCollateral")}),jsx("span",{children:"Free collateral"})]}),jsx(Text.numeral,{unit:"USDC",visible:e.visible,unitClassName:"oui-text-base-contrast-36 oui-ml-1",children:e.freeCollateral??"-"})]}),jsxs(Flex,{justify:"between",width:"100%",children:[jsxs(Flex,{className:"oui-text-base-contrast-54",gapX:2,children:[jsx(E,{active:e.type==="unrealPnL",onClick:()=>e.onTypeChange("unrealPnL")}),jsx("span",{children:"Unreal. PnL"})]}),jsx(Text.numeral,{coloring:!0,showIdentifier:!0,visible:e.visible,suffix:jsx(Text.numeral,{coloring:!0,prefix:"(",visible:e.visible,suffix:")",rule:"percentages",children:e.unrealized_pnl_ROI??"-"}),children:e.unrealPnL??"-"})]}),jsxs(Flex,{justify:"between",width:"100%",children:[jsxs(Flex,{className:"oui-text-base-contrast-54",gapX:2,children:[jsx(E,{active:e.type==="currentLeverage",onClick:()=>e.onTypeChange("currentLeverage")}),jsx("span",{children:"Current leverage"})]}),jsx(Text.numeral,{unit:"x",children:e.currentLeverage??"-"})]}),jsxs(Flex,{justify:"between",width:"100%",children:[jsxs(Flex,{className:"oui-text-base-contrast-54",gapX:2,children:[jsx(E,{active:e.type==="maxLeverage",onClick:()=>e.onTypeChange("maxLeverage")}),jsx("span",{children:"Max leverage"})]}),jsx(Text,{color:"primary",children:`${e.maxLeverage??"-"}x`})]})]})},E=e=>jsx("button",{onClick:e.onClick,children:e.active?jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:jsx("path",{d:"M7.506.977a.56.56 0 0 0-.365.16C6.367 1.88 6.13 2.5 6.413 3.348c-.661.506-1.078.63-1.903.63-1.127 0-1.863.137-2.364.637v.016a1.187 1.187 0 0 0 0 1.686l1.4 1.411-2.385 2.385a.513.513 0 0 0-.015.717.514.514 0 0 0 .719 0l2.394-2.395 1.403 1.396a1.19 1.19 0 0 0 1.687 0h.016c.501-.5.64-1.142.64-2.358 0-.773.16-1.319.64-1.893.924.271 1.462.012 2.22-.746a.5.5 0 0 0 .14-.36c0-.175-.044-.445-.156-.78a4 4 0 0 0-.984-1.577 4 4 0 0 0-1.578-.984C7.95 1.02 7.682.977 7.506.977",fill:"currentcolor",className:"oui-text-primary-light"})}):jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:jsx("path",{d:"M7.506.977a.56.56 0 0 0-.365.16C6.367 1.88 6.13 2.5 6.413 3.348c-.661.506-1.078.63-1.903.63-1.127 0-1.863.137-2.364.637v.016a1.187 1.187 0 0 0 0 1.686l1.4 1.411-2.385 2.385a.513.513 0 0 0-.015.717.514.514 0 0 0 .719 0l2.394-2.395 1.403 1.396a1.19 1.19 0 0 0 1.687 0h.016c.501-.5.64-1.142.64-2.358 0-.773.16-1.319.64-1.893.924.271 1.462.012 2.22-.746a.5.5 0 0 0 .14-.36c0-.175-.044-.445-.156-.78a4 4 0 0 0-.984-1.577 4 4 0 0 0-1.578-.984C7.95 1.02 7.682.977 7.506.977m.193 1.027c.531.098 1.066.45 1.447.83.381.382.706.848.84 1.459-.477.458-.77.494-1.247.243a.5.5 0 0 0-.583.087c-.91.91-1.15 1.736-1.15 2.85 0 .97-.057 1.33-.36 1.655-.085.092-.203.078-.281 0L2.849 5.615a.18.18 0 0 1-.012-.255c.178-.217.576-.386 1.669-.386 1.306.001 2-.335 2.859-1.14a.5.5 0 0 0 .094-.578c-.257-.513-.217-.784.24-1.252",fill:"currentcolor"})})});var He=()=>{let[e,t]=useLocalStorage("accountSummaryType","totalValue"),{freeCollateral:n,totalValue:o}=useCollateral({dp:2}),{state:a}=useAccount(),[s,c]=useLocalStorage("orderly_assets_visible",!0),[{aggregated:d,totalUnrealizedROI:g}]=usePositionStream(),{wrongNetwork:w}=useAppContext(),{currentLeverage:u}=useMarginRatio(),[f]=useLeverage(),b=l=>{t(l);},p=w||a.status<AccountStatusEnum.EnableTrading;return {totalValue:p?null:o,freeCollateral:p?null:n,maxLeverage:p?null:f,currentLeverage:p?null:u,unrealPnL:p?null:d?.unrealPnL,unrealized_pnl_ROI:p?null:g,type:e,onTypeChange:b,visible:s,wrongNetwork:w,onToggleVisibility:()=>c(!s)}};var $=()=>{let e=He();return jsx(ue,{...e})};var X=e=>e.wrongNetwork&&e.isConnected?jsx(Tooltip,{open:!0,content:"Please switch to a supported network to continue.",className:"oui-bg-base-5",arrow:{className:"oui-fill-base-5"},children:jsx(Button,{color:"warning",size:"md",onClick:()=>{modal.show(ChainSelectorId,{networkId:e.networkId}).then(t=>{!t.wrongNetwork&&e.accountStatus<AccountStatusEnum.EnableTrading&&modal.show(WalletConnectorModalId).then(n=>{},n=>{});},t=>{});},children:"Wrong network"})}):jsx(Flex,{justify:"center",children:jsx(Select.chains,{chains:e.chains,size:"md",value:e.currentChainId,variant:"contained",onChange:e.onChange})});var Ge=()=>{let[e]=useChains(),{state:t}=useAccount(),{setChain:n,connectedChain:o}=useWalletConnector(),[a,s]=useState(),{wrongNetwork:c,onChainChanged:d}=useAppContext(),g=useConfig("networkId");useEffect(()=>{if(o)s(typeof o.id=="number"?o.id:parseInt(o.id));else {if(a)return;let u=g==="mainnet"?e.mainnet?.[0]?.network_infos:e.testnet?.[0]?.network_infos;if(!u)return;s(u.chain_id);}},[o,e,a,g]);let w=async u=>{if(o){if(!await n({chainId:u.id}))return;d?.(u.id,{isTestnet:u.isTestnet,isWalletConnected:!0});}else d?.(u.id,{isTestnet:u.isTestnet,isWalletConnected:!1});};return {chains:{mainnet:e.mainnet.map(u=>({name:u.network_infos.name,id:u.network_infos.chain_id,lowestFee:u.network_infos.bridgeless,isTestnet:!1})),testnet:e.testnet.map(u=>({name:u.network_infos.name,id:u.network_infos.chain_id,lowestFee:u.network_infos.bridgeless,isTestnet:!0}))},currentChainId:a,onChange:w,isConnected:!!o,wrongNetwork:c,accountStatus:t.status,networkId:g}};var K=()=>{let e=Ge();return jsx(X,{...e})};var me=(o=>(o.menuLeading="menuLeading",o.menuTailing="menuTailing",o.navTailing="navTailing",o))(me||{}),Ze=e=>{let{onItemClick:t,campaignPosition:n="navTailing"}=e,{routerAdapter:o}=I(),{connectedChain:a}=useWalletConnector(),{wrongNetwork:s}=useAppContext(),[c,d]=useState(()=>typeof e.initialMenu>"u"?[]:Array.isArray(e.initialMenu)?e.initialMenu:[e.initialMenu]),[g,w]=useState(()=>e?.initialProduct??e?.products?.[0].href??""),u=p=>l=>{let P=l[l.length-1];if(!P)return;P.target!=="_blank"&&d(l.map(pt=>pt.href));let ne=l[l.length-1],Ie={href:ne.href,name:ne.name,scope:p,target:ne.target};if(typeof t=="function"){t(Ie);return}o?.onRouteChange(Ie);},f=useMemo(()=>{let p={logo:{src:"https://testnet-dex-evm.woo.org/images/woofipro.svg",alt:"woofipro"},mainMenus:[],products:[],...e,campaignPosition:n};return e.campaigns&&(n==="menuTailing"?p.mainMenus=[...p.mainMenus,e.campaigns]:n==="menuLeading"?p.mainMenus=[e.campaigns,...p.mainMenus]:p.campaigns=e.campaigns),p},[e]),b={};return f.products&&f.products.length&&(b.products={items:f.products,current:g,onItemClick:p=>{let l={href:p.href,name:p.name,scope:"product"};if(typeof t=="function"){t(l);return}o?.onRouteChange(l);}}),f.mainMenus&&f.mainMenus.length&&(b.mainMenus={items:f.mainMenus,current:c,onItemClick:u("mainMenu")}),f.campaigns&&f.campaigns.children?.length&&(b.campaigns={item:f.campaigns,current:c,onItemClick:u("campaign")}),{...f,isConnected:!!a,wrongNetwork:s,...b}};var Ke=e=>jsxs(Fragment,{children:[jsx(G,{item:e.item,style:{"--oui-gradient-angle":"188deg","--oui-gradient-primary-stop-start":"26%","--oui-gradient-primary-stop-end":"80%"},onClick:e.onItemClick,classNames:{navItem:cn("oui-gradient-primary oui-text-white",e.className)}}),jsx(Divider,{direction:"vertical",className:"oui-h-8",intensity:8})]});var ge=e=>{let{className:t,logo:n,products:o,classNames:a,campaigns:s,campaignPosition:c}=e,d=useMemo(()=>typeof e.children>"u"?null:jsx(Flex,{grow:!0,children:e.children}),[e.children]);return jsxs(Flex,{as:"header",itemAlign:"center",height:"48px",justify:"between",px:3,className:`orderly-main-nav ${t} ${a?.root} oui-font-semibold`,children:[jsxs(Flex,{itemAlign:"center",gap:4,children:[jsx(Logo,{...n}),jsx(se,{...o,className:a?.products}),jsx(ze,{...e.mainMenus,classNames:a?.mainNav})]}),d,jsxs(Flex,{itemAlign:"center",gap:4,children:[c==="navTailing"&&s?jsx(Ke,{...s,className:a?.campaignButton}):null,jsx($,{}),jsx(K,{}),e.wrongNetwork&&e.isConnected?null:jsx(H,{})]})]})};ge.displayName="MainNav";var pe=e=>{let{children:t,...n}=e,o=Ze(n);return jsx(ge,{...o,children:t})};var Go=tv({slots:{button:["oui-h-10","oui-px-3","oui-rounded-md","oui-w-full","oui-text-left","oui-text-base","oui-text-base-contrast-36","oui-group","hover:oui-bg-base-8","oui-transition-colors","group-data-[state=closed]/bar:oui-w-[42px]","oui-overflow-hidden"],icon:[]},variants:{mode:{"icon-only":{button:"oui-w-10",icon:"w-6 h-6"},full:{button:"oui-full",icon:"w-6 h-6"}},active:{true:{button:"oui-bg-base-5 hover:oui-bg-base-5"}},open:{true:{button:""}}}}),$o=memo(e=>{let{item:t,mode:n,open:o,onClick:a,active:s,...c}=e,{button:d}=Go({mode:n,active:e.active,open:e.open}),g=jsx("button",{"data-actived":e.active,disabled:t.disabled,className:d(),onClick:()=>{e.onClick?.(t);},children:jsxs(Flex,{itemAlign:"center",gap:2,as:"span",children:[t.icon,e.open&&jsx(Text.gradient,{color:e.active?"brand":"inherit",angle:45,size:"base",className:"oui-animate-in oui-fade-in",children:t.name})]})});return e.open?jsx("li",{className:"oui-min-w-[120px]",children:g}):jsx("li",{children:jsx(Tooltip,{content:t.name,side:"right",align:"center",sideOffset:20,children:g})})}),Zo=e=>jsxs(Box,{py:6,children:[jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"oui-absolute oui-invisible oui-pointer-events-none",children:jsx("defs",{children:jsxs("linearGradient",{id:"side-menu-gradient",x1:"15.7432",y1:"8.94726",x2:"2.24316",y2:"8.94726",gradientUnits:"userSpaceOnUse",children:[jsx("stop",{stopColor:"#59B0FE"}),jsx("stop",{offset:"1",stopColor:"#26FEFE"})]})})}),jsx("ul",{className:"oui-space-y-4",children:e.menus.map((t,n)=>jsx($o,{item:t,open:e.open,active:t.href===e.current,onClick:e.onItemSelect},n))})]}),Xo=e=>{let{title:t}=e,n=typeof t=="string"?jsx(Text,{intensity:54,size:"xs",children:t}):t;return jsxs(Flex,{justify:e.open?"between":"center",itemAlign:"center",className:"oui-h-6",children:[e.open?n:null,jsx("button",{onClick:()=>{e.onToggle?.();},children:jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"group-data-[state=closed]/bar:oui-rotate-90",children:jsx("path",{d:"M5.82552 17.4922C3.98469 17.4922 2.49219 15.9997 2.49219 14.1589V5.82552C2.49219 3.98469 3.98469 2.49219 5.82552 2.49219H14.1589C15.9997 2.49219 17.4922 3.98469 17.4922 5.82552V14.1589C17.4922 15.9997 15.9997 17.4922 14.1589 17.4922H5.82552ZM12.4922 13.3255C12.7055 13.3255 12.928 13.2538 13.0913 13.0913C13.4163 12.7655 13.4163 12.2189 13.0913 11.893L9.75802 8.55969L11.6589 6.65885H6.65885V11.6589L8.55969 9.75802L11.893 13.0913C12.0555 13.2538 12.2789 13.3255 12.4922 13.3255Z",fill:"white",fillOpacity:"0.2"})})})]})},z=e=>{let{open:t=!0,items:n,current:o,onItemSelect:a}=e;return jsxs(Box,{"data-state":t?"opened":"closed",className:cn("oui-group/bar",e.className),style:e.style,children:[jsx(Xo,{open:t,title:e.title,onToggle:()=>{e.onOpenChange?.(!t);}}),jsx(Zo,{menus:n,current:o,onItemSelect:a,open:t})]})};z.displayName="SideBar";var Ye=e=>{let[t,n]=useState(e?.items?.[0].href||"/"),{expanded:o,setExpand:a}=I();return {items:[],current:t,open:o,onOpenChange:s=>{a?.(s);},onItemSelect:s=>{s.href&&n(s.href);},...e}};var J=e=>{let t=Ye(e);return jsx(z,{...t})};var Q=fe.forwardRef((e,t)=>{let{size:n=20,...o}=e;return jsx("svg",{width:n,height:n,viewBox:"0 0 20 20",ref:t,fill:"#fff",fillOpacity:".54",xmlns:"http://www.w3.org/2000/svg",...o,children:jsx("path",{d:"M4.108 9.464S9.645 7.13 11.565 6.31c.736-.328 3.233-1.38 3.233-1.38s1.152-.46 1.056.658c-.032.46-.288 2.069-.544 3.81-.384 2.463-.8 5.157-.8 5.157s-.064.755-.608.887c-.544.13-1.44-.46-1.6-.592-.129-.098-2.401-1.576-3.233-2.299-.224-.197-.48-.591.032-1.051a124 124 0 0 0 3.36-3.285c.384-.394.768-1.313-.832-.197-2.272 1.61-4.513 3.12-4.513 3.12s-.512.33-1.472.034-2.08-.69-2.08-.69-.768-.493.544-1.018"})})}),Y=fe.forwardRef((e,t)=>{let{size:n=20,...o}=e;return jsx("svg",{width:n,height:n,viewBox:"0 0 20 20",ref:t,fill:"#fff",fillOpacity:".54",...o,xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M14.956 5.522c1.604 2.374 2.396 5.053 2.1 8.136a.05.05 0 0 1-.02.033 11.7 11.7 0 0 1-3.55 1.805.045.045 0 0 1-.05-.017 9.6 9.6 0 0 1-.725-1.188.046.046 0 0 1 .024-.063 7 7 0 0 0 1.108-.531.046.046 0 0 0 .004-.076 6 6 0 0 1-.22-.174.04.04 0 0 0-.047-.006c-2.296 1.068-4.812 1.068-7.136 0a.04.04 0 0 0-.046.006 6 6 0 0 1-.22.174.046.046 0 0 0 .005.076c.353.204.721.384 1.107.531.025.01.037.039.025.063a8.5 8.5 0 0 1-.725 1.188.05.05 0 0 1-.05.017 11.7 11.7 0 0 1-3.546-1.805.05.05 0 0 1-.018-.033c-.248-2.667.257-5.368 2.097-8.137a.04.04 0 0 1 .02-.016 11.6 11.6 0 0 1 2.89-.903.05.05 0 0 1 .046.022c.125.224.269.51.366.744a10.7 10.7 0 0 1 3.246 0 8 8 0 0 1 .36-.744.044.044 0 0 1 .046-.022 11.7 11.7 0 0 1 2.89.903q.012.005.019.017m-6.018 5.07c.011-.788-.56-1.44-1.276-1.44-.71 0-1.276.647-1.276 1.44 0 .795.576 1.442 1.276 1.442.71 0 1.276-.647 1.276-1.441m4.718 0c.011-.788-.56-1.44-1.276-1.44-.71 0-1.276.647-1.276 1.44 0 .795.577 1.442 1.276 1.442.717 0 1.276-.647 1.276-1.441"})})}),j=fe.forwardRef((e,t)=>{let{size:n=20,...o}=e;return jsx("svg",{width:n,height:n,viewBox:"0 0 20 20",ref:t,fill:"#fff",fillOpacity:".54",xmlns:"http://www.w3.org/2000/svg",...o,children:jsx("path",{d:"m4.42 4.73 4.633 6.194-4.662 5.037H5.44l4.082-4.41 3.298 4.41h3.57l-4.893-6.543 4.34-4.689h-1.05l-3.759 4.062-3.037-4.062zm1.543.772h1.64l7.244 9.686h-1.64z"})})});j.displayName="CommuntiyXIcon";Q.displayName="CommuntiyTelegramIcon";Y.displayName="CommuntiyDiscordIcon";var he=fe.forwardRef((e,t)=>{let{opacity:n=.54,...o}=e;return jsxs("svg",{width:96,hanging:11,ref:t,viewBox:"0 0 96 11",xmlns:"http://www.w3.org/2000/svg",...o,children:[jsx("path",{d:"M10.757 8.635h1.862V6.164c0-1.485.874-1.904 1.69-1.904.148 0 .284.011.477.034V2.729a1.8 1.8 0 0 0-.454-.056c-.896 0-1.452.6-1.68 1.53h-.033V2.74h-1.862zm7.221.113c.874 0 1.475-.464 1.634-.907v.794h1.861V.7h-1.86v2.834c-.16-.442-.761-.907-1.635-.907-1.203 0-2.565.885-2.565 3.06 0 2.188 1.362 3.061 2.565 3.061m-.817-3.06c0-1.043.624-1.52 1.282-1.52.647 0 1.249.477 1.249 1.52s-.602 1.519-1.249 1.519c-.658 0-1.282-.476-1.282-1.52m8.538 3.061c1.453 0 2.508-.748 2.78-2.108h-1.634c-.102.385-.352.703-1.112.703-.726 0-1.18-.329-1.282-1.19h4.074c.023-.136.034-.25.034-.465 0-2.301-1.34-3.06-2.86-3.06-1.578 0-3.007.838-3.007 3.037 0 2.29 1.543 3.083 3.007 3.083m-1.237-3.672c.114-.68.5-1.043 1.192-1.043.85 0 1.112.533 1.146 1.043zm5.304 3.559h1.861V6.164c0-1.485.874-1.904 1.691-1.904.148 0 .284.011.477.034V2.729a1.8 1.8 0 0 0-.454-.056c-.897 0-1.453.6-1.68 1.53h-.034V2.74h-1.861zm5.117 0h1.861V.7h-1.861zm3.481.725v1.565c1.827.192 2.588-.42 3.382-2.358L44.13 2.74h-1.906L40.93 6.265 39.67 2.74h-1.895l2.145 5.293c.148.352.159.533.034.816-.102.227-.363.669-1.589.51m9.808-.724h1.895V3.897h.045l2.86 4.738h2.043V.7h-1.907v4.863h-.045L50.136.7h-1.963zm11.054.113c1.453 0 2.508-.748 2.78-2.108h-1.633c-.102.385-.352.703-1.113.703-.726 0-1.18-.329-1.282-1.19h4.074c.023-.136.034-.25.034-.465 0-2.301-1.339-3.06-2.86-3.06-1.577 0-3.007.838-3.007 3.037 0 2.29 1.543 3.083 3.007 3.083M57.99 5.076c.114-.68.5-1.043 1.192-1.043.851 0 1.112.533 1.146 1.043zm8.005 3.638c.352 0 .692-.045.976-.124V7.218c-.26.023-.363.023-.488.023-.601 0-.715-.329-.715-.737V4.18h1.158V2.74h-1.158V1.2h-1.86v1.54h-1.01v1.44h1.01v2.585c0 1.371.816 1.95 2.087 1.95m3.365-.08h2.1l.942-3.423.942 3.423h2.088l1.543-5.894h-1.759l-.919 4.103h-.045l-1.056-4.103h-1.6l-1.055 4.103h-.046l-.919-4.103h-1.748zm11.195.113c1.486 0 2.995-.895 2.995-3.06s-1.509-3.06-2.995-3.06c-1.499 0-2.997.895-2.997 3.06s1.498 3.06 2.996 3.06m-1.26-3.06c0-1.043.533-1.52 1.26-1.52.714 0 1.248.477 1.248 1.52s-.534 1.519-1.248 1.519c-.727 0-1.26-.476-1.26-1.52m5.461 2.948h1.86V6.164c0-1.485.875-1.904 1.692-1.904.147 0 .283.011.476.034V2.729a1.8 1.8 0 0 0-.454-.056c-.896 0-1.452.6-1.68 1.53h-.033V2.74h-1.861zm5.117 0h1.86v-1.7l.466-.5 1.76 2.2H96l-2.667-3.4 2.36-2.494h-2.03l-1.93 2.199V.7h-1.861z",fill:"#fff",fillOpacity:n}),jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.632 1.043c.046.037.02.11-.04.11H1.779c-.06 0-.087-.073-.04-.11A4.67 4.67 0 0 1 4.685 0a4.66 4.66 0 0 1 2.947 1.043M2.862 5.96a.18.18 0 0 0-.146-.078H.265a.084.084 0 0 0-.081.107 4.687 4.687 0 0 0 9.001 0 .084.084 0 0 0-.081-.107H6.653a.18.18 0 0 0-.146.078 2.22 2.22 0 0 1-1.823.948c-.753 0-1.42-.375-1.822-.948m3.471-2.77c.034.037.082.06.132.06H9.03c.058 0 .1-.057.08-.112a4.7 4.7 0 0 0-.79-1.412.17.17 0 0 0-.13-.061H1.18a.17.17 0 0 0-.13.061c-.34.417-.609.894-.79 1.412a.084.084 0 0 0 .08.111h2.564c.05 0 .098-.022.132-.06.407-.448.995-.73 1.648-.73a2.22 2.22 0 0 1 1.648.73M6.89 5.37a.066.066 0 0 1-.063-.084 2.23 2.23 0 0 0-.077-1.43.067.067 0 0 1 .06-.091h2.417c.03 0 .057.021.063.051a4.7 4.7 0 0 1 .038 1.5.064.064 0 0 1-.063.054zm-4.347-.084a.066.066 0 0 1-.063.084H.105a.064.064 0 0 1-.063-.055A4.7 4.7 0 0 1 .08 3.816a.064.064 0 0 1 .063-.051H2.56c.046 0 .078.048.06.091a2.22 2.22 0 0 0-.077 1.43",fill:"#fff",fillOpacity:n})]})});var ee=fe.forwardRef((e,t)=>{let{size:n=18,...o}=e;return jsx("svg",{width:n,height:n,viewBox:"0 0 18 18",ref:t,className:"oui-fill-success-light",xmlns:"http://www.w3.org/2000/svg",...o,children:jsx("path",{d:"M9.02092 2.92969C6.18562 2.92969 3.51037 4.13854 1.68502 6.18754C1.40947 6.49676 1.446 6.96671 1.75537 7.24218C2.0646 7.51743 2.53447 7.48143 2.81002 7.17183C4.35112 5.44196 6.6141 4.42969 9.02092 4.42969C11.4205 4.42969 13.6369 5.43123 15.185 7.17183C15.4603 7.48143 15.9301 7.51743 16.2397 7.24218C16.5492 6.96694 16.5853 6.49699 16.31 6.18754C14.4787 4.12856 11.8512 2.92969 9.02092 2.92969ZM9.02092 5.92969C7.04092 5.92969 5.20867 6.78461 3.93502 8.25019C3.6633 8.56294 3.6927 9.03318 4.00537 9.30468C4.31797 9.57618 4.7883 9.54693 5.06002 9.23418C6.05175 8.09343 7.47982 7.42968 9.02092 7.42968C10.5348 7.42968 11.9446 8.08144 12.935 9.18769C13.2113 9.49593 13.681 9.51093 13.9897 9.23418C14.2983 8.95818 14.3364 8.48793 14.06 8.17968C12.7879 6.75896 10.9659 5.92969 9.02092 5.92969ZM9.02092 8.92968C7.91917 8.92968 6.89242 9.40218 6.18502 10.2189C5.91375 10.5317 5.94225 11.0019 6.25537 11.2734C6.56835 11.5449 7.03875 11.5164 7.31002 11.2029C7.73542 10.7124 8.3589 10.4297 9.02092 10.4297C9.6684 10.4297 10.2604 10.7072 10.685 11.1797C10.962 11.4879 11.4552 11.5037 11.7631 11.2262C12.0712 10.9494 12.087 10.4799 11.81 10.1717C11.1037 9.38643 10.0983 8.92968 9.02092 8.92968ZM8.99752 11.9297C8.81609 11.9297 8.64374 12.0047 8.50537 12.1404C8.50537 12.1404 7.3935 13.2362 6.95842 13.6637C6.52342 14.0919 6.7968 14.9319 7.49752 14.9297H9.63037H10.4975C11.1864 14.9319 11.477 14.0739 11.0366 13.6404C10.5961 13.2069 9.51322 12.1404 9.51314 12.1404C9.37469 12.0047 9.17894 11.9297 8.99752 11.9297Z"})})});ee.displayName="SignalIcon";var ve=e=>{let{size:t=20,viewBox:n,...o}=e;return jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:`${t}px`,height:`${t}px`,fill:"none",viewBox:"0 0 20 20",...o,children:jsx("path",{d:"M10.012 1.66602C5.40954 1.66602 1.67871 5.39685 1.67871 9.99935C1.67871 14.6018 5.40954 18.3327 10.012 18.3327C14.6145 18.3327 18.3454 14.6018 18.3454 9.99935C18.3454 5.39685 14.6145 1.66602 10.012 1.66602ZM10.012 5.83268C10.472 5.83268 10.8454 6.20602 10.8454 6.66602V10.8327C10.8454 11.2927 10.472 11.666 10.012 11.666C9.55204 11.666 9.17871 11.2927 9.17871 10.8327V6.66602C9.17871 6.20602 9.55204 5.83268 10.012 5.83268ZM10.012 12.4993C10.472 12.4993 10.8454 12.8727 10.8454 13.3327C10.8454 13.7927 10.472 14.166 10.012 14.166C9.55204 14.166 9.17871 13.7927 9.17871 13.3327C9.17871 12.8727 9.55204 12.4993 10.012 12.4993Z",fill:"#FF7D00"})})};var xe=e=>{let{size:t=16,viewBox:n,...o}=e;return jsx("svg",{width:`${t}px`,height:`${t}px`,viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg",...o,children:jsx("path",{d:"M3.32972 2.60449C3.15912 2.60449 2.98072 2.66183 2.85052 2.79183C2.59019 3.0525 2.59019 3.48982 2.85052 3.75049L7.03806 7.93782L2.85052 12.1252C2.59019 12.3858 2.59019 12.8232 2.85052 13.0838C3.11092 13.3438 3.54852 13.3438 3.80892 13.0838L7.99639 8.89649L12.1839 13.0838C12.4443 13.3438 12.8819 13.3438 13.1423 13.0838C13.4026 12.8232 13.4026 12.3858 13.1423 12.1252L8.95472 7.93782L13.1423 3.75049C13.4026 3.48982 13.4026 3.0525 13.1423 2.79183C13.0121 2.66183 12.8336 2.60449 12.6631 2.60449C12.4925 2.60449 12.3141 2.66183 12.1839 2.79183L7.99639 6.97916L3.80892 2.79183C3.67872 2.66183 3.50032 2.60449 3.32972 2.60449Z",fill:"currentColor"})})};var we=e=>{let t=useMemo(()=>{switch(e.wsStatus){case WsNetworkStatus.Connected:return "oui-fill-success-light oui-text-success-light";case WsNetworkStatus.Disconnected:return "oui-fill-danger-light oui-text-danger-light";case WsNetworkStatus.Unstable:return "oui-fill-warning-light oui-text-warning-light"}},[e.wsStatus]),n=o=>{window.open(o,"_blank");};return jsxs(Flex,{direction:"row",justify:"between",height:29,px:3,className:"oui-hidden lg:oui-flex oui-bg-base-9 oui-border-t-2 oui-border-line-6",children:[jsxs(Flex,{children:[jsxs(Flex,{direction:"row",itemAlign:"center",gap:1,className:t,children:[jsx(ee,{fillOpacity:1,fill:"currentColor"}),jsx(Text,{size:"2xs",children:"Operational"})]}),jsx(Divider,{direction:"vertical",className:"oui-h-[18px] oui-px-1 oui-ml-2 oui-border-line-12"}),jsxs(Flex,{gap:2,children:[jsx(Text,{intensity:54,size:"2xs",children:"Join our community"}),jsxs(Flex,{direction:"row",gap:1,children:[typeof e.config?.telegramUrl<"u"&&jsx(Q,{className:"oui-fill-white/[.54] hover:oui-fill-white/[.98] oui-cursor-pointer",fill:"currentColor",fillOpacity:1,onClick:o=>n(e.config?.telegramUrl)}),typeof e.config?.discordmUrl<"u"&&jsx(Y,{className:"oui-fill-white/[.54] hover:oui-fill-white/[.98] oui-cursor-pointer",fill:"currentColor",fillOpacity:1,onClick:o=>n(e.config?.discordmUrl)}),typeof e.config?.twitterUrl<"u"&&jsx(j,{className:"oui-fill-white/[.54] hover:oui-fill-white/[.98] oui-cursor-pointer",fill:"currentColor",fillOpacity:1,onClick:o=>n(e.config?.twitterUrl)})]})]})]}),jsxs(Flex,{direction:"row",gap:1,children:[jsx(Text,{intensity:54,size:"2xs",children:"Powered by"}),jsx(he,{})]})]})};var nt=()=>{let e=useWsStatus(),{footerConfig:t}=I();return {wsStatus:e,config:t}};var ye=()=>{let e=nt();return jsx(we,{...e})};var Ne=e=>{if(useMediaQuery(MEDIA_TABLET))return jsx(Fragment,{});let{showTips:n,showDialog:o,tipsContent:a,closeTips:s,dialogContent:c}=e;return o?jsx(Dialog,{open:!0,children:jsxs(DialogContent,{closable:!1,children:[jsx(DialogHeader,{children:jsx(DialogTitle,{children:"System upgrade in progress"})}),jsx(Divider,{}),jsx(DialogBody,{children:c})]})}):n?jsxs(Flex,{className:cn("oui-w-full oui-bg-warning/10 oui-text-warning oui-text-sm oui-relative oui-gap-1 oui-pl-4 oui-pr-[60px] oui-py-3","oui-min-h-[48px]","oui-justify-start oui-items-start","xl:oui-justify-center xl:oui-items-center xl:oui-px-4"),children:[jsx(ve,{size:20,className:"oui-flex-shrink-0 oui-w-5 oui-h-5 "}),jsx(Box,{className:"oui-font-semibold ",children:a}),jsx(xe,{size:16,className:"oui-absolute oui-right-4 oui-text-secondary/[0.36] hover:oui-text-secondary/80 oui-cursor-pointer -oui-translate-y-2/4 oui-top-2/4",onClick:s})]}):jsx(Fragment,{})};function ut(e){let t=format(new UTCDateMini(e),"MMM dd");return `${format(new UTCDateMini(e),"h:mm aa")} (UTC) on ${t}`}var xn=1e3*60*60*24,mt=()=>{let[e,t]=useState(!1),[n,o]=useState(!1),{startTime:a,endTime:s,status:c,brokerName:d}=useMaintenanceStatus(),g=useMemo(()=>a?ut(a):"-",[a]),w=useMemo(()=>s?ut(s):"-",[s]),u=()=>{window.localStorage.setItem(`Maintenance_${a}`,"1"),t(!1);};useEffect(()=>{if(c===2){t(!1),o(!0);return}o(!1),a&&a<getTimestamp()+xn&&(window.localStorage.getItem(`Maintenance_${a}`)||t(!0));},[a,c]);let f=`${d} will be temporarily unavailable for a scheduled upgrade from ${g} to ${w}.`,b=`Sorry, ${d} is temporarily unavailable due to a scheduled upgrade. The service is expected to be back by ${w}.`;return {tipsContent:f,showTips:e,closeTips:u,showDialog:n,dialogContent:b}};var Me=()=>{let e=mt();return jsx(Ne,{...e})};function dt(e,t){return typeof e=="string"&&(e=parseInt(e)),t.some(n=>n.network_infos.chain_id===e)}var Sn=e=>{let{classNames:t,footerConfig:n,routerAdapter:o}=e,[a,s]=useLocalStorage("orderly_scaffold_expanded",!0),[c]=useChains(),d=useMemo(()=>e.maxWidth||185,[]),{networkId:g}=useContext(OrderlyContext),w=b=>dt(b,g==="testnet"?c.testnet:c.mainnet),u=b=>{s(b);},f=e.footerHeight!==void 0?e.footerHeight:29;return jsx("div",{className:"oui-flex oui-flex-col oui-overflow-auto",style:{height:`calc(100vh - ${f}px)`},children:jsxs(O.Provider,{value:{routerAdapter:o,expanded:a,setExpand:u,checkChainSupport:w,footerConfig:n},children:[jsx(Box,{className:cn("oui-hidden xl:oui-block","oui-border-b oui-border-line-12",t?.topNavbar),children:e.topBar??jsx(pe,{...e.mainNavProps})}),jsx(Me,{}),e.leftSidebar===null?jsx(Box,{className:t?.content,children:e.children}):jsxs(Grid,{className:cn("oui-box-content oui-transition-all oui-flex xl:oui-grid","oui-flex-1",t?.body),style:{gridTemplateColumns:`${a?d+"px":"98px"} 1fr`},children:[jsx("div",{className:cn(t?.leftSidebar),children:typeof e.leftSidebar<"u"?e.leftSidebar:jsx(J,{...e.leftSideProps})}),jsx(Box,{width:"100%",className:t?.content,children:e.children})]}),jsx(Box,{className:cn("oui-fixed oui-bottom-0 oui-z-50","oui-w-full",t?.footer),children:e.footer||jsx(ye,{})})]})})};
14
+
15
+ export { H as AccountMenuWidget, $ as AccountSummaryWidget, me as CampaignPositionEnum, X as ChainMenu, K as ChainMenuWidget, O as ExpandableContext, we as FooterUI, ye as FooterWidget, pe as MainNavWidget, Ne as MaintenanceTipsUI, Me as MaintenanceTipsWidget, se as ProductsMenu, Sn as Scaffold, z as SideBar, J as SideNavbarWidget, I as useScaffoldContext };
16
+ //# sourceMappingURL=out.js.map
17
+ //# sourceMappingURL=index.mjs.map