import { ComponentProps } from 'react'; import { BoxTabRootProps, BoxTabProps, BoxTabPanelProps } from './BoxTab.types'; /** * BoxTab의 최상위 컴포넌트입니다. * 탭의 상태를 관리하고 하위 컴포넌트에 Context를 제공합니다. * * @param {RootProps} props * @param {ReactNode} props.children - 하위 컴포넌트 * @param {number} [props.currentActiveTab=0] - 현재 활성화된 탭의 인덱스 * @param {(index: number) => void} [props.onChange] - 탭 변경 시 호출되는 콜백 함수 * * @example * ```tsx * console.log(index)}> * * 탭 1 * 탭 2 * * 패널 1 내용 * 패널 2 내용 * * ``` */ declare const Root: ({ children, currentActiveTab, onChange, }: BoxTabRootProps) => import("react/jsx-runtime").JSX.Element; /** * 탭 버튼들을 감싸는 컨테이너 컴포넌트입니다. * * @param {ComponentProps<'div'>} props * @param {ReactNode} props.children - Tab 컴포넌트들 * @param {string} [props.className] - 추가 스타일 클래스 * * @example * ```tsx * * 탭 1 * 탭 2 * * ``` */ declare const Tabs: ({ children, className }: ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element; /** * 개별 탭 버튼 컴포넌트입니다. * * @param {TabProps} props * @param {ReactNode} props.children - 탭 내용 * @param {number} props.index - 탭의 인덱스 * @param {string} [props.className] - 추가 스타일 클래스 * @param {boolean} [props.isFirst] - 첫 번째 탭 여부 (내부적으로 자동 설정) * @param {boolean} [props.isLast] - 마지막 탭 여부 (내부적으로 자동 설정) * @param {boolean} [props.disabled] - 비활성화 여부 * * @example * ```tsx * * 탭 1 * * ``` */ declare const Tab: ({ children, index, className, isFirst, isLast, disabled, href, }: BoxTabProps) => import("react/jsx-runtime").JSX.Element; /** * 탭 패널 컴포넌트입니다. * 해당 인덱스의 탭이 선택되었을 때만 내용을 표시합니다. * * @param {PanelProps} props * @param {ReactNode} props.children - 패널 내용 * @param {number} props.index - 패널의 인덱스 (연결된 탭의 인덱스와 일치해야 함) * * @example * ```tsx * * 첫 번째 탭의 내용입니다. * * ``` */ declare const Panel: ({ children, index }: BoxTabPanelProps) => false | import("react/jsx-runtime").JSX.Element; export { Root, Tabs, Tab, Panel };