import { FloatingIndicator, Indicator, Tabs as MantineTabs, Stack, } from '@mantine/core'; import { useState } from 'react'; import classes from './floating_tabs.module.css'; export type FloatingTab = { value: string; label: string; content: React.ReactNode; disabled?: boolean; indicator?: { content: string; color?: string; pulse?: boolean; disabled?: boolean; }; }; interface FloatingTabsProps { tabs: FloatingTab[]; keepMounted?: boolean; } export function FloatingTabs({ tabs, keepMounted = false }: FloatingTabsProps) { const [rootRef, setRootRef] = useState(null); const [value, setValue] = useState(tabs[0].value); const [controlsRefs, setControlsRefs] = useState< Record >({}); const setControlRef = (val: string) => (node: HTMLButtonElement) => { controlsRefs[val] = node; setControlsRefs(controlsRefs); }; return ( {tabs.map((tab) => ( {tab.label} ))} {tabs.map((tab) => ( {tab.content} ))} ); }