@rpg-engine/long-bow 0.8.198 → 0.8.199

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.
@@ -1,7 +1,7 @@
1
1
  import { IItemPack, IPurchase, IProductBlueprint, UserAccountTypes } from '@rpg-engine/shared';
2
2
  import React from 'react';
3
3
  import { IFeaturedItem } from './FeaturedBanner';
4
- declare type TabId = 'premium' | 'packs' | 'items' | 'wallet' | 'history';
4
+ declare type TabId = 'premium' | 'packs' | 'items' | 'wallet' | 'history' | 'redeem';
5
5
  export interface IStoreProps {
6
6
  items: IProductBlueprint[];
7
7
  packs?: IItemPack[];
@@ -72,6 +72,16 @@ export interface IStoreProps {
72
72
  onBuyDC?: () => void;
73
73
  /** Currency symbol to display (e.g. "$" for USD, "R$" for BRL). Defaults to "$". */
74
74
  currencySymbol?: string;
75
+ /** Callback to redeem a voucher code. When provided, the Redeem tab is shown. */
76
+ onRedeem?: (code: string) => Promise<{
77
+ success: boolean;
78
+ dcAmount?: number;
79
+ error?: string;
80
+ }>;
81
+ /** Called when the voucher code input gains focus. */
82
+ onRedeemInputFocus?: () => void;
83
+ /** Called when the voucher code input loses focus. */
84
+ onRedeemInputBlur?: () => void;
75
85
  }
76
86
  export type { IFeaturedItem };
77
87
  export declare const Store: React.FC<IStoreProps>;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ export interface IStoreRedeemSectionProps {
3
+ onRedeem: (code: string) => Promise<{
4
+ success: boolean;
5
+ dcAmount?: number;
6
+ error?: string;
7
+ }>;
8
+ onInputFocus?: () => void;
9
+ onInputBlur?: () => void;
10
+ }
11
+ export declare const StoreRedeemSection: React.FC<IStoreRedeemSectionProps>;
package/dist/index.d.ts CHANGED
@@ -85,6 +85,7 @@ export * from './components/Store/PaymentMethodModal';
85
85
  export * from './components/Store/PurchaseSuccess';
86
86
  export * from './components/Store/Store';
87
87
  export * from './components/Store/StoreBadges';
88
+ export * from './components/Store/sections/StoreRedeemSection';
88
89
  export * from './components/Store/TrustBar';
89
90
  export * from './components/Table/Table';
90
91
  export * from './components/TextArea';
@@ -73180,6 +73180,173 @@ var QuantityInput$1 = /*#__PURE__*/styled__default.input.withConfig({
73180
73180
  componentId: "sc-ulazq3-11"
73181
73181
  })(["width:40px;text-align:center;margin:0 auto;font-size:0.875rem;background:rgba(0,0,0,0.2);color:#ffffff;border:none;padding:0.25rem;&::-webkit-inner-spin-button,&::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}"]);
73182
73182
 
73183
+ var StoreRedeemSection = function StoreRedeemSection(_ref) {
73184
+ var onRedeem = _ref.onRedeem,
73185
+ onInputFocus = _ref.onInputFocus,
73186
+ onInputBlur = _ref.onInputBlur;
73187
+ var _useState = React.useState(''),
73188
+ code = _useState[0],
73189
+ setCode = _useState[1];
73190
+ var _useState2 = React.useState('idle'),
73191
+ status = _useState2[0],
73192
+ setStatus = _useState2[1];
73193
+ var _useState3 = React.useState(),
73194
+ dcAmount = _useState3[0],
73195
+ setDcAmount = _useState3[1];
73196
+ var _useState4 = React.useState(''),
73197
+ errorMessage = _useState4[0],
73198
+ setErrorMessage = _useState4[1];
73199
+ var canSubmit = code.trim().length > 0 && status !== 'loading';
73200
+ var handleSubmit = /*#__PURE__*/function () {
73201
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
73202
+ var normalizedCode, result, _result$error;
73203
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
73204
+ while (1) switch (_context.prev = _context.next) {
73205
+ case 0:
73206
+ if (canSubmit) {
73207
+ _context.next = 2;
73208
+ break;
73209
+ }
73210
+ return _context.abrupt("return");
73211
+ case 2:
73212
+ normalizedCode = code.trim().toUpperCase();
73213
+ setStatus('loading');
73214
+ setErrorMessage('');
73215
+ _context.prev = 5;
73216
+ _context.next = 8;
73217
+ return onRedeem(normalizedCode);
73218
+ case 8:
73219
+ result = _context.sent;
73220
+ if (result.success) {
73221
+ setStatus('success');
73222
+ setDcAmount(result.dcAmount);
73223
+ } else {
73224
+ setStatus('error');
73225
+ setErrorMessage((_result$error = result.error) != null ? _result$error : 'Redemption failed. Please try again.');
73226
+ }
73227
+ _context.next = 16;
73228
+ break;
73229
+ case 12:
73230
+ _context.prev = 12;
73231
+ _context.t0 = _context["catch"](5);
73232
+ setStatus('error');
73233
+ setErrorMessage('Something went wrong. Please try again.');
73234
+ case 16:
73235
+ case "end":
73236
+ return _context.stop();
73237
+ }
73238
+ }, _callee, null, [[5, 12]]);
73239
+ }));
73240
+ return function handleSubmit() {
73241
+ return _ref2.apply(this, arguments);
73242
+ };
73243
+ }();
73244
+ var handleReset = function handleReset() {
73245
+ setCode('');
73246
+ setStatus('idle');
73247
+ setDcAmount(undefined);
73248
+ setErrorMessage('');
73249
+ };
73250
+ var handleKeyDown = function handleKeyDown(e) {
73251
+ if (e.key === 'Enter') {
73252
+ void handleSubmit();
73253
+ }
73254
+ };
73255
+ if (status === 'success') {
73256
+ return React__default.createElement(Container$O, null, React__default.createElement(ResultContainer, null, React__default.createElement(SuccessIcon, null, React__default.createElement(fa.FaCheckCircle, {
73257
+ size: 32
73258
+ })), React__default.createElement(SuccessTitle, null, "Code Redeemed!"), dcAmount != null && React__default.createElement(DCAmountDisplay, null, "+", dcAmount.toLocaleString(), " DC"), React__default.createElement(SuccessHint, null, "Your wallet balance has been updated."), React__default.createElement(ButtonWrapper$3, null, React__default.createElement(CTAButton, {
73259
+ icon: React__default.createElement(fa.FaTicketAlt, null),
73260
+ label: "Redeem Another",
73261
+ onClick: handleReset
73262
+ }))));
73263
+ }
73264
+ if (status === 'error') {
73265
+ return React__default.createElement(Container$O, null, React__default.createElement(ResultContainer, null, React__default.createElement(ErrorIcon, null, React__default.createElement(fa.FaExclamationCircle, {
73266
+ size: 32
73267
+ })), React__default.createElement(ErrorTitle, null, errorMessage), React__default.createElement(ButtonWrapper$3, null, React__default.createElement(CTAButton, {
73268
+ icon: React__default.createElement(fa.FaTicketAlt, null),
73269
+ label: "Try Again",
73270
+ onClick: handleReset
73271
+ }))));
73272
+ }
73273
+ return React__default.createElement(Container$O, null, React__default.createElement(Title$p, null, "Redeem a Voucher Code"), React__default.createElement(Description$7, null, "Enter your voucher code below to receive Definya Coins."), React__default.createElement(InputRow, null, React__default.createElement(CodeInput, {
73274
+ type: "text",
73275
+ value: code,
73276
+ onChange: function onChange(e) {
73277
+ return setCode(e.target.value);
73278
+ },
73279
+ onFocus: onInputFocus,
73280
+ onBlur: onInputBlur,
73281
+ onKeyDown: handleKeyDown,
73282
+ placeholder: "Enter code...",
73283
+ disabled: status === 'loading',
73284
+ autoComplete: "off",
73285
+ spellCheck: false
73286
+ })), React__default.createElement(ButtonWrapper$3, null, React__default.createElement(CTAButton, {
73287
+ icon: React__default.createElement(fa.FaTicketAlt, null),
73288
+ label: status === 'loading' ? 'Redeeming...' : 'Redeem Code',
73289
+ onClick: function onClick() {
73290
+ void handleSubmit();
73291
+ },
73292
+ disabled: !canSubmit,
73293
+ fullWidth: true
73294
+ })));
73295
+ };
73296
+ var Container$O = /*#__PURE__*/styled__default.div.withConfig({
73297
+ displayName: "StoreRedeemSection__Container",
73298
+ componentId: "sc-1pzosml-0"
73299
+ })(["display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem;max-width:420px;margin:0 auto;gap:1rem;"]);
73300
+ var Title$p = /*#__PURE__*/styled__default.h3.withConfig({
73301
+ displayName: "StoreRedeemSection__Title",
73302
+ componentId: "sc-1pzosml-1"
73303
+ })(["font-family:'Press Start 2P',cursive;font-size:0.85rem;color:", ";margin:0;text-align:center;"], uiColors.white);
73304
+ var Description$7 = /*#__PURE__*/styled__default.p.withConfig({
73305
+ displayName: "StoreRedeemSection__Description",
73306
+ componentId: "sc-1pzosml-2"
73307
+ })(["font-family:'Press Start 2P',cursive;font-size:0.55rem;color:", ";margin:0;text-align:center;line-height:1.6;"], uiColors.lightGray);
73308
+ var InputRow = /*#__PURE__*/styled__default.div.withConfig({
73309
+ displayName: "StoreRedeemSection__InputRow",
73310
+ componentId: "sc-1pzosml-3"
73311
+ })(["width:100%;"]);
73312
+ var CodeInput = /*#__PURE__*/styled__default.input.withConfig({
73313
+ displayName: "StoreRedeemSection__CodeInput",
73314
+ componentId: "sc-1pzosml-4"
73315
+ })(["width:100%;padding:12px 14px;font-family:'Press Start 2P',cursive;font-size:0.75rem;color:", ";background:rgba(0,0,0,0.4);border:2px solid #f59e0b;border-radius:4px;text-transform:uppercase;letter-spacing:2px;text-align:center;box-sizing:border-box;outline:none;&::placeholder{color:", ";text-transform:none;letter-spacing:0;}&:focus{border-color:#fbbf24;box-shadow:0 0 8px rgba(251,191,36,0.3);}&:disabled{opacity:0.5;cursor:not-allowed;}"], uiColors.white, uiColors.lightGray);
73316
+ var ButtonWrapper$3 = /*#__PURE__*/styled__default.div.withConfig({
73317
+ displayName: "StoreRedeemSection__ButtonWrapper",
73318
+ componentId: "sc-1pzosml-5"
73319
+ })(["width:100%;margin-top:0.5rem;"]);
73320
+ var ResultContainer = /*#__PURE__*/styled__default.div.withConfig({
73321
+ displayName: "StoreRedeemSection__ResultContainer",
73322
+ componentId: "sc-1pzosml-6"
73323
+ })(["display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1rem 0;"]);
73324
+ var glowPulse$1 = /*#__PURE__*/styled.keyframes(["0%,100%{opacity:1;}50%{opacity:0.7;}"]);
73325
+ var SuccessIcon = /*#__PURE__*/styled__default.div.withConfig({
73326
+ displayName: "StoreRedeemSection__SuccessIcon",
73327
+ componentId: "sc-1pzosml-7"
73328
+ })(["color:", ";animation:", " 1.5s ease-in-out infinite;"], uiColors.green, glowPulse$1);
73329
+ var SuccessTitle = /*#__PURE__*/styled__default.h3.withConfig({
73330
+ displayName: "StoreRedeemSection__SuccessTitle",
73331
+ componentId: "sc-1pzosml-8"
73332
+ })(["font-family:'Press Start 2P',cursive;font-size:0.85rem;color:", ";margin:0;"], uiColors.green);
73333
+ var DCAmountDisplay = /*#__PURE__*/styled__default.div.withConfig({
73334
+ displayName: "StoreRedeemSection__DCAmountDisplay",
73335
+ componentId: "sc-1pzosml-9"
73336
+ })(["font-family:'Press Start 2P',cursive;font-size:1.2rem;color:#fef08a;text-shadow:0 0 10px rgba(254,240,138,0.5);"]);
73337
+ var SuccessHint = /*#__PURE__*/styled__default.p.withConfig({
73338
+ displayName: "StoreRedeemSection__SuccessHint",
73339
+ componentId: "sc-1pzosml-10"
73340
+ })(["font-family:'Press Start 2P',cursive;font-size:0.5rem;color:", ";margin:0;"], uiColors.lightGray);
73341
+ var ErrorIcon = /*#__PURE__*/styled__default.div.withConfig({
73342
+ displayName: "StoreRedeemSection__ErrorIcon",
73343
+ componentId: "sc-1pzosml-11"
73344
+ })(["color:", ";"], uiColors.red);
73345
+ var ErrorTitle = /*#__PURE__*/styled__default.p.withConfig({
73346
+ displayName: "StoreRedeemSection__ErrorTitle",
73347
+ componentId: "sc-1pzosml-12"
73348
+ })(["font-family:'Press Start 2P',cursive;font-size:0.65rem;color:", ";margin:0;text-align:center;line-height:1.6;"], uiColors.red);
73349
+
73183
73350
  var StoreItemDetails = function StoreItemDetails(_ref) {
73184
73351
  var _item$regionalPrice;
73185
73352
  var item = _ref.item,
@@ -73193,12 +73360,12 @@ var StoreItemDetails = function StoreItemDetails(_ref) {
73193
73360
  if (typeof imageUrl === 'string') return imageUrl;
73194
73361
  return imageUrl["default"] || imageUrl.src;
73195
73362
  };
73196
- return React__default.createElement(Container$O, null, React__default.createElement(Header$j, null, React__default.createElement(BackButton, {
73363
+ return React__default.createElement(Container$P, null, React__default.createElement(Header$j, null, React__default.createElement(BackButton, {
73197
73364
  onClick: onBack
73198
73365
  }, React__default.createElement(fa.FaArrowLeft, null), React__default.createElement("span", null, "Back"))), React__default.createElement(Content$5, null, React__default.createElement(DetailsGrid, null, React__default.createElement(ItemIcon, null, React__default.createElement("img", {
73199
73366
  src: getImageSrc(),
73200
73367
  alt: item.name
73201
- })), React__default.createElement(ItemInfo$3, null, React__default.createElement(ItemName$9, null, item.name), React__default.createElement(ItemPrice$2, null, currencySymbol, 'priceUSD' in item ? item.priceUSD : (_item$regionalPrice = item.regionalPrice) != null ? _item$regionalPrice : item.price, item.dcPrice ? " \xB7 " + item.dcPrice.toLocaleString() + " DC" : ''), React__default.createElement(Description$7, null, item.description))), React__default.createElement(Actions$1, null, React__default.createElement(CTAButton, {
73368
+ })), React__default.createElement(ItemInfo$3, null, React__default.createElement(ItemName$9, null, item.name), React__default.createElement(ItemPrice$2, null, currencySymbol, 'priceUSD' in item ? item.priceUSD : (_item$regionalPrice = item.regionalPrice) != null ? _item$regionalPrice : item.price, item.dcPrice ? " \xB7 " + item.dcPrice.toLocaleString() + " DC" : ''), React__default.createElement(Description$8, null, item.description))), React__default.createElement(Actions$1, null, React__default.createElement(CTAButton, {
73202
73369
  icon: React__default.createElement(fa.FaCartPlus, null),
73203
73370
  label: "Add to Cart",
73204
73371
  onClick: function onClick() {
@@ -73207,7 +73374,7 @@ var StoreItemDetails = function StoreItemDetails(_ref) {
73207
73374
  fullWidth: true
73208
73375
  }))));
73209
73376
  };
73210
- var Container$O = /*#__PURE__*/styled__default.div.withConfig({
73377
+ var Container$P = /*#__PURE__*/styled__default.div.withConfig({
73211
73378
  displayName: "StoreItemDetails__Container",
73212
73379
  componentId: "sc-k3ho5z-0"
73213
73380
  })(["display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;height:100%;"]);
@@ -73243,7 +73410,7 @@ var ItemPrice$2 = /*#__PURE__*/styled__default.div.withConfig({
73243
73410
  displayName: "StoreItemDetails__ItemPrice",
73244
73411
  componentId: "sc-k3ho5z-8"
73245
73412
  })(["font-family:'Press Start 2P',cursive;font-size:1rem;color:#fef08a;"]);
73246
- var Description$7 = /*#__PURE__*/styled__default.p.withConfig({
73413
+ var Description$8 = /*#__PURE__*/styled__default.p.withConfig({
73247
73414
  displayName: "StoreItemDetails__Description",
73248
73415
  componentId: "sc-k3ho5z-9"
73249
73416
  })(["margin:0;font-family:'Press Start 2P',cursive;font-size:0.875rem;line-height:1.6;color:#ffffff;"]);
@@ -73296,7 +73463,10 @@ var Store = function Store(_ref) {
73296
73463
  onPurchaseError = _ref.onPurchaseError,
73297
73464
  onBuyDC = _ref.onBuyDC,
73298
73465
  _ref$currencySymbol = _ref.currencySymbol,
73299
- currencySymbol = _ref$currencySymbol === void 0 ? '$' : _ref$currencySymbol;
73466
+ currencySymbol = _ref$currencySymbol === void 0 ? '$' : _ref$currencySymbol,
73467
+ onRedeem = _ref.onRedeem,
73468
+ onRedeemInputFocus = _ref.onRedeemInputFocus,
73469
+ onRedeemInputBlur = _ref.onRedeemInputBlur;
73300
73470
  var _useState = React.useState(null),
73301
73471
  selectedPack = _useState[0],
73302
73472
  setSelectedPack = _useState[1];
@@ -73418,7 +73588,7 @@ var Store = function Store(_ref) {
73418
73588
  return React__default.createElement(ErrorMessage$3, null, error);
73419
73589
  }
73420
73590
  // Build tabs dynamically based on props
73421
- var tabIds = [].concat(tabOrder != null ? tabOrder : ['premium', 'packs', 'items'], onShowWallet || customWalletContent ? ['wallet'] : [], onShowHistory || customHistoryContent ? ['history'] : []);
73591
+ var tabIds = [].concat(tabOrder != null ? tabOrder : ['premium', 'packs', 'items'], onRedeem ? ['redeem'] : [], onShowWallet || customWalletContent ? ['wallet'] : [], onShowHistory || customHistoryContent ? ['history'] : []);
73422
73592
  var availableTabIds = Array.from(new Set(tabIds.filter(function (id) {
73423
73593
  return !(hidePremiumTab && id === 'premium');
73424
73594
  })));
@@ -73558,6 +73728,18 @@ var Store = function Store(_ref) {
73558
73728
  currencySymbol: currencySymbol
73559
73729
  })
73560
73730
  },
73731
+ redeem: {
73732
+ id: 'redeem',
73733
+ title: 'Redeem',
73734
+ icon: React__default.createElement(fa.FaTicketAlt, {
73735
+ size: 16
73736
+ }),
73737
+ content: onRedeem ? React__default.createElement(StoreRedeemSection, {
73738
+ onRedeem: onRedeem,
73739
+ onInputFocus: onRedeemInputFocus,
73740
+ onInputBlur: onRedeemInputBlur
73741
+ }) : null
73742
+ },
73561
73743
  wallet: {
73562
73744
  id: 'wallet',
73563
73745
  title: walletLabel != null ? walletLabel : 'Wallet',
@@ -73642,7 +73824,7 @@ var Store = function Store(_ref) {
73642
73824
  return handleAddPackToCart(selectedPack);
73643
73825
  },
73644
73826
  currencySymbol: currencySymbol
73645
- }) : React__default.createElement(Container$P, null, featuredItems && featuredItems.length > 0 && React__default.createElement(FeaturedBanner, {
73827
+ }) : React__default.createElement(Container$Q, null, featuredItems && featuredItems.length > 0 && React__default.createElement(FeaturedBanner, {
73646
73828
  items: featuredItems,
73647
73829
  atlasJSON: atlasJSON,
73648
73830
  atlasIMG: atlasIMG,
@@ -73724,7 +73906,7 @@ var Store = function Store(_ref) {
73724
73906
  fullWidth: true
73725
73907
  }))));
73726
73908
  };
73727
- var Container$P = /*#__PURE__*/styled__default.div.withConfig({
73909
+ var Container$Q = /*#__PURE__*/styled__default.div.withConfig({
73728
73910
  displayName: "Store__Container",
73729
73911
  componentId: "sc-64dj00-0"
73730
73912
  })(["display:flex;flex-direction:column;width:100%;height:100%;gap:0.5rem;position:relative;"]);
@@ -74107,7 +74289,7 @@ var TradingMenu = function TradingMenu(_ref) {
74107
74289
  width: "500px",
74108
74290
  cancelDrag: "#TraderContainer",
74109
74291
  scale: scale
74110
- }, React__default.createElement(Container$Q, null, React__default.createElement(Title$p, null, type.charAt(0).toUpperCase() + type.slice(1), " Menu"), React__default.createElement("hr", {
74292
+ }, React__default.createElement(Container$R, null, React__default.createElement(Title$q, null, type.charAt(0).toUpperCase() + type.slice(1), " Menu"), React__default.createElement("hr", {
74111
74293
  className: "golden"
74112
74294
  }), React__default.createElement(ScrollWrapper, {
74113
74295
  id: "TraderContainer"
@@ -74124,7 +74306,7 @@ var TradingMenu = function TradingMenu(_ref) {
74124
74306
  scale: scale,
74125
74307
  isBuy: isBuy()
74126
74308
  });
74127
- })), React__default.createElement(InfoSection$2, null, React__default.createElement(GoldInfo, null, React__default.createElement("p", null, "Available Gold:"), React__default.createElement("p", null, "$", characterAvailableGold.toFixed(2))), React__default.createElement(GoldInfo, null, React__default.createElement("p", null, "Total:"), React__default.createElement("p", null, "$", sum)), !hasGoldForSale() ? React__default.createElement(AlertText, null, "Sorry, not enough money.") : React__default.createElement(GoldInfo, null, React__default.createElement("p", null, "Final Gold:"), React__default.createElement("p", null, "$", getFinalGold().toFixed(2)))), React__default.createElement(ButtonWrapper$3, null, React__default.createElement(Button, {
74309
+ })), React__default.createElement(InfoSection$2, null, React__default.createElement(GoldInfo, null, React__default.createElement("p", null, "Available Gold:"), React__default.createElement("p", null, "$", characterAvailableGold.toFixed(2))), React__default.createElement(GoldInfo, null, React__default.createElement("p", null, "Total:"), React__default.createElement("p", null, "$", sum)), !hasGoldForSale() ? React__default.createElement(AlertText, null, "Sorry, not enough money.") : React__default.createElement(GoldInfo, null, React__default.createElement("p", null, "Final Gold:"), React__default.createElement("p", null, "$", getFinalGold().toFixed(2)))), React__default.createElement(ButtonWrapper$4, null, React__default.createElement(Button, {
74128
74310
  buttonType: exports.ButtonTypes.RPGUIButton,
74129
74311
  disabled: !hasGoldForSale(),
74130
74312
  onPointerDown: function onPointerDown() {
@@ -74135,11 +74317,11 @@ var TradingMenu = function TradingMenu(_ref) {
74135
74317
  onPointerDown: onClose
74136
74318
  }, "Cancel"))));
74137
74319
  };
74138
- var Container$Q = /*#__PURE__*/styled__default.div.withConfig({
74320
+ var Container$R = /*#__PURE__*/styled__default.div.withConfig({
74139
74321
  displayName: "TradingMenu__Container",
74140
74322
  componentId: "sc-1wjsz1l-0"
74141
74323
  })(["width:100%;"]);
74142
- var Title$p = /*#__PURE__*/styled__default.h1.withConfig({
74324
+ var Title$q = /*#__PURE__*/styled__default.h1.withConfig({
74143
74325
  displayName: "TradingMenu__Title",
74144
74326
  componentId: "sc-1wjsz1l-1"
74145
74327
  })(["font-size:0.7rem !important;color:yellow !important;text-align:center;"]);
@@ -74159,7 +74341,7 @@ var AlertText = /*#__PURE__*/styled__default.p.withConfig({
74159
74341
  displayName: "TradingMenu__AlertText",
74160
74342
  componentId: "sc-1wjsz1l-5"
74161
74343
  })(["color:red !important;text-align:center;margin:0.3rem 0;font-size:0.5rem;"]);
74162
- var ButtonWrapper$3 = /*#__PURE__*/styled__default.div.withConfig({
74344
+ var ButtonWrapper$4 = /*#__PURE__*/styled__default.div.withConfig({
74163
74345
  displayName: "TradingMenu__ButtonWrapper",
74164
74346
  componentId: "sc-1wjsz1l-6"
74165
74347
  })(["display:flex;justify-content:space-around;width:100%;margin-top:1rem;"]);
@@ -74169,11 +74351,11 @@ var Truncate = function Truncate(_ref) {
74169
74351
  var _ref$maxLines = _ref.maxLines,
74170
74352
  maxLines = _ref$maxLines === void 0 ? 1 : _ref$maxLines,
74171
74353
  children = _ref.children;
74172
- return React__default.createElement(Container$R, {
74354
+ return React__default.createElement(Container$S, {
74173
74355
  maxLines: maxLines
74174
74356
  }, children);
74175
74357
  };
74176
- var Container$R = /*#__PURE__*/styled__default.div.withConfig({
74358
+ var Container$S = /*#__PURE__*/styled__default.div.withConfig({
74177
74359
  displayName: "Truncate__Container",
74178
74360
  componentId: "sc-6x00qb-0"
74179
74361
  })(["display:-webkit-box;max-width:100%;max-height:100%;-webkit-line-clamp:", ";-webkit-box-orient:vertical;overflow:hidden;"], function (props) {
@@ -74282,7 +74464,7 @@ var TutorialStepper = /*#__PURE__*/React__default.memo(function (_ref) {
74282
74464
  };
74283
74465
  });
74284
74466
  }, [lessons, imageStyle]);
74285
- return React__default.createElement(Container$S, null, React__default.createElement(Stepper, {
74467
+ return React__default.createElement(Container$T, null, React__default.createElement(Stepper, {
74286
74468
  steps: generateLessons,
74287
74469
  finalCTAButton: {
74288
74470
  label: 'Close',
@@ -74300,7 +74482,7 @@ var LessonBody = /*#__PURE__*/styled__default.div.withConfig({
74300
74482
  displayName: "TutorialStepper__LessonBody",
74301
74483
  componentId: "sc-7tgzv2-1"
74302
74484
  })([""]);
74303
- var Container$S = /*#__PURE__*/styled__default.div.withConfig({
74485
+ var Container$T = /*#__PURE__*/styled__default.div.withConfig({
74304
74486
  displayName: "TutorialStepper__Container",
74305
74487
  componentId: "sc-7tgzv2-2"
74306
74488
  })(["width:80%;max-width:600px;@media (max-width:600px){width:95%;}"]);
@@ -74429,6 +74611,7 @@ exports.SpriteFromAtlas = SpriteFromAtlas;
74429
74611
  exports.Stepper = Stepper;
74430
74612
  exports.Store = Store;
74431
74613
  exports.StoreBadges = StoreBadges;
74614
+ exports.StoreRedeemSection = StoreRedeemSection;
74432
74615
  exports.TRANSACTION_TYPE_FILTER_ALL = TRANSACTION_TYPE_FILTER_ALL;
74433
74616
  exports.TabBody = TabBody;
74434
74617
  exports.Table = Table;