@orderly.network/ui 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/button/button.tsx","../src/button/base.tsx","../src/flex/flex.tsx","../src/layout/gap.tsx","../src/utils/tv.ts","../src/box/box.tsx","../src/layout/layout.tsx","../src/helpers/parse-props.ts","../src/layout/shadow.tsx","../src/layout/decoration.ts","../src/layout/position.tsx","../src/layout/visible.ts","../src/spinner/spinner.tsx","../src/grid/grid.tsx","../src/grid/span.tsx","../src/grid/index.ts","../src/typography/statistic.tsx","../src/typography/numeral.tsx","../src/typography/text.tsx","../src/typography/utils.ts","../src/typography/formatted.tsx","../src/icon/copy.tsx","../src/icon/baseIconWithPath.tsx","../src/icon/baseIcon.tsx","../src/icon/close.tsx","../src/icon/check.tsx","../src/icon/chevronDown.tsx","../src/icon/chevronUp.tsx","../src/icon/caretUp.tsx","../src/icon/caretDown.tsx","../src/icon/caretLeft.tsx","../src/icon/caretRight.tsx","../src/icon/chevronLeft.tsx","../src/icon/chevronRight.tsx","../src/icon/setting.tsx","../src/icon/settingFill.tsx","../src/icon/closeSquareFill.tsx","../src/icon/closeCircleFill.tsx","../src/icon/checkCircleFill.tsx","../src/icon/checkSquareFill.tsx","../src/icon/checkSquareEmpty.tsx","../src/icon/plus.tsx","../src/icon/circleOutlined.tsx","../src/icon/squareOutlined.tsx","../src/icon/exclamationFill.tsx","../src/icon/questionFill.tsx","../src/icon/arrowLeftRight.tsx","../src/icon/arrowDownUp.tsx","../src/icon/arrowUpSquareFill.tsx","../src/icon/arrowDownSquareFill.tsx","../src/icon/feeTier.tsx","../src/icon/edit.tsx","../src/icon/eye.tsx","../src/icon/share.tsx","../src/icon/eyeClose.tsx","../src/avatar/avatar.tsx","../src/icon/tokenIcon.tsx","../src/icon/chainIcon.tsx","../src/icon/walletIcon.tsx","../src/icon/calendar.tsx","../src/icon/serverFill.tsx","../src/icon/sortingASCIcon.tsx","../src/icon/sortingDESCIcon.tsx","../src/icon/arrowShort.tsx","../src/icon/sortingIcon.tsx","../src/icon/combine.tsx","../src/icon/index.ts","../src/typography/gradient.tsx","../src/typography/index.ts","../src/input/extends/quantity.tsx","../src/input/input.tsx","../src/input/baseInput.tsx","../src/input/inputAdditional.tsx","../src/input/prefix.tsx","../src/input/suffix.tsx","../src/select/combine.tsx","../src/popover/popover.tsx","../src/select/selectPrimitive.tsx","../src/scrollarea/scrollArea.tsx","../src/select/chains.tsx","../src/misc/either.tsx","../src/select/select.tsx","../src/select/withOptions.tsx","../src/select/tokens.tsx","../src/select/index.ts","../src/input/formatter/index.ts","../src/input/formatter/currency.ts","../src/input/formatter/number.ts","../src/input/formatter/regex.ts","../src/input/formatter/dp.ts","../src/input/textField.tsx","../src/input/inputHelpText.tsx","../src/input/index.ts","../src/checkbox/checkbox.tsx","../src/switch/switch.tsx","../src/badge/badge.tsx","../src/logo/logo.tsx","../src/tooltip/tooltip.tsx","../src/table/table.tsx","../src/table/dataTable/table.tsx","../src/table/dataTable/thead.tsx","../src/table/dataTable/colgroupItem.tsx","../src/table/dataTable/colgroup.tsx","../src/table/dataTable/theadCol.tsx","../src/table/dataTable/colHOC.tsx","../src/table/dataTable/tableContext.tsx","../src/table/dataTable/icons.tsx","../src/table/dataTable/fixedDivide.tsx","../src/table/dataTable/tbody.tsx","../src/table/dataTable/row.tsx","../src/table/dataTable/col.tsx","../src/table/dataTable/expandRow.tsx","../src/plugin/slot.tsx","../src/plugin/registry.ts","../src/plugin/useBuilder.ts","../src/plugin/useExtensionBuilder.ts","../src/plugin/notFound.tsx","../src/table/dataTable/tablePlaceholder.tsx","../src/table/dataTable/useTableSize.ts","../src/pickers/dateRangePicker.tsx","../src/pickers/date/calendar.tsx","../src/pickers/datepicker.tsx","../src/table/dataGrid/dataFilter.tsx","../src/table/dataGrid/dataGridContext.tsx","../src/table/dataGrid/dataGridFilterBar.tsx","../src/pagination/pagination.tsx","../src/table/dataGrid/dataGridFooter.tsx","../src/table/dataGrid/dataGrid.tsx","../src/icon/emptyData.tsx","../src/plugin/install.tsx","../src/plugin/types.ts","../src/table/dataTable/emptyDataState.tsx","../src/table/dataGrid/filter.tsx","../src/table/dataTable/pagination.tsx","../src/table/dataTable/usePagination.ts","../src/dialog/dialog.tsx","../src/dialog/alertDialog.tsx","../src/divider/divider.tsx","../src/dialog/simpleDialogFooter.tsx","../src/dialog/simpleDialog.tsx","../src/dialog/triggerDialog.tsx","../src/modal/modalContext.tsx","../src/modal/utils.ts","../src/modal/modalHelper.tsx","../src/modal/useModal.tsx","../src/sheet/sheet.tsx","../src/modal/preset/sheet.tsx","../src/modal/preset/alert.tsx","../src/modal/preset/dialog.tsx","../src/modal/preset/confirm.tsx","../src/modal/index.tsx","../src/dialog/helper.tsx","../src/sheet/helper.tsx","../src/sheet/actionSheet.tsx","../src/tabs/tabsBase.tsx","../src/tabs/tabs.tsx","../src/card/cardBase.tsx","../src/card/card.tsx","../src/pickers/picker.tsx","../src/pickers/index.ts","../src/slider/slider.tsx","../src/slider/utils.ts","../src/toast/Toaster.tsx","../src/icon/toasterIcons.tsx","../src/toast/index.ts","../src/toast/toastTile.tsx","../src/listView/listView.tsx","../src/listView/useEndReached.ts","../src/dropdown/dropdown.tsx","../src/dropdown/menuItem.tsx","../src/provider/componentProvider.tsx","../src/provider/orderlyThemeProvider.tsx","../src/misc/switch.tsx","../src/index.ts","../src/utils/string.ts","../src/tailwind.css"],"names":["React","tv","useMemo","Slot","forwardRef","gapVariants","createTV","layoutVariants","parseSizeProps","props","width","height","angle","left","top","bottom","right","rest","style","convertToStyle","key","value","convertToPx","parseAngleProps","shadowVariants","decorationVariants","positionVariants","visibleVariants","jsx","boxVariants","Box","forwardedRef","asChild","TAG","className","p","px","py","pt","pb","pl","pr","m","mx","my","mr","mt","mb","ml","grow","zIndex","shadow","border","gradient","r","invisible","intensity","position","borderColor","flexBaseVariant","flexVariant","Flex","ref","display","gap","gapX","gapY","wrap","justify","itemAlign","direction","Fragment","jsxs","spinnerVariants","Spinner","size","color","loading","children","BaseButton","leading","trailing","icon","Comp","iconElement","content","spinnerSize","buttonVariants","Button","variant","fullWidth","angleStyle","gridVariants","Grid","cols","rows","autoFlow","useEffect","useRef","gridSpanVariants","Span","colSpan","rowSpan","parent","cnBase","textVariants","Text","Tag","weight","textProps","Decimal","commify","getPrecisionByNumber","numberToHumanStyle","todpIfNeed","parseNumber","options","rule","dp","tick","rm","padding","abs","d","rounding","truncatedNum","isNumeralRule","Numeral","coloring","suffix","prefix","visible","unit","currency","showIdentifier","identifiers","unitClassName","placeholder","masking","ignoreDP","num","child","defaultColor","colorName","identifier","childWithUnit","suffixEle","unitEle","prefixEle","child_unit","statisticVariants","StatisticLabel","labelClassName","Statistic","label","valueProps","align","classNames","root","valueClassName","valueClass","restValueProps","formatDate","isValid","iconVariants","BaseIcon","BaseIconWithPath","opacity","CopyIcon","CloseIcon","CheckIcon","ChevronDownIcon","ChevronUpIcon","CaretUpIcon","CaretDownIcon","CaretLeftIcon","CaretRightIcon","ChevronLeftIcon","ChevronRightIcon","SettingIcon","SettingFillIcon","CloseSquareFillIcon","CloseCircleFillIcon","CheckedCircleFillIcon","CheckedSquareFillIcon","CheckSquareEmptyIcon","PlusIcon","CircleOutlinedIcon","SquareOutlinedIcon","ExclamationFillIcon","QuestionFillIcon","ArrowLeftRightIcon","ArrowDownUpIcon","ArrowUpSquareFillIcon","ArrowDownSquareFillIcon","FeeTierIcon","EditIcon","EyeIcon","ShareIcon","EyeCloseIcon","AvatarPrimitive","makeBlockie","avatarVariants","AvatarBase","AvatarImage","image","AvatarFallback","fallback","Avatar","src","delayMs","alt","onLoadingStatusChange","EVMAvatar","address","TokenIcon","url","name","ChainIcon","WalletIcon","CalendarIcon","ServerFillIcon","SortingAscIcon","SortingDescIcon","ArrowUpShortIcon","ArrowDownShortIcon","ArrowLeftShortIcon","ArrowRightShortIcon","SortingIcon","CombineIcon","secondary","subElement","Icon","isTextRule","DEFAULT_SYMBOL_FORMAT","DEFAULT_DATE_FORMAT","FormattedText","symbolElement","formatString","range","capitalize","copyable","copyIconSize","onCopy","showIcon","iconSize","copyIconTestid","isIcon","prefixElement","e","start","end","reg","date","arr","type","base","quote","contentWithFix","gradientTextVariants","GradientText","useState","useId","useCallback","findLongestCommonSubString","BaseInput","clearable","onClean","fixClassName","helpText","inputMode","containerClassName","onValueChange","onChange","id","formatters","inputProps","cursor","setCursor","innerInputRef","prevInputValue","innerFormatters","formatToRender","index","formatToChange","formattedValue","nextValueLen","prevValueLen","next","event","currentCursor","diffIndex","InputAdditional","as","InputPrefix","InputSuffix","inputVariants","Input","disabled","onClear","input","box","additional","closeButton","cid","suffixElement","ClearButton","SelectPrimitive","PopoverPrimitive","popoverVariants","PopoverRoot","PopoverTrigger","PopoverAnchor","PopoverContent","sideOffset","Popover","arrow","contentProps","popoverProps","selectVariants","SelectRoot","SelectGroup","SelectValue","SelectTrigger","error","showCaret","trigger","SelectScrollUpButton","scrollUpButton","SelectScrollDownButton","scrollDownButton","SelectContent","viewport","SelectLabel","SelectItem","item","SelectSeparator","separator","ScrollAreaPrimitive","scrollAreaVariants","ScrollArea","orientation","bar","ScrollBar","tumb","CombineSelect","valueFormatter","keyword","setKeyword","setValue","selectedIndex","setSelectedIndex","option","focused","setFocused","inputRef","onFocus","filteredOptions","memo","Either","chainSelectVariants","ChainSelectItem","ChainSelect","chains","mergedChains","itemSize","tag","currentChain","setCurrentChain","selected","chain","Select","valueRenderer","maxHeight","defaultOptionRenderer","SelectWithOptions","optionRenderer","ItemIndicator","SelectItemText","TokenSelect","tokens","token","selectable","Option","QuantityInput","setToken","tokenOptions","node","formatter_exports","__export","createRegexInputFormatter","currencyFormatter","dpFormatter","numberFormatter","regex","onSendBefore","config","onBefore","truncateNumber","numStr","decimalPlaces","decimalIndex","endIndex","inputHelpTextVariants","InputHelpText","textFieldVariants","TextField","InputLabel","CheckboxPrimitive","checkboxVariants","Checkbox","SwitchPrimitives","switchVariants","Switch","thumb","badgeVariants","Badge","Logo","href","TooltipPrimitive","cn","TooltipProvider","TooltipRoot","TooltipTrigger","TooltipArrow","tooltipVariants","TooltipContent","Tooltip","defaultOpen","open","onOpenChange","delayDuration","disableHoverableContent","arrowProps","tableVariants","Table","bordered","table","TableHeader","thead","TableBody","tbody","TableFooter","tfoot","TableRow","tr","TableHead","th","TableCell","td","TableCaption","caption","Children","isValidElement","useLayoutEffect","ColGroupItem","styles","ColGroup","col","useContext","createContext","TableContext","useTable","defaultSorter","r1","r2","sortOrder","TableProvider","sortKey","setSortKey","expandedRowKeys","setExpandedRowKeys","getLeftFixedColumnsWidth","acc","cur","i","getRightFixedColumnsWidth","getLeftFixedColumnsPosition","element","getRightFixedColumnsPosition","dataSource","toggleExpandRow","prev","onSort","_key","_order","prevKey","prevOrder","meta","withFixedStyle","WrappedComponent","BaseSortIcon","AscendingIcon","DescendingIcon","TheadColItem","column","TheadCol","FixedDivide","columns","ColItem","record","dataIndex","formatter","render","numeralProps","colClassName","Col","ExpandRow","pos","Row","rowAttrs","TBody","canExpand","row","getGlobalObject","DEFAULT_BUILDER","data","OrderlyExtensionRegistry","_OrderlyExtensionRegistry","globalObject","plugin","builder","useBuilder","useExtensionBuilder","NotFound","ErrorBoundary","ExtensionSlot","scope","defaultValue","elementProps","Ele","TablePlaceholder","emptyView","divProps","DEFAULT_MIN_HEIGHT","useTableSize","tableRef","scroll","initialMinHeight","minHeight","setMinHeight","dataIsEmpty","resizeObserver","entries","entry","updateMinHeight","dataTableVariants","DataTable","wrapRef","isValidating","showMaskElement","minHeightProp","ignoreLoadingCheck","initialized","setInitialized","filterEle","setFilterEle","paginationEle","setPaginationEle","bodyBgColor","childElement","ScrollView","DayPicker","Calendar","showOutsideDays","format","DateRangePicker","dateFormat","initialValue","calendarProps","setOpen","dateRange","setDateRange","isMobileView","setIsMobileView","update","useDebouncedCallback","handleResize","nextOpen","callback","delay","timeoutRef","args","DatePicker","day","selectedDay","activeModifiers","FilterDatePicker","FilterDateRangePicker","DataFilterRenderer","isCombine","DataTableFilter","DataGridContext","useDataGridContext","DataGridProvider","DataGridFilterBar","filter","Pagination","PaginationContent","PaginationItem","PaginationLink","isActive","PaginationPrevious","PaginationNext","PaginationEllipsis","Paginations","totalPages","currentPage","PaginationItems","generatePagination","pagination","ellipsis","pageNumbers","page","DataGridFooter","DataGrid","footer","header","dataTableProps","HeaderElement","FooterElement","EmptyStateIcon","emptyData_default","installExtension","component","setExtensionBuilder","ExtensionPositionEnum","EmptyDataState","Filter","usePagination","initial","dataTotal","setPage","pageSize","_setPageSize","setPageSize","totalPage","count","pageTotal","curPage","DialogPrimitive","dialogVariants","Dialog","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","overlay","DialogContent","closable","close","DialogHeader","DialogBody","body","DialogFooter","DialogTitle","title","DialogDescription","desc","dividerVariants","Divider","lineStyle","SimpleDialogFooter","actions","primaryLoading","setPrimaryLoading","buttons","SimpleDialog","AlertDialog","message","onOk","onCancel","okLabel","cancelLabel","TriggerDialog","useReducer","symModalId","uidSeed","getUid","getModalId","modal","useModal","modals","ModalContext","modalIdFromContext","ModalIdContext","modalId","isComponent","register","modalInfo","show","modalActions","hide","remove","isOpen","reject","setStates","states","resolve","modalCallbacks","resolveHide","hideModalCallbacks","MODAL_REGISTRY","create","defaultVisible","keepMounted","shouldMount","ALREADY_MOUNTED","delayVisible","comp","unregister","initialState","dispatch","showModal","hideModal","removeModal","setModalStates","reducer","state","action","newState","ModalContainer","visibleModalIds","components","ModalProvider","dispatchOrigin","theResolve","theReject","promise","SheetPrimitive","Sheet","SheetTrigger","SheetClose","SheetPortal","SheetOverlay","sheetVariants","SheetContent","side","closeable","SheetHeader","SheetFooter","SheetTitle","SheetDescription","SimpleSheet","sheet","CreatedAlertDialog","onOkHandler","alert","dialog","ConfirmDialog","err","confirm","createDialogComponent","contentClassName","bodyClassName","registerSimpleDialog","createSheetComponent","registerSimpleSheet","ActionItem","onItemClick","ActionDivision","ActionSheetContent","ActionSheet","items","TabsPrimitive","tabsVariants","TabsBase","TabsList","list","TabsTrigger","iconClassName","TabsContent","TabsContext","Tabs","tabList","setTabList","registerTab","tab","TabPanel","testid","tabConfig","cardVariants","CardBase","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","Card","pickerVariants","Picker","selectedItem","text","SliderPrimitive","clamp","min","max","convertValueToPercentage","maxSteps","percentage","linearScale","output","ratio","getThumbInBoundsOffset","halfWidth","offset","sliderVariants","BaseSlider","marks","markCount","markLabelVisible","showTip","__propsValue","track","trackInner","mark","innerValue","setInvalue","v","innerMasks","_max","piece","len","onValueChangeInner","Marks","isInnerMask","_value","selIndex","percent","thumbInBoundsOffset","__value","colorCls","textCls","SingleSlider","values","Slider","ToastBar","toast","PrimitiveToaster","ToastErrorIcon","viewBox","ToastSuccessIcon","ToastLoadingIcon","Toaster","t","customIcon","ToastTile","useImperativeHandle","useEndReached","sentinelRef","onEndReached","observer","cb","handleObserver","ListViewInner","containerRef","emptyDataSouce","listViewElement","loadingViewElement","ListView","DropdownMenuPrimitive","DropdownMenuRoot","DropdownMenuTrigger","DropdownMenuGroup","DropdownMenuPortal","DropdownMenuSub","DropdownMenuRadioGroup","dropdownMenuVariants","DropdownMenuContent","DropdownMenuItem","inset","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut","shortcut","SimpleDropdownMenu","menu","ComponentsProvider","OrderlyThemeProvider","Match","Case","Default","keys","capitalizeFirstLetter","str","default","tailwind_exports","tailwind_default"],"mappings":"6FAAA,OAAOA,OAAkC,QACzC,OAAS,MAAAC,OAA6B,oBCDtC,OAAOD,IAAS,WAAAE,OAAe,QAK/B,OAAS,QAAAC,OAAY,uBCLrB,OAAqB,cAAAC,OAAkB,QCAhC,IAAMC,GAAc,CAEzB,SAAU,CACR,IAAK,CACH,EAAG,YACH,EAAG,YACH,EAAG,YACH,EAAG,YACH,EAAG,YACH,EAAG,YACH,EAAG,YACH,EAAG,YACH,GAAI,YACN,EACA,KAAM,CACJ,EAAG,cACH,EAAG,cACH,EAAG,cACH,EAAG,cACH,EAAG,cACH,EAAG,cACH,EAAG,cACH,EAAG,cACH,GAAI,cACN,EACA,KAAM,CACJ,EAAG,cACH,EAAG,cACH,EAAG,cACH,EAAG,cACH,EAAG,cACH,EAAG,cACH,EAAG,cACH,EAAG,cACH,GAAI,cACN,CACF,CACF,ECrCA,OAAS,YAAAC,OAAgB,oBAElB,IAAML,EAAKK,GAAS,CACzB,cAAe,CACb,OAAQ,MACV,CACF,CAAC,ECND,OAAON,OAAW,QCAX,IAAMO,GAAiB,CAC5B,SAAU,CACR,EAAG,CACD,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,GAAI,UACN,EACA,GAAI,CACF,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,GAAI,WACN,EACA,GAAI,CACF,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,GAAI,WACN,EACA,GAAI,CACF,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,GAAI,WACN,EACA,GAAI,CACF,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,GAAI,WACN,EACA,GAAI,CACF,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,GAAI,WACN,EACA,GAAI,CACF,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,GAAI,WACN,EACA,EAAG,CACD,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,UACH,GAAI,UACN,EACA,GAAI,CACF,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,GAAI,WACN,EACA,GAAI,CACF,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,GAAI,WACN,EACA,GAAI,CACF,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,GAAI,WACN,EACA,GAAI,CACF,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,GAAI,WACN,EACA,GAAI,CACF,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,GAAI,WACN,EACA,GAAI,CACF,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,EAAG,WACH,GAAI,WACN,EACA,KAAM,CACJ,KAAM,UACR,CACF,CACF,EDzLA,OAAS,QAAAJ,O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","sourcesContent":["import React, { PropsWithChildren } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { BaseButton, BaseButtonProps } from \"./base\";\nimport { shadowVariants } from \"../layout/shadow\";\nimport { parseAngleProps } from \"../helpers/parse-props\";\nimport { SizeType } from \"../helpers/sizeType\";\n\nconst buttonVariants = tv({\n base: [\n \"oui-button\",\n \"oui-inline-flex\",\n \"oui-items-center\",\n \"oui-justify-center\",\n \"oui-whitespace-nowrap\",\n \"oui-transition-colors\",\n \"disabled:oui-cursor-not-allowed\",\n \"disabled:oui-bg-base-3\",\n \"disabled:oui-text-base-contrast-36\",\n \"disabled:hover:oui-bg-base-3\",\n ],\n variants: {\n ...shadowVariants.variants,\n variant: {\n text: \"oui-bg-transparent\",\n outlined: \"oui-border\",\n contained: \"oui-text-white\",\n gradient: \"oui-gradient-brand oui-text-[rgba(0,0,0,0.88)]\",\n },\n size: {\n xs: [\"oui-px-2\", \"oui-rounded\", \"oui-h-6\", \"oui-text-2xs\"], //24px\n sm: [\"oui-px-3\", \"oui-rounded\", \"oui-h-7\", \"oui-text-2xs\"], //28px\n md: [\"oui-px-3\", \"oui-rounded-md\", \"oui-h-8\", \"oui-text-sm\"], //32px\n lg: [\"oui-px-3\", \"oui-rounded-md\", \"oui-h-10\", \"oui-text-base\"], //40px\n xl: [\"oui-px-4\", \"oui-rounded-lg\", \"oui-h-13\", \"oui-text-lg\"], //54px\n },\n color: {\n primary: [\"hover:oui-bg-primary/70 active:oui-bg-primary/50\"],\n secondary: \"hover:oui-bg-base-4/70 active:oui-bg-base-4/50\",\n success: \"hover:oui-bg-success/70 active:oui-bg-success/50\",\n danger: \"hover:oui-bg-danger/70 active:oui-bg-danger/50\",\n warning: \"hover:oui-bg-warning/70 active:oui-bg-warning/50\",\n gray: \"hover:oui-bg-base-2/70 active:oui-bg-base-2/50\",\n light:\n \"hover:oui-bg-white/70 active:oui-bg-white/50 disable:oui-bg-white/20\",\n },\n fullWidth: {\n true: \"oui-w-full\",\n },\n // disabled: {\n // true: \"oui-bg-base-3 oui-text-base-contrast-36\",\n // },\n },\n compoundVariants: [\n // contained\n {\n variant: \"contained\",\n color: \"primary\",\n className: [\"oui-bg-primary\", \"oui-text-primary-contrast\"],\n },\n {\n variant: \"contained\",\n color: \"secondary\",\n className: [\"oui-bg-base-4\", \"oui-text-primary-contrast\"],\n },\n {\n variant: \"contained\",\n color: \"success\",\n className: [\"oui-bg-success\", \"oui-text-success-contrast\"],\n },\n {\n variant: \"contained\",\n color: \"warning\",\n className: [\"oui-bg-warning\", \"oui-text-warning-contrast\"],\n },\n {\n variant: \"contained\",\n color: \"danger\",\n className: [\"oui-bg-danger\", \"oui-text-danger-contrast\"],\n },\n {\n variant: \"contained\",\n color: \"gray\",\n className: [\"oui-bg-base-2\", \"oui-text-base-contrast\"],\n },\n {\n variant: \"contained\",\n color: \"light\",\n className: [\n \"oui-bg-white\",\n \"oui-text-black/[.88]\",\n \"disabled:oui-bg-white/30 hover:disabled:oui-bg-white/30 disabled:oui-text-black/[.36]\",\n ],\n },\n\n {\n variant: \"outlined\",\n color: \"primary\",\n className: [\"oui-border-primary\", \"oui-text-primary\"],\n },\n {\n variant: \"outlined\",\n color: \"secondary\",\n className: [\"oui-border-base-4\", \"oui-text-base-contrast-54\"],\n },\n {\n variant: \"outlined\",\n color: \"success\",\n className: [\"oui-border-success\", \"oui-text-success\"],\n },\n {\n variant: \"outlined\",\n color: \"warning\",\n className: [\"oui-border-warning\", \"oui-text-warning\"],\n },\n {\n variant: \"outlined\",\n color: \"danger\",\n className: [\"oui-border-danger\", \"oui-text-danger\"],\n },\n {\n variant: \"outlined\",\n color: \"gray\",\n className: [\"oui-border-base-2\", \"oui-text-base\"],\n },\n // outlined end\n // {\n // variant: \"outlined\",\n // color: \"darkGray\",\n // className: [\"oui-border-base-4\", \"oui-text-base\"],\n // },\n // text\n {\n variant: \"text\",\n color: \"primary\",\n className: [\"oui-text-primary hover:oui-bg-primary/10\"],\n },\n {\n variant: \"text\",\n color: \"success\",\n className: [\"oui-text-success hover:oui-bg-success/10\"],\n },\n {\n variant: \"text\",\n color: \"warning\",\n className: [\"oui-text-warning hover:oui-bg-warning/10\"],\n },\n {\n variant: \"text\",\n color: \"danger\",\n className: [\"oui-text-danger hover:oui-bg-danger/10\"],\n },\n {\n variant: \"text\",\n color: \"gray\",\n className: [\"oui-text-base hover:oui-bg-base-2/10\"],\n },\n {\n variant: \"text\",\n color: \"secondary\",\n className: [\"oui-text-base-contrast-36 hover:oui-bg-base-2/10\"],\n },\n ],\n defaultVariants: {\n size: \"lg\",\n variant: \"contained\",\n color: \"primary\",\n // elevation: \"none\",\n },\n});\n\ninterface ButtonProps\n extends Omit<BaseButtonProps, \"size\">,\n VariantProps<typeof buttonVariants> {\n angle?: number;\n \"data-testid\"?: string;\n}\n\nconst Button = React.forwardRef<\n HTMLButtonElement,\n PropsWithChildren<ButtonProps>\n>(\n (\n {\n className,\n variant,\n size,\n color,\n fullWidth,\n shadow,\n angle,\n style,\n ...props\n },\n ref\n ) => {\n // const Comp = asChild ? Slot : \"button\";\n const angleStyle = parseAngleProps({ angle });\n return (\n <BaseButton\n className={buttonVariants({\n variant,\n size,\n color,\n className,\n fullWidth,\n shadow,\n })}\n size={size as SizeType}\n ref={ref}\n style={{ ...style, ...angleStyle }}\n {...props}\n />\n );\n }\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n\nexport type { ButtonProps };\n","import React, { useMemo } from \"react\";\nimport {\n ComponentPropsWithout,\n RemovedProps,\n} from \"../helpers/component-props\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { Flex } from \"../flex\";\nimport { Spinner } from \"../spinner/spinner\";\nimport { SizeType } from \"../helpers/sizeType\";\n\ntype BaseButtonElement = React.ElementRef<\"button\">;\n\nexport interface BaseButtonProps\n extends ComponentPropsWithout<\"button\", RemovedProps> {\n loading?: boolean;\n leading?: React.ReactNode;\n trailing?: React.ReactNode;\n asChild?: boolean;\n size: SizeType;\n icon?: React.ReactElement;\n as?: \"button\" | \"a\";\n}\n\nexport const BaseButton = React.forwardRef<BaseButtonElement, BaseButtonProps>(\n (props, forwardedRef) => {\n const {\n asChild = false,\n children,\n loading,\n leading,\n trailing,\n size,\n icon,\n ...rest\n } = props;\n const Comp = asChild ? Slot : \"button\";\n\n const iconElement = useMemo(() => {\n return icon\n ? React.cloneElement(icon, {\n size:\n size === \"xs\"\n ? 12\n : size === \"sm\"\n ? 12\n : size === \"md\"\n ? 14\n : size === \"lg\"\n ? 16\n : size === \"xl\"\n ? 18\n : 12,\n className: \"oui-text-inherit\",\n opacity: loading ? 0 : 1,\n })\n : null;\n }, [size, icon]);\n\n const content = useMemo(() => {\n if (!leading && !trailing && !iconElement) return children;\n\n return (\n <Flex as=\"span\" itemAlign={\"center\"} className=\"oui-space-x-1\">\n {leading}\n {iconElement}\n <span>{children}</span>\n {trailing}\n </Flex>\n );\n }, [children, leading, trailing, iconElement]);\n\n const spinnerSize = useMemo(() => {\n switch (size) {\n case \"xl\":\n return \"md\";\n case \"lg\":\n return \"md\";\n case \"md\":\n return \"sm\";\n case \"sm\":\n case \"xs\":\n return \"xs\";\n default:\n return \"md\";\n }\n }, [size]);\n\n return (\n <Comp {...rest} ref={forwardedRef}>\n {loading ? (\n <>\n <span className=\"oui-invisible\">{content}</span>\n <Flex\n itemAlign={\"center\"}\n justify={\"center\"}\n position={\"absolute\"}\n as=\"span\"\n >\n <Spinner size={spinnerSize} color=\"white\" />\n </Flex>\n </>\n ) : (\n content\n )}\n </Comp>\n );\n }\n);\n\nBaseButton.displayName = \"BaseButton\";\n","import { ElementRef, forwardRef } from \"react\";\nimport { gapVariants } from \"../layout/gap\";\nimport { VariantProps } from \"tailwind-variants\";\nimport { tv } from \"../utils/tv\";\nimport { Box, BoxProps } from \"../box\";\n\ntype FlexElement = ElementRef<\"div\">;\n\n// interface CommonFlexProps extends MarginProps, LayoutProps, FlexOwnProps {}\n// type FlexDivProps = { as?: 'div' } & ComponentPropsWithout<'div', RemovedProps>;\n// type FlexSpanProps = { as: 'span' } & ComponentPropsWithout<'span', RemovedProps>;\n// type FlexProps = CommonFlexProps & (FlexSpanProps | FlexDivProps);\n\nconst flexBaseVariant = tv({\n variants: {\n ...gapVariants.variants,\n // ...layoutVariants.variants,\n // ...positionVariants.variants,\n },\n});\n\nconst flexVariant = tv(\n {\n extend: flexBaseVariant,\n base: [\"oui-flex\"],\n variants: {\n display: {\n flex: \"oui-flex\",\n inlineFlex: \"oui-inline-flex\",\n },\n direction: {\n row: \"oui-flex-row\",\n rowReverse: \"oui-flex-row-reverse\",\n column: \"oui-flex-col\",\n columnReverse: \"oui-flex-col-reverse\",\n },\n itemAlign: {\n start: \"oui-items-start\",\n end: \"oui-items-end\",\n center: \"oui-items-center\",\n baseline: \"oui-items-baseline\",\n stretch: \"oui-items-stretch\",\n },\n justify: {\n start: \"oui-justify-start\",\n end: \"oui-justify-end\",\n center: \"oui-justify-center\",\n between: \"oui-justify-between\",\n around: \"oui-justify-around\",\n evenly: \"oui-justify-evenly\",\n stretch: \"oui-justify-stretch\",\n },\n wrap: {\n noWrap: \"oui-flex-nowrap\",\n wrap: \"oui-flex-wrap\",\n wrapReverse: \"oui-flex-wrap-reverse\",\n },\n },\n defaultVariants: {\n display: \"flex\",\n direction: \"row\",\n itemAlign: \"center\",\n justify: \"start\",\n wrap: \"noWrap\",\n // gap: 4,\n // gap: 0,\n // gapX: 0,\n // gapY: 0,\n },\n },\n {\n responsiveVariants: true,\n }\n);\n\n// const flexVariant = compose(layoutVariants, gapVariants, flexBaseVariant);\ninterface FlexProps extends BoxProps, VariantProps<typeof flexVariant> {\n // asChild?: boolean;\n // as?: \"div\" | \"span\";\n // width?: string | number;\n // height?: string | number;\n}\n\nconst Flex = forwardRef<FlexElement, FlexProps>((props, ref) => {\n const {\n className,\n display,\n gap,\n gapX,\n gapY,\n wrap,\n justify,\n itemAlign,\n direction,\n ...rest\n } = props;\n // const Comp = asChild ? Slot : TAG;\n //\n\n return (\n <Box\n ref={ref}\n className={flexVariant({\n className,\n display,\n gap,\n gapX,\n gapY,\n wrap,\n justify,\n itemAlign,\n direction,\n })}\n {...rest}\n />\n );\n});\n\nFlex.displayName = \"Flex\";\n\nexport { Flex, flexVariant };\n\nexport type { FlexProps };\n","export const gapVariants = {\n // extend: layoutVariants,\n variants: {\n gap: {\n 0: \"oui-gap-0\",\n 1: \"oui-gap-1\",\n 2: \"oui-gap-2\",\n 3: \"oui-gap-3\",\n 4: \"oui-gap-4\",\n 5: \"oui-gap-5\",\n 6: \"oui-gap-6\",\n 8: \"oui-gap-8\",\n 10: \"oui-gap-10\",\n },\n gapX: {\n 0: \"oui-gap-x-0\",\n 1: \"oui-gap-x-1\",\n 2: \"oui-gap-x-2\",\n 3: \"oui-gap-x-3\",\n 4: \"oui-gap-x-4\",\n 5: \"oui-gap-x-5\",\n 6: \"oui-gap-x-6\",\n 8: \"oui-gap-x-8\",\n 10: \"oui-gap-x-10\",\n },\n gapY: {\n 0: \"oui-gap-y-0\",\n 1: \"oui-gap-y-1\",\n 2: \"oui-gap-y-2\",\n 3: \"oui-gap-y-3\",\n 4: \"oui-gap-y-4\",\n 5: \"oui-gap-y-5\",\n 6: \"oui-gap-y-6\",\n 8: \"oui-gap-y-8\",\n 10: \"oui-gap-y-10\",\n },\n },\n};\n","import { createTV } from \"tailwind-variants\";\n\nexport const tv = createTV({\n twMergeConfig: {\n prefix: \"oui-\",\n },\n});\n","import React from \"react\";\n\nimport { layoutVariants } from \"../layout/layout\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { parseSizeProps } from \"../helpers/parse-props\";\nimport { VariantProps } from \"tailwind-variants\";\nimport { shadowVariants } from \"../layout/shadow\";\nimport { decorationVariants } from \"../layout/decoration\";\nimport { tv } from \"../utils/tv\";\nimport { positionVariants } from \"../layout/position\";\nimport { visibleVariants } from \"../layout/visible\";\n\nconst boxVariants = tv({\n base: [\"oui-box\"],\n variants: {\n ...layoutVariants.variants,\n ...shadowVariants.variants,\n ...decorationVariants.variants,\n ...positionVariants.variants,\n ...visibleVariants.variants,\n __position: {\n true: \"oui-position\",\n },\n __size_width: {\n true: \"oui-size-width\",\n },\n __size_height: {\n true: \"oui-size-height\",\n },\n },\n defaultVariants: {\n __position: false,\n __size: false,\n },\n});\n\n// // @ts-ignore\n// const boxVariants = tv({\n// extend: baseBoxVariants,\n// });\n\ntype BoxElement = React.ElementRef<\"div\">;\n\ninterface BoxProps\n extends React.ButtonHTMLAttributes<HTMLDivElement | HTMLSpanElement>,\n Omit<\n VariantProps<typeof boxVariants>,\n \"__position\" | \"__size_width\" | \"__size_height\"\n > {\n asChild?: boolean;\n as?:\n | \"div\"\n | \"span\"\n | \"nav\"\n | \"section\"\n | \"article\"\n | \"aside\"\n | \"header\"\n | \"footer\";\n width?: string | number;\n height?: string | number;\n left?: string | number;\n right?: string | number;\n top?: string | number;\n bottom?: string | number;\n /**\n * Angle of the gradient\n */\n angle?: number;\n}\n\nconst Box = React.forwardRef<BoxElement, BoxProps>((props, forwardedRef) => {\n const {\n asChild = false,\n as: TAG = \"div\",\n className,\n p,\n px,\n py,\n pt,\n pb,\n pl,\n pr,\n m,\n mx,\n my,\n mr,\n mt,\n mb,\n ml,\n grow,\n zIndex,\n style,\n shadow,\n border,\n gradient,\n r,\n invisible,\n intensity,\n position,\n borderColor,\n ...rest\n } = parseSizeProps(props);\n\n const Comp = asChild ? Slot : TAG;\n\n return (\n <Comp\n style={style}\n className={boxVariants({\n className,\n p,\n r,\n px,\n py,\n pt,\n pb,\n pr,\n pl,\n m,\n mx,\n my,\n mt,\n mb,\n ml,\n mr,\n zIndex,\n shadow,\n border,\n gradient,\n position,\n intensity,\n invisible,\n grow,\n borderColor,\n __position: typeof position !== \"undefined\",\n __size_width: typeof props.width !== \"undefined\",\n __size_height: typeof props.height !== \"undefined\",\n })}\n {...rest}\n ref={forwardedRef}\n />\n );\n});\n\nBox.displayName = \"Box\";\n\nexport { Box, boxVariants };\nexport type { BoxProps };\n","export const layoutVariants = {\n variants: {\n p: {\n 0: \"oui-p-0\",\n 1: \"oui-p-1\",\n 2: \"oui-p-2\",\n 3: \"oui-p-3\",\n 4: \"oui-p-4\",\n 5: \"oui-p-5\",\n 6: \"oui-p-6\",\n 7: \"oui-p-7\",\n 8: \"oui-p-8\",\n 9: \"oui-p-9\",\n 10: \"oui-p-10\",\n },\n px: {\n 0: \"oui-px-0\",\n 1: \"oui-px-1\",\n 2: \"oui-px-2\",\n 3: \"oui-px-3\",\n 4: \"oui-px-4\",\n 5: \"oui-px-5\",\n 6: \"oui-px-6\",\n 7: \"oui-px-7\",\n 8: \"oui-px-8\",\n 9: \"oui-px-9\",\n 10: \"oui-px-10\",\n },\n py: {\n 0: \"oui-py-0\",\n 1: \"oui-py-1\",\n 2: \"oui-py-2\",\n 3: \"oui-py-3\",\n 4: \"oui-py-4\",\n 5: \"oui-py-5\",\n 6: \"oui-py-6\",\n 7: \"oui-py-7\",\n 8: \"oui-py-8\",\n 9: \"oui-py-9\",\n 10: \"oui-py-10\",\n },\n pt: {\n 0: \"oui-pt-0\",\n 1: \"oui-pt-1\",\n 2: \"oui-pt-2\",\n 3: \"oui-pt-3\",\n 4: \"oui-pt-4\",\n 5: \"oui-pt-5\",\n 6: \"oui-pt-6\",\n 7: \"oui-pt-7\",\n 8: \"oui-pt-8\",\n 9: \"oui-pt-9\",\n 10: \"oui-pt-10\",\n },\n pb: {\n 0: \"oui-pb-0\",\n 1: \"oui-pb-1\",\n 2: \"oui-pb-2\",\n 3: \"oui-pb-3\",\n 4: \"oui-pb-4\",\n 5: \"oui-pb-5\",\n 6: \"oui-pb-6\",\n 7: \"oui-pb-7\",\n 8: \"oui-pb-8\",\n 9: \"oui-pb-9\",\n 10: \"oui-pb-10\",\n },\n pl: {\n 0: \"oui-pl-0\",\n 1: \"oui-pl-1\",\n 2: \"oui-pl-2\",\n 3: \"oui-pl-3\",\n 4: \"oui-pl-4\",\n 5: \"oui-pl-5\",\n 6: \"oui-pl-6\",\n 7: \"oui-pl-7\",\n 8: \"oui-pl-8\",\n 9: \"oui-pl-9\",\n 10: \"oui-pl-10\",\n },\n pr: {\n 0: \"oui-pr-0\",\n 1: \"oui-pr-1\",\n 2: \"oui-pr-2\",\n 3: \"oui-pr-3\",\n 4: \"oui-pr-4\",\n 5: \"oui-pr-5\",\n 6: \"oui-pr-6\",\n 7: \"oui-pr-7\",\n 8: \"oui-pr-8\",\n 9: \"oui-pr-9\",\n 10: \"oui-pr-10\",\n },\n m: {\n 0: \"oui-m-0\",\n 1: \"oui-m-1\",\n 2: \"oui-m-2\",\n 3: \"oui-m-3\",\n 4: \"oui-m-4\",\n 5: \"oui-m-5\",\n 6: \"oui-m-6\",\n 7: \"oui-m-7\",\n 8: \"oui-m-8\",\n 9: \"oui-m-9\",\n 10: \"oui-m-10\",\n },\n mx: {\n 0: \"oui-mx-0\",\n 1: \"oui-mx-1\",\n 2: \"oui-mx-2\",\n 3: \"oui-mx-3\",\n 4: \"oui-mx-4\",\n 5: \"oui-mx-5\",\n 6: \"oui-mx-6\",\n 7: \"oui-mx-7\",\n 8: \"oui-mx-8\",\n 9: \"oui-mx-9\",\n 10: \"oui-mx-10\",\n },\n my: {\n 0: \"oui-my-0\",\n 1: \"oui-my-1\",\n 2: \"oui-my-2\",\n 3: \"oui-my-3\",\n 4: \"oui-my-4\",\n 5: \"oui-my-5\",\n 6: \"oui-my-6\",\n 7: \"oui-my-7\",\n 8: \"oui-my-8\",\n 9: \"oui-my-9\",\n 10: \"oui-my-10\",\n },\n mt: {\n 0: \"oui-mt-0\",\n 1: \"oui-mt-1\",\n 2: \"oui-mt-2\",\n 3: \"oui-mt-3\",\n 4: \"oui-mt-4\",\n 5: \"oui-mt-5\",\n 6: \"oui-mt-6\",\n 7: \"oui-mt-7\",\n 8: \"oui-mt-8\",\n 9: \"oui-mt-9\",\n 10: \"oui-mt-10\",\n },\n mb: {\n 0: \"oui-mb-0\",\n 1: \"oui-mb-1\",\n 2: \"oui-mb-2\",\n 3: \"oui-mb-3\",\n 4: \"oui-mb-4\",\n 5: \"oui-mb-5\",\n 6: \"oui-mb-6\",\n 7: \"oui-mb-7\",\n 8: \"oui-mb-8\",\n 9: \"oui-mb-9\",\n 10: \"oui-mb-10\",\n },\n ml: {\n 0: \"oui-ml-0\",\n 1: \"oui-ml-1\",\n 2: \"oui-ml-2\",\n 3: \"oui-ml-3\",\n 4: \"oui-ml-4\",\n 5: \"oui-ml-5\",\n 6: \"oui-ml-6\",\n 7: \"oui-ml-7\",\n 8: \"oui-ml-8\",\n 9: \"oui-ml-9\",\n 10: \"oui-ml-10\",\n },\n mr: {\n 0: \"oui-mr-0\",\n 1: \"oui-mr-1\",\n 2: \"oui-mr-2\",\n 3: \"oui-mr-3\",\n 4: \"oui-mr-4\",\n 5: \"oui-mr-5\",\n 6: \"oui-mr-6\",\n 7: \"oui-mr-7\",\n 8: \"oui-mr-8\",\n 9: \"oui-mr-9\",\n 10: \"oui-mr-10\",\n },\n grow: {\n true: \"oui-grow\",\n },\n },\n};\n","import { CSSProperties } from \"react\";\n\nexport const parseSizeProps = <\n T extends {\n width?: number | string;\n height?: number | string;\n angle?: number;\n left?: number | string;\n right?: number | string;\n top?: number | string;\n bottom?: number | string;\n [key: string]: any;\n }\n>(\n props: T\n) => {\n const { width, height, angle, left, top, bottom, right, ...rest } = props;\n\n const style = Object.create(null);\n\n if (angle) {\n style[\"--oui-gradient-angle\"] = `${angle}deg`;\n }\n\n convertToStyle(\"--oui-width\", width, style);\n convertToStyle(\"--oui-height\", height, style);\n convertToStyle(\"--oui-left\", left, style);\n convertToStyle(\"--oui-right\", right, style);\n convertToStyle(\"--oui-top\", top, style);\n convertToStyle(\"--oui-bottom\", bottom, style);\n\n return {\n ...rest,\n style: {\n ...rest.style,\n ...style,\n },\n } as const;\n};\n\nfunction convertToStyle(\n key: string,\n value: string | number,\n style: CSSProperties\n) {\n if (typeof value !== \"undefined\") {\n style[key] = convertToPx(value);\n }\n}\n\nfunction convertToPx(value: number | string) {\n return typeof value === \"number\" ? `${value}px` : value;\n}\n\nexport const parseAngleProps = (props: { angle?: number }) => {\n const { angle } = props;\n return {\n \"--oui-gradient-angle\": angle ? `${angle}deg` : `180deg`,\n };\n};\n","export const shadowVariants = {\n variants: {\n shadow: {\n sm: \"oui-shadow-sm\",\n base: \"oui-shadow\",\n md: \"oui-shadow-md\",\n lg: \"oui-shadow-lg\",\n xl: \"oui-shadow-xl\",\n \"2xl\": \"oui-shadow-2xl\",\n inner: \"oui-shadow-inner\",\n none: \"oui-shadow-none\",\n },\n },\n};\n","export type Gradient = {\n start: string;\n end: string;\n degree: number;\n stops: number;\n};\n\nexport const decorationVariants = {\n variants: {\n border: {\n true: \"oui-border oui-border-line\",\n // false: \"oui-border-none\",\n },\n // borderTop\n r: {\n none: \"oui-rounded-none\",\n sm: \"oui-rounded-sm\",\n base: \"oui-rounded\",\n md: \"oui-rounded-md\",\n lg: \"oui-rounded-lg\",\n xl: \"oui-rounded-xl\",\n \"2xl\": \"oui-rounded-2xl\",\n full: \"oui-rounded-full\",\n },\n gradient: {\n // // brands:'',\n // primary: \"oui-from-primary-400 to-primary-900\",\n primary: \"oui-gradient-primary\",\n secondary: \"oui-gradient-secondary\",\n brand: \"oui-gradient-brand\",\n success: \"oui-gradient-success\",\n warning: \"oui-gradient-warning\",\n danger: \"oui-gradient-danger\",\n neutral: \"oui-gradient-neutral\",\n },\n intensity: {\n 100: \"oui-bg-base-1\",\n 200: \"oui-bg-base-2\",\n 300: \"oui-bg-base-3\",\n 400: \"oui-bg-base-4\",\n 500: \"oui-bg-base-5\",\n 600: \"oui-bg-base-6\",\n 700: \"oui-bg-base-7\",\n 800: \"oui-bg-base-8\",\n 900: \"oui-bg-base-9\",\n },\n borderColor: {\n 4: \"oui-border-line-4\",\n 6: \"oui-border-line-6\",\n 8: \"oui-border-line\",\n 12: \"oui-border-line-12\",\n 16: \"oui-border-line-16\",\n },\n },\n};\n","export const positionVariants = {\n // extend: layoutVariants,\n variants: {\n position: {\n static: \"oui-static\",\n fixed: \"oui-fixed\",\n absolute: \"oui-absolute\",\n relative: \"oui-relative\",\n sticky: \"oui-sticky\",\n },\n zIndex: {\n 0: \"oui-z-0\",\n 10: \"oui-z-10\",\n 20: \"oui-z-20\",\n 30: \"oui-z-30\",\n 40: \"oui-z-40\",\n 50: \"oui-z-50\",\n auto: \"oui-z-auto\",\n },\n },\n};\n","export const visibleVariants = {\n variants: {\n invisible: {\n true: \"oui-invisible\",\n // false: \"oui-visible\",\n },\n },\n};\n","import { FC, HTMLAttributes } from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport {\n ComponentPropsWithout,\n RemovedProps,\n} from \"../helpers/component-props\";\n\nconst spinnerVariants = tv({\n base: \"oui-text-gray-200 oui-animate-spin dark:oui-text-gray-600 oui-fill-primary\",\n variants: {\n size: {\n xs: \"oui-w-3 oui-h-3\",\n sm: \"oui-w-4 oui-h-4\",\n md: \"oui-w-6 oui-h-6\",\n lg: \"oui-w-8 oui-h-8\",\n xl: \"oui-w-10 oui-h-10\",\n },\n color: {\n primary: \"oui-fill-primary\",\n success: \"oui-fill-success\",\n danger: \"oui-fill-danger\",\n warning: \"oui-fill-warning\",\n gray: \"oui-fill-gray\",\n darkGray: \"oui-fill-darkGray\",\n white: \"oui-fill-white\",\n },\n // background: {\n // default: \"oui-text-base-contrast/40\",\n // transparent: \"oui-text-transparent\",\n // },\n },\n\n defaultVariants: {\n size: \"lg\",\n color: \"primary\",\n },\n});\n\ninterface SpinnerProps\n extends ComponentPropsWithout<\"svg\", RemovedProps>,\n VariantProps<typeof spinnerVariants> {\n loading?: boolean;\n}\n\nconst Spinner: FC<SpinnerProps> = (props) => {\n const { size, color, loading = true, children, className } = props;\n if (!loading) {\n return <>{children}</>;\n }\n return (\n <span role=\"status\" className=\"oui-inline-block\">\n <svg\n aria-hidden=\"true\"\n className={spinnerVariants({ size, className, color })}\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n fill=\"currentColor\"\n fillOpacity={0.2}\n />\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n fill=\"currentFill\"\n />\n </svg>\n <span className=\"oui-sr-only\">Loading...</span>\n </span>\n );\n};\n\nexport { Spinner, spinnerVariants };\n\nexport type { SpinnerProps };\n","import React from \"react\";\nimport { tv } from \"../utils/tv\";\nimport { VariantProps } from \"tailwind-variants\";\nimport { type BoxProps, Box } from \"../box\";\nimport { gapVariants } from \"../layout/gap\";\n\nconst gridVariants = tv({\n extend: gapVariants,\n base: [\"oui-grid\"],\n variants: {\n // inline: {\n // true: \"oui-inline-grid\",\n // // false: \"\",\n // },\n cols: {\n 1: \"oui-grid-cols-1\",\n 2: \"oui-grid-cols-2\",\n 3: \"oui-grid-cols-3\",\n 4: \"oui-grid-cols-4\",\n 5: \"oui-grid-cols-5\",\n 6: \"oui-grid-cols-6\",\n 7: \"oui-grid-cols-7\",\n 8: \"oui-grid-cols-8\",\n 9: \"oui-grid-cols-9\",\n none: \"oui-grid-cols-none\",\n },\n rows: {\n 1: \"oui-grid-rows-1\",\n 2: \"oui-grid-rows-2\",\n 3: \"oui-grid-rows-3\",\n 4: \"oui-grid-rows-4\",\n 5: \"oui-grid-rows-5\",\n 6: \"oui-grid-rows-6\",\n 7: \"oui-grid-rows-7\",\n 8: \"oui-grid-rows-8\",\n 9: \"oui-grid-rows-9\",\n none: \"oui-grid-rows-none\",\n },\n autoFlow: {\n row: \"oui-grid-flow-row\",\n col: \"oui-grid-flow-col\",\n rowDense: \"oui-grid-flow-row-dense\",\n colDense: \"oui-grid-flow-col-dense\",\n },\n gap: {\n 0: \"oui-gap-0\",\n 1: \"oui-gap-1\",\n 2: \"oui-gap-2\",\n 3: \"oui-gap-3\",\n 4: \"oui-gap-4\",\n 5: \"oui-gap-5\",\n },\n gapX: {\n 0: \"oui-gap-x-0\",\n 1: \"oui-gap-x-1\",\n 2: \"oui-gap-x-2\",\n 3: \"oui-gap-x-3\",\n 4: \"oui-gap-x-4\",\n 5: \"oui-gap-x-5\",\n },\n gapY: {\n 0: \"oui-gap-y-0\",\n 1: \"oui-gap-y-1\",\n 2: \"oui-gap-y-2\",\n 3: \"oui-gap-y-3\",\n 4: \"oui-gap-y-4\",\n 5: \"oui-gap-y-5\",\n },\n },\n defaultVariants: {\n // cols: \"1\",\n // rows: \"1\",\n // gap: 4,\n // autoFlow: \"row\",\n },\n});\n\ninterface GridProps extends BoxProps, VariantProps<typeof gridVariants> {}\n\nconst Grid = React.forwardRef<HTMLDivElement, GridProps>((props, ref) => {\n const { className, cols, rows, gap, gapX, gapY, autoFlow, ...rest } = props;\n\n return (\n <Box\n ref={ref}\n {...rest}\n className={gridVariants({\n className,\n cols,\n rows,\n gap,\n gapX,\n gapY,\n autoFlow,\n })}\n />\n );\n});\n\nGrid.displayName = \"Grid\";\n\nexport { Grid, gridVariants };\n","import { VariantProps } from \"tailwind-variants\";\nimport { Box, BoxProps } from \"../box\";\n\nimport { tv } from \"../utils/tv\";\nimport { useEffect, useRef } from \"react\";\n\nconst gridSpanVariants = tv({\n variants: {\n colSpan: {\n auto: \"oui-col-auto\",\n 1: \"oui-col-span-1\",\n 2: \"oui-col-span-2\",\n 3: \"oui-col-span-3\",\n 4: \"oui-col-span-4\",\n 5: \"oui-col-span-5\",\n 6: \"oui-col-span-6\",\n 7: \"oui-col-span-7\",\n 8: \"oui-col-span-8\",\n 9: \"oui-col-span-9\",\n },\n rowSpan: {\n auto: \"oui-row-auto\",\n 1: \"oui-row-span-1\",\n 2: \"oui-row-span-2\",\n 3: \"oui-row-span-3\",\n 4: \"oui-row-span-4\",\n 5: \"oui-row-span-5\",\n 6: \"oui-row-span-6\",\n 7: \"oui-row-span-7\",\n 8: \"oui-row-span-8\",\n 9: \"oui-row-span-9\",\n },\n },\n});\n\ninterface SpanProps extends BoxProps, VariantProps<typeof gridSpanVariants> {}\n\nconst Span = (props: SpanProps) => {\n const { colSpan, rowSpan, className, ...rest } = props;\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (ref.current) {\n const parent: HTMLElement = ref.current!.parentElement!;\n\n if (!parent || !parent.classList.contains(\"oui-grid\")) {\n console.warn(\"Span component must be a child of a Grid component\");\n }\n }\n }, []);\n\n return (\n <Box\n ref={ref}\n {...rest}\n className={gridSpanVariants({\n colSpan,\n rowSpan,\n className,\n })}\n />\n );\n};\n\nexport { Span, type SpanProps, gridSpanVariants };\n","import { Grid as GridBase, gridVariants } from \"./grid\";\nimport { Span } from \"./span\";\n\ntype GridType = typeof GridBase & {\n span: typeof Span;\n};\n\nconst Grid = GridBase as GridType;\nGrid.span = Span;\n\nexport { Grid, gridVariants };\n","import React, {\n HTMLAttributes,\n PropsWithChildren,\n ReactNode,\n useMemo,\n} from \"react\";\nimport { type VariantProps, cnBase } from \"tailwind-variants\";\nimport { tv } from \"../utils/tv\";\nimport { Numeral, NumeralProps } from \"./numeral\";\n\nconst statisticVariants = tv({\n slots: {\n root: \"oui-text-base oui-flex oui-flex-col\",\n label: \"oui-text-xs oui-text-base-contrast-36\",\n value: \"\",\n },\n variants: {\n align: {\n start: {\n root: \"oui-items-start\",\n },\n\n end: {\n root: \"oui-items-end\",\n },\n },\n // color: {},\n },\n defaultVariants: {\n align: \"start\",\n // color: \"default\",\n },\n});\n\ntype StatisticLabelProps = VariantProps<typeof statisticVariants> &\n HTMLAttributes<HTMLDivElement> & {\n // label: string | ReactNode;\n };\n\nconst StatisticLabel = React.forwardRef<HTMLDivElement, StatisticLabelProps>(\n (props, ref) => {\n // const { label } = props;\n const { label: labelClassName } = statisticVariants({});\n return (\n <div\n ref={ref}\n className={labelClassName({\n className: cnBase(\"oui-statistic-label\", props.className),\n })}\n >\n {props.children}\n </div>\n );\n }\n);\n\nStatisticLabel.displayName = \"StatisticLabel\";\n\ntype DivElement = React.ElementRef<\"div\">;\n\ntype StatisticProps = VariantProps<typeof statisticVariants> &\n HTMLAttributes<HTMLDivElement> & {\n label: string | ReactNode;\n valueProps?: NumeralProps;\n classNames?: {\n root?: string;\n label?: string;\n value?: string;\n };\n };\n\nconst Statistic = React.forwardRef<\n DivElement,\n PropsWithChildren<StatisticProps>\n>((props, ref) => {\n const { label, valueProps, align, className, classNames, children, ...rest } =\n props;\n const { root, value: valueClassName } = statisticVariants({ align });\n\n const value = useMemo(() => {\n if (typeof children === \"string\" || typeof children === \"number\") {\n const { className: valueClass, ...restValueProps } = valueProps ?? {};\n return (\n <Numeral\n children={children}\n {...restValueProps}\n className={cnBase(\n valueClassName({\n className: valueClass,\n }),\n \"oui-font-semibold\",\n !valueProps?.coloring && \"oui-text-base-contrast-80\"\n )}\n />\n );\n }\n return children;\n }, [children, valueProps]);\n\n return (\n <div\n {...rest}\n className={root({ className: cnBase(className, classNames?.root) })}\n ref={ref}\n >\n <StatisticLabel className={classNames?.label}>{label}</StatisticLabel>\n {value}\n </div>\n );\n});\n\nStatistic.displayName = \"Statistic\";\n\nexport { Statistic, StatisticLabel, statisticVariants };\n","import React, { FC, useMemo } from \"react\";\nimport { Text, TextProps } from \"./text\";\nimport { RoundingMode, parseNumber } from \"./utils\";\nimport { cnBase } from \"tailwind-variants\";\n\nexport type NumeralRule = \"percentages\" | \"price\" | \"human\";\n\nexport const isNumeralRule = (rule: string): rule is NumeralRule => {\n return [\"percentages\", \"price\", \"human\"].includes(rule);\n};\n\nexport type NumeralProps = TextProps & {\n rule?: NumeralRule;\n\n /**\n * decimal place, default 2 digits\n * @default 2\n */\n dp?: number;\n\n /**\n * Whether to ignore the decimal place, if true then direct output, the default is false\n */\n ignoreDP?: boolean;\n\n /**\n * The number of decimal places to round to.\n * tick is obtained directly from the Orderly API and is used to calculate the number of decimal places for prices.\n * If both dp and tick are passed, dp takes priority.\n * Format: 0.00001\n */\n tick?: number;\n /**\n * Rounding mode\n * The method of rounding the decimal digits after the decimal point, options are ceil, floor, round, aligns with Math.ceil, Math.floor, Math.round.\n * @default floor\n */\n rm?: RoundingMode;\n // truncate?: \"ceil\" | \"floor\" | \"round\" | \"truncate\";\n\n /**\n * The number to be formatted\n */\n children: number | string;\n\n className?: string;\n\n unitClassName?: string;\n\n coloring?: boolean;\n\n loading?: boolean;\n\n suffix?: React.ReactNode;\n prefix?: React.ReactNode;\n\n unit?: string;\n currency?: string;\n\n /**\n * Whether to display as *****\n */\n visible?: boolean;\n /**\n * Whether to pad with 0\n * @default true\n */\n padding?: boolean;\n\n /**\n * Whether to show the + or - sign\n */\n showIdentifier?: boolean;\n\n /**\n * Placeholder when children is not valid number\n */\n placeholder?: string;\n\n /**\n * custom masking element when visible is false\n */\n masking?: React.ReactNode | string;\n\n /**\n * Custom + or - sign\n */\n identifiers?: {\n loss?: React.ReactNode;\n profit?: React.ReactNode;\n };\n};\n\nexport const Numeral: FC<NumeralProps> = (props) => {\n const {\n rule = \"price\",\n coloring,\n dp,\n tick,\n suffix,\n prefix,\n visible,\n unit,\n currency,\n rm,\n padding = true,\n showIdentifier = false,\n identifiers,\n className,\n unitClassName,\n placeholder,\n masking,\n ignoreDP,\n ...rest\n } = props;\n // TODO: check precision\n\n const num = Number(props.children);\n\n const child = useMemo(() => {\n if (props.children === \"-\") return props.children;\n if (isNaN(num)) return placeholder ?? \"--\";\n\n if (typeof visible !== \"undefined\" && !visible) return masking ?? \"*****\";\n\n if (ignoreDP) {\n if (!!props.showIdentifier) {\n return Math.abs(num).toString();\n }\n\n return num;\n }\n\n return parseNumber(num, {\n rule,\n dp,\n tick,\n rm,\n padding,\n abs: showIdentifier,\n });\n }, [num, visible, tick, dp]);\n\n // console.log(\"numeral\", child, props.showIdentifier);\n\n const defaultColor = rest.color || \"inherit\";\n\n const colorName = useMemo(() => {\n if (!coloring) return defaultColor;\n if (typeof visible !== \"undefined\" && !visible) return defaultColor;\n\n if (Number.isNaN(num)) {\n // console.warn(`if coloring, value is need number: ${props.value}`);\n return defaultColor;\n }\n\n if (num === 0) return \"neutral\";\n if (num < 0) return \"lose\";\n\n return \"profit\";\n }, [coloring, num, rest.color, props.visible]);\n\n // console.log(\"parseNumber\", child, props.showIdentifier);\n\n const identifier = useMemo(() => {\n if (!showIdentifier || Number.isNaN(num) || num === 0) return null;\n if (typeof visible !== \"undefined\" && !visible) return null;\n\n if (num < 0) {\n if (identifiers?.loss) return identifiers!.loss;\n // @ts-ignore\n // return <Minus size={12} />;\n return <span>-</span>;\n }\n\n if (identifiers?.profit) return identifiers!.profit;\n // @ts-ignore\n // return <Plus size={12} />;\n return <span>+</span>;\n }, [num, props.visible, showIdentifier]);\n\n const childWithUnit = useMemo(() => {\n if (\n typeof suffix === \"undefined\" &&\n typeof prefix === \"undefined\" &&\n typeof unit === \"undefined\" &&\n typeof currency === \"undefined\" &&\n !showIdentifier\n ) {\n return child;\n }\n\n const suffixEle = suffix ? (\n typeof suffix === \"string\" ? (\n <span>{suffix}</span>\n ) : (\n suffix\n )\n ) : undefined;\n\n const unitEle = unit ? (\n <span className={cnBase(\"orderly-numeral-unit\", unitClassName)}>\n {unit}\n </span>\n ) : undefined;\n\n const prefixEle = prefix ? (\n prefix\n ) : currency ? (\n <span>{currency}</span>\n ) : undefined;\n\n const child_unit = (\n <>\n {child}\n {unitEle}\n </>\n );\n\n return (\n <>\n {prefixEle}\n {typeof identifier !== \"undefined\" ? (\n <span>\n {identifier}\n <span>{child_unit}</span>\n </span>\n ) : (\n <span>{child_unit}</span>\n )}\n {/*{unitEle}*/}\n {suffixEle}\n </>\n );\n }, [child, suffix, unit, prefix, identifier, unitClassName]);\n\n return (\n <Text\n {...rest}\n color={colorName}\n children={childWithUnit}\n className={cnBase(\"oui-tabular-nums\", className)}\n />\n );\n};\n","import { tv } from \"../utils/tv\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport React, { MouseEventHandler } from \"react\";\nimport { type VariantProps } from \"tailwind-variants\";\nimport {\n ComponentPropsWithout,\n RemovedProps,\n} from \"../helpers/component-props\";\n\nconst textVariants = tv({\n variants: {\n size: {\n \"3xs\": [\"oui-text-3xs\"],\n \"2xs\": [\"oui-text-2xs\"],\n xs: [\"oui-text-xs\"],\n sm: [\"oui-text-sm\"],\n base: [\"oui-text-base\"],\n lg: [\"oui-text-lg\"],\n xl: [\"oui-text-xl\"],\n \"2xl\": [\"oui-text-2xl\"],\n \"3xl\": [\"oui-text-3xl\"],\n \"4xl\": [\"oui-text-4xl\"],\n \"5xl\": [\"oui-text-5xl\"],\n \"6xl\": [\"oui-text-6xl\"],\n },\n weight: {\n regular: [\"oui-font-normal\"],\n semibold: [\"oui-font-semibold\"],\n bold: [\"oui-font-bold\"],\n },\n color: {\n inherit: \"oui-text-inherit\",\n neutral: \"oui-text-base-contrast-54\",\n primary: \"oui-text-primary\",\n primaryLight: \"oui-text-primary-light\",\n secondary: \"oui-text-secondary\",\n tertiary: \"oui-text-tertiary\",\n // quaternary: \"oui-text-gray-300\",\n warning: \"oui-text-warning\",\n danger: \"oui-text-danger\",\n success: \"oui-text-success\",\n buy: \"oui-text-trade-profit\",\n sell: \"oui-text-trade-loss\",\n lose: \"oui-text-trade-loss\",\n withdraw: \"oui-text-trade-loss\",\n profit: \"oui-text-trade-profit\",\n deposit: \"oui-text-trade-profit\",\n // gradient\n },\n intensity: {\n 12: \"oui-text-base-contrast-12\",\n 20: \"oui-text-base-contrast-20\",\n 36: \"oui-text-base-contrast-36\",\n 54: \"oui-text-base-contrast-54\",\n 80: \"oui-text-base-contrast-80\",\n 98: \"oui-text-base-contrast\",\n },\n },\n});\n\nexport type TextElement = React.ElementRef<\"span\">;\n\ninterface BasicTextProps extends VariantProps<typeof textVariants> {\n asChild?: boolean;\n}\n\ninterface CopyableTextProps extends BasicTextProps {\n /**\n * If true, the text will be copied when clicked.\n */\n copyable?: boolean;\n /**\n * Callback when the text is copied.\n */\n onCopy?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n /** default is 12 */\n copyIconSize?: number;\n copyIconTestid?: string;\n}\n\ntype TextSpanProps = { as?: \"span\" } & ComponentPropsWithout<\n \"span\",\n RemovedProps\n>;\ntype TextDivProps = { as: \"div\" } & ComponentPropsWithout<\"div\", RemovedProps>;\ntype TextLabelProps = { as: \"label\" } & ComponentPropsWithout<\n \"label\",\n RemovedProps\n>;\ntype TextPProps = { as: \"p\" } & ComponentPropsWithout<\"p\", RemovedProps>;\ntype TextProps = BasicTextProps &\n (TextSpanProps | TextDivProps | TextLabelProps | TextPProps);\n\nconst Text = React.forwardRef<TextElement, TextProps>((props, forwardedRef) => {\n const {\n children,\n className,\n asChild,\n as: Tag = \"span\",\n color,\n size,\n weight,\n intensity,\n ...textProps\n } = props;\n return (\n <Slot\n data-accent-color={color}\n {...textProps}\n ref={forwardedRef}\n className={textVariants({\n className,\n color,\n size,\n weight,\n intensity,\n })}\n >\n {asChild ? children : <Tag>{children}</Tag>}\n </Slot>\n );\n});\nText.displayName = \"Text\";\n\nexport { Text, textVariants };\nexport type { TextProps, CopyableTextProps };\n","import {\n Decimal,\n commify,\n getPrecisionByNumber,\n numberToHumanStyle,\n todpIfNeed,\n} from \"@orderly.network/utils\";\n\nexport type RoundingMode = number | \"truncate\";\n\nexport const parseNumber = (\n value: number | string,\n options: {\n rule?: \"percentages\" | \"price\" | \"human\";\n dp?: number;\n\n tick?: number;\n rm?: RoundingMode;\n padding?: boolean;\n\n abs?: boolean;\n } = {}\n): string => {\n let {\n rule,\n dp,\n tick,\n rm = Decimal.ROUND_DOWN,\n padding = true,\n abs,\n } = options;\n\n if (Number.isNaN(value)) {\n return \"--\";\n }\n\n dp = typeof dp !== \"undefined\" ? dp : tick ? getPrecisionByNumber(tick) : 2;\n\n if (rule === \"human\") {\n return numberToHumanStyle(\n typeof value === \"number\" ? value : Number(value),\n dp\n // { padding }\n );\n }\n\n let d = new Decimal(value);\n\n if (abs) {\n d = d.abs();\n }\n\n if (rule === \"percentages\") {\n // return `${d.mul(100).toFixed(2)}%`;\n return rounding(d.mul(100), { dp, rm, padding }) + \"%\";\n }\n const truncatedNum = rounding(d, { dp, rm, padding });\n\n // if (truncate === \"round\") {\n // if (padding) {\n // truncatedNum = d.toFixed(dp, Decimal.ROUND_HALF_EVEN);\n // } else {\n // truncatedNum = d.todp(dp, Decimal.ROUND_HALF_EVEN).toString();\n // }\n // } else {\n // if (padding) {\n // truncatedNum = d.toFixed(dp);\n // } else {\n // truncatedNum = d.todp(dp).toString();\n // }\n // }\n\n if (rule === \"price\") {\n return commify(truncatedNum);\n }\n\n if (truncatedNum?.includes(\"e\")) {\n // If dp is omitted, the return value will be unrounded and in normal notation.\n // https://mikemcl.github.io/decimal.js/#toFixed\n return new Decimal(truncatedNum)?.toFixed();\n }\n\n return truncatedNum;\n};\n\nfunction rounding(\n d: Decimal,\n options: { dp: number; rm: RoundingMode; padding: boolean }\n): string {\n const { dp, rm, padding } = options;\n\n if (rm === \"truncate\") {\n return todpIfNeed(d.toString(), dp);\n }\n\n if (padding) {\n return d.toFixed(dp, rm);\n }\n\n return d.todp(dp, rm).toString();\n}\n\nexport const NumberReg = /^([0-9]{1,}[.]?[0-9]*)/;\n","import React, { useMemo, useState } from \"react\";\n\nimport { format as formatDate, isValid } from \"date-fns\";\nimport { CopyableTextProps, Text, TextElement, TextProps } from \"./text\";\nimport { CopyIcon } from \"../icon/copy\";\nimport { TokenIcon } from \"../icon\";\nimport { SizeType } from \"../helpers/sizeType\";\n\nexport type TextRule = \"date\" | \"address\" | \"symbol\" | \"status\" | \"txId\";\n\nexport const isTextRule = (rule: string): rule is TextRule => {\n return [\"date\", \"address\", \"symbol\", \"status\", \"txId\"].includes(rule);\n};\n\ntype DateText = {\n rule: \"date\";\n /**\n * use date-fns to format the date, default is \"YYYY-MM-DD HH:mm:ss\", more info:\n * @see https://date-fns.org/v3.6.0/docs/format\n */\n formatString?: string;\n};\ntype AddressText = {\n rule: \"address\";\n /**\n * range of the address to show\n * the first number is the length of the start of the address, and the second number is the length of the end of the address\n * @default [6, 4]\n */\n range?: [number, number];\n};\n\ntype BaseText = {\n rule: Omit<TextRule, \"address\" | \"date\">;\n /**\n * capitalize the first letter of the string\n */\n capitalize?: boolean;\n};\n\ntype TxIDText = {\n rule: \"txId\";\n range?: [number, number];\n};\n\ntype SymbolText = {\n rule: \"symbol\";\n // symbolElement?: \"base\" | \"quote\";\n /**\n * symbol format string, like \"type-base-quote\",\n * @default base-quote\n */\n formatString?: string;\n showIcon?: boolean;\n iconSize?: SizeType;\n};\n\nconst DEFAULT_SYMBOL_FORMAT = \"base-quote\";\nconst DEFAULT_DATE_FORMAT = \"yyyy-MM-dd HH:mm:ss\";\n\nexport type FormattedTextProps = TextProps & CopyableTextProps & {\n // asChildren?: boolean;\n // rule?: Omit<TextRule, \"status\"|'address'|'date'>;\n loading?: boolean;\n\n suffix?: React.ReactNode;\n prefix?: React.ReactNode;\n // showIcon?: boolean;\n} & (\n | BaseText\n | DateText\n | AddressText\n | SymbolText\n | TxIDText\n | { rule?: string }\n );\n\nexport const FormattedText = React.forwardRef<TextElement, FormattedTextProps>(\n (props, ref) => {\n const {\n rule,\n children,\n\n prefix,\n // @ts-ignore\n symbolElement,\n // @ts-ignore\n formatString,\n // @ts-ignore\n range,\n // @ts-ignore\n capitalize,\n copyable,\n copyIconSize,\n onCopy,\n //@ts-ignore\n showIcon,\n //@ts-ignore\n iconSize = \"xs\",\n copyIconTestid,\n //@ts-ignore\n isIcon,\n ...rest\n } = props;\n // const Comp = asChildren ? Slot : \"span\";\n //\n const prefixElement = useMemo(() => {\n if (rule === \"symbol\" && showIcon) {\n return <TokenIcon symbol={children as string} size={iconSize} />;\n }\n\n return prefix;\n }, [prefix]);\n\n const suffix = useMemo(() => {\n if (typeof props.suffix !== \"undefined\") return props.suffix;\n\n if (copyable) {\n return (\n <button\n className=\"oui-cursor-pointer oui-text-sm\"\n data-testid={copyIconTestid}\n onClick={(e) => {\n navigator.clipboard.writeText(children as string);\n onCopy?.(e);\n }}\n >\n <CopyIcon size={copyIconSize ?? 12} color=\"white\" />\n </button>\n );\n }\n }, [props.suffix, copyable, children]);\n\n const content = useMemo(() => {\n if (typeof children === \"undefined\") return \"--\";\n if (typeof rule === \"undefined\") return children;\n if (rule === \"address\" || rule === \"txId\") {\n const address = children as string;\n const [start, end] = range ?? (rule === \"address\" ? [6, 4] : [6, 6]);\n const reg = new RegExp(`^(.{${start}})(.*)(.{${end}})$`);\n return `${address.replace(reg, \"$1...$3\")}`;\n }\n if (rule === \"date\") {\n // return new Date(children as string).toLocaleString();\n const date = new Date(children as string | number | Date);\n if (!isValid(date)) {\n return \"Error: Invalid Date\";\n }\n return formatDate(\n new Date(children as string),\n formatString ?? DEFAULT_DATE_FORMAT\n );\n }\n /**\n * format Orderly symbol\n */\n if (rule === \"symbol\") {\n const arr = (children as string).split(\"_\");\n const type = arr[0];\n const base = arr[1];\n const quote = arr[2];\n\n return (formatString ?? DEFAULT_SYMBOL_FORMAT)\n .replace(\"type\", type)\n .replace(\"base\", base)\n .replace(\"quote\", quote);\n }\n\n // if (rule === \"status\") {\n // const status = children as string;\n // if (status === OrderStatus.NEW || status === OrderStatus.OPEN) {\n // return \"Pending\";\n // }\n // const text = firstLetterToUpperCase(status);\n\n // return text;\n // }\n\n return children;\n }, [children, rule, formatString, range, symbolElement]);\n\n const contentWithFix = useMemo(() => {\n if (typeof suffix === \"undefined\" && typeof prefixElement === \"undefined\")\n return content;\n return (\n <span className=\"oui-flex oui-gap-1 oui-items-center\">\n {prefixElement}\n {content}\n {suffix}\n </span>\n );\n }, [content, suffix]);\n\n return <Text {...rest} ref={ref} children={contentWithFix} />;\n }\n);\n","import React from \"react\";\nimport { BaseIconProps } from \"./baseIcon\";\nimport { BaseIconWithPath } from \"./baseIconWithPath\";\n\nexport const CopyIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n return (\n <BaseIconWithPath\n ref={ref}\n {...props}\n d=\"M6.998 2.99a4 4 0 00-4 4v6a4 4 0 004 4 4 4 0 004 4h6a4 4 0 004-4v-6a4 4 0 00-4-4 4 4 0 00-4-4h-6zm10 6a2 2 0 012 2v6a2 2 0 01-2 2h-6a2 2 0 01-2-2h4a4 4 0 004-4v-4z\"\n />\n );\n }\n);\n\nCopyIcon.displayName = \"CopyIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport interface BaseIconWithPathProps extends BaseIconProps {\n d: string;\n}\n\nexport const BaseIconWithPath = React.forwardRef<\n SVGSVGElement,\n BaseIconWithPathProps\n>((props, ref) => {\n const { opacity = 0.54, d, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n fillRule=\"evenodd\"\n clipRule={\"evenodd\"}\n d={d}\n />\n </BaseIcon>\n );\n});\n","import {\n ComponentPropsWithout,\n RemovedProps,\n} from \"../helpers/component-props\";\nimport React from \"react\";\nimport { type VariantProps, tv } from \"tailwind-variants\";\n\nconst iconVariants = tv({\n variants: {\n color: {\n primary: \"oui-text-primary\",\n success: \"oui-text-success\",\n danger: \"oui-text-danger\",\n warning: \"oui-text-warning\",\n // secondary: \"oui-text-secondary\",\n // tertiary: \"oui-text-tertiary\",\n white: \"oui-text-white\",\n black: \"oui-text-black\",\n inherit: \"oui-text-inherit\",\n // gray: \"oui-text-gray\",\n // darkGray: \"oui-text-darkGray\",\n },\n },\n defaultVariants: {\n color: \"black\",\n },\n});\n\nexport interface BaseIconProps\n extends ComponentPropsWithout<\"svg\", RemovedProps>,\n VariantProps<typeof iconVariants> {\n // width?: number;\n size?: number;\n opacity?: number;\n}\n\nexport const BaseIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { size = 24, color, className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n ref={ref}\n className={iconVariants({ className, color })}\n {...rest}\n />\n );\n }\n);\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const CloseIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M4.994 3.906c-.256 0-.523.086-.718.281a1.029 1.029 0 0 0 0 1.438l6.28 6.281-6.28 6.281a1.029 1.029 0 0 0 0 1.438c.39.39 1.047.39 1.437 0l6.281-6.28 6.282 6.28c.39.39 1.047.39 1.437 0 .39-.39.39-1.047 0-1.438l-6.281-6.28 6.281-6.282c.39-.39.39-1.047 0-1.438a1.013 1.013 0 0 0-.719-.28c-.256 0-.523.085-.718.28l-6.282 6.281-6.28-6.28a1.013 1.013 0 0 0-.72-.282Z\"\n />\n </BaseIcon>\n );\n }\n);\n\nCloseIcon.displayName = \"CloseIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\nimport { BaseIconWithPath } from \"./baseIconWithPath\";\n\nexport const CheckIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIconWithPath\n d=\"M19.018 5.997c-.256 0-.523.084-.718.276l-8.707 8.594c-.257.253-.515.206-.717-.092l-2.996-4.42a1.034 1.034 0 0 0-1.405-.276.996.996 0 0 0-.28 1.38l2.995 4.42c.902 1.33 2.659 1.499 3.808.369l8.738-8.563a1 1 0 0 0 0-1.412 1.02 1.02 0 0 0-.718-.276Z\"\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nCheckIcon.displayName = \"CheckIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const ChevronDownIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M5.827 9.03c-.25.05-.502.175-.655.404a1.019 1.019 0 0 0 .28 1.401l5.992 3.985c.334.223.787.223 1.122 0l5.992-3.985c.459-.305.587-.943.28-1.4a1.023 1.023 0 0 0-1.404-.28l-5.43 3.61-5.428-3.61c-.23-.154-.498-.176-.75-.126Z\"\n />\n </BaseIcon>\n );\n }\n);\n\nChevronDownIcon.displayName = \"ChevronDownIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const ChevronUpIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"m11.443 9.17-5.991 3.986a1.02 1.02 0 0 0-.28 1.4c.305.458.945.586 1.404.281l5.429-3.612 5.428 3.612a1.025 1.025 0 0 0 1.404-.28 1.02 1.02 0 0 0-.28-1.401l-5.99-3.986a1.028 1.028 0 0 0-1.124 0Z\"\n />\n </BaseIcon>\n );\n }\n);\n\nChevronUpIcon.displayName = \"ChevronUpIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const CaretUpIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M12.017 5.997c-.3 0-.612.14-.812.406l-6 8c-.495.66-.012 1.594.812 1.594h12c.824 0 1.307-.935.812-1.594l-6-8a1.022 1.022 0 0 0-.812-.406Z\"\n />\n </BaseIcon>\n );\n }\n);\n\nCaretUpIcon.displayName = \"CaretUpIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\nimport { BaseIconWithPath } from \"./baseIconWithPath\";\n\nexport const CaretDownIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n return (\n <BaseIconWithPath\n ref={ref}\n {...props}\n d=\"M6.007 7.996c-.824 0-1.276.935-.781 1.594l6 8a.994.994 0 0 0 1.593 0l6-8c.495-.66.012-1.594-.812-1.594h-12Z\"\n />\n );\n }\n);\n\nCaretDownIcon.displayName = \"CaretDownIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const CaretLeftIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M15.475 5.113a1.014 1.014 0 0 0-1.063.094l-8 6a1.025 1.025 0 0 0 0 1.624l8 6c.659.495 1.594.012 1.594-.812v-12c0-.412-.214-.747-.531-.906Z\"\n />\n </BaseIcon>\n );\n }\n);\n\nCaretLeftIcon.displayName = \"CaretLeftIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const CaretRightIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M8.558 5.113a1.015 1.015 0 0 0-.562.906v12c0 .824.966 1.307 1.625.812l8-6c.533-.4.533-1.224 0-1.624l-8-6a1.014 1.014 0 0 0-1.063-.094Z\"\n />\n </BaseIcon>\n );\n }\n);\n\nCaretRightIcon.displayName = \"CaretRightIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\nimport { BaseIconWithPath } from \"./baseIconWithPath\";\n\nexport const ChevronLeftIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n return (\n <BaseIconWithPath\n ref={ref}\n {...props}\n d=\"M13.778 5.022c-.25.05-.5.176-.653.406l-3.986 6a1.03 1.03 0 0 0 0 1.125l3.986 6c.305.459.943.588 1.401.28.457-.305.585-.946.28-1.405l-3.612-5.438 3.612-5.437c.305-.46.177-1.1-.28-1.406-.229-.154-.498-.176-.748-.125Z\"\n />\n );\n }\n);\n\nChevronLeftIcon.displayName = \"ChevronLeftIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const ChevronRightIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M10.166 5.022c-.25-.051-.519-.03-.748.125a1.027 1.027 0 0 0-.28 1.406l3.612 5.437-3.612 5.438c-.305.459-.177 1.1.28 1.406a1.019 1.019 0 0 0 1.401-.281l3.986-6a1.03 1.03 0 0 0 0-1.125l-3.986-6c-.152-.23-.403-.356-.653-.406Z\"\n />\n </BaseIcon>\n );\n }\n);\n\nChevronRightIcon.displayName = \"ChevronRightIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const SettingIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M8.968 2.455a9.671 9.671 0 0 0-3.72 2.188c-.332.31-.434.818-.218 1.218.8 1.481-.037 3.066-1.844 3.157-.442.022-.833.35-.937.781a8.71 8.71 0 0 0-.25 2.188c0 .687.074 1.464.219 2.156.09.432.466.743.906.781 1.818.158 2.718 1.544 1.906 3.313-.18.393-.098.863.219 1.157 1.062.982 2.282 1.675 3.719 2.125.41.128.873-.027 1.125-.375 1.112-1.54 2.725-1.544 3.78 0 .25.363.706.538 1.126.405a10.1 10.1 0 0 0 3.75-2.155c.33-.301.417-.788.219-1.188-.832-1.68.125-3.22 1.843-3.25.456-.008.862-.307.969-.75.173-.717.219-1.341.219-2.22 0-.754-.09-1.497-.25-2.218a.994.994 0 0 0-.97-.782c-1.69-.003-2.638-1.665-1.811-3.125a.977.977 0 0 0-.188-1.218c-1.09-.99-2.42-1.764-3.812-2.188a.986.986 0 0 0-1.125.406c-.966 1.501-2.77 1.527-3.72.032a1.023 1.023 0 0 0-1.155-.438Zm6.078 2.124a7.904 7.904 0 0 1 1.84 1.054c-.725 2.297.506 4.683 3.056 5.265.063.412.057.662.057 1.088 0 .51.007.688-.051 1.056-2.54.527-3.795 2.845-3.088 5.296-.608.441-1.043.747-1.806 1.043-1.792-1.825-4.28-1.904-6.11.011-.714-.314-1.263-.593-1.818-1.061.688-2.49-.475-4.638-3.057-5.29-.115-.457-.07-1.745-.003-2.136 2.67-.64 3.722-3.003 3.059-5.279.586-.44 1.113-.762 1.798-1.04 1.725 1.755 4.315 1.93 6.123-.007Zm-3.047 3.407a4 4 0 1 0 0 8 4 4 0 0 0 0-8Zm0 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4Z\"\n />\n </BaseIcon>\n );\n }\n);\n\nSettingIcon.displayName = \"SettingIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const SettingFillIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M8.968 2.456a9.669 9.669 0 0 0-3.72 2.187c-.332.31-.434.818-.218 1.219.8 1.48-.037 3.065-1.843 3.156-.443.023-.834.35-.938.78a8.712 8.712 0 0 0-.25 2.188c0 .688.074 1.464.219 2.156.09.433.466.744.906.783 1.818.156 2.718 1.543 1.906 3.311-.18.393-.098.863.219 1.156 1.062.983 2.282 1.675 3.719 2.125.41.13.873-.026 1.125-.375 1.112-1.537 2.725-1.543 3.78 0 .25.364.706.54 1.126.407a10.072 10.072 0 0 0 3.75-2.157c.33-.3.417-.787.219-1.186-.832-1.68.125-3.221 1.843-3.25.456-.008.862-.308.969-.75.173-.717.219-1.342.219-2.22 0-.754-.09-1.497-.25-2.218a.994.994 0 0 0-.97-.781c-1.69-.003-2.638-1.665-1.811-3.125a.979.979 0 0 0-.188-1.22 10.153 10.153 0 0 0-3.812-2.186.986.986 0 0 0-1.125.406c-.966 1.5-2.77 1.527-3.72.03-.242-.382-.723-.574-1.155-.436Zm3.03 5.53a4 4 0 1 1 0 8 4 4 0 0 1 0-8Z\"\n />\n </BaseIcon>\n );\n }\n);\n\nSettingFillIcon.displayName = \"SettingFillIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const CloseSquareFillIcon = React.forwardRef<\n SVGSVGElement,\n BaseIconProps\n>((props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M7.006 2.93a4 4 0 0 0-4 4v10a4 4 0 0 0 4 4h10a4 4 0 0 0 4-4v-10a4 4 0 0 0-4-4h-10Zm2 5c.256 0 .523.086.719.28l2.28 2.282 2.282-2.281c.195-.195.463-.281.719-.281.256 0 .523.086.719.28a1.03 1.03 0 0 1 0 1.439l-2.281 2.28 2.28 2.282a1.03 1.03 0 0 1 0 1.438 1.03 1.03 0 0 1-1.437 0l-2.281-2.281-2.281 2.28a1.03 1.03 0 0 1-1.438 0 1.03 1.03 0 0 1 0-1.437l2.28-2.281-2.28-2.281a1.03 1.03 0 0 1 0-1.438c.195-.195.463-.281.719-.281Z\"\n />\n </BaseIcon>\n );\n});\n\nCloseSquareFillIcon.displayName = \"CloseSquareFillIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const CloseCircleFillIcon = React.forwardRef<\n SVGSVGElement,\n BaseIconProps\n>((props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M11.999 1.953c-5.523 0-10 4.477-10 10s4.477 10 10 10 10-4.477 10-10-4.477-10-10-10Zm-3 6c.256 0 .523.086.719.281l2.28 2.281 2.282-2.28c.196-.196.463-.282.719-.282.256 0 .523.086.719.281a1.03 1.03 0 0 1 0 1.438l-2.281 2.281 2.28 2.281a1.03 1.03 0 0 1 0 1.438 1.03 1.03 0 0 1-1.437 0l-2.281-2.28-2.281 2.28a1.03 1.03 0 0 1-1.438 0 1.029 1.029 0 0 1 0-1.438l2.28-2.28-2.28-2.282a1.029 1.029 0 0 1 0-1.438c.196-.195.463-.28.719-.28Z\"\n />\n </BaseIcon>\n );\n});\n\nCloseCircleFillIcon.displayName = \"CloseCircleFillIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\nimport { BaseIconWithPath } from \"./baseIconWithPath\";\n\nexport const CheckedCircleFillIcon = React.forwardRef<\n SVGSVGElement,\n BaseIconProps\n>((props, ref) => {\n // const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIconWithPath\n ref={ref}\n {...props}\n d=\"M2.014 11.999c0-5.523 4.477-10 10-10s10 4.477 10 10-4.477 10-10 10-10-4.477-10-10Zm14.971-4.687c.227-.217.539-.312.837-.312.298 0 .61.095.836.312a1.102 1.102 0 0 1 0 1.595l-8.15 7.768a1.24 1.24 0 0 1-1.673 0l-3.494-3.33a1.104 1.104 0 0 1 0-1.594 1.24 1.24 0 0 1 1.674 0l2.656 2.531 7.314-6.97Z\"\n ></BaseIconWithPath>\n );\n});\n\nCheckedCircleFillIcon.displayName = \"CheckedCircleFillIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const CheckedSquareFillIcon = React.forwardRef<\n SVGSVGElement,\n BaseIconProps\n>((props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n fillRule=\"evenodd\"\n clipRule={\"evenodd\"}\n d=\"M6.99 2.93a4 4 0 0 0-4 4v10a4 4 0 0 0 4 4h10a4 4 0 0 0 4-4v-10a4 4 0 0 0-4-4h-10Zm9.995 4.382c.227-.217.539-.312.837-.312.298 0 .61.095.836.312a1.102 1.102 0 0 1 0 1.595l-8.15 7.768a1.24 1.24 0 0 1-1.673 0l-3.494-3.33a1.104 1.104 0 0 1 0-1.594 1.24 1.24 0 0 1 1.674 0l2.656 2.531 7.314-6.97Z\"\n />\n </BaseIcon>\n );\n});\n\nCheckedSquareFillIcon.displayName = \"CheckSquareFillIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nconst CheckSquareEmptyIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n fillRule=\"evenodd\"\n clipRule={\"evenodd\"}\n d=\"M6.99 2.93a4 4 0 0 0-4 4v10a4 4 0 0 0 4 4h10a4 4 0 0 0 4-4v-10a4 4 0 0 0-4-4h-10Zm0 2h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-10a2 2 0 0 1-2-2v-10a2 2 0 0 1 2-2Z\"\n />\n </BaseIcon>\n );\n }\n);\n\nCheckSquareEmptyIcon.displayName = \"CheckSquareEmptyIcon\";\n\nexport { CheckSquareEmptyIcon };\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const PlusIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M11.99 2.93a1 1 0 0 0-1 1v7h-7a1 1 0 0 0 0 2h7v7a1 1 0 0 0 2 0v-7h7a1 1 0 0 0 0-2h-7v-7a1 1 0 0 0-1-1Z\"\n />\n </BaseIcon>\n );\n }\n);\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const CircleOutlinedIcon = React.forwardRef<\n SVGSVGElement,\n BaseIconProps\n>((props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M12.014 1.999c-5.523 0-10 4.477-10 10s4.477 10 10 10 10-4.477 10-10-4.477-10-10-10Zm0 2a8 8 0 1 1 0 16 8 8 0 0 1 0-16Z\"\n />\n </BaseIcon>\n );\n});\n\nCircleOutlinedIcon.displayName = \"CircleOutlinedIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const SquareOutlinedIcon = React.forwardRef<\n SVGSVGElement,\n BaseIconProps\n>((props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M6.99 2.93a4 4 0 0 0-4 4v10a4 4 0 0 0 4 4h10a4 4 0 0 0 4-4v-10a4 4 0 0 0-4-4h-10Zm0 2h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-10a2 2 0 0 1-2-2v-10a2 2 0 0 1 2-2Z\"\n />\n </BaseIcon>\n );\n});\n\nSquareOutlinedIcon.displayName = \"SquareOutlinedIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const ExclamationFillIcon = React.forwardRef<\n SVGSVGElement,\n BaseIconProps\n>((props, ref) => {\n const { ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n d=\"M12.014 1.999c-5.523 0-10 4.477-10 10s4.477 10 10 10 10-4.477 10-10-4.477-10-10-10Zm0 5a1 1 0 0 1 1 1v5a1 1 0 0 1-2 0v-5a1 1 0 0 1 1-1Zm0 8a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z\"\n />\n </BaseIcon>\n );\n});\n\nExclamationFillIcon.displayName = \"ExclamationFillIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const QuestionFillIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M12.014 1.953c-5.523 0-10 4.477-10 10s4.477 10 10 10 10-4.477 10-10-4.477-10-10-10Zm0 5a3.006 3.006 0 0 1 3 3c.004 1.11-.516 2.044-1.375 2.906-.18.181-.353.355-.563.532-.099.084-.376.287-.406.312-.422.356-1.05.33-1.406-.094a1.035 1.035 0 0 1 .125-1.437l.375-.313c.168-.14.335-.272.47-.406.518-.522.782-1.022.78-1.5a1 1 0 0 0-1.969-.25c-.14.534-.685.86-1.219.72a1.034 1.034 0 0 1-.718-1.25 2.995 2.995 0 0 1 2.906-2.22Zm0 8a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z\"\n />\n </BaseIcon>\n );\n }\n);\n\nQuestionFillIcon.displayName = \"ExclamationFillIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\nimport { BaseIconWithPath } from \"./baseIconWithPath\";\n\nexport const ArrowLeftRightIcon = React.forwardRef<\n SVGSVGElement,\n BaseIconProps\n>((props, ref) => {\n return (\n <BaseIconWithPath\n d=\"M21.995 16.007c0-.256-.086-.523-.28-.719l-3.72-3.687-1.406 1.406 1.968 2H3.995a1 1 0 000 2h14.562l-1.968 2 1.406 1.406 3.72-3.687c.194-.196.28-.463.28-.719zm-1-8a1 1 0 00-1-1H5.432l1.97-2-1.407-1.406-3.719 3.687a1.03 1.03 0 000 1.438l3.72 3.687L7.4 11.007l-1.969-2h14.563a1 1 0 001-1z\"\n ref={ref}\n {...props}\n />\n );\n});\n\nArrowLeftRightIcon.displayName = \"ArrowLeftRightIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\nimport { BaseIconWithPath } from \"./baseIconWithPath\";\n\nexport const ArrowDownUpIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n return (\n <BaseIconWithPath\n d=\"M16.007 2.014c-.256 0-.523.086-.718.281L11.6 6.015l1.406 1.405 2-1.968v14.562a1 1 0 002 0V5.452l2 1.968 1.407-1.406-3.688-3.719a1.012 1.012 0 00-.719-.28zm-8 1a1 1 0 00-1 1v14.562l-2-1.968-1.406 1.406 3.688 3.72c.39.39 1.047.39 1.437 0l3.688-3.72-1.407-1.406-2 1.968V4.014a1 1 0 00-1-1z\"\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nArrowDownUpIcon.displayName = \"ArrowDownUpIconIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\nimport { BaseIconWithPath } from \"./baseIconWithPath\";\n\nexport const ArrowUpSquareFillIcon = React.forwardRef<\n SVGSVGElement,\n BaseIconProps\n>((props, ref) => {\n return (\n <BaseIconWithPath\n ref={ref}\n {...props}\n d=\"M6.99 20.99a4 4 0 01-4-4v-10a4 4 0 014-4h10a4 4 0 014 4v10a4 4 0 01-4 4h-10zm5-4a1 1 0 001-1v-5h3l-4-4-4 4h3v5a1 1 0 001 1z\"\n ></BaseIconWithPath>\n );\n});\n\nArrowUpSquareFillIcon.displayName = \"ArrowUpSquareFillIconIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const ArrowDownSquareFillIcon = React.forwardRef<\n SVGSVGElement,\n BaseIconProps\n>((props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M6.99 2.99a4 4 0 00-4 4v10a4 4 0 004 4h10a4 4 0 004-4v-10a4 4 0 00-4-4h-10zm5 4a1 1 0 011 1v5h3l-4 4-4-4h3v-5a1 1 0 011-1z\"\n />\n </BaseIcon>\n );\n});\n\nArrowDownSquareFillIcon.displayName = \"ArrowDownSquareFillIconIcon\";\n","import React from \"react\";\nimport { BaseIconProps } from \"./baseIcon\";\nimport { BaseIconWithPath } from \"./baseIconWithPath\";\n\nexport const FeeTierIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n return (\n <BaseIconWithPath\n d=\"M7.998 2.014a4 4 0 00-4 4v12a4 4 0 004 4h8a4 4 0 004-4v-12a4 4 0 00-4-4h-8zm0 2h8a2 2 0 012 2v12a2 2 0 01-2 2h-8a2 2 0 01-2-2v-12a2 2 0 012-2zm1 2a1 1 0 00-1 1v1a1 1 0 001 1h6a1 1 0 001-1v-1a1 1 0 00-1-1h-6zm0 4a1 1 0 100 2 1 1 0 000-2zm3 0a1 1 0 100 2 1 1 0 000-2zm3 0a1 1 0 100 2 1 1 0 000-2zm-6 3a1 1 0 100 2 1 1 0 000-2zm3 0a1 1 0 100 2 1 1 0 000-2zm3 0a1 1 0 00-1 1v3a1 1 0 002 0v-3a1 1 0 00-1-1zm-6 3a1 1 0 100 2 1 1 0 000-2zm3 0a1 1 0 100 2 1 1 0 000-2z\"\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nFeeTierIcon.displayName = \"FeeTierIconIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const EditIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M16.995 1.953a1.02 1.02 0 00-.719.281l-3 3.002-9.006 9.005-1 1c-.14.14-.212.338-.25.532l-1 5.003a.974.974 0 001.155 1.157l5.003-1c.194-.04.392-.112.532-.25l1-1.002 9.005-9.005c.445-.444 2.447-2.446 3.003-3a1.02 1.02 0 00.28-.72c0-1.637-.417-2.807-1.282-3.69-.873-.89-2.039-1.313-3.72-1.313zm.395 2.02c.902.052 1.488.26 1.889.67.41.417.669.997.724 1.882-.547.547-1.35 1.337-2.006 1.994l-2.565-2.564c.658-.657 1.41-1.436 1.958-1.983zm-3.396 3.42l2.564 2.564-7.567 7.567-2.564-2.564 7.568-7.567zM4.99 16.398l2.564 2.564-.094.094c-.66.132-1.993.411-3.22.657l.656-3.22.094-.095z\"\n />\n </BaseIcon>\n );\n }\n);\n\nEditIcon.displayName = \"EditIconIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const EyeIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M12.001 3.998c-2.959 0-5.452 1.454-7.5 3.844a16.652 16.652 0 00-1.812 2.562c-.302.528-.486.936-.594 1.188a1.058 1.058 0 000 .812c.108.252.292.66.594 1.188a16.652 16.652 0 001.812 2.562c2.048 2.39 4.541 3.844 7.5 3.844 2.96 0 5.452-1.454 7.5-3.844a16.652 16.652 0 001.812-2.562c.302-.528.486-.936.594-1.188a1.058 1.058 0 000-.812c-.108-.252-.292-.66-.594-1.188a16.652 16.652 0 00-1.812-2.562c-2.048-2.39-4.54-3.844-7.5-3.844zm0 4a4 4 0 110 8 4 4 0 010-8zm0 2a2 2 0 100 3.999 2 2 0 000-4z\"\n />\n </BaseIcon>\n );\n }\n);\n\nEyeIcon.displayName = \"EyeIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const ShareIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M16.998 1.953a3 3 0 0 0-3 3c0 .257.04.577.102.815L8.747 9.504a3.25 3.25 0 0 0-1.75-.55 3 3 0 1 0 0 6c.633 0 1.257-.236 1.74-.569l5.365 3.766a3.2 3.2 0 0 0-.104.802 3 3 0 1 0 3-3c-.632 0-1.248.228-1.731.562l-5.378-3.763a3.2 3.2 0 0 0 .109-.799c0-.268-.038-.557-.104-.804l5.365-3.752c.479.323 1.118.556 1.739.556a3 3 0 1 0 0-6\"\n />\n </BaseIcon>\n );\n }\n);\n\nShareIcon.displayName = \"ShareIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const EyeCloseIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M12.001 3.998c-2.959-.007-5.452 1.454-7.5 3.844a16.654 16.654 0 00-1.812 2.562c-.302.528-.486.936-.594 1.188a1.058 1.058 0 000 .812c.108.252.292.66.594 1.188.401.703.87 1.419 1.406 2.094.085.107.76.873 1.344 1.468l-1.157 1.125a1.03 1.03 0 000 1.438 1.03 1.03 0 001.438 0l14-14a1.03 1.03 0 000-1.438 1.014 1.014 0 00-.719-.281c-.256 0-.523.086-.719.28l-1.28 1.314c-1.654-1.106-3.298-1.59-5-1.594zm0 4c.518 0 1.31.137 2.031.562l-1.53 1.532c-.158-.082-.457-.094-.5-.094a2 2 0 00-2 2c0 .044-.015.347.03.53-.192.234-1.5 1.5-1.5 1.5a4.204 4.204 0 01-.53-2.03c-.012-2.21 1.79-4 4-4zm7.938.344s-9.755 9.718-11.063 11.03c1.44.572 2.918.626 3.125.626 2.96 0 5.452-1.454 7.5-3.844a16.652 16.652 0 001.812-2.562c.302-.528.486-.936.594-1.188a1.04 1.04 0 000-.812c-.227-.52-.654-1.347-1.312-2.313-.177-.26-.656-.937-.656-.937z\"\n />\n </BaseIcon>\n );\n }\n);\n\nEyeCloseIcon.displayName = \"EyeCloseIcon\";\n","import * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport { type VariantProps } from \"tailwind-variants\";\nimport { tv } from \"../utils/tv\";\nimport makeBlockie from \"ethereum-blockies-base64\";\nimport { useMemo } from \"react\";\n\nconst avatarVariants = tv({\n slots: {\n root: \"oui-relative oui-flex oui-shrink-0 oui-overflow-hidden oui-rounded-full\",\n image: \"oui-aspect-square oui-h-full oui-w-full\",\n fallback:\n \"oui-flex oui-h-full oui-w-full oui-items-center oui-justify-center oui-rounded-full oui-bg-base-2\",\n },\n variants: {\n size: {\n xs: {\n root: \"oui-w-5 oui-h-5\",\n },\n sm: {\n root: \"oui-w-6 oui-h-6\",\n },\n md: {\n root: \"oui-w-8 oui-h-8\",\n },\n lg: {\n root: \"oui-w-10 oui-h-10\",\n },\n xl: {\n root: \"oui-w-12 oui-h-12\",\n },\n },\n },\n defaultVariants: {\n size: \"sm\",\n },\n});\n\nconst AvatarBase = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root> &\n VariantProps<typeof avatarVariants>\n>(({ className, size, ...props }, ref) => {\n const { root } = avatarVariants({ size });\n return (\n <AvatarPrimitive.Root\n ref={ref}\n {...props}\n className={root({ className })}\n />\n );\n});\nAvatarBase.displayName = AvatarPrimitive.Root.displayName;\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => {\n const { image } = avatarVariants();\n return (\n <AvatarPrimitive.Image\n ref={ref}\n className={image({ className })}\n {...props}\n />\n );\n});\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => {\n const { fallback } = avatarVariants({ className });\n return (\n <AvatarPrimitive.Fallback ref={ref} className={fallback()} {...props} />\n );\n});\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\ntype AvatarProps = React.ComponentProps<typeof AvatarBase> &\n VariantProps<typeof avatarVariants> & {\n src?: string;\n alt?: string;\n fallback?: React.ReactNode;\n delayMs?: number;\n onLoadingStatusChange?: AvatarPrimitive.AvatarImageProps[\"onLoadingStatusChange\"];\n };\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n AvatarProps\n>((props, ref) => {\n const { size, src, fallback, delayMs, alt, onLoadingStatusChange, ...rest } =\n props;\n return (\n <AvatarBase {...rest} ref={ref} size={size}>\n <AvatarImage\n src={src}\n onLoadingStatusChange={onLoadingStatusChange}\n alt={alt}\n />\n {typeof fallback !== \"undefined\" && (\n <AvatarFallback delayMs={delayMs}>{fallback}</AvatarFallback>\n )}\n </AvatarBase>\n );\n});\n\nconst EVMAvatar = React.forwardRef<\n React.ElementRef<typeof Avatar>,\n AvatarProps & {\n address: string;\n }\n>((props, ref) => {\n const { address, ...rest } = props;\n const src = useMemo(() => makeBlockie(address), [props.address]);\n return <Avatar {...rest} src={src} />;\n});\n\nexport {\n AvatarBase,\n AvatarImage,\n AvatarFallback,\n Avatar,\n EVMAvatar,\n avatarVariants,\n};\n","import { Avatar } from \"../avatar\";\nimport { FC, useMemo } from \"react\";\nimport { ExcludeXsSizeType, SizeType } from \"../helpers/sizeType\";\n\nexport type TokenIconProps = {\n size?: SizeType;\n name?: string;\n symbol?: string;\n className?: string;\n};\n\nexport const TokenIcon: FC<TokenIconProps> = (props) => {\n const url = useMemo(() => {\n let name = props.name;\n if (typeof props.symbol === \"string\") {\n const arr = props.symbol?.split(\"_\");\n name = arr[1];\n }\n return `https://oss.orderly.network/static/symbol_logo/${name}.png`;\n }, [props.name, props.symbol]);\n\n return (\n <Avatar\n size={props.size}\n src={url}\n alt={props.name}\n className={props.className}\n />\n );\n};\n","import { useMemo, type FC } from \"react\";\nimport { Avatar } from \"../avatar\";\n\nexport type ChainIconProps = {\n size?: \"sm\" | \"md\" | \"lg\";\n chainId: string | number;\n className?: string;\n};\n\nexport const ChainIcon: FC<ChainIconProps> = (props) => {\n const url = useMemo(() => {\n return `https://oss.orderly.network/static/network_logo/${props.chainId}.png`;\n }, [props.chainId]);\n return (\n <Avatar\n size={props.size}\n src={url}\n alt={`${props.chainId}`}\n className={props.className}\n />\n );\n};\n","import { useMemo, type FC } from \"react\";\nimport { Avatar, AvatarBase, avatarVariants } from \"../avatar/avatar\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nexport type WalletIconProps = {\n name: string;\n} & Pick<VariantProps<typeof avatarVariants>, \"size\">;\n\nexport const WalletIcon: FC<WalletIconProps> = (props) => {\n const url = useMemo(() => {\n const split = props.name?.split(\" \");\n const formatWalletName = split?.[0]?.toLowerCase();\n return `https://oss.orderly.network/static/wallet_icon/${formatWalletName}.png`;\n }, [props.name]);\n return <Avatar size={props.size} src={url} alt={`${props.name}`} />;\n};\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\nimport { BaseIconWithPath } from \"./baseIconWithPath\";\n\nexport const CalendarIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n return (\n <BaseIconWithPath\n d=\"M8.006 2.014a1 1 0 0 0-1 1 4 4 0 0 0-4 4v10a4 4 0 0 0 4 4h10a4 4 0 0 0 4-4v-10c0-2.205-1.792-4-4-4a1 1 0 0 0-2 0h-6a1 1 0 0 0-1-1Zm-1 3a1 1 0 0 0 2 0h6a1 1 0 0 0 2 0 2 2 0 0 1 2 2v1h-14v-1a2 2 0 0 1 2-2Zm-2 5h14v7a2 2 0 0 1-2 2h-10a2 2 0 0 1-2-2v-7Zm3 2a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm4 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm4 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm-8 3a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm4 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm4 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2Z\"\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nCalendarIcon.displayName = \"CaretLeftIcon\";\n","import React from \"react\";\nimport { BaseIconProps } from \"./baseIcon\";\nimport { BaseIconWithPath } from \"./baseIconWithPath\";\n\nexport const ServerFillIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n return (\n <BaseIconWithPath\n d=\"M11.998 1.953c-4.362 0-8 1.56-8 4s3.638 4 8 4 8-1.559 8-4-3.638-4-8-4m-8 7.625v2.375c0 2.441 3.638 4 8 4s8-1.559 8-4V9.578c-1.814 1.49-4.642 2.375-8 2.375s-6.186-.885-8-2.375m0 6v2.375c0 2.441 3.638 4 8 4s8-1.559 8-4v-2.375c-1.814 1.49-4.642 2.375-8 2.375s-6.186-.885-8-2.375\"\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nServerFillIcon.displayName = \"ServerFillIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const SortingAscIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n d=\"M12 2.5c-.3 0-.611.112-.81.325l-5.99 6.4c-.495.527-.013 1.275.81 1.275h11.98c.823 0 1.305-.748.81-1.275l-5.99-6.4c-.198-.213-.51-.325-.81-.325\"\n fill=\"currentcolor\"\n fillOpacity=\".98\"\n />\n <path\n d=\"M12 21.5c-.3 0-.611-.112-.81-.325l-5.99-6.4c-.495-.527-.013-1.275.81-1.275h11.98c.823 0 1.305.748.81 1.275l-5.99 6.4c-.198.213-.51.325-.81.325\"\n fill=\"currentcolor\"\n fillOpacity=\".36\"\n />\n </BaseIcon>\n );\n }\n);\n\nSortingAscIcon.displayName = \"SortingAscIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const SortingDescIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n d=\"M12 2.5c-.3 0-.611.112-.81.325l-5.99 6.4c-.495.527-.013 1.275.81 1.275h11.98c.823 0 1.305-.748.81-1.275l-5.99-6.4c-.198-.213-.51-.325-.81-.325\"\n fill=\"currentcolor\"\n fillOpacity=\".36\"\n />\n <path\n d=\"M12 21.5c-.3 0-.611-.112-.81-.325l-5.99-6.4c-.495-.527-.013-1.275.81-1.275h11.98c.823 0 1.305.748.81 1.275l-5.99 6.4c-.198.213-.51.325-.81.325\"\n fill=\"currentcolor\"\n fillOpacity=\".98\"\n />\n </BaseIcon>\n );\n }\n);\n\nSortingDescIcon.displayName = \"SortingDescIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\nimport { BaseIconWithPath } from \"./baseIconWithPath\";\n\nexport const ArrowUpShortIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n return (\n <BaseIconWithPath\n d=\"M11.993 18.012a1 1 0 0 1-.999-.999V9.458l-2.997 2.966-1.405-1.405 4.683-4.714a1 1 0 0 1 .72-.293c.26 0 .521.098.716.293l4.683 4.714-1.405 1.405-2.997-2.966v7.555a1 1 0 0 1-.999.999\"\n ref={ref}\n {...props}\n />\n );\n }\n);\n\n\nexport const ArrowDownShortIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n return (\n <BaseIconWithPath\n d=\"M11.993 6.012a1 1 0 0 0-1 .999v7.555L7.998 11.6l-1.405 1.405 4.683 4.714c.195.196.457.293.719.293.26 0 .522-.098.717-.293l4.683-4.714L15.99 11.6l-2.997 2.966V7.011a1 1 0 0 0-1-.999\"\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nexport const ArrowLeftShortIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n return (\n <BaseIconWithPath\n d=\"M18.012 11.993a1 1 0 0 0-.999-1H9.458l2.966-2.996-1.405-1.405-4.714 4.683a1 1 0 0 0-.293.719c0 .26.098.522.293.717l4.714 4.683 1.405-1.405-2.966-2.997h7.555a1 1 0 0 0 .999-1\"\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nexport const ArrowRightShortIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n return (\n <BaseIconWithPath\n d=\"M6.012 11.993a1 1 0 0 1 .999-1h7.555L11.6 7.998l1.405-1.405 4.714 4.683c.196.195.293.457.293.719 0 .26-.098.522-.293.717l-4.714 4.683L11.6 15.99l2.966-2.997H7.011a1 1 0 0 1-.999-1\"\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nArrowUpShortIcon.displayName = \"ArrowUpShortIcon\";\nArrowDownShortIcon.displayName = \"ArrowDownShortIcon\";\nArrowLeftShortIcon.displayName = \"ArrowLeftShortIcon\";\nArrowRightShortIcon.displayName = \"ArrowRightShortIcon\";\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const SortingIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 0.54, ...rest } = props;\n return (\n <BaseIcon ref={ref} {...rest}>\n <path\n fill=\"currentcolor\"\n fillOpacity={opacity}\n d=\"M12 2.5c-.3 0-.611.112-.81.325l-5.99 6.4c-.495.527-.013 1.275.81 1.275h11.98c.823 0 1.305-.748.81-1.275l-5.99-6.4c-.198-.213-.51-.325-.81-.325m0 19c-.3 0-.611-.112-.81-.325l-5.99-6.4c-.495-.527-.013-1.275.81-1.275h11.98c.823 0 1.305.748.81 1.275l-5.99 6.4c-.198.213-.51.325-.81.325\"\n />\n </BaseIcon>\n );\n }\n);\n\nSortingIcon.displayName = \"SortingIconIcon\";\n","import { FC, PropsWithChildren, ReactNode, cloneElement, useMemo } from \"react\";\nimport { ChainIcon, ChainIconProps } from \"./chainIcon\";\nimport { TokenIcon, TokenIconProps } from \"./tokenIcon\";\nimport { cnBase } from \"tailwind-variants\";\n\nexport type CombineIconProps = {\n secondary: (ChainIconProps | TokenIconProps) & {\n component?: ReactNode;\n };\n};\n\nexport const CombineIcon: FC<PropsWithChildren<CombineIconProps>> = (props) => {\n const { secondary } = props;\n\n const subElement = useMemo(() => {\n const className =\n \"oui-bg-base-6 oui-absolute oui-bottom-0 oui-right-0 oui-outline oui-outline-2 oui-outline-base-1 oui-z-10\";\n\n if (secondary.component) {\n return (\n <div className={cnBase(className, secondary?.className)}>\n {secondary.component}\n </div>\n );\n }\n\n if (\"chainId\" in secondary) {\n return (\n <ChainIcon\n {...secondary}\n className={cnBase(className, secondary?.className)}\n />\n );\n }\n\n return (\n <TokenIcon\n {...secondary}\n className={cnBase(className, secondary?.className)}\n />\n );\n }, [secondary]);\n\n return (\n <div className=\"oui-relative\">\n {props.children}\n {subElement}\n </div>\n );\n};\n","import { BaseIcon } from \"./baseIcon\";\n\nexport type { BaseIconProps } from \"./baseIcon\";\nexport { CloseIcon } from \"./close\";\nexport { CheckIcon } from \"./check\";\nexport { ChevronDownIcon } from \"./chevronDown\";\nexport { ChevronUpIcon } from \"./chevronUp\";\nexport { CaretUpIcon } from \"./caretUp\";\nexport { CaretDownIcon } from \"./caretDown\";\nexport { CaretLeftIcon } from \"./caretLeft\";\nexport { CaretRightIcon } from \"./caretRight\";\nexport { ChevronLeftIcon } from \"./chevronLeft\";\nexport { ChevronRightIcon } from \"./chevronRight\";\nexport { SettingIcon } from \"./setting\";\nexport { SettingFillIcon } from \"./settingFill\";\nexport { CloseSquareFillIcon } from \"./closeSquareFill\";\nexport { CloseCircleFillIcon } from \"./closeCircleFill\";\nexport { CheckedCircleFillIcon } from \"./checkCircleFill\";\nexport { CheckedSquareFillIcon } from \"./checkSquareFill\";\nexport { CheckSquareEmptyIcon } from \"./checkSquareEmpty\";\nexport { PlusIcon } from \"./plus\";\nexport { CircleOutlinedIcon } from \"./circleOutlined\";\nexport { SquareOutlinedIcon } from \"./squareOutlined\";\nexport { ExclamationFillIcon } from \"./exclamationFill\";\nexport { QuestionFillIcon } from \"./questionFill\";\nexport { ArrowLeftRightIcon } from \"./arrowLeftRight\";\nexport { ArrowDownUpIcon } from \"./arrowDownUp\";\nexport { ArrowUpSquareFillIcon } from \"./arrowUpSquareFill\";\nexport { ArrowDownSquareFillIcon } from \"./arrowDownSquareFill\";\nexport { FeeTierIcon } from \"./feeTier\";\nexport { EditIcon } from \"./edit\";\nexport { EyeIcon } from \"./eye\";\nexport { ShareIcon } from \"./share\";\nexport { EyeCloseIcon } from \"./eyeClose\";\n\nexport { TokenIcon } from \"./tokenIcon\";\nexport { ChainIcon } from \"./chainIcon\";\nexport { WalletIcon } from \"./walletIcon\";\nexport { CalendarIcon } from \"./calendar\";\nexport { CopyIcon } from \"./copy\";\nexport { ServerFillIcon } from \"./serverFill\";\nexport { SortingAscIcon } from \"./sortingASCIcon\";\nexport { SortingDescIcon } from \"./sortingDESCIcon\";\nexport {\n ArrowUpShortIcon,\n ArrowDownShortIcon,\n ArrowLeftShortIcon,\n ArrowRightShortIcon,\n} from \"./arrowShort\";\n\nexport { SortingIcon } from \"./sortingIcon\";\n\nimport { CombineIcon } from \"./combine\";\n\ntype IconType = typeof BaseIcon & {\n combine: typeof CombineIcon;\n};\n\nconst Icon = BaseIcon as IconType;\nIcon.combine = CombineIcon;\n\nexport { Icon };\n\nexport type { IconType };\n","import React, { CSSProperties } from \"react\";\nimport { textVariants, type TextProps, Text } from \"./text\";\nimport { VariantProps } from \"tailwind-variants\";\nimport { parseAngleProps } from \"../helpers/parse-props\";\nimport { tv } from \"../utils/tv\";\n\nconst gradientTextVariants = tv({\n // extend: textVariants,\n base: \"oui-text-transparent oui-bg-clip-text\",\n variants: {\n color: {\n primary: \"oui-gradient-primary\",\n brand: \"oui-gradient-brand\",\n success: \"oui-gradient-success\",\n warning: \"oui-gradient-warning\",\n danger: \"oui-gradient-danger\",\n neutral: \"oui-gradient-neutral\",\n // transparent: \"oui-gradient-transparent\",\n inherit: \"oui-text-inherit\",\n },\n },\n});\n\ntype GradientTextProps = Omit<TextProps, \"color\"> &\n VariantProps<typeof gradientTextVariants> & {\n /**\n * Angle of the gradient\n */\n angle?: number;\n };\n\nconst GradientText = React.forwardRef<\n React.ElementRef<\"span\">,\n GradientTextProps\n>((props, ref) => {\n const { color, className, angle, ...rest } = props;\n const style = parseAngleProps({ angle });\n\n return (\n // @ts-ignore\n <Text\n {...rest}\n ref={ref}\n className={gradientTextVariants({ color, className })}\n style={style as CSSProperties}\n />\n );\n});\n\nexport { gradientTextVariants, GradientText };\n\nGradientText.displayName = \"GradientText\";\n","import { SymbolText } from \"./symbol\";\n\nexport { Statistic, StatisticLabel, statisticVariants } from \"./statistic\";\n\nimport { FormattedText } from \"./formatted\";\nimport { GradientText, gradientTextVariants } from \"./gradient\";\nimport { Numeral } from \"./numeral\";\n\nimport { Text as BaseText, textVariants } from \"./text\";\nimport type { TextProps } from \"./text\";\nexport type { NumeralProps } from \"./numeral\";\nexport { parseNumber } from \"./utils\";\n\nexport type TextType = typeof BaseText & {\n formatted: typeof FormattedText;\n numeral: typeof Numeral;\n gradient: typeof GradientText;\n // symbol: typeof SymbolText;\n};\n\nconst Text = BaseText as TextType;\nText.formatted = FormattedText;\nText.numeral = Numeral;\nText.gradient = GradientText;\n// Text.symbol = SymbolText;\n\nexport { Text, textVariants, gradientTextVariants };\nexport type { TextProps };\n","import { forwardRef, useMemo, useRef, useState } from \"react\";\nimport { Input, InputProps } from \"../input\";\nimport { Select } from \"../../select\";\n\nexport type QuantityInputProps = {\n tokens: string[];\n} & Omit<InputProps, \"onClear\" | \"suffix\">;\n\nexport const QuantityInput = forwardRef<HTMLInputElement, QuantityInputProps>(\n (props, ref) => {\n const { tokens, ...rest } = props;\n const [token, setToken] = useState(tokens[0]);\n const tokenOptions = useMemo(() => {\n return props.tokens.map((token) => ({\n name: token,\n }));\n }, [props.tokens]);\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n return (\n <Input\n ref={(node) => {\n // @ts-ignore\n inputRef.current = node;\n if (ref) {\n if (typeof ref === \"function\") {\n ref(node);\n } else {\n ref.current = node;\n }\n }\n }}\n autoComplete=\"off\"\n {...rest}\n suffix={\n <div className=\"oui-max-w-fit\">\n <Select.tokens\n disabled={rest.disabled}\n variant=\"text\"\n tokens={tokenOptions}\n value={token}\n size={rest.size}\n onValueChange={(value) => setToken(value)}\n // According to the design guideline, the token icon are not displayed when the text is right-aligned\n showIcon={rest.align !== \"right\"}\n contentProps={{\n align: \"end\",\n onCloseAutoFocus: (event) => {\n event.preventDefault();\n inputRef.current?.focus();\n },\n }}\n />\n </div>\n }\n />\n );\n }\n);\n","import React, { type InputHTMLAttributes, useId } from \"react\";\nimport { cnBase, type VariantProps } from \"tailwind-variants\";\nimport { BaseInput, BaseInputProps } from \"./baseInput\";\nimport { InputPrefix } from \"./prefix\";\nimport { InputSuffix } from \"./suffix\";\nimport { tv } from \"../utils/tv\";\n\nconst inputVariants = tv({\n slots: {\n input: [\n \"oui-w-full oui-bg-transparent\",\n \"oui-bg-transparent\",\n \"oui-flex-1\",\n \"focus-visible:oui-outline-none\",\n \"oui-flex\",\n \"placeholder:oui-text-base-contrast-20\",\n \"placeholder:oui-text-xs\",\n \"oui-tabular-nums\",\n \"oui-text-white\",\n \"autofill:oui-bg-transparent\",\n \"oui-input-input\",\n \"disabled:oui-cursor-not-allowed\",\n \"oui-peer\",\n ],\n box: [\n \"oui-rounded\",\n \"oui-bg-base-6\",\n \"oui-flex\",\n \"oui-items-center\",\n \"oui-outline\",\n \"oui-outline-offset-0\",\n \"oui-outline-1\",\n \"oui-outline-transparent\",\n \"focus-within:oui-outline-primary\",\n \"oui-input-root\",\n ],\n additional: [\n \"oui-h-full oui-flex oui-flex-col oui-justify-center oui-px-3 oui-text-base-contrast/60\",\n ],\n closeButton: [\n \"oui-cursor-pointer\",\n \"oui-invisible\",\n \"peer-focus:oui-visible\",\n ],\n },\n variants: {\n size: {\n xs: {\n input: [\"oui-h-6\", \"oui-text-2xs\", \"placeholder:oui-text-2xs\"],\n box: [\"oui-h-6\"],\n additional: [\"oui-text-2xs\"],\n },\n sm: {\n input: [\"oui-h-7\", \"oui-text-2xs\", \"placeholder:oui-text-2xs\"],\n box: [\"oui-h-7\"],\n additional: [\"oui-text-2xs\"],\n },\n md: {\n input: [\"oui-h-8\", \"oui-text-2xs\", \"placeholder:oui-text-2xs\"],\n box: [\"oui-h-8\"],\n additional: [\"oui-text-2xs\"],\n },\n lg: {\n input: [\"oui-h-10\", \"oui-text-sm\", \"placeholder:oui-text-sm\"],\n box: [\"oui-h-10 oui-rounded-md\"],\n additional: [\"oui-text-sm\"],\n },\n xl: {\n input: [\"oui-h-12\", \"oui-text-base\", \"placeholder:oui-text-base\"],\n box: [\"oui-h-12 oui-rounded-md\"],\n additional: [\"oui-text-sm\"],\n },\n },\n color: {\n success: {\n box: [\"oui-outline-success\"],\n },\n danger: {\n box: [\"oui-outline-danger\"],\n },\n warning: {\n box: [\"oui-outline-warning\"],\n },\n default: {\n box: [\"oui-outline-transparent\"],\n },\n },\n disabled: {\n true: {\n input: [\"oui-cursor-not-allowed\", \"oui-text-base-contrast-20\"],\n box: [\"oui-bg-base-5\"],\n },\n },\n pl: {\n true: {\n box: \"oui-pl-3\",\n },\n false: {\n box: \"oui-pl-0\",\n },\n },\n pr: {\n true: {\n box: \"oui-pr-3\",\n },\n false: {\n box: \"oui-pr-0\",\n },\n },\n fullWidth: {\n true: {\n box: \"oui-w-full\",\n },\n },\n align: {\n center: {\n input: \"oui-text-center\",\n },\n left: {\n input: \"oui-text-left\",\n },\n right: {\n input: \"oui-text-right\",\n },\n },\n },\n // compoundVariants: [{ size: \"default\", className: [\"oui-bg-transparent\"] }],\n defaultVariants: {\n size: \"lg\",\n },\n});\n\ninterface InputProps<T = string>\n extends BaseInputProps<T>,\n VariantProps<typeof inputVariants> {\n prefix?: string | React.ReactNode;\n suffix?: string | React.ReactNode;\n fullWidth?: boolean;\n onClear?: () => void;\n classNames?: {\n input?: string;\n root?: string;\n additional?: string;\n clearButton?: string;\n };\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref) => {\n const {\n size,\n disabled,\n color,\n suffix,\n prefix,\n id,\n pl,\n pr,\n fullWidth,\n className,\n classNames,\n onClear,\n align,\n ...inputProps\n } = props;\n\n const { input, box, additional, closeButton } = inputVariants({\n size,\n disabled,\n color,\n fullWidth,\n align,\n // className: cnBase(className, classes?.root),\n\n pl: typeof prefix === \"undefined\" || pl,\n pr: typeof suffix === \"undefined\" || pr,\n });\n const cid = useId();\n\n const suffixElement =\n typeof onClear !== \"undefined\" ? (\n <ClearButton\n className={closeButton({ className: classNames?.clearButton })}\n onClick={() => {\n onClear?.();\n }}\n value={inputProps.value as string | number}\n />\n ) : (\n suffix\n );\n\n return (\n <div className={box({ className: cnBase(className, classNames?.root) })}>\n <InputPrefix\n id={id || cid}\n prefix={prefix}\n className={additional({ className: classNames?.additional })}\n />\n <BaseInput\n {...inputProps}\n id={id || cid}\n disabled={disabled}\n ref={ref}\n className={input({ align, className: classNames?.input })}\n />\n <InputSuffix\n id={id || cid}\n suffix={suffixElement}\n className={additional({ className: classNames?.additional })}\n />\n </div>\n );\n});\n\nconst ClearButton = React.forwardRef<\n HTMLButtonElement,\n { onClick: () => void; value: string | number; className?: string }\n>((props, ref) => {\n return (\n <button\n onMouseDown={(event) => {\n event.preventDefault();\n props.onClick();\n }}\n ref={ref}\n className={props.className}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8 1.302a6.667 6.667 0 1 0 0 13.333A6.667 6.667 0 0 0 8 1.302m-2 4c.17 0 .349.057.479.187l1.52 1.521L9.52 5.49a.68.68 0 0 1 .48-.188c.17 0 .348.057.479.187.26.261.26.698 0 .96l-1.52 1.52 1.52 1.52c.26.261.26.698 0 .96a.687.687 0 0 1-.959 0L8 8.926l-1.521 1.521a.686.686 0 0 1-.959 0 .686.686 0 0 1 0-.959l1.521-1.52-1.52-1.52a.686.686 0 0 1 0-.96A.68.68 0 0 1 6 5.302\"\n fill=\"#fff\"\n fillOpacity=\".2\"\n />\n </svg>\n </button>\n );\n});\n\nexport { Input, inputVariants };\n\nexport type { InputProps };\n","import React, {\n useState,\n useRef,\n useCallback,\n useMemo,\n useEffect,\n} from \"react\";\nimport { InputHTMLAttributes } from \"react\";\nimport { InputFormatter } from \"./formatter/inputFormatter\";\nimport { findLongestCommonSubString } from \"@orderly.network/utils\";\n\nexport interface BaseInputProps<T = string>\n extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n \"size\" | \"prefix\" | \"disabled\" | \"inputMode\" | \"color\"\n > {\n disabled?: boolean;\n\n clearable?: boolean;\n onClean?: () => void;\n fixClassName?: string;\n helpText?: string;\n loading?: boolean;\n inputMode?: \"decimal\" | \"numeric\" | \"amount\";\n containerClassName?: string;\n\n formatters?: InputFormatter[];\n\n // dp?: number;\n // tick?: number;\n\n onValueChange?: (value: T) => void;\n}\n\nexport const BaseInput = React.forwardRef<HTMLInputElement, BaseInputProps>(\n (props, ref) => {\n const {\n clearable,\n onClean,\n fixClassName,\n helpText,\n loading,\n inputMode,\n containerClassName,\n onValueChange,\n onChange,\n id,\n formatters,\n value,\n ...inputProps\n } = props;\n\n const [cursor, setCursor] = useState<number | null>(null);\n const innerInputRef = useRef<HTMLInputElement>(null);\n const prevInputValue = useRef<string | null>(null);\n\n const innerFormatters = useMemo<InputFormatter[]>(() => {\n return formatters ?? [];\n }, [formatters]);\n\n useEffect(() => {\n if (!ref) return;\n if (typeof ref === \"function\") {\n ref(innerInputRef.current);\n } else {\n ref.current = innerInputRef.current;\n }\n }, [innerInputRef, ref]);\n\n const formatToRender = useCallback(\n (value: string) => {\n if (!Array.isArray(innerFormatters) || innerFormatters.length === 0)\n return value;\n if (value === null || value === undefined) return \"\";\n let index = 0;\n while (index < innerFormatters.length) {\n value = innerFormatters[index].onRenderBefore(value, {});\n\n index++;\n }\n\n return value;\n },\n [innerFormatters]\n );\n\n const formatToChange = useCallback(\n (value: string) => {\n if (!Array.isArray(innerFormatters) || innerFormatters.length === 0)\n return value;\n if (value === null || value === undefined) return \"\";\n let index = 0;\n while (index < innerFormatters.length) {\n value = innerFormatters[index].onSendBefore(value, { dp: 2 });\n index++;\n }\n\n return value;\n },\n [innerFormatters]\n );\n\n const formattedValue = useMemo(() => {\n if (typeof value === \"undefined\") return value;\n return formatToRender(value as string);\n }, [value]);\n\n // fix cursor pointer jump to end;\n useEffect(() => {\n if (document.activeElement !== innerInputRef.current) return;\n // filter the thousands separator\n const nextValueLen = `${formattedValue}`.length;\n const prevValueLen = prevInputValue.current?.length || 0;\n\n const next = cursor ? cursor + (nextValueLen - prevValueLen) : 0;\n innerInputRef.current?.setSelectionRange(next, next);\n }, [formattedValue]);\n\n const onInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.value.length < (props.value as string)?.length) {\n const currentCursor = event.target.selectionStart;\n const diffIndex = findLongestCommonSubString(\n `${props.value}`,\n event.target.value\n );\n\n if (diffIndex > -1) {\n // @ts-ignore\n const diffStr = `${props.value}`.at(diffIndex);\n if (diffStr === \",\") {\n event.target.value = `${event.target.value.substring(\n 0,\n diffIndex - 1\n )}${event.target.value.substring(diffIndex)}`;\n\n event.target.selectionStart = currentCursor ? currentCursor - 1 : 0;\n }\n }\n }\n\n if (typeof onChange === \"function\") {\n onChange(event);\n }\n\n if (typeof onValueChange === \"function\") {\n let value = event.target.value;\n\n value = formatToChange(value);\n\n onValueChange(value);\n }\n prevInputValue.current = event.target.value;\n setCursor(event.target.selectionStart);\n };\n\n // const onInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n // // setShowTooltip(!!error);\n // // props.onFocus?.();\n // };\n //\n // const onInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n // // setShowTooltip(false);\n // };\n return (\n <input\n type=\"text\"\n {...inputProps}\n ref={innerInputRef}\n // onBlur={onInputBlur}\n // onFocus={onInputFocus}\n onChange={onInputChange}\n value={formattedValue}\n id={id}\n />\n );\n }\n);\n","import { FC, PropsWithChildren } from \"react\";\nimport { cnBase } from \"tailwind-variants\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nexport const InputAdditional: FC<\n PropsWithChildren<{\n className?: string;\n name?: string;\n asChild?: boolean;\n as?: string;\n }>\n> = (props) => {\n const { asChild, as = \"label\" } = props;\n\n const Comp = asChild ? Slot : \"label\";\n\n return (\n <Comp\n htmlFor={props.name}\n className={cnBase(\n \"oui-h-full oui-flex oui-flex-col oui-justify-center oui-px-3 oui-text-base-contrast/60\",\n props.className\n )}\n >\n {props.children}\n </Comp>\n );\n};\n","import React from \"react\";\nimport { cnBase } from \"tailwind-variants\";\nimport { InputAdditional } from \"./inputAdditional\";\n\ninterface InputPrefixProps {\n prefix?: string | React.ReactNode;\n className?: string;\n id: string;\n}\n\nexport const InputPrefix: React.FC<InputPrefixProps> = (props) => {\n const { prefix, id } = props;\n if (typeof prefix === \"undefined\") {\n return null;\n }\n if (typeof prefix === \"string\") {\n return (\n <InputAdditional name={id} className={props.className}>\n {prefix}\n </InputAdditional>\n );\n }\n return prefix;\n};\n","import React from \"react\";\nimport { InputAdditional } from \"./inputAdditional\";\n\ninterface InputPrefixProps {\n suffix?: string | React.ReactNode;\n className?: string;\n id: string;\n}\n\nexport const InputSuffix: React.FC<InputPrefixProps> = (props) => {\n const { suffix, id } = props;\n if (typeof suffix === \"undefined\") {\n return null;\n }\n if (typeof suffix === \"string\") {\n return (\n <InputAdditional name={id} className={props.className}>\n {suffix}\n </InputAdditional>\n );\n }\n return suffix;\n};\n","import React, { KeyboardEvent, useRef, useState } from \"react\";\nimport { SelectOption, SelectWithOptionsProps } from \"./withOptions\";\n\nimport { Input } from \"../input\";\nimport { CaretDownIcon } from \"../icon\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { PopoverRoot, PopoverAnchor, PopoverContent } from \"../popover\";\nimport { selectVariants } from \"./selectPrimitive\";\nimport { SizeType } from \"../helpers/sizeType\";\nimport { ScrollArea } from \"../scrollarea\";\n\nexport type CombineSelectProps = {\n placeholder?: string;\n} & SelectWithOptionsProps;\n\nexport const CombineSelect = (props: CombineSelectProps) => {\n const { options, variant, valueFormatter, ...rest } = props;\n const [keyword, setKeyword] = useState<string>(\"\");\n // const [open, setOpen] = useState<boolean>(props.defaultOpen || false);\n const [value, setValue] = useState<string | undefined>(props.value ?? \"\");\n const { trigger } = selectVariants({\n size: props.size,\n variant,\n });\n\n const [selectedIndex, setSelectedIndex] = useState(() =>\n typeof props.value === \"undefined\"\n ? -1\n : options.findIndex((option) => option.value === props.value)\n );\n\n const [focused, setFocused] = useState<boolean>(false);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const onFocus = () => {\n setFocused(true);\n // setOpen(true);\n };\n\n const filteredOptions = !keyword\n ? options\n : options.filter((option) => {\n if (option.value.toLowerCase().includes(keyword.toLowerCase()))\n return true;\n });\n\n // const onKeyDown = useCallback(\n // (e: React.KeyboardEvent) => {\n // console.log(e.code);\n // },\n // [filteredOptions]\n // );\n\n return (\n <PopoverRoot open={focused}>\n <PopoverAnchor>\n <Input\n ref={inputRef}\n size={props.size}\n autoComplete={\"off\"}\n onFocus={onFocus}\n onBlur={() => {\n setFocused(false);\n }}\n placeholder={props.placeholder ?? \"All\"}\n value={\n focused\n ? keyword\n : typeof valueFormatter === \"function\"\n ? (valueFormatter(value ?? \"\", {\n placeholder: props.placeholder,\n }) as string)\n : value\n }\n onValueChange={(value) => {\n setKeyword(value);\n }}\n // onKeyDown={onKeyDown}\n\n classNames={{\n root: trigger({\n className: \"oui-w-24 oui-peer\",\n }),\n input: \"oui-text-base-contrast-54 oui-font-semibold\",\n }}\n data-state={focused ? \"open\" : \"closed\"}\n suffix={\n <SelectPrimitive.Icon\n onMouseDown={(e) => {\n e.preventDefault();\n focused ? inputRef.current?.blur() : inputRef.current?.focus();\n }}\n asChild\n className=\"oui-transition-transform peer-data-[state=open]:oui-rotate-180 peer-data-[state=closed]:oui-rotate-0 oui-mx-2\"\n >\n <CaretDownIcon\n size={12}\n className=\"oui-text-inherit\"\n // opacity={1}\n />\n </SelectPrimitive.Icon>\n }\n />\n </PopoverAnchor>\n <PopoverContent\n onOpenAutoFocus={(e) => {\n e.preventDefault();\n setKeyword(\"\");\n }}\n className={\"oui-w-[var(_--radix-popover-trigger-width)] oui-p-1\"}\n >\n <ScrollArea className=\"oui-h-[200px]\">\n {filteredOptions.map((option, index) => {\n return (\n <SelectItem\n option={option}\n key={index}\n size={props.size}\n activated={selectedIndex === index}\n onClick={(value) => {\n setValue(value.value);\n setSelectedIndex(index);\n props.onValueChange?.(value.value);\n inputRef.current?.blur();\n // setKeyword(value.value);\n }}\n />\n );\n })}\n </ScrollArea>\n </PopoverContent>\n </PopoverRoot>\n );\n};\n\nconst SelectItem = (props: {\n option: SelectOption;\n size?: SizeType;\n activated: boolean;\n onClick: (item: SelectOption) => void;\n}) => {\n const { item } = selectVariants({\n size: props.size,\n });\n return (\n <button\n className={item({\n className: `oui-text-base-contrast-54 oui-w-full ${\n props.activated ? \"oui-bg-base-7\" : \"\"\n }`,\n })}\n onMouseDown={(e) => {\n e.preventDefault();\n props.onClick(props.option);\n }}\n >\n {props.option.label}\n </button>\n );\n};\n","import * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { type VariantProps } from \"tailwind-variants\";\nimport { tv } from \"../utils/tv\";\n\nconst popoverVariants = tv({\n base: [\n \"oui-z-50\",\n \"oui-w-72\",\n \"oui-rounded-md\",\n // \"oui-border\",\n // \"oui-border-base-6\",\n // \"oui-bg-popover\",\n \"oui-p-4\",\n \"oui-bg-base-8\",\n // \"oui-text-popover-foreground\",\n \"oui-shadow-md\",\n \"oui-outline-none\",\n \"data-[state=open]:oui-animate-in\",\n \"data-[state=closed]:oui-animate-out\",\n \"data-[state=closed]:oui-fade-out-0\",\n \"data-[state=open]:oui-fade-in-0\",\n \"data-[state=closed]:oui-zoom-out-95\",\n \"data-[state=open]:oui-zoom-in-95\",\n \"data-[side=bottom]:oui-slide-in-from-top-2\",\n \"data-[side=left]:oui-slide-in-from-right-2\",\n \"data-[side=right]:oui-slide-in-from-left-2\",\n \"data-[side=top]:oui-slide-in-from-bottom-2\",\n ],\n});\n\nconst PopoverRoot = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverAnchor = PopoverPrimitive.Anchor;\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> &\n VariantProps<typeof popoverVariants>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={popoverVariants({ className })}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\ntype PopoverProps = PopoverPrimitive.PopoverProps & {\n content: React.ReactNode;\n arrow?: boolean;\n contentProps?: PopoverPrimitive.PopoverContentProps;\n};\n\n/**\n * Popover component\n * @param {React.ReactNode} content - The content of the popover\n */\nconst Popover: React.FC<React.PropsWithChildren<PopoverProps>> = (props) => {\n const { arrow, content, contentProps, ...popoverProps } = props;\n return (\n <PopoverRoot {...popoverProps}>\n <PopoverTrigger asChild>{props.children}</PopoverTrigger>\n <PopoverContent {...contentProps}>\n {content}\n\n {arrow && (\n <PopoverPrimitive.Arrow\n className={\"oui-fill-base-8\"}\n width={10}\n height={6}\n />\n )}\n </PopoverContent>\n </PopoverRoot>\n );\n};\n\nexport { PopoverRoot, PopoverTrigger, PopoverContent, PopoverAnchor, Popover };\n","import * as React from \"react\";\n\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { type VariantProps } from \"tailwind-variants\";\nimport { tv } from \"../utils/tv\";\n\nimport { CaretDownIcon, CaretUpIcon } from \"../icon\";\n\nconst selectVariants = tv({\n slots: {\n trigger: [\n \"oui-flex\",\n \"oui-group\",\n \"oui-w-full\",\n \"oui-items-center\",\n \"oui-justify-between\",\n \"oui-whitespace-nowrap\",\n \"oui-rounded-md\",\n \"oui-px-2\",\n // \"oui-py-2\",\n\n \"oui-space-x-2\",\n // \"oui-text-sm\",\n \"oui-shadow-sm\",\n // \"oui-ring-offset-background\",\n \"oui-text-base-contrast-54\",\n \"placeholder:oui-text-base-contrast-54\",\n \"data-[state=open]:oui-text-base-contrast-80\",\n \"focus:oui-outline-none\",\n \"focus:oui-ring-1\",\n \"focus:oui-ring-ring\",\n \"disabled:oui-cursor-not-allowed\",\n \"disabled:oui-opacity-50\",\n \"[&>span]:oui-line-clamp-1\",\n ],\n scrollUpButton:\n \"oui-flex oui-cursor-default oui-items-center oui-justify-center oui-py-1\",\n scrollDownButton:\n \"oui-flex oui-cursor-default oui-items-center oui-justify-center oui-py-1\",\n content: [\n \"oui-relative\",\n \"oui-z-50\",\n \"oui-max-h-96\",\n // \"oui-min-w-[8rem]\",\n \"oui-overflow-hidden\",\n \"oui-rounded-md\",\n \"oui-bg-base-8\",\n \"oui-text-base-contrast\",\n // \"oui-bg-popover\",\n // \"oui-text-popover-foreground\",\n \"oui-shadow-md\",\n \"data-[state=open]:oui-animate-in\",\n \"data-[state=closed]:aoui-nimate-out\",\n \"data-[state=closed]:oui-fade-out-0\",\n \"data-[state=open]:oui-fade-in-0\",\n \"data-[state=closed]:oui-zoom-out-95\",\n \"data-[state=open]:oui-zoom-in-95\",\n \"data-[side=bottom]:oui-slide-in-from-top-2\",\n \"data-[side=left]:oui-slide-in-from-right-2\",\n \"data-[side=right]:oui-slide-in-from-left-2\",\n \"data-[side=top]:oui-slide-in-from-bottom-2\",\n ],\n viewport: [\"oui-p-1\"],\n label: \"oui-px-2 oui-py-1.5 oui-text-sm oui-font-semibold\",\n item: [\n \"oui-option-item\",\n \"oui-relative\",\n \"oui-flex\",\n // \"oui-w-full\",\n \"oui-cursor-default\",\n \"oui-select-none\",\n \"oui-items-center\",\n \"oui-rounded-sm\",\n \"oui-py-1\",\n \"oui-pl-2\",\n \"oui-pr-8\",\n \"oui-text-sm\",\n \"oui-outline-none\",\n \"hover:oui-bg-base-6\",\n \"hover:oui-rounded\",\n \"focus:oui-bg-accent\",\n \"focus:oui-text-accent-foreground\",\n \"data-[disabled]:oui-pointer-events-none\",\n \"data-[disabled]:oui-opacity-50\",\n ],\n separator: \"-oui-mx-1 oui-my-1 oui-h-px oui-bg-muted\",\n icon: \"\",\n },\n variants: {\n variant: {\n outlined: {\n trigger: [\"oui-border oui-border-line-6 oui-bg-line-4\"],\n },\n contained: {\n trigger: [\"oui-bg-base-4\"],\n },\n text: {\n trigger: [],\n },\n // text\n },\n position: {\n popper: {\n content: [\n \"data-[side=bottom]:oui-translate-y-1\",\n \"data-[side=left]:-oui-translate-x-1\",\n \"data-[side=right]:oui-translate-x-1\",\n \"data-[side=top]:-oui-translate-y-1\",\n ],\n viewport:\n \"oui-h-[var(--radix-select-trigger-height)] oui-w-full oui-min-w-[var(--radix-select-trigger-width)]\",\n },\n \"item-aligned\": {\n content: \"\",\n viewport: \"\",\n },\n },\n size: {\n xs: {\n trigger: [\"oui-h-6\", \"oui-text-2xs\"],\n item: [\"oui-h-6\", \"oui-text-2xs\"],\n icon: [\"oui-w-3\", \"oui-h-3\"],\n },\n sm: {\n trigger: [\"oui-h-7\", \"oui-text-2xs\"],\n item: [\"oui-h-7\", \"oui-text-2xs\"],\n icon: [\"oui-w-4\", \"oui-h-4\"],\n },\n md: {\n trigger: [\"oui-h-8\", \"oui-text-2xs\"],\n item: [\"oui-h-7\", \"oui-text-2xs\"],\n icon: [\"oui-w-4\", \"oui-h-4\"],\n },\n lg: {\n trigger: [\"oui-h-10\", \"oui-text-sm\", \"oui-px-3\"],\n item: [\"oui-h-8\", \"oui-text-2xs\"],\n icon: [\"oui-w-5\", \"oui-h-5\"],\n },\n xl: {\n trigger: [\"oui-h-12\", \"oui-text-2xs\", \"oui-px-3\"],\n item: [\"oui-h-12\", \"oui-text-2xs\"],\n icon: [\"oui-w-6\", \"oui-h-6\"],\n },\n },\n error: {\n true: {\n trigger: [\n \"oui-border-danger\",\n \"focus:oui-ring-danger\",\n \"focus:oui-ring-ring-danger\",\n ],\n },\n },\n },\n defaultVariants: {\n size: \"lg\",\n variant: \"outlined\",\n },\n});\n\nconst SelectRoot = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> &\n VariantProps<typeof selectVariants> & {\n showCaret?: boolean;\n }\n>(\n (\n {\n className,\n children,\n size,\n error,\n variant,\n asChild,\n showCaret = true,\n ...props\n },\n ref\n ) => {\n const { trigger } = selectVariants({ size, error, variant });\n if (asChild) {\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n className={trigger({ className })}\n asChild={asChild}\n {...props}\n >\n {children}\n </SelectPrimitive.Trigger>\n );\n }\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n className={trigger({ className })}\n asChild={asChild}\n {...props}\n >\n {children}\n\n <>\n {showCaret && (\n <SelectPrimitive.Icon\n asChild\n className=\"oui-transition-transform group-data-[state=open]:oui-rotate-180 group-data-[state=closed]:oui-rotate-0\"\n >\n <CaretDownIcon\n size={12}\n className=\"oui-text-inherit\"\n opacity={1}\n />\n </SelectPrimitive.Icon>\n )}\n </>\n </SelectPrimitive.Trigger>\n );\n }\n);\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => {\n const { scrollUpButton } = selectVariants();\n return (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={scrollUpButton({ className })}\n {...props}\n >\n <CaretUpIcon size={16} color={\"white\"} />\n </SelectPrimitive.ScrollUpButton>\n );\n});\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => {\n const { scrollDownButton } = selectVariants();\n return (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={scrollDownButton({ className })}\n {...props}\n >\n <CaretDownIcon size={16} color={\"white\"} />\n </SelectPrimitive.ScrollDownButton>\n );\n});\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => {\n const { content, viewport } = selectVariants({ position, className });\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={content({ className })}\n position={position}\n {...props}\n >\n {/* <SelectScrollUpButton /> */}\n <SelectPrimitive.Viewport className={viewport()}>\n {children}\n </SelectPrimitive.Viewport>\n {/* <SelectScrollDownButton /> */}\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n});\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => {\n const { label } = selectVariants();\n return (\n <SelectPrimitive.Label\n ref={ref}\n className={label({ className })}\n {...props}\n />\n );\n});\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item> & {\n size?: VariantProps<typeof selectVariants>[\"size\"];\n }\n>(({ className, children, size, ...props }, ref) => {\n const { item } = selectVariants({ size });\n return (\n <SelectPrimitive.Item ref={ref} className={item({ className })} {...props}>\n {/* <span className=\"oui-absolute oui-right-2 oui-flex vh-3.5 oui-w-3.5 oui-items-center oui-justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon size={16} />\n </SelectPrimitive.ItemIndicator>\n </span> */}\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n});\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => {\n const { separator } = selectVariants();\n return (\n <SelectPrimitive.Separator\n ref={ref}\n className={separator({ className })}\n {...props}\n />\n );\n});\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n // Select: ,\n SelectRoot,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n selectVariants,\n};\n","import React from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\n\nimport { type VariantProps } from \"tailwind-variants\";\nimport { tv } from \"../utils/tv\";\n\nconst scrollAreaVariants = tv({\n slots: {\n root: \"oui-relative oui-overflow-hidden oui-scroll-area-root\",\n viewport: \"oui-h-full oui-w-full oui-rounded-[inherit]\",\n bar: [\n \"oui-flex\",\n \"oui-touch-none\",\n \"oui-select-none\",\n \"oui-transition-colors\",\n ],\n tumb: \"oui-relative oui-flex-1 oui-rounded-full oui-bg-base-10\",\n },\n variants: {\n orientation: {\n vertical: {\n bar: \"oui-h-full oui-w-2 oui-border-l oui-border-l-transparent oui-p-[1px]\",\n },\n\n horizontal: {\n bar: \"oui-h-2 oui-flex-col oui-border-t oui-border-t-transparent oui-p-[1px]\",\n },\n },\n },\n});\n\ninterface ScrollAreaProps\n extends React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>,\n VariantProps<typeof scrollAreaVariants> {}\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n ScrollAreaProps\n>(({ className, children, orientation = \"vertical\", ...props }, ref) => {\n const { root, viewport, bar } = scrollAreaVariants({\n // className,\n orientation,\n });\n\n return (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={root({ className })}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className={viewport()}>\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar orientation={orientation} />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n});\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => {\n const { bar, tumb } = scrollAreaVariants({ className, orientation });\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={bar({ className })}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className={tumb()} />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n});\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar, scrollAreaVariants };\n\nexport { type ScrollAreaProps };\n","import { PropsWithoutRef, useEffect, useMemo, useState } from \"react\";\nimport { selectVariants } from \"./selectPrimitive\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { VariantProps } from \"tailwind-variants\";\nimport { ChainIcon } from \"../icon\";\nimport { Flex } from \"../flex\";\nimport { tv } from \"../utils/tv\";\nimport { Box } from \"../box\";\nimport { Either } from \"../misc/either\";\nimport { Text } from \"../typography\";\n\nconst chainSelectVariants = tv({\n extend: selectVariants,\n slots: {\n icon: \"\",\n item: [\"oui-text-2xs\", \"oui-rounded-lg\", \"oui-cursor-pointer\"],\n itemSize: \"\",\n tag: \"oui-bg-success/20 oui-text-success oui-px-2 oui-rounded oui-font-semibold\",\n },\n variants: {\n size: {\n xs: {\n icon: \"\",\n },\n sm: {\n icon: \"\",\n },\n md: {\n icon: \"oui-w-5 oui-h-5\",\n item: \"oui-px-4 oui-py-3 oui-h-6 oui-box-content\",\n itemSize: \"oui-w-6 oui-h-6\",\n },\n lg: {\n icon: \"oui-w-6 oui-h-6\",\n },\n xl: {\n icon: \"oui-w-7 oui-h-7\",\n },\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\ntype ChainItem = {\n name: string;\n id: number;\n lowestFee?: boolean;\n};\n\ntype ChainSelectProps = {\n value?: number;\n onChange?: (chain: ChainItem) => void;\n chains: {\n mainnet: ChainItem[];\n testnet: ChainItem[];\n };\n contentProps?: PropsWithoutRef<typeof SelectPrimitive.Content>;\n} & VariantProps<typeof chainSelectVariants> &\n PropsWithoutRef<typeof SelectPrimitive.Root>;\n\nfunction ChainSelectItem(props: {\n chain: ChainItem;\n itemClassName: string;\n iconClassName: string;\n feeClassName: string;\n lowestFee?: boolean;\n}) {\n return (\n <SelectPrimitive.SelectItem\n value={`${props.chain.id}`}\n className={props.itemClassName}\n >\n <Flex itemAlign={\"center\"} justify={\"between\"} width={\"100%\"}>\n <Flex gap={2} itemAlign={\"center\"}>\n <ChainIcon chainId={props.chain.id} className={props.iconClassName} />\n <Text size=\"2xs\">{props.chain.name}</Text>\n {props.lowestFee && (\n <span className={props.feeClassName}>lowest fee</span>\n )}\n </Flex>\n <SelectPrimitive.ItemIndicator>\n <Box width={\"6px\"} height={\"6px\"} gradient={\"brand\"} r={\"full\"} />\n </SelectPrimitive.ItemIndicator>\n </Flex>\n </SelectPrimitive.SelectItem>\n );\n}\n\nconst ChainSelect = (props: ChainSelectProps) => {\n const {\n chains = {\n mainnet: [],\n testnet: [],\n },\n size,\n error,\n variant,\n position,\n contentProps,\n value,\n ...rest\n } = props;\n\n // console.log(\"ChainSelectItem\", props);\n\n const mergedChains = useMemo(() => {\n return [...chains.mainnet, ...chains.testnet];\n }, [chains]);\n\n const { trigger, icon, content, item, itemSize, viewport, tag } =\n chainSelectVariants({\n size,\n variant,\n error,\n });\n\n const [currentChain, setCurrentChain] = useState<number | undefined>(\n props.value\n );\n\n useEffect(() => {\n if (props.value !== currentChain) {\n setCurrentChain(props.value);\n }\n }, [props.value]);\n\n const onChange = (value: any) => {\n if (!chains || !Array.isArray(mergedChains)) return;\n const selected = mergedChains.find((chain) => chain.id === Number(value));\n setCurrentChain(selected?.id);\n if (!selected) return;\n props.onChange?.(selected);\n };\n\n return (\n <SelectPrimitive.Root\n {...rest}\n value={`${currentChain}`}\n onValueChange={onChange}\n >\n <SelectPrimitive.Trigger className={trigger()} asChild>\n <button className=\"oui-relative oui-px-3 oui-box-border oui-min-w-11\">\n {!!currentChain && (\n <ChainIcon chainId={currentChain} className={icon()} />\n )}\n <svg\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"oui-absolute oui-right-0 oui-bottom-0\"\n >\n <defs>\n <linearGradient\n id=\"paint0_linear_490_5080\"\n x1=\"10\"\n y1=\"5\"\n x2=\"-5.79673e-08\"\n y2=\"5\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#59B0FE\" />\n <stop offset=\"1\" stopColor=\"#26FEFE\" />\n </linearGradient>\n </defs>\n <path\n d=\"M10 7V0L0 10H7C8.65685 10 10 8.65685 10 7Z\"\n fill=\"url(#paint0_linear_490_5080)\"\n />\n </svg>\n </button>\n </SelectPrimitive.Trigger>\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n position={\"popper\"}\n className={content({ className: \"oui-w-[260px]\" })}\n align={\"end\"}\n sideOffset={12}\n onCloseAutoFocus={(e) => {\n e.preventDefault();\n }}\n {...contentProps}\n >\n <SelectPrimitive.Viewport className={viewport()}>\n <Either\n value={\n Array.isArray(chains?.mainnet) && chains.mainnet.length > 0\n }\n >\n <SelectPrimitive.Group>\n <SelectPrimitive.Label\n className={\n \"oui-text-2xs oui-text-base-contrast-54 oui-px-4 oui-pt-3\"\n }\n >\n Mainnet\n </SelectPrimitive.Label>\n\n {chains.mainnet.map((chain) => {\n return (\n <ChainSelectItem\n key={chain.id}\n chain={chain}\n itemClassName={item({\n className: \"oui-rounded-lg\",\n })}\n lowestFee={chain.lowestFee}\n iconClassName={itemSize()}\n feeClassName={tag()}\n />\n );\n })}\n </SelectPrimitive.Group>\n </Either>\n <Either\n value={\n Array.isArray(chains?.testnet) && chains.testnet.length > 0\n }\n >\n <SelectPrimitive.Group>\n <SelectPrimitive.Label\n className={\n \"oui-text-2xs oui-text-base-contrast-54 oui-px-4 oui-leading-5\"\n }\n >\n Testnet\n </SelectPrimitive.Label>\n {chains.testnet.map((chain) => {\n return (\n <ChainSelectItem\n key={chain.id}\n chain={chain}\n itemClassName={item({\n className: \"oui-rounded-lg\",\n })}\n iconClassName={itemSize()}\n feeClassName={tag()}\n />\n );\n })}\n </SelectPrimitive.Group>\n </Either>\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n </SelectPrimitive.Root>\n );\n};\n\nChainSelect.displayName = \"ChainSelect\";\n\nexport { ChainSelect };\nexport type { ChainSelectProps };\n","import { FC, memo, PropsWithChildren, ReactNode, useMemo } from \"react\";\n\ntype Props = {\n value: boolean | (() => boolean);\n left?: ReactNode;\n};\n\nconst Either: FC<PropsWithChildren<Props>> = memo((props) => {\n const { value, children, left } = props;\n const inputValue = useMemo(\n () => Boolean(typeof value === \"function\" ? value() : value),\n [value]\n );\n if (inputValue) {\n return children;\n }\n return left;\n});\n\nexport { Either };\n","import React, { FC, PropsWithChildren, ReactElement } from \"react\";\n\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport {\n SelectContent,\n SelectRoot,\n SelectTrigger,\n SelectValue,\n selectVariants,\n} from \"./selectPrimitive\";\n\nimport { cnBase, VariantProps } from \"tailwind-variants\";\nimport { ScrollArea } from \"../scrollarea\";\n\nexport type SelectProps<T> = SelectPrimitive.SelectProps & {\n placeholder?: string;\n valueFormatter?: (\n value: T,\n options: {\n placeholder?: string;\n }\n ) => React.ReactNode;\n contentProps?: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>;\n showCaret?: boolean;\n maxHeight?: number;\n} & VariantProps<typeof selectVariants>;\n\nexport const Select = <T,>(props: PropsWithChildren<SelectProps<T>>) => {\n const {\n children,\n size,\n error,\n placeholder,\n variant,\n contentProps,\n valueFormatter: valueRenderer,\n showCaret,\n maxHeight,\n ...rest\n } = props;\n\n return (\n <SelectRoot {...rest}>\n <SelectTrigger\n size={size}\n error={error}\n variant={variant}\n showCaret={showCaret}\n className={cnBase(\n \"oui-font-semibold focus:oui-ring-transparent\",\n !showCaret && \"oui-cursor-auto\"\n )}\n >\n {typeof valueRenderer === \"function\" ? (\n valueRenderer((props.value || props.defaultValue) as T, {\n placeholder,\n })\n ) : (\n <SelectValue placeholder={placeholder} />\n )}\n </SelectTrigger>\n <SelectContent {...contentProps}>\n <ScrollArea>\n <div style={{ maxHeight }}> {children}</div>\n </ScrollArea>\n </SelectContent>\n </SelectRoot>\n );\n};\n","import React, { FC, ReactElement } from \"react\";\nimport { Select, SelectProps } from \"./select\";\nimport { SelectGroup, SelectItem } from \"./selectPrimitive\";\n\nexport type SelectOption = {\n label: string;\n value: string;\n};\n\nexport type SelectWithOptionsProps<T = string> = SelectProps<T> & {\n // options: SelectOption[] | (() => Promise<SelectOption[]>);\n options: SelectOption[];\n optionRenderer?: (\n option: SelectOption\n // & {\n // size?: SizeType;\n // index: number;\n // }\n ) => ReactElement;\n // loading?: boolean;\n};\n\nexport const defaultOptionRenderer = (option: SelectOption) => (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n);\n\nexport const SelectWithOptions: FC<SelectWithOptionsProps> = (props) => {\n const {\n children,\n options,\n optionRenderer = defaultOptionRenderer,\n ...rest\n } = props;\n\n // const [] = useState<SelectOption[]>([]);\n\n return (\n <Select {...rest}>\n <SelectGroup>\n {options.map((option, index) => {\n // return optionRenderer({\n // ...option,\n // // value: option,\n // size: props.size,\n // index,\n // });\n return React.cloneElement(optionRenderer(option), {\n size: props.size,\n key: index,\n index,\n });\n })}\n </SelectGroup>\n </Select>\n );\n};\n","import { ReactElement, useMemo } from \"react\";\nimport { SelectOption, SelectWithOptions } from \"./withOptions\";\nimport { SelectProps } from \"./select\";\nimport { selectVariants } from \"./selectPrimitive\";\nimport { Text } from \"../typography\";\nimport {\n ItemIndicator,\n SelectItem,\n SelectItemText,\n} from \"@radix-ui/react-select\";\nimport { TokenIcon } from \"../icon\";\nimport { SizeType } from \"../helpers/sizeType\";\nimport { Flex } from \"../flex\";\nimport { cnBase } from \"tailwind-variants\";\n\ntype TokenItem = {\n name: string;\n [x: string]: any;\n};\n\nexport type TokenSelect = {\n tokens: TokenItem[];\n showIcon?: boolean;\n optionRenderer?: (option: SelectOption) => ReactElement;\n} & SelectProps<string>;\n\nexport const TokenSelect = (props: TokenSelect) => {\n const { tokens, showIcon = true, ...rest } = props;\n const { icon } = selectVariants();\n\n const options = useMemo(() => {\n return tokens.map((token) => {\n return {\n ...token,\n label: token.name,\n value: token.name,\n };\n });\n }, [tokens]);\n\n const selectable = options.length > 1;\n\n const valueRenderer = (value: string) => {\n if (typeof props.valueFormatter === \"function\") {\n return props.valueFormatter(value, {});\n }\n return (\n <Flex gapX={1}>\n <TokenIcon name={value} className={icon({ size: props.size })} />\n <Text weight=\"semibold\" intensity={54}>\n {value}\n </Text>\n </Flex>\n );\n };\n\n const optionRenderer = (option: SelectOption) => {\n if (typeof props.optionRenderer === \"function\") {\n return props.optionRenderer(option);\n }\n return <Option {...option} />;\n };\n\n return (\n <SelectWithOptions\n {...rest}\n showCaret={selectable}\n options={options}\n valueFormatter={showIcon ? valueRenderer : undefined}\n optionRenderer={optionRenderer}\n maxHeight={254} // 30 * 8 + 2 * 7\n />\n );\n};\n\nconst Option = (\n props: SelectOption & {\n size?: SizeType;\n index?: number;\n }\n) => {\n const { size, label, value } = props;\n\n const { item, icon } = selectVariants();\n return (\n <SelectItem\n value={value}\n className={item({\n size,\n className: \"oui-space-x-1 oui-flex oui-flex-row oui-items-center\",\n })}\n >\n <TokenIcon name={value} className={icon({ size })} />\n <SelectItemText>{label}</SelectItemText>\n <ItemIndicator />\n </SelectItem>\n );\n};\n","import { CombineSelect } from \"./combine\";\n\nexport {\n SelectRoot,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n} from \"./selectPrimitive\";\n\nimport { ChainSelect } from \"./chains\";\nimport { Select as SelectComponent } from \"./select\";\n\nimport { SelectWithOptions } from \"./withOptions\";\nimport { TokenSelect } from \"./tokens\";\n\nexport type SelectType = typeof SelectComponent & {\n options: typeof SelectWithOptions;\n chains: typeof ChainSelect;\n tokens: typeof TokenSelect;\n combine: typeof CombineSelect;\n};\n\nconst Select = SelectComponent as SelectType;\nSelect.options = SelectWithOptions;\nSelect.chains = ChainSelect;\nSelect.combine = CombineSelect;\nSelect.tokens = TokenSelect;\n\nexport { Select };\n\nexport type { SelectProps } from \"./select\";\nexport type { SelectWithOptionsProps } from \"./withOptions\";\nexport type { ChainSelectProps } from \"./chains\";\n","export { currencyFormatter } from \"./currency\";\n\nexport { numberFormatter } from \"./number\";\n\nexport { createRegexInputFormatter } from \"./regex\";\n\nexport { dpFormatter } from \"./dp\";\n","import { InputFormatter, InputFormatterOptions } from \"./inputFormatter\";\nimport { commify } from \"@orderly.network/utils\";\n\nexport const currencyFormatter: InputFormatter = {\n onRenderBefore: function (\n value: string | number,\n options: InputFormatterOptions\n ): string {\n if (value === null || value === undefined) return \"\";\n return commify(value);\n },\n onSendBefore: function (\n value: string,\n options: InputFormatterOptions\n ): string {\n if (value === null || value === undefined) return \"\";\n\n value = value.replace(/,/g, \"\");\n\n return value;\n },\n};\n","import { InputFormatter, InputFormatterOptions } from \"./inputFormatter\";\n\nexport const numberFormatter: InputFormatter = {\n onRenderBefore: function (\n value: string | number,\n options: InputFormatterOptions\n ): string {\n return \"\" + value;\n },\n onSendBefore: function (\n value: string,\n options: InputFormatterOptions\n ): string {\n if (value.startsWith(\".\")) return `0${value}`;\n\n value = value\n .replace(/[^\\d.]/g, \"\")\n .replace(\".\", \"$#$\")\n .replace(/\\./g, \"\")\n .replace(\"$#$\", \".\");\n\n return value;\n },\n};\n","import { InputFormatter, InputFormatterOptions } from \"./inputFormatter\";\n\ntype RegexInputFormatter = (regex: RegExp) => InputFormatter;\n\nexport const createRegexInputFormatter: RegexInputFormatter = (\n regex: RegExp,\n onSendBefore?: (value: string, options: InputFormatterOptions) => string\n) => ({\n onRenderBefore: (\n value: string | number,\n options: InputFormatterOptions\n ): string => {\n const formattedValue = `${value}`.replace(regex, \"\");\n return formattedValue;\n },\n onSendBefore: (value: string, options: InputFormatterOptions): string => {\n return onSendBefore?.(value, options) || value;\n },\n});\n","import { InputFormatterOptions } from \"./inputFormatter\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nexport const dpFormatter = (\n dp: number,\n config?: {\n /**\n * The rounding mode to use when rounding the number\n * @default Decimal.ROUND_DOWN\n */\n roundingMode?: number;\n }\n) => {\n const onBefore = (value: string | number, options: InputFormatterOptions) => {\n if (typeof value === \"number\") value = value.toString();\n if (!value || value.endsWith(\".\")) return value;\n return truncateNumber(value, dp);\n // const { roundingMode = Decimal.ROUND_DOWN } = config ?? {};\n // let d = new Decimal(value);\n // d = d.todp(dp, roundingMode);\n // return d.toString();\n };\n\n return {\n onRenderBefore: onBefore,\n onSendBefore: onBefore,\n };\n};\n\n/**\n * Truncate a number to a specified number of decimal places.\n * @param num The string to be truncated.\n * @param decimalPlaces The number of decimal places to keep.\n * @returns The truncated number as a string.\n */\nfunction truncateNumber(numStr: string, decimalPlaces: number): string {\n // Convert the number to a string\n // const numStr = typeof num ==='number'? num.toString():num;\n\n // Find the position of the decimal point\n const decimalIndex = numStr.indexOf(\".\");\n\n // If there's no decimal point or we don't need to truncate, return the number as is\n if (decimalIndex === -1 || decimalPlaces <= 0) {\n return numStr.split(\".\")[0];\n }\n\n // Calculate the end position for the substring\n const endIndex = decimalIndex + decimalPlaces + 1;\n\n // Return the truncated string\n return numStr.substring(0, endIndex);\n}\n","import React from \"react\";\nimport { Input, InputProps } from \"./input\";\nimport { InputHelpText } from \"./inputHelpText\";\nimport { tv } from \"../utils/tv\";\nimport { VariantProps } from \"tailwind-variants\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"..\";\n\nconst textFieldVariants = tv({\n slots: {\n root: \"oui-flex\",\n label: \"oui-text-sm oui-font-semibold\",\n input: [],\n },\n variants: {\n direction: {\n column: {\n root: \"oui-flex-col oui-space-y-1\",\n },\n row: {\n root: \"oui-flex-row oui-space-x-3 \",\n },\n },\n },\n defaultVariants: {\n direction: \"column\",\n },\n});\n\nexport type TextFieldProps = InputProps & {\n label: string;\n helpText?: string;\n classNames?: {\n root?: string;\n label?: string;\n input?: string;\n };\n} & VariantProps<typeof textFieldVariants>;\n\nexport const TextField: React.FC<TextFieldProps> = React.forwardRef<\n HTMLDivElement,\n TextFieldProps\n>((props, ref) => {\n const { label, helpText, direction, className, ...inputProps } = props;\n const { root, label: labelClassName } = textFieldVariants({ direction });\n\n return (\n <div className={root({ className, direction })}>\n <InputLabel className={cn(props.classNames?.label) || labelClassName()}>{label}</InputLabel>\n <div>\n <Input {...inputProps} />\n {(helpText?.length || 0 > 0) && <InputHelpText color={inputProps.color}>{helpText}</InputHelpText>}\n </div>\n </div>\n );\n});\n\ninterface InputLabelProps extends React.HTMLAttributes<HTMLLabelElement> {\n asChild?: boolean;\n}\n\nconst InputLabel = React.forwardRef<HTMLLabelElement, InputLabelProps>(\n (props, ref) => {\n const { asChild = false, className, ...rest } = props;\n const Comp = asChild ? Slot : \"label\";\n\n return (\n <Comp className={className} ref={ref} {...rest}>\n {props.children}\n </Comp>\n );\n }\n);\n\nInputLabel.displayName = \"InputLabel\";\n","import { Slot } from \"@radix-ui/react-slot\";\nimport {\n ComponentPropsWithout,\n RemovedProps,\n} from \"../helpers/component-props\";\nimport React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\n\nconst inputHelpTextVariants = tv({\n base: [\n \"oui-text-xs\",\n \"oui-text-base-contrast-36\",\n \"oui-mt-1\",\n \"oui-list-disc\",\n \"oui-list-inside\",\n \"oui-list-item\",\n ],\n variants: {\n color: {\n success: [\"oui-text-success\"],\n danger: [\"oui-text-danger\"],\n warning: [\"oui-text-warning\"],\n default: [\"oui-text-base-contrast-54\"],\n },\n },\n});\n\ninterface InputHelpTextProps\n extends ComponentPropsWithout<\"div\", RemovedProps>,\n VariantProps<typeof inputHelpTextVariants> {\n asChild?: boolean;\n}\n\nconst InputHelpText = React.forwardRef<HTMLDivElement, InputHelpTextProps>(\n (props, ref) => {\n const { className, asChild, color, ...rest } = props;\n const Comp = asChild ? Slot : \"div\";\n return (\n <Comp\n ref={ref}\n className={inputHelpTextVariants({\n className,\n color,\n })}\n {...rest}\n />\n );\n }\n);\n\nInputHelpText.displayName = \"InputHelpText\";\n\nexport { InputHelpText, inputHelpTextVariants };\n\nexport { type InputHelpTextProps };\n","import { QuantityInput } from \"./extends/quantity\";\nimport { Input as InputBase, inputVariants } from \"./input\";\n\nexport { InputAdditional } from \"./inputAdditional\";\n\nexport type { InputProps } from \"./input\";\n\nexport * as inputFormatter from \"./formatter\";\n\nexport type {\n InputFormatter,\n InputFormatterOptions,\n} from \"./formatter/inputFormatter\";\n\nexport { TextField } from \"./textField\";\n\nexport { type TextFieldProps } from \"./textField\";\n\nexport { InputHelpText } from \"./inputHelpText\";\nexport type { InputHelpTextProps } from \"./inputHelpText\";\n\ntype InputType = typeof InputBase & {\n token: typeof QuantityInput;\n};\n\nconst Input = InputBase as InputType;\nInput.token = QuantityInput;\n\nexport { Input, inputVariants };\n","import * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { tv, cnBase } from \"tailwind-variants\";\nimport { CheckIcon } from \"../icon/check\";\n\nconst checkboxVariants = tv({\n base: [\n \"peer\",\n \"oui-h-3\",\n \"oui-w-3\",\n \"oui-shrink-0\",\n \"oui-rounded-sm\",\n \"oui-border\",\n // \"oui-border-primary\",\n \"focus-visible:oui-outline-none\",\n // \"focus-visible:oui-ring-1\",\n // \"focus-visible:oui-ring-ring\",\n \"disabled:oui-cursor-not-allowed\",\n \"disabled:oui-opacity-50\",\n // \"data-[state=checked]:oui-bg-primary\",\n // \"data-[state=checked]:oui-text-base-contrast\",\n ],\n variants: {\n color: {\n blue: \"oui-border-primary data-[state=checked]:oui-bg-primary data-[state=checked]:oui-text-base-contrast\",\n white:\n \"oui-border-white/80 data-[state=checked]:oui-bg-white/80 data-[state=checked]:oui-text-[rgba(0,0,0,0.88)]\",\n },\n },\n defaultVariants: {\n color: \"blue\",\n },\n});\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> & {\n size?: number;\n indicatorClassName?: string;\n color?: \"blue\" | \"white\";\n }\n>(({ className, color = \"blue\", ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={checkboxVariants({ color, className })}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cnBase(\n \"oui-flex oui-items-center oui-justify-center oui-text-current\",\n props.indicatorClassName\n )}\n >\n <CheckIcon\n size={props.size ?? 12}\n opacity={color === \"blue\" ? 0.54 : 1}\n color={color === \"blue\" ? \"white\" : \"black\"}\n />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","import React from \"react\";\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"..\";\n\nconst switchVariants = tv({\n slots: {\n root: [\n \"peer\",\n \"oui-inline-flex\",\n \"oui-h-5\",\n \"oui-w-9\",\n \"oui-shrink-0\",\n \"oui-cursor-pointer\",\n \"oui-items-center\",\n \"oui-rounded-full\",\n \"oui-border-2\",\n \"oui-border-transparent\",\n \"oui-shadow-sm\",\n \"oui-transition-colors\",\n \"focus-visible:oui-outline-none\",\n \"focus-visible:oui-ring-2\",\n \"focus-visible:oui-ring-ring\",\n \"focus-visible:oui-ring-offset-2\",\n \"focus-visible:oui-ring-offset-background\",\n \"disabled:oui-cursor-not-allowed\",\n \"disabled:oui-opacity-50\",\n \"data-[state=checked]:oui-bg-primary\",\n \"data-[state=unchecked]:oui-bg-input\",\n ],\n thumb: [\n \"oui-pointer-events-none\",\n \"oui-block\",\n \"oui-h-4\",\n \"oui-w-4\",\n \"oui-rounded-full\",\n \"oui-bg-white/60\",\n \"oui-shadow-lg\",\n \"oui-ring-0\",\n \"oui-transition-transform\",\n \"data-[state=checked]:oui-translate-x-4\",\n \"data-[state=unchecked]:oui-translate-x-0\",\n ],\n },\n variants: {\n color: {\n primary: {\n root: [\n \"data-[state=checked]:oui-bg-primary\",\n \"data-[state=unchecked]:oui-bg-base-1\",\n ],\n },\n success: {\n root: [\n \"data-[state=checked]:oui-bg-success\",\n \"data-[state=unchecked]:oui-bg-success\",\n ],\n },\n danger: {\n root: [\n \"data-[state=checked]:oui-bg-danger\",\n \"data-[state=unchecked]:oui-bg-danger\",\n ],\n },\n warning: {\n root: [\n \"data-[state=checked]:oui-bg-warning\",\n \"data-[state=unchecked]:oui-bg-warning\",\n ],\n },\n },\n },\n defaultVariants: {\n color: \"primary\",\n },\n});\n\ninterface SwitchProps\n extends VariantProps<typeof switchVariants>,\n Omit<\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>,\n \"color\"\n > {}\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n SwitchProps\n>(({ className, color, ...props }, ref) => {\n const { root, thumb } = switchVariants({\n className,\n color,\n });\n\n return (\n <SwitchPrimitives.Root className={root({className})} {...props} ref={ref}>\n <SwitchPrimitives.Thumb className={thumb()} />\n </SwitchPrimitives.Root>\n );\n});\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","import { VariantProps } from \"tailwind-variants\";\nimport { tv } from \"../utils/tv\";\nimport {\n ComponentPropsWithout,\n RemovedProps,\n} from \"../helpers/component-props\";\n\nconst badgeVariants = tv({\n base: \"oui-inline-flex oui-items-center oui-rounded-md oui-font-semibold oui-transition-colors focus:oui-outline-none focus:oui-ring-2 focus:oui-ring-ring focus:oui-ring-offset-2\",\n\n variants: {\n variant: {\n contained: \"\",\n // outlined: \"oui-border\",\n text: \"\",\n },\n color: {\n primary: \"\",\n primaryLight: \"\",\n secondary: \"\",\n danger: \"\",\n success: \"\",\n warning: \"\",\n neutural: \"\",\n },\n size: {\n xs: \"oui-px-2 oui-py-0.5 oui-text-3xs oui-rounded oui-h-[18px]\",\n sm: \"oui-px-2 oui-py-0.5 oui-text-2xs oui-rounded\",\n md: \"oui-px-2 oui-py-0.5 oui-text-sm\",\n lg: \"oui-px-2 oui-py-1 oui-text-base\",\n // xl: \"oui-px-4 oui-py-1.5 oui-text-sm\",\n },\n // dot:{\n // true: \"oui-w-2 oui-h-2 oui-rounded-full\",\n // false: \"\"\n // }\n },\n compoundVariants: [\n {\n variant: \"contained\",\n color: \"primary\",\n className: [\"oui-bg-primary/15\", \"oui-text-primary\"],\n },\n {\n variant: \"contained\",\n color: \"primaryLight\",\n className: [\"oui-bg-primary-light/15\", \"oui-text-primary-light\"],\n },\n {\n variant: \"contained\",\n color: \"danger\",\n className: [\"oui-bg-danger/15\", \"oui-text-danger\"],\n },\n {\n variant: \"contained\",\n color: \"success\",\n className: [\"oui-bg-success/15\", \"oui-text-success\"],\n },\n {\n variant: \"contained\",\n color: \"warning\",\n className: [\"oui-bg-warning/15\", \"oui-text-warning\"],\n },\n {\n variant: \"contained\",\n color: \"neutural\",\n className: [\"oui-bg-line\", \"oui-text-base-contrast-36\"],\n },\n {\n variant: \"text\",\n color: \"primary\",\n className: [\"oui-text-primary\"],\n },\n {\n variant: \"text\",\n color: \"danger\",\n className: [\"oui-text-danger\"],\n },\n {\n variant: \"text\",\n color: \"success\",\n className: [\"oui-text-success\"],\n },\n {\n variant: \"text\",\n color: \"warning\",\n className: [\"oui-text-warning\"],\n },\n {\n variant: \"text\",\n color: \"neutural\",\n className: [\"oui-text-base-contrast-36\"],\n },\n ],\n defaultVariants: {\n variant: \"contained\",\n color: \"primary\",\n size: \"md\",\n },\n});\n\nexport interface BadgeProps\n extends ComponentPropsWithout<\"div\", RemovedProps>,\n VariantProps<typeof badgeVariants> {\n // dot?: boolean;\n}\n\nfunction Badge({ className, variant, color, size, ...props }: BadgeProps) {\n return (\n <div\n className={badgeVariants({ variant, className, color, size })}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n","import React, { ElementRef, HTMLAttributes } from \"react\";\n\ntype Elment = ElementRef<\"div\">;\n\ntype LogoProps = HTMLAttributes<Elment> & {\n src: string;\n alt?: string;\n href?: string;\n};\n\nconst Logo = React.forwardRef<Elment, LogoProps>(({ src, alt, href }, ref) => {\n return (\n <div className=\"logo oui-px-3\" ref={ref}>\n <a href={href ?? \"/\"}>\n <img\n src={src}\n alt={alt}\n className=\"oui-object-contain oui-h-8 oui-py-2\"\n />\n </a>\n </div>\n );\n});\n\nLogo.displayName = \"LogoElement\";\n\nexport { Logo };\nexport type { LogoProps };\n","import * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { tv } from \"../utils/tv\";\nimport { cn } from \"tailwind-variants\";\n// import { cn } from \"..\";\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\n// const Tooltip = TooltipPrimitive.Root;\nconst TooltipRoot = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipArrow = TooltipPrimitive.Arrow;\n\nconst tooltipVariants = tv({\n base: [\n \"oui-z-50\",\n \"oui-overflow-hidden\",\n \"oui-rounded-md\",\n \"oui-bg-base-6\",\n \"oui-px-2\",\n \"oui-py-1\",\n \"oui-text-xs\",\n \"oui-text-base-contrast\",\n \"oui-animate-in\",\n \"oui-fade-in-0\",\n \"oui-zoom-in-95\",\n \"data-[state=closed]:oui-animate-out\",\n \"data-[state=closed]:oui-fade-out-0\",\n \"data-[state=closed]:oui-zoom-out-95\",\n \"data-[side=bottom]:oui-slide-in-from-top-2\",\n \"data-[side=left]:oui-slide-in-from-right-2\",\n \"data-[side=right]:oui-slide-in-from-left-2\",\n \"data-[side=top]:oui-slide-in-from-bottom-2\",\n ],\n});\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => {\n return (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={tooltipVariants({\n className,\n })}\n {...props}\n />\n );\n});\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport type TooltipProps = React.ComponentPropsWithoutRef<\n typeof TooltipPrimitive.Root\n> &\n React.ComponentPropsWithoutRef<typeof TooltipContent> & {\n className?: string;\n content?: React.ReactNode;\n arrow?: TooltipPrimitive.TooltipArrowProps;\n };\n\nconst Tooltip = React.forwardRef<\n React.ElementRef<typeof TooltipContent>,\n TooltipProps\n>(\n (\n {\n // className,\n children,\n content,\n defaultOpen,\n open,\n onOpenChange,\n delayDuration,\n disableHoverableContent,\n arrow,\n ...props\n },\n ref\n ) => {\n const { className, ...arrowProps } = arrow || {};\n return (\n <TooltipPrimitive.Root\n defaultOpen={defaultOpen}\n open={open}\n onOpenChange={onOpenChange}\n delayDuration={delayDuration}\n disableHoverableContent={disableHoverableContent}\n >\n <TooltipPrimitive.Trigger asChild>{children}</TooltipPrimitive.Trigger>\n <TooltipContent ref={ref} {...props}>\n {content}\n <TooltipPrimitive.Arrow\n width={12}\n height={6}\n {...arrowProps}\n className={cn(\n \"oui-fill-base-8\",\n className\n )({\n twMerge: true,\n })}\n />\n </TooltipContent>\n </TooltipPrimitive.Root>\n );\n }\n);\n\nexport {\n Tooltip,\n TooltipRoot,\n TooltipTrigger,\n TooltipContent,\n TooltipProvider,\n TooltipArrow,\n};\n","import { tv } from \"../utils/tv\";\nimport {\n ComponentPropsWithout,\n RemovedProps,\n} from \"../helpers/component-props\";\nimport React from \"react\";\nimport { VariantProps } from \"tailwind-variants\";\n\nconst tableVariants = tv({\n slots: {\n // root: \"oui-relative oui-w-full oui-overflow-auto oui-TableRoot\",\n table: \"oui-w-full oui-caption-bottom oui-text-xs oui-table-root\",\n thead: \"[&_tr]:oui-border-b oui-table-header\",\n tbody: \"[&_tr:last-child]:oui-border-0 oui-table-body\",\n tfoot:\n \"oui-border-t oui-font-medium [&>tr]:oui-last:border-b-0 oui-table-footer\",\n tr: \"oui-transition-colors oui-TableTr hover:oui-bg-base-8 oui-group\",\n th: \"oui-h-10 oui-px-2 oui-text-left oui-align-middle oui-font-medium oui-text-muted-foreground [&:has([role=checkbox])]:oui-pr-0 [&>[role=checkbox]]:oui-translate-y-[2px] oui-table-th\",\n td: \"oui-h-10 oui-py-2 oui-px-3 oui-align-middle [&:has([role=checkbox])]:oui-pr-0 [&>[role=checkbox]]:oui-translate-y-[2px] oui-table-td group-hover:!oui-bg-base-8\",\n caption: \"oui-mt-4 oui-text-xs oui-text-muted-foreground oui-table-caption\",\n },\n variants: {\n bordered: {\n true: {\n tr: \"oui-border-b oui-border-line-4\",\n // tr: 'oui-relative after:oui-inline-block after:oui-content-[\"\"] after:oui-absolute after:oui-bottom-0 after:oui-left-2 after:oui-right-2 after:oui-border-b after:oui-border-line-4',\n },\n false: {\n tr: \"\",\n },\n },\n },\n});\n\ninterface TableRootProps\n extends VariantProps<typeof tableVariants>,\n ComponentPropsWithout<\n \"table\",\n \"asChild\" | \"defaultChecked\" | \"defaultValue\" | \"color\" | \"border\"\n > {}\n\nconst Table = React.forwardRef<HTMLTableElement, TableRootProps>(\n ({ className, bordered, ...props }, ref) => {\n const { table } = tableVariants({ className, bordered });\n return <table ref={ref} className={table({ className })} {...props} />;\n }\n);\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => {\n const { thead } = tableVariants();\n return <thead ref={ref} className={thead({ className })} {...props} />;\n});\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => {\n const { tbody } = tableVariants();\n return <tbody ref={ref} className={tbody({ className })} {...props} data-testid=\"oui-table-body\" />;\n});\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => {\n const { tfoot } = tableVariants();\n return <tfoot ref={ref} className={tfoot({ className })} {...props} />;\n});\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement> & {\n bordered?: boolean;\n }\n>(({ className, bordered, ...props }, ref) => {\n const { tr } = tableVariants({ bordered });\n return <tr ref={ref} className={tr({ className, bordered })} {...props} />;\n});\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => {\n const { th } = tableVariants();\n return <th ref={ref} className={th({ className })} {...props} />;\n});\nTableHead.displayName = \"TableHead\";\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => {\n const { td } = tableVariants();\n return <td ref={ref} className={td({ className })} {...props} />;\n});\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => {\n const { caption } = tableVariants();\n return <caption ref={ref} className={caption({ className })} {...props} />;\n});\nTableCaption.displayName = \"TableCaption\";\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","import {\n Children,\n isValidElement,\n PropsWithChildren,\n ReactElement,\n ReactNode,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\nimport { Column, SortOrder } from \"./col\";\nimport { TableHeader } from \"./thead\";\nimport { ScrollArea } from \"../../scrollarea\";\n\nimport { ColGroup } from \"./colgroup\";\nimport { TableProvider } from \"./tableContext\";\n// import { useDebouncedCallback } from \"@orderly.network/hooks\";\nimport { FixedDivide } from \"./fixedDivide\";\nimport { TBody, TBodyProps } from \"./tbody\";\nimport { Table } from \"../table\";\nimport { cnBase, type VariantProps } from \"tailwind-variants\";\nimport { tv } from \"../../utils/tv\";\nimport { TablePlaceholder } from \"./tablePlaceholder\";\nimport { useTableSize } from \"./useTableSize\";\nimport { Box } from \"../../box\";\nimport { cn } from \"../..\";\n\nconst DEFAULT_MIN_HEIGHT = 130;\n\nexport interface DataTableProps<RecordType>\n extends TBodyProps<RecordType>,\n VariantProps<typeof dataTableVariants> {\n columns: Column<RecordType>[];\n dataSource?: RecordType[] | null;\n /**\n * @description loading state\n * @default false\n */\n loading?: boolean;\n isValidating?: boolean;\n // checkLoading?: boolean;\n ignoreLoadingCheck?: boolean;\n className?: string;\n // headerClassName?: string;\n // bodyClassName?: string;\n classNames?: {\n root?: string;\n header?: string;\n body?: string;\n footer?: string;\n };\n showMaskElement?: boolean;\n emptyView?: ReactNode;\n bordered?: boolean;\n // stickyHeader?: boolean;\n loadMore?: () => void;\n onSort?: (options?: { sortKey: string; sort: SortOrder }) => void;\n initialSort?: { sortKey: string; sort: SortOrder };\n // onFilter?: (filter: DataTableFilter) => void;\n id?: string;\n // header?: ReactElement;\n // footer?: ReactElement;\n\n minHeight?: number;\n initialMinHeight?: number;\n\n /**\n * if you want to fixed the table header or column, you need to set the height/width of the table;\n */\n scroll?: {\n /**\n * the width of the table\n */\n x?: number;\n y?: number;\n };\n}\n\nconst dataTableVariants = tv({\n slots: {\n root: \"oui-data-table-root oui-relative oui-flex-col oui-peer\",\n },\n variants: {\n loading: {\n true: {\n root: \"oui-overflow-hidden\",\n },\n false: {\n root: \"\",\n },\n },\n },\n});\n\n// const TableElement = () => {};\n\nexport const DataTable = <RecordType extends unknown>(\n props: PropsWithChildren<DataTableProps<RecordType>>\n) => {\n const wrapRef = useRef<HTMLDivElement>(null);\n const tableRef = useRef<HTMLTableElement>(null);\n const {\n dataSource,\n loading,\n isValidating,\n columns,\n showMaskElement = true,\n className,\n classNames,\n scroll,\n emptyView,\n minHeight: minHeightProp,\n initialMinHeight,\n ignoreLoadingCheck,\n // stickyHeader,\n ...rest\n } = props;\n const { root } = dataTableVariants({\n loading,\n });\n\n // const fetched = useRef(0);\n //\n const [initialized, setInitialized] = useState(false);\n // const minHeight = useRef(initialMinHeight || DEFAULT_MIN_HEIGHT);\n\n useEffect(() => {\n if (initialized) return;\n\n if (\n ignoreLoadingCheck ||\n loading ||\n // isValidating ||\n Array.isArray(dataSource)\n ) {\n setInitialized(true);\n }\n }, [loading, ignoreLoadingCheck, dataSource, initialized]);\n\n const [filterEle, setFilterEle] = useState<ReactElement | null>(null);\n const [paginationEle, setPaginationEle] = useState<ReactElement | null>(null);\n\n // const needFixed = useMemo(() => {\n // return props.columns.some(\n // (col) => col.fixed === \"left\" || col.fixed === \"right\"\n // );\n // }, [props.columns]);\n //\n\n const { width, height, minHeight, updateMinHeight } = useTableSize(tableRef, {\n dataSource,\n scroll,\n minHeight: props.initialMinHeight,\n });\n\n useLayoutEffect(() => {\n const children = props.children;\n\n Children.forEach(children, (child) => {\n // console.log(\"check filter element\", child);\n if (isValidElement(child)) {\n // @ts-ignore\n if (child.type?.displayName === \"DataFilter\") {\n setFilterEle(child);\n }\n\n // @ts-ignore\n if (child.type?.displayName === \"TablePagination\") {\n setPaginationEle((prev) => {\n if (!!prev && child.props.pageSize !== prev.props.pageSize) {\n updateMinHeight(initialMinHeight || DEFAULT_MIN_HEIGHT);\n }\n return child;\n });\n\n // setPaginationEle(child);\n }\n }\n });\n }, [props.children]);\n\n useEffect(() => {\n if (!wrapRef.current) return;\n const bodyBgColor = window.getComputedStyle(\n wrapRef.current\n ).backgroundColor;\n\n // body.style.setProperty(\"--table-header-height\", \"48px\");\n wrapRef.current.style.setProperty(\"--table-background-color\", bodyBgColor);\n }, []);\n\n // if pageSize is changed or data is null, reset the minHeight\n // useEffect(() => {\n // if (dataSource === null) {\n // minHeight.current = initialMinHeight || DEFAULT_MIN_HEIGHT;\n // }\n // }, [dataSource]);\n\n // console.log(\"minHeight\", minHeight, height);\n //\n const dataIsEmpty = !Array.isArray(dataSource) || dataSource?.length === 0;\n\n let childElement = (\n <div\n id={props.id}\n ref={wrapRef}\n className={root({\n className: cnBase(\n \"oui-table-root oui-bg-base-9\",\n className,\n classNames?.root\n ),\n })}\n // style={{ width }}\n // onScroll={(e) => onScroll(e.currentTarget.scrollLeft)}\n >\n <TableHeader\n columns={props.columns}\n className={classNames?.header}\n bordered={props.bordered}\n justified={props.justified}\n sticky={false}\n />\n {/* <EndReachedBox\n onEndReached={() => {\n // if (!props.loading) {\n props.loadMore?.();\n // }\n }}\n > */}\n\n <div\n className={cn(\n \"oui-relative oui-w-full oui-table-body\",\n classNames?.body\n )}\n style={{\n minHeight: minHeightProp\n ? `${minHeightProp}px`\n : dataIsEmpty\n ? minHeight\n : undefined,\n height,\n }}\n >\n <ScrollView\n scroll={{\n width,\n height,\n }}\n >\n <Table\n className={cnBase(\"oui-table-fixed oui-border-collapse\")}\n ref={tableRef}\n >\n <ColGroup columns={props.columns} />\n <TBody {...rest} />\n </Table>\n </ScrollView>\n\n <TablePlaceholder\n visible={((dataSource?.length ?? 0) === 0 || loading) && initialized}\n loading={loading}\n emptyView={emptyView}\n />\n <FixedDivide />\n </div>\n\n {/* {props.children} */}\n {/* </EndReachedBox> */}\n {/* {showMaskElement && maskElement} */}\n </div>\n );\n\n if (filterEle || paginationEle) {\n childElement = (\n <>\n {filterEle}\n <Box>{childElement}</Box>\n {paginationEle}\n </>\n );\n }\n\n return (\n <TableProvider\n columns={props.columns}\n dataSource={props.dataSource}\n canExpand={typeof props.expandRowRender === \"function\"}\n onSort={props.onSort}\n initialSort={props.initialSort}\n >\n {childElement}\n </TableProvider>\n );\n};\n\nconst ScrollView = (\n props: PropsWithChildren<{\n scroll: {\n width?: string | number;\n height?: string | number;\n };\n }>\n) => {\n const { scroll } = props;\n\n // console.log(\"scroll\", scroll, !scroll || (!scroll.width && !scroll.width));\n\n if (!scroll || (!scroll.width && !scroll.height)) return props.children;\n\n return (\n <ScrollArea\n style={{\n width: scroll.width,\n height: scroll.height,\n }}\n >\n {props.children}\n </ScrollArea>\n );\n};\n","import { FC } from \"react\";\nimport { cnBase } from \"tailwind-variants\";\nimport { Column } from \"./col\";\nimport { ColGroup } from \"./colgroup\";\nimport { TheadCol } from \"./theadCol\";\n\nexport interface THeadProps {\n columns: Column[];\n className?: string;\n containerClassName?: string;\n bordered?: boolean;\n justified?: boolean;\n sticky?: boolean;\n}\n\nexport const TableHeader: FC<THeadProps> = (props) => {\n return (\n <table\n className={cnBase(\n \"oui-border-collapse oui-w-full oui-text-xs oui-table-fixed oui-data-table-header\",\n props.sticky && \"oui-sticky oui-top-0 oui-z-20\",\n props.containerClassName\n )}\n >\n <ColGroup columns={props.columns} />\n\n <thead\n className={cnBase(\"oui-sticky oui-top-0 oui-z-0\", props.className)}\n >\n <tr\n style={{ backgroundColor: \"var(--table-background-color)\" }}\n // className=\"oui-bg-base-9\"\n >\n {props.columns.map((column, index) => {\n const className =\n typeof column.className === \"function\"\n ? column.className(undefined, index)\n : column.className;\n return (\n <TheadCol\n col={column}\n record={undefined}\n key={index}\n index={index}\n className={className}\n bordered={props.bordered}\n />\n );\n })}\n </tr>\n </thead>\n </table>\n );\n};\n","import { CSSProperties, useContext, useEffect, useMemo, useRef } from \"react\";\nimport { Column } from \"./col\";\nimport { TableContext } from \"./tableContext\";\n\nexport const ColGroupItem = (props: { col: Column; index: number }) => {\n const { col: item } = props;\n\n const ref = useRef<HTMLTableColElement>(null);\n\n const styles = useMemo<CSSProperties>(() => {\n const styles: CSSProperties = {};\n\n if (item.width) {\n styles[\"width\"] = `${item.width}px`;\n } else {\n styles[\"width\"] = \"auto\";\n }\n\n return styles;\n }, [item]);\n\n return (\n <col\n ref={ref}\n // @ts-ignore\n className={item.className}\n align={item.align}\n style={styles}\n />\n );\n};\n","import { useMemo } from \"react\";\nimport { Column } from \"./col\";\nimport { ColGroupItem } from \"./colgroupItem\";\n\nexport const ColGroup = <RecordType,>(props: {\n columns: Column<RecordType>[];\n}) => {\n return (\n <colgroup>\n {props.columns.map((col, index) => {\n return <ColGroupItem key={index} index={index} col={col} />;\n })}\n </colgroup>\n );\n};\n","import { CSSProperties, ReactNode, useContext } from \"react\";\nimport { ColProps } from \"./col\";\nimport { withFixedStyle } from \"./colHOC\";\n\nimport { TableContext } from \"./tableContext\";\nimport { cnBase } from \"tailwind-variants\";\nimport { AscendingIcon, DescendingIcon, SortingIcon } from \"./icons\";\n\nconst TheadColItem = (\n props: ColProps & {\n style?: CSSProperties;\n className?: string;\n bordered?: boolean;\n }\n) => {\n const { col: column, index } = props;\n const { sortKey, sortOrder, onSort } = useContext(TableContext);\n let content: ReactNode = column.title;\n\n if (!!column.hint || !!column.onSort) {\n content = (\n <button\n className={cnBase(\n \"hover:oui-text-base-contrast oui-inline-flex oui-gap-1 oui-items-center oui-text-base-contrast-36\"\n // sortKey === column.dataIndex && \"oui-text-base-contrast\"\n )}\n onClick={(e) => {\n e.stopPropagation();\n if (!column.onSort) {\n return;\n }\n onSort(column.dataIndex);\n }}\n >\n <span>{column.title}</span>\n\n {sortKey === column.dataIndex ? (\n sortOrder === \"asc\" ? (\n <AscendingIcon />\n ) : (\n <DescendingIcon />\n )\n ) : (\n <SortingIcon />\n )}\n </button>\n );\n }\n\n // if (!!column.hint) {\n // if (typeof column.hint === \"string\") {\n // content = (\n // <Tooltip\n // content={column.hint}\n // className={cn(\n // \"oui-max-w-[270px] oui-text-4xs\",\n // column.hintClassName && column.hintClassName\n // )}\n // >\n // {content}\n // </Tooltip>\n // );\n // } else {\n // content = (\n // <HoverCard\n // // @ts-ignore\n // content={column.hint}\n // side=\"top\"\n // align=\"center\"\n // className={cn(\n // \"oui-max-w-[270px] oui-text-4xs\",\n // column.hintClassName && column.hintClassName\n // )}\n // >\n // {content}\n // </HoverCard>\n // );\n // }\n // }\n\n return (\n <td\n className={cnBase(\n \"oui-px-3 oui-py-[3px] oui-h-10 oui-text-base-contrast-36\",\n column.align === \"right\" && \"oui-text-right\",\n column.align === \"center\" && \"oui-text-center\",\n props.justified && \"first:oui-pl-0 last:oui-pr-0\",\n props.bordered && \"oui-border-b oui-border-line\",\n column.fixed && \"oui-sticky\",\n props.className\n )}\n key={column.dataIndex}\n style={props.style}\n >\n {content}\n </td>\n );\n};\n\nexport const TheadCol =\n withFixedStyle<{ className?: string; bordered?: boolean }>(TheadColItem);\n","import { CSSProperties, ComponentType, useContext, useMemo } from \"react\";\nimport { TableContext } from \"./tableContext\";\nimport { ColProps } from \"./col\";\n\nexport const withFixedStyle = <T extends any>(\n WrappedComponent: ComponentType<ColProps>\n) => {\n return (props: ColProps & T) => {\n const { col, index } = props;\n\n const { getLeftFixedColumnsWidth, getRightFixedColumnsWidth } =\n useContext(TableContext);\n const styles = useMemo(() => {\n const styles: CSSProperties = {};\n\n if (col.fixed) {\n styles[\"backgroundColor\"] = \"var(--table-background-color)\";\n }\n\n if (col.fixed && col.fixed === \"left\") {\n styles[\"left\"] = `${getLeftFixedColumnsWidth(index)}px`;\n }\n\n if (col.fixed && col.fixed === \"right\") {\n styles[\"right\"] = `${getRightFixedColumnsWidth(index)}px`;\n }\n\n return styles;\n }, [index, col.fixed]);\n\n return (\n <WrappedComponent\n {...props}\n style={styles}\n // data-fixed={col.fixed ? col.fixed : \"\"}\n />\n );\n };\n};\n","import {\n FC,\n PropsWithChildren,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { Column, SortOrder } from \"./col\";\nimport { DataGridContextState } from \"../dataGrid/dataGridContext\";\nimport { DataFilterProps } from \"../dataGrid/dataFilter\";\n\nexport type DataMetaData = {\n count: number;\n page: number;\n pageSize: number;\n};\n\nexport type TableContextState = {\n columns: Column[];\n dataSource: any[];\n meta: DataMetaData;\n sortKey?: string;\n sortOrder?: SortOrder;\n expandedRowKeys?: string[];\n canExpand?: boolean;\n toggleExpandRow: (key: string) => void;\n onSort: (key: string) => void;\n getLeftFixedColumnsWidth: (index: number) => number;\n getRightFixedColumnsWidth: (index: number) => number;\n getLeftFixedColumnsPosition: () => number;\n getRightFixedColumnsPosition: () => number;\n} & DataGridContextState;\n\nexport const TableContext = createContext<TableContextState>(\n {} as TableContextState\n);\n\nexport const useTable = () => {\n return useContext(TableContext);\n};\n\nexport const defaultSorter = (\n r1: any,\n r2: any,\n sortOrder: SortOrder,\n key: string\n) => {\n if (sortOrder === \"asc\") {\n return Number(r1[key]) - Number(r2[key]);\n }\n return Number(r2[key]) - Number(r1[key]);\n};\n\nexport const TableProvider: FC<\n PropsWithChildren<{\n columns: Column[];\n dataSource?: any[] | null;\n canExpand?: boolean;\n multiExpand?: boolean;\n meta?: DataMetaData;\n\n onSort?: (options?: { sortKey: string; sort: SortOrder }) => void;\n initialSort?: { sortKey: string; sort: SortOrder };\n }>\n> = (props) => {\n const [sortKey, setSortKey] = useState<[string, SortOrder] | undefined>(\n props.initialSort\n ? [props.initialSort.sortKey, props.initialSort.sort]\n : undefined\n );\n const [expandedRowKeys, setExpandedRowKeys] = useState<string[]>([]);\n // const [sortOrder, setSortOrder] = useState<SortOrder>();\n\n const getLeftFixedColumnsWidth = (index: number) => {\n return props.columns.reduce((acc, cur, i) => {\n if (i < index && cur.fixed === \"left\") {\n return acc + (cur.width || 0);\n }\n return acc;\n }, 0);\n };\n\n const getRightFixedColumnsWidth = (index: number) => {\n return props.columns.reduce((acc, cur, i) => {\n if (i > index && cur.fixed === \"right\") {\n return acc + (cur.width || 0);\n }\n return acc;\n }, 0);\n };\n\n const getLeftFixedColumnsPosition = () => {\n let left = 0;\n\n for (let index = 0; index < props.columns.length; index++) {\n const element = props.columns[index];\n if (element.fixed !== \"left\") {\n break;\n } else {\n left += element.width || 0;\n }\n }\n return left;\n };\n\n const getRightFixedColumnsPosition = () => {\n let right = 0;\n\n for (let index = props.columns.length - 1; index >= 0; index--) {\n const element = props.columns[index];\n if (element.fixed !== \"right\") {\n break;\n } else {\n right += element.width || 0;\n }\n }\n return right;\n };\n\n const dataSource = useMemo(() => {\n if (!props.dataSource) {\n return [];\n }\n if (!sortKey || !sortKey[0]) {\n return props.dataSource || [];\n }\n\n /**\n * if onSort is not provided, return the original dataSource, ignore the internal sort\n */\n if (typeof props.onSort === \"function\") {\n return props.dataSource;\n }\n\n // sort by onSort function\n return [...props.dataSource].sort((r1, r2) => {\n if (typeof sortKey[0] === \"string\") {\n const col = props.columns.find((col) => col.dataIndex === sortKey[0]);\n let sorter =\n typeof col?.onSort === \"function\" ? col.onSort : defaultSorter;\n\n return sorter(r1, r2, sortKey[1], sortKey[0]);\n }\n return 0;\n });\n }, [props.dataSource, sortKey]);\n\n const toggleExpandRow = useCallback((key: string) => {\n setExpandedRowKeys((prev) => {\n if (prev[0] === key) {\n return [];\n }\n return [key];\n // if (prev.includes(key)) {\n // return prev.filter((k) => k !== key);\n // }\n\n // return [...prev, key];\n });\n }, []);\n\n const onSort = (key: string) => {\n let _key: string, _order: SortOrder;\n const [prevKey, prevOrder] = sortKey || [];\n\n if (prevKey === key) {\n if (prevOrder === \"desc\") {\n _key = key;\n _order = \"asc\";\n }\n } else {\n _key = key;\n _order = \"desc\";\n }\n\n // @ts-ignore\n setSortKey(typeof _key === \"undefined\" ? undefined : [_key!, _order!]);\n\n // setSortKey((prev) => {\n // if (prev?.[0] === key) {\n // if (prev?.[1] === \"asc\") {\n // return undefined;\n // }\n // _key = key;\n // _order = \"asc\";\n // return [key, \"asc\" as SortOrder];\n // }\n //\n // _key = key;\n // _order = \"desc\";\n //\n // return [key, \"desc\" as SortOrder];\n // });\n\n if (typeof props.onSort === \"function\") {\n // @ts-ignore\n if (!!_key && !!_order) {\n props.onSort!({\n sortKey: key,\n sort: _order,\n });\n } else {\n props.onSort!();\n }\n }\n };\n\n const meta = useMemo(() => {\n return (\n props.meta || {\n count: dataSource.length,\n page: 1,\n pageSize: dataSource.length,\n }\n );\n }, [props.meta, dataSource]);\n\n return (\n <TableContext.Provider\n value={{\n columns: props.columns,\n dataSource: dataSource,\n meta,\n sortKey: sortKey?.[0],\n sortOrder: sortKey?.[1],\n canExpand: props.canExpand,\n expandedRowKeys,\n toggleExpandRow,\n onSort: onSort,\n getLeftFixedColumnsWidth,\n getRightFixedColumnsWidth,\n getLeftFixedColumnsPosition,\n getRightFixedColumnsPosition,\n }}\n >\n {props.children}\n </TableContext.Provider>\n );\n};\n","import { PropsWithChildren } from \"react\";\n\nconst BaseSortIcon = (props: PropsWithChildren) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 10 10\"\n fill=\"none\"\n >\n {props.children}\n </svg>\n );\n};\n\nexport const SortingIcon = () => {\n return (\n <BaseSortIcon>\n <path\n d=\"M5 1.042a.47.47 0 0 0-.338.135L2.166 3.844c-.206.22-.005.531.338.531h4.992c.342 0 .543-.311.337-.531L5.338 1.177A.47.47 0 0 0 5 1.042m0 7.916a.47.47 0 0 1-.338-.135L2.166 6.156c-.206-.22-.005-.531.338-.531h4.992c.342 0 .543.311.337.531L5.338 8.823A.47.47 0 0 1 5 8.958\"\n fill=\"#fff\"\n fillOpacity=\".2\"\n />\n </BaseSortIcon>\n );\n};\n\nexport const AscendingIcon = () => {\n return (\n <BaseSortIcon>\n <path\n d=\"M5 1.042a.47.47 0 0 0-.338.135L2.166 3.844c-.206.22-.005.531.338.531h4.992c.342 0 .543-.311.337-.531L5.338 1.177A.47.47 0 0 0 5 1.042\"\n fill=\"#fff\"\n fillOpacity=\".8\"\n />\n <path\n d=\"M5 8.958a.47.47 0 0 1-.338-.135L2.166 6.156c-.206-.22-.005-.531.338-.531h4.992c.342 0 .543.311.337.531L5.338 8.823A.47.47 0 0 1 5 8.958\"\n fill=\"#fff\"\n fillOpacity=\".2\"\n />\n </BaseSortIcon>\n );\n};\n\nexport const DescendingIcon = () => {\n return (\n <BaseSortIcon>\n <path\n d=\"M5 1.042a.47.47 0 0 0-.338.135L2.166 3.844c-.206.22-.005.531.338.531h4.992c.342 0 .543-.311.337-.531L5.338 1.177A.47.47 0 0 0 5 1.042\"\n fill=\"#fff\"\n fillOpacity=\".2\"\n />\n <path\n d=\"M5 8.958a.47.47 0 0 1-.338-.135L2.166 6.156c-.206-.22-.005-.531.338-.531h4.992c.342 0 .543.311.337.531L5.338 8.823A.47.47 0 0 1 5 8.958\"\n fill=\"#fff\"\n fillOpacity=\".8\"\n />\n </BaseSortIcon>\n );\n};\n","import { FC, memo, useContext, useMemo } from \"react\";\nimport { TableContext } from \"./tableContext\";\n\nexport const FixedDivide: FC = () => {\n const { getLeftFixedColumnsPosition, getRightFixedColumnsPosition, columns } =\n useContext(TableContext);\n\n const left = useMemo<number>(() => getLeftFixedColumnsPosition(), [columns]);\n const right = useMemo(() => getRightFixedColumnsPosition(), [columns]);\n\n const classNames =\n \"oui-absolute oui-top-0 oui-bottom-0 oui-w-[1px] oui-bg-line-6 oui-z-30 oui-pointer-events-none oui-hidden\";\n\n return (\n <>\n {left > 0 ? (\n <div\n id=\"table_left_fixed_divide\"\n className={`${classNames} peer-data-[left=fixed]:oui-block oui-table-left-fixed-divide`}\n style={{ left: `${left}px` }}\n />\n ) : null}\n\n {right > 0 ? (\n <div\n id=\"table_right_fixed_divide\"\n className={`${classNames} peer-data-[right=fixed]:oui-block oui-table-right-fixed-divide`}\n style={{ right: `${right}px` }}\n />\n ) : null}\n </>\n );\n};\n","import { FC, Fragment, ReactNode, useContext } from \"react\";\nimport { TableContext } from \"./tableContext\";\nimport { TableBody } from \"../../table/table\";\nimport { Row } from \"./row\";\n\nexport interface TBodyProps<RecordType> {\n bordered?: boolean;\n\n justified?: boolean;\n\n renderRowContainer?: (\n record: RecordType,\n index: number,\n children: ReactNode\n ) => ReactNode;\n\n generatedRowKey?: (record: RecordType, index: number) => string;\n\n onRow?: (record: RecordType, index: number) => any;\n\n expandRowRender?: (record: RecordType, index: number) => ReactNode;\n}\n\nexport const TBody = <RecordType,>(props: TBodyProps<RecordType>) => {\n const { dataSource, columns, expandedRowKeys, canExpand, toggleExpandRow } =\n useContext(TableContext);\n\n return (\n <TableBody>\n {dataSource?.map((record: any, index) => {\n const key =\n typeof props.generatedRowKey === \"function\"\n ? props.generatedRowKey(record, index)\n : `${index}`; /// `record.ts_${record.price}_${record.size}_${index}`;\n\n const row = (\n <Row<RecordType>\n key={key}\n rowKey={key}\n index={index}\n columns={columns}\n record={record}\n canExpand={canExpand}\n justified={props.justified}\n bordered={props.bordered}\n onRow={props.onRow}\n onToggleExpand={toggleExpandRow}\n expanded={!!expandedRowKeys?.includes(key)}\n expandRowRender={props.expandRowRender}\n />\n );\n\n if (typeof props.renderRowContainer === \"function\") {\n return (\n <Fragment key={key}>\n {props.renderRowContainer(record, index, row)}\n </Fragment>\n );\n }\n\n return row;\n })}\n </TableBody>\n );\n};\n","import { FC, ReactNode, useContext, useMemo } from \"react\";\nimport { Col, Column } from \"./col\";\nimport { TableRow } from \"../table\";\n\nimport { ExpandRow } from \"./expandRow\";\n\ninterface RowProps<RecordType> {\n columns: Column<RecordType>[];\n record: any;\n bordered?: boolean;\n justified?: boolean;\n index: number;\n rowKey: string;\n onRow?: (record: any, index: number) => any;\n expanded: boolean;\n canExpand?: boolean;\n expandRowRender?: (record: RecordType, index: number) => ReactNode;\n onToggleExpand: (key: string) => void;\n}\n\nexport const Row = <RecordType,>(props: RowProps<RecordType>) => {\n const { columns, record, index, bordered } = props;\n\n const cols = useMemo(() => {\n return columns.map((column, index) => {\n return (\n <Col\n key={column.dataIndex}\n col={column}\n index={index}\n record={record}\n justified={props.justified}\n />\n );\n });\n }, [columns, record]);\n\n const rowAttrs = useMemo(() => {\n if (typeof props.onRow === \"function\") {\n return props.onRow(record, index);\n }\n return {};\n }, [record, index, props.onRow]);\n\n const { className, ...rest } = rowAttrs;\n console.log(\"table row rest\", rest);\n \n\n return (\n <>\n <TableRow\n // className={cn(\n // \"orderly-ui-table-tr hover:orderly-bg-base-800 orderly-group\",\n // props.bordered &&\n // \"orderly-border-b orderly-border-divider last:orderly-border-b-0\",\n // props.canExpand && \"orderly-cursor-pointer\",\n // className\n // )}\n className={className}\n onClick={(event) => {\n if (!props.canExpand) return;\n props.onToggleExpand(props.rowKey);\n event.preventDefault();\n event.stopPropagation();\n }}\n bordered={bordered}\n {...rest}\n >\n {cols}\n </TableRow>\n {props.expanded && (\n <ExpandRow\n columns={columns}\n expandRowRender={props.expandRowRender}\n record={record}\n index={index}\n bordered={bordered}\n />\n )}\n </>\n );\n};\n","import { CSSProperties, FC, ReactNode, useMemo } from \"react\";\nimport { TableCell } from \"../table\";\nimport { cnBase } from \"tailwind-variants\";\nimport { withFixedStyle } from \"./colHOC\";\nimport {\n FormattedTextProps,\n isTextRule,\n type TextRule,\n} from \"../../typography/formatted\";\nimport { FormattedText } from \"../../typography/formatted\";\nimport {\n Numeral,\n NumeralProps,\n isNumeralRule,\n type NumeralRule,\n} from \"../../typography/numeral\";\n\nexport type ColumnFixed = \"left\" | \"right\";\n\nexport type SortOrder = \"asc\" | \"desc\";\n\nexport type TableCellFormatter<T> =\n | string\n | ((value: any, record: T, index: number) => any);\n\nexport type TableCellRenderer<T> =\n | string\n | ((value: any, record: T, index: number) => React.ReactNode);\n\nexport type Column<RecordType extends unknown = any> = {\n title: ReactNode;\n hint?: ReactNode;\n hintClassName?: string;\n width?: number;\n fixed?: ColumnFixed;\n dataIndex: string;\n className?: string | ((record: RecordType, index: number) => string);\n align?: \"left\" | \"center\" | \"right\";\n onSort?:\n | boolean\n | ((r1: RecordType, r2: RecordType, sortOrder: SortOrder) => number);\n formatter?: TableCellFormatter<RecordType>;\n render?: TableCellRenderer<RecordType>;\n getKey?: (record: RecordType, index: number) => string;\n\n /**\n * text rule for formatted text, if provided, the text will be rendered as formatted text component;\n */\n rule?: TextRule | NumeralRule;\n numeralProps?:\n | Omit<NumeralProps, \"children\" | \"as\" | \"rule\">\n | ((\n value: any,\n record: RecordType,\n index: number\n ) => Omit<NumeralProps, \"children\" | \"as\" | \"rule\">);\n /**\n * text props for formatted text\n */\n textProps?:\n | Omit<FormattedTextProps, \"children\" | \"as\" | \"rule\">\n | ((\n value: any,\n record: RecordType,\n index: number\n ) => Omit<FormattedTextProps, \"children\" | \"as\" | \"rule\">);\n};\n\nexport interface ColProps {\n col: Column;\n record: any;\n index: number;\n justified?: boolean;\n style?: CSSProperties;\n}\n\nexport const ColItem: FC<ColProps> = (props) => {\n const { col, record, index, style, ...rest } = props;\n const { align } = col;\n\n const content = useMemo(() => {\n const { col } = props;\n const { dataIndex, formatter, render } = col;\n let value = props.record[dataIndex];\n if (typeof formatter === \"function\") {\n value = formatter(value, props.record, props.index);\n }\n if (typeof render === \"function\") {\n return render(value, props.record, props.index);\n }\n\n if (typeof col.rule !== \"undefined\") {\n if (isTextRule(col.rule)) {\n const textProps =\n typeof col.textProps === \"function\"\n ? col.textProps(value, record, index)\n : col.textProps;\n return (\n <FormattedText\n rule={col.rule}\n {...textProps}\n // copyable={col.copyable}\n >\n {value}\n </FormattedText>\n );\n }\n\n if (isNumeralRule(col.rule)) {\n const numeralProps =\n typeof col.numeralProps === \"function\"\n ? col.numeralProps(value, record, index)\n : col.numeralProps;\n\n return (\n <Numeral rule={col.rule} {...numeralProps}>\n {value}\n </Numeral>\n );\n }\n }\n\n return value;\n }, [col, record]);\n\n const colClassName = useMemo(() => {\n if (typeof col.className === \"function\") {\n return col.className(record, index);\n }\n return col.className;\n }, [col, record, index]);\n\n return (\n <TableCell\n className={cnBase(\n props.justified && \"first:oui-pl-0 last:oui-pr-0\",\n colClassName,\n align === \"right\" && \"oui-text-right\",\n align === \"center\" && \"oui-text-center\",\n col.fixed && \"oui-sticky oui-z-10\"\n )}\n style={{\n backgroundColor: col.fixed\n ? \"var(--oui-table-background-color)\"\n : \"transparent\",\n ...style,\n }}\n {...rest}\n >\n {content}\n </TableCell>\n );\n};\n\nexport const Col = withFixedStyle(ColItem);\n","import { FC, ReactNode, useMemo } from \"react\";\nimport { Column, ColumnFixed } from \"./col\";\nimport { cnBase } from \"tailwind-variants\";\n\ninterface Props<RecordType> {\n columns: Column[];\n expandRowRender?: (record: RecordType, index: number) => ReactNode;\n record: RecordType;\n\n index: number;\n bordered?: boolean;\n}\n\nexport const ExpandRow = <RecordType,>(props: Props<RecordType>) => {\n const { columns, record, index } = props;\n const cols = useMemo(() => {\n const cols: { colCount: number; type: ColumnFixed | undefined }[] = [];\n\n let prev;\n for (let i = 0; i < columns.length; i++) {\n const col = columns[i];\n if (i === 0) {\n cols.push({ colCount: 1, type: col.fixed });\n continue;\n } else {\n prev = columns[i - 1];\n }\n\n if (col.fixed !== prev?.fixed) {\n cols.push({ colCount: 1, type: col.fixed });\n } else {\n cols[cols.length - 1] = {\n ...cols[cols.length - 1],\n colCount: cols[cols.length - 1].colCount + 1,\n };\n }\n }\n return cols;\n }, [columns]);\n\n return (\n <tr\n className={cnBase(\n props.bordered && \"oui-border-b oui-border-divider last:oui-border-b-0\"\n )}\n >\n {cols.map((item, index) => {\n const pos =\n item.type === undefined\n ? {}\n : item.type === \"left\"\n ? {\n left: \"0px\",\n borderBouttom: \"1px solid #e5e5e5\",\n }\n : {\n right: \"0px\",\n borderBouttom: \"1px solid #e5e5e5\",\n };\n return (\n <td\n colSpan={item.colCount}\n key={index}\n style={{\n ...pos,\n backgroundColor:\n item.type !== undefined\n ? \"var(--table-background-color)\"\n : \"transparent\",\n }}\n className={cnBase(!!item.type && \"oui-sticky\")}\n >\n {!item.type ? (\n <div className=\"oui-bg-base-700 oui-rounded-[4px] oui-my-1\">\n {props.expandRowRender?.(record, index)}\n </div>\n ) : null}\n </td>\n );\n })}\n </tr>\n );\n};\n","import { ElementType, FC, useMemo } from \"react\";\nimport { ExtensionPosition } from \"./types\";\nimport { OrderlyExtensionRegistry } from \"./registry\";\nimport { useExtensionBuilder } from \"./useExtensionBuilder\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { NotFound } from \"./notFound\";\nimport { ErrorBoundary } from \"react-error-boundary\";\n\ninterface Props {\n position: ExtensionPosition;\n defaultWidget?: FC;\n scope?: string[];\n [key: string]: any;\n}\n\nexport const ExtensionSlot: FC<Props> = (props) => {\n const { position, scope, defaultWidget: defaultValue, ...rest } = props;\n // const [component, setComponent] = useState<ReactNode | null>(null);\n //\n\n const elementProps = useExtensionBuilder(position, rest);\n // @ts-ignore\n const Ele = useMemo<ElementType>(() => {\n const registry = OrderlyExtensionRegistry.getInstance();\n\n const plugin = registry.getPluginsByPosition(position);\n\n // if (isValidElement(plugin?.render)) {\n // return plugin?.render;\n // }\n\n // if (isValidElement(defaultValue)) {\n // return defaultValue;\n // }\n\n return plugin?.render ?? defaultValue ?? NotFound;\n }, []);\n\n return (\n // @ts-ignore\n <ErrorBoundary\n fallback={<div>{`Component: [${position}] went wrong`}</div>}\n >\n <Slot {...(elementProps as any)} position={position}>\n <Ele />\n </Slot>\n </ErrorBoundary>\n );\n};\n","import { getGlobalObject } from \"@orderly.network/utils\";\nimport { Extension, ExtensionBuilder, ExtensionPosition } from \"./types\";\n\nconst DEFAULT_BUILDER = (data: any) => {\n console.warn(\"No builder provided for extension\");\n return data || {};\n};\n\n// The plugin manager\nexport class OrderlyExtensionRegistry {\n // private static _instance: OrderlyExtensionRegistry;\n static getInstance(): OrderlyExtensionRegistry {\n const globalObject = getGlobalObject();\n\n if (!(globalObject as any).__ORDERLY_EXTENSION_REGISTRY__) {\n (globalObject as any).__ORDERLY_EXTENSION_REGISTRY__ =\n new OrderlyExtensionRegistry();\n }\n return (globalObject as any).__ORDERLY_EXTENSION_REGISTRY__;\n\n // if (!OrderlyExtensionRegistry._instance) {\n // OrderlyExtensionRegistry._instance = new OrderlyExtensionRegistry();\n // }\n // return OrderlyExtensionRegistry._instance;\n }\n private extensionMap: Map<ExtensionPosition, Extension<unknown>> = new Map();\n // private formatterMap: Map<string, Function> = new Map();\n\n register<Props>(\n plugin: Omit<Extension<Props>, \"builder\"> & {\n builder?: (props: any) => Props;\n }\n ) {\n // this.pluginMap.set(plugin.name, plugin);\n\n for (let index = 0; index < plugin.positions.length; index++) {\n if (typeof plugin.builder !== \"function\") {\n // get exsiting builder\n const builder = this.extensionMap.get(plugin.positions[index])?.builder;\n plugin.builder =\n typeof builder === \"undefined\"\n ? DEFAULT_BUILDER\n : (builder as ExtensionBuilder);\n }\n const pos = plugin.positions[index];\n this.registerToPosition<Props>(pos, plugin as Extension<Props>);\n }\n }\n\n private registerToPosition<Props>(\n position: ExtensionPosition,\n plugin: Extension<Props>\n ) {\n if (this.extensionMap.has(position)) {\n const existingPlugin = this.extensionMap.get(position);\n if (!existingPlugin?.__isInternal) {\n throw new Error(`Plugin already registered at position [${position}]`);\n }\n }\n\n this.extensionMap.set(position, plugin);\n }\n\n setBuilder<Props>(\n position: ExtensionPosition,\n builder: ExtensionBuilder<Props>\n ) {\n const plugin = this.extensionMap.get(position);\n if (plugin) {\n plugin.builder = builder;\n }\n }\n\n unregister(plugin: Extension<unknown>) {\n for (let index = 0; index < plugin.positions.length; index++) {\n const pos = plugin.positions[index];\n\n this.unregisterFromPosition(pos);\n }\n }\n\n private unregisterFromPosition(position: ExtensionPosition) {\n this.extensionMap.delete(position);\n }\n\n getPluginsByPosition(position: ExtensionPosition) {\n return this.extensionMap.get(position);\n }\n\n /**\n * get the registered formatter by position\n * @param position\n */\n getFormatterByPosition(position: ExtensionPosition) {\n return this.extensionMap.get(position);\n }\n}\n","import { OrderlyExtensionRegistry } from \"./registry\";\nimport { ExtensionPosition } from \"./types\";\n\nexport const useBuilder = (position: ExtensionPosition, props: any) => {\n const registry = OrderlyExtensionRegistry.getInstance();\n const plugin = registry.getPluginsByPosition(position);\n return () => {\n return plugin?.builder?.(props) || props;\n };\n};\n","import { ExtensionPosition } from \"./types\";\nimport { useBuilder } from \"./useBuilder\";\n\nexport const useExtensionBuilder = (\n position: ExtensionPosition,\n props: any\n) => {\n const builder = useBuilder(position, props);\n\n return builder();\n};\n","import { FC } from \"react\";\n\nexport const NotFound: FC<{ position: string }> = (props) => {\n const { position } = props;\n return (\n <div className=\"oui-text-danger\">\n <strong>{`[${position}] `}</strong>\n <span>Not found!</span>\n </div>\n );\n};\n","import { ReactNode } from \"react\";\nimport { ExtensionSlot } from \"../../plugin/slot\";\nimport { Box } from \"../../box\";\nimport { Spinner } from \"../../spinner/spinner\";\n\nexport const TablePlaceholder = (\n props: React.HTMLAttributes<HTMLDivElement> & {\n visible?: boolean;\n loading?: boolean;\n emptyView?: ReactNode;\n }\n) => {\n const { visible, loading, emptyView, ...divProps } = props;\n\n if (!visible) return null;\n\n return (\n <Box\n position=\"absolute\"\n left={0}\n top={0}\n right={0}\n bottom={0}\n {...divProps}\n // style={{\n // width: width || \"100%\",\n // height: height || \"100%\",\n // }}\n className=\"oui-flex oui-justify-center oui-items-center oui-bg-base-9/75\"\n >\n {loading ? (\n <Spinner />\n ) : (\n emptyView || <ExtensionSlot position={\"emptyDataState\"} />\n )}\n </Box>\n );\n};\n","import { useEffect, useRef, useState } from \"react\";\n\nconst DEFAULT_MIN_HEIGHT = 130;\n\nexport const useTableSize = (\n tableRef: React.RefObject<HTMLTableElement>,\n options: {\n dataSource: any;\n initialMinHeight?: number;\n minHeight?: number;\n scroll?: { x?: number; y?: number };\n }\n): {\n width?: string;\n height?: string;\n minHeight: string;\n updateMinHeight: (height: number) => void;\n} => {\n const { scroll, dataSource } = options;\n let width!: string, height!: string;\n const initialMinHeight = options.initialMinHeight || DEFAULT_MIN_HEIGHT;\n\n const [minHeight, setMinHeight] = useState(initialMinHeight);\n\n const dataIsEmpty = !Array.isArray(dataSource) || dataSource?.length === 0;\n // const [minHeight, setMinHeight] = useState(options.minHeight || 240);\n //\n useEffect(() => {\n if (!tableRef.current || typeof options.minHeight !== \"undefined\") return;\n\n const resizeObserver = new ResizeObserver((entries) => {\n for (let entry of entries) {\n const { height } = entry.contentRect;\n // minHeight.current = Math.max(height, minHeight.current);\n setMinHeight((minHeight) =>\n dataIsEmpty\n ? initialMinHeight\n : height < minHeight\n ? height\n : Math.max(height, minHeight)\n );\n }\n });\n\n resizeObserver.observe(tableRef.current);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [tableRef.current]);\n\n if (typeof scroll?.x === \"number\") {\n width = `${scroll.x}px`;\n }\n // else {\n // width = \"100%\";\n // }\n\n if (typeof scroll?.y === \"number\") {\n height = `${scroll.y}px`;\n }\n // else {\n // height = \"100%\";\n // }\n\n const updateMinHeight = (height: number) => {\n setMinHeight(height);\n };\n\n return {\n width: width,\n height: height,\n minHeight: `${options.minHeight || minHeight}px`,\n updateMinHeight,\n };\n};\n","import { FC, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { Popover } from \"../popover/popover\";\nimport { Calendar, CalendarProps } from \"./date/calendar\";\nimport { selectVariants } from \"../select/selectPrimitive\";\nimport { CalendarIcon } from \"../icon/calendar\";\nimport { CaretDownIcon } from \"../icon/caretDown\";\nimport type { SizeType } from \"../helpers/sizeType\";\nimport { format } from \"date-fns\";\nimport { DateRange, DayPickerRangeProps } from \"react-day-picker\";\n\nexport type DateRangePickerProps = {\n onChange?: (date: DateRange) => void;\n // selected: Date;\n placeholder?: string;\n value?: DateRange;\n initialValue?: DateRange;\n dateFormat?: string;\n size?: SizeType;\n className?: string;\n formatString?: string;\n} & Omit<DayPickerRangeProps, \"mode\">;\n\nconst DEFAULT_DATE_FORMAT = \"yyyy/MM/dd\";\n\nconst DateRangePicker: FC<DateRangePickerProps> = (props) => {\n const {\n placeholder,\n dateFormat,\n onChange,\n value,\n initialValue,\n size,\n className,\n formatString = DEFAULT_DATE_FORMAT,\n ...calendarProps\n } = props;\n const [open, setOpen] = useState(false);\n const [dateRange, setDateRange] = useState<DateRange | null>(\n value || initialValue || null\n );\n\n const [isMobileView, setIsMobileView] = useState<boolean>(false);\n\n const update = useDebouncedCallback((width: number) => {\n setIsMobileView(width <= 768);\n }, 100);\n\n // Effect hook to listen to window resize events\n useEffect(() => {\n const handleResize = () => {\n update(window.innerWidth);\n };\n\n setIsMobileView(window.innerWidth <= 768);\n window.addEventListener(\"resize\", handleResize);\n\n // Cleanup event listener on component unmount\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n\n const { trigger } = selectVariants({ size, className });\n\n const formattedValue = useMemo(() => {\n // console.log(\"dateRange\", dateRange);\n if (!dateRange || !dateRange.from || !dateRange.to) {\n return placeholder ?? \"Select Date\";\n }\n const arr = [];\n if (dateRange.from) arr.push(format(dateRange.from, formatString));\n if (dateRange.to) arr.push(format(dateRange.to, formatString));\n\n return `${arr.join(\" - \")}`;\n }, [dateRange, placeholder]);\n\n const onOpenChange = (nextOpen: boolean) => {\n // console.log(dateRange);\n if (\n typeof dateRange?.to === \"undefined\" &&\n typeof dateRange?.from !== \"undefined\"\n ) {\n setDateRange({\n ...dateRange,\n to: dateRange.from,\n });\n }\n if (!nextOpen && dateRange) {\n onChange?.(dateRange);\n }\n setOpen(nextOpen);\n };\n\n const onSelected = (range: DateRange, date: Date) => {\n if (dateRange?.from && dateRange?.to) {\n setDateRange({\n from: date,\n });\n } else {\n setDateRange(range);\n }\n };\n\n return (\n <Popover\n open={open}\n onOpenChange={onOpenChange}\n contentProps={{\n className: \"oui-w-auto oui-p-0\",\n align: \"start\",\n }}\n content={\n <Calendar\n numberOfMonths={isMobileView ? 1 : 2}\n {...calendarProps}\n mode={\"range\"}\n // @ts-ignore\n selected={dateRange}\n // @ts-ignore\n onSelect={onSelected}\n />\n }\n >\n <button\n className={trigger({\n className: \"oui-datepicker-trigger oui-group\",\n })}\n >\n <span className=\"oui-datepicker-trigger-icon\">\n <CalendarIcon size={14} className=\"oui-text-inherit\" opacity={1} />\n </span>\n <span>{formattedValue}</span>\n <CaretDownIcon\n size={12}\n className=\"oui-datepicker-trigger-arrow oui-text-inherit oui-transition-transform group-data-[state=open]:oui-rotate-180 group-data-[state=closed]:oui-rotate-0\"\n opacity={1}\n />\n </button>\n </Popover>\n );\n};\n\nDateRangePicker.displayName = \"DateRangePicker\";\n\nexport { DateRangePicker };\n\nfunction useDebouncedCallback(callback: any, delay: number) {\n const timeoutRef = useRef<number | null>(null);\n\n const debouncedCallback = useCallback(\n (args: any) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n callback(args);\n }, delay);\n },\n [callback, delay]\n );\n return debouncedCallback;\n}\n","import { DayPicker } from \"react-day-picker\";\n\nimport { ChevronLeftIcon, ChevronRightIcon } from \"../../icon\";\nimport { cnBase } from \"tailwind-variants\";\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>;\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cnBase(\"oui-p-3 oui-bg-base-7 oui-rounded\", className)}\n classNames={{\n months:\n \"oui-flex oui-flex-col sm:oui-flex-row oui-space-y-4 sm:oui-space-x-4 sm:oui-space-y-0\",\n month: \"oui-space-y-4\",\n caption:\n \"oui-flex oui-justify-center oui-pt-1 oui-relative oui-items-center\",\n caption_label: \"oui-text-sm oui-font-medium \",\n nav: \"oui-space-x-1 oui-flex oui-items-center\",\n nav_button: cnBase(\n \"oui-h-7 oui-w-7 oui-bg-transparent oui-p-0 oui-opacity-50 hover:oui-opacity-100\"\n ),\n nav_button_previous: \"oui-absolute oui-left-1\",\n nav_button_next: \"oui-absolute oui-right-1\",\n table: \"oui-w-full oui-border-collapse oui-space-y-1\",\n head_row: \"oui-flex\",\n head_cell:\n \"oui-text-base-contrast-80 oui-rounded-md oui-w-7 oui-font-normal oui-text-[0.8rem] oui-opacity-30\",\n row: \"oui-flex oui-w-full oui-mt-2\",\n cell: cnBase(\n \"oui-relative oui-day-cell oui-p-0 oui-text-center oui-text-2xs focus-within:oui-relative focus-within:oui-z-20 [&:has([aria-selected])]:oui-bg-base-4 [&:has([aria-selected].day-outside)]:oui-bg-base-4/50 [&:has([aria-selected].day-range-end)]:oui-rounded-r-md\",\n props.mode === \"range\"\n ? \"[&:has(>.oui-day-range-end)]:oui-rounded-r-md [&:has(>.oui-day-range-start)]:oui-rounded-l-md first:[&:has([aria-selected])]:oui-rounded-l-md last:[&:has([aria-selected])]:oui-rounded-r-md\"\n : \"[&:has([aria-selected])]:oui-rounded-md\"\n ),\n day: cnBase(\n // buttonVariants({ variant: \"ghost\" }),\n \"oui-h-7 oui-w-7 oui-p-0 oui-rounded-md oui-font-normal aria-selected:oui-opacity-100 oui-text-base-contrast-80 hover:oui-bg-base-5\"\n ),\n day_range_start:\n \"day-range-start oui-bg-primary oui-text-base-contrast-80 hover:oui-bg-primary\",\n day_range_end:\n \"day-range-end oui-bg-primary oui-text-base-contrast-80 hover:oui-bg-primary\",\n day_selected: \"oui-bg-base-4 \",\n day_today: \"oui-bg-accent \",\n day_outside:\n \"oui-day-outside oui-text-muted-foreground oui-opacity-50 aria-selected:oui-bg-accent/50 aria-selected:oui-text-muted-foreground aria-selected:oui-opacity-30\",\n day_disabled: \"oui-text-muted-foreground oui-opacity-50\",\n day_range_middle:\n \"aria-selected:oui-bg-accent aria-selected:oui-text-accent-foreground\",\n day_hidden: \"oui-invisible\",\n ...classNames,\n }}\n components={{\n IconLeft: ({ ...props }) => (\n <ChevronLeftIcon size={16} className=\"oui-text-inherit\" opacity={1} />\n ),\n IconRight: ({ ...props }) => (\n <ChevronRightIcon\n size={16}\n className=\"oui-text-inherit\"\n opacity={1}\n />\n ),\n }}\n {...props}\n />\n );\n}\n\nCalendar.displayName = \"Calendar\";\n\nexport { Calendar };\n","import { FC, useMemo, useState } from \"react\";\nimport { Popover } from \"../popover/popover\";\nimport { Calendar, CalendarProps } from \"./date/calendar\";\nimport { selectVariants } from \"../select/selectPrimitive\";\nimport { CalendarIcon } from \"../icon/calendar\";\nimport { CaretDownIcon } from \"../icon/caretDown\";\nimport type { SizeType } from \"../helpers/sizeType\";\nimport { ActiveModifiers } from \"react-day-picker\";\n\nexport type DatePickerProps = {\n onChange?: (date: Date) => void;\n // selected: Date;\n placeholder?: string;\n value?: Date;\n dateFormat?: string;\n size?: SizeType;\n className?: string;\n} & CalendarProps;\n\nconst DatePicker: FC<DatePickerProps> = (props) => {\n const {\n placeholder,\n dateFormat,\n onChange,\n value,\n size,\n className,\n ...calendarProps\n } = props;\n\n const { trigger } = selectVariants({ size, className });\n\n const [open, setOpen] = useState(false);\n\n const formattedValue = useMemo(() => {\n if (typeof value === \"undefined\") {\n return placeholder ?? \"Select Date\";\n }\n }, [value, placeholder]);\n\n const onSelect = (\n day: Date | undefined,\n selectedDay: Date,\n activeModifiers: ActiveModifiers,\n e: MouseEvent\n ) => {\n //@ts-ignore\n calendarProps.onSelect?.(day, selectedDay, activeModifiers, e);\n\n if (day) {\n onChange?.(day);\n setOpen(false);\n }\n };\n\n return (\n <Popover\n open={open}\n onOpenChange={setOpen}\n contentProps={{\n className: \"oui-w-auto oui-p-0\",\n }}\n // @ts-ignore\n content={<Calendar onSelect={onSelect} {...calendarProps} />}\n >\n <button\n className={trigger({\n className: \"orderly-datepicker-trigger oui-group\",\n })}\n >\n <span className=\"orderly-datepicker-trigger-icon\">\n <CalendarIcon size={14} className=\"oui-text-inherit\" opacity={1} />\n </span>\n <span>{formattedValue}</span>\n <CaretDownIcon\n size={12}\n className=\"orderly-datepicker-trigger-arrow oui-text-inherit oui-transition-transform group-data-[state=open]:oui-rotate-180 group-data-[state=closed]:oui-rotate-0\"\n opacity={1}\n />\n </button>\n </Popover>\n );\n};\n\nDatePicker.displayName = \"DatePicker\";\n\nexport { DatePicker };\n","import { FC } from \"react\";\nimport {\n DateRangePicker,\n DateRangePickerProps,\n} from \"../../pickers/dateRangePicker\";\nimport { Flex } from \"../../flex\";\nimport {\n SelectWithOptions,\n type SelectWithOptionsProps,\n} from \"../../select/withOptions\";\nimport { DatePicker, DatePickerProps } from \"../../pickers/datepicker\";\nimport { CombineSelect } from \"../../select/combine\";\nimport { DateRange } from \"react-day-picker\";\n\ntype FilterType = \"select\" | \"input\" | \"date\" | \"range\" | \"custom\" | \"symbol\";\n\ntype DataFilterGeneral = {\n // initialValue?: any;\n name: string;\n type: FilterType;\n};\n\ntype SelectFilter = {\n type: \"select\";\n isCombine?: boolean;\n // options: DataFilterOption[];\n} & SelectWithOptionsProps;\n\n// type DateFilterMode = \"range\" | \"single\";\n\ntype DateFilter = {\n type: \"date\";\n // range?: DataFilterDateRange;\n // mode?: DateFilterMode;\n} & DatePickerProps;\n\ntype DateRangeFilter = {\n type: \"range\";\n} & DateRangePickerProps;\n\ntype SymbolFilter = {\n type: \"symbol\";\n};\n\nexport type DataFilterItems = (DataFilterGeneral &\n (SelectFilter | DateFilter | DateRangeFilter | SymbolFilter))[];\n\nexport type DataFilterProps = {\n items: DataFilterItems;\n onFilter: (filter: { name: string; value: any }) => void;\n};\n\nconst FilterDatePicker = (props: DatePickerProps) => {\n return (\n <div>\n {/* @ts-ignore */}\n <DatePicker\n size=\"xs\"\n {...props}\n mode={\"single\"}\n onChange={(date) => {\n console.log(date);\n }}\n />\n </div>\n );\n};\n\nconst FilterDateRangePicker = (props: DateRangePickerProps) => {\n const { onChange, ...rest } = props;\n\n const onValueChange = (value: DateRange) => {\n // const from =value.from\n // console.log(value);\n\n if (typeof onChange === \"function\") {\n onChange(value);\n }\n };\n\n return (\n <div className={\"oui-min-w-[180px]\"}>\n <DateRangePicker size=\"xs\" {...rest} onChange={onValueChange} />\n </div>\n );\n};\n\nexport const DataFilterRenderer: FC<{\n type: FilterType;\n onChange?: (value: any) => void;\n [key: string]: any;\n}> = (props) => {\n const { onChange, type, isCombine, ...rest } = props;\n\n switch (type) {\n case \"select\":\n return (\n <div className=\"oui-min-w-24\">\n {isCombine ? (\n <CombineSelect\n size=\"xs\"\n {...(rest as SelectWithOptionsProps)}\n onValueChange={onChange}\n />\n ) : (\n <SelectWithOptions\n size=\"xs\"\n {...(rest as SelectWithOptionsProps)}\n onValueChange={onChange}\n />\n )}\n </div>\n );\n case \"date\":\n return <FilterDatePicker {...(rest as DatePickerProps)} />;\n case \"range\":\n return (\n <FilterDateRangePicker\n {...(rest as DateRangePickerProps)}\n onChange={onChange}\n />\n );\n case \"symbol\":\n return <div></div>;\n case \"input\":\n default:\n return <div>No Component</div>;\n }\n};\n\nexport const DataTableFilter = (props: DataFilterProps) => {\n return (\n <Flex\n justify={\"start\"}\n gapX={3}\n py={3}\n width={\"100%\"}\n className=\"oui-data-grid-filter-bar oui-border-b oui-border-line\"\n >\n {props.items.map((item, index: number) => {\n if (item.type === \"date\") {\n (item as DatePickerProps).mode = \"range\";\n }\n\n return (\n <DataFilterRenderer\n key={index}\n {...item}\n onChange={(value: any) => {\n // onChange(item.name ?? item.type, value);\n props.onFilter({ name: item.name ?? item.type, value });\n }}\n />\n );\n })}\n </Flex>\n );\n};\n","import { createContext, PropsWithChildren, useContext } from \"react\";\nimport { DataFilterProps } from \"./dataFilter\";\n\nexport type PaginationOptions = {\n page: number;\n pageSize: number;\n count: number;\n};\n\nexport type DataGridContextState = {\n filter?: DataFilterProps;\n pagination?: PaginationOptions;\n};\n\nexport const DataGridContext = createContext<DataGridContextState>(\n {} as DataGridContextState\n);\n\nexport const useDataGridContext = () => {\n return useContext(DataGridContext);\n};\n\nexport const DataGridProvider = (\n props: PropsWithChildren<{\n filter?: DataFilterProps;\n pagination: PaginationOptions;\n }>\n) => {\n return (\n <DataGridContext.Provider\n value={{\n filter: props.filter,\n pagination: props.pagination,\n }}\n >\n {props.children}\n </DataGridContext.Provider>\n );\n};\n","import { DataTableFilter } from \"./dataFilter\";\nimport { useDataGridContext } from \"./dataGridContext\";\n\nexport const DataGridFilterBar = () => {\n const { filter } = useDataGridContext();\n\n if (!filter || !filter.items) {\n return null;\n }\n\n return <DataTableFilter items={filter.items} onFilter={filter.onFilter} />;\n};\n","import * as React from \"react\";\nimport { Text } from \"../typography/text\";\n\nimport { ChevronLeftIcon, ChevronRightIcon } from \"../icon\";\n\nimport { ButtonProps, buttonVariants } from \"../button\";\nimport { cnBase } from \"tailwind-variants\";\nimport { Select } from \"../select\";\nimport { Flex } from \"../flex\";\nimport { useMemo } from \"react\";\n\nconst Pagination = ({ className, ...props }: React.ComponentProps<\"nav\">) => (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cnBase(\n \"oui-flex oui-justify-between oui-items-center oui-w-full oui-text-xs\",\n className\n )}\n {...props}\n />\n);\nPagination.displayName = \"Pagination\";\n\nconst PaginationContent = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n className={cnBase(\n \"oui-flex oui-flex-row oui-items-center oui-gap-x-2\",\n className\n )}\n {...props}\n />\n));\nPaginationContent.displayName = \"PaginationContent\";\n\nconst PaginationItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ className, ...props }, ref) => (\n <li ref={ref} className={cnBase(\"oui-leading-[0px]\", className)} {...props} />\n));\nPaginationItem.displayName = \"PaginationItem\";\n\ntype PaginationLinkProps = {\n isActive?: boolean;\n} & Pick<ButtonProps, \"size\"> &\n React.ComponentProps<\"button\">;\n\nconst PaginationLink = ({\n className,\n isActive,\n // size = \"icon\",\n ...props\n}: PaginationLinkProps) => (\n <button\n aria-current={isActive ? \"page\" : undefined}\n data-active={isActive}\n className={buttonVariants({\n size: \"xs\",\n // color:'white',\n variant: isActive ? \"contained\" : \"text\",\n className:\n \"oui-min-w-6 oui-text-base-contrast-80 oui-font-semibold data-[active=false]:hover:oui-bg-base-6 disabled:oui-bg-transparent disabled:hover:oui-bg-transparent\",\n // size,\n })}\n {...props}\n />\n);\nPaginationLink.displayName = \"PaginationLink\";\n\nconst PaginationPrevious = ({\n className,\n\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to previous page\"\n className={cnBase(\"oui-gap-1 oui-pl-2.5\", className)}\n {...props}\n >\n <ChevronLeftIcon className=\"oui-h-4 oui-w-4\" color=\"white\" />\n </PaginationLink>\n);\nPaginationPrevious.displayName = \"PaginationPrevious\";\n\nconst PaginationNext = ({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to next page\"\n className={cnBase(\"oui-gap-1 oui-pr-2.5\", className)}\n {...props}\n >\n <ChevronRightIcon className=\"oui-h-4 oui-w-4\" color=\"white\" />\n </PaginationLink>\n);\nPaginationNext.displayName = \"PaginationNext\";\n\nconst PaginationEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n aria-hidden\n className={cnBase(\n \"oui-flex oui-h-9 oui-w-9 oui-items-center oui-justify-center\",\n className\n )}\n {...props}\n >\n {/* <DotsHorizontalIcon className=\"h-4 w-4\" /> */}\n <span className=\"sr-only\">More pages</span>\n </span>\n);\nPaginationEllipsis.displayName = \"PaginationEllipsis\";\n\nexport type PaginationProps = {\n onPageChange?: (page: number) => void;\n onPageSizeChange?: (pageSize: number) => void;\n pageSize?: number;\n page: number;\n count: number;\n pageTotal: number;\n className?: string;\n classNames?: {\n pagination?: string;\n paginationContent?: string;\n paginationItem?: string;\n paginationLink?: string;\n paginationPrevious?: string;\n paginationNext?: string;\n paginationEllipsis?: string;\n };\n};\n\nconst Paginations = (props: PaginationProps) => {\n const {\n classNames,\n className,\n pageTotal: totalPages,\n page: currentPage,\n } = props;\n\n return (\n <Pagination className={cnBase(classNames?.pagination, className)}>\n <Flex mr={4}>\n <Text\n as=\"div\"\n size=\"2xs\"\n intensity={54}\n className=\"oui-text-nowrap oui-mr-2\"\n >\n Rows per page\n </Text>\n <div className={\"oui-w-14\"}>\n <Select.options\n options={[\n { value: \"10\", label: \"10\" },\n { value: \"20\", label: \"20\" },\n { value: \"50\", label: \"50\" },\n { value: \"100\", label: \"100\" },\n ]}\n value={`${props.pageSize ?? 5}`}\n size=\"xs\"\n onValueChange={(value) => props.onPageSizeChange?.(parseInt(value))}\n />\n </div>\n </Flex>\n <PaginationItems {...props} />\n </Pagination>\n );\n};\n\nfunction generatePagination(\n currentPage: number,\n totalPages: number\n): (number | string)[] {\n const pagination: (number | string)[] = [];\n const ellipsis = \"...\";\n const maxPagesToShow = 5;\n\n if (totalPages <= maxPagesToShow) {\n for (let i = 1; i <= totalPages; i++) {\n pagination.push(i);\n }\n } else {\n if (currentPage <= 3) {\n pagination.push(1, 2, 3, 4, ellipsis, totalPages);\n } else if (currentPage >= totalPages - 2) {\n pagination.push(\n 1,\n ellipsis,\n totalPages - 3,\n totalPages - 2,\n totalPages - 1,\n totalPages\n );\n } else {\n pagination.push(\n 1,\n ellipsis,\n currentPage - 1,\n currentPage,\n currentPage + 1,\n ellipsis,\n totalPages\n );\n }\n }\n\n return pagination;\n}\n\nconst PaginationItems = (props: Omit<PaginationProps, \"onPageSizeChange\">) => {\n const {\n classNames,\n className,\n pageTotal: totalPages,\n page: currentPage,\n } = props;\n\n if (totalPages <= 1) {\n return null;\n }\n\n const pageNumbers = useMemo(() => {\n return generatePagination(currentPage, totalPages);\n }, [currentPage, totalPages]);\n\n return (\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious\n // @ts-ignore\n disabled={props.page === 1}\n onClick={(event) => {\n event.preventDefault();\n props.onPageChange?.(props.page - 1);\n }}\n />\n </PaginationItem>\n {pageNumbers.map((page, index) => {\n return (\n <PaginationItem key={index}>\n <PaginationLink\n isActive={page === props.page}\n onClick={(event) => {\n event.preventDefault();\n if (page !== \"...\") {\n props.onPageChange?.(Number(page));\n } else {\n props.onPageChange?.(\n Number((pageNumbers[index + 1] as number) - 1)\n );\n }\n }}\n >\n {page}\n </PaginationLink>\n </PaginationItem>\n );\n })}\n\n {/* <PaginationItem>\n <PaginationEllipsis />\n </PaginationItem> */}\n <PaginationItem>\n <PaginationNext\n disabled={props.page === props.pageTotal}\n onClick={(event) => {\n event.preventDefault();\n props.onPageChange?.(props.page + 1);\n }}\n />\n </PaginationItem>\n </PaginationContent>\n );\n};\n\nexport {\n Paginations,\n Pagination,\n PaginationContent,\n PaginationLink,\n PaginationItem,\n PaginationPrevious,\n PaginationNext,\n PaginationItems,\n PaginationEllipsis,\n};\n","import { Box } from \"../../box\";\nimport { Flex } from \"../../flex\";\nimport { Paginations } from \"../../pagination\";\nimport { useDataGridContext } from \"./dataGridContext\";\n\nexport const DataGridFooter = (props) => {\n const { pagination } = useDataGridContext();\n return (\n <Flex justify={\"end\"}>\n {pagination && pagination.count > 0 && (\n <div>\n <Paginations {...pagination} />\n </div>\n )}\n </Flex>\n );\n};\n","import type { ReactElement } from \"react\";\nimport { DataTable, DataTableProps } from \"../dataTable/table\";\nimport { Box } from \"../../box\";\nimport { DataGridFilterBar } from \"./dataGridFilterBar\";\nimport { type DataFilterProps } from \"./dataFilter\";\nimport { DataGridProvider, PaginationOptions } from \"./dataGridContext\";\nimport { DataGridFooter } from \"./dataGridFooter\";\n\nexport type DataGridProps<RecordType = any> = {\n filter?: DataFilterProps;\n pagination?: PaginationOptions;\n footer?: ReactElement;\n /**\n * The header of the table, if provided it will be rendered above the table.\n * If both filter configuration and header component are provided at the same time,\n * the header component will override the filter component.\n */\n header?: ReactElement;\n} & DataTableProps<RecordType>;\n\nexport const DataGrid = <T,>(props: DataGridProps<T>) => {\n const { footer, header, filter, ...dataTableProps } = props;\n const HeaderElement: ReactElement = header ?? <DataGridFilterBar />;\n const FooterElement: ReactElement = footer ?? <DataGridFooter />;\n return (\n // @ts-ignore\n <DataGridProvider filter={filter} pagination={props.pagination}>\n <Box>\n {HeaderElement}\n <div>\n <DataTable {...dataTableProps} />\n </div>\n {FooterElement}\n </Box>\n </DataGridProvider>\n );\n};\n","import React from \"react\";\n\nfunction EmptyStateIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"64\"\n height=\"64\"\n fill=\"none\"\n viewBox=\"0 0 64 64\"\n >\n <rect width=\"36\" height=\"48\" x=\"18\" y=\"5\" fill=\"#07080A\" rx=\"4\"></rect>\n <rect\n width=\"36\"\n height=\"48\"\n x=\"11\"\n y=\"12\"\n fill=\"url(#paint0_linear_309_13641)\"\n rx=\"4\"\n ></rect>\n <rect\n width=\"36\"\n height=\"48\"\n x=\"9\"\n y=\"10\"\n fill=\"url(#paint1_linear_309_13641)\"\n rx=\"4\"\n ></rect>\n <path\n fill=\"#303237\"\n d=\"M36.636 53.323V50H6v3.323C6 55.91 7.943 58 10.462 58H41c-2.392 0-4.364-2.168-4.364-4.663\"\n ></path>\n <rect width=\"9\" height=\"2\" x=\"15\" y=\"16\" fill=\"#3F4146\" rx=\"1\"></rect>\n <rect width=\"16\" height=\"2\" x=\"15\" y=\"24\" fill=\"#3F4146\" rx=\"1\"></rect>\n <rect width=\"12\" height=\"3\" x=\"28\" y=\"29\" fill=\"#45484E\" rx=\"1.5\"></rect>\n <path\n fill=\"#45484E\"\n d=\"M33 23a2 2 0 012-2h1.5a1.5 1.5 0 010 3H34a1 1 0 01-1-1z\"\n ></path>\n <rect width=\"9\" height=\"3\" x=\"29\" y=\"37\" fill=\"#45484E\" rx=\"1.5\"></rect>\n <rect width=\"13\" height=\"2\" x=\"15\" y=\"30\" fill=\"#3F4146\" rx=\"1\"></rect>\n <rect width=\"15\" height=\"2\" x=\"15\" y=\"36\" fill=\"#3F4146\" rx=\"1\"></rect>\n <rect width=\"24\" height=\"2\" x=\"15\" y=\"42\" fill=\"#3F4146\" rx=\"1\"></rect>\n <path\n fill=\"#181A1D\"\n fillRule=\"evenodd\"\n d=\"M27.24 30.022a12.451 12.451 0 1122.195 9.87l5.328 5.328-1.58 1.58-5.241-5.24a12.452 12.452 0 01-20.703-11.537zm14.193 12.39A10.156 10.156 0 1037.47 22.49a10.156 10.156 0 003.963 19.92z\"\n clipRule=\"evenodd\"\n ></path>\n <path\n fill=\"#54565B\"\n fillRule=\"evenodd\"\n d=\"M27.24 29.022a12.451 12.451 0 1122.195 9.87l5.328 5.328-1.58 1.58-5.241-5.24a12.452 12.452 0 01-20.703-11.537zm14.193 12.39A10.156 10.156 0 1037.47 21.49a10.156 10.156 0 003.963 19.92z\"\n clipRule=\"evenodd\"\n ></path>\n <path\n fill=\"#16181B\"\n d=\"M51.755 43.867c-.99.99-.99 2.596 0 3.586l3.754 3.754a2.536 2.536 0 103.586-3.586l-3.754-3.754a2.536 2.536 0 00-3.586 0z\"\n ></path>\n <path\n fill=\"#4E525C\"\n d=\"M51.755 42.867c-.99.99-.99 2.596 0 3.586l3.754 3.754a2.536 2.536 0 103.586-3.586l-3.754-3.754a2.536 2.536 0 00-3.586 0z\"\n ></path>\n <defs>\n <linearGradient\n id=\"paint0_linear_309_13641\"\n x1=\"27.286\"\n x2=\"48.844\"\n y1=\"55.742\"\n y2=\"25.703\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#0C0D10\"></stop>\n <stop offset=\"1\" stopColor=\"#121418\"></stop>\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_309_13641\"\n x1=\"25.286\"\n x2=\"46.844\"\n y1=\"53.742\"\n y2=\"23.703\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#1B1D22\"></stop>\n <stop offset=\"1\" stopColor=\"#26292E\"></stop>\n </linearGradient>\n </defs>\n </svg>\n );\n}\n\nexport default EmptyStateIcon;\n","import { ElementType, ReactElement } from \"react\";\nimport { ExtensionProvider } from \"./pluginContext\";\nimport { ExtensionPosition } from \"./types\";\nimport { OrderlyExtensionRegistry } from \"./registry\";\n\n/**\n * @name ExtensionOptions\n * @description Extension meta data\n */\nexport type ExtensionOptions<Props> = {\n name: string;\n /**\n * which ctx data the extension available to use\n */\n scope?: string[];\n /**\n * @description define the extension require @orderly.network/hook version, optional\n * @default \"*\"\n */\n engines?: string; //\n positions: ExtensionPosition[];\n builder?: (props: any) => Props;\n __isInternal?: boolean;\n entry?: string[];\n // dependencies?: string[]; // define the extension require other extensions, optional\n // lifecycle hooks\n /**\n * fire when the extension is installed\n * @returns\n */\n installed?: () => Promise<void>;\n onInit?: () => void;\n activate?: () => Promise<void>;\n deactivate?: () => Promise<void>;\n};\n\ntype ExtensionRenderComponentType<Props> =\n | ElementType<Props>\n | ((props: Props) => ReactElement);\n\n// type ExtensionRenderComponent = (\n// component: ExtensionRenderComponentType<Props>\n// ) => void;\n\nexport const installExtension = <Props,>(\n options: ExtensionOptions<Props>\n): ((component: ExtensionRenderComponentType<Props>) => void) => {\n return (component) => {\n const registry = OrderlyExtensionRegistry.getInstance();\n\n registry.register<Props>({\n name: options.name,\n positions: options.positions,\n __isInternal: !!options.__isInternal,\n builder: options.builder,\n\n // render: (props) => {\n // console.log(\"[plugin] render:\", options.name);\n // const children =\n // typeof component === \"function\" ? component(props) : component;\n\n // return <ExtensionProvider>{children}</ExtensionProvider>;\n // },\n render: component,\n });\n };\n};\n\n/**\n * update the extension builder function\n */\nexport const setExtensionBuilder = <Props extends unknown = {}>(\n position: ExtensionPosition,\n builder: () => Props\n) => {\n const registry = OrderlyExtensionRegistry.getInstance();\n registry.setBuilder(position, builder);\n};\n","import { ElementType, ReactElement, ReactNode } from \"react\";\n\nexport type ExtensionBuilder<Props = any> = (\n props?: Partial<Props> & Record<string, any>\n) => Props;\n\nexport type ExtensionPosition = ExtensionPositionEnum | string;\n\nexport interface Extension<Props extends any = {}> {\n __isInternal: boolean;\n\n get name(): string;\n get positions(): ExtensionPosition[];\n\n initialize?: () => void;\n\n builder: ExtensionBuilder<Props>;\n\n // render(ctx: any): ReactNode;\n render: ElementType<Props> | ((props: Props) => ReactElement);\n}\n\nexport enum ExtensionPositionEnum {\n DepositForm = \"depositForm\",\n WithdrawForm = \"withdrawForm\",\n ListEmpty = \"listEmpty\",\n MainNav = \"mainNav\",\n SideNav = \"sideNav\",\n /**\n * Wallet button\n */\n WalletButton = \"walletButton\",\n Logo = \"logo\",\n Toast = \"toast\",\n /// Layout components\n PortfolioLayout = \"portfolioLayout\",\n TradingRewardsLayout = \"tradingRewardsLayout\",\n AffiliateLayoutLayout = \"affiliateLayoutLayout\",\n}\n\nexport type DepositProps = {\n onOk: () => void;\n};\n","import EmptyStateIcon from \"../../icon/emptyData\";\nimport { Flex } from \"../../flex\";\nimport { Box } from \"../../box\";\nimport { installExtension } from \"../../plugin\";\nimport { Text } from \"../../typography\";\n\nexport const EmptyDataState = (props: { title?: string }) => {\n return (\n <Flex itemAlign={\"center\"} direction={\"column\"}>\n <Box mb={3}>\n <EmptyStateIcon />\n </Box>\n <Text as=\"div\" intensity={36} size=\"2xs\">\n {props.title ?? \"No results found.\"}\n </Text>\n </Flex>\n );\n};\n\ninstallExtension<{ title?: string }>({\n name: \"emptyDataState\",\n positions: [\"emptyDataState\"],\n})(EmptyDataState);\n","import { DataFilterProps, DataTableFilter } from \"./dataFilter\";\nimport { useTable } from \"../dataTable/tableContext\";\n\nexport const Filter = (props: DataFilterProps) => {\n const { meta } = useTable();\n\n if (!meta) {\n throw new Error(\n \"Filter component should be used inside `DataTable` component\"\n );\n }\n\n return <DataTableFilter {...props} />;\n};\n\nFilter.displayName = \"DataFilter\";\n","import { Flex } from \"../../flex\";\nimport { Paginations, PaginationProps } from \"../../pagination\";\nimport { useTable } from \"./tableContext\";\n\nexport const Pagination = (props: Omit<PaginationProps, \"classNames\">) => {\n const { meta } = useTable();\n\n if (!meta) {\n throw new Error(\n \"The Pagination component should be used inside `DataTable` component\"\n );\n }\n\n if (props.pageTotal === 0) return null;\n\n return (\n <Flex\n justify={\"end\"}\n py={2}\n mx={3}\n className=\"oui-h-10 oui-border-t oui-border-line oui-w-full\"\n >\n <Paginations {...props} className=\"oui-table-pagination oui-justify-between oui-w-full\" />\n </Flex>\n );\n};\n\nPagination.displayName = \"TablePagination\";\n","import { useRef, useState } from \"react\";\n\nexport const usePagination = (initial?: {\n page?: number;\n pageSize?: number;\n}) => {\n const dataTotal = useRef(0);\n const [page, setPage] = useState<number>(initial?.page ?? 1);\n const [pageSize, _setPageSize] = useState<number>(initial?.pageSize ?? 10);\n\n const setPageSize = (size: number) => {\n _setPageSize(size);\n // check page > page total\n if (dataTotal.current > 0) {\n const totalPage = Math.ceil(dataTotal.current / size);\n if (page > totalPage) {\n setPage(totalPage);\n }\n }\n }\n\n /**\n * helper function to parse meta data,\n * the format of meta data is same as the response from the API\n */\n const parseMeta = (meta?: {\n total: number;\n current_page: number;\n records_per_page: number;\n }) => {\n const count = meta?.total ?? dataTotal.current;\n dataTotal.current = count;\n const size = meta?.records_per_page ?? pageSize;\n const pageTotal = count ? Math.ceil(count / size) : 0;\n const curPage = Math.min(meta?.current_page ?? page, pageTotal);\n return {\n count,\n page: curPage,\n pageSize: size,\n pageTotal: pageTotal,\n };\n };\n\n return {\n page,\n pageSize,\n setPage,\n setPageSize: (pageSize: number) => setPageSize(pageSize),\n parseMeta,\n };\n};\n","import * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { VariantProps, tv } from \"tailwind-variants\";\nimport { CloseIcon } from \"../icon/close\";\n\nconst dialogVariants = tv({\n slots: {\n overlay: [\n \"oui-dialog-overlay\",\n \"oui-fixed\",\n \"oui-inset-0\",\n \"oui-z-50\",\n \"oui-bg-black/80\",\n \"data-[state=open]:oui-animate-in\",\n \"data-[state=closed]:oui-animate-out\",\n \"data-[state=closed]:oui-fade-out-0\",\n \"data-[state=open]:oui-fade-in-0\",\n ],\n content: [\n \"oui-dialog-content\",\n \"oui-fixed\",\n \"oui-left-[50%]\",\n \"oui-top-[50%]\",\n \"oui-z-50\",\n // \"oui-grid\",\n \"oui-w-full\",\n \"oui-max-w-lg\",\n \"oui-translate-x-[-50%]\",\n \"oui-translate-y-[-50%]\",\n // \"oui-gap-4\",\n // \"oui-bg-base-8\",\n \"oui-text-base-contrast-54\",\n // \"oui-py-4\",\n \"oui-px-5\",\n\n \"oui-shadow-lg\",\n \"oui-duration-200\",\n \"data-[state=open]:oui-animate-in\",\n \"data-[state=closed]:oui-animate-out\",\n \"data-[state=closed]:oui-fade-out-0\",\n \"data-[state=open]:oui-fade-in-0\",\n \"data-[state=closed]:oui-zoom-out-95\",\n \"data-[state=open]:oui-zoom-in-95\",\n \"data-[state=closed]:oui-slide-out-to-left-1/2\",\n \"data-[state=closed]:oui-slide-out-to-top-[48%]\",\n \"data-[state=open]:oui-slide-in-from-left-1/2\",\n \"data-[state=open]:oui-slide-in-from-top-[48%]\",\n \"sm:oui-rounded-xl\",\n ],\n body: [\"oui-dialog-body\", \"oui-py-5\", \"oui-text-xs\"],\n close: [\n \"oui-dialog-close-btn\",\n \"oui-absolute\",\n \"oui-right-4\",\n \"oui-top-4\",\n // \"oui-opacity-70\",\n \"oui-ring-offset-background\",\n \"oui-transition-opacity\",\n \"hover:oui-opacity-100\",\n\n \"disabled:oui-pointer-events-none\",\n // \"data-[state=open]:oui-bg-accent\",\n // \"data-[state=open]:oui-text-muted-foreground\",\n ],\n header: [\n \"oui-dialog-header\",\n \"oui-flex\",\n \"oui-flex-col\",\n // \"oui-pb-4\"\n ],\n footer: [\n \"oui-dialog-footer\",\n \"oui-flex\",\n \"oui-flex-row\",\n \"oui-justify-end\",\n \"oui-space-x-2\",\n \"oui-pb-5\",\n \"oui-pt-3\",\n // \"has-[&>*:nth-child(1)]:oui-bg-red-400\",\n // \"oui-has-[:checked]:oui-bg-indigo-50\",\n // \"has-[button]:oui-bg-red-50\",\n ],\n title: [\n \"oui-dialog-title\",\n \"oui-text-base\",\n // \"oui-pt-3\",\n // \"oui-pb-2\",\n \"oui-min-h-11\",\n \"oui-flex\",\n \"oui-items-center\",\n \"oui-text-base-contrast\",\n ],\n desc: [\n \"oui-dialog-desc\",\n \"oui-text-xs\",\n \"oui-text-warning\",\n \"oui-pt-2\",\n \"oui-text-center\",\n \"oui-pb-3\",\n // \"has-[&_+_div]:oui-pb-3\",\n ],\n },\n variants: {\n size: {\n sm: {\n content: [\"oui-max-w-sm\"], //360\n },\n md: {\n content: [\"oui-max-w-md\"], //420\n },\n lg: {\n content: [\"oui-max-w-lg\"], //480\n },\n xl: {\n content: [\"oui-max-w-xl\"], //540\n },\n },\n intensity: {\n 100: {\n content: [\"oui-bg-base-1\"],\n },\n 200: {\n content: [\"oui-bg-base-2\"],\n },\n 300: {\n content: [\"oui-bg-base-3\"],\n },\n 400: {\n content: [\"oui-bg-base-4\"],\n },\n 500: {\n content: [\"oui-bg-base-5\"],\n },\n 600: {\n content: [\"oui-bg-base-6\"],\n },\n 700: {\n content: [\"oui-bg-base-7\"],\n },\n 800: {\n content: [\"oui-bg-base-8\"],\n },\n 900: {\n content: [\"oui-bg-base-9\"],\n },\n },\n },\n defaultVariants: {\n intensity: 800,\n },\n});\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => {\n const { overlay } = dialogVariants();\n return (\n <DialogPrimitive.Overlay\n ref={ref}\n className={overlay({ className })}\n {...props}\n />\n );\n});\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> &\n VariantProps<typeof dialogVariants> & {\n closable?: boolean;\n onClose?: () => void;\n }\n>(\n (\n { className, children, size, closable = true, intensity, ...props },\n ref\n ) => {\n const { content, close } = dialogVariants({ className, size, intensity });\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={content({ className })}\n {...props}\n >\n {children}\n {closable && (\n <DialogPrimitive.Close className={close()} data-testid=\"oui-testid-dialog-content-close-btn\">\n <CloseIcon size={16} color=\"white\" opacity={98} />\n <span className=\"oui-sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n }\n);\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => {\n const { header } = dialogVariants();\n return <div className={header({ className })} {...props} />;\n};\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogBody = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => {\n const { body } = dialogVariants();\n return <div className={body({ className })} {...props} />;\n};\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => {\n const { footer } = dialogVariants();\n return <div className={footer({ className })} {...props} />;\n};\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => {\n const { title } = dialogVariants();\n return (\n <DialogPrimitive.Title\n ref={ref}\n className={title({ className })}\n {...props}\n />\n );\n});\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => {\n const { desc } = dialogVariants();\n return (\n <DialogPrimitive.Description\n ref={ref}\n className={desc({ className })}\n {...props}\n />\n );\n});\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogBody,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","import { FC, ReactNode, useMemo } from \"react\";\nimport { SimpleDialog, SimpleDialogProps } from \"./simpleDialog\";\nimport { DialogAction } from \"./simpleDialogFooter\";\n\nexport type AlertDialogProps = {\n title?: string;\n message?: ReactNode;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n onOk?: () => Promise<boolean>;\n onCancel?: () => void;\n okLabel?: string;\n cancelLabel?: string;\n closeable?: boolean;\n} & {\n actions?: {\n primary?: Partial<DialogAction>;\n secondary?: Partial<DialogAction>;\n };\n};\n\n/**\n * Generic alert dialog, often used for confirmation/alert/information dialogs.\n */\nexport const AlertDialog: FC<AlertDialogProps> = (props) => {\n const {\n title,\n message,\n open,\n onOpenChange,\n onOk,\n onCancel,\n okLabel = \"OK\",\n cancelLabel = \"Cancel\",\n } = props;\n\n const actions = useMemo(() => {\n if (typeof onOk !== \"function\" && typeof onCancel !== \"function\")\n return undefined;\n const actions: any = {};\n if (typeof onCancel === \"function\") {\n actions[\"secondary\"] = {\n label: cancelLabel,\n onClick: onCancel,\n ...props.actions?.secondary,\n } as DialogAction;\n }\n\n if (typeof onOk === \"function\") {\n actions[\"primary\"] = {\n label: okLabel,\n size: \"md\",\n className: \"oui-w-[154px]\",\n onClick: onOk,\n ...props.actions?.primary,\n } as DialogAction;\n }\n\n return actions;\n }, [onOk, onCancel, okLabel, cancelLabel, props.actions]);\n\n return (\n <SimpleDialog\n open={open}\n title={title}\n size={\"sm\"}\n actions={actions}\n onOpenChange={onOpenChange}\n classNames={{\n content: \"oui-bg-base-8 oui-font-semibold oui-border oui-border-line-6\",\n footer: \"oui-justify-center\",\n }}\n >\n {message}\n </SimpleDialog>\n );\n};\n","import { tv } from \"../utils/tv\";\nimport React from \"react\";\nimport { VariantProps } from \"tailwind-variants\";\n\nconst dividerVariants = tv({\n base: [\"oui-pointer-events-none oui-box-content\"],\n variants: {\n intensity: {\n 4: \"oui-border-line-4\",\n 6: \"oui-border-line-6\",\n 8: \"oui-border-line\",\n 12: \"oui-border-line-12\",\n 16: \"oui-border-line-16\",\n },\n direction: {\n horizontal: [\"oui-border-b\"],\n vertical: [\"oui-border-l\"],\n },\n lineStyle: {\n // solid: \"oui-border-solid\",\n dashed: \"oui-border-dashed\",\n dotted: \"oui-border-dotted\",\n },\n mx: {\n 2: \"oui-mx-2\",\n 4: \"oui-mx-4\",\n 6: \"oui-mx-6\",\n 8: \"oui-mx-8\",\n 10: \"oui-mx-10\",\n },\n my: {\n 2: \"oui-my-2\",\n 4: \"oui-my-4\",\n 6: \"oui-my-6\",\n 8: \"oui-my-8\",\n 10: \"oui-my-10\",\n },\n },\n defaultVariants: {\n direction: \"horizontal\",\n intensity: 4,\n },\n});\n\ntype DividerProps = VariantProps<typeof dividerVariants> &\n React.HTMLAttributes<HTMLDivElement>;\n\nconst Divider = React.forwardRef<HTMLDivElement, DividerProps>((props, ref) => {\n const { className, intensity, direction, lineStyle, mx, my, ...rest } = props;\n return (\n <div\n ref={ref}\n {...rest}\n className={dividerVariants({\n direction,\n intensity,\n className,\n lineStyle,\n mx,\n my,\n })}\n />\n );\n});\n\nDivider.displayName = \"Divider\";\n\nexport { Divider, dividerVariants };\nexport type { DividerProps };\n","import { FC, useMemo, useState } from \"react\";\nimport { DialogFooter } from \"./dialog\";\nimport { Button, ButtonProps } from \"../button\";\n\nexport type DialogAction<T = any> = {\n label: string;\n onClick: () => Promise<T> | T;\n} & Pick<ButtonProps, \"size\" | \"disabled\" | \"className\" | \"fullWidth\" | \"data-testid\">;\n\nexport type SimpleDialogFooterProps = {\n actions?: {\n primary?: DialogAction;\n secondary?: DialogAction;\n };\n className?: string;\n};\n\nexport const SimpleDialogFooter: FC<SimpleDialogFooterProps> = (props) => {\n const { actions } = props;\n const [primaryLoading, setPrimaryLoading] = useState(false);\n\n if (!actions) return null;\n\n const buttons = useMemo(() => {\n const buttons = [];\n\n if (actions.secondary && typeof actions.secondary.onClick === \"function\") {\n buttons.push(\n <Button\n data-testid={actions.secondary?.[\"data-testid\"]}\n key=\"secondary\"\n color=\"gray\"\n onClick={() => {\n actions.secondary?.onClick?.();\n }}\n className={actions.secondary.className}\n disabled={actions.secondary.disabled}\n size={actions.secondary.size}\n fullWidth={actions.secondary.fullWidth}\n >\n {actions.secondary.label}\n </Button>\n );\n }\n\n if (actions.primary && typeof actions.primary.onClick === \"function\") {\n buttons.push(\n <Button\n data-testid={actions.primary?.[\"data-testid\"]}\n key=\"primary\"\n onClick={async () => {\n try {\n setPrimaryLoading(true);\n await actions.primary?.onClick();\n } catch (e) {\n } finally {\n setPrimaryLoading(false);\n }\n }}\n className={actions.primary.className}\n disabled={actions.primary.disabled || primaryLoading}\n loading={primaryLoading}\n size={actions.primary.size}\n fullWidth\n >\n {actions.primary.label}\n </Button>\n );\n }\n\n return buttons;\n }, [actions, primaryLoading]);\n\n return <DialogFooter className={props.className}>{buttons}</DialogFooter>;\n};\n","import { FC, PropsWithChildren, ReactNode } from \"react\";\nimport {\n Dialog,\n DialogBody,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n} from \"./dialog\";\nimport { Divider } from \"../divider\";\nimport {\n SimpleDialogFooter,\n SimpleDialogFooterProps,\n} from \"./simpleDialogFooter\";\n\ntype SimpleDialogProps = {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n size?: \"sm\" | \"md\" | \"lg\";\n closable?: boolean;\n title?: ReactNode;\n description?: ReactNode;\n classNames?: {\n content?: string;\n body?: string;\n footer?: string;\n };\n // footer?: ReactNode;\n} & SimpleDialogFooterProps;\n\n/**\n * Simplified dialog component.\n */\nconst SimpleDialog: FC<PropsWithChildren<SimpleDialogProps>> = (props) => {\n return (\n <Dialog open={props.open} onOpenChange={props.onOpenChange}>\n <DialogContent\n size={props.size}\n closable={props.closable}\n onOpenAutoFocus={(event) => event.preventDefault()}\n onCloseAutoFocus={(event) => event.preventDefault()}\n className={props.classNames?.content}\n >\n {props.title && (\n <>\n <DialogHeader>\n <DialogTitle>{props.title}</DialogTitle>\n </DialogHeader>\n <Divider />\n </>\n )}\n <DialogBody className={props.classNames?.body}>\n {props.children}\n </DialogBody>\n {typeof props.description !== \"undefined\" && (\n <DialogDescription>{props.description}</DialogDescription>\n )}\n <SimpleDialogFooter\n actions={props.actions}\n className={props.classNames?.footer}\n />\n </DialogContent>\n </Dialog>\n );\n};\n\nexport { SimpleDialog };\n\nexport type { SimpleDialogProps };\n","import { FC, PropsWithChildren, ReactNode } from \"react\";\nimport {\n Dialog,\n DialogBody,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"./dialog\";\nimport { Divider } from \"../divider\";\nimport {\n SimpleDialogFooter,\n SimpleDialogFooterProps,\n} from \"./simpleDialogFooter\";\n\ntype TriggerDialogProps = {\n size?: \"sm\" | \"md\" | \"lg\";\n closable?: boolean;\n title?: ReactNode;\n description?: ReactNode;\n trigger: ReactNode;\n} & SimpleDialogFooterProps;\n\nconst TriggerDialog: FC<PropsWithChildren<TriggerDialogProps>> = (props) => {\n return (\n <Dialog>\n <DialogTrigger asChild>{props.trigger}</DialogTrigger>\n <DialogContent\n size={props.size}\n closable={props.closable}\n onOpenAutoFocus={(event) => event.preventDefault()}\n >\n {props.title && (\n <>\n <DialogHeader>\n <DialogTitle>{props.title}</DialogTitle>\n </DialogHeader>\n <Divider />\n </>\n )}\n <DialogBody>{props.children}</DialogBody>\n {typeof props.description !== \"undefined\" && (\n <DialogDescription>{props.description}</DialogDescription>\n )}\n <SimpleDialogFooter actions={props.actions} />\n </DialogContent>\n </Dialog>\n );\n};\n\nexport { TriggerDialog };\n\nexport type { TriggerDialogProps };\n","import React, {\n FC,\n PropsWithChildren,\n ReactElement,\n ElementType,\n createContext,\n useContext,\n useReducer,\n ReactNode,\n} from \"react\";\nimport { ModalAction, ModalArgs, ModalCallbacks, ModalStore } from \"./types\";\nimport { getModalId } from \"./utils\";\nimport { MODAL_REGISTRY, register } from \"./modalHelper\";\n\nexport type ModalContextType = {};\n\nconst initialState: ModalStore = {};\n\n// const MODAL_STACK: string[] = [];\n\nexport const ALREADY_MOUNTED: Record<string, boolean> = {};\n\nexport const ModalContext = createContext<ModalStore>(initialState);\n\nexport const ModalIdContext = createContext<string | null>(null);\n\nexport const modalCallbacks: ModalCallbacks = {};\nexport const hideModalCallbacks: ModalCallbacks = {};\n\nlet dispatch: React.Dispatch<ModalAction> = () => {\n throw new Error(\n \"No dispatch method detected, did you embed your app with Modal.Provider?\"\n );\n};\n\n//------- reducer actions --------\n/**\n * show modal\n * @param id string modalId\n * @param args Record<string, unknown> modalArgs\n * @returns ModalAction\n */\nfunction showModal(id: string, args?: any): ModalAction {\n return {\n type: \"SHOW_MODAL\",\n payload: {\n id,\n args,\n },\n };\n}\n\n/**\n * close modal\n * @param id string modalId\n * @returns ModalAction\n */\nfunction hideModal(id: string): ModalAction {\n return {\n type: \"HIDE_MODAL\",\n payload: {\n id,\n },\n };\n}\n\nfunction removeModal(id: string): ModalAction {\n return {\n type: \"DESTROY_MODAL\",\n payload: {\n id,\n },\n };\n}\n\nfunction setModalStates(\n id: string,\n states: Record<string, unknown>\n): ModalAction {\n return {\n type: \"SET_MODAL_STATES\",\n payload: {\n id,\n states,\n },\n };\n}\n\n//------- reducer actions --------\n\nconst reducer = (state: ModalStore, action: ModalAction) => {\n const { id, args } = action.payload;\n // console.log(\"reducer action\", action);\n switch (action.type) {\n case \"SHOW_MODAL\": {\n return {\n ...state,\n [id]: {\n ...state[id],\n id,\n args,\n visible: !!ALREADY_MOUNTED[id],\n delayVisible: !ALREADY_MOUNTED[id],\n },\n };\n }\n case \"HIDE_MODAL\": {\n return {\n ...state,\n [id]: {\n ...state[id],\n visible: false,\n },\n };\n }\n\n case \"DESTROY_MODAL\": {\n const newState = { ...state };\n delete newState[id];\n return newState;\n }\n case \"SET_MODAL_STATES\": {\n return {\n ...state,\n [id]: {\n ...state[id],\n ...action.payload.states,\n },\n };\n }\n default:\n return state;\n }\n};\n\nconst ModalContainer: FC = () => {\n const modals = useContext(ModalContext);\n const visibleModalIds = Object.keys(modals).filter((id) => !!modals[id]);\n\n visibleModalIds.forEach((id) => {\n if (!MODAL_REGISTRY.has(id) && !ALREADY_MOUNTED[id]) {\n console.warn(\n `No modal found for id: ${id}. Please check the id or if it is registered or declared via JSX.`\n );\n return;\n }\n });\n\n const components = visibleModalIds\n .filter((id) => MODAL_REGISTRY.has(id))\n .map((id) => {\n return {\n id,\n ...MODAL_REGISTRY.get(id)!,\n };\n });\n\n // console.log(\"components\", components, modals);\n\n return (\n <>\n {components.map((component) => {\n // console.log(\"component\", component,);\n\n const Comp: ElementType = component.comp;\n return (\n <Comp key={component.id} id={component.id} {...component.props} />\n );\n })}\n </>\n );\n};\n\nexport const ModalProvider: FC<\n PropsWithChildren<{\n dialogBuilder?: (children: ReactNode) => ReactElement;\n }>\n> = (props) => {\n const [state, dispatchOrigin] = useReducer(reducer, initialState);\n dispatch = dispatchOrigin;\n return (\n <ModalContext.Provider value={state}>\n {props.children}\n <ModalContainer />\n </ModalContext.Provider>\n );\n};\n\nfunction show<T extends any, C extends any>(\n modal: ElementType<C>,\n args?: ModalArgs<ElementType<C>>\n): Promise<T>;\nfunction show<T extends any>(\n modal: string,\n args?: Record<string, unknown>\n): Promise<T>;\nfunction show<T extends any, P extends any>(\n modal: string,\n args?: P\n): Promise<T>;\nfunction show<T extends any, P extends any>(\n modal: ElementType<any> | string,\n args?: any\n): Promise<unknown> {\n const modalId = getModalId(modal);\n if (typeof modal !== \"string\" && !MODAL_REGISTRY.has(modalId)) {\n register(modalId, modal as ElementType);\n }\n\n dispatch(showModal(modalId, args));\n if (!modalCallbacks[modalId]) {\n let theResolve!: (args?: unknown) => void;\n // `!` tell ts that theResolve will be written before it is used\n let theReject!: (args?: unknown) => void;\n const promise = new Promise((resolve, reject) => {\n theResolve = resolve;\n theReject = reject;\n });\n modalCallbacks[modalId] = {\n resolve: theResolve,\n reject: theReject,\n promise,\n };\n }\n\n return modalCallbacks[modalId].promise as Promise<T>;\n}\n\nfunction hide<T>(modal: string | FC<any>): Promise<T>;\nfunction hide(modal: string | FC<any>) {\n const modalId = getModalId(modal);\n dispatch(hideModal(modalId));\n\n delete modalCallbacks[modalId];\n\n if (!hideModalCallbacks[modalId]) {\n let theResolve!: (args?: unknown) => void;\n let theReject!: (args?: unknown) => void;\n const promise = new Promise((resolve, reject) => {\n theResolve = resolve;\n theReject = reject;\n });\n hideModalCallbacks[modalId] = {\n resolve: theResolve,\n reject: theReject,\n promise,\n };\n }\n\n return hideModalCallbacks[modalId].promise;\n}\n\nfunction remove(id: string) {\n dispatch(removeModal(id));\n delete modalCallbacks[id];\n delete hideModalCallbacks[id];\n}\n\nfunction setStates(id: string, states: Record<string, unknown>) {\n dispatch(setModalStates(id, states));\n}\n\nexport const modalActions = {\n show,\n hide,\n remove,\n setStates,\n};\n","const symModalId = Symbol(\"modalId\");\n\nlet uidSeed = 0;\n\nconst getUid = () => `__modal_${uidSeed++}`;\n\nexport const getModalId = (modal: any): string => {\n if (typeof modal === \"string\") return modal as string;\n if (!modal[symModalId]) {\n modal[symModalId] = getUid();\n }\n return modal[symModalId];\n};\n","import { ElementType, FC, useContext, useEffect } from \"react\";\nimport type { ModalArgs, ModalHocProps } from \"./types\";\nimport { useModal } from \"./useModal\";\nimport {\n ALREADY_MOUNTED,\n modalActions,\n ModalContext,\n ModalIdContext,\n} from \"./modalContext\";\n\ntype ModalRegistry = {\n comp: ElementType;\n props?: Record<string, unknown>;\n};\n\nexport const MODAL_REGISTRY = new Map<string, ModalRegistry>();\n\nexport const create = <P extends {}>(\n Comp: React.ComponentType<P>\n): FC<P & ModalHocProps> => {\n // return higher order component\n return ({ id, defaultVisible, keepMounted, ...props }) => {\n const { args, show } = useModal(id);\n\n const modals = useContext(ModalContext);\n const shouldMount = !!modals[id];\n\n useEffect(() => {\n if (defaultVisible) {\n show();\n }\n\n ALREADY_MOUNTED[id] = true;\n\n return () => {\n if (!keepMounted) {\n delete ALREADY_MOUNTED[id];\n }\n };\n }, [id, show, defaultVisible]);\n\n useEffect(() => {\n if (keepMounted) modalActions.setStates(id, { keepMounted: true });\n }, [id, keepMounted]);\n\n const delayVisible = modals[id]?.delayVisible;\n\n useEffect(() => {\n if (delayVisible) {\n show(args);\n }\n }, [delayVisible, args, show]);\n\n if (!shouldMount) return null;\n\n return (\n <ModalIdContext.Provider value={id}>\n <Comp {...(props as unknown as P)} {...args} />\n </ModalIdContext.Provider>\n );\n };\n};\n\nexport function register<Props = {}>(\n id: string,\n comp: ElementType<Props>,\n props?: Partial<ModalArgs<Props>>\n): void {\n if (!MODAL_REGISTRY.has(id)) {\n // auto crate;\n // MODAL_REGISTRY.set(id, { comp, props });\n MODAL_REGISTRY.set(id, { comp, props });\n } else {\n MODAL_REGISTRY.set(id, { comp: MODAL_REGISTRY.get(id)!.comp!, props });\n }\n}\n\nexport const unregister = (id: string): void => {\n MODAL_REGISTRY.delete(id);\n};\n","import { FC, useCallback, useContext, useEffect } from \"react\";\nimport { ModalArgs, ModalHandler } from \"./types\";\nimport {\n ModalContext,\n hideModalCallbacks,\n modalActions,\n modalCallbacks,\n ModalIdContext,\n} from \"./modalContext\";\nimport { getModalId } from \"./utils\";\nimport { register } from \"./modalHelper\";\n\nexport function useModal(): ModalHandler;\nexport function useModal(\n modal: string,\n args?: Record<string, unknown>\n): ModalHandler;\nexport function useModal<\n T extends React.FC<any>,\n ComponentProps extends ModalArgs<T>,\n PreparedProps extends Partial<ComponentProps> = {} | ComponentProps,\n RemainingProps = Omit<ComponentProps, keyof PreparedProps> &\n Partial<ComponentProps>,\n ResolveType = unknown\n>(\n modal: T,\n args?: PreparedProps\n): Omit<ModalHandler, \"show\"> & {\n show: Partial<RemainingProps> extends RemainingProps\n ? (args?: RemainingProps) => Promise<ResolveType>\n : (args: RemainingProps) => Promise<ResolveType>;\n};\nexport function useModal(modal?: any, args?: any): ModalHandler {\n const modals = useContext(ModalContext);\n const modalIdFromContext = useContext(ModalIdContext);\n\n let modalId: string | null;\n let isComponent = modal && typeof modal !== \"string\";\n\n if (!modal) {\n modalId = modalIdFromContext;\n } else {\n modalId = getModalId(modal);\n }\n\n if (!modalId) {\n throw new Error(\"modalId is required\");\n }\n\n const id = modalId as string;\n\n useEffect(() => {\n if (isComponent) {\n register(id, modal, args);\n }\n }, [isComponent, modalId, modal, args]);\n\n const modalInfo = modals[id];\n\n const show = useCallback(\n (args?: Record<string, unknown>) => modalActions.show(id, args),\n [id]\n );\n\n const hide = useCallback(() => modalActions.hide(id), [id]);\n\n const remove = useCallback(() => modalActions.remove(id), [id]);\n\n const onOpenChange = useCallback(\n (isOpen: boolean) => {\n // isOpen ? () => {} : hide();\n if (!isOpen) {\n // hide();\n reject(\"cancel\");\n hide();\n }\n },\n [id]\n );\n\n const setStates = useCallback(\n (states: Record<string, unknown>) => modalActions.setStates(id, states),\n [id]\n );\n\n const resolve = useCallback(\n (args?: unknown) => {\n modalCallbacks[id]?.resolve(args);\n delete modalCallbacks[id];\n },\n [id]\n );\n\n const reject = useCallback(\n (args?: unknown) => {\n modalCallbacks[id]?.reject(args);\n delete modalCallbacks[id];\n },\n [id]\n );\n\n const resolveHide = useCallback((args?: unknown) => {\n hideModalCallbacks[id]?.resolve(args);\n delete hideModalCallbacks[id];\n }, []);\n\n return {\n id,\n args: modalInfo?.args,\n visible: !!modalInfo?.visible,\n keepMounted: !!modalInfo?.keepMounted,\n\n show,\n hide,\n onOpenChange,\n setStates,\n remove,\n /**\n * resolve the show Promise\n */\n resolve,\n /**\n * reject the show Promise\n */\n reject,\n /**\n * emit when modal is hiddened\n */\n resolveHide,\n };\n}\n","import * as React from \"react\";\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport { cn, cnBase, tv, type VariantProps } from \"tailwind-variants\";\nimport { CloseIcon } from \"../icon/close\";\n\nconst Sheet = SheetPrimitive.Root;\n\nconst SheetTrigger = SheetPrimitive.Trigger;\n\nconst SheetClose = SheetPrimitive.Close;\n\nconst SheetPortal = SheetPrimitive.Portal;\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cnBase(\n \"oui-fixed oui-inset-0 oui-z-50 oui-bg-black/80 data-[state=open]:oui-animate-in data-[state=closed]:oui-animate-out data-[state=closed]:oui-fade-out-0 data-[state=open]:oui-fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n />\n));\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\n\nconst sheetVariants = tv({\n base: \"oui-fixed oui-z-50 oui-gap-4 oui-bg-base-8 oui-p-6 oui-shadow-lg oui-transition oui-ease-in-out data-[state=closed]:oui-duration-260 data-[state=open]:oui-duration-300 data-[state=open]:oui-animate-in data-[state=closed]:oui-animate-out\",\n variants: {\n side: {\n top: \"oui-inset-x-0 oui-top-0 oui-border-b data-[state=closed]:oui-slide-out-to-top data-[state=open]:oui-slide-in-from-top\",\n bottom:\n \"oui-inset-x-0 oui-bottom-0 oui-rounded-t-2xl data-[state=closed]:oui-slide-out-to-bottom data-[state=open]:oui-slide-in-from-bottom\",\n left: \"oui-inset-y-0 oui-left-0 oui-h-full oui-w-3/4 data-[state=closed]:oui-slide-out-to-left data-[state=open]:oui-slide-in-from-left sm:oui-max-w-sm\",\n right:\n \"oui-inset-y-0 oui-right-0 oui-h-full oui-w-3/4 oui-border-l data-[state=closed]:oui-slide-out-to-right data-[state=open]:oui-slide-in-from-right sm:oui-max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"bottom\",\n },\n});\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {\n // if true, show close button\n closeable?: boolean;\n}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(\n (\n { side = \"bottom\", closeable = true, className, children, ...props },\n ref\n ) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cnBase(sheetVariants({ side }), className)}\n {...props}\n >\n {closeable && (\n <SheetPrimitive.Close className=\"oui-absolute oui-right-[24px] oui-top-[24px] oui-rounded-sm oui-opacity-70 oui-ring-offset-base-700 oui-transition-opacity hover:oui-opacity-100 focus:oui-outline-none focus:oui-ring-2 focus:oui-ring-ring focus:oui-ring-offset-2 disabled:oui-pointer-events-none data-[state=open]:oui-bg-secondary\">\n {/* <Cross2Icon className=\"h-4 w-4\" /> */}\n <CloseIcon size={16} color=\"white\" opacity={98} />\n <span className=\"oui-sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n {children}\n </SheetPrimitive.Content>\n </SheetPortal>\n )\n);\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\nconst SheetHeader = ({\n className,\n leading,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & {\n leading?: React.ReactNode;\n}) => (\n <div\n className={cnBase(\n \"oui-sheet-header oui-grid oui-grid-cols-[40px_1fr_40px] oui-items-center\"\n )}\n >\n <div>{leading}</div>\n <div\n {...props}\n className={cnBase(\n \"oui-flex oui-flex-col oui-space-y-2 oui-text-center oui-text-lg oui-text-base-contrast\",\n className\n )}\n />\n </div>\n);\nSheetHeader.displayName = \"SheetHeader\";\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cnBase(\n \"oui-sheet-footer oui-flex oui-flex-col-reverse sm:oui-flex-row sm:oui-justify-end sm:oui-space-x-2\",\n className\n )}\n {...props}\n />\n);\nSheetFooter.displayName = \"SheetFooter\";\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title> & {\n leading?: React.ReactNode;\n }\n>(({ className, leading, ...props }, ref) => (\n <div\n className=\"oui-sheet-header oui-grid oui-grid-cols-[40px_1fr_40px] oui-items-center\"\n ref={ref}\n >\n <div>{leading}</div>\n <div\n className={cnBase(\n \"oui-flex oui-flex-col oui-space-y-2 oui-text-center oui-text-lg oui-text-base-contrast\",\n className\n )}\n {...props}\n />\n </div>\n));\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cnBase(\n \"oui-sheet-description oui-text-2xs oui-text-base-contrast-54\",\n className\n )}\n {...props}\n />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n","import {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n} from \"../../sheet/sheet\";\nimport { modalActions } from \"../modalContext\";\nimport { create } from \"../modalHelper\";\nimport { useModal } from \"../useModal\";\nimport React from \"react\";\n\nexport interface SheetProps {\n title: string | React.ReactNode;\n content?: React.ReactNode;\n // contentClassName?: string;\n classNames?: {\n content?: string;\n body?: string;\n };\n}\n\nconst SimpleSheet = create<SheetProps>((props) => {\n const { classNames = {} } = props;\n const { visible, hide, resolve, onOpenChange } = useModal();\n return (\n <Sheet open={visible} onOpenChange={onOpenChange}>\n <SheetContent\n className={classNames.content}\n onOpenAutoFocus={(event) => {\n event.preventDefault();\n }}\n >\n <SheetHeader>\n <SheetTitle>{props.title}</SheetTitle>\n </SheetHeader>\n <div className={classNames.body}>{props.content}</div>\n </SheetContent>\n </Sheet>\n );\n});\n\nexport const sheet = (props: SheetProps) => {\n return modalActions.show(SimpleSheet, props);\n};\n","import { FC, ReactNode, useCallback } from \"react\";\nimport { modalActions } from \"../modalContext\";\n\nimport { create } from \"../modalHelper\";\nimport { useModal } from \"../useModal\";\nimport { AlertDialog, AlertDialogProps } from \"../../dialog/alertDialog\";\n\nexport const CreatedAlertDialog = create<AlertDialogProps>((props) => {\n const { onOk } = props;\n const { visible, hide, resolve, reject, onOpenChange } = useModal();\n\n const onOkHandler = useCallback((): Promise<any> => {\n return Promise.resolve().then(onOk).then(hide);\n }, [onOk]);\n\n return (\n <AlertDialog\n open={visible}\n onOpenChange={onOpenChange}\n onOk={onOkHandler}\n {...props}\n />\n );\n});\n\nexport const alert = (props: AlertDialogProps) => {\n console.log(\"alert\", props);\n\n return modalActions.show(CreatedAlertDialog, props);\n};\n","import { ReactNode } from \"react\";\nimport { SimpleDialog } from \"../../dialog/simpleDialog\";\nimport { create } from \"../modalHelper\";\nimport { useModal } from \"../useModal\";\nimport { modalActions } from \"../modalContext\";\n\nexport interface DialogProps {\n title: string;\n content: ReactNode;\n}\n\nconst Dialog = create<DialogProps>((props) => {\n const { visible, hide, resolve, reject, onOpenChange } = useModal();\n return (\n <SimpleDialog\n open={visible}\n title={props.title}\n closable\n onOpenChange={onOpenChange}\n // // @ts-ignore\n // onOk={() => {\n // resolve(true);\n // hide();\n // }}\n // onCancel={() => {\n // reject(false);\n // hide();\n // }}\n >\n {props.content}\n </SimpleDialog>\n );\n});\n\nexport const dialog = (props: DialogProps) => {\n return modalActions.show(Dialog, props);\n};\n","import { create } from \"../modalHelper\";\nimport { useModal } from \"../useModal\";\nimport { DialogBody, SimpleDialog } from \"../../dialog\";\nimport { modalActions } from \"../modalContext\";\nimport { Text } from \"../../typography\";\nimport { useMemo } from \"react\";\n\nexport interface ConfirmProps {\n title?: string;\n content?: React.ReactNode;\n footer?: React.ReactNode;\n onOk?: () => Promise<any>;\n onCancel?: () => Promise<any>;\n contentClassName?: string;\n size?: \"sm\" | \"md\" | \"lg\";\n bodyClassName?: string;\n // closeableSize?: number;\n // okId?: string;\n // cancelId?: string;\n}\n\nexport const ConfirmDialog = create<ConfirmProps>((props) => {\n const { size = \"sm\" } = props;\n const { visible, hide, resolve, reject, onOpenChange } = useModal();\n\n return (\n <SimpleDialog\n open={visible}\n title={\n <Text size=\"base\" weight=\"semibold\">\n {props.title}\n </Text>\n }\n size={size}\n classNames={{\n content: props.contentClassName,\n body: props.bodyClassName,\n }}\n // maxWidth={props.maxWidth}\n closable\n // closeableSize={props.closeableSize}\n // okId={props.okId}\n // cancelId={props.cancelId}\n onOpenChange={(open) => {\n if (!open) {\n reject();\n }\n onOpenChange(open);\n }}\n actions={{\n primary: {\n label: \"Confirm\",\n className: \"oui-text-sm oui-font-semibold oui-w-[100%] oui-h-8\",\n \"data-testid\": \"oui-testid-confirm-dialog-confirm-btn\",\n onClick: () => {\n return Promise.resolve()\n .then(() => {\n if (typeof props.onOk === \"function\") {\n return props.onOk();\n }\n return true;\n })\n .then(\n (data?: any) => {\n resolve(data);\n hide();\n },\n (err) => {\n reject(err);\n hide();\n }\n );\n },\n },\n secondary: {\n label: \"Cancel\",\n className: \"oui-text-sm oui-font-semibold oui-w-[100%] oui-h-8\",\n \"data-testid\": \"oui-testid-confirm-dialog-cancel-btn\",\n onClick: () => {\n return Promise.resolve()\n .then(() => {\n if (typeof props.onCancel === \"function\") {\n return props.onCancel();\n }\n return true;\n })\n .then(\n (data?: any) => {\n resolve(data);\n hide();\n },\n (err) => {\n reject(err);\n hide();\n }\n );\n },\n },\n }}\n >\n <Text className=\"\" size=\"sm\">\n {props.content}\n </Text>\n </SimpleDialog>\n );\n});\n\nexport const confirm = (props: ConfirmProps) => {\n return modalActions.show(ConfirmDialog, props);\n};\n","import { modalActions } from \"./modalContext\";\nimport { register, unregister, create } from \"./modalHelper\";\n\nexport { ModalProvider } from \"./modalContext\";\n\nimport { sheet } from \"./preset/sheet\";\nimport { alert } from \"./preset/alert\";\nimport { dialog } from \"./preset/dialog\";\n\nimport { confirm } from \"./preset/confirm\";\nexport { ConfirmDialog } from \"./preset/confirm\";\n\nexport type { ModalHocProps } from \"./types\";\n\nexport { ModalContext, ModalIdContext } from \"./modalContext\";\n\n// @ebay/nice-modal-react\nexport { useModal } from \"./useModal\";\n\nexport const modal = {\n create,\n register,\n unregister,\n\n ...modalActions,\n // actionSheet,\n confirm,\n alert,\n sheet,\n dialog,\n // alert\n //actionSheet\n /// toast\n};\n","import { ElementType } from \"react\";\nimport { useModal, modal } from \"../modal\";\nimport { SimpleDialog, SimpleDialogProps } from \"./simpleDialog\";\nimport { ModalArgs } from \"../modal/types\";\n\n\nfunction createDialogComponent<P extends Partial<SimpleDialogProps>>(\n Comp: ElementType\n) {\n return modal.create((props: P) => {\n const { visible, hide, resolve, reject, onOpenChange } = useModal();\n // @ts-ignore\n const { title, size, contentClassName, bodyClassName, closable, ...rest } = props;\n return (\n <SimpleDialog\n open={visible}\n onOpenChange={onOpenChange}\n size={size}\n title={title}\n closable={closable}\n classNames={{\n content: contentClassName,\n body: bodyClassName,\n }}\n >\n <Comp {...rest} close={hide} resolve={resolve} reject={reject} />\n </SimpleDialog>\n );\n });\n}\n\n// export function registerDialog<Props = {}>() {}\n\nexport const registerSimpleDialog = <Props = {},>(\n id: string,\n comp: ElementType<Props>,\n props?: Partial<ModalArgs<Props>>\n) => {\n // @ts-ignore\n modal.register(id, createDialogComponent(comp), props);\n};\n","import {ElementType} from \"react\";\nimport {useModal, modal} from \"../modal\";\nimport {Sheet, SheetContent, SheetHeader, SheetTitle} from \"./sheet\";\nimport {SheetProps} from \"../modal/preset/sheet\";\nimport {cnBase} from \"tailwind-variants\";\n\n\nfunction createSheetComponent<P extends Partial<SheetProps>>(\n Comp: ElementType\n) {\n return modal.create((props: P) => {\n const {visible, hide, resolve, reject, onOpenChange} = useModal();\n // @ts-ignore\n const {title, ...rest} = props;\n return (\n <Sheet open={visible} onOpenChange={onOpenChange}>\n <SheetContent\n className={props.classNames?.content}\n onOpenAutoFocus={(event) => {\n event.preventDefault();\n }}\n >\n <SheetHeader>\n <SheetTitle>{title}</SheetTitle>\n </SheetHeader>\n <div className={cnBase('oui-pt-4', props.classNames?.body)}>\n <Comp {...rest} close={hide}\n resolve={resolve}\n reject={reject}/>\n </div>\n </SheetContent>\n </Sheet>\n );\n });\n}\n\n\nexport const registerSimpleSheet = <Props = {}>(\n id: string,\n comp: ElementType<Props>,\n props?:Omit<SheetProps, 'content'>\n) => {\n // @ts-ignore\n modal.register(id, createSheetComponent(comp), props);\n};\n","import React, {\n ComponentPropsWithoutRef,\n FC,\n Fragment,\n PropsWithChildren,\n useCallback,\n useMemo,\n} from \"react\";\nimport { cn, Divider, Sheet, SheetContent, SheetTrigger } from \"..\";\n\ntype SheetItemType = \"division\" | \"data\" | \"cancel\";\n\nexport interface BaseActionSheetItem {\n label: string;\n type?: SheetItemType;\n icon?: string;\n value?: string;\n active?: boolean;\n onClick?: (action: BaseActionSheetItem) => void;\n}\n\nexport interface ActionSheetItemProps {\n action: BaseActionSheetItem;\n index: number;\n active?: boolean;\n onClick?: (value: { value?: string; index: number }) => void;\n}\n\nexport const ActionItem: FC<ActionSheetItemProps> = (props) => {\n const { action } = props;\n\n const onItemClick = useCallback(() => {\n if (typeof action.onClick === \"function\") {\n action.onClick(action);\n } else {\n props.onClick?.({ ...action, index: props.index });\n }\n }, [action]);\n\n const child = useMemo(() => {\n return action.label;\n }, [action.label]);\n\n return (\n <div\n className={cn(\n \"oui-flex oui-justify-center oui-items-center oui-text-lg oui-h-[52px] oui-cursor-pointer\",\n\n props.active && \"oui-text-primary\"\n )}\n onClick={onItemClick}\n >\n {child}\n </div>\n );\n};\n\nexport const ActionDivision: FC = (props) => {\n return (\n <div className=\"oui-relative oui-h-[1px] oui-bg-base-300 oui-mt-[-1px]\"></div>\n );\n};\n\nexport interface ActionSheetContentProps {\n actionSheets: BaseActionSheetItem[];\n value?: BaseActionSheetItem;\n onValueChange?: (value: any) => void;\n onClose?: () => void;\n}\nexport const ActionSheetContent: FC<ActionSheetContentProps> = (props) => {\n return (\n <>\n {props.actionSheets.map((action, index) => {\n if (action.type === \"division\") {\n return <ActionDivision key={index} />;\n }\n return (\n <Fragment key={action.value || index}>\n <ActionItem\n onClick={(value) => {\n if (value.value === \"cancel\") {\n return;\n }\n\n if (typeof action.onClick === \"function\") {\n action.onClick(action);\n } else {\n props.onValueChange?.(value.value);\n props.onClose?.();\n }\n }}\n index={index}\n action={action}\n active={\n typeof props.value !== \"undefined\" &&\n props.value.value === action.value\n }\n />\n {index < props.actionSheets.length - 1 && (\n <Divider className=\"oui-border-base-contrast/10\" />\n )}\n </Fragment>\n );\n })}\n </>\n );\n};\n\nexport type SystemActionSheetItem = \"Cancel\" | \"Confirm\" | \"---\";\n\nexport type ActionSheetItem = BaseActionSheetItem | SystemActionSheetItem;\n\nexport interface ActionSheetProps\n extends ComponentPropsWithoutRef<typeof Sheet> {\n actionSheets: ActionSheetItem[];\n value?: BaseActionSheetItem;\n onValueChange?: (value: string) => void;\n open?: boolean;\n onClose?: () => void;\n}\n\nexport const ActionSheet: FC<PropsWithChildren<ActionSheetProps>> = (props) => {\n // create actionSheet items\n const items = useMemo<BaseActionSheetItem[]>(() => {\n const items: BaseActionSheetItem[] = [];\n\n if (Array.isArray(props.actionSheets)) {\n for (const action of props.actionSheets) {\n if (typeof action === \"string\") {\n if (action === \"Cancel\") {\n items.push({\n label: \"Cancel\",\n value: \"cancel\",\n onClick: () => {\n props.onClose?.();\n },\n });\n } else if (action === \"Confirm\") {\n items.push({\n label: \"Confirm\",\n value: \"confirm\",\n });\n } else if (action.startsWith(\"---\")) {\n items.push({\n label: \"---\",\n value: \"---\",\n type: \"division\",\n });\n }\n } else {\n items.push(action);\n }\n }\n }\n\n return items;\n }, [props.actionSheets]);\n\n return (\n <Sheet open={props.open} onOpenChange={props.onOpenChange}>\n {typeof props.children !== \"undefined\" && (\n <SheetTrigger asChild>{props.children}</SheetTrigger>\n )}\n\n <SheetContent\n closeable={false}\n className=\"oui-action-sheet-content !oui-p-0\"\n onOpenAutoFocus={(event) => event.preventDefault()}\n >\n <ActionSheetContent\n actionSheets={items}\n onClose={props.onClose}\n onValueChange={props.onValueChange}\n value={props.value}\n />\n </SheetContent>\n </Sheet>\n );\n};\n","import * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport { VariantProps } from \"tailwind-variants\";\nimport { tv } from \"../utils/tv\";\n\nconst tabsVariants = tv({\n slots: {\n list: [\n \"oui-header-list\",\n \"oui-flex\",\n \"oui-items-center\",\n // \"oui-px-1\",\n ],\n content: [\n \"oui-ring-offset-background\",\n \"focus-visible:oui-outline-none\",\n \"focus-visible:oui-ring-2\",\n \"focus-visible:oui-ring-ring\",\n \"focus-visible:oui-ring-offset-2\",\n ],\n trigger: [\n \"oui-tab-trigger\",\n \"oui-inline-flex\",\n \"oui-items-center\",\n \"oui-justify-center\",\n \"oui-whitespace-nowrap\",\n // \"oui-px-3\",\n\n \"oui-box-content\",\n \"oui-font-medium\",\n\n \"oui-text-base-contrast-36\",\n \"oui-ring-offset-background\",\n \"oui-transition-all\",\n \"oui-space-x-1\",\n \"focus-visible:oui-outline-none\",\n \"focus-visible:oui-ring-2\",\n \"focus-visible:oui-ring-ring\",\n \"focus-visible:oui-ring-offset-2\",\n \"disabled:oui-pointer-events-none\",\n \"disabled:oui-opacity-50\",\n ],\n icon: [\"oui-text-inherit\"],\n },\n variants: {\n variant: {\n text: {\n list: [\n \"oui-space-x-6\",\n \"oui-border-b\",\n \"oui-border-line-6\",\n \"oui-px-1\",\n ],\n trigger: [\n \"oui-pb-2\",\n \"oui-relative\",\n \"data-[state=active]:oui-text-base-contrast\",\n \"data-[state=active]:after:oui-content-['']\",\n \"data-[state=active]:after:oui-block\",\n \"data-[state=active]:after:oui-h-[3px]\",\n \"data-[state=active]:after:oui-bg-white\",\n \"data-[state=active]:after:oui-absolute\",\n \"data-[state=active]:after:oui-rounded-full\",\n \"data-[state=active]:after:-oui-bottom-0\",\n \"data-[state=active]:after:oui-left-0\",\n \"data-[state=active]:after:oui-right-0\",\n ],\n },\n contained: {\n list: [\"oui-space-x-[6px]\"],\n trigger: [\n \"oui-rounded\",\n \"oui-px-3\",\n \"oui-bg-base-7\",\n \"oui-text-base-contrast-36\",\n \"data-[state=active]:oui-bg-base-5\",\n \"data-[state=active]:oui-text-base-contrast\",\n ],\n icon: [\"oui-text-inherit\"],\n },\n },\n size: {\n sm: {},\n md: {},\n lg: {},\n xl: {},\n },\n },\n compoundVariants: [\n {\n size: \"sm\",\n variant: \"text\",\n className: {\n trigger: [\"oui-text-sm\", \"oui-h-5\"],\n icon: [\"oui-w-[10px]\", \"oui-h-[10px]\"],\n },\n },\n {\n size: \"md\",\n variant: \"text\",\n className: {\n trigger: [\"oui-text-base\", \"oui-h-6\"],\n icon: [\"oui-w-3\", \"oui-h-3\"],\n },\n },\n {\n size: \"lg\",\n variant: \"text\",\n className: {\n trigger: [\"oui-text-lg\", \"oui-h-7\"],\n icon: [\"oui-w-[14px]\", \"oui-h-[14px]\"],\n },\n },\n {\n size: \"xl\",\n variant: \"text\",\n className: {\n trigger: [\"oui-text-lg\", \"oui-h-7\"],\n icon: [\"oui-w-4\", \"oui-h-4\"],\n },\n },\n {\n size: \"sm\",\n variant: \"contained\",\n className: {\n list: [\"oui-space-x-1\"],\n trigger: [\"oui-text-2xs\", \"oui-h-6\"],\n icon: [\"oui-w-[10px]\", \"oui-h-[10px]\"],\n },\n },\n {\n size: \"md\",\n variant: \"contained\",\n className: {\n // list: [\"oui-space-x-[6px]\"],\n trigger: [\"oui-text-2xs\", \"oui-h-7\"],\n icon: [\"oui-w-3\", \"oui-h-3\"],\n },\n },\n {\n size: \"lg\",\n variant: \"contained\",\n className: {\n trigger: [\"oui-text-sm\", \"oui-h-8\", \"oui-rounded-md\"],\n icon: [\"oui-w-[14px]\", \"oui-h-[14px]\"],\n },\n },\n {\n size: \"xl\",\n variant: \"contained\",\n className: {\n trigger: [\"oui-text-base\", \"oui-h-9\", \"oui-rounded-md\"],\n icon: [\"oui-w-4\", \"oui-h-4\"],\n },\n },\n ],\n defaultVariants: {\n size: \"md\",\n variant: \"text\",\n },\n});\n\nconst TabsBase = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> &\n VariantProps<typeof tabsVariants>\n>(({ className, size, variant, ...props }, ref) => {\n const { list } = tabsVariants({ size, variant });\n return (\n <TabsPrimitive.List ref={ref} className={list({ className })} {...props} />\n );\n});\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger> &\n VariantProps<typeof tabsVariants> & {\n icon?: React.ReactElement;\n \"data-testid\"?: string;\n }\n>(({ className, size, children, icon, variant, ...props }, ref) => {\n // console.log(\"variant\", variant);\n const { trigger, icon: iconClassName } = tabsVariants({ size, variant });\n return (\n <TabsPrimitive.Trigger\n ref={ref}\n className={trigger({ className })}\n {...props}\n >\n {typeof icon !== \"undefined\"\n ? React.cloneElement(icon, { className: iconClassName(), opacity: 1 })\n : null}\n <span>{children}</span>\n </TabsPrimitive.Trigger>\n );\n});\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content> &\n VariantProps<typeof tabsVariants>\n>(({ className, size, ...props }, ref) => {\n const { content } = tabsVariants({ size });\n return (\n <TabsPrimitive.Content\n ref={ref}\n className={content({ className })}\n {...props}\n />\n );\n});\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { TabsBase, TabsList, TabsTrigger, TabsContent, tabsVariants };\n","import React, {\n FC,\n PropsWithChildren,\n createContext,\n useEffect,\n ReactNode,\n useState,\n useContext,\n ReactElement,\n} from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport {\n TabsBase,\n TabsList,\n TabsContent,\n TabsTrigger,\n tabsVariants,\n} from \"./tabsBase\";\nimport { Flex } from \"../flex\";\nimport { cnBase, VariantProps } from \"tailwind-variants\";\n\ntype tabConfig = {\n title: ReactNode;\n icon?: ReactElement;\n testid?: string;\n\n value: string;\n content: ReactNode;\n};\n\ntype TabsContextState = {\n // tabs:React.ReactNode[];\n registerTab: (tab: tabConfig) => void;\n};\n\nconst TabsContext = createContext({} as TabsContextState);\n\ntype TabsProps<T = string> = {\n defaultValue?: T;\n value?: T;\n // onChange?: (value: T) => void;\n leading?: ReactNode;\n trailing?: ReactNode;\n classNames?: {\n tabsList?: string;\n tabsContent?: string;\n };\n} & TabsPrimitive.TabsProps &\n VariantProps<typeof tabsVariants>;\n\nconst Tabs: FC<TabsProps> = (props) => {\n const { classNames, ...rest } = props;\n // const { value, onChange, defaultValue } = props;\n const [tabList, setTabList] = useState<{ [key: string]: tabConfig }>({});\n\n const registerTab = (config: tabConfig) => {\n setTabList((prev) => {\n return {\n ...prev,\n [config.value]: config,\n };\n });\n };\n\n return (\n <TabsContext.Provider\n value={{\n registerTab,\n }}\n >\n {props.children}\n <TabsBase {...rest}>\n <Flex\n justify=\"between\"\n itemAlign=\"center\"\n width=\"100%\"\n className={cnBase(\n props.variant !== \"contained\" && \"oui-border-b oui-border-b-line-6\"\n )}\n >\n {props.leading}\n <TabsList\n className={cnBase(\n \"oui-flex-1 oui-border-0\",\n props.classNames?.tabsList\n )}\n variant={rest.variant}\n size={rest.size}\n >\n {Object.keys(tabList).map((key) => {\n const tab = tabList[key];\n return (\n <TabsTrigger\n key={key}\n value={tab.value}\n icon={tab.icon}\n variant={rest.variant}\n size={rest.size}\n data-testid={tab.testid}\n >\n {tab.title}\n </TabsTrigger>\n );\n })}\n </TabsList>\n\n {props.trailing}\n </Flex>\n\n {Object.keys(tabList).map((key) => {\n const tab = tabList[key];\n return (\n <TabsContent\n key={key}\n value={tab.value}\n className={props.classNames?.tabsContent}\n >\n {tab.content}\n </TabsContent>\n );\n })}\n </TabsBase>\n </TabsContext.Provider>\n );\n};\n\nTabs.displayName = \"Tabs\";\n\ntype TabPanelProps = {\n value: any;\n title: string | React.ReactNode;\n icon?: React.ReactElement;\n testid?: string;\n};\n\nconst TabPanel: FC<PropsWithChildren<TabPanelProps>> = (props) => {\n const { title, value, icon, testid } = props;\n const { registerTab } = useContext(TabsContext);\n\n useEffect(() => {\n const tabConfig = {\n title,\n value,\n icon,\n testid,\n content: props.children,\n };\n registerTab(tabConfig);\n }, [props.children, title, value]);\n\n return null;\n};\n\nTabPanel.displayName = \"TabPanel\";\n\nexport { Tabs, TabPanel };\n","import React from \"react\";\nimport type { ComponentPropsWithout } from \"../helpers/component-props\";\nimport { cnBase, type VariantProps } from \"tailwind-variants\";\nimport { tv } from \"../utils/tv\";\nimport { decorationVariants } from \"../layout/decoration\";\n\nconst cardVariants = tv({\n base: [\n \"oui-card-root\",\n \"oui-card\",\n \"oui-rounded-xl\",\n \"oui-shadow\",\n \"oui-text-base-contrast\",\n \"oui-p-6\",\n ],\n\n variants: {\n ...decorationVariants.variants,\n },\n defaultVariants: {\n intensity: 900,\n },\n});\n\nexport type BaseCardProps = ComponentPropsWithout<\"div\", \"color\"> &\n VariantProps<typeof cardVariants>;\n\nconst CardBase = React.forwardRef<HTMLDivElement, BaseCardProps>(\n ({ className, intensity, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cardVariants({ intensity, className })}\n {...props}\n />\n );\n }\n);\nCardBase.displayName = \"CardBase\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cnBase(\n \"oui-card-header oui-flex oui-flex-col oui-space-y-1.5\",\n className\n )}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cnBase(\n \"oui-card-header-title oui-font-semibold oui-leading-none oui-tracking-tight oui-text-lg\",\n className\n )}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cnBase(\"oui-text-sm oui-text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cnBase(\"oui-card-content oui-pt-4\", className)}\n {...props}\n />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={className} {...props} />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n CardBase,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n cardVariants,\n};\n","import {\n PropsWithChildren,\n forwardRef,\n ElementType,\n ReactNode,\n} from \"react\";\nimport {\n BaseCardProps,\n CardBase,\n CardContent,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"./cardBase\";\n\ntype CardProps = {\n title?: ReactNode;\n footer?: ReactNode;\n // footerClassName?: string;\n classNames?: {\n root?: string;\n header?: string;\n content?: string;\n footer?: string;\n };\n // color?: number;\n} & BaseCardProps;\n\nconst Card = forwardRef<React.ElementRef<\"div\">, PropsWithChildren<CardProps>>(\n (props, ref) => {\n const { title, children, footer, classNames, ...rest } = props;\n return (\n <CardBase {...rest} className={classNames?.root} ref={ref}>\n <CardHeader className={classNames?.header}>\n {typeof props.title === \"string\" ? (\n <CardTitle>{title}</CardTitle>\n ) : (\n title\n )}\n </CardHeader>\n <CardContent className={classNames?.content}>{children}</CardContent>\n {footer && (\n <CardFooter className={classNames?.footer}>{footer}</CardFooter>\n )}\n </CardBase>\n );\n }\n);\n\nCard.displayName = \"Card\";\n\nexport { Card };\n","import {\n forwardRef,\n SelectHTMLAttributes,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { tv } from \"../utils/tv\";\nimport { VariantProps } from \"tailwind-variants\";\nimport { SelectOption } from \"../select/withOptions\";\nimport { ActionSheet } from \"../sheet\";\nimport { ChevronDownIcon, ChevronUpIcon, cn } from \"..\";\n\nconst pickerVariants = tv({\n base: \"oui-flex oui-flex-row oui-items-stretch oui-rounded-md oui-cursor-pointer oui-border oui-border-line-6 oui-bg-line-4 oui-text-base-contrast-54\",\n variants: {\n size: {\n sm: \"oui-px-2 oui-h-[22px] oui-text-2xs\",\n base: \"oui-px-3 oui-h-[40px]\",\n lg: \"oui-px-6 oui-py-3\",\n },\n fullWidth: {\n true: \"oui-w-full\",\n },\n disabled: {\n true: \"oui-opacity-50 oui-cursor-not-allowed\",\n },\n color: {\n // primary: \"text-primary\",\n base: \"oui-text-base-contract\",\n buy: \"oui-text-trade-profit\",\n sell: \"oui-text-trade-loss\",\n },\n },\n defaultVariants: {\n size: \"base\",\n color: \"base\",\n },\n});\n\nexport interface PickerProps\n extends Omit<\n SelectHTMLAttributes<HTMLSelectElement>,\n \"disabled\" | \"size\" | \"color\" | \"value\"\n >,\n VariantProps<typeof pickerVariants> {\n loading?: boolean;\n label?: string;\n options: SelectOption[];\n value?: SelectOption | string | number;\n onValueChange?: (value: any) => void;\n}\n\nexport type PickerRef = {};\nexport const Picker = forwardRef<PickerRef, PickerProps>(\n (\n {\n size,\n color,\n value,\n label,\n //@ts-ignore\n placeholder,\n className,\n options,\n fullWidth,\n disabled,\n ...props\n },\n ref\n ) => {\n const [open, setOpen] = useState(false);\n\n const selectedItem = useMemo<SelectOption | undefined>(() => {\n if (value && !!(value as SelectOption).value) {\n return value as SelectOption;\n }\n\n if (typeof value === \"number\" || typeof value === \"string\") {\n const option = options.find((option) => option.value === value);\n if (option) {\n return option;\n }\n }\n }, [value, options]);\n\n const text = useMemo(() => {\n if (selectedItem) {\n return selectedItem.label;\n }\n return placeholder || label || \"\";\n }, [selectedItem, label, placeholder]);\n\n // @ts-ignore\n const actions: ActionSheetItem[] = useMemo(() => {\n return [...options, \"---\", \"Cancel\"];\n }, [options]);\n\n // const triggerRef = useRef(null);\n // const [dropdownWidth, setDropdownWidth] = useState(218);\n\n // useEffect(() => {\n // if (triggerRef.current) {\n // // @ts-ignore\n // const width = triggerRef.current.offsetWidth;\n // setDropdownWidth(width);\n // }\n // }, []);\n\n return (\n <ActionSheet\n actionSheets={actions}\n onOpenChange={setOpen}\n open={open}\n onClose={() => setOpen(false)}\n // @ts-ignore\n value={selectedItem}\n onValueChange={props.onValueChange}\n >\n <div\n className={cn(\n \"oui-space-x-1 oui-text-base-contrast/80 \",\n \"oui-rounded-md\",\n \"oui-bg-base-8\",\n pickerVariants({\n size,\n color,\n fullWidth,\n disabled: disabled || options.length === 0,\n className,\n })\n )}\n >\n <div className=\"oui-flex-1 oui-flex oui-justify-start oui-items-center oui-text-inherit oui-text-2xs\">\n {text}\n </div>\n <div className=\"oui-flex oui-items-center\">\n {/* <ArrowIcon size={12} className=\"oui-text-inherit\" /> */}\n {open ? (\n <ChevronUpIcon size={14} color=\"white\" />\n ) : (\n <ChevronDownIcon size={14} color=\"white\" />\n )}\n </div>\n </div>\n </ActionSheet>\n );\n }\n);\n","export { Calendar } from \"./date/calendar\";\n\nimport { DatePicker as DatePickerBase } from \"./datepicker\";\nimport { DateRangePicker } from \"./dateRangePicker\";\n\ntype DatePickerType = typeof DatePickerBase & {\n range: typeof DateRangePicker;\n};\n\nconst DatePicker = DatePickerBase as DatePickerType;\nDatePicker.range = DateRangePicker;\n\nexport { DatePicker };\nexport type { DatePickerProps } from \"./datepicker\";\n\nexport { Picker } from \"./picker\";\n","import * as React from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport { cnBase, VariantProps } from \"tailwind-variants\";\nimport { tv } from \"../utils/tv\";\nimport { Fragment, useMemo } from \"react\";\nimport { convertValueToPercentage, getThumbInBoundsOffset } from \"./utils\";\nimport { cn } from \"..\";\n\nconst sliderVariants = tv({\n slots: {\n root: \"oui-relative oui-flex oui-w-full oui-touch-none oui-select-none oui-items-center\",\n thumb: [\n \"oui-block\",\n \"oui-h-[10px]\",\n \"oui-w-[10px]\",\n \"oui-rounded-full\",\n \"oui-border-[2px]\",\n \"oui-border-primary\",\n \"oui-bg-base-6\",\n \"oui-shadow\",\n \"oui-transition-colors\",\n \"focus-visible:oui-outline-none\",\n // \"focus-visible:oui-ring-1\",\n // \"focus-visible:oui-ring-ring\",\n \"focus:oui-h-[14px]\",\n \"focus:oui-w-[14px]\",\n \"focus:oui-border-[3px]\",\n \"disabled:oui-pointer-events-none\",\n \"disabled:oui-opacity-50\",\n ],\n track:\n \"oui-relative oui-h-[8px] oui-w-full oui-grow oui-overflow-hidden oui-rounded-full\",\n\n trackInner:\n \"oui-absolute oui-left-0 oui-right-0 oui-h-[2px] oui-top-[3px] oui-pointer-events-none oui-bg-base-2\",\n range: \"oui-absolute oui-h-[2px] oui-top-[3px] oui-bg-primary\",\n mark: \"oui-absolute oui-top-[1px] oui-w-[6px] oui-h-[6px] oui-rounded oui-border oui-border-base-2 oui-bg-base-6 oui-pointer-events-none oui-translate-x-[-50%]\",\n },\n variants: {\n color: {\n primary: {\n thumb: [\"oui-border-primary\", \"oui-bg-base-5\"],\n range: \"oui-bg-primary\",\n },\n primaryLight: {\n thumb: [\"oui-border-primary-light\", \"oui-bg-base-5\"],\n range: \"oui-bg-primary-light\",\n },\n buy: {\n thumb: [\"oui-border-success\", \"oui-bg-base-5\"],\n range: \"oui-bg-success\",\n },\n sell: {\n thumb: [\"oui-border-danger\", \"oui-bg-base-5\"],\n range: \"oui-bg-danger\",\n },\n },\n },\n});\n\nexport type SliderMarks = { value: number; label: string }[];\n\ntype SliderProps = React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root> &\n VariantProps<typeof sliderVariants> & {\n // showMarks?: boolean;\n marks?: SliderMarks;\n markCount?: number;\n markLabelVisible?: boolean;\n showTip?: boolean;\n classNames?: {\n root?: string;\n thumb?: string;\n track?: string;\n range?: string;\n };\n };\n\nconst BaseSlider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n SliderProps\n>(\n (\n {\n className,\n color,\n marks,\n markCount,\n classNames,\n markLabelVisible,\n showTip,\n onValueChange,\n value: __propsValue,\n ...props\n },\n ref\n ) => {\n const { track, range, thumb, root, trackInner, mark } = sliderVariants({\n color,\n });\n\n const [innerValue, setInvalue] = React.useState(__propsValue);\n\n // console.log(\"********innerValue\", innerValue, __propsValue);\n\n React.useEffect(() => {\n setInvalue((prev: any) => {\n if (!prev) return __propsValue;\n if (__propsValue?.some((v, i) => v !== prev[i])) {\n return __propsValue;\n }\n\n return prev;\n });\n }, [__propsValue]);\n\n const innerMasks = useMemo<SliderMarks>(() => {\n if (Array.isArray(marks) && marks.length > 0) {\n return marks;\n }\n\n let _max = props.max;\n if (!_max) {\n _max = 100;\n }\n\n if (typeof markCount !== \"undefined\") {\n const marks: SliderMarks = [];\n\n // if(max === 0){\n\n // }\n\n const piece = _max / markCount;\n const len = markCount - 1;\n\n for (let i = 0; i <= len; i++) {\n const value = i * piece;\n marks.push({\n value,\n label: `${value}`,\n });\n }\n\n marks.push({\n value: _max,\n label: `100`,\n });\n\n return marks;\n }\n\n return [];\n }, [marks, markCount, props.max]);\n\n const onValueChangeInner = (value: number[]) => {\n setInvalue(value);\n\n onValueChange?.(value);\n };\n\n return (\n <SliderPrimitive.Root\n ref={ref}\n className={root({ className })}\n value={onValueChange ? __propsValue : innerValue}\n onValueChange={onValueChange ? onValueChange : onValueChangeInner}\n {...props}\n >\n <SliderPrimitive.Track\n className={track({ className: classNames?.track })}\n >\n <div className={trackInner()} />\n <SliderPrimitive.Range\n className={range({ className: classNames?.range })}\n />\n </SliderPrimitive.Track>\n {Array.isArray(innerMasks) && innerMasks.length > 0 && (\n <Marks\n value={innerValue}\n color={color}\n marks={innerMasks}\n isInnerMask={!Array.isArray(marks) || marks.length === 0}\n // min={props.min}\n // max={props.max}\n markLabelVisible={markLabelVisible}\n disabled={props.disabled}\n className={mark()}\n step={props.step}\n />\n )}\n <SliderPrimitive.Thumb\n className={thumb({\n className: classNames?.thumb,\n })}\n />\n </SliderPrimitive.Root>\n );\n }\n);\n\nBaseSlider.displayName = SliderPrimitive.Root.displayName;\n\nexport type SliderMarksProps = {\n value?: number[];\n marks?: SliderMarks;\n color?: \"primary\" | \"buy\" | \"sell\" | \"primaryLight\";\n // width: number;\n // min: number;\n // max: number;\n\n disabled?: boolean;\n markLabelVisible?: boolean;\n isInnerMask?: boolean;\n className?: string;\n step?: number;\n};\n\nconst Marks = (props: SliderMarksProps) => {\n const {\n marks,\n value,\n isInnerMask,\n markLabelVisible,\n className,\n color = \"primary\",\n } = props;\n const _value = useMemo(() => value?.[0] ?? 0, [value]);\n const selIndex = useMemo(() => {\n if (typeof props.step === 'undefined') return undefined;\n return Math.floor(_value / props.step);\n }, [\n _value, props.step\n ]);\n \n\n return (\n <>\n {marks?.map((mark, index) => {\n // const percent = convertValueToPercentage(mark.value, props.min, _max);\n const percent = convertValueToPercentage(index, 0, marks.length - 1);\n // const percent = ((100 - 2 * 6) / (marks.length - 1)) * index;\n\n const thumbInBoundsOffset = getThumbInBoundsOffset(6, percent, 1);\n const __value = isInnerMask ? mark.value : index;\n // console.log(\"_ value\", isInnerMask, _value, selIndex, mark, __value, percent);\n\n const colorCls = useMemo(() => {\n switch (color) {\n case \"primary\":\n return \"oui-border-primary oui-bg-primary\";\n case \"buy\":\n return \"oui-border-trade-profit oui-bg-trade-profit\";\n case \"sell\":\n return \"oui-border-trade-loss oui-bg-trade-loss\";\n case \"primaryLight\":\n return \"oui-border-primary-light oui-bg-primary-light\";\n }\n }, [color]);\n\n const textCls = useMemo(() => {\n switch (color) {\n case \"primary\":\n return \"oui-text-primary\";\n case \"buy\":\n return \"oui-texttrade-profit\";\n case \"sell\":\n return \"oui-text-trade-loss\";\n case \"primaryLight\":\n return \"oui-text-primary-light\";\n }\n }, [color]);\n const active =\n (isInnerMask ? _value >= __value : (selIndex ?? 0) >= __value) &&\n _value >= 0 &&\n !props.disabled;\n\n const classNames = active ? colorCls : \"\";\n\n return (\n <Fragment key={index}>\n <span\n className={cnBase(className, classNames)}\n style={{\n left: `calc(${percent}% + ${thumbInBoundsOffset}px)`,\n // opacity: '0.3'\n // top: \"7px\",\n }}\n />\n {!props.disabled && markLabelVisible && (\n <span\n data-testid={`oui-testid-slider-mark-label-${mark.label}`}\n key={index}\n className={cn(\n \"oui-absolute oui-top-[16px] oui-text-xs oui-text-base-contrast-54 oui-cursor-pointer oui-translate-x-[-50%]\",\n (selIndex === index) && textCls\n )}\n style={{\n left: `calc(${percent}% + ${thumbInBoundsOffset}px)`,\n }}\n >\n {mark.label}\n </span>\n )}\n </Fragment>\n );\n })}\n </>\n );\n};\n\nconst SingleSlider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n Omit<SliderProps, \"value\" | \"onValueChange\" | \"onValueCommit\"> & {\n value: number;\n onValueChange?: (value: number) => void;\n onValueCommit?: (value: number) => void;\n }\n>((props, ref) => {\n const _value = useMemo(() => [props.value], [props.value]);\n\n return (\n <BaseSlider\n {...props}\n value={_value}\n ref={ref}\n onValueChange={\n typeof props.onValueChange === \"function\"\n ? (values: number[]) => {\n props.onValueChange!(values[0]);\n }\n : undefined\n }\n onValueCommit={\n typeof props.onValueCommit === \"function\"\n ? (values: number[]) => {\n props.onValueCommit!(values[0]);\n }\n : undefined\n }\n />\n );\n});\n\ntype SliderType = typeof BaseSlider & {\n signle: typeof SingleSlider;\n};\n\nconst Slider = BaseSlider as SliderType;\n\nSlider.signle = SingleSlider;\n\nexport { Slider };\n","function clamp(value: number, [min, max]: [number, number]): number {\n return Math.min(max, Math.max(min, value));\n}\n\nexport function convertValueToPercentage(\n value: number,\n min: number,\n max: number\n) {\n const maxSteps = max - min;\n if (maxSteps === 0) return clamp(0, [0, 100]);\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\n\nfunction linearScale(\n input: readonly [number, number],\n output: readonly [number, number]\n) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n\nexport function getThumbInBoundsOffset(\n width: number,\n left: number,\n direction: number\n) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\n","\"use client\";\nimport {\n ToastBar,\n toast,\n Toaster as PrimitiveToaster,\n ToastOptions,\n} from \"react-hot-toast\";\nimport { FC } from \"react\";\nimport { CloseIcon, cn } from \"..\";\nimport {\n ToastErrorIcon,\n ToastLoadingIcon,\n ToastSuccessIcon,\n} from \"../icon/toasterIcons\";\n\ninterface ToastProps extends ToastOptions {}\n\nexport const Toaster: FC<ToastProps> = (props) => {\n return (\n // @ts-ignore\n <PrimitiveToaster\n toastOptions={{\n duration: 3000,\n // style: {\n // fontSize: \"16px\",\n // color: \"rgba(255, 255, 255, 0.8)\",\n // padding: 16,\n // background: \"rgba(25, 14, 44, 1)\",\n // },\n success: {\n iconTheme: {\n primary: \"rgba(123, 220, 138, 1)\",\n secondary: \"rgba(25, 14, 44, 1)\",\n },\n style: {\n // color: \"rgba(123, 220, 138, 1)\",\n background: 'rgba(40, 46, 58, 1)'\n },\n },\n loading: {\n duration: 5000,\n style: {\n background: 'rgba(40, 46, 58, 1)'\n }\n },\n error: {\n iconTheme: {\n primary: \"rgba(217, 91, 129, 1)\",\n secondary: \"rgba(25, 14, 44, 1)\",\n },\n style: {\n // color: \"rgba(217, 91, 129, 1)\",\n background: 'rgba(40, 46, 58, 1)'\n },\n },\n }}\n {...props}\n containerClassName={cn(\"!top-[62px] md:!top-[80px] oui-font-semibold\", props.className)}\n >\n {(t) => (\n // @ts-ignore\n <ToastBar\n toast={t}\n style={{\n ...t.style,\n color: \"rgba(255, 255, 255, 0.8)\",\n // background: \"rgba(25, 14, 44, 1)\",\n borderRadius: \"6px\",\n wordBreak: \"break-all\",\n maxWidth: 800,\n boxShadow: \"0px 4px 8px 0px rgba(0, 0, 0, 0.36)\",\n }}\n >\n {({ icon, message }) => {\n let customIcon = icon;\n if (t.type === \"error\") {\n customIcon = (\n <ToastErrorIcon className=\"w-[16px] h-[16px] md:w-[24px] md:h-[24px]\" />\n );\n } else if (t.type === \"success\") {\n customIcon = (\n <ToastSuccessIcon size={20} />\n );\n } else if (t.type === \"loading\") {\n customIcon = (\n <div className=\"oui-animate-rotate-360 oui-rounded-full\">\n <ToastLoadingIcon className=\"w-[16px] h-[16px] md:w-[24px] md:h-[24px]\" />\n </div>\n );\n }\n return (\n <div className=\"oui-flex oui-items-center oui-padding-[12px] md:oui-padding-[16px]\">\n {customIcon}\n <div className=\"oui-text-base oui-px-[2px]\">\n {message}\n </div>\n {true && (\n <button\n onClick={() => toast.dismiss(t.id)}\n className=\"oui-hidden md:oui-block\"\n >\n <CloseIcon size={16} className=\" oui-text-base-contrast-54\" />\n </button>\n )}\n </div>\n );\n }}\n </ToastBar>\n )}\n </PrimitiveToaster>\n );\n};\n","import React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const ToastErrorIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 1, viewBox = \"0 0 20 20\", ...rest } = props;\n return (\n <BaseIcon ref={ref} viewBox={viewBox} {...rest}>\n <path\n d=\"M10 1.628a8.333 8.333 0 1 0-.001 16.666 8.333 8.333 0 0 0 0-16.666m-2.5 5c.212 0 .435.071.598.234L10 8.762l1.9-1.9a.85.85 0 0 1 .6-.234c.213 0 .436.071.6.234a.86.86 0 0 1 0 1.198l-1.902 1.901 1.901 1.9a.86.86 0 0 1 0 1.2.86.86 0 0 1-1.198 0L10 11.158 8.097 13.06a.86.86 0 0 1-1.198 0 .857.857 0 0 1 0-1.198L8.8 9.96l-1.9-1.9a.857.857 0 0 1 0-1.2.84.84 0 0 1 .6-.233\"\n fill=\"#FF447C\"\n fillOpacity={opacity}\n />\n </BaseIcon>\n );\n }\n);\nexport const ToastSuccessIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 1, viewBox = \"0 0 20 20\", ...rest } = props;\n return (\n <BaseIcon ref={ref} viewBox={viewBox} {...rest}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M1.678 10a8.333 8.333 0 1 1 16.667-.001 8.333 8.333 0 0 1-16.667 0m12.477-3.907c.189-.18.448-.26.697-.26s.507.08.697.26c.38.362.38.969 0 1.33l-6.793 6.473a1.033 1.033 0 0 1-1.394 0l-2.911-2.774a.92.92 0 0 1 0-1.33 1.034 1.034 0 0 1 1.395 0l2.213 2.11z\"\n fill=\"#00B49E\"\n />\n </BaseIcon>\n );\n }\n);\nexport const ToastLoadingIcon = React.forwardRef<SVGSVGElement, BaseIconProps>(\n (props, ref) => {\n const { opacity = 1, viewBox = \"0 0 20 20\", ...rest } = props;\n return (\n <BaseIcon ref={ref} viewBox={viewBox} {...rest}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M9.167 3.333c0-.46.373-.833.833-.833A7.5 7.5 0 1 1 2.5 10a.833.833 0 0 1 1.667 0A5.834 5.834 0 1 0 10 4.167a.833.833 0 0 1-.833-.834\"\n fill=\"#4774F6\"\n fillOpacity={opacity}\n />\n </BaseIcon>\n );\n }\n);\n\nToastErrorIcon.displayName = \"ToasterErrorIcon\";\nToastSuccessIcon.displayName = \"ToastSuccessIcon\";\nToastLoadingIcon.displayName = \"ToastLoadingIcon\";\n","export { Toaster } from \"./Toaster\";\nexport { toast } from \"react-hot-toast\";\nexport { ToastTile } from \"./toastTile\";\n","import { cn } from \"..\";\nimport { Flex } from \"../flex\";\nimport { Text } from \"../typography\";\n\nexport const ToastTile = (props: {\n title: string;\n subtitle?: string;\n classNames?: {\n className?: string;\n titleClassName?: string;\n subtitleClassName?: string;\n };\n}) => {\n return (\n <Flex\n direction=\"column\"\n itemAlign={\"start\"}\n className={cn(\"oui-gap-[2px]\", props.classNames?.className)}\n >\n <Text\n size=\"base\"\n intensity={80}\n className={props.classNames?.titleClassName}\n >\n {props.title}\n </Text>\n {(props.subtitle?.length || 0) > 0 && (\n <Text\n size=\"xs\"\n intensity={54}\n className={props.classNames?.subtitleClassName}\n >\n {props.subtitle}\n </Text>\n )}\n </Flex>\n );\n};\n","import React, { ForwardedRef, forwardRef, useImperativeHandle } from \"react\";\nimport { useMemo, useRef } from \"react\";\nimport { useEndReached } from \"./useEndReached\";\nimport { Spinner } from \"../spinner\";\nimport { cn, EmptyDataState, Flex } from \"..\";\nimport { EmptyView } from \"../empty\";\n\nexport interface ListViewProps<T, D extends unknown> {\n dataSource: T[] | null | undefined;\n renderItem: (item: T, index: number, extraData?: D) => React.ReactNode;\n className?: string;\n contentClassName?: string;\n isLoading?: boolean;\n loadMore?: () => void;\n\n style?: React.CSSProperties;\n\n extraData?: D;\n emptyView?: React.ReactNode;\n}\n\nexport type ListViewRef = ForwardedRef<{\n scroll: (direction: { x: number; y: number }) => void;\n}>;\n\nconst ListViewInner = <T extends unknown, D extends unknown>(\n props: ListViewProps<T, D>,\n ref: ListViewRef\n) => {\n const sentinelRef = useRef<HTMLDivElement | null>(null);\n\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n useEndReached(sentinelRef, () => {\n if (!props.isLoading) {\n props.loadMore?.();\n }\n });\n\n const emptyDataSouce = useMemo(() => {\n return Array.isArray(props.dataSource) && props.dataSource.length <= 0;\n }, [props.dataSource]);\n\n const listViewElement = useMemo(() => {\n if (!props.dataSource) {\n return null;\n }\n\n if (emptyDataSouce) {\n return (\n props.emptyView || (\n <Flex\n direction={\"column\"}\n height={\"100%\"}\n itemAlign={\"center\"}\n justify={\"center\"}\n mt={3}\n >\n <EmptyDataState />\n </Flex>\n )\n );\n }\n\n return props.dataSource.map((item, index) => (\n <React.Fragment key={index}>\n {props.renderItem(item, index, props.extraData)}\n </React.Fragment>\n ));\n }, [emptyDataSouce, props.dataSource, props.extraData, props.emptyView]);\n\n const loadingViewElement = useMemo(() => {\n if ((props.dataSource?.length || 0) === 0) return null;\n if (!props.isLoading) {\n return null;\n }\n\n return (\n <div className=\"oui-flex oui-py-2 oui-justify-center oui-items-center\">\n <Spinner />\n </div>\n );\n }, [props.isLoading, props.dataSource]);\n\n useImperativeHandle(ref, () => {\n return {\n scroll: (direction) => {\n containerRef.current?.scroll({\n left: direction.x,\n top: direction.y,\n behavior: \"smooth\",\n });\n },\n };\n });\n\n return (\n <div\n style={props.style}\n ref={containerRef}\n className={cn(\n \"oui-relative oui-min-h-[180px] oui-scrollbar-vertical oui-overflow-auto\",\n props.className\n )}\n >\n <div\n className={cn(\n \"oui-space-y-3 oui-h-full oui-w-full\",\n emptyDataSouce && \"oui-absolute oui-left-0 oui-right-0 oui-top-0 oui-bottom-0\",\n props.contentClassName\n )}\n >\n {listViewElement}\n </div>\n <div\n ref={sentinelRef}\n className=\"oui-relative oui-invisible oui-h-[1px] oui-top-[-300px]\"\n />\n {loadingViewElement}\n </div>\n );\n};\n\nexport const ListView = forwardRef(ListViewInner) as <T, D>(\n props: ListViewProps<T, D> & {\n ref?: ForwardedRef<{\n scroll: (direction: { x: number; y: number }) => void;\n }>;\n }\n) => JSX.Element;\n","import { useEffect, useRef, MutableRefObject } from \"react\";\n\n/**\n * Listen for the specified element to scroll to the bottom\n */\nexport function useEndReached(\n sentinelRef: MutableRefObject<HTMLDivElement | null>,\n onEndReached?: () => void\n) {\n const observer = useRef<IntersectionObserver>();\n const cb = useRef(onEndReached);\n\n cb.current = onEndReached;\n\n useEffect(() => {\n const options: IntersectionObserverInit = {\n root: null,\n rootMargin: \"0px\",\n threshold: 0,\n };\n\n const handleObserver = (entries: IntersectionObserverEntry[]) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n cb.current?.();\n }\n });\n };\n\n observer.current = new IntersectionObserver(handleObserver, options);\n\n return () => {\n observer.current?.disconnect();\n };\n }, []);\n\n useEffect(() => {\n observer.current?.observe(sentinelRef.current!);\n }, []);\n}\n","import * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { tv, VariantProps } from \"tailwind-variants\";\nimport { SizeType } from \"../helpers/sizeType\";\n\nconst DropdownMenuRoot = DropdownMenuPrimitive.Root;\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst dropdownMenuVariants = tv({\n slots: {\n content: [\n \"oui-z-50\",\n \"oui-min-w-[8rem]\",\n \"oui-overflow-hidden\",\n \"oui-rounded-xl\",\n \"oui-p-1\",\n \"oui-bg-base-8\",\n \"oui-text-base-contrast\",\n \"oui-shadow-md\",\n \"oui-border\",\n \"oui-border-line-6\",\n \"data-[state=open]:oui-animate-in\",\n \"data-[state=closed]:oui-animate-out\",\n \"data-[state=closed]:oui-fade-out-0\",\n \"data-[state=open]:oui-fade-in-0\",\n \"data-[state=closed]:oui-zoom-out-95\",\n \"data-[state=open]:oui-zoom-in-95\",\n \"data-[side=bottom]:oui-slide-in-from-top-2\",\n \"data-[side=left]:oui-slide-in-from-right-2\",\n \"data-[side=right]:oui-slide-in-from-left-2\",\n \"data-[side=top]:oui-slide-in-from-bottom-2\",\n ],\n item: [\n \"oui-relative\",\n \"oui-flex\",\n \"oui-cursor-default\",\n \"oui-select-none\",\n \"oui-items-center\",\n // \"oui-rounded-lg\",\n \"oui-px-2\",\n \"oui-py-1.5\",\n \"oui-text-sm\",\n \"oui-outline-none\",\n \"oui-transition-colors\",\n \"hover:oui-bg-base-5\",\n \"focus:oui-bg-accent\",\n \"focus:oui-text-accent-foreground\",\n \"data-[disabled]:oui-pointer-events-none\",\n \"data-[disabled]:oui-opacity-50\",\n ],\n label: \"oui-px-2 oui-py-1.5 oui-text-sm oui-font-semibold\",\n separator: \"-oui-mx-1 oui-my-1 oui-h-px oui-bg-muted\",\n shortcut: \"oui-ml-auto oui-text-xs oui-tracking-widest oui-opacity-60\",\n },\n variants: {\n size: {\n xs: {\n content: \"oui-rounded\",\n item: [\n \"oui-px-2\",\n \"oui-py-1.5\",\n \"oui-h-6\",\n \"oui-rounded\",\n \"oui-text-2xs\",\n ],\n },\n sm: {\n content: \"oui-rounded\",\n item: [\n \"oui-px-2\",\n \"oui-py-1.5\",\n \"oui-h-6\",\n \"oui-rounded\",\n \"oui-text-2xs\",\n ],\n },\n md: {\n content: \"oui-rounded-md\",\n item: [\"oui-px-4\", \"oui-py-3\", \"oui-h-6\", \"oui-rounded\"],\n },\n lg: {\n content: \"oui-rounded-lg\",\n item: [\"oui-px-4\", \"oui-py-3\", \"oui-h-6\", \"oui-rounded-md\"],\n },\n xl: {\n content: \"oui-rounded-xl\",\n item: [\n \"oui-px-4\",\n \"oui-py-3\",\n \"oui-h-10\",\n \"oui-rounded-lg\",\n \"oui-text-base\",\n ],\n },\n },\n inset: {\n true: {\n item: [\"oui-pl-8\"],\n label: [\"oui-pl-8\"],\n },\n },\n },\n defaultVariants: {\n inset: false,\n size: \"lg\",\n },\n});\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content> &\n VariantProps<typeof dropdownMenuVariants>\n>(({ className, sideOffset = 4, size, ...props }, ref) => {\n const { content } = dropdownMenuVariants({ size });\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={content({ className })}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n});\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n size?: SizeType;\n }\n>(({ className, inset, size, ...props }, ref) => {\n const { item } = dropdownMenuVariants({ size });\n return (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={item({ className, inset })}\n {...props}\n />\n );\n});\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\n// const DropdownMenuCheckboxItem = React.forwardRef<\n// React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n// React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n// >(({ className, children, checked, ...props }, ref) => (\n// <DropdownMenuPrimitive.CheckboxItem\n// ref={ref}\n// className={cn(\n// \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n// className\n// )}\n// checked={checked}\n// {...props}\n// >\n// <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n// <DropdownMenuPrimitive.ItemIndicator>\n// {/* <CheckIcon className=\"h-4 w-4\" /> */}\n// </DropdownMenuPrimitive.ItemIndicator>\n// </span>\n// {children}\n// </DropdownMenuPrimitive.CheckboxItem>\n// ));\n// DropdownMenuCheckboxItem.displayName =\n// DropdownMenuPrimitive.CheckboxItem.displayName;\n\n// const DropdownMenuRadioItem = React.forwardRef<\n// React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n// React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n// >(({ className, children, ...props }, ref) => (\n// <DropdownMenuPrimitive.RadioItem\n// ref={ref}\n// className={cn(\n// \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n// className\n// )}\n// {...props}\n// >\n// <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n// <DropdownMenuPrimitive.ItemIndicator>\n// {/* <DotFilledIcon className=\"h-4 w-4 fill-current\" /> */}\n// </DropdownMenuPrimitive.ItemIndicator>\n// </span>\n// {children}\n// </DropdownMenuPrimitive.RadioItem>\n// ));\n// DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => {\n const { label } = dropdownMenuVariants({\n inset,\n });\n return (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={label({ className })}\n {...props}\n />\n );\n});\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => {\n const { separator } = dropdownMenuVariants();\n return (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={separator({ className })}\n {...props}\n />\n );\n});\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n const { shortcut } = dropdownMenuVariants();\n return <span className={shortcut({ className })} {...props} />;\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenuRoot,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n // DropdownMenuCheckboxItem,\n // DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n // DropdownMenuSubContent,\n // DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n};\n","import { PropsWithChildren, type ReactNode, useMemo } from \"react\";\nimport {\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuPortal,\n DropdownMenuRoot,\n DropdownMenuTrigger,\n} from \"./dropdown\";\nimport type { DropdownMenuContentProps } from \"@radix-ui/react-dropdown-menu\";\nimport { SizeType } from \"../helpers/sizeType\";\n\nexport type MenuItem = {\n label: string;\n value: string;\n testId?: string;\n};\n\ntype DropdownMenuProps = {\n menu: MenuItem[];\n onSelect?: (item: MenuItem) => void;\n render?: (item: MenuItem, index: number) => ReactNode;\n size?: SizeType;\n} & DropdownMenuContentProps;\n\nconst SimpleDropdownMenu = (props: PropsWithChildren<DropdownMenuProps>) => {\n const { menu, render, size, children, ...contentProps } = props;\n\n const items = useMemo(() => {\n if (typeof props.render === \"function\") {\n return props.menu.map((item, index) => {\n return props.render?.(item, index);\n });\n }\n\n return props.menu.map((item) => (\n <DropdownMenuItem\n textValue={item.value}\n key={item.value}\n onSelect={(event) => {\n props.onSelect?.(item);\n }}\n size={size}\n data-testid={item.testId}\n >\n {item.label}\n </DropdownMenuItem>\n ));\n }, [props.menu, props.render]);\n return (\n <DropdownMenuRoot>\n <DropdownMenuTrigger asChild>{children}</DropdownMenuTrigger>\n <DropdownMenuPortal>\n <DropdownMenuContent size={size} {...contentProps}>\n {items}\n </DropdownMenuContent>\n </DropdownMenuPortal>\n </DropdownMenuRoot>\n );\n};\n\nexport { SimpleDropdownMenu };\n","import { ExtensionPosition } from \"../plugin\";\nimport { ComponentType, FC, PropsWithChildren, useEffect } from \"react\";\n\n/// layout cache: size, position\n\nconst ComponentsProvider: FC<\n PropsWithChildren<{\n components?: { [position in ExtensionPosition]: ComponentType };\n }>\n> = (props) => {\n useEffect(() => {\n if (props.components && Object.keys(props.components).length) {\n for (const position in props.components) {\n console.log(position, props.components[position]);\n }\n }\n }, [props.components]);\n\n return props.children;\n};\n\nexport { ComponentsProvider };\n","import { ComponentType, FC, PropsWithChildren } from \"react\";\nimport { ExtensionPosition } from \"../plugin\";\nimport { ComponentsProvider } from \"./componentProvider\";\n\nexport type OrderlyThemeProviderProps = {\n dateFormatting?: string;\n components?: {\n [position in ExtensionPosition]: ComponentType;\n };\n};\n\nexport const OrderlyThemeProvider: FC<\n PropsWithChildren<OrderlyThemeProviderProps>\n> = (props) => {\n return (\n <ComponentsProvider components={props.components}>\n {props.children}\n </ComponentsProvider>\n );\n};\n","import { ReactElement } from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { ComponentPropsWithout } from \"../helpers/component-props\";\n\ntype CaseProps<Props = {}> =\n | { [key: string | number]: ReactElement<Props> }\n | ((value: any) => ReactElement<Props>);\ntype ValueTypes = string | number | (() => any);\n\ntype Props<Props = {}> = {\n value: ValueTypes;\n case: CaseProps<Props>;\n default: ReactElement;\n} & Props &\n ComponentPropsWithout<\"div\", \"value\" | \"case\" | \"default\">;\n\nexport const Match = <T,>(props: Props<T>) => {\n const { value, case: Case, default: Default, ...rest } = props;\n\n const _value = typeof value === \"function\" ? value() : value;\n\n if (typeof Case === \"function\") {\n const Comp = Case(_value);\n\n if (Comp) {\n return <Slot children={Comp} {...rest} />;\n }\n\n if (typeof Default === \"undefined\") {\n // console.warn('')\n return;\n }\n\n return <Slot children={Default} {...rest} />;\n }\n\n const keys = Object.keys(Case);\n\n while (keys.length) {\n const key = keys.pop();\n if (key === _value.toString()) {\n return <Slot children={Case[key!]} {...rest} />;\n }\n }\n return <Slot children={Default} {...rest} />;\n};\n","import \"./install\";\n\nexport { Button } from \"./button\";\nexport { Box, boxVariants } from \"./box\";\nexport { Grid } from \"./grid\";\nexport { Flex } from \"./flex\";\nexport * from \"./typography\";\nexport { Spinner } from \"./spinner\";\nexport { Input, inputFormatter, InputAdditional, TextField } from \"./input\";\nexport { Checkbox } from \"./checkbox\";\nexport { Switch } from \"./switch\";\nexport { Badge } from \"./badge/badge\";\nexport { Logo, type LogoProps } from \"./logo/logo\";\nexport * from \"./tooltip\";\nexport * from \"./table\";\nexport * from \"./scrollarea\";\nexport * from \"./dialog\";\nexport * from \"./sheet\";\nexport * from \"./divider\";\nexport * from \"./tabs\";\nexport { PaginationItems } from \"./pagination\";\nexport { Select, SelectItem } from \"./select\";\nexport * from \"./popover\";\nexport * from \"./card\";\nexport * from \"./pickers\";\nexport * from \"./slider\";\nexport * from \"./toast\";\nexport * from \"./listView\";\n\nexport * from \"./dropdown\";\n\nexport * from \"./icon\";\nexport * from \"./modal\";\nexport { EVMAvatar, Avatar } from \"./avatar\";\n\nexport type { ButtonProps } from \"./button\";\nexport type { BoxProps } from \"./box\";\nexport type { FlexProps } from \"./flex\";\nexport type { TextProps, NumeralProps } from \"./typography\";\nexport type {\n InputProps,\n TextFieldProps,\n InputFormatter,\n InputFormatterOptions,\n} from \"./input\";\nexport type { SpinnerProps } from \"./spinner\";\nexport type { ChainSelectProps, SelectProps } from \"./select\";\nexport type { SizeType } from \"./helpers/sizeType\";\n\nexport { OrderlyThemeProvider } from \"./provider/orderlyThemeProvider\";\nexport * from \"./plugin\";\n\n//===== Misc widgets\nexport { Either } from \"./misc/either\";\nexport { Match } from \"./misc/switch\";\n\n//===== re-exported\nexport { cnBase as cn } from \"tailwind-variants\";\nexport type { VariantProps } from \"tailwind-variants\";\n\n//===== utils\nexport * from \"./utils\";\nexport { tv } from \"./utils/tv\";\nexport { default as toast } from \"react-hot-toast\";\n\n//===== tailwind\nexport * as OUITailwind from \"./tailwind\";\n","/**\n * capitalize the first letter\n * @param str\n * @returns string\n */\nexport const capitalizeFirstLetter = (str: string, fallback?: string): undefined | string => {\n if (typeof str === 'undefined' || str === null) return fallback ?? undefined;\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n \n","*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}/*\n! tailwindcss v3.4.12 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n:root {\n --oui-font-family: \"Manrope\", sans-serif;\n --oui-color-primary: 51 95 252;\n --oui-color-primary-light: 96 140 255;\n --oui-color-primary-darken: 152 62 214;\n --oui-color-primary-contrast: 255 255 255;\n --oui-color-link: 182 79 255;\n --oui-color-link-light: 208 140 255;\n --oui-color-secondary: 255 255 255;\n --oui-color-tertiary: 218 218 218;\n --oui-color-quaternary: 218 218 218;\n --oui-color-danger: 255 68 124;\n --oui-color-danger-light: 255 68 124;\n --oui-color-danger-darken: 157 32 77;\n --oui-color-danger-contrast: 255 255 255;\n --oui-color-success: 0 180 158;\n --oui-color-success-light: 15 203 180;\n --oui-color-success-darken: 3 152 134;\n --oui-color-success-contrast: 255 255 255;\n --oui-color-warning: 210 95 0;\n --oui-color-warning-light: 255 207 115;\n --oui-color-warning-darken: 117 88 33;\n --oui-color-warning-contrast: 255 255 255;\n --oui-color-fill: 36 32 47;\n --oui-color-fill-active: 40 46 58;\n --oui-color-base-1: 83 94 123;\n --oui-color-base-2: 74 83 105;\n --oui-color-base-3: 57 65 85;\n --oui-color-base-4: 51 57 72;\n --oui-color-base-5: 40 46 58;\n --oui-color-base-6: 32 37 47;\n --oui-color-base-7: 27 32 40;\n --oui-color-base-8: 24 28 35;\n --oui-color-base-9: 19 21 25;\n --oui-color-base-10: 7 8 10;\n --oui-color-base-foreground: 255 255 255;\n --oui-color-line: 255 255 255;\n --oui-color-trading-loss: 255 68 124;\n --oui-color-trading-loss-contrast: 255 255 255;\n --oui-color-trading-profit: 0 180 158;\n --oui-color-trading-profit-contrast: 255 255 255;\n --oui-gradient-primary-start: 96 140 255;\n --oui-gradient-primary-end: 24 40 195;\n --oui-gradient-secondary-start: 189 107 237;\n --oui-gradient-secondary-end: 45 0 97;\n --oui-gradient-success-start: 0 180 158;\n --oui-gradient-success-end: 0 90 79;\n --oui-gradient-danger-start: 255 68 124;\n --oui-gradient-danger-end: 121 20 56;\n --oui-gradient-warning-start: 255 182 93;\n --oui-gradient-warning-end: 121 46 0;\n --oui-gradient-neutral-start: 38 41 46;\n --oui-gradient-neutral-end: 27 29 34;\n --oui-gradient-brand-start: 38 254 255;\n --oui-gradient-brand-end: 89 176 254;\n --oui-spacing-sm: 22.5rem;\n --oui-spacing-md: 26.25rem;\n --oui-spacing-lg: 30rem;\n --oui-spacing-xl: 33.75rem;\n}\n\nhtml {\n background-color: rgb(var(--oui-color-base-10));\n color: rgb(var(--oui-color-base-foreground) / 0.98);\n font-family: var(--oui-font-family);\n}\n\nbody {\n background-color: rgb(var(--oui-color-base-10));\n color: rgb(var(--oui-color-base-foreground) / 0.98);\n font-family: var(--oui-font-family);\n}\n.oui-size-height {\n height: var(--oui-height, unset);\n}\n.oui-size-width {\n width: var(--oui-width, unset);\n}\n.xAxis .recharts-cartesian-axis-tick:first-child text {\n text-anchor: start;\n}\n.xAxis .recharts-cartesian-axis-tick:last-child text {\n text-anchor: end;\n}\n.oui-position {\n left: var(--oui-left, unset);\n top: var(--oui-top, unset);\n right: var(--oui-right, unset);\n bottom: var(--oui-bottom, unset);\n}\n.oui-card {\n color: red;\n}\n.oui-card:has(.oui-header-list) {\n padding-top: 0px;\n padding-bottom: 0px;\n}\n.oui-hide-scrollbar::-webkit-scrollbar {\n display: none;\n}\n.oui-hide-scrollbar::-webkit-scrollbar-thumb {\n display: none;\n}\n.oui-scrollbar-vertical::-webkit-scrollbar {\n width: 4px;\n}\n.oui-scrollbar-vertical::-webkit-scrollbar-thumb {\n border-radius: 2px;\n border-style: dashed;\n border-color: transparent;\n border-width: 1px;\n background: rgba(255,255,255,0.04);\n background-clip: padding-box;\n}\n.oui-scrollbar-vertical::-webkit-scrollbar-thumb:hover {\n background: rgba(255,255,255,0.08);\n border-radius: 3px;\n}\n.oui-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n.oui-pointer-events-none {\n pointer-events: none;\n}\n.oui-visible {\n visibility: visible;\n}\n.oui-invisible {\n visibility: hidden;\n}\n.oui-static {\n position: static;\n}\n.oui-fixed {\n position: fixed;\n}\n.oui-absolute {\n position: absolute;\n}\n.oui-relative {\n position: relative;\n}\n.oui-sticky {\n position: sticky;\n}\n.oui-inset-0 {\n inset: 0px;\n}\n.oui-inset-x-0 {\n left: 0px;\n right: 0px;\n}\n.oui-inset-y-0 {\n top: 0px;\n bottom: 0px;\n}\n.oui--bottom-12 {\n bottom: -3rem;\n}\n.oui--left-12 {\n left: -3rem;\n}\n.oui--right-12 {\n right: -3rem;\n}\n.oui--top-12 {\n top: -3rem;\n}\n.oui-bottom-0 {\n bottom: 0px;\n}\n.oui-bottom-1 {\n bottom: 0.25rem;\n}\n.oui-left-0 {\n left: 0px;\n}\n.oui-left-1 {\n left: 0.25rem;\n}\n.oui-left-1\\/2 {\n left: 50%;\n}\n.oui-left-\\[-100\\%\\] {\n left: -100%;\n}\n.oui-left-\\[-8px\\] {\n left: -8px;\n}\n.oui-left-\\[50\\%\\] {\n left: 50%;\n}\n.oui-right-0 {\n right: 0px;\n}\n.oui-right-1 {\n right: 0.25rem;\n}\n.oui-right-2 {\n right: 0.5rem;\n}\n.oui-right-4 {\n right: 1rem;\n}\n.oui-right-\\[-100\\%\\] {\n right: -100%;\n}\n.oui-right-\\[24px\\] {\n right: 24px;\n}\n.oui-top-0 {\n top: 0px;\n}\n.oui-top-1 {\n top: 0.25rem;\n}\n.oui-top-1\\/2 {\n top: 50%;\n}\n.oui-top-2\\/4 {\n top: 50%;\n}\n.oui-top-4 {\n top: 1rem;\n}\n.oui-top-\\[-300px\\] {\n top: -300px;\n}\n.oui-top-\\[16px\\] {\n top: 16px;\n}\n.oui-top-\\[1px\\] {\n top: 1px;\n}\n.oui-top-\\[24px\\] {\n top: 24px;\n}\n.oui-top-\\[3px\\] {\n top: 3px;\n}\n.oui-top-\\[50\\%\\] {\n top: 50%;\n}\n.oui-z-0 {\n z-index: 0;\n}\n.oui-z-10 {\n z-index: 10;\n}\n.oui-z-20 {\n z-index: 20;\n}\n.oui-z-30 {\n z-index: 30;\n}\n.oui-z-40 {\n z-index: 40;\n}\n.oui-z-50 {\n z-index: 50;\n}\n.oui-z-auto {\n z-index: auto;\n}\n.oui-col-auto {\n grid-column: auto;\n}\n.oui-col-span-1 {\n grid-column: span 1 / span 1;\n}\n.oui-col-span-2 {\n grid-column: span 2 / span 2;\n}\n.oui-col-span-3 {\n grid-column: span 3 / span 3;\n}\n.oui-col-span-4 {\n grid-column: span 4 / span 4;\n}\n.oui-col-span-5 {\n grid-column: span 5 / span 5;\n}\n.oui-col-span-6 {\n grid-column: span 6 / span 6;\n}\n.oui-col-span-7 {\n grid-column: span 7 / span 7;\n}\n.oui-col-span-8 {\n grid-column: span 8 / span 8;\n}\n.oui-col-span-9 {\n grid-column: span 9 / span 9;\n}\n.oui-row-auto {\n grid-row: auto;\n}\n.oui-row-span-1 {\n grid-row: span 1 / span 1;\n}\n.oui-row-span-2 {\n grid-row: span 2 / span 2;\n}\n.oui-row-span-3 {\n grid-row: span 3 / span 3;\n}\n.oui-row-span-4 {\n grid-row: span 4 / span 4;\n}\n.oui-row-span-5 {\n grid-row: span 5 / span 5;\n}\n.oui-row-span-6 {\n grid-row: span 6 / span 6;\n}\n.oui-row-span-7 {\n grid-row: span 7 / span 7;\n}\n.oui-row-span-8 {\n grid-row: span 8 / span 8;\n}\n.oui-row-span-9 {\n grid-row: span 9 / span 9;\n}\n.oui-m-0 {\n margin: 0px;\n}\n.oui-m-1 {\n margin: 0.25rem;\n}\n.oui-m-10 {\n margin: 2.5rem;\n}\n.oui-m-2 {\n margin: 0.5rem;\n}\n.oui-m-3 {\n margin: 0.75rem;\n}\n.oui-m-4 {\n margin: 1rem;\n}\n.oui-m-5 {\n margin: 1.25rem;\n}\n.oui-m-6 {\n margin: 1.5rem;\n}\n.oui-m-7 {\n margin: 1.75rem;\n}\n.oui-m-8 {\n margin: 2rem;\n}\n.oui-m-9 {\n margin: 2.25rem;\n}\n.-oui-mx-1 {\n margin-left: -0.25rem;\n margin-right: -0.25rem;\n}\n.oui-mx-0 {\n margin-left: 0px;\n margin-right: 0px;\n}\n.oui-mx-1 {\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n}\n.oui-mx-10 {\n margin-left: 2.5rem;\n margin-right: 2.5rem;\n}\n.oui-mx-11 {\n margin-left: 2.75rem;\n margin-right: 2.75rem;\n}\n.oui-mx-2 {\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n}\n.oui-mx-3 {\n margin-left: 0.75rem;\n margin-right: 0.75rem;\n}\n.oui-mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n.oui-mx-5 {\n margin-left: 1.25rem;\n margin-right: 1.25rem;\n}\n.oui-mx-6 {\n margin-left: 1.5rem;\n margin-right: 1.5rem;\n}\n.oui-mx-7 {\n margin-left: 1.75rem;\n margin-right: 1.75rem;\n}\n.oui-mx-8 {\n margin-left: 2rem;\n margin-right: 2rem;\n}\n.oui-mx-9 {\n margin-left: 2.25rem;\n margin-right: 2.25rem;\n}\n.oui-my-0 {\n margin-top: 0px;\n margin-bottom: 0px;\n}\n.oui-my-1 {\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n}\n.oui-my-10 {\n margin-top: 2.5rem;\n margin-bottom: 2.5rem;\n}\n.oui-my-2 {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.oui-my-3 {\n margin-top: 0.75rem;\n margin-bottom: 0.75rem;\n}\n.oui-my-4 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n.oui-my-5 {\n margin-top: 1.25rem;\n margin-bottom: 1.25rem;\n}\n.oui-my-6 {\n margin-top: 1.5rem;\n margin-bottom: 1.5rem;\n}\n.oui-my-7 {\n margin-top: 1.75rem;\n margin-bottom: 1.75rem;\n}\n.oui-my-8 {\n margin-top: 2rem;\n margin-bottom: 2rem;\n}\n.oui-my-9 {\n margin-top: 2.25rem;\n margin-bottom: 2.25rem;\n}\n.oui--ml-4 {\n margin-left: -1rem;\n}\n.oui--mt-4 {\n margin-top: -1rem;\n}\n.oui-mb-0 {\n margin-bottom: 0px;\n}\n.oui-mb-1 {\n margin-bottom: 0.25rem;\n}\n.oui-mb-10 {\n margin-bottom: 2.5rem;\n}\n.oui-mb-2 {\n margin-bottom: 0.5rem;\n}\n.oui-mb-3 {\n margin-bottom: 0.75rem;\n}\n.oui-mb-4 {\n margin-bottom: 1rem;\n}\n.oui-mb-5 {\n margin-bottom: 1.25rem;\n}\n.oui-mb-6 {\n margin-bottom: 1.5rem;\n}\n.oui-mb-7 {\n margin-bottom: 1.75rem;\n}\n.oui-mb-8 {\n margin-bottom: 2rem;\n}\n.oui-mb-9 {\n margin-bottom: 2.25rem;\n}\n.oui-mb-\\[10px\\] {\n margin-bottom: 10px;\n}\n.oui-mb-\\[32px\\] {\n margin-bottom: 32px;\n}\n.oui-mb-\\[3px\\] {\n margin-bottom: 3px;\n}\n.oui-ml-0 {\n margin-left: 0px;\n}\n.oui-ml-1 {\n margin-left: 0.25rem;\n}\n.oui-ml-10 {\n margin-left: 2.5rem;\n}\n.oui-ml-2 {\n margin-left: 0.5rem;\n}\n.oui-ml-3 {\n margin-left: 0.75rem;\n}\n.oui-ml-4 {\n margin-left: 1rem;\n}\n.oui-ml-5 {\n margin-left: 1.25rem;\n}\n.oui-ml-6 {\n margin-left: 1.5rem;\n}\n.oui-ml-7 {\n margin-left: 1.75rem;\n}\n.oui-ml-8 {\n margin-left: 2rem;\n}\n.oui-ml-9 {\n margin-left: 2.25rem;\n}\n.oui-ml-auto {\n margin-left: auto;\n}\n.oui-mr-0 {\n margin-right: 0px;\n}\n.oui-mr-1 {\n margin-right: 0.25rem;\n}\n.oui-mr-10 {\n margin-right: 2.5rem;\n}\n.oui-mr-2 {\n margin-right: 0.5rem;\n}\n.oui-mr-3 {\n margin-right: 0.75rem;\n}\n.oui-mr-4 {\n margin-right: 1rem;\n}\n.oui-mr-5 {\n margin-right: 1.25rem;\n}\n.oui-mr-6 {\n margin-right: 1.5rem;\n}\n.oui-mr-7 {\n margin-right: 1.75rem;\n}\n.oui-mr-8 {\n margin-right: 2rem;\n}\n.oui-mr-9 {\n margin-right: 2.25rem;\n}\n.oui-mt-0 {\n margin-top: 0px;\n}\n.oui-mt-1 {\n margin-top: 0.25rem;\n}\n.oui-mt-10 {\n margin-top: 2.5rem;\n}\n.oui-mt-2 {\n margin-top: 0.5rem;\n}\n.oui-mt-3 {\n margin-top: 0.75rem;\n}\n.oui-mt-4 {\n margin-top: 1rem;\n}\n.oui-mt-5 {\n margin-top: 1.25rem;\n}\n.oui-mt-6 {\n margin-top: 1.5rem;\n}\n.oui-mt-7 {\n margin-top: 1.75rem;\n}\n.oui-mt-8 {\n margin-top: 2rem;\n}\n.oui-mt-9 {\n margin-top: 2.25rem;\n}\n.oui-mt-\\[-1px\\] {\n margin-top: -1px;\n}\n.oui-mt-\\[1px\\] {\n margin-top: 1px;\n}\n.oui-mt-\\[2px\\] {\n margin-top: 2px;\n}\n.oui-mt-\\[6px\\] {\n margin-top: 6px;\n}\n.oui-box-border {\n box-sizing: border-box;\n}\n.oui-box-content {\n box-sizing: content-box;\n}\n.oui-line-clamp-5 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 5;\n}\n.oui-block {\n display: block;\n}\n.oui-inline-block {\n display: inline-block;\n}\n.oui-flex {\n display: flex;\n}\n.oui-inline-flex {\n display: inline-flex;\n}\n.oui-table-caption {\n display: table-caption;\n}\n.oui-grid {\n display: grid;\n}\n.oui-inline-grid {\n display: inline-grid;\n}\n.oui-list-item {\n display: list-item;\n}\n.oui-hidden {\n display: none;\n}\n.oui-aspect-square {\n aspect-ratio: 1 / 1;\n}\n.oui-h-1 {\n height: 0.25rem;\n}\n.oui-h-1\\.5 {\n height: 0.375rem;\n}\n.oui-h-10 {\n height: 2.5rem;\n}\n.oui-h-12 {\n height: 3rem;\n}\n.oui-h-13 {\n height: 3.25rem;\n}\n.oui-h-2 {\n height: 0.5rem;\n}\n.oui-h-3 {\n height: 0.75rem;\n}\n.oui-h-4 {\n height: 1rem;\n}\n.oui-h-5 {\n height: 1.25rem;\n}\n.oui-h-6 {\n height: 1.5rem;\n}\n.oui-h-7 {\n height: 1.75rem;\n}\n.oui-h-8 {\n height: 2rem;\n}\n.oui-h-9 {\n height: 2.25rem;\n}\n.oui-h-\\[100px\\] {\n height: 100px;\n}\n.oui-h-\\[10px\\] {\n height: 10px;\n}\n.oui-h-\\[13px\\] {\n height: 13px;\n}\n.oui-h-\\[14px\\] {\n height: 14px;\n}\n.oui-h-\\[168px\\] {\n height: 168px;\n}\n.oui-h-\\[16px\\] {\n height: 16px;\n}\n.oui-h-\\[170px\\] {\n height: 170px;\n}\n.oui-h-\\[188px\\] {\n height: 188px;\n}\n.oui-h-\\[18px\\] {\n height: 18px;\n}\n.oui-h-\\[197px\\] {\n height: 197px;\n}\n.oui-h-\\[1px\\] {\n height: 1px;\n}\n.oui-h-\\[200px\\] {\n height: 200px;\n}\n.oui-h-\\[20px\\] {\n height: 20px;\n}\n.oui-h-\\[22px\\] {\n height: 22px;\n}\n.oui-h-\\[240px\\] {\n height: 240px;\n}\n.oui-h-\\[24px\\] {\n height: 24px;\n}\n.oui-h-\\[28px\\] {\n height: 28px;\n}\n.oui-h-\\[2px\\] {\n height: 2px;\n}\n.oui-h-\\[30px\\] {\n height: 30px;\n}\n.oui-h-\\[32px\\] {\n height: 32px;\n}\n.oui-h-\\[360px\\] {\n height: 360px;\n}\n.oui-h-\\[40px\\] {\n height: 40px;\n}\n.oui-h-\\[44px\\] {\n height: 44px;\n}\n.oui-h-\\[46px\\] {\n height: 46px;\n}\n.oui-h-\\[48px\\] {\n height: 48px;\n}\n.oui-h-\\[4px\\] {\n height: 4px;\n}\n.oui-h-\\[52px\\] {\n height: 52px;\n}\n.oui-h-\\[54px\\] {\n height: 54px;\n}\n.oui-h-\\[55px\\] {\n height: 55px;\n}\n.oui-h-\\[6px\\] {\n height: 6px;\n}\n.oui-h-\\[8\\.3px\\] {\n height: 8.3px;\n}\n.oui-h-\\[8px\\] {\n height: 8px;\n}\n.oui-h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n}\n.oui-h-auto {\n height: auto;\n}\n.oui-h-dvh {\n height: 100dvh;\n}\n.oui-h-full {\n height: 100%;\n}\n.oui-h-px {\n height: 1px;\n}\n.oui-max-h-96 {\n max-height: 24rem;\n}\n.oui-max-h-\\[100px\\] {\n max-height: 100px;\n}\n.oui-max-h-\\[104px\\] {\n max-height: 104px;\n}\n.oui-max-h-\\[200px\\] {\n max-height: 200px;\n}\n.oui-max-h-\\[240px\\] {\n max-height: 240px;\n}\n.oui-max-h-\\[254px\\] {\n max-height: 254px;\n}\n.oui-max-h-\\[356px\\] {\n max-height: 356px;\n}\n.oui-max-h-full {\n max-height: 100%;\n}\n.\\!oui-min-h-\\[187\\.5px\\] {\n min-height: 187.5px !important;\n}\n.oui-min-h-11 {\n min-height: 2.75rem;\n}\n.oui-min-h-\\[170px\\] {\n min-height: 170px;\n}\n.oui-min-h-\\[180px\\] {\n min-height: 180px;\n}\n.oui-min-h-\\[420px\\] {\n min-height: 420px;\n}\n.oui-min-h-\\[48px\\] {\n min-height: 48px;\n}\n.oui-w-1 {\n width: 0.25rem;\n}\n.oui-w-1\\/2 {\n width: 50%;\n}\n.oui-w-1\\/4 {\n width: 25%;\n}\n.oui-w-1\\/5 {\n width: 20%;\n}\n.oui-w-10 {\n width: 2.5rem;\n}\n.oui-w-12 {\n width: 3rem;\n}\n.oui-w-14 {\n width: 3.5rem;\n}\n.oui-w-2 {\n width: 0.5rem;\n}\n.oui-w-24 {\n width: 6rem;\n}\n.oui-w-3 {\n width: 0.75rem;\n}\n.oui-w-3\\.5 {\n width: 0.875rem;\n}\n.oui-w-3\\/4 {\n width: 75%;\n}\n.oui-w-4 {\n width: 1rem;\n}\n.oui-w-5 {\n width: 1.25rem;\n}\n.oui-w-6 {\n width: 1.5rem;\n}\n.oui-w-7 {\n width: 1.75rem;\n}\n.oui-w-72 {\n width: 18rem;\n}\n.oui-w-8 {\n width: 2rem;\n}\n.oui-w-9 {\n width: 2.25rem;\n}\n.oui-w-\\[100\\%\\] {\n width: 100%;\n}\n.oui-w-\\[10px\\] {\n width: 10px;\n}\n.oui-w-\\[120px\\] {\n width: 120px;\n}\n.oui-w-\\[13px\\] {\n width: 13px;\n}\n.oui-w-\\[14px\\] {\n width: 14px;\n}\n.oui-w-\\[154px\\] {\n width: 154px;\n}\n.oui-w-\\[162px\\] {\n width: 162px;\n}\n.oui-w-\\[16px\\] {\n width: 16px;\n}\n.oui-w-\\[18px\\] {\n width: 18px;\n}\n.oui-w-\\[1px\\] {\n width: 1px;\n}\n.oui-w-\\[20px\\] {\n width: 20px;\n}\n.oui-w-\\[240px\\] {\n width: 240px;\n}\n.oui-w-\\[260px\\] {\n width: 260px;\n}\n.oui-w-\\[300px\\] {\n width: 300px;\n}\n.oui-w-\\[320px\\] {\n width: 320px;\n}\n.oui-w-\\[32px\\] {\n width: 32px;\n}\n.oui-w-\\[360px\\] {\n width: 360px;\n}\n.oui-w-\\[40px\\] {\n width: 40px;\n}\n.oui-w-\\[4px\\] {\n width: 4px;\n}\n.oui-w-\\[6px\\] {\n width: 6px;\n}\n.oui-w-\\[8\\.3px\\] {\n width: 8.3px;\n}\n.oui-w-\\[96px\\] {\n width: 96px;\n}\n.oui-w-\\[calc\\(50\\%-6px\\)\\] {\n width: calc(50% - 6px);\n}\n.oui-w-\\[var\\(--radix-dropdown-menu-trigger-width\\)\\] {\n width: var(--radix-dropdown-menu-trigger-width);\n}\n.oui-w-\\[var\\(_--radix-popover-trigger-width\\)\\] {\n width: var( --radix-popover-trigger-width);\n}\n.oui-w-auto {\n width: auto;\n}\n.oui-w-full {\n width: 100%;\n}\n.oui-min-w-0 {\n min-width: 0px;\n}\n.oui-min-w-11 {\n min-width: 2.75rem;\n}\n.oui-min-w-14 {\n min-width: 3.5rem;\n}\n.oui-min-w-24 {\n min-width: 6rem;\n}\n.oui-min-w-6 {\n min-width: 1.5rem;\n}\n.oui-min-w-\\[102px\\] {\n min-width: 102px;\n}\n.oui-min-w-\\[105px\\] {\n min-width: 105px;\n}\n.oui-min-w-\\[120px\\] {\n min-width: 120px;\n}\n.oui-min-w-\\[180px\\] {\n min-width: 180px;\n}\n.oui-min-w-\\[184px\\] {\n min-width: 184px;\n}\n.oui-min-w-\\[204px\\] {\n min-width: 204px;\n}\n.oui-min-w-\\[30px\\] {\n min-width: 30px;\n}\n.oui-min-w-\\[70px\\] {\n min-width: 70px;\n}\n.oui-min-w-\\[80px\\] {\n min-width: 80px;\n}\n.oui-min-w-\\[8rem\\] {\n min-width: 8rem;\n}\n.oui-min-w-\\[96px\\] {\n min-width: 96px;\n}\n.oui-min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n}\n.\\!oui-max-w-\\[624px\\] {\n max-width: 624px !important;\n}\n.oui-max-w-\\[110px\\] {\n max-width: 110px;\n}\n.oui-max-w-\\[200px\\] {\n max-width: 200px;\n}\n.oui-max-w-\\[240px\\] {\n max-width: 240px;\n}\n.oui-max-w-\\[270px\\] {\n max-width: 270px;\n}\n.oui-max-w-\\[274px\\] {\n max-width: 274px;\n}\n.oui-max-w-\\[300px\\] {\n max-width: 300px;\n}\n.oui-max-w-\\[320px\\] {\n max-width: 320px;\n}\n.oui-max-w-\\[396px\\] {\n max-width: 396px;\n}\n.oui-max-w-\\[400px\\] {\n max-width: 400px;\n}\n.oui-max-w-\\[960px\\] {\n max-width: 960px;\n}\n.oui-max-w-fit {\n max-width: -moz-fit-content;\n max-width: fit-content;\n}\n.oui-max-w-full {\n max-width: 100%;\n}\n.oui-max-w-lg {\n max-width: var(--oui-spacing-lg, 30rem);\n}\n.oui-max-w-md {\n max-width: var(--oui-spacing-md, 26.25rem);\n}\n.oui-max-w-sm {\n max-width: var(--oui-spacing-sm, 22.5rem);\n}\n.oui-max-w-xl {\n max-width: var(--oui-spacing-xl, 33.75rem);\n}\n.oui-flex-1 {\n flex: 1 1 0%;\n}\n.oui-flex-\\[0_0_calc\\(\\(100\\%_-_32px\\)_\\/_3\\)\\] {\n flex: 0 0 calc((100% - 32px) / 3);\n}\n.oui-flex-shrink {\n flex-shrink: 1;\n}\n.oui-flex-shrink-0 {\n flex-shrink: 0;\n}\n.oui-shrink-0 {\n flex-shrink: 0;\n}\n.oui-grow {\n flex-grow: 1;\n}\n.oui-grow-0 {\n flex-grow: 0;\n}\n.oui-basis-1\\/2 {\n flex-basis: 50%;\n}\n.oui-basis-5\\/12 {\n flex-basis: 41.666667%;\n}\n.oui-basis-7\\/12 {\n flex-basis: 58.333333%;\n}\n.oui-basis-full {\n flex-basis: 100%;\n}\n.oui-table-fixed {\n table-layout: fixed;\n}\n.oui-caption-bottom {\n caption-side: bottom;\n}\n.oui-border-collapse {\n border-collapse: collapse;\n}\n.oui-origin-top-left {\n transform-origin: top left;\n}\n.-oui-translate-x-1\\/2 {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.-oui-translate-y-2\\/4 {\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.oui--translate-x-1\\/2 {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.oui--translate-y-1\\/2 {\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.oui-translate-x-\\[-50\\%\\] {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.oui-translate-y-1 {\n --tw-translate-y: 0.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.oui-translate-y-\\[-50\\%\\] {\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.oui-rotate-180 {\n --tw-rotate: 180deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.oui-rotate-90 {\n --tw-rotate: 90deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.oui-transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n@keyframes oui-rotate {\n\n 0% {\n transform: rotate(0deg);\n }\n\n 50% {\n transform: rotate(240deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n}\n.oui-animate-rotate-360 {\n animation: oui-rotate 1s linear infinite;\n}\n@keyframes oui-spin {\n\n to {\n transform: rotate(360deg);\n }\n}\n.oui-animate-spin {\n animation: oui-spin 1s linear infinite;\n}\n.oui-cursor-auto {\n cursor: auto;\n}\n.oui-cursor-default {\n cursor: default;\n}\n.oui-cursor-not-allowed {\n cursor: not-allowed;\n}\n.oui-cursor-pointer {\n cursor: pointer;\n}\n.oui-touch-none {\n touch-action: none;\n}\n.oui-select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.oui-list-inside {\n list-style-position: inside;\n}\n.oui-list-disc {\n list-style-type: disc;\n}\n.oui-grid-flow-row {\n grid-auto-flow: row;\n}\n.oui-grid-flow-col {\n grid-auto-flow: column;\n}\n.oui-grid-flow-row-dense {\n grid-auto-flow: row dense;\n}\n.oui-grid-flow-col-dense {\n grid-auto-flow: column dense;\n}\n.oui-auto-rows-fr {\n grid-auto-rows: minmax(0, 1fr);\n}\n.oui-grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n.oui-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.oui-grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n.oui-grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.oui-grid-cols-5 {\n grid-template-columns: repeat(5, minmax(0, 1fr));\n}\n.oui-grid-cols-6 {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n}\n.oui-grid-cols-7 {\n grid-template-columns: repeat(7, minmax(0, 1fr));\n}\n.oui-grid-cols-8 {\n grid-template-columns: repeat(8, minmax(0, 1fr));\n}\n.oui-grid-cols-9 {\n grid-template-columns: repeat(9, minmax(0, 1fr));\n}\n.oui-grid-cols-\\[40px_1fr_40px\\] {\n grid-template-columns: 40px 1fr 40px;\n}\n.oui-grid-cols-none {\n grid-template-columns: none;\n}\n.oui-grid-rows-1 {\n grid-template-rows: repeat(1, minmax(0, 1fr));\n}\n.oui-grid-rows-2 {\n grid-template-rows: repeat(2, minmax(0, 1fr));\n}\n.oui-grid-rows-3 {\n grid-template-rows: repeat(3, minmax(0, 1fr));\n}\n.oui-grid-rows-4 {\n grid-template-rows: repeat(4, minmax(0, 1fr));\n}\n.oui-grid-rows-5 {\n grid-template-rows: repeat(5, minmax(0, 1fr));\n}\n.oui-grid-rows-6 {\n grid-template-rows: repeat(6, minmax(0, 1fr));\n}\n.oui-grid-rows-7 {\n grid-template-rows: repeat(7, minmax(0, 1fr));\n}\n.oui-grid-rows-8 {\n grid-template-rows: repeat(8, minmax(0, 1fr));\n}\n.oui-grid-rows-9 {\n grid-template-rows: repeat(9, minmax(0, 1fr));\n}\n.oui-grid-rows-none {\n grid-template-rows: none;\n}\n.oui-flex-row {\n flex-direction: row;\n}\n.oui-flex-row-reverse {\n flex-direction: row-reverse;\n}\n.oui-flex-col {\n flex-direction: column;\n}\n.oui-flex-col-reverse {\n flex-direction: column-reverse;\n}\n.oui-flex-wrap {\n flex-wrap: wrap;\n}\n.oui-flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n}\n.oui-flex-nowrap {\n flex-wrap: nowrap;\n}\n.oui-items-start {\n align-items: flex-start;\n}\n.oui-items-end {\n align-items: flex-end;\n}\n.oui-items-center {\n align-items: center;\n}\n.oui-items-baseline {\n align-items: baseline;\n}\n.oui-items-stretch {\n align-items: stretch;\n}\n.oui-justify-start {\n justify-content: flex-start;\n}\n.oui-justify-end {\n justify-content: flex-end;\n}\n.oui-justify-center {\n justify-content: center;\n}\n.oui-justify-between {\n justify-content: space-between;\n}\n.oui-justify-around {\n justify-content: space-around;\n}\n.oui-justify-evenly {\n justify-content: space-evenly;\n}\n.oui-justify-stretch {\n justify-content: stretch;\n}\n.oui-gap-0 {\n gap: 0px;\n}\n.oui-gap-1 {\n gap: 0.25rem;\n}\n.oui-gap-10 {\n gap: 2.5rem;\n}\n.oui-gap-2 {\n gap: 0.5rem;\n}\n.oui-gap-3 {\n gap: 0.75rem;\n}\n.oui-gap-4 {\n gap: 1rem;\n}\n.oui-gap-5 {\n gap: 1.25rem;\n}\n.oui-gap-6 {\n gap: 1.5rem;\n}\n.oui-gap-8 {\n gap: 2rem;\n}\n.oui-gap-\\[1px\\] {\n gap: 1px;\n}\n.oui-gap-\\[2px\\] {\n gap: 2px;\n}\n.oui-gap-\\[6px\\] {\n gap: 6px;\n}\n.oui-gap-x-0 {\n -moz-column-gap: 0px;\n column-gap: 0px;\n}\n.oui-gap-x-1 {\n -moz-column-gap: 0.25rem;\n column-gap: 0.25rem;\n}\n.oui-gap-x-10 {\n -moz-column-gap: 2.5rem;\n column-gap: 2.5rem;\n}\n.oui-gap-x-2 {\n -moz-column-gap: 0.5rem;\n column-gap: 0.5rem;\n}\n.oui-gap-x-3 {\n -moz-column-gap: 0.75rem;\n column-gap: 0.75rem;\n}\n.oui-gap-x-4 {\n -moz-column-gap: 1rem;\n column-gap: 1rem;\n}\n.oui-gap-x-5 {\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n}\n.oui-gap-x-6 {\n -moz-column-gap: 1.5rem;\n column-gap: 1.5rem;\n}\n.oui-gap-x-8 {\n -moz-column-gap: 2rem;\n column-gap: 2rem;\n}\n.oui-gap-x-\\[6px\\] {\n -moz-column-gap: 6px;\n column-gap: 6px;\n}\n.oui-gap-y-0 {\n row-gap: 0px;\n}\n.oui-gap-y-1 {\n row-gap: 0.25rem;\n}\n.oui-gap-y-10 {\n row-gap: 2.5rem;\n}\n.oui-gap-y-2 {\n row-gap: 0.5rem;\n}\n.oui-gap-y-3 {\n row-gap: 0.75rem;\n}\n.oui-gap-y-4 {\n row-gap: 1rem;\n}\n.oui-gap-y-5 {\n row-gap: 1.25rem;\n}\n.oui-gap-y-6 {\n row-gap: 1.5rem;\n}\n.oui-gap-y-8 {\n row-gap: 2rem;\n}\n.oui-space-x-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.25rem * var(--tw-space-x-reverse));\n margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.oui-space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.oui-space-x-3 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.75rem * var(--tw-space-x-reverse));\n margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.oui-space-x-6 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(1.5rem * var(--tw-space-x-reverse));\n margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.oui-space-x-\\[6px\\] > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(6px * var(--tw-space-x-reverse));\n margin-left: calc(6px * calc(1 - var(--tw-space-x-reverse)));\n}\n.oui-space-y-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));\n}\n.oui-space-y-1\\.5 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));\n}\n.oui-space-y-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.oui-space-y-3 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));\n}\n.oui-space-y-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n}\n.oui-space-y-5 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));\n}\n.oui-space-y-8 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(2rem * var(--tw-space-y-reverse));\n}\n.oui-space-y-\\[2px\\] > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(2px * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(2px * var(--tw-space-y-reverse));\n}\n.oui-overflow-auto {\n overflow: auto;\n}\n.oui-overflow-hidden {\n overflow: hidden;\n}\n.oui-overflow-x-auto {\n overflow-x: auto;\n}\n.oui-overflow-y-auto {\n overflow-y: auto;\n}\n.oui-overflow-ellipsis {\n text-overflow: ellipsis;\n}\n.oui-text-ellipsis {\n text-overflow: ellipsis;\n}\n.oui-whitespace-nowrap {\n white-space: nowrap;\n}\n.oui-text-nowrap {\n text-wrap: nowrap;\n}\n.oui-break-normal {\n overflow-wrap: normal;\n word-break: normal;\n}\n.oui-break-all {\n word-break: break-all;\n}\n.oui-rounded {\n border-radius: 0.25rem;\n}\n.oui-rounded-2xl {\n border-radius: 1rem;\n}\n.oui-rounded-\\[4px\\] {\n border-radius: 4px;\n}\n.oui-rounded-\\[6px\\] {\n border-radius: 6px;\n}\n.oui-rounded-\\[inherit\\] {\n border-radius: inherit;\n}\n.oui-rounded-full {\n border-radius: 9999px;\n}\n.oui-rounded-lg {\n border-radius: 0.5rem;\n}\n.oui-rounded-md {\n border-radius: 0.375rem;\n}\n.oui-rounded-none {\n border-radius: 0px;\n}\n.oui-rounded-sm {\n border-radius: 0.125rem;\n}\n.oui-rounded-xl {\n border-radius: 0.75rem;\n}\n.oui-rounded-b-sm {\n border-bottom-right-radius: 0.125rem;\n border-bottom-left-radius: 0.125rem;\n}\n.oui-rounded-b-xl {\n border-bottom-right-radius: 0.75rem;\n border-bottom-left-radius: 0.75rem;\n}\n.oui-rounded-t-2xl {\n border-top-left-radius: 1rem;\n border-top-right-radius: 1rem;\n}\n.oui-rounded-t-sm {\n border-top-left-radius: 0.125rem;\n border-top-right-radius: 0.125rem;\n}\n.oui-rounded-t-xl {\n border-top-left-radius: 0.75rem;\n border-top-right-radius: 0.75rem;\n}\n.oui-border {\n border-width: 1px;\n}\n.oui-border-0 {\n border-width: 0px;\n}\n.oui-border-2 {\n border-width: 2px;\n}\n.oui-border-\\[1px\\] {\n border-width: 1px;\n}\n.oui-border-\\[2px\\] {\n border-width: 2px;\n}\n.oui-border-y-2 {\n border-top-width: 2px;\n border-bottom-width: 2px;\n}\n.oui-border-b {\n border-bottom-width: 1px;\n}\n.oui-border-b-2 {\n border-bottom-width: 2px;\n}\n.oui-border-l {\n border-left-width: 1px;\n}\n.oui-border-t {\n border-top-width: 1px;\n}\n.oui-border-t-2 {\n border-top-width: 2px;\n}\n.oui-border-solid {\n border-style: solid;\n}\n.oui-border-dashed {\n border-style: dashed;\n}\n.oui-border-dotted {\n border-style: dotted;\n}\n.oui-border-none {\n border-style: none;\n}\n.oui-border-base-2 {\n --tw-border-opacity: 1;\n border-color: rgb(var(--oui-color-base-2) / var(--tw-border-opacity));\n}\n.oui-border-base-4 {\n --tw-border-opacity: 1;\n border-color: rgb(var(--oui-color-base-4) / var(--tw-border-opacity));\n}\n.oui-border-base-6 {\n --tw-border-opacity: 1;\n border-color: rgb(var(--oui-color-base-6) / var(--tw-border-opacity));\n}\n.oui-border-base-contrast\\/10 {\n border-color: rgb(var(--oui-color-base-foreground) / 0.1);\n}\n.oui-border-danger {\n --tw-border-opacity: 1;\n border-color: rgb(var(--oui-color-danger) / var(--tw-border-opacity));\n}\n.oui-border-line {\n border-color: rgb(var(--oui-color-line, 255 255 255) / 0.08);\n}\n.oui-border-line-12 {\n border-color: rgb(var(--oui-color-line, 255 255 255) / 0.12);\n}\n.oui-border-line-16 {\n border-color: rgb(var(--oui-color-line, 255 255 255) / 0.16);\n}\n.oui-border-line-4 {\n border-color: rgb(var(--oui-color-line, 255 255 255) / 0.04);\n}\n.oui-border-line-6 {\n border-color: rgb(var(--oui-color-line, 255 255 255) / 0.06);\n}\n.oui-border-primary {\n --tw-border-opacity: 1;\n border-color: rgb(var(--oui-color-primary) / var(--tw-border-opacity));\n}\n.oui-border-primary-light {\n --tw-border-opacity: 1;\n border-color: rgb(var(--oui-color-primary-light) / var(--tw-border-opacity));\n}\n.oui-border-success {\n --tw-border-opacity: 1;\n border-color: rgb(var(--oui-color-success) / var(--tw-border-opacity));\n}\n.oui-border-trade-loss {\n --tw-border-opacity: 1;\n border-color: rgb(var(--oui-color-trading-loss) / var(--tw-border-opacity));\n}\n.oui-border-trade-profit {\n --tw-border-opacity: 1;\n border-color: rgb(var(--oui-color-trading-profit) / var(--tw-border-opacity));\n}\n.oui-border-transparent {\n border-color: transparent;\n}\n.oui-border-warning {\n --tw-border-opacity: 1;\n border-color: rgb(var(--oui-color-warning) / var(--tw-border-opacity));\n}\n.oui-border-white\\/10 {\n border-color: rgb(255 255 255 / 0.1);\n}\n.oui-border-white\\/80 {\n border-color: rgb(255 255 255 / 0.8);\n}\n.oui-border-b-line-6 {\n border-bottom-color: rgb(var(--oui-color-line, 255 255 255) / 0.06);\n}\n.oui-border-l-transparent {\n border-left-color: transparent;\n}\n.oui-border-t-transparent {\n border-top-color: transparent;\n}\n.\\!oui-bg-primary {\n --tw-bg-opacity: 1 !important;\n background-color: rgb(var(--oui-color-primary) / var(--tw-bg-opacity)) !important;\n}\n.oui-bg-base-1 {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-1) / var(--tw-bg-opacity));\n}\n.oui-bg-base-10 {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-10) / var(--tw-bg-opacity));\n}\n.oui-bg-base-2 {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-2) / var(--tw-bg-opacity));\n}\n.oui-bg-base-3 {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-3) / var(--tw-bg-opacity));\n}\n.oui-bg-base-4 {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-4) / var(--tw-bg-opacity));\n}\n.oui-bg-base-5 {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-5) / var(--tw-bg-opacity));\n}\n.oui-bg-base-6 {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-6) / var(--tw-bg-opacity));\n}\n.oui-bg-base-7 {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-7) / var(--tw-bg-opacity));\n}\n.oui-bg-base-8 {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-8) / var(--tw-bg-opacity));\n}\n.oui-bg-base-9 {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-9) / var(--tw-bg-opacity));\n}\n.oui-bg-base-9\\/75 {\n background-color: rgb(var(--oui-color-base-9) / 0.75);\n}\n.oui-bg-base-contrast-12 {\n background-color: rgb(var(--oui-color-base-foreground) / 0.12);\n}\n.oui-bg-base-contrast-20 {\n background-color: rgb(var(--oui-color-base-foreground) / 0.2);\n}\n.oui-bg-base-contrast-36 {\n background-color: rgb(var(--oui-color-base-foreground) / 0.36);\n}\n.oui-bg-black\\/80 {\n background-color: rgb(0 0 0 / 0.8);\n}\n.oui-bg-danger {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-danger) / var(--tw-bg-opacity));\n}\n.oui-bg-danger-light {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-danger-light) / var(--tw-bg-opacity));\n}\n.oui-bg-danger\\/15 {\n background-color: rgb(var(--oui-color-danger) / 0.15);\n}\n.oui-bg-line {\n background-color: rgb(var(--oui-color-line, 255 255 255) / 0.08);\n}\n.oui-bg-line-4 {\n background-color: rgb(var(--oui-color-line, 255 255 255) / 0.04);\n}\n.oui-bg-line-6 {\n background-color: rgb(var(--oui-color-line, 255 255 255) / 0.06);\n}\n.oui-bg-primary {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-primary) / var(--tw-bg-opacity));\n}\n.oui-bg-primary-light {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-primary-light) / var(--tw-bg-opacity));\n}\n.oui-bg-primary-light\\/15 {\n background-color: rgb(var(--oui-color-primary-light) / 0.15);\n}\n.oui-bg-primary\\/15 {\n background-color: rgb(var(--oui-color-primary) / 0.15);\n}\n.oui-bg-success {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-success) / var(--tw-bg-opacity));\n}\n.oui-bg-success-light\\/15 {\n background-color: rgb(var(--oui-color-success-light) / 0.15);\n}\n.oui-bg-success\\/15 {\n background-color: rgb(var(--oui-color-success) / 0.15);\n}\n.oui-bg-success\\/20 {\n background-color: rgb(var(--oui-color-success) / 0.2);\n}\n.oui-bg-trade-loss {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-trading-loss) / var(--tw-bg-opacity));\n}\n.oui-bg-trade-loss\\/10 {\n background-color: rgb(var(--oui-color-trading-loss) / 0.1);\n}\n.oui-bg-trade-loss\\/20 {\n background-color: rgb(var(--oui-color-trading-loss) / 0.2);\n}\n.oui-bg-trade-profit {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-trading-profit) / var(--tw-bg-opacity));\n}\n.oui-bg-trade-profit\\/10 {\n background-color: rgb(var(--oui-color-trading-profit) / 0.1);\n}\n.oui-bg-trade-profit\\/20 {\n background-color: rgb(var(--oui-color-trading-profit) / 0.2);\n}\n.oui-bg-transparent {\n background-color: transparent;\n}\n.oui-bg-warning {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-warning) / var(--tw-bg-opacity));\n}\n.oui-bg-warning-light {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-warning-light) / var(--tw-bg-opacity));\n}\n.oui-bg-warning\\/10 {\n background-color: rgb(var(--oui-color-warning) / 0.1);\n}\n.oui-bg-warning\\/15 {\n background-color: rgb(var(--oui-color-warning) / 0.15);\n}\n.oui-bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.oui-bg-white\\/30 {\n background-color: rgb(255 255 255 / 0.3);\n}\n.oui-bg-white\\/60 {\n background-color: rgb(255 255 255 / 0.6);\n}\n.oui-bg-\\[linear-gradient\\(270deg\\,\\#59B0FE_0\\%\\,\\#26FEFE_100\\%\\)\\] {\n background-image: linear-gradient(270deg,#59B0FE 0%,#26FEFE 100%);\n}\n.oui-bg-\\[linear-gradient\\(270deg\\,rgba\\(89\\,176\\,254\\,0\\.12\\)_0\\%\\,rgba\\(38\\,254\\,254\\,0\\.12\\)_100\\%\\)\\] {\n background-image: linear-gradient(270deg,rgba(89,176,254,0.12) 0%,rgba(38,254,254,0.12) 100%);\n}\n.oui-bg-gradient-to-r {\n background-image: linear-gradient(to right, var(--tw-gradient-stops));\n}\n.oui-bg-gradient-to-tr {\n background-image: linear-gradient(to top right, var(--tw-gradient-stops));\n}\n.oui-from-\\[\\#26fefe\\] {\n --tw-gradient-from: #26fefe var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(38 254 254 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.oui-from-\\[\\#59b0fe\\] {\n --tw-gradient-from: #59b0fe var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(89 176 254 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.oui-from-\\[\\#791438\\] {\n --tw-gradient-from: #791438 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(121 20 56 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.oui-from-\\[\\#792e00\\] {\n --tw-gradient-from: #792e00 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(121 46 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.oui-from-\\[rgb\\(var\\(--oui-gradient-brand-start\\)_\\/_0\\.12\\)\\] {\n --tw-gradient-from: rgb(var(--oui-gradient-brand-start) / 0.12) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(var(--oui-gradient-brand-start) / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.oui-via-\\[\\#ff7d00\\] {\n --tw-gradient-to: rgb(255 125 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), #ff7d00 var(--tw-gradient-via-position), var(--tw-gradient-to);\n}\n.oui-to-\\[\\#26fefe\\] {\n --tw-gradient-to: #26fefe var(--tw-gradient-to-position);\n}\n.oui-to-\\[\\#d92d6b\\] {\n --tw-gradient-to: #d92d6b var(--tw-gradient-to-position);\n}\n.oui-to-\\[\\#ff447c\\] {\n --tw-gradient-to: #ff447c var(--tw-gradient-to-position);\n}\n.oui-to-\\[\\#ffb65d\\] {\n --tw-gradient-to: #ffb65d var(--tw-gradient-to-position);\n}\n.oui-to-\\[rgb\\(var\\(--oui-gradient-brand-end\\)_\\/_0\\.12\\)\\] {\n --tw-gradient-to: rgb(var(--oui-gradient-brand-end) / 0.12) var(--tw-gradient-to-position);\n}\n.oui-bg-clip-text {\n -webkit-background-clip: text;\n background-clip: text;\n}\n.oui-fill-\\[rgba\\(255\\,255\\,255\\,0\\.36\\)\\] {\n fill: rgba(255,255,255,0.36);\n}\n.oui-fill-base-5 {\n fill: rgb(var(--oui-color-base-5) / 1);\n}\n.oui-fill-base-6 {\n fill: rgb(var(--oui-color-base-6) / 1);\n}\n.oui-fill-base-8 {\n fill: rgb(var(--oui-color-base-8) / 1);\n}\n.oui-fill-base-contrast-54 {\n fill: rgb(var(--oui-color-base-foreground) / 0.54);\n}\n.oui-fill-current {\n fill: currentColor;\n}\n.oui-fill-danger {\n fill: rgb(var(--oui-color-danger) / 1);\n}\n.oui-fill-danger-light {\n fill: rgb(var(--oui-color-danger-light) / 1);\n}\n.oui-fill-primary {\n fill: rgb(var(--oui-color-primary) / 1);\n}\n.oui-fill-primary-light {\n fill: rgb(var(--oui-color-primary-light) / 1);\n}\n.oui-fill-success {\n fill: rgb(var(--oui-color-success) / 1);\n}\n.oui-fill-success-light {\n fill: rgb(var(--oui-color-success-light) / 1);\n}\n.oui-fill-warning {\n fill: rgb(var(--oui-color-warning) / 1);\n}\n.oui-fill-warning-light {\n fill: rgb(var(--oui-color-warning-light) / 1);\n}\n.oui-fill-white {\n fill: #fff;\n}\n.oui-fill-white\\/\\[\\.36\\] {\n fill: rgb(255 255 255 / .36);\n}\n.oui-fill-white\\/\\[\\.54\\] {\n fill: rgb(255 255 255 / .54);\n}\n.oui-fill-white\\/\\[\\.98\\] {\n fill: rgb(255 255 255 / .98);\n}\n.oui-object-contain {\n -o-object-fit: contain;\n object-fit: contain;\n}\n.\\!oui-p-0 {\n padding: 0px !important;\n}\n.oui-p-0 {\n padding: 0px;\n}\n.oui-p-1 {\n padding: 0.25rem;\n}\n.oui-p-10 {\n padding: 2.5rem;\n}\n.oui-p-2 {\n padding: 0.5rem;\n}\n.oui-p-3 {\n padding: 0.75rem;\n}\n.oui-p-4 {\n padding: 1rem;\n}\n.oui-p-5 {\n padding: 1.25rem;\n}\n.oui-p-6 {\n padding: 1.5rem;\n}\n.oui-p-7 {\n padding: 1.75rem;\n}\n.oui-p-8 {\n padding: 2rem;\n}\n.oui-p-9 {\n padding: 2.25rem;\n}\n.oui-p-\\[1px\\] {\n padding: 1px;\n}\n.\\!oui-px-0 {\n padding-left: 0px !important;\n padding-right: 0px !important;\n}\n.oui-px-0 {\n padding-left: 0px;\n padding-right: 0px;\n}\n.oui-px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.oui-px-10 {\n padding-left: 2.5rem;\n padding-right: 2.5rem;\n}\n.oui-px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.oui-px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.oui-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.oui-px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.oui-px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n.oui-px-7 {\n padding-left: 1.75rem;\n padding-right: 1.75rem;\n}\n.oui-px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n.oui-px-9 {\n padding-left: 2.25rem;\n padding-right: 2.25rem;\n}\n.oui-px-\\[1px\\] {\n padding-left: 1px;\n padding-right: 1px;\n}\n.oui-px-\\[20px\\] {\n padding-left: 20px;\n padding-right: 20px;\n}\n.oui-px-\\[2px\\] {\n padding-left: 2px;\n padding-right: 2px;\n}\n.oui-px-\\[40px\\] {\n padding-left: 40px;\n padding-right: 40px;\n}\n.oui-py-0 {\n padding-top: 0px;\n padding-bottom: 0px;\n}\n.oui-py-0\\.5 {\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n}\n.oui-py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.oui-py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.oui-py-10 {\n padding-top: 2.5rem;\n padding-bottom: 2.5rem;\n}\n.oui-py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.oui-py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.oui-py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.oui-py-5 {\n padding-top: 1.25rem;\n padding-bottom: 1.25rem;\n}\n.oui-py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n.oui-py-7 {\n padding-top: 1.75rem;\n padding-bottom: 1.75rem;\n}\n.oui-py-8 {\n padding-top: 2rem;\n padding-bottom: 2rem;\n}\n.oui-py-9 {\n padding-top: 2.25rem;\n padding-bottom: 2.25rem;\n}\n.oui-py-\\[10px\\] {\n padding-top: 10px;\n padding-bottom: 10px;\n}\n.oui-py-\\[11px\\] {\n padding-top: 11px;\n padding-bottom: 11px;\n}\n.oui-py-\\[13px\\] {\n padding-top: 13px;\n padding-bottom: 13px;\n}\n.oui-py-\\[3px\\] {\n padding-top: 3px;\n padding-bottom: 3px;\n}\n.oui-py-\\[5px\\] {\n padding-top: 5px;\n padding-bottom: 5px;\n}\n.oui-py-\\[6px\\] {\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.oui-pb-0 {\n padding-bottom: 0px;\n}\n.oui-pb-1 {\n padding-bottom: 0.25rem;\n}\n.oui-pb-10 {\n padding-bottom: 2.5rem;\n}\n.oui-pb-2 {\n padding-bottom: 0.5rem;\n}\n.oui-pb-3 {\n padding-bottom: 0.75rem;\n}\n.oui-pb-4 {\n padding-bottom: 1rem;\n}\n.oui-pb-5 {\n padding-bottom: 1.25rem;\n}\n.oui-pb-6 {\n padding-bottom: 1.5rem;\n}\n.oui-pb-7 {\n padding-bottom: 1.75rem;\n}\n.oui-pb-8 {\n padding-bottom: 2rem;\n}\n.oui-pb-9 {\n padding-bottom: 2.25rem;\n}\n.oui-pb-\\[5px\\] {\n padding-bottom: 5px;\n}\n.oui-pl-0 {\n padding-left: 0px;\n}\n.oui-pl-1 {\n padding-left: 0.25rem;\n}\n.oui-pl-10 {\n padding-left: 2.5rem;\n}\n.oui-pl-2 {\n padding-left: 0.5rem;\n}\n.oui-pl-2\\.5 {\n padding-left: 0.625rem;\n}\n.oui-pl-3 {\n padding-left: 0.75rem;\n}\n.oui-pl-4 {\n padding-left: 1rem;\n}\n.oui-pl-5 {\n padding-left: 1.25rem;\n}\n.oui-pl-6 {\n padding-left: 1.5rem;\n}\n.oui-pl-7 {\n padding-left: 1.75rem;\n}\n.oui-pl-8 {\n padding-left: 2rem;\n}\n.oui-pl-9 {\n padding-left: 2.25rem;\n}\n.oui-pr-0 {\n padding-right: 0px;\n}\n.oui-pr-1 {\n padding-right: 0.25rem;\n}\n.oui-pr-10 {\n padding-right: 2.5rem;\n}\n.oui-pr-2 {\n padding-right: 0.5rem;\n}\n.oui-pr-2\\.5 {\n padding-right: 0.625rem;\n}\n.oui-pr-3 {\n padding-right: 0.75rem;\n}\n.oui-pr-4 {\n padding-right: 1rem;\n}\n.oui-pr-5 {\n padding-right: 1.25rem;\n}\n.oui-pr-6 {\n padding-right: 1.5rem;\n}\n.oui-pr-7 {\n padding-right: 1.75rem;\n}\n.oui-pr-8 {\n padding-right: 2rem;\n}\n.oui-pr-9 {\n padding-right: 2.25rem;\n}\n.oui-pr-\\[60px\\] {\n padding-right: 60px;\n}\n.oui-pt-0 {\n padding-top: 0px;\n}\n.oui-pt-1 {\n padding-top: 0.25rem;\n}\n.oui-pt-10 {\n padding-top: 2.5rem;\n}\n.oui-pt-2 {\n padding-top: 0.5rem;\n}\n.oui-pt-3 {\n padding-top: 0.75rem;\n}\n.oui-pt-4 {\n padding-top: 1rem;\n}\n.oui-pt-5 {\n padding-top: 1.25rem;\n}\n.oui-pt-6 {\n padding-top: 1.5rem;\n}\n.oui-pt-7 {\n padding-top: 1.75rem;\n}\n.oui-pt-8 {\n padding-top: 2rem;\n}\n.oui-pt-9 {\n padding-top: 2.25rem;\n}\n.oui-pt-\\[2px\\] {\n padding-top: 2px;\n}\n.oui-text-left {\n text-align: left;\n}\n.oui-text-center {\n text-align: center;\n}\n.oui-text-right {\n text-align: right;\n}\n.oui-text-end {\n text-align: end;\n}\n.oui-align-middle {\n vertical-align: middle;\n}\n.oui-text-2xl {\n font-size: var(--oui-font-size-2xl, 1.5rem);\n line-height: 2rem;\n}\n.oui-text-2xs {\n font-size: var(--oui-font-size-2xs, 0.75rem);\n line-height: 1.125rem;\n}\n.oui-text-3xl {\n font-size: var(--oui-font-size-3xl, 1.75rem);\n line-height: 2.25rem;\n}\n.oui-text-3xs {\n font-size: var(--oui-font-size-3xs, 0.625rem);\n line-height: 0.625rem;\n}\n.oui-text-4xl {\n font-size: var(--oui-font-size-4xl, 1.875rem);\n line-height: 2.375rem;\n}\n.oui-text-5xl {\n font-size: var(--oui-font-size-5xl, 2.25rem);\n line-height: 2.75rem;\n}\n.oui-text-6xl {\n font-size: var(--oui-font-size-6xl, 3rem);\n line-height: 3rem;\n}\n.oui-text-\\[0\\.8rem\\] {\n font-size: 0.8rem;\n}\n.oui-text-\\[16px\\] {\n font-size: 16px;\n}\n.oui-text-base {\n font-size: var(--oui-font-size-base, 1rem);\n line-height: 1.5rem;\n}\n.oui-text-lg {\n font-size: var(--oui-font-size-lg, 1.125rem);\n line-height: 1.625rem;\n}\n.oui-text-sm {\n font-size: var(--oui-font-size-sm,0.875rem);\n line-height: 1.25rem;\n}\n.oui-text-xl {\n font-size: var(--oui-font-size-xl, 1.25rem);\n line-height: 1.75rem;\n}\n.oui-text-xs {\n font-size: var(--oui-font-size-xs, calc(0.875rem - 1px));\n line-height: 1.25rem;\n}\n.oui-font-bold {\n font-weight: 700;\n}\n.oui-font-medium {\n font-weight: 500;\n}\n.oui-font-normal {\n font-weight: 400;\n}\n.oui-font-semibold {\n font-weight: 600;\n}\n.oui-tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);\n}\n.oui-leading-\\[0px\\] {\n line-height: 0px;\n}\n.oui-leading-\\[1\\.5\\] {\n line-height: 1.5;\n}\n.oui-leading-\\[18px\\] {\n line-height: 18px;\n}\n.oui-leading-\\[20px\\] {\n line-height: 20px;\n}\n.oui-leading-\\[24px\\] {\n line-height: 24px;\n}\n.oui-tracking-tight {\n letter-spacing: -0.025em;\n}\n.oui-tracking-widest {\n letter-spacing: 0.1em;\n}\n.oui-text-\\[rgba\\(0\\,0\\,0\\,\\.88\\)\\] {\n color: rgba(0,0,0,.88);\n}\n.oui-text-\\[rgba\\(0\\,0\\,0\\,0\\.88\\)\\] {\n color: rgba(0,0,0,0.88);\n}\n.oui-text-\\[rgba\\(0_\\,_0_\\,_0_\\,_0\\.88\\)\\] {\n color: rgba(0 , 0 , 0 , 0.88);\n}\n.oui-text-\\[rgba\\(255\\,154\\,46\\,1\\)\\] {\n color: rgba(255,154,46,1);\n}\n.oui-text-\\[rgba\\(96\\,140\\,255\\,1\\)\\] {\n color: rgba(96,140,255,1);\n}\n.oui-text-base-contrast {\n color: rgb(var(--oui-color-base-foreground) / 0.98);\n}\n.oui-text-base-contrast-12 {\n color: rgb(var(--oui-color-base-foreground) / 0.12);\n}\n.oui-text-base-contrast-20 {\n color: rgb(var(--oui-color-base-foreground) / 0.2);\n}\n.oui-text-base-contrast-36 {\n color: rgb(var(--oui-color-base-foreground) / 0.36);\n}\n.oui-text-base-contrast-54 {\n color: rgb(var(--oui-color-base-foreground) / 0.54);\n}\n.oui-text-base-contrast-80 {\n color: rgb(var(--oui-color-base-foreground) / 0.80);\n}\n.oui-text-base-contrast\\/30 {\n color: rgb(var(--oui-color-base-foreground) / 0.3);\n}\n.oui-text-base-contrast\\/40 {\n color: rgb(var(--oui-color-base-foreground) / 0.4);\n}\n.oui-text-base-contrast\\/60 {\n color: rgb(var(--oui-color-base-foreground) / 0.6);\n}\n.oui-text-base-contrast\\/80 {\n color: rgb(var(--oui-color-base-foreground) / 0.8);\n}\n.oui-text-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity));\n}\n.oui-text-black\\/\\[\\.88\\] {\n color: rgb(0 0 0 / .88);\n}\n.oui-text-current {\n color: currentColor;\n}\n.oui-text-danger {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-danger) / var(--tw-text-opacity));\n}\n.oui-text-danger-contrast {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-danger-contrast) / var(--tw-text-opacity));\n}\n.oui-text-danger-light {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-danger-light) / var(--tw-text-opacity));\n}\n.oui-text-gray-200 {\n --tw-text-opacity: 1;\n color: rgb(229 231 235 / var(--tw-text-opacity));\n}\n.oui-text-gray-300 {\n --tw-text-opacity: 1;\n color: rgb(209 213 219 / var(--tw-text-opacity));\n}\n.oui-text-inherit {\n color: inherit;\n}\n.oui-text-primary {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-primary) / var(--tw-text-opacity));\n}\n.oui-text-primary-contrast {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-primary-contrast) / var(--tw-text-opacity));\n}\n.oui-text-primary-light {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-primary-light) / var(--tw-text-opacity));\n}\n.oui-text-secondary {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-secondary) / var(--tw-text-opacity));\n}\n.oui-text-secondary\\/\\[0\\.36\\] {\n color: rgb(var(--oui-color-secondary) / 0.36);\n}\n.oui-text-success {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-success) / var(--tw-text-opacity));\n}\n.oui-text-success-contrast {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-success-contrast) / var(--tw-text-opacity));\n}\n.oui-text-success-light {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-success-light) / var(--tw-text-opacity));\n}\n.oui-text-tertiary {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-tertiary) / var(--tw-text-opacity));\n}\n.oui-text-trade-loss {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-trading-loss) / var(--tw-text-opacity));\n}\n.oui-text-trade-profit {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-trading-profit) / var(--tw-text-opacity));\n}\n.oui-text-transparent {\n color: transparent;\n}\n.oui-text-warning {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-warning) / var(--tw-text-opacity));\n}\n.oui-text-warning-contrast {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-warning-contrast) / var(--tw-text-opacity));\n}\n.oui-text-warning-light {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-warning-light) / var(--tw-text-opacity));\n}\n.oui-text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.oui-underline {\n text-decoration-line: underline;\n}\n.oui-decoration-base-contrast-36 {\n text-decoration-color: rgb(var(--oui-color-base-foreground) / 0.36);\n}\n.oui-decoration-line-16 {\n text-decoration-color: rgb(var(--oui-color-line, 255 255 255) / 0.16);\n}\n.oui-decoration-warning {\n text-decoration-color: rgb(var(--oui-color-warning) / 1);\n}\n.oui-decoration-white\\/20 {\n text-decoration-color: rgb(255 255 255 / 0.2);\n}\n.oui-decoration-dashed {\n text-decoration-style: dashed;\n}\n.oui-decoration-1 {\n text-decoration-thickness: 1px;\n}\n.oui-underline-offset-4 {\n text-underline-offset: 4px;\n}\n.oui-placeholder-base-contrast-20::-moz-placeholder {\n color: rgb(var(--oui-color-base-foreground) / 0.2);\n}\n.oui-placeholder-base-contrast-20::placeholder {\n color: rgb(var(--oui-color-base-foreground) / 0.2);\n}\n.oui-caret-\\[rgba\\(217\\,217\\,217\\,1\\)\\] {\n caret-color: rgba(217,217,217,1);\n}\n.oui-opacity-20 {\n opacity: 0.2;\n}\n.oui-opacity-30 {\n opacity: 0.3;\n}\n.oui-opacity-50 {\n opacity: 0.5;\n}\n.oui-opacity-60 {\n opacity: 0.6;\n}\n.oui-opacity-70 {\n opacity: 0.7;\n}\n.oui-opacity-\\[\\.12\\] {\n opacity: .12;\n}\n.oui-shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.oui-shadow-2xl {\n --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.oui-shadow-\\[0px_12px_20px_0px_rgba\\(0\\,0\\,0\\,0\\.25\\)\\] {\n --tw-shadow: 0px 12px 20px 0px rgba(0,0,0,0.25);\n --tw-shadow-colored: 0px 12px 20px 0px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.oui-shadow-inner {\n --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.oui-shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.oui-shadow-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.oui-shadow-none {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.oui-shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.oui-shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.oui-outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.oui-outline {\n outline-style: solid;\n}\n.oui-outline-1 {\n outline-width: 1px;\n}\n.oui-outline-2 {\n outline-width: 2px;\n}\n.oui-outline-offset-0 {\n outline-offset: 0px;\n}\n.oui-outline-base-1 {\n outline-color: rgb(var(--oui-color-base-1) / 1);\n}\n.oui-outline-base-contrast-12 {\n outline-color: rgb(var(--oui-color-base-foreground) / 0.12);\n}\n.oui-outline-danger {\n outline-color: rgb(var(--oui-color-danger) / 1);\n}\n.oui-outline-danger-light {\n outline-color: rgb(var(--oui-color-danger-light) / 1);\n}\n.oui-outline-primary {\n outline-color: rgb(var(--oui-color-primary) / 1);\n}\n.oui-outline-success {\n outline-color: rgb(var(--oui-color-success) / 1);\n}\n.oui-outline-transparent {\n outline-color: transparent;\n}\n.oui-outline-warning {\n outline-color: rgb(var(--oui-color-warning) / 1);\n}\n.oui-outline-warning-light {\n outline-color: rgb(var(--oui-color-warning-light) / 1);\n}\n.oui-ring-0 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.oui-transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.oui-transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.oui-transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.oui-transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.oui-transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.oui-duration-200 {\n transition-duration: 200ms;\n}\n.oui-duration-300 {\n transition-duration: 300ms;\n}\n.oui-ease-in-out {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.oui-gradient-primary {\n background-image: linear-gradient(var(--oui-gradient-angle, 28.29deg), rgb(var(--oui-gradient-primary-start)) var(--oui-gradient-primary-stop-start,0%), rgb(var(--oui-gradient-primary-end)) var(--oui-gradient-primary-stop-end,100%));\n}\n.oui-gradient-secondary {\n background-image: linear-gradient(var(--oui-gradient-angle, 0deg), rgb(var(--oui-gradient-secondary-start)) var(--oui-gradient-primary-stop-start,0%), rgb(var(--oui-gradient-secondary-end)) var(--oui-gradient-primary-stop-end,100%));\n}\n.oui-gradient-success {\n background-image: linear-gradient(var(--oui-gradient-angle, 28.29deg), rgb(var(--oui-gradient-success-start)) var(--oui-gradient-primary-stop-start,0%), rgba(var(--oui-gradient-success-end)) var(--oui-gradient-primary-stop-end,100%));\n}\n.oui-gradient-warning {\n background-image: linear-gradient(var(--oui-gradient-angle, 28.29deg),rgb(var(--oui-gradient-warning-start)) var(--oui-gradient-primary-stop-start,0%), rgb(var(--oui-gradient-warning-end)) var(--oui-gradient-primary-stop-end,100%));\n}\n.oui-gradient-danger {\n background-image: linear-gradient(var(--oui-gradient-angle, 28.29deg), rgb(var(--oui-gradient-danger-start)) var(--oui-gradient-primary-stop-start,0%), rgb(var(--oui-gradient-danger-end)) var(--oui-gradient-primary-stop-end,100%));\n}\n.oui-gradient-neutral {\n background-image: linear-gradient(var(--oui-gradient-angle, 28.29deg), rgb(var(--oui-gradient-neutral-start)) var(--oui-gradient-primary-stop-start,0%), rgb(var(--oui-gradient-neutral-end)) var(--oui-gradient-primary-stop-end,100%));\n}\n.oui-gradient-brand {\n background-image: linear-gradient(var(--oui-gradient-angle, 270deg), rgb(var(--oui-gradient-brand-start)) var(--oui-gradient-primary-stop-start,0%), rgb(var(--oui-gradient-brand-end)) var(--oui-gradient-primary-stop-end,100%));\n}\n@keyframes enter {\n\n from {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n@keyframes exit {\n\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n.oui-animate-in {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n.oui-fade-in {\n --tw-enter-opacity: 0;\n}\n.oui-fade-in-0 {\n --tw-enter-opacity: 0;\n}\n.oui-fade-out {\n --tw-exit-opacity: 0;\n}\n.oui-zoom-in-95 {\n --tw-enter-scale: .95;\n}\n.oui-duration-200 {\n animation-duration: 200ms;\n}\n.oui-duration-300 {\n animation-duration: 300ms;\n}\n.oui-ease-in-out {\n animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.placeholder\\:oui-text-2xs::-moz-placeholder {\n font-size: var(--oui-font-size-2xs, 0.75rem);\n line-height: 1.125rem;\n}\n.placeholder\\:oui-text-2xs::placeholder {\n font-size: var(--oui-font-size-2xs, 0.75rem);\n line-height: 1.125rem;\n}\n.placeholder\\:oui-text-base::-moz-placeholder {\n font-size: var(--oui-font-size-base, 1rem);\n line-height: 1.5rem;\n}\n.placeholder\\:oui-text-base::placeholder {\n font-size: var(--oui-font-size-base, 1rem);\n line-height: 1.5rem;\n}\n.placeholder\\:oui-text-sm::-moz-placeholder {\n font-size: var(--oui-font-size-sm,0.875rem);\n line-height: 1.25rem;\n}\n.placeholder\\:oui-text-sm::placeholder {\n font-size: var(--oui-font-size-sm,0.875rem);\n line-height: 1.25rem;\n}\n.placeholder\\:oui-text-xs::-moz-placeholder {\n font-size: var(--oui-font-size-xs, calc(0.875rem - 1px));\n line-height: 1.25rem;\n}\n.placeholder\\:oui-text-xs::placeholder {\n font-size: var(--oui-font-size-xs, calc(0.875rem - 1px));\n line-height: 1.25rem;\n}\n.placeholder\\:oui-text-base-contrast-20::-moz-placeholder {\n color: rgb(var(--oui-color-base-foreground) / 0.2);\n}\n.placeholder\\:oui-text-base-contrast-20::placeholder {\n color: rgb(var(--oui-color-base-foreground) / 0.2);\n}\n.placeholder\\:oui-text-base-contrast-54::-moz-placeholder {\n color: rgb(var(--oui-color-base-foreground) / 0.54);\n}\n.placeholder\\:oui-text-base-contrast-54::placeholder {\n color: rgb(var(--oui-color-base-foreground) / 0.54);\n}\n.after\\:oui-absolute::after {\n content: var(--tw-content);\n position: absolute;\n}\n.after\\:oui-bottom-0::after {\n content: var(--tw-content);\n bottom: 0px;\n}\n.after\\:oui-left-2::after {\n content: var(--tw-content);\n left: 0.5rem;\n}\n.after\\:oui-right-2::after {\n content: var(--tw-content);\n right: 0.5rem;\n}\n.after\\:oui-inline-block::after {\n content: var(--tw-content);\n display: inline-block;\n}\n.after\\:oui-border-b::after {\n content: var(--tw-content);\n border-bottom-width: 1px;\n}\n.after\\:oui-border-line-4::after {\n content: var(--tw-content);\n border-color: rgb(var(--oui-color-line, 255 255 255) / 0.04);\n}\n.after\\:oui-content-\\[\\\"\\\"\\]::after {\n --tw-content: \"\";\n content: var(--tw-content);\n}\n.first\\:oui-pl-0:first-child {\n padding-left: 0px;\n}\n.last\\:oui-border-b-0:last-child {\n border-bottom-width: 0px;\n}\n.last\\:oui-pr-0:last-child {\n padding-right: 0px;\n}\n.autofill\\:oui-bg-transparent:-webkit-autofill {\n background-color: transparent;\n}\n.autofill\\:oui-bg-transparent:autofill {\n background-color: transparent;\n}\n.focus-within\\:oui-relative:focus-within {\n position: relative;\n}\n.focus-within\\:oui-z-20:focus-within {\n z-index: 20;\n}\n.focus-within\\:oui-outline-0:focus-within {\n outline-width: 0px;\n}\n.focus-within\\:oui-outline-danger-light:focus-within {\n outline-color: rgb(var(--oui-color-danger-light) / 1);\n}\n.focus-within\\:oui-outline-primary:focus-within {\n outline-color: rgb(var(--oui-color-primary) / 1);\n}\n.focus-within\\:oui-outline-transparent:focus-within {\n outline-color: transparent;\n}\n.focus-within\\:oui-outline-warning-light:focus-within {\n outline-color: rgb(var(--oui-color-warning-light) / 1);\n}\n.hover\\:oui-cursor-pointer:hover {\n cursor: pointer;\n}\n.hover\\:oui-rounded:hover {\n border-radius: 0.25rem;\n}\n.hover\\:oui-bg-base-2\\/10:hover {\n background-color: rgb(var(--oui-color-base-2) / 0.1);\n}\n.hover\\:oui-bg-base-2\\/70:hover {\n background-color: rgb(var(--oui-color-base-2) / 0.7);\n}\n.hover\\:oui-bg-base-3:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-3) / var(--tw-bg-opacity));\n}\n.hover\\:oui-bg-base-4\\/70:hover {\n background-color: rgb(var(--oui-color-base-4) / 0.7);\n}\n.hover\\:oui-bg-base-5:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-5) / var(--tw-bg-opacity));\n}\n.hover\\:oui-bg-base-6:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-6) / var(--tw-bg-opacity));\n}\n.hover\\:oui-bg-base-7:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-7) / var(--tw-bg-opacity));\n}\n.hover\\:oui-bg-base-8:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-8) / var(--tw-bg-opacity));\n}\n.hover\\:oui-bg-danger\\/10:hover {\n background-color: rgb(var(--oui-color-danger) / 0.1);\n}\n.hover\\:oui-bg-danger\\/70:hover {\n background-color: rgb(var(--oui-color-danger) / 0.7);\n}\n.hover\\:oui-bg-primary:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-primary) / var(--tw-bg-opacity));\n}\n.hover\\:oui-bg-primary-light\\/20:hover {\n background-color: rgb(var(--oui-color-primary-light) / 0.2);\n}\n.hover\\:oui-bg-primary\\/10:hover {\n background-color: rgb(var(--oui-color-primary) / 0.1);\n}\n.hover\\:oui-bg-primary\\/70:hover {\n background-color: rgb(var(--oui-color-primary) / 0.7);\n}\n.hover\\:oui-bg-success\\/10:hover {\n background-color: rgb(var(--oui-color-success) / 0.1);\n}\n.hover\\:oui-bg-success\\/70:hover {\n background-color: rgb(var(--oui-color-success) / 0.7);\n}\n.hover\\:oui-bg-transparent:hover {\n background-color: transparent;\n}\n.hover\\:oui-bg-warning\\/10:hover {\n background-color: rgb(var(--oui-color-warning) / 0.1);\n}\n.hover\\:oui-bg-warning\\/70:hover {\n background-color: rgb(var(--oui-color-warning) / 0.7);\n}\n.hover\\:oui-bg-white\\/70:hover {\n background-color: rgb(255 255 255 / 0.7);\n}\n.hover\\:oui-fill-primary:hover {\n fill: rgb(var(--oui-color-primary) / 1);\n}\n.hover\\:oui-fill-white\\/80:hover {\n fill: rgb(255 255 255 / 0.8);\n}\n.hover\\:oui-fill-white\\/\\[\\.98\\]:hover {\n fill: rgb(255 255 255 / .98);\n}\n.hover\\:oui-text-\\[rgba\\(255\\2c 154\\2c 46\\2c 1\\)\\]:hover {\n color: rgba(255,154,46,1);\n}\n.hover\\:oui-text-base-contrast:hover {\n color: rgb(var(--oui-color-base-foreground) / 0.98);\n}\n.hover\\:oui-text-base-contrast-80:hover {\n color: rgb(var(--oui-color-base-foreground) / 0.80);\n}\n.hover\\:oui-text-primary:hover {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-primary) / var(--tw-text-opacity));\n}\n.hover\\:oui-text-secondary\\/80:hover {\n color: rgb(var(--oui-color-secondary) / 0.8);\n}\n.hover\\:oui-opacity-100:hover {\n opacity: 1;\n}\n.hover\\:oui-opacity-80:hover {\n opacity: 0.8;\n}\n.focus\\:oui-h-\\[14px\\]:focus {\n height: 14px;\n}\n.focus\\:oui-w-\\[14px\\]:focus {\n width: 14px;\n}\n.focus\\:oui-border-2:focus {\n border-width: 2px;\n}\n.focus\\:oui-border-\\[3px\\]:focus {\n border-width: 3px;\n}\n.focus\\:oui-border-primary:focus {\n --tw-border-opacity: 1;\n border-color: rgb(var(--oui-color-primary) / var(--tw-border-opacity));\n}\n.focus\\:oui-outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus\\:oui-ring-1:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.focus\\:oui-ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.focus\\:oui-ring-danger:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(var(--oui-color-danger) / var(--tw-ring-opacity));\n}\n.focus\\:oui-ring-transparent:focus {\n --tw-ring-color: transparent;\n}\n.focus\\:oui-ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n.focus-visible\\:oui-outline-none:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.focus-visible\\:oui-ring-1:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.focus-visible\\:oui-ring-2:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.focus-visible\\:oui-ring-offset-2:focus-visible {\n --tw-ring-offset-width: 2px;\n}\n.active\\:oui-bg-base-2\\/50:active {\n background-color: rgb(var(--oui-color-base-2) / 0.5);\n}\n.active\\:oui-bg-base-4\\/50:active {\n background-color: rgb(var(--oui-color-base-4) / 0.5);\n}\n.active\\:oui-bg-danger\\/50:active {\n background-color: rgb(var(--oui-color-danger) / 0.5);\n}\n.active\\:oui-bg-primary\\/50:active {\n background-color: rgb(var(--oui-color-primary) / 0.5);\n}\n.active\\:oui-bg-success\\/50:active {\n background-color: rgb(var(--oui-color-success) / 0.5);\n}\n.active\\:oui-bg-warning\\/50:active {\n background-color: rgb(var(--oui-color-warning) / 0.5);\n}\n.active\\:oui-bg-white\\/50:active {\n background-color: rgb(255 255 255 / 0.5);\n}\n.disabled\\:oui-pointer-events-none:disabled {\n pointer-events: none;\n}\n.disabled\\:oui-cursor-default:disabled {\n cursor: default;\n}\n.disabled\\:oui-cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n.disabled\\:oui-bg-base-3:disabled {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-3) / var(--tw-bg-opacity));\n}\n.disabled\\:oui-bg-transparent:disabled {\n background-color: transparent;\n}\n.disabled\\:oui-bg-white\\/30:disabled {\n background-color: rgb(255 255 255 / 0.3);\n}\n.disabled\\:oui-text-base-contrast-36:disabled {\n color: rgb(var(--oui-color-base-foreground) / 0.36);\n}\n.disabled\\:oui-text-black\\/\\[\\.36\\]:disabled {\n color: rgb(0 0 0 / .36);\n}\n.disabled\\:oui-opacity-50:disabled {\n opacity: 0.5;\n}\n.disabled\\:hover\\:oui-bg-base-3:hover:disabled {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-3) / var(--tw-bg-opacity));\n}\n.disabled\\:hover\\:oui-bg-transparent:hover:disabled {\n background-color: transparent;\n}\n.hover\\:disabled\\:oui-bg-white\\/30:disabled:hover {\n background-color: rgb(255 255 255 / 0.3);\n}\n.oui-group:hover .group-hover\\:oui-visible {\n visibility: visible;\n}\n.oui-group:hover .group-hover\\:oui-invisible {\n visibility: hidden;\n}\n.oui-group:hover .group-hover\\:oui-block {\n display: block;\n}\n.oui-group:hover .group-hover\\:\\!oui-bg-base-8 {\n --tw-bg-opacity: 1 !important;\n background-color: rgb(var(--oui-color-base-8) / var(--tw-bg-opacity)) !important;\n}\n.oui-group:hover .group-hover\\:oui-text-base-contrast-54 {\n color: rgb(var(--oui-color-base-foreground) / 0.54);\n}\n.oui-group:hover .group-hover\\:oui-text-base-contrast-80 {\n color: rgb(var(--oui-color-base-foreground) / 0.80);\n}\n.oui-peer:focus ~ .peer-focus\\:oui-visible {\n visibility: visible;\n}\n.has-\\[\\&\\>\\*\\:nth-child\\(1\\)\\]\\:oui-bg-red-400:has(.has-\\[\\&\\>\\*\\:nth-child\\(1\\)\\]\\:oui-bg-red-400>*:nth-child(1)) {\n --tw-bg-opacity: 1;\n background-color: rgb(248 113 113 / var(--tw-bg-opacity));\n}\n.has-\\[button\\]\\:oui-bg-red-50:has(button) {\n --tw-bg-opacity: 1;\n background-color: rgb(254 242 242 / var(--tw-bg-opacity));\n}\n.has-\\[\\&_\\+_div\\]\\:oui-pb-3:has(.has-\\[\\&_\\+_div\\]\\:oui-pb-3 + div) {\n padding-bottom: 0.75rem;\n}\n.aria-selected\\:oui-opacity-100[aria-selected=\"true\"] {\n opacity: 1;\n}\n.aria-selected\\:oui-opacity-30[aria-selected=\"true\"] {\n opacity: 0.3;\n}\n.data-\\[disabled\\]\\:oui-pointer-events-none[data-disabled] {\n pointer-events: none;\n}\n.data-\\[side\\=bottom\\]\\:oui-translate-y-1[data-side=\"bottom\"] {\n --tw-translate-y: 0.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[side\\=left\\]\\:-oui-translate-x-1[data-side=\"left\"] {\n --tw-translate-x: -0.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[side\\=right\\]\\:oui-translate-x-1[data-side=\"right\"] {\n --tw-translate-x: 0.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[side\\=top\\]\\:-oui-translate-y-1[data-side=\"top\"] {\n --tw-translate-y: -0.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[state\\=checked\\]\\:oui-translate-x-4[data-state=\"checked\"] {\n --tw-translate-x: 1rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[state\\=unchecked\\]\\:oui-translate-x-0[data-state=\"unchecked\"] {\n --tw-translate-x: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.data-\\[active\\=true\\]\\:oui-bg-base-5[data-active=\"true\"] {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-5) / var(--tw-bg-opacity));\n}\n.data-\\[state\\=active\\]\\:oui-bg-base-5[data-state=\"active\"] {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-5) / var(--tw-bg-opacity));\n}\n.data-\\[state\\=checked\\]\\:oui-bg-\\[\\#3347FD\\][data-state=\"checked\"] {\n --tw-bg-opacity: 1;\n background-color: rgb(51 71 253 / var(--tw-bg-opacity));\n}\n.data-\\[state\\=checked\\]\\:oui-bg-danger[data-state=\"checked\"] {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-danger) / var(--tw-bg-opacity));\n}\n.data-\\[state\\=checked\\]\\:oui-bg-primary[data-state=\"checked\"] {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-primary) / var(--tw-bg-opacity));\n}\n.data-\\[state\\=checked\\]\\:oui-bg-success[data-state=\"checked\"] {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-success) / var(--tw-bg-opacity));\n}\n.data-\\[state\\=checked\\]\\:oui-bg-warning[data-state=\"checked\"] {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-warning) / var(--tw-bg-opacity));\n}\n.data-\\[state\\=checked\\]\\:oui-bg-white\\/80[data-state=\"checked\"] {\n background-color: rgb(255 255 255 / 0.8);\n}\n.data-\\[state\\=open\\]\\:oui-bg-secondary[data-state=\"open\"] {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-secondary) / var(--tw-bg-opacity));\n}\n.data-\\[state\\=unchecked\\]\\:oui-bg-base-1[data-state=\"unchecked\"] {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-1) / var(--tw-bg-opacity));\n}\n.data-\\[state\\=unchecked\\]\\:oui-bg-danger[data-state=\"unchecked\"] {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-danger) / var(--tw-bg-opacity));\n}\n.data-\\[state\\=unchecked\\]\\:oui-bg-success[data-state=\"unchecked\"] {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-success) / var(--tw-bg-opacity));\n}\n.data-\\[state\\=unchecked\\]\\:oui-bg-warning[data-state=\"unchecked\"] {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-warning) / var(--tw-bg-opacity));\n}\n.data-\\[state\\=active\\]\\:oui-text-base-contrast[data-state=\"active\"] {\n color: rgb(var(--oui-color-base-foreground) / 0.98);\n}\n.data-\\[state\\=checked\\]\\:oui-text-\\[rgba\\(0\\2c 0\\2c 0\\2c 0\\.88\\)\\][data-state=\"checked\"] {\n color: rgba(0,0,0,0.88);\n}\n.data-\\[state\\=checked\\]\\:oui-text-base-contrast[data-state=\"checked\"] {\n color: rgb(var(--oui-color-base-foreground) / 0.98);\n}\n.data-\\[state\\=open\\]\\:oui-text-base-contrast-80[data-state=\"open\"] {\n color: rgb(var(--oui-color-base-foreground) / 0.80);\n}\n.data-\\[disabled\\]\\:oui-opacity-50[data-disabled] {\n opacity: 0.5;\n}\n.data-\\[state\\=open\\]\\:oui-duration-300[data-state=\"open\"] {\n transition-duration: 300ms;\n}\n.data-\\[state\\=open\\]\\:oui-animate-in[data-state=\"open\"] {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n.data-\\[state\\=closed\\]\\:oui-animate-out[data-state=\"closed\"] {\n animation-name: exit;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n}\n.data-\\[state\\=closed\\]\\:oui-fade-out-0[data-state=\"closed\"] {\n --tw-exit-opacity: 0;\n}\n.data-\\[state\\=open\\]\\:oui-fade-in-0[data-state=\"open\"] {\n --tw-enter-opacity: 0;\n}\n.data-\\[state\\=closed\\]\\:oui-zoom-out-95[data-state=\"closed\"] {\n --tw-exit-scale: .95;\n}\n.data-\\[state\\=open\\]\\:oui-zoom-in-95[data-state=\"open\"] {\n --tw-enter-scale: .95;\n}\n.data-\\[side\\=bottom\\]\\:oui-slide-in-from-top-2[data-side=\"bottom\"] {\n --tw-enter-translate-y: -0.5rem;\n}\n.data-\\[side\\=left\\]\\:oui-slide-in-from-right-2[data-side=\"left\"] {\n --tw-enter-translate-x: 0.5rem;\n}\n.data-\\[side\\=right\\]\\:oui-slide-in-from-left-2[data-side=\"right\"] {\n --tw-enter-translate-x: -0.5rem;\n}\n.data-\\[side\\=top\\]\\:oui-slide-in-from-bottom-2[data-side=\"top\"] {\n --tw-enter-translate-y: 0.5rem;\n}\n.data-\\[state\\=closed\\]\\:oui-slide-out-to-bottom[data-state=\"closed\"] {\n --tw-exit-translate-y: 100%;\n}\n.data-\\[state\\=closed\\]\\:oui-slide-out-to-left[data-state=\"closed\"] {\n --tw-exit-translate-x: -100%;\n}\n.data-\\[state\\=closed\\]\\:oui-slide-out-to-left-1\\/2[data-state=\"closed\"] {\n --tw-exit-translate-x: -50%;\n}\n.data-\\[state\\=closed\\]\\:oui-slide-out-to-right[data-state=\"closed\"] {\n --tw-exit-translate-x: 100%;\n}\n.data-\\[state\\=closed\\]\\:oui-slide-out-to-top[data-state=\"closed\"] {\n --tw-exit-translate-y: -100%;\n}\n.data-\\[state\\=closed\\]\\:oui-slide-out-to-top-\\[48\\%\\][data-state=\"closed\"] {\n --tw-exit-translate-y: -48%;\n}\n.data-\\[state\\=open\\]\\:oui-slide-in-from-bottom[data-state=\"open\"] {\n --tw-enter-translate-y: 100%;\n}\n.data-\\[state\\=open\\]\\:oui-slide-in-from-left[data-state=\"open\"] {\n --tw-enter-translate-x: -100%;\n}\n.data-\\[state\\=open\\]\\:oui-slide-in-from-left-1\\/2[data-state=\"open\"] {\n --tw-enter-translate-x: -50%;\n}\n.data-\\[state\\=open\\]\\:oui-slide-in-from-right[data-state=\"open\"] {\n --tw-enter-translate-x: 100%;\n}\n.data-\\[state\\=open\\]\\:oui-slide-in-from-top[data-state=\"open\"] {\n --tw-enter-translate-y: -100%;\n}\n.data-\\[state\\=open\\]\\:oui-slide-in-from-top-\\[48\\%\\][data-state=\"open\"] {\n --tw-enter-translate-y: -48%;\n}\n.data-\\[state\\=open\\]\\:oui-duration-300[data-state=\"open\"] {\n animation-duration: 300ms;\n}\n.data-\\[state\\=active\\]\\:after\\:oui-absolute[data-state=\"active\"]::after {\n content: var(--tw-content);\n position: absolute;\n}\n.data-\\[state\\=active\\]\\:after\\:-oui-bottom-0[data-state=\"active\"]::after {\n content: var(--tw-content);\n bottom: -0px;\n}\n.data-\\[state\\=active\\]\\:after\\:oui-left-0[data-state=\"active\"]::after {\n content: var(--tw-content);\n left: 0px;\n}\n.data-\\[state\\=active\\]\\:after\\:oui-right-0[data-state=\"active\"]::after {\n content: var(--tw-content);\n right: 0px;\n}\n.data-\\[state\\=active\\]\\:after\\:oui-block[data-state=\"active\"]::after {\n content: var(--tw-content);\n display: block;\n}\n.data-\\[state\\=active\\]\\:after\\:oui-h-\\[3px\\][data-state=\"active\"]::after {\n content: var(--tw-content);\n height: 3px;\n}\n.data-\\[state\\=active\\]\\:after\\:oui-rounded-full[data-state=\"active\"]::after {\n content: var(--tw-content);\n border-radius: 9999px;\n}\n.data-\\[state\\=active\\]\\:after\\:oui-bg-white[data-state=\"active\"]::after {\n content: var(--tw-content);\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.data-\\[state\\=active\\]\\:after\\:oui-content-\\[\\'\\'\\][data-state=\"active\"]::after {\n --tw-content: '';\n content: var(--tw-content);\n}\n.data-\\[active\\=false\\]\\:hover\\:oui-bg-base-6:hover[data-active=\"false\"] {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-6) / var(--tw-bg-opacity));\n}\n.oui-group[data-active=\"true\"] .group-data-\\[active\\=true\\]\\:oui-visible {\n visibility: visible;\n}\n.oui-group[data-active=\"true\"] .group-data-\\[active\\=true\\]\\:oui-invisible {\n visibility: hidden;\n}\n.oui-group\\/bar[data-state=\"closed\"] .group-data-\\[state\\=closed\\]\\/bar\\:oui-w-\\[42px\\] {\n width: 42px;\n}\n.oui-group[data-open=\"true\"] .group-data-\\[open\\=true\\]\\:oui-rotate-180 {\n --tw-rotate: 180deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.oui-group\\/bar[data-state=\"closed\"] .group-data-\\[state\\=closed\\]\\/bar\\:oui-rotate-90 {\n --tw-rotate: 90deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.oui-group[data-state=\"closed\"] .group-data-\\[state\\=closed\\]\\:oui-rotate-0 {\n --tw-rotate: 0deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.oui-group[data-state=\"open\"] .group-data-\\[state\\=open\\]\\:oui-rotate-180 {\n --tw-rotate: 180deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.oui-group[data-actived=\"true\"] .group-data-\\[actived\\=true\\]\\:oui-fill-\\[url\\(\\#side-menu-gradient\\)\\] {\n fill: url(#side-menu-gradient);\n}\n.oui-peer[data-left=\"fixed\"] ~ .peer-data-\\[left\\=fixed\\]\\:oui-block {\n display: block;\n}\n.oui-peer[data-right=\"fixed\"] ~ .peer-data-\\[right\\=fixed\\]\\:oui-block {\n display: block;\n}\n.oui-peer[data-state=\"closed\"] ~ .peer-data-\\[state\\=closed\\]\\:oui-rotate-0 {\n --tw-rotate: 0deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.oui-peer[data-state=\"open\"] ~ .peer-data-\\[state\\=open\\]\\:oui-rotate-180 {\n --tw-rotate: 180deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.dark\\:oui-text-gray-600:is(.oui-dark *) {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity));\n}\n@media (min-width: 375px) {\n\n .sm\\:oui-flex {\n display: flex;\n }\n\n .sm\\:oui-inline-flex {\n display: inline-flex;\n }\n\n .sm\\:oui-max-w-sm {\n max-width: var(--oui-spacing-sm, 22.5rem);\n }\n\n .sm\\:oui-flex-row {\n flex-direction: row;\n }\n\n .sm\\:oui-flex-row-reverse {\n flex-direction: row-reverse;\n }\n\n .sm\\:oui-flex-col {\n flex-direction: column;\n }\n\n .sm\\:oui-flex-col-reverse {\n flex-direction: column-reverse;\n }\n\n .sm\\:oui-flex-wrap {\n flex-wrap: wrap;\n }\n\n .sm\\:oui-flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n\n .sm\\:oui-flex-nowrap {\n flex-wrap: nowrap;\n }\n\n .sm\\:oui-items-start {\n align-items: flex-start;\n }\n\n .sm\\:oui-items-end {\n align-items: flex-end;\n }\n\n .sm\\:oui-items-center {\n align-items: center;\n }\n\n .sm\\:oui-items-baseline {\n align-items: baseline;\n }\n\n .sm\\:oui-items-stretch {\n align-items: stretch;\n }\n\n .sm\\:oui-justify-start {\n justify-content: flex-start;\n }\n\n .sm\\:oui-justify-end {\n justify-content: flex-end;\n }\n\n .sm\\:oui-justify-center {\n justify-content: center;\n }\n\n .sm\\:oui-justify-between {\n justify-content: space-between;\n }\n\n .sm\\:oui-justify-around {\n justify-content: space-around;\n }\n\n .sm\\:oui-justify-evenly {\n justify-content: space-evenly;\n }\n\n .sm\\:oui-justify-stretch {\n justify-content: stretch;\n }\n\n .sm\\:oui-space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));\n }\n\n .sm\\:oui-space-x-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(1rem * var(--tw-space-x-reverse));\n margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));\n }\n\n .sm\\:oui-space-y-0 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0px * var(--tw-space-y-reverse));\n }\n\n .sm\\:oui-rounded-xl {\n border-radius: 0.75rem;\n }\n}\n@media (min-width: 480px) {\n\n .md\\:oui-mt-3 {\n margin-top: 0.75rem;\n }\n\n .md\\:oui-block {\n display: block;\n }\n\n .md\\:oui-flex {\n display: flex;\n }\n\n .md\\:oui-inline-flex {\n display: inline-flex;\n }\n\n .md\\:oui-hidden {\n display: none;\n }\n\n .md\\:oui-h-6 {\n height: 1.5rem;\n }\n\n .md\\:oui-h-\\[14px\\] {\n height: 14px;\n }\n\n .md\\:oui-h-\\[18px\\] {\n height: 18px;\n }\n\n .md\\:oui-h-\\[24px\\] {\n height: 24px;\n }\n\n .md\\:oui-w-6 {\n width: 1.5rem;\n }\n\n .md\\:oui-w-\\[14px\\] {\n width: 14px;\n }\n\n .md\\:oui-w-\\[18px\\] {\n width: 18px;\n }\n\n .md\\:oui-w-\\[24px\\] {\n width: 24px;\n }\n\n .md\\:oui-w-fit {\n width: -moz-fit-content;\n width: fit-content;\n }\n\n .md\\:oui-flex-shrink {\n flex-shrink: 1;\n }\n\n .md\\:oui-flex-row {\n flex-direction: row;\n }\n\n .md\\:oui-flex-row-reverse {\n flex-direction: row-reverse;\n }\n\n .md\\:oui-flex-col {\n flex-direction: column;\n }\n\n .md\\:oui-flex-col-reverse {\n flex-direction: column-reverse;\n }\n\n .md\\:oui-flex-wrap {\n flex-wrap: wrap;\n }\n\n .md\\:oui-flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n\n .md\\:oui-flex-nowrap {\n flex-wrap: nowrap;\n }\n\n .md\\:oui-items-start {\n align-items: flex-start;\n }\n\n .md\\:oui-items-end {\n align-items: flex-end;\n }\n\n .md\\:oui-items-center {\n align-items: center;\n }\n\n .md\\:oui-items-baseline {\n align-items: baseline;\n }\n\n .md\\:oui-items-stretch {\n align-items: stretch;\n }\n\n .md\\:oui-justify-start {\n justify-content: flex-start;\n }\n\n .md\\:oui-justify-end {\n justify-content: flex-end;\n }\n\n .md\\:oui-justify-center {\n justify-content: center;\n }\n\n .md\\:oui-justify-between {\n justify-content: space-between;\n }\n\n .md\\:oui-justify-around {\n justify-content: space-around;\n }\n\n .md\\:oui-justify-evenly {\n justify-content: space-evenly;\n }\n\n .md\\:oui-justify-stretch {\n justify-content: stretch;\n }\n\n .md\\:oui-text-2xl {\n font-size: var(--oui-font-size-2xl, 1.5rem);\n line-height: 2rem;\n }\n\n .md\\:oui-text-3xl {\n font-size: var(--oui-font-size-3xl, 1.75rem);\n line-height: 2.25rem;\n }\n\n .md\\:oui-text-base {\n font-size: var(--oui-font-size-base, 1rem);\n line-height: 1.5rem;\n }\n\n .md\\:oui-text-lg {\n font-size: var(--oui-font-size-lg, 1.125rem);\n line-height: 1.625rem;\n }\n\n .md\\:oui-text-sm {\n font-size: var(--oui-font-size-sm,0.875rem);\n line-height: 1.25rem;\n }\n\n .md\\:oui-text-xl {\n font-size: var(--oui-font-size-xl, 1.25rem);\n line-height: 1.75rem;\n }\n\n .md\\:oui-text-xs {\n font-size: var(--oui-font-size-xs, calc(0.875rem - 1px));\n line-height: 1.25rem;\n }\n}\n@media (min-width: 768px) {\n\n .lg\\:oui-mb-0 {\n margin-bottom: 0px;\n }\n\n .lg\\:oui-flex {\n display: flex;\n }\n\n .lg\\:oui-inline-flex {\n display: inline-flex;\n }\n\n .lg\\:oui-h-7 {\n height: 1.75rem;\n }\n\n .lg\\:oui-h-\\[20px\\] {\n height: 20px;\n }\n\n .lg\\:oui-h-\\[28px\\] {\n height: 28px;\n }\n\n .lg\\:oui-h-\\[64px\\] {\n height: 64px;\n }\n\n .lg\\:oui-w-7 {\n width: 1.75rem;\n }\n\n .lg\\:oui-w-\\[154px\\] {\n width: 154px;\n }\n\n .lg\\:oui-w-\\[20px\\] {\n width: 20px;\n }\n\n .lg\\:oui-w-\\[28px\\] {\n width: 28px;\n }\n\n .lg\\:oui-w-\\[360px\\] {\n width: 360px;\n }\n\n .lg\\:oui-w-\\[64px\\] {\n width: 64px;\n }\n\n .lg\\:oui-w-full {\n width: 100%;\n }\n\n .lg\\:oui-flex-1 {\n flex: 1 1 0%;\n }\n\n .lg\\:-oui-rotate-90 {\n --tw-rotate: -90deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n }\n\n .lg\\:oui-flex-row {\n flex-direction: row;\n }\n\n .lg\\:oui-flex-row-reverse {\n flex-direction: row-reverse;\n }\n\n .lg\\:oui-flex-col {\n flex-direction: column;\n }\n\n .lg\\:oui-flex-col-reverse {\n flex-direction: column-reverse;\n }\n\n .lg\\:oui-flex-wrap {\n flex-wrap: wrap;\n }\n\n .lg\\:oui-flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n\n .lg\\:oui-flex-nowrap {\n flex-wrap: nowrap;\n }\n\n .lg\\:oui-items-start {\n align-items: flex-start;\n }\n\n .lg\\:oui-items-end {\n align-items: flex-end;\n }\n\n .lg\\:oui-items-center {\n align-items: center;\n }\n\n .lg\\:oui-items-baseline {\n align-items: baseline;\n }\n\n .lg\\:oui-items-stretch {\n align-items: stretch;\n }\n\n .lg\\:oui-justify-start {\n justify-content: flex-start;\n }\n\n .lg\\:oui-justify-end {\n justify-content: flex-end;\n }\n\n .lg\\:oui-justify-center {\n justify-content: center;\n }\n\n .lg\\:oui-justify-between {\n justify-content: space-between;\n }\n\n .lg\\:oui-justify-around {\n justify-content: space-around;\n }\n\n .lg\\:oui-justify-evenly {\n justify-content: space-evenly;\n }\n\n .lg\\:oui-justify-stretch {\n justify-content: stretch;\n }\n\n .lg\\:oui-gap-\\[6px\\] {\n gap: 6px;\n }\n\n .lg\\:oui-p-6 {\n padding: 1.5rem;\n }\n\n .lg\\:oui-text-center {\n text-align: center;\n }\n\n .lg\\:oui-text-2xl {\n font-size: var(--oui-font-size-2xl, 1.5rem);\n line-height: 2rem;\n }\n\n .lg\\:oui-text-4xl {\n font-size: var(--oui-font-size-4xl, 1.875rem);\n line-height: 2.375rem;\n }\n\n .lg\\:oui-text-lg {\n font-size: var(--oui-font-size-lg, 1.125rem);\n line-height: 1.625rem;\n }\n\n .lg\\:oui-text-sm {\n font-size: var(--oui-font-size-sm,0.875rem);\n line-height: 1.25rem;\n }\n\n .lg\\:oui-text-xl {\n font-size: var(--oui-font-size-xl, 1.25rem);\n line-height: 1.75rem;\n }\n}\n@media (min-width: 1024px) {\n\n .xl\\:oui-block {\n display: block;\n }\n\n .xl\\:oui-flex {\n display: flex;\n }\n\n .xl\\:oui-inline-flex {\n display: inline-flex;\n }\n\n .xl\\:oui-grid {\n display: grid;\n }\n\n .xl\\:oui-h-4 {\n height: 1rem;\n }\n\n .xl\\:oui-h-8 {\n height: 2rem;\n }\n\n .xl\\:oui-h-\\[24px\\] {\n height: 24px;\n }\n\n .xl\\:oui-h-\\[90px\\] {\n height: 90px;\n }\n\n .xl\\:oui-w-4 {\n width: 1rem;\n }\n\n .xl\\:oui-w-8 {\n width: 2rem;\n }\n\n .xl\\:oui-w-\\[24px\\] {\n width: 24px;\n }\n\n .xl\\:oui-w-\\[90px\\] {\n width: 90px;\n }\n\n .xl\\:oui-flex-1 {\n flex: 1 1 0%;\n }\n\n .xl\\:oui-flex-row {\n flex-direction: row;\n }\n\n .xl\\:oui-flex-row-reverse {\n flex-direction: row-reverse;\n }\n\n .xl\\:oui-flex-col {\n flex-direction: column;\n }\n\n .xl\\:oui-flex-col-reverse {\n flex-direction: column-reverse;\n }\n\n .xl\\:oui-flex-wrap {\n flex-wrap: wrap;\n }\n\n .xl\\:oui-flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n\n .xl\\:oui-flex-nowrap {\n flex-wrap: nowrap;\n }\n\n .xl\\:oui-items-start {\n align-items: flex-start;\n }\n\n .xl\\:oui-items-end {\n align-items: flex-end;\n }\n\n .xl\\:oui-items-center {\n align-items: center;\n }\n\n .xl\\:oui-items-baseline {\n align-items: baseline;\n }\n\n .xl\\:oui-items-stretch {\n align-items: stretch;\n }\n\n .xl\\:oui-justify-start {\n justify-content: flex-start;\n }\n\n .xl\\:oui-justify-end {\n justify-content: flex-end;\n }\n\n .xl\\:oui-justify-center {\n justify-content: center;\n }\n\n .xl\\:oui-justify-between {\n justify-content: space-between;\n }\n\n .xl\\:oui-justify-around {\n justify-content: space-around;\n }\n\n .xl\\:oui-justify-evenly {\n justify-content: space-evenly;\n }\n\n .xl\\:oui-justify-stretch {\n justify-content: stretch;\n }\n\n .xl\\:oui-gap-\\[36px\\] {\n gap: 36px;\n }\n\n .xl\\:oui-p-3 {\n padding: 0.75rem;\n }\n\n .xl\\:oui-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n }\n\n .xl\\:oui-text-2xl {\n font-size: var(--oui-font-size-2xl, 1.5rem);\n line-height: 2rem;\n }\n\n .xl\\:oui-text-3xl {\n font-size: var(--oui-font-size-3xl, 1.75rem);\n line-height: 2.25rem;\n }\n\n .xl\\:oui-text-5xl {\n font-size: var(--oui-font-size-5xl, 2.25rem);\n line-height: 2.75rem;\n }\n\n .xl\\:oui-text-\\[32px\\] {\n font-size: 32px;\n }\n\n .xl\\:oui-text-base {\n font-size: var(--oui-font-size-base, 1rem);\n line-height: 1.5rem;\n }\n\n .xl\\:oui-text-lg {\n font-size: var(--oui-font-size-lg, 1.125rem);\n line-height: 1.625rem;\n }\n\n .xl\\:oui-text-sm {\n font-size: var(--oui-font-size-sm,0.875rem);\n line-height: 1.25rem;\n }\n\n .xl\\:oui-leading-\\[24px\\] {\n line-height: 24px;\n }\n}\n@media (min-width: 1280px) {\n\n .\\32xl\\:oui-flex {\n display: flex;\n }\n\n .\\32xl\\:oui-inline-flex {\n display: inline-flex;\n }\n\n .\\32xl\\:oui-h-\\[196px\\] {\n height: 196px;\n }\n\n .\\32xl\\:oui-h-\\[80px\\] {\n height: 80px;\n }\n\n .\\32xl\\:oui-h-auto {\n height: auto;\n }\n\n .\\32xl\\:oui-h-full {\n height: 100%;\n }\n\n .\\32xl\\:oui-max-h-\\[230px\\] {\n max-height: 230px;\n }\n\n .\\32xl\\:oui-w-\\[80px\\] {\n width: 80px;\n }\n\n .\\32xl\\:oui-w-auto {\n width: auto;\n }\n\n .\\32xl\\:oui-flex-1 {\n flex: 1 1 0%;\n }\n\n .\\32xl\\:oui-flex-row {\n flex-direction: row;\n }\n\n .\\32xl\\:oui-flex-row-reverse {\n flex-direction: row-reverse;\n }\n\n .\\32xl\\:oui-flex-col {\n flex-direction: column;\n }\n\n .\\32xl\\:oui-flex-col-reverse {\n flex-direction: column-reverse;\n }\n\n .\\32xl\\:oui-flex-wrap {\n flex-wrap: wrap;\n }\n\n .\\32xl\\:oui-flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n\n .\\32xl\\:oui-flex-nowrap {\n flex-wrap: nowrap;\n }\n\n .\\32xl\\:oui-items-start {\n align-items: flex-start;\n }\n\n .\\32xl\\:oui-items-end {\n align-items: flex-end;\n }\n\n .\\32xl\\:oui-items-center {\n align-items: center;\n }\n\n .\\32xl\\:oui-items-baseline {\n align-items: baseline;\n }\n\n .\\32xl\\:oui-items-stretch {\n align-items: stretch;\n }\n\n .\\32xl\\:oui-justify-start {\n justify-content: flex-start;\n }\n\n .\\32xl\\:oui-justify-end {\n justify-content: flex-end;\n }\n\n .\\32xl\\:oui-justify-center {\n justify-content: center;\n }\n\n .\\32xl\\:oui-justify-between {\n justify-content: space-between;\n }\n\n .\\32xl\\:oui-justify-around {\n justify-content: space-around;\n }\n\n .\\32xl\\:oui-justify-evenly {\n justify-content: space-evenly;\n }\n\n .\\32xl\\:oui-justify-stretch {\n justify-content: stretch;\n }\n\n .\\32xl\\:oui-text-2xl {\n font-size: var(--oui-font-size-2xl, 1.5rem);\n line-height: 2rem;\n }\n\n .\\32xl\\:oui-text-base {\n font-size: var(--oui-font-size-base, 1rem);\n line-height: 1.5rem;\n }\n\n .\\32xl\\:oui-text-lg {\n font-size: var(--oui-font-size-lg, 1.125rem);\n line-height: 1.625rem;\n }\n\n .\\32xl\\:oui-text-sm {\n font-size: var(--oui-font-size-sm,0.875rem);\n line-height: 1.25rem;\n }\n}\n@media (min-width: 1440px) {\n\n .\\33xl\\:oui-mb-0 {\n margin-bottom: 0px;\n }\n\n .\\33xl\\:oui-mt-4 {\n margin-top: 1rem;\n }\n\n .\\33xl\\:oui-flex {\n display: flex;\n }\n\n .\\33xl\\:oui-inline-flex {\n display: inline-flex;\n }\n\n .\\33xl\\:oui-hidden {\n display: none;\n }\n\n .\\33xl\\:oui-max-h-\\[300px\\] {\n max-height: 300px;\n }\n\n .\\33xl\\:oui-w-1\\/3 {\n width: 33.333333%;\n }\n\n .\\33xl\\:oui-w-2\\/3 {\n width: 66.666667%;\n }\n\n .\\33xl\\:oui-flex-\\[0_0_calc\\(\\(100\\%_-_48px\\)_\\/_4\\)\\] {\n flex: 0 0 calc((100% - 48px) / 4);\n }\n\n .\\33xl\\:oui-flex-row {\n flex-direction: row;\n }\n\n .\\33xl\\:oui-flex-row-reverse {\n flex-direction: row-reverse;\n }\n\n .\\33xl\\:oui-flex-col {\n flex-direction: column;\n }\n\n .\\33xl\\:oui-flex-col-reverse {\n flex-direction: column-reverse;\n }\n\n .\\33xl\\:oui-flex-wrap {\n flex-wrap: wrap;\n }\n\n .\\33xl\\:oui-flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n\n .\\33xl\\:oui-flex-nowrap {\n flex-wrap: nowrap;\n }\n\n .\\33xl\\:oui-items-start {\n align-items: flex-start;\n }\n\n .\\33xl\\:oui-items-end {\n align-items: flex-end;\n }\n\n .\\33xl\\:oui-items-center {\n align-items: center;\n }\n\n .\\33xl\\:oui-items-baseline {\n align-items: baseline;\n }\n\n .\\33xl\\:oui-items-stretch {\n align-items: stretch;\n }\n\n .\\33xl\\:oui-justify-start {\n justify-content: flex-start;\n }\n\n .\\33xl\\:oui-justify-end {\n justify-content: flex-end;\n }\n\n .\\33xl\\:oui-justify-center {\n justify-content: center;\n }\n\n .\\33xl\\:oui-justify-between {\n justify-content: space-between;\n }\n\n .\\33xl\\:oui-justify-around {\n justify-content: space-around;\n }\n\n .\\33xl\\:oui-justify-evenly {\n justify-content: space-evenly;\n }\n\n .\\33xl\\:oui-justify-stretch {\n justify-content: stretch;\n }\n\n .\\33xl\\:oui-gap-2 {\n gap: 0.5rem;\n }\n}\n@media (min-width: 1920px) {\n\n .\\34xl\\:oui-flex {\n display: flex;\n }\n\n .\\34xl\\:oui-inline-flex {\n display: inline-flex;\n }\n\n .\\34xl\\:oui-flex-row {\n flex-direction: row;\n }\n\n .\\34xl\\:oui-flex-row-reverse {\n flex-direction: row-reverse;\n }\n\n .\\34xl\\:oui-flex-col {\n flex-direction: column;\n }\n\n .\\34xl\\:oui-flex-col-reverse {\n flex-direction: column-reverse;\n }\n\n .\\34xl\\:oui-flex-wrap {\n flex-wrap: wrap;\n }\n\n .\\34xl\\:oui-flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n }\n\n .\\34xl\\:oui-flex-nowrap {\n flex-wrap: nowrap;\n }\n\n .\\34xl\\:oui-items-start {\n align-items: flex-start;\n }\n\n .\\34xl\\:oui-items-end {\n align-items: flex-end;\n }\n\n .\\34xl\\:oui-items-center {\n align-items: center;\n }\n\n .\\34xl\\:oui-items-baseline {\n align-items: baseline;\n }\n\n .\\34xl\\:oui-items-stretch {\n align-items: stretch;\n }\n\n .\\34xl\\:oui-justify-start {\n justify-content: flex-start;\n }\n\n .\\34xl\\:oui-justify-end {\n justify-content: flex-end;\n }\n\n .\\34xl\\:oui-justify-center {\n justify-content: center;\n }\n\n .\\34xl\\:oui-justify-between {\n justify-content: space-between;\n }\n\n .\\34xl\\:oui-justify-around {\n justify-content: space-around;\n }\n\n .\\34xl\\:oui-justify-evenly {\n justify-content: space-evenly;\n }\n\n .\\34xl\\:oui-justify-stretch {\n justify-content: stretch;\n }\n}\n.\\[\\&\\:has\\(\\>\\.oui-day-range-end\\)\\]\\:oui-rounded-r-md:has(>.oui-day-range-end) {\n border-top-right-radius: 0.375rem;\n border-bottom-right-radius: 0.375rem;\n}\n.\\[\\&\\:has\\(\\>\\.oui-day-range-start\\)\\]\\:oui-rounded-l-md:has(>.oui-day-range-start) {\n border-top-left-radius: 0.375rem;\n border-bottom-left-radius: 0.375rem;\n}\n.\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:oui-rounded-md:has([aria-selected]) {\n border-radius: 0.375rem;\n}\n.\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:oui-bg-base-4:has([aria-selected]) {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-4) / var(--tw-bg-opacity));\n}\n.first\\:\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:oui-rounded-l-md:has([aria-selected]):first-child {\n border-top-left-radius: 0.375rem;\n border-bottom-left-radius: 0.375rem;\n}\n.last\\:\\[\\&\\:has\\(\\[aria-selected\\]\\)\\]\\:oui-rounded-r-md:has([aria-selected]):last-child {\n border-top-right-radius: 0.375rem;\n border-bottom-right-radius: 0.375rem;\n}\n.\\[\\&\\:has\\(\\[aria-selected\\]\\.day-outside\\)\\]\\:oui-bg-base-4\\/50:has([aria-selected].day-outside) {\n background-color: rgb(var(--oui-color-base-4) / 0.5);\n}\n.\\[\\&\\:has\\(\\[aria-selected\\]\\.day-range-end\\)\\]\\:oui-rounded-r-md:has([aria-selected].day-range-end) {\n border-top-right-radius: 0.375rem;\n border-bottom-right-radius: 0.375rem;\n}\n.\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:oui-pr-0:has([role=checkbox]) {\n padding-right: 0px;\n}\n.\\[\\&\\>\\[role\\=checkbox\\]\\]\\:oui-translate-y-\\[2px\\]>[role=checkbox] {\n --tw-translate-y: 2px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.\\[\\&\\>span\\]\\:oui-line-clamp-1>span {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n}\n.\\[\\&_tr\\:last-child\\]\\:oui-border-0 tr:last-child {\n border-width: 0px;\n}\n.\\[\\&_tr\\]\\:oui-border-b tr {\n border-bottom-width: 1px;\n}\n"]}