UNPKG

@fluentui/react-northstar

Version:
97 lines (95 loc) 3.17 kB
import { statusBehavior } from '@fluentui/accessibility'; import { getElementType, useUnhandledProps, useAccessibility, useStyles, useTelemetry, useFluentContext } from '@fluentui/react-bindings'; import * as customPropTypes from '@fluentui/react-proptypes'; import * as PropTypes from 'prop-types'; import * as React from 'react'; import { createShorthandFactory, commonPropTypes } from '../../utils'; import { Box } from '../Box/Box'; export var statusClassName = 'ui-status'; /** * A Status represents someone's or something's state. * * @accessibility * Implements [ARIA img](https://www.w3.org/TR/wai-aria-1.1/#img) role. */ export var Status = /*#__PURE__*/function () { var Status = /*#__PURE__*/React.forwardRef(function (props, ref) { var context = useFluentContext(); var _useTelemetry = useTelemetry(Status.displayName, context.telemetry), setStart = _useTelemetry.setStart, setEnd = _useTelemetry.setEnd; setStart(); var className = props.className, color = props.color, icon = props.icon, size = props.size, state = props.state, design = props.design, styles = props.styles, variables = props.variables; var _useStyles = useStyles(Status.displayName, { className: statusClassName, mapPropsToStyles: function mapPropsToStyles() { return { color: color, size: size, state: state }; }, mapPropsToInlineStyles: function mapPropsToInlineStyles() { return { className: className, design: design, styles: styles, variables: variables }; }, rtl: context.rtl }), classes = _useStyles.classes, resolvedStyles = _useStyles.styles; var getA11Props = useAccessibility(props.accessibility, { debugName: Status.displayName, rtl: context.rtl }); var ElementType = getElementType(props); var unhandledProps = useUnhandledProps(Status.handledProps, props); var iconElement = Box.create(icon, { defaultProps: function defaultProps() { return getA11Props('icon', { styles: resolvedStyles.icon, as: 'span' }); } }); var element = /*#__PURE__*/React.createElement(ElementType, getA11Props('root', Object.assign({ className: classes.root, ref: ref }, unhandledProps)), iconElement); setEnd(); return element; }); Status.displayName = 'Status'; Status.propTypes = Object.assign({}, commonPropTypes.createCommon({ children: false, content: false }), { color: PropTypes.string, icon: customPropTypes.shorthandAllowingChildren, size: customPropTypes.size, state: PropTypes.oneOf(['success', 'info', 'warning', 'error', 'unknown']) }); Status.handledProps = Object.keys(Status.propTypes); Status.defaultProps = { accessibility: statusBehavior, as: 'span', size: 'medium', state: 'unknown' }; Status.create = createShorthandFactory({ Component: Status, mappedProp: 'state' }); return Status; }(); //# sourceMappingURL=Status.js.map