@rpg-engine/long-bow 0.8.231 → 0.8.232

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 (28) 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/Tutorial/TutorialStepper.d.ts +2 -0
  9. package/dist/index.d.ts +1 -0
  10. package/dist/long-bow.cjs.development.js +435 -138
  11. package/dist/long-bow.cjs.development.js.map +1 -1
  12. package/dist/long-bow.cjs.production.min.js +1 -1
  13. package/dist/long-bow.cjs.production.min.js.map +1 -1
  14. package/dist/long-bow.esm.js +436 -140
  15. package/dist/long-bow.esm.js.map +1 -1
  16. package/package.json +1 -1
  17. package/src/components/Quests/QuestInfo/QuestInfo.tsx +57 -68
  18. package/src/components/Quests/QuestInfo/QuestObjectivesSection.tsx +114 -0
  19. package/src/components/Quests/QuestInfo/QuestRequirementsSection.tsx +74 -0
  20. package/src/components/Quests/QuestInfo/QuestRewardsSection.tsx +128 -0
  21. package/src/components/Quests/QuestInfo/QuestSectionTypes.ts +8 -0
  22. package/src/components/Quests/QuestList.tsx +12 -87
  23. package/src/components/Quests/QuestListRow.tsx +178 -0
  24. package/src/components/Store/CartView.tsx +3 -2
  25. package/src/components/Store/MetadataCollector.tsx +28 -1
  26. package/src/components/Store/__test__/MetadataCollector.spec.tsx +12 -3
  27. package/src/components/Tutorial/TutorialStepper.tsx +2 -0
  28. 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);"]);
@@ -37725,7 +38011,7 @@ var MetadataDisplay = function MetadataDisplay(_ref) {
37725
38011
  metadata = _ref.metadata;
37726
38012
  switch (type) {
37727
38013
  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'));
38014
+ 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
38015
  default:
37730
38016
  return null;
37731
38017
  }
@@ -37838,26 +38124,27 @@ var CartView = function CartView(_ref2) {
37838
38124
  onClose: onCloseStore != null ? onCloseStore : onClose
37839
38125
  });
37840
38126
  }
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) {
38127
+ 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
38128
  return s + ci.quantity;
37843
38129
  }, 0), ")"), React__default.createElement(CloseButton$i, {
37844
38130
  onPointerDown: onClose
37845
38131
  }, 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;
38132
+ var _cartItem$metadata$se, _cartItem$metadata, _cartItem$metadata2, _cartItem$metadata3, _cartItem$item$region2, _cartItem$item$region3;
37847
38133
  var getSpriteKey = function getSpriteKey(textureKey) {
37848
38134
  return textureKey + '/down/standing/0.png';
37849
38135
  };
38136
+ 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
38137
  return React__default.createElement(CartItemRow, {
37851
38138
  key: cartItem.item.key
37852
38139
  }, React__default.createElement(ItemIconContainer, null, React__default.createElement(SpriteFromAtlas, {
37853
38140
  atlasJSON: cartItem.item.metadataType === shared.MetadataType.CharacterSkin ? characterAtlasJSON : atlasJSON,
37854
38141
  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,
38142
+ spriteKey: cartItem.item.metadataType === shared.MetadataType.CharacterSkin && selectedSkinTextureKey ? getSpriteKey(selectedSkinTextureKey) : cartItem.item.texturePath,
37856
38143
  width: 24,
37857
38144
  height: 24,
37858
38145
  imgScale: 1.5,
37859
38146
  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, {
38147
+ })), 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
38148
  type: cartItem.item.metadataType,
37862
38149
  metadata: cartItem.metadata
37863
38150
  })), React__default.createElement(CTAButton, {
@@ -37885,11 +38172,11 @@ var Container$M = /*#__PURE__*/styled__default.div.withConfig({
37885
38172
  displayName: "CartView__Container",
37886
38173
  componentId: "sc-ydtyl1-0"
37887
38174
  })(["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({
38175
+ var Header$h = /*#__PURE__*/styled__default.div.withConfig({
37889
38176
  displayName: "CartView__Header",
37890
38177
  componentId: "sc-ydtyl1-1"
37891
38178
  })(["display:flex;justify-content:space-between;align-items:center;flex-shrink:0;"]);
37892
- var Title$n = /*#__PURE__*/styled__default.h2.withConfig({
38179
+ var Title$o = /*#__PURE__*/styled__default.h2.withConfig({
37893
38180
  displayName: "CartView__Title",
37894
38181
  componentId: "sc-ydtyl1-2"
37895
38182
  })(["font-family:'Press Start 2P',cursive;font-size:1rem;color:#ffffff;margin:0;"]);
@@ -38423,6 +38710,17 @@ function uuidv4() {
38423
38710
  });
38424
38711
  }
38425
38712
 
38713
+ var getCharacterSkinMetadata = function getCharacterSkinMetadata(selectedSkinTextureKey, availableCharacters) {
38714
+ var _selectedSkin$name;
38715
+ var selectedSkin = availableCharacters.find(function (character) {
38716
+ return character.textureKey === selectedSkinTextureKey;
38717
+ });
38718
+ return {
38719
+ selectedSkin: selectedSkinTextureKey,
38720
+ selectedSkinName: (_selectedSkin$name = selectedSkin == null ? void 0 : selectedSkin.name) != null ? _selectedSkin$name : selectedSkinTextureKey,
38721
+ selectedSkinTextureKey: selectedSkinTextureKey
38722
+ };
38723
+ };
38426
38724
  var MetadataCollector = function MetadataCollector(_ref) {
38427
38725
  var metadataType = _ref.metadataType,
38428
38726
  config = _ref.config,
@@ -38463,9 +38761,7 @@ var MetadataCollector = function MetadataCollector(_ref) {
38463
38761
  isOpen: true,
38464
38762
  onClose: handleCancel,
38465
38763
  onConfirm: function onConfirm(selectedSkin) {
38466
- return handleCollect({
38467
- selectedSkin: selectedSkin
38468
- });
38764
+ return handleCollect(getCharacterSkinMetadata(selectedSkin, config.availableCharacters || []));
38469
38765
  },
38470
38766
  availableCharacters: config.availableCharacters || [],
38471
38767
  atlasJSON: config.atlasJSON,
@@ -38520,7 +38816,7 @@ var PaymentMethodModal = function PaymentMethodModal(_ref) {
38520
38816
  onClick: stopPropagation,
38521
38817
  onTouchStart: stopPropagation,
38522
38818
  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, {
38819
+ }, React__default.createElement(Header$i, null, React__default.createElement(Title$p, null, "How would you like to pay?"), React__default.createElement(CloseButton$j, {
38524
38820
  onPointerDown: onClose,
38525
38821
  "aria-label": "Close"
38526
38822
  }, React__default.createElement(Cancel.Cancel, null))), React__default.createElement(Options$1, null, React__default.createElement(RadioOption$2, {
@@ -38562,11 +38858,11 @@ var ModalContent$8 = /*#__PURE__*/styled__default.div.withConfig({
38562
38858
  displayName: "PaymentMethodModal__ModalContent",
38563
38859
  componentId: "sc-1dxy6lr-2"
38564
38860
  })(["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({
38861
+ var Header$i = /*#__PURE__*/styled__default.div.withConfig({
38566
38862
  displayName: "PaymentMethodModal__Header",
38567
38863
  componentId: "sc-1dxy6lr-3"
38568
38864
  })(["display:flex;align-items:center;justify-content:space-between;"]);
38569
- var Title$o = /*#__PURE__*/styled__default.h3.withConfig({
38865
+ var Title$p = /*#__PURE__*/styled__default.h3.withConfig({
38570
38866
  displayName: "PaymentMethodModal__Title",
38571
38867
  componentId: "sc-1dxy6lr-4"
38572
38868
  })(["margin:0;font-family:'Press Start 2P',cursive;font-size:0.7rem;color:#fef08a;"]);
@@ -38932,7 +39228,7 @@ var StoreCharacterSkinRow = function StoreCharacterSkinRow(_ref) {
38932
39228
  height: 32,
38933
39229
  imgScale: 2,
38934
39230
  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, {
39231
+ }) : 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
39232
  direction: "left",
38937
39233
  onPointerDown: handlePreviousSkin,
38938
39234
  size: 24
@@ -39065,7 +39361,7 @@ var SkinNavArrow = /*#__PURE__*/styled__default(SelectArrow).withConfig({
39065
39361
  displayName: "StoreCharacterSkinRow__SkinNavArrow",
39066
39362
  componentId: "sc-81xqsx-10"
39067
39363
  })(["position:static;"]);
39068
- var Header$i = /*#__PURE__*/styled__default.div.withConfig({
39364
+ var Header$j = /*#__PURE__*/styled__default.div.withConfig({
39069
39365
  displayName: "StoreCharacterSkinRow__Header",
39070
39366
  componentId: "sc-81xqsx-11"
39071
39367
  })(["display:flex;align-items:center;gap:0.5rem;"]);
@@ -39874,7 +40170,7 @@ var StoreRedeemSection = function StoreRedeemSection(_ref) {
39874
40170
  height: 32
39875
40171
  })), React__default.createElement(SuccessTitle, null, "Code Redeemed!"), dcAmount != null && React__default.createElement(DCAmountDisplay, null, "+", React__default.createElement(MMORPGNumber, {
39876
40172
  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, {
40173
+ }), " DC"), React__default.createElement(SuccessHint, null, "Your wallet balance has been updated."), React__default.createElement(ButtonWrapper$4, null, React__default.createElement(CTAButton, {
39878
40174
  icon: React__default.createElement(Receipt.Receipt, null),
39879
40175
  label: "Redeem Another",
39880
40176
  onClick: handleReset
@@ -39884,13 +40180,13 @@ var StoreRedeemSection = function StoreRedeemSection(_ref) {
39884
40180
  return React__default.createElement(Container$O, null, React__default.createElement(ResultContainer, null, React__default.createElement(ErrorIcon, null, React__default.createElement(WarningDiamond.WarningDiamond, {
39885
40181
  width: 32,
39886
40182
  height: 32
39887
- })), React__default.createElement(ErrorTitle, null, errorMessage), React__default.createElement(ButtonWrapper$3, null, React__default.createElement(CTAButton, {
40183
+ })), React__default.createElement(ErrorTitle, null, errorMessage), React__default.createElement(ButtonWrapper$4, null, React__default.createElement(CTAButton, {
39888
40184
  icon: React__default.createElement(Receipt.Receipt, null),
39889
40185
  label: "Try Again",
39890
40186
  onClick: handleReset
39891
40187
  }))));
39892
40188
  }
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, {
40189
+ 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
40190
  type: "text",
39895
40191
  value: code,
39896
40192
  onChange: function onChange(e) {
@@ -39903,7 +40199,7 @@ var StoreRedeemSection = function StoreRedeemSection(_ref) {
39903
40199
  disabled: status === 'loading',
39904
40200
  autoComplete: "off",
39905
40201
  spellCheck: false
39906
- })), React__default.createElement(ButtonWrapper$3, null, React__default.createElement(CTAButton, {
40202
+ })), React__default.createElement(ButtonWrapper$4, null, React__default.createElement(CTAButton, {
39907
40203
  icon: React__default.createElement(Receipt.Receipt, null),
39908
40204
  label: status === 'loading' ? 'Redeeming...' : 'Redeem Code',
39909
40205
  onClick: function onClick() {
@@ -39917,11 +40213,11 @@ var Container$O = /*#__PURE__*/styled__default.div.withConfig({
39917
40213
  displayName: "StoreRedeemSection__Container",
39918
40214
  componentId: "sc-1pzosml-0"
39919
40215
  })(["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({
40216
+ var Title$q = /*#__PURE__*/styled__default.h3.withConfig({
39921
40217
  displayName: "StoreRedeemSection__Title",
39922
40218
  componentId: "sc-1pzosml-1"
39923
40219
  })(["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({
40220
+ var Description$9 = /*#__PURE__*/styled__default.p.withConfig({
39925
40221
  displayName: "StoreRedeemSection__Description",
39926
40222
  componentId: "sc-1pzosml-2"
39927
40223
  })(["font-family:'Press Start 2P',cursive;font-size:0.55rem;color:", ";margin:0;text-align:center;line-height:1.6;"], uiColors.lightGray);
@@ -39933,7 +40229,7 @@ var CodeInput = /*#__PURE__*/styled__default.input.withConfig({
39933
40229
  displayName: "StoreRedeemSection__CodeInput",
39934
40230
  componentId: "sc-1pzosml-4"
39935
40231
  })(["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({
40232
+ var ButtonWrapper$4 = /*#__PURE__*/styled__default.div.withConfig({
39937
40233
  displayName: "StoreRedeemSection__ButtonWrapper",
39938
40234
  componentId: "sc-1pzosml-5"
39939
40235
  })(["width:100%;margin-top:0.5rem;"]);
@@ -39980,14 +40276,14 @@ var StoreItemDetails = function StoreItemDetails(_ref) {
39980
40276
  if (typeof imageUrl === 'string') return imageUrl;
39981
40277
  return imageUrl["default"] || imageUrl.src;
39982
40278
  };
39983
- return React__default.createElement(Container$P, null, React__default.createElement(Header$j, null, React__default.createElement(BackButton, {
40279
+ return React__default.createElement(Container$P, null, React__default.createElement(Header$k, null, React__default.createElement(BackButton, {
39984
40280
  onClick: onBack
39985
40281
  }, 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
40282
  src: getImageSrc(),
39987
40283
  alt: item.name
39988
40284
  })), 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
40285
  value: item.dcPrice
39990
- }), " DC") : ''), React__default.createElement(Description$9, null, item.description))), React__default.createElement(Actions$1, null, React__default.createElement(CTAButton, {
40286
+ }), " DC") : ''), React__default.createElement(Description$a, null, item.description))), React__default.createElement(Actions$1, null, React__default.createElement(CTAButton, {
39991
40287
  icon: React__default.createElement(ShoppingCart.ShoppingCart, null),
39992
40288
  label: "Add to Cart",
39993
40289
  onClick: function onClick() {
@@ -40000,7 +40296,7 @@ var Container$P = /*#__PURE__*/styled__default.div.withConfig({
40000
40296
  displayName: "StoreItemDetails__Container",
40001
40297
  componentId: "sc-k3ho5z-0"
40002
40298
  })(["display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;height:100%;"]);
40003
- var Header$j = /*#__PURE__*/styled__default.div.withConfig({
40299
+ var Header$k = /*#__PURE__*/styled__default.div.withConfig({
40004
40300
  displayName: "StoreItemDetails__Header",
40005
40301
  componentId: "sc-k3ho5z-1"
40006
40302
  })(["display:flex;align-items:center;gap:1rem;"]);
@@ -40032,7 +40328,7 @@ var ItemPrice$2 = /*#__PURE__*/styled__default.div.withConfig({
40032
40328
  displayName: "StoreItemDetails__ItemPrice",
40033
40329
  componentId: "sc-k3ho5z-8"
40034
40330
  })(["font-family:'Press Start 2P',cursive;font-size:1rem;color:#fef08a;"]);
40035
- var Description$9 = /*#__PURE__*/styled__default.p.withConfig({
40331
+ var Description$a = /*#__PURE__*/styled__default.p.withConfig({
40036
40332
  displayName: "StoreItemDetails__Description",
40037
40333
  componentId: "sc-k3ho5z-9"
40038
40334
  })(["margin:0;font-family:'Press Start 2P',cursive;font-size:0.875rem;line-height:1.6;color:#ffffff;"]);
@@ -40725,7 +41021,7 @@ var TradingMenu = function TradingMenu(_ref) {
40725
41021
  width: "500px",
40726
41022
  cancelDrag: "#TraderContainer",
40727
41023
  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", {
41024
+ }, 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
41025
  className: "golden"
40730
41026
  }), React__default.createElement(ScrollWrapper, {
40731
41027
  id: "TraderContainer"
@@ -40742,7 +41038,7 @@ var TradingMenu = function TradingMenu(_ref) {
40742
41038
  scale: scale,
40743
41039
  isBuy: isBuy()
40744
41040
  });
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, {
41041
+ })), 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
41042
  buttonType: exports.ButtonTypes.RPGUIButton,
40747
41043
  disabled: !hasGoldForSale(),
40748
41044
  onPointerDown: function onPointerDown() {
@@ -40757,7 +41053,7 @@ var Container$R = /*#__PURE__*/styled__default.div.withConfig({
40757
41053
  displayName: "TradingMenu__Container",
40758
41054
  componentId: "sc-1wjsz1l-0"
40759
41055
  })(["width:100%;"]);
40760
- var Title$q = /*#__PURE__*/styled__default.h1.withConfig({
41056
+ var Title$r = /*#__PURE__*/styled__default.h1.withConfig({
40761
41057
  displayName: "TradingMenu__Title",
40762
41058
  componentId: "sc-1wjsz1l-1"
40763
41059
  })(["font-size:0.7rem !important;color:yellow !important;text-align:center;"]);
@@ -40777,7 +41073,7 @@ var AlertText = /*#__PURE__*/styled__default.p.withConfig({
40777
41073
  displayName: "TradingMenu__AlertText",
40778
41074
  componentId: "sc-1wjsz1l-5"
40779
41075
  })(["color:red !important;text-align:center;margin:0.3rem 0;font-size:0.5rem;"]);
40780
- var ButtonWrapper$4 = /*#__PURE__*/styled__default.div.withConfig({
41076
+ var ButtonWrapper$5 = /*#__PURE__*/styled__default.div.withConfig({
40781
41077
  displayName: "TradingMenu__ButtonWrapper",
40782
41078
  componentId: "sc-1wjsz1l-6"
40783
41079
  })(["display:flex;justify-content:space-around;width:100%;margin-top:1rem;"]);
@@ -41035,6 +41331,7 @@ exports.PurchaseSuccess = PurchaseSuccess;
41035
41331
  exports.QuantitySelectorModal = QuantitySelectorModal;
41036
41332
  exports.QuestInfo = QuestInfo;
41037
41333
  exports.QuestList = QuestList;
41334
+ exports.QuestListRow = QuestListRow;
41038
41335
  exports.QuestionDialog = QuestionDialog;
41039
41336
  exports.RPGUIContainer = RPGUIContainer;
41040
41337
  exports.RPGUIRoot = RPGUIRoot;