@blerp/design 1.3.17 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/cjs/Blerp/BlerpImageRow.js +176 -57
  2. package/dist/cjs/Blerp/BlerpSavePopup.js +44 -40
  3. package/dist/cjs/Blerp/BlerpTitleRow.js +36 -19
  4. package/dist/cjs/Blerp/BlerpTopRow.js +110 -44
  5. package/dist/cjs/Blerp.js +9 -16
  6. package/dist/cjs/BlerpAudioContextProvider.js +2 -2
  7. package/dist/cjs/BlerpListView.js +318 -168
  8. package/dist/cjs/BlerpListViewPremium.js +155 -130
  9. package/dist/cjs/BlerpListViewSkeleton.js +60 -13
  10. package/dist/cjs/BlerpSkeleton.js +32 -9
  11. package/dist/cjs/CollectionCard.js +139 -60
  12. package/dist/cjs/CollectionListViewPremium.js +368 -297
  13. package/dist/cjs/CollectionSkeleton.js +74 -13
  14. package/dist/cjs/Dropdown.js +272 -172
  15. package/dist/cjs/EllipsisLoader.js +66 -21
  16. package/dist/cjs/GroupCard.js +64 -57
  17. package/dist/cjs/Icons/Icons.js +288 -426
  18. package/dist/cjs/ImageEditor.js +247 -0
  19. package/dist/cjs/ImageUpload.js +226 -0
  20. package/dist/cjs/NewBlerp.js +354 -160
  21. package/dist/cjs/NewBlerpTest.js +10 -792
  22. package/dist/cjs/NewCollectionModal.js +294 -310
  23. package/dist/cjs/PremiumCollectionCard.js +191 -454
  24. package/dist/cjs/PurchaseModals/CheckoutModal.js +1 -1
  25. package/dist/cjs/PurchaseModals/PremiumBlerpCheckoutModal.js +1 -1
  26. package/dist/cjs/PurchaseModals/PremiumCollectionCheckoutModal.js +1 -1
  27. package/dist/cjs/PurchaseModals/PremiumSubscriptionCheckoutModal.js +1 -1
  28. package/dist/cjs/ReactionButtons.js +26 -13
  29. package/dist/cjs/SnackbarContextProvider.js +200 -116
  30. package/dist/cjs/Theme.js +217 -90
  31. package/dist/cjs/Toggle.js +86 -32
  32. package/dist/cjs/UserCard.js +13 -32
  33. package/dist/cjs/UserPage/LibraryControls.js +180 -93
  34. package/dist/cjs/UserPage/UserLibraryHeader.js +23 -14
  35. package/dist/cjs/UserPage/UserProfileHeader.js +120 -105
  36. package/dist/cjs/UsernameWithPopout.js +12 -8
  37. package/dist/cjs/colors.js +15 -8
  38. package/dist/cjs/helpers.js +131 -0
  39. package/dist/cjs/index.js +92 -58
  40. package/dist/cjs/neo-components/Autocomplete.js +285 -0
  41. package/dist/cjs/neo-components/BottomNavigation.js +120 -0
  42. package/dist/cjs/neo-components/Box.js +48 -0
  43. package/dist/cjs/neo-components/Button.js +206 -0
  44. package/dist/cjs/neo-components/CircularProgress.js +92 -0
  45. package/dist/cjs/neo-components/Container.js +75 -0
  46. package/dist/cjs/neo-components/Dialog.js +441 -0
  47. package/dist/cjs/neo-components/Fab.js +237 -0
  48. package/dist/cjs/neo-components/FormControls.js +1057 -0
  49. package/dist/cjs/neo-components/Grid.js +256 -0
  50. package/dist/cjs/neo-components/IconButton.js +111 -0
  51. package/dist/cjs/neo-components/Input.js +495 -0
  52. package/dist/cjs/neo-components/Layout.js +1214 -0
  53. package/dist/cjs/neo-components/Misc.js +868 -0
  54. package/dist/cjs/neo-components/Navigation.js +1616 -0
  55. package/dist/cjs/neo-components/Paper.js +256 -0
  56. package/dist/cjs/neo-components/Stack.js +194 -0
  57. package/dist/cjs/neo-components/Stepper.js +291 -0
  58. package/dist/cjs/neo-components/Text.js +290 -0
  59. package/dist/cjs/neo-components/ThemeProvider.js +731 -0
  60. package/dist/cjs/neo-components/ToggleButton.js +223 -0
  61. package/dist/cjs/neo-components/createTheme.js +306 -0
  62. package/dist/cjs/neo-components/withSx.js +171 -0
  63. package/dist/cjs/neo-utils/sxToStyle.js +508 -0
  64. package/dist/esm/Blerp/BlerpImageRow.js +166 -46
  65. package/dist/esm/Blerp/BlerpSavePopup.js +35 -27
  66. package/dist/esm/Blerp/BlerpTitleRow.js +32 -13
  67. package/dist/esm/Blerp/BlerpTopRow.js +85 -16
  68. package/dist/esm/Blerp.js +4 -12
  69. package/dist/esm/BlerpAudioContextProvider.js +1 -2
  70. package/dist/esm/BlerpListView.js +313 -160
  71. package/dist/esm/BlerpListViewPremium.js +135 -109
  72. package/dist/esm/BlerpListViewSkeleton.js +60 -11
  73. package/dist/esm/BlerpSkeleton.js +32 -7
  74. package/dist/esm/CollectionCard.js +118 -38
  75. package/dist/esm/CollectionListViewPremium.js +367 -294
  76. package/dist/esm/CollectionSkeleton.js +73 -11
  77. package/dist/esm/Dropdown.js +260 -161
  78. package/dist/esm/EllipsisLoader.js +63 -18
  79. package/dist/esm/GroupCard.js +54 -46
  80. package/dist/esm/Icons/Icons.js +226 -367
  81. package/dist/esm/ImageEditor.js +240 -0
  82. package/dist/esm/ImageUpload.js +217 -0
  83. package/dist/esm/NewBlerp.js +282 -79
  84. package/dist/esm/NewBlerpTest.js +11 -781
  85. package/dist/esm/NewCollectionModal.js +289 -304
  86. package/dist/esm/PremiumCollectionCard.js +192 -451
  87. package/dist/esm/PurchaseModals/CheckoutModal.js +1 -1
  88. package/dist/esm/PurchaseModals/PremiumBlerpCheckoutModal.js +1 -1
  89. package/dist/esm/PurchaseModals/PremiumCollectionCheckoutModal.js +1 -1
  90. package/dist/esm/PurchaseModals/PremiumSubscriptionCheckoutModal.js +1 -1
  91. package/dist/esm/ReactionButtons.js +23 -8
  92. package/dist/esm/SnackbarContextProvider.js +196 -110
  93. package/dist/esm/Theme.js +187 -66
  94. package/dist/esm/Toggle.js +84 -29
  95. package/dist/esm/UserCard.js +1 -20
  96. package/dist/esm/UserPage/LibraryControls.js +159 -65
  97. package/dist/esm/UserPage/UserLibraryHeader.js +18 -10
  98. package/dist/esm/UserPage/UserProfileHeader.js +100 -79
  99. package/dist/esm/UsernameWithPopout.js +7 -4
  100. package/dist/esm/colors.js +11 -9
  101. package/dist/esm/helpers.js +122 -0
  102. package/dist/esm/icons.js +1 -1
  103. package/dist/esm/index.js +32 -2
  104. package/dist/esm/neo-components/Autocomplete.js +274 -0
  105. package/dist/esm/neo-components/BottomNavigation.js +109 -0
  106. package/dist/esm/neo-components/Box.js +36 -0
  107. package/dist/esm/neo-components/Button.js +194 -0
  108. package/dist/esm/neo-components/CircularProgress.js +81 -0
  109. package/dist/esm/neo-components/Container.js +63 -0
  110. package/dist/esm/neo-components/Dialog.js +423 -0
  111. package/dist/esm/neo-components/Fab.js +225 -0
  112. package/dist/esm/neo-components/FormControls.js +1041 -0
  113. package/dist/esm/neo-components/Grid.js +244 -0
  114. package/dist/esm/neo-components/IconButton.js +99 -0
  115. package/dist/esm/neo-components/Input.js +480 -0
  116. package/dist/esm/neo-components/Layout.js +1180 -0
  117. package/dist/esm/neo-components/Misc.js +850 -0
  118. package/dist/esm/neo-components/Navigation.js +1594 -0
  119. package/dist/esm/neo-components/Paper.js +243 -0
  120. package/dist/esm/neo-components/Stack.js +182 -0
  121. package/dist/esm/neo-components/Stepper.js +278 -0
  122. package/dist/esm/neo-components/Text.js +277 -0
  123. package/dist/esm/neo-components/ThemeProvider.js +718 -0
  124. package/dist/esm/neo-components/ToggleButton.js +214 -0
  125. package/dist/esm/neo-components/createTheme.js +297 -0
  126. package/dist/esm/neo-components/withSx.js +160 -0
  127. package/dist/esm/neo-utils/sxToStyle.js +502 -0
  128. package/package.json +19 -15
package/dist/esm/Theme.js CHANGED
@@ -1,13 +1,138 @@
1
- import React from 'react';
2
- import { createTheme, ThemeProvider } from '@mui/material/styles';
3
- import { ThemeProvider as ThemeProvider$1 } from 'styled-components';
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import React, { useContext, useMemo, createContext } from 'react';
4
3
  import icons from './icons.js';
5
- import colors, { lightColors, lightPalette, darkColors, darkPalette } from './colors.js';
6
- import { mainTheme } from './index.js';
4
+ import colors, { darkColors, darkPalette, lightColors, lightPalette } from './colors.js';
7
5
  import { SnackbarProvider } from './SnackbarContextProvider.js';
6
+ import { ThemeProvider } from './neo-components/ThemeProvider.js';
7
+ import '@babel/runtime/helpers/extends';
8
+ import '@babel/runtime/helpers/objectWithoutProperties';
9
+ import './neo-components/Box.js';
10
+ import './neo-components/Stack.js';
11
+ import './neo-components/Grid.js';
12
+ import './neo-components/Container.js';
13
+ import './neo-components/Text.js';
14
+ import './neo-components/Button.js';
15
+ import './neo-components/IconButton.js';
16
+ import './neo-components/Fab.js';
17
+ import './neo-components/ToggleButton.js';
18
+ import './neo-components/Input.js';
19
+ import './neo-components/FormControls.js';
20
+ import './neo-components/Autocomplete.js';
21
+ import './neo-components/Paper.js';
22
+ import './neo-components/Dialog.js';
23
+ import './neo-components/Navigation.js';
24
+ import './neo-components/BottomNavigation.js';
25
+ import './neo-components/Stepper.js';
26
+ import './neo-components/Misc.js';
27
+ import './neo-components/Layout.js';
8
28
 
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({
29
+ 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; }
30
+
31
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
32
+ const mainTheme = {
33
+ pandaPink: "#FE295C",
34
+ pandaTeal: "#FE295C",
35
+ pandaNewTeal: "#49bea0",
36
+ darkTeal: "#058063",
37
+ whiteText: "#FFFFFF",
38
+ invertFlyoutBackground: "#170D11",
39
+ flyoutBackground: "#FFFFFF",
40
+ lighterBackground: "#F8F8F8",
41
+ defaultBackground: "#F3F3F3",
42
+ lighterGray: "#BDBDBB",
43
+ iconsActive: "#21000C",
44
+ iconsInActive: "#47463F",
45
+ headerText: "#21000C",
46
+ disabledText: "#BEBEBC",
47
+ lightGray: "#BEBEBC",
48
+ blastZone: "#E1E1E1",
49
+ orangeStatus: "#ff785b",
50
+ darkRedStatus: "#dd1243",
51
+ borderColor: "#bebeb9",
52
+ inputBorderColor: "#bebeb9",
53
+ togglerBackground: "#A04949",
54
+ secondaryText: "#47463F",
55
+ secondarySubtitleText: "#707070",
56
+ biteGray: "#707070",
57
+ secondaryGray: "#706F6B",
58
+ placeholderText: "#BFBFBA",
59
+ activeText: "#21000C",
60
+ primaryText: "#FFFFFF",
61
+ bodyText: "#21000C",
62
+ darkBackground: "#666",
63
+ statusColor: "#DD1243",
64
+ actionBackground: "#E6E6E6",
65
+ focusState: "#27AAFF",
66
+ focusOutline: "#3580B1",
67
+ darkBlue: "#3580B1",
68
+ headerColor: "#170D11",
69
+ headerBackground: "#47463F",
70
+ slidePurple: "#262261",
71
+ lightCloseButton: "https://cdn.blerp.com/blerp-public-images/twitch/white_close_button.svg",
72
+ closeIcon: "https://cdn.blerp.com/blerp-public-images/twitch/dark-close-icon.svg",
73
+ bitCostIcon: "https://cdn.blerp.com/blerp_products/Twitch/Assets/Variable%20Pricing/active%20costLightMode.svg",
74
+ whiteCheckMarkIcon: "https://cdn.blerp.com/blerp_products/Twitch/Assets/checkmark.svg",
75
+ dgRightArrow: "https://cdn.blerp.com/blerp_products/Twitch/Assets/Arrows/Chevron_DarkGrey_Right.svg",
76
+ dgDownArrow: "https://cdn.blerp.com/blerp_products/Twitch/Assets/Arrows/Chevron_DarkGrey_Down.svg",
77
+ dgUpArrow: "https://cdn.blerp.com/blerp_products/Twitch/Assets/Arrows/Chevron_DarkGrey_Up.svg",
78
+ dgLeftArrow: "https://cdn.blerp.com/blerp_products/Twitch/Assets/Arrows/Chevron_DarkGrey_Left.svg",
79
+ subStarIcon: "https://cdn.blerp.com/blerp_products/Twitch/Assets/Variable%20Pricing/active%20subLightMode.svg",
80
+ subOneIcon: "https://cdn.blerp.com/blerp_products/Twitch/Assets/Variable%20Pricing/greySubPlusBitsIconWhite.svg",
81
+ subTwoIcon: "https://cdn.blerp.com/blerp_products/Twitch/Assets/Variable%20Pricing/PurpleSubPlusBitsIconWhite.svg",
82
+ subThreeIcon: "https://cdn.blerp.com/blerp_products/Twitch/Assets/Variable%20Pricing/MintSubPlusBitsIconWhite.svg",
83
+ subFourIcon: "https://cdn.blerp.com/blerp_products/Twitch/Assets/Variable%20Pricing/BlueSubPlusBitsIconWhite.svg",
84
+ subFiveIcon: "https://cdn.blerp.com/blerp_products/Twitch/Assets/Variable%20Pricing/RedSubPlusBitsIconWhite.svg",
85
+ bitsOneIcon: "https://cdn.blerp.com/blerp_products/Twitch/Assets/Variable%20Pricing/grey%20bits%20icon%20white%20stroke.svg",
86
+ bitsTwoIcon: "https://cdn.blerp.com/blerp-products/Twitch/Assets/Variable%20Pricing/Purple%20bits%20icon%20white%20stroke.svg",
87
+ bitsThreeIcon: "https://cdn.blerp.com/blerp_products/Twitch/Assets/Variable%20Pricing/Mint%20bits%20icon%20white%20stroke-2.svg",
88
+ bitsFourIcon: "https://cdn.blerp.com/blerp_products/Twitch/Assets/Variable%20Pricing/Blue%20bits%20icon%20white%20stroke.svg",
89
+ bitsFiveIcon: "https://cdn.blerp.com/blerp_products/Twitch/Assets/Variable%20Pricing/Red%20bits%20icon%20white%20stroke.svg"
90
+ };
91
+ 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}"; // Try to load MUI dynamically, but don't fail if it's not installed
92
+
93
+ let createTheme = null;
94
+ let MuiThemeProvider = null;
95
+
96
+ try {
97
+ const mui = require("@mui/material/styles");
98
+
99
+ createTheme = mui.createTheme;
100
+ MuiThemeProvider = mui.ThemeProvider;
101
+ } catch (e) {// MUI not installed, that's fine
102
+ // console.log("MUI not detected - using lightweight theme mode");
103
+ } // Try to load styled-components, but don't fail if it's not installed
104
+
105
+
106
+ let StyledThemeProvider = null;
107
+
108
+ try {
109
+ const styledComponents = require("styled-components");
110
+
111
+ StyledThemeProvider = styledComponents.ThemeProvider;
112
+ } catch (e) {// styled-components not installed, that's fine
113
+ } // Pure theme configs (no MUI dependency)
114
+
115
+
116
+ const lightThemeConfig = _objectSpread({
117
+ typography: {
118
+ fontFamily: "Odudo, Arial"
119
+ },
120
+ mode: "light",
121
+ colors: lightColors,
122
+ icons: icons,
123
+ palette: lightPalette
124
+ }, mainTheme);
125
+ const darkThemeConfig = _objectSpread({
126
+ typography: {
127
+ fontFamily: "Odudo, Arial"
128
+ },
129
+ mode: "dark",
130
+ colors: darkColors,
131
+ icons: icons,
132
+ palette: darkPalette
133
+ }, mainTheme); // MUI themes (only created if MUI is available)
134
+
135
+ const muiThemeConfig = {
11
136
  typography: {
12
137
  fontFamily: "Odudo, Arial"
13
138
  },
@@ -107,19 +232,18 @@ const theme = createTheme({
107
232
  }]
108
233
  },
109
234
  MuiCssBaseline: {
110
- styleOverrides: "\n ".concat(fonts, "\n ")
235
+ styleOverrides: fonts
111
236
  }
112
- },
237
+ }
238
+ };
239
+ const theme = createTheme ? createTheme(_objectSpread(_objectSpread({}, muiThemeConfig), {}, {
113
240
  mode: "light",
114
241
  colors: lightColors,
115
242
  icons: icons,
116
243
  palette: lightPalette
117
- });
118
- const darkTheme = createTheme({
119
- typography: {
120
- fontFamily: "Odudo, Arial"
121
- },
122
- components: {
244
+ })) : lightThemeConfig;
245
+ const darkTheme = createTheme ? createTheme(_objectSpread(_objectSpread({}, muiThemeConfig), {}, {
246
+ components: _objectSpread(_objectSpread({}, muiThemeConfig.components), {}, {
123
247
  MuiTypography: {
124
248
  styleOverrides: {
125
249
  root: {
@@ -168,24 +292,6 @@ const darkTheme = createTheme({
168
292
  }
169
293
  }
170
294
  },
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
295
  MuiSvgIcon: {
190
296
  styleOverrides: {
191
297
  root: {
@@ -193,54 +299,69 @@ const darkTheme = createTheme({
193
299
  }
194
300
  }
195
301
  },
196
- MuiButton: {
302
+ MuiBackdrop: {
197
303
  styleOverrides: {
198
304
  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
- }
305
+ backgroundColor: "".concat(colors.grey5, "70"),
306
+ backdropFilter: "blur(4px)"
214
307
  }
215
- }]
216
- },
217
- MuiCssBaseline: {
218
- styleOverrides: "\n ".concat(fonts, "\n ")
308
+ }
219
309
  }
220
- },
310
+ }),
221
311
  mode: "dark",
222
312
  colors: darkColors,
223
313
  icons: icons,
224
314
  palette: darkPalette
225
- });
315
+ })) : darkThemeConfig; // Create a context for theme access (legacy - for styled-components)
316
+
317
+ const BlerpThemeContext = /*#__PURE__*/createContext(null);
318
+ const useBlerpTheme = () => {
319
+ const context = useContext(BlerpThemeContext);
320
+
321
+ if (!context) {
322
+ throw new Error("useBlerpTheme must be used within BlerpTheme");
323
+ }
324
+
325
+ return context;
326
+ };
327
+ /**
328
+ * BlerpTheme - Main theme provider
329
+ *
330
+ * FIXED: Now accepts and passes through customColors to NewThemeProvider
331
+ * This allows ExtensionTheme and other consumers to override extension colors
332
+ */
226
333
 
227
334
  const BlerpTheme = _ref => {
228
335
  let {
229
336
  mode,
337
+ customColors = {},
230
338
  children
231
339
  } = _ref;
232
- const currentTheme = mode === "dark" ? darkTheme : theme; // ...
340
+ // Memoize theme selection
341
+ const currentTheme = useMemo(() => mode === "dark" ? darkTheme : theme, [mode]); // Memoize the combined theme value (for legacy styled-components)
233
342
 
234
- return /*#__PURE__*/React.createElement(ThemeProvider, {
343
+ const themeValue = useMemo(() => _objectSpread(_objectSpread(_objectSpread({}, mainTheme), {}, {
344
+ icons,
345
+ mode: mode === "dark" ? "dark" : "light"
346
+ }, currentTheme), customColors), [mode, currentTheme, customColors]); // Build the inner content with SnackbarProvider
347
+
348
+ const innerContent = /*#__PURE__*/React.createElement(BlerpThemeContext.Provider, {
349
+ value: themeValue
350
+ }, /*#__PURE__*/React.createElement(SnackbarProvider, null, children)); // Wrap with styled-components ThemeProvider if available
351
+
352
+ const withStyledTheme = StyledThemeProvider ? /*#__PURE__*/React.createElement(StyledThemeProvider, {
353
+ theme: themeValue
354
+ }, innerContent) : innerContent; // Wrap with MUI ThemeProvider if available
355
+
356
+ const withMuiTheme = MuiThemeProvider ? /*#__PURE__*/React.createElement(MuiThemeProvider, {
235
357
  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)));
358
+ }, withStyledTheme) : withStyledTheme; // CRITICAL FIX: Pass customColors through to NewThemeProvider
359
+ // This ensures neo-components get the extension color overrides
360
+
361
+ return /*#__PURE__*/React.createElement(ThemeProvider, {
362
+ mode: mode === "dark" ? "dark" : "light",
363
+ customColors: customColors
364
+ }, withMuiTheme);
243
365
  };
244
366
 
245
- export default BlerpTheme;
246
- export { darkTheme, theme };
367
+ export { darkTheme, darkThemeConfig, BlerpTheme as default, fonts, lightThemeConfig, theme, useBlerpTheme };
@@ -1,47 +1,102 @@
1
- import _taggedTemplateLiteral from '@babel/runtime/helpers/taggedTemplateLiteral';
2
- import { CheckRounded } from '@mui/icons-material';
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
2
  import React from 'react';
4
- import styled from 'styled-components';
5
3
  import { EllipsisLoader } from './EllipsisLoader.js';
6
4
 
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 => {
5
+ 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; }
6
+
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
8
+ /**
9
+ * Inline SVG replacement for CheckRounded
10
+ */
11
+
12
+ const CheckIcon = _ref => {
13
+ let {
14
+ style
15
+ } = _ref;
16
+ return /*#__PURE__*/React.createElement("svg", {
17
+ viewBox: "0 0 24 24",
18
+ style: _objectSpread({
19
+ fill: "currentColor"
20
+ }, style)
21
+ }, /*#__PURE__*/React.createElement("path", {
22
+ d: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"
23
+ }));
24
+ };
25
+
26
+ const Toggle = _ref2 => {
27
+ var _theme$colors, _theme$colors2, _theme$colors3, _theme$colors4, _theme$colors5;
28
+
16
29
  let {
17
30
  loading,
18
31
  checked,
19
32
  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,
33
+ disabled,
34
+ theme
35
+ } = _ref2;
36
+ // Coerce to boolean to avoid undefined issues
37
+ const isChecked = Boolean(checked);
38
+ return /*#__PURE__*/React.createElement(React.Fragment, null, loading ? /*#__PURE__*/React.createElement("div", {
39
+ style: {
40
+ width: "50px",
41
+ height: "100%",
42
+ display: "flex",
43
+ flexDirection: "column",
44
+ justifyContent: "center"
45
+ }
46
+ }, /*#__PURE__*/React.createElement(EllipsisLoader, null)) : /*#__PURE__*/React.createElement("div", {
47
+ role: "switch",
48
+ "aria-checked": isChecked,
49
+ tabIndex: disabled ? -1 : 0,
50
+ style: {
51
+ cursor: disabled ? "default" : "pointer",
52
+ position: "relative",
53
+ display: "inline-block",
54
+ placeSelf: "center",
55
+ width: isChecked ? "38px" : "36px",
56
+ height: isChecked ? "22px" : "20px",
57
+ border: isChecked ? "0px" : "1px solid",
58
+ borderColor: isChecked ? "transparent" : (theme === null || theme === void 0 ? void 0 : (_theme$colors = theme.colors) === null || _theme$colors === void 0 ? void 0 : _theme$colors.grey5) || "#ccc",
59
+ borderRadius: "18px",
60
+ opacity: disabled ? "0.5" : "1"
61
+ },
25
62
  onClick: e => {
26
63
  if (!disabled && onClick) {
64
+ e.preventDefault();
65
+ e.stopPropagation();
66
+ onClick(e);
67
+ }
68
+ },
69
+ onKeyDown: e => {
70
+ if (!disabled && onClick && (e.key === 'Enter' || e.key === ' ')) {
71
+ e.preventDefault();
27
72
  onClick(e);
28
73
  }
29
74
  }
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: {
75
+ }, /*#__PURE__*/React.createElement("div", {
76
+ style: {
77
+ position: "absolute",
78
+ top: 0,
79
+ left: 0,
80
+ right: 0,
81
+ bottom: 0,
82
+ backgroundColor: isChecked ? disabled ? "#7b7b7b" : (theme === null || theme === void 0 ? void 0 : (_theme$colors2 = theme.colors) === null || _theme$colors2 === void 0 ? void 0 : _theme$colors2.seafoam) || "#2ecc71" : "rgba(204, 204, 204, 0.2)",
83
+ transition: "background-color 0.2s ease-out",
84
+ borderRadius: "34px"
85
+ }
86
+ }, /*#__PURE__*/React.createElement(CheckIcon, {
87
+ style: {
37
88
  position: "absolute",
38
- top: checked ? "3px" : "4px",
89
+ top: isChecked ? "3px" : "4px",
39
90
  left: "4px",
40
- color: checked ? disabled ? "grey4.main" : "seafoam.main" : "transparent",
41
- fontSize: checked ? "16px" : "12px",
42
- backgroundColor: checked ? "white.main" : "grey5.main",
91
+ color: isChecked ? disabled ? (theme === null || theme === void 0 ? void 0 : (_theme$colors3 = theme.colors) === null || _theme$colors3 === void 0 ? void 0 : _theme$colors3.grey4) || "#999" : (theme === null || theme === void 0 ? void 0 : (_theme$colors4 = theme.colors) === null || _theme$colors4 === void 0 ? void 0 : _theme$colors4.seafoam) || "#2ecc71" : "transparent",
92
+ width: isChecked ? "16px" : "12px",
93
+ height: isChecked ? "16px" : "12px",
94
+ backgroundColor: isChecked ? "#fff" : (theme === null || theme === void 0 ? void 0 : (_theme$colors5 = theme.colors) === null || _theme$colors5 === void 0 ? void 0 : _theme$colors5.grey5) || "#ccc",
43
95
  borderRadius: "50%",
44
- transition: "0.2s"
96
+ transition: "transform 0.2s ease-out, width 0.2s ease-out, height 0.2s ease-out, background-color 0.2s ease-out",
97
+ transform: isChecked ? "translateX(14px)" : "translateX(0)",
98
+ padding: isChecked ? "0px" : "2px",
99
+ boxSizing: "border-box"
45
100
  }
46
101
  }))));
47
102
  };
@@ -1,9 +1,8 @@
1
- import { VerifiedRounded, DiamondRounded } from '@mui/icons-material';
2
1
  import React from 'react';
3
2
  import { Stack, Text } from './index.js';
4
3
 
5
4
  const UserCard = _ref => {
6
- var _user$twitchChannelIn, _user$profileImage, _user$profileImage$or, _user$twitchChannelIn2;
5
+ var _user$twitchChannelIn, _user$profileImage, _user$profileImage$or;
7
6
 
8
7
  let {
9
8
  user,
@@ -53,24 +52,6 @@ const UserCard = _ref => {
53
52
 
54
53
  e.target.src = "https://cdn.blerp.com/design/web/gamerblerpylarge.png";
55
54
  }
56
- }), (user === null || user === void 0 ? void 0 : (_user$twitchChannelIn2 = user.twitchChannelInfo) === null || _user$twitchChannelIn2 === void 0 ? void 0 : _user$twitchChannelIn2.broadcasterType) === "partner" && /*#__PURE__*/React.createElement(VerifiedRounded, {
57
- sx: {
58
- position: "absolute",
59
- bottom: collapsed ? "0" : "5px",
60
- right: collapsed ? "0" : "5px",
61
- fontSize: "17px",
62
- backgroundColor: "grey4.main",
63
- borderRadius: "50%"
64
- }
65
- }), (user === null || user === void 0 ? void 0 : user.premiumBlerpUserStatus) === "ACTIVE" && /*#__PURE__*/React.createElement(DiamondRounded, {
66
- sx: {
67
- position: "absolute",
68
- bottom: collapsed ? "0" : "5px",
69
- right: collapsed ? "0" : "5px",
70
- fontSize: "17px",
71
- backgroundColor: "grey4.main",
72
- borderRadius: "50%"
73
- }
74
55
  })), /*#__PURE__*/React.createElement(Stack, {
75
56
  sx: {
76
57
  flex: 1,