@rpg-engine/long-bow 0.8.137 → 0.8.139

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.
@@ -2,7 +2,7 @@ import React, { useState, useEffect, Component, useRef, useCallback, useMemo, me
2
2
  import styled, { css, keyframes, createGlobalStyle } from 'styled-components';
3
3
  import { BeatLoader } from 'react-spinners';
4
4
  import { v4 } from 'uuid';
5
- import { GRID_WIDTH, GRID_HEIGHT, ShortcutType, getItemTextureKeyPath, ItemContainerType, ItemType, DepotSocketEvents, ItemSocketEvents, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemQualityLevel, ItemRarities, ItemSubType, isMobile, TaskType, TaskStatus, isMobileOrTablet, RewardType, ItemSlotType, NPCSubtype, EntityAttackType, NPCAlignment, VideoGuideCategory, VideoGuideLanguage, CharacterClass, QuestStatus, getLevelFromXP, getSkillConstants, getLevelFromSPTiered, getXPForLevel, getSPForLevelTiered, MetadataType, PurchaseType, UserAccountTypes, PaymentCurrency, PeriodOfDay } from '@rpg-engine/shared';
5
+ import { GRID_WIDTH, GRID_HEIGHT, ShortcutType, getItemTextureKeyPath, ItemContainerType, ItemType, DepotSocketEvents, ItemSocketEvents, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemQualityLevel, ItemRarities, ItemSubType, isMobile, TaskType, TaskStatus, isMobileOrTablet, RewardType, ItemSlotType, NPCSubtype, EntityAttackType, NPCAlignment, VideoGuideCategory, VideoGuideLanguage, formatDCAmount, goldToDC, CharacterClass, QuestStatus, getLevelFromXP, getSkillConstants, getLevelFromSPTiered, getXPForLevel, getSPForLevelTiered, MetadataType, PurchaseType, UserAccountTypes, PaymentCurrency, PeriodOfDay } from '@rpg-engine/shared';
6
6
  import dayjs from 'dayjs';
7
7
  import { ErrorBoundary as ErrorBoundary$1 } from 'react-error-boundary';
8
8
  import { FaTimes, FaDiscord, FaWhatsapp, FaSearch, FaThumbtack, FaBoxOpen, FaChevronLeft, FaChevronRight, FaClipboardList, FaPaperPlane, FaShoppingCart, FaChevronUp, FaChevronDown, FaReddit, FaTrash, FaShoppingBag, FaInfoCircle, FaCartPlus, FaArrowLeft, FaHistory, FaWallet } from 'react-icons/fa';
@@ -30309,6 +30309,16 @@ var TRANSACTION_TYPE_LABELS = {
30309
30309
  Refund: 'Refund',
30310
30310
  AdminAdjustment: 'Admin'
30311
30311
  };
30312
+ var TRANSACTION_TYPE_COLORS = {
30313
+ Purchase: '#22c55e',
30314
+ Transfer: '#60a5fa',
30315
+ MarketplaceSale: '#fbbf24',
30316
+ MarketplacePurchase: '#f97316',
30317
+ StorePurchase: '#a78bfa',
30318
+ Fee: '#ef4444',
30319
+ Refund: '#06b6d4',
30320
+ AdminAdjustment: '#9ca3af'
30321
+ };
30312
30322
  var TRANSACTION_TYPE_OPTIONS = [{
30313
30323
  value: '',
30314
30324
  label: 'All Types'
@@ -30372,14 +30382,24 @@ var DCHistoryPanel = function DCHistoryPanel(_ref) {
30372
30382
  value: opt.value
30373
30383
  }, opt.label);
30374
30384
  }))), loading && React.createElement(LoadingRow, null, React.createElement(Spinner, null), React.createElement("span", null, "Loading...")), !loading && transactions.length === 0 && React.createElement(EmptyMessage, null, "No transactions found."), !loading && transactions.length > 0 && React.createElement(TransactionList, null, transactions.map(function (tx) {
30375
- var _TRANSACTION_TYPE_LAB, _tx$note;
30385
+ var _TRANSACTION_TYPE_LAB, _TRANSACTION_TYPE_COL, _tx$note;
30376
30386
  var isCredit = tx.amount > 0;
30377
30387
  var label = (_TRANSACTION_TYPE_LAB = TRANSACTION_TYPE_LABELS[tx.type]) != null ? _TRANSACTION_TYPE_LAB : tx.type;
30388
+ var color = (_TRANSACTION_TYPE_COL = TRANSACTION_TYPE_COLORS[tx.type]) != null ? _TRANSACTION_TYPE_COL : '#f59e0b';
30378
30389
  var subtitle = (_tx$note = tx.note) != null ? _tx$note : tx.relatedCharacterName ? tx.relatedCharacterName : '';
30379
30390
  return React.createElement(TransactionRow, {
30380
- key: tx._id
30381
- }, React.createElement(TxLeft, null, React.createElement(TxType, null, label), subtitle ? React.createElement(TxNote, null, subtitle) : null), React.createElement(TxRight, null, React.createElement(TxAmount, {
30382
- "$credit": isCredit
30391
+ key: tx._id,
30392
+ style: {
30393
+ borderLeft: "3px solid " + color
30394
+ }
30395
+ }, React.createElement(TxLeft, null, React.createElement(TxType, {
30396
+ style: {
30397
+ color: color
30398
+ }
30399
+ }, label), subtitle ? React.createElement(TxNote, null, subtitle) : null), React.createElement(TxRight, null, React.createElement(TxAmount, {
30400
+ style: {
30401
+ color: isCredit ? '#4CAF50' : '#D04648'
30402
+ }
30383
30403
  }, isCredit ? '+' : '', tx.amount, " DC"), React.createElement(TxDate, null, formatDate(tx.createdAt))));
30384
30404
  })), totalPages > 1 && React.createElement(Pagination, {
30385
30405
  currentPage: currentPage,
@@ -30422,14 +30442,11 @@ var TxRight = /*#__PURE__*/styled.div.withConfig({
30422
30442
  var TxType = /*#__PURE__*/styled.span.withConfig({
30423
30443
  displayName: "DCHistoryPanel__TxType",
30424
30444
  componentId: "sc-debjdj-8"
30425
- })(["font-size:7px;color:#f59e0b;font-family:'Press Start 2P',cursive;"]);
30445
+ })(["font-size:7px;font-family:'Press Start 2P',cursive;"]);
30426
30446
  var TxAmount = /*#__PURE__*/styled.span.withConfig({
30427
30447
  displayName: "DCHistoryPanel__TxAmount",
30428
30448
  componentId: "sc-debjdj-9"
30429
- })(["font-size:8px;font-family:'Press Start 2P',cursive;color:", ";white-space:nowrap;"], function (_ref2) {
30430
- var $credit = _ref2.$credit;
30431
- return $credit ? uiColors.green : uiColors.red;
30432
- });
30449
+ })(["font-size:8px;font-family:'Press Start 2P',cursive;white-space:nowrap;"]);
30433
30450
  var TxNote = /*#__PURE__*/styled.span.withConfig({
30434
30451
  displayName: "DCHistoryPanel__TxNote",
30435
30452
  componentId: "sc-debjdj-10"
@@ -30817,7 +30834,7 @@ var DCWalletModal = function DCWalletModal(_ref) {
30817
30834
  content: React.createElement(BalanceContent, null, React.createElement(BalanceLabel, null, "Your DC Balance"), React.createElement(BalanceAmount, null, dcBalance.toLocaleString(), " DC"), onBuyDC && React.createElement(BuyButton, {
30818
30835
  onPointerDown: onBuyDC,
30819
30836
  title: "Buy Definya Coins"
30820
- }, React.createElement(FaShoppingCart, null), React.createElement(BuyButtonLabel, null, "Buy DC")))
30837
+ }, React.createElement(FaShoppingCart, null), React.createElement(BuyButtonLabel, null, "Buy More DC")))
30821
30838
  }, {
30822
30839
  id: 'transfer',
30823
30840
  title: 'Transfer',
@@ -35583,11 +35600,145 @@ var PagerContainer = /*#__PURE__*/styled.div.withConfig({
35583
35600
  componentId: "sc-1ekmf50-1"
35584
35601
  })(["display:flex;justify-content:center;align-items:center;gap:5px;p{margin:0;}div{color:white;}button{width:40px;height:40px;background-color:", ";border:none;border-radius:5px;color:white;:hover{background-color:", ";}:disabled{opacity:0.5;}&.active{background-color:", ";font-weight:bold;color:black;}}"], uiColors.darkGray, uiColors.lightGray, uiColors.orange);
35585
35602
 
35603
+ var MarketplaceBuyModal = function MarketplaceBuyModal(_ref) {
35604
+ var goldPrice = _ref.goldPrice,
35605
+ dcEquivalentPrice = _ref.dcEquivalentPrice,
35606
+ dcBalance = _ref.dcBalance,
35607
+ onConfirm = _ref.onConfirm,
35608
+ onClose = _ref.onClose;
35609
+ var _useState = useState('gold'),
35610
+ selected = _useState[0],
35611
+ setSelected = _useState[1];
35612
+ var hasSufficientDC = dcBalance >= dcEquivalentPrice;
35613
+ var stopPropagation = useCallback(function (e) {
35614
+ e.stopPropagation();
35615
+ }, []);
35616
+ var handleConfirm = useCallback(function () {
35617
+ onConfirm(selected);
35618
+ }, [selected, onConfirm]);
35619
+ return React.createElement(ModalPortal, null, React.createElement(Overlay$4, {
35620
+ onPointerDown: onClose
35621
+ }), React.createElement(ModalContainer$2, null, React.createElement(ModalContent$2, {
35622
+ onClick: stopPropagation,
35623
+ onTouchStart: stopPropagation,
35624
+ onPointerDown: stopPropagation
35625
+ }, React.createElement(Header$7, null, React.createElement(Title$8, null, "Confirm Purchase"), React.createElement(CloseButton$9, {
35626
+ onPointerDown: onClose,
35627
+ "aria-label": "Close"
35628
+ }, React.createElement(FaTimes, null))), React.createElement(Options, null, React.createElement(RadioOption, {
35629
+ "$selected": selected === 'gold',
35630
+ onPointerDown: function onPointerDown() {
35631
+ return setSelected('gold');
35632
+ }
35633
+ }, React.createElement(RadioCircle, {
35634
+ "$selected": selected === 'gold'
35635
+ }), React.createElement(OptionText, null, React.createElement(OptionLabel, null, "Gold"), React.createElement(OptionSub, null, goldPrice.toLocaleString(), " gold"))), React.createElement(RadioOption, {
35636
+ "$selected": selected === 'dc',
35637
+ "$disabled": !hasSufficientDC,
35638
+ onPointerDown: function onPointerDown() {
35639
+ return hasSufficientDC && setSelected('dc');
35640
+ }
35641
+ }, React.createElement(RadioCircle, {
35642
+ "$selected": selected === 'dc'
35643
+ }), React.createElement(OptionText, null, React.createElement(OptionLabel, {
35644
+ "$disabled": !hasSufficientDC
35645
+ }, "Definya Coin"), React.createElement(OptionSub, null, formatDCAmount(dcEquivalentPrice), " DC", ' ', React.createElement(BalanceHint, {
35646
+ "$insufficient": !hasSufficientDC
35647
+ }, "(", formatDCAmount(dcBalance), " available)"))))), React.createElement(ConfirmRow, null, React.createElement(Button, {
35648
+ buttonType: ButtonTypes.RPGUIButton,
35649
+ onPointerDown: handleConfirm
35650
+ }, "Confirm")))));
35651
+ };
35652
+ var Overlay$4 = /*#__PURE__*/styled.div.withConfig({
35653
+ displayName: "MarketplaceBuyModal__Overlay",
35654
+ componentId: "sc-86ottl-0"
35655
+ })(["position:fixed;inset:0;background:rgba(0,0,0,0.65);z-index:1000;"]);
35656
+ var ModalContainer$2 = /*#__PURE__*/styled.div.withConfig({
35657
+ displayName: "MarketplaceBuyModal__ModalContainer",
35658
+ componentId: "sc-86ottl-1"
35659
+ })(["position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:1001;pointer-events:none;"]);
35660
+ var ModalContent$2 = /*#__PURE__*/styled.div.withConfig({
35661
+ displayName: "MarketplaceBuyModal__ModalContent",
35662
+ componentId: "sc-86ottl-2"
35663
+ })(["background:#1a1a2e;border:2px solid #f59e0b;border-radius:8px;padding:20px 24px 24px;min-width:300px;max-width:90%;display:flex;flex-direction:column;gap:16px;pointer-events:auto;animation:scaleIn 0.15s ease-out;@keyframes scaleIn{from{transform:scale(0.85);opacity:0;}to{transform:scale(1);opacity:1;}}"]);
35664
+ var Header$7 = /*#__PURE__*/styled.div.withConfig({
35665
+ displayName: "MarketplaceBuyModal__Header",
35666
+ componentId: "sc-86ottl-3"
35667
+ })(["display:flex;align-items:center;justify-content:space-between;"]);
35668
+ var Title$8 = /*#__PURE__*/styled.h3.withConfig({
35669
+ displayName: "MarketplaceBuyModal__Title",
35670
+ componentId: "sc-86ottl-4"
35671
+ })(["margin:0;font-family:'Press Start 2P',cursive;font-size:0.7rem;color:#fef08a;"]);
35672
+ var CloseButton$9 = /*#__PURE__*/styled.button.withConfig({
35673
+ displayName: "MarketplaceBuyModal__CloseButton",
35674
+ componentId: "sc-86ottl-5"
35675
+ })(["background:none;border:none;color:rgba(255,255,255,0.6);cursor:pointer;font-size:1rem;padding:4px;display:flex;align-items:center;&:hover{color:#ffffff;}"]);
35676
+ var Options = /*#__PURE__*/styled.div.withConfig({
35677
+ displayName: "MarketplaceBuyModal__Options",
35678
+ componentId: "sc-86ottl-6"
35679
+ })(["display:flex;flex-direction:column;gap:8px;"]);
35680
+ var RadioOption = /*#__PURE__*/styled.div.withConfig({
35681
+ displayName: "MarketplaceBuyModal__RadioOption",
35682
+ componentId: "sc-86ottl-7"
35683
+ })(["display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid ", ";border-radius:6px;background:", ";cursor:", ";opacity:", ";transition:border-color 0.15s,background 0.15s;&:hover{border-color:", ";}"], function (_ref2) {
35684
+ var $selected = _ref2.$selected;
35685
+ return $selected ? '#f59e0b' : 'rgba(255,255,255,0.15)';
35686
+ }, function (_ref3) {
35687
+ var $selected = _ref3.$selected;
35688
+ return $selected ? 'rgba(245,158,11,0.1)' : 'transparent';
35689
+ }, function (_ref4) {
35690
+ var $disabled = _ref4.$disabled;
35691
+ return $disabled ? 'not-allowed' : 'pointer';
35692
+ }, function (_ref5) {
35693
+ var $disabled = _ref5.$disabled;
35694
+ return $disabled ? 0.5 : 1;
35695
+ }, function (_ref6) {
35696
+ var $disabled = _ref6.$disabled;
35697
+ return $disabled ? 'rgba(255,255,255,0.15)' : '#f59e0b';
35698
+ });
35699
+ var RadioCircle = /*#__PURE__*/styled.div.withConfig({
35700
+ displayName: "MarketplaceBuyModal__RadioCircle",
35701
+ componentId: "sc-86ottl-8"
35702
+ })(["width:16px;height:16px;border-radius:50%;border:2px solid ", ";display:flex;align-items:center;justify-content:center;flex-shrink:0;&::after{content:'';width:8px;height:8px;border-radius:50%;background:#f59e0b;opacity:", ";transition:opacity 0.15s;}"], function (_ref7) {
35703
+ var $selected = _ref7.$selected;
35704
+ return $selected ? '#f59e0b' : 'rgba(255,255,255,0.4)';
35705
+ }, function (_ref8) {
35706
+ var $selected = _ref8.$selected;
35707
+ return $selected ? 1 : 0;
35708
+ });
35709
+ var OptionText = /*#__PURE__*/styled.div.withConfig({
35710
+ displayName: "MarketplaceBuyModal__OptionText",
35711
+ componentId: "sc-86ottl-9"
35712
+ })(["display:flex;flex-direction:column;gap:3px;"]);
35713
+ var OptionLabel = /*#__PURE__*/styled.span.withConfig({
35714
+ displayName: "MarketplaceBuyModal__OptionLabel",
35715
+ componentId: "sc-86ottl-10"
35716
+ })(["font-family:'Press Start 2P',cursive;font-size:0.65rem;color:", ";"], function (_ref9) {
35717
+ var $disabled = _ref9.$disabled;
35718
+ return $disabled ? 'rgba(255,255,255,0.4)' : '#ffffff';
35719
+ });
35720
+ var OptionSub = /*#__PURE__*/styled.span.withConfig({
35721
+ displayName: "MarketplaceBuyModal__OptionSub",
35722
+ componentId: "sc-86ottl-11"
35723
+ })(["font-family:'Press Start 2P',cursive;font-size:0.5rem;color:rgba(255,255,255,0.55);"]);
35724
+ var BalanceHint = /*#__PURE__*/styled.span.withConfig({
35725
+ displayName: "MarketplaceBuyModal__BalanceHint",
35726
+ componentId: "sc-86ottl-12"
35727
+ })(["color:", ";"], function (_ref10) {
35728
+ var $insufficient = _ref10.$insufficient;
35729
+ return $insufficient ? '#ef4444' : 'rgba(255, 255, 255, 0.4)';
35730
+ });
35731
+ var ConfirmRow = /*#__PURE__*/styled.div.withConfig({
35732
+ displayName: "MarketplaceBuyModal__ConfirmRow",
35733
+ componentId: "sc-86ottl-13"
35734
+ })(["display:flex;justify-content:center;margin-top:4px;"]);
35735
+
35586
35736
  var MarketplaceRows = function MarketplaceRows(_ref) {
35587
35737
  var atlasJSON = _ref.atlasJSON,
35588
35738
  atlasIMG = _ref.atlasIMG,
35589
35739
  item = _ref.item,
35590
35740
  itemPrice = _ref.itemPrice,
35741
+ dcEquivalentPrice = _ref.dcEquivalentPrice,
35591
35742
  equipmentSet = _ref.equipmentSet,
35592
35743
  scale = _ref.scale,
35593
35744
  onMarketPlaceItemBuy = _ref.onMarketPlaceItemBuy,
@@ -35626,9 +35777,9 @@ var MarketplaceRows = function MarketplaceRows(_ref) {
35626
35777
  imgScale: 2
35627
35778
  })), React.createElement(PriceValue, null, React.createElement("p", null, React.createElement(Ellipsis, {
35628
35779
  maxLines: 1,
35629
- maxWidth: "200px",
35780
+ maxWidth: "120px",
35630
35781
  fontSize: "10px"
35631
- }, "$", itemPrice)))), React.createElement(ButtonContainer$3, null, React.createElement(Button, {
35782
+ }, "$", itemPrice))), dcEquivalentPrice !== undefined && React.createElement(DCPriceLabel, null, formatDCAmount(dcEquivalentPrice), " DC")), React.createElement(ButtonContainer$3, null, React.createElement(Button, {
35632
35783
  buttonType: ButtonTypes.RPGUIButton,
35633
35784
  disabled: disabled,
35634
35785
  onPointerDown: function onPointerDown() {
@@ -35666,17 +35817,21 @@ var SpriteContainer$3 = /*#__PURE__*/styled.div.withConfig({
35666
35817
  displayName: "MarketplaceRows__SpriteContainer",
35667
35818
  componentId: "sc-wmpr1o-6"
35668
35819
  })(["position:relative;left:0.5rem;"]);
35820
+ var DCPriceLabel = /*#__PURE__*/styled.span.withConfig({
35821
+ displayName: "MarketplaceRows__DCPriceLabel",
35822
+ componentId: "sc-wmpr1o-7"
35823
+ })(["margin-left:8px;color:#fef08a;font-size:0.65rem;white-space:nowrap;"]);
35669
35824
  var PriceValue = /*#__PURE__*/styled.div.withConfig({
35670
35825
  displayName: "MarketplaceRows__PriceValue",
35671
- componentId: "sc-wmpr1o-7"
35826
+ componentId: "sc-wmpr1o-8"
35672
35827
  })(["margin-left:40px;"]);
35673
35828
  var ButtonContainer$3 = /*#__PURE__*/styled.div.withConfig({
35674
35829
  displayName: "MarketplaceRows__ButtonContainer",
35675
- componentId: "sc-wmpr1o-8"
35830
+ componentId: "sc-wmpr1o-9"
35676
35831
  })(["margin:auto;"]);
35677
35832
  var RarityContainer = /*#__PURE__*/styled.div.withConfig({
35678
35833
  displayName: "MarketplaceRows__RarityContainer",
35679
- componentId: "sc-wmpr1o-9"
35834
+ componentId: "sc-wmpr1o-10"
35680
35835
  })(["border-color:", ";box-shadow:", " inset,", ";width:32px;height:32px;"], function (_ref2) {
35681
35836
  var item = _ref2.item;
35682
35837
  return rarityColor(item);
@@ -35747,7 +35902,11 @@ var BuyPanel = function BuyPanel(_ref) {
35747
35902
  characterId = _ref.characterId,
35748
35903
  enableHotkeys = _ref.enableHotkeys,
35749
35904
  disableHotkeys = _ref.disableHotkeys,
35750
- currentPage = _ref.currentPage;
35905
+ currentPage = _ref.currentPage,
35906
+ _ref$dcBalance = _ref.dcBalance,
35907
+ dcBalance = _ref$dcBalance === void 0 ? 0 : _ref$dcBalance,
35908
+ _ref$dcToGoldSwapRate = _ref.dcToGoldSwapRate,
35909
+ dcToGoldSwapRate = _ref$dcToGoldSwapRate === void 0 ? 0 : _ref$dcToGoldSwapRate;
35751
35910
  var _useState = useState(''),
35752
35911
  name = _useState[0],
35753
35912
  setName = _useState[1];
@@ -35768,7 +35927,26 @@ var BuyPanel = function BuyPanel(_ref) {
35768
35927
  var _itemsContainer$curre;
35769
35928
  (_itemsContainer$curre = itemsContainer.current) == null ? void 0 : _itemsContainer$curre.scrollTo(0, 0);
35770
35929
  }, [currentPage]);
35771
- return React.createElement(React.Fragment, null, buyingItemId && React.createElement(ConfirmModal, {
35930
+ var buyingItem = buyingItemId ? items.find(function (i) {
35931
+ return i._id === buyingItemId;
35932
+ }) : null;
35933
+ var hasDCBalance = dcBalance > 0 && dcToGoldSwapRate > 0;
35934
+ var getDCEquivalentPrice = function getDCEquivalentPrice(goldPrice) {
35935
+ return dcToGoldSwapRate > 0 ? goldToDC(goldPrice) : 0;
35936
+ };
35937
+ return React.createElement(React.Fragment, null, buyingItemId && buyingItem && hasDCBalance && React.createElement(MarketplaceBuyModal, {
35938
+ goldPrice: buyingItem.price,
35939
+ dcEquivalentPrice: getDCEquivalentPrice(buyingItem.price),
35940
+ dcBalance: dcBalance,
35941
+ onClose: function onClose() {
35942
+ return setBuyingItemId(null);
35943
+ },
35944
+ onConfirm: function onConfirm(paymentMethod) {
35945
+ onMarketPlaceItemBuy == null ? void 0 : onMarketPlaceItemBuy(buyingItemId, paymentMethod);
35946
+ setBuyingItemId(null);
35947
+ enableHotkeys == null ? void 0 : enableHotkeys();
35948
+ }
35949
+ }), buyingItemId && !hasDCBalance && React.createElement(ConfirmModal, {
35772
35950
  onClose: setBuyingItemId.bind(null, null),
35773
35951
  onConfirm: function onConfirm() {
35774
35952
  onMarketPlaceItemBuy == null ? void 0 : onMarketPlaceItemBuy(buyingItemId);
@@ -35873,6 +36051,7 @@ var BuyPanel = function BuyPanel(_ref) {
35873
36051
  atlasJSON: atlasJSON,
35874
36052
  item: item,
35875
36053
  itemPrice: price,
36054
+ dcEquivalentPrice: dcToGoldSwapRate > 0 ? getDCEquivalentPrice(price) : undefined,
35876
36055
  equipmentSet: equipmentSet,
35877
36056
  onMarketPlaceItemBuy: setBuyingItemId.bind(null, _id),
35878
36057
  disabled: owner === characterId
@@ -36247,7 +36426,7 @@ var PartyCreate = function PartyCreate(_ref) {
36247
36426
  style: {
36248
36427
  width: '100%'
36249
36428
  }
36250
- }, React.createElement(Title$8, null, "Create Party"), React.createElement("hr", {
36429
+ }, React.createElement(Title$9, null, "Create Party"), React.createElement("hr", {
36251
36430
  className: "golden"
36252
36431
  }))), React.createElement("h1", null, "Type your party name"), React.createElement(Input, {
36253
36432
  placeholder: "Type party name",
@@ -36270,7 +36449,7 @@ var Wrapper$1 = /*#__PURE__*/styled.div.withConfig({
36270
36449
  displayName: "PartyCreate__Wrapper",
36271
36450
  componentId: "sc-13brop0-0"
36272
36451
  })(["display:flex;flex-direction:column;width:100%;"]);
36273
- var Title$8 = /*#__PURE__*/styled.h1.withConfig({
36452
+ var Title$9 = /*#__PURE__*/styled.h1.withConfig({
36274
36453
  displayName: "PartyCreate__Title",
36275
36454
  componentId: "sc-13brop0-1"
36276
36455
  })(["font-size:0.6rem;color:", " !important;"], uiColors.yellow);
@@ -36319,7 +36498,7 @@ var PartyDashboard = function PartyDashboard(_ref) {
36319
36498
  style: {
36320
36499
  width: '100%'
36321
36500
  }
36322
- }, React.createElement(Title$9, null, "Party Dashboard"), React.createElement(Button, {
36501
+ }, React.createElement(Title$a, null, "Party Dashboard"), React.createElement(Button, {
36323
36502
  buttonType: ButtonTypes.RPGUIButton
36324
36503
  }, "Create"), React.createElement("hr", {
36325
36504
  className: "golden"
@@ -36346,7 +36525,7 @@ var RowsWrapper = /*#__PURE__*/styled.div.withConfig({
36346
36525
  displayName: "PartyDashboard__RowsWrapper",
36347
36526
  componentId: "sc-16cm41r-1"
36348
36527
  })(["overflow-y:scroll;-webkit-overflow-scrolling:touch;width:100%;height:200px;"]);
36349
- var Title$9 = /*#__PURE__*/styled.h1.withConfig({
36528
+ var Title$a = /*#__PURE__*/styled.h1.withConfig({
36350
36529
  displayName: "PartyDashboard__Title",
36351
36530
  componentId: "sc-16cm41r-2"
36352
36531
  })(["font-size:0.6rem;color:", " !important;"], uiColors.yellow);
@@ -36383,7 +36562,7 @@ var PartyInvite = function PartyInvite(_ref) {
36383
36562
  style: {
36384
36563
  width: '100%'
36385
36564
  }
36386
- }, React.createElement(Title$a, null, "Invite for Party"), React.createElement("hr", {
36565
+ }, React.createElement(Title$b, null, "Invite for Party"), React.createElement("hr", {
36387
36566
  className: "golden"
36388
36567
  }))), React.createElement(RowsWrapper$1, {
36389
36568
  className: "playersRows"
@@ -36402,7 +36581,7 @@ var Wrapper$3 = /*#__PURE__*/styled.div.withConfig({
36402
36581
  displayName: "PartyInvite__Wrapper",
36403
36582
  componentId: "sc-eu8ggt-0"
36404
36583
  })(["display:flex;flex-direction:column;width:100%;"]);
36405
- var Title$a = /*#__PURE__*/styled.h1.withConfig({
36584
+ var Title$b = /*#__PURE__*/styled.h1.withConfig({
36406
36585
  displayName: "PartyInvite__Title",
36407
36586
  componentId: "sc-eu8ggt-1"
36408
36587
  })(["font-size:0.6rem;color:", " !important;"], uiColors.yellow);
@@ -36844,7 +37023,7 @@ var QuestInfo = function QuestInfo(_ref) {
36844
37023
  onPointerDown: onRightClick
36845
37024
  }), React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
36846
37025
  className: "drag-handler"
36847
- }, React.createElement(Title$b, null, React.createElement(Thumbnail, {
37026
+ }, React.createElement(Title$c, null, React.createElement(Thumbnail, {
36848
37027
  src: quests[currentIndex].thumbnail || img$8
36849
37028
  }), quests[currentIndex].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
36850
37029
  className: "golden"
@@ -36863,7 +37042,7 @@ var QuestInfo = function QuestInfo(_ref) {
36863
37042
  }, button.title);
36864
37043
  })))) : React.createElement(QuestsContainer, null, React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
36865
37044
  className: "drag-handler"
36866
- }, React.createElement(Title$b, null, React.createElement(Thumbnail, {
37045
+ }, React.createElement(Title$c, null, React.createElement(Thumbnail, {
36867
37046
  src: quests[0].thumbnail || img$8
36868
37047
  }), quests[0].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
36869
37048
  className: "golden"
@@ -36910,7 +37089,7 @@ var TitleContainer$1 = /*#__PURE__*/styled.div.withConfig({
36910
37089
  displayName: "QuestInfo__TitleContainer",
36911
37090
  componentId: "sc-1wccpiy-6"
36912
37091
  })(["width:100%;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;margin-top:1rem;"]);
36913
- var Title$b = /*#__PURE__*/styled.h1.withConfig({
37092
+ var Title$c = /*#__PURE__*/styled.h1.withConfig({
36914
37093
  displayName: "QuestInfo__Title",
36915
37094
  componentId: "sc-1wccpiy-7"
36916
37095
  })(["color:white;z-index:22;font-size:", " !important;color:", " !important;"], uiFonts.size.medium, uiColors.yellow);
@@ -37438,7 +37617,7 @@ var SkillsContainer = function SkillsContainer(_ref) {
37438
37617
  cancelDrag: "#skillsDiv",
37439
37618
  scale: scale,
37440
37619
  width: "100%"
37441
- }, onCloseButton && React.createElement(CloseButton$9, {
37620
+ }, onCloseButton && React.createElement(CloseButton$a, {
37442
37621
  onPointerDown: onCloseButton
37443
37622
  }, "X"), React.createElement(SkillsContainerDiv, {
37444
37623
  id: "skillsDiv"
@@ -37473,7 +37652,7 @@ var SkillSplitDiv = /*#__PURE__*/styled.div.withConfig({
37473
37652
  displayName: "SkillsContainer__SkillSplitDiv",
37474
37653
  componentId: "sc-1g0c67q-2"
37475
37654
  })(["width:100%;font-size:11px;hr{margin:0;margin-bottom:1rem;padding:0px;}p{margin-bottom:0px;}"]);
37476
- var CloseButton$9 = /*#__PURE__*/styled.div.withConfig({
37655
+ var CloseButton$a = /*#__PURE__*/styled.div.withConfig({
37477
37656
  displayName: "SkillsContainer__CloseButton",
37478
37657
  componentId: "sc-1g0c67q-3"
37479
37658
  })(["position:absolute;top:2px;right:2px;color:white;z-index:22;font-size:1.1rem;"]);
@@ -37609,7 +37788,7 @@ var SpellInfo$1 = function SpellInfo(_ref) {
37609
37788
  castingType = spell.castingType,
37610
37789
  cooldown = spell.cooldown,
37611
37790
  maxDistanceGrid = spell.maxDistanceGrid;
37612
- return React.createElement(Container$F, null, React.createElement(Header$7, null, React.createElement("div", null, React.createElement(Title$c, null, name), React.createElement(Type$1, null, magicWords))), React.createElement(Statistic$1, null, React.createElement("div", {
37791
+ return React.createElement(Container$F, null, React.createElement(Header$8, null, React.createElement("div", null, React.createElement(Title$d, null, name), React.createElement(Type$1, null, magicWords))), React.createElement(Statistic$1, null, React.createElement("div", {
37613
37792
  className: "label"
37614
37793
  }, "Casting Type:"), React.createElement("div", {
37615
37794
  className: "value"
@@ -37639,7 +37818,7 @@ var Container$F = /*#__PURE__*/styled.div.withConfig({
37639
37818
  displayName: "SpellInfo__Container",
37640
37819
  componentId: "sc-4hbw3q-0"
37641
37820
  })(["color:white;background-color:#222;border-radius:5px;padding:0.5rem;font-size:", ";border:3px solid ", ";height:max-content;width:30rem;@media (max-width:580px){width:80vw;}"], uiFonts.size.small, uiColors.lightGray);
37642
- var Title$c = /*#__PURE__*/styled.div.withConfig({
37821
+ var Title$d = /*#__PURE__*/styled.div.withConfig({
37643
37822
  displayName: "SpellInfo__Title",
37644
37823
  componentId: "sc-4hbw3q-1"
37645
37824
  })(["font-size:", ";font-weight:bold;margin-bottom:0.5rem;display:flex;align-items:center;margin:0;"], uiFonts.size.medium);
@@ -37651,7 +37830,7 @@ var Description$4 = /*#__PURE__*/styled.div.withConfig({
37651
37830
  displayName: "SpellInfo__Description",
37652
37831
  componentId: "sc-4hbw3q-3"
37653
37832
  })(["margin-top:1.5rem;font-size:", ";color:", ";font-style:italic;"], uiFonts.size.small, uiColors.lightGray);
37654
- var Header$7 = /*#__PURE__*/styled.div.withConfig({
37833
+ var Header$8 = /*#__PURE__*/styled.div.withConfig({
37655
37834
  displayName: "SpellInfo__Header",
37656
37835
  componentId: "sc-4hbw3q-4"
37657
37836
  })(["display:flex;align-items:center;justify-content:space-between;margin-bottom:0.5rem;"]);
@@ -37867,7 +38046,7 @@ var Spell = function Spell(_ref) {
37867
38046
  onPointerUp: onPointerUp == null ? void 0 : onPointerUp.bind(null, spellKey),
37868
38047
  isSettingShortcut: isSettingShortcut && !disabled,
37869
38048
  className: "spell"
37870
- }, disabled && React.createElement(Overlay$4, null, characterSkillLevel < requiredLevel ? "Low " + getSkillName(attribute || 'magic level') + " level" : manaCost > charMana && 'No mana'), React.createElement(SpellImage, null, activeCooldown && activeCooldown > 0 ? React.createElement("span", {
38049
+ }, disabled && React.createElement(Overlay$5, null, characterSkillLevel < requiredLevel ? "Low " + getSkillName(attribute || 'magic level') + " level" : manaCost > charMana && 'No mana'), React.createElement(SpellImage, null, activeCooldown && activeCooldown > 0 ? React.createElement("span", {
37871
38050
  className: "cooldown"
37872
38051
  }, activeCooldown.toFixed(activeCooldown > 10 ? 0 : 1)) : null, React.createElement(SpriteFromAtlas, {
37873
38052
  atlasIMG: atlasIMG,
@@ -37876,7 +38055,7 @@ var Spell = function Spell(_ref) {
37876
38055
  imgScale: IMAGE_SCALE,
37877
38056
  containerStyle: CONTAINER_STYLE,
37878
38057
  centered: true
37879
- })), React.createElement(Info, null, React.createElement(Title$d, null, React.createElement("span", null, name), React.createElement("span", {
38058
+ })), React.createElement(Info, null, React.createElement(Title$e, null, React.createElement("span", null, name), React.createElement("span", {
37880
38059
  className: "spell"
37881
38060
  }, "(", magicWords, ")")), React.createElement(Description$5, null, description)), React.createElement(Divider$1, null), React.createElement(Cost, null, React.createElement("span", null, "Mana cost:"), React.createElement("span", {
37882
38061
  className: "mana"
@@ -37897,7 +38076,7 @@ var Info = /*#__PURE__*/styled.span.withConfig({
37897
38076
  displayName: "Spell__Info",
37898
38077
  componentId: "sc-j96fa2-2"
37899
38078
  })(["width:0;flex:1;@media (orientation:portrait){display:none;}"]);
37900
- var Title$d = /*#__PURE__*/styled.p.withConfig({
38079
+ var Title$e = /*#__PURE__*/styled.p.withConfig({
37901
38080
  displayName: "Spell__Title",
37902
38081
  componentId: "sc-j96fa2-3"
37903
38082
  })(["display:flex;flex-wrap:wrap;align-items:center;margin-bottom:5px;margin:0;span{font-size:", " !important;font-weight:bold !important;color:", " !important;margin-right:0.5rem;}.spell{font-size:", " !important;font-weight:normal !important;color:", " !important;}"], uiFonts.size.medium, uiColors.yellow, uiFonts.size.small, uiColors.lightGray);
@@ -37913,7 +38092,7 @@ var Cost = /*#__PURE__*/styled.p.withConfig({
37913
38092
  displayName: "Spell__Cost",
37914
38093
  componentId: "sc-j96fa2-6"
37915
38094
  })(["display:flex;align-items:center;flex-direction:column;gap:0.5rem;div{z-index:1;}.mana{position:relative;font-size:", ";font-weight:bold;z-index:1;&::after{position:absolute;content:'';top:0;left:0;background-color:", ";width:100%;height:100%;border-radius:50%;transform:scale(1.8);filter:blur(10px);z-index:-1;}}"], uiFonts.size.medium, uiColors.blue);
37916
- var Overlay$4 = /*#__PURE__*/styled.p.withConfig({
38095
+ var Overlay$5 = /*#__PURE__*/styled.p.withConfig({
37917
38096
  displayName: "Spell__Overlay",
37918
38097
  componentId: "sc-j96fa2-7"
37919
38098
  })(["margin:0 !important;position:absolute;top:0;left:0;width:100%;height:100%;border-radius:1rem;display:flex;justify-content:center;align-items:center;color:", ";font-size:", " !important;font-weight:bold;z-index:10;background-color:rgba(0 0 0 / 0.2);"], uiColors.yellow, uiFonts.size.large);
@@ -37962,7 +38141,7 @@ var Spellbook = function Spellbook(_ref) {
37962
38141
  height: "inherit",
37963
38142
  cancelDrag: "#spellbook-search, #shortcuts_list, .spell",
37964
38143
  scale: scale
37965
- }, React.createElement(Container$J, null, React.createElement(Title$e, null, "Learned Spells"), React.createElement(ShortcutsSetter, {
38144
+ }, React.createElement(Container$J, null, React.createElement(Title$f, null, "Learned Spells"), React.createElement(ShortcutsSetter, {
37966
38145
  setSettingShortcutIndex: setSettingShortcutIndex,
37967
38146
  settingShortcutIndex: settingShortcutIndex,
37968
38147
  shortcuts: shortcuts,
@@ -37995,7 +38174,7 @@ var Spellbook = function Spellbook(_ref) {
37995
38174
  }, spell)));
37996
38175
  }))));
37997
38176
  };
37998
- var Title$e = /*#__PURE__*/styled.h1.withConfig({
38177
+ var Title$f = /*#__PURE__*/styled.h1.withConfig({
37999
38178
  displayName: "Spellbook__Title",
38000
38179
  componentId: "sc-r02nfq-0"
38001
38180
  })(["font-size:", " !important;margin-bottom:0 !important;"], uiFonts.size.large);
@@ -58437,7 +58616,7 @@ var CartView = function CartView(_ref2) {
58437
58616
  return _ref3.apply(this, arguments);
58438
58617
  };
58439
58618
  }();
58440
- return React.createElement(Container$K, null, React.createElement(Header$8, null, React.createElement(Title$f, null, "Shopping Cart"), React.createElement(CloseButton$a, {
58619
+ return React.createElement(Container$K, null, React.createElement(Header$9, null, React.createElement(Title$g, null, "Shopping Cart"), React.createElement(CloseButton$b, {
58441
58620
  onPointerDown: onClose
58442
58621
  }, React.createElement(FaTimes, null))), React.createElement(CartItems, null, cartItems.length === 0 ? React.createElement(EmptyCart, null, "Your cart is empty") : cartItems.map(function (cartItem) {
58443
58622
  var _cartItem$metadata, _cartItem$metadata2;
@@ -58477,15 +58656,15 @@ var Container$K = /*#__PURE__*/styled.div.withConfig({
58477
58656
  displayName: "CartView__Container",
58478
58657
  componentId: "sc-ydtyl1-0"
58479
58658
  })(["display:flex;flex-direction:column;width:100%;height:100%;gap:1.5rem;padding:1.5rem;"]);
58480
- var Header$8 = /*#__PURE__*/styled.div.withConfig({
58659
+ var Header$9 = /*#__PURE__*/styled.div.withConfig({
58481
58660
  displayName: "CartView__Header",
58482
58661
  componentId: "sc-ydtyl1-1"
58483
58662
  })(["display:flex;justify-content:space-between;align-items:center;"]);
58484
- var Title$f = /*#__PURE__*/styled.h2.withConfig({
58663
+ var Title$g = /*#__PURE__*/styled.h2.withConfig({
58485
58664
  displayName: "CartView__Title",
58486
58665
  componentId: "sc-ydtyl1-2"
58487
58666
  })(["font-family:'Press Start 2P',cursive;font-size:1rem;color:#ffffff;margin:0;"]);
58488
- var CloseButton$a = /*#__PURE__*/styled.div.withConfig({
58667
+ var CloseButton$b = /*#__PURE__*/styled.div.withConfig({
58489
58668
  displayName: "CartView__CloseButton",
58490
58669
  componentId: "sc-ydtyl1-3"
58491
58670
  })(["padding:0.5rem;min-width:unset;width:42px;height:42px;display:flex;font-size:1.5rem;align-items:center;color:white;justify-content:center;"]);
@@ -58967,7 +59146,7 @@ var StoreCharacterSkinRow = function StoreCharacterSkinRow(_ref) {
58967
59146
  height: 32,
58968
59147
  imgScale: 2,
58969
59148
  centered: true
58970
- }) : React.createElement(DefaultIcon, null, "\uD83D\uDC64")), React.createElement(ItemDetails$1, null, React.createElement(Header$9, null, React.createElement(ItemName$1, null, item.name)), availableCharacters.length > 0 && currentCharacter && React.createElement(SelectedSkinNav, null, React.createElement(SelectedSkin, null, "Selected:"), React.createElement(SkinNavArrow, {
59149
+ }) : React.createElement(DefaultIcon, null, "\uD83D\uDC64")), React.createElement(ItemDetails$1, null, React.createElement(Header$a, null, React.createElement(ItemName$1, null, item.name)), availableCharacters.length > 0 && currentCharacter && React.createElement(SelectedSkinNav, null, React.createElement(SelectedSkin, null, "Selected:"), React.createElement(SkinNavArrow, {
58971
59150
  direction: "left",
58972
59151
  onPointerDown: handlePreviousSkin,
58973
59152
  size: 24
@@ -59019,7 +59198,7 @@ var SkinNavArrow = /*#__PURE__*/styled(SelectArrow).withConfig({
59019
59198
  displayName: "StoreCharacterSkinRow__SkinNavArrow",
59020
59199
  componentId: "sc-81xqsx-7"
59021
59200
  })(["position:static;"]);
59022
- var Header$9 = /*#__PURE__*/styled.div.withConfig({
59201
+ var Header$a = /*#__PURE__*/styled.div.withConfig({
59023
59202
  displayName: "StoreCharacterSkinRow__Header",
59024
59203
  componentId: "sc-81xqsx-8"
59025
59204
  })(["display:flex;align-items:center;gap:0.5rem;"]);
@@ -59343,7 +59522,9 @@ var usePackFiltering = function usePackFiltering(packs) {
59343
59522
  var StorePacksSection = function StorePacksSection(_ref) {
59344
59523
  var packs = _ref.packs,
59345
59524
  onAddToCart = _ref.onAddToCart,
59346
- onSelectPack = _ref.onSelectPack;
59525
+ onSelectPack = _ref.onSelectPack,
59526
+ atlasJSON = _ref.atlasJSON,
59527
+ atlasIMG = _ref.atlasIMG;
59347
59528
  var _usePackFiltering = usePackFiltering(packs),
59348
59529
  searchQuery = _usePackFiltering.searchQuery,
59349
59530
  setSearchQuery = _usePackFiltering.setSearchQuery,
@@ -59352,16 +59533,32 @@ var StorePacksSection = function StorePacksSection(_ref) {
59352
59533
  if (typeof imageUrl === 'string') return imageUrl;
59353
59534
  return imageUrl["default"] || imageUrl.src;
59354
59535
  };
59536
+ var renderPackIcon = useCallback(function (pack) {
59537
+ var _atlasJSON$frames;
59538
+ var imgSrc = getImageSrc(pack.image);
59539
+ if (atlasJSON && atlasIMG && imgSrc && atlasJSON != null && (_atlasJSON$frames = atlasJSON.frames) != null && _atlasJSON$frames[imgSrc]) {
59540
+ return React.createElement(SpriteFromAtlas, {
59541
+ atlasJSON: atlasJSON,
59542
+ atlasIMG: atlasIMG,
59543
+ spriteKey: imgSrc,
59544
+ width: 40,
59545
+ height: 40,
59546
+ imgScale: 1.2,
59547
+ centered: true
59548
+ });
59549
+ }
59550
+ return React.createElement("img", {
59551
+ src: imgSrc,
59552
+ alt: pack.title
59553
+ });
59554
+ }, [atlasJSON, atlasIMG]);
59355
59555
  var renderPack = useCallback(function (pack) {
59356
59556
  return React.createElement(PackRow, {
59357
59557
  key: pack.key,
59358
59558
  onClick: function onClick() {
59359
59559
  return onSelectPack == null ? void 0 : onSelectPack(pack);
59360
59560
  }
59361
- }, React.createElement(PackIconContainer, null, React.createElement("img", {
59362
- src: getImageSrc(pack.image),
59363
- alt: pack.title
59364
- })), React.createElement(PackDetails, null, React.createElement(PackName, null, pack.title), React.createElement(PackPrice, null, "$", pack.priceUSD), pack.description && React.createElement(PackDescription, null, pack.description)), React.createElement(Controls$2, null, React.createElement(CTAButton, {
59561
+ }, React.createElement(PackIconContainer, null, renderPackIcon(pack)), React.createElement(PackDetails, null, React.createElement(PackName, null, pack.title), React.createElement(PackPrice, null, "$", pack.priceUSD), pack.description && React.createElement(PackDescription, null, pack.description)), React.createElement(Controls$2, null, React.createElement(CTAButton, {
59365
59562
  icon: React.createElement(FaCartPlus, null),
59366
59563
  label: "Add",
59367
59564
  onClick: function onClick(e) {
@@ -59422,7 +59619,7 @@ var StoreItemDetails = function StoreItemDetails(_ref) {
59422
59619
  if (typeof imageUrl === 'string') return imageUrl;
59423
59620
  return imageUrl["default"] || imageUrl.src;
59424
59621
  };
59425
- return React.createElement(Container$M, null, React.createElement(Header$a, null, React.createElement(BackButton, {
59622
+ return React.createElement(Container$M, null, React.createElement(Header$b, null, React.createElement(BackButton, {
59426
59623
  onClick: onBack
59427
59624
  }, React.createElement(FaArrowLeft, null), React.createElement("span", null, "Back"))), React.createElement(Content$5, null, React.createElement(DetailsGrid, null, React.createElement(ItemIcon, null, React.createElement("img", {
59428
59625
  src: getImageSrc(),
@@ -59440,7 +59637,7 @@ var Container$M = /*#__PURE__*/styled.div.withConfig({
59440
59637
  displayName: "StoreItemDetails__Container",
59441
59638
  componentId: "sc-k3ho5z-0"
59442
59639
  })(["display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;height:100%;"]);
59443
- var Header$a = /*#__PURE__*/styled.div.withConfig({
59640
+ var Header$b = /*#__PURE__*/styled.div.withConfig({
59444
59641
  displayName: "StoreItemDetails__Header",
59445
59642
  componentId: "sc-k3ho5z-1"
59446
59643
  })(["display:flex;align-items:center;gap:1rem;"]);
@@ -59624,18 +59821,22 @@ var Store = function Store(_ref) {
59624
59821
  return pack.priceUSD >= 9.99;
59625
59822
  }),
59626
59823
  onAddToCart: handleAddPackToCart,
59627
- onSelectPack: setSelectedPack
59824
+ onSelectPack: setSelectedPack,
59825
+ atlasJSON: atlasJSON,
59826
+ atlasIMG: atlasIMG
59628
59827
  })
59629
59828
  },
59630
59829
  packs: {
59631
59830
  id: 'packs',
59632
59831
  title: packsTabLabel,
59633
59832
  content: customPacksContent != null ? customPacksContent : React.createElement(StorePacksSection, {
59634
- packs: packs.filter(function (pack) {
59833
+ packs: hidePremiumTab ? packs : packs.filter(function (pack) {
59635
59834
  return pack.priceUSD < 9.99;
59636
59835
  }),
59637
59836
  onAddToCart: handleAddPackToCart,
59638
- onSelectPack: setSelectedPack
59837
+ onSelectPack: setSelectedPack,
59838
+ atlasJSON: atlasJSON,
59839
+ atlasIMG: atlasIMG
59639
59840
  })
59640
59841
  },
59641
59842
  items: {
@@ -59712,7 +59913,6 @@ var Store = function Store(_ref) {
59712
59913
  }
59713
59914
  }) : React.createElement(Container$N, null, React.createElement(TopBar$1, null, React.createElement(LeftButtons, null, onShowHistory && React.createElement(CTAButton, {
59714
59915
  icon: React.createElement(FaHistory, null),
59715
- label: "History",
59716
59916
  onClick: onShowHistory
59717
59917
  }), onShowWallet && React.createElement(CTAButton, {
59718
59918
  icon: React.createElement(FaWallet, null),
@@ -59799,63 +59999,63 @@ var PaymentMethodModal = function PaymentMethodModal(_ref) {
59799
59999
  onPayWithCard();
59800
60000
  }
59801
60001
  }, [selected, onPayWithDC, onPayWithCard]);
59802
- return React.createElement(ModalPortal, null, React.createElement(Overlay$5, {
60002
+ return React.createElement(ModalPortal, null, React.createElement(Overlay$6, {
59803
60003
  onPointerDown: onClose
59804
- }), React.createElement(ModalContainer$2, null, React.createElement(ModalContent$2, {
60004
+ }), React.createElement(ModalContainer$3, null, React.createElement(ModalContent$3, {
59805
60005
  onClick: stopPropagation,
59806
60006
  onTouchStart: stopPropagation,
59807
60007
  onPointerDown: stopPropagation
59808
- }, React.createElement(Header$b, null, React.createElement(Title$g, null, "How would you like to pay?"), React.createElement(CloseButton$b, {
60008
+ }, React.createElement(Header$c, null, React.createElement(Title$h, null, "How would you like to pay?"), React.createElement(CloseButton$c, {
59809
60009
  onPointerDown: onClose,
59810
60010
  "aria-label": "Close"
59811
- }, React.createElement(FaTimes, null))), React.createElement(Options, null, React.createElement(RadioOption, {
60011
+ }, React.createElement(FaTimes, null))), React.createElement(Options$1, null, React.createElement(RadioOption$1, {
59812
60012
  "$selected": selected === 'card',
59813
60013
  onPointerDown: function onPointerDown() {
59814
60014
  return setSelected('card');
59815
60015
  }
59816
- }, React.createElement(RadioCircle, {
60016
+ }, React.createElement(RadioCircle$1, {
59817
60017
  "$selected": selected === 'card'
59818
- }), React.createElement(OptionText, null, React.createElement(OptionLabel, null, "Credit Card"), React.createElement(OptionSub, null, "Stripe secure checkout"))), React.createElement(RadioOption, {
60018
+ }), React.createElement(OptionText$1, null, React.createElement(OptionLabel$1, null, "Credit Card"), React.createElement(OptionSub$1, null, "Stripe secure checkout"))), React.createElement(RadioOption$1, {
59819
60019
  "$selected": selected === 'dc',
59820
60020
  onPointerDown: function onPointerDown() {
59821
60021
  return setSelected('dc');
59822
60022
  }
59823
- }, React.createElement(RadioCircle, {
60023
+ }, React.createElement(RadioCircle$1, {
59824
60024
  "$selected": selected === 'dc'
59825
- }), React.createElement(OptionText, null, React.createElement(OptionLabel, null, "Definya Coin"), React.createElement(OptionSub, null, dcBalance.toLocaleString(), " DC available")))), React.createElement(ConfirmRow, null, React.createElement(Button, {
60025
+ }), React.createElement(OptionText$1, null, React.createElement(OptionLabel$1, null, "Definya Coin"), React.createElement(OptionSub$1, null, dcBalance.toLocaleString(), " DC available")))), React.createElement(ConfirmRow$1, null, React.createElement(Button, {
59826
60026
  buttonType: ButtonTypes.RPGUIButton,
59827
60027
  onPointerDown: handleConfirm
59828
60028
  }, "Confirm")))));
59829
60029
  };
59830
- var Overlay$5 = /*#__PURE__*/styled.div.withConfig({
60030
+ var Overlay$6 = /*#__PURE__*/styled.div.withConfig({
59831
60031
  displayName: "PaymentMethodModal__Overlay",
59832
60032
  componentId: "sc-1dxy6lr-0"
59833
60033
  })(["position:fixed;inset:0;background:rgba(0,0,0,0.65);z-index:1000;"]);
59834
- var ModalContainer$2 = /*#__PURE__*/styled.div.withConfig({
60034
+ var ModalContainer$3 = /*#__PURE__*/styled.div.withConfig({
59835
60035
  displayName: "PaymentMethodModal__ModalContainer",
59836
60036
  componentId: "sc-1dxy6lr-1"
59837
60037
  })(["position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:1001;pointer-events:none;"]);
59838
- var ModalContent$2 = /*#__PURE__*/styled.div.withConfig({
60038
+ var ModalContent$3 = /*#__PURE__*/styled.div.withConfig({
59839
60039
  displayName: "PaymentMethodModal__ModalContent",
59840
60040
  componentId: "sc-1dxy6lr-2"
59841
60041
  })(["background:#1a1a2e;border:2px solid #f59e0b;border-radius:8px;padding:20px 24px 24px;min-width:300px;max-width:90%;display:flex;flex-direction:column;gap:16px;pointer-events:auto;animation:scaleIn 0.15s ease-out;@keyframes scaleIn{from{transform:scale(0.85);opacity:0;}to{transform:scale(1);opacity:1;}}"]);
59842
- var Header$b = /*#__PURE__*/styled.div.withConfig({
60042
+ var Header$c = /*#__PURE__*/styled.div.withConfig({
59843
60043
  displayName: "PaymentMethodModal__Header",
59844
60044
  componentId: "sc-1dxy6lr-3"
59845
60045
  })(["display:flex;align-items:center;justify-content:space-between;"]);
59846
- var Title$g = /*#__PURE__*/styled.h3.withConfig({
60046
+ var Title$h = /*#__PURE__*/styled.h3.withConfig({
59847
60047
  displayName: "PaymentMethodModal__Title",
59848
60048
  componentId: "sc-1dxy6lr-4"
59849
60049
  })(["margin:0;font-family:'Press Start 2P',cursive;font-size:0.7rem;color:#fef08a;"]);
59850
- var CloseButton$b = /*#__PURE__*/styled.button.withConfig({
60050
+ var CloseButton$c = /*#__PURE__*/styled.button.withConfig({
59851
60051
  displayName: "PaymentMethodModal__CloseButton",
59852
60052
  componentId: "sc-1dxy6lr-5"
59853
60053
  })(["background:none;border:none;color:rgba(255,255,255,0.6);cursor:pointer;font-size:1rem;padding:4px;display:flex;align-items:center;&:hover{color:#ffffff;}"]);
59854
- var Options = /*#__PURE__*/styled.div.withConfig({
60054
+ var Options$1 = /*#__PURE__*/styled.div.withConfig({
59855
60055
  displayName: "PaymentMethodModal__Options",
59856
60056
  componentId: "sc-1dxy6lr-6"
59857
60057
  })(["display:flex;flex-direction:column;gap:8px;"]);
59858
- var RadioOption = /*#__PURE__*/styled.div.withConfig({
60058
+ var RadioOption$1 = /*#__PURE__*/styled.div.withConfig({
59859
60059
  displayName: "PaymentMethodModal__RadioOption",
59860
60060
  componentId: "sc-1dxy6lr-7"
59861
60061
  })(["display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid ", ";border-radius:6px;background:", ";cursor:pointer;transition:border-color 0.15s,background 0.15s;&:hover{border-color:#f59e0b;}"], function (_ref2) {
@@ -59865,7 +60065,7 @@ var RadioOption = /*#__PURE__*/styled.div.withConfig({
59865
60065
  var $selected = _ref3.$selected;
59866
60066
  return $selected ? 'rgba(245,158,11,0.1)' : 'transparent';
59867
60067
  });
59868
- var RadioCircle = /*#__PURE__*/styled.div.withConfig({
60068
+ var RadioCircle$1 = /*#__PURE__*/styled.div.withConfig({
59869
60069
  displayName: "PaymentMethodModal__RadioCircle",
59870
60070
  componentId: "sc-1dxy6lr-8"
59871
60071
  })(["width:16px;height:16px;border-radius:50%;border:2px solid ", ";display:flex;align-items:center;justify-content:center;flex-shrink:0;&::after{content:'';width:8px;height:8px;border-radius:50%;background:#f59e0b;opacity:", ";transition:opacity 0.15s;}"], function (_ref4) {
@@ -59875,19 +60075,19 @@ var RadioCircle = /*#__PURE__*/styled.div.withConfig({
59875
60075
  var $selected = _ref5.$selected;
59876
60076
  return $selected ? 1 : 0;
59877
60077
  });
59878
- var OptionText = /*#__PURE__*/styled.div.withConfig({
60078
+ var OptionText$1 = /*#__PURE__*/styled.div.withConfig({
59879
60079
  displayName: "PaymentMethodModal__OptionText",
59880
60080
  componentId: "sc-1dxy6lr-9"
59881
60081
  })(["display:flex;flex-direction:column;gap:3px;"]);
59882
- var OptionLabel = /*#__PURE__*/styled.span.withConfig({
60082
+ var OptionLabel$1 = /*#__PURE__*/styled.span.withConfig({
59883
60083
  displayName: "PaymentMethodModal__OptionLabel",
59884
60084
  componentId: "sc-1dxy6lr-10"
59885
60085
  })(["font-family:'Press Start 2P',cursive;font-size:0.65rem;color:#ffffff;"]);
59886
- var OptionSub = /*#__PURE__*/styled.span.withConfig({
60086
+ var OptionSub$1 = /*#__PURE__*/styled.span.withConfig({
59887
60087
  displayName: "PaymentMethodModal__OptionSub",
59888
60088
  componentId: "sc-1dxy6lr-11"
59889
60089
  })(["font-family:'Press Start 2P',cursive;font-size:0.5rem;color:rgba(255,255,255,0.55);"]);
59890
- var ConfirmRow = /*#__PURE__*/styled.div.withConfig({
60090
+ var ConfirmRow$1 = /*#__PURE__*/styled.div.withConfig({
59891
60091
  displayName: "PaymentMethodModal__ConfirmRow",
59892
60092
  componentId: "sc-1dxy6lr-12"
59893
60093
  })(["display:flex;justify-content:center;margin-top:4px;"]);
@@ -59926,7 +60126,7 @@ var TimeWidget = function TimeWidget(_ref) {
59926
60126
  return React.createElement(Draggable, {
59927
60127
  scale: scale,
59928
60128
  cancel: ".time-widget-close,.time-widget-container,.time-widget-container *"
59929
- }, React.createElement(WidgetContainer, null, React.createElement(CloseButton$c, {
60129
+ }, React.createElement(WidgetContainer, null, React.createElement(CloseButton$d, {
59930
60130
  onPointerDown: onClose,
59931
60131
  className: "time-widget-close"
59932
60132
  }, "X"), React.createElement(DayNightContainer, {
@@ -59943,7 +60143,7 @@ var Time = /*#__PURE__*/styled.div.withConfig({
59943
60143
  displayName: "TimeWidget__Time",
59944
60144
  componentId: "sc-1ja236h-1"
59945
60145
  })(["top:0.75rem;right:0.5rem;position:absolute;font-size:", ";color:white;"], uiFonts.size.small);
59946
- var CloseButton$c = /*#__PURE__*/styled.p.withConfig({
60146
+ var CloseButton$d = /*#__PURE__*/styled.p.withConfig({
59947
60147
  displayName: "TimeWidget__CloseButton",
59948
60148
  componentId: "sc-1ja236h-2"
59949
60149
  })(["position:absolute;top:-0.5rem;margin:0;right:-0.2rem;font-size:", " !important;z-index:1;"], uiFonts.size.small);
@@ -60222,7 +60422,7 @@ var TradingMenu = function TradingMenu(_ref) {
60222
60422
  width: "500px",
60223
60423
  cancelDrag: "#TraderContainer",
60224
60424
  scale: scale
60225
- }, React.createElement(Container$O, null, React.createElement(Title$h, null, type.charAt(0).toUpperCase() + type.slice(1), " Menu"), React.createElement("hr", {
60425
+ }, React.createElement(Container$O, null, React.createElement(Title$i, null, type.charAt(0).toUpperCase() + type.slice(1), " Menu"), React.createElement("hr", {
60226
60426
  className: "golden"
60227
60427
  }), React.createElement(ScrollWrapper, {
60228
60428
  id: "TraderContainer"
@@ -60254,7 +60454,7 @@ var Container$O = /*#__PURE__*/styled.div.withConfig({
60254
60454
  displayName: "TradingMenu__Container",
60255
60455
  componentId: "sc-1wjsz1l-0"
60256
60456
  })(["width:100%;"]);
60257
- var Title$h = /*#__PURE__*/styled.h1.withConfig({
60457
+ var Title$i = /*#__PURE__*/styled.h1.withConfig({
60258
60458
  displayName: "TradingMenu__Title",
60259
60459
  componentId: "sc-1wjsz1l-1"
60260
60460
  })(["font-size:0.7rem !important;color:yellow !important;text-align:center;"]);
@@ -60434,5 +60634,5 @@ var LessonContainer = /*#__PURE__*/styled.div.withConfig({
60434
60634
  componentId: "sc-7tgzv2-6"
60435
60635
  })(["display:flex;flex-direction:column;justify-content:space-between;min-height:200px;p{font-size:0.7rem !important;}"]);
60436
60636
 
60437
- export { ActionButtons, AsyncDropdown, Button, ButtonTypes, CTAButton, CartView, CharacterSelection, CharacterSkinSelectionModal, Chat, ChatDeprecated, ChatRevamp, CheckButton, CheckItem, CircularController, CraftBook, DCWalletModal, DailyTasks, DraggableContainer, Dropdown, DropdownSelectorContainer, DynamicText, EquipmentSet, EquipmentSlotSpriteByType, ErrorBoundary, FriendList, GemSelector, HistoryDialog, ImageCarousel, ImgSide, InformationCenter, Input, InputRadio, InternalTabs, ItemContainer$1 as ItemContainer, ItemPropertySimpleHandler, ItemQuantitySelectorModal, ItemSelector, ItemSlot, JoystickDPad, Leaderboard, ListMenu, LoginStreakPanel, Marketplace, MarketplaceRows, MetadataCollector, MultitabType, NPCDialog, NPCDialogType, NPCMultiDialog, PartyCreate, PartyDashboard, PartyInvite, PartyManager, PartyManagerRow, PartyRow, PaymentMethodModal, PlayersRow, ProgressBar$1 as ProgressBar, PropertySelect, QuantitySelectorModal, QuestInfo, QuestList, QuestionDialog, RPGUIContainer, RPGUIContainerTypes, RPGUIRoot, RangeSlider, RangeSliderType, SelectArrow, Shortcuts, SimpleImageCarousel, SkillProgressBar, SkillsContainer, SocialModal, Spellbook, SpriteFromAtlas, Stepper, Store, TabBody, Table, TableCell, TableHeader, TableRow, TabsContainer, TextArea, TimeWidget, Tooltip, TradingMenu, Truncate, TutorialStepper, UserActionLink, _RPGUI, formatQuestStatus, formatQuestText, getMockedPlayersRowsLeader, getMockedPlayersRowsNotLeader, getQuestStatusColor, mockedPartyManager, mockedPartyRows, mockedPlayersRows, mockedPlayersRows2, useEventListener, useStoreCart };
60637
+ export { ActionButtons, AsyncDropdown, Button, ButtonTypes, CTAButton, CartView, CharacterSelection, CharacterSkinSelectionModal, Chat, ChatDeprecated, ChatRevamp, CheckButton, CheckItem, CircularController, CraftBook, DCWalletModal, DailyTasks, DraggableContainer, Dropdown, DropdownSelectorContainer, DynamicText, EquipmentSet, EquipmentSlotSpriteByType, ErrorBoundary, FriendList, GemSelector, HistoryDialog, ImageCarousel, ImgSide, InformationCenter, Input, InputRadio, InternalTabs, ItemContainer$1 as ItemContainer, ItemPropertySimpleHandler, ItemQuantitySelectorModal, ItemSelector, ItemSlot, JoystickDPad, Leaderboard, ListMenu, LoginStreakPanel, Marketplace, MarketplaceBuyModal, MarketplaceRows, MetadataCollector, MultitabType, NPCDialog, NPCDialogType, NPCMultiDialog, PartyCreate, PartyDashboard, PartyInvite, PartyManager, PartyManagerRow, PartyRow, PaymentMethodModal, PlayersRow, ProgressBar$1 as ProgressBar, PropertySelect, QuantitySelectorModal, QuestInfo, QuestList, QuestionDialog, RPGUIContainer, RPGUIContainerTypes, RPGUIRoot, RangeSlider, RangeSliderType, SelectArrow, Shortcuts, SimpleImageCarousel, SkillProgressBar, SkillsContainer, SocialModal, Spellbook, SpriteFromAtlas, Stepper, Store, TabBody, Table, TableCell, TableHeader, TableRow, TabsContainer, TextArea, TimeWidget, Tooltip, TradingMenu, Truncate, TutorialStepper, UserActionLink, _RPGUI, formatQuestStatus, formatQuestText, getMockedPlayersRowsLeader, getMockedPlayersRowsNotLeader, getQuestStatusColor, mockedPartyManager, mockedPartyRows, mockedPlayersRows, mockedPlayersRows2, useEventListener, useStoreCart };
60438
60638
  //# sourceMappingURL=long-bow.esm.js.map