UNPKG

@tamagui/button

Version:

302 lines 11.3 kB
import type { TextContextStyles, TextParentStyles } from '@tamagui/text'; import type { FontSizeTokens, GetProps, SizeTokens, ThemeableProps } from '@tamagui/web'; import type { FunctionComponent, JSX } from 'react'; type ButtonVariant = 'outlined'; export declare const ButtonContext: import("@tamagui/web").StyledContext<Partial<TextContextStyles & { size: SizeTokens; variant?: ButtonVariant; }>>; type ButtonIconProps = { color?: any; size?: any; }; type IconProp = JSX.Element | FunctionComponent<ButtonIconProps> | ((props: ButtonIconProps) => any) | null; type ButtonExtraProps = TextParentStyles & ThemeableProps & { /** * add icon before, passes color and size automatically if Component */ icon?: IconProp; /** * add icon after, passes color and size automatically if Component */ iconAfter?: IconProp; /** * adjust icon relative to size * * @default 1 */ scaleIcon?: number; /** * make the spacing elements flex */ spaceFlex?: number | boolean; /** * adjust internal space relative to icon size */ scaleSpace?: number; /** * remove default styles */ unstyled?: boolean; }; type ButtonProps = ButtonExtraProps & GetProps<typeof ButtonFrame>; declare const ButtonFrame: import("@tamagui/web").TamaguiComponent<import("@tamagui/web").TamaDefer, import("@tamagui/web").TamaguiElement, import("@tamagui/core").RNTamaguiViewNonStyleProps, import("@tamagui/web").StackStyleBase, { size?: number | SizeTokens | undefined; variant?: "outlined" | undefined; elevation?: number | SizeTokens | undefined; circular?: boolean | undefined; chromeless?: boolean | "all" | undefined; transparent?: boolean | undefined; disabled?: boolean | undefined; unstyled?: boolean | undefined; fullscreen?: boolean | undefined; elevate?: boolean | undefined; bordered?: boolean | undefined; }, import("@tamagui/web").StaticConfigPublic>; declare const ButtonText: import("@tamagui/web").TamaguiComponent<import("@tamagui/web").TamaDefer, import("@tamagui/web").TamaguiTextElement, import("@tamagui/web").TextNonStyleProps, import("@tamagui/web").TextStylePropsBase, { size?: FontSizeTokens | undefined; unstyled?: boolean | undefined; }, import("@tamagui/web").StaticConfigPublic>; declare const ButtonIcon: (props: { children: React.ReactNode; scaleIcon?: number; }) => any; /** * @summary A Button is a clickable element that can be used to trigger actions such as submitting forms, navigating to other pages, or performing other actions. * @see — Docs https://tamagui.dev/ui/button */ declare const Button: import("react").ForwardRefExoticComponent<Omit<import("@tamagui/web").GetFinalProps<import("@tamagui/core").RNTamaguiViewNonStyleProps, import("@tamagui/web").StackStyleBase, { size?: number | SizeTokens | undefined; variant?: "outlined" | undefined; elevation?: number | SizeTokens | undefined; circular?: boolean | undefined; chromeless?: boolean | "all" | undefined; transparent?: boolean | undefined; disabled?: boolean | undefined; unstyled?: boolean | undefined; fullscreen?: boolean | undefined; elevate?: boolean | undefined; bordered?: boolean | undefined; }>, "unstyled" | "icon" | "iconAfter" | "scaleIcon" | keyof TextContextStyles | "textProps" | "noTextWrap" | keyof ThemeableProps | "spaceFlex" | "scaleSpace"> & TextContextStyles & { textProps?: Partial<import("@tamagui/text").SizableTextProps>; noTextWrap?: boolean; } & ThemeableProps & { /** * add icon before, passes color and size automatically if Component */ icon?: IconProp; /** * add icon after, passes color and size automatically if Component */ iconAfter?: IconProp; /** * adjust icon relative to size * * @default 1 */ scaleIcon?: number; /** * make the spacing elements flex */ spaceFlex?: number | boolean; /** * adjust internal space relative to icon size */ scaleSpace?: number; /** * remove default styles */ unstyled?: boolean; } & import("react").RefAttributes<import("@tamagui/web").TamaguiElement>> & import("@tamagui/web").StaticComponentObject<Omit<import("@tamagui/web").GetFinalProps<import("@tamagui/core").RNTamaguiViewNonStyleProps, import("@tamagui/web").StackStyleBase, { size?: number | SizeTokens | undefined; variant?: "outlined" | undefined; elevation?: number | SizeTokens | undefined; circular?: boolean | undefined; chromeless?: boolean | "all" | undefined; transparent?: boolean | undefined; disabled?: boolean | undefined; unstyled?: boolean | undefined; fullscreen?: boolean | undefined; elevate?: boolean | undefined; bordered?: boolean | undefined; }>, "unstyled" | "icon" | "iconAfter" | "scaleIcon" | keyof TextContextStyles | "textProps" | "noTextWrap" | keyof ThemeableProps | "spaceFlex" | "scaleSpace"> & TextContextStyles & { textProps?: Partial<import("@tamagui/text").SizableTextProps>; noTextWrap?: boolean; } & ThemeableProps & { /** * add icon before, passes color and size automatically if Component */ icon?: IconProp; /** * add icon after, passes color and size automatically if Component */ iconAfter?: IconProp; /** * adjust icon relative to size * * @default 1 */ scaleIcon?: number; /** * make the spacing elements flex */ spaceFlex?: number | boolean; /** * adjust internal space relative to icon size */ scaleSpace?: number; /** * remove default styles */ unstyled?: boolean; }, import("@tamagui/web").TamaguiElement, import("@tamagui/core").RNTamaguiViewNonStyleProps & TextContextStyles & { textProps?: Partial<import("@tamagui/text").SizableTextProps>; noTextWrap?: boolean; } & ThemeableProps & { /** * add icon before, passes color and size automatically if Component */ icon?: IconProp; /** * add icon after, passes color and size automatically if Component */ iconAfter?: IconProp; /** * adjust icon relative to size * * @default 1 */ scaleIcon?: number; /** * make the spacing elements flex */ spaceFlex?: number | boolean; /** * adjust internal space relative to icon size */ scaleSpace?: number; /** * remove default styles */ unstyled?: boolean; }, import("@tamagui/web").StackStyleBase, { size?: number | SizeTokens | undefined; variant?: "outlined" | undefined; elevation?: number | SizeTokens | undefined; circular?: boolean | undefined; chromeless?: boolean | "all" | undefined; transparent?: boolean | undefined; disabled?: boolean | undefined; unstyled?: boolean | undefined; fullscreen?: boolean | undefined; elevate?: boolean | undefined; bordered?: boolean | undefined; }, import("@tamagui/web").StaticConfigPublic> & Omit<import("@tamagui/web").StaticConfigPublic, "staticConfig" | "styleable"> & { __tama: [Omit<import("@tamagui/web").GetFinalProps<import("@tamagui/core").RNTamaguiViewNonStyleProps, import("@tamagui/web").StackStyleBase, { size?: number | SizeTokens | undefined; variant?: "outlined" | undefined; elevation?: number | SizeTokens | undefined; circular?: boolean | undefined; chromeless?: boolean | "all" | undefined; transparent?: boolean | undefined; disabled?: boolean | undefined; unstyled?: boolean | undefined; fullscreen?: boolean | undefined; elevate?: boolean | undefined; bordered?: boolean | undefined; }>, "unstyled" | "icon" | "iconAfter" | "scaleIcon" | keyof TextContextStyles | "textProps" | "noTextWrap" | keyof ThemeableProps | "spaceFlex" | "scaleSpace"> & TextContextStyles & { textProps?: Partial<import("@tamagui/text").SizableTextProps>; noTextWrap?: boolean; } & ThemeableProps & { /** * add icon before, passes color and size automatically if Component */ icon?: IconProp; /** * add icon after, passes color and size automatically if Component */ iconAfter?: IconProp; /** * adjust icon relative to size * * @default 1 */ scaleIcon?: number; /** * make the spacing elements flex */ spaceFlex?: number | boolean; /** * adjust internal space relative to icon size */ scaleSpace?: number; /** * remove default styles */ unstyled?: boolean; }, import("@tamagui/web").TamaguiElement, import("@tamagui/core").RNTamaguiViewNonStyleProps & TextContextStyles & { textProps?: Partial<import("@tamagui/text").SizableTextProps>; noTextWrap?: boolean; } & ThemeableProps & { /** * add icon before, passes color and size automatically if Component */ icon?: IconProp; /** * add icon after, passes color and size automatically if Component */ iconAfter?: IconProp; /** * adjust icon relative to size * * @default 1 */ scaleIcon?: number; /** * make the spacing elements flex */ spaceFlex?: number | boolean; /** * adjust internal space relative to icon size */ scaleSpace?: number; /** * remove default styles */ unstyled?: boolean; }, import("@tamagui/web").StackStyleBase, { size?: number | SizeTokens | undefined; variant?: "outlined" | undefined; elevation?: number | SizeTokens | undefined; circular?: boolean | undefined; chromeless?: boolean | "all" | undefined; transparent?: boolean | undefined; disabled?: boolean | undefined; unstyled?: boolean | undefined; fullscreen?: boolean | undefined; elevate?: boolean | undefined; bordered?: boolean | undefined; }, import("@tamagui/web").StaticConfigPublic]; } & { Text: import("@tamagui/web").TamaguiComponent<import("@tamagui/web").TamaDefer, import("@tamagui/web").TamaguiTextElement, import("@tamagui/web").TextNonStyleProps, import("@tamagui/web").TextStylePropsBase, { size?: FontSizeTokens | undefined; unstyled?: boolean | undefined; }, import("@tamagui/web").StaticConfigPublic>; Icon: (props: { children: React.ReactNode; scaleIcon?: number; }) => any; }; /** * @deprecated Instead of useButton, see the Button docs for the newer and much improved Advanced customization pattern: https://tamagui.dev/docs/components/button */ declare function useButton<Props extends ButtonProps>({ textProps, ...propsIn }: Props, { Text }?: { Text: any; }): { spaceSize: number | import("@tamagui/web").UnionableString | "unset" | import("@tamagui/web").Variable<any>; isNested: boolean; props: Props; }; export { Button, ButtonFrame, ButtonIcon, ButtonText, useButton, }; export type { ButtonProps }; //# sourceMappingURL=Button.d.ts.map