(
(
{
tabs,
corner = 'top-left',
defaultActive,
onTabChange,
showContent = true,
animation = 'slide',
orientation = 'horizontal',
variant = 'minimal',
className,
...props
},
ref
) => {
const [activeTab, setActiveTab] = useState(defaultActive || tabs[0]?.id);
const [isAnimating, setIsAnimating] = useState(false);
const handleTabClick = useCallback(
(tabId: string) => {
if (tabId === activeTab) return;
setIsAnimating(true);
setActiveTab(tabId);
onTabChange?.(tabId);
setTimeout(() => setIsAnimating(false), 300);
},
[activeTab, onTabChange]
);
const activeTabData = tabs.find(tab => tab.id === activeTab);
const cornerClasses = {
'top-left': styles.cornerTopLeft,
'top-right': styles.cornerTopRight,
'bottom-left': styles.cornerBottomLeft,
'bottom-right': styles.cornerBottomRight,
};
const orientationClasses = {
horizontal: styles.orientationHorizontal,
vertical: styles.orientationVertical,
};
const animationClasses = {
slide: styles.animationSlide,
fade: styles.animationFade,
scale: styles.animationScale,
glitch: styles.animationGlitch,
};
return (
);
}
);
CornerTabs.displayName = 'CornerTabs';
export default CornerTabs;