@rpg-engine/long-bow 0.8.231 → 0.8.233

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 (37) hide show
  1. package/dist/components/Quests/QuestInfo/QuestInfo.d.ts +3 -1
  2. package/dist/components/Quests/QuestInfo/QuestObjectivesSection.d.ts +8 -0
  3. package/dist/components/Quests/QuestInfo/QuestRequirementsSection.d.ts +8 -0
  4. package/dist/components/Quests/QuestInfo/QuestRewardsSection.d.ts +8 -0
  5. package/dist/components/Quests/QuestInfo/QuestSectionTypes.d.ts +8 -0
  6. package/dist/components/Quests/QuestList.d.ts +4 -5
  7. package/dist/components/Quests/QuestListRow.d.ts +15 -0
  8. package/dist/components/Store/CartView.d.ts +11 -1
  9. package/dist/components/Store/PaymentMethodModal.d.ts +1 -0
  10. package/dist/components/Store/Store.d.ts +2 -1
  11. package/dist/components/Store/hooks/useStoreCart.d.ts +2 -1
  12. package/dist/components/Tutorial/TutorialStepper.d.ts +2 -0
  13. package/dist/index.d.ts +1 -0
  14. package/dist/long-bow.cjs.development.js +491 -170
  15. package/dist/long-bow.cjs.development.js.map +1 -1
  16. package/dist/long-bow.cjs.production.min.js +1 -1
  17. package/dist/long-bow.cjs.production.min.js.map +1 -1
  18. package/dist/long-bow.esm.js +492 -172
  19. package/dist/long-bow.esm.js.map +1 -1
  20. package/package.json +1 -1
  21. package/src/components/Quests/QuestInfo/QuestInfo.tsx +57 -68
  22. package/src/components/Quests/QuestInfo/QuestObjectivesSection.tsx +114 -0
  23. package/src/components/Quests/QuestInfo/QuestRequirementsSection.tsx +74 -0
  24. package/src/components/Quests/QuestInfo/QuestRewardsSection.tsx +128 -0
  25. package/src/components/Quests/QuestInfo/QuestSectionTypes.ts +8 -0
  26. package/src/components/Quests/QuestList.tsx +12 -87
  27. package/src/components/Quests/QuestListRow.tsx +178 -0
  28. package/src/components/Store/CartView.tsx +26 -7
  29. package/src/components/Store/MetadataCollector.tsx +28 -1
  30. package/src/components/Store/PaymentMethodModal.tsx +19 -9
  31. package/src/components/Store/Store.tsx +2 -2
  32. package/src/components/Store/__test__/CartView.spec.tsx +190 -0
  33. package/src/components/Store/__test__/MetadataCollector.spec.tsx +12 -3
  34. package/src/components/Store/__test__/PaymentMethodModal.spec.tsx +108 -0
  35. package/src/components/Store/hooks/useStoreCart.ts +6 -4
  36. package/src/components/Tutorial/TutorialStepper.tsx +2 -0
  37. package/src/index.tsx +1 -1
@@ -2,7 +2,7 @@ import React, { useState, useEffect, Component, useRef, useCallback, useMemo, me
2
2
  import styled, { css, createGlobalStyle, keyframes } 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, DC_TO_GOLD_SWAP_RATE, ItemSlotType, NPCSubtype, EntityAttackType, NPCAlignment, VideoGuideCategory, VideoGuideLanguage, MarketplaceBuyOrderStatus, MarketplaceAcceptedCurrency, formatDCAmount, goldToDC, MarketplaceTransactionType, CharacterClass as CharacterClass$2, QuestStatus, getLevelFromXP, getSkillConstants, getLevelFromSPTiered, getXPForLevel, getSPForLevelTiered, MetadataType, PurchaseType, PaymentCurrency, UserAccountTypes, 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, DC_TO_GOLD_SWAP_RATE, ItemSlotType, NPCSubtype, EntityAttackType, NPCAlignment, VideoGuideCategory, VideoGuideLanguage, MarketplaceBuyOrderStatus, MarketplaceAcceptedCurrency, formatDCAmount, goldToDC, MarketplaceTransactionType, CharacterClass as CharacterClass$2, QuestType, QuestStatus, getLevelFromXP, getSkillConstants, getLevelFromSPTiered, getXPForLevel, getSPForLevelTiered, MetadataType, PurchaseType, PaymentCurrency, UserAccountTypes, PeriodOfDay } from '@rpg-engine/shared';
6
6
  export { MarketplaceAcceptedCurrency } from '@rpg-engine/shared';
7
7
  import dayjs from 'dayjs';
8
8
  import { ErrorBoundary as ErrorBoundary$1 } from 'react-error-boundary';
@@ -15639,21 +15639,239 @@ var Container$E = /*#__PURE__*/styled.div.withConfig({
15639
15639
 
15640
15640
  var img$7 = 'data:image/png;base64,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';
15641
15641
 
15642
+ var QuestObjectivesSection = function QuestObjectivesSection(_ref) {
15643
+ var _ref$objectives = _ref.objectives,
15644
+ objectives = _ref$objectives === void 0 ? [] : _ref$objectives,
15645
+ entitiesAtlasJSON = _ref.entitiesAtlasJSON,
15646
+ entitiesAtlasIMG = _ref.entitiesAtlasIMG;
15647
+ if (!objectives.length) {
15648
+ return null;
15649
+ }
15650
+ return React.createElement(Section$4, null, React.createElement(SectionTitle$4, null, "Objectives"), objectives.map(function (objective, index) {
15651
+ if (objective.type === QuestType.Kill) {
15652
+ var progress = (objective.killCount || 0) + "/" + objective.killCountTarget;
15653
+ var fill = Math.min((objective.killCount || 0) / Math.max(objective.killCountTarget || 1, 1), 1) * 100;
15654
+ return React.createElement(ObjectiveBlock, {
15655
+ key: objective.id || index
15656
+ }, (objective.creatures || objective.creatureKeys || []).map(function (creature) {
15657
+ var data = typeof creature === 'string' ? {
15658
+ key: creature,
15659
+ name: creature,
15660
+ texturePath: ''
15661
+ } : creature;
15662
+ return React.createElement(ObjectiveRow, {
15663
+ key: data.key
15664
+ }, entitiesAtlasJSON && entitiesAtlasIMG && data.texturePath && React.createElement(SpriteFromAtlas, {
15665
+ atlasJSON: entitiesAtlasJSON,
15666
+ atlasIMG: entitiesAtlasIMG,
15667
+ spriteKey: data.texturePath,
15668
+ width: 32,
15669
+ height: 32,
15670
+ imgScale: 1,
15671
+ centered: true
15672
+ }), React.createElement(ObjectiveText, null, data.name || data.key), React.createElement(ProgressText$1, null, progress));
15673
+ }), React.createElement(ProgressBar$2, null, React.createElement(ProgressFill$1, {
15674
+ style: {
15675
+ width: fill + "%"
15676
+ }
15677
+ })));
15678
+ }
15679
+ if (objective.type === QuestType.Interaction) {
15680
+ return React.createElement(ObjectiveRow, {
15681
+ key: objective.id || index
15682
+ }, React.createElement(ObjectiveText, null, "Talk to ", objective.targetNPCkey || 'the quest contact'));
15683
+ }
15684
+ return null;
15685
+ }));
15686
+ };
15687
+ var Section$4 = /*#__PURE__*/styled.section.withConfig({
15688
+ displayName: "QuestObjectivesSection__Section",
15689
+ componentId: "sc-yzy6q8-0"
15690
+ })(["margin:10px 18px;"]);
15691
+ var SectionTitle$4 = /*#__PURE__*/styled.h2.withConfig({
15692
+ displayName: "QuestObjectivesSection__SectionTitle",
15693
+ componentId: "sc-yzy6q8-1"
15694
+ })(["color:", ";font-size:0.9rem;margin:0 0 8px;"], uiColors.yellow);
15695
+ var ObjectiveBlock = /*#__PURE__*/styled.div.withConfig({
15696
+ displayName: "QuestObjectivesSection__ObjectiveBlock",
15697
+ componentId: "sc-yzy6q8-2"
15698
+ })(["margin-bottom:8px;"]);
15699
+ var ObjectiveRow = /*#__PURE__*/styled.div.withConfig({
15700
+ displayName: "QuestObjectivesSection__ObjectiveRow",
15701
+ componentId: "sc-yzy6q8-3"
15702
+ })(["color:", ";display:flex;align-items:center;gap:8px;min-height:28px;font-size:0.75rem;"], uiColors.white);
15703
+ var ObjectiveText = /*#__PURE__*/styled.span.withConfig({
15704
+ displayName: "QuestObjectivesSection__ObjectiveText",
15705
+ componentId: "sc-yzy6q8-4"
15706
+ })(["flex:1;"]);
15707
+ var ProgressText$1 = /*#__PURE__*/styled.span.withConfig({
15708
+ displayName: "QuestObjectivesSection__ProgressText",
15709
+ componentId: "sc-yzy6q8-5"
15710
+ })(["color:", ";"], uiColors.yellow);
15711
+ var ProgressBar$2 = /*#__PURE__*/styled.div.withConfig({
15712
+ displayName: "QuestObjectivesSection__ProgressBar",
15713
+ componentId: "sc-yzy6q8-6"
15714
+ })(["height:6px;background:", ";border-radius:3px;overflow:hidden;margin-top:4px;"], uiColors.gray);
15715
+ var ProgressFill$1 = /*#__PURE__*/styled.div.withConfig({
15716
+ displayName: "QuestObjectivesSection__ProgressFill",
15717
+ componentId: "sc-yzy6q8-7"
15718
+ })(["height:100%;background:", ";"], uiColors.lightGreen);
15719
+
15720
+ var QuestRequirementsSection = function QuestRequirementsSection(_ref) {
15721
+ var _ref$objectives = _ref.objectives,
15722
+ objectives = _ref$objectives === void 0 ? [] : _ref$objectives,
15723
+ itemsAtlasJSON = _ref.itemsAtlasJSON,
15724
+ itemsAtlasIMG = _ref.itemsAtlasIMG;
15725
+ var items = objectives.filter(function (objective) {
15726
+ return objective.type === QuestType.Interaction;
15727
+ }).flatMap(function (objective) {
15728
+ return objective.items || [];
15729
+ });
15730
+ if (!items.length) {
15731
+ return null;
15732
+ }
15733
+ return React.createElement(Section$5, null, React.createElement(SectionTitle$5, null, "Requirements"), items.map(function (item) {
15734
+ var hasQty = item.playerHasQty || 0;
15735
+ var isMet = hasQty >= item.qty;
15736
+ return React.createElement(RequirementRow, {
15737
+ key: item.itemKey,
15738
+ isMet: isMet
15739
+ }, itemsAtlasJSON && itemsAtlasIMG && item.texturePath && React.createElement(ItemInfoWrapper, {
15740
+ item: _extends({}, item, {
15741
+ key: item.itemKey,
15742
+ stackQty: item.qty
15743
+ }),
15744
+ atlasJSON: itemsAtlasJSON,
15745
+ atlasIMG: itemsAtlasIMG
15746
+ }, React.createElement(SpriteFromAtlas, {
15747
+ atlasJSON: itemsAtlasJSON,
15748
+ atlasIMG: itemsAtlasIMG,
15749
+ spriteKey: item.texturePath,
15750
+ width: 32,
15751
+ height: 32,
15752
+ imgScale: 1.5,
15753
+ centered: true
15754
+ })), React.createElement("span", null, hasQty, "/", item.qty, " ", item.name || item.itemKey));
15755
+ }));
15756
+ };
15757
+ var Section$5 = /*#__PURE__*/styled.section.withConfig({
15758
+ displayName: "QuestRequirementsSection__Section",
15759
+ componentId: "sc-cbw9sz-0"
15760
+ })(["margin:10px 18px;"]);
15761
+ var SectionTitle$5 = /*#__PURE__*/styled.h2.withConfig({
15762
+ displayName: "QuestRequirementsSection__SectionTitle",
15763
+ componentId: "sc-cbw9sz-1"
15764
+ })(["color:", ";font-size:0.9rem;margin:0 0 8px;"], uiColors.yellow);
15765
+ var RequirementRow = /*#__PURE__*/styled.div.withConfig({
15766
+ displayName: "QuestRequirementsSection__RequirementRow",
15767
+ componentId: "sc-cbw9sz-2"
15768
+ })(["color:", ";display:flex;align-items:center;gap:8px;min-height:34px;font-size:0.75rem;"], function (props) {
15769
+ return props.isMet ? uiColors.lightGreen : uiColors.red;
15770
+ });
15771
+
15772
+ var QuestRewardsSection = function QuestRewardsSection(_ref) {
15773
+ var _ref$rewards = _ref.rewards,
15774
+ rewards = _ref$rewards === void 0 ? [] : _ref$rewards,
15775
+ itemsAtlasJSON = _ref.itemsAtlasJSON,
15776
+ itemsAtlasIMG = _ref.itemsAtlasIMG,
15777
+ iconsAtlasJSON = _ref.iconsAtlasJSON,
15778
+ iconsAtlasIMG = _ref.iconsAtlasIMG;
15779
+ var items = rewards.flatMap(function (reward) {
15780
+ return reward.items || [];
15781
+ });
15782
+ var spells = rewards.flatMap(function (reward) {
15783
+ return reward.spells || [];
15784
+ });
15785
+ if (!items.length && !spells.length) {
15786
+ return null;
15787
+ }
15788
+ return React.createElement(Section$6, null, React.createElement(SectionTitle$6, null, "Rewards"), React.createElement(RewardGrid, null, items.map(function (item) {
15789
+ var _item$name;
15790
+ return React.createElement(RewardItem$1, {
15791
+ key: item.key + "-" + item.qty
15792
+ }, itemsAtlasJSON && itemsAtlasIMG && item.texturePath ? React.createElement(ItemInfoWrapper, {
15793
+ item: _extends({}, item, {
15794
+ key: item.key,
15795
+ stackQty: item.qty
15796
+ }),
15797
+ atlasJSON: itemsAtlasJSON,
15798
+ atlasIMG: itemsAtlasIMG
15799
+ }, React.createElement(SpriteFromAtlas, {
15800
+ atlasJSON: itemsAtlasJSON,
15801
+ atlasIMG: itemsAtlasIMG,
15802
+ spriteKey: item.texturePath,
15803
+ width: 32,
15804
+ height: 32,
15805
+ imgScale: 1.5,
15806
+ centered: true
15807
+ })) : React.createElement(FallbackIcon, null, ((_item$name = item.name) == null ? void 0 : _item$name[0]) || '?'), item.qty > 1 && React.createElement(QtyBadge, null, "x", item.qty), React.createElement(RewardName, null, item.name || item.key));
15808
+ }), spells.map(function (spell) {
15809
+ var _spell$name;
15810
+ return React.createElement(RewardItem$1, {
15811
+ key: spell.key,
15812
+ title: spell.name || spell.key
15813
+ }, iconsAtlasJSON && iconsAtlasIMG && spell.texturePath ? React.createElement(SpriteFromAtlas, {
15814
+ atlasJSON: iconsAtlasJSON,
15815
+ atlasIMG: iconsAtlasIMG,
15816
+ spriteKey: spell.texturePath,
15817
+ width: 32,
15818
+ height: 32,
15819
+ imgScale: 1.5,
15820
+ centered: true
15821
+ }) : React.createElement(FallbackIcon, null, ((_spell$name = spell.name) == null ? void 0 : _spell$name[0]) || '?'), React.createElement(RewardName, null, spell.name || spell.key));
15822
+ })));
15823
+ };
15824
+ var Section$6 = /*#__PURE__*/styled.section.withConfig({
15825
+ displayName: "QuestRewardsSection__Section",
15826
+ componentId: "sc-1eth6wx-0"
15827
+ })(["margin:10px 18px;"]);
15828
+ var SectionTitle$6 = /*#__PURE__*/styled.h2.withConfig({
15829
+ displayName: "QuestRewardsSection__SectionTitle",
15830
+ componentId: "sc-1eth6wx-1"
15831
+ })(["color:", ";font-size:0.9rem;margin:0 0 8px;"], uiColors.yellow);
15832
+ var RewardGrid = /*#__PURE__*/styled.div.withConfig({
15833
+ displayName: "QuestRewardsSection__RewardGrid",
15834
+ componentId: "sc-1eth6wx-2"
15835
+ })(["display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;"]);
15836
+ var RewardItem$1 = /*#__PURE__*/styled.div.withConfig({
15837
+ displayName: "QuestRewardsSection__RewardItem",
15838
+ componentId: "sc-1eth6wx-3"
15839
+ })(["position:relative;min-height:58px;color:", ";display:flex;flex-direction:column;align-items:center;gap:4px;font-size:0.65rem;"], uiColors.white);
15840
+ var FallbackIcon = /*#__PURE__*/styled.div.withConfig({
15841
+ displayName: "QuestRewardsSection__FallbackIcon",
15842
+ componentId: "sc-1eth6wx-4"
15843
+ })(["width:32px;height:32px;border:1px solid ", ";display:flex;align-items:center;justify-content:center;color:", ";"], uiColors.gray, uiColors.yellow);
15844
+ var QtyBadge = /*#__PURE__*/styled.span.withConfig({
15845
+ displayName: "QuestRewardsSection__QtyBadge",
15846
+ componentId: "sc-1eth6wx-5"
15847
+ })(["position:absolute;top:0;right:18px;background:", ";color:", ";border:1px solid ", ";padding:1px 4px;"], uiColors.darkGray, uiColors.yellow, uiColors.gray);
15848
+ var RewardName = /*#__PURE__*/styled.span.withConfig({
15849
+ displayName: "QuestRewardsSection__RewardName",
15850
+ componentId: "sc-1eth6wx-6"
15851
+ })(["text-align:center;"]);
15852
+
15642
15853
  var QuestInfo = function QuestInfo(_ref) {
15643
15854
  var quests = _ref.quests,
15644
15855
  onClose = _ref.onClose,
15645
15856
  buttons = _ref.buttons,
15646
15857
  onChangeQuest = _ref.onChangeQuest,
15647
- scale = _ref.scale;
15858
+ scale = _ref.scale,
15859
+ itemsAtlasJSON = _ref.itemsAtlasJSON,
15860
+ itemsAtlasIMG = _ref.itemsAtlasIMG,
15861
+ entitiesAtlasJSON = _ref.entitiesAtlasJSON,
15862
+ entitiesAtlasIMG = _ref.entitiesAtlasIMG,
15863
+ iconsAtlasJSON = _ref.iconsAtlasJSON,
15864
+ iconsAtlasIMG = _ref.iconsAtlasIMG;
15648
15865
  var _useState = useState(0),
15649
15866
  currentIndex = _useState[0],
15650
15867
  setCurrentIndex = _useState[1];
15651
15868
  var questsLength = quests.length - 1;
15869
+ var currentQuest = quests[currentIndex] || quests[0];
15652
15870
  useEffect(function () {
15653
- if (onChangeQuest) {
15654
- onChangeQuest(currentIndex, quests[currentIndex]._id);
15871
+ if (onChangeQuest && currentQuest) {
15872
+ onChangeQuest(currentIndex, currentQuest._id);
15655
15873
  }
15656
- }, [currentIndex]);
15874
+ }, [currentIndex, currentQuest]);
15657
15875
  var onLeftClick = function onLeftClick() {
15658
15876
  if (currentIndex === 0) setCurrentIndex(questsLength);else setCurrentIndex(function (index) {
15659
15877
  return index - 1;
@@ -15672,50 +15890,47 @@ var QuestInfo = function QuestInfo(_ref) {
15672
15890
  width: "730px",
15673
15891
  cancelDrag: ".equipment-container-body .arrow-selector",
15674
15892
  scale: scale
15675
- }, quests.length >= 2 ? React.createElement(QuestsContainer, null, currentIndex !== 0 && React.createElement(SelectArrow, {
15893
+ }, currentQuest && React.createElement(QuestsContainer, null, quests.length >= 2 && currentIndex !== 0 && React.createElement(SelectArrow, {
15676
15894
  direction: "left",
15677
15895
  onPointerDown: onLeftClick
15678
- }), currentIndex !== quests.length - 1 && React.createElement(SelectArrow, {
15896
+ }), quests.length >= 2 && currentIndex !== quests.length - 1 && React.createElement(SelectArrow, {
15679
15897
  direction: "right",
15680
15898
  onPointerDown: onRightClick
15681
15899
  }), React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
15682
15900
  className: "drag-handler"
15683
15901
  }, React.createElement(Title$h, null, React.createElement(Thumbnail, {
15684
- src: quests[currentIndex].thumbnail || img$7
15685
- }), quests[currentIndex].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
15686
- className: "golden"
15687
- }))), React.createElement(Content$3, null, React.createElement("p", null, quests[currentIndex].description)), React.createElement(QuestColumn, {
15688
- className: "dark-background",
15689
- justifyContent: "flex-end"
15690
- }, buttons && buttons.map(function (button, index) {
15691
- return React.createElement(Button, {
15692
- key: index,
15693
- onPointerDown: function onPointerDown() {
15694
- return button.onClick(quests[currentIndex]._id, quests[currentIndex].npcId);
15695
- },
15696
- disabled: button.disabled,
15697
- buttonType: ButtonTypes.RPGUIButton,
15698
- id: "button-" + index
15699
- }, button.title);
15700
- })))) : React.createElement(QuestsContainer, null, React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
15701
- className: "drag-handler"
15702
- }, React.createElement(Title$h, null, React.createElement(Thumbnail, {
15703
- src: quests[0].thumbnail || img$7
15704
- }), quests[0].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
15902
+ src: currentQuest.thumbnail || img$7
15903
+ }), currentQuest.title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
15705
15904
  className: "golden"
15706
- }))), React.createElement(Content$3, null, React.createElement("p", null, quests[0].description)), React.createElement(QuestColumn, {
15905
+ }))), React.createElement(Content$3, null, React.createElement("p", null, currentQuest.description)), React.createElement(QuestObjectivesSection, {
15906
+ objectives: currentQuest.objectives,
15907
+ entitiesAtlasJSON: entitiesAtlasJSON,
15908
+ entitiesAtlasIMG: entitiesAtlasIMG
15909
+ }), React.createElement(QuestRequirementsSection, {
15910
+ objectives: currentQuest.objectives,
15911
+ itemsAtlasJSON: itemsAtlasJSON,
15912
+ itemsAtlasIMG: itemsAtlasIMG
15913
+ }), React.createElement(QuestRewardsSection, {
15914
+ rewards: currentQuest.rewards,
15915
+ itemsAtlasJSON: itemsAtlasJSON,
15916
+ itemsAtlasIMG: itemsAtlasIMG,
15917
+ iconsAtlasJSON: iconsAtlasJSON,
15918
+ iconsAtlasIMG: iconsAtlasIMG
15919
+ }), React.createElement(QuestColumn, {
15707
15920
  className: "dark-background",
15708
15921
  justifyContent: "flex-end"
15709
15922
  }, buttons && buttons.map(function (button, index) {
15710
- return React.createElement(Button, {
15923
+ return React.createElement(ButtonWrapper$3, {
15711
15924
  key: index,
15925
+ title: button.disabled ? button.disabledReason : undefined
15926
+ }, React.createElement(Button, {
15712
15927
  onPointerDown: function onPointerDown() {
15713
- return button.onClick(quests[0]._id, quests[0].npcId);
15928
+ return button.onClick(currentQuest._id, currentQuest.npcId);
15714
15929
  },
15715
15930
  disabled: button.disabled,
15716
15931
  buttonType: ButtonTypes.RPGUIButton,
15717
15932
  id: "button-" + index
15718
- }, button.title);
15933
+ }, button.title));
15719
15934
  })))));
15720
15935
  };
15721
15936
  var QuestDraggableContainer = /*#__PURE__*/styled(DraggableContainer).withConfig({
@@ -15742,70 +15957,74 @@ var QuestColumn = /*#__PURE__*/styled(Column).withConfig({
15742
15957
  displayName: "QuestInfo__QuestColumn",
15743
15958
  componentId: "sc-1wccpiy-5"
15744
15959
  })(["padding-top:5px;margin-bottom:20px;display:flex;justify-content:space-evenly;"]);
15960
+ var ButtonWrapper$3 = /*#__PURE__*/styled.div.withConfig({
15961
+ displayName: "QuestInfo__ButtonWrapper",
15962
+ componentId: "sc-1wccpiy-6"
15963
+ })(["display:inline-flex;"]);
15745
15964
  var TitleContainer$1 = /*#__PURE__*/styled.div.withConfig({
15746
15965
  displayName: "QuestInfo__TitleContainer",
15747
- componentId: "sc-1wccpiy-6"
15966
+ componentId: "sc-1wccpiy-7"
15748
15967
  })(["width:100%;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;margin-top:1rem;"]);
15749
15968
  var Title$h = /*#__PURE__*/styled.h1.withConfig({
15750
15969
  displayName: "QuestInfo__Title",
15751
- componentId: "sc-1wccpiy-7"
15970
+ componentId: "sc-1wccpiy-8"
15752
15971
  })(["color:white;z-index:22;font-size:", " !important;color:", " !important;"], uiFonts.size.medium, uiColors.yellow);
15753
15972
  var Thumbnail = /*#__PURE__*/styled.img.withConfig({
15754
15973
  displayName: "QuestInfo__Thumbnail",
15755
- componentId: "sc-1wccpiy-8"
15974
+ componentId: "sc-1wccpiy-9"
15756
15975
  })(["color:white;z-index:22;width:32px * 1.5;margin-right:0.5rem;position:relative;top:-4px;"]);
15757
15976
 
15758
- var QuestList = function QuestList(_ref) {
15759
- var quests = _ref.quests,
15760
- styles = _ref.styles;
15761
- return React.createElement(QuestListContainer, {
15762
- style: styles == null ? void 0 : styles.container
15763
- }, quests && quests.length > 0 ? quests.map(function (quest, i) {
15764
- var _formatQuestStatus;
15765
- return React.createElement(QuestCard, {
15766
- key: i,
15767
- style: styles == null ? void 0 : styles.card
15768
- }, React.createElement(QuestItem, null, React.createElement(Label$6, {
15769
- style: styles == null ? void 0 : styles.label
15770
- }, "Title:"), React.createElement(Value$2, {
15771
- style: styles == null ? void 0 : styles.value
15772
- }, formatQuestText(quest.title))), React.createElement(QuestItem, null, React.createElement(Label$6, {
15773
- style: styles == null ? void 0 : styles.label
15774
- }, "Status:"), React.createElement(Value$2, {
15775
- style: _extends({}, styles == null ? void 0 : styles.value, {
15776
- color: getQuestStatusColor(quest.status)
15777
- })
15778
- }, (_formatQuestStatus = formatQuestStatus(quest.status)) != null ? _formatQuestStatus : 'Unknown')), React.createElement(QuestItem, null, React.createElement(Label$6, {
15779
- style: styles == null ? void 0 : styles.label
15780
- }, "Description:"), React.createElement(Value$2, {
15781
- style: styles == null ? void 0 : styles.value
15782
- }, quest.description)));
15783
- }) : React.createElement(NoQuestContainer, null, React.createElement("p", null, "There are no ongoing quests")));
15977
+ var getProgressText = function getProgressText(quest) {
15978
+ var _objective$items;
15979
+ var objective = (quest.objectives || [])[0];
15980
+ if (!objective) {
15981
+ return null;
15982
+ }
15983
+ if (objective.type === QuestType.Kill) {
15984
+ return (objective.killCount || 0) + "/" + objective.killCountTarget;
15985
+ }
15986
+ if (objective.type === QuestType.Interaction && (_objective$items = objective.items) != null && _objective$items.length) {
15987
+ var item = objective.items[0];
15988
+ return "Bring " + (item.playerHasQty || 0) + "/" + item.qty;
15989
+ }
15990
+ return objective.type === QuestType.Interaction && objective.targetNPCkey ? 'Talk' : null;
15991
+ };
15992
+ var QuestListRow = function QuestListRow(_ref) {
15993
+ var quest = _ref.quest,
15994
+ compact = _ref.compact,
15995
+ itemsAtlasJSON = _ref.itemsAtlasJSON,
15996
+ itemsAtlasIMG = _ref.itemsAtlasIMG;
15997
+ var rewardItems = (quest.rewards || []).flatMap(function (reward) {
15998
+ return reward.items || [];
15999
+ });
16000
+ var visibleRewards = rewardItems.slice(0, 6);
16001
+ var overflowCount = Math.max(rewardItems.length - visibleRewards.length, 0);
16002
+ var progressText = getProgressText(quest);
16003
+ return React.createElement(QuestCard, null, React.createElement(Header$d, null, React.createElement(Title$i, null, formatQuestText(quest.title)), React.createElement(Status, {
16004
+ style: {
16005
+ color: getQuestStatusColor(quest.status)
16006
+ }
16007
+ }, formatQuestStatus(quest.status) || 'Unknown')), !compact && React.createElement(React.Fragment, null, React.createElement(Description$5, null, quest.description), React.createElement(MetaRow$2, null, quest.status === QuestStatus.Completed ? 'Completed' : progressText), !!visibleRewards.length && React.createElement(RewardStrip, null, visibleRewards.map(function (item) {
16008
+ var _item$name;
16009
+ return React.createElement(RewardIcon$1, {
16010
+ key: item.key + "-" + item.qty
16011
+ }, itemsAtlasJSON && itemsAtlasIMG && item.texturePath ? React.createElement(ItemInfoWrapper, {
16012
+ item: _extends({}, item, {
16013
+ stackQty: item.qty
16014
+ }),
16015
+ atlasJSON: itemsAtlasJSON,
16016
+ atlasIMG: itemsAtlasIMG
16017
+ }, React.createElement(SpriteFromAtlas, {
16018
+ atlasJSON: itemsAtlasJSON,
16019
+ atlasIMG: itemsAtlasIMG,
16020
+ spriteKey: item.texturePath,
16021
+ width: 24,
16022
+ height: 24,
16023
+ imgScale: 1,
16024
+ centered: true
16025
+ })) : React.createElement(FallbackIcon$1, null, ((_item$name = item.name) == null ? void 0 : _item$name[0]) || '?'));
16026
+ }), overflowCount > 0 && React.createElement(MoreRewards, null, "+", overflowCount, " more"))));
15784
16027
  };
15785
- var QuestListContainer = /*#__PURE__*/styled.div.withConfig({
15786
- displayName: "QuestList__QuestListContainer",
15787
- componentId: "sc-1c1y8sp-0"
15788
- })(["max-height:400px;padding:10px;border-radius:10px;font-size:0.7rem;"]);
15789
- var QuestCard = /*#__PURE__*/styled.div.withConfig({
15790
- displayName: "QuestList__QuestCard",
15791
- componentId: "sc-1c1y8sp-1"
15792
- })(["background-color:", ";padding:15px;margin-bottom:10px;border-radius:10px;border:1px solid ", ";display:flex;flex-direction:column;"], uiColors.darkGray, uiColors.gray);
15793
- var QuestItem = /*#__PURE__*/styled.div.withConfig({
15794
- displayName: "QuestList__QuestItem",
15795
- componentId: "sc-1c1y8sp-2"
15796
- })(["display:flex;margin-bottom:5px;flex-wrap:wrap;&:last-child{margin-bottom:0;}"]);
15797
- var Label$6 = /*#__PURE__*/styled.span.withConfig({
15798
- displayName: "QuestList__Label",
15799
- componentId: "sc-1c1y8sp-3"
15800
- })(["font-weight:bold;color:", " !important;margin-right:10px;"], uiColors.yellow);
15801
- var Value$2 = /*#__PURE__*/styled.span.withConfig({
15802
- displayName: "QuestList__Value",
15803
- componentId: "sc-1c1y8sp-4"
15804
- })(["flex-grow:1;color:", ";word-wrap:break-word;"], uiColors.white);
15805
- var NoQuestContainer = /*#__PURE__*/styled.div.withConfig({
15806
- displayName: "QuestList__NoQuestContainer",
15807
- componentId: "sc-1c1y8sp-5"
15808
- })(["text-align:center;p{margin-top:5px;color:", ";}"], uiColors.lightGray);
15809
16028
  var formatQuestText = function formatQuestText(text) {
15810
16029
  if (!text) return '';
15811
16030
  return text.split('-').map(function (word) {
@@ -15830,6 +16049,73 @@ var formatQuestStatus = function formatQuestStatus(status) {
15830
16049
  return c.toUpperCase();
15831
16050
  });
15832
16051
  };
16052
+ var QuestCard = /*#__PURE__*/styled.div.withConfig({
16053
+ displayName: "QuestListRow__QuestCard",
16054
+ componentId: "sc-s95wf6-0"
16055
+ })(["background-color:", ";padding:12px;margin-bottom:10px;border-radius:8px;border:1px solid ", ";"], uiColors.darkGray, uiColors.gray);
16056
+ var Header$d = /*#__PURE__*/styled.div.withConfig({
16057
+ displayName: "QuestListRow__Header",
16058
+ componentId: "sc-s95wf6-1"
16059
+ })(["display:flex;justify-content:space-between;gap:10px;"]);
16060
+ var Title$i = /*#__PURE__*/styled.span.withConfig({
16061
+ displayName: "QuestListRow__Title",
16062
+ componentId: "sc-s95wf6-2"
16063
+ })(["color:", ";font-weight:bold;"], uiColors.yellow);
16064
+ var Status = /*#__PURE__*/styled.span.withConfig({
16065
+ displayName: "QuestListRow__Status",
16066
+ componentId: "sc-s95wf6-3"
16067
+ })(["white-space:nowrap;"]);
16068
+ var Description$5 = /*#__PURE__*/styled.p.withConfig({
16069
+ displayName: "QuestListRow__Description",
16070
+ componentId: "sc-s95wf6-4"
16071
+ })(["color:", ";margin:8px 0;"], uiColors.white);
16072
+ var MetaRow$2 = /*#__PURE__*/styled.div.withConfig({
16073
+ displayName: "QuestListRow__MetaRow",
16074
+ componentId: "sc-s95wf6-5"
16075
+ })(["color:", ";font-size:0.7rem;margin-bottom:6px;"], uiColors.lightGreen);
16076
+ var RewardStrip = /*#__PURE__*/styled.div.withConfig({
16077
+ displayName: "QuestListRow__RewardStrip",
16078
+ componentId: "sc-s95wf6-6"
16079
+ })(["display:flex;align-items:center;gap:6px;"]);
16080
+ var RewardIcon$1 = /*#__PURE__*/styled.div.withConfig({
16081
+ displayName: "QuestListRow__RewardIcon",
16082
+ componentId: "sc-s95wf6-7"
16083
+ })(["width:24px;height:24px;"]);
16084
+ var FallbackIcon$1 = /*#__PURE__*/styled.div.withConfig({
16085
+ displayName: "QuestListRow__FallbackIcon",
16086
+ componentId: "sc-s95wf6-8"
16087
+ })(["width:24px;height:24px;border:1px solid ", ";color:", ";display:flex;align-items:center;justify-content:center;"], uiColors.gray, uiColors.yellow);
16088
+ var MoreRewards = /*#__PURE__*/styled.span.withConfig({
16089
+ displayName: "QuestListRow__MoreRewards",
16090
+ componentId: "sc-s95wf6-9"
16091
+ })(["color:", ";font-size:0.65rem;"], uiColors.lightGray);
16092
+
16093
+ var QuestList = function QuestList(_ref) {
16094
+ var quests = _ref.quests,
16095
+ compact = _ref.compact,
16096
+ styles = _ref.styles,
16097
+ itemsAtlasJSON = _ref.itemsAtlasJSON,
16098
+ itemsAtlasIMG = _ref.itemsAtlasIMG;
16099
+ return React.createElement(QuestListContainer, {
16100
+ style: styles == null ? void 0 : styles.container
16101
+ }, quests && quests.length > 0 ? quests.map(function (quest, i) {
16102
+ return React.createElement(QuestListRow, {
16103
+ key: quest._id || i,
16104
+ quest: quest,
16105
+ compact: compact,
16106
+ itemsAtlasJSON: itemsAtlasJSON,
16107
+ itemsAtlasIMG: itemsAtlasIMG
16108
+ });
16109
+ }) : React.createElement(NoQuestContainer, null, React.createElement("p", null, "There are no ongoing quests")));
16110
+ };
16111
+ var QuestListContainer = /*#__PURE__*/styled.div.withConfig({
16112
+ displayName: "QuestList__QuestListContainer",
16113
+ componentId: "sc-1c1y8sp-0"
16114
+ })(["max-height:400px;padding:10px;border-radius:10px;font-size:0.7rem;"]);
16115
+ var NoQuestContainer = /*#__PURE__*/styled.div.withConfig({
16116
+ displayName: "QuestList__NoQuestContainer",
16117
+ componentId: "sc-1c1y8sp-1"
16118
+ })(["text-align:center;p{margin-top:5px;color:", ";}"], uiColors.lightGray);
15833
16119
 
15834
16120
  var InputRadio = function InputRadio(_ref) {
15835
16121
  var name = _ref.name,
@@ -15882,9 +16168,9 @@ var RadioSelectCard = function RadioSelectCard(_ref) {
15882
16168
  onClick: onClick,
15883
16169
  "data-testid": testId,
15884
16170
  type: "button"
15885
- }, icon && React.createElement(IconWrap, null, icon), React.createElement(Body, null, React.createElement(Label$7, {
16171
+ }, icon && React.createElement(IconWrap, null, icon), React.createElement(Body, null, React.createElement(Label$6, {
15886
16172
  "$active": active
15887
- }, label), description && React.createElement(Description$5, null, description)), badge && React.createElement(Badge, {
16173
+ }, label), description && React.createElement(Description$6, null, description)), badge && React.createElement(Badge, {
15888
16174
  "$active": active
15889
16175
  }, badge));
15890
16176
  };
@@ -15916,14 +16202,14 @@ var Body = /*#__PURE__*/styled.div.withConfig({
15916
16202
  displayName: "RadioSelectCard__Body",
15917
16203
  componentId: "sc-12jrcz1-2"
15918
16204
  })(["flex:1 !important;min-width:0 !important;display:flex !important;flex-direction:column !important;gap:0.2rem !important;"]);
15919
- var Label$7 = /*#__PURE__*/styled.span.withConfig({
16205
+ var Label$6 = /*#__PURE__*/styled.span.withConfig({
15920
16206
  displayName: "RadioSelectCard__Label",
15921
16207
  componentId: "sc-12jrcz1-3"
15922
16208
  })(["font-size:0.72rem !important;font-weight:bold !important;color:", " !important;text-transform:uppercase !important;letter-spacing:0.8px !important;line-height:1.2 !important;"], function (_ref7) {
15923
16209
  var $active = _ref7.$active;
15924
16210
  return $active ? '#f59e0b' : 'rgba(255, 255, 255, 0.9)';
15925
16211
  });
15926
- var Description$5 = /*#__PURE__*/styled.span.withConfig({
16212
+ var Description$6 = /*#__PURE__*/styled.span.withConfig({
15927
16213
  displayName: "RadioSelectCard__Description",
15928
16214
  componentId: "sc-12jrcz1-4"
15929
16215
  })(["font-size:0.62rem !important;color:rgba(255,255,255,0.45) !important;line-height:1.4 !important;"]);
@@ -16456,11 +16742,11 @@ var SkillInfoModal = function SkillInfoModal(_ref) {
16456
16742
  onPointerDown: onClose
16457
16743
  }), React.createElement(ModalContainer$7, null, React.createElement(ModalContent$7, {
16458
16744
  onPointerDown: stopPropagation
16459
- }, React.createElement(Header$d, null, React.createElement(Title$i, {
16745
+ }, React.createElement(Header$e, null, React.createElement(Title$j, {
16460
16746
  "$color": info.color
16461
16747
  }, info.name), React.createElement(CloseButton$g, {
16462
16748
  onPointerDown: onClose
16463
- }, React.createElement(FaTimes, null))), React.createElement(Section$4, null, React.createElement(Label$8, null, "What it does"), React.createElement(Text$1, null, info.description)), React.createElement(Section$4, null, React.createElement(Label$8, null, "How to train"), React.createElement(Text$1, null, info.howToTrain)), info.notes && React.createElement(Section$4, null, React.createElement(Label$8, null, "Notes"), React.createElement(Text$1, null, info.notes)))));
16749
+ }, React.createElement(FaTimes, null))), React.createElement(Section$7, null, React.createElement(Label$7, null, "What it does"), React.createElement(Text$1, null, info.description)), React.createElement(Section$7, null, React.createElement(Label$7, null, "How to train"), React.createElement(Text$1, null, info.howToTrain)), info.notes && React.createElement(Section$7, null, React.createElement(Label$7, null, "Notes"), React.createElement(Text$1, null, info.notes)))));
16464
16750
  };
16465
16751
  var Overlay$9 = /*#__PURE__*/styled.div.withConfig({
16466
16752
  displayName: "SkillInfoModal__Overlay",
@@ -16474,11 +16760,11 @@ var ModalContent$7 = /*#__PURE__*/styled.div.withConfig({
16474
16760
  displayName: "SkillInfoModal__ModalContent",
16475
16761
  componentId: "sc-pqkzdj-2"
16476
16762
  })(["background:#1a1a2e;border:2px solid #f59e0b;border-radius:8px;padding:20px 24px 24px;width:340px;max-width:90%;max-height:80dvh;overflow-y:auto;display:flex;flex-direction:column;gap:14px;pointer-events:auto;animation:scaleIn 0.15s ease-out;@keyframes scaleIn{from{transform:scale(0.85);opacity:0;}to{transform:scale(1);opacity:1;}}"]);
16477
- var Header$d = /*#__PURE__*/styled.div.withConfig({
16763
+ var Header$e = /*#__PURE__*/styled.div.withConfig({
16478
16764
  displayName: "SkillInfoModal__Header",
16479
16765
  componentId: "sc-pqkzdj-3"
16480
16766
  })(["display:flex;align-items:center;gap:8px;"]);
16481
- var Title$i = /*#__PURE__*/styled.h3.withConfig({
16767
+ var Title$j = /*#__PURE__*/styled.h3.withConfig({
16482
16768
  displayName: "SkillInfoModal__Title",
16483
16769
  componentId: "sc-pqkzdj-4"
16484
16770
  })(["margin:0;flex:1;font-family:'Press Start 2P',cursive;font-size:0.65rem;color:", ";"], function (_ref2) {
@@ -16489,11 +16775,11 @@ var CloseButton$g = /*#__PURE__*/styled.button.withConfig({
16489
16775
  displayName: "SkillInfoModal__CloseButton",
16490
16776
  componentId: "sc-pqkzdj-5"
16491
16777
  })(["background:none;border:none;color:rgba(255,255,255,0.6);cursor:pointer;font-size:1rem;padding:4px;display:flex;align-items:center;pointer-events:auto;&:hover{color:#ffffff;}"]);
16492
- var Section$4 = /*#__PURE__*/styled.div.withConfig({
16778
+ var Section$7 = /*#__PURE__*/styled.div.withConfig({
16493
16779
  displayName: "SkillInfoModal__Section",
16494
16780
  componentId: "sc-pqkzdj-6"
16495
16781
  })(["display:flex;flex-direction:column;gap:6px;"]);
16496
- var Label$8 = /*#__PURE__*/styled.span.withConfig({
16782
+ var Label$7 = /*#__PURE__*/styled.span.withConfig({
16497
16783
  displayName: "SkillInfoModal__Label",
16498
16784
  componentId: "sc-pqkzdj-7"
16499
16785
  })(["font-size:0.5rem;font-weight:bold;text-transform:uppercase;letter-spacing:0.05em;color:rgba(255,255,255,0.45);"]);
@@ -16806,7 +17092,7 @@ var SpellInfo$1 = function SpellInfo(_ref) {
16806
17092
  castingType = spell.castingType,
16807
17093
  cooldown = spell.cooldown,
16808
17094
  maxDistanceGrid = spell.maxDistanceGrid;
16809
- return React.createElement(Container$G, null, React.createElement(Header$e, null, React.createElement("div", null, React.createElement(Title$j, null, name), React.createElement(Type$1, null, magicWords))), React.createElement(Statistic$1, null, React.createElement("div", {
17095
+ return React.createElement(Container$G, null, React.createElement(Header$f, null, React.createElement("div", null, React.createElement(Title$k, null, name), React.createElement(Type$1, null, magicWords))), React.createElement(Statistic$1, null, React.createElement("div", {
16810
17096
  className: "label"
16811
17097
  }, "Casting Type:"), React.createElement("div", {
16812
17098
  className: "value"
@@ -16830,13 +17116,13 @@ var SpellInfo$1 = function SpellInfo(_ref) {
16830
17116
  className: "label"
16831
17117
  }, "Required Item:"), React.createElement("div", {
16832
17118
  className: "value"
16833
- }, requiredItem))), React.createElement(Description$6, null, description));
17119
+ }, requiredItem))), React.createElement(Description$7, null, description));
16834
17120
  };
16835
17121
  var Container$G = /*#__PURE__*/styled.div.withConfig({
16836
17122
  displayName: "SpellInfo__Container",
16837
17123
  componentId: "sc-4hbw3q-0"
16838
17124
  })(["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);
16839
- var Title$j = /*#__PURE__*/styled.div.withConfig({
17125
+ var Title$k = /*#__PURE__*/styled.div.withConfig({
16840
17126
  displayName: "SpellInfo__Title",
16841
17127
  componentId: "sc-4hbw3q-1"
16842
17128
  })(["font-size:", ";font-weight:bold;margin-bottom:0.5rem;display:flex;align-items:center;margin:0;"], uiFonts.size.medium);
@@ -16844,11 +17130,11 @@ var Type$1 = /*#__PURE__*/styled.div.withConfig({
16844
17130
  displayName: "SpellInfo__Type",
16845
17131
  componentId: "sc-4hbw3q-2"
16846
17132
  })(["font-size:", ";margin-top:0.2rem;color:", ";"], uiFonts.size.small, uiColors.lightGray);
16847
- var Description$6 = /*#__PURE__*/styled.div.withConfig({
17133
+ var Description$7 = /*#__PURE__*/styled.div.withConfig({
16848
17134
  displayName: "SpellInfo__Description",
16849
17135
  componentId: "sc-4hbw3q-3"
16850
17136
  })(["margin-top:1.5rem;font-size:", ";color:", ";font-style:italic;"], uiFonts.size.small, uiColors.lightGray);
16851
- var Header$e = /*#__PURE__*/styled.div.withConfig({
17137
+ var Header$f = /*#__PURE__*/styled.div.withConfig({
16852
17138
  displayName: "SpellInfo__Header",
16853
17139
  componentId: "sc-4hbw3q-4"
16854
17140
  })(["display:flex;align-items:center;justify-content:space-between;margin-bottom:0.5rem;"]);
@@ -17075,9 +17361,9 @@ var Spell = function Spell(_ref) {
17075
17361
  imgScale: IMAGE_SCALE,
17076
17362
  containerStyle: CONTAINER_STYLE,
17077
17363
  centered: true
17078
- })), React.createElement(Info, null, React.createElement(Title$k, null, React.createElement("span", null, name), React.createElement("span", {
17364
+ })), React.createElement(Info, null, React.createElement(Title$l, null, React.createElement("span", null, name), React.createElement("span", {
17079
17365
  className: "spell"
17080
- }, "(", magicWords, ")")), React.createElement(Description$7, null, description)), React.createElement(Divider$2, null), React.createElement(Cost, null, React.createElement("span", null, "Mana cost:"), React.createElement("span", {
17366
+ }, "(", magicWords, ")")), React.createElement(Description$8, null, description)), React.createElement(Divider$2, null), React.createElement(Cost, null, React.createElement("span", null, "Mana cost:"), React.createElement("span", {
17081
17367
  className: "mana"
17082
17368
  }, manaCost))));
17083
17369
  };
@@ -17096,11 +17382,11 @@ var Info = /*#__PURE__*/styled.span.withConfig({
17096
17382
  displayName: "Spell__Info",
17097
17383
  componentId: "sc-j96fa2-2"
17098
17384
  })(["width:0;flex:1;@media (orientation:portrait){display:none;}"]);
17099
- var Title$k = /*#__PURE__*/styled.p.withConfig({
17385
+ var Title$l = /*#__PURE__*/styled.p.withConfig({
17100
17386
  displayName: "Spell__Title",
17101
17387
  componentId: "sc-j96fa2-3"
17102
17388
  })(["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);
17103
- var Description$7 = /*#__PURE__*/styled.div.withConfig({
17389
+ var Description$8 = /*#__PURE__*/styled.div.withConfig({
17104
17390
  displayName: "Spell__Description",
17105
17391
  componentId: "sc-j96fa2-4"
17106
17392
  })(["font-size:", " !important;line-height:1.1 !important;"], uiFonts.size.small);
@@ -17161,7 +17447,7 @@ var Spellbook = function Spellbook(_ref) {
17161
17447
  height: "inherit",
17162
17448
  cancelDrag: "#spellbook-search, #shortcuts_list, .spell",
17163
17449
  scale: scale
17164
- }, React.createElement(Container$K, null, React.createElement(Title$l, null, "Learned Spells"), React.createElement(ShortcutsSetter, {
17450
+ }, React.createElement(Container$K, null, React.createElement(Title$m, null, "Learned Spells"), React.createElement(ShortcutsSetter, {
17165
17451
  setSettingShortcutIndex: setSettingShortcutIndex,
17166
17452
  settingShortcutIndex: settingShortcutIndex,
17167
17453
  shortcuts: shortcuts,
@@ -17194,7 +17480,7 @@ var Spellbook = function Spellbook(_ref) {
17194
17480
  }, spell)));
17195
17481
  }))));
17196
17482
  };
17197
- var Title$l = /*#__PURE__*/styled.h1.withConfig({
17483
+ var Title$m = /*#__PURE__*/styled.h1.withConfig({
17198
17484
  displayName: "Spellbook__Title",
17199
17485
  componentId: "sc-r02nfq-0"
17200
17486
  })(["font-size:", " !important;margin-bottom:0 !important;"], uiFonts.size.large);
@@ -37614,7 +37900,7 @@ var PurchaseSuccess = function PurchaseSuccess(_ref) {
37614
37900
  key: i,
37615
37901
  "$i": i
37616
37902
  });
37617
- })), React.createElement(Header$f, null, React.createElement(TrophyArea, null, React.createElement(TrophyIcon, null, React.createElement(Sparkle, null))), React.createElement(Title$m, null, "PURCHASE COMPLETE!"), React.createElement(Subtitle$2, null, "Your items are ready")), React.createElement(ItemsList, null, items.map(function (item, i) {
37903
+ })), React.createElement(Header$g, null, React.createElement(TrophyArea, null, React.createElement(TrophyIcon, null, React.createElement(Sparkle, null))), React.createElement(Title$n, null, "PURCHASE COMPLETE!"), React.createElement(Subtitle$2, null, "Your items are ready")), React.createElement(ItemsList, null, items.map(function (item, i) {
37618
37904
  var _item$metadata;
37619
37905
  var isCharSkin = item.metadataType === MetadataType.CharacterSkin;
37620
37906
  var spriteKey = isCharSkin && (_item$metadata = item.metadata) != null && _item$metadata.selectedSkinTextureKey ? item.metadata.selectedSkinTextureKey + "/down/standing/0.png" : item.texturePath;
@@ -37661,7 +37947,7 @@ var Spark = /*#__PURE__*/styled.div.withConfig({
37661
37947
  }, function (p) {
37662
37948
  return p.$i * 0.2;
37663
37949
  });
37664
- var Header$f = /*#__PURE__*/styled.div.withConfig({
37950
+ var Header$g = /*#__PURE__*/styled.div.withConfig({
37665
37951
  displayName: "PurchaseSuccess__Header",
37666
37952
  componentId: "sc-18z5q21-3"
37667
37953
  })(["display:flex;flex-direction:column;align-items:center;gap:0.5rem;"]);
@@ -37673,7 +37959,7 @@ var TrophyIcon = /*#__PURE__*/styled.div.withConfig({
37673
37959
  displayName: "PurchaseSuccess__TrophyIcon",
37674
37960
  componentId: "sc-18z5q21-5"
37675
37961
  })(["width:64px;height:64px;border-radius:50%;background:rgba(245,158,11,0.15);border:2px solid #f59e0b;display:flex;align-items:center;justify-content:center;animation:", " 2s ease-in-out infinite;svg{font-size:1.75rem;color:#f59e0b;}"], glowPulse);
37676
- var Title$m = /*#__PURE__*/styled.h2.withConfig({
37962
+ var Title$n = /*#__PURE__*/styled.h2.withConfig({
37677
37963
  displayName: "PurchaseSuccess__Title",
37678
37964
  componentId: "sc-18z5q21-6"
37679
37965
  })(["font-family:'Press Start 2P',cursive;font-size:0.9rem;color:#fef08a;margin:0;text-shadow:0 0 8px rgba(245,158,11,0.6);"]);
@@ -37718,12 +38004,23 @@ var CloseLink = /*#__PURE__*/styled.div.withConfig({
37718
38004
  componentId: "sc-18z5q21-16"
37719
38005
  })(["font-family:'Press Start 2P',cursive;font-size:0.5rem;color:rgba(255,255,255,0.45);cursor:pointer;display:flex;align-items:center;gap:0.3rem;transition:color 0.15s;&:hover{color:rgba(255,255,255,0.7);}"]);
37720
38006
 
38007
+ var GENERIC_PURCHASE_FAILED_MESSAGE = 'Purchase failed. Please try again.';
38008
+ var normalizePurchaseResult = function normalizePurchaseResult(result) {
38009
+ if (typeof result === 'boolean') {
38010
+ return result ? {
38011
+ status: 'success'
38012
+ } : {
38013
+ status: 'failed'
38014
+ };
38015
+ }
38016
+ return result;
38017
+ };
37721
38018
  var MetadataDisplay = function MetadataDisplay(_ref) {
37722
38019
  var type = _ref.type,
37723
38020
  metadata = _ref.metadata;
37724
38021
  switch (type) {
37725
38022
  case MetadataType.CharacterSkin:
37726
- return React.createElement(MetadataInfo, null, React.createElement(MetadataLabel, null, React.createElement(InfoBox, null), React.createElement("span", null, "Skin:")), React.createElement(MetadataValue, null, metadata.selectedSkinName || 'Custom skin'));
38023
+ return React.createElement(MetadataInfo, null, React.createElement(MetadataLabel, null, React.createElement(InfoBox, null), React.createElement("span", null, "Skin:")), React.createElement(MetadataValue, null, metadata.selectedSkinName || metadata.selectedSkin || 'Custom skin'));
37727
38024
  default:
37728
38025
  return null;
37729
38026
  }
@@ -37765,7 +38062,7 @@ var CartView = function CartView(_ref2) {
37765
38062
  };
37766
38063
  var handlePurchase = /*#__PURE__*/function () {
37767
38064
  var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
37768
- var snapshot, trackItems, success, errMsg, _errMsg;
38065
+ var snapshot, trackItems, purchaseResult, _purchaseResult$error, errMsg, _errMsg;
37769
38066
  return _regeneratorRuntime().wrap(function _callee$(_context) {
37770
38067
  while (1) switch (_context.prev = _context.next) {
37771
38068
  case 0:
@@ -37781,36 +38078,38 @@ var CartView = function CartView(_ref2) {
37781
38078
  };
37782
38079
  });
37783
38080
  onCheckoutStart == null ? void 0 : onCheckoutStart(trackItems, total);
37784
- _context.next = 8;
38081
+ _context.t0 = normalizePurchaseResult;
38082
+ _context.next = 9;
37785
38083
  return onPurchase();
37786
- case 8:
37787
- success = _context.sent;
37788
- if (success) {
38084
+ case 9:
38085
+ _context.t1 = _context.sent;
38086
+ purchaseResult = (0, _context.t0)(_context.t1);
38087
+ if (purchaseResult.status === 'success') {
37789
38088
  onPurchaseSuccess == null ? void 0 : onPurchaseSuccess(trackItems, total);
37790
38089
  setPurchasedItems(snapshot);
37791
- } else {
37792
- errMsg = 'Purchase failed. Please try again.';
38090
+ } else if (purchaseResult.status === 'failed') {
38091
+ errMsg = (_purchaseResult$error = purchaseResult.error) != null ? _purchaseResult$error : GENERIC_PURCHASE_FAILED_MESSAGE;
37793
38092
  onPurchaseError == null ? void 0 : onPurchaseError(errMsg);
37794
38093
  setError(errMsg);
37795
38094
  }
37796
- _context.next = 18;
38095
+ _context.next = 20;
37797
38096
  break;
37798
- case 12:
37799
- _context.prev = 12;
37800
- _context.t0 = _context["catch"](0);
38097
+ case 14:
38098
+ _context.prev = 14;
38099
+ _context.t2 = _context["catch"](0);
37801
38100
  _errMsg = 'An error occurred during purchase. Please try again.';
37802
38101
  onPurchaseError == null ? void 0 : onPurchaseError(_errMsg);
37803
38102
  setError(_errMsg);
37804
- console.error('Purchase error:', _context.t0);
37805
- case 18:
37806
- _context.prev = 18;
38103
+ console.error('Purchase error:', _context.t2);
38104
+ case 20:
38105
+ _context.prev = 20;
37807
38106
  setIsLoading(false);
37808
- return _context.finish(18);
37809
- case 21:
38107
+ return _context.finish(20);
38108
+ case 23:
37810
38109
  case "end":
37811
38110
  return _context.stop();
37812
38111
  }
37813
- }, _callee, null, [[0, 12, 18, 21]]);
38112
+ }, _callee, null, [[0, 14, 20, 23]]);
37814
38113
  }));
37815
38114
  return function handlePurchase() {
37816
38115
  return _ref3.apply(this, arguments);
@@ -37836,26 +38135,27 @@ var CartView = function CartView(_ref2) {
37836
38135
  onClose: onCloseStore != null ? onCloseStore : onClose
37837
38136
  });
37838
38137
  }
37839
- return React.createElement(Container$M, null, React.createElement(Header$g, null, React.createElement(Title$n, null, "Shopping Cart (", cartItems.reduce(function (s, ci) {
38138
+ return React.createElement(Container$M, null, React.createElement(Header$h, null, React.createElement(Title$o, null, "Shopping Cart (", cartItems.reduce(function (s, ci) {
37840
38139
  return s + ci.quantity;
37841
38140
  }, 0), ")"), React.createElement(CloseButton$i, {
37842
38141
  onPointerDown: onClose
37843
38142
  }, React.createElement(Cancel, null))), React.createElement(MainContent$1, null, cartItems.length === 0 ? React.createElement(EmptyCart, null, React.createElement(Box, null), "Your cart is empty") : React.createElement(CartItems, null, cartItems.map(function (cartItem) {
37844
- var _cartItem$metadata, _cartItem$metadata2, _cartItem$item$region2, _cartItem$item$region3;
38143
+ var _cartItem$metadata$se, _cartItem$metadata, _cartItem$metadata2, _cartItem$metadata3, _cartItem$item$region2, _cartItem$item$region3;
37845
38144
  var getSpriteKey = function getSpriteKey(textureKey) {
37846
38145
  return textureKey + '/down/standing/0.png';
37847
38146
  };
38147
+ var selectedSkinTextureKey = (_cartItem$metadata$se = (_cartItem$metadata = cartItem.metadata) == null ? void 0 : _cartItem$metadata.selectedSkinTextureKey) != null ? _cartItem$metadata$se : (_cartItem$metadata2 = cartItem.metadata) == null ? void 0 : _cartItem$metadata2.selectedSkin;
37848
38148
  return React.createElement(CartItemRow, {
37849
38149
  key: cartItem.item.key
37850
38150
  }, React.createElement(ItemIconContainer, null, React.createElement(SpriteFromAtlas, {
37851
38151
  atlasJSON: cartItem.item.metadataType === MetadataType.CharacterSkin ? characterAtlasJSON : atlasJSON,
37852
38152
  atlasIMG: cartItem.item.metadataType === MetadataType.CharacterSkin ? img$9 : atlasIMG,
37853
- spriteKey: cartItem.item.metadataType === MetadataType.CharacterSkin && (_cartItem$metadata = cartItem.metadata) != null && _cartItem$metadata.selectedSkinTextureKey ? getSpriteKey(cartItem.metadata.selectedSkinTextureKey) : cartItem.item.texturePath,
38153
+ spriteKey: cartItem.item.metadataType === MetadataType.CharacterSkin && selectedSkinTextureKey ? getSpriteKey(selectedSkinTextureKey) : cartItem.item.texturePath,
37854
38154
  width: 24,
37855
38155
  height: 24,
37856
38156
  imgScale: 1.5,
37857
38157
  centered: true
37858
- })), React.createElement(ItemDetails$4, null, React.createElement(ItemName$6, null, cartItem.item.name), ((_cartItem$metadata2 = cartItem.metadata) == null ? void 0 : _cartItem$metadata2.inputValue) && React.createElement(CartMeta, null, cartItem.metadata.inputValue), React.createElement(ItemInfo$2, null, React.createElement("span", null, currencySymbol, formatPrice((_cartItem$item$region2 = cartItem.item.regionalPrice) != null ? _cartItem$item$region2 : cartItem.item.price)), React.createElement("span", null, "\xD7"), React.createElement("span", null, cartItem.quantity), React.createElement("span", null, "="), React.createElement("span", null, currencySymbol, formatPrice(((_cartItem$item$region3 = cartItem.item.regionalPrice) != null ? _cartItem$item$region3 : cartItem.item.price) * cartItem.quantity))), cartItem.metadata && cartItem.item.metadataType && React.createElement(MetadataDisplay, {
38158
+ })), React.createElement(ItemDetails$4, null, React.createElement(ItemName$6, null, cartItem.item.name), ((_cartItem$metadata3 = cartItem.metadata) == null ? void 0 : _cartItem$metadata3.inputValue) && React.createElement(CartMeta, null, cartItem.metadata.inputValue), React.createElement(ItemInfo$2, null, React.createElement("span", null, currencySymbol, formatPrice((_cartItem$item$region2 = cartItem.item.regionalPrice) != null ? _cartItem$item$region2 : cartItem.item.price)), React.createElement("span", null, "\xD7"), React.createElement("span", null, cartItem.quantity), React.createElement("span", null, "="), React.createElement("span", null, currencySymbol, formatPrice(((_cartItem$item$region3 = cartItem.item.regionalPrice) != null ? _cartItem$item$region3 : cartItem.item.price) * cartItem.quantity))), cartItem.metadata && cartItem.item.metadataType && React.createElement(MetadataDisplay, {
37859
38159
  type: cartItem.item.metadataType,
37860
38160
  metadata: cartItem.metadata
37861
38161
  })), React.createElement(CTAButton, {
@@ -37883,11 +38183,11 @@ var Container$M = /*#__PURE__*/styled.div.withConfig({
37883
38183
  displayName: "CartView__Container",
37884
38184
  componentId: "sc-ydtyl1-0"
37885
38185
  })(["display:flex;flex-direction:column;width:100%;height:100%;padding:1rem;overflow:hidden;box-sizing:border-box;@media (max-width:480px){padding:0.75rem 0.5rem;}"]);
37886
- var Header$g = /*#__PURE__*/styled.div.withConfig({
38186
+ var Header$h = /*#__PURE__*/styled.div.withConfig({
37887
38187
  displayName: "CartView__Header",
37888
38188
  componentId: "sc-ydtyl1-1"
37889
38189
  })(["display:flex;justify-content:space-between;align-items:center;flex-shrink:0;"]);
37890
- var Title$n = /*#__PURE__*/styled.h2.withConfig({
38190
+ var Title$o = /*#__PURE__*/styled.h2.withConfig({
37891
38191
  displayName: "CartView__Title",
37892
38192
  componentId: "sc-ydtyl1-2"
37893
38193
  })(["font-family:'Press Start 2P',cursive;font-size:1rem;color:#ffffff;margin:0;"]);
@@ -38328,7 +38628,7 @@ var useStoreCart = function useStoreCart() {
38328
38628
  };
38329
38629
  var handlePurchase = /*#__PURE__*/function () {
38330
38630
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(onPurchase) {
38331
- var purchaseUnits, purchase, success;
38631
+ var purchaseUnits, purchase, result, success;
38332
38632
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
38333
38633
  while (1) switch (_context2.prev = _context2.next) {
38334
38634
  case 0:
@@ -38352,13 +38652,14 @@ var useStoreCart = function useStoreCart() {
38352
38652
  _context2.next = 4;
38353
38653
  return onPurchase(purchase);
38354
38654
  case 4:
38355
- success = _context2.sent;
38655
+ result = _context2.sent;
38656
+ success = typeof result === 'boolean' ? result : result.status === 'success';
38356
38657
  if (success && isMounted.current) {
38357
38658
  setCartItems([]);
38358
38659
  setIsCartOpen(false);
38359
38660
  }
38360
- return _context2.abrupt("return", success);
38361
- case 7:
38661
+ return _context2.abrupt("return", result);
38662
+ case 8:
38362
38663
  case "end":
38363
38664
  return _context2.stop();
38364
38665
  }
@@ -38421,6 +38722,17 @@ function uuidv4() {
38421
38722
  });
38422
38723
  }
38423
38724
 
38725
+ var getCharacterSkinMetadata = function getCharacterSkinMetadata(selectedSkinTextureKey, availableCharacters) {
38726
+ var _selectedSkin$name;
38727
+ var selectedSkin = availableCharacters.find(function (character) {
38728
+ return character.textureKey === selectedSkinTextureKey;
38729
+ });
38730
+ return {
38731
+ selectedSkin: selectedSkinTextureKey,
38732
+ selectedSkinName: (_selectedSkin$name = selectedSkin == null ? void 0 : selectedSkin.name) != null ? _selectedSkin$name : selectedSkinTextureKey,
38733
+ selectedSkinTextureKey: selectedSkinTextureKey
38734
+ };
38735
+ };
38424
38736
  var MetadataCollector = function MetadataCollector(_ref) {
38425
38737
  var metadataType = _ref.metadataType,
38426
38738
  config = _ref.config,
@@ -38461,9 +38773,7 @@ var MetadataCollector = function MetadataCollector(_ref) {
38461
38773
  isOpen: true,
38462
38774
  onClose: handleCancel,
38463
38775
  onConfirm: function onConfirm(selectedSkin) {
38464
- return handleCollect({
38465
- selectedSkin: selectedSkin
38466
- });
38776
+ return handleCollect(getCharacterSkinMetadata(selectedSkin, config.availableCharacters || []));
38467
38777
  },
38468
38778
  availableCharacters: config.availableCharacters || [],
38469
38779
  atlasJSON: config.atlasJSON,
@@ -38483,7 +38793,9 @@ var PaymentMethodModal = function PaymentMethodModal(_ref) {
38483
38793
  onPayWithPix = _ref.onPayWithPix,
38484
38794
  onClose = _ref.onClose,
38485
38795
  _ref$showPix = _ref.showPix,
38486
- showPix = _ref$showPix === void 0 ? false : _ref$showPix;
38796
+ showPix = _ref$showPix === void 0 ? false : _ref$showPix,
38797
+ _ref$isProcessing = _ref.isProcessing,
38798
+ isProcessing = _ref$isProcessing === void 0 ? false : _ref$isProcessing;
38487
38799
  var _useState = useState('card'),
38488
38800
  selected = _useState[0],
38489
38801
  setSelected = _useState[1];
@@ -38497,6 +38809,7 @@ var PaymentMethodModal = function PaymentMethodModal(_ref) {
38497
38809
  e.stopPropagation();
38498
38810
  }, []);
38499
38811
  var handleConfirm = useCallback(function () {
38812
+ if (isProcessing) return;
38500
38813
  if (selected === 'dc' && !dcDisabled) {
38501
38814
  onPayWithDC();
38502
38815
  } else if (selected === 'pix') {
@@ -38504,7 +38817,10 @@ var PaymentMethodModal = function PaymentMethodModal(_ref) {
38504
38817
  } else {
38505
38818
  onPayWithCard();
38506
38819
  }
38507
- }, [selected, dcDisabled, onPayWithDC, onPayWithCard, onPayWithPix]);
38820
+ }, [selected, dcDisabled, isProcessing, onPayWithDC, onPayWithCard, onPayWithPix]);
38821
+ var handleClose = useCallback(function () {
38822
+ if (!isProcessing) onClose();
38823
+ }, [isProcessing, onClose]);
38508
38824
  var dcSubText = dcRequired !== undefined ? React.createElement(React.Fragment, null, React.createElement(MMORPGNumber, {
38509
38825
  value: dcBalance
38510
38826
  }), " DC available \xB7", ' ', React.createElement(MMORPGNumber, {
@@ -38513,40 +38829,44 @@ var PaymentMethodModal = function PaymentMethodModal(_ref) {
38513
38829
  value: dcBalance
38514
38830
  }), " DC available");
38515
38831
  return React.createElement(ModalPortal, null, React.createElement(Overlay$b, {
38516
- onPointerDown: onClose
38832
+ onPointerDown: handleClose
38517
38833
  }), React.createElement(ModalContainer$8, null, React.createElement(ModalContent$8, {
38518
38834
  onClick: stopPropagation,
38519
38835
  onTouchStart: stopPropagation,
38520
38836
  onPointerDown: stopPropagation
38521
- }, React.createElement(Header$h, null, React.createElement(Title$o, null, "How would you like to pay?"), React.createElement(CloseButton$j, {
38522
- onPointerDown: onClose,
38523
- "aria-label": "Close"
38837
+ }, React.createElement(Header$i, null, React.createElement(Title$p, null, "How would you like to pay?"), React.createElement(CloseButton$j, {
38838
+ onPointerDown: handleClose,
38839
+ "aria-label": "Close",
38840
+ disabled: isProcessing
38524
38841
  }, React.createElement(Cancel, null))), React.createElement(Options$1, null, React.createElement(RadioOption$2, {
38525
38842
  "$selected": selected === 'card',
38526
- onPointerDown: function onPointerDown() {
38843
+ "$disabled": isProcessing,
38844
+ onPointerDown: isProcessing ? undefined : function () {
38527
38845
  return setSelected('card');
38528
38846
  }
38529
38847
  }, React.createElement(RadioCircle$3, {
38530
38848
  "$selected": selected === 'card'
38531
38849
  }), React.createElement(OptionText$1, null, React.createElement(OptionLabel$2, null, "Credit Card"), React.createElement(OptionSub$1, null, "Stripe secure checkout"))), showPix && React.createElement(RadioOption$2, {
38532
38850
  "$selected": selected === 'pix',
38533
- onPointerDown: function onPointerDown() {
38851
+ "$disabled": isProcessing,
38852
+ onPointerDown: isProcessing ? undefined : function () {
38534
38853
  return setSelected('pix');
38535
38854
  }
38536
38855
  }, React.createElement(RadioCircle$3, {
38537
38856
  "$selected": selected === 'pix'
38538
38857
  }), React.createElement(OptionText$1, null, React.createElement(OptionLabel$2, null, "Pix"), React.createElement(OptionSub$1, null, "Instant payment via Pix"))), React.createElement(RadioOption$2, {
38539
38858
  "$selected": selected === 'dc',
38540
- "$disabled": dcDisabled,
38541
- onPointerDown: dcDisabled ? undefined : function () {
38859
+ "$disabled": dcDisabled || isProcessing,
38860
+ onPointerDown: dcDisabled || isProcessing ? undefined : function () {
38542
38861
  return setSelected('dc');
38543
38862
  }
38544
38863
  }, React.createElement(RadioCircle$3, {
38545
38864
  "$selected": selected === 'dc'
38546
38865
  }), React.createElement(OptionText$1, null, React.createElement(OptionLabel$2, null, "Definya Coin"), React.createElement(OptionSub$1, null, dcSubText)))), React.createElement(ConfirmRow$1, null, React.createElement(Button, {
38547
38866
  buttonType: ButtonTypes.RPGUIButton,
38548
- onPointerDown: handleConfirm
38549
- }, "Confirm")))));
38867
+ onPointerDown: handleConfirm,
38868
+ disabled: isProcessing
38869
+ }, isProcessing ? 'Processing...' : 'Confirm')))));
38550
38870
  };
38551
38871
  var Overlay$b = /*#__PURE__*/styled.div.withConfig({
38552
38872
  displayName: "PaymentMethodModal__Overlay",
@@ -38560,11 +38880,11 @@ var ModalContent$8 = /*#__PURE__*/styled.div.withConfig({
38560
38880
  displayName: "PaymentMethodModal__ModalContent",
38561
38881
  componentId: "sc-1dxy6lr-2"
38562
38882
  })(["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;}}"]);
38563
- var Header$h = /*#__PURE__*/styled.div.withConfig({
38883
+ var Header$i = /*#__PURE__*/styled.div.withConfig({
38564
38884
  displayName: "PaymentMethodModal__Header",
38565
38885
  componentId: "sc-1dxy6lr-3"
38566
38886
  })(["display:flex;align-items:center;justify-content:space-between;"]);
38567
- var Title$o = /*#__PURE__*/styled.h3.withConfig({
38887
+ var Title$p = /*#__PURE__*/styled.h3.withConfig({
38568
38888
  displayName: "PaymentMethodModal__Title",
38569
38889
  componentId: "sc-1dxy6lr-4"
38570
38890
  })(["margin:0;font-family:'Press Start 2P',cursive;font-size:0.7rem;color:#fef08a;"]);
@@ -38930,7 +39250,7 @@ var StoreCharacterSkinRow = function StoreCharacterSkinRow(_ref) {
38930
39250
  height: 32,
38931
39251
  imgScale: 2,
38932
39252
  centered: true
38933
- }) : React.createElement(DefaultIcon, null, "\uD83D\uDC64")), React.createElement(ItemDetails$5, null, React.createElement(Header$i, null, React.createElement(ItemName$7, null, item.name)), availableCharacters.length > 0 && currentCharacter && React.createElement(SelectedSkinNav, null, React.createElement(SelectedSkin, null, "Selected:"), React.createElement(SkinNavArrow, {
39253
+ }) : React.createElement(DefaultIcon, null, "\uD83D\uDC64")), React.createElement(ItemDetails$5, null, React.createElement(Header$j, null, React.createElement(ItemName$7, null, item.name)), availableCharacters.length > 0 && currentCharacter && React.createElement(SelectedSkinNav, null, React.createElement(SelectedSkin, null, "Selected:"), React.createElement(SkinNavArrow, {
38934
39254
  direction: "left",
38935
39255
  onPointerDown: handlePreviousSkin,
38936
39256
  size: 24
@@ -39063,7 +39383,7 @@ var SkinNavArrow = /*#__PURE__*/styled(SelectArrow).withConfig({
39063
39383
  displayName: "StoreCharacterSkinRow__SkinNavArrow",
39064
39384
  componentId: "sc-81xqsx-10"
39065
39385
  })(["position:static;"]);
39066
- var Header$i = /*#__PURE__*/styled.div.withConfig({
39386
+ var Header$j = /*#__PURE__*/styled.div.withConfig({
39067
39387
  displayName: "StoreCharacterSkinRow__Header",
39068
39388
  componentId: "sc-81xqsx-11"
39069
39389
  })(["display:flex;align-items:center;gap:0.5rem;"]);
@@ -39872,7 +40192,7 @@ var StoreRedeemSection = function StoreRedeemSection(_ref) {
39872
40192
  height: 32
39873
40193
  })), React.createElement(SuccessTitle, null, "Code Redeemed!"), dcAmount != null && React.createElement(DCAmountDisplay, null, "+", React.createElement(MMORPGNumber, {
39874
40194
  value: dcAmount
39875
- }), " DC"), React.createElement(SuccessHint, null, "Your wallet balance has been updated."), React.createElement(ButtonWrapper$3, null, React.createElement(CTAButton, {
40195
+ }), " DC"), React.createElement(SuccessHint, null, "Your wallet balance has been updated."), React.createElement(ButtonWrapper$4, null, React.createElement(CTAButton, {
39876
40196
  icon: React.createElement(Receipt, null),
39877
40197
  label: "Redeem Another",
39878
40198
  onClick: handleReset
@@ -39882,13 +40202,13 @@ var StoreRedeemSection = function StoreRedeemSection(_ref) {
39882
40202
  return React.createElement(Container$O, null, React.createElement(ResultContainer, null, React.createElement(ErrorIcon, null, React.createElement(WarningDiamond, {
39883
40203
  width: 32,
39884
40204
  height: 32
39885
- })), React.createElement(ErrorTitle, null, errorMessage), React.createElement(ButtonWrapper$3, null, React.createElement(CTAButton, {
40205
+ })), React.createElement(ErrorTitle, null, errorMessage), React.createElement(ButtonWrapper$4, null, React.createElement(CTAButton, {
39886
40206
  icon: React.createElement(Receipt, null),
39887
40207
  label: "Try Again",
39888
40208
  onClick: handleReset
39889
40209
  }))));
39890
40210
  }
39891
- return React.createElement(Container$O, null, React.createElement(Title$p, null, "Redeem a Voucher Code"), React.createElement(Description$8, null, "Enter your voucher code below to receive Definya Coins."), React.createElement(InputRow, null, React.createElement(CodeInput, {
40211
+ return React.createElement(Container$O, null, React.createElement(Title$q, null, "Redeem a Voucher Code"), React.createElement(Description$9, null, "Enter your voucher code below to receive Definya Coins."), React.createElement(InputRow, null, React.createElement(CodeInput, {
39892
40212
  type: "text",
39893
40213
  value: code,
39894
40214
  onChange: function onChange(e) {
@@ -39901,7 +40221,7 @@ var StoreRedeemSection = function StoreRedeemSection(_ref) {
39901
40221
  disabled: status === 'loading',
39902
40222
  autoComplete: "off",
39903
40223
  spellCheck: false
39904
- })), React.createElement(ButtonWrapper$3, null, React.createElement(CTAButton, {
40224
+ })), React.createElement(ButtonWrapper$4, null, React.createElement(CTAButton, {
39905
40225
  icon: React.createElement(Receipt, null),
39906
40226
  label: status === 'loading' ? 'Redeeming...' : 'Redeem Code',
39907
40227
  onClick: function onClick() {
@@ -39915,11 +40235,11 @@ var Container$O = /*#__PURE__*/styled.div.withConfig({
39915
40235
  displayName: "StoreRedeemSection__Container",
39916
40236
  componentId: "sc-1pzosml-0"
39917
40237
  })(["display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem;max-width:420px;margin:0 auto;gap:1rem;"]);
39918
- var Title$p = /*#__PURE__*/styled.h3.withConfig({
40238
+ var Title$q = /*#__PURE__*/styled.h3.withConfig({
39919
40239
  displayName: "StoreRedeemSection__Title",
39920
40240
  componentId: "sc-1pzosml-1"
39921
40241
  })(["font-family:'Press Start 2P',cursive;font-size:0.85rem;color:", ";margin:0;text-align:center;"], uiColors.white);
39922
- var Description$8 = /*#__PURE__*/styled.p.withConfig({
40242
+ var Description$9 = /*#__PURE__*/styled.p.withConfig({
39923
40243
  displayName: "StoreRedeemSection__Description",
39924
40244
  componentId: "sc-1pzosml-2"
39925
40245
  })(["font-family:'Press Start 2P',cursive;font-size:0.55rem;color:", ";margin:0;text-align:center;line-height:1.6;"], uiColors.lightGray);
@@ -39931,7 +40251,7 @@ var CodeInput = /*#__PURE__*/styled.input.withConfig({
39931
40251
  displayName: "StoreRedeemSection__CodeInput",
39932
40252
  componentId: "sc-1pzosml-4"
39933
40253
  })(["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);
39934
- var ButtonWrapper$3 = /*#__PURE__*/styled.div.withConfig({
40254
+ var ButtonWrapper$4 = /*#__PURE__*/styled.div.withConfig({
39935
40255
  displayName: "StoreRedeemSection__ButtonWrapper",
39936
40256
  componentId: "sc-1pzosml-5"
39937
40257
  })(["width:100%;margin-top:0.5rem;"]);
@@ -39978,14 +40298,14 @@ var StoreItemDetails = function StoreItemDetails(_ref) {
39978
40298
  if (typeof imageUrl === 'string') return imageUrl;
39979
40299
  return imageUrl["default"] || imageUrl.src;
39980
40300
  };
39981
- return React.createElement(Container$P, null, React.createElement(Header$j, null, React.createElement(BackButton, {
40301
+ return React.createElement(Container$P, null, React.createElement(Header$k, null, React.createElement(BackButton, {
39982
40302
  onClick: onBack
39983
40303
  }, React.createElement(ArrowLeft, null), React.createElement("span", null, "Back"))), React.createElement(Content$5, null, React.createElement(DetailsGrid, null, React.createElement(ItemIcon, null, React.createElement("img", {
39984
40304
  src: getImageSrc(),
39985
40305
  alt: item.name
39986
40306
  })), React.createElement(ItemInfo$3, null, React.createElement(ItemName$9, null, item.name), React.createElement(ItemPrice$2, null, currencySymbol, 'priceUSD' in item ? item.priceUSD : (_item$regionalPrice = item.regionalPrice) != null ? _item$regionalPrice : item.price, item.dcPrice ? React.createElement(React.Fragment, null, ' ', "\xB7 ", React.createElement(MMORPGNumber, {
39987
40307
  value: item.dcPrice
39988
- }), " DC") : ''), React.createElement(Description$9, null, item.description))), React.createElement(Actions$1, null, React.createElement(CTAButton, {
40308
+ }), " DC") : ''), React.createElement(Description$a, null, item.description))), React.createElement(Actions$1, null, React.createElement(CTAButton, {
39989
40309
  icon: React.createElement(ShoppingCart, null),
39990
40310
  label: "Add to Cart",
39991
40311
  onClick: function onClick() {
@@ -39998,7 +40318,7 @@ var Container$P = /*#__PURE__*/styled.div.withConfig({
39998
40318
  displayName: "StoreItemDetails__Container",
39999
40319
  componentId: "sc-k3ho5z-0"
40000
40320
  })(["display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;height:100%;"]);
40001
- var Header$j = /*#__PURE__*/styled.div.withConfig({
40321
+ var Header$k = /*#__PURE__*/styled.div.withConfig({
40002
40322
  displayName: "StoreItemDetails__Header",
40003
40323
  componentId: "sc-k3ho5z-1"
40004
40324
  })(["display:flex;align-items:center;gap:1rem;"]);
@@ -40030,7 +40350,7 @@ var ItemPrice$2 = /*#__PURE__*/styled.div.withConfig({
40030
40350
  displayName: "StoreItemDetails__ItemPrice",
40031
40351
  componentId: "sc-k3ho5z-8"
40032
40352
  })(["font-family:'Press Start 2P',cursive;font-size:1rem;color:#fef08a;"]);
40033
- var Description$9 = /*#__PURE__*/styled.p.withConfig({
40353
+ var Description$a = /*#__PURE__*/styled.p.withConfig({
40034
40354
  displayName: "StoreItemDetails__Description",
40035
40355
  componentId: "sc-k3ho5z-9"
40036
40356
  })(["margin:0;font-family:'Press Start 2P',cursive;font-size:0.875rem;line-height:1.6;color:#ffffff;"]);
@@ -40723,7 +41043,7 @@ var TradingMenu = function TradingMenu(_ref) {
40723
41043
  width: "500px",
40724
41044
  cancelDrag: "#TraderContainer",
40725
41045
  scale: scale
40726
- }, React.createElement(Container$R, null, React.createElement(Title$q, null, type.charAt(0).toUpperCase() + type.slice(1), " Menu"), React.createElement("hr", {
41046
+ }, React.createElement(Container$R, null, React.createElement(Title$r, null, type.charAt(0).toUpperCase() + type.slice(1), " Menu"), React.createElement("hr", {
40727
41047
  className: "golden"
40728
41048
  }), React.createElement(ScrollWrapper, {
40729
41049
  id: "TraderContainer"
@@ -40740,7 +41060,7 @@ var TradingMenu = function TradingMenu(_ref) {
40740
41060
  scale: scale,
40741
41061
  isBuy: isBuy()
40742
41062
  });
40743
- })), React.createElement(InfoSection$2, null, React.createElement(GoldInfo, null, React.createElement("p", null, "Available Gold:"), React.createElement("p", null, "$", characterAvailableGold.toFixed(2))), React.createElement(GoldInfo, null, React.createElement("p", null, "Total:"), React.createElement("p", null, "$", sum)), !hasGoldForSale() ? React.createElement(AlertText, null, "Sorry, not enough money.") : React.createElement(GoldInfo, null, React.createElement("p", null, "Final Gold:"), React.createElement("p", null, "$", getFinalGold().toFixed(2)))), React.createElement(ButtonWrapper$4, null, React.createElement(Button, {
41063
+ })), React.createElement(InfoSection$2, null, React.createElement(GoldInfo, null, React.createElement("p", null, "Available Gold:"), React.createElement("p", null, "$", characterAvailableGold.toFixed(2))), React.createElement(GoldInfo, null, React.createElement("p", null, "Total:"), React.createElement("p", null, "$", sum)), !hasGoldForSale() ? React.createElement(AlertText, null, "Sorry, not enough money.") : React.createElement(GoldInfo, null, React.createElement("p", null, "Final Gold:"), React.createElement("p", null, "$", getFinalGold().toFixed(2)))), React.createElement(ButtonWrapper$5, null, React.createElement(Button, {
40744
41064
  buttonType: ButtonTypes.RPGUIButton,
40745
41065
  disabled: !hasGoldForSale(),
40746
41066
  onPointerDown: function onPointerDown() {
@@ -40755,7 +41075,7 @@ var Container$R = /*#__PURE__*/styled.div.withConfig({
40755
41075
  displayName: "TradingMenu__Container",
40756
41076
  componentId: "sc-1wjsz1l-0"
40757
41077
  })(["width:100%;"]);
40758
- var Title$q = /*#__PURE__*/styled.h1.withConfig({
41078
+ var Title$r = /*#__PURE__*/styled.h1.withConfig({
40759
41079
  displayName: "TradingMenu__Title",
40760
41080
  componentId: "sc-1wjsz1l-1"
40761
41081
  })(["font-size:0.7rem !important;color:yellow !important;text-align:center;"]);
@@ -40775,7 +41095,7 @@ var AlertText = /*#__PURE__*/styled.p.withConfig({
40775
41095
  displayName: "TradingMenu__AlertText",
40776
41096
  componentId: "sc-1wjsz1l-5"
40777
41097
  })(["color:red !important;text-align:center;margin:0.3rem 0;font-size:0.5rem;"]);
40778
- var ButtonWrapper$4 = /*#__PURE__*/styled.div.withConfig({
41098
+ var ButtonWrapper$5 = /*#__PURE__*/styled.div.withConfig({
40779
41099
  displayName: "TradingMenu__ButtonWrapper",
40780
41100
  componentId: "sc-1wjsz1l-6"
40781
41101
  })(["display:flex;justify-content:space-around;width:100%;margin-top:1rem;"]);
@@ -40943,5 +41263,5 @@ var LessonContainer = /*#__PURE__*/styled.div.withConfig({
40943
41263
  componentId: "sc-7tgzv2-7"
40944
41264
  })(["display:flex;flex-direction:column;justify-content:space-between;min-height:200px;p{font-size:0.7rem !important;}"]);
40945
41265
 
40946
- export { ActionButtons, AsyncDropdown, BLUEPRINTS_PER_PAGE, BUY_ORDERS_PER_PAGE, BlueprintSearchModal, Button, ButtonTypes, BuyOrderPanel, BuyOrderRow, CTAButton, CartView, CharacterDetailModal, CharacterListingForm, CharacterListingModal, CharacterMarketplacePanel, CharacterMarketplaceRows, CharacterSelection, CharacterSkinSelectionModal, CharacterTradePanel, Chat, ChatDeprecated, ChatRevamp, CheckButton, CheckItem, CircularController, ConfirmModal, CountdownTimer, CraftBook, DCRateStrip, DCWalletContent, DCWalletModal, DailyTasks, DraggableContainer, Dropdown, DropdownSelectorContainer, DynamicText, EquipmentSet, EquipmentSlotSpriteByType, ErrorBoundary, FeaturedBanner, FriendList, GemSelector, GroupedBuyOrderRow, GroupedCharacterMarketplaceRow, GroupedMarketplaceRow, HISTORY_ITEMS_PER_PAGE, HistoryDialog, HistoryPanel, ImageCarousel, ImgSide, InformationCenter, Input, InputRadio, InternalTabs, ItemContainer$1 as ItemContainer, ItemPropertySimpleHandler, ItemQuantitySelectorModal, ItemSelector, ItemSlot, JoystickDPad, Leaderboard, ListMenu, LoginStreakPanel, Marketplace, MarketplaceBuyModal, MarketplaceRows, MarketplaceSettingsPanel, MetadataCollector, MultitabType, MyCharacterListingsPanel, NPCDialog, NPCDialogType, NPCMultiDialog, Pagination, PartyCreate, PartyDashboard, PartyInvite, PartyManager, PartyManagerRow, PartyRow, PaymentMethodModal, PlayersRow, ProgressBar$1 as ProgressBar, PropertySelect, PurchaseSuccess, QuantitySelectorModal, QuestInfo, QuestList, QuestionDialog, RPGUIContainer, RPGUIContainerTypes, RPGUIRoot, RadioCircle$2 as RadioCircle, RadioOption$1 as RadioOption, RadioOptionLabel, RadioOptionSub, RadioSelectCard, RangeSlider, RangeSliderType, SelectArrow, Shortcuts, SimpleImageCarousel, SkillProgressBar, SkillsContainer, SocialModal, Spellbook, SpriteFromAtlas, Stepper, Store, StoreBadges, StoreRedeemSection, TRANSACTION_TYPE_FILTER_ALL, TabBody, Table, TableCell, TableHeader, TableRow, TabsContainer$1 as TabsContainer, TextArea, TimeWidget, Tooltip, TradingMenu, Truncate, TrustBar, TutorialStepper, UserActionLink, _RPGUI, formatQuestStatus, formatQuestText, getMockedPlayersRowsLeader, getMockedPlayersRowsNotLeader, getQuestStatusColor, mockedPartyManager, mockedPartyRows, mockedPlayersRows, mockedPlayersRows2, useEventListener, useStoreCart };
41266
+ export { ActionButtons, AsyncDropdown, BLUEPRINTS_PER_PAGE, BUY_ORDERS_PER_PAGE, BlueprintSearchModal, Button, ButtonTypes, BuyOrderPanel, BuyOrderRow, CTAButton, CartView, CharacterDetailModal, CharacterListingForm, CharacterListingModal, CharacterMarketplacePanel, CharacterMarketplaceRows, CharacterSelection, CharacterSkinSelectionModal, CharacterTradePanel, Chat, ChatDeprecated, ChatRevamp, CheckButton, CheckItem, CircularController, ConfirmModal, CountdownTimer, CraftBook, DCRateStrip, DCWalletContent, DCWalletModal, DailyTasks, DraggableContainer, Dropdown, DropdownSelectorContainer, DynamicText, EquipmentSet, EquipmentSlotSpriteByType, ErrorBoundary, FeaturedBanner, FriendList, GemSelector, GroupedBuyOrderRow, GroupedCharacterMarketplaceRow, GroupedMarketplaceRow, HISTORY_ITEMS_PER_PAGE, HistoryDialog, HistoryPanel, ImageCarousel, ImgSide, InformationCenter, Input, InputRadio, InternalTabs, ItemContainer$1 as ItemContainer, ItemPropertySimpleHandler, ItemQuantitySelectorModal, ItemSelector, ItemSlot, JoystickDPad, Leaderboard, ListMenu, LoginStreakPanel, Marketplace, MarketplaceBuyModal, MarketplaceRows, MarketplaceSettingsPanel, MetadataCollector, MultitabType, MyCharacterListingsPanel, NPCDialog, NPCDialogType, NPCMultiDialog, Pagination, PartyCreate, PartyDashboard, PartyInvite, PartyManager, PartyManagerRow, PartyRow, PaymentMethodModal, PlayersRow, ProgressBar$1 as ProgressBar, PropertySelect, PurchaseSuccess, QuantitySelectorModal, QuestInfo, QuestList, QuestListRow, QuestionDialog, RPGUIContainer, RPGUIContainerTypes, RPGUIRoot, RadioCircle$2 as RadioCircle, RadioOption$1 as RadioOption, RadioOptionLabel, RadioOptionSub, RadioSelectCard, RangeSlider, RangeSliderType, SelectArrow, Shortcuts, SimpleImageCarousel, SkillProgressBar, SkillsContainer, SocialModal, Spellbook, SpriteFromAtlas, Stepper, Store, StoreBadges, StoreRedeemSection, TRANSACTION_TYPE_FILTER_ALL, TabBody, Table, TableCell, TableHeader, TableRow, TabsContainer$1 as TabsContainer, TextArea, TimeWidget, Tooltip, TradingMenu, Truncate, TrustBar, TutorialStepper, UserActionLink, _RPGUI, formatQuestStatus, formatQuestText, getMockedPlayersRowsLeader, getMockedPlayersRowsNotLeader, getQuestStatusColor, mockedPartyManager, mockedPartyRows, mockedPlayersRows, mockedPlayersRows2, useEventListener, useStoreCart };
40947
41267
  //# sourceMappingURL=long-bow.esm.js.map