lucid-ui
Version:
A UI component library from Xandr.
184 lines • 7.02 kB
TypeScript
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