@blerp/design 1.3.17 → 1.4.2

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.
Files changed (128) hide show
  1. package/dist/cjs/Blerp/BlerpImageRow.js +176 -57
  2. package/dist/cjs/Blerp/BlerpSavePopup.js +44 -40
  3. package/dist/cjs/Blerp/BlerpTitleRow.js +36 -19
  4. package/dist/cjs/Blerp/BlerpTopRow.js +110 -44
  5. package/dist/cjs/Blerp.js +9 -16
  6. package/dist/cjs/BlerpAudioContextProvider.js +2 -2
  7. package/dist/cjs/BlerpListView.js +318 -168
  8. package/dist/cjs/BlerpListViewPremium.js +155 -130
  9. package/dist/cjs/BlerpListViewSkeleton.js +60 -13
  10. package/dist/cjs/BlerpSkeleton.js +32 -9
  11. package/dist/cjs/CollectionCard.js +139 -60
  12. package/dist/cjs/CollectionListViewPremium.js +368 -297
  13. package/dist/cjs/CollectionSkeleton.js +74 -13
  14. package/dist/cjs/Dropdown.js +272 -172
  15. package/dist/cjs/EllipsisLoader.js +66 -21
  16. package/dist/cjs/GroupCard.js +64 -57
  17. package/dist/cjs/Icons/Icons.js +288 -426
  18. package/dist/cjs/ImageEditor.js +247 -0
  19. package/dist/cjs/ImageUpload.js +226 -0
  20. package/dist/cjs/NewBlerp.js +354 -160
  21. package/dist/cjs/NewBlerpTest.js +10 -792
  22. package/dist/cjs/NewCollectionModal.js +294 -310
  23. package/dist/cjs/PremiumCollectionCard.js +191 -454
  24. package/dist/cjs/PurchaseModals/CheckoutModal.js +1 -1
  25. package/dist/cjs/PurchaseModals/PremiumBlerpCheckoutModal.js +1 -1
  26. package/dist/cjs/PurchaseModals/PremiumCollectionCheckoutModal.js +1 -1
  27. package/dist/cjs/PurchaseModals/PremiumSubscriptionCheckoutModal.js +1 -1
  28. package/dist/cjs/ReactionButtons.js +26 -13
  29. package/dist/cjs/SnackbarContextProvider.js +200 -116
  30. package/dist/cjs/Theme.js +217 -90
  31. package/dist/cjs/Toggle.js +86 -32
  32. package/dist/cjs/UserCard.js +13 -32
  33. package/dist/cjs/UserPage/LibraryControls.js +180 -93
  34. package/dist/cjs/UserPage/UserLibraryHeader.js +23 -14
  35. package/dist/cjs/UserPage/UserProfileHeader.js +120 -105
  36. package/dist/cjs/UsernameWithPopout.js +12 -8
  37. package/dist/cjs/colors.js +15 -8
  38. package/dist/cjs/helpers.js +131 -0
  39. package/dist/cjs/index.js +92 -58
  40. package/dist/cjs/neo-components/Autocomplete.js +285 -0
  41. package/dist/cjs/neo-components/BottomNavigation.js +120 -0
  42. package/dist/cjs/neo-components/Box.js +48 -0
  43. package/dist/cjs/neo-components/Button.js +206 -0
  44. package/dist/cjs/neo-components/CircularProgress.js +92 -0
  45. package/dist/cjs/neo-components/Container.js +75 -0
  46. package/dist/cjs/neo-components/Dialog.js +441 -0
  47. package/dist/cjs/neo-components/Fab.js +237 -0
  48. package/dist/cjs/neo-components/FormControls.js +1057 -0
  49. package/dist/cjs/neo-components/Grid.js +256 -0
  50. package/dist/cjs/neo-components/IconButton.js +111 -0
  51. package/dist/cjs/neo-components/Input.js +495 -0
  52. package/dist/cjs/neo-components/Layout.js +1214 -0
  53. package/dist/cjs/neo-components/Misc.js +868 -0
  54. package/dist/cjs/neo-components/Navigation.js +1616 -0
  55. package/dist/cjs/neo-components/Paper.js +256 -0
  56. package/dist/cjs/neo-components/Stack.js +194 -0
  57. package/dist/cjs/neo-components/Stepper.js +291 -0
  58. package/dist/cjs/neo-components/Text.js +290 -0
  59. package/dist/cjs/neo-components/ThemeProvider.js +731 -0
  60. package/dist/cjs/neo-components/ToggleButton.js +223 -0
  61. package/dist/cjs/neo-components/createTheme.js +306 -0
  62. package/dist/cjs/neo-components/withSx.js +171 -0
  63. package/dist/cjs/neo-utils/sxToStyle.js +508 -0
  64. package/dist/esm/Blerp/BlerpImageRow.js +166 -46
  65. package/dist/esm/Blerp/BlerpSavePopup.js +35 -27
  66. package/dist/esm/Blerp/BlerpTitleRow.js +32 -13
  67. package/dist/esm/Blerp/BlerpTopRow.js +85 -16
  68. package/dist/esm/Blerp.js +4 -12
  69. package/dist/esm/BlerpAudioContextProvider.js +1 -2
  70. package/dist/esm/BlerpListView.js +313 -160
  71. package/dist/esm/BlerpListViewPremium.js +135 -109
  72. package/dist/esm/BlerpListViewSkeleton.js +60 -11
  73. package/dist/esm/BlerpSkeleton.js +32 -7
  74. package/dist/esm/CollectionCard.js +118 -38
  75. package/dist/esm/CollectionListViewPremium.js +367 -294
  76. package/dist/esm/CollectionSkeleton.js +73 -11
  77. package/dist/esm/Dropdown.js +260 -161
  78. package/dist/esm/EllipsisLoader.js +63 -18
  79. package/dist/esm/GroupCard.js +54 -46
  80. package/dist/esm/Icons/Icons.js +226 -367
  81. package/dist/esm/ImageEditor.js +240 -0
  82. package/dist/esm/ImageUpload.js +217 -0
  83. package/dist/esm/NewBlerp.js +282 -79
  84. package/dist/esm/NewBlerpTest.js +11 -781
  85. package/dist/esm/NewCollectionModal.js +289 -304
  86. package/dist/esm/PremiumCollectionCard.js +192 -451
  87. package/dist/esm/PurchaseModals/CheckoutModal.js +1 -1
  88. package/dist/esm/PurchaseModals/PremiumBlerpCheckoutModal.js +1 -1
  89. package/dist/esm/PurchaseModals/PremiumCollectionCheckoutModal.js +1 -1
  90. package/dist/esm/PurchaseModals/PremiumSubscriptionCheckoutModal.js +1 -1
  91. package/dist/esm/ReactionButtons.js +23 -8
  92. package/dist/esm/SnackbarContextProvider.js +196 -110
  93. package/dist/esm/Theme.js +187 -66
  94. package/dist/esm/Toggle.js +84 -29
  95. package/dist/esm/UserCard.js +1 -20
  96. package/dist/esm/UserPage/LibraryControls.js +159 -65
  97. package/dist/esm/UserPage/UserLibraryHeader.js +18 -10
  98. package/dist/esm/UserPage/UserProfileHeader.js +100 -79
  99. package/dist/esm/UsernameWithPopout.js +7 -4
  100. package/dist/esm/colors.js +11 -9
  101. package/dist/esm/helpers.js +122 -0
  102. package/dist/esm/icons.js +1 -1
  103. package/dist/esm/index.js +32 -2
  104. package/dist/esm/neo-components/Autocomplete.js +274 -0
  105. package/dist/esm/neo-components/BottomNavigation.js +109 -0
  106. package/dist/esm/neo-components/Box.js +36 -0
  107. package/dist/esm/neo-components/Button.js +194 -0
  108. package/dist/esm/neo-components/CircularProgress.js +81 -0
  109. package/dist/esm/neo-components/Container.js +63 -0
  110. package/dist/esm/neo-components/Dialog.js +423 -0
  111. package/dist/esm/neo-components/Fab.js +225 -0
  112. package/dist/esm/neo-components/FormControls.js +1041 -0
  113. package/dist/esm/neo-components/Grid.js +244 -0
  114. package/dist/esm/neo-components/IconButton.js +99 -0
  115. package/dist/esm/neo-components/Input.js +480 -0
  116. package/dist/esm/neo-components/Layout.js +1180 -0
  117. package/dist/esm/neo-components/Misc.js +850 -0
  118. package/dist/esm/neo-components/Navigation.js +1594 -0
  119. package/dist/esm/neo-components/Paper.js +243 -0
  120. package/dist/esm/neo-components/Stack.js +182 -0
  121. package/dist/esm/neo-components/Stepper.js +278 -0
  122. package/dist/esm/neo-components/Text.js +277 -0
  123. package/dist/esm/neo-components/ThemeProvider.js +718 -0
  124. package/dist/esm/neo-components/ToggleButton.js +214 -0
  125. package/dist/esm/neo-components/createTheme.js +297 -0
  126. package/dist/esm/neo-components/withSx.js +160 -0
  127. package/dist/esm/neo-utils/sxToStyle.js +502 -0
  128. package/package.json +19 -15
@@ -30,4 +30,4 @@ const NeedToReplace = props => {
30
30
  }, "Need to replace to remove payment dependencies");
31
31
  };
32
32
 
33
- export default NeedToReplace;
33
+ export { NeedToReplace as default };
@@ -30,4 +30,4 @@ const NeedToReplace = props => {
30
30
  }, "Need to replace to remove payment dependencies");
31
31
  };
32
32
 
33
- export default NeedToReplace;
33
+ export { NeedToReplace as default };
@@ -30,4 +30,4 @@ const NeedToReplace = props => {
30
30
  }, "Need to replace to remove payment dependencies");
31
31
  };
32
32
 
33
- export default NeedToReplace;
33
+ export { NeedToReplace as default };
@@ -30,4 +30,4 @@ const NeedToReplace = props => {
30
30
  }, "Need to replace to remove payment dependencies");
31
31
  };
32
32
 
33
- export default NeedToReplace;
33
+ export { NeedToReplace as default };
@@ -1,10 +1,7 @@
1
- import _taggedTemplateLiteral from '@babel/runtime/helpers/taggedTemplateLiteral';
2
1
  import React from 'react';
3
- import styled from 'styled-components';
4
2
  import { Grid, Tooltip } from './index.js';
3
+ import { useBlerpTheme } from './Theme.js';
5
4
 
6
- var _templateObject;
7
- const ReactionButton = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n border-radius: 50%;\n width: 30px;\n height: 30px;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 8px;\n transition: 0.2s;\n margin-right: 0;\n cursor: pointer;\n background-color: ", ";\n\n &:hover {\n background-color: ", ";\n }\n"])), props => props.active ? props.theme.colors.ibisRed : props.theme.colors.grey5, props => props.theme.colors.ibisRed);
8
5
  const reactionIconUrls = {
9
6
  FUNNY: "https://cdn.blerp.com/blerp_products/Icons/Funny%403x.svg",
10
7
  HAPPY: "https://cdn.blerp.com/blerp_products/Icons/Happy%403x.svg",
@@ -21,6 +18,8 @@ const ReactionButtons = _ref => {
21
18
  bite,
22
19
  handleClick
23
20
  } = _ref;
21
+ const theme = useBlerpTheme();
22
+ const [hoveredReaction, setHoveredReaction] = React.useState(null);
24
23
  return /*#__PURE__*/React.createElement(Grid, {
25
24
  display: "grid",
26
25
  gridTemplateColumns: "repeat(4, 1fr)",
@@ -28,8 +27,10 @@ const ReactionButtons = _ref => {
28
27
  marginTop: "16px",
29
28
  gap: 1
30
29
  }, Object.keys(reactionIconUrls).map(reaction => {
31
- var _bite$userReactions, _bite$userReactions$r;
30
+ var _bite$userReactions, _bite$userReactions$r, _theme$colors, _theme$colors2;
32
31
 
32
+ const isActive = bite === null || bite === void 0 ? void 0 : (_bite$userReactions = bite.userReactions) === null || _bite$userReactions === void 0 ? void 0 : (_bite$userReactions$r = _bite$userReactions.reactions) === null || _bite$userReactions$r === void 0 ? void 0 : _bite$userReactions$r.includes(reaction);
33
+ const isHovered = hoveredReaction === reaction;
33
34
  return /*#__PURE__*/React.createElement(Grid, {
34
35
  key: "".concat(reaction, "-button"),
35
36
  gridColumn: "span 1",
@@ -37,8 +38,22 @@ const ReactionButtons = _ref => {
37
38
  justifyContent: "center"
38
39
  }, /*#__PURE__*/React.createElement(Tooltip, {
39
40
  title: reaction
40
- }, /*#__PURE__*/React.createElement(ReactionButton, {
41
- active: bite === null || bite === void 0 ? void 0 : (_bite$userReactions = bite.userReactions) === null || _bite$userReactions === void 0 ? void 0 : (_bite$userReactions$r = _bite$userReactions.reactions) === null || _bite$userReactions$r === void 0 ? void 0 : _bite$userReactions$r.includes(reaction),
41
+ }, /*#__PURE__*/React.createElement("div", {
42
+ style: {
43
+ borderRadius: "50%",
44
+ width: "30px",
45
+ height: "30px",
46
+ display: "flex",
47
+ justifyContent: "center",
48
+ alignItems: "center",
49
+ padding: "8px",
50
+ transition: "0.2s",
51
+ marginRight: 0,
52
+ cursor: "pointer",
53
+ backgroundColor: isActive || isHovered ? (theme === null || theme === void 0 ? void 0 : (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.ibisRed) || "#e74c3c" : (theme === null || theme === void 0 ? void 0 : (_theme$colors2 = theme.colors) === null || _theme$colors2 === void 0 ? void 0 : _theme$colors2.grey5) || "#bbb"
54
+ },
55
+ onMouseEnter: () => setHoveredReaction(reaction),
56
+ onMouseLeave: () => setHoveredReaction(null),
42
57
  onClick: () => {
43
58
  var _bite$userReactions2, _bite$userReactions2$;
44
59
 
@@ -54,4 +69,4 @@ const ReactionButtons = _ref => {
54
69
  }));
55
70
  };
56
71
 
57
- export default ReactionButtons;
72
+ export { ReactionButtons as default };
@@ -1,27 +1,9 @@
1
- import _extends from '@babel/runtime/helpers/extends';
2
- import React, { useState } from 'react';
3
- import Slide from '@mui/material/Slide';
4
- import Fade from '@mui/material/Fade';
5
- import { Snackbar, Alert } from './index.js';
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import React, { useState, useCallback } from 'react';
6
3
 
7
- /*
8
- snackbarContext.triggerSnackbar({
9
- message: `Added to ${collection.title}`,
10
- severity: "success",
11
- actionButton: (
12
- <Button
13
- color="inherit"
14
- variant="text"
15
- size="small"
16
- onClick={() => {
17
- globalContext.setActiveBoard(collection);
18
- }}>
19
- View
20
- </Button>
21
- ),
22
- });
23
- */
4
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
24
5
 
6
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
25
7
  const SnackbarContext = /*#__PURE__*/React.createContext({
26
8
  snackbarValues: {
27
9
  open: false,
@@ -33,31 +15,130 @@ const SnackbarContext = /*#__PURE__*/React.createContext({
33
15
  slideDirection: "up",
34
16
  transitionType: "slide",
35
17
  severity: "success",
36
- actionButton: /*#__PURE__*/React.createElement(React.Fragment, null),
37
- autoHideDuration: 5000,
38
- sx: null
18
+ actionButton: null,
19
+ autoHideDuration: 5000
39
20
  },
40
21
  triggerSnackbar: () => null
41
22
  });
23
+ const severityStyles = {
24
+ success: {
25
+ background: "#4caf50",
26
+ color: "#fff"
27
+ },
28
+ error: {
29
+ background: "#f44336",
30
+ color: "#fff"
31
+ },
32
+ warning: {
33
+ background: "#ff9800",
34
+ color: "#fff"
35
+ },
36
+ info: {
37
+ background: "#2196f3",
38
+ color: "#fff"
39
+ }
40
+ };
41
+ const severityIcons = {
42
+ success: /*#__PURE__*/React.createElement("svg", {
43
+ width: "20",
44
+ height: "20",
45
+ viewBox: "0 0 24 24",
46
+ fill: "currentColor"
47
+ }, /*#__PURE__*/React.createElement("path", {
48
+ d: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"
49
+ })),
50
+ error: /*#__PURE__*/React.createElement("svg", {
51
+ width: "20",
52
+ height: "20",
53
+ viewBox: "0 0 24 24",
54
+ fill: "currentColor"
55
+ }, /*#__PURE__*/React.createElement("path", {
56
+ d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"
57
+ })),
58
+ warning: /*#__PURE__*/React.createElement("svg", {
59
+ width: "20",
60
+ height: "20",
61
+ viewBox: "0 0 24 24",
62
+ fill: "currentColor"
63
+ }, /*#__PURE__*/React.createElement("path", {
64
+ d: "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"
65
+ })),
66
+ info: /*#__PURE__*/React.createElement("svg", {
67
+ width: "20",
68
+ height: "20",
69
+ viewBox: "0 0 24 24",
70
+ fill: "currentColor"
71
+ }, /*#__PURE__*/React.createElement("path", {
72
+ d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"
73
+ }))
74
+ };
75
+
76
+ const getPositionStyles = position => {
77
+ const styles = {
78
+ position: "fixed",
79
+ zIndex: 9999,
80
+ display: "flex",
81
+ justifyContent: "center"
82
+ };
83
+
84
+ if (position.vertical === "top") {
85
+ styles.top = "24px";
86
+ } else {
87
+ styles.bottom = "24px";
88
+ }
42
89
 
43
- const SnackbarProvider = props => {
90
+ if (position.horizontal === "left") {
91
+ styles.left = "24px";
92
+ } else if (position.horizontal === "right") {
93
+ styles.right = "24px";
94
+ } else {
95
+ styles.left = "50%";
96
+ styles.transform = "translateX(-50%)";
97
+ }
98
+
99
+ return styles;
100
+ };
101
+
102
+ const getAnimationKeyframes = (direction, transitionType) => {
103
+ if (transitionType === "fade") {
104
+ return "\n @keyframes snackbarEnter {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n @keyframes snackbarExit {\n from { opacity: 1; }\n to { opacity: 0; }\n }\n ";
105
+ }
106
+
107
+ const translations = {
108
+ up: "translateY(100%)",
109
+ down: "translateY(-100%)",
110
+ left: "translateX(100%)",
111
+ right: "translateX(-100%)"
112
+ };
113
+ return "\n @keyframes snackbarEnter {\n from { \n transform: ".concat(translations[direction], ";\n opacity: 0;\n }\n to { \n transform: translateY(0) translateX(0);\n opacity: 1;\n }\n }\n @keyframes snackbarExit {\n from { \n transform: translateY(0) translateX(0);\n opacity: 1;\n }\n to { \n transform: ").concat(translations[direction], ";\n opacity: 0;\n }\n }\n ");
114
+ };
115
+
116
+ const SnackbarProvider = _ref => {
117
+ let {
118
+ children
119
+ } = _ref;
44
120
  const [open, setOpen] = useState(false);
121
+ const [exiting, setExiting] = useState(false);
45
122
  const [snackbarValues, setSnackbarValues] = useState({
46
123
  message: "Set a message",
47
124
  position: {
48
125
  vertical: "bottom",
49
126
  horizontal: "center"
50
127
  },
51
- color: "grey8",
52
128
  transitionType: "slide",
53
129
  slideDirection: "up",
54
130
  severity: "success",
55
- actionButton: /*#__PURE__*/React.createElement(React.Fragment, null),
56
- autoHideDuration: 5000,
57
- sx: null
131
+ actionButton: null,
132
+ autoHideDuration: 5000
58
133
  });
59
-
60
- const triggerSnackbar = _ref => {
134
+ const handleClose = useCallback(() => {
135
+ setExiting(true);
136
+ setTimeout(() => {
137
+ setOpen(false);
138
+ setExiting(false);
139
+ }, 225);
140
+ }, []);
141
+ const triggerSnackbar = useCallback(_ref2 => {
61
142
  let {
62
143
  message = "Set a message",
63
144
  position = {
@@ -67,93 +148,98 @@ const SnackbarProvider = props => {
67
148
  slideDirection = "up",
68
149
  transitionType = "slide",
69
150
  severity = "success",
70
- color,
71
- actionButton = /*#__PURE__*/React.createElement(React.Fragment, null),
72
- autoHideDuration = 5000,
73
- sx
74
- } = _ref;
75
-
76
- if (!color) {
77
- switch (severity) {
78
- case "success":
79
- color = "grey3"; // figure out how to fix seafoam text
80
-
81
- break;
151
+ actionButton = null,
152
+ autoHideDuration = 5000
153
+ } = _ref2;
82
154
 
83
- case "error":
84
- color = "ibisRed";
85
- break;
86
-
87
- default:
88
- color = "notBlack";
89
- break;
90
- }
91
- }
155
+ // Close any existing snackbar first
156
+ if (open) {
157
+ setExiting(true);
158
+ setTimeout(() => {
159
+ setExiting(false);
160
+ setOpen(true);
161
+ setSnackbarValues({
162
+ message,
163
+ position,
164
+ transitionType,
165
+ slideDirection,
166
+ severity,
167
+ actionButton,
168
+ autoHideDuration
169
+ });
170
+ }, 225);
171
+ } else {
172
+ setOpen(true);
173
+ setSnackbarValues({
174
+ message,
175
+ position,
176
+ transitionType,
177
+ slideDirection,
178
+ severity,
179
+ actionButton,
180
+ autoHideDuration
181
+ });
182
+ } // Auto-hide
92
183
 
93
- setOpen(true);
94
- setSnackbarValues({
95
- message,
96
- position,
97
- color,
98
- transitionType,
99
- slideDirection,
100
- severity,
101
- actionButton,
102
- autoHideDuration,
103
- sx
104
- });
105
- setTimeout(() => {
106
- setOpen(false);
107
- }, autoHideDuration);
108
- };
109
184
 
185
+ setTimeout(handleClose, autoHideDuration);
186
+ }, [open, handleClose]);
187
+ const positionStyles = getPositionStyles(snackbarValues.position);
188
+ const keyframes = getAnimationKeyframes(snackbarValues.slideDirection, snackbarValues.transitionType);
110
189
  return /*#__PURE__*/React.createElement(SnackbarContext.Provider, {
111
190
  value: {
112
- snackbarValues: snackbarValues,
113
- setSnackbarValues: setSnackbarValues,
191
+ snackbarValues,
192
+ setSnackbarValues,
114
193
  triggerSnackbar: props => {
115
- // TODO: figure out why setTimeout is needed to show every time
116
- setTimeout(() => {
117
- triggerSnackbar(props);
118
- });
194
+ setTimeout(() => triggerSnackbar(props), 0);
119
195
  }
120
196
  }
121
- }, /*#__PURE__*/React.createElement(Snackbar, {
122
- anchorOrigin: { ...snackbarValues.position
123
- },
124
- autoHideDuration: snackbarValues.autoHideDuration,
125
- open: open,
126
- sx: {
127
- minWidth: "30%",
128
- ...snackbarValues.sx
129
- },
130
- TransitionComponent: props => {
131
- if (snackbarValues.transitionType === "fade") {
132
- return /*#__PURE__*/React.createElement(Fade, _extends({}, props, {
133
- direction: snackbarValues.slideDirection,
134
- unmountOnExit: true
135
- }));
136
- } else {
137
- return /*#__PURE__*/React.createElement(Slide, _extends({}, props, {
138
- direction: snackbarValues.slideDirection,
139
- unmountOnExit: true
140
- }));
141
- }
142
- },
143
- onClose: () => setOpen(false),
144
- key: "snackbar-toast"
145
- }, /*#__PURE__*/React.createElement(Alert, {
146
- severity: snackbarValues.severity,
147
- variant: "filled",
148
- color: snackbarValues.color,
149
- action: snackbarValues.actionButton,
150
- sx: {
151
- width: "100%",
152
- "& svg": {
153
- color: "inherit"
154
- }
197
+ }, open && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("style", null, keyframes), /*#__PURE__*/React.createElement("div", {
198
+ style: positionStyles
199
+ }, /*#__PURE__*/React.createElement("div", {
200
+ role: "alert",
201
+ style: _objectSpread({
202
+ display: "flex",
203
+ alignItems: "center",
204
+ gap: "12px",
205
+ padding: "12px 16px",
206
+ borderRadius: "8px",
207
+ boxShadow: "0 4px 12px rgba(0,0,0,0.15)",
208
+ minWidth: "280px",
209
+ maxWidth: "560px",
210
+ animation: "".concat(exiting ? "snackbarExit" : "snackbarEnter", " 225ms cubic-bezier(0.4, 0, 0.2, 1)")
211
+ }, severityStyles[snackbarValues.severity])
212
+ }, /*#__PURE__*/React.createElement("span", {
213
+ style: {
214
+ display: "flex",
215
+ flexShrink: 0
155
216
  }
156
- }, snackbarValues.message)), props.children);
217
+ }, severityIcons[snackbarValues.severity]), /*#__PURE__*/React.createElement("span", {
218
+ style: {
219
+ flex: 1,
220
+ fontSize: "14px",
221
+ fontWeight: 500
222
+ }
223
+ }, snackbarValues.message), snackbarValues.actionButton, /*#__PURE__*/React.createElement("button", {
224
+ onClick: handleClose,
225
+ style: {
226
+ background: "transparent",
227
+ border: "none",
228
+ color: "inherit",
229
+ cursor: "pointer",
230
+ padding: "4px",
231
+ display: "flex",
232
+ opacity: 0.7
233
+ },
234
+ "aria-label": "Close"
235
+ }, /*#__PURE__*/React.createElement("svg", {
236
+ width: "18",
237
+ height: "18",
238
+ viewBox: "0 0 24 24",
239
+ fill: "currentColor"
240
+ }, /*#__PURE__*/React.createElement("path", {
241
+ d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
242
+ })))))), children);
157
243
  };
158
244
 
159
245
  export { SnackbarContext, SnackbarProvider };