UNPKG

@chakra-ui/core

Version:

Responsive and accessible React UI components built with React and Emotion

111 lines (88 loc) 3.02 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.AlertIcon = exports.AlertDescription = exports.AlertTitle = exports.Alert = exports.statuses = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _core = require("@emotion/core"); var _react = require("react"); var _Box = _interopRequireDefault(require("../Box")); var _Icon = _interopRequireDefault(require("../Icon")); var _styles = _interopRequireWildcard(require("./styles")); /** @jsx jsx */ var statuses = { info: { icon: "info", color: "blue" }, warning: { icon: "warning-2", color: "orange" }, success: { icon: "check-circle", color: "green" }, error: { icon: "warning", color: "red" } }; exports.statuses = statuses; var AlertContext = (0, _react.createContext)(); var useAlertContext = function useAlertContext() { var context = (0, _react.useContext)(AlertContext); if (context === undefined) { throw new Error("useAlertContext must be used within a AlertContextProvider"); } return context; }; var Alert = function Alert(_ref) { var _ref$status = _ref.status, status = _ref$status === void 0 ? "info" : _ref$status, _ref$variant = _ref.variant, variant = _ref$variant === void 0 ? "subtle" : _ref$variant, rest = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["status", "variant"]); var alertStyleProps = (0, _styles["default"])({ variant: variant, color: statuses[status] && statuses[status]["color"] }); var context = { status: status, variant: variant }; return (0, _core.jsx)(AlertContext.Provider, { value: context }, (0, _core.jsx)(_Box["default"], (0, _extends2["default"])({ role: "alert" }, alertStyleProps, rest))); }; exports.Alert = Alert; var AlertTitle = function AlertTitle(props) { return (0, _core.jsx)(_Box["default"], (0, _extends2["default"])({ fontWeight: "bold", lineHeight: "normal" }, props)); }; exports.AlertTitle = AlertTitle; var AlertDescription = function AlertDescription(props) { return (0, _core.jsx)(_Box["default"], props); }; exports.AlertDescription = AlertDescription; var AlertIcon = function AlertIcon(props) { var _useAlertContext = useAlertContext(), status = _useAlertContext.status, variant = _useAlertContext.variant; var iconStyleProps = (0, _styles.useAlertIconStyle)({ variant: variant, color: statuses[status] && statuses[status]["color"] }); return (0, _core.jsx)(_Icon["default"] // mt={1} , (0, _extends2["default"])({ mr: 3, size: 5, name: statuses[status] && statuses[status]["icon"] }, iconStyleProps, props)); }; exports.AlertIcon = AlertIcon;