react-figma-plugin-ds
Version:
React ui framework based on Figma design system
240 lines (208 loc) • 5.03 kB
TypeScript
import React from "react";
export type Icons =
| "adjust"
| "alert"
| "angle"
| "arrow-left-right"
| "up-down"
| "auto-layout-horizontal"
| "auto-layout-vertical"
| "back"
| "blend-empty"
| "blend"
| "break"
| "caret-down"
| "caret-left"
| "caret-right"
| "caret-up"
| "check"
| "close"
| "component"
| "corner-radius"
| "corners"
| "distribute-horizontal-spacing"
| "distribute-vertical-spacing"
| "draft"
| "effects"
| "ellipses"
| "eyedropper"
| "forward"
| "frame"
| "group"
| "hidden"
| "horizontal-padding"
| "hyperlink"
| "image"
| "instance"
| "key"
| "layout-align-bottom"
| "align-horizontal-centers"
| "align-left"
| "align-right"
| "align-top"
| "align-vertical-centers"
| "layout-grid-columns"
| "layout-grid-rows"
| "layout-grid-uniform"
| "library"
| "link-broken"
| "link-connected"
| "list-detailed"
| "list-tile"
| "list"
| "lock-off"
| "lock-on"
| "minus"
| "play"
| "plus"
| "random"
| "recent"
| "resize-to-fit"
| "resolve-filled"
| "resolve"
| "reverse"
| "search-large"
| "search"
| "settings"
| "share"
| "smiley"
| "sort-alpha-asc"
| "sort-alpha-dsc"
| "sort-top-bottom"
| "spacing"
| "spinner"
| "star-off"
| "star-on"
| "stroke-weight"
| "styles"
| "swap"
| "theme"
| "tidy-up-grid"
| "tidy-up-list-horizontal"
| "tidy-up-list-vertical"
| "timer"
| "trash"
| "vertical-padding"
| "visible"
| "warning-large"
| "warning";
export type IconColors =
| "blue"
| "purple"
| "purple4"
| "hot-pink"
| "green"
| "red"
| "yellow"
| "black"
| "black8"
| "black3"
| "white"
| "white8"
| "white4";
export type Sizes = "small" | "large" | "xlarge";
export type Weights = "medium" | "bold";
export type Levels = "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
export type CheckboxTypes = "checkbox" | "switch" | "radio";
export interface BasicProps {
className?: string;
}
export interface ButtonProps extends BasicProps {
children: any;
isSecondary?: boolean;
isTertiary?: boolean;
isDisabled?: boolean;
isDestructive?: boolean;
onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
}
export declare const Button: React.FunctionComponent<ButtonProps>;
export interface CheckboxProps extends BasicProps {
id?: string;
label: string;
type?: CheckboxTypes;
isDisabled?: boolean;
defaultValue?: boolean;
name?: string;
onChange?: (
value: boolean,
event: React.ChangeEvent<HTMLInputElement>
) => void;
}
export declare const Checkbox: React.FunctionComponent<CheckboxProps>;
export interface DisclosureProps extends BasicProps {
children: any;
label: string;
isSection?: boolean;
isDefaultExpanded?: boolean;
onExpand?: (state: boolean) => void;
}
export declare const Disclosure: React.FunctionComponent<DisclosureProps>;
export interface InputProps extends BasicProps {
placeholder: string;
type?: "text" | "number" | "password";
defaultValue?: any;
isDisabled?: boolean;
onChange?: (
value: string,
event: React.ChangeEvent<HTMLInputElement>
) => void;
}
export interface InputWithIconProps extends InputProps, BasicProps {
icon?: Icons;
iconColor?: IconColors;
}
export declare const Input: React.FunctionComponent<InputWithIconProps>;
export interface TextareaProps extends BasicProps {
placeholder: string;
rows: number;
defaultValue?: any;
isDisabled?: boolean;
onChange?: (
value: string,
event: React.ChangeEvent<HTMLTextAreaElement>
) => void;
}
export declare const Textarea: React.FunctionComponent<TextareaProps>;
export interface SelectOption {
divider?: string | boolean;
value: string | number | boolean;
label: string;
title?: string;
}
export interface SelectProps extends BasicProps {
options: SelectOption[];
placeholder: string;
isDisabled?: boolean;
defaultValue?: string | number | boolean;
onExpand?: (state: boolean) => void;
onChange?: (option: SelectOption) => void;
}
export declare const Select: React.FunctionComponent<SelectProps>;
export interface TextProps extends BasicProps {
children: any;
size?: Sizes;
weight?: Weights;
}
export declare const Text: React.FunctionComponent<TextProps>;
export interface TitleProps extends BasicProps, TextProps {
level?: Levels;
}
export declare const Title: React.FunctionComponent<TitleProps>;
export interface LabelProps extends BasicProps, TextProps {}
export declare const Label: React.FunctionComponent<LabelProps>;
export interface TipProps extends BasicProps {
children: any;
iconText?: string;
iconName?: Icons;
iconColor: IconColors;
}
export declare const Tip: React.FunctionComponent<TipProps>;
export interface IconProps extends BasicProps {
name: Icons;
color?: IconColors;
isSelected?: boolean;
isDisabled?: boolean;
text?: string;
onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
}
export declare const Icon: React.FunctionComponent<IconProps>;