UNPKG

phx-react

Version:

PHX REACT

97 lines (96 loc) 3.64 kB
import type React from 'react'; export type Target = '_blank' | '_self' | '_parent' | '_top'; type Falsy = boolean | undefined | null | 0; export declare function classNames(...classes: (string | Falsy)[]): string; export interface BaseInput { register?: any; errors?: any; setError?: any; clearErrors?: any; } export interface BaseButton { /** A unique identifier for the button */ id?: string; /** A destination to link to, rendered in the href attribute of a link */ url?: string; /** Forces url to open in a new tab */ external?: boolean; /** Tells the browser to download the url instead of opening it. Provides a hint for the downloaded filename if it is a string value */ download?: string | boolean; /** Allows the button to submit a form */ submit?: boolean; /** Disables the button, disallowing merchant interaction */ disabled?: boolean; /** Replaces button text with a spinner while a background action is being performed */ loading?: boolean; /** Callback when clicked */ onClick?(): unknown; className?: string; } export type IconSource = React.FunctionComponent<React.SVGProps<SVGSVGElement>> | 'placeholder' | string; export interface ComplexAction extends Action, SubmitAction, DisableableAction, DestructableAction, LoadableAction { } export interface MenuActionDescriptor extends ComplexAction, TooltipAction { /** Zero-indexed numerical position. Overrides the action's order in the menu */ index?: number; } export interface Action { /** A unique identifier for the action */ id?: string; /** Content the action displays */ content?: string; /** Visually hidden text for screen readers */ accessibilityLabel?: string; /** A destination to link to, rendered in the action */ url?: string; /** Forces url to open in a new tab */ external?: boolean; /** Where to display the url */ target?: Target; /** Action loading */ loading?: boolean; /** Callback when an action takes place */ onClick?(): void; onDelete?(): void; /** Callback when mouse enter */ onMouseEnter?(): void; /** Callback when element is touched */ onTouchStart?(): void; } export interface DisableableAction extends Action { /** Whether or not the action is disabled */ disabled?: boolean; } export interface SubmitAction extends Action { /** Whether or not the action is disabled */ submit?: boolean; } export interface DestructableAction extends Action { /** Destructive action */ destructive?: boolean; } export interface LoadableAction extends Action { /** Should a spinner be displayed */ loading?: boolean; } export interface TooltipAction { /** Text content to render in a tooltip */ helpText?: React.ReactNode; } export type Color = 'default' | 'subdued' | 'critical' | 'success' | 'primary' | 'warning' | 'info' | 'highlight' | 'neutral' | 'attention' | 'decorative' | 'danger'; export type BorderColor = 'default'; export type SpacingScale = 'none' | 'atomic' | 'tight' | 'snappy' | 'base' | 'loose' | 'spacious' | 'distant'; export type AlignItems = 'start' | 'center' | 'end'; export type JustifyContent = 'start' | 'center' | 'end' | 'between' | 'around'; export type GridColumns = 1 | 2 | 3; export type TextSize = 'heading' | 'title' | 'body' | 'subtitle' | 'caption' | 'micro'; export type TextWeight = 'regular' | 'medium' | 'semibold' | 'bold'; export type LineHeight = 'none' | 'tight' | 'base' | 'loose'; export type Responsive<T> = T | { initial?: T; sm?: T; md?: T; lg?: T; xl?: T; }; export {};