UNPKG

@vimeo/iris

Version:
102 lines (95 loc) 5.64 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib_es6 = require('../../tslib.es6-3ec409b7.js'); var React = require('react'); var components_Notice_Notice_style = require('./Notice.style.js'); var components_Button_Button = require('../Button/Button.js'); var utils_HOCs_withIris = require('../../utils/HOCs/withIris.js'); var icons_ui_CircleInfo = require('../../icons/ui/CircleInfo.js'); var icons_ui_Checkmark = require('../../icons/ui/Checkmark.js'); var icons_ui_CircleWarning = require('../../icons/ui/CircleWarning.js'); var utils_events_onClose = require('../../utils/events/onClose.js'); var typography_Header_Header = require('../../typography/Header/Header.js'); var typography_Paragraph_Paragraph = require('../../typography/Paragraph/Paragraph.js'); var icons_ui_DismissX = require('../../icons/ui/DismissX.js'); require('styled-components'); require('polished'); require('../../tokens/core.js'); require('../../tokens/color/index.js'); require('../../tokens/color/background/background.js'); require('../../tokens/util/readToken.js'); require('../../color/colors.js'); require('../../tokens/util/clamp.js'); require('../../tokens/color/format/format.js'); require('../../tokens/color/format/primary.js'); require('../../tokens/color/format/secondary.js'); require('../../tokens/color/format/tertiary.js'); require('../../tokens/color/rainbow/rainbow.js'); require('../../tokens/color/rainbow/conic/index.js'); require('../../tokens/color/rainbow/conic/sm.js'); require('../../tokens/color/rainbow/conic/xl.js'); require('../../tokens/color/rainbow/linear/index.js'); require('../../tokens/color/rainbow/linear/sm.js'); require('../../tokens/color/rainbow/linear/xl.js'); require('../../tokens/color/livestream/livestream.js'); require('../../tokens/color/status/status.js'); require('../../tokens/color/status/caution.js'); require('../../tokens/color/status/negative.js'); require('../../tokens/color/status/positive.js'); require('../../tokens/color/stroke/stroke.js'); require('../../tokens/color/surface/surface.js'); require('../../tokens/color/text/text.js'); require('../../tokens/util/round.js'); require('../../tokens/color/upsell/upsell.js'); require('../../tokens/color/upsell/sm.js'); require('../../tokens/color/upsell/xl.js'); require('../../tokens/color/upsell/new.js'); require('../../tokens/edge/edge.js'); require('../../tokens/space/space.js'); require('../../tokens/typography/index.js'); require('../../tokens/typography/size/size.js'); require('../../typography/Text/Text.js'); require('../../typography/Text/Text.style.js'); require('../../typography/typography.js'); require('../../typography/Text/EditableText.js'); require('../../utils/hooks/useLayoutStyles.js'); require('../../utils/DOM/geometry.js'); require('../../utils/css.js'); require('../Button/Button.style.js'); require('../Button/Button.config.js'); require('../Button/FeaturedIcon.js'); require('../../themes/index.js'); require('../LoaderCircular/LoaderCircular.js'); require('../LoaderCircular/LoaderCircular.style.js'); require('../../utils/hooks/useDeprecate.js'); require('../../utils/general/mergeReactRefs.js'); require('../../typography/Header/Header.style.js'); require('../../typography/Paragraph/Paragraph.style.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var React__default = /*#__PURE__*/_interopDefaultLegacy(React); var Notice = utils_HOCs_withIris.withIris(NoticeComponent); function NoticeComponent(_a) { var children = _a.children, format = _a.format, forwardRef = _a.forwardRef, header = _a.header, _b = _a.icon, icon = _b === void 0 ? icons[format] : _b, onClose = _a.onClose, pill = _a.pill, props = tslib_es6.__rest(_a, ["children", "format", "forwardRef", "header", "icon", "onClose", "pill"]); var _c = utils_events_onClose.useClose(onClose), onCloseReject = _c.reject, onCloseComplete = _c.complete; var doClick = function (event) { event.preventDefault(); if (onCloseReject) { onCloseReject(event); } if (onCloseComplete) { onCloseComplete(event); } }; return (React__default["default"].createElement(components_Notice_Notice_style.NoticeStyled, tslib_es6.__assign({ format: format, icon: icon, onClose: onClose, pill: pill, ref: forwardRef }, props), icon && (React__default["default"].createElement(components_Notice_Notice_style.Icon, { header: header, format: format, pill: pill }, icon)), header && React__default["default"].createElement(typography_Header_Header.Header, { size: "5" }, header), typeof children === 'string' ? (React__default["default"].createElement(typography_Paragraph_Paragraph.Paragraph, { size: "2" }, children)) : (React__default["default"].createElement(components_Notice_Notice_style.NoticeChildren, null, children)), onClose && (React__default["default"].createElement(components_Notice_Notice_style.Dismiss, { format: format, pill: pill }, React__default["default"].createElement(components_Button_Button.Button, { title: "Dismiss this notification", variant: "minimal", format: "basic", size: "sm", icon: React__default["default"].createElement(icons_ui_DismissX.DismissX, null), onClick: doClick }))))); } var icons = { primary: React__default["default"].createElement(icons_ui_CircleInfo.CircleInfo, null), positive: React__default["default"].createElement(icons_ui_Checkmark.Checkmark, null), negative: React__default["default"].createElement(icons_ui_CircleWarning.CircleWarning, null), }; exports.Notice = Notice;