@blerp/design 1.2.74 → 1.2.76

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 (83) hide show
  1. package/dist/cjs/Blerp/BlerpImageRow.js +167 -0
  2. package/dist/cjs/Blerp/BlerpSavePopup.js +157 -0
  3. package/dist/cjs/Blerp/BlerpTitleRow.js +116 -0
  4. package/dist/cjs/Blerp/BlerpTopRow.js +246 -0
  5. package/dist/cjs/Blerp.js +239 -0
  6. package/dist/cjs/BlerpAudioContextProvider.js +141 -0
  7. package/dist/cjs/BlerpListView.js +357 -0
  8. package/dist/cjs/BlerpListViewPremium.js +404 -0
  9. package/dist/cjs/BlerpListViewSkeleton.js +27 -0
  10. package/dist/cjs/BlerpSkeleton.js +23 -0
  11. package/dist/cjs/CollectionCard.js +402 -0
  12. package/dist/cjs/CollectionListViewPremium.js +368 -0
  13. package/dist/cjs/CollectionSkeleton.js +28 -0
  14. package/dist/cjs/Dropdown.js +283 -0
  15. package/dist/cjs/EllipsisLoader.js +51 -0
  16. package/dist/cjs/GroupCard.js +172 -0
  17. package/dist/cjs/Icons/Icons.js +606 -0
  18. package/dist/cjs/ImageUploadModal.js +278 -0
  19. package/dist/cjs/Lotties/JiggleLock.json.js +2762 -0
  20. package/dist/cjs/Lotties/LottieAnimation.js +32 -0
  21. package/dist/cjs/NewBlerp.js +740 -0
  22. package/dist/cjs/NewBlerpTest.js +808 -0
  23. package/dist/cjs/NewCollectionModal.js +403 -0
  24. package/dist/cjs/PremiumCollectionCard.js +511 -0
  25. package/dist/cjs/PurchaseModals/CheckoutModal.js +39 -0
  26. package/dist/cjs/PurchaseModals/PremiumBlerpCheckoutModal.js +39 -0
  27. package/dist/cjs/PurchaseModals/PremiumCollectionCheckoutModal.js +39 -0
  28. package/dist/cjs/PurchaseModals/PremiumSubscriptionCheckoutModal.js +39 -0
  29. package/dist/cjs/ReactionButtons.js +65 -0
  30. package/dist/cjs/ScreenSizeHook.js +34 -0
  31. package/dist/cjs/SnackbarContextProvider.js +166 -0
  32. package/dist/cjs/Theme.js +255 -0
  33. package/dist/cjs/Toggle.js +59 -0
  34. package/dist/cjs/UserCard.js +141 -0
  35. package/dist/cjs/UserPage/LibraryControls.js +315 -0
  36. package/dist/cjs/UserPage/UserLibraryHeader.js +93 -0
  37. package/dist/cjs/UserPage/UserProfileHeader.js +283 -0
  38. package/dist/cjs/UsernameWithPopout.js +93 -0
  39. package/dist/cjs/colors.js +368 -0
  40. package/dist/cjs/icons.js +161 -0
  41. package/dist/cjs/index.js +449 -0
  42. package/dist/esm/Blerp/BlerpImageRow.js +157 -0
  43. package/dist/esm/Blerp/BlerpSavePopup.js +147 -0
  44. package/dist/esm/Blerp/BlerpTitleRow.js +108 -0
  45. package/dist/esm/Blerp/BlerpTopRow.js +236 -0
  46. package/dist/esm/Blerp.js +230 -0
  47. package/dist/esm/BlerpAudioContextProvider.js +132 -0
  48. package/dist/esm/BlerpListView.js +344 -0
  49. package/dist/esm/BlerpListViewPremium.js +391 -0
  50. package/dist/esm/BlerpListViewSkeleton.js +17 -0
  51. package/dist/esm/BlerpSkeleton.js +13 -0
  52. package/dist/esm/CollectionCard.js +392 -0
  53. package/dist/esm/CollectionListViewPremium.js +354 -0
  54. package/dist/esm/CollectionSkeleton.js +18 -0
  55. package/dist/esm/Dropdown.js +273 -0
  56. package/dist/esm/EllipsisLoader.js +41 -0
  57. package/dist/esm/GroupCard.js +162 -0
  58. package/dist/esm/Icons/Icons.js +571 -0
  59. package/dist/esm/ImageUploadModal.js +265 -0
  60. package/dist/esm/Lotties/JiggleLock.json.js +2747 -0
  61. package/dist/esm/Lotties/LottieAnimation.js +25 -0
  62. package/dist/esm/NewBlerp.js +719 -0
  63. package/dist/esm/NewBlerpTest.js +787 -0
  64. package/dist/esm/NewCollectionModal.js +391 -0
  65. package/dist/esm/PremiumCollectionCard.js +498 -0
  66. package/dist/esm/PurchaseModals/CheckoutModal.js +33 -0
  67. package/dist/esm/PurchaseModals/PremiumBlerpCheckoutModal.js +33 -0
  68. package/dist/esm/PurchaseModals/PremiumCollectionCheckoutModal.js +33 -0
  69. package/dist/esm/PurchaseModals/PremiumSubscriptionCheckoutModal.js +33 -0
  70. package/dist/esm/ReactionButtons.js +57 -0
  71. package/dist/esm/ScreenSizeHook.js +30 -0
  72. package/dist/esm/SnackbarContextProvider.js +154 -0
  73. package/dist/esm/Theme.js +246 -0
  74. package/dist/esm/Toggle.js +49 -0
  75. package/dist/esm/UserCard.js +133 -0
  76. package/dist/esm/UserPage/LibraryControls.js +301 -0
  77. package/dist/esm/UserPage/UserLibraryHeader.js +87 -0
  78. package/dist/esm/UserPage/UserProfileHeader.js +268 -0
  79. package/dist/esm/UsernameWithPopout.js +85 -0
  80. package/dist/esm/colors.js +360 -0
  81. package/dist/esm/icons.js +159 -0
  82. package/dist/esm/index.js +336 -0
  83. package/package.json +2 -1
@@ -0,0 +1,278 @@
1
+ 'use strict';
2
+
3
+ var _extends = require('@babel/runtime/helpers/extends');
4
+ var _taggedTemplateLiteral = require('@babel/runtime/helpers/taggedTemplateLiteral');
5
+ var index = require('./index.js');
6
+ var React = require('react');
7
+ var AvatarEditor = require('react-avatar-editor');
8
+ var Dropzone = require('react-dropzone');
9
+ var styled = require('styled-components');
10
+ var InsertPhotoRoundedIcon = require('@mui/icons-material/InsertPhotoRounded');
11
+ var CloseRoundedIcon = require('@mui/icons-material/CloseRounded');
12
+ var ScreenSizeHook = require('./ScreenSizeHook.js');
13
+
14
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
+
16
+ var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
17
+ var _taggedTemplateLiteral__default = /*#__PURE__*/_interopDefaultLegacy(_taggedTemplateLiteral);
18
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
19
+ var AvatarEditor__default = /*#__PURE__*/_interopDefaultLegacy(AvatarEditor);
20
+ var Dropzone__default = /*#__PURE__*/_interopDefaultLegacy(Dropzone);
21
+ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
22
+ var InsertPhotoRoundedIcon__default = /*#__PURE__*/_interopDefaultLegacy(InsertPhotoRoundedIcon);
23
+ var CloseRoundedIcon__default = /*#__PURE__*/_interopDefaultLegacy(CloseRoundedIcon);
24
+
25
+ var _templateObject, _templateObject2;
26
+ const Slider = styled__default['default'].input(_templateObject || (_templateObject = _taggedTemplateLiteral__default['default'](["\n -webkit-appearance: none;\n align-self: center;\n width: 80%;\n height: 5px;\n border-radius: 5px;\n background: #d3d3d3;\n outline: none;\n opacity: 0.7;\n -webkit-transition: 0.2s;\n transition: opacity 0.2s;\n\n &:focus {\n border: 0px !important;\n }\n\n &:hover {\n opacity: 1;\n }\n\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 25px;\n height: 25px;\n border-radius: 50%;\n background: ", ";\n border: 2px solid ", ";\n cursor: pointer;\n }\n\n &::-moz-range-thumb {\n width: 25px;\n height: 25px;\n border-radius: 50%;\n background: ", ";\n border: 2px solid ", ";\n cursor: pointer;\n }\n"])), props => props.theme.colors.ibisRed, props => props.theme.colors.waxwing, props => props.theme.colors.ibisRed, props => props.theme.colors.waxwing);
27
+ const ZoomIcon = styled__default['default'].div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral__default['default'](["\n background-image: url(\"https://cdn.blerp.com/blerp_products/Web/Account/zoom%20icon.svg?folder=true&organizationId=true\");\n background-repeat: no-repeat;\n background-position: left;\n background-size: cover;\n width: 20px;\n height: 20px;\n"])));
28
+
29
+ const ImageUploadModal = _ref => {
30
+ let {
31
+ prevImage,
32
+ updateImage,
33
+ onClose,
34
+ title,
35
+ isCircularImage,
36
+ isSquareImage,
37
+ sizeInfo
38
+ } = _ref;
39
+ const [image, setImage] = React.useState(prevImage);
40
+ const [zoom, setZoom] = React.useState(50);
41
+ const [loading, setLoading] = React.useState(false);
42
+ const [dropzoneHovered, setDropzoneHovered] = React.useState(false);
43
+ const size = ScreenSizeHook.useWindowSize();
44
+
45
+ const urlToObject = async img => {
46
+ const response = await fetch(img); // here image is url/location of image
47
+
48
+ const blob = await response.blob();
49
+ const file = new File([blob], img, {
50
+ type: blob.type,
51
+ size: blob.type
52
+ });
53
+ setImage(file);
54
+ };
55
+
56
+ React.useEffect(() => {
57
+ if (prevImage) {
58
+ urlToObject(prevImage);
59
+ }
60
+ }, [prevImage]);
61
+ const imageEditorRef = /*#__PURE__*/React.createRef();
62
+
63
+ const handleImageDrop = acceptedFiles => {
64
+ if (acceptedFiles[0].type === "image/gif") {
65
+ console.log("hit dat GIF in IF");
66
+ }
67
+
68
+ setImage(acceptedFiles[0]);
69
+ setDropzoneHovered(false);
70
+ };
71
+
72
+ const handleGifUpload = async () => {
73
+ if (image.name !== prevImage) {
74
+ console.log("does not equal");
75
+ updateImage(image);
76
+ }
77
+
78
+ onClose();
79
+ }; // This is called when there is a non-gif photo ready to be uploaded
80
+
81
+
82
+ const handleUploadClick = async () => {
83
+ // check image exists
84
+ if (!image) {
85
+ alert("You must upload a valid image");
86
+ return;
87
+ } // check image size
88
+
89
+
90
+ if (image.size > 8842038) {
91
+ alert("You must update with a valid image less then 7mb");
92
+ return;
93
+ } // create a dom element for the photo and creates a data URL (URI)
94
+
95
+
96
+ setLoading(true);
97
+ const canvas = imageEditorRef.current.getImage().toDataURL();
98
+ let file;
99
+ await fetch(canvas) // canvas res is the URL data of the photo. Now the .blob() method reads that data URL (URI), and creates a new Blob (file-like object of immutable data)
100
+ .then(res => res.blob()).then(blob => {
101
+ // assign the blob data to the DOM STRING of the DOM element
102
+ window.URL.createObjectURL(blob); // create an image file using the data from the blob, assign the file a name, assign the file type
103
+ // Adding ".JPG" is totally janky, but since the database currently reads the file type from the name of the file (not the image.type), and since we are changing the image.name to match the url of the image, an error will be thrown if we do not declare a file type at the end.
104
+
105
+ file = new File([blob], image.name, {
106
+ type: image.type,
107
+ size: image.size
108
+ });
109
+ });
110
+ await updateImage(file);
111
+ setLoading(false);
112
+ onClose();
113
+ };
114
+
115
+ return /*#__PURE__*/React__default['default'].createElement(index.Stack, {
116
+ sx: {
117
+ minHeight: "580px"
118
+ },
119
+ alignItems: "center",
120
+ justifyContent: "space-between"
121
+ }, /*#__PURE__*/React__default['default'].createElement(CloseRoundedIcon__default['default'], {
122
+ sx: {
123
+ position: "absolute",
124
+ cursor: "pointer",
125
+ top: "20px",
126
+ right: "20px"
127
+ },
128
+ onClick: () => onClose()
129
+ }), /*#__PURE__*/React__default['default'].createElement(index.Stack, {
130
+ alignItems: "center",
131
+ sx: {
132
+ position: "relative"
133
+ }
134
+ }, /*#__PURE__*/React__default['default'].createElement(index.Text, {
135
+ sx: {
136
+ fontSize: "32px",
137
+ marginbottom: "16px"
138
+ }
139
+ }, title), /*#__PURE__*/React__default['default'].createElement(index.Text, {
140
+ color: "grey4",
141
+ sx: {
142
+ fontWeight: "lighter",
143
+ marginBottom: "2px"
144
+ }
145
+ }, "Adjust your image below."), /*#__PURE__*/React__default['default'].createElement(index.Text, {
146
+ color: "grey4",
147
+ sx: {
148
+ fontWeight: "lighter",
149
+ marginBottom: "2px"
150
+ }
151
+ }, sizeInfo)), loading ? /*#__PURE__*/React__default['default'].createElement("div", {
152
+ style: {
153
+ width: "100%",
154
+ height: "300px"
155
+ }
156
+ }, /*#__PURE__*/React__default['default'].createElement(index.Text, null, "Loading...")) : /*#__PURE__*/React__default['default'].createElement(index.Stack, {
157
+ sx: {
158
+ minWidth: "300px",
159
+ margin: "0px 0",
160
+ position: "relative",
161
+ backgroundColor: "waxwing.main",
162
+ maxHeight: "250px",
163
+ overflow: "hidden",
164
+ justifyContent: "center",
165
+ alignItems: "center"
166
+ }
167
+ }, image ? image.type !== "image/gif" ? isCircularImage ? /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement(AvatarEditor__default['default'], {
168
+ ref: imageEditorRef,
169
+ width: 250,
170
+ height: 250,
171
+ borderRadius: 125,
172
+ image: image,
173
+ scale: zoom / 50,
174
+ crossOrigin: "anonymous"
175
+ })) : isSquareImage ? /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement(AvatarEditor__default['default'], {
176
+ ref: imageEditorRef,
177
+ width: 250,
178
+ height: 250,
179
+ borderRadius: 0,
180
+ image: image,
181
+ scale: zoom / 50,
182
+ crossOrigin: "anonymous"
183
+ })) : /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement(AvatarEditor__default['default'], {
184
+ ref: imageEditorRef,
185
+ width: 650,
186
+ height: 225,
187
+ image: image,
188
+ scale: zoom / 50,
189
+ crossorigin: "anonymous"
190
+ })) : /*#__PURE__*/React__default['default'].createElement("img", {
191
+ src: URL.createObjectURL(image) || image.name,
192
+ width: "250px",
193
+ height: "auto",
194
+ style: {
195
+ alignSelf: "center"
196
+ }
197
+ }) : /*#__PURE__*/React__default['default'].createElement(Dropzone__default['default'], {
198
+ onDragEnter: () => setDropzoneHovered(true),
199
+ onDragLeave: () => setDropzoneHovered(false),
200
+ onDrop: acceptedFiles => handleImageDrop(acceptedFiles)
201
+ }, _ref2 => {
202
+ let {
203
+ getRootProps,
204
+ getInputProps
205
+ } = _ref2;
206
+ return /*#__PURE__*/React__default['default'].createElement(index.Stack, {
207
+ sx: {
208
+ width: "100%",
209
+ height: size.width > 600 ? "300px" : "200px",
210
+ cursor: "pointer",
211
+ box: "borderBox",
212
+ justifyContent: "center"
213
+ }
214
+ }, /*#__PURE__*/React__default['default'].createElement("div", _extends__default['default']({
215
+ style: {
216
+ height: "100%",
217
+ display: "flex"
218
+ }
219
+ }, getRootProps()), /*#__PURE__*/React__default['default'].createElement("input", getInputProps()), dropzoneHovered ? /*#__PURE__*/React__default['default'].createElement(index.Stack, {
220
+ color: "grey3",
221
+ style: {
222
+ justifyContent: "center",
223
+ alignItems: "center",
224
+ width: "100%"
225
+ }
226
+ }, /*#__PURE__*/React__default['default'].createElement(InsertPhotoRoundedIcon__default['default'], {
227
+ style: {
228
+ color: "white",
229
+ height: "90%",
230
+ width: "90%"
231
+ }
232
+ })) : /*#__PURE__*/React__default['default'].createElement(index.Text, {
233
+ sx: {
234
+ flexWrap: "wrap",
235
+ width: "80%",
236
+ alignSelf: "center",
237
+ textAlign: "center",
238
+ verticalAlign: "center",
239
+ margin: "auto"
240
+ }
241
+ }, "Click or drop image here to upload.")));
242
+ })), /*#__PURE__*/React__default['default'].createElement(index.Stack, {
243
+ alignItems: "center"
244
+ }, image && image.type !== "image/gif" ? /*#__PURE__*/React__default['default'].createElement(index.Stack, {
245
+ direction: "row",
246
+ style: {
247
+ justifyContent: "space-around"
248
+ }
249
+ }, /*#__PURE__*/React__default['default'].createElement(ZoomIcon, null), /*#__PURE__*/React__default['default'].createElement(Slider, {
250
+ type: "range",
251
+ min: "35",
252
+ max: "100",
253
+ value: zoom,
254
+ onChange: e => setZoom(e.target.value)
255
+ })) : /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null), /*#__PURE__*/React__default['default'].createElement(index.Button, {
256
+ variant: "text",
257
+ color: "notBlack",
258
+ sx: {
259
+ textDecoration: "none",
260
+ textTransform: "none",
261
+ cursor: "pointer",
262
+ textDecoration: "underline",
263
+ margin: "20px 0"
264
+ },
265
+ onClick: () => setImage(image ? null : () => {
266
+ urlToObject(prevImage);
267
+ return image;
268
+ })
269
+ }, image ? "Change Image" : "Cancel"), /*#__PURE__*/React__default['default'].createElement(index.Button, {
270
+ variant: "contained",
271
+ disableElevation: true,
272
+ onClick: () => {
273
+ image.type === "image/gif" ? handleGifUpload() : handleUploadClick();
274
+ }
275
+ }, "Save Image")));
276
+ };
277
+
278
+ module.exports = ImageUploadModal;