UNPKG

lucid-ui

Version:

A UI component library from Xandr.

184 lines 7.02 kB
import React from 'react'; import PropTypes from 'prop-types'; import { StandardProps, Overwrite } from '../../util/component-types'; export declare enum Color { 'neutral-dark' = "neutral-dark", 'neutral-light' = "neutral-light", primary = "primary", white = "white", success = "success", warning = "warning", 'secondary-one' = "secondary-one", 'secondary-two' = "secondary-two", 'secondary-three' = "secondary-three" } export interface IIconPropsRaw extends StandardProps { /** Size variations of the icons. `size` directly effects height and width but the developer should also be conscious of the relationship with `viewBox`. */ size?: number; /** Size handles width and height, whereas `width` can manually override the width that would be set by size. */ width?: number | string; /** Size handles width and height, whereas `height` can manually override the height that would be set by size. */ height?: number | string; /** `viewBox` is very important for SVGs. You can think of `viewBox` as the "artboard" for our SVG while `size` is the presented height and width. */ viewBox?: string; /** Any valid SVG aspect ratio. */ aspectRatio?: string; /** Adds styling that makes the icon appear clickable. */ isClickable?: boolean; /** Adds styling that makes the icon appear disabled. Also forces isClickable to be false. */ isDisabled?: boolean; /** Called when the user clicks the `Icon`. */ onClick?: ({ event, props, }: { event: React.MouseEvent; props: IIconProps; }) => void; /** Called when the user clicks an active, clickable `Icon`. */ onSelect?: ({ event, props, }: { event: React.MouseEvent; props: IIconProps; }) => void; /** Sets the color of the Icon. May not be applicable for icons that are tied to specific colors (e.g. DangerIcon). */ color?: keyof typeof Color; } export declare type IIconProps = Overwrite<React.HTMLProps<SVGSVGElement>, IIconPropsRaw>; export declare const Icon: { (props: IIconProps): React.ReactElement; displayName: string; defaultProps: { size: number; aspectRatio: string; viewBox: string; isDisabled: boolean; isClickable: boolean; color: Color; onClick: (...args: any[]) => void; onSelect: (...args: any[]) => void; }; peek: { description: string; categories: string[]; }; propTypes: { /** Classes that are appended to the component defaults. This prop is run through the \`classnames\` library. */ className: PropTypes.Requireable<any>; /** Size variations of the icons. \`size\` directly effects height and width but the developer should also be conscious of the relationship with \`viewBox\`. */ size: PropTypes.Requireable<number>; /** Size handles width and height, whereas \`width\` can manually override the width that would be set by size. */ width: PropTypes.Requireable<string | number>; /** Size handles width and height, whereas \`height\` can manually override the height that would be set by size. */ height: PropTypes.Requireable<string | number>; /** \`viewBox\` is very important for SVGs. You can think of \`viewBox\` as the "artboard" for our SVG while \`size\` is the presented height and width. */ viewBox: PropTypes.Requireable<string>; /** Any valid SVG aspect ratio. */ aspectRatio: PropTypes.Requireable<string>; /** Adds styling that makes the icon appear clickable. */ isClickable: PropTypes.Requireable<boolean>; /** Adds styling that makes the icon appear disabled. Also forces isClickable to be false. */ isDisabled: PropTypes.Requireable<boolean>; /** Called when the user clicks the \`Icon\`. Signature: \`({event, props}) => {}\` */ onClick: PropTypes.Requireable<(...args: any[]) => any>; /** Called when the user clicks an active, clickable \`Icon\`. Signature: \`({event, props}) => {}\` */ onSelect: PropTypes.Requireable<(...args: any[]) => any>; /** Any valid React children. */ children: PropTypes.Requireable<any>; /** Sets the color of the Icon. May not be applicable for icons that are tied to specific colors (e.g. DangerIcon). */ color: PropTypes.Requireable<Color>; }; }; export declare const propTypes: { /** Classes that are appended to the component defaults. This prop is run through the \`classnames\` library. */ className: PropTypes.Requireable<any>; /** Size variations of the icons. \`size\` directly effects height and width but the developer should also be conscious of the relationship with \`viewBox\`. */ size: PropTypes.Requireable<number>; /** Size handles width and height, whereas \`width\` can manually override the width that would be set by size. */ width: PropTypes.Requireable<string | number>; /** Size handles width and height, whereas \`height\` can manually override the height that would be set by size. */ height: PropTypes.Requireable<string | number>; /** \`viewBox\` is very important for SVGs. You can think of \`viewBox\` as the "artboard" for our SVG while \`size\` is the presented height and width. */ viewBox: PropTypes.Requireable<string>; /** Any valid SVG aspect ratio. */ aspectRatio: PropTypes.Requireable<string>; /** Adds styling that makes the icon appear clickable. */ isClickable: PropTypes.Requireable<boolean>; /** Adds styling that makes the icon appear disabled. Also forces isClickable to be false. */ isDisabled: PropTypes.Requireable<boolean>; /** Called when the user clicks the \`Icon\`. Signature: \`({event, props}) => {}\` */ onClick: PropTypes.Requireable<(...args: any[]) => any>; /** Called when the user clicks an active, clickable \`Icon\`. Signature: \`({event, props}) => {}\` */ onSelect: PropTypes.Requireable<(...args: any[]) => any>; /** Any valid React children. */ children: PropTypes.Requireable<any>; /** Sets the color of the Icon. May not be applicable for icons that are tied to specific colors (e.g. DangerIcon). */ color: PropTypes.Requireable<Color>; }; export interface IIconWithDirectionProps extends IIconProps { direction?: 'up' | 'down' | 'left' | 'right'; } export default Icon; //# sourceMappingURL=Icon.d.ts.map