@teamsnap/teamsnap-ui
Version:
a CSS component library for TeamSnap
128 lines (127 loc) • 5.13 kB
TypeScript
/**
* @name Field
*
* @description
* The Field component is used when you're wanting to render any type of form field. It supports labels and captions for all types of fields,
* and offers detailed levels of support for specific field types. Please refer to the storybook examples to see the many different ways in which
* you can work with fields.
*
* @example
* <Field
* isDisabled={true}
* label={"Email Address"}
* name="Sample"
* formFieldProps={{
* placeholder: "Placeholder Text",
* size: Sizes.SMALL
* }}
* status={Statuses.ERROR}
* />
*/
/// <reference types="react" />
import * as PropTypes from 'prop-types';
import { CheckboxStates } from '../../types';
declare const fieldPropTypes: {
type: PropTypes.Validator<string>;
formFieldProps: PropTypes.Requireable<PropTypes.InferProps<{
text: PropTypes.Requireable<string>;
checked: PropTypes.Requireable<string | boolean>;
onClick: PropTypes.Requireable<(...args: any[]) => any>;
isIndeterminate: PropTypes.Requireable<boolean>;
}> | PropTypes.InferProps<{
placeholder: PropTypes.Requireable<string>;
leftIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
rightIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
size: PropTypes.Requireable<string>;
showStatus: PropTypes.Requireable<boolean>;
showClear: PropTypes.Requireable<boolean>;
onClearClicked: PropTypes.Requireable<(...args: any[]) => any>;
inputProps: PropTypes.Requireable<any>;
}>>;
name: PropTypes.Validator<string>;
label: PropTypes.Requireable<string>;
caption: PropTypes.Requireable<string>;
mods: PropTypes.Requireable<string>;
status: PropTypes.Requireable<string>;
ref: PropTypes.Requireable<any>;
otherProps: PropTypes.Requireable<any>;
isDisabled: PropTypes.Requireable<boolean>;
isInline: PropTypes.Requireable<boolean>;
style: PropTypes.Requireable<any>;
testId: PropTypes.Requireable<string>;
};
declare type FieldProps = PropTypes.InferProps<typeof fieldPropTypes>;
declare const Field: {
({ type, name, label, caption, ref, status, isDisabled, formFieldProps, isInline, style, testId, ...otherProps }: FieldProps): JSX.Element;
propTypes: {
type: PropTypes.Validator<string>;
formFieldProps: PropTypes.Requireable<PropTypes.InferProps<{
text: PropTypes.Requireable<string>;
checked: PropTypes.Requireable<string | boolean>;
onClick: PropTypes.Requireable<(...args: any[]) => any>;
isIndeterminate: PropTypes.Requireable<boolean>;
}> | PropTypes.InferProps<{
placeholder: PropTypes.Requireable<string>;
leftIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
rightIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
size: PropTypes.Requireable<string>;
showStatus: PropTypes.Requireable<boolean>;
showClear: PropTypes.Requireable<boolean>;
onClearClicked: PropTypes.Requireable<(...args: any[]) => any>;
inputProps: PropTypes.Requireable<any>;
}>>;
name: PropTypes.Validator<string>;
label: PropTypes.Requireable<string>;
caption: PropTypes.Requireable<string>;
mods: PropTypes.Requireable<string>;
status: PropTypes.Requireable<string>;
ref: PropTypes.Requireable<any>;
otherProps: PropTypes.Requireable<any>;
isDisabled: PropTypes.Requireable<boolean>;
isInline: PropTypes.Requireable<boolean>;
style: PropTypes.Requireable<any>;
testId: PropTypes.Requireable<string>;
};
defaultProps: {};
CheckboxStates: typeof CheckboxStates;
Label: {
(props: PropTypes.InferProps<{
children: PropTypes.Validator<PropTypes.ReactNodeLike>;
name: PropTypes.Requireable<string>;
className: PropTypes.Requireable<string>;
mods: PropTypes.Requireable<string>;
style: PropTypes.Requireable<object>;
testId: PropTypes.Requireable<string>;
otherProps: PropTypes.Requireable<object>;
}>): JSX.Element;
defaultProps: {
name: any;
className: string;
mods: any;
style: {};
testId: any;
otherProps: {};
};
};
Caption: {
(props: PropTypes.InferProps<{
children: PropTypes.Requireable<string>;
isError: PropTypes.Requireable<boolean>;
className: PropTypes.Requireable<string>;
mods: PropTypes.Requireable<string>;
style: PropTypes.Requireable<object>;
testId: PropTypes.Requireable<string>;
otherProps: PropTypes.Requireable<object>;
status: PropTypes.Requireable<string>;
}>): JSX.Element;
defaultProps: {
children: any;
className: string;
mods: any;
style: {};
testId: any;
otherProps: {};
};
};
};
export default Field;