@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.
- package/dist/cjs/Blerp/BlerpImageRow.js +167 -0
- package/dist/cjs/Blerp/BlerpSavePopup.js +157 -0
- package/dist/cjs/Blerp/BlerpTitleRow.js +116 -0
- package/dist/cjs/Blerp/BlerpTopRow.js +246 -0
- package/dist/cjs/Blerp.js +239 -0
- package/dist/cjs/BlerpAudioContextProvider.js +141 -0
- package/dist/cjs/BlerpListView.js +357 -0
- package/dist/cjs/BlerpListViewPremium.js +404 -0
- package/dist/cjs/BlerpListViewSkeleton.js +27 -0
- package/dist/cjs/BlerpSkeleton.js +23 -0
- package/dist/cjs/CollectionCard.js +402 -0
- package/dist/cjs/CollectionListViewPremium.js +368 -0
- package/dist/cjs/CollectionSkeleton.js +28 -0
- package/dist/cjs/Dropdown.js +283 -0
- package/dist/cjs/EllipsisLoader.js +51 -0
- package/dist/cjs/GroupCard.js +172 -0
- package/dist/cjs/Icons/Icons.js +606 -0
- package/dist/cjs/ImageUploadModal.js +278 -0
- package/dist/cjs/Lotties/JiggleLock.json.js +2762 -0
- package/dist/cjs/Lotties/LottieAnimation.js +32 -0
- package/dist/cjs/NewBlerp.js +740 -0
- package/dist/cjs/NewBlerpTest.js +808 -0
- package/dist/cjs/NewCollectionModal.js +403 -0
- package/dist/cjs/PremiumCollectionCard.js +511 -0
- package/dist/cjs/PurchaseModals/CheckoutModal.js +39 -0
- package/dist/cjs/PurchaseModals/PremiumBlerpCheckoutModal.js +39 -0
- package/dist/cjs/PurchaseModals/PremiumCollectionCheckoutModal.js +39 -0
- package/dist/cjs/PurchaseModals/PremiumSubscriptionCheckoutModal.js +39 -0
- package/dist/cjs/ReactionButtons.js +65 -0
- package/dist/cjs/ScreenSizeHook.js +34 -0
- package/dist/cjs/SnackbarContextProvider.js +166 -0
- package/dist/cjs/Theme.js +255 -0
- package/dist/cjs/Toggle.js +59 -0
- package/dist/cjs/UserCard.js +141 -0
- package/dist/cjs/UserPage/LibraryControls.js +315 -0
- package/dist/cjs/UserPage/UserLibraryHeader.js +93 -0
- package/dist/cjs/UserPage/UserProfileHeader.js +283 -0
- package/dist/cjs/UsernameWithPopout.js +93 -0
- package/dist/cjs/colors.js +368 -0
- package/dist/cjs/icons.js +161 -0
- package/dist/cjs/index.js +449 -0
- package/dist/esm/Blerp/BlerpImageRow.js +157 -0
- package/dist/esm/Blerp/BlerpSavePopup.js +147 -0
- package/dist/esm/Blerp/BlerpTitleRow.js +108 -0
- package/dist/esm/Blerp/BlerpTopRow.js +236 -0
- package/dist/esm/Blerp.js +230 -0
- package/dist/esm/BlerpAudioContextProvider.js +132 -0
- package/dist/esm/BlerpListView.js +344 -0
- package/dist/esm/BlerpListViewPremium.js +391 -0
- package/dist/esm/BlerpListViewSkeleton.js +17 -0
- package/dist/esm/BlerpSkeleton.js +13 -0
- package/dist/esm/CollectionCard.js +392 -0
- package/dist/esm/CollectionListViewPremium.js +354 -0
- package/dist/esm/CollectionSkeleton.js +18 -0
- package/dist/esm/Dropdown.js +273 -0
- package/dist/esm/EllipsisLoader.js +41 -0
- package/dist/esm/GroupCard.js +162 -0
- package/dist/esm/Icons/Icons.js +571 -0
- package/dist/esm/ImageUploadModal.js +265 -0
- package/dist/esm/Lotties/JiggleLock.json.js +2747 -0
- package/dist/esm/Lotties/LottieAnimation.js +25 -0
- package/dist/esm/NewBlerp.js +719 -0
- package/dist/esm/NewBlerpTest.js +787 -0
- package/dist/esm/NewCollectionModal.js +391 -0
- package/dist/esm/PremiumCollectionCard.js +498 -0
- package/dist/esm/PurchaseModals/CheckoutModal.js +33 -0
- package/dist/esm/PurchaseModals/PremiumBlerpCheckoutModal.js +33 -0
- package/dist/esm/PurchaseModals/PremiumCollectionCheckoutModal.js +33 -0
- package/dist/esm/PurchaseModals/PremiumSubscriptionCheckoutModal.js +33 -0
- package/dist/esm/ReactionButtons.js +57 -0
- package/dist/esm/ScreenSizeHook.js +30 -0
- package/dist/esm/SnackbarContextProvider.js +154 -0
- package/dist/esm/Theme.js +246 -0
- package/dist/esm/Toggle.js +49 -0
- package/dist/esm/UserCard.js +133 -0
- package/dist/esm/UserPage/LibraryControls.js +301 -0
- package/dist/esm/UserPage/UserLibraryHeader.js +87 -0
- package/dist/esm/UserPage/UserProfileHeader.js +268 -0
- package/dist/esm/UsernameWithPopout.js +85 -0
- package/dist/esm/colors.js +360 -0
- package/dist/esm/icons.js +159 -0
- package/dist/esm/index.js +336 -0
- package/package.json +2 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
const useWindowSize = () => {
|
|
4
|
+
const isClient = typeof window === "object";
|
|
5
|
+
|
|
6
|
+
function getSize() {
|
|
7
|
+
return {
|
|
8
|
+
width: isClient ? window.innerWidth : undefined,
|
|
9
|
+
height: isClient ? window.innerHeight : undefined
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const [windowSize, setWindowSize] = useState(getSize);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
if (!isClient) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function handleResize() {
|
|
20
|
+
setWindowSize(getSize());
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
window.addEventListener("resize", handleResize);
|
|
24
|
+
return () => window.removeEventListener("resize", handleResize);
|
|
25
|
+
}, []); // Empty array ensures that effect is only run on mount and unmount
|
|
26
|
+
|
|
27
|
+
return windowSize;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { useWindowSize };
|
|
@@ -0,0 +1,154 @@
|
|
|
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';
|
|
6
|
+
|
|
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
|
+
*/
|
|
24
|
+
|
|
25
|
+
const SnackbarContext = /*#__PURE__*/React.createContext({
|
|
26
|
+
snackbarValues: {
|
|
27
|
+
open: false,
|
|
28
|
+
message: "Set a message",
|
|
29
|
+
position: {
|
|
30
|
+
vertical: "bottom",
|
|
31
|
+
horizontal: "center"
|
|
32
|
+
},
|
|
33
|
+
slideDirection: "up",
|
|
34
|
+
transitionType: "slide",
|
|
35
|
+
severity: "success",
|
|
36
|
+
actionButton: /*#__PURE__*/React.createElement(React.Fragment, null),
|
|
37
|
+
autoHideDuration: 5000
|
|
38
|
+
},
|
|
39
|
+
triggerSnackbar: () => null
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
const SnackbarProvider = props => {
|
|
43
|
+
const [open, setOpen] = useState(false);
|
|
44
|
+
const [snackbarValues, setSnackbarValues] = useState({
|
|
45
|
+
message: "Set a message",
|
|
46
|
+
position: {
|
|
47
|
+
vertical: "bottom",
|
|
48
|
+
horizontal: "center"
|
|
49
|
+
},
|
|
50
|
+
color: "grey8",
|
|
51
|
+
transitionType: "slide",
|
|
52
|
+
slideDirection: "up",
|
|
53
|
+
severity: "success",
|
|
54
|
+
actionButton: /*#__PURE__*/React.createElement(React.Fragment, null),
|
|
55
|
+
autoHideDuration: 5000
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
const triggerSnackbar = _ref => {
|
|
59
|
+
let {
|
|
60
|
+
message = "Set a message",
|
|
61
|
+
position = {
|
|
62
|
+
vertical: "bottom",
|
|
63
|
+
horizontal: "center"
|
|
64
|
+
},
|
|
65
|
+
slideDirection = "up",
|
|
66
|
+
transitionType = "slide",
|
|
67
|
+
severity = "success",
|
|
68
|
+
color,
|
|
69
|
+
actionButton = /*#__PURE__*/React.createElement(React.Fragment, null),
|
|
70
|
+
autoHideDuration = 5000
|
|
71
|
+
} = _ref;
|
|
72
|
+
|
|
73
|
+
if (!color) {
|
|
74
|
+
switch (severity) {
|
|
75
|
+
case "success":
|
|
76
|
+
color = "grey3"; // figure out how to fix seafoam text
|
|
77
|
+
|
|
78
|
+
break;
|
|
79
|
+
|
|
80
|
+
case "error":
|
|
81
|
+
color = "ibisRed";
|
|
82
|
+
break;
|
|
83
|
+
|
|
84
|
+
default:
|
|
85
|
+
color = "notBlack";
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
setOpen(true);
|
|
91
|
+
setSnackbarValues({
|
|
92
|
+
message,
|
|
93
|
+
position,
|
|
94
|
+
color,
|
|
95
|
+
transitionType,
|
|
96
|
+
slideDirection,
|
|
97
|
+
severity,
|
|
98
|
+
actionButton,
|
|
99
|
+
autoHideDuration
|
|
100
|
+
});
|
|
101
|
+
setTimeout(() => {
|
|
102
|
+
setOpen(false);
|
|
103
|
+
}, autoHideDuration);
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
return /*#__PURE__*/React.createElement(SnackbarContext.Provider, {
|
|
107
|
+
value: {
|
|
108
|
+
snackbarValues: snackbarValues,
|
|
109
|
+
setSnackbarValues: setSnackbarValues,
|
|
110
|
+
triggerSnackbar: props => {
|
|
111
|
+
// TODO: figure out why setTimeout is needed to show every time
|
|
112
|
+
setTimeout(() => {
|
|
113
|
+
triggerSnackbar(props);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}, /*#__PURE__*/React.createElement(Snackbar, {
|
|
118
|
+
anchorOrigin: { ...snackbarValues.position
|
|
119
|
+
},
|
|
120
|
+
autoHideDuration: snackbarValues.autoHideDuration,
|
|
121
|
+
open: open,
|
|
122
|
+
sx: {
|
|
123
|
+
minWidth: "30%"
|
|
124
|
+
},
|
|
125
|
+
TransitionComponent: props => {
|
|
126
|
+
if (snackbarValues.transitionType === "fade") {
|
|
127
|
+
return /*#__PURE__*/React.createElement(Fade, _extends({}, props, {
|
|
128
|
+
direction: snackbarValues.slideDirection,
|
|
129
|
+
unmountOnExit: true
|
|
130
|
+
}));
|
|
131
|
+
} else {
|
|
132
|
+
return /*#__PURE__*/React.createElement(Slide, _extends({}, props, {
|
|
133
|
+
direction: snackbarValues.slideDirection,
|
|
134
|
+
unmountOnExit: true
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
onClose: () => setOpen(false),
|
|
139
|
+
key: "snackbar-toast"
|
|
140
|
+
}, /*#__PURE__*/React.createElement(Alert, {
|
|
141
|
+
severity: snackbarValues.severity,
|
|
142
|
+
variant: "filled",
|
|
143
|
+
color: snackbarValues.color,
|
|
144
|
+
action: snackbarValues.actionButton,
|
|
145
|
+
sx: {
|
|
146
|
+
width: "100%",
|
|
147
|
+
"& svg": {
|
|
148
|
+
color: "inherit"
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}, snackbarValues.message)), props.children);
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
export { SnackbarContext, SnackbarProvider };
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { createTheme, ThemeProvider } from '@mui/material/styles';
|
|
3
|
+
import { ThemeProvider as ThemeProvider$1 } from 'styled-components';
|
|
4
|
+
import icons from './icons.js';
|
|
5
|
+
import colors, { lightColors, lightPalette, darkColors, darkPalette } from './colors.js';
|
|
6
|
+
import { mainTheme } from './index.js';
|
|
7
|
+
import { SnackbarProvider } from './SnackbarContextProvider.js';
|
|
8
|
+
|
|
9
|
+
const fonts = "@font-face {\n font-family: \"Odudo\";\n font-weight: normal;\n font-display: swap;\n src: url(\"https://cdn.blerp.com/blerp-web-images/fonts/web/Odudo-Regular.eot\");\n src: url(\"https://cdn.blerp.com/blerp-web-images/fonts/web/Odudo-Regular.woff2\")\n format(\"woff2\"),\n url(\"https://cdn.blerp.com/blerp-web-images/fonts/web/Odudo-Regular.woff\")\n format(\"woff\");\n}\n\n@font-face {\n font-family: \"Odudo\";\n font-weight: lighter;\n font-display: swap;\n src: url(\"https://cdn.blerp.com/blerp-web-images/fonts/web/Odudo-Light.eot\");\n src: url(\"https://cdn.blerp.com/blerp-web-images/fonts/web/Odudo-Light.woff2\")\n format(\"woff2\"),\n url(\"https://cdn.blerp.com/blerp-web-images/fonts/web/Odudo-Light.woff\")\n format(\"woff\");\n}\n\n@font-face {\n font-family: \"Odudo\";\n font-weight: 300;\n font-display: swap;\n src: url(\"https://cdn.blerp.com/blerp-web-images/fonts/web/Odudo-Light.eot\");\n src: url(\"https://cdn.blerp.com/blerp-web-images/fonts/web/Odudo-Light.woff2\")\n format(\"woff2\"),\n url(\"https://cdn.blerp.com/blerp-web-images/fonts/web/Odudo-Light.woff\")\n format(\"woff\");\n}\n\n@font-face {\n font-family: \"Odudo\";\n font-weight: 400;\n font-display: swap;\n src: url(\"https://cdn.blerp.com/blerp-web-images/fonts/web/Odudo-Regular.eot\");\n src: url(\"https://cdn.blerp.com/blerp-web-images/fonts/web/Odudo-Regular.woff2\")\n format(\"woff2\"),\n url(\"https://cdn.blerp.com/blerp-web-images/fonts/web/Odudo-Regular.woff\")\n format(\"woff\");\n}\n\n@font-face {\n font-family: \"Odudo\";\n font-weight: bolder;\n font-display: swap;\n src: url(\"https://cdn.blerp.com/blerp-web-images/fonts/Odudo%20V1.3/WEB/odudo-semibold-webfont.eot\");\n src: url(\"https://cdn.blerp.com/blerp-web-images/fonts/Odudo%20V1.3/WEB/odudo-semibold-webfont.woff2\")\n format(\"woff2\"),\n url(\"https://cdn.blerp.com/blerp-web-images/fonts/Odudo%20V1.3/WEB/odudo-semibold-webfont.woff\")\n format(\"woff\");\n}\n\n@font-face {\n font-family: \"Odudo\";\n font-weight: 600;\n font-display: swap;\n src: url(\"https://cdn.blerp.com/blerp-web-images/fonts/Odudo%20V1.3/WEB/odudo-semibold-webfont.eot\");\n src: url(\"https://cdn.blerp.com/blerp-web-images/fonts/Odudo%20V1.3/WEB/odudo-semibold-webfont.woff2\")\n format(\"woff2\"),\n url(\"https://cdn.blerp.com/blerp-web-images/fonts/Odudo%20V1.3/WEB/odudo-semibold-webfont.woff\")\n format(\"woff\");\n}\n\n@font-face {\n font-family: \"Odudo\";\n font-weight: bold;\n font-display: swap;\n src: url(\"https://cdn.blerp.com/blerp-web-images/fonts/web/Odudo-Bold.eot\");\n src: url(\"https://cdn.blerp.com/blerp-web-images/fonts/web/Odudo-Bold.woff2\")\n format(\"woff2\"),\n url(\"https://cdn.blerp.com/blerp-web-images/fonts/web/Odudo-Bold.woff\")\n format(\"woff\");\n}\n\n@font-face {\n font-family: \"Odudo\";\n font-weight: 700;\n font-display: swap;\n src: url(\"https://cdn.blerp.com/blerp-web-images/fonts/web/Odudo-Bold.eot\");\n src: url(\"https://cdn.blerp.com/blerp-web-images/fonts/web/Odudo-Bold.woff2\")\n format(\"woff2\"),\n url(\"https://cdn.blerp.com/blerp-web-images/fonts/web/Odudo-Bold.woff\")\n format(\"woff\");\n}";
|
|
10
|
+
const theme = createTheme({
|
|
11
|
+
typography: {
|
|
12
|
+
fontFamily: "Odudo, Arial"
|
|
13
|
+
},
|
|
14
|
+
components: {
|
|
15
|
+
MuiPopover: {
|
|
16
|
+
defaultProps: {
|
|
17
|
+
BackdropProps: {
|
|
18
|
+
sx: {
|
|
19
|
+
backgroundColor: "transparent",
|
|
20
|
+
backdropFilter: "none"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
MuiBackdrop: {
|
|
26
|
+
styleOverrides: {
|
|
27
|
+
root: {
|
|
28
|
+
backgroundColor: "".concat(colors.grey6, "70"),
|
|
29
|
+
backdropFilter: "blur(4px)"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
MuiSvgIcon: {
|
|
34
|
+
styleOverrides: {
|
|
35
|
+
root: {
|
|
36
|
+
color: colors.notBlack
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
MuiFilledInput: {
|
|
41
|
+
styleOverrides: {
|
|
42
|
+
root: {
|
|
43
|
+
color: colors.notBlack,
|
|
44
|
+
backgroundColor: colors.grey2,
|
|
45
|
+
"& textarea": {
|
|
46
|
+
color: colors.notBlack
|
|
47
|
+
},
|
|
48
|
+
":hover": {
|
|
49
|
+
backgroundColor: colors.grey2
|
|
50
|
+
},
|
|
51
|
+
":before": {
|
|
52
|
+
borderColor: colors.notBlack
|
|
53
|
+
},
|
|
54
|
+
":hover:before": {
|
|
55
|
+
borderColor: "".concat(colors.notBlack, " !important")
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
MuiInput: {
|
|
61
|
+
styleOverrides: {
|
|
62
|
+
root: {
|
|
63
|
+
color: colors.notBlack,
|
|
64
|
+
borderColor: colors.notBlack,
|
|
65
|
+
":before": {
|
|
66
|
+
borderColor: colors.notBlack
|
|
67
|
+
},
|
|
68
|
+
":hover:before": {
|
|
69
|
+
borderColor: "".concat(colors.notBlack, " !important")
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
MuiInputLabel: {
|
|
75
|
+
styleOverrides: {
|
|
76
|
+
root: {
|
|
77
|
+
color: colors.notBlack
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
MuiTypography: {
|
|
82
|
+
styleOverrides: {
|
|
83
|
+
root: {
|
|
84
|
+
color: colors.notBlack
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
MuiButton: {
|
|
89
|
+
styleOverrides: {
|
|
90
|
+
root: {
|
|
91
|
+
borderRadius: "30px",
|
|
92
|
+
fontWeight: "600",
|
|
93
|
+
letterSpacing: "0.05rem",
|
|
94
|
+
textTransform: "capitalize"
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
variants: [{
|
|
98
|
+
props: {
|
|
99
|
+
variant: "outlined"
|
|
100
|
+
},
|
|
101
|
+
style: {
|
|
102
|
+
borderWidth: "2px",
|
|
103
|
+
"&:hover": {
|
|
104
|
+
borderWidth: "2px"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}]
|
|
108
|
+
},
|
|
109
|
+
MuiCssBaseline: {
|
|
110
|
+
styleOverrides: "\n ".concat(fonts, "\n ")
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
mode: "light",
|
|
114
|
+
colors: lightColors,
|
|
115
|
+
icons: icons,
|
|
116
|
+
palette: lightPalette
|
|
117
|
+
});
|
|
118
|
+
const darkTheme = createTheme({
|
|
119
|
+
typography: {
|
|
120
|
+
fontFamily: "Odudo, Arial"
|
|
121
|
+
},
|
|
122
|
+
components: {
|
|
123
|
+
MuiTypography: {
|
|
124
|
+
styleOverrides: {
|
|
125
|
+
root: {
|
|
126
|
+
color: colors.white
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
MuiFilledInput: {
|
|
131
|
+
styleOverrides: {
|
|
132
|
+
root: {
|
|
133
|
+
color: colors.white,
|
|
134
|
+
backgroundColor: colors.grey7,
|
|
135
|
+
"& textarea": {
|
|
136
|
+
color: colors.white
|
|
137
|
+
},
|
|
138
|
+
":hover": {
|
|
139
|
+
backgroundColor: colors.grey7
|
|
140
|
+
},
|
|
141
|
+
":before": {
|
|
142
|
+
borderColor: colors.waxwing
|
|
143
|
+
},
|
|
144
|
+
":hover:before": {
|
|
145
|
+
borderColor: "".concat(colors.white, " !important")
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
MuiInput: {
|
|
151
|
+
styleOverrides: {
|
|
152
|
+
root: {
|
|
153
|
+
color: colors.white,
|
|
154
|
+
borderColor: colors.white,
|
|
155
|
+
":before": {
|
|
156
|
+
borderColor: colors.waxwing
|
|
157
|
+
},
|
|
158
|
+
":hover:before": {
|
|
159
|
+
borderColor: "".concat(colors.white, " !important")
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
MuiInputLabel: {
|
|
165
|
+
styleOverrides: {
|
|
166
|
+
root: {
|
|
167
|
+
color: colors.white
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
MuiPopover: {
|
|
172
|
+
defaultProps: {
|
|
173
|
+
BackdropProps: {
|
|
174
|
+
sx: {
|
|
175
|
+
backgroundColor: "transparent",
|
|
176
|
+
backdropFilter: "none"
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
MuiBackdrop: {
|
|
182
|
+
styleOverrides: {
|
|
183
|
+
root: {
|
|
184
|
+
backgroundColor: "".concat(colors.grey5, "70"),
|
|
185
|
+
backdropFilter: "blur(4px)"
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
MuiSvgIcon: {
|
|
190
|
+
styleOverrides: {
|
|
191
|
+
root: {
|
|
192
|
+
color: colors.white
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
MuiButton: {
|
|
197
|
+
styleOverrides: {
|
|
198
|
+
root: {
|
|
199
|
+
borderRadius: "30px",
|
|
200
|
+
fontWeight: "600",
|
|
201
|
+
letterSpacing: "0.05rem",
|
|
202
|
+
textTransform: "capitalize"
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
variants: [{
|
|
206
|
+
props: {
|
|
207
|
+
variant: "outlined"
|
|
208
|
+
},
|
|
209
|
+
style: {
|
|
210
|
+
borderWidth: "2px",
|
|
211
|
+
"&:hover": {
|
|
212
|
+
borderWidth: "2px"
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}]
|
|
216
|
+
},
|
|
217
|
+
MuiCssBaseline: {
|
|
218
|
+
styleOverrides: "\n ".concat(fonts, "\n ")
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
mode: "dark",
|
|
222
|
+
colors: darkColors,
|
|
223
|
+
icons: icons,
|
|
224
|
+
palette: darkPalette
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
const BlerpTheme = _ref => {
|
|
228
|
+
let {
|
|
229
|
+
mode,
|
|
230
|
+
children
|
|
231
|
+
} = _ref;
|
|
232
|
+
const currentTheme = mode === "dark" ? darkTheme : theme; // ...
|
|
233
|
+
|
|
234
|
+
return /*#__PURE__*/React.createElement(ThemeProvider, {
|
|
235
|
+
theme: currentTheme
|
|
236
|
+
}, /*#__PURE__*/React.createElement(ThemeProvider$1, {
|
|
237
|
+
theme: { ...mainTheme,
|
|
238
|
+
icons: icons,
|
|
239
|
+
mode: mode === "dark" ? "dark" : "light",
|
|
240
|
+
...currentTheme
|
|
241
|
+
}
|
|
242
|
+
}, /*#__PURE__*/React.createElement(SnackbarProvider, null, children)));
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
export default BlerpTheme;
|
|
246
|
+
export { darkTheme, theme };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import _taggedTemplateLiteral from '@babel/runtime/helpers/taggedTemplateLiteral';
|
|
2
|
+
import { CheckRounded } from '@mui/icons-material';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import styled from 'styled-components';
|
|
5
|
+
import { EllipsisLoader } from './EllipsisLoader.js';
|
|
6
|
+
|
|
7
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
8
|
+
const Slider = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: ", "33;\n -webkit-transition: 0.2s;\n transition: 0.2s;\n border-radius: 34px;\n"])), props => props.theme.colors.grey5);
|
|
9
|
+
const ToggleInput = styled.input(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n &:checked + ", " {\n background-color: ", ";\n }\n\n ut:focus + ", " {\n box-shadow: 0 0 1px #2196f3;\n }\n\n &:checked + ", " svg {\n -webkit-transform: translateX(14px);\n -ms-transform: translateX(14px);\n transform: translateX(14px);\n }\n"])), Slider, props => props.disabled ? "#7b7b7b" : props.theme.colors.seafoam, Slider, Slider);
|
|
10
|
+
const Switch = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n cursor: ", ";\n position: relative;\n display: inline-block;\n place-self: center;\n width: ", ";\n height: ", ";\n border: ", ";\n border-color: ", ";\n border-radius: 18px;\n opacity: ", ";\n & ", " {\n opacity: 0;\n width: 0;\n height: 0;\n }\n"])), props => props.disabled ? "default" : "pointer", props => props.checked ? "38px" : "36px", props => props.checked ? "22px" : "20px", props => props.checked ? "0px" : "1px solid transparent", props => props.checked ? "transparent" : props.theme.colors.grey5, props => props.disabled ? "0.5" : "1", ToggleInput);
|
|
11
|
+
const BlackSlider = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: transparent;\n -webkit-transition: 0.2s;\n transition: 0.2s;\n border-radius: 34px;\n\n &:before {\n position: absolute;\n content: \"\";\n height: 14px;\n width: 14px;\n -webkit-transition: 0.2s;\n transition: 0.2s;\n background-color: ", ";\n border-radius: 50%;\n }\n"])), props => props.theme.colors.notBlack);
|
|
12
|
+
const BlackToggleInput = styled.input(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n &:checked + ", " {\n background-color: transparent;\n }\n &:checked + ", ":before {\n background-color: ", ";\n }\n ut:focus + ", " {\n box-shadow: 0 0 1px #2196f3;\n }\n\n &:checked + ", ":before {\n -webkit-transform: translateX(14px);\n -ms-transform: translateX(14px);\n transform: translateX(14px);\n /* -webkit-transform: translateY(2px);\n -ms-transform: translateY(2px);\n transform: translateY(2px); */\n }\n"])), BlackSlider, BlackSlider, props => props.theme.colors.notBlack, BlackSlider, BlackSlider);
|
|
13
|
+
styled.div(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n position: relative;\n display: inline-block;\n place-self: center;\n width: 28px;\n height: 14px;\n border: 2px solid ", ";\n border-radius: 14px;\n\n & ", " {\n opacity: 0;\n width: 0;\n height: 0;\n }\n"])), props => props.theme.colors.notBlack, BlackToggleInput);
|
|
14
|
+
const LoadingContainer = styled.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n width: 50px;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n"])));
|
|
15
|
+
const Toggle = _ref => {
|
|
16
|
+
let {
|
|
17
|
+
loading,
|
|
18
|
+
checked,
|
|
19
|
+
onClick,
|
|
20
|
+
disabled
|
|
21
|
+
} = _ref;
|
|
22
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, loading ? /*#__PURE__*/React.createElement(LoadingContainer, null, /*#__PURE__*/React.createElement(EllipsisLoader, null)) : /*#__PURE__*/React.createElement(Switch, {
|
|
23
|
+
checked: checked,
|
|
24
|
+
disabled: disabled,
|
|
25
|
+
onClick: e => {
|
|
26
|
+
if (!disabled && onClick) {
|
|
27
|
+
onClick(e);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}, /*#__PURE__*/React.createElement(ToggleInput, {
|
|
31
|
+
checked: checked,
|
|
32
|
+
disabled: disabled,
|
|
33
|
+
onChange: () => null,
|
|
34
|
+
type: "checkbox"
|
|
35
|
+
}), /*#__PURE__*/React.createElement(Slider, null, /*#__PURE__*/React.createElement(CheckRounded, {
|
|
36
|
+
sx: {
|
|
37
|
+
position: "absolute",
|
|
38
|
+
top: checked ? "3px" : "4px",
|
|
39
|
+
left: "4px",
|
|
40
|
+
color: checked ? disabled ? "grey4.main" : "seafoam.main" : "transparent",
|
|
41
|
+
fontSize: checked ? "16px" : "12px",
|
|
42
|
+
backgroundColor: checked ? "white.main" : "grey5.main",
|
|
43
|
+
borderRadius: "50%",
|
|
44
|
+
transition: "0.2s"
|
|
45
|
+
}
|
|
46
|
+
}))));
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export { Toggle };
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { VerifiedRounded, DiamondRounded } from '@mui/icons-material';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Stack, Text } from './index.js';
|
|
4
|
+
|
|
5
|
+
const UserCard = _ref => {
|
|
6
|
+
var _user$twitchChannelIn, _user$twitchChannelIn2, _user$twitchChannelIn3, _user$twitchChannelIn4, _user$twitchChannelIn5, _user$profileImage, _user$profileImage$or, _user$twitchChannelIn6;
|
|
7
|
+
|
|
8
|
+
let {
|
|
9
|
+
user,
|
|
10
|
+
onUsernameClick,
|
|
11
|
+
onFollowerClick,
|
|
12
|
+
onCreatedClick,
|
|
13
|
+
collapsed
|
|
14
|
+
} = _ref;
|
|
15
|
+
const formatter = Intl.NumberFormat("en", {
|
|
16
|
+
notation: "compact"
|
|
17
|
+
});
|
|
18
|
+
let followerCount = formatter.format((user === null || user === void 0 ? void 0 : (_user$twitchChannelIn = user.twitchChannelInfo) === null || _user$twitchChannelIn === void 0 ? void 0 : _user$twitchChannelIn.followerCount) || 0);
|
|
19
|
+
let createdCount = formatter.format((user === null || user === void 0 ? void 0 : user.totalCreationCount) || 0);
|
|
20
|
+
return /*#__PURE__*/React.createElement(Stack, {
|
|
21
|
+
direction: "row",
|
|
22
|
+
sx: {
|
|
23
|
+
backgroundColor: "grey4.main",
|
|
24
|
+
minWidth: "280px",
|
|
25
|
+
maxWidth: "320px",
|
|
26
|
+
height: collapsed ? "auto" : "121px",
|
|
27
|
+
borderRadius: "12px",
|
|
28
|
+
alignItems: "center",
|
|
29
|
+
padding: "10px",
|
|
30
|
+
boxSizing: "border-box",
|
|
31
|
+
justifyContent: "space-around",
|
|
32
|
+
border: "1px solid transparent",
|
|
33
|
+
borderColor: collapsed ? (user === null || user === void 0 ? void 0 : (_user$twitchChannelIn2 = user.twitchChannelInfo) === null || _user$twitchChannelIn2 === void 0 ? void 0 : _user$twitchChannelIn2.twitchJourneyStatus) === "CHAMPION" ? "#FFFFFF" : (user === null || user === void 0 ? void 0 : (_user$twitchChannelIn3 = user.twitchChannelInfo) === null || _user$twitchChannelIn3 === void 0 ? void 0 : _user$twitchChannelIn3.twitchJourneyStatus) === "AFFILIATE" ? "#27AAFF" : "transparent" : "transparent"
|
|
34
|
+
}
|
|
35
|
+
}, /*#__PURE__*/React.createElement(Stack, {
|
|
36
|
+
sx: {
|
|
37
|
+
position: "relative"
|
|
38
|
+
}
|
|
39
|
+
}, /*#__PURE__*/React.createElement("img", {
|
|
40
|
+
style: {
|
|
41
|
+
width: collapsed ? "49px" : "89px",
|
|
42
|
+
height: collapsed ? "49px" : "89px",
|
|
43
|
+
borderRadius: "50%",
|
|
44
|
+
border: "2px solid transparent",
|
|
45
|
+
borderColor: collapsed ? "transparent" : (user === null || user === void 0 ? void 0 : (_user$twitchChannelIn4 = user.twitchChannelInfo) === null || _user$twitchChannelIn4 === void 0 ? void 0 : _user$twitchChannelIn4.twitchJourneyStatus) === "CHAMPION" ? "#FFFFFF" : (user === null || user === void 0 ? void 0 : (_user$twitchChannelIn5 = user.twitchChannelInfo) === null || _user$twitchChannelIn5 === void 0 ? void 0 : _user$twitchChannelIn5.twitchJourneyStatus) === "AFFILIATE" ? "#27AAFF" : "transparent",
|
|
46
|
+
padding: collapsed ? "3px" : "6px",
|
|
47
|
+
boxSizing: "border-box"
|
|
48
|
+
},
|
|
49
|
+
src: (user === null || user === void 0 ? void 0 : (_user$profileImage = user.profileImage) === null || _user$profileImage === void 0 ? void 0 : (_user$profileImage$or = _user$profileImage.original) === null || _user$profileImage$or === void 0 ? void 0 : _user$profileImage$or.url) || "https://cdn.blerp.com/blerp_products/Icons/Account-White.svg",
|
|
50
|
+
alt: "profile"
|
|
51
|
+
}), (user === null || user === void 0 ? void 0 : (_user$twitchChannelIn6 = user.twitchChannelInfo) === null || _user$twitchChannelIn6 === void 0 ? void 0 : _user$twitchChannelIn6.broadcasterType) === "partner" && /*#__PURE__*/React.createElement(VerifiedRounded, {
|
|
52
|
+
sx: {
|
|
53
|
+
position: "absolute",
|
|
54
|
+
bottom: collapsed ? "0" : "5px",
|
|
55
|
+
right: collapsed ? "0" : "5px",
|
|
56
|
+
fontSize: "17px",
|
|
57
|
+
backgroundColor: "grey4.main",
|
|
58
|
+
borderRadius: "50%"
|
|
59
|
+
}
|
|
60
|
+
}), (user === null || user === void 0 ? void 0 : user.premiumBlerpUserStatus) === "ACTIVE" && /*#__PURE__*/React.createElement(DiamondRounded, {
|
|
61
|
+
sx: {
|
|
62
|
+
position: "absolute",
|
|
63
|
+
bottom: collapsed ? "0" : "5px",
|
|
64
|
+
right: collapsed ? "0" : "5px",
|
|
65
|
+
fontSize: "17px",
|
|
66
|
+
backgroundColor: "grey4.main",
|
|
67
|
+
borderRadius: "50%"
|
|
68
|
+
}
|
|
69
|
+
})), /*#__PURE__*/React.createElement(Stack, {
|
|
70
|
+
sx: {
|
|
71
|
+
flex: 1,
|
|
72
|
+
marginLeft: "20px"
|
|
73
|
+
}
|
|
74
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
75
|
+
sx: {
|
|
76
|
+
fontSize: "18px",
|
|
77
|
+
fontWeight: "300",
|
|
78
|
+
maxWidth: "180px",
|
|
79
|
+
whiteSpace: "nowrap",
|
|
80
|
+
textOverflow: "ellipsis",
|
|
81
|
+
marginBottom: !collapsed && "10px",
|
|
82
|
+
overflow: "hidden",
|
|
83
|
+
cursor: "pointer",
|
|
84
|
+
transition: "0.3s",
|
|
85
|
+
"&:hover": {
|
|
86
|
+
textDecoration: "underline"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
onClick: onUsernameClick
|
|
90
|
+
}, user === null || user === void 0 ? void 0 : user.username), !collapsed && /*#__PURE__*/React.createElement(Stack, {
|
|
91
|
+
direction: "row",
|
|
92
|
+
sx: {
|
|
93
|
+
alignItems: "center",
|
|
94
|
+
justifyContent: "space-around"
|
|
95
|
+
}
|
|
96
|
+
}, /*#__PURE__*/React.createElement(Stack, {
|
|
97
|
+
alignItems: "center",
|
|
98
|
+
sx: {
|
|
99
|
+
cursor: "pointer"
|
|
100
|
+
},
|
|
101
|
+
onClick: onFollowerClick
|
|
102
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
103
|
+
sx: {
|
|
104
|
+
fontSize: "14px",
|
|
105
|
+
fontWeight: "400"
|
|
106
|
+
}
|
|
107
|
+
}, followerCount), /*#__PURE__*/React.createElement(Text, {
|
|
108
|
+
sx: {
|
|
109
|
+
fontSize: "12px",
|
|
110
|
+
fontWeight: "300",
|
|
111
|
+
color: "grey7.main"
|
|
112
|
+
}
|
|
113
|
+
}, "followers")), /*#__PURE__*/React.createElement(Stack, {
|
|
114
|
+
alignItems: "center",
|
|
115
|
+
sx: {
|
|
116
|
+
cursor: "pointer"
|
|
117
|
+
},
|
|
118
|
+
onClick: onCreatedClick
|
|
119
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
120
|
+
sx: {
|
|
121
|
+
fontSize: "14px",
|
|
122
|
+
fontWeight: "400"
|
|
123
|
+
}
|
|
124
|
+
}, createdCount), /*#__PURE__*/React.createElement(Text, {
|
|
125
|
+
sx: {
|
|
126
|
+
fontSize: "12px",
|
|
127
|
+
fontWeight: "300",
|
|
128
|
+
color: "grey7.main"
|
|
129
|
+
}
|
|
130
|
+
}, "created")))));
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
export { UserCard };
|