@navinc/base-react-components
Version:
Nav's Pattern Library
49 lines (48 loc) • 2.5 kB
TypeScript
import React from 'react';
import { VariantProps } from 'class-variance-authority';
/** Responsible for wrapping all button text to properly underline on hover for the plain variants */
export declare const ButtonTextContainer: React.ComponentType<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>>;
declare const buttonVariants: (props?: ({
variant?: "primary" | "prime" | "default" | "plain" | "primaryPlain" | "primaryCritical" | null | undefined;
density?: "loose" | "standard" | "tight" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
export type Variant = NonNullable<VariantProps<typeof buttonVariants>['variant']>;
export type Density = NonNullable<VariantProps<typeof buttonVariants>['density']>;
/**
* Wayfinder Button
*
* @example `asChild` prop renders the button as the immediate child of the button element.
*
* ```tsx
* <Button asChild>
* <a href="https://nav.com" target="_blank" rel="noreferrer">
* Link Rendered as a Button
* </a>
* </Button>
* ```
* This results in the following HTML:
* ```html
* <a class="button-classes" href="https://nav.com" target="_blank" rel="noreferrer">
* Link Rendered as a Button
* </a>
* ```
*
* @caveat text children of the button will be wrapped in a `ButtonTextContainer` component to properly underline on hover
* for the plain variants. If any children are not text, they will not be wrapped automatically and no underline will
* be present.
*/
export declare const Button: React.ForwardRefExoticComponent<VariantProps<(props?: ({
variant?: "primary" | "prime" | "default" | "plain" | "primaryPlain" | "primaryCritical" | null | undefined;
density?: "loose" | "standard" | "tight" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string> & React.ButtonHTMLAttributes<HTMLButtonElement> & {
loading?: boolean;
asChild?: boolean;
} & React.RefAttributes<HTMLButtonElement>>;
export declare const ButtonInheritColor: React.ComponentType<VariantProps<(props?: ({
variant?: "primary" | "prime" | "default" | "plain" | "primaryPlain" | "primaryCritical" | null | undefined;
density?: "loose" | "standard" | "tight" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string> & React.ButtonHTMLAttributes<HTMLButtonElement> & {
loading?: boolean;
asChild?: boolean;
} & React.RefAttributes<HTMLButtonElement>>;
export {};