UNPKG

@tamagui/button

Version:

390 lines • 15.4 kB
import type { TextContextStyles, TextParentStyles } from '@tamagui/text'; import type { FontSizeTokens, GetProps, SizeTokens, ThemeableProps } from '@tamagui/web'; import type { FunctionComponent } from 'react'; export declare const ButtonContext: import("@tamagui/web").StyledContext<Partial<TextContextStyles & { size: SizeTokens; variant?: "outlined" | undefined; }>>; 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; disabled?: boolean | undefined; elevation?: number | SizeTokens | undefined; unstyled?: boolean | undefined; transparent?: boolean | undefined; hoverTheme?: boolean | undefined; pressTheme?: boolean | undefined; backgrounded?: boolean | undefined; fullscreen?: boolean | undefined; circular?: boolean | undefined; inset?: number | SizeTokens | { top?: number | undefined; bottom?: number | undefined; left?: number | undefined; right?: number | undefined; } | undefined; focusTheme?: boolean | undefined; elevate?: boolean | undefined; bordered?: number | boolean | undefined; radiused?: boolean | undefined; padded?: boolean | undefined; chromeless?: boolean | "all" | 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; /** * @deprecated Instead of useButton, see the Button docs for the newer and much improved Advanced customization pattern: https://tamagui.dev/docs/components/button */ declare const buttonStaticConfig: { inlineProps: Set<string>; }; 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; disabled?: boolean | undefined; elevation?: number | SizeTokens | undefined; unstyled?: boolean | undefined; transparent?: boolean | undefined; hoverTheme?: boolean | undefined; pressTheme?: boolean | undefined; backgrounded?: boolean | undefined; fullscreen?: boolean | undefined; circular?: boolean | undefined; inset?: number | SizeTokens | { top?: number | undefined; bottom?: number | undefined; left?: number | undefined; right?: number | undefined; } | undefined; focusTheme?: boolean | undefined; elevate?: boolean | undefined; bordered?: number | boolean | undefined; radiused?: boolean | undefined; padded?: boolean | undefined; chromeless?: boolean | "all" | undefined; }>, keyof TextContextStyles | "unstyled" | "textProps" | "noTextWrap" | keyof ThemeableProps | "icon" | "iconAfter" | "scaleIcon" | "spaceFlex" | "scaleSpace"> & TextContextStyles & { textProps?: Partial<import("@tamagui/web").GetFinalProps<import("@tamagui/web").TextNonStyleProps, import("@tamagui/web").TextStylePropsBase, { size?: FontSizeTokens | undefined; unstyled?: boolean | undefined; }>> | undefined; noTextWrap?: boolean | undefined; } & ThemeableProps & { /** * add icon before, passes color and size automatically if Component */ icon?: IconProp | undefined; /** * add icon after, passes color and size automatically if Component */ iconAfter?: IconProp | undefined; /** * adjust icon relative to size * * @default 1 */ scaleIcon?: number | undefined; /** * make the spacing elements flex */ spaceFlex?: number | boolean | undefined; /** * adjust internal space relative to icon size */ scaleSpace?: number | undefined; /** * remove default styles */ unstyled?: boolean | undefined; } & 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; disabled?: boolean | undefined; elevation?: number | SizeTokens | undefined; unstyled?: boolean | undefined; transparent?: boolean | undefined; hoverTheme?: boolean | undefined; pressTheme?: boolean | undefined; backgrounded?: boolean | undefined; fullscreen?: boolean | undefined; circular?: boolean | undefined; inset?: number | SizeTokens | { top?: number | undefined; bottom?: number | undefined; left?: number | undefined; right?: number | undefined; } | undefined; focusTheme?: boolean | undefined; elevate?: boolean | undefined; bordered?: number | boolean | undefined; radiused?: boolean | undefined; padded?: boolean | undefined; chromeless?: boolean | "all" | undefined; }>, keyof TextContextStyles | "unstyled" | "textProps" | "noTextWrap" | keyof ThemeableProps | "icon" | "iconAfter" | "scaleIcon" | "spaceFlex" | "scaleSpace"> & TextContextStyles & { textProps?: Partial<import("@tamagui/web").GetFinalProps<import("@tamagui/web").TextNonStyleProps, import("@tamagui/web").TextStylePropsBase, { size?: FontSizeTokens | undefined; unstyled?: boolean | undefined; }>> | undefined; noTextWrap?: boolean | undefined; } & ThemeableProps & { /** * add icon before, passes color and size automatically if Component */ icon?: IconProp | undefined; /** * add icon after, passes color and size automatically if Component */ iconAfter?: IconProp | undefined; /** * adjust icon relative to size * * @default 1 */ scaleIcon?: number | undefined; /** * make the spacing elements flex */ spaceFlex?: number | boolean | undefined; /** * adjust internal space relative to icon size */ scaleSpace?: number | undefined; /** * remove default styles */ unstyled?: boolean | undefined; }, import("@tamagui/web").TamaguiElement, import("@tamagui/core").RNTamaguiViewNonStyleProps & TextContextStyles & { textProps?: Partial<import("@tamagui/web").GetFinalProps<import("@tamagui/web").TextNonStyleProps, import("@tamagui/web").TextStylePropsBase, { size?: FontSizeTokens | undefined; unstyled?: boolean | undefined; }>> | undefined; noTextWrap?: boolean | undefined; } & ThemeableProps & { /** * add icon before, passes color and size automatically if Component */ icon?: IconProp | undefined; /** * add icon after, passes color and size automatically if Component */ iconAfter?: IconProp | undefined; /** * adjust icon relative to size * * @default 1 */ scaleIcon?: number | undefined; /** * make the spacing elements flex */ spaceFlex?: number | boolean | undefined; /** * adjust internal space relative to icon size */ scaleSpace?: number | undefined; /** * remove default styles */ unstyled?: boolean | undefined; }, import("@tamagui/web").StackStyleBase, { size?: number | SizeTokens | undefined; variant?: "outlined" | undefined; disabled?: boolean | undefined; elevation?: number | SizeTokens | undefined; unstyled?: boolean | undefined; transparent?: boolean | undefined; hoverTheme?: boolean | undefined; pressTheme?: boolean | undefined; backgrounded?: boolean | undefined; fullscreen?: boolean | undefined; circular?: boolean | undefined; inset?: number | SizeTokens | { top?: number | undefined; bottom?: number | undefined; left?: number | undefined; right?: number | undefined; } | undefined; focusTheme?: boolean | undefined; elevate?: boolean | undefined; bordered?: number | boolean | undefined; radiused?: boolean | undefined; padded?: boolean | undefined; chromeless?: boolean | "all" | undefined; }, import("@tamagui/web").StaticConfigPublic> & Omit<import("@tamagui/web").StaticConfigPublic, "staticConfig" | "extractable" | "styleable"> & { __tama: [Omit<import("@tamagui/web").GetFinalProps<import("@tamagui/core").RNTamaguiViewNonStyleProps, import("@tamagui/web").StackStyleBase, { size?: number | SizeTokens | undefined; variant?: "outlined" | undefined; disabled?: boolean | undefined; elevation?: number | SizeTokens | undefined; unstyled?: boolean | undefined; transparent?: boolean | undefined; hoverTheme?: boolean | undefined; pressTheme?: boolean | undefined; backgrounded?: boolean | undefined; fullscreen?: boolean | undefined; circular?: boolean | undefined; inset?: number | SizeTokens | { top?: number | undefined; bottom?: number | undefined; left?: number | undefined; right?: number | undefined; } | undefined; focusTheme?: boolean | undefined; elevate?: boolean | undefined; bordered?: number | boolean | undefined; radiused?: boolean | undefined; padded?: boolean | undefined; chromeless?: boolean | "all" | undefined; }>, keyof TextContextStyles | "unstyled" | "textProps" | "noTextWrap" | keyof ThemeableProps | "icon" | "iconAfter" | "scaleIcon" | "spaceFlex" | "scaleSpace"> & TextContextStyles & { textProps?: Partial<import("@tamagui/web").GetFinalProps<import("@tamagui/web").TextNonStyleProps, import("@tamagui/web").TextStylePropsBase, { size?: FontSizeTokens | undefined; unstyled?: boolean | undefined; }>> | undefined; noTextWrap?: boolean | undefined; } & ThemeableProps & { /** * add icon before, passes color and size automatically if Component */ icon?: IconProp | undefined; /** * add icon after, passes color and size automatically if Component */ iconAfter?: IconProp | undefined; /** * adjust icon relative to size * * @default 1 */ scaleIcon?: number | undefined; /** * make the spacing elements flex */ spaceFlex?: number | boolean | undefined; /** * adjust internal space relative to icon size */ scaleSpace?: number | undefined; /** * remove default styles */ unstyled?: boolean | undefined; }, import("@tamagui/web").TamaguiElement, import("@tamagui/core").RNTamaguiViewNonStyleProps & TextContextStyles & { textProps?: Partial<import("@tamagui/web").GetFinalProps<import("@tamagui/web").TextNonStyleProps, import("@tamagui/web").TextStylePropsBase, { size?: FontSizeTokens | undefined; unstyled?: boolean | undefined; }>> | undefined; noTextWrap?: boolean | undefined; } & ThemeableProps & { /** * add icon before, passes color and size automatically if Component */ icon?: IconProp | undefined; /** * add icon after, passes color and size automatically if Component */ iconAfter?: IconProp | undefined; /** * adjust icon relative to size * * @default 1 */ scaleIcon?: number | undefined; /** * make the spacing elements flex */ spaceFlex?: number | boolean | undefined; /** * adjust internal space relative to icon size */ scaleSpace?: number | undefined; /** * remove default styles */ unstyled?: boolean | undefined; }, import("@tamagui/web").StackStyleBase, { size?: number | SizeTokens | undefined; variant?: "outlined" | undefined; disabled?: boolean | undefined; elevation?: number | SizeTokens | undefined; unstyled?: boolean | undefined; transparent?: boolean | undefined; hoverTheme?: boolean | undefined; pressTheme?: boolean | undefined; backgrounded?: boolean | undefined; fullscreen?: boolean | undefined; circular?: boolean | undefined; inset?: number | SizeTokens | { top?: number | undefined; bottom?: number | undefined; left?: number | undefined; right?: number | undefined; } | undefined; focusTheme?: boolean | undefined; elevate?: boolean | undefined; bordered?: number | boolean | undefined; radiused?: boolean | undefined; padded?: boolean | undefined; chromeless?: boolean | "all" | 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 | boolean | "unset" | import("@tamagui/web").UnionableString | import("@tamagui/web").Variable<any>; isNested: boolean; props: Props; }; export { Button, ButtonFrame, ButtonIcon, ButtonText, buttonStaticConfig, useButton, }; export type { ButtonProps }; //# sourceMappingURL=Button.d.ts.map