@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,128 +1,141 @@
1
1
  'use strict';
2
2
 
3
+ var _extends = require('@babel/runtime/helpers/extends');
4
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
3
6
  var React = require('react');
4
- var AddRoundedIcon = require('@mui/icons-material/AddRounded');
5
- var FacebookIcon = require('@mui/icons-material/Facebook');
6
- var InstagramIcon = require('@mui/icons-material/Instagram');
7
- var ModeEditRoundedIcon = require('@mui/icons-material/ModeEditRounded');
8
- var PersonAddRoundedIcon = require('@mui/icons-material/PersonAddRounded');
9
- var PinterestIcon = require('@mui/icons-material/Pinterest');
10
- var TwitterIcon = require('@mui/icons-material/Twitter');
11
- var YouTubeIcon = require('@mui/icons-material/YouTube');
12
- var PersonRemoveRoundedIcon = require('@mui/icons-material/PersonRemoveRounded');
13
7
  var index = require('../index.js');
14
8
  var ScreenSizeHook = require('../ScreenSizeHook.js');
15
- var styled = require('styled-components');
16
- var reactColorExtractor = require('react-color-extractor');
9
+ var helpers = require('../helpers.js');
10
+ var Theme = require('../Theme.js');
17
11
  var Icons = require('../Icons/Icons.js');
18
12
 
19
13
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
14
 
15
+ var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
16
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
17
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
21
18
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
22
- var AddRoundedIcon__default = /*#__PURE__*/_interopDefaultLegacy(AddRoundedIcon);
23
- var FacebookIcon__default = /*#__PURE__*/_interopDefaultLegacy(FacebookIcon);
24
- var InstagramIcon__default = /*#__PURE__*/_interopDefaultLegacy(InstagramIcon);
25
- var ModeEditRoundedIcon__default = /*#__PURE__*/_interopDefaultLegacy(ModeEditRoundedIcon);
26
- var PersonAddRoundedIcon__default = /*#__PURE__*/_interopDefaultLegacy(PersonAddRoundedIcon);
27
- var PinterestIcon__default = /*#__PURE__*/_interopDefaultLegacy(PinterestIcon);
28
- var TwitterIcon__default = /*#__PURE__*/_interopDefaultLegacy(TwitterIcon);
29
- var YouTubeIcon__default = /*#__PURE__*/_interopDefaultLegacy(YouTubeIcon);
30
- var PersonRemoveRoundedIcon__default = /*#__PURE__*/_interopDefaultLegacy(PersonRemoveRoundedIcon);
31
19
 
32
- const UserProfileHeader = _ref => {
33
- var _userData$profileImag, _userData$profileImag2, _userData$headerImage, _userData$headerImage2, _userData$headerImage3, _userData$headerImage4, _userData$profileImag3, _userData$profileImag4, _userData$socialLinks2;
20
+ const _excluded = ["path", "sx", "size"];
21
+
22
+ 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; }
23
+
24
+ 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__default["default"](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
+
26
+ const Icon = _ref => {
27
+ let {
28
+ path,
29
+ sx,
30
+ size = "24px"
31
+ } = _ref,
32
+ props = _objectWithoutProperties__default["default"](_ref, _excluded);
33
+
34
+ return /*#__PURE__*/React__default["default"].createElement(index.Box, _extends__default["default"]({
35
+ component: "svg",
36
+ viewBox: "0 0 24 24",
37
+ width: size,
38
+ height: size,
39
+ fill: "currentColor",
40
+ sx: _objectSpread({
41
+ display: 'inline-block',
42
+ flexShrink: 0
43
+ }, sx)
44
+ }, props), /*#__PURE__*/React__default["default"].createElement("path", {
45
+ d: path
46
+ }));
47
+ };
48
+
49
+ const paths = {
50
+ add: "M18 13h-5v5c0 .55-.45 1-1 1s-1-.45-1-1v-5H6c-.55 0-1-.45-1-1s.45-1 1-1h5V6c0-.55.45-1 1-1s1 .45 1 1v5h5c.55 0 1 .45 1 1s-.45 1-1 1z",
51
+ edit: "M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z",
52
+ personAdd: "M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm-9-2V7H4v3H1v2h3v3h2v-3h3v-2H6zm9 4c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z",
53
+ personRemove: "M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm-9-2V7H4v3H1v2h3v3h2v-3h3v-2H6zm9 4c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z",
54
+ // Simplified
55
+ facebook: "M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2m13 2h-2.5A3.5 3.5 0 0 0 12 8.5V11h-2v3h2v7h3v-7h3v-3h-3V9a1 1 0 0 1 1-1h2V5z",
56
+ twitter: "M22.46 6c-.77.35-1.6.58-2.46.69.88-.53 1.56-1.37 1.88-2.38-.83.5-1.75.85-2.72 1.05C18.37 4.5 17.26 4 16 4c-2.35 0-4.27 1.92-4.27 4.29 0 .34.04.67.11.98C8.28 9.09 5.11 7.38 3 4.79c-.37.63-.58 1.37-.58 2.15 0 1.48.75 2.78 1.89 3.54-.7 0-1.35-.2-1.92-.53v.05c0 2.03 1.44 3.73 3.35 4.12-.35.1-.73.15-1.12.15-.27 0-.54-.03-.8-.08.54 1.66 2.08 2.87 3.91 2.91-1.42 1.12-3.23 1.78-5.2 1.78-.34 0-.67-.02-1-.06C3.04 20.1 5.31 20.8 7.72 20.8c9.27 0 14.34-7.68 14.34-14.34 0-.22 0-.44-.01-.66.98-.7 1.84-1.59 2.51-2.6z",
57
+ instagram: "M7.8 2h8.4C19.4 2 22 4.6 22 7.8v8.4a5.8 5.8 0 0 1-5.8 5.8H7.8C4.6 22 2 19.4 2 16.2V7.8A5.8 5.8 0 0 1 7.8 2m-.2 2A3.6 3.6 0 0 0 4 7.6v8.8C4 18.39 5.61 20 7.6 20h8.8a3.6 3.6 0 0 0 3.6-3.6V7.6C20 5.61 18.39 4 16.4 4H7.6m9.65 1.5a1.25 1.25 0 0 1 1.25 1.25A1.25 1.25 0 0 1 17.25 8 1.25 1.25 0 0 1 16 6.75a1.25 1.25 0 0 1 1.25-1.25M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3z",
58
+ youtube: "M10 15l5.19-3L10 9v6m11.56-7.83c.13.47.22 1.1.28 1.9.07.8.1 1.49.1 2.09L22 12c0 2.19-.16 3.8-.44 4.83-.25.9-.83 1.48-1.73 1.73-.47.13-1.33.22-2.65.28-1.3.07-2.49.1-3.59.1L12 19c-4.19 0-6.8-.16-7.83-.44-.9-.25-1.48-.83-1.73-1.73-.13-.47-.22-1.1-.28-1.9-.07-.8-.1-1.49-.1-2.09L2 12c0-2.19.16-3.8.44-4.83.25-.9.83-1.48 1.73-1.73.47-.13 1.33-.22 2.65-.28 1.3-.07 2.49-.1 3.59-.1L12 5c4.19 0 6.8.16 7.83.44.9.25 1.48.83 1.73 1.73z",
59
+ pinterest: "M12.2 2C7.12 2 3 6.12 3 11.2c0 3.9 2.42 7.23 5.87 8.58-.08-.72-.15-1.83.03-2.62.16-.71 1.05-4.44 1.05-4.44s-.27-.54-.27-1.33c0-1.25.72-2.18 1.63-2.18.77 0 1.14.58 1.14 1.27 0 .77-.49 1.93-.74 3-.21.87.44 1.58 1.29 1.58 1.55 0 2.74-1.64 2.74-4 0-2.09-1.5-3.55-3.64-3.55-2.48 0-3.93 1.86-3.93 3.77 0 .75.29 1.55.65 1.99.07.09.08.17.06.25-.07.28-.22.88-.25.99-.04.16-.14.2-.32.11-1.19-.55-1.93-2.3-1.93-3.7 0-3.02 2.2-5.78 6.32-5.78 3.32 0 5.89 2.36 5.89 5.52 0 3.3-2.08 5.96-4.97 5.96-.97 0-1.88-.5-2.2-.1l-.59 2.27c-.22.82-.8 1.85-1.19 2.48 1.1.34 2.26.52 3.47.52 5.08 0 9.2-4.12 9.2-9.2C21.4 6.12 17.28 2 12.2 2z"
60
+ };
61
+
62
+ const UserProfileHeader = _ref2 => {
63
+ var _userData$profileImag3, _userData$profileImag4, _userData$headerImage, _userData$headerImage2, _userData$headerImage3, _userData$headerImage4, _userData$profileImag5, _userData$profileImag6, _userData$socialLinks2;
34
64
 
35
65
  let {
36
66
  followUser,
37
67
  isOwner,
38
68
  userData,
39
69
  openEdit
40
- } = _ref;
41
- const theme = React.useContext(styled.ThemeContext);
70
+ } = _ref2;
71
+ const theme = Theme.useBlerpTheme();
42
72
  const [profileColors, setProfileColors] = React.useState(null);
43
73
  const size = ScreenSizeHook.useWindowSize();
74
+ React.useEffect(() => {
75
+ var _userData$profileImag, _userData$profileImag2;
76
+
77
+ if (userData !== null && userData !== void 0 && (_userData$profileImag = userData.profileImage) !== null && _userData$profileImag !== void 0 && (_userData$profileImag2 = _userData$profileImag.original) !== null && _userData$profileImag2 !== void 0 && _userData$profileImag2.url) {
78
+ helpers.extractDominantColor(userData.profileImage.original.url, setProfileColors);
79
+ }
80
+ }, [userData === null || userData === void 0 ? void 0 : (_userData$profileImag3 = userData.profileImage) === null || _userData$profileImag3 === void 0 ? void 0 : (_userData$profileImag4 = _userData$profileImag3.original) === null || _userData$profileImag4 === void 0 ? void 0 : _userData$profileImag4.url]);
44
81
 
45
82
  const renderSocialLinks = () => {
46
83
  var _userData$socialLinks;
47
84
 
48
85
  return userData === null || userData === void 0 ? void 0 : (_userData$socialLinks = userData.socialLinks) === null || _userData$socialLinks === void 0 ? void 0 : _userData$socialLinks.map((socialItem, index) => {
49
86
  let icon;
87
+ const commonSx = {
88
+ color: "notBlack.main",
89
+ cursor: "pointer",
90
+ ":hover": {
91
+ color: "starling.main"
92
+ }
93
+ };
50
94
 
51
95
  switch (socialItem.name) {
52
96
  case "twitch":
53
- icon = /*#__PURE__*/React__default['default'].createElement(Icons.TwitchIcon, {
54
- sx: {
55
- color: "notBlack.main",
56
- cursor: "pointer",
57
- ":hover": {
58
- color: "starling.main"
59
- }
60
- }
97
+ icon = /*#__PURE__*/React__default["default"].createElement(Icons.TwitchIcon, {
98
+ sx: commonSx
61
99
  });
62
100
  break;
63
101
 
64
102
  case "twitter":
65
- icon = /*#__PURE__*/React__default['default'].createElement(TwitterIcon__default['default'], {
66
- sx: {
67
- color: "notBlack.main",
68
- cursor: "pointer",
69
- ":hover": {
70
- color: "starling.main"
71
- }
72
- }
103
+ icon = /*#__PURE__*/React__default["default"].createElement(Icon, {
104
+ path: paths.twitter,
105
+ sx: commonSx
73
106
  });
74
107
  break;
75
108
 
76
109
  case "youtube":
77
- icon = /*#__PURE__*/React__default['default'].createElement(YouTubeIcon__default['default'], {
78
- sx: {
79
- color: "notBlack.main",
80
- cursor: "pointer",
81
- ":hover": {
82
- color: "starling.main"
83
- }
84
- }
110
+ icon = /*#__PURE__*/React__default["default"].createElement(Icon, {
111
+ path: paths.youtube,
112
+ sx: commonSx
85
113
  });
86
114
  break;
87
115
 
88
116
  case "instagram":
89
- icon = /*#__PURE__*/React__default['default'].createElement(InstagramIcon__default['default'], {
90
- sx: {
91
- color: "notBlack.main",
92
- cursor: "pointer",
93
- ":hover": {
94
- color: "starling.main"
95
- }
96
- }
117
+ icon = /*#__PURE__*/React__default["default"].createElement(Icon, {
118
+ path: paths.instagram,
119
+ sx: commonSx
97
120
  });
98
121
  break;
99
122
 
100
123
  case "pinterest":
101
- icon = /*#__PURE__*/React__default['default'].createElement(PinterestIcon__default['default'], {
102
- sx: {
103
- color: "notBlack.main",
104
- cursor: "pointer",
105
- ":hover": {
106
- color: "starling.main"
107
- }
108
- }
124
+ icon = /*#__PURE__*/React__default["default"].createElement(Icon, {
125
+ path: paths.pinterest,
126
+ sx: commonSx
109
127
  });
110
128
  break;
111
129
 
112
130
  case "facebook":
113
- icon = /*#__PURE__*/React__default['default'].createElement(FacebookIcon__default['default'], {
114
- sx: {
115
- color: "notBlack.main",
116
- cursor: "pointer",
117
- ":hover": {
118
- color: "starling.main"
119
- }
120
- }
131
+ icon = /*#__PURE__*/React__default["default"].createElement(Icon, {
132
+ path: paths.facebook,
133
+ sx: commonSx
121
134
  });
122
135
  break;
123
136
  }
124
137
 
125
- return /*#__PURE__*/React__default['default'].createElement("a", {
138
+ return /*#__PURE__*/React__default["default"].createElement("a", {
126
139
  key: socialItem.name + index,
127
140
  target: "_blank",
128
141
  href: socialItem.link,
@@ -135,10 +148,7 @@ const UserProfileHeader = _ref => {
135
148
  });
136
149
  };
137
150
 
138
- return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement(reactColorExtractor.ColorExtractor, {
139
- src: userData === null || userData === void 0 ? void 0 : (_userData$profileImag = userData.profileImage) === null || _userData$profileImag === void 0 ? void 0 : (_userData$profileImag2 = _userData$profileImag.original) === null || _userData$profileImag2 === void 0 ? void 0 : _userData$profileImag2.url,
140
- getColors: colors => setProfileColors(colors)
141
- }), /*#__PURE__*/React__default['default'].createElement(index.Stack, {
151
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(index.Stack, {
142
152
  width: "100%",
143
153
  sx: {
144
154
  height: "250px",
@@ -151,7 +161,7 @@ const UserProfileHeader = _ref => {
151
161
  position: "relative",
152
162
  overflow: "hidden"
153
163
  }
154
- }, isOwner && /*#__PURE__*/React__default['default'].createElement(index.IconButton, {
164
+ }, isOwner && /*#__PURE__*/React__default["default"].createElement(index.IconButton, {
155
165
  sx: {
156
166
  position: "absolute",
157
167
  top: "10px",
@@ -164,9 +174,10 @@ const UserProfileHeader = _ref => {
164
174
  }
165
175
  },
166
176
  onClick: () => openEdit()
167
- }, /*#__PURE__*/React__default['default'].createElement(ModeEditRoundedIcon__default['default'], {
168
- fontSize: "16px"
169
- })), /*#__PURE__*/React__default['default'].createElement(index.Stack, {
177
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
178
+ path: paths.edit,
179
+ size: "16px"
180
+ })), /*#__PURE__*/React__default["default"].createElement(index.Stack, {
170
181
  direction: "row",
171
182
  width: "80%",
172
183
  maxWidth: "1300px",
@@ -175,7 +186,7 @@ const UserProfileHeader = _ref => {
175
186
  justifyContent: "space-between",
176
187
  alignItems: "flex-end",
177
188
  height: "50%"
178
- }, /*#__PURE__*/React__default['default'].createElement(index.Box, {
189
+ }, /*#__PURE__*/React__default["default"].createElement(index.Box, {
179
190
  sx: {
180
191
  background: "linear-gradient(135deg, ".concat(profileColors ? profileColors[0] : theme.colors.ibisRed, ", ").concat(profileColors ? profileColors[1] : theme.colors.starling, ")"),
181
192
  boxShadow: "5px 5px 15px #0000009c"
@@ -183,12 +194,12 @@ const UserProfileHeader = _ref => {
183
194
  borderRadius: "8px",
184
195
  width: "400px",
185
196
  height: "100%"
186
- }, /*#__PURE__*/React__default['default'].createElement(index.Stack, {
197
+ }, /*#__PURE__*/React__default["default"].createElement(index.Stack, {
187
198
  direction: "row",
188
199
  height: "100%",
189
200
  alignItems: "center",
190
201
  position: "relative"
191
- }, /*#__PURE__*/React__default['default'].createElement(index.IconButton, {
202
+ }, /*#__PURE__*/React__default["default"].createElement(index.IconButton, {
192
203
  sx: {
193
204
  position: "absolute",
194
205
  padding: "5px",
@@ -211,13 +222,16 @@ const UserProfileHeader = _ref => {
211
222
  }
212
223
  });
213
224
  }
214
- }, isOwner ? /*#__PURE__*/React__default['default'].createElement(ModeEditRoundedIcon__default['default'], {
215
- fontSize: "small"
216
- }) : userData !== null && userData !== void 0 && userData.loggedInIsFollower ? /*#__PURE__*/React__default['default'].createElement(PersonRemoveRoundedIcon__default['default'], {
217
- fontSize: "small"
218
- }) : /*#__PURE__*/React__default['default'].createElement(PersonAddRoundedIcon__default['default'], {
219
- fontSize: "small"
220
- })), /*#__PURE__*/React__default['default'].createElement("img", {
225
+ }, isOwner ? /*#__PURE__*/React__default["default"].createElement(Icon, {
226
+ path: paths.edit,
227
+ size: "20px"
228
+ }) : userData !== null && userData !== void 0 && userData.loggedInIsFollower ? /*#__PURE__*/React__default["default"].createElement(Icon, {
229
+ path: paths.personRemove,
230
+ size: "20px"
231
+ }) : /*#__PURE__*/React__default["default"].createElement(Icon, {
232
+ path: paths.personAdd,
233
+ size: "20px"
234
+ })), /*#__PURE__*/React__default["default"].createElement("img", {
221
235
  style: {
222
236
  borderRadius: "50%",
223
237
  objectFit: "cover",
@@ -226,20 +240,20 @@ const UserProfileHeader = _ref => {
226
240
  margin: "0 20px"
227
241
  },
228
242
  alt: "profile img",
229
- src: userData === null || userData === void 0 ? void 0 : (_userData$profileImag3 = userData.profileImage) === null || _userData$profileImag3 === void 0 ? void 0 : (_userData$profileImag4 = _userData$profileImag3.original) === null || _userData$profileImag4 === void 0 ? void 0 : _userData$profileImag4.url
230
- }), /*#__PURE__*/React__default['default'].createElement(index.Stack, {
243
+ src: userData === null || userData === void 0 ? void 0 : (_userData$profileImag5 = userData.profileImage) === null || _userData$profileImag5 === void 0 ? void 0 : (_userData$profileImag6 = _userData$profileImag5.original) === null || _userData$profileImag6 === void 0 ? void 0 : _userData$profileImag6.url
244
+ }), /*#__PURE__*/React__default["default"].createElement(index.Stack, {
231
245
  marginLeft: "20px"
232
- }, /*#__PURE__*/React__default['default'].createElement(index.Stack, {
246
+ }, /*#__PURE__*/React__default["default"].createElement(index.Stack, {
233
247
  direction: "row"
234
- }, /*#__PURE__*/React__default['default'].createElement(index.Text, {
248
+ }, /*#__PURE__*/React__default["default"].createElement(index.Text, {
235
249
  noWrap: true,
236
250
  maxWidth: "200px",
237
251
  color: "white.override",
238
252
  lineHeight: "51px",
239
253
  fontSize: size.width <= 600 ? "30px" : "47px"
240
- }, userData === null || userData === void 0 ? void 0 : userData.username)), /*#__PURE__*/React__default['default'].createElement(index.Stack, {
254
+ }, userData === null || userData === void 0 ? void 0 : userData.username)), /*#__PURE__*/React__default["default"].createElement(index.Stack, {
241
255
  direction: "row",
242
- divider: /*#__PURE__*/React__default['default'].createElement(index.Divider, {
256
+ divider: /*#__PURE__*/React__default["default"].createElement(index.Divider, {
243
257
  orientation: "vertical",
244
258
  flexItem: true,
245
259
  sx: {
@@ -247,13 +261,13 @@ const UserProfileHeader = _ref => {
247
261
  margin: "5px"
248
262
  }
249
263
  })
250
- }, /*#__PURE__*/React__default['default'].createElement(index.Text, {
264
+ }, /*#__PURE__*/React__default["default"].createElement(index.Text, {
251
265
  color: "white.override",
252
266
  fontSize: "16px"
253
- }, userData === null || userData === void 0 ? void 0 : userData.followerCount, " Followers"), /*#__PURE__*/React__default['default'].createElement(index.Text, {
267
+ }, userData === null || userData === void 0 ? void 0 : userData.followerCount, " Followers"), /*#__PURE__*/React__default["default"].createElement(index.Text, {
254
268
  color: "white.override",
255
269
  fontSize: "16px"
256
- }, userData === null || userData === void 0 ? void 0 : userData.followingCount, " Following"))))), /*#__PURE__*/React__default['default'].createElement(index.Stack, {
270
+ }, userData === null || userData === void 0 ? void 0 : userData.followingCount, " Following"))))), /*#__PURE__*/React__default["default"].createElement(index.Stack, {
257
271
  direction: "row",
258
272
  backgroundColor: "grey2.main",
259
273
  borderRadius: "8px",
@@ -261,10 +275,10 @@ const UserProfileHeader = _ref => {
261
275
  alignItems: "center",
262
276
  marginTop: "20px",
263
277
  justifyContent: "space-around"
264
- }, isOwner ? (userData === null || userData === void 0 ? void 0 : (_userData$socialLinks2 = userData.socialLinks) === null || _userData$socialLinks2 === void 0 ? void 0 : _userData$socialLinks2.length) === 0 ? /*#__PURE__*/React__default['default'].createElement(index.Button, {
278
+ }, isOwner ? (userData === null || userData === void 0 ? void 0 : (_userData$socialLinks2 = userData.socialLinks) === null || _userData$socialLinks2 === void 0 ? void 0 : _userData$socialLinks2.length) === 0 ? /*#__PURE__*/React__default["default"].createElement(index.Button, {
265
279
  variant: "text",
266
280
  onClick: () => openEdit()
267
- }, "+ New Social") : /*#__PURE__*/React__default['default'].createElement(index.IconButton, {
281
+ }, "+ New Social") : /*#__PURE__*/React__default["default"].createElement(index.IconButton, {
268
282
  sx: {
269
283
  cursor: "pointer",
270
284
  color: "notBlack.main",
@@ -275,9 +289,10 @@ const UserProfileHeader = _ref => {
275
289
  }
276
290
  },
277
291
  onClick: () => openEdit()
278
- }, /*#__PURE__*/React__default['default'].createElement(AddRoundedIcon__default['default'], {
279
- fontSize: "16px"
280
- })) : /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null), renderSocialLinks()))));
292
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
293
+ path: paths.add,
294
+ size: "16px"
295
+ })) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null), renderSocialLinks()))));
281
296
  };
282
297
 
283
298
  module.exports = UserProfileHeader;
@@ -2,14 +2,19 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
6
  var React = require('react');
6
7
  var index = require('./index.js');
7
8
  var UserCard = require('./UserCard.js');
8
9
 
9
10
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
11
 
12
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
11
13
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
14
 
15
+ 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; }
16
+
17
+ 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__default["default"](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; }
13
18
  const UsernameWithPopout = _ref => {
14
19
  let {
15
20
  user,
@@ -21,7 +26,7 @@ const UsernameWithPopout = _ref => {
21
26
  } = _ref;
22
27
  const [userCardRef, setUserCardRef] = React.useState(null);
23
28
  const openUserCard = Boolean(userCardRef);
24
- return /*#__PURE__*/React__default['default'].createElement(index.Stack, {
29
+ return /*#__PURE__*/React__default["default"].createElement(index.Stack, {
25
30
  direction: "row",
26
31
  onClick: e => {
27
32
  setUserCardRef(e.target);
@@ -34,7 +39,7 @@ const UsernameWithPopout = _ref => {
34
39
  onMouseLeave: e => {
35
40
  setUserCardRef(null);
36
41
  }
37
- }, /*#__PURE__*/React__default['default'].createElement(index.Popover, {
42
+ }, /*#__PURE__*/React__default["default"].createElement(index.Popover, {
38
43
  open: openUserCard,
39
44
  anchorEl: userCardRef,
40
45
  anchorOrigin: {
@@ -65,14 +70,14 @@ const UsernameWithPopout = _ref => {
65
70
  }
66
71
  } // onClose={() => setUserCardRef(null)}
67
72
 
68
- }, /*#__PURE__*/React__default['default'].createElement(UserCard.UserCard, {
73
+ }, /*#__PURE__*/React__default["default"].createElement(UserCard.UserCard, {
69
74
  onUsernameClick: onUsernameClick,
70
75
  onFollowerClick: onFollowerClick,
71
76
  onCreatedClick: onCreatedClick,
72
77
  collapsed: collapsed,
73
78
  user: user
74
- })), /*#__PURE__*/React__default['default'].createElement(index.Text, {
75
- sx: {
79
+ })), /*#__PURE__*/React__default["default"].createElement(index.Text, {
80
+ sx: _objectSpread({
76
81
  fontWeight: "300",
77
82
  fontSize: "12px",
78
83
  color: "grey7.main",
@@ -83,9 +88,8 @@ const UsernameWithPopout = _ref => {
83
88
  cursor: "pointer",
84
89
  "&:hover": {
85
90
  textDecoration: "underline"
86
- },
87
- ...textStyle
88
- },
91
+ }
92
+ }, textStyle),
89
93
  onClick: onUsernameClick
90
94
  }, user === null || user === void 0 ? void 0 : user.username));
91
95
  };
@@ -2,6 +2,16 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
+
9
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
10
+
11
+ 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; }
12
+
13
+ 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__default["default"](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; }
14
+
5
15
  let colors = {
6
16
  white: "#ffffff",
7
17
  waxing: "#F3F3F3",
@@ -72,10 +82,8 @@ let overrideColors = {
72
82
  buntingBlueOverride: colors.buntingBlue,
73
83
  popnYellowOverride: colors.popnYellow
74
84
  };
75
- const lightColors = { ...colors,
76
- ...overrideColors
77
- };
78
- const darkColors = {
85
+ const lightColors = _objectSpread(_objectSpread({}, colors), overrideColors);
86
+ const darkColors = _objectSpread({
79
87
  white: colors.black,
80
88
  waxwing: colors.grey8Dark,
81
89
  grey1: colors.grey1Dark,
@@ -97,9 +105,8 @@ const darkColors = {
97
105
  seafoam: colors.seafoam,
98
106
  seafoamDark: colors.seafoamDark,
99
107
  buntingBlue: colors.buntingBlue,
100
- popnYellow: colors.popnYellow,
101
- ...overrideColors
102
- };
108
+ popnYellow: colors.popnYellow
109
+ }, overrideColors);
103
110
  const lightPalette = {
104
111
  primary: {
105
112
  light: colors.ibisRed,
@@ -362,7 +369,7 @@ const darkPalette = {
362
369
 
363
370
  exports.darkColors = darkColors;
364
371
  exports.darkPalette = darkPalette;
365
- exports.default = colors;
372
+ exports["default"] = colors;
366
373
  exports.lightColors = lightColors;
367
374
  exports.lightPalette = lightPalette;
368
375
  exports.overrideColors = overrideColors;
@@ -0,0 +1,131 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
+
9
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
+
11
+ // Remove this import:
12
+
13
+ const extractDominantColor = (imageUrl, callback) => {
14
+ const img = new Image();
15
+ img.crossOrigin = "Anonymous";
16
+ img.src = imageUrl;
17
+
18
+ img.onload = () => {
19
+ const canvas = document.createElement("canvas");
20
+ const ctx = canvas.getContext("2d");
21
+ canvas.width = img.width;
22
+ canvas.height = img.height;
23
+ ctx.drawImage(img, 0, 0);
24
+ const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
25
+ const data = imageData.data;
26
+ let r = 0,
27
+ g = 0,
28
+ b = 0;
29
+
30
+ for (let i = 0; i < data.length; i += 4) {
31
+ r += data[i];
32
+ g += data[i + 1];
33
+ b += data[i + 2];
34
+ }
35
+
36
+ const pixelCount = data.length / 4;
37
+ r = Math.floor(r / pixelCount);
38
+ g = Math.floor(g / pixelCount);
39
+ b = Math.floor(b / pixelCount);
40
+ callback(["rgb(".concat(r, ", ").concat(g, ", ").concat(b, ")")]);
41
+ };
42
+ }; // Custom palette extraction for components that need vibrant/darkVibrant colors
43
+
44
+ const useCustomPalette = imageUrl => {
45
+ const [palette, setPalette] = React__default["default"].useState({
46
+ loading: true,
47
+ data: {
48
+ vibrant: null,
49
+ darkVibrant: null
50
+ },
51
+ error: null
52
+ });
53
+ React__default["default"].useEffect(() => {
54
+ if (!imageUrl) {
55
+ setPalette({
56
+ loading: false,
57
+ data: {
58
+ vibrant: null,
59
+ darkVibrant: null
60
+ },
61
+ error: null
62
+ });
63
+ return;
64
+ }
65
+
66
+ const img = new Image();
67
+ img.crossOrigin = "Anonymous";
68
+ img.src = imageUrl;
69
+
70
+ img.onload = () => {
71
+ try {
72
+ const canvas = document.createElement("canvas");
73
+ const ctx = canvas.getContext("2d");
74
+ canvas.width = img.width;
75
+ canvas.height = img.height;
76
+ ctx.drawImage(img, 0, 0);
77
+ const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
78
+ const data = imageData.data;
79
+ let r = 0,
80
+ g = 0,
81
+ b = 0;
82
+
83
+ for (let i = 0; i < data.length; i += 4) {
84
+ r += data[i];
85
+ g += data[i + 1];
86
+ b += data[i + 2];
87
+ }
88
+
89
+ const pixelCount = data.length / 4;
90
+ r = Math.floor(r / pixelCount);
91
+ g = Math.floor(g / pixelCount);
92
+ b = Math.floor(b / pixelCount);
93
+ const vibrant = "rgb(".concat(Math.min(r + 20, 255), ", ").concat(Math.min(g + 20, 255), ", ").concat(Math.min(b + 20, 255), ")");
94
+ const darkVibrant = "rgb(".concat(Math.floor(r * 0.6), ", ").concat(Math.floor(g * 0.6), ", ").concat(Math.floor(b * 0.6), ")");
95
+ setPalette({
96
+ loading: false,
97
+ data: {
98
+ vibrant,
99
+ darkVibrant
100
+ },
101
+ error: null
102
+ });
103
+ } catch (error) {
104
+ console.error("Palette extraction failed:", error);
105
+ setPalette({
106
+ loading: false,
107
+ data: {
108
+ vibrant: null,
109
+ darkVibrant: null
110
+ },
111
+ error: error.message
112
+ });
113
+ }
114
+ };
115
+
116
+ img.onerror = () => {
117
+ setPalette({
118
+ loading: false,
119
+ data: {
120
+ vibrant: null,
121
+ darkVibrant: null
122
+ },
123
+ error: "Image failed to load"
124
+ });
125
+ };
126
+ }, [imageUrl]);
127
+ return palette;
128
+ };
129
+
130
+ exports.extractDominantColor = extractDominantColor;
131
+ exports.useCustomPalette = useCustomPalette;