@blerp/design 1.3.17 → 1.4.1

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 +280 -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 +493 -0
  52. package/dist/cjs/neo-components/Layout.js +1213 -0
  53. package/dist/cjs/neo-components/Misc.js +858 -0
  54. package/dist/cjs/neo-components/Navigation.js +1578 -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 +164 -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 +269 -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 +478 -0
  116. package/dist/esm/neo-components/Layout.js +1179 -0
  117. package/dist/esm/neo-components/Misc.js +840 -0
  118. package/dist/esm/neo-components/Navigation.js +1556 -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 +153 -0
  127. package/dist/esm/neo-utils/sxToStyle.js +502 -0
  128. package/package.json +19 -15
@@ -1,484 +1,225 @@
1
- import _taggedTemplateLiteral from '@babel/runtime/helpers/taggedTemplateLiteral';
2
- import BookmarkRounded from '@mui/icons-material/BookmarkRounded';
3
- import BookmarkAddOutlinedIcon from '@mui/icons-material/BookmarkAddOutlined';
4
- import React, { useState } from 'react';
5
- import { ColorExtractor } from 'react-color-extractor';
6
- import { usePalette } from 'react-palette';
7
- import { Box, Stack, Text, Button } from './index.js';
8
- import styled from 'styled-components';
9
- import LockRoundedIcon from '@mui/icons-material/LockRounded';
10
- import { DiamondIcon, PresentGiftIcon } from './Icons/Icons.js';
1
+ import React, { useState, useRef, useEffect } from 'react';
2
+ import BlerpImageRow from './Blerp/BlerpImageRow.js';
3
+ import BlerpSavePopup from './Blerp/BlerpSavePopup.js';
4
+ import BlerpTitleRow from './Blerp/BlerpTitleRow.js';
5
+ import BlerpTopRow from './Blerp/BlerpTopRow.js';
6
+ import { Box, Stack } from './index.js';
7
+ import { useWindowSize } from './ScreenSizeHook.js';
8
+ import { extractDominantColor } from './helpers.js';
9
+ import { useBlerpTheme } from './Theme.js';
11
10
 
12
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
13
- //primary and secondary action buttons
14
-
15
- const YellowHoverBorder = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: absolute;\n height: 105%;\n width: 105%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n border: 4px solid rgb(255, 225, 76);\n border-radius: 20px;\n transition: opacity 0.3s ease-in-out;\n /* Opacity should be changed to \"1\" onHover of this component's parent */\n opacity: 0;\n"])));
16
- const LineClamp = styled.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin: 5px 0;\n max-width: 92%;\n"])));
17
- const TopPill = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: center;\n align-items: center;\n height: 32px;\n width: ", ";\n position: absolute;\n top: 8px;\n left: 8px;\n border-radius: 20px;\n overflow: hidden;\n transition: width 0.3s ease-in-out;\n"])), props => props.isLocked ? props.collectionHovered ? "90%" : "70%" : "45%");
18
- const TopPillBackground = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n height: 32px;\n width: 100%;\n position: absolute;\n background-color: ", ";\n opacity: 0.5;\n"])), props => props.theme.colors.notBlackOverride);
19
- const LockedScrim = styled.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n z-index: -1;\n padding-bottom: 8px;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: center;\n z-index: 1;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n overflow: \"hidden\";\n transition: backdrop-filter 0.4s, opacity 0.5s ease-in-out;\n opacity: ", ";\n backdrop-filter: ", ";\n"])), props => !props.collectionHovered ? "0" : "1", props => props.collectionHovered ? "blur(3px)" : "none");
20
- const LockedScrimBackground = styled.div(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n position: absolute;\n height: 100%;\n width: 100%;\n top: 0;\n /* transition: opacity 0.3s ease-in-out; */\n\n background-color: ", ";\n\n opacity: ", ";\n"])), props => props.theme.colors.notBlackOverride, props => props.collectionHovered ? "0.5" : "0");
21
- const PremiumCollectionCard = _ref => {
22
- var _collection$image, _collection$image$ori, _collection$image2, _collection$image2$or, _collection$image3, _collection$image3$or, _collection$ownerObje, _collection$ownerObje2, _collection$ownerObje3, _collection$image4, _collection$image4$or;
11
+ const Blerp = _ref => {
12
+ var _bite$image2, _bite$image2$original;
23
13
 
24
14
  let {
25
- collection,
15
+ bite,
16
+ title,
26
17
  variantSize,
27
- handleClickBackground,
28
- handleClickSave,
29
- handleClickView,
30
- handleClickUnlock,
31
- handleClickPrimaryAction,
32
- handleClickSecondaryAction,
18
+ isSelected,
19
+ playingState,
33
20
  primaryActionButton,
34
21
  secondaryActionButton,
35
- bottomLeftIcon,
36
- handleClickBottomLeftIcon,
37
- premiumDiamondPill,
38
- fluid,
39
- fontSize,
40
- isLink,
22
+ unsaveButton,
23
+ organizeButton,
24
+ getUserReactions,
25
+ handleClickBackground,
26
+ handleClickPlay,
27
+ handleClickThreeDot,
28
+ handleClickSave,
29
+ handleClickReaction,
30
+ handleClickUnsave,
31
+ handleClickTitle,
32
+ handleClickOrganize,
33
+ isLinkTitle,
34
+ isPremium,
41
35
  isLocked,
42
- overrideViewText,
43
- hideUnlockPlatformText,
44
- hidePremiumLockIcon,
45
- unlockPlatformText,
46
- hideCollectionBackground
36
+ isOwner,
37
+ props,
38
+ // passed in function that sets state of the purchase modal
39
+ handleClickLock,
40
+ backgroundColor
47
41
  } = _ref;
48
- const [cardColors, setCardColors] = useState(null);
49
- const [collectionHovered, setCollectionHovered] = useState(false);
50
- const {
51
- data,
52
- loading,
53
- error
54
- } = usePalette(collection === null || collection === void 0 ? void 0 : (_collection$image = collection.image) === null || _collection$image === void 0 ? void 0 : (_collection$image$ori = _collection$image.original) === null || _collection$image$ori === void 0 ? void 0 : _collection$image$ori.url);
42
+ const theme = useBlerpTheme();
43
+ const [openSave, setOpenSave] = useState(false);
44
+ const size = useWindowSize();
45
+ const [profileColors, setProfileColors] = useState(null);
46
+ const [isBlerpHovered, setIsBlerpHovered] = useState(false);
47
+ const anchorRef = useRef(); // Extract color when image URL changes
48
+
49
+ useEffect(() => {
50
+ var _bite$image, _bite$image$original;
51
+
52
+ if (bite !== null && bite !== void 0 && (_bite$image = bite.image) !== null && _bite$image !== void 0 && (_bite$image$original = _bite$image.original) !== null && _bite$image$original !== void 0 && _bite$image$original.url) {
53
+ extractDominantColor(bite.image.original.url, setProfileColors);
54
+ }
55
+ }, [bite === null || bite === void 0 ? void 0 : (_bite$image2 = bite.image) === null || _bite$image2 === void 0 ? void 0 : (_bite$image2$original = _bite$image2.original) === null || _bite$image2$original === void 0 ? void 0 : _bite$image2$original.url]); // console.log(bite?.image?.original?.url, profileColors);
56
+
57
+ let sizeParams = {
58
+ width: 220,
59
+ height: 234,
60
+ fontSize: "20px",
61
+ imageSize: "135px",
62
+ reactionSpacing: 1,
63
+ reactionPadding: "5px",
64
+ reactionSize: "24px",
65
+ buttonSize: "large"
66
+ };
67
+ const tinySize = {
68
+ width: 124,
69
+ height: 124,
70
+ fontSize: "10px",
71
+ imageSize: "60px",
72
+ reactionSpacing: 0.5,
73
+ reactionPadding: "1px",
74
+ reactionSize: "11px",
75
+ buttonSize: "small"
76
+ };
55
77
  const smallSize = {
56
- size: "small",
57
- width: "70px",
58
- height: "70px"
78
+ width: 150,
79
+ height: 160,
80
+ fontSize: "12px",
81
+ imageSize: "90px",
82
+ reactionSpacing: 1,
83
+ reactionPadding: "3px",
84
+ reactionSize: "16px",
85
+ buttonSize: "small"
86
+ };
87
+ const mediumSize = {
88
+ width: 180,
89
+ height: 190,
90
+ fontSize: "18px",
91
+ imageSize: "100px",
92
+ reactionSpacing: 1,
93
+ reactionPadding: "3px",
94
+ reactionSize: "20px",
95
+ buttonSize: "medium"
59
96
  };
60
97
  const largeSize = {
61
- size: "large",
62
- width: "200px",
63
- height: "200px"
98
+ width: 220,
99
+ height: 234,
100
+ fontSize: "20px",
101
+ imageSize: "135px",
102
+ reactionSpacing: 1,
103
+ reactionPadding: "5px",
104
+ reactionSize: "24px",
105
+ buttonSize: "large"
64
106
  };
65
- let sizeParams = largeSize;
66
107
 
67
- if (variantSize === "small") {
68
- sizeParams = smallSize;
108
+ if (!variantSize) {
109
+ if (size.width <= 340) {
110
+ sizeParams = tinySize;
111
+ } else if (size.width <= 600) {
112
+ sizeParams = smallSize;
113
+ } else if (size.width <= 900) {
114
+ sizeParams = mediumSize;
115
+ } else if (size.width > 900) {
116
+ sizeParams = largeSize;
117
+ }
118
+ } else {
119
+ if (variantSize === "small") {
120
+ sizeParams = smallSize;
121
+ } else if (variantSize === "medium") {
122
+ sizeParams = mediumSize;
123
+ } else if (variantSize === "large") {
124
+ sizeParams = largeSize;
125
+ } else if (variantSize === "tiny") {
126
+ sizeParams = tinySize;
127
+ }
69
128
  }
70
129
 
71
- return /*#__PURE__*/React.createElement(Box, {
72
- onMouseOver: () => setCollectionHovered(true),
73
- onMouseLeave: () => setCollectionHovered(false),
74
- sx: {
75
- position: "relative",
76
- display: "flex",
77
- alignItems: "center",
78
- width: fluid ? "80%" : sizeParams.width,
79
- height: fluid ? "80%" : sizeParams.height
80
- }
81
- }, /*#__PURE__*/React.createElement(ColorExtractor, {
82
- style: {
83
- zIndex: "3"
84
- },
85
- src: collection === null || collection === void 0 ? void 0 : (_collection$image2 = collection.image) === null || _collection$image2 === void 0 ? void 0 : (_collection$image2$or = _collection$image2.original) === null || _collection$image2$or === void 0 ? void 0 : _collection$image2$or.url,
86
- getColors: colors => setCardColors(colors)
87
- }), /*#__PURE__*/React.createElement(Box, {
130
+ if (!bite) {
131
+ return /*#__PURE__*/React.createElement(React.Fragment, null);
132
+ }
133
+
134
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Box, {
135
+ id: "blerp-component-".concat(bite === null || bite === void 0 ? void 0 : bite._id),
88
136
  onClick: e => {
89
137
  e.stopPropagation();
90
- if (handleClickBackground) handleClickBackground();
138
+ handleClickBackground();
91
139
  },
140
+ ref: anchorRef,
141
+ onMouseEnter: e => setIsBlerpHovered(true),
142
+ onMouseLeave: e => setIsBlerpHovered(false),
92
143
  sx: {
93
- borderRadius: "8px",
94
- position: "relative",
95
- width: fluid ? "90%" : sizeParams.width,
96
- height: fluid ? "90%" : sizeParams.height,
97
- cursor: "pointer",
98
- "& #collection-background-1,#collection-background-2": {
99
- transform: isLocked ? "rotate(0deg)" : "",
100
- right: isLocked ? "0" : ""
101
- },
102
- ":hover #collection-background-1": {
103
- transform: isLocked ? "" : "rotate(7deg)",
104
- height: isLocked ? "" : "91%",
105
- right: isLocked ? "" : "-11px",
106
- top: isLocked ? "" : "12px"
107
- },
108
- ":hover #collection-background-2": {
109
- transform: isLocked ? "" : "rotate(14deg)",
110
- height: isLocked ? "" : "84%",
111
- right: isLocked ? "" : "-20px",
112
- top: isLocked ? "" : "24px"
113
- },
114
- ":hover #yellow-border": {
115
- opacity: "1"
116
- }
117
- }
118
- }, variantSize !== "small" ? /*#__PURE__*/React.createElement(React.Fragment, null, isLocked && /*#__PURE__*/React.createElement(YellowHoverBorder, {
119
- id: "yellow-border"
120
- }), /*#__PURE__*/React.createElement(Box, {
121
- sx: {
122
- backgroundColor: "transparent",
123
- borderRadius: "12px",
124
- width: "100%",
125
- height: "100%",
126
- position: "absolute",
127
- top: "0",
128
- zIndex: "3"
129
- }
130
- }), !hideCollectionBackground && /*#__PURE__*/React.createElement(Box, {
131
- id: "collection-background-1",
132
- sx: {
133
- backgroundImage: "linear-gradient(".concat(data.muted || "#444444", ", #444444)"),
134
- borderRadius: "12px",
135
- width: "50%",
136
- height: "94%",
137
- position: "absolute",
138
- transform: "rotate(5deg) scale(1)",
139
- right: "-8px",
140
- top: "8px",
141
- zIndex: "2",
142
- transition: "0.2s ease-out"
143
- }
144
- }), !hideCollectionBackground && /*#__PURE__*/React.createElement(Box, {
145
- id: "collection-background-2",
146
- sx: {
147
- backgroundImage: "linear-gradient(".concat(data.darkMuted || "#252525", ", #252525)"),
148
- borderRadius: "12px",
149
- width: "50%",
150
- height: "89%",
151
- position: "absolute",
152
- transform: "rotate(10deg) scale(1)",
153
- right: "-16px",
154
- top: "16px",
155
- zIndex: "1",
156
- transition: "0.2s ease-out"
157
- }
158
- }), /*#__PURE__*/React.createElement(Box, {
159
- sx: {
160
- backgroundImage: "linear-gradient(".concat(data.vibrant || "#000000", "9a, #0000007a), url(").concat(collection === null || collection === void 0 ? void 0 : (_collection$image3 = collection.image) === null || _collection$image3 === void 0 ? void 0 : (_collection$image3$or = _collection$image3.original) === null || _collection$image3$or === void 0 ? void 0 : _collection$image3$or.url, ")"),
161
- backgroundSize: "cover",
162
- backgroundPosition: "center",
163
- backgroundRepeat: "no-repeat",
164
- width: "100%",
165
- height: "100%",
166
- borderRadius: "12px",
167
- display: "flex",
168
- justifyContent: "center",
169
- alignItems: "center",
170
- position: "absolute",
171
- zIndex: "3",
172
- overflow: "hidden"
173
- }
174
- }, !isLocked ? /*#__PURE__*/React.createElement(Box, {
175
- sx: {
176
- backgroundImage: "linear-gradient(".concat(data.muted || "#000000", "7a, #0000007a)"),
177
- zIndex: "3",
178
- paddingBottom: "8px",
144
+ width: isPremium ? sizeParams.width + 4 : sizeParams.width,
145
+ height: isPremium ? sizeParams.height + 4 : sizeParams.height,
179
146
  display: "flex",
180
147
  flexDirection: "column",
181
- justifyContent: "flex-end",
182
148
  alignItems: "center",
183
- position: "absolute",
184
- top: "0",
185
- bottom: "0",
186
- left: "0",
187
- right: "0",
149
+ justifyContent: "flex-start",
150
+ borderRadius: "8px",
151
+ border: isPremium ? "none" : "2px solid",
152
+ borderColor: "grey2.main",
188
153
  overflow: "hidden",
189
- transition: "opacity .3s ease-in-out",
190
- opacity: collectionHovered ? "1" : "0"
191
- }
192
- }) : /*#__PURE__*/React.createElement(React.Fragment, null), premiumDiamondPill ? premiumDiamondPill : /*#__PURE__*/React.createElement(TopPill, {
193
- style: {
194
- zIndex: "3"
195
- },
196
- collectionHovered: collectionHovered,
197
- isLocked: isLocked
198
- }, /*#__PURE__*/React.createElement(TopPillBackground, null), primaryActionButton ? primaryActionButton : collection !== null && collection !== void 0 && collection.saved ? /*#__PURE__*/React.createElement(Stack, {
199
- sx: {
200
- position: "absolute",
201
- top: "2px",
202
- left: "2px",
203
- width: "28px",
204
- height: "28px",
205
- color: "white.override",
206
- borderRadius: "50%",
207
- alignItems: "center",
208
- justifyContent: "center",
209
- opacity: isLocked ? "1" : "0",
210
- "&:hover": {
211
- backgroundColor: "white.override"
212
- },
213
- ":hover svg": {
214
- color: "starling.main"
215
- }
216
- }
217
- }, /*#__PURE__*/React.createElement(BookmarkRounded, {
218
- sx: {
219
- height: ".6em",
220
- color: "white.override",
221
- opacity: isLocked ? "1" : "0"
222
- },
223
- onClick: e => {
224
- e.stopPropagation();
225
- handleClickSave(false);
226
- }
227
- })) : /*#__PURE__*/React.createElement(Stack, {
228
- sx: {
229
- position: "absolute",
230
- top: "2px",
231
- left: "2px",
232
- width: "28px",
233
- height: "28px",
234
- color: "white.override",
235
- borderRadius: "50%",
236
- alignItems: "center",
237
- justifyContent: "center",
238
- opacity: isLocked ? "1" : "0",
239
- "&:hover": {
240
- backgroundColor: "white.override"
241
- },
242
- ":hover svg": {
243
- color: "starling.main"
244
- }
245
- }
246
- }, /*#__PURE__*/React.createElement(BookmarkAddOutlinedIcon, {
247
- onClick: e => {
248
- e.stopPropagation();
249
- handleClickSave(true);
250
- },
251
- sx: {
252
- height: ".6em",
253
- color: "white.override",
254
- opacity: isLocked ? "1" : "0"
255
- }
256
- })), /*#__PURE__*/React.createElement(Stack, {
257
- sx: {
258
- zIndex: "1",
259
- position: "relative",
260
- right: "4px"
261
- },
262
- direction: "row",
263
- alignItems: "center"
264
- }, /*#__PURE__*/React.createElement(DiamondIcon, {
265
- sx: {
266
- color: "white.override",
267
- height: ".6em",
154
+ // if the blerp is premium, always give just a simple solid white background for the Stack below to layer on top of.
155
+ // If the blerp is not premium, the background changes from white to grey2 if the blerp is selected and/or hovered.
156
+ backgroundColor: backgroundColor ? backgroundColor : isPremium ? "white.main" : isSelected ? "grey2.main" : "white.main",
157
+ transition: "0.3s",
268
158
  position: "relative",
269
- left: "4px"
270
- }
271
- }), /*#__PURE__*/React.createElement(Text, {
272
- sx: {
273
- color: "white.override",
274
- fontWeight: "lighter",
275
- fontSize: ".8em"
276
- }
277
- }, "Premium")), !hidePremiumLockIcon && /*#__PURE__*/React.createElement(Stack, null, /*#__PURE__*/React.createElement(LockRoundedIcon, {
278
- sx: {
279
- position: "absolute",
280
- top: "8px",
281
- right: "5px",
282
- height: ".6em",
283
- color: "white.override",
284
- paddingRight: "8px",
285
- opacity: isLocked ? collectionHovered ? "0" : "1" : "0",
286
- transition: "opacity .2s ease-in-out"
287
- },
288
- onClick: e => {
289
- e.stopPropagation();
290
- handleClickSave(false);
291
- }
292
- }))), secondaryActionButton ? secondaryActionButton : /*#__PURE__*/React.createElement(Stack, {
293
- sx: {
294
- zIndex: "4",
295
- justifyContent: "center",
296
- alignItems: "center",
297
- position: "absolute",
298
- width: "28px",
299
- height: "28px",
300
- borderRadius: "50%",
301
- top: "8px",
302
- right: "8px",
303
- padding: "2px",
304
- transition: "all .1s ease-in-out",
159
+ cursor: "pointer",
305
160
  "&:hover": {
306
- width: "30px",
307
- height: "30px",
308
- top: "7px",
309
- right: "7px"
161
+ bgcolor: isPremium ? "white.main" : "grey2.main",
162
+ border: isPremium ? "none" : "2px solid transparent"
310
163
  }
311
164
  }
312
165
  }, /*#__PURE__*/React.createElement(Stack, {
313
- onClick: e => {
314
- e.stopPropagation(); // NEEDS TO DIRECT TO CREATOR'S PROFILE
315
-
316
- handleClickSecondaryAction();
317
- },
318
- sx: {
319
- position: "absolute",
320
- width: "100%",
321
- height: "100%",
322
- backgroundColor: "notBlack.override",
323
- zIndex: "3",
324
- borderRadius: "50%",
325
- opacity: ".7",
326
- "&:hover": {
327
- backgroundColor: "ibisRed.main",
328
- opacity: "1"
329
- }
330
- }
331
- }), /*#__PURE__*/React.createElement("img", {
332
- src: (collection === null || collection === void 0 ? void 0 : (_collection$ownerObje = collection.ownerObject) === null || _collection$ownerObje === void 0 ? void 0 : (_collection$ownerObje2 = _collection$ownerObje.profileImage) === null || _collection$ownerObje2 === void 0 ? void 0 : (_collection$ownerObje3 = _collection$ownerObje2.original) === null || _collection$ownerObje3 === void 0 ? void 0 : _collection$ownerObje3.url) || "https://cdn.blerp.com/design/web/account-white-check.svg",
333
- style: {
334
- width: "100%",
335
- height: "100%",
336
- zIndex: "5",
337
- borderRadius: "50%",
338
- pointerEvents: "none"
339
- }
340
- })), bottomLeftIcon ? bottomLeftIcon : /*#__PURE__*/React.createElement(Stack, {
341
- sx: {
342
- zIndex: "4",
343
- justifyContent: "center",
344
- alignItems: "center",
345
- position: "absolute",
346
- width: "20px",
347
- height: "20px",
348
- borderRadius: "50%",
349
- bottom: "8px",
350
- right: "8px",
351
- padding: "2px",
352
- transition: "all .1s ease-in-out",
353
- "&:hover": {
354
- width: "24px",
355
- height: "24px",
356
- bottom: "8px",
357
- right: "8px"
358
- }
359
- },
360
- onClick: e => {
361
- e.stopPropagation();
362
- handleClickBottomLeftIcon();
363
- }
364
- }, /*#__PURE__*/React.createElement(PresentGiftIcon, {
365
166
  sx: {
366
167
  position: "absolute",
367
- width: "100%",
368
- height: "100%",
369
- color: "white.override",
370
- // backgroundColor: "grey4.main",
371
- zIndex: "4",
372
- borderRadius: "50%",
373
- opacity: "1",
374
- "&:hover": {
375
- padding: "4px",
376
- backgroundColor: "grey7.override",
377
- opacity: "1"
378
- }
379
- }
380
- })), isLink ? /*#__PURE__*/React.createElement("a", {
381
- href: "/sound-collection/".concat(collection._id),
382
- style: {
383
- color: "white",
384
- textDecoration: "none"
385
- }
386
- }, /*#__PURE__*/React.createElement(LineClamp, null, /*#__PURE__*/React.createElement(Text, {
387
- fontSize: fontSize ? fontSize : "22px",
388
- color: "white.override",
389
- textAlign: "center",
390
- sx: {
391
- zIndex: isLocked ? "1" : "3",
392
- ":hover": {
393
- textDecoration: "underline"
394
- }
395
- }
396
- }, collection === null || collection === void 0 ? void 0 : collection.title))) : /*#__PURE__*/React.createElement(LineClamp, null, /*#__PURE__*/React.createElement(Text, {
397
- sx: {
398
- zIndex: isLocked ? "1" : "3"
399
- },
400
- fontSize: fontSize ? fontSize : "22px",
401
- color: "white.override",
402
- textAlign: "center"
403
- }, collection === null || collection === void 0 ? void 0 : collection.title)), isLocked ? /*#__PURE__*/React.createElement(LockedScrim, {
404
- collectionHovered: collectionHovered
405
- }, /*#__PURE__*/React.createElement(LockedScrimBackground, {
406
- collectionHovered: collectionHovered
407
- }), !hideUnlockPlatformText && (unlockPlatformText ? /*#__PURE__*/React.createElement(Text, {
408
- sx: {
409
- color: "white.override",
410
- textAlign: "center",
411
- lineHeight: "1",
412
- margin: "4px 0",
413
- zIndex: "3",
414
- fontSize: ".8rem"
415
- }
416
- }, unlockPlatformText) : /*#__PURE__*/React.createElement(Text, {
417
- sx: {
418
- color: "white.override",
419
- textAlign: "center",
420
- lineHeight: "1",
421
- margin: "4px 0",
422
- zIndex: "3",
423
- fontSize: ".8rem"
424
- }
425
- }, "Unlock to share ", /*#__PURE__*/React.createElement("br", null), "across platforms")), handleClickView && /*#__PURE__*/React.createElement(Button, {
426
- disabled: !collectionHovered,
427
- onClick: e => {
428
- e.stopPropagation();
429
- handleClickView();
430
- },
431
- variant: "contained",
432
- sx: {
433
- width: "70%",
434
- fontSize: ".8rem",
435
- padding: "4px 8px",
436
- margin: "4px 0"
437
- }
438
- }, overrideViewText || "VIEW SOUNDPACK"), handleClickUnlock && /*#__PURE__*/React.createElement(Button, {
439
- disabled: !collectionHovered,
440
- onClick: e => {
441
- e.stopPropagation();
442
- handleClickUnlock();
443
- },
444
- variant: "outlined",
445
- color: "whiteOverride",
446
- sx: {
447
- width: "50%",
448
- margin: "6px 0",
449
- padding: "2px 8px",
450
- borderWidth: "2px !important",
451
- overflow: "hidden"
452
- }
453
- }, /*#__PURE__*/React.createElement("div", {
454
- id: "button-background"
455
- }), /*#__PURE__*/React.createElement(LockRoundedIcon, {
456
- sx: {
457
- color: "white.override",
458
- zIndex: "3",
459
- height: ".8rem",
460
- position: "relative",
461
- bottom: "1px"
462
- }
463
- }), "UNLOCK")) : /*#__PURE__*/React.createElement(React.Fragment, null))) :
464
- /*#__PURE__*/
465
- // What to display when variantSize === "small":
466
- React.createElement(Box, {
467
- sx: {
468
- backgroundImage: "linear-gradient(".concat(cardColors ? cardColors[0] : "#000000", "7a, #0000004a), url(").concat(collection === null || collection === void 0 ? void 0 : (_collection$image4 = collection.image) === null || _collection$image4 === void 0 ? void 0 : (_collection$image4$or = _collection$image4.original) === null || _collection$image4$or === void 0 ? void 0 : _collection$image4$or.url, ")"),
469
- backgroundSize: "cover",
470
- backgroundPosition: "center",
471
- backgroundRepeat: "no-repeat",
472
- width: "100%",
473
- height: "100%",
474
- borderRadius: "8px",
475
- display: "flex",
476
- justifyContent: "center",
477
- alignItems: "center",
478
- position: "relative"
479
- }
168
+ top: "0",
169
+ bottom: "0",
170
+ left: "0",
171
+ right: "0",
172
+ transition: "background .15s ease-in-out",
173
+ background: profileColors ? "linear-gradient(180deg, ".concat(profileColors[0]).concat(isPremium ? isLocked ? isBlerpHovered ? "C4" : "78" : isBlerpHovered ? "" : "C4" : "0", ", ").concat(theme.colors.grey5Override).concat(isPremium ? isLocked ? isBlerpHovered ? "C4" : "78" : isBlerpHovered ? "" : "C4" : "0", ")") : "",
174
+ backgroundColor: isPremium && !profileColors && "grey5.override"
175
+ }
176
+ }), /*#__PURE__*/React.createElement(BlerpTopRow, {
177
+ bite: bite,
178
+ isOwner: isOwner,
179
+ sizeParams: sizeParams,
180
+ getUserReactions: getUserReactions,
181
+ setOpenSave: setOpenSave,
182
+ handleClickSave: handleClickSave,
183
+ isPremium: isPremium,
184
+ isLocked: isLocked,
185
+ secondaryActionButton: secondaryActionButton,
186
+ isBlerpHovered: isBlerpHovered,
187
+ handleClickThreeDot: handleClickThreeDot
188
+ }), /*#__PURE__*/React.createElement(BlerpImageRow, {
189
+ bite: bite,
190
+ isOwner: isOwner,
191
+ sizeParams: sizeParams,
192
+ getUserReactions: getUserReactions,
193
+ setOpenSave: setOpenSave,
194
+ playingState: playingState,
195
+ handleClickSave: handleClickSave,
196
+ isPremium: isPremium,
197
+ isLocked: isLocked,
198
+ primaryActionButton: primaryActionButton,
199
+ isBlerpHovered: isBlerpHovered,
200
+ handleClickPlay: handleClickPlay,
201
+ handleClickLock: handleClickLock
202
+ }), /*#__PURE__*/React.createElement(BlerpTitleRow, {
203
+ bite: bite,
204
+ title: title,
205
+ isLinkTitle: isLinkTitle,
206
+ handleClickTitle: handleClickTitle,
207
+ isPremium: isPremium,
208
+ isLocked: isLocked,
209
+ isOwner: isOwner,
210
+ sizeParams: sizeParams
211
+ }), openSave && /*#__PURE__*/React.createElement(BlerpSavePopup, {
212
+ bite: bite,
213
+ anchorRef: anchorRef,
214
+ setOpenSave: setOpenSave,
215
+ openSave: openSave,
216
+ sizeParams: sizeParams,
217
+ unsaveButton: unsaveButton,
218
+ organizeButton: organizeButton,
219
+ handleClickReaction: handleClickReaction,
220
+ handleClickUnsave: handleClickUnsave,
221
+ handleClickOrganize: handleClickOrganize
480
222
  })));
481
223
  };
482
224
 
483
- export default PremiumCollectionCard;
484
- export { PremiumCollectionCard };
225
+ export { Blerp, Blerp as default };