@flodesk/grain 9.7.12 → 9.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -26,4 +26,5 @@ export { Textarea } from './textarea';
26
26
  export { Pagination } from './pagination';
27
27
  export { Nav, NavItem } from './nav';
28
28
  export { Flex } from './flex';
29
- export { Badge } from './badge';
29
+ export { Badge } from './badge';
30
+ export { Toast } from './toast';
@@ -0,0 +1,153 @@
1
+ import "core-js/modules/es.symbol.js";
2
+ import "core-js/modules/es.symbol.description.js";
3
+ import "core-js/modules/es.object.to-string.js";
4
+ import "core-js/modules/es.symbol.iterator.js";
5
+ import "core-js/modules/es.array.iterator.js";
6
+ import "core-js/modules/es.string.iterator.js";
7
+ import "core-js/modules/web.dom-collections.iterator.js";
8
+ import "core-js/modules/es.array.slice.js";
9
+ import "core-js/modules/es.array.from.js";
10
+ import "core-js/modules/es.regexp.exec.js";
11
+ import "core-js/modules/es.object.assign.js";
12
+ import _styled from "@emotion/styled/base";
13
+
14
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
15
+
16
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
+
18
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
+
20
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
21
+
22
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
23
+
24
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
25
+
26
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
27
+
28
+ import React, { Fragment, forwardRef, useCallback, useEffect, useRef, useState } from 'react';
29
+ import PropTypes from 'prop-types';
30
+ import { getColor, getRadius, getSpace, getTransition } from '../utilities';
31
+ import { lineHeightAndCapHeightOffset } from '../foundational';
32
+ import { Transition } from '@headlessui/react';
33
+ import { jsx as ___EmotionJSX } from "@emotion/react";
34
+ var variantStyles = {
35
+ success: {
36
+ backgroundColor: getColor('success'),
37
+ color: 'white'
38
+ },
39
+ danger: {
40
+ backgroundColor: getColor('danger'),
41
+ color: 'white'
42
+ },
43
+ neutral: {
44
+ backgroundColor: getColor('shade12'),
45
+ color: getColor('shade2')
46
+ }
47
+ };
48
+ var transitionChildProps = {
49
+ enter: 'enter',
50
+ enterFrom: 'enterFrom',
51
+ enterTo: 'enterTo',
52
+ leave: 'leave',
53
+ leaveFrom: 'leaveFrom',
54
+ leaveTo: 'leaveTo'
55
+ };
56
+
57
+ var Root = /*#__PURE__*/_styled("div", process.env.NODE_ENV === "production" ? {
58
+ target: "ep1f3rd1"
59
+ } : {
60
+ target: "ep1f3rd1",
61
+ label: "Root"
62
+ })(function (_ref) {
63
+ var zIndex = _ref.zIndex;
64
+ return "z-index: ".concat(zIndex);
65
+ }, ";position:fixed;bottom:", getSpace('l'), ";left:50%;transform:translateX(-50%);.leaveTo,.enterFrom{opacity:0;transform:translateY(", getSpace('s'), ");}.enterTo,.leaveTo{transition-duration:", getTransition('fast'), ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3RvYXN0LmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErQnVCIiwiZmlsZSI6Ii4uLy4uL3NyYy9jb21wb25lbnRzL3RvYXN0LmpzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBGcmFnbWVudCwgZm9yd2FyZFJlZiwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBnZXRDb2xvciwgZ2V0UmFkaXVzLCBnZXRTcGFjZSwgZ2V0VHJhbnNpdGlvbiB9IGZyb20gJy4uL3V0aWxpdGllcyc7XG5pbXBvcnQgeyBsaW5lSGVpZ2h0QW5kQ2FwSGVpZ2h0T2Zmc2V0IH0gZnJvbSAnLi4vZm91bmRhdGlvbmFsJztcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICdAaGVhZGxlc3N1aS9yZWFjdCc7XG5cbmNvbnN0IHZhcmlhbnRTdHlsZXMgPSB7XG4gIHN1Y2Nlc3M6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGdldENvbG9yKCdzdWNjZXNzJyksXG4gICAgY29sb3I6ICd3aGl0ZScsXG4gIH0sXG4gIGRhbmdlcjoge1xuICAgIGJhY2tncm91bmRDb2xvcjogZ2V0Q29sb3IoJ2RhbmdlcicpLFxuICAgIGNvbG9yOiAnd2hpdGUnLFxuICB9LFxuICBuZXV0cmFsOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiBnZXRDb2xvcignc2hhZGUxMicpLFxuICAgIGNvbG9yOiBnZXRDb2xvcignc2hhZGUyJyksXG4gIH0sXG59O1xuXG5jb25zdCB0cmFuc2l0aW9uQ2hpbGRQcm9wcyA9IHtcbiAgZW50ZXI6ICdlbnRlcicsXG4gIGVudGVyRnJvbTogJ2VudGVyRnJvbScsXG4gIGVudGVyVG86ICdlbnRlclRvJyxcbiAgbGVhdmU6ICdsZWF2ZScsXG4gIGxlYXZlRnJvbTogJ2xlYXZlRnJvbScsXG4gIGxlYXZlVG86ICdsZWF2ZVRvJyxcbn07XG5cbmNvbnN0IFJvb3QgPSBzdHlsZWQuZGl2YFxuICAkeyh7IHpJbmRleCB9KSA9PiBgei1pbmRleDogJHt6SW5kZXh9YH07XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAke2dldFNwYWNlKCdsJyl9O1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAubGVhdmVUbyxcbiAgLmVudGVyRnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHtnZXRTcGFjZSgncycpfSk7XG4gIH1cbiAgLmVudGVyVG8sXG4gIC5sZWF2ZVRvIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAke2dldFRyYW5zaXRpb24oJ2Zhc3QnKX07XG4gIH1cbmA7XG5cbmNvbnN0IENvbnRlbnQgPSBzdHlsZWQuZGl2YFxuICAtLXBhZGRpbmc6ICR7Z2V0U3BhY2UoJ2wnKX07XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tcGFkZGluZykgLSAke2xpbmVIZWlnaHRBbmRDYXBIZWlnaHRPZmZzZXR9KSB2YXIoLS1wYWRkaW5nKTtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBtYXgtd2lkdGg6IG1pbigke2dldFNwYWNlKDUwKX0sIGNhbGMoMTAwdncgLSAke2dldFNwYWNlKCdsJyl9ICogMikpO1xuICBib3JkZXItcmFkaXVzOiAke2dldFJhZGl1cygnbScpfTtcbiAgJHsoeyB2YXJpYW50IH0pID0+IHZhcmlhbnRTdHlsZXNbdmFyaWFudF19O1xuYDtcblxuZXhwb3J0IGNvbnN0IFRvYXN0ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHsgekluZGV4ID0gMTIwMCwgY2hpbGRyZW4sIGlzT3BlbiwgdmFyaWFudCA9ICduZXV0cmFsJywgZGlzbWlzc1RpbWVvdXQgPSAzMDAwLCBvbkRpc21pc3MgfSxcbiAgICByZWYsXG4gICkgPT4ge1xuICAgIGNvbnN0IFtpc0ludGVybmFsbHlPcGVuLCBzZXRJc0ludGVybmFsbHlPcGVuXSA9IHVzZVN0YXRlKGlzT3Blbik7XG4gICAgY29uc3QgW2lzSG92ZXJlZCwgc2V0SXNIb3ZlcmVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBkaXNtaXNzVGltZXJSZWYgPSB1c2VSZWYoKTtcblxuICAgIGNvbnN0IGNsZWFyRGlzbWlzc1RpbWVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGRpc21pc3NUaW1lclJlZi5jdXJyZW50KSB7XG4gICAgICAgIGNsZWFyVGltZW91dChkaXNtaXNzVGltZXJSZWYuY3VycmVudCk7XG4gICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgc3RhcnREaXNtaXNzVGltZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjbGVhckRpc21pc3NUaW1lcigpO1xuICAgICAgZGlzbWlzc1RpbWVyUmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0SXNJbnRlcm5hbGx5T3BlbihmYWxzZSk7XG4gICAgICAgIG9uRGlzbWlzcyAmJiBvbkRpc21pc3MoKTtcbiAgICAgIH0sIGRpc21pc3NUaW1lb3V0KTtcbiAgICB9LCBbY2xlYXJEaXNtaXNzVGltZXIsIGRpc21pc3NUaW1lb3V0LCBvbkRpc21pc3NdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBzZXRJc0ludGVybmFsbHlPcGVuKGlzT3Blbik7XG4gICAgICBpZiAoaXNPcGVuICYmICFpc0hvdmVyZWQpIHtcbiAgICAgICAgc3RhcnREaXNtaXNzVGltZXIoKTtcbiAgICAgIH1cbiAgICB9LCBbaXNPcGVuLCBpc0hvdmVyZWQsIHN0YXJ0RGlzbWlzc1RpbWVyXSk7XG5cbiAgICBjb25zdCBoYW5kbGVNb3VzZUVudGVyID0gKCkgPT4ge1xuICAgICAgc2V0SXNIb3ZlcmVkKHRydWUpO1xuICAgICAgY2xlYXJEaXNtaXNzVGltZXIoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTW91c2VMZWF2ZSA9ICgpID0+IHtcbiAgICAgIHNldElzSG92ZXJlZChmYWxzZSk7XG4gICAgICBpZiAoaXNPcGVuKSB7XG4gICAgICAgIHN0YXJ0RGlzbWlzc1RpbWVyKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8Um9vdFxuICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgekluZGV4PXt6SW5kZXh9XG4gICAgICAgIG9uTW91c2VFbnRlcj17aGFuZGxlTW91c2VFbnRlcn1cbiAgICAgICAgb25Nb3VzZUxlYXZlPXtoYW5kbGVNb3VzZUxlYXZlfVxuICAgICAgPlxuICAgICAgICA8VHJhbnNpdGlvbiBzaG93PXtpc0ludGVybmFsbHlPcGVufSBhcz17RnJhZ21lbnR9PlxuICAgICAgICAgIDxUcmFuc2l0aW9uLkNoaWxkIGFzPXtGcmFnbWVudH0gey4uLnRyYW5zaXRpb25DaGlsZFByb3BzfT5cbiAgICAgICAgICAgIDxDb250ZW50IHZhcmlhbnQ9e3ZhcmlhbnR9PntjaGlsZHJlbn08L0NvbnRlbnQ+XG4gICAgICAgICAgPC9UcmFuc2l0aW9uLkNoaWxkPlxuICAgICAgICA8L1RyYW5zaXRpb24+XG4gICAgICA8L1Jvb3Q+XG4gICAgKTtcbiAgfSxcbik7XG5cblRvYXN0LnByb3BUeXBlcyA9IHtcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICB6SW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG4gIGlzT3BlbjogUHJvcFR5cGVzLmJvb2wsXG4gIHZhcmlhbnQ6IFByb3BUeXBlcy5vbmVPZihbJ3N1Y2Nlc3MnLCAnZGFuZ2VyJywgJ25ldXRyYWwnXSksXG4gIGRpc21pc3NUaW1lb3V0OiBQcm9wVHlwZXMubnVtYmVyLFxuICBvbkRpc21pc3M6IFByb3BUeXBlcy5mdW5jLFxufTtcbiJdfQ== */"));
66
+
67
+ var Content = /*#__PURE__*/_styled("div", process.env.NODE_ENV === "production" ? {
68
+ target: "ep1f3rd0"
69
+ } : {
70
+ target: "ep1f3rd0",
71
+ label: "Content"
72
+ })("--padding:", getSpace('l'), ";padding:calc(var(--padding) - ", lineHeightAndCapHeightOffset, ") var(--padding);width:max-content;max-width:min(", getSpace(50), ", calc(100vw - ", getSpace('l'), " * 2));border-radius:", getRadius('m'), ";", function (_ref2) {
73
+ var variant = _ref2.variant;
74
+ return variantStyles[variant];
75
+ }, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3RvYXN0LmpzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpRDBCIiwiZmlsZSI6Ii4uLy4uL3NyYy9jb21wb25lbnRzL3RvYXN0LmpzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBGcmFnbWVudCwgZm9yd2FyZFJlZiwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBnZXRDb2xvciwgZ2V0UmFkaXVzLCBnZXRTcGFjZSwgZ2V0VHJhbnNpdGlvbiB9IGZyb20gJy4uL3V0aWxpdGllcyc7XG5pbXBvcnQgeyBsaW5lSGVpZ2h0QW5kQ2FwSGVpZ2h0T2Zmc2V0IH0gZnJvbSAnLi4vZm91bmRhdGlvbmFsJztcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICdAaGVhZGxlc3N1aS9yZWFjdCc7XG5cbmNvbnN0IHZhcmlhbnRTdHlsZXMgPSB7XG4gIHN1Y2Nlc3M6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGdldENvbG9yKCdzdWNjZXNzJyksXG4gICAgY29sb3I6ICd3aGl0ZScsXG4gIH0sXG4gIGRhbmdlcjoge1xuICAgIGJhY2tncm91bmRDb2xvcjogZ2V0Q29sb3IoJ2RhbmdlcicpLFxuICAgIGNvbG9yOiAnd2hpdGUnLFxuICB9LFxuICBuZXV0cmFsOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiBnZXRDb2xvcignc2hhZGUxMicpLFxuICAgIGNvbG9yOiBnZXRDb2xvcignc2hhZGUyJyksXG4gIH0sXG59O1xuXG5jb25zdCB0cmFuc2l0aW9uQ2hpbGRQcm9wcyA9IHtcbiAgZW50ZXI6ICdlbnRlcicsXG4gIGVudGVyRnJvbTogJ2VudGVyRnJvbScsXG4gIGVudGVyVG86ICdlbnRlclRvJyxcbiAgbGVhdmU6ICdsZWF2ZScsXG4gIGxlYXZlRnJvbTogJ2xlYXZlRnJvbScsXG4gIGxlYXZlVG86ICdsZWF2ZVRvJyxcbn07XG5cbmNvbnN0IFJvb3QgPSBzdHlsZWQuZGl2YFxuICAkeyh7IHpJbmRleCB9KSA9PiBgei1pbmRleDogJHt6SW5kZXh9YH07XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAke2dldFNwYWNlKCdsJyl9O1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblxuICAubGVhdmVUbyxcbiAgLmVudGVyRnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHtnZXRTcGFjZSgncycpfSk7XG4gIH1cbiAgLmVudGVyVG8sXG4gIC5sZWF2ZVRvIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAke2dldFRyYW5zaXRpb24oJ2Zhc3QnKX07XG4gIH1cbmA7XG5cbmNvbnN0IENvbnRlbnQgPSBzdHlsZWQuZGl2YFxuICAtLXBhZGRpbmc6ICR7Z2V0U3BhY2UoJ2wnKX07XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tcGFkZGluZykgLSAke2xpbmVIZWlnaHRBbmRDYXBIZWlnaHRPZmZzZXR9KSB2YXIoLS1wYWRkaW5nKTtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBtYXgtd2lkdGg6IG1pbigke2dldFNwYWNlKDUwKX0sIGNhbGMoMTAwdncgLSAke2dldFNwYWNlKCdsJyl9ICogMikpO1xuICBib3JkZXItcmFkaXVzOiAke2dldFJhZGl1cygnbScpfTtcbiAgJHsoeyB2YXJpYW50IH0pID0+IHZhcmlhbnRTdHlsZXNbdmFyaWFudF19O1xuYDtcblxuZXhwb3J0IGNvbnN0IFRvYXN0ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHsgekluZGV4ID0gMTIwMCwgY2hpbGRyZW4sIGlzT3BlbiwgdmFyaWFudCA9ICduZXV0cmFsJywgZGlzbWlzc1RpbWVvdXQgPSAzMDAwLCBvbkRpc21pc3MgfSxcbiAgICByZWYsXG4gICkgPT4ge1xuICAgIGNvbnN0IFtpc0ludGVybmFsbHlPcGVuLCBzZXRJc0ludGVybmFsbHlPcGVuXSA9IHVzZVN0YXRlKGlzT3Blbik7XG4gICAgY29uc3QgW2lzSG92ZXJlZCwgc2V0SXNIb3ZlcmVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBkaXNtaXNzVGltZXJSZWYgPSB1c2VSZWYoKTtcblxuICAgIGNvbnN0IGNsZWFyRGlzbWlzc1RpbWVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGRpc21pc3NUaW1lclJlZi5jdXJyZW50KSB7XG4gICAgICAgIGNsZWFyVGltZW91dChkaXNtaXNzVGltZXJSZWYuY3VycmVudCk7XG4gICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgc3RhcnREaXNtaXNzVGltZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBjbGVhckRpc21pc3NUaW1lcigpO1xuICAgICAgZGlzbWlzc1RpbWVyUmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0SXNJbnRlcm5hbGx5T3BlbihmYWxzZSk7XG4gICAgICAgIG9uRGlzbWlzcyAmJiBvbkRpc21pc3MoKTtcbiAgICAgIH0sIGRpc21pc3NUaW1lb3V0KTtcbiAgICB9LCBbY2xlYXJEaXNtaXNzVGltZXIsIGRpc21pc3NUaW1lb3V0LCBvbkRpc21pc3NdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBzZXRJc0ludGVybmFsbHlPcGVuKGlzT3Blbik7XG4gICAgICBpZiAoaXNPcGVuICYmICFpc0hvdmVyZWQpIHtcbiAgICAgICAgc3RhcnREaXNtaXNzVGltZXIoKTtcbiAgICAgIH1cbiAgICB9LCBbaXNPcGVuLCBpc0hvdmVyZWQsIHN0YXJ0RGlzbWlzc1RpbWVyXSk7XG5cbiAgICBjb25zdCBoYW5kbGVNb3VzZUVudGVyID0gKCkgPT4ge1xuICAgICAgc2V0SXNIb3ZlcmVkKHRydWUpO1xuICAgICAgY2xlYXJEaXNtaXNzVGltZXIoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTW91c2VMZWF2ZSA9ICgpID0+IHtcbiAgICAgIHNldElzSG92ZXJlZChmYWxzZSk7XG4gICAgICBpZiAoaXNPcGVuKSB7XG4gICAgICAgIHN0YXJ0RGlzbWlzc1RpbWVyKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8Um9vdFxuICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgekluZGV4PXt6SW5kZXh9XG4gICAgICAgIG9uTW91c2VFbnRlcj17aGFuZGxlTW91c2VFbnRlcn1cbiAgICAgICAgb25Nb3VzZUxlYXZlPXtoYW5kbGVNb3VzZUxlYXZlfVxuICAgICAgPlxuICAgICAgICA8VHJhbnNpdGlvbiBzaG93PXtpc0ludGVybmFsbHlPcGVufSBhcz17RnJhZ21lbnR9PlxuICAgICAgICAgIDxUcmFuc2l0aW9uLkNoaWxkIGFzPXtGcmFnbWVudH0gey4uLnRyYW5zaXRpb25DaGlsZFByb3BzfT5cbiAgICAgICAgICAgIDxDb250ZW50IHZhcmlhbnQ9e3ZhcmlhbnR9PntjaGlsZHJlbn08L0NvbnRlbnQ+XG4gICAgICAgICAgPC9UcmFuc2l0aW9uLkNoaWxkPlxuICAgICAgICA8L1RyYW5zaXRpb24+XG4gICAgICA8L1Jvb3Q+XG4gICAgKTtcbiAgfSxcbik7XG5cblRvYXN0LnByb3BUeXBlcyA9IHtcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICB6SW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG4gIGlzT3BlbjogUHJvcFR5cGVzLmJvb2wsXG4gIHZhcmlhbnQ6IFByb3BUeXBlcy5vbmVPZihbJ3N1Y2Nlc3MnLCAnZGFuZ2VyJywgJ25ldXRyYWwnXSksXG4gIGRpc21pc3NUaW1lb3V0OiBQcm9wVHlwZXMubnVtYmVyLFxuICBvbkRpc21pc3M6IFByb3BUeXBlcy5mdW5jLFxufTtcbiJdfQ== */"));
76
+
77
+ export var Toast = /*#__PURE__*/forwardRef(function (_ref3, ref) {
78
+ var _ref3$zIndex = _ref3.zIndex,
79
+ zIndex = _ref3$zIndex === void 0 ? 1200 : _ref3$zIndex,
80
+ children = _ref3.children,
81
+ isOpen = _ref3.isOpen,
82
+ _ref3$variant = _ref3.variant,
83
+ variant = _ref3$variant === void 0 ? 'neutral' : _ref3$variant,
84
+ _ref3$dismissTimeout = _ref3.dismissTimeout,
85
+ dismissTimeout = _ref3$dismissTimeout === void 0 ? 3000 : _ref3$dismissTimeout,
86
+ onDismiss = _ref3.onDismiss;
87
+
88
+ var _useState = useState(isOpen),
89
+ _useState2 = _slicedToArray(_useState, 2),
90
+ isInternallyOpen = _useState2[0],
91
+ setIsInternallyOpen = _useState2[1];
92
+
93
+ var _useState3 = useState(false),
94
+ _useState4 = _slicedToArray(_useState3, 2),
95
+ isHovered = _useState4[0],
96
+ setIsHovered = _useState4[1];
97
+
98
+ var dismissTimerRef = useRef();
99
+ var clearDismissTimer = useCallback(function () {
100
+ if (dismissTimerRef.current) {
101
+ clearTimeout(dismissTimerRef.current);
102
+ }
103
+ }, []);
104
+ var startDismissTimer = useCallback(function () {
105
+ clearDismissTimer();
106
+ dismissTimerRef.current = setTimeout(function () {
107
+ setIsInternallyOpen(false);
108
+ onDismiss && onDismiss();
109
+ }, dismissTimeout);
110
+ }, [clearDismissTimer, dismissTimeout, onDismiss]);
111
+ useEffect(function () {
112
+ setIsInternallyOpen(isOpen);
113
+
114
+ if (isOpen && !isHovered) {
115
+ startDismissTimer();
116
+ }
117
+ }, [isOpen, isHovered, startDismissTimer]);
118
+
119
+ var handleMouseEnter = function handleMouseEnter() {
120
+ setIsHovered(true);
121
+ clearDismissTimer();
122
+ };
123
+
124
+ var handleMouseLeave = function handleMouseLeave() {
125
+ setIsHovered(false);
126
+
127
+ if (isOpen) {
128
+ startDismissTimer();
129
+ }
130
+ };
131
+
132
+ return ___EmotionJSX(Root, {
133
+ ref: ref,
134
+ zIndex: zIndex,
135
+ onMouseEnter: handleMouseEnter,
136
+ onMouseLeave: handleMouseLeave
137
+ }, ___EmotionJSX(Transition, {
138
+ show: isInternallyOpen,
139
+ as: Fragment
140
+ }, ___EmotionJSX(Transition.Child, _extends({
141
+ as: Fragment
142
+ }, transitionChildProps), ___EmotionJSX(Content, {
143
+ variant: variant
144
+ }, children))));
145
+ });
146
+ Toast.propTypes = {
147
+ children: PropTypes.node,
148
+ zIndex: PropTypes.number,
149
+ isOpen: PropTypes.bool,
150
+ variant: PropTypes.oneOf(['success', 'danger', 'neutral']),
151
+ dismissTimeout: PropTypes.number,
152
+ onDismiss: PropTypes.func
153
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flodesk/grain",
3
- "version": "9.7.12",
3
+ "version": "9.8.0",
4
4
  "description": "Flodesk design system",
5
5
  "module": "es/index.js",
6
6
  "author": "Flodesk",