@styleless-ui/react
Version:
Completely unstyled, headless and accessible React UI components.
35 lines (34 loc) • 1.14 kB
TypeScript
import * as React from "react";
import type { MergeElementProps } from "../../typings";
interface OwnProps {
/**
* The content of the component.
*/
children?: React.ReactNode | ((ctx: {
/** The `selected` state of the tab. */
selected: boolean;
/** The `disabled` state of the tab. */
disabled: boolean;
/** The `:focus-visible` state of the tab. */
focusedVisible: boolean;
}) => React.ReactNode);
/**
* The className applied to the component.
*/
className?: string | ((ctx: {
/** The `selected` state of the tab. */
selected: boolean;
/** The `disabled` state of the tab. */
disabled: boolean;
/** The `:focus-visible` state of the tab. */
focusedVisible: boolean;
}) => string);
/**
* If `true`, the tab will be disabled.
* @default false
*/
disabled?: boolean;
}
export type Props = Omit<MergeElementProps<"button", OwnProps>, "defaultChecked" | "defaultValue">;
declare const Tab: (props: Props, ref: React.Ref<HTMLButtonElement>) => JSX.Element;
export default Tab;