@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
@@ -15641,21 +15641,239 @@ var Container$E = /*#__PURE__*/styled__default.div.withConfig({
15641
15641
 
15642
15642
  var img$7 = 'data:image/png;base64,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';
15643
15643
 
15644
+ var QuestObjectivesSection = function QuestObjectivesSection(_ref) {
15645
+ var _ref$objectives = _ref.objectives,
15646
+ objectives = _ref$objectives === void 0 ? [] : _ref$objectives,
15647
+ entitiesAtlasJSON = _ref.entitiesAtlasJSON,
15648
+ entitiesAtlasIMG = _ref.entitiesAtlasIMG;
15649
+ if (!objectives.length) {
15650
+ return null;
15651
+ }
15652
+ return React__default.createElement(Section$4, null, React__default.createElement(SectionTitle$4, null, "Objectives"), objectives.map(function (objective, index) {
15653
+ if (objective.type === shared.QuestType.Kill) {
15654
+ var progress = (objective.killCount || 0) + "/" + objective.killCountTarget;
15655
+ var fill = Math.min((objective.killCount || 0) / Math.max(objective.killCountTarget || 1, 1), 1) * 100;
15656
+ return React__default.createElement(ObjectiveBlock, {
15657
+ key: objective.id || index
15658
+ }, (objective.creatures || objective.creatureKeys || []).map(function (creature) {
15659
+ var data = typeof creature === 'string' ? {
15660
+ key: creature,
15661
+ name: creature,
15662
+ texturePath: ''
15663
+ } : creature;
15664
+ return React__default.createElement(ObjectiveRow, {
15665
+ key: data.key
15666
+ }, entitiesAtlasJSON && entitiesAtlasIMG && data.texturePath && React__default.createElement(SpriteFromAtlas, {
15667
+ atlasJSON: entitiesAtlasJSON,
15668
+ atlasIMG: entitiesAtlasIMG,
15669
+ spriteKey: data.texturePath,
15670
+ width: 32,
15671
+ height: 32,
15672
+ imgScale: 1,
15673
+ centered: true
15674
+ }), React__default.createElement(ObjectiveText, null, data.name || data.key), React__default.createElement(ProgressText$1, null, progress));
15675
+ }), React__default.createElement(ProgressBar$2, null, React__default.createElement(ProgressFill$1, {
15676
+ style: {
15677
+ width: fill + "%"
15678
+ }
15679
+ })));
15680
+ }
15681
+ if (objective.type === shared.QuestType.Interaction) {
15682
+ return React__default.createElement(ObjectiveRow, {
15683
+ key: objective.id || index
15684
+ }, React__default.createElement(ObjectiveText, null, "Talk to ", objective.targetNPCkey || 'the quest contact'));
15685
+ }
15686
+ return null;
15687
+ }));
15688
+ };
15689
+ var Section$4 = /*#__PURE__*/styled__default.section.withConfig({
15690
+ displayName: "QuestObjectivesSection__Section",
15691
+ componentId: "sc-yzy6q8-0"
15692
+ })(["margin:10px 18px;"]);
15693
+ var SectionTitle$4 = /*#__PURE__*/styled__default.h2.withConfig({
15694
+ displayName: "QuestObjectivesSection__SectionTitle",
15695
+ componentId: "sc-yzy6q8-1"
15696
+ })(["color:", ";font-size:0.9rem;margin:0 0 8px;"], uiColors.yellow);
15697
+ var ObjectiveBlock = /*#__PURE__*/styled__default.div.withConfig({
15698
+ displayName: "QuestObjectivesSection__ObjectiveBlock",
15699
+ componentId: "sc-yzy6q8-2"
15700
+ })(["margin-bottom:8px;"]);
15701
+ var ObjectiveRow = /*#__PURE__*/styled__default.div.withConfig({
15702
+ displayName: "QuestObjectivesSection__ObjectiveRow",
15703
+ componentId: "sc-yzy6q8-3"
15704
+ })(["color:", ";display:flex;align-items:center;gap:8px;min-height:28px;font-size:0.75rem;"], uiColors.white);
15705
+ var ObjectiveText = /*#__PURE__*/styled__default.span.withConfig({
15706
+ displayName: "QuestObjectivesSection__ObjectiveText",
15707
+ componentId: "sc-yzy6q8-4"
15708
+ })(["flex:1;"]);
15709
+ var ProgressText$1 = /*#__PURE__*/styled__default.span.withConfig({
15710
+ displayName: "QuestObjectivesSection__ProgressText",
15711
+ componentId: "sc-yzy6q8-5"
15712
+ })(["color:", ";"], uiColors.yellow);
15713
+ var ProgressBar$2 = /*#__PURE__*/styled__default.div.withConfig({
15714
+ displayName: "QuestObjectivesSection__ProgressBar",
15715
+ componentId: "sc-yzy6q8-6"
15716
+ })(["height:6px;background:", ";border-radius:3px;overflow:hidden;margin-top:4px;"], uiColors.gray);
15717
+ var ProgressFill$1 = /*#__PURE__*/styled__default.div.withConfig({
15718
+ displayName: "QuestObjectivesSection__ProgressFill",
15719
+ componentId: "sc-yzy6q8-7"
15720
+ })(["height:100%;background:", ";"], uiColors.lightGreen);
15721
+
15722
+ var QuestRequirementsSection = function QuestRequirementsSection(_ref) {
15723
+ var _ref$objectives = _ref.objectives,
15724
+ objectives = _ref$objectives === void 0 ? [] : _ref$objectives,
15725
+ itemsAtlasJSON = _ref.itemsAtlasJSON,
15726
+ itemsAtlasIMG = _ref.itemsAtlasIMG;
15727
+ var items = objectives.filter(function (objective) {
15728
+ return objective.type === shared.QuestType.Interaction;
15729
+ }).flatMap(function (objective) {
15730
+ return objective.items || [];
15731
+ });
15732
+ if (!items.length) {
15733
+ return null;
15734
+ }
15735
+ return React__default.createElement(Section$5, null, React__default.createElement(SectionTitle$5, null, "Requirements"), items.map(function (item) {
15736
+ var hasQty = item.playerHasQty || 0;
15737
+ var isMet = hasQty >= item.qty;
15738
+ return React__default.createElement(RequirementRow, {
15739
+ key: item.itemKey,
15740
+ isMet: isMet
15741
+ }, itemsAtlasJSON && itemsAtlasIMG && item.texturePath && React__default.createElement(ItemInfoWrapper, {
15742
+ item: _extends({}, item, {
15743
+ key: item.itemKey,
15744
+ stackQty: item.qty
15745
+ }),
15746
+ atlasJSON: itemsAtlasJSON,
15747
+ atlasIMG: itemsAtlasIMG
15748
+ }, React__default.createElement(SpriteFromAtlas, {
15749
+ atlasJSON: itemsAtlasJSON,
15750
+ atlasIMG: itemsAtlasIMG,
15751
+ spriteKey: item.texturePath,
15752
+ width: 32,
15753
+ height: 32,
15754
+ imgScale: 1.5,
15755
+ centered: true
15756
+ })), React__default.createElement("span", null, hasQty, "/", item.qty, " ", item.name || item.itemKey));
15757
+ }));
15758
+ };
15759
+ var Section$5 = /*#__PURE__*/styled__default.section.withConfig({
15760
+ displayName: "QuestRequirementsSection__Section",
15761
+ componentId: "sc-cbw9sz-0"
15762
+ })(["margin:10px 18px;"]);
15763
+ var SectionTitle$5 = /*#__PURE__*/styled__default.h2.withConfig({
15764
+ displayName: "QuestRequirementsSection__SectionTitle",
15765
+ componentId: "sc-cbw9sz-1"
15766
+ })(["color:", ";font-size:0.9rem;margin:0 0 8px;"], uiColors.yellow);
15767
+ var RequirementRow = /*#__PURE__*/styled__default.div.withConfig({
15768
+ displayName: "QuestRequirementsSection__RequirementRow",
15769
+ componentId: "sc-cbw9sz-2"
15770
+ })(["color:", ";display:flex;align-items:center;gap:8px;min-height:34px;font-size:0.75rem;"], function (props) {
15771
+ return props.isMet ? uiColors.lightGreen : uiColors.red;
15772
+ });
15773
+
15774
+ var QuestRewardsSection = function QuestRewardsSection(_ref) {
15775
+ var _ref$rewards = _ref.rewards,
15776
+ rewards = _ref$rewards === void 0 ? [] : _ref$rewards,
15777
+ itemsAtlasJSON = _ref.itemsAtlasJSON,
15778
+ itemsAtlasIMG = _ref.itemsAtlasIMG,
15779
+ iconsAtlasJSON = _ref.iconsAtlasJSON,
15780
+ iconsAtlasIMG = _ref.iconsAtlasIMG;
15781
+ var items = rewards.flatMap(function (reward) {
15782
+ return reward.items || [];
15783
+ });
15784
+ var spells = rewards.flatMap(function (reward) {
15785
+ return reward.spells || [];
15786
+ });
15787
+ if (!items.length && !spells.length) {
15788
+ return null;
15789
+ }
15790
+ return React__default.createElement(Section$6, null, React__default.createElement(SectionTitle$6, null, "Rewards"), React__default.createElement(RewardGrid, null, items.map(function (item) {
15791
+ var _item$name;
15792
+ return React__default.createElement(RewardItem$1, {
15793
+ key: item.key + "-" + item.qty
15794
+ }, itemsAtlasJSON && itemsAtlasIMG && item.texturePath ? React__default.createElement(ItemInfoWrapper, {
15795
+ item: _extends({}, item, {
15796
+ key: item.key,
15797
+ stackQty: item.qty
15798
+ }),
15799
+ atlasJSON: itemsAtlasJSON,
15800
+ atlasIMG: itemsAtlasIMG
15801
+ }, React__default.createElement(SpriteFromAtlas, {
15802
+ atlasJSON: itemsAtlasJSON,
15803
+ atlasIMG: itemsAtlasIMG,
15804
+ spriteKey: item.texturePath,
15805
+ width: 32,
15806
+ height: 32,
15807
+ imgScale: 1.5,
15808
+ centered: true
15809
+ })) : React__default.createElement(FallbackIcon, null, ((_item$name = item.name) == null ? void 0 : _item$name[0]) || '?'), item.qty > 1 && React__default.createElement(QtyBadge, null, "x", item.qty), React__default.createElement(RewardName, null, item.name || item.key));
15810
+ }), spells.map(function (spell) {
15811
+ var _spell$name;
15812
+ return React__default.createElement(RewardItem$1, {
15813
+ key: spell.key,
15814
+ title: spell.name || spell.key
15815
+ }, iconsAtlasJSON && iconsAtlasIMG && spell.texturePath ? React__default.createElement(SpriteFromAtlas, {
15816
+ atlasJSON: iconsAtlasJSON,
15817
+ atlasIMG: iconsAtlasIMG,
15818
+ spriteKey: spell.texturePath,
15819
+ width: 32,
15820
+ height: 32,
15821
+ imgScale: 1.5,
15822
+ centered: true
15823
+ }) : React__default.createElement(FallbackIcon, null, ((_spell$name = spell.name) == null ? void 0 : _spell$name[0]) || '?'), React__default.createElement(RewardName, null, spell.name || spell.key));
15824
+ })));
15825
+ };
15826
+ var Section$6 = /*#__PURE__*/styled__default.section.withConfig({
15827
+ displayName: "QuestRewardsSection__Section",
15828
+ componentId: "sc-1eth6wx-0"
15829
+ })(["margin:10px 18px;"]);
15830
+ var SectionTitle$6 = /*#__PURE__*/styled__default.h2.withConfig({
15831
+ displayName: "QuestRewardsSection__SectionTitle",
15832
+ componentId: "sc-1eth6wx-1"
15833
+ })(["color:", ";font-size:0.9rem;margin:0 0 8px;"], uiColors.yellow);
15834
+ var RewardGrid = /*#__PURE__*/styled__default.div.withConfig({
15835
+ displayName: "QuestRewardsSection__RewardGrid",
15836
+ componentId: "sc-1eth6wx-2"
15837
+ })(["display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;"]);
15838
+ var RewardItem$1 = /*#__PURE__*/styled__default.div.withConfig({
15839
+ displayName: "QuestRewardsSection__RewardItem",
15840
+ componentId: "sc-1eth6wx-3"
15841
+ })(["position:relative;min-height:58px;color:", ";display:flex;flex-direction:column;align-items:center;gap:4px;font-size:0.65rem;"], uiColors.white);
15842
+ var FallbackIcon = /*#__PURE__*/styled__default.div.withConfig({
15843
+ displayName: "QuestRewardsSection__FallbackIcon",
15844
+ componentId: "sc-1eth6wx-4"
15845
+ })(["width:32px;height:32px;border:1px solid ", ";display:flex;align-items:center;justify-content:center;color:", ";"], uiColors.gray, uiColors.yellow);
15846
+ var QtyBadge = /*#__PURE__*/styled__default.span.withConfig({
15847
+ displayName: "QuestRewardsSection__QtyBadge",
15848
+ componentId: "sc-1eth6wx-5"
15849
+ })(["position:absolute;top:0;right:18px;background:", ";color:", ";border:1px solid ", ";padding:1px 4px;"], uiColors.darkGray, uiColors.yellow, uiColors.gray);
15850
+ var RewardName = /*#__PURE__*/styled__default.span.withConfig({
15851
+ displayName: "QuestRewardsSection__RewardName",
15852
+ componentId: "sc-1eth6wx-6"
15853
+ })(["text-align:center;"]);
15854
+
15644
15855
  var QuestInfo = function QuestInfo(_ref) {
15645
15856
  var quests = _ref.quests,
15646
15857
  onClose = _ref.onClose,
15647
15858
  buttons = _ref.buttons,
15648
15859
  onChangeQuest = _ref.onChangeQuest,
15649
- scale = _ref.scale;
15860
+ scale = _ref.scale,
15861
+ itemsAtlasJSON = _ref.itemsAtlasJSON,
15862
+ itemsAtlasIMG = _ref.itemsAtlasIMG,
15863
+ entitiesAtlasJSON = _ref.entitiesAtlasJSON,
15864
+ entitiesAtlasIMG = _ref.entitiesAtlasIMG,
15865
+ iconsAtlasJSON = _ref.iconsAtlasJSON,
15866
+ iconsAtlasIMG = _ref.iconsAtlasIMG;
15650
15867
  var _useState = React.useState(0),
15651
15868
  currentIndex = _useState[0],
15652
15869
  setCurrentIndex = _useState[1];
15653
15870
  var questsLength = quests.length - 1;
15871
+ var currentQuest = quests[currentIndex] || quests[0];
15654
15872
  React.useEffect(function () {
15655
- if (onChangeQuest) {
15656
- onChangeQuest(currentIndex, quests[currentIndex]._id);
15873
+ if (onChangeQuest && currentQuest) {
15874
+ onChangeQuest(currentIndex, currentQuest._id);
15657
15875
  }
15658
- }, [currentIndex]);
15876
+ }, [currentIndex, currentQuest]);
15659
15877
  var onLeftClick = function onLeftClick() {
15660
15878
  if (currentIndex === 0) setCurrentIndex(questsLength);else setCurrentIndex(function (index) {
15661
15879
  return index - 1;
@@ -15674,50 +15892,47 @@ var QuestInfo = function QuestInfo(_ref) {
15674
15892
  width: "730px",
15675
15893
  cancelDrag: ".equipment-container-body .arrow-selector",
15676
15894
  scale: scale
15677
- }, quests.length >= 2 ? React__default.createElement(QuestsContainer, null, currentIndex !== 0 && React__default.createElement(SelectArrow, {
15895
+ }, currentQuest && React__default.createElement(QuestsContainer, null, quests.length >= 2 && currentIndex !== 0 && React__default.createElement(SelectArrow, {
15678
15896
  direction: "left",
15679
15897
  onPointerDown: onLeftClick
15680
- }), currentIndex !== quests.length - 1 && React__default.createElement(SelectArrow, {
15898
+ }), quests.length >= 2 && currentIndex !== quests.length - 1 && React__default.createElement(SelectArrow, {
15681
15899
  direction: "right",
15682
15900
  onPointerDown: onRightClick
15683
15901
  }), React__default.createElement(QuestContainer, null, React__default.createElement(TitleContainer$1, {
15684
15902
  className: "drag-handler"
15685
15903
  }, React__default.createElement(Title$h, null, React__default.createElement(Thumbnail, {
15686
- src: quests[currentIndex].thumbnail || img$7
15687
- }), quests[currentIndex].title), React__default.createElement(QuestSplitDiv, null, React__default.createElement("hr", {
15688
- className: "golden"
15689
- }))), React__default.createElement(Content$3, null, React__default.createElement("p", null, quests[currentIndex].description)), React__default.createElement(QuestColumn, {
15690
- className: "dark-background",
15691
- justifyContent: "flex-end"
15692
- }, buttons && buttons.map(function (button, index) {
15693
- return React__default.createElement(Button, {
15694
- key: index,
15695
- onPointerDown: function onPointerDown() {
15696
- return button.onClick(quests[currentIndex]._id, quests[currentIndex].npcId);
15697
- },
15698
- disabled: button.disabled,
15699
- buttonType: exports.ButtonTypes.RPGUIButton,
15700
- id: "button-" + index
15701
- }, button.title);
15702
- })))) : React__default.createElement(QuestsContainer, null, React__default.createElement(QuestContainer, null, React__default.createElement(TitleContainer$1, {
15703
- className: "drag-handler"
15704
- }, React__default.createElement(Title$h, null, React__default.createElement(Thumbnail, {
15705
- src: quests[0].thumbnail || img$7
15706
- }), quests[0].title), React__default.createElement(QuestSplitDiv, null, React__default.createElement("hr", {
15904
+ src: currentQuest.thumbnail || img$7
15905
+ }), currentQuest.title), React__default.createElement(QuestSplitDiv, null, React__default.createElement("hr", {
15707
15906
  className: "golden"
15708
- }))), React__default.createElement(Content$3, null, React__default.createElement("p", null, quests[0].description)), React__default.createElement(QuestColumn, {
15907
+ }))), React__default.createElement(Content$3, null, React__default.createElement("p", null, currentQuest.description)), React__default.createElement(QuestObjectivesSection, {
15908
+ objectives: currentQuest.objectives,
15909
+ entitiesAtlasJSON: entitiesAtlasJSON,
15910
+ entitiesAtlasIMG: entitiesAtlasIMG
15911
+ }), React__default.createElement(QuestRequirementsSection, {
15912
+ objectives: currentQuest.objectives,
15913
+ itemsAtlasJSON: itemsAtlasJSON,
15914
+ itemsAtlasIMG: itemsAtlasIMG
15915
+ }), React__default.createElement(QuestRewardsSection, {
15916
+ rewards: currentQuest.rewards,
15917
+ itemsAtlasJSON: itemsAtlasJSON,
15918
+ itemsAtlasIMG: itemsAtlasIMG,
15919
+ iconsAtlasJSON: iconsAtlasJSON,
15920
+ iconsAtlasIMG: iconsAtlasIMG
15921
+ }), React__default.createElement(QuestColumn, {
15709
15922
  className: "dark-background",
15710
15923
  justifyContent: "flex-end"
15711
15924
  }, buttons && buttons.map(function (button, index) {
15712
- return React__default.createElement(Button, {
15925
+ return React__default.createElement(ButtonWrapper$3, {
15713
15926
  key: index,
15927
+ title: button.disabled ? button.disabledReason : undefined
15928
+ }, React__default.createElement(Button, {
15714
15929
  onPointerDown: function onPointerDown() {
15715
- return button.onClick(quests[0]._id, quests[0].npcId);
15930
+ return button.onClick(currentQuest._id, currentQuest.npcId);
15716
15931
  },
15717
15932
  disabled: button.disabled,
15718
15933
  buttonType: exports.ButtonTypes.RPGUIButton,
15719
15934
  id: "button-" + index
15720
- }, button.title);
15935
+ }, button.title));
15721
15936
  })))));
15722
15937
  };
15723
15938
  var QuestDraggableContainer = /*#__PURE__*/styled__default(DraggableContainer).withConfig({
@@ -15744,70 +15959,74 @@ var QuestColumn = /*#__PURE__*/styled__default(Column).withConfig({
15744
15959
  displayName: "QuestInfo__QuestColumn",
15745
15960
  componentId: "sc-1wccpiy-5"
15746
15961
  })(["padding-top:5px;margin-bottom:20px;display:flex;justify-content:space-evenly;"]);
15962
+ var ButtonWrapper$3 = /*#__PURE__*/styled__default.div.withConfig({
15963
+ displayName: "QuestInfo__ButtonWrapper",
15964
+ componentId: "sc-1wccpiy-6"
15965
+ })(["display:inline-flex;"]);
15747
15966
  var TitleContainer$1 = /*#__PURE__*/styled__default.div.withConfig({
15748
15967
  displayName: "QuestInfo__TitleContainer",
15749
- componentId: "sc-1wccpiy-6"
15968
+ componentId: "sc-1wccpiy-7"
15750
15969
  })(["width:100%;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;margin-top:1rem;"]);
15751
15970
  var Title$h = /*#__PURE__*/styled__default.h1.withConfig({
15752
15971
  displayName: "QuestInfo__Title",
15753
- componentId: "sc-1wccpiy-7"
15972
+ componentId: "sc-1wccpiy-8"
15754
15973
  })(["color:white;z-index:22;font-size:", " !important;color:", " !important;"], uiFonts.size.medium, uiColors.yellow);
15755
15974
  var Thumbnail = /*#__PURE__*/styled__default.img.withConfig({
15756
15975
  displayName: "QuestInfo__Thumbnail",
15757
- componentId: "sc-1wccpiy-8"
15976
+ componentId: "sc-1wccpiy-9"
15758
15977
  })(["color:white;z-index:22;width:32px * 1.5;margin-right:0.5rem;position:relative;top:-4px;"]);
15759
15978
 
15760
- var QuestList = function QuestList(_ref) {
15761
- var quests = _ref.quests,
15762
- styles = _ref.styles;
15763
- return React__default.createElement(QuestListContainer, {
15764
- style: styles == null ? void 0 : styles.container
15765
- }, quests && quests.length > 0 ? quests.map(function (quest, i) {
15766
- var _formatQuestStatus;
15767
- return React__default.createElement(QuestCard, {
15768
- key: i,
15769
- style: styles == null ? void 0 : styles.card
15770
- }, React__default.createElement(QuestItem, null, React__default.createElement(Label$6, {
15771
- style: styles == null ? void 0 : styles.label
15772
- }, "Title:"), React__default.createElement(Value$2, {
15773
- style: styles == null ? void 0 : styles.value
15774
- }, formatQuestText(quest.title))), React__default.createElement(QuestItem, null, React__default.createElement(Label$6, {
15775
- style: styles == null ? void 0 : styles.label
15776
- }, "Status:"), React__default.createElement(Value$2, {
15777
- style: _extends({}, styles == null ? void 0 : styles.value, {
15778
- color: getQuestStatusColor(quest.status)
15779
- })
15780
- }, (_formatQuestStatus = formatQuestStatus(quest.status)) != null ? _formatQuestStatus : 'Unknown')), React__default.createElement(QuestItem, null, React__default.createElement(Label$6, {
15781
- style: styles == null ? void 0 : styles.label
15782
- }, "Description:"), React__default.createElement(Value$2, {
15783
- style: styles == null ? void 0 : styles.value
15784
- }, quest.description)));
15785
- }) : React__default.createElement(NoQuestContainer, null, React__default.createElement("p", null, "There are no ongoing quests")));
15979
+ var getProgressText = function getProgressText(quest) {
15980
+ var _objective$items;
15981
+ var objective = (quest.objectives || [])[0];
15982
+ if (!objective) {
15983
+ return null;
15984
+ }
15985
+ if (objective.type === shared.QuestType.Kill) {
15986
+ return (objective.killCount || 0) + "/" + objective.killCountTarget;
15987
+ }
15988
+ if (objective.type === shared.QuestType.Interaction && (_objective$items = objective.items) != null && _objective$items.length) {
15989
+ var item = objective.items[0];
15990
+ return "Bring " + (item.playerHasQty || 0) + "/" + item.qty;
15991
+ }
15992
+ return objective.type === shared.QuestType.Interaction && objective.targetNPCkey ? 'Talk' : null;
15993
+ };
15994
+ var QuestListRow = function QuestListRow(_ref) {
15995
+ var quest = _ref.quest,
15996
+ compact = _ref.compact,
15997
+ itemsAtlasJSON = _ref.itemsAtlasJSON,
15998
+ itemsAtlasIMG = _ref.itemsAtlasIMG;
15999
+ var rewardItems = (quest.rewards || []).flatMap(function (reward) {
16000
+ return reward.items || [];
16001
+ });
16002
+ var visibleRewards = rewardItems.slice(0, 6);
16003
+ var overflowCount = Math.max(rewardItems.length - visibleRewards.length, 0);
16004
+ var progressText = getProgressText(quest);
16005
+ return React__default.createElement(QuestCard, null, React__default.createElement(Header$d, null, React__default.createElement(Title$i, null, formatQuestText(quest.title)), React__default.createElement(Status, {
16006
+ style: {
16007
+ color: getQuestStatusColor(quest.status)
16008
+ }
16009
+ }, formatQuestStatus(quest.status) || 'Unknown')), !compact && React__default.createElement(React__default.Fragment, null, React__default.createElement(Description$5, null, quest.description), React__default.createElement(MetaRow$2, null, quest.status === shared.QuestStatus.Completed ? 'Completed' : progressText), !!visibleRewards.length && React__default.createElement(RewardStrip, null, visibleRewards.map(function (item) {
16010
+ var _item$name;
16011
+ return React__default.createElement(RewardIcon$1, {
16012
+ key: item.key + "-" + item.qty
16013
+ }, itemsAtlasJSON && itemsAtlasIMG && item.texturePath ? React__default.createElement(ItemInfoWrapper, {
16014
+ item: _extends({}, item, {
16015
+ stackQty: item.qty
16016
+ }),
16017
+ atlasJSON: itemsAtlasJSON,
16018
+ atlasIMG: itemsAtlasIMG
16019
+ }, React__default.createElement(SpriteFromAtlas, {
16020
+ atlasJSON: itemsAtlasJSON,
16021
+ atlasIMG: itemsAtlasIMG,
16022
+ spriteKey: item.texturePath,
16023
+ width: 24,
16024
+ height: 24,
16025
+ imgScale: 1,
16026
+ centered: true
16027
+ })) : React__default.createElement(FallbackIcon$1, null, ((_item$name = item.name) == null ? void 0 : _item$name[0]) || '?'));
16028
+ }), overflowCount > 0 && React__default.createElement(MoreRewards, null, "+", overflowCount, " more"))));
15786
16029
  };
15787
- var QuestListContainer = /*#__PURE__*/styled__default.div.withConfig({
15788
- displayName: "QuestList__QuestListContainer",
15789
- componentId: "sc-1c1y8sp-0"
15790
- })(["max-height:400px;padding:10px;border-radius:10px;font-size:0.7rem;"]);
15791
- var QuestCard = /*#__PURE__*/styled__default.div.withConfig({
15792
- displayName: "QuestList__QuestCard",
15793
- componentId: "sc-1c1y8sp-1"
15794
- })(["background-color:", ";padding:15px;margin-bottom:10px;border-radius:10px;border:1px solid ", ";display:flex;flex-direction:column;"], uiColors.darkGray, uiColors.gray);
15795
- var QuestItem = /*#__PURE__*/styled__default.div.withConfig({
15796
- displayName: "QuestList__QuestItem",
15797
- componentId: "sc-1c1y8sp-2"
15798
- })(["display:flex;margin-bottom:5px;flex-wrap:wrap;&:last-child{margin-bottom:0;}"]);
15799
- var Label$6 = /*#__PURE__*/styled__default.span.withConfig({
15800
- displayName: "QuestList__Label",
15801
- componentId: "sc-1c1y8sp-3"
15802
- })(["font-weight:bold;color:", " !important;margin-right:10px;"], uiColors.yellow);
15803
- var Value$2 = /*#__PURE__*/styled__default.span.withConfig({
15804
- displayName: "QuestList__Value",
15805
- componentId: "sc-1c1y8sp-4"
15806
- })(["flex-grow:1;color:", ";word-wrap:break-word;"], uiColors.white);
15807
- var NoQuestContainer = /*#__PURE__*/styled__default.div.withConfig({
15808
- displayName: "QuestList__NoQuestContainer",
15809
- componentId: "sc-1c1y8sp-5"
15810
- })(["text-align:center;p{margin-top:5px;color:", ";}"], uiColors.lightGray);
15811
16030
  var formatQuestText = function formatQuestText(text) {
15812
16031
  if (!text) return '';
15813
16032
  return text.split('-').map(function (word) {
@@ -15832,6 +16051,73 @@ var formatQuestStatus = function formatQuestStatus(status) {
15832
16051
  return c.toUpperCase();
15833
16052
  });
15834
16053
  };
16054
+ var QuestCard = /*#__PURE__*/styled__default.div.withConfig({
16055
+ displayName: "QuestListRow__QuestCard",
16056
+ componentId: "sc-s95wf6-0"
16057
+ })(["background-color:", ";padding:12px;margin-bottom:10px;border-radius:8px;border:1px solid ", ";"], uiColors.darkGray, uiColors.gray);
16058
+ var Header$d = /*#__PURE__*/styled__default.div.withConfig({
16059
+ displayName: "QuestListRow__Header",
16060
+ componentId: "sc-s95wf6-1"
16061
+ })(["display:flex;justify-content:space-between;gap:10px;"]);
16062
+ var Title$i = /*#__PURE__*/styled__default.span.withConfig({
16063
+ displayName: "QuestListRow__Title",
16064
+ componentId: "sc-s95wf6-2"
16065
+ })(["color:", ";font-weight:bold;"], uiColors.yellow);
16066
+ var Status = /*#__PURE__*/styled__default.span.withConfig({
16067
+ displayName: "QuestListRow__Status",
16068
+ componentId: "sc-s95wf6-3"
16069
+ })(["white-space:nowrap;"]);
16070
+ var Description$5 = /*#__PURE__*/styled__default.p.withConfig({
16071
+ displayName: "QuestListRow__Description",
16072
+ componentId: "sc-s95wf6-4"
16073
+ })(["color:", ";margin:8px 0;"], uiColors.white);
16074
+ var MetaRow$2 = /*#__PURE__*/styled__default.div.withConfig({
16075
+ displayName: "QuestListRow__MetaRow",
16076
+ componentId: "sc-s95wf6-5"
16077
+ })(["color:", ";font-size:0.7rem;margin-bottom:6px;"], uiColors.lightGreen);
16078
+ var RewardStrip = /*#__PURE__*/styled__default.div.withConfig({
16079
+ displayName: "QuestListRow__RewardStrip",
16080
+ componentId: "sc-s95wf6-6"
16081
+ })(["display:flex;align-items:center;gap:6px;"]);
16082
+ var RewardIcon$1 = /*#__PURE__*/styled__default.div.withConfig({
16083
+ displayName: "QuestListRow__RewardIcon",
16084
+ componentId: "sc-s95wf6-7"
16085
+ })(["width:24px;height:24px;"]);
16086
+ var FallbackIcon$1 = /*#__PURE__*/styled__default.div.withConfig({
16087
+ displayName: "QuestListRow__FallbackIcon",
16088
+ componentId: "sc-s95wf6-8"
16089
+ })(["width:24px;height:24px;border:1px solid ", ";color:", ";display:flex;align-items:center;justify-content:center;"], uiColors.gray, uiColors.yellow);
16090
+ var MoreRewards = /*#__PURE__*/styled__default.span.withConfig({
16091
+ displayName: "QuestListRow__MoreRewards",
16092
+ componentId: "sc-s95wf6-9"
16093
+ })(["color:", ";font-size:0.65rem;"], uiColors.lightGray);
16094
+
16095
+ var QuestList = function QuestList(_ref) {
16096
+ var quests = _ref.quests,
16097
+ compact = _ref.compact,
16098
+ styles = _ref.styles,
16099
+ itemsAtlasJSON = _ref.itemsAtlasJSON,
16100
+ itemsAtlasIMG = _ref.itemsAtlasIMG;
16101
+ return React__default.createElement(QuestListContainer, {
16102
+ style: styles == null ? void 0 : styles.container
16103
+ }, quests && quests.length > 0 ? quests.map(function (quest, i) {
16104
+ return React__default.createElement(QuestListRow, {
16105
+ key: quest._id || i,
16106
+ quest: quest,
16107
+ compact: compact,
16108
+ itemsAtlasJSON: itemsAtlasJSON,
16109
+ itemsAtlasIMG: itemsAtlasIMG
16110
+ });
16111
+ }) : React__default.createElement(NoQuestContainer, null, React__default.createElement("p", null, "There are no ongoing quests")));
16112
+ };
16113
+ var QuestListContainer = /*#__PURE__*/styled__default.div.withConfig({
16114
+ displayName: "QuestList__QuestListContainer",
16115
+ componentId: "sc-1c1y8sp-0"
16116
+ })(["max-height:400px;padding:10px;border-radius:10px;font-size:0.7rem;"]);
16117
+ var NoQuestContainer = /*#__PURE__*/styled__default.div.withConfig({
16118
+ displayName: "QuestList__NoQuestContainer",
16119
+ componentId: "sc-1c1y8sp-1"
16120
+ })(["text-align:center;p{margin-top:5px;color:", ";}"], uiColors.lightGray);
15835
16121
 
15836
16122
  var InputRadio = function InputRadio(_ref) {
15837
16123
  var name = _ref.name,
@@ -15884,9 +16170,9 @@ var RadioSelectCard = function RadioSelectCard(_ref) {
15884
16170
  onClick: onClick,
15885
16171
  "data-testid": testId,
15886
16172
  type: "button"
15887
- }, icon && React__default.createElement(IconWrap, null, icon), React__default.createElement(Body, null, React__default.createElement(Label$7, {
16173
+ }, icon && React__default.createElement(IconWrap, null, icon), React__default.createElement(Body, null, React__default.createElement(Label$6, {
15888
16174
  "$active": active
15889
- }, label), description && React__default.createElement(Description$5, null, description)), badge && React__default.createElement(Badge, {
16175
+ }, label), description && React__default.createElement(Description$6, null, description)), badge && React__default.createElement(Badge, {
15890
16176
  "$active": active
15891
16177
  }, badge));
15892
16178
  };
@@ -15918,14 +16204,14 @@ var Body = /*#__PURE__*/styled__default.div.withConfig({
15918
16204
  displayName: "RadioSelectCard__Body",
15919
16205
  componentId: "sc-12jrcz1-2"
15920
16206
  })(["flex:1 !important;min-width:0 !important;display:flex !important;flex-direction:column !important;gap:0.2rem !important;"]);
15921
- var Label$7 = /*#__PURE__*/styled__default.span.withConfig({
16207
+ var Label$6 = /*#__PURE__*/styled__default.span.withConfig({
15922
16208
  displayName: "RadioSelectCard__Label",
15923
16209
  componentId: "sc-12jrcz1-3"
15924
16210
  })(["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) {
15925
16211
  var $active = _ref7.$active;
15926
16212
  return $active ? '#f59e0b' : 'rgba(255, 255, 255, 0.9)';
15927
16213
  });
15928
- var Description$5 = /*#__PURE__*/styled__default.span.withConfig({
16214
+ var Description$6 = /*#__PURE__*/styled__default.span.withConfig({
15929
16215
  displayName: "RadioSelectCard__Description",
15930
16216
  componentId: "sc-12jrcz1-4"
15931
16217
  })(["font-size:0.62rem !important;color:rgba(255,255,255,0.45) !important;line-height:1.4 !important;"]);
@@ -16458,11 +16744,11 @@ var SkillInfoModal = function SkillInfoModal(_ref) {
16458
16744
  onPointerDown: onClose
16459
16745
  }), React__default.createElement(ModalContainer$7, null, React__default.createElement(ModalContent$7, {
16460
16746
  onPointerDown: stopPropagation
16461
- }, React__default.createElement(Header$d, null, React__default.createElement(Title$i, {
16747
+ }, React__default.createElement(Header$e, null, React__default.createElement(Title$j, {
16462
16748
  "$color": info.color
16463
16749
  }, info.name), React__default.createElement(CloseButton$g, {
16464
16750
  onPointerDown: onClose
16465
- }, React__default.createElement(fa.FaTimes, null))), React__default.createElement(Section$4, null, React__default.createElement(Label$8, null, "What it does"), React__default.createElement(Text$1, null, info.description)), React__default.createElement(Section$4, null, React__default.createElement(Label$8, null, "How to train"), React__default.createElement(Text$1, null, info.howToTrain)), info.notes && React__default.createElement(Section$4, null, React__default.createElement(Label$8, null, "Notes"), React__default.createElement(Text$1, null, info.notes)))));
16751
+ }, React__default.createElement(fa.FaTimes, null))), React__default.createElement(Section$7, null, React__default.createElement(Label$7, null, "What it does"), React__default.createElement(Text$1, null, info.description)), React__default.createElement(Section$7, null, React__default.createElement(Label$7, null, "How to train"), React__default.createElement(Text$1, null, info.howToTrain)), info.notes && React__default.createElement(Section$7, null, React__default.createElement(Label$7, null, "Notes"), React__default.createElement(Text$1, null, info.notes)))));
16466
16752
  };
16467
16753
  var Overlay$9 = /*#__PURE__*/styled__default.div.withConfig({
16468
16754
  displayName: "SkillInfoModal__Overlay",
@@ -16476,11 +16762,11 @@ var ModalContent$7 = /*#__PURE__*/styled__default.div.withConfig({
16476
16762
  displayName: "SkillInfoModal__ModalContent",
16477
16763
  componentId: "sc-pqkzdj-2"
16478
16764
  })(["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;}}"]);
16479
- var Header$d = /*#__PURE__*/styled__default.div.withConfig({
16765
+ var Header$e = /*#__PURE__*/styled__default.div.withConfig({
16480
16766
  displayName: "SkillInfoModal__Header",
16481
16767
  componentId: "sc-pqkzdj-3"
16482
16768
  })(["display:flex;align-items:center;gap:8px;"]);
16483
- var Title$i = /*#__PURE__*/styled__default.h3.withConfig({
16769
+ var Title$j = /*#__PURE__*/styled__default.h3.withConfig({
16484
16770
  displayName: "SkillInfoModal__Title",
16485
16771
  componentId: "sc-pqkzdj-4"
16486
16772
  })(["margin:0;flex:1;font-family:'Press Start 2P',cursive;font-size:0.65rem;color:", ";"], function (_ref2) {
@@ -16491,11 +16777,11 @@ var CloseButton$g = /*#__PURE__*/styled__default.button.withConfig({
16491
16777
  displayName: "SkillInfoModal__CloseButton",
16492
16778
  componentId: "sc-pqkzdj-5"
16493
16779
  })(["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;}"]);
16494
- var Section$4 = /*#__PURE__*/styled__default.div.withConfig({
16780
+ var Section$7 = /*#__PURE__*/styled__default.div.withConfig({
16495
16781
  displayName: "SkillInfoModal__Section",
16496
16782
  componentId: "sc-pqkzdj-6"
16497
16783
  })(["display:flex;flex-direction:column;gap:6px;"]);
16498
- var Label$8 = /*#__PURE__*/styled__default.span.withConfig({
16784
+ var Label$7 = /*#__PURE__*/styled__default.span.withConfig({
16499
16785
  displayName: "SkillInfoModal__Label",
16500
16786
  componentId: "sc-pqkzdj-7"
16501
16787
  })(["font-size:0.5rem;font-weight:bold;text-transform:uppercase;letter-spacing:0.05em;color:rgba(255,255,255,0.45);"]);
@@ -16808,7 +17094,7 @@ var SpellInfo$1 = function SpellInfo(_ref) {
16808
17094
  castingType = spell.castingType,
16809
17095
  cooldown = spell.cooldown,
16810
17096
  maxDistanceGrid = spell.maxDistanceGrid;
16811
- return React__default.createElement(Container$G, null, React__default.createElement(Header$e, null, React__default.createElement("div", null, React__default.createElement(Title$j, null, name), React__default.createElement(Type$1, null, magicWords))), React__default.createElement(Statistic$1, null, React__default.createElement("div", {
17097
+ return React__default.createElement(Container$G, null, React__default.createElement(Header$f, null, React__default.createElement("div", null, React__default.createElement(Title$k, null, name), React__default.createElement(Type$1, null, magicWords))), React__default.createElement(Statistic$1, null, React__default.createElement("div", {
16812
17098
  className: "label"
16813
17099
  }, "Casting Type:"), React__default.createElement("div", {
16814
17100
  className: "value"
@@ -16832,13 +17118,13 @@ var SpellInfo$1 = function SpellInfo(_ref) {
16832
17118
  className: "label"
16833
17119
  }, "Required Item:"), React__default.createElement("div", {
16834
17120
  className: "value"
16835
- }, requiredItem))), React__default.createElement(Description$6, null, description));
17121
+ }, requiredItem))), React__default.createElement(Description$7, null, description));
16836
17122
  };
16837
17123
  var Container$G = /*#__PURE__*/styled__default.div.withConfig({
16838
17124
  displayName: "SpellInfo__Container",
16839
17125
  componentId: "sc-4hbw3q-0"
16840
17126
  })(["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);
16841
- var Title$j = /*#__PURE__*/styled__default.div.withConfig({
17127
+ var Title$k = /*#__PURE__*/styled__default.div.withConfig({
16842
17128
  displayName: "SpellInfo__Title",
16843
17129
  componentId: "sc-4hbw3q-1"
16844
17130
  })(["font-size:", ";font-weight:bold;margin-bottom:0.5rem;display:flex;align-items:center;margin:0;"], uiFonts.size.medium);
@@ -16846,11 +17132,11 @@ var Type$1 = /*#__PURE__*/styled__default.div.withConfig({
16846
17132
  displayName: "SpellInfo__Type",
16847
17133
  componentId: "sc-4hbw3q-2"
16848
17134
  })(["font-size:", ";margin-top:0.2rem;color:", ";"], uiFonts.size.small, uiColors.lightGray);
16849
- var Description$6 = /*#__PURE__*/styled__default.div.withConfig({
17135
+ var Description$7 = /*#__PURE__*/styled__default.div.withConfig({
16850
17136
  displayName: "SpellInfo__Description",
16851
17137
  componentId: "sc-4hbw3q-3"
16852
17138
  })(["margin-top:1.5rem;font-size:", ";color:", ";font-style:italic;"], uiFonts.size.small, uiColors.lightGray);
16853
- var Header$e = /*#__PURE__*/styled__default.div.withConfig({
17139
+ var Header$f = /*#__PURE__*/styled__default.div.withConfig({
16854
17140
  displayName: "SpellInfo__Header",
16855
17141
  componentId: "sc-4hbw3q-4"
16856
17142
  })(["display:flex;align-items:center;justify-content:space-between;margin-bottom:0.5rem;"]);
@@ -17077,9 +17363,9 @@ var Spell = function Spell(_ref) {
17077
17363
  imgScale: IMAGE_SCALE,
17078
17364
  containerStyle: CONTAINER_STYLE,
17079
17365
  centered: true
17080
- })), React__default.createElement(Info, null, React__default.createElement(Title$k, null, React__default.createElement("span", null, name), React__default.createElement("span", {
17366
+ })), React__default.createElement(Info, null, React__default.createElement(Title$l, null, React__default.createElement("span", null, name), React__default.createElement("span", {
17081
17367
  className: "spell"
17082
- }, "(", magicWords, ")")), React__default.createElement(Description$7, null, description)), React__default.createElement(Divider$2, null), React__default.createElement(Cost, null, React__default.createElement("span", null, "Mana cost:"), React__default.createElement("span", {
17368
+ }, "(", magicWords, ")")), React__default.createElement(Description$8, null, description)), React__default.createElement(Divider$2, null), React__default.createElement(Cost, null, React__default.createElement("span", null, "Mana cost:"), React__default.createElement("span", {
17083
17369
  className: "mana"
17084
17370
  }, manaCost))));
17085
17371
  };
@@ -17098,11 +17384,11 @@ var Info = /*#__PURE__*/styled__default.span.withConfig({
17098
17384
  displayName: "Spell__Info",
17099
17385
  componentId: "sc-j96fa2-2"
17100
17386
  })(["width:0;flex:1;@media (orientation:portrait){display:none;}"]);
17101
- var Title$k = /*#__PURE__*/styled__default.p.withConfig({
17387
+ var Title$l = /*#__PURE__*/styled__default.p.withConfig({
17102
17388
  displayName: "Spell__Title",
17103
17389
  componentId: "sc-j96fa2-3"
17104
17390
  })(["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);
17105
- var Description$7 = /*#__PURE__*/styled__default.div.withConfig({
17391
+ var Description$8 = /*#__PURE__*/styled__default.div.withConfig({
17106
17392
  displayName: "Spell__Description",
17107
17393
  componentId: "sc-j96fa2-4"
17108
17394
  })(["font-size:", " !important;line-height:1.1 !important;"], uiFonts.size.small);
@@ -17163,7 +17449,7 @@ var Spellbook = function Spellbook(_ref) {
17163
17449
  height: "inherit",
17164
17450
  cancelDrag: "#spellbook-search, #shortcuts_list, .spell",
17165
17451
  scale: scale
17166
- }, React__default.createElement(Container$K, null, React__default.createElement(Title$l, null, "Learned Spells"), React__default.createElement(ShortcutsSetter, {
17452
+ }, React__default.createElement(Container$K, null, React__default.createElement(Title$m, null, "Learned Spells"), React__default.createElement(ShortcutsSetter, {
17167
17453
  setSettingShortcutIndex: setSettingShortcutIndex,
17168
17454
  settingShortcutIndex: settingShortcutIndex,
17169
17455
  shortcuts: shortcuts,
@@ -17196,7 +17482,7 @@ var Spellbook = function Spellbook(_ref) {
17196
17482
  }, spell)));
17197
17483
  }))));
17198
17484
  };
17199
- var Title$l = /*#__PURE__*/styled__default.h1.withConfig({
17485
+ var Title$m = /*#__PURE__*/styled__default.h1.withConfig({
17200
17486
  displayName: "Spellbook__Title",
17201
17487
  componentId: "sc-r02nfq-0"
17202
17488
  })(["font-size:", " !important;margin-bottom:0 !important;"], uiFonts.size.large);
@@ -37616,7 +37902,7 @@ var PurchaseSuccess = function PurchaseSuccess(_ref) {
37616
37902
  key: i,
37617
37903
  "$i": i
37618
37904
  });
37619
- })), React__default.createElement(Header$f, null, React__default.createElement(TrophyArea, null, React__default.createElement(TrophyIcon, null, React__default.createElement(Sparkle.Sparkle, null))), React__default.createElement(Title$m, null, "PURCHASE COMPLETE!"), React__default.createElement(Subtitle$2, null, "Your items are ready")), React__default.createElement(ItemsList, null, items.map(function (item, i) {
37905
+ })), React__default.createElement(Header$g, null, React__default.createElement(TrophyArea, null, React__default.createElement(TrophyIcon, null, React__default.createElement(Sparkle.Sparkle, null))), React__default.createElement(Title$n, null, "PURCHASE COMPLETE!"), React__default.createElement(Subtitle$2, null, "Your items are ready")), React__default.createElement(ItemsList, null, items.map(function (item, i) {
37620
37906
  var _item$metadata;
37621
37907
  var isCharSkin = item.metadataType === shared.MetadataType.CharacterSkin;
37622
37908
  var spriteKey = isCharSkin && (_item$metadata = item.metadata) != null && _item$metadata.selectedSkinTextureKey ? item.metadata.selectedSkinTextureKey + "/down/standing/0.png" : item.texturePath;
@@ -37663,7 +37949,7 @@ var Spark = /*#__PURE__*/styled__default.div.withConfig({
37663
37949
  }, function (p) {
37664
37950
  return p.$i * 0.2;
37665
37951
  });
37666
- var Header$f = /*#__PURE__*/styled__default.div.withConfig({
37952
+ var Header$g = /*#__PURE__*/styled__default.div.withConfig({
37667
37953
  displayName: "PurchaseSuccess__Header",
37668
37954
  componentId: "sc-18z5q21-3"
37669
37955
  })(["display:flex;flex-direction:column;align-items:center;gap:0.5rem;"]);
@@ -37675,7 +37961,7 @@ var TrophyIcon = /*#__PURE__*/styled__default.div.withConfig({
37675
37961
  displayName: "PurchaseSuccess__TrophyIcon",
37676
37962
  componentId: "sc-18z5q21-5"
37677
37963
  })(["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);
37678
- var Title$m = /*#__PURE__*/styled__default.h2.withConfig({
37964
+ var Title$n = /*#__PURE__*/styled__default.h2.withConfig({
37679
37965
  displayName: "PurchaseSuccess__Title",
37680
37966
  componentId: "sc-18z5q21-6"
37681
37967
  })(["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);"]);
@@ -37720,12 +38006,23 @@ var CloseLink = /*#__PURE__*/styled__default.div.withConfig({
37720
38006
  componentId: "sc-18z5q21-16"
37721
38007
  })(["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);}"]);
37722
38008
 
38009
+ var GENERIC_PURCHASE_FAILED_MESSAGE = 'Purchase failed. Please try again.';
38010
+ var normalizePurchaseResult = function normalizePurchaseResult(result) {
38011
+ if (typeof result === 'boolean') {
38012
+ return result ? {
38013
+ status: 'success'
38014
+ } : {
38015
+ status: 'failed'
38016
+ };
38017
+ }
38018
+ return result;
38019
+ };
37723
38020
  var MetadataDisplay = function MetadataDisplay(_ref) {
37724
38021
  var type = _ref.type,
37725
38022
  metadata = _ref.metadata;
37726
38023
  switch (type) {
37727
38024
  case shared.MetadataType.CharacterSkin:
37728
- return React__default.createElement(MetadataInfo, null, React__default.createElement(MetadataLabel, null, React__default.createElement(InfoBox.InfoBox, null), React__default.createElement("span", null, "Skin:")), React__default.createElement(MetadataValue, null, metadata.selectedSkinName || 'Custom skin'));
38025
+ return React__default.createElement(MetadataInfo, null, React__default.createElement(MetadataLabel, null, React__default.createElement(InfoBox.InfoBox, null), React__default.createElement("span", null, "Skin:")), React__default.createElement(MetadataValue, null, metadata.selectedSkinName || metadata.selectedSkin || 'Custom skin'));
37729
38026
  default:
37730
38027
  return null;
37731
38028
  }
@@ -37767,7 +38064,7 @@ var CartView = function CartView(_ref2) {
37767
38064
  };
37768
38065
  var handlePurchase = /*#__PURE__*/function () {
37769
38066
  var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
37770
- var snapshot, trackItems, success, errMsg, _errMsg;
38067
+ var snapshot, trackItems, purchaseResult, _purchaseResult$error, errMsg, _errMsg;
37771
38068
  return _regeneratorRuntime().wrap(function _callee$(_context) {
37772
38069
  while (1) switch (_context.prev = _context.next) {
37773
38070
  case 0:
@@ -37783,36 +38080,38 @@ var CartView = function CartView(_ref2) {
37783
38080
  };
37784
38081
  });
37785
38082
  onCheckoutStart == null ? void 0 : onCheckoutStart(trackItems, total);
37786
- _context.next = 8;
38083
+ _context.t0 = normalizePurchaseResult;
38084
+ _context.next = 9;
37787
38085
  return onPurchase();
37788
- case 8:
37789
- success = _context.sent;
37790
- if (success) {
38086
+ case 9:
38087
+ _context.t1 = _context.sent;
38088
+ purchaseResult = (0, _context.t0)(_context.t1);
38089
+ if (purchaseResult.status === 'success') {
37791
38090
  onPurchaseSuccess == null ? void 0 : onPurchaseSuccess(trackItems, total);
37792
38091
  setPurchasedItems(snapshot);
37793
- } else {
37794
- errMsg = 'Purchase failed. Please try again.';
38092
+ } else if (purchaseResult.status === 'failed') {
38093
+ errMsg = (_purchaseResult$error = purchaseResult.error) != null ? _purchaseResult$error : GENERIC_PURCHASE_FAILED_MESSAGE;
37795
38094
  onPurchaseError == null ? void 0 : onPurchaseError(errMsg);
37796
38095
  setError(errMsg);
37797
38096
  }
37798
- _context.next = 18;
38097
+ _context.next = 20;
37799
38098
  break;
37800
- case 12:
37801
- _context.prev = 12;
37802
- _context.t0 = _context["catch"](0);
38099
+ case 14:
38100
+ _context.prev = 14;
38101
+ _context.t2 = _context["catch"](0);
37803
38102
  _errMsg = 'An error occurred during purchase. Please try again.';
37804
38103
  onPurchaseError == null ? void 0 : onPurchaseError(_errMsg);
37805
38104
  setError(_errMsg);
37806
- console.error('Purchase error:', _context.t0);
37807
- case 18:
37808
- _context.prev = 18;
38105
+ console.error('Purchase error:', _context.t2);
38106
+ case 20:
38107
+ _context.prev = 20;
37809
38108
  setIsLoading(false);
37810
- return _context.finish(18);
37811
- case 21:
38109
+ return _context.finish(20);
38110
+ case 23:
37812
38111
  case "end":
37813
38112
  return _context.stop();
37814
38113
  }
37815
- }, _callee, null, [[0, 12, 18, 21]]);
38114
+ }, _callee, null, [[0, 14, 20, 23]]);
37816
38115
  }));
37817
38116
  return function handlePurchase() {
37818
38117
  return _ref3.apply(this, arguments);
@@ -37838,26 +38137,27 @@ var CartView = function CartView(_ref2) {
37838
38137
  onClose: onCloseStore != null ? onCloseStore : onClose
37839
38138
  });
37840
38139
  }
37841
- return React__default.createElement(Container$M, null, React__default.createElement(Header$g, null, React__default.createElement(Title$n, null, "Shopping Cart (", cartItems.reduce(function (s, ci) {
38140
+ return React__default.createElement(Container$M, null, React__default.createElement(Header$h, null, React__default.createElement(Title$o, null, "Shopping Cart (", cartItems.reduce(function (s, ci) {
37842
38141
  return s + ci.quantity;
37843
38142
  }, 0), ")"), React__default.createElement(CloseButton$i, {
37844
38143
  onPointerDown: onClose
37845
38144
  }, React__default.createElement(Cancel.Cancel, null))), React__default.createElement(MainContent$1, null, cartItems.length === 0 ? React__default.createElement(EmptyCart, null, React__default.createElement(Box.Box, null), "Your cart is empty") : React__default.createElement(CartItems, null, cartItems.map(function (cartItem) {
37846
- var _cartItem$metadata, _cartItem$metadata2, _cartItem$item$region2, _cartItem$item$region3;
38145
+ var _cartItem$metadata$se, _cartItem$metadata, _cartItem$metadata2, _cartItem$metadata3, _cartItem$item$region2, _cartItem$item$region3;
37847
38146
  var getSpriteKey = function getSpriteKey(textureKey) {
37848
38147
  return textureKey + '/down/standing/0.png';
37849
38148
  };
38149
+ 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;
37850
38150
  return React__default.createElement(CartItemRow, {
37851
38151
  key: cartItem.item.key
37852
38152
  }, React__default.createElement(ItemIconContainer, null, React__default.createElement(SpriteFromAtlas, {
37853
38153
  atlasJSON: cartItem.item.metadataType === shared.MetadataType.CharacterSkin ? characterAtlasJSON : atlasJSON,
37854
38154
  atlasIMG: cartItem.item.metadataType === shared.MetadataType.CharacterSkin ? img$9 : atlasIMG,
37855
- spriteKey: cartItem.item.metadataType === shared.MetadataType.CharacterSkin && (_cartItem$metadata = cartItem.metadata) != null && _cartItem$metadata.selectedSkinTextureKey ? getSpriteKey(cartItem.metadata.selectedSkinTextureKey) : cartItem.item.texturePath,
38155
+ spriteKey: cartItem.item.metadataType === shared.MetadataType.CharacterSkin && selectedSkinTextureKey ? getSpriteKey(selectedSkinTextureKey) : cartItem.item.texturePath,
37856
38156
  width: 24,
37857
38157
  height: 24,
37858
38158
  imgScale: 1.5,
37859
38159
  centered: true
37860
- })), React__default.createElement(ItemDetails$4, null, React__default.createElement(ItemName$6, null, cartItem.item.name), ((_cartItem$metadata2 = cartItem.metadata) == null ? void 0 : _cartItem$metadata2.inputValue) && React__default.createElement(CartMeta, null, cartItem.metadata.inputValue), React__default.createElement(ItemInfo$2, null, React__default.createElement("span", null, currencySymbol, formatPrice((_cartItem$item$region2 = cartItem.item.regionalPrice) != null ? _cartItem$item$region2 : cartItem.item.price)), React__default.createElement("span", null, "\xD7"), React__default.createElement("span", null, cartItem.quantity), React__default.createElement("span", null, "="), React__default.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__default.createElement(MetadataDisplay, {
38160
+ })), React__default.createElement(ItemDetails$4, null, React__default.createElement(ItemName$6, null, cartItem.item.name), ((_cartItem$metadata3 = cartItem.metadata) == null ? void 0 : _cartItem$metadata3.inputValue) && React__default.createElement(CartMeta, null, cartItem.metadata.inputValue), React__default.createElement(ItemInfo$2, null, React__default.createElement("span", null, currencySymbol, formatPrice((_cartItem$item$region2 = cartItem.item.regionalPrice) != null ? _cartItem$item$region2 : cartItem.item.price)), React__default.createElement("span", null, "\xD7"), React__default.createElement("span", null, cartItem.quantity), React__default.createElement("span", null, "="), React__default.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__default.createElement(MetadataDisplay, {
37861
38161
  type: cartItem.item.metadataType,
37862
38162
  metadata: cartItem.metadata
37863
38163
  })), React__default.createElement(CTAButton, {
@@ -37885,11 +38185,11 @@ var Container$M = /*#__PURE__*/styled__default.div.withConfig({
37885
38185
  displayName: "CartView__Container",
37886
38186
  componentId: "sc-ydtyl1-0"
37887
38187
  })(["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;}"]);
37888
- var Header$g = /*#__PURE__*/styled__default.div.withConfig({
38188
+ var Header$h = /*#__PURE__*/styled__default.div.withConfig({
37889
38189
  displayName: "CartView__Header",
37890
38190
  componentId: "sc-ydtyl1-1"
37891
38191
  })(["display:flex;justify-content:space-between;align-items:center;flex-shrink:0;"]);
37892
- var Title$n = /*#__PURE__*/styled__default.h2.withConfig({
38192
+ var Title$o = /*#__PURE__*/styled__default.h2.withConfig({
37893
38193
  displayName: "CartView__Title",
37894
38194
  componentId: "sc-ydtyl1-2"
37895
38195
  })(["font-family:'Press Start 2P',cursive;font-size:1rem;color:#ffffff;margin:0;"]);
@@ -38330,7 +38630,7 @@ var useStoreCart = function useStoreCart() {
38330
38630
  };
38331
38631
  var handlePurchase = /*#__PURE__*/function () {
38332
38632
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(onPurchase) {
38333
- var purchaseUnits, purchase, success;
38633
+ var purchaseUnits, purchase, result, success;
38334
38634
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
38335
38635
  while (1) switch (_context2.prev = _context2.next) {
38336
38636
  case 0:
@@ -38354,13 +38654,14 @@ var useStoreCart = function useStoreCart() {
38354
38654
  _context2.next = 4;
38355
38655
  return onPurchase(purchase);
38356
38656
  case 4:
38357
- success = _context2.sent;
38657
+ result = _context2.sent;
38658
+ success = typeof result === 'boolean' ? result : result.status === 'success';
38358
38659
  if (success && isMounted.current) {
38359
38660
  setCartItems([]);
38360
38661
  setIsCartOpen(false);
38361
38662
  }
38362
- return _context2.abrupt("return", success);
38363
- case 7:
38663
+ return _context2.abrupt("return", result);
38664
+ case 8:
38364
38665
  case "end":
38365
38666
  return _context2.stop();
38366
38667
  }
@@ -38423,6 +38724,17 @@ function uuidv4() {
38423
38724
  });
38424
38725
  }
38425
38726
 
38727
+ var getCharacterSkinMetadata = function getCharacterSkinMetadata(selectedSkinTextureKey, availableCharacters) {
38728
+ var _selectedSkin$name;
38729
+ var selectedSkin = availableCharacters.find(function (character) {
38730
+ return character.textureKey === selectedSkinTextureKey;
38731
+ });
38732
+ return {
38733
+ selectedSkin: selectedSkinTextureKey,
38734
+ selectedSkinName: (_selectedSkin$name = selectedSkin == null ? void 0 : selectedSkin.name) != null ? _selectedSkin$name : selectedSkinTextureKey,
38735
+ selectedSkinTextureKey: selectedSkinTextureKey
38736
+ };
38737
+ };
38426
38738
  var MetadataCollector = function MetadataCollector(_ref) {
38427
38739
  var metadataType = _ref.metadataType,
38428
38740
  config = _ref.config,
@@ -38463,9 +38775,7 @@ var MetadataCollector = function MetadataCollector(_ref) {
38463
38775
  isOpen: true,
38464
38776
  onClose: handleCancel,
38465
38777
  onConfirm: function onConfirm(selectedSkin) {
38466
- return handleCollect({
38467
- selectedSkin: selectedSkin
38468
- });
38778
+ return handleCollect(getCharacterSkinMetadata(selectedSkin, config.availableCharacters || []));
38469
38779
  },
38470
38780
  availableCharacters: config.availableCharacters || [],
38471
38781
  atlasJSON: config.atlasJSON,
@@ -38485,7 +38795,9 @@ var PaymentMethodModal = function PaymentMethodModal(_ref) {
38485
38795
  onPayWithPix = _ref.onPayWithPix,
38486
38796
  onClose = _ref.onClose,
38487
38797
  _ref$showPix = _ref.showPix,
38488
- showPix = _ref$showPix === void 0 ? false : _ref$showPix;
38798
+ showPix = _ref$showPix === void 0 ? false : _ref$showPix,
38799
+ _ref$isProcessing = _ref.isProcessing,
38800
+ isProcessing = _ref$isProcessing === void 0 ? false : _ref$isProcessing;
38489
38801
  var _useState = React.useState('card'),
38490
38802
  selected = _useState[0],
38491
38803
  setSelected = _useState[1];
@@ -38499,6 +38811,7 @@ var PaymentMethodModal = function PaymentMethodModal(_ref) {
38499
38811
  e.stopPropagation();
38500
38812
  }, []);
38501
38813
  var handleConfirm = React.useCallback(function () {
38814
+ if (isProcessing) return;
38502
38815
  if (selected === 'dc' && !dcDisabled) {
38503
38816
  onPayWithDC();
38504
38817
  } else if (selected === 'pix') {
@@ -38506,7 +38819,10 @@ var PaymentMethodModal = function PaymentMethodModal(_ref) {
38506
38819
  } else {
38507
38820
  onPayWithCard();
38508
38821
  }
38509
- }, [selected, dcDisabled, onPayWithDC, onPayWithCard, onPayWithPix]);
38822
+ }, [selected, dcDisabled, isProcessing, onPayWithDC, onPayWithCard, onPayWithPix]);
38823
+ var handleClose = React.useCallback(function () {
38824
+ if (!isProcessing) onClose();
38825
+ }, [isProcessing, onClose]);
38510
38826
  var dcSubText = dcRequired !== undefined ? React__default.createElement(React__default.Fragment, null, React__default.createElement(MMORPGNumber, {
38511
38827
  value: dcBalance
38512
38828
  }), " DC available \xB7", ' ', React__default.createElement(MMORPGNumber, {
@@ -38515,40 +38831,44 @@ var PaymentMethodModal = function PaymentMethodModal(_ref) {
38515
38831
  value: dcBalance
38516
38832
  }), " DC available");
38517
38833
  return React__default.createElement(ModalPortal, null, React__default.createElement(Overlay$b, {
38518
- onPointerDown: onClose
38834
+ onPointerDown: handleClose
38519
38835
  }), React__default.createElement(ModalContainer$8, null, React__default.createElement(ModalContent$8, {
38520
38836
  onClick: stopPropagation,
38521
38837
  onTouchStart: stopPropagation,
38522
38838
  onPointerDown: stopPropagation
38523
- }, React__default.createElement(Header$h, null, React__default.createElement(Title$o, null, "How would you like to pay?"), React__default.createElement(CloseButton$j, {
38524
- onPointerDown: onClose,
38525
- "aria-label": "Close"
38839
+ }, React__default.createElement(Header$i, null, React__default.createElement(Title$p, null, "How would you like to pay?"), React__default.createElement(CloseButton$j, {
38840
+ onPointerDown: handleClose,
38841
+ "aria-label": "Close",
38842
+ disabled: isProcessing
38526
38843
  }, React__default.createElement(Cancel.Cancel, null))), React__default.createElement(Options$1, null, React__default.createElement(RadioOption$2, {
38527
38844
  "$selected": selected === 'card',
38528
- onPointerDown: function onPointerDown() {
38845
+ "$disabled": isProcessing,
38846
+ onPointerDown: isProcessing ? undefined : function () {
38529
38847
  return setSelected('card');
38530
38848
  }
38531
38849
  }, React__default.createElement(RadioCircle$3, {
38532
38850
  "$selected": selected === 'card'
38533
38851
  }), React__default.createElement(OptionText$1, null, React__default.createElement(OptionLabel$2, null, "Credit Card"), React__default.createElement(OptionSub$1, null, "Stripe secure checkout"))), showPix && React__default.createElement(RadioOption$2, {
38534
38852
  "$selected": selected === 'pix',
38535
- onPointerDown: function onPointerDown() {
38853
+ "$disabled": isProcessing,
38854
+ onPointerDown: isProcessing ? undefined : function () {
38536
38855
  return setSelected('pix');
38537
38856
  }
38538
38857
  }, React__default.createElement(RadioCircle$3, {
38539
38858
  "$selected": selected === 'pix'
38540
38859
  }), React__default.createElement(OptionText$1, null, React__default.createElement(OptionLabel$2, null, "Pix"), React__default.createElement(OptionSub$1, null, "Instant payment via Pix"))), React__default.createElement(RadioOption$2, {
38541
38860
  "$selected": selected === 'dc',
38542
- "$disabled": dcDisabled,
38543
- onPointerDown: dcDisabled ? undefined : function () {
38861
+ "$disabled": dcDisabled || isProcessing,
38862
+ onPointerDown: dcDisabled || isProcessing ? undefined : function () {
38544
38863
  return setSelected('dc');
38545
38864
  }
38546
38865
  }, React__default.createElement(RadioCircle$3, {
38547
38866
  "$selected": selected === 'dc'
38548
38867
  }), React__default.createElement(OptionText$1, null, React__default.createElement(OptionLabel$2, null, "Definya Coin"), React__default.createElement(OptionSub$1, null, dcSubText)))), React__default.createElement(ConfirmRow$1, null, React__default.createElement(Button, {
38549
38868
  buttonType: exports.ButtonTypes.RPGUIButton,
38550
- onPointerDown: handleConfirm
38551
- }, "Confirm")))));
38869
+ onPointerDown: handleConfirm,
38870
+ disabled: isProcessing
38871
+ }, isProcessing ? 'Processing...' : 'Confirm')))));
38552
38872
  };
38553
38873
  var Overlay$b = /*#__PURE__*/styled__default.div.withConfig({
38554
38874
  displayName: "PaymentMethodModal__Overlay",
@@ -38562,11 +38882,11 @@ var ModalContent$8 = /*#__PURE__*/styled__default.div.withConfig({
38562
38882
  displayName: "PaymentMethodModal__ModalContent",
38563
38883
  componentId: "sc-1dxy6lr-2"
38564
38884
  })(["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;}}"]);
38565
- var Header$h = /*#__PURE__*/styled__default.div.withConfig({
38885
+ var Header$i = /*#__PURE__*/styled__default.div.withConfig({
38566
38886
  displayName: "PaymentMethodModal__Header",
38567
38887
  componentId: "sc-1dxy6lr-3"
38568
38888
  })(["display:flex;align-items:center;justify-content:space-between;"]);
38569
- var Title$o = /*#__PURE__*/styled__default.h3.withConfig({
38889
+ var Title$p = /*#__PURE__*/styled__default.h3.withConfig({
38570
38890
  displayName: "PaymentMethodModal__Title",
38571
38891
  componentId: "sc-1dxy6lr-4"
38572
38892
  })(["margin:0;font-family:'Press Start 2P',cursive;font-size:0.7rem;color:#fef08a;"]);
@@ -38932,7 +39252,7 @@ var StoreCharacterSkinRow = function StoreCharacterSkinRow(_ref) {
38932
39252
  height: 32,
38933
39253
  imgScale: 2,
38934
39254
  centered: true
38935
- }) : React__default.createElement(DefaultIcon, null, "\uD83D\uDC64")), React__default.createElement(ItemDetails$5, null, React__default.createElement(Header$i, null, React__default.createElement(ItemName$7, null, item.name)), availableCharacters.length > 0 && currentCharacter && React__default.createElement(SelectedSkinNav, null, React__default.createElement(SelectedSkin, null, "Selected:"), React__default.createElement(SkinNavArrow, {
39255
+ }) : React__default.createElement(DefaultIcon, null, "\uD83D\uDC64")), React__default.createElement(ItemDetails$5, null, React__default.createElement(Header$j, null, React__default.createElement(ItemName$7, null, item.name)), availableCharacters.length > 0 && currentCharacter && React__default.createElement(SelectedSkinNav, null, React__default.createElement(SelectedSkin, null, "Selected:"), React__default.createElement(SkinNavArrow, {
38936
39256
  direction: "left",
38937
39257
  onPointerDown: handlePreviousSkin,
38938
39258
  size: 24
@@ -39065,7 +39385,7 @@ var SkinNavArrow = /*#__PURE__*/styled__default(SelectArrow).withConfig({
39065
39385
  displayName: "StoreCharacterSkinRow__SkinNavArrow",
39066
39386
  componentId: "sc-81xqsx-10"
39067
39387
  })(["position:static;"]);
39068
- var Header$i = /*#__PURE__*/styled__default.div.withConfig({
39388
+ var Header$j = /*#__PURE__*/styled__default.div.withConfig({
39069
39389
  displayName: "StoreCharacterSkinRow__Header",
39070
39390
  componentId: "sc-81xqsx-11"
39071
39391
  })(["display:flex;align-items:center;gap:0.5rem;"]);
@@ -39874,7 +40194,7 @@ var StoreRedeemSection = function StoreRedeemSection(_ref) {
39874
40194
  height: 32
39875
40195
  })), React__default.createElement(SuccessTitle, null, "Code Redeemed!"), dcAmount != null && React__default.createElement(DCAmountDisplay, null, "+", React__default.createElement(MMORPGNumber, {
39876
40196
  value: dcAmount
39877
- }), " DC"), React__default.createElement(SuccessHint, null, "Your wallet balance has been updated."), React__default.createElement(ButtonWrapper$3, null, React__default.createElement(CTAButton, {
40197
+ }), " DC"), React__default.createElement(SuccessHint, null, "Your wallet balance has been updated."), React__default.createElement(ButtonWrapper$4, null, React__default.createElement(CTAButton, {
39878
40198
  icon: React__default.createElement(Receipt.Receipt, null),
39879
40199
  label: "Redeem Another",
39880
40200
  onClick: handleReset
@@ -39884,13 +40204,13 @@ var StoreRedeemSection = function StoreRedeemSection(_ref) {
39884
40204
  return React__default.createElement(Container$O, null, React__default.createElement(ResultContainer, null, React__default.createElement(ErrorIcon, null, React__default.createElement(WarningDiamond.WarningDiamond, {
39885
40205
  width: 32,
39886
40206
  height: 32
39887
- })), React__default.createElement(ErrorTitle, null, errorMessage), React__default.createElement(ButtonWrapper$3, null, React__default.createElement(CTAButton, {
40207
+ })), React__default.createElement(ErrorTitle, null, errorMessage), React__default.createElement(ButtonWrapper$4, null, React__default.createElement(CTAButton, {
39888
40208
  icon: React__default.createElement(Receipt.Receipt, null),
39889
40209
  label: "Try Again",
39890
40210
  onClick: handleReset
39891
40211
  }))));
39892
40212
  }
39893
- return React__default.createElement(Container$O, null, React__default.createElement(Title$p, null, "Redeem a Voucher Code"), React__default.createElement(Description$8, null, "Enter your voucher code below to receive Definya Coins."), React__default.createElement(InputRow, null, React__default.createElement(CodeInput, {
40213
+ return React__default.createElement(Container$O, null, React__default.createElement(Title$q, null, "Redeem a Voucher Code"), React__default.createElement(Description$9, null, "Enter your voucher code below to receive Definya Coins."), React__default.createElement(InputRow, null, React__default.createElement(CodeInput, {
39894
40214
  type: "text",
39895
40215
  value: code,
39896
40216
  onChange: function onChange(e) {
@@ -39903,7 +40223,7 @@ var StoreRedeemSection = function StoreRedeemSection(_ref) {
39903
40223
  disabled: status === 'loading',
39904
40224
  autoComplete: "off",
39905
40225
  spellCheck: false
39906
- })), React__default.createElement(ButtonWrapper$3, null, React__default.createElement(CTAButton, {
40226
+ })), React__default.createElement(ButtonWrapper$4, null, React__default.createElement(CTAButton, {
39907
40227
  icon: React__default.createElement(Receipt.Receipt, null),
39908
40228
  label: status === 'loading' ? 'Redeeming...' : 'Redeem Code',
39909
40229
  onClick: function onClick() {
@@ -39917,11 +40237,11 @@ var Container$O = /*#__PURE__*/styled__default.div.withConfig({
39917
40237
  displayName: "StoreRedeemSection__Container",
39918
40238
  componentId: "sc-1pzosml-0"
39919
40239
  })(["display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem;max-width:420px;margin:0 auto;gap:1rem;"]);
39920
- var Title$p = /*#__PURE__*/styled__default.h3.withConfig({
40240
+ var Title$q = /*#__PURE__*/styled__default.h3.withConfig({
39921
40241
  displayName: "StoreRedeemSection__Title",
39922
40242
  componentId: "sc-1pzosml-1"
39923
40243
  })(["font-family:'Press Start 2P',cursive;font-size:0.85rem;color:", ";margin:0;text-align:center;"], uiColors.white);
39924
- var Description$8 = /*#__PURE__*/styled__default.p.withConfig({
40244
+ var Description$9 = /*#__PURE__*/styled__default.p.withConfig({
39925
40245
  displayName: "StoreRedeemSection__Description",
39926
40246
  componentId: "sc-1pzosml-2"
39927
40247
  })(["font-family:'Press Start 2P',cursive;font-size:0.55rem;color:", ";margin:0;text-align:center;line-height:1.6;"], uiColors.lightGray);
@@ -39933,7 +40253,7 @@ var CodeInput = /*#__PURE__*/styled__default.input.withConfig({
39933
40253
  displayName: "StoreRedeemSection__CodeInput",
39934
40254
  componentId: "sc-1pzosml-4"
39935
40255
  })(["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);
39936
- var ButtonWrapper$3 = /*#__PURE__*/styled__default.div.withConfig({
40256
+ var ButtonWrapper$4 = /*#__PURE__*/styled__default.div.withConfig({
39937
40257
  displayName: "StoreRedeemSection__ButtonWrapper",
39938
40258
  componentId: "sc-1pzosml-5"
39939
40259
  })(["width:100%;margin-top:0.5rem;"]);
@@ -39980,14 +40300,14 @@ var StoreItemDetails = function StoreItemDetails(_ref) {
39980
40300
  if (typeof imageUrl === 'string') return imageUrl;
39981
40301
  return imageUrl["default"] || imageUrl.src;
39982
40302
  };
39983
- return React__default.createElement(Container$P, null, React__default.createElement(Header$j, null, React__default.createElement(BackButton, {
40303
+ return React__default.createElement(Container$P, null, React__default.createElement(Header$k, null, React__default.createElement(BackButton, {
39984
40304
  onClick: onBack
39985
40305
  }, React__default.createElement(ArrowLeft.ArrowLeft, null), React__default.createElement("span", null, "Back"))), React__default.createElement(Content$5, null, React__default.createElement(DetailsGrid, null, React__default.createElement(ItemIcon, null, React__default.createElement("img", {
39986
40306
  src: getImageSrc(),
39987
40307
  alt: item.name
39988
40308
  })), React__default.createElement(ItemInfo$3, null, React__default.createElement(ItemName$9, null, item.name), React__default.createElement(ItemPrice$2, null, currencySymbol, 'priceUSD' in item ? item.priceUSD : (_item$regionalPrice = item.regionalPrice) != null ? _item$regionalPrice : item.price, item.dcPrice ? React__default.createElement(React__default.Fragment, null, ' ', "\xB7 ", React__default.createElement(MMORPGNumber, {
39989
40309
  value: item.dcPrice
39990
- }), " DC") : ''), React__default.createElement(Description$9, null, item.description))), React__default.createElement(Actions$1, null, React__default.createElement(CTAButton, {
40310
+ }), " DC") : ''), React__default.createElement(Description$a, null, item.description))), React__default.createElement(Actions$1, null, React__default.createElement(CTAButton, {
39991
40311
  icon: React__default.createElement(ShoppingCart.ShoppingCart, null),
39992
40312
  label: "Add to Cart",
39993
40313
  onClick: function onClick() {
@@ -40000,7 +40320,7 @@ var Container$P = /*#__PURE__*/styled__default.div.withConfig({
40000
40320
  displayName: "StoreItemDetails__Container",
40001
40321
  componentId: "sc-k3ho5z-0"
40002
40322
  })(["display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;height:100%;"]);
40003
- var Header$j = /*#__PURE__*/styled__default.div.withConfig({
40323
+ var Header$k = /*#__PURE__*/styled__default.div.withConfig({
40004
40324
  displayName: "StoreItemDetails__Header",
40005
40325
  componentId: "sc-k3ho5z-1"
40006
40326
  })(["display:flex;align-items:center;gap:1rem;"]);
@@ -40032,7 +40352,7 @@ var ItemPrice$2 = /*#__PURE__*/styled__default.div.withConfig({
40032
40352
  displayName: "StoreItemDetails__ItemPrice",
40033
40353
  componentId: "sc-k3ho5z-8"
40034
40354
  })(["font-family:'Press Start 2P',cursive;font-size:1rem;color:#fef08a;"]);
40035
- var Description$9 = /*#__PURE__*/styled__default.p.withConfig({
40355
+ var Description$a = /*#__PURE__*/styled__default.p.withConfig({
40036
40356
  displayName: "StoreItemDetails__Description",
40037
40357
  componentId: "sc-k3ho5z-9"
40038
40358
  })(["margin:0;font-family:'Press Start 2P',cursive;font-size:0.875rem;line-height:1.6;color:#ffffff;"]);
@@ -40725,7 +41045,7 @@ var TradingMenu = function TradingMenu(_ref) {
40725
41045
  width: "500px",
40726
41046
  cancelDrag: "#TraderContainer",
40727
41047
  scale: scale
40728
- }, React__default.createElement(Container$R, null, React__default.createElement(Title$q, null, type.charAt(0).toUpperCase() + type.slice(1), " Menu"), React__default.createElement("hr", {
41048
+ }, React__default.createElement(Container$R, null, React__default.createElement(Title$r, null, type.charAt(0).toUpperCase() + type.slice(1), " Menu"), React__default.createElement("hr", {
40729
41049
  className: "golden"
40730
41050
  }), React__default.createElement(ScrollWrapper, {
40731
41051
  id: "TraderContainer"
@@ -40742,7 +41062,7 @@ var TradingMenu = function TradingMenu(_ref) {
40742
41062
  scale: scale,
40743
41063
  isBuy: isBuy()
40744
41064
  });
40745
- })), React__default.createElement(InfoSection$2, null, React__default.createElement(GoldInfo, null, React__default.createElement("p", null, "Available Gold:"), React__default.createElement("p", null, "$", characterAvailableGold.toFixed(2))), React__default.createElement(GoldInfo, null, React__default.createElement("p", null, "Total:"), React__default.createElement("p", null, "$", sum)), !hasGoldForSale() ? React__default.createElement(AlertText, null, "Sorry, not enough money.") : React__default.createElement(GoldInfo, null, React__default.createElement("p", null, "Final Gold:"), React__default.createElement("p", null, "$", getFinalGold().toFixed(2)))), React__default.createElement(ButtonWrapper$4, null, React__default.createElement(Button, {
41065
+ })), React__default.createElement(InfoSection$2, null, React__default.createElement(GoldInfo, null, React__default.createElement("p", null, "Available Gold:"), React__default.createElement("p", null, "$", characterAvailableGold.toFixed(2))), React__default.createElement(GoldInfo, null, React__default.createElement("p", null, "Total:"), React__default.createElement("p", null, "$", sum)), !hasGoldForSale() ? React__default.createElement(AlertText, null, "Sorry, not enough money.") : React__default.createElement(GoldInfo, null, React__default.createElement("p", null, "Final Gold:"), React__default.createElement("p", null, "$", getFinalGold().toFixed(2)))), React__default.createElement(ButtonWrapper$5, null, React__default.createElement(Button, {
40746
41066
  buttonType: exports.ButtonTypes.RPGUIButton,
40747
41067
  disabled: !hasGoldForSale(),
40748
41068
  onPointerDown: function onPointerDown() {
@@ -40757,7 +41077,7 @@ var Container$R = /*#__PURE__*/styled__default.div.withConfig({
40757
41077
  displayName: "TradingMenu__Container",
40758
41078
  componentId: "sc-1wjsz1l-0"
40759
41079
  })(["width:100%;"]);
40760
- var Title$q = /*#__PURE__*/styled__default.h1.withConfig({
41080
+ var Title$r = /*#__PURE__*/styled__default.h1.withConfig({
40761
41081
  displayName: "TradingMenu__Title",
40762
41082
  componentId: "sc-1wjsz1l-1"
40763
41083
  })(["font-size:0.7rem !important;color:yellow !important;text-align:center;"]);
@@ -40777,7 +41097,7 @@ var AlertText = /*#__PURE__*/styled__default.p.withConfig({
40777
41097
  displayName: "TradingMenu__AlertText",
40778
41098
  componentId: "sc-1wjsz1l-5"
40779
41099
  })(["color:red !important;text-align:center;margin:0.3rem 0;font-size:0.5rem;"]);
40780
- var ButtonWrapper$4 = /*#__PURE__*/styled__default.div.withConfig({
41100
+ var ButtonWrapper$5 = /*#__PURE__*/styled__default.div.withConfig({
40781
41101
  displayName: "TradingMenu__ButtonWrapper",
40782
41102
  componentId: "sc-1wjsz1l-6"
40783
41103
  })(["display:flex;justify-content:space-around;width:100%;margin-top:1rem;"]);
@@ -41035,6 +41355,7 @@ exports.PurchaseSuccess = PurchaseSuccess;
41035
41355
  exports.QuantitySelectorModal = QuantitySelectorModal;
41036
41356
  exports.QuestInfo = QuestInfo;
41037
41357
  exports.QuestList = QuestList;
41358
+ exports.QuestListRow = QuestListRow;
41038
41359
  exports.QuestionDialog = QuestionDialog;
41039
41360
  exports.RPGUIContainer = RPGUIContainer;
41040
41361
  exports.RPGUIRoot = RPGUIRoot;