@orderly.network/ui 2.0.0 → 2.0.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +530 -694
- package/dist/index.d.ts +530 -694
- package/dist/index.js +221 -198
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +19 -16
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +6 -3
package/dist/index.mjs.map
CHANGED
|
@@ -1 +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"]}
|
|
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/button/throttledButton.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/icon/refresh.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/input.tooltip.tsx","../src/tooltip/tooltip.tsx","../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/formatter/range.ts","../src/input/formatter/identifier.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/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/plugin/install.tsx","../src/plugin/types.ts","../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/table/dataTable/emptyDataState.tsx","../src/table/dataGrid/filter.tsx","../src/table/dataTable/pagination.tsx","../src/table/dataTable/usePagination.ts","../src/tableView/tableView.tsx","../src/tableView/transform.ts","../src/tableView/hooks/useWrap.ts","../src/tableView/tablePagination.tsx","../src/tableView/tableHeader.tsx","../src/tableView/utils/getColumnPinningProps.ts","../src/tableView/icons.tsx","../src/tableView/className.ts","../src/tableView/tableBody.tsx","../src/tableView/tableCell.tsx","../src/tableView/hooks/useInit.ts","../src/tableView/tableEmpty.tsx","../src/tableView/tablePlaceholder.tsx","../src/tableView/hooks/useSort.ts","../src/tableView/hooks/useShowHeader.ts","../src/tableView/hooks/useShowPagination.ts","../src/tableView/hooks/useScroll.ts","../src/tableView/dataFilter.tsx","../src/dialog/dialog.tsx","../src/dialog/alertDialog.tsx","../src/divider/divider.tsx","../src/dialog/simpleDialogFooter.tsx","../src/dialog/simpleDialog.tsx","../src/hooks/useMediaQuery.ts","../src/hooks/useScreen.ts","../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/sheet/helper.tsx","../src/sheet/actionSheet.tsx","../src/sheet/simpleSheet.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/tabs/tabsBase.tsx","../src/tabs/tabs.tsx","../src/provider/orderlyThemeProvider.tsx","../src/provider/componentProvider.tsx","../src/card/cardBase.tsx","../src/card/card.tsx","../src/card/hoverCard.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/collapsible/collapsible.tsx","../src/collapsible/collapse/collapse.tsx","../src/collapsible/collapse/collapseContext.tsx","../src/collapsible/collapse/panel.tsx","../src/dropdown/dropdown.tsx","../src/dropdown/menuItem.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","disabled","Comp","isDisabled","iconElement","content","spinnerSize","buttonVariants","Button","variant","fullWidth","angleStyle","useCallback","useRef","ThrottledButton","onClick","throttleDuration","lastCall","debouncedClick","delay","fn","args","now","gridVariants","Grid","cols","rows","autoFlow","useEffect","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","formatAddress","address","range","start","end","reg","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","RefreshIcon","AvatarPrimitive","makeBlockie","avatarVariants","AvatarBase","AvatarImage","image","AvatarFallback","fallback","Avatar","src","delayMs","alt","onLoadingStatusChange","EVMAvatar","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","capitalize","copyable","copyIconSize","onCopy","showIcon","iconSize","copyIconTestid","isIcon","prefixElement","e","date","arr","type","base","quote","contentWithFix","gradientTextVariants","GradientText","useState","useId","findLongestCommonSubString","BaseInput","clearable","onClean","fixClassName","helpText","inputMode","containerClassName","onValueChange","onChange","id","formatters","inputProps","cursor","setCursor","innerInputRef","prevInputValue","isFocused","innerFormatters","formatToRender","index","formatToChange","formattedValue","nextValueLen","prevValueLen","next","event","currentCursor","diffIndex","InputAdditional","as","InputPrefix","InputSuffix","inputVariants","Input","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","currentValue","SelectWithOptions","optionRenderer","ItemIndicator","SelectItemText","TokenSelect","tokens","token","selectable","Option","QuantityInput","setToken","tokenOptions","node","TooltipPrimitive","cn","TooltipProvider","TooltipRoot","TooltipTrigger","TooltipPortal","tooltipVariants","TooltipContent","TooltipArrow","arrowProps","Tooltip","defaultOpen","open","onOpenChange","delayDuration","disableHoverableContent","tooltipProps","InputWithTooltip","tooltip","triggerClassName","setOpen","formatter_exports","__export","createRegexInputFormatter","currencyFormatter","dpFormatter","identifierFormatter","numberFormatter","rangeFormatter","regex","onSendBefore","config","onBefore","truncateNumber","numStr","decimalPlaces","decimalIndex","endIndex","innerMax","innerMin","innerValue","integer","negative","_value","inputHelpTextVariants","InputHelpText","textFieldVariants","TextField","InputLabel","CheckboxPrimitive","checkboxVariants","Checkbox","SwitchPrimitives","switchVariants","Switch","thumb","badgeVariants","Badge","Logo","href","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","HoverCard","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","installExtension","component","setExtensionBuilder","ExtensionPositionEnum","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","dateRange","setDateRange","isMobileView","setIsMobileView","update","useDebouncedCallback","handleResize","nextOpen","callback","timeoutRef","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","EmptyDataState","Filter","usePagination","initial","dataTotal","setPage","pageSize","_setPageSize","setPageSize","totalPage","count","pageTotal","curPage","getCoreRowModel","useReactTable","getExpandedRowModel","getSortedRowModel","getFilteredRowModel","createColumnHelper","getPaginationRowModel","Transform","columnHelper","commonProps","rowA","rowB","columnId","state","useWrap","deps","bgColor","TablePagination","getColumnPinningProps","isHeader","isPinned","isLastLeftPinnedColumn","isFirstRightPinnedColumn","contentCls","shadowCls","leftShadow","rightShadow","alignVariants","headerGroup","rowClassName","title","pinStyle","pinClassNames","canSort","isSorted","SortIndicator","flexRender","cell","_textProps","_numeralProps","rowView","CellHover","isFirst","isLast","useInit","params","TableEmpty","useSort","initialSort","sorting","setSorting","desc","useShowHeader","initShowHeader","showHeader","useShowPagination","initShowPagination","showPagination","useScroll","scrollRef","showLeftShadow","setShowLeftShadow","showRightShadow","setShowRightShadow","isScrolledToRight","scrollAble","hasHorizontalScroll","scrollEnd","TableView","getRowCanExpand","manualPagination","manualSorting","formatColumns","columnPinning","rowSelection","paginationState","paginationConfig","columnFilters","showPlaceholder","DataFilter","DialogPrimitive","dialogVariants","Dialog","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","overlay","DialogContent","closable","close","DialogHeader","DialogBody","body","DialogFooter","DialogTitle","DialogDescription","dividerVariants","Divider","lineStyle","SimpleDialogFooter","actions","primaryLoading","setPrimaryLoading","buttons","SimpleDialog","useMediaQuery","query","getMatches","matches","setMatches","handleChange","matchMedia","useScreen","isMobile","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","updateArgs","resolve","modalCallbacks","resolveHide","hideModalCallbacks","MODAL_REGISTRY","create","defaultVisible","keepMounted","shouldMount","ALREADY_MOUNTED","delayVisible","comp","unregister","initialState","dispatch","showModal","hideModal","removeModal","updateArgsAction","setModalStates","reducer","action","newState","ModalContainer","visibleModalIds","components","ModalProvider","dispatchOrigin","theResolve","theReject","promise","SheetPrimitive","Sheet","SheetTrigger","SheetClose","SheetPortal","SheetOverlay","sheetVariants","SheetContent","side","closeable","SheetHeader","SheetBody","SheetFooter","SheetTitle","SheetDescription","createSheetComponent","SimpleSheet","registerSimpleSheet","ActionItem","onItemClick","ActionDivision","ActionSheetContent","ActionSheet","items","BaseSheet","sheet","CreatedAlertDialog","onOkHandler","alert","dialog","ConfirmDialog","defaultSize","err","confirm","createDialogComponent","contentClassName","bodyClassName","registerSimpleDialog","TabsPrimitive","tabsVariants","TabsBase","TabsList","list","TabsTrigger","iconClassName","TabsContent","ComponentsProvider","Element","OrderlyThemeContext","useOrderlyTheme","OrderlyThemeProvider","TabsContext","Tabs","getComponentTheme","contentVisible","variantTheme","tabList","setTabList","registerTab","tab","TabPanel","testid","tabConfig","cardVariants","CardBase","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","Card","HoverCardPrimitive","HoverCardRoot","HoverCardTrigger","HoverCardContent","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","tips","setInvalue","v","innerMasks","_max","piece","len","onValueChangeInner","Marks","SliderTip","isInnerMask","selIndex","colorCls","textCls","percent","thumbInBoundsOffset","__value","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","CollapsiblePrimitive","Collapsible","CollapsibleTrigger","CollapsibleContent","CollapseContext","useCollapseContext","Panel","activeKey","setActiveKey","CollapseRoot","Collapse","collapse_default","DropdownMenuPrimitive","DropdownMenuRoot","DropdownMenuTrigger","DropdownMenuGroup","DropdownMenuPortal","DropdownMenuSub","DropdownMenuRadioGroup","dropdownMenuVariants","DropdownMenuContent","DropdownMenuItem","inset","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut","shortcut","SimpleDropdownMenu","menu","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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WAAY,eAAe,EAC9D,GAAI,CAAC,WAAY,iBAAkB,WAAY,aAAa,CAC9D,EACA,MAAO,CACL,QAAS,CACP,gEACF,EACA,UAAW,iDACX,QAAS,mDACT,IAAK,mDACL,OAAQ,iDACR,KAAM,iDACN,QACE,iEACF,KAAM,iDACN,MACE,sEACJ,EACA,UAAW,CACT,KAAM,YACR,CAIF,EACA,iBAAkB,CAEhB,CACE,QAAS,YACT,MAAO,UACP,UAAW,CAAC,wBAAyB,2BAA2B,CAClE,EACA,CACE,QAAS,YACT,MAAO,YACP,UAAW,CAAC,gBAAiB,2BAA2B,CAC1D,EACA,CACE,QAAS,YACT,MAAO,UACP,UAAW,CAAC,iBAAkB,2BAA2B,CAC3D,EACA,CACE,QAAS,YACT,MAAO,MACP,UAAW,CAAC,sBAAuB,2BAA2B,CAChE,EACA,CACE,QAAS,YACT,MAAO,UACP,UAAW,CAAC,wBAAyB,2BAA2B,CAClE,EACA,CACE,QAAS,YACT,MAAO,SACP,UAAW,CAAC,gBAAiB,0BAA0B,CACzD,EACA,CACE,QAAS,YACT,MAAO,OACP,UAAW,CAAC,oBAAqB,0BAA0B,CAC7D,EACA,CACE,QAAS,YACT,MAAO,OACP,UAAW,CAAC,gBAAiB,wBAAwB,CACvD,EACA,CACE,QAAS,YACT,MAAO,QACP,UAAW,CACT,eACA,uBACA,uFACF,CACF,EAEA,CACE,QAAS,WACT,MAAO,UACP,UAAW,CACT,4BACA,0BACA,gCACF,CACF,EACA,CACE,QAAS,WACT,MAAO,YACP,UAAW,CACT,oBACA,4BACA,wBACF,CACF,EACA,CACE,QAAS,WACT,MAAO,UACP,UAAW,CACT,qBACA,mBACA,yBACF,CACF,EACA,CACE,QAAS,WACT,MAAO,UACP,UAAW,CACT,4BACA,4BACA,gCACF,CACF,EACA,CACE,QAAS,WACT,MAAO,SACP,UAAW,CACT,oBACA,kBACA,wBACF,CACF,EACA,CACE,QAAS,WACT,MAAO,OACP,UAAW,CAAC,oBAAqB,eAAe,CAClD,EAQA,CACE,QAAS,OACT,MAAO,UACP,UAAW,CAAC,wDAAwD,CACtE,EACA,CACE,Q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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 {\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: [\n \"hover:oui-bg-primary-darken/80 active:oui-bg-primary-darken/70\",\n ],\n secondary: \"hover:oui-bg-base-4/80 active:oui-bg-base-4/70\",\n success: \"hover:oui-bg-success/80 active:oui-bg-success/70\",\n buy: \"hover:oui-bg-success/80 active:oui-bg-success/70\",\n danger: \"hover:oui-bg-danger/80 active:oui-bg-danger/70\",\n sell: \"hover:oui-bg-danger/80 active:oui-bg-danger/70\",\n warning:\n \"hover:oui-bg-warning-darken/80 active:oui-bg-warning-darken/70\",\n gray: \"hover:oui-bg-base-2/80 active:oui-bg-base-2/70\",\n light:\n \"hover:oui-bg-white/80 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-darken\", \"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: \"buy\",\n className: [\"oui-bg-trade-profit\", \"oui-text-success-contrast\"],\n },\n {\n variant: \"contained\",\n color: \"warning\",\n className: [\"oui-bg-warning-darken\", \"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: \"sell\",\n className: [\"oui-bg-trade-loss\", \"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: [\n \"oui-border-primary-darken\",\n \"oui-text-primary-darken\",\n \"hover:oui-bg-primary-darken/20\",\n ],\n },\n {\n variant: \"outlined\",\n color: \"secondary\",\n className: [\n \"oui-border-base-4\",\n \"oui-text-base-contrast-54\",\n \"hover:oui-bg-base-4/20\",\n ],\n },\n {\n variant: \"outlined\",\n color: \"success\",\n className: [\n \"oui-border-success\",\n \"oui-text-success\",\n \"hover:oui-bg-success/20\",\n ],\n },\n {\n variant: \"outlined\",\n color: \"warning\",\n className: [\n \"oui-border-warning-darken\",\n \"oui-text-warning-contrast\",\n \"hover:oui-bg-warning-darken/20\",\n ],\n },\n {\n variant: \"outlined\",\n color: \"danger\",\n className: [\n \"oui-border-danger\",\n \"oui-text-danger\",\n \"hover:oui-bg-danger/20\",\n ],\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-darken hover:oui-bg-primary-darken/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-contrast hover:oui-bg-warning-darken/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 {\n responsiveVariants: [\"md\", \"lg\"],\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 disabled,\n ...rest\n } = props;\n const Comp = asChild ? Slot : \"button\";\n\n const isDisabled = typeof disabled !== \"undefined\" ? disabled : loading;\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} disabled={isDisabled} 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-darken\",\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-darken\",\n success: \"oui-fill-success\",\n danger: \"oui-fill-danger\",\n warning: \"oui-fill-warning-darken\",\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, { PropsWithChildren, useCallback, useRef, useState } from \"react\";\nimport { Button, ButtonProps } from \".\";\n\nconst ThrottledButton = React.forwardRef<\n HTMLButtonElement,\n PropsWithChildren<ButtonProps & { throttleDuration?: number }>\n>(({ onClick, throttleDuration = 700, ...props }, ref) => {\n const lastCall = useRef(0);\n const throttle = useCallback(\n (delay: number, fn?: Function) => {\n return function (...args: any[]) {\n const now = Date.now();\n\n // Check if enough time has passed since the last call\n if (now - lastCall.current >= delay) {\n lastCall.current = now;\n fn?.(...args); // Execute the function\n }\n };\n },\n [throttleDuration]\n );\n\n const debouncedClick = throttle(throttleDuration, onClick);\n return <Button onClick={debouncedClick} ref={ref} {...props} />;\n});\n\nexport { ThrottledButton };\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 {...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 {children}\n </Numeral>\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-darken\",\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-darken\",\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 dashBoard: {\n default: \"oui-border-b oui-border-dashed oui-border-base-contrast-12\",\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\n\nexport function formatAddress(address: string, range?: [number, number]) {\n if (address === undefined || address === null) return '';\n const [start, end] = range ?? [6, 4];\n const reg = new RegExp(`^(.{${start}})(.*)(.{${end}})$`);\n return `${address.replace(reg, \"$1...$3\")}`;\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 &\n 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 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, showIcon, rule, iconSize, children]);\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, prefixElement]);\n\n return (\n <Text {...rest} ref={ref}>\n {contentWithFix}\n </Text>\n );\n }\n);\n\nFormattedText.displayName = \"FormattedText\";\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-darken\",\n success: \"oui-text-success\",\n danger: \"oui-text-danger\",\n warning: \"oui-text-warning-darken\",\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 = \"EditIcon\";\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 React from \"react\";\nimport { BaseIcon, BaseIconProps } from \"./baseIcon\";\n\nexport const RefreshIcon = 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.007 2.99a9 9 0 0 0-5.594 1.94 1 1 0 1 0 1.25 1.562 6.97 6.97 0 0 1 4.344-1.5 7 7 0 0 1 7 7h-2l3 4 3-4h-2a9 9 0 0 0-9-9m-8 5-3 4h2a9 9 0 0 0 9 9 9 9 0 0 0 5.594-1.937 1 1 0 1 0-1.25-1.562 6.96 6.96 0 0 1-4.344 1.5 7 7 0 0 1-7-7h2z\"\n />\n </BaseIcon>\n );\n }\n);\n\nRefreshIcon.displayName = \"RefreshIcon\";\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 '2xs': {\n root: \"oui-w-4 oui-h-4\",\n },\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?: \"2xs\" | \"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\";\nexport { RefreshIcon } from \"./refresh\";\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-darken\",\n brand: \"oui-gradient-brand\",\n success: \"oui-gradient-success\",\n warning: \"oui-gradient-warning-darken\",\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","export { 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, formatAddress } from \"./utils\";\n\nexport type TextType = typeof BaseText & {\n formatted: typeof FormattedText;\n numeral: typeof Numeral;\n gradient: typeof GradientText;\n};\n\nconst Text = BaseText as TextType;\nText.formatted = FormattedText;\nText.numeral = Numeral;\nText.gradient = GradientText;\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\n//@ts-ignore\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\nQuantityInput.displayName = \"QuantityInput\";\n","import React, { type InputHTMLAttributes, useId } from \"react\";\nimport { cnBase, cn, 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 {\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-light\",\n \"oui-input-root\",\n ],\n additional: [\n \"oui-h-full oui-flex oui-flex-col oui-justify-center oui-px-2 oui-text-base-contrast\",\n ],\n closeButton: [\n \"oui-cursor-pointer\",\n \"oui-invisible\",\n \"peer-focus:oui-visible\",\n ],\n },\n variants: {\n // variant: {\n // outline:{\n // box:\n // }\n // },\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\", \"focus-within:oui-outline-success\"],\n input: [\"oui-text-success\"],\n },\n danger: {\n box: [\"oui-outline-danger\", \"focus-within:oui-outline-danger\"],\n input: [\"oui-text-danger\"],\n },\n warning: {\n box: [\"oui-outline-warning-darken\", \"focus-within:oui-outline-warning-darken\"],\n input: [\"oui-text-warning-darken\"],\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\n defaultVariants: {\n size: \"lg\",\n },\n },\n {\n responsiveVariants: [\"md\", \"lg\"],\n }\n);\n\n// @ts-ignore\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 prefix?: string;\n suffix?: 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({\n className: cnBase(classNames?.additional, classNames?.prefix),\n })}\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({\n className: cnBase(classNames?.additional, classNames?.suffix),\n })}\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\nClearButton.displayName = \"ClearButton\";\n\nInput.displayName = \"Input\";\n\nexport { Input, inputVariants };\n\nexport type { InputProps };\n","import React, {\n useState,\n useRef,\n useCallback,\n useMemo,\n useEffect,\n forwardRef,\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 = 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 isFocused = useRef<boolean>(false);\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 isFocused: isFocused.current,\n });\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 = innerFormatters.length - 1;\n while (index > -1) {\n value = innerFormatters[index].onSendBefore(value, {\n isFocused: isFocused.current,\n });\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 isFocused.current = true;\n inputProps.onFocus?.(event);\n };\n\n const onInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n isFocused.current = false;\n inputProps.onBlur?.(event);\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\nBaseInput.displayName = \"BaseInput\";\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 htmlFor={props.name} className={props.className}>\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\";\n// import { SizeType } from \"../helpers/sizeType\";\nimport { ScrollArea } from \"../scrollarea\";\nimport { type SelectVariantProps } from \"./select\";\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?: SelectVariantProps[\"size\"];\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-line-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 {\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-text-base-contrast-54\",\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-[state=checked]:oui-bg-base-5\",\n \"data-[state=checked]:oui-text-base-contrast-80\",\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-xs\"],\n item: [\"oui-h-7\", \"oui-text-xs\"],\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 {\n responsiveVariants: [\"md\", \"lg\"],\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 SelectVariantProps = VariantProps<typeof selectVariants>;\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} & SelectVariantProps;\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\";\nimport { Flex } from \"../flex\";\nimport { Box } from \"../box\";\nimport { cn } from \"..\";\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 currentValue?: string;\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 = (\n option: SelectOption,\n currentValue?: string\n) => (\n <SelectItem key={option.value} value={option.value} className={cn(\"oui-relative\")}>\n {option.label}\n {currentValue == option.value && (\n <Box\n width={4}\n height={4}\n gradient=\"primary\"\n r=\"full\"\n className=\"oui-absolute oui-right-2 oui-top-1/2 -oui-translate-y-1/2\"\n />\n )}\n </SelectItem>\n);\n\nexport const SelectWithOptions: FC<SelectWithOptionsProps> = (props) => {\n const {\n children,\n options,\n optionRenderer = defaultOptionRenderer,\n currentValue,\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, currentValue), {\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","import { forwardRef, useEffect, useState } from \"react\";\nimport {\n TooltipContent,\n TooltipPortal,\n TooltipProvider,\n TooltipRoot,\n TooltipArrow,\n TooltipTrigger,\n} from \"../tooltip\";\nimport { Input, InputProps } from \"./input\";\nimport type { TooltipContentProps } from \"@radix-ui/react-tooltip\";\n\nexport type InputWithTooltipProps = InputProps & {\n tooltip?: React.ReactNode;\n tooltipProps?: {\n content?: TooltipContentProps;\n arrow?: TooltipContentProps;\n };\n triggerClassName?: string;\n};\n\nexport const InputWithTooltip = forwardRef<\n HTMLInputElement,\n InputWithTooltipProps\n>((props, ref) => {\n const { tooltip, tooltipProps, triggerClassName, ...inputProps } = props;\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n if (typeof tooltip !== \"undefined\" && tooltip !== \"\" && tooltip !== null) {\n setOpen(true);\n } else {\n setOpen(false);\n }\n }, [tooltip]);\n\n return (\n <TooltipRoot open={open}>\n <TooltipTrigger asChild>\n <div className={triggerClassName}>\n <Input {...inputProps} ref={ref} />\n </div>\n </TooltipTrigger>\n <TooltipPortal>\n <TooltipContent {...tooltipProps?.content}>\n {props.tooltip}\n <TooltipArrow {...tooltipProps?.arrow}/>\n </TooltipContent>\n </TooltipPortal>\n </TooltipRoot>\n );\n});\n\nInputWithTooltip.displayName = \"InputWithTooltip\";\n","import * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { tv } from \"../utils/tv\";\nimport { cn } from \"tailwind-variants\";\nimport { TooltipContentProps } from \"@radix-ui/react-tooltip\";\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\n// const TooltipArrow = TooltipPrimitive.Arrow;\n\nconst TooltipPortal = TooltipPrimitive.Portal;\n\nconst tooltipVariants = tv({\n base: [\n \"oui-z-50\",\n \"oui-overflow-hidden\",\n \"oui-rounded-md\",\n \"oui-bg-base-8\",\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\nconst TooltipArrow = (props: { className?: string, style?: React.CSSProperties }) => {\n const { className, ...arrowProps } = props;\n return (\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 );\n};\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 tooltipProps?: {\n arrow?: TooltipContentProps;\n };\n }\n>(\n (\n {\n // className,\n children,\n content,\n defaultOpen,\n open,\n onOpenChange,\n delayDuration,\n disableHoverableContent,\n arrow,\n tooltipProps,\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 <TooltipPortal>\n <TooltipContent ref={ref} {...props}>\n {content}\n <TooltipArrow {...tooltipProps?.arrow} />\n </TooltipContent>\n </TooltipPortal>\n </TooltipPrimitive.Root>\n );\n }\n);\n\nTooltip.displayName = \"Tooltip\";\n\nexport {\n Tooltip,\n TooltipRoot,\n TooltipTrigger,\n TooltipContent,\n TooltipProvider,\n TooltipArrow,\n TooltipPortal,\n};\n","export { currencyFormatter } from \"./currency\";\n\nexport { numberFormatter } from \"./number\";\n\nexport { createRegexInputFormatter } from \"./regex\";\n\nexport { dpFormatter } from \"./dp\";\n\nexport { rangeFormatter } from \"./range\";\n\nexport { identifierFormatter } from \"./identifier\";","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 if (value === '00') return '0';\n\n // if (/^0{2,}$/.test(value)) {\n // return \"0\";\n // }\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 // if (config && config.tick !== null) {\n // return utils.formatNumber(value, config.tick) ?? value;\n // }\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 { InputFormatterOptions } from \"./inputFormatter\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nexport const rangeFormatter = (props: { max?: number; min?: number }) => {\n const onBefore = (value: string | number, options: InputFormatterOptions) => {\n if (typeof value === \"number\") value = value.toString();\n if (!value || value.endsWith(\".\")) return value;\n\n const innerMax = props.max ?? Number(value);\n const innerMin = props.min ?? Number(value);\n const innerValue = Number(value);\n\n return `${\n innerValue < innerMin\n ? innerMin\n : innerValue > innerMax\n ? innerMax\n : innerValue\n }`;\n };\n\n return {\n onRenderBefore: onBefore,\n onSendBefore: onBefore,\n };\n};\n","import { InputFormatterOptions } from \"./inputFormatter\";\nimport { Decimal } from \"@orderly.network/utils\";\n\nexport const identifierFormatter = (\n// props: {\n// integer?: string;\n// negative?: string;\n// }\n) => {\n // const {\n // integer = '+',\n // negative = '-',\n // } = props;\n\n const integer = '+';\n const negative = '-';\n return {\n onRenderBefore: (value: string | number, options: InputFormatterOptions) => {\n if (typeof value === \"number\") value = value.toString();\n if (!value || value.endsWith(\".\")) return value;\n const _value = Number(value);\n if (_value) {\n // greater than 0 && not start with +\n if (_value > 0 && !value.startsWith(integer)) return integer + value;\n // greater less 0 && not start with -\n if (_value < 0 && !value.startsWith(negative)) return negative + value;\n }\n return value;\n },\n onSendBefore: (value: string | number, options: InputFormatterOptions) => {\n if (typeof value === \"number\") value = value.toString();\n if (!value || value.endsWith(\".\")) return value;\n const _value = Number(value);\n if (_value) {\n // greater than 0\n if (_value > 0) return value.replace(integer, \"\");\n }\n return value;\n },\n };\n};\n\n","import React from \"react\";\nimport { Input, InputProps } from \"./input\";\nimport { InputHelpText, type InputHelpTextVariantProps } 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()}>\n {label}\n </InputLabel>\n <div>\n <Input {...inputProps} />\n {(helpText?.length || 0 > 0) && (\n <InputHelpText\n color={inputProps.color as InputHelpTextVariantProps[\"color\"]}\n >\n {helpText}\n </InputHelpText>\n )}\n </div>\n </div>\n );\n});\n\nTextField.displayName = \"TextField\";\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-darken\"],\n default: [\"oui-text-base-contrast-54\"],\n },\n },\n});\n\nexport type InputHelpTextVariantProps = VariantProps<\n typeof inputHelpTextVariants\n>;\n\ninterface InputHelpTextProps\n extends ComponentPropsWithout<\"div\", RemovedProps>,\n InputHelpTextVariantProps {\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\";\nimport { InputWithTooltip } from \"./input.tooltip\";\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 tooltip: typeof InputWithTooltip;\n};\n\nconst Input = InputBase as InputType;\nInput.token = QuantityInput;\nInput.tooltip = InputWithTooltip;\n\nexport { Input, inputVariants };\n","import * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { tv, cnBase, VariantProps } 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-darken\",\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-border-none\",\n // \"data-[state=checked]:oui-text-base-contrast\",\n ],\n variants: {\n color: {\n blue: \"oui-border-primary-darken data-[state=checked]:oui-bg-primary-darken data-[state=checked]:oui-text-base-contrast\",\n white: \"oui-border-base-contrast-54 \",\n // data-[state=checked]:oui-bg-white/80 data-[state=checked]:oui-text-[rgba(0,0,0,0.88)]\n },\n variant: {\n // checkBox: [],\n checkBox: \"data-[state=checked]:oui-border-none\",\n radio:\n \"oui-rounded-full data-[state=checked]:oui-border-base-contrast-20 data-[state=checked]:oui-bg-transparent\",\n },\n },\n defaultVariants: {\n color: \"blue\",\n // style: \"checkBox\",\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 variant?: \"checkBox\" | \"radio\";\n }\n>(({ className, color = \"blue\", variant = \"checkBox\", ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={checkboxVariants({ color, className, variant })}\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 {variant === \"checkBox\" ? (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.078.71A2.333 2.333 0 0 0 .745 3.041v5.834a2.333 2.333 0 0 0 2.333 2.333H8.91a2.333 2.333 0 0 0 2.334-2.333V3.042A2.333 2.333 0 0 0 8.91.71zm5.83 2.555a.7.7 0 0 1 .488-.182c.174 0 .355.056.488.182a.643.643 0 0 1 0 .93L5.129 8.728a.723.723 0 0 1-.975 0L2.115 6.785a.644.644 0 0 1 0-.93.724.724 0 0 1 .977 0l1.55 1.476z\"\n fill={color === \"blue\" ? \"blue\" : \"white\"}\n fillOpacity=\".8\"\n />\n </svg>\n ) : (\n // <CheckIcon\n // size={props.size ?? 12}\n // opacity={color === \"blue\" ? 0.54 : 1}\n // color={color === \"blue\" ? \"white\" : \"black\"}\n // />\n <div\n className={cnBase(\n \"oui-w-[6px] oui-h-[6px] oui-rounded-full\",\n \"oui-bg-base-contrast-80\"\n )}\n />\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-[16px]\",\n \"oui-w-[28px]\",\n \"oui-shrink-0\",\n \"oui-cursor-pointer\",\n \"oui-items-center\",\n \"oui-rounded-full\",\n // \"oui-border-3\",\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-darken\",\n \"data-[state=unchecked]:oui-bg-input\",\n ],\n thumb: [\n \"oui-pointer-events-none\",\n \"oui-block\",\n \"oui-h-[10px]\",\n \"oui-w-[10px]\",\n \"oui-rounded-full\",\n \"oui-bg-white/80\",\n \"oui-shadow-lg\",\n \"oui-ring-0\",\n \"oui-transition-transform\",\n \"data-[state=checked]:oui-translate-x-[15px]\",\n \"data-[state=unchecked]:oui-translate-x-[3px]\",\n ],\n },\n variants: {\n color: {\n primary: {\n root: [\n \"data-[state=checked]:oui-bg-primary-darken\",\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-darken\",\n \"data-[state=unchecked]:oui-bg-warning-darken\",\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 buy: \"\",\n success: \"\",\n warning: \"\",\n sell: \"\",\n neutral: \"\",\n },\n size: {\n xs: \"oui-px-2 oui-py-0.5 oui-text-2xs 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-darken/15\", \"oui-text-primary-darken\"],\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: \"sell\",\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: \"buy\",\n className: [\"oui-bg-success/15\", \"oui-text-success\"],\n },\n {\n variant: \"contained\",\n color: \"warning\",\n className: [\"oui-bg-warning-darken/15\", \"oui-text-warning-darken\"],\n },\n {\n variant: \"contained\",\n color: \"neutral\",\n className: [\"oui-bg-line\", \"oui-text-base-contrast-36\"],\n },\n {\n variant: \"text\",\n color: \"primary\",\n className: [\"oui-text-primary-darken\"],\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-darken\"],\n },\n {\n variant: \"text\",\n color: \"neutral\",\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 { 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\";\nimport { Tooltip } from \"../../tooltip\";\nimport { cn, HoverCard } from \"../..\";\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-[280px] oui-text-2xs oui-text-base-contrast-54 oui-p-3 oui-bg-base-8\",\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-[280px] oui-text-2xs\",\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\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\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 if (!plugin.builder) {\n console.warn(\"No builder provided for extension\");\n }\n\n for (let index = 0; index < plugin.positions.length; index++) {\n if (typeof plugin.builder !== \"function\") {\n // get existing 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 console.warn(\"`Plugin already registered at position [${position}]`\");\n // throw new Error(`Plugin already registered at position [${position}]`);\n return;\n }\n }\n this.extensionMap.set(position, plugin as Extension<any>);\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 { 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 // Positions = \"positions\",\n // Orders = \"orders\",\n // MainNav = \"mainNav\",\n // SideNav = \"sideNav\",\n /**\n * Wallet button\n */\n AccountMenu = \"accountMenu\",\n // Logo = \"logo\",\n // Toast = \"toast\",\n /// Layout components\n MainMenus = \"mainMenus\",\n // PortfolioLayout = \"portfolioLayout\",\n // TradingRewardsLayout = \"tradingRewardsLayout\",\n // AffiliateLayoutLayout = \"affiliateLayoutLayout\",\n EmptyDataIdentifier = \"emptyDataIdentifier\",\n}\n\nexport type DepositProps = {\n onOk: () => void;\n};\n","import { ReactNode } from \"react\";\nimport { ExtensionSlot } from \"../../plugin/slot\";\nimport { Box } from \"../../box\";\nimport { Spinner } from \"../../spinner/spinner\";\nimport { ExtensionPositionEnum } from \"../../plugin\";\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 || (\n <ExtensionSlot position={ExtensionPositionEnum.EmptyDataIdentifier} />\n )\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<any | 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-darken oui-text-base-contrast-80 hover:oui-bg-primary-darken\",\n day_range_end:\n \"day-range-end oui-bg-primary-darken oui-text-base-contrast-80 hover:oui-bg-primary-darken\",\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\";\nimport { cn } from \"../..\";\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 className?: string;\n trailing?: React.ReactNode;\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={cn(\n \"oui-data-grid-filter-bar oui-border-b oui-border-line\",\n props.className\n )}\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 {props.trailing && <div className=\"oui-flex-1 oui-flex oui-justify-end\">{props.trailing}</div>}\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 EmptyStateIcon from \"../../icon/emptyData\";\nimport { Flex } from \"../../flex\";\nimport { Box } from \"../../box\";\nimport { ExtensionPositionEnum, 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: [ExtensionPositionEnum.EmptyDataIdentifier],\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 { useCallback, 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 = useCallback(\n (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 [page]\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,\n parseMeta,\n };\n};\n","import { PropsWithChildren, ReactNode, useEffect, useMemo } from \"react\";\nimport {\n getCoreRowModel,\n useReactTable,\n getExpandedRowModel,\n Row,\n getSortedRowModel,\n CoreOptions,\n ColumnFilter,\n getFilteredRowModel,\n RowSelectionState,\n} from \"@tanstack/react-table\";\nimport {\n TableColumn,\n PaginationMeta,\n TableSort,\n TableViewClassNames,\n} from \"./type\";\nimport { cnBase } from \"tailwind-variants\";\nimport { Transform } from \"./transform\";\nimport { useWrap } from \"./hooks/useWrap\";\nimport { TablePagination } from \"./tablePagination\";\nimport { TableHeader } from \"./tableHeader\";\nimport { TableBody } from \"./tableBody\";\nimport { useInit } from \"./hooks/useInit\";\nimport { TablePlaceholder } from \"./tablePlaceholder\";\nimport { useSort } from \"./hooks/useSort\";\nimport { useShowHeader } from \"./hooks/useShowHeader\";\nimport { useShowPagination } from \"./hooks/useShowPagination\";\nimport { useScroll } from \"./hooks/useScroll\";\n\nexport type TableViewProps<RecordType> = {\n columns: TableColumn<RecordType>[];\n dataSource?: RecordType[] | null;\n /**\n * @description loading state\n * @default false\n */\n loading?: boolean;\n // isValidating?: boolean;\n ignoreLoadingCheck?: boolean;\n className?: string;\n classNames?: TableViewClassNames;\n // showMaskElement?: boolean;\n emptyView?: ReactNode;\n bordered?: boolean;\n // loadMore?: () => void;\n onSort?: (sort?: TableSort) => void;\n initialSort?: TableSort;\n id?: string;\n // minHeight?: number;\n // initialMinHeight?: number;\n getRowCanExpand?: (row: Row<any>) => boolean;\n expandRowRender?: (row: Row<any>, index: number) => ReactNode;\n manualSorting?: boolean;\n manualPagination?: boolean;\n manualFiltering?: boolean;\n pagination?: PaginationMeta;\n renderRowContainer?: (\n record: RecordType,\n index: number,\n children: ReactNode\n ) => ReactNode;\n generatedRowKey?: CoreOptions<any>[\"getRowId\"];\n onRow?: (record: RecordType, index: number) => any;\n columnFilters?: ColumnFilter | ColumnFilter[];\n rowSelection?: RowSelectionState;\n};\n\nexport function TableView<RecordType extends any>(\n props: PropsWithChildren<TableViewProps<RecordType>>\n) {\n const {\n columns,\n className,\n classNames,\n pagination,\n getRowCanExpand,\n manualPagination,\n loading,\n ignoreLoadingCheck,\n emptyView,\n initialSort,\n manualSorting,\n onSort,\n } = props;\n\n const dataSource = useMemo(() => {\n if (!props.dataSource) {\n return [];\n }\n\n return props.dataSource;\n }, [props.dataSource]);\n\n const formatColumns = useMemo(() => Transform.columns(columns), [columns]);\n\n const columnPinning = useMemo(\n () => Transform.columnPinning(columns),\n [columns]\n );\n\n const rowSelection = useMemo(\n () => props.rowSelection || {},\n [props.rowSelection]\n );\n\n const { state: paginationState, config: paginationConfig } = useMemo(\n () => Transform.pagination(pagination),\n [pagination]\n );\n\n const [sorting, setSorting] = useSort({\n onSort,\n initialSort,\n });\n\n // const { state: sortState, config: sortConfig } = useMemo(\n // () => Transform.sorting(onSort, initialSort),\n // [onSort, initialSort]\n // );\n\n const initialized = useInit({ dataSource, loading, ignoreLoadingCheck });\n\n const columnFilters = useMemo(() => {\n return Array.isArray(props.columnFilters)\n ? (props.columnFilters as ColumnFilter[])\n : props.columnFilters\n ? [props.columnFilters]\n : [];\n }, [props.columnFilters]);\n\n const table = useReactTable({\n data: dataSource!,\n columns: formatColumns,\n state: {\n columnPinning,\n columnFilters,\n rowSelection,\n sorting,\n ...paginationState,\n // ...sortState,\n },\n onSortingChange: setSorting,\n // onColumnFiltersChange: setColumnFilters,\n getRowId: props.generatedRowKey,\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n getRowCanExpand,\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n // use pre-sorted row model instead of sorted row model\n manualSorting,\n // turn off client-side pagination\n manualPagination,\n // only allow a single row to be selected at once\n enableMultiRowSelection: false,\n ...paginationConfig,\n // ...sortConfig,\n });\n\n const wrapRef = useWrap([className, classNames?.root]);\n const { scrollRef, showLeftShadow, showRightShadow } = useScroll([\n dataSource?.length,\n ]);\n\n // filter data\n const rows = table.getRowModel().rows;\n\n const showPlaceholder = initialized && (rows.length === 0 || loading);\n\n const showHeader = useShowHeader({\n loading,\n dataSource,\n });\n\n const showPagination = useShowPagination({\n loading,\n dataSource,\n rows,\n pagination,\n });\n\n return (\n <div\n ref={wrapRef}\n id={props.id}\n className={cnBase(\n \"oui-table-root oui-w-full oui-h-full\",\n \"oui-bg-base-9\",\n className,\n classNames?.root\n )}\n >\n <div\n ref={scrollRef}\n className={cnBase(\n \"oui-table-scroll oui-relative\",\n \"oui-w-full oui-min-h-[162px]\",\n \"oui-text-xs oui-font-semibold\",\n \"oui-overflow-auto oui-custom-scrollbar\",\n showPagination ? \"oui-h-[calc(100%_-_40px)]\" : \"oui-h-full\",\n classNames?.scroll\n )}\n >\n <table\n className={cnBase(\n \"oui-w-full\",\n \"oui-table-fixed oui-border-collapse\"\n )}\n >\n {showHeader && (\n <TableHeader\n className={classNames?.header}\n headerGroups={table.getHeaderGroups()}\n bordered={props.bordered}\n showLeftShadow={showLeftShadow}\n showRightShadow={showRightShadow}\n />\n )}\n\n <TableBody\n className={classNames?.body}\n rows={rows}\n bordered={props.bordered}\n renderRowContainer={props.renderRowContainer}\n expandRowRender={props.expandRowRender}\n onRow={props.onRow}\n showLeftShadow={showLeftShadow}\n showRightShadow={showRightShadow}\n />\n </table>\n\n <TablePlaceholder\n visible={showPlaceholder}\n loading={loading}\n emptyView={emptyView}\n />\n </div>\n\n {showPagination && (\n <TablePagination\n className={classNames?.pagination}\n count={pagination?.count! || rows?.length}\n pageTotal={pagination?.pageTotal! || table.getPageCount()}\n page={pagination?.page!}\n pageSize={pagination?.pageSize}\n onPageChange={pagination?.onPageChange}\n onPageSizeChange={pagination?.onPageSizeChange}\n />\n )}\n </div>\n );\n}\n","import {\n ColumnSort,\n createColumnHelper,\n getPaginationRowModel,\n PaginationTableState,\n SortingState,\n SortingTableState,\n TableOptions,\n} from \"@tanstack/react-table\";\nimport { PaginationMeta, TableColumn, TableSort } from \"./type\";\n\nexport const Transform = {\n columns: (columns: TableColumn[]) => {\n const columnHelper = createColumnHelper<any>();\n\n return columns?.map((column, index) => {\n const commonProps = {\n meta: column,\n size: column.width || 100,\n };\n\n // if (column.type === \"action\") {\n // return columnHelper.display({\n // // id: `${\"actions\"}_${index}`,\n // ...commonProps,\n // });\n // }\n const { dataIndex, onSort } = column;\n\n return columnHelper.accessor(dataIndex, {\n header: () => column.title,\n enableSorting: onSort ? true : false,\n sortingFn:\n typeof onSort === \"function\"\n ? (rowA, rowB, columnId) => onSort?.(rowA.original, rowB.original)\n : \"alphanumeric\",\n ...commonProps,\n });\n });\n },\n\n columnPinning: (columns: TableColumn[]) => {\n const left: string[] = [];\n const right: string[] = [];\n columns?.map((column) => {\n if (column.fixed === \"left\") {\n left.push(column.dataIndex);\n } else if (column.fixed === \"right\") {\n right.push(column.dataIndex);\n }\n });\n\n return { left, right };\n },\n\n pagination: (pagination?: PaginationMeta) => {\n let state = {} as PaginationTableState;\n let config = {} as Pick<\n TableOptions<any>,\n \"getPaginationRowModel\" | \"onPaginationChange\"\n >;\n if (pagination) {\n state = {\n pagination: {\n pageIndex: pagination.page - 1,\n pageSize: pagination.pageSize,\n },\n };\n config = {\n // no need to set onPaginationChange\n // onPaginationChange,\n // load client-side pagination code\n getPaginationRowModel: getPaginationRowModel(),\n };\n }\n return { state, config };\n },\n // sorting: (onSort?: (sort?: TableSort) => void, initialSort?: TableSort) => {\n // let state = {} as SortingTableState;\n // let config = {} as Pick<TableOptions<any>, \"onSortingChange\">;\n\n // if (typeof onSort === \"function\") {\n // config = {\n // onSortingChange: (updaterFn: any) => {\n // const sorting = updaterFn() as ColumnSort[];\n // const { id, desc } = sorting[0];\n // onSort({ sortKey: id, sort: desc ? \"desc\" : \"asc\" });\n // },\n // };\n // }\n\n // if (initialSort) {\n // state = {\n // sorting: [\n // {\n // id: initialSort.sortKey,\n // desc: initialSort.sort === \"desc\",\n // },\n // ],\n // } as SortingTableState;\n // }\n\n // return { state, config };\n // },\n};\n","import { useEffect, useRef } from \"react\";\n\nexport function useWrap(deps: any[]) {\n const wrapRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!wrapRef.current) return;\n\n const bgColor = window.getComputedStyle(wrapRef.current).backgroundColor;\n\n wrapRef.current.style.setProperty(\"--oui-table-background-color\", bgColor);\n }, deps);\n\n return wrapRef;\n}\n","import { FC } from \"react\";\nimport { Flex } from \"../flex\";\nimport { PaginationProps, Paginations } from \"../pagination\";\n\nexport const TablePagination: FC<Omit<PaginationProps, \"classNames\">> = (\n props\n) => {\n if (props.pageTotal === 0) return null;\n\n return (\n <Flex justify={\"end\"} py={2} mx={3} className=\"oui-h-10 oui-w-full\">\n <Paginations\n {...props}\n className=\"oui-table-pagination oui-justify-between oui-w-full\"\n />\n </Flex>\n );\n};\n","import { FC } from \"react\";\nimport { cnBase } from \"tailwind-variants\";\nimport { getColumnPinningProps } from \"./utils/getColumnPinningProps\";\nimport { TanstackColumn } from \"./type\";\nimport { AscendingIcon, DescendingIcon, SortingIcon } from \"./icons\";\nimport { HeaderGroup, SortDirection } from \"@tanstack/react-table\";\nimport { TableViewProps } from \"./tableView\";\nimport { alignVariants } from \"./className\";\n\ntype TableHeaderProps = {\n className?: string;\n headerGroups: HeaderGroup<any>[];\n showLeftShadow?: boolean;\n showRightShadow?: boolean;\n} & Pick<TableViewProps<any>, \"bordered\">;\n\nexport const TableHeader: FC<TableHeaderProps> = (props) => {\n return (\n <thead\n className={cnBase(\n \"oui-table-thead\",\n \"oui-sticky oui-top-0 oui-z-[2]\",\n \"oui-bg-[var(--oui-table-background-color)]\",\n \"oui-text-base-contrast-36\"\n )}\n >\n {props.headerGroups.map((headerGroup) => (\n <tr\n key={headerGroup.id}\n className={cnBase(\"oui-table-thead-tr\", \"oui-h-10\", props.className)}\n >\n {headerGroup.headers.map((header) => {\n const column = header.column;\n const {\n align,\n className: rowClassName,\n title,\n } = column.columnDef.meta || ({} as any);\n\n const { style: pinStyle, classNames: pinClassNames } =\n getColumnPinningProps(column, true);\n\n const canSort = column.getCanSort();\n const isSorted = column.getIsSorted();\n\n return (\n <th\n key={header.id}\n style={pinStyle}\n className={cnBase(\n \"oui-table-thead-th\",\n \"oui-whitespace-nowrap\",\n \"oui-px-3\",\n props.bordered &&\n \"after:oui-block after:oui-absolute after:oui-w-full after:oui-h-full after:oui-top-0 after:oui-left-0 after:oui-z-[-1] after:oui-border-b after:oui-border-line\",\n // use border-b will show bottom element content\n // props.bordered && \"oui-border-b oui-border-line\"\n alignVariants({ align }),\n rowClassName,\n pinClassNames.content,\n props.showLeftShadow && pinClassNames.leftShadow,\n props.showRightShadow && pinClassNames.rightShadow\n )}\n >\n {header.isPlaceholder ? null : (\n <div\n className={cnBase(\n \"oui-inline-flex oui-items-center oui-gap-x-1\",\n canSort &&\n \"oui-cursor-pointer oui-select-none hover:oui-text-base-contrast-80\"\n )}\n onClick={column.getToggleSortingHandler()}\n >\n {title}\n {canSort && (\n <SortIndicator isSorted={isSorted as SortDirection} />\n )}\n </div>\n )}\n </th>\n );\n })}\n </tr>\n ))}\n </thead>\n );\n};\n\nconst SortIndicator: FC<{ isSorted: SortDirection }> = ({ isSorted }) => {\n return (\n {\n asc: <AscendingIcon />,\n desc: <DescendingIcon />,\n }[isSorted] || <SortingIcon />\n );\n};\n","import { CSSProperties } from \"react\";\nimport { cnBase } from \"tailwind-variants\";\nimport { TanstackColumn } from \"../type\";\n\nexport function getColumnPinningProps(\n column: TanstackColumn<any>,\n isHeader?: boolean\n) {\n const isPinned = column.getIsPinned();\n const isLastLeftPinnedColumn =\n isPinned === \"left\" && column.getIsLastColumn(\"left\");\n const isFirstRightPinnedColumn =\n isPinned === \"right\" && column.getIsFirstColumn(\"right\");\n\n const style: CSSProperties = {\n left: isPinned === \"left\" ? `${column.getStart(\"left\")}px` : undefined,\n right: isPinned === \"right\" ? `${column.getAfter(\"right\")}px` : undefined,\n width: column.getSize(),\n };\n\n const contentCls = cnBase(\n isPinned ? \"oui-sticky\" : \"oui-relative\",\n isPinned ? \"oui-z-[1]\" : \"oui-z-0\",\n isPinned && \"oui-bg-[var(--oui-table-background-color)]\"\n );\n\n const shadowCls = cnBase(\n \"before:oui-block before:oui-absolute\",\n \"before:oui-w-[32px] before:oui-h-full\",\n \"before:oui-top-0 before:oui-z-[-1]\",\n \"before:oui-bg-[linear-gradient(90deg,rgba(var(--oui-color-base-10)_/_0.80)_0%,rgba(var(--oui-color-base-10)_/_0.36)_65%,rgba(var(--oui-color-base-10)_/_0.00)_100%)]\"\n );\n\n const leftShadow =\n isLastLeftPinnedColumn && cnBase(shadowCls, \"before:oui-right-[-32px]\");\n\n const rightShadow =\n isFirstRightPinnedColumn &&\n cnBase(shadowCls, \"before:oui-left-[-32px] before:oui-rotate-180\");\n\n return {\n style,\n classNames: {\n content: contentCls,\n leftShadow,\n rightShadow,\n },\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 { tv } from \"tailwind-variants\";\n\nexport const alignVariants = tv({\n variants: {\n align: {\n left: \"oui-text-left\",\n center: \"oui-text-center\",\n right: \"oui-text-right\",\n },\n },\n defaultVariants: {\n align: \"left\",\n },\n});\n","import React, { FC, Fragment } from \"react\";\nimport { cnBase } from \"tailwind-variants\";\nimport { Row } from \"@tanstack/react-table\";\nimport { getColumnPinningProps } from \"./utils/getColumnPinningProps\";\nimport { alignVariants } from \"./className\";\nimport { TableViewProps } from \"./tableView\";\nimport { TableCell } from \"./tableCell\";\n\ntype TableBodyProps<RecordType> = {\n className?: string;\n rows: Row<RecordType>[];\n justified?: boolean;\n showLeftShadow?: boolean;\n showRightShadow?: boolean;\n} & Pick<\n TableViewProps<any>,\n \"bordered\" | \"onRow\" | \"renderRowContainer\" | \"expandRowRender\"\n>;\n\nexport const TableBody: React.FC<TableBodyProps<any>> = (props) => {\n return (\n <tbody\n className={cnBase(\n \"oui-table-tbody oui-relative\",\n \"oui-text-base-contrast-80\",\n props.className\n )}\n >\n {props.rows.map((row) => {\n const { className, onClick, ...rest } =\n typeof props.onRow === \"function\"\n ? props.onRow(row.original, row.index)\n : {};\n\n const rowView = (\n <Fragment key={row.id}>\n <tr\n key={row.id}\n className={cnBase(\n \"oui-table-tbody-tr oui-group oui-h-10\",\n props.bordered && \"oui-border-b oui-border-b-line-4\",\n className\n )}\n onClick={(event) => {\n if (row.getCanExpand()) {\n row.getToggleExpandedHandler();\n }\n onClick?.();\n }}\n {...rest}\n >\n {row.getVisibleCells().map((cell) => {\n const column = cell.column;\n const { style: pinStyle, classNames: pinClassNames } =\n getColumnPinningProps(column);\n const { align, className: rowClassName } =\n column.columnDef.meta || ({} as any);\n\n return (\n <td\n key={cell.id}\n style={pinStyle}\n className={cnBase(\n \"oui-table-tbody-td oui-relative\",\n \"oui-px-3\",\n alignVariants({ align }),\n rowClassName,\n pinClassNames.content,\n props.showLeftShadow && pinClassNames.leftShadow,\n props.showRightShadow && pinClassNames.rightShadow\n )}\n >\n <TableCell cell={cell} />\n <CellHover\n selected={row.getIsSelected()}\n isFirst={column.getIsFirstColumn()}\n isLast={column.getIsLastColumn()}\n />\n </td>\n );\n })}\n </tr>\n\n {row.getIsExpanded() && (\n <tr className=\"oui-z-0\">\n <td colSpan={row.getVisibleCells().length}>\n {props.expandRowRender?.(row, row.index)}\n </td>\n </tr>\n )}\n </Fragment>\n );\n\n if (typeof props.renderRowContainer === \"function\") {\n return (\n <Fragment key={row.id}>\n {props.renderRowContainer(row.original, row.index, rowView)}\n </Fragment>\n );\n }\n\n return rowView;\n })}\n </tbody>\n );\n};\n\ntype CellHoverProps = {\n selected: boolean;\n isFirst: boolean;\n isLast: boolean;\n};\n\nconst CellHover: FC<CellHoverProps> = ({ selected, isFirst, isLast }) => {\n return (\n <div\n className={cnBase(\n \"oui-absolute oui-top-0 oui-left-0 oui-z-[-1]\",\n \"oui-w-full oui-h-full\",\n \"group-hover:oui-bg-line-4\",\n selected && \"oui-bg-line-6 group-hover:oui-bg-line-6\",\n isFirst && \"oui-rounded-l\",\n isLast && \"oui-rounded-r\"\n )}\n />\n );\n};\n","import React, { ReactNode } from \"react\";\nimport { Cell, flexRender } from \"@tanstack/react-table\";\nimport { FormattedText, isTextRule } from \"../typography/formatted\";\nimport { isNumeralRule, Numeral } from \"../typography/numeral\";\nimport { TableColumn } from \"./type\";\n\ntype TableCellProps = {\n cell: Cell<any, any>;\n};\n\nexport const TableCell: React.FC<TableCellProps> = (props) => {\n const { cell } = props;\n\n const { original: record, index } = cell.row;\n const { formatter, render, rule, textProps, numeralProps } = (cell.column\n .columnDef.meta || {}) as TableColumn;\n\n let value = cell.getValue();\n\n if (typeof formatter === \"function\") {\n value = formatter(value, record, index);\n }\n\n if (typeof render === \"function\") {\n return render(value, record, index);\n }\n\n if (typeof rule !== \"undefined\") {\n if (isTextRule(rule)) {\n const _textProps =\n typeof textProps === \"function\"\n ? textProps(value, record, index)\n : textProps;\n return (\n <FormattedText rule={rule} {..._textProps}>\n {value}\n </FormattedText>\n );\n }\n\n if (isNumeralRule(rule)) {\n const _numeralProps =\n typeof numeralProps === \"function\"\n ? numeralProps(value, record, index)\n : numeralProps;\n\n return (\n <Numeral rule={rule} {..._numeralProps}>\n {value}\n </Numeral>\n );\n }\n }\n\n return flexRender(cell.column.columnDef.cell, cell.getContext()) as ReactNode;\n};\n","import { useEffect, useState } from \"react\";\nimport { TableViewProps } from \"../tableView\";\n\nexport function useInit(\n params: Pick<\n TableViewProps<any>,\n \"dataSource\" | \"loading\" | \"ignoreLoadingCheck\"\n >\n) {\n const { dataSource, loading, ignoreLoadingCheck } = params;\n const [initialized, setInitialized] = useState(false);\n\n useEffect(() => {\n if (initialized) return;\n\n if (ignoreLoadingCheck || loading || Array.isArray(dataSource)) {\n setInitialized(true);\n }\n }, [loading, ignoreLoadingCheck, dataSource, initialized]);\n\n return initialized;\n}\n","import { FC } from \"react\";\nimport { Box } from \"../box\";\nimport { Flex } from \"../flex\";\nimport { Text } from \"../typography\";\nimport EmptyStateIcon from \"../icon/emptyData\";\n\nexport const TableEmpty: FC<{ title?: string }> = (props) => {\n return (\n <Flex itemAlign=\"center\" direction=\"column\" gapY={4} py={8}>\n <Box>\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","import { FC, ReactNode } from \"react\";\nimport { Box } from \"../box\";\nimport { Spinner } from \"../spinner/spinner\";\nimport { TableEmpty } from \"./tableEmpty\";\n\ntype TablePlaceholderProps = {\n visible?: boolean;\n loading?: boolean;\n emptyView?: ReactNode;\n};\n\nexport const TablePlaceholder: FC<TablePlaceholderProps> = (props) => {\n const { visible, loading, emptyView } = 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 className=\"oui-flex oui-justify-center oui-items-center\"\n >\n {loading ? <Spinner /> : emptyView || <TableEmpty />}\n </Box>\n );\n};\n","import { useEffect, useState } from \"react\";\nimport { SortingState } from \"@tanstack/react-table\";\nimport { TableSort } from \"../type\";\n\nexport function useSort(props: {\n onSort?: (sort?: TableSort) => void;\n initialSort?: TableSort;\n}) {\n const { onSort, initialSort } = props;\n\n const [sorting, setSorting] = useState<SortingState>(\n initialSort\n ? [\n {\n id: initialSort.sortKey,\n desc: initialSort.sort === \"desc\",\n },\n ]\n : []\n );\n\n useEffect(() => {\n const { id, desc } = sorting[0] || {};\n onSort?.(id ? { sortKey: id, sort: desc ? \"desc\" : \"asc\" } : undefined);\n }, [sorting, onSort]);\n\n return [sorting, setSorting] as const;\n}\n","import { useEffect, useMemo, useRef } from \"react\";\nimport { TableViewProps } from \"../tableView\";\n\nexport function useShowHeader(\n params: Pick<TableViewProps<any>, \"dataSource\" | \"loading\">\n) {\n const { dataSource, loading } = params;\n\n const initShowHeader = useRef(false);\n\n const showHeader = useMemo(() => {\n if (loading && !dataSource?.length) {\n return initShowHeader.current;\n }\n \n return !!dataSource?.length;\n }, [loading, dataSource]);\n\n useEffect(() => {\n if (showHeader) {\n initShowHeader.current = true;\n }\n }, [showHeader]);\n\n return showHeader;\n}\n","import { useEffect, useMemo, useRef } from \"react\";\nimport { TableViewProps } from \"../tableView\";\nimport { Row } from \"@tanstack/react-table\";\n\nexport function useShowPagination(\n params: Pick<TableViewProps<any>, \"dataSource\" | \"loading\" | \"pagination\"> & {\n rows: Row<any>[];\n }\n) {\n const { loading, dataSource, pagination, rows } = params;\n\n const initShowPagination = useRef(false);\n\n const showPagination = useMemo(() => {\n if (loading && !dataSource?.length) {\n return initShowPagination.current;\n }\n\n if (pagination && dataSource?.length && rows?.length) {\n return true;\n }\n\n return false;\n }, [loading, pagination, dataSource, rows]);\n\n useEffect(() => {\n if (showPagination) {\n initShowPagination.current = true;\n }\n }, [showPagination]);\n\n return showPagination;\n}\n","import { useEffect, useRef, useState } from \"react\";\n\nexport function useScroll(deps: any[]) {\n const scrollRef = useRef<HTMLDivElement>(null);\n const [showLeftShadow, setShowLeftShadow] = useState(false);\n const [showRightShadow, setShowRightShadow] = useState(false);\n\n useEffect(() => {\n if (!scrollRef.current) {\n return;\n }\n\n scrollRef.current.addEventListener(\"scroll\", function (e) {\n setShowLeftShadow(scrollRef.current!.scrollLeft > 0);\n setShowRightShadow(!isScrolledToRight(scrollRef.current!));\n });\n }, [scrollRef]);\n\n useEffect(() => {\n if (!scrollRef.current) {\n return;\n }\n\n const scrollAble = hasHorizontalScroll(scrollRef.current);\n const scrollEnd = isScrolledToRight(scrollRef.current);\n\n setShowRightShadow(scrollAble && !scrollEnd);\n }, [scrollRef, ...deps]);\n\n return {\n scrollRef,\n showLeftShadow,\n showRightShadow,\n };\n}\n\nfunction isScrolledToRight(element: HTMLDivElement) {\n return element.scrollLeft + element.clientWidth >= element.scrollWidth;\n}\n\nfunction hasHorizontalScroll(element: HTMLDivElement) {\n return element.scrollWidth > element.clientWidth;\n}\n\nfunction hasVerticalScroll(element: HTMLDivElement) {\n return element.scrollHeight > element.clientHeight;\n}\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\";\nimport { cnBase } from \"tailwind-variants\";\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 className?: string;\n trailing?: React.ReactNode;\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 DataFilter = (props: DataFilterProps) => {\n return (\n <Flex\n justify={\"start\"}\n gapX={3}\n py={3}\n width={\"100%\"}\n className={cnBase(\n \"oui-data-filter-bar oui-border-b oui-border-line\",\n props.className\n )}\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 {props.trailing && (\n <div className=\"oui-flex-1 oui-flex oui-justify-end\">\n {props.trailing}\n </div>\n )}\n </Flex>\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-px-4 lg: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-4 lg: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-2 lg: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 lg:oui-min-h-[46px]\",\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-darken\",\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 xs: {\n content: [\"oui-max-w-xs\"], //320\n },\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\n className={close()}\n data-testid=\"oui-testid-dialog-content-close-btn\"\n >\n <CloseIcon size={16} color=\"white\" opacity={0.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\";\nimport { useScreen } from \"../hooks\";\nimport { cnBase } from \"tailwind-variants\";\n\nexport type AlertDialogProps = {\n message?: ReactNode;\n onOk?: () => Promise<boolean>;\n onCancel?: () => void;\n okLabel?: string;\n cancelLabel?: string;\n actions?: {\n primary?: Partial<DialogAction>;\n secondary?: Partial<DialogAction>;\n };\n} & Pick<\n SimpleDialogProps,\n \"open\" | \"onOpenChange\" | \"title\" | \"closable\" | \"classNames\" | \"size\"\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 size,\n classNames,\n } = props;\n\n const { isMobile } = useScreen();\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 size: \"md\",\n fullWidth: true,\n ...props.actions?.secondary,\n } as DialogAction;\n }\n\n if (typeof onOk === \"function\") {\n actions[\"primary\"] = {\n label: okLabel,\n size: \"md\",\n fullWidth: true,\n className: \"oui-w-full lg: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 const defaultSize = isMobile ? \"xs\" : \"sm\";\n\n return (\n <SimpleDialog\n open={open}\n title={title}\n size={size || defaultSize}\n actions={actions}\n onOpenChange={onOpenChange}\n classNames={{\n content: cnBase(\n \"oui-bg-base-8 oui-font-semibold oui-border oui-border-line-6\",\n \"oui-p-4 oui-pt-0 lg:oui-p-5 lg:oui-pt-0\",\n classNames?.content\n ),\n body: cnBase(\"oui-py-4 lg:oui-py-5\", classNames?.body),\n footer: cnBase(\n \"oui-justify-center oui-pb-0 oui-pt-2 lg:oui-pt-3\",\n classNames?.footer\n ),\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, useEffect, useMemo, useState } from \"react\";\nimport { DialogFooter } from \"./dialog\";\nimport { Button, ButtonProps, ThrottledButton } from \"../button\";\n\nexport type DialogAction<T = any> = {\n label: string;\n onClick: (event: any) => Promise<T> | T;\n} & Pick<\n ButtonProps,\n \"size\" | \"disabled\" | \"className\" | \"fullWidth\" | \"data-testid\" | \"loading\"\n>;\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(actions?.primary?.loading ?? false);\n\n useEffect(() => {\n if (actions?.primary?.loading) {\n setPrimaryLoading(actions?.primary?.loading);\n }\n\n return () => {\n setPrimaryLoading(false);\n }\n }, [actions?.primary?.loading]);\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={(event) => {\n actions.secondary?.onClick?.(event);\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 \n buttons.push(\n <ThrottledButton\n data-testid={actions.primary?.[\"data-testid\"]}\n key=\"primary\"\n onClick={async (event) => {\n if (primaryLoading) return;\n try {\n setPrimaryLoading(true);\n await actions.primary?.onClick(event);\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 </ThrottledButton>\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?: \"xs\" | \"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 { useEffect, useState } from \"react\";\n\nexport function useMediaQuery(query: string): boolean {\n const getMatches = (query: string): boolean => {\n // Prevents SSR issues\n if (typeof window !== \"undefined\") {\n return window.matchMedia(query).matches;\n }\n return false;\n };\n\n const [matches, setMatches] = useState<boolean>(getMatches(query));\n\n function handleChange() {\n setMatches(getMatches(query));\n }\n\n useEffect(() => {\n const matchMedia = window?.matchMedia(query);\n\n // Triggered at the first client-side load and if query changes\n handleChange();\n\n // Listen matchMedia\n if (matchMedia?.addListener) {\n matchMedia?.addListener(handleChange);\n } else {\n matchMedia?.addEventListener?.(\"change\", handleChange);\n }\n\n return () => {\n if (matchMedia?.removeListener) {\n matchMedia?.removeListener(handleChange);\n } else {\n matchMedia?.removeEventListener?.(\"change\", handleChange);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [query]);\n\n return matches;\n}\n","import { useMediaQuery } from \"./useMediaQuery\";\n\nexport function useScreen() {\n const isMobile = useMediaQuery(\"(max-width: 768px)\");\n\n return {\n isMobile,\n isDesktop: !isMobile,\n };\n}\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 updateArgsAction(\n id: string,\n args: Record<string, unknown>\n): ModalAction {\n return {\n type: \"UPDATE_ARGS\",\n payload: {\n id,\n args,\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 case \"DESTROY_MODAL\": {\n const newState = { ...state };\n delete newState[id];\n return newState;\n }\n case \"UPDATE_ARGS\": {\n return {\n ...state,\n [id]: {\n ...state[id],\n args: {\n ...state[id].args,\n ...args,\n },\n },\n };\n }\n case \"SET_MODAL_STATES\": {\n return {\n ...state,\n [id]: {\n ...state[id],\n states: {\n ...state.states,\n ...action.payload.states,\n },\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\nfunction updateArgs(id: string, args: Record<string, unknown>) {\n dispatch(updateArgsAction(id, args));\n}\n\nexport const modalActions = {\n show,\n hide,\n remove,\n setStates,\n updateArgs,\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 // eslint-disable-next-line react/display-name\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 // console.log(\"modalInfo\", modalInfo);\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>) => {\n modalActions.setStates(id, states);\n },\n [id]\n );\n\n const updateArgs = useCallback(\n (args: Record<string, unknown>) => {\n modalActions.updateArgs(id, args);\n },\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 states: modalInfo?.states,\n visible: !!modalInfo?.visible,\n keepMounted: !!modalInfo?.keepMounted,\n\n show,\n hide,\n onOpenChange,\n setStates,\n updateArgs,\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 hidden\n */\n resolveHide,\n };\n}\n","import * as React from \"react\";\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport { 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-px-4 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\nexport interface 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 onOpenAutoFocus={(e) => e.preventDefault()}\n onCloseAutoFocus={(e) => e.preventDefault()}\n {...props}\n >\n {closeable && (\n <SheetPrimitive.Close\n className={cnBase(\n \"oui-absolute oui-right-4 oui-top-4 oui-rounded-sm oui-ring-offset-base-700 oui-transition-opacity 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 // \"oui-opacity-70 hover:oui-opacity-100\"\n )}\n >\n <CloseIcon size={16} color=\"white\" opacity={0.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 oui-min-h-12\"\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 SheetBody = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => {\n return <div className={cnBase(\"oui-py-4\", className)} {...props} />;\n};\n\nSheetBody.displayName = \"DialogBody\";\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 SheetBody,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n","import { ElementType } from \"react\";\nimport { useModal, modal } from \"../modal\";\nimport { SheetProps } from \"../modal/preset/sheet\";\nimport { SimpleSheet, SimpleSheetProps } from \"./simpleSheet\";\n\nfunction createSheetComponent<P extends Partial<SimpleSheetProps>>(\n Comp: ElementType\n) {\n return modal.create((props: P) => {\n const { title, leading, classNames, contentProps, closable, ...rest } =\n props;\n\n const { visible, hide, resolve, reject, onOpenChange, args } = useModal();\n\n // console.log(\"-------\", args);\n\n return (\n <SimpleSheet\n open={visible}\n onOpenChange={onOpenChange}\n title={title}\n leading={leading}\n classNames={classNames}\n closable={closable}\n contentProps={contentProps}\n >\n <Comp {...rest} close={hide} resolve={resolve} reject={reject} />\n </SimpleSheet>\n );\n });\n}\n\nexport function registerSimpleSheet<Props = {}>(\n id: string,\n comp: ElementType<Props>,\n props?: Omit<SheetProps, \"content\">\n) {\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-darken\"\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 {action.value === 'cancel' && <div className=\"oui-h-2 oui-bg-base-10\"/>}\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 oui-pb-[env(safe-area-inset-bottom)]\"\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 { FC, PropsWithChildren } from \"react\";\nimport { Sheet, SheetContent, SheetHeader } from \".\";\nimport { SheetBody, SheetContentProps, SheetTitle } from \"./sheet\";\nimport { Divider } from \"../divider\";\n\nexport interface SimpleSheetProps {\n title?: string | React.ReactNode;\n leading?: React.ReactNode;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n classNames?: {\n content?: string;\n body?: string;\n header?: string;\n };\n contentProps?: SheetContentProps;\n closable?: boolean;\n}\n\nexport const SimpleSheet: FC<PropsWithChildren<SimpleSheetProps>> = (props) => {\n const {\n open,\n onOpenChange,\n classNames,\n contentProps,\n closable = true,\n } = props;\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetContent\n onOpenAutoFocus={(event) => event.preventDefault()}\n className={classNames?.content}\n closeable={closable}\n {...contentProps}\n >\n {props.title && (\n <>\n <SheetHeader leading={props.leading}>\n <SheetTitle>{props.title}</SheetTitle>\n </SheetHeader>\n <Divider />\n </>\n )}\n <SheetBody className={classNames?.body}>{props.children}</SheetBody>\n </SheetContent>\n </Sheet>\n );\n};\n","import { ReactNode } from \"react\";\nimport { modalActions } from \"../modalContext\";\nimport { create } from \"../modalHelper\";\nimport { useModal } from \"../useModal\";\nimport { SimpleSheet, SimpleSheetProps } from \"../../sheet/simpleSheet\";\n\nexport type SheetProps = Pick<\n SimpleSheetProps,\n \"title\" | \"classNames\" | \"leading\" | \"contentProps\" | \"closable\"\n> & {\n content: ReactNode;\n};\nconst BaseSheet = create<SheetProps>((props) => {\n const { visible, hide, resolve, onOpenChange } = useModal();\n\n return (\n <SimpleSheet open={visible} onOpenChange={onOpenChange} {...props}>\n {props.content}\n </SimpleSheet>\n );\n});\n\nexport const sheet = (props: SheetProps) => {\n return modalActions.show(BaseSheet, props);\n};\n","import { ReactNode, useCallback } from \"react\";\nimport { modalActions } from \"../modalContext\";\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 {...props}\n onOk={onOkHandler}\n />\n );\n});\n\nexport const alert = (props: AlertDialogProps) => {\n return modalActions.show(CreatedAlertDialog, props);\n};\n","import { ReactNode } from \"react\";\nimport { SimpleDialog, SimpleDialogProps } from \"../../dialog/simpleDialog\";\nimport { create } from \"../modalHelper\";\nimport { useModal } from \"../useModal\";\nimport { modalActions } from \"../modalContext\";\n\nexport type DialogProps = {\n content: ReactNode;\n} & Pick<SimpleDialogProps, \"title\" | \"closable\" | \"size\">;\n\nconst Dialog = create<DialogProps>((props) => {\n const { visible, hide, resolve, reject, onOpenChange } = useModal();\n return (\n <SimpleDialog\n title={props.title}\n open={visible}\n onOpenChange={onOpenChange}\n size={props.size}\n closable={props.closable}\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, SimpleDialogProps } from \"../../dialog\";\nimport { modalActions } from \"../modalContext\";\nimport { Text } from \"../../typography\";\nimport { useMemo } from \"react\";\nimport { useScreen } from \"../../hooks\";\n\nexport type ConfirmProps = {\n content?: React.ReactNode;\n footer?: React.ReactNode;\n onOk?: () => Promise<any>;\n onCancel?: () => Promise<any>;\n contentClassName?: string;\n bodyClassName?: string;\n // closeableSize?: number;\n // okId?: string;\n // cancelId?: string;\n} & Pick<SimpleDialogProps, \"title\" | \"classNames\" | \"size\">;\n\nexport const ConfirmDialog = create<ConfirmProps>((props) => {\n const { size } = props;\n const { visible, hide, resolve, reject, onOpenChange } = useModal();\n\n const { isMobile } = useScreen();\n\n const defaultSize = isMobile ? \"xs\" : \"sm\";\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 || defaultSize}\n classNames={{\n content: props.contentClassName,\n body: props.bodyClassName,\n ...props.classNames,\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 Promise.reject('cancel');\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 <div className=\"oui-text-2xs lg:oui-text-sm\">{props.content}</div>\n </SimpleDialog>\n );\n});\n\nexport const confirm = <T = any, >(props: ConfirmProps):Promise<T> => {\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 type { ConfirmProps } from \"./preset/confirm\";\n// import { actionSheet } from \"@/modal/preset/actionSheet\";\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\nexport function createDialogComponent<P extends Partial<SimpleDialogProps>>(\n Comp: ElementType\n) {\n return modal.create((props: P) => {\n const { visible, hide, resolve, reject, onOpenChange } = useModal();\n\n const {\n title,\n size,\n // @ts-ignore deprecated\n contentClassName,\n // @ts-ignore deprecated\n bodyClassName,\n closable,\n classNames,\n ...rest\n } = 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 ...classNames,\n }}\n >\n <Comp {...rest} close={hide} resolve={resolve} reject={reject} />\n </SimpleDialog>\n );\n });\n}\n\nexport function 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 * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport { VariantProps } from \"tailwind-variants\";\nimport { tv } from \"../utils/tv\";\nimport { useOrderlyTheme } from \"../provider/orderlyThemeProvider\";\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 hover:oui-text-base-contrast-54\",\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 hover:oui-bg-base-5\",\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 { getComponentTheme } = useOrderlyTheme();\n // const variantTheme = getComponentTheme(\"tabs\", variant ?? \"contained\");\n const { trigger, icon: iconClassName } = tabsVariants({\n size,\n variant,\n });\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\";\nimport { cn } from \"..\";\nimport { useOrderlyTheme } from \"../provider/orderlyThemeProvider\";\n\ntype tabConfig = {\n title: ReactNode;\n icon?: ReactElement;\n testid?: string;\n\n value: string;\n content: ReactNode;\n collapsed?: boolean;\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 contentVisible?: boolean;\n} & TabsPrimitive.TabsProps &\n VariantProps<typeof tabsVariants>;\n\nconst Tabs: FC<TabsProps> = (props) => {\n const { getComponentTheme } = useOrderlyTheme();\n const { classNames, contentVisible = true, variant, ...rest } = props;\n const variantTheme = getComponentTheme(\"tabs\", variant ?? \"contained\");\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={variantTheme}\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={variantTheme}\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 {contentVisible &&\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 {\n ComponentType,\n createContext,\n FC,\n PropsWithChildren,\n useContext,\n} from \"react\";\nimport { ExtensionPosition } from \"../plugin\";\nimport { ComponentsProvider } from \"./componentProvider\";\n\ntype ComponentOverrides = {\n tabs: {\n variant: \"text\" | \"contained\";\n };\n};\nexport type OrderlyThemeContextState = {\n // overrides?: Partial<ComponentOverrides>;\n getComponentTheme: <T = any>(\n component: keyof ComponentOverrides,\n defaultValue?: T\n ) => T;\n};\n\nconst OrderlyThemeContext = createContext<OrderlyThemeContextState>(\n {} as OrderlyThemeContextState\n);\n\nexport type OrderlyThemeProviderProps = {\n // dateFormatting?: string;\n components?: {\n [position in ExtensionPosition]: ComponentType;\n };\n overrides?: Partial<ComponentOverrides>;\n};\n\nexport const useOrderlyTheme = () => {\n return useContext(OrderlyThemeContext);\n};\n\nexport const OrderlyThemeProvider: FC<\n PropsWithChildren<OrderlyThemeProviderProps>\n> = (props) => {\n return (\n <OrderlyThemeContext.Provider\n value={{\n // overrides: props.overrides,\n getComponentTheme: <T,>(\n component: keyof ComponentOverrides,\n defaultValue?: T\n ) => {\n return (props.overrides?.[component] || defaultValue) as T;\n },\n }}\n >\n <ComponentsProvider components={props.components}>\n {props.children}\n </ComponentsProvider>\n </OrderlyThemeContext.Provider>\n );\n};\n","import { ExtensionPosition, installExtension } 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 const Element = props.components[position];\n installExtension<any>({\n name: Element.displayName ?? `custom-component-${position}`,\n scope: [\"*\"],\n positions: [position],\n __isInternal: false,\n })((props: any) => {\n return <Element {...props} />;\n });\n }\n }\n }, [props.components]);\n\n return props.children;\n};\n\nexport { ComponentsProvider };\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","\"use client\";\n\nimport * as React from \"react\";\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\";\nimport { cn } from \"..\";\n\nconst HoverCardRoot = HoverCardPrimitive.Root;\n\nconst HoverCardTrigger = HoverCardPrimitive.Trigger;\n\nconst HoverCardContent = React.forwardRef<\n React.ElementRef<typeof HoverCardPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <HoverCardPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"oui-z-[100] oui-w-64 oui-rounded-md oui-bg-base-8 oui-p-3 oui-text-base-contrast oui-shadow-md oui-outline-none 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 data-[state=closed]:oui-zoom-out-95 data-[state=open]:oui-zoom-in-95 data-[side=bottom]:oui-slide-in-from-top-2 data-[side=left]:oui-slide-in-from-right-2 data-[side=right]:oui-slide-in-from-left-2 data-[side=top]:oui-slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n));\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName;\n\nexport interface HoverCardProps\n extends React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Root> {\n className?: string;\n content: React.ReactNode;\n}\n\nconst HoverCard: React.FC<\n HoverCardProps &\n React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>\n> = (props) => {\n const { content, open, defaultOpen, onOpenChange, children, ...rest } = props;\n return (\n <HoverCardRoot\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n >\n <HoverCardTrigger asChild>{children}</HoverCardTrigger>\n <HoverCardPrimitive.Portal>\n <HoverCardContent {...rest}>\n {content}\n <HoverCardPrimitive.Arrow\n width={11}\n height={5}\n className=\"oui-fill-base-4\"\n />\n </HoverCardContent>\n </HoverCardPrimitive.Portal>\n </HoverCardRoot>\n );\n};\n\nHoverCard.displayName = \"HoverCard\";\n\nexport { HoverCard, HoverCardRoot, HoverCardTrigger, HoverCardContent };\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-darken\",\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 placeholder?: string;\n options: SelectOption[];\n value?: SelectOption | string | number;\n onValueChange?: (value: any) => void;\n}\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-54 \",\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-darken\",\n \"oui-bg-base-6\",\n \"oui-shadow\",\n \"oui-group\",\n \"oui-transition-colors\",\n \"focus-visible:oui-outline-none\",\n\n // \"focus-visible:oui-ring-1\",\n // \"focus-visible:oui-ring-ring\",\n // \"focus:oui-w-4\",\n // \"focus:oui-h-4\",\n \"focus:oui-shadow-[0_0_0_8px]\",\n \"focus:oui-shadow-base-contrast/20\",\n \"focus:oui-h-[14px]\",\n \"focus:oui-w-[14px]\",\n // \"focus:oui-border-[3px]\",\n \"data-[disabled]:oui-pointer-events-none\",\n \"data-[disabled]:oui-border-base-2\",\n \"data-[disabled]:oui-hidden\",\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:\n \"oui-absolute oui-h-[2px] oui-top-[3px] oui-bg-primary-darken data-[disabled]:oui-bg-base-2\",\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 tips: [\n \"oui-absolute\",\n \"oui-hidden\",\n \"oui-rounded\",\n \"oui-drop-shadow\",\n \"oui-w-[36px]\",\n \"oui-h-[19px]\",\n \"oui-translate-x-[-12px]\",\n \"oui-top-[-28px]\",\n \"oui-font-semibold\",\n \"oui-text-center\",\n \"group-focus:oui-inline-block\",\n \"after:oui-block\",\n \"after:oui-absolute\",\n \"after:oui-bottom-[-8px]\",\n \"after:oui-w-0\",\n \"after:oui-h-0\",\n \"after:oui-border-4\",\n \"after:oui-left-1/2\",\n \"after:oui-translate-x-[-50%]\",\n \"after:oui-border-solid\",\n \"after:oui-border-transparent\",\n \"after:oui-border-t-inherit\",\n \"oui-text-base-5\",\n \"oui-text-2xs\",\n ],\n },\n variants: {\n color: {\n primary: {\n thumb: [\"oui-border-primary-darken\", \"oui-bg-base-5\"],\n range: \"oui-bg-primary-darken\",\n tips: \"oui-bg-primary-darken after:oui-border-t-primary-darken\",\n },\n primaryLight: {\n thumb: [\"oui-border-primary-light\", \"oui-bg-base-5\"],\n range: \"oui-bg-primary-light\",\n tips: \"oui-bg-primary-light after:oui-border-t-primary-light\",\n },\n buy: {\n thumb: [\"oui-border-success\", \"oui-bg-base-5\"],\n range: \"oui-bg-success\",\n tips: [\"oui-bg-success after:oui-border-t-success\"],\n },\n sell: {\n thumb: [\"oui-border-danger\", \"oui-bg-base-5\"],\n range: \"oui-bg-danger\",\n tips: [\"oui-bg-danger after:oui-border-t-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 tipFormatter?: (value: number, min : number, max: number, percent: number) => string | React.ReactNode;\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, tips } =\n sliderVariants({\n color,\n });\n\n const [innerValue, setInvalue] = React.useState(__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: cn(classNames?.thumb, \"oui-slider-thumb\"),\n })}\n >\n {showTip && (\n <SliderTip\n value={innerValue}\n className={tips({\n color,\n })}\n max={props.max ?? 100}\n min={0}\n tipFormatter={props.tipFormatter}\n />\n )}\n </SliderPrimitive.Thumb>\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 }, [_value, props.step]);\n\n const colorCls = useMemo(() => {\n switch (color) {\n case \"primary\":\n return \"oui-border-primary-darken oui-bg-primary-darken\";\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-darken\";\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\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 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-2xs xl: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\nexport interface SliderTipProps {\n value?: number[];\n className?: string;\n min: number;\n max: number;\n tipFormatter?: (value: number, min: number, max: number, percent: number) => string | React.ReactNode;\n}\n\nexport const SliderTip: React.FC<SliderTipProps> = (props) => {\n const { className, min, max } = props;\n const value = props.value?.[0] ?? 0;\n const percent = convertValueToPercentage(value, min, max);\n return (\n <span className={className} style={{ lineHeight: \"19px\" }}>\n {props.tipFormatter?.(value,min,max,percent) ?? `${percent.toFixed()}%`}\n </span>\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\nSingleSlider.displayName = \"SingleSlider\";\n\ntype SliderType = typeof BaseSlider & {\n single: typeof SingleSlider;\n};\n\nconst Slider = BaseSlider as SliderType;\n\nSlider.single = 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-custom-scrollbar 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 &&\n \"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 { FC } from \"react\";\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\nimport { cn } from \"..\";\n\nconst Collapsible = CollapsiblePrimitive.Root;\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;\n\nconst CollapsibleContent: FC<CollapsiblePrimitive.CollapsibleContentProps> = (\n props\n) => {\n return (\n <CollapsiblePrimitive.CollapsibleContent\n {...props}\n className={cn(\n props.className,\n \"data-[state=open]:oui-animate-collapsible-down data-[state=closed]:oui-animate-collapsible-up oui-overflow-hidden\"\n )}\n ></CollapsiblePrimitive.CollapsibleContent>\n );\n};\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n","import { FC, PropsWithChildren, useState } from \"react\";\nimport { CollapseContext } from \"./collapseContext\";\nimport { Panel } from \"./panel\";\n\nconst CollapseRoot: FC<\n PropsWithChildren<{\n activeKey?: string;\n }>\n> = (props) => {\n const [activeKey, setActiveKey] = useState<string>(props.activeKey ?? \"\");\n return (\n <CollapseContext.Provider value={{ activeKey, setActiveKey }}>\n {props.children}\n </CollapseContext.Provider>\n );\n};\n\ntype Collapse = typeof CollapseRoot & {\n panel: typeof Panel;\n};\n\nconst Collapse = CollapseRoot as Collapse;\n\nCollapse.panel = Panel;\n\nexport default Collapse;\n","import { createContext, useContext } from \"react\";\n\nexport interface CollapseContextState {\n activeKey: string;\n setActiveKey: (key: string) => void;\n}\n\nexport const CollapseContext = createContext<CollapseContextState>(\n {} as CollapseContextState\n);\n\nexport const useCollapseContext = () => {\n return useContext(CollapseContext);\n};\n","import { FC, PropsWithChildren, ReactNode, useMemo } from \"react\";\n\nimport {\n CollapsibleContent,\n Collapsible,\n CollapsibleTrigger,\n} from \"../collapsible\";\nimport { useCollapseContext } from \"./collapseContext\";\nimport { cn } from \"../..\";\n\ninterface Props {\n header: ReactNode;\n headerClassName?: string;\n itemKey: string;\n disabled?: boolean;\n}\n\nexport const Panel: FC<PropsWithChildren<Props>> = (props) => {\n const { activeKey, setActiveKey } = useCollapseContext();\n const header = useMemo(() => {\n if (typeof props.header === \"string\") {\n return (\n <div\n className={cn(\n \"oui-py-2 oui-border-b oui-border-divider flex items-center oui-group oui-cursor-pointer\",\n props.headerClassName\n )}\n >\n <div className=\"oui-flex-1 group-data-[state=open]:oui-font-semibold\">\n {props.header}\n </div>\n {/* @ts-ignore */}\n <ChevronDown\n size={16}\n className=\"group-data-[state=open]:oui-rotate-180 oui-transition-transform\"\n />\n </div>\n );\n }\n return props.header;\n }, [props.header, props.headerClassName]);\n\n return (\n <Collapsible\n disabled={props.disabled}\n open={props.itemKey === activeKey}\n onOpenChange={(open: any) => {\n if (open) {\n setActiveKey(props.itemKey);\n } else {\n setActiveKey(\"\");\n }\n }}\n >\n <CollapsibleTrigger asChild>{header}</CollapsibleTrigger>\n <CollapsibleContent className=\"oui-py-3\">\n {props.children}\n </CollapsibleContent>\n </Collapsible>\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\";\nimport { Flex } from \"../flex\";\nimport { Box } from \"../box\";\n\nexport type MenuItem = {\n label: string;\n value: string;\n testId?: string;\n};\n\ntype DropdownMenuProps = {\n currentValue?: string;\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 { currentValue, 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 <Flex justify={\"between\"} width={\"100%\"}>\n {item.label}\n {currentValue == item.value && <Box width={4} height={4} gradient=\"primary\" r=\"full\"/>}\n </Flex>\n </DropdownMenuItem>\n ));\n }, [props.menu, props.render, currentValue]);\n return (\n <DropdownMenuRoot>\n <DropdownMenuTrigger asChild>{children}</DropdownMenuTrigger>\n <DropdownMenuPortal>\n <DropdownMenuContent\n onCloseAutoFocus={(event) => {\n event.preventDefault();\n }}\n size={size}\n {...contentProps}\n >\n {items}\n </DropdownMenuContent>\n </DropdownMenuPortal>\n </DropdownMenuRoot>\n );\n};\n\nexport { SimpleDropdownMenu };\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 * 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\";\n// export * from \"./tag/tag\";\nexport * from \"./tooltip\";\nexport * from \"./table\";\nexport * from \"./tableView\";\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\";\nexport * from \"./collapsible\";\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\";\nexport * from \"./hooks\";\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","/*\n! tailwindcss v3.4.4 | 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: 176 132 233;\n --oui-color-primary-light: 213 190 244;\n --oui-color-primary-darken: 137 76 209;\n --oui-color-primary-contrast: 255 255 255;\n --oui-color-link: 189 107 237;\n --oui-color-link-light: 217 152 250;\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: 245 97 139;\n --oui-color-danger-light: 250 167 188;\n --oui-color-danger-darken: 237 72 122;\n --oui-color-danger-contrast: 255 255 255;\n --oui-color-success: 41 233 169;\n --oui-color-success-light: 101 240 194;\n --oui-color-success-darken: 0 161 120;\n --oui-color-success-contrast: 255 255 255;\n --oui-color-warning: 255 209 70;\n --oui-color-warning-light: 255 229 133;\n --oui-color-warning-darken: 255 152 0;\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: 93 83 123;\n --oui-color-base-2: 81 72 107;\n --oui-color-base-3: 68 61 69;\n --oui-color-base-4: 57 52 74;\n --oui-color-base-5: 51 46 66;\n --oui-color-base-6: 43 38 56;\n --oui-color-base-7: 32 36 47;\n --oui-color-base-8: 29 26 38;\n --oui-color-base-9: 22 20 28;\n --oui-color-base-10: 14 13 18;\n --oui-color-base-foreground: 255 255 255;\n --oui-color-line: 255 255 255;\n --oui-color-trading-loss: 245 97 139;\n --oui-color-trading-loss-contrast: 255 255 255;\n --oui-color-trading-profit: 41 233 169;\n --oui-color-trading-profit-contrast: 255 255 255;\n --oui-gradient-primary-start: 231 219 249;\n --oui-gradient-primary-end: 159 107 225;\n --oui-gradient-secondary-start: 81 42 121;\n --oui-gradient-secondary-end: 176 132 233;\n --oui-gradient-success-start: 1 83 68;\n --oui-gradient-success-end: 41 223 169;\n --oui-gradient-danger-start: 153 24 76;\n --oui-gradient-danger-end: 245 97 139;\n --oui-gradient-brand-start: 38 254 255;\n --oui-gradient-brand-end: 89 176 254;\n --oui-gradient-warning-start: 152 58 8;\n --oui-gradient-warning-end: 255 209 70;\n --oui-gradient-neutral-start: 27 29 24;\n --oui-gradient-neutral-end: 38 41 46;\n --oui-spacing-xs: 20rem;\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\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.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-custom-scrollbar::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n}\n.oui-custom-scrollbar::-webkit-scrollbar-track {\n background-color: transparent;\n border-radius: 4px;\n padding-top: 20px;\n}\n.oui-custom-scrollbar::-webkit-scrollbar-thumb {\n border-radius: 3px;\n border-style: dashed;\n border-color: transparent;\n border-width: 1px;\n background-color: rgb(var(--oui-color-base-7));\n background-clip: padding-box;\n}\n.oui-custom-scrollbar::-webkit-scrollbar-thumb:hover {\n background: rgb(var(--oui-color-base-5));\n border-radius: 3px;\n}\n.oui-custom-scrollbar::-webkit-scrollbar-corner {\n background-color: transparent;\n}\n.oui-hide-scrollbar::-webkit-scrollbar {\n display: none;\n}\n.oui-hide-scrollbar::-webkit-scrollbar-thumb {\n display: none;\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-pointer-events-auto {\n pointer-events: auto;\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-2 {\n left: 0.5rem;\n}\n.oui-left-\\[-100\\%\\] {\n left: -100%;\n}\n.oui-left-\\[4px\\] {\n left: 4px;\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-\\[1px\\] {\n right: 1px;\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 {\n top: 0.5rem;\n}\n.oui-top-2\\/4 {\n top: 50%;\n}\n.oui-top-4 {\n top: 1rem;\n}\n.oui-top-\\[-28px\\] {\n top: -28px;\n}\n.oui-top-\\[-300px\\] {\n top: -300px;\n}\n.oui-top-\\[16px\\] {\n top: 16px;\n}\n.oui-top-\\[18px\\] {\n top: 18px;\n}\n.oui-top-\\[1px\\] {\n top: 1px;\n}\n.oui-top-\\[3px\\] {\n top: 3px;\n}\n.oui-top-\\[50\\%\\] {\n top: 50%;\n}\n.oui-top-\\[6\\.5px\\] {\n top: 6.5px;\n}\n.oui-top-\\[7px\\] {\n top: 7px;\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-\\[-1\\] {\n z-index: -1;\n}\n.oui-z-\\[100\\] {\n z-index: 100;\n}\n.oui-z-\\[1\\] {\n z-index: 1;\n}\n.oui-z-\\[2\\] {\n z-index: 2;\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 !important;\n margin-right: 0.25rem !important;\n}\n.\\!oui-my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\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-my-\\[1px\\] {\n margin-top: 1px;\n margin-bottom: 1px;\n}\n.oui-my-\\[6px\\] {\n margin-top: 6px;\n margin-bottom: 6px;\n}\n.\\!oui-mt-\\[0px\\] {\n margin-top: 0px !important;\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-\\[18px\\] {\n margin-bottom: 18px;\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-0\\.5 {\n margin-left: 0.125rem;\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-\\[1px\\] {\n margin-left: 1px;\n}\n.oui-ml-\\[2px\\] {\n margin-left: 2px;\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-\\[-30px\\] {\n margin-top: -30px;\n}\n.oui-mt-\\[18px\\] {\n margin-top: 18px;\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-\\[2px\\] {\n height: 2px !important;\n}\n.\\!oui-h-\\[34px\\] {\n height: 34px !important;\n}\n.\\!oui-h-\\[calc\\(100\\%_-_49px\\)\\] {\n height: calc(100% - 49px) !important;\n}\n.\\!oui-h-\\[calc\\(100\\%_-_54px_-_12px\\)\\] {\n height: calc(100% - 54px - 12px) !important;\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-\\[19px\\] {\n height: 19px;\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-\\[234px\\] {\n height: 234px;\n}\n.oui-h-\\[240px\\] {\n height: 240px;\n}\n.oui-h-\\[24px\\] {\n height: 24px;\n}\n.oui-h-\\[26px\\] {\n height: 26px;\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-\\[36px\\] {\n height: 36px;\n}\n.oui-h-\\[38px\\] {\n height: 38px;\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-\\[496px\\] {\n height: 496px;\n}\n.oui-h-\\[4px\\] {\n height: 4px;\n}\n.oui-h-\\[52px\\] {\n height: 52px;\n}\n.oui-h-\\[53px\\] {\n height: 53px;\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-\\[calc\\(100\\%_-_28px\\)\\] {\n height: calc(100% - 28px);\n}\n.oui-h-\\[calc\\(100\\%_-_32px\\)\\] {\n height: calc(100% - 32px);\n}\n.oui-h-\\[calc\\(100\\%_-_36px\\)\\] {\n height: calc(100% - 36px);\n}\n.oui-h-\\[calc\\(100\\%_-_40px\\)\\] {\n height: calc(100% - 40px);\n}\n.oui-h-\\[calc\\(100\\%_-_49px\\)\\] {\n height: calc(100% - 49px);\n}\n.oui-h-\\[calc\\(100\\%_-_52px\\)\\] {\n height: calc(100% - 52px);\n}\n.oui-h-\\[calc\\(100\\%_-_56px\\)\\] {\n height: calc(100% - 56px);\n}\n.oui-h-\\[calc\\(100\\%_-_59px\\)\\] {\n height: calc(100% - 59px);\n}\n.oui-h-\\[calc\\(100\\%_-_60px\\)\\] {\n height: calc(100% - 60px);\n}\n.oui-h-\\[calc\\(100vh_-_48px_-_29px\\)\\] {\n height: calc(100vh - 48px - 29px);\n}\n.oui-h-\\[calc\\(100vh_-_88px\\)\\] {\n height: calc(100vh - 88px);\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-h-screen {\n height: 100vh;\n}\n.oui-max-h-0 {\n max-height: 0px;\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-\\[202px\\] {\n max-height: 202px;\n}\n.oui-max-h-\\[234px\\] {\n max-height: 234px;\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-\\[288px\\] {\n max-height: 288px;\n}\n.oui-max-h-\\[356px\\] {\n max-height: 356px;\n}\n.oui-max-h-\\[463px\\] {\n max-height: 463px;\n}\n.oui-max-h-\\[69px\\] {\n max-height: 69px;\n}\n.oui-max-h-full {\n max-height: 100%;\n}\n.\\!oui-min-h-\\[2px\\] {\n min-height: 2px !important;\n}\n.oui-min-h-11 {\n min-height: 2.75rem;\n}\n.oui-min-h-12 {\n min-height: 3rem;\n}\n.oui-min-h-\\[141px\\] {\n min-height: 141px;\n}\n.oui-min-h-\\[162px\\] {\n min-height: 162px;\n}\n.oui-min-h-\\[170px\\] {\n min-height: 170px;\n}\n.oui-min-h-\\[176px\\] {\n min-height: 176px;\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-\\[2px\\] {\n width: 2px !important;\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-64 {\n width: 16rem;\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-\\[148px\\] {\n width: 148px;\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-\\[230px\\] {\n width: 230px;\n}\n.oui-w-\\[240px\\] {\n width: 240px;\n}\n.oui-w-\\[260px\\] {\n width: 260px;\n}\n.oui-w-\\[280px\\] {\n width: 280px;\n}\n.oui-w-\\[28px\\] {\n width: 28px;\n}\n.oui-w-\\[2px\\] {\n width: 2px;\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-\\[36px\\] {\n width: 36px;\n}\n.oui-w-\\[40px\\] {\n width: 40px;\n}\n.oui-w-\\[429px\\] {\n width: 429px;\n}\n.oui-w-\\[4px\\] {\n width: 4px;\n}\n.oui-w-\\[50\\%\\] {\n width: 50%;\n}\n.oui-w-\\[68px\\] {\n width: 68px;\n}\n.oui-w-\\[69px\\] {\n width: 69px;\n}\n.oui-w-\\[6px\\] {\n width: 6px;\n}\n.oui-w-\\[8\\.3px\\] {\n width: 8.3px;\n}\n.oui-w-\\[80px\\] {\n width: 80px;\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-w-screen {\n width: 100vw;\n}\n.\\!oui-min-w-\\[2px\\] {\n min-width: 2px !important;\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-\\[1440px\\] {\n min-width: 1440px;\n}\n.oui-min-w-\\[180px\\] {\n min-width: 180px;\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-\\[280px\\] {\n max-width: 280px;\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-\\[83px\\] {\n max-width: 83px;\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-max-w-xs {\n max-width: var(--oui-spacing-xs, 20rem);\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-\\[100\\%\\] {\n flex-basis: 100%;\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-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-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-\\[-12px\\] {\n --tw-translate-x: -12px;\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-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-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-\\[4fr\\,6fr\\] {\n grid-template-columns: 4fr 6fr;\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-\\[auto\\,1fr\\,auto\\] {\n grid-template-rows: auto 1fr auto;\n}\n.oui-grid-rows-\\[auto\\,1fr\\] {\n grid-template-rows: auto 1fr;\n}\n.oui-grid-rows-\\[auto\\,auto\\,1fr\\,auto\\,1fr\\] {\n grid-template-rows: auto auto 1fr auto 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-0\\.5 {\n gap: 0.125rem;\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-7 {\n -moz-column-gap: 1.75rem;\n column-gap: 1.75rem;\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-y-0 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0 !important;\n margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse))) !important;\n margin-bottom: calc(0px * var(--tw-space-y-reverse)) !important;\n}\n.\\!oui-space-y-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0 !important;\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))) !important;\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)) !important;\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-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.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-\\[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-y-hidden {\n overflow-y: hidden;\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-\\[10px\\] {\n border-radius: 10px;\n}\n.oui-rounded-\\[1px\\] {\n border-radius: 1px;\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-l {\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n.oui-rounded-r {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n.oui-rounded-t-2xl {\n border-top-left-radius: 1rem;\n border-top-right-radius: 1rem;\n}\n.oui-rounded-t-\\[6px\\] {\n border-top-left-radius: 6px;\n border-top-right-radius: 6px;\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-rounded-bl {\n border-bottom-left-radius: 0.25rem !important;\n}\n.\\!oui-rounded-br {\n border-bottom-right-radius: 0.25rem !important;\n}\n.\\!oui-rounded-tl {\n border-top-left-radius: 0.25rem !important;\n}\n.\\!oui-rounded-tr {\n border-top-right-radius: 0.25rem !important;\n}\n.oui-rounded-bl-\\[40px\\] {\n border-bottom-left-radius: 40px;\n}\n.oui-rounded-bl-\\[6px\\] {\n border-bottom-left-radius: 6px;\n}\n.oui-rounded-br-\\[3px\\] {\n border-bottom-right-radius: 3px;\n}\n.oui-border {\n border-width: 1px;\n}\n.oui-border-0 {\n border-width: 0px;\n}\n.oui-border-\\[1px\\] {\n border-width: 1px;\n}\n.oui-border-\\[2px\\] {\n border-width: 2px;\n}\n.oui-border-\\[4px\\] {\n border-width: 4px;\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-t-\\[1px\\] {\n border-top-width: 1px;\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-primary-light {\n --tw-border-opacity: 1 !important;\n border-color: rgb(var(--oui-color-primary-light) / var(--tw-border-opacity)) !important;\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-5 {\n --tw-border-opacity: 1;\n border-color: rgb(var(--oui-color-base-5) / var(--tw-border-opacity));\n}\n.oui-border-base-contrast-12 {\n border-color: rgb(var(--oui-color-base-foreground) / 0.12);\n}\n.oui-border-base-contrast-36 {\n border-color: rgb(var(--oui-color-base-foreground) / 0.36);\n}\n.oui-border-base-contrast-54 {\n border-color: rgb(var(--oui-color-base-foreground) / 0.54);\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-darken {\n --tw-border-opacity: 1;\n border-color: rgb(var(--oui-color-primary-darken) / 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-darken {\n --tw-border-opacity: 1;\n border-color: rgb(var(--oui-color-warning-darken) / var(--tw-border-opacity));\n}\n.oui-border-white\\/10 {\n border-color: rgb(255 255 255 / 0.1);\n}\n.oui-border-b-line-4 {\n border-bottom-color: rgb(var(--oui-color-line, 255 255 255) / 0.04);\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-b-white\\/10 {\n border-bottom-color: rgb(255 255 255 / 0.1);\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-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-bg-primary-darken {\n --tw-bg-opacity: 1 !important;\n background-color: rgb(var(--oui-color-primary-darken) / var(--tw-bg-opacity)) !important;\n}\n.\\!oui-bg-transparent {\n background-color: transparent !important;\n}\n.oui-bg-\\[rgba\\(51\\,71\\,253\\,1\\)\\] {\n background-color: rgba(51,71,253,1);\n}\n.oui-bg-\\[var\\(--oui-table-background-color\\)\\] {\n background-color: var(--oui-table-background-color);\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-base-contrast-80 {\n background-color: rgb(var(--oui-color-base-foreground) / 0.80);\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-darken {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-danger-darken) / 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-darken {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-primary-darken) / var(--tw-bg-opacity));\n}\n.oui-bg-primary-darken\\/15 {\n background-color: rgb(var(--oui-color-primary-darken) / 0.15);\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-red-300 {\n --tw-bg-opacity: 1;\n background-color: rgb(252 165 165 / var(--tw-bg-opacity));\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-darken {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-success-darken) / 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-darken {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-warning-darken) / var(--tw-bg-opacity));\n}\n.oui-bg-warning-darken\\/10 {\n background-color: rgb(var(--oui-color-warning-darken) / 0.1);\n}\n.oui-bg-warning-darken\\/15 {\n background-color: rgb(var(--oui-color-warning-darken) / 0.15);\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-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\\/80 {\n background-color: rgb(255 255 255 / 0.8);\n}\n.oui-bg-white\\/\\[\\.06\\] {\n background-color: rgb(255 255 255 / .06);\n}\n.oui-bg-white\\/\\[\\.54\\] {\n background-color: rgb(255 255 255 / .54);\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-t {\n background-image: linear-gradient(to top, 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-\\[\\#2d0061\\] {\n --tw-gradient-from: #2d0061 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(45 0 97 / 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-\\[\\#bd6bed\\] {\n --tw-gradient-to: #bd6bed 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-4 {\n fill: rgb(var(--oui-color-base-4) / 1);\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-darken {\n fill: rgb(var(--oui-color-primary-darken) / 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-transparent {\n fill: transparent;\n}\n.oui-fill-warning-darken {\n fill: rgb(var(--oui-color-warning-darken) / 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-\\[14px\\] {\n padding-left: 14px;\n padding-right: 14px;\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 !important;\n}\n.\\!oui-pt-0 {\n padding-top: 0px !important;\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-\\[53px\\] {\n padding-bottom: 53px;\n}\n.oui-pb-\\[5px\\] {\n padding-bottom: 5px;\n}\n.oui-pb-\\[env\\(safe-area-inset-bottom\\)\\] {\n padding-bottom: env(safe-area-inset-bottom);\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-\\[-4px\\] {\n padding-right: -4px;\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-pt-\\[7px\\] {\n padding-top: 7px;\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-\\[11px\\] {\n font-size: 11px;\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-\\[\\#FF9A2E\\] {\n --tw-text-opacity: 1;\n color: rgb(255 154 46 / var(--tw-text-opacity));\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-5 {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-base-5) / var(--tw-text-opacity));\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-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity));\n}\n.oui-text-black\\/\\[\\.36\\] {\n color: rgb(0 0 0 / .36);\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-darken {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-danger-darken) / 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-contrast {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-primary-contrast) / var(--tw-text-opacity));\n}\n.oui-text-primary-darken {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-primary-darken) / 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-darken {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-success-darken) / 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-contrast {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-warning-contrast) / var(--tw-text-opacity));\n}\n.oui-text-warning-darken {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-warning-darken) / 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-text-white\\/\\[\\.36\\] {\n color: rgb(255 255 255 / .36);\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-darken {\n text-decoration-color: rgb(var(--oui-color-warning-darken) / 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-none {\n --tw-shadow: 0 0 #0000 !important;\n --tw-shadow-colored: 0 0 #0000 !important;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;\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-line-12 {\n outline-color: rgb(var(--oui-color-line, 255 255 255) / 0.12);\n}\n.oui-outline-primary-darken {\n outline-color: rgb(var(--oui-color-primary-darken) / 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-darken {\n outline-color: rgb(var(--oui-color-warning-darken) / 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-blur-\\[200px\\] {\n --tw-blur: blur(200px);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.oui-drop-shadow {\n --tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06));\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.\\!oui-transition-none {\n transition-property: none !important;\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-\\[max-height\\] {\n transition-property: max-height;\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-150 {\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-150 {\n animation-duration: 150ms;\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.before\\:oui-absolute::before {\n content: var(--tw-content);\n position: absolute;\n}\n.before\\:oui-left-\\[-32px\\]::before {\n content: var(--tw-content);\n left: -32px;\n}\n.before\\:oui-right-\\[-32px\\]::before {\n content: var(--tw-content);\n right: -32px;\n}\n.before\\:oui-top-0::before {\n content: var(--tw-content);\n top: 0px;\n}\n.before\\:oui-z-\\[-1\\]::before {\n content: var(--tw-content);\n z-index: -1;\n}\n.before\\:oui-block::before {\n content: var(--tw-content);\n display: block;\n}\n.before\\:oui-h-full::before {\n content: var(--tw-content);\n height: 100%;\n}\n.before\\:oui-w-\\[32px\\]::before {\n content: var(--tw-content);\n width: 32px;\n}\n.before\\:oui-rotate-180::before {\n content: var(--tw-content);\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.before\\:oui-bg-\\[linear-gradient\\(90deg\\2c rgba\\(var\\(--oui-color-base-10\\)_\\/_0\\.80\\)_0\\%\\2c rgba\\(var\\(--oui-color-base-10\\)_\\/_0\\.36\\)_65\\%\\2c rgba\\(var\\(--oui-color-base-10\\)_\\/_0\\.00\\)_100\\%\\)\\]::before {\n content: var(--tw-content);\n background-image: linear-gradient(90deg,rgba(var(--oui-color-base-10) / 0.80) 0%,rgba(var(--oui-color-base-10) / 0.36) 65%,rgba(var(--oui-color-base-10) / 0.00) 100%);\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-bottom-\\[-8px\\]::after {\n content: var(--tw-content);\n bottom: -8px;\n}\n.after\\:oui-left-0::after {\n content: var(--tw-content);\n left: 0px;\n}\n.after\\:oui-left-1\\/2::after {\n content: var(--tw-content);\n left: 50%;\n}\n.after\\:oui-left-2::after {\n content: var(--tw-content);\n left: 0.5rem;\n}\n.after\\:oui-right-0::after {\n content: var(--tw-content);\n right: 0px;\n}\n.after\\:oui-right-2::after {\n content: var(--tw-content);\n right: 0.5rem;\n}\n.after\\:oui-top-0::after {\n content: var(--tw-content);\n top: 0px;\n}\n.after\\:oui-z-\\[-1\\]::after {\n content: var(--tw-content);\n z-index: -1;\n}\n.after\\:oui-block::after {\n content: var(--tw-content);\n display: block;\n}\n.after\\:oui-inline-block::after {\n content: var(--tw-content);\n display: inline-block;\n}\n.after\\:\\!oui-h-\\[2px\\]::after {\n content: var(--tw-content);\n height: 2px !important;\n}\n.after\\:oui-h-0::after {\n content: var(--tw-content);\n height: 0px;\n}\n.after\\:oui-h-\\[2px\\]::after {\n content: var(--tw-content);\n height: 2px;\n}\n.after\\:oui-h-full::after {\n content: var(--tw-content);\n height: 100%;\n}\n.after\\:\\!oui-w-\\[2px\\]::after {\n content: var(--tw-content);\n width: 2px !important;\n}\n.after\\:oui-w-0::after {\n content: var(--tw-content);\n width: 0px;\n}\n.after\\:oui-w-\\[10px\\]::after {\n content: var(--tw-content);\n width: 10px;\n}\n.after\\:oui-w-full::after {\n content: var(--tw-content);\n width: 100%;\n}\n.after\\:oui-translate-x-\\[-50\\%\\]::after {\n content: var(--tw-content);\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.after\\:oui-border-4::after {\n content: var(--tw-content);\n border-width: 4px;\n}\n.after\\:oui-border-b::after {\n content: var(--tw-content);\n border-bottom-width: 1px;\n}\n.after\\:oui-border-solid::after {\n content: var(--tw-content);\n border-style: solid;\n}\n.after\\:oui-border-line::after {\n content: var(--tw-content);\n border-color: rgb(var(--oui-color-line, 255 255 255) / 0.08);\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-border-transparent::after {\n content: var(--tw-content);\n border-color: transparent;\n}\n.after\\:oui-border-t-danger::after {\n content: var(--tw-content);\n --tw-border-opacity: 1;\n border-top-color: rgb(var(--oui-color-danger) / var(--tw-border-opacity));\n}\n.after\\:oui-border-t-inherit::after {\n content: var(--tw-content);\n border-top-color: inherit;\n}\n.after\\:oui-border-t-primary-darken::after {\n content: var(--tw-content);\n --tw-border-opacity: 1;\n border-top-color: rgb(var(--oui-color-primary-darken) / var(--tw-border-opacity));\n}\n.after\\:oui-border-t-primary-light::after {\n content: var(--tw-content);\n --tw-border-opacity: 1;\n border-top-color: rgb(var(--oui-color-primary-light) / var(--tw-border-opacity));\n}\n.after\\:oui-border-t-success::after {\n content: var(--tw-content);\n --tw-border-opacity: 1;\n border-top-color: rgb(var(--oui-color-success) / var(--tw-border-opacity));\n}\n.after\\:\\!oui-bg-transparent::after {\n content: var(--tw-content);\n background-color: transparent !important;\n}\n.after\\:oui-bg-white\\/50::after {\n content: var(--tw-content);\n background-color: rgb(255 255 255 / 0.5);\n}\n.after\\:\\!oui-shadow-transparent::after {\n content: var(--tw-content);\n --tw-shadow-color: transparent !important;\n --tw-shadow: var(--tw-shadow-colored) !important;\n}\n.after\\:oui-content-\\[\\\"\\\"\\]::after {\n --tw-content: \"\";\n content: var(--tw-content);\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:focus-within {\n outline-color: rgb(var(--oui-color-danger) / 1);\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-darken:focus-within {\n outline-color: rgb(var(--oui-color-primary-darken) / 1);\n}\n.focus-within\\:oui-outline-primary-light:focus-within {\n outline-color: rgb(var(--oui-color-primary-light) / 1);\n}\n.focus-within\\:oui-outline-success:focus-within {\n outline-color: rgb(var(--oui-color-success) / 1);\n}\n.focus-within\\:oui-outline-transparent:focus-within {\n outline-color: transparent;\n}\n.focus-within\\:oui-outline-warning-darken:focus-within {\n outline-color: rgb(var(--oui-color-warning-darken) / 1);\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-primary-light:hover {\n --tw-bg-opacity: 1 !important;\n background-color: rgb(var(--oui-color-primary-light) / var(--tw-bg-opacity)) !important;\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\\/50:hover {\n background-color: rgb(var(--oui-color-base-2) / 0.5);\n}\n.hover\\:oui-bg-base-2\\/80:hover {\n background-color: rgb(var(--oui-color-base-2) / 0.8);\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:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-4) / var(--tw-bg-opacity));\n}\n.hover\\:oui-bg-base-4\\/20:hover {\n background-color: rgb(var(--oui-color-base-4) / 0.2);\n}\n.hover\\:oui-bg-base-4\\/80:hover {\n background-color: rgb(var(--oui-color-base-4) / 0.8);\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-darken\\/80:hover {\n background-color: rgb(var(--oui-color-danger-darken) / 0.8);\n}\n.hover\\:oui-bg-danger\\/10:hover {\n background-color: rgb(var(--oui-color-danger) / 0.1);\n}\n.hover\\:oui-bg-danger\\/20:hover {\n background-color: rgb(var(--oui-color-danger) / 0.2);\n}\n.hover\\:oui-bg-danger\\/80:hover {\n background-color: rgb(var(--oui-color-danger) / 0.8);\n}\n.hover\\:oui-bg-primary-darken:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-primary-darken) / var(--tw-bg-opacity));\n}\n.hover\\:oui-bg-primary-darken\\/10:hover {\n background-color: rgb(var(--oui-color-primary-darken) / 0.1);\n}\n.hover\\:oui-bg-primary-darken\\/20:hover {\n background-color: rgb(var(--oui-color-primary-darken) / 0.2);\n}\n.hover\\:oui-bg-primary-darken\\/80:hover {\n background-color: rgb(var(--oui-color-primary-darken) / 0.8);\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-success-darken\\/80:hover {\n background-color: rgb(var(--oui-color-success-darken) / 0.8);\n}\n.hover\\:oui-bg-success\\/10:hover {\n background-color: rgb(var(--oui-color-success) / 0.1);\n}\n.hover\\:oui-bg-success\\/20:hover {\n background-color: rgb(var(--oui-color-success) / 0.2);\n}\n.hover\\:oui-bg-success\\/80:hover {\n background-color: rgb(var(--oui-color-success) / 0.8);\n}\n.hover\\:oui-bg-transparent:hover {\n background-color: transparent;\n}\n.hover\\:oui-bg-warning-darken\\/10:hover {\n background-color: rgb(var(--oui-color-warning-darken) / 0.1);\n}\n.hover\\:oui-bg-warning-darken\\/20:hover {\n background-color: rgb(var(--oui-color-warning-darken) / 0.2);\n}\n.hover\\:oui-bg-warning-darken\\/80:hover {\n background-color: rgb(var(--oui-color-warning-darken) / 0.8);\n}\n.hover\\:oui-bg-white\\/80:hover {\n background-color: rgb(255 255 255 / 0.8);\n}\n.hover\\:oui-bg-white\\/\\[\\.54\\]:hover {\n background-color: rgb(255 255 255 / .54);\n}\n.hover\\:oui-fill-base-contrast-80:hover {\n fill: rgb(var(--oui-color-base-foreground) / 0.80);\n}\n.hover\\:oui-fill-primary-darken:hover {\n fill: rgb(var(--oui-color-primary-darken) / 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-54:hover {\n color: rgb(var(--oui-color-base-foreground) / 0.54);\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-darken:hover {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-primary-darken) / 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-text-white\\/80:hover {\n color: rgb(255 255 255 / 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.hover\\:\\!oui-shadow-\\[0px_0px_4px_0px\\]:hover {\n --tw-shadow: 0px 0px 4px 0px !important;\n --tw-shadow-colored: 0px 0px 4px 0px var(--tw-shadow-color) !important;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;\n}\n.hover\\:\\!oui-shadow-primary-light\\/80:hover {\n --tw-shadow-color: rgb(var(--oui-color-primary-light) / 0.8) !important;\n --tw-shadow: var(--tw-shadow-colored) !important;\n}\n.focus\\:oui-h-4:focus {\n height: 1rem;\n}\n.focus\\:oui-h-\\[14px\\]:focus {\n height: 14px;\n}\n.focus\\:oui-w-4:focus {\n width: 1rem;\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-darken:focus {\n --tw-border-opacity: 1;\n border-color: rgb(var(--oui-color-primary-darken) / var(--tw-border-opacity));\n}\n.focus\\:\\!oui-bg-primary-light:focus {\n --tw-bg-opacity: 1 !important;\n background-color: rgb(var(--oui-color-primary-light) / var(--tw-bg-opacity)) !important;\n}\n.focus\\:\\!oui-shadow-\\[0px_0px_4px_0px\\]:focus {\n --tw-shadow: 0px 0px 4px 0px !important;\n --tw-shadow-colored: 0px 0px 4px 0px var(--tw-shadow-color) !important;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;\n}\n.focus\\:oui-shadow-\\[0_0_0_8px\\]:focus {\n --tw-shadow: 0 0 0 8px;\n --tw-shadow-colored: 0 0 0 8px 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.focus\\:\\!oui-shadow-primary-light\\/80:focus {\n --tw-shadow-color: rgb(var(--oui-color-primary-light) / 0.8) !important;\n --tw-shadow: var(--tw-shadow-colored) !important;\n}\n.focus\\:oui-shadow-base-contrast\\/20:focus {\n --tw-shadow-color: rgb(var(--oui-color-base-foreground) / 0.2);\n --tw-shadow: var(--tw-shadow-colored);\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-outline-danger:focus-visible {\n outline-color: rgb(var(--oui-color-danger) / 1);\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-primary-light:active {\n --tw-bg-opacity: 1 !important;\n background-color: rgb(var(--oui-color-primary-light) / var(--tw-bg-opacity)) !important;\n}\n.active\\:oui-bg-base-2\\/70:active {\n background-color: rgb(var(--oui-color-base-2) / 0.7);\n}\n.active\\:oui-bg-base-4\\/70:active {\n background-color: rgb(var(--oui-color-base-4) / 0.7);\n}\n.active\\:oui-bg-base-6:active {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-6) / var(--tw-bg-opacity));\n}\n.active\\:oui-bg-danger-darken\\/80:active {\n background-color: rgb(var(--oui-color-danger-darken) / 0.8);\n}\n.active\\:oui-bg-danger\\/70:active {\n background-color: rgb(var(--oui-color-danger) / 0.7);\n}\n.active\\:oui-bg-primary-darken\\/70:active {\n background-color: rgb(var(--oui-color-primary-darken) / 0.7);\n}\n.active\\:oui-bg-success-darken\\/80:active {\n background-color: rgb(var(--oui-color-success-darken) / 0.8);\n}\n.active\\:oui-bg-success\\/70:active {\n background-color: rgb(var(--oui-color-success) / 0.7);\n}\n.active\\:oui-bg-warning-darken\\/70:active {\n background-color: rgb(var(--oui-color-warning-darken) / 0.7);\n}\n.active\\:oui-bg-white\\/50:active {\n background-color: rgb(255 255 255 / 0.5);\n}\n.active\\:\\!oui-shadow-\\[0px_0px_4px_0px\\]:active {\n --tw-shadow: 0px 0px 4px 0px !important;\n --tw-shadow-colored: 0px 0px 4px 0px var(--tw-shadow-color) !important;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;\n}\n.active\\:\\!oui-shadow-primary-light\\/80:active {\n --tw-shadow-color: rgb(var(--oui-color-primary-light) / 0.8) !important;\n --tw-shadow: var(--tw-shadow-colored) !important;\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:first-child .group-first\\:oui-rounded-t-xl {\n border-top-left-radius: 0.75rem;\n border-top-right-radius: 0.75rem;\n}\n.oui-group:last-child .group-last\\:oui-rounded-b-xl {\n border-bottom-right-radius: 0.75rem;\n border-bottom-left-radius: 0.75rem;\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-inline-flex {\n display: inline-flex;\n}\n.oui-group:hover .group-hover\\: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-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-bg-line-4 {\n background-color: rgb(var(--oui-color-line, 255 255 255) / 0.04);\n}\n.oui-group:hover .group-hover\\:oui-bg-line-6 {\n background-color: rgb(var(--oui-color-line, 255 255 255) / 0.06);\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-group:hover .group-hover\\:oui-will-change-\\[max-height\\] {\n will-change: max-height;\n}\n.oui-group:focus .group-focus\\:oui-inline-block {\n display: inline-block;\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-\\[disabled\\]\\:oui-hidden[data-disabled] {\n display: 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-\\[15px\\][data-state=checked] {\n --tw-translate-x: 15px;\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-\\[3px\\][data-state=unchecked] {\n --tw-translate-x: 3px;\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-collapsible-up {\n\n from {\n height: var(--radix-collapsible-content-height);\n }\n\n to {\n height: 0;\n }\n}\n.data-\\[state\\=closed\\]\\:oui-animate-collapsible-up[data-state=closed] {\n animation: oui-collapsible-up 0.2s ease-out;\n}\n@keyframes oui-collapsible-down {\n\n from {\n height: 0;\n }\n\n to {\n height: var(--radix-collapsible-content-height);\n }\n}\n.data-\\[state\\=open\\]\\:oui-animate-collapsible-down[data-state=open] {\n animation: oui-collapsible-down 0.2s ease-out;\n}\n.data-\\[state\\=checked\\]\\:oui-border-none[data-state=checked] {\n border-style: none;\n}\n.data-\\[disabled\\]\\:oui-border-base-2[data-disabled] {\n --tw-border-opacity: 1;\n border-color: rgb(var(--oui-color-base-2) / var(--tw-border-opacity));\n}\n.data-\\[state\\=checked\\]\\:oui-border-base-contrast-20[data-state=checked] {\n border-color: rgb(var(--oui-color-base-foreground) / 0.2);\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-\\[disabled\\]\\:oui-bg-base-2[data-disabled] {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-2) / 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-base-5[data-state=checked] {\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-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-darken[data-state=checked] {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-primary-darken) / 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-transparent[data-state=checked] {\n background-color: transparent;\n}\n.data-\\[state\\=checked\\]\\:oui-bg-warning-darken[data-state=checked] {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-warning-darken) / 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-darken[data-state=unchecked] {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-warning-darken) / 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\\=checked\\]\\:oui-text-base-contrast-80[data-state=checked] {\n color: rgb(var(--oui-color-base-foreground) / 0.80);\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[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-group[data-state=open] .group-data-\\[state\\=open\\]\\:oui-font-semibold {\n font-weight: 600;\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.oui-peer[data-disabled] ~ .peer-data-\\[disabled\\]\\:oui-text-base-contrast-20 {\n color: rgb(var(--oui-color-base-foreground) / 0.2);\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-10 {\n height: 2.5rem;\n }\n\n .md\\:oui-h-12 {\n height: 3rem;\n }\n\n .md\\:oui-h-3 {\n height: 0.75rem;\n }\n\n .md\\:oui-h-4 {\n height: 1rem;\n }\n\n .md\\:oui-h-5 {\n height: 1.25rem;\n }\n\n .md\\:oui-h-6 {\n height: 1.5rem;\n }\n\n .md\\:oui-h-7 {\n height: 1.75rem;\n }\n\n .md\\:oui-h-8 {\n height: 2rem;\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-h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n }\n\n .md\\:oui-w-3 {\n width: 0.75rem;\n }\n\n .md\\:oui-w-4 {\n width: 1rem;\n }\n\n .md\\:oui-w-5 {\n width: 1.25rem;\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-w-full {\n width: 100%;\n }\n\n .md\\:oui-min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n }\n\n .md\\:oui-flex-shrink {\n flex-shrink: 1;\n }\n\n .md\\:oui-cursor-not-allowed {\n cursor: not-allowed;\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-rounded-md {\n border-radius: 0.375rem;\n }\n\n .md\\:oui-border {\n border-width: 1px;\n }\n\n .md\\:oui-border-danger {\n --tw-border-opacity: 1;\n border-color: rgb(var(--oui-color-danger) / var(--tw-border-opacity));\n }\n\n .md\\:oui-border-line-6 {\n border-color: rgb(var(--oui-color-line, 255 255 255) / 0.06);\n }\n\n .md\\:oui-bg-base-4 {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-4) / var(--tw-bg-opacity));\n }\n\n .md\\:oui-bg-base-5 {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-5) / var(--tw-bg-opacity));\n }\n\n .md\\:oui-bg-line-4 {\n background-color: rgb(var(--oui-color-line, 255 255 255) / 0.04);\n }\n\n .md\\:oui-p-10 {\n padding: 2.5rem;\n }\n\n .md\\:oui-px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n }\n\n .md\\:oui-pb-\\[14px\\] {\n padding-bottom: 14px;\n }\n\n .md\\:oui-pl-0 {\n padding-left: 0px;\n }\n\n .md\\:oui-pl-2 {\n padding-left: 0.5rem;\n }\n\n .md\\:oui-pl-3 {\n padding-left: 0.75rem;\n }\n\n .md\\:oui-pr-0 {\n padding-right: 0px;\n }\n\n .md\\:oui-pr-2 {\n padding-right: 0.5rem;\n }\n\n .md\\:oui-pr-3 {\n padding-right: 0.75rem;\n }\n\n .md\\:oui-pt-3 {\n padding-top: 0.75rem;\n }\n\n .md\\:oui-text-left {\n text-align: left;\n }\n\n .md\\:oui-text-center {\n text-align: center;\n }\n\n .md\\:oui-text-right {\n text-align: right;\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-2xs {\n font-size: var(--oui-font-size-2xs, 0.75rem);\n line-height: 1.125rem;\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 .md\\:oui-text-base-contrast-20 {\n color: rgb(var(--oui-color-base-foreground) / 0.2);\n }\n\n .md\\:oui-text-base-contrast-80 {\n color: rgb(var(--oui-color-base-foreground) / 0.80);\n }\n\n .md\\:oui-text-danger {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-danger) / var(--tw-text-opacity));\n }\n\n .md\\:oui-text-success {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-success) / var(--tw-text-opacity));\n }\n\n .md\\:oui-text-warning-darken {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-warning-darken) / var(--tw-text-opacity));\n }\n\n .md\\:oui-outline-danger {\n outline-color: rgb(var(--oui-color-danger) / 1);\n }\n\n .md\\:oui-outline-success {\n outline-color: rgb(var(--oui-color-success) / 1);\n }\n\n .md\\:oui-outline-transparent {\n outline-color: transparent;\n }\n\n .md\\:oui-outline-warning-darken {\n outline-color: rgb(var(--oui-color-warning-darken) / 1);\n }\n\n .md\\:placeholder\\:oui-text-2xs::-moz-placeholder {\n font-size: var(--oui-font-size-2xs, 0.75rem);\n line-height: 1.125rem;\n }\n\n .md\\:placeholder\\:oui-text-2xs::placeholder {\n font-size: var(--oui-font-size-2xs, 0.75rem);\n line-height: 1.125rem;\n }\n\n .md\\:placeholder\\:oui-text-base::-moz-placeholder {\n font-size: var(--oui-font-size-base, 1rem);\n line-height: 1.5rem;\n }\n\n .md\\:placeholder\\:oui-text-base::placeholder {\n font-size: var(--oui-font-size-base, 1rem);\n line-height: 1.5rem;\n }\n\n .md\\:placeholder\\:oui-text-sm::-moz-placeholder {\n font-size: var(--oui-font-size-sm,0.875rem);\n line-height: 1.25rem;\n }\n\n .md\\:placeholder\\:oui-text-sm::placeholder {\n font-size: var(--oui-font-size-sm,0.875rem);\n line-height: 1.25rem;\n }\n\n .md\\:focus-within\\:oui-outline-danger:focus-within {\n outline-color: rgb(var(--oui-color-danger) / 1);\n }\n\n .md\\:focus-within\\:oui-outline-success:focus-within {\n outline-color: rgb(var(--oui-color-success) / 1);\n }\n\n .md\\:focus-within\\:oui-outline-warning-darken:focus-within {\n outline-color: rgb(var(--oui-color-warning-darken) / 1);\n }\n\n .md\\: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\n .md\\: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\n .md\\: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\n .md\\: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\n .md\\: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}\n@media (min-width: 768px) {\n\n .lg\\:oui-mb-0 {\n margin-bottom: 0px;\n }\n\n .lg\\:oui-mb-8 {\n margin-bottom: 2rem;\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-10 {\n height: 2.5rem;\n }\n\n .lg\\:oui-h-12 {\n height: 3rem;\n }\n\n .lg\\:oui-h-3 {\n height: 0.75rem;\n }\n\n .lg\\:oui-h-4 {\n height: 1rem;\n }\n\n .lg\\:oui-h-5 {\n height: 1.25rem;\n }\n\n .lg\\:oui-h-6 {\n height: 1.5rem;\n }\n\n .lg\\:oui-h-7 {\n height: 1.75rem;\n }\n\n .lg\\:oui-h-8 {\n height: 2rem;\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-h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n }\n\n .lg\\:oui-min-h-\\[46px\\] {\n min-height: 46px;\n }\n\n .lg\\:oui-w-3 {\n width: 0.75rem;\n }\n\n .lg\\:oui-w-4 {\n width: 1rem;\n }\n\n .lg\\:oui-w-5 {\n width: 1.25rem;\n }\n\n .lg\\:oui-w-6 {\n width: 1.5rem;\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-auto {\n width: auto;\n }\n\n .lg\\:oui-w-full {\n width: 100%;\n }\n\n .lg\\:oui-min-w-\\[184px\\] {\n min-width: 184px;\n }\n\n .lg\\:oui-min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\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-cursor-not-allowed {\n cursor: not-allowed;\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-3 {\n gap: 0.75rem;\n }\n\n .lg\\:oui-gap-4 {\n gap: 1rem;\n }\n\n .lg\\:oui-gap-\\[6px\\] {\n gap: 6px;\n }\n\n .lg\\:oui-gap-x-\\[6px\\] {\n -moz-column-gap: 6px;\n column-gap: 6px;\n }\n\n .lg\\:oui-rounded-md {\n border-radius: 0.375rem;\n }\n\n .lg\\:oui-border {\n border-width: 1px;\n }\n\n .lg\\:oui-border-danger {\n --tw-border-opacity: 1;\n border-color: rgb(var(--oui-color-danger) / var(--tw-border-opacity));\n }\n\n .lg\\:oui-border-line-6 {\n border-color: rgb(var(--oui-color-line, 255 255 255) / 0.06);\n }\n\n .lg\\:oui-bg-base-4 {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-4) / var(--tw-bg-opacity));\n }\n\n .lg\\:oui-bg-base-5 {\n --tw-bg-opacity: 1;\n background-color: rgb(var(--oui-color-base-5) / var(--tw-bg-opacity));\n }\n\n .lg\\:oui-bg-line-4 {\n background-color: rgb(var(--oui-color-line, 255 255 255) / 0.04);\n }\n\n .lg\\:oui-p-5 {\n padding: 1.25rem;\n }\n\n .lg\\:oui-p-6 {\n padding: 1.5rem;\n }\n\n .lg\\:oui-px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n }\n\n .lg\\:oui-px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n }\n\n .lg\\:oui-py-0 {\n padding-top: 0px;\n padding-bottom: 0px;\n }\n\n .lg\\:oui-py-5 {\n padding-top: 1.25rem;\n padding-bottom: 1.25rem;\n }\n\n .lg\\:oui-pb-0 {\n padding-bottom: 0px;\n }\n\n .lg\\:oui-pl-0 {\n padding-left: 0px;\n }\n\n .lg\\:oui-pl-3 {\n padding-left: 0.75rem;\n }\n\n .lg\\:oui-pr-0 {\n padding-right: 0px;\n }\n\n .lg\\:oui-pr-3 {\n padding-right: 0.75rem;\n }\n\n .lg\\:oui-pt-0 {\n padding-top: 0px;\n }\n\n .lg\\:oui-pt-3 {\n padding-top: 0.75rem;\n }\n\n .lg\\:oui-text-left {\n text-align: left;\n }\n\n .lg\\:oui-text-center {\n text-align: center;\n }\n\n .lg\\:oui-text-right {\n text-align: right;\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-2xs {\n font-size: var(--oui-font-size-2xs, 0.75rem);\n line-height: 1.125rem;\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-base {\n font-size: var(--oui-font-size-base, 1rem);\n line-height: 1.5rem;\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 .lg\\:oui-text-xs {\n font-size: var(--oui-font-size-xs, calc(0.875rem - 1px));\n line-height: 1.25rem;\n }\n\n .lg\\:oui-text-base-contrast-20 {\n color: rgb(var(--oui-color-base-foreground) / 0.2);\n }\n\n .lg\\:oui-text-danger {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-danger) / var(--tw-text-opacity));\n }\n\n .lg\\:oui-text-success {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-success) / var(--tw-text-opacity));\n }\n\n .lg\\:oui-text-warning-darken {\n --tw-text-opacity: 1;\n color: rgb(var(--oui-color-warning-darken) / var(--tw-text-opacity));\n }\n\n .lg\\:oui-outline-danger {\n outline-color: rgb(var(--oui-color-danger) / 1);\n }\n\n .lg\\:oui-outline-success {\n outline-color: rgb(var(--oui-color-success) / 1);\n }\n\n .lg\\:oui-outline-transparent {\n outline-color: transparent;\n }\n\n .lg\\:oui-outline-warning-darken {\n outline-color: rgb(var(--oui-color-warning-darken) / 1);\n }\n\n .lg\\:placeholder\\:oui-text-2xs::-moz-placeholder {\n font-size: var(--oui-font-size-2xs, 0.75rem);\n line-height: 1.125rem;\n }\n\n .lg\\:placeholder\\:oui-text-2xs::placeholder {\n font-size: var(--oui-font-size-2xs, 0.75rem);\n line-height: 1.125rem;\n }\n\n .lg\\:placeholder\\:oui-text-base::-moz-placeholder {\n font-size: var(--oui-font-size-base, 1rem);\n line-height: 1.5rem;\n }\n\n .lg\\:placeholder\\:oui-text-base::placeholder {\n font-size: var(--oui-font-size-base, 1rem);\n line-height: 1.5rem;\n }\n\n .lg\\:placeholder\\:oui-text-sm::-moz-placeholder {\n font-size: var(--oui-font-size-sm,0.875rem);\n line-height: 1.25rem;\n }\n\n .lg\\:placeholder\\:oui-text-sm::placeholder {\n font-size: var(--oui-font-size-sm,0.875rem);\n line-height: 1.25rem;\n }\n\n .lg\\:focus-within\\:oui-outline-danger:focus-within {\n outline-color: rgb(var(--oui-color-danger) / 1);\n }\n\n .lg\\:focus-within\\:oui-outline-success:focus-within {\n outline-color: rgb(var(--oui-color-success) / 1);\n }\n\n .lg\\:focus-within\\:oui-outline-warning-darken:focus-within {\n outline-color: rgb(var(--oui-color-warning-darken) / 1);\n }\n\n .lg\\: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\n .lg\\: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\n .lg\\: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\n .lg\\: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\n .lg\\: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}\n@media (min-width: 1024px) {\n\n .xl\\:\\!oui-mt-3 {\n margin-top: 0.75rem !important;\n }\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-\\[32px\\] {\n height: 32px;\n }\n\n .xl\\:oui-h-\\[90px\\] {\n height: 90px;\n }\n\n .xl\\:oui-max-h-\\[562px\\] {\n max-height: 562px;\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-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\n .xl\\: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\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-pb-5 {\n padding-bottom: 1.25rem;\n }\n\n .xl\\:oui-pt-2 {\n padding-top: 0.5rem;\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-text-xs {\n font-size: var(--oui-font-size-xs, calc(0.875rem - 1px));\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"]}
|