@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
@@ -2,7 +2,7 @@ import React, { useState, useEffect, Component, useRef, useCallback, useMemo, me
2
2
  import styled, { css, createGlobalStyle, keyframes } from 'styled-components';
3
3
  import { BeatLoader } from 'react-spinners';
4
4
  import { v4 } from 'uuid';
5
- import { GRID_WIDTH, GRID_HEIGHT, ShortcutType, getItemTextureKeyPath, ItemContainerType, ItemType, DepotSocketEvents, ItemSocketEvents, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemQualityLevel, ItemRarities, ItemSubType, isMobile, TaskType, TaskStatus, isMobileOrTablet, RewardType, DC_TO_GOLD_SWAP_RATE, ItemSlotType, NPCSubtype, EntityAttackType, NPCAlignment, VideoGuideCategory, VideoGuideLanguage, MarketplaceBuyOrderStatus, MarketplaceAcceptedCurrency, formatDCAmount, goldToDC, MarketplaceTransactionType, CharacterClass as CharacterClass$2, QuestStatus, getLevelFromXP, getSkillConstants, getLevelFromSPTiered, getXPForLevel, getSPForLevelTiered, MetadataType, PurchaseType, PaymentCurrency, UserAccountTypes, PeriodOfDay } from '@rpg-engine/shared';
5
+ import { GRID_WIDTH, GRID_HEIGHT, ShortcutType, getItemTextureKeyPath, ItemContainerType, ItemType, DepotSocketEvents, ItemSocketEvents, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemQualityLevel, ItemRarities, ItemSubType, isMobile, TaskType, TaskStatus, isMobileOrTablet, RewardType, DC_TO_GOLD_SWAP_RATE, ItemSlotType, NPCSubtype, EntityAttackType, NPCAlignment, VideoGuideCategory, VideoGuideLanguage, MarketplaceBuyOrderStatus, MarketplaceAcceptedCurrency, formatDCAmount, goldToDC, MarketplaceTransactionType, CharacterClass as CharacterClass$2, QuestType, QuestStatus, getLevelFromXP, getSkillConstants, getLevelFromSPTiered, getXPForLevel, getSPForLevelTiered, MetadataType, PurchaseType, PaymentCurrency, UserAccountTypes, PeriodOfDay } from '@rpg-engine/shared';
6
6
  export { MarketplaceAcceptedCurrency } from '@rpg-engine/shared';
7
7
  import dayjs from 'dayjs';
8
8
  import { ErrorBoundary as ErrorBoundary$1 } from 'react-error-boundary';
@@ -15639,21 +15639,239 @@ var Container$E = /*#__PURE__*/styled.div.withConfig({
15639
15639
 
15640
15640
  var img$7 = 'data:image/png;base64,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';
15641
15641
 
15642
+ var QuestObjectivesSection = function QuestObjectivesSection(_ref) {
15643
+ var _ref$objectives = _ref.objectives,
15644
+ objectives = _ref$objectives === void 0 ? [] : _ref$objectives,
15645
+ entitiesAtlasJSON = _ref.entitiesAtlasJSON,
15646
+ entitiesAtlasIMG = _ref.entitiesAtlasIMG;
15647
+ if (!objectives.length) {
15648
+ return null;
15649
+ }
15650
+ return React.createElement(Section$4, null, React.createElement(SectionTitle$4, null, "Objectives"), objectives.map(function (objective, index) {
15651
+ if (objective.type === QuestType.Kill) {
15652
+ var progress = (objective.killCount || 0) + "/" + objective.killCountTarget;
15653
+ var fill = Math.min((objective.killCount || 0) / Math.max(objective.killCountTarget || 1, 1), 1) * 100;
15654
+ return React.createElement(ObjectiveBlock, {
15655
+ key: objective.id || index
15656
+ }, (objective.creatures || objective.creatureKeys || []).map(function (creature) {
15657
+ var data = typeof creature === 'string' ? {
15658
+ key: creature,
15659
+ name: creature,
15660
+ texturePath: ''
15661
+ } : creature;
15662
+ return React.createElement(ObjectiveRow, {
15663
+ key: data.key
15664
+ }, entitiesAtlasJSON && entitiesAtlasIMG && data.texturePath && React.createElement(SpriteFromAtlas, {
15665
+ atlasJSON: entitiesAtlasJSON,
15666
+ atlasIMG: entitiesAtlasIMG,
15667
+ spriteKey: data.texturePath,
15668
+ width: 32,
15669
+ height: 32,
15670
+ imgScale: 1,
15671
+ centered: true
15672
+ }), React.createElement(ObjectiveText, null, data.name || data.key), React.createElement(ProgressText$1, null, progress));
15673
+ }), React.createElement(ProgressBar$2, null, React.createElement(ProgressFill$1, {
15674
+ style: {
15675
+ width: fill + "%"
15676
+ }
15677
+ })));
15678
+ }
15679
+ if (objective.type === QuestType.Interaction) {
15680
+ return React.createElement(ObjectiveRow, {
15681
+ key: objective.id || index
15682
+ }, React.createElement(ObjectiveText, null, "Talk to ", objective.targetNPCkey || 'the quest contact'));
15683
+ }
15684
+ return null;
15685
+ }));
15686
+ };
15687
+ var Section$4 = /*#__PURE__*/styled.section.withConfig({
15688
+ displayName: "QuestObjectivesSection__Section",
15689
+ componentId: "sc-yzy6q8-0"
15690
+ })(["margin:10px 18px;"]);
15691
+ var SectionTitle$4 = /*#__PURE__*/styled.h2.withConfig({
15692
+ displayName: "QuestObjectivesSection__SectionTitle",
15693
+ componentId: "sc-yzy6q8-1"
15694
+ })(["color:", ";font-size:0.9rem;margin:0 0 8px;"], uiColors.yellow);
15695
+ var ObjectiveBlock = /*#__PURE__*/styled.div.withConfig({
15696
+ displayName: "QuestObjectivesSection__ObjectiveBlock",
15697
+ componentId: "sc-yzy6q8-2"
15698
+ })(["margin-bottom:8px;"]);
15699
+ var ObjectiveRow = /*#__PURE__*/styled.div.withConfig({
15700
+ displayName: "QuestObjectivesSection__ObjectiveRow",
15701
+ componentId: "sc-yzy6q8-3"
15702
+ })(["color:", ";display:flex;align-items:center;gap:8px;min-height:28px;font-size:0.75rem;"], uiColors.white);
15703
+ var ObjectiveText = /*#__PURE__*/styled.span.withConfig({
15704
+ displayName: "QuestObjectivesSection__ObjectiveText",
15705
+ componentId: "sc-yzy6q8-4"
15706
+ })(["flex:1;"]);
15707
+ var ProgressText$1 = /*#__PURE__*/styled.span.withConfig({
15708
+ displayName: "QuestObjectivesSection__ProgressText",
15709
+ componentId: "sc-yzy6q8-5"
15710
+ })(["color:", ";"], uiColors.yellow);
15711
+ var ProgressBar$2 = /*#__PURE__*/styled.div.withConfig({
15712
+ displayName: "QuestObjectivesSection__ProgressBar",
15713
+ componentId: "sc-yzy6q8-6"
15714
+ })(["height:6px;background:", ";border-radius:3px;overflow:hidden;margin-top:4px;"], uiColors.gray);
15715
+ var ProgressFill$1 = /*#__PURE__*/styled.div.withConfig({
15716
+ displayName: "QuestObjectivesSection__ProgressFill",
15717
+ componentId: "sc-yzy6q8-7"
15718
+ })(["height:100%;background:", ";"], uiColors.lightGreen);
15719
+
15720
+ var QuestRequirementsSection = function QuestRequirementsSection(_ref) {
15721
+ var _ref$objectives = _ref.objectives,
15722
+ objectives = _ref$objectives === void 0 ? [] : _ref$objectives,
15723
+ itemsAtlasJSON = _ref.itemsAtlasJSON,
15724
+ itemsAtlasIMG = _ref.itemsAtlasIMG;
15725
+ var items = objectives.filter(function (objective) {
15726
+ return objective.type === QuestType.Interaction;
15727
+ }).flatMap(function (objective) {
15728
+ return objective.items || [];
15729
+ });
15730
+ if (!items.length) {
15731
+ return null;
15732
+ }
15733
+ return React.createElement(Section$5, null, React.createElement(SectionTitle$5, null, "Requirements"), items.map(function (item) {
15734
+ var hasQty = item.playerHasQty || 0;
15735
+ var isMet = hasQty >= item.qty;
15736
+ return React.createElement(RequirementRow, {
15737
+ key: item.itemKey,
15738
+ isMet: isMet
15739
+ }, itemsAtlasJSON && itemsAtlasIMG && item.texturePath && React.createElement(ItemInfoWrapper, {
15740
+ item: _extends({}, item, {
15741
+ key: item.itemKey,
15742
+ stackQty: item.qty
15743
+ }),
15744
+ atlasJSON: itemsAtlasJSON,
15745
+ atlasIMG: itemsAtlasIMG
15746
+ }, React.createElement(SpriteFromAtlas, {
15747
+ atlasJSON: itemsAtlasJSON,
15748
+ atlasIMG: itemsAtlasIMG,
15749
+ spriteKey: item.texturePath,
15750
+ width: 32,
15751
+ height: 32,
15752
+ imgScale: 1.5,
15753
+ centered: true
15754
+ })), React.createElement("span", null, hasQty, "/", item.qty, " ", item.name || item.itemKey));
15755
+ }));
15756
+ };
15757
+ var Section$5 = /*#__PURE__*/styled.section.withConfig({
15758
+ displayName: "QuestRequirementsSection__Section",
15759
+ componentId: "sc-cbw9sz-0"
15760
+ })(["margin:10px 18px;"]);
15761
+ var SectionTitle$5 = /*#__PURE__*/styled.h2.withConfig({
15762
+ displayName: "QuestRequirementsSection__SectionTitle",
15763
+ componentId: "sc-cbw9sz-1"
15764
+ })(["color:", ";font-size:0.9rem;margin:0 0 8px;"], uiColors.yellow);
15765
+ var RequirementRow = /*#__PURE__*/styled.div.withConfig({
15766
+ displayName: "QuestRequirementsSection__RequirementRow",
15767
+ componentId: "sc-cbw9sz-2"
15768
+ })(["color:", ";display:flex;align-items:center;gap:8px;min-height:34px;font-size:0.75rem;"], function (props) {
15769
+ return props.isMet ? uiColors.lightGreen : uiColors.red;
15770
+ });
15771
+
15772
+ var QuestRewardsSection = function QuestRewardsSection(_ref) {
15773
+ var _ref$rewards = _ref.rewards,
15774
+ rewards = _ref$rewards === void 0 ? [] : _ref$rewards,
15775
+ itemsAtlasJSON = _ref.itemsAtlasJSON,
15776
+ itemsAtlasIMG = _ref.itemsAtlasIMG,
15777
+ iconsAtlasJSON = _ref.iconsAtlasJSON,
15778
+ iconsAtlasIMG = _ref.iconsAtlasIMG;
15779
+ var items = rewards.flatMap(function (reward) {
15780
+ return reward.items || [];
15781
+ });
15782
+ var spells = rewards.flatMap(function (reward) {
15783
+ return reward.spells || [];
15784
+ });
15785
+ if (!items.length && !spells.length) {
15786
+ return null;
15787
+ }
15788
+ return React.createElement(Section$6, null, React.createElement(SectionTitle$6, null, "Rewards"), React.createElement(RewardGrid, null, items.map(function (item) {
15789
+ var _item$name;
15790
+ return React.createElement(RewardItem$1, {
15791
+ key: item.key + "-" + item.qty
15792
+ }, itemsAtlasJSON && itemsAtlasIMG && item.texturePath ? React.createElement(ItemInfoWrapper, {
15793
+ item: _extends({}, item, {
15794
+ key: item.key,
15795
+ stackQty: item.qty
15796
+ }),
15797
+ atlasJSON: itemsAtlasJSON,
15798
+ atlasIMG: itemsAtlasIMG
15799
+ }, React.createElement(SpriteFromAtlas, {
15800
+ atlasJSON: itemsAtlasJSON,
15801
+ atlasIMG: itemsAtlasIMG,
15802
+ spriteKey: item.texturePath,
15803
+ width: 32,
15804
+ height: 32,
15805
+ imgScale: 1.5,
15806
+ centered: true
15807
+ })) : React.createElement(FallbackIcon, null, ((_item$name = item.name) == null ? void 0 : _item$name[0]) || '?'), item.qty > 1 && React.createElement(QtyBadge, null, "x", item.qty), React.createElement(RewardName, null, item.name || item.key));
15808
+ }), spells.map(function (spell) {
15809
+ var _spell$name;
15810
+ return React.createElement(RewardItem$1, {
15811
+ key: spell.key,
15812
+ title: spell.name || spell.key
15813
+ }, iconsAtlasJSON && iconsAtlasIMG && spell.texturePath ? React.createElement(SpriteFromAtlas, {
15814
+ atlasJSON: iconsAtlasJSON,
15815
+ atlasIMG: iconsAtlasIMG,
15816
+ spriteKey: spell.texturePath,
15817
+ width: 32,
15818
+ height: 32,
15819
+ imgScale: 1.5,
15820
+ centered: true
15821
+ }) : React.createElement(FallbackIcon, null, ((_spell$name = spell.name) == null ? void 0 : _spell$name[0]) || '?'), React.createElement(RewardName, null, spell.name || spell.key));
15822
+ })));
15823
+ };
15824
+ var Section$6 = /*#__PURE__*/styled.section.withConfig({
15825
+ displayName: "QuestRewardsSection__Section",
15826
+ componentId: "sc-1eth6wx-0"
15827
+ })(["margin:10px 18px;"]);
15828
+ var SectionTitle$6 = /*#__PURE__*/styled.h2.withConfig({
15829
+ displayName: "QuestRewardsSection__SectionTitle",
15830
+ componentId: "sc-1eth6wx-1"
15831
+ })(["color:", ";font-size:0.9rem;margin:0 0 8px;"], uiColors.yellow);
15832
+ var RewardGrid = /*#__PURE__*/styled.div.withConfig({
15833
+ displayName: "QuestRewardsSection__RewardGrid",
15834
+ componentId: "sc-1eth6wx-2"
15835
+ })(["display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;"]);
15836
+ var RewardItem$1 = /*#__PURE__*/styled.div.withConfig({
15837
+ displayName: "QuestRewardsSection__RewardItem",
15838
+ componentId: "sc-1eth6wx-3"
15839
+ })(["position:relative;min-height:58px;color:", ";display:flex;flex-direction:column;align-items:center;gap:4px;font-size:0.65rem;"], uiColors.white);
15840
+ var FallbackIcon = /*#__PURE__*/styled.div.withConfig({
15841
+ displayName: "QuestRewardsSection__FallbackIcon",
15842
+ componentId: "sc-1eth6wx-4"
15843
+ })(["width:32px;height:32px;border:1px solid ", ";display:flex;align-items:center;justify-content:center;color:", ";"], uiColors.gray, uiColors.yellow);
15844
+ var QtyBadge = /*#__PURE__*/styled.span.withConfig({
15845
+ displayName: "QuestRewardsSection__QtyBadge",
15846
+ componentId: "sc-1eth6wx-5"
15847
+ })(["position:absolute;top:0;right:18px;background:", ";color:", ";border:1px solid ", ";padding:1px 4px;"], uiColors.darkGray, uiColors.yellow, uiColors.gray);
15848
+ var RewardName = /*#__PURE__*/styled.span.withConfig({
15849
+ displayName: "QuestRewardsSection__RewardName",
15850
+ componentId: "sc-1eth6wx-6"
15851
+ })(["text-align:center;"]);
15852
+
15642
15853
  var QuestInfo = function QuestInfo(_ref) {
15643
15854
  var quests = _ref.quests,
15644
15855
  onClose = _ref.onClose,
15645
15856
  buttons = _ref.buttons,
15646
15857
  onChangeQuest = _ref.onChangeQuest,
15647
- scale = _ref.scale;
15858
+ scale = _ref.scale,
15859
+ itemsAtlasJSON = _ref.itemsAtlasJSON,
15860
+ itemsAtlasIMG = _ref.itemsAtlasIMG,
15861
+ entitiesAtlasJSON = _ref.entitiesAtlasJSON,
15862
+ entitiesAtlasIMG = _ref.entitiesAtlasIMG,
15863
+ iconsAtlasJSON = _ref.iconsAtlasJSON,
15864
+ iconsAtlasIMG = _ref.iconsAtlasIMG;
15648
15865
  var _useState = useState(0),
15649
15866
  currentIndex = _useState[0],
15650
15867
  setCurrentIndex = _useState[1];
15651
15868
  var questsLength = quests.length - 1;
15869
+ var currentQuest = quests[currentIndex] || quests[0];
15652
15870
  useEffect(function () {
15653
- if (onChangeQuest) {
15654
- onChangeQuest(currentIndex, quests[currentIndex]._id);
15871
+ if (onChangeQuest && currentQuest) {
15872
+ onChangeQuest(currentIndex, currentQuest._id);
15655
15873
  }
15656
- }, [currentIndex]);
15874
+ }, [currentIndex, currentQuest]);
15657
15875
  var onLeftClick = function onLeftClick() {
15658
15876
  if (currentIndex === 0) setCurrentIndex(questsLength);else setCurrentIndex(function (index) {
15659
15877
  return index - 1;
@@ -15672,50 +15890,47 @@ var QuestInfo = function QuestInfo(_ref) {
15672
15890
  width: "730px",
15673
15891
  cancelDrag: ".equipment-container-body .arrow-selector",
15674
15892
  scale: scale
15675
- }, quests.length >= 2 ? React.createElement(QuestsContainer, null, currentIndex !== 0 && React.createElement(SelectArrow, {
15893
+ }, currentQuest && React.createElement(QuestsContainer, null, quests.length >= 2 && currentIndex !== 0 && React.createElement(SelectArrow, {
15676
15894
  direction: "left",
15677
15895
  onPointerDown: onLeftClick
15678
- }), currentIndex !== quests.length - 1 && React.createElement(SelectArrow, {
15896
+ }), quests.length >= 2 && currentIndex !== quests.length - 1 && React.createElement(SelectArrow, {
15679
15897
  direction: "right",
15680
15898
  onPointerDown: onRightClick
15681
15899
  }), React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
15682
15900
  className: "drag-handler"
15683
15901
  }, React.createElement(Title$h, null, React.createElement(Thumbnail, {
15684
- src: quests[currentIndex].thumbnail || img$7
15685
- }), quests[currentIndex].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
15686
- className: "golden"
15687
- }))), React.createElement(Content$3, null, React.createElement("p", null, quests[currentIndex].description)), React.createElement(QuestColumn, {
15688
- className: "dark-background",
15689
- justifyContent: "flex-end"
15690
- }, buttons && buttons.map(function (button, index) {
15691
- return React.createElement(Button, {
15692
- key: index,
15693
- onPointerDown: function onPointerDown() {
15694
- return button.onClick(quests[currentIndex]._id, quests[currentIndex].npcId);
15695
- },
15696
- disabled: button.disabled,
15697
- buttonType: ButtonTypes.RPGUIButton,
15698
- id: "button-" + index
15699
- }, button.title);
15700
- })))) : React.createElement(QuestsContainer, null, React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
15701
- className: "drag-handler"
15702
- }, React.createElement(Title$h, null, React.createElement(Thumbnail, {
15703
- src: quests[0].thumbnail || img$7
15704
- }), quests[0].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
15902
+ src: currentQuest.thumbnail || img$7
15903
+ }), currentQuest.title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
15705
15904
  className: "golden"
15706
- }))), React.createElement(Content$3, null, React.createElement("p", null, quests[0].description)), React.createElement(QuestColumn, {
15905
+ }))), React.createElement(Content$3, null, React.createElement("p", null, currentQuest.description)), React.createElement(QuestObjectivesSection, {
15906
+ objectives: currentQuest.objectives,
15907
+ entitiesAtlasJSON: entitiesAtlasJSON,
15908
+ entitiesAtlasIMG: entitiesAtlasIMG
15909
+ }), React.createElement(QuestRequirementsSection, {
15910
+ objectives: currentQuest.objectives,
15911
+ itemsAtlasJSON: itemsAtlasJSON,
15912
+ itemsAtlasIMG: itemsAtlasIMG
15913
+ }), React.createElement(QuestRewardsSection, {
15914
+ rewards: currentQuest.rewards,
15915
+ itemsAtlasJSON: itemsAtlasJSON,
15916
+ itemsAtlasIMG: itemsAtlasIMG,
15917
+ iconsAtlasJSON: iconsAtlasJSON,
15918
+ iconsAtlasIMG: iconsAtlasIMG
15919
+ }), React.createElement(QuestColumn, {
15707
15920
  className: "dark-background",
15708
15921
  justifyContent: "flex-end"
15709
15922
  }, buttons && buttons.map(function (button, index) {
15710
- return React.createElement(Button, {
15923
+ return React.createElement(ButtonWrapper$3, {
15711
15924
  key: index,
15925
+ title: button.disabled ? button.disabledReason : undefined
15926
+ }, React.createElement(Button, {
15712
15927
  onPointerDown: function onPointerDown() {
15713
- return button.onClick(quests[0]._id, quests[0].npcId);
15928
+ return button.onClick(currentQuest._id, currentQuest.npcId);
15714
15929
  },
15715
15930
  disabled: button.disabled,
15716
15931
  buttonType: ButtonTypes.RPGUIButton,
15717
15932
  id: "button-" + index
15718
- }, button.title);
15933
+ }, button.title));
15719
15934
  })))));
15720
15935
  };
15721
15936
  var QuestDraggableContainer = /*#__PURE__*/styled(DraggableContainer).withConfig({
@@ -15742,70 +15957,74 @@ var QuestColumn = /*#__PURE__*/styled(Column).withConfig({
15742
15957
  displayName: "QuestInfo__QuestColumn",
15743
15958
  componentId: "sc-1wccpiy-5"
15744
15959
  })(["padding-top:5px;margin-bottom:20px;display:flex;justify-content:space-evenly;"]);
15960
+ var ButtonWrapper$3 = /*#__PURE__*/styled.div.withConfig({
15961
+ displayName: "QuestInfo__ButtonWrapper",
15962
+ componentId: "sc-1wccpiy-6"
15963
+ })(["display:inline-flex;"]);
15745
15964
  var TitleContainer$1 = /*#__PURE__*/styled.div.withConfig({
15746
15965
  displayName: "QuestInfo__TitleContainer",
15747
- componentId: "sc-1wccpiy-6"
15966
+ componentId: "sc-1wccpiy-7"
15748
15967
  })(["width:100%;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;margin-top:1rem;"]);
15749
15968
  var Title$h = /*#__PURE__*/styled.h1.withConfig({
15750
15969
  displayName: "QuestInfo__Title",
15751
- componentId: "sc-1wccpiy-7"
15970
+ componentId: "sc-1wccpiy-8"
15752
15971
  })(["color:white;z-index:22;font-size:", " !important;color:", " !important;"], uiFonts.size.medium, uiColors.yellow);
15753
15972
  var Thumbnail = /*#__PURE__*/styled.img.withConfig({
15754
15973
  displayName: "QuestInfo__Thumbnail",
15755
- componentId: "sc-1wccpiy-8"
15974
+ componentId: "sc-1wccpiy-9"
15756
15975
  })(["color:white;z-index:22;width:32px * 1.5;margin-right:0.5rem;position:relative;top:-4px;"]);
15757
15976
 
15758
- var QuestList = function QuestList(_ref) {
15759
- var quests = _ref.quests,
15760
- styles = _ref.styles;
15761
- return React.createElement(QuestListContainer, {
15762
- style: styles == null ? void 0 : styles.container
15763
- }, quests && quests.length > 0 ? quests.map(function (quest, i) {
15764
- var _formatQuestStatus;
15765
- return React.createElement(QuestCard, {
15766
- key: i,
15767
- style: styles == null ? void 0 : styles.card
15768
- }, React.createElement(QuestItem, null, React.createElement(Label$6, {
15769
- style: styles == null ? void 0 : styles.label
15770
- }, "Title:"), React.createElement(Value$2, {
15771
- style: styles == null ? void 0 : styles.value
15772
- }, formatQuestText(quest.title))), React.createElement(QuestItem, null, React.createElement(Label$6, {
15773
- style: styles == null ? void 0 : styles.label
15774
- }, "Status:"), React.createElement(Value$2, {
15775
- style: _extends({}, styles == null ? void 0 : styles.value, {
15776
- color: getQuestStatusColor(quest.status)
15777
- })
15778
- }, (_formatQuestStatus = formatQuestStatus(quest.status)) != null ? _formatQuestStatus : 'Unknown')), React.createElement(QuestItem, null, React.createElement(Label$6, {
15779
- style: styles == null ? void 0 : styles.label
15780
- }, "Description:"), React.createElement(Value$2, {
15781
- style: styles == null ? void 0 : styles.value
15782
- }, quest.description)));
15783
- }) : React.createElement(NoQuestContainer, null, React.createElement("p", null, "There are no ongoing quests")));
15977
+ var getProgressText = function getProgressText(quest) {
15978
+ var _objective$items;
15979
+ var objective = (quest.objectives || [])[0];
15980
+ if (!objective) {
15981
+ return null;
15982
+ }
15983
+ if (objective.type === QuestType.Kill) {
15984
+ return (objective.killCount || 0) + "/" + objective.killCountTarget;
15985
+ }
15986
+ if (objective.type === QuestType.Interaction && (_objective$items = objective.items) != null && _objective$items.length) {
15987
+ var item = objective.items[0];
15988
+ return "Bring " + (item.playerHasQty || 0) + "/" + item.qty;
15989
+ }
15990
+ return objective.type === QuestType.Interaction && objective.targetNPCkey ? 'Talk' : null;
15991
+ };
15992
+ var QuestListRow = function QuestListRow(_ref) {
15993
+ var quest = _ref.quest,
15994
+ compact = _ref.compact,
15995
+ itemsAtlasJSON = _ref.itemsAtlasJSON,
15996
+ itemsAtlasIMG = _ref.itemsAtlasIMG;
15997
+ var rewardItems = (quest.rewards || []).flatMap(function (reward) {
15998
+ return reward.items || [];
15999
+ });
16000
+ var visibleRewards = rewardItems.slice(0, 6);
16001
+ var overflowCount = Math.max(rewardItems.length - visibleRewards.length, 0);
16002
+ var progressText = getProgressText(quest);
16003
+ return React.createElement(QuestCard, null, React.createElement(Header$d, null, React.createElement(Title$i, null, formatQuestText(quest.title)), React.createElement(Status, {
16004
+ style: {
16005
+ color: getQuestStatusColor(quest.status)
16006
+ }
16007
+ }, formatQuestStatus(quest.status) || 'Unknown')), !compact && React.createElement(React.Fragment, null, React.createElement(Description$5, null, quest.description), React.createElement(MetaRow$2, null, quest.status === QuestStatus.Completed ? 'Completed' : progressText), !!visibleRewards.length && React.createElement(RewardStrip, null, visibleRewards.map(function (item) {
16008
+ var _item$name;
16009
+ return React.createElement(RewardIcon$1, {
16010
+ key: item.key + "-" + item.qty
16011
+ }, itemsAtlasJSON && itemsAtlasIMG && item.texturePath ? React.createElement(ItemInfoWrapper, {
16012
+ item: _extends({}, item, {
16013
+ stackQty: item.qty
16014
+ }),
16015
+ atlasJSON: itemsAtlasJSON,
16016
+ atlasIMG: itemsAtlasIMG
16017
+ }, React.createElement(SpriteFromAtlas, {
16018
+ atlasJSON: itemsAtlasJSON,
16019
+ atlasIMG: itemsAtlasIMG,
16020
+ spriteKey: item.texturePath,
16021
+ width: 24,
16022
+ height: 24,
16023
+ imgScale: 1,
16024
+ centered: true
16025
+ })) : React.createElement(FallbackIcon$1, null, ((_item$name = item.name) == null ? void 0 : _item$name[0]) || '?'));
16026
+ }), overflowCount > 0 && React.createElement(MoreRewards, null, "+", overflowCount, " more"))));
15784
16027
  };
15785
- var QuestListContainer = /*#__PURE__*/styled.div.withConfig({
15786
- displayName: "QuestList__QuestListContainer",
15787
- componentId: "sc-1c1y8sp-0"
15788
- })(["max-height:400px;padding:10px;border-radius:10px;font-size:0.7rem;"]);
15789
- var QuestCard = /*#__PURE__*/styled.div.withConfig({
15790
- displayName: "QuestList__QuestCard",
15791
- componentId: "sc-1c1y8sp-1"
15792
- })(["background-color:", ";padding:15px;margin-bottom:10px;border-radius:10px;border:1px solid ", ";display:flex;flex-direction:column;"], uiColors.darkGray, uiColors.gray);
15793
- var QuestItem = /*#__PURE__*/styled.div.withConfig({
15794
- displayName: "QuestList__QuestItem",
15795
- componentId: "sc-1c1y8sp-2"
15796
- })(["display:flex;margin-bottom:5px;flex-wrap:wrap;&:last-child{margin-bottom:0;}"]);
15797
- var Label$6 = /*#__PURE__*/styled.span.withConfig({
15798
- displayName: "QuestList__Label",
15799
- componentId: "sc-1c1y8sp-3"
15800
- })(["font-weight:bold;color:", " !important;margin-right:10px;"], uiColors.yellow);
15801
- var Value$2 = /*#__PURE__*/styled.span.withConfig({
15802
- displayName: "QuestList__Value",
15803
- componentId: "sc-1c1y8sp-4"
15804
- })(["flex-grow:1;color:", ";word-wrap:break-word;"], uiColors.white);
15805
- var NoQuestContainer = /*#__PURE__*/styled.div.withConfig({
15806
- displayName: "QuestList__NoQuestContainer",
15807
- componentId: "sc-1c1y8sp-5"
15808
- })(["text-align:center;p{margin-top:5px;color:", ";}"], uiColors.lightGray);
15809
16028
  var formatQuestText = function formatQuestText(text) {
15810
16029
  if (!text) return '';
15811
16030
  return text.split('-').map(function (word) {
@@ -15830,6 +16049,73 @@ var formatQuestStatus = function formatQuestStatus(status) {
15830
16049
  return c.toUpperCase();
15831
16050
  });
15832
16051
  };
16052
+ var QuestCard = /*#__PURE__*/styled.div.withConfig({
16053
+ displayName: "QuestListRow__QuestCard",
16054
+ componentId: "sc-s95wf6-0"
16055
+ })(["background-color:", ";padding:12px;margin-bottom:10px;border-radius:8px;border:1px solid ", ";"], uiColors.darkGray, uiColors.gray);
16056
+ var Header$d = /*#__PURE__*/styled.div.withConfig({
16057
+ displayName: "QuestListRow__Header",
16058
+ componentId: "sc-s95wf6-1"
16059
+ })(["display:flex;justify-content:space-between;gap:10px;"]);
16060
+ var Title$i = /*#__PURE__*/styled.span.withConfig({
16061
+ displayName: "QuestListRow__Title",
16062
+ componentId: "sc-s95wf6-2"
16063
+ })(["color:", ";font-weight:bold;"], uiColors.yellow);
16064
+ var Status = /*#__PURE__*/styled.span.withConfig({
16065
+ displayName: "QuestListRow__Status",
16066
+ componentId: "sc-s95wf6-3"
16067
+ })(["white-space:nowrap;"]);
16068
+ var Description$5 = /*#__PURE__*/styled.p.withConfig({
16069
+ displayName: "QuestListRow__Description",
16070
+ componentId: "sc-s95wf6-4"
16071
+ })(["color:", ";margin:8px 0;"], uiColors.white);
16072
+ var MetaRow$2 = /*#__PURE__*/styled.div.withConfig({
16073
+ displayName: "QuestListRow__MetaRow",
16074
+ componentId: "sc-s95wf6-5"
16075
+ })(["color:", ";font-size:0.7rem;margin-bottom:6px;"], uiColors.lightGreen);
16076
+ var RewardStrip = /*#__PURE__*/styled.div.withConfig({
16077
+ displayName: "QuestListRow__RewardStrip",
16078
+ componentId: "sc-s95wf6-6"
16079
+ })(["display:flex;align-items:center;gap:6px;"]);
16080
+ var RewardIcon$1 = /*#__PURE__*/styled.div.withConfig({
16081
+ displayName: "QuestListRow__RewardIcon",
16082
+ componentId: "sc-s95wf6-7"
16083
+ })(["width:24px;height:24px;"]);
16084
+ var FallbackIcon$1 = /*#__PURE__*/styled.div.withConfig({
16085
+ displayName: "QuestListRow__FallbackIcon",
16086
+ componentId: "sc-s95wf6-8"
16087
+ })(["width:24px;height:24px;border:1px solid ", ";color:", ";display:flex;align-items:center;justify-content:center;"], uiColors.gray, uiColors.yellow);
16088
+ var MoreRewards = /*#__PURE__*/styled.span.withConfig({
16089
+ displayName: "QuestListRow__MoreRewards",
16090
+ componentId: "sc-s95wf6-9"
16091
+ })(["color:", ";font-size:0.65rem;"], uiColors.lightGray);
16092
+
16093
+ var QuestList = function QuestList(_ref) {
16094
+ var quests = _ref.quests,
16095
+ compact = _ref.compact,
16096
+ styles = _ref.styles,
16097
+ itemsAtlasJSON = _ref.itemsAtlasJSON,
16098
+ itemsAtlasIMG = _ref.itemsAtlasIMG;
16099
+ return React.createElement(QuestListContainer, {
16100
+ style: styles == null ? void 0 : styles.container
16101
+ }, quests && quests.length > 0 ? quests.map(function (quest, i) {
16102
+ return React.createElement(QuestListRow, {
16103
+ key: quest._id || i,
16104
+ quest: quest,
16105
+ compact: compact,
16106
+ itemsAtlasJSON: itemsAtlasJSON,
16107
+ itemsAtlasIMG: itemsAtlasIMG
16108
+ });
16109
+ }) : React.createElement(NoQuestContainer, null, React.createElement("p", null, "There are no ongoing quests")));
16110
+ };
16111
+ var QuestListContainer = /*#__PURE__*/styled.div.withConfig({
16112
+ displayName: "QuestList__QuestListContainer",
16113
+ componentId: "sc-1c1y8sp-0"
16114
+ })(["max-height:400px;padding:10px;border-radius:10px;font-size:0.7rem;"]);
16115
+ var NoQuestContainer = /*#__PURE__*/styled.div.withConfig({
16116
+ displayName: "QuestList__NoQuestContainer",
16117
+ componentId: "sc-1c1y8sp-1"
16118
+ })(["text-align:center;p{margin-top:5px;color:", ";}"], uiColors.lightGray);
15833
16119
 
15834
16120
  var InputRadio = function InputRadio(_ref) {
15835
16121
  var name = _ref.name,
@@ -15882,9 +16168,9 @@ var RadioSelectCard = function RadioSelectCard(_ref) {
15882
16168
  onClick: onClick,
15883
16169
  "data-testid": testId,
15884
16170
  type: "button"
15885
- }, icon && React.createElement(IconWrap, null, icon), React.createElement(Body, null, React.createElement(Label$7, {
16171
+ }, icon && React.createElement(IconWrap, null, icon), React.createElement(Body, null, React.createElement(Label$6, {
15886
16172
  "$active": active
15887
- }, label), description && React.createElement(Description$5, null, description)), badge && React.createElement(Badge, {
16173
+ }, label), description && React.createElement(Description$6, null, description)), badge && React.createElement(Badge, {
15888
16174
  "$active": active
15889
16175
  }, badge));
15890
16176
  };
@@ -15916,14 +16202,14 @@ var Body = /*#__PURE__*/styled.div.withConfig({
15916
16202
  displayName: "RadioSelectCard__Body",
15917
16203
  componentId: "sc-12jrcz1-2"
15918
16204
  })(["flex:1 !important;min-width:0 !important;display:flex !important;flex-direction:column !important;gap:0.2rem !important;"]);
15919
- var Label$7 = /*#__PURE__*/styled.span.withConfig({
16205
+ var Label$6 = /*#__PURE__*/styled.span.withConfig({
15920
16206
  displayName: "RadioSelectCard__Label",
15921
16207
  componentId: "sc-12jrcz1-3"
15922
16208
  })(["font-size:0.72rem !important;font-weight:bold !important;color:", " !important;text-transform:uppercase !important;letter-spacing:0.8px !important;line-height:1.2 !important;"], function (_ref7) {
15923
16209
  var $active = _ref7.$active;
15924
16210
  return $active ? '#f59e0b' : 'rgba(255, 255, 255, 0.9)';
15925
16211
  });
15926
- var Description$5 = /*#__PURE__*/styled.span.withConfig({
16212
+ var Description$6 = /*#__PURE__*/styled.span.withConfig({
15927
16213
  displayName: "RadioSelectCard__Description",
15928
16214
  componentId: "sc-12jrcz1-4"
15929
16215
  })(["font-size:0.62rem !important;color:rgba(255,255,255,0.45) !important;line-height:1.4 !important;"]);
@@ -16456,11 +16742,11 @@ var SkillInfoModal = function SkillInfoModal(_ref) {
16456
16742
  onPointerDown: onClose
16457
16743
  }), React.createElement(ModalContainer$7, null, React.createElement(ModalContent$7, {
16458
16744
  onPointerDown: stopPropagation
16459
- }, React.createElement(Header$d, null, React.createElement(Title$i, {
16745
+ }, React.createElement(Header$e, null, React.createElement(Title$j, {
16460
16746
  "$color": info.color
16461
16747
  }, info.name), React.createElement(CloseButton$g, {
16462
16748
  onPointerDown: onClose
16463
- }, React.createElement(FaTimes, null))), React.createElement(Section$4, null, React.createElement(Label$8, null, "What it does"), React.createElement(Text$1, null, info.description)), React.createElement(Section$4, null, React.createElement(Label$8, null, "How to train"), React.createElement(Text$1, null, info.howToTrain)), info.notes && React.createElement(Section$4, null, React.createElement(Label$8, null, "Notes"), React.createElement(Text$1, null, info.notes)))));
16749
+ }, React.createElement(FaTimes, null))), React.createElement(Section$7, null, React.createElement(Label$7, null, "What it does"), React.createElement(Text$1, null, info.description)), React.createElement(Section$7, null, React.createElement(Label$7, null, "How to train"), React.createElement(Text$1, null, info.howToTrain)), info.notes && React.createElement(Section$7, null, React.createElement(Label$7, null, "Notes"), React.createElement(Text$1, null, info.notes)))));
16464
16750
  };
16465
16751
  var Overlay$9 = /*#__PURE__*/styled.div.withConfig({
16466
16752
  displayName: "SkillInfoModal__Overlay",
@@ -16474,11 +16760,11 @@ var ModalContent$7 = /*#__PURE__*/styled.div.withConfig({
16474
16760
  displayName: "SkillInfoModal__ModalContent",
16475
16761
  componentId: "sc-pqkzdj-2"
16476
16762
  })(["background:#1a1a2e;border:2px solid #f59e0b;border-radius:8px;padding:20px 24px 24px;width:340px;max-width:90%;max-height:80dvh;overflow-y:auto;display:flex;flex-direction:column;gap:14px;pointer-events:auto;animation:scaleIn 0.15s ease-out;@keyframes scaleIn{from{transform:scale(0.85);opacity:0;}to{transform:scale(1);opacity:1;}}"]);
16477
- var Header$d = /*#__PURE__*/styled.div.withConfig({
16763
+ var Header$e = /*#__PURE__*/styled.div.withConfig({
16478
16764
  displayName: "SkillInfoModal__Header",
16479
16765
  componentId: "sc-pqkzdj-3"
16480
16766
  })(["display:flex;align-items:center;gap:8px;"]);
16481
- var Title$i = /*#__PURE__*/styled.h3.withConfig({
16767
+ var Title$j = /*#__PURE__*/styled.h3.withConfig({
16482
16768
  displayName: "SkillInfoModal__Title",
16483
16769
  componentId: "sc-pqkzdj-4"
16484
16770
  })(["margin:0;flex:1;font-family:'Press Start 2P',cursive;font-size:0.65rem;color:", ";"], function (_ref2) {
@@ -16489,11 +16775,11 @@ var CloseButton$g = /*#__PURE__*/styled.button.withConfig({
16489
16775
  displayName: "SkillInfoModal__CloseButton",
16490
16776
  componentId: "sc-pqkzdj-5"
16491
16777
  })(["background:none;border:none;color:rgba(255,255,255,0.6);cursor:pointer;font-size:1rem;padding:4px;display:flex;align-items:center;pointer-events:auto;&:hover{color:#ffffff;}"]);
16492
- var Section$4 = /*#__PURE__*/styled.div.withConfig({
16778
+ var Section$7 = /*#__PURE__*/styled.div.withConfig({
16493
16779
  displayName: "SkillInfoModal__Section",
16494
16780
  componentId: "sc-pqkzdj-6"
16495
16781
  })(["display:flex;flex-direction:column;gap:6px;"]);
16496
- var Label$8 = /*#__PURE__*/styled.span.withConfig({
16782
+ var Label$7 = /*#__PURE__*/styled.span.withConfig({
16497
16783
  displayName: "SkillInfoModal__Label",
16498
16784
  componentId: "sc-pqkzdj-7"
16499
16785
  })(["font-size:0.5rem;font-weight:bold;text-transform:uppercase;letter-spacing:0.05em;color:rgba(255,255,255,0.45);"]);
@@ -16806,7 +17092,7 @@ var SpellInfo$1 = function SpellInfo(_ref) {
16806
17092
  castingType = spell.castingType,
16807
17093
  cooldown = spell.cooldown,
16808
17094
  maxDistanceGrid = spell.maxDistanceGrid;
16809
- return React.createElement(Container$G, null, React.createElement(Header$e, null, React.createElement("div", null, React.createElement(Title$j, null, name), React.createElement(Type$1, null, magicWords))), React.createElement(Statistic$1, null, React.createElement("div", {
17095
+ return React.createElement(Container$G, null, React.createElement(Header$f, null, React.createElement("div", null, React.createElement(Title$k, null, name), React.createElement(Type$1, null, magicWords))), React.createElement(Statistic$1, null, React.createElement("div", {
16810
17096
  className: "label"
16811
17097
  }, "Casting Type:"), React.createElement("div", {
16812
17098
  className: "value"
@@ -16830,13 +17116,13 @@ var SpellInfo$1 = function SpellInfo(_ref) {
16830
17116
  className: "label"
16831
17117
  }, "Required Item:"), React.createElement("div", {
16832
17118
  className: "value"
16833
- }, requiredItem))), React.createElement(Description$6, null, description));
17119
+ }, requiredItem))), React.createElement(Description$7, null, description));
16834
17120
  };
16835
17121
  var Container$G = /*#__PURE__*/styled.div.withConfig({
16836
17122
  displayName: "SpellInfo__Container",
16837
17123
  componentId: "sc-4hbw3q-0"
16838
17124
  })(["color:white;background-color:#222;border-radius:5px;padding:0.5rem;font-size:", ";border:3px solid ", ";height:max-content;width:30rem;@media (max-width:580px){width:80vw;}"], uiFonts.size.small, uiColors.lightGray);
16839
- var Title$j = /*#__PURE__*/styled.div.withConfig({
17125
+ var Title$k = /*#__PURE__*/styled.div.withConfig({
16840
17126
  displayName: "SpellInfo__Title",
16841
17127
  componentId: "sc-4hbw3q-1"
16842
17128
  })(["font-size:", ";font-weight:bold;margin-bottom:0.5rem;display:flex;align-items:center;margin:0;"], uiFonts.size.medium);
@@ -16844,11 +17130,11 @@ var Type$1 = /*#__PURE__*/styled.div.withConfig({
16844
17130
  displayName: "SpellInfo__Type",
16845
17131
  componentId: "sc-4hbw3q-2"
16846
17132
  })(["font-size:", ";margin-top:0.2rem;color:", ";"], uiFonts.size.small, uiColors.lightGray);
16847
- var Description$6 = /*#__PURE__*/styled.div.withConfig({
17133
+ var Description$7 = /*#__PURE__*/styled.div.withConfig({
16848
17134
  displayName: "SpellInfo__Description",
16849
17135
  componentId: "sc-4hbw3q-3"
16850
17136
  })(["margin-top:1.5rem;font-size:", ";color:", ";font-style:italic;"], uiFonts.size.small, uiColors.lightGray);
16851
- var Header$e = /*#__PURE__*/styled.div.withConfig({
17137
+ var Header$f = /*#__PURE__*/styled.div.withConfig({
16852
17138
  displayName: "SpellInfo__Header",
16853
17139
  componentId: "sc-4hbw3q-4"
16854
17140
  })(["display:flex;align-items:center;justify-content:space-between;margin-bottom:0.5rem;"]);
@@ -17075,9 +17361,9 @@ var Spell = function Spell(_ref) {
17075
17361
  imgScale: IMAGE_SCALE,
17076
17362
  containerStyle: CONTAINER_STYLE,
17077
17363
  centered: true
17078
- })), React.createElement(Info, null, React.createElement(Title$k, null, React.createElement("span", null, name), React.createElement("span", {
17364
+ })), React.createElement(Info, null, React.createElement(Title$l, null, React.createElement("span", null, name), React.createElement("span", {
17079
17365
  className: "spell"
17080
- }, "(", magicWords, ")")), React.createElement(Description$7, null, description)), React.createElement(Divider$2, null), React.createElement(Cost, null, React.createElement("span", null, "Mana cost:"), React.createElement("span", {
17366
+ }, "(", magicWords, ")")), React.createElement(Description$8, null, description)), React.createElement(Divider$2, null), React.createElement(Cost, null, React.createElement("span", null, "Mana cost:"), React.createElement("span", {
17081
17367
  className: "mana"
17082
17368
  }, manaCost))));
17083
17369
  };
@@ -17096,11 +17382,11 @@ var Info = /*#__PURE__*/styled.span.withConfig({
17096
17382
  displayName: "Spell__Info",
17097
17383
  componentId: "sc-j96fa2-2"
17098
17384
  })(["width:0;flex:1;@media (orientation:portrait){display:none;}"]);
17099
- var Title$k = /*#__PURE__*/styled.p.withConfig({
17385
+ var Title$l = /*#__PURE__*/styled.p.withConfig({
17100
17386
  displayName: "Spell__Title",
17101
17387
  componentId: "sc-j96fa2-3"
17102
17388
  })(["display:flex;flex-wrap:wrap;align-items:center;margin-bottom:5px;margin:0;span{font-size:", " !important;font-weight:bold !important;color:", " !important;margin-right:0.5rem;}.spell{font-size:", " !important;font-weight:normal !important;color:", " !important;}"], uiFonts.size.medium, uiColors.yellow, uiFonts.size.small, uiColors.lightGray);
17103
- var Description$7 = /*#__PURE__*/styled.div.withConfig({
17389
+ var Description$8 = /*#__PURE__*/styled.div.withConfig({
17104
17390
  displayName: "Spell__Description",
17105
17391
  componentId: "sc-j96fa2-4"
17106
17392
  })(["font-size:", " !important;line-height:1.1 !important;"], uiFonts.size.small);
@@ -17161,7 +17447,7 @@ var Spellbook = function Spellbook(_ref) {
17161
17447
  height: "inherit",
17162
17448
  cancelDrag: "#spellbook-search, #shortcuts_list, .spell",
17163
17449
  scale: scale
17164
- }, React.createElement(Container$K, null, React.createElement(Title$l, null, "Learned Spells"), React.createElement(ShortcutsSetter, {
17450
+ }, React.createElement(Container$K, null, React.createElement(Title$m, null, "Learned Spells"), React.createElement(ShortcutsSetter, {
17165
17451
  setSettingShortcutIndex: setSettingShortcutIndex,
17166
17452
  settingShortcutIndex: settingShortcutIndex,
17167
17453
  shortcuts: shortcuts,
@@ -17194,7 +17480,7 @@ var Spellbook = function Spellbook(_ref) {
17194
17480
  }, spell)));
17195
17481
  }))));
17196
17482
  };
17197
- var Title$l = /*#__PURE__*/styled.h1.withConfig({
17483
+ var Title$m = /*#__PURE__*/styled.h1.withConfig({
17198
17484
  displayName: "Spellbook__Title",
17199
17485
  componentId: "sc-r02nfq-0"
17200
17486
  })(["font-size:", " !important;margin-bottom:0 !important;"], uiFonts.size.large);
@@ -37614,7 +37900,7 @@ var PurchaseSuccess = function PurchaseSuccess(_ref) {
37614
37900
  key: i,
37615
37901
  "$i": i
37616
37902
  });
37617
- })), React.createElement(Header$f, null, React.createElement(TrophyArea, null, React.createElement(TrophyIcon, null, React.createElement(Sparkle, null))), React.createElement(Title$m, null, "PURCHASE COMPLETE!"), React.createElement(Subtitle$2, null, "Your items are ready")), React.createElement(ItemsList, null, items.map(function (item, i) {
37903
+ })), React.createElement(Header$g, null, React.createElement(TrophyArea, null, React.createElement(TrophyIcon, null, React.createElement(Sparkle, null))), React.createElement(Title$n, null, "PURCHASE COMPLETE!"), React.createElement(Subtitle$2, null, "Your items are ready")), React.createElement(ItemsList, null, items.map(function (item, i) {
37618
37904
  var _item$metadata;
37619
37905
  var isCharSkin = item.metadataType === MetadataType.CharacterSkin;
37620
37906
  var spriteKey = isCharSkin && (_item$metadata = item.metadata) != null && _item$metadata.selectedSkinTextureKey ? item.metadata.selectedSkinTextureKey + "/down/standing/0.png" : item.texturePath;
@@ -37661,7 +37947,7 @@ var Spark = /*#__PURE__*/styled.div.withConfig({
37661
37947
  }, function (p) {
37662
37948
  return p.$i * 0.2;
37663
37949
  });
37664
- var Header$f = /*#__PURE__*/styled.div.withConfig({
37950
+ var Header$g = /*#__PURE__*/styled.div.withConfig({
37665
37951
  displayName: "PurchaseSuccess__Header",
37666
37952
  componentId: "sc-18z5q21-3"
37667
37953
  })(["display:flex;flex-direction:column;align-items:center;gap:0.5rem;"]);
@@ -37673,7 +37959,7 @@ var TrophyIcon = /*#__PURE__*/styled.div.withConfig({
37673
37959
  displayName: "PurchaseSuccess__TrophyIcon",
37674
37960
  componentId: "sc-18z5q21-5"
37675
37961
  })(["width:64px;height:64px;border-radius:50%;background:rgba(245,158,11,0.15);border:2px solid #f59e0b;display:flex;align-items:center;justify-content:center;animation:", " 2s ease-in-out infinite;svg{font-size:1.75rem;color:#f59e0b;}"], glowPulse);
37676
- var Title$m = /*#__PURE__*/styled.h2.withConfig({
37962
+ var Title$n = /*#__PURE__*/styled.h2.withConfig({
37677
37963
  displayName: "PurchaseSuccess__Title",
37678
37964
  componentId: "sc-18z5q21-6"
37679
37965
  })(["font-family:'Press Start 2P',cursive;font-size:0.9rem;color:#fef08a;margin:0;text-shadow:0 0 8px rgba(245,158,11,0.6);"]);
@@ -37723,7 +38009,7 @@ var MetadataDisplay = function MetadataDisplay(_ref) {
37723
38009
  metadata = _ref.metadata;
37724
38010
  switch (type) {
37725
38011
  case MetadataType.CharacterSkin:
37726
- return React.createElement(MetadataInfo, null, React.createElement(MetadataLabel, null, React.createElement(InfoBox, null), React.createElement("span", null, "Skin:")), React.createElement(MetadataValue, null, metadata.selectedSkinName || 'Custom skin'));
38012
+ return React.createElement(MetadataInfo, null, React.createElement(MetadataLabel, null, React.createElement(InfoBox, null), React.createElement("span", null, "Skin:")), React.createElement(MetadataValue, null, metadata.selectedSkinName || metadata.selectedSkin || 'Custom skin'));
37727
38013
  default:
37728
38014
  return null;
37729
38015
  }
@@ -37836,26 +38122,27 @@ var CartView = function CartView(_ref2) {
37836
38122
  onClose: onCloseStore != null ? onCloseStore : onClose
37837
38123
  });
37838
38124
  }
37839
- return React.createElement(Container$M, null, React.createElement(Header$g, null, React.createElement(Title$n, null, "Shopping Cart (", cartItems.reduce(function (s, ci) {
38125
+ return React.createElement(Container$M, null, React.createElement(Header$h, null, React.createElement(Title$o, null, "Shopping Cart (", cartItems.reduce(function (s, ci) {
37840
38126
  return s + ci.quantity;
37841
38127
  }, 0), ")"), React.createElement(CloseButton$i, {
37842
38128
  onPointerDown: onClose
37843
38129
  }, React.createElement(Cancel, null))), React.createElement(MainContent$1, null, cartItems.length === 0 ? React.createElement(EmptyCart, null, React.createElement(Box, null), "Your cart is empty") : React.createElement(CartItems, null, cartItems.map(function (cartItem) {
37844
- var _cartItem$metadata, _cartItem$metadata2, _cartItem$item$region2, _cartItem$item$region3;
38130
+ var _cartItem$metadata$se, _cartItem$metadata, _cartItem$metadata2, _cartItem$metadata3, _cartItem$item$region2, _cartItem$item$region3;
37845
38131
  var getSpriteKey = function getSpriteKey(textureKey) {
37846
38132
  return textureKey + '/down/standing/0.png';
37847
38133
  };
38134
+ var selectedSkinTextureKey = (_cartItem$metadata$se = (_cartItem$metadata = cartItem.metadata) == null ? void 0 : _cartItem$metadata.selectedSkinTextureKey) != null ? _cartItem$metadata$se : (_cartItem$metadata2 = cartItem.metadata) == null ? void 0 : _cartItem$metadata2.selectedSkin;
37848
38135
  return React.createElement(CartItemRow, {
37849
38136
  key: cartItem.item.key
37850
38137
  }, React.createElement(ItemIconContainer, null, React.createElement(SpriteFromAtlas, {
37851
38138
  atlasJSON: cartItem.item.metadataType === MetadataType.CharacterSkin ? characterAtlasJSON : atlasJSON,
37852
38139
  atlasIMG: cartItem.item.metadataType === MetadataType.CharacterSkin ? img$9 : atlasIMG,
37853
- spriteKey: cartItem.item.metadataType === MetadataType.CharacterSkin && (_cartItem$metadata = cartItem.metadata) != null && _cartItem$metadata.selectedSkinTextureKey ? getSpriteKey(cartItem.metadata.selectedSkinTextureKey) : cartItem.item.texturePath,
38140
+ spriteKey: cartItem.item.metadataType === MetadataType.CharacterSkin && selectedSkinTextureKey ? getSpriteKey(selectedSkinTextureKey) : cartItem.item.texturePath,
37854
38141
  width: 24,
37855
38142
  height: 24,
37856
38143
  imgScale: 1.5,
37857
38144
  centered: true
37858
- })), React.createElement(ItemDetails$4, null, React.createElement(ItemName$6, null, cartItem.item.name), ((_cartItem$metadata2 = cartItem.metadata) == null ? void 0 : _cartItem$metadata2.inputValue) && React.createElement(CartMeta, null, cartItem.metadata.inputValue), React.createElement(ItemInfo$2, null, React.createElement("span", null, currencySymbol, formatPrice((_cartItem$item$region2 = cartItem.item.regionalPrice) != null ? _cartItem$item$region2 : cartItem.item.price)), React.createElement("span", null, "\xD7"), React.createElement("span", null, cartItem.quantity), React.createElement("span", null, "="), React.createElement("span", null, currencySymbol, formatPrice(((_cartItem$item$region3 = cartItem.item.regionalPrice) != null ? _cartItem$item$region3 : cartItem.item.price) * cartItem.quantity))), cartItem.metadata && cartItem.item.metadataType && React.createElement(MetadataDisplay, {
38145
+ })), React.createElement(ItemDetails$4, null, React.createElement(ItemName$6, null, cartItem.item.name), ((_cartItem$metadata3 = cartItem.metadata) == null ? void 0 : _cartItem$metadata3.inputValue) && React.createElement(CartMeta, null, cartItem.metadata.inputValue), React.createElement(ItemInfo$2, null, React.createElement("span", null, currencySymbol, formatPrice((_cartItem$item$region2 = cartItem.item.regionalPrice) != null ? _cartItem$item$region2 : cartItem.item.price)), React.createElement("span", null, "\xD7"), React.createElement("span", null, cartItem.quantity), React.createElement("span", null, "="), React.createElement("span", null, currencySymbol, formatPrice(((_cartItem$item$region3 = cartItem.item.regionalPrice) != null ? _cartItem$item$region3 : cartItem.item.price) * cartItem.quantity))), cartItem.metadata && cartItem.item.metadataType && React.createElement(MetadataDisplay, {
37859
38146
  type: cartItem.item.metadataType,
37860
38147
  metadata: cartItem.metadata
37861
38148
  })), React.createElement(CTAButton, {
@@ -37883,11 +38170,11 @@ var Container$M = /*#__PURE__*/styled.div.withConfig({
37883
38170
  displayName: "CartView__Container",
37884
38171
  componentId: "sc-ydtyl1-0"
37885
38172
  })(["display:flex;flex-direction:column;width:100%;height:100%;padding:1rem;overflow:hidden;box-sizing:border-box;@media (max-width:480px){padding:0.75rem 0.5rem;}"]);
37886
- var Header$g = /*#__PURE__*/styled.div.withConfig({
38173
+ var Header$h = /*#__PURE__*/styled.div.withConfig({
37887
38174
  displayName: "CartView__Header",
37888
38175
  componentId: "sc-ydtyl1-1"
37889
38176
  })(["display:flex;justify-content:space-between;align-items:center;flex-shrink:0;"]);
37890
- var Title$n = /*#__PURE__*/styled.h2.withConfig({
38177
+ var Title$o = /*#__PURE__*/styled.h2.withConfig({
37891
38178
  displayName: "CartView__Title",
37892
38179
  componentId: "sc-ydtyl1-2"
37893
38180
  })(["font-family:'Press Start 2P',cursive;font-size:1rem;color:#ffffff;margin:0;"]);
@@ -38421,6 +38708,17 @@ function uuidv4() {
38421
38708
  });
38422
38709
  }
38423
38710
 
38711
+ var getCharacterSkinMetadata = function getCharacterSkinMetadata(selectedSkinTextureKey, availableCharacters) {
38712
+ var _selectedSkin$name;
38713
+ var selectedSkin = availableCharacters.find(function (character) {
38714
+ return character.textureKey === selectedSkinTextureKey;
38715
+ });
38716
+ return {
38717
+ selectedSkin: selectedSkinTextureKey,
38718
+ selectedSkinName: (_selectedSkin$name = selectedSkin == null ? void 0 : selectedSkin.name) != null ? _selectedSkin$name : selectedSkinTextureKey,
38719
+ selectedSkinTextureKey: selectedSkinTextureKey
38720
+ };
38721
+ };
38424
38722
  var MetadataCollector = function MetadataCollector(_ref) {
38425
38723
  var metadataType = _ref.metadataType,
38426
38724
  config = _ref.config,
@@ -38461,9 +38759,7 @@ var MetadataCollector = function MetadataCollector(_ref) {
38461
38759
  isOpen: true,
38462
38760
  onClose: handleCancel,
38463
38761
  onConfirm: function onConfirm(selectedSkin) {
38464
- return handleCollect({
38465
- selectedSkin: selectedSkin
38466
- });
38762
+ return handleCollect(getCharacterSkinMetadata(selectedSkin, config.availableCharacters || []));
38467
38763
  },
38468
38764
  availableCharacters: config.availableCharacters || [],
38469
38765
  atlasJSON: config.atlasJSON,
@@ -38518,7 +38814,7 @@ var PaymentMethodModal = function PaymentMethodModal(_ref) {
38518
38814
  onClick: stopPropagation,
38519
38815
  onTouchStart: stopPropagation,
38520
38816
  onPointerDown: stopPropagation
38521
- }, React.createElement(Header$h, null, React.createElement(Title$o, null, "How would you like to pay?"), React.createElement(CloseButton$j, {
38817
+ }, React.createElement(Header$i, null, React.createElement(Title$p, null, "How would you like to pay?"), React.createElement(CloseButton$j, {
38522
38818
  onPointerDown: onClose,
38523
38819
  "aria-label": "Close"
38524
38820
  }, React.createElement(Cancel, null))), React.createElement(Options$1, null, React.createElement(RadioOption$2, {
@@ -38560,11 +38856,11 @@ var ModalContent$8 = /*#__PURE__*/styled.div.withConfig({
38560
38856
  displayName: "PaymentMethodModal__ModalContent",
38561
38857
  componentId: "sc-1dxy6lr-2"
38562
38858
  })(["background:#1a1a2e;border:2px solid #f59e0b;border-radius:8px;padding:20px 24px 24px;min-width:300px;max-width:90%;display:flex;flex-direction:column;gap:16px;pointer-events:auto;animation:scaleIn 0.15s ease-out;@keyframes scaleIn{from{transform:scale(0.85);opacity:0;}to{transform:scale(1);opacity:1;}}"]);
38563
- var Header$h = /*#__PURE__*/styled.div.withConfig({
38859
+ var Header$i = /*#__PURE__*/styled.div.withConfig({
38564
38860
  displayName: "PaymentMethodModal__Header",
38565
38861
  componentId: "sc-1dxy6lr-3"
38566
38862
  })(["display:flex;align-items:center;justify-content:space-between;"]);
38567
- var Title$o = /*#__PURE__*/styled.h3.withConfig({
38863
+ var Title$p = /*#__PURE__*/styled.h3.withConfig({
38568
38864
  displayName: "PaymentMethodModal__Title",
38569
38865
  componentId: "sc-1dxy6lr-4"
38570
38866
  })(["margin:0;font-family:'Press Start 2P',cursive;font-size:0.7rem;color:#fef08a;"]);
@@ -38930,7 +39226,7 @@ var StoreCharacterSkinRow = function StoreCharacterSkinRow(_ref) {
38930
39226
  height: 32,
38931
39227
  imgScale: 2,
38932
39228
  centered: true
38933
- }) : React.createElement(DefaultIcon, null, "\uD83D\uDC64")), React.createElement(ItemDetails$5, null, React.createElement(Header$i, null, React.createElement(ItemName$7, null, item.name)), availableCharacters.length > 0 && currentCharacter && React.createElement(SelectedSkinNav, null, React.createElement(SelectedSkin, null, "Selected:"), React.createElement(SkinNavArrow, {
39229
+ }) : React.createElement(DefaultIcon, null, "\uD83D\uDC64")), React.createElement(ItemDetails$5, null, React.createElement(Header$j, null, React.createElement(ItemName$7, null, item.name)), availableCharacters.length > 0 && currentCharacter && React.createElement(SelectedSkinNav, null, React.createElement(SelectedSkin, null, "Selected:"), React.createElement(SkinNavArrow, {
38934
39230
  direction: "left",
38935
39231
  onPointerDown: handlePreviousSkin,
38936
39232
  size: 24
@@ -39063,7 +39359,7 @@ var SkinNavArrow = /*#__PURE__*/styled(SelectArrow).withConfig({
39063
39359
  displayName: "StoreCharacterSkinRow__SkinNavArrow",
39064
39360
  componentId: "sc-81xqsx-10"
39065
39361
  })(["position:static;"]);
39066
- var Header$i = /*#__PURE__*/styled.div.withConfig({
39362
+ var Header$j = /*#__PURE__*/styled.div.withConfig({
39067
39363
  displayName: "StoreCharacterSkinRow__Header",
39068
39364
  componentId: "sc-81xqsx-11"
39069
39365
  })(["display:flex;align-items:center;gap:0.5rem;"]);
@@ -39872,7 +40168,7 @@ var StoreRedeemSection = function StoreRedeemSection(_ref) {
39872
40168
  height: 32
39873
40169
  })), React.createElement(SuccessTitle, null, "Code Redeemed!"), dcAmount != null && React.createElement(DCAmountDisplay, null, "+", React.createElement(MMORPGNumber, {
39874
40170
  value: dcAmount
39875
- }), " DC"), React.createElement(SuccessHint, null, "Your wallet balance has been updated."), React.createElement(ButtonWrapper$3, null, React.createElement(CTAButton, {
40171
+ }), " DC"), React.createElement(SuccessHint, null, "Your wallet balance has been updated."), React.createElement(ButtonWrapper$4, null, React.createElement(CTAButton, {
39876
40172
  icon: React.createElement(Receipt, null),
39877
40173
  label: "Redeem Another",
39878
40174
  onClick: handleReset
@@ -39882,13 +40178,13 @@ var StoreRedeemSection = function StoreRedeemSection(_ref) {
39882
40178
  return React.createElement(Container$O, null, React.createElement(ResultContainer, null, React.createElement(ErrorIcon, null, React.createElement(WarningDiamond, {
39883
40179
  width: 32,
39884
40180
  height: 32
39885
- })), React.createElement(ErrorTitle, null, errorMessage), React.createElement(ButtonWrapper$3, null, React.createElement(CTAButton, {
40181
+ })), React.createElement(ErrorTitle, null, errorMessage), React.createElement(ButtonWrapper$4, null, React.createElement(CTAButton, {
39886
40182
  icon: React.createElement(Receipt, null),
39887
40183
  label: "Try Again",
39888
40184
  onClick: handleReset
39889
40185
  }))));
39890
40186
  }
39891
- return React.createElement(Container$O, null, React.createElement(Title$p, null, "Redeem a Voucher Code"), React.createElement(Description$8, null, "Enter your voucher code below to receive Definya Coins."), React.createElement(InputRow, null, React.createElement(CodeInput, {
40187
+ return React.createElement(Container$O, null, React.createElement(Title$q, null, "Redeem a Voucher Code"), React.createElement(Description$9, null, "Enter your voucher code below to receive Definya Coins."), React.createElement(InputRow, null, React.createElement(CodeInput, {
39892
40188
  type: "text",
39893
40189
  value: code,
39894
40190
  onChange: function onChange(e) {
@@ -39901,7 +40197,7 @@ var StoreRedeemSection = function StoreRedeemSection(_ref) {
39901
40197
  disabled: status === 'loading',
39902
40198
  autoComplete: "off",
39903
40199
  spellCheck: false
39904
- })), React.createElement(ButtonWrapper$3, null, React.createElement(CTAButton, {
40200
+ })), React.createElement(ButtonWrapper$4, null, React.createElement(CTAButton, {
39905
40201
  icon: React.createElement(Receipt, null),
39906
40202
  label: status === 'loading' ? 'Redeeming...' : 'Redeem Code',
39907
40203
  onClick: function onClick() {
@@ -39915,11 +40211,11 @@ var Container$O = /*#__PURE__*/styled.div.withConfig({
39915
40211
  displayName: "StoreRedeemSection__Container",
39916
40212
  componentId: "sc-1pzosml-0"
39917
40213
  })(["display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem;max-width:420px;margin:0 auto;gap:1rem;"]);
39918
- var Title$p = /*#__PURE__*/styled.h3.withConfig({
40214
+ var Title$q = /*#__PURE__*/styled.h3.withConfig({
39919
40215
  displayName: "StoreRedeemSection__Title",
39920
40216
  componentId: "sc-1pzosml-1"
39921
40217
  })(["font-family:'Press Start 2P',cursive;font-size:0.85rem;color:", ";margin:0;text-align:center;"], uiColors.white);
39922
- var Description$8 = /*#__PURE__*/styled.p.withConfig({
40218
+ var Description$9 = /*#__PURE__*/styled.p.withConfig({
39923
40219
  displayName: "StoreRedeemSection__Description",
39924
40220
  componentId: "sc-1pzosml-2"
39925
40221
  })(["font-family:'Press Start 2P',cursive;font-size:0.55rem;color:", ";margin:0;text-align:center;line-height:1.6;"], uiColors.lightGray);
@@ -39931,7 +40227,7 @@ var CodeInput = /*#__PURE__*/styled.input.withConfig({
39931
40227
  displayName: "StoreRedeemSection__CodeInput",
39932
40228
  componentId: "sc-1pzosml-4"
39933
40229
  })(["width:100%;padding:12px 14px;font-family:'Press Start 2P',cursive;font-size:0.75rem;color:", ";background:rgba(0,0,0,0.4);border:2px solid #f59e0b;border-radius:4px;text-transform:uppercase;letter-spacing:2px;text-align:center;box-sizing:border-box;outline:none;&::placeholder{color:", ";text-transform:none;letter-spacing:0;}&:focus{border-color:#fbbf24;box-shadow:0 0 8px rgba(251,191,36,0.3);}&:disabled{opacity:0.5;cursor:not-allowed;}"], uiColors.white, uiColors.lightGray);
39934
- var ButtonWrapper$3 = /*#__PURE__*/styled.div.withConfig({
40230
+ var ButtonWrapper$4 = /*#__PURE__*/styled.div.withConfig({
39935
40231
  displayName: "StoreRedeemSection__ButtonWrapper",
39936
40232
  componentId: "sc-1pzosml-5"
39937
40233
  })(["width:100%;margin-top:0.5rem;"]);
@@ -39978,14 +40274,14 @@ var StoreItemDetails = function StoreItemDetails(_ref) {
39978
40274
  if (typeof imageUrl === 'string') return imageUrl;
39979
40275
  return imageUrl["default"] || imageUrl.src;
39980
40276
  };
39981
- return React.createElement(Container$P, null, React.createElement(Header$j, null, React.createElement(BackButton, {
40277
+ return React.createElement(Container$P, null, React.createElement(Header$k, null, React.createElement(BackButton, {
39982
40278
  onClick: onBack
39983
40279
  }, React.createElement(ArrowLeft, null), React.createElement("span", null, "Back"))), React.createElement(Content$5, null, React.createElement(DetailsGrid, null, React.createElement(ItemIcon, null, React.createElement("img", {
39984
40280
  src: getImageSrc(),
39985
40281
  alt: item.name
39986
40282
  })), React.createElement(ItemInfo$3, null, React.createElement(ItemName$9, null, item.name), React.createElement(ItemPrice$2, null, currencySymbol, 'priceUSD' in item ? item.priceUSD : (_item$regionalPrice = item.regionalPrice) != null ? _item$regionalPrice : item.price, item.dcPrice ? React.createElement(React.Fragment, null, ' ', "\xB7 ", React.createElement(MMORPGNumber, {
39987
40283
  value: item.dcPrice
39988
- }), " DC") : ''), React.createElement(Description$9, null, item.description))), React.createElement(Actions$1, null, React.createElement(CTAButton, {
40284
+ }), " DC") : ''), React.createElement(Description$a, null, item.description))), React.createElement(Actions$1, null, React.createElement(CTAButton, {
39989
40285
  icon: React.createElement(ShoppingCart, null),
39990
40286
  label: "Add to Cart",
39991
40287
  onClick: function onClick() {
@@ -39998,7 +40294,7 @@ var Container$P = /*#__PURE__*/styled.div.withConfig({
39998
40294
  displayName: "StoreItemDetails__Container",
39999
40295
  componentId: "sc-k3ho5z-0"
40000
40296
  })(["display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;height:100%;"]);
40001
- var Header$j = /*#__PURE__*/styled.div.withConfig({
40297
+ var Header$k = /*#__PURE__*/styled.div.withConfig({
40002
40298
  displayName: "StoreItemDetails__Header",
40003
40299
  componentId: "sc-k3ho5z-1"
40004
40300
  })(["display:flex;align-items:center;gap:1rem;"]);
@@ -40030,7 +40326,7 @@ var ItemPrice$2 = /*#__PURE__*/styled.div.withConfig({
40030
40326
  displayName: "StoreItemDetails__ItemPrice",
40031
40327
  componentId: "sc-k3ho5z-8"
40032
40328
  })(["font-family:'Press Start 2P',cursive;font-size:1rem;color:#fef08a;"]);
40033
- var Description$9 = /*#__PURE__*/styled.p.withConfig({
40329
+ var Description$a = /*#__PURE__*/styled.p.withConfig({
40034
40330
  displayName: "StoreItemDetails__Description",
40035
40331
  componentId: "sc-k3ho5z-9"
40036
40332
  })(["margin:0;font-family:'Press Start 2P',cursive;font-size:0.875rem;line-height:1.6;color:#ffffff;"]);
@@ -40723,7 +41019,7 @@ var TradingMenu = function TradingMenu(_ref) {
40723
41019
  width: "500px",
40724
41020
  cancelDrag: "#TraderContainer",
40725
41021
  scale: scale
40726
- }, React.createElement(Container$R, null, React.createElement(Title$q, null, type.charAt(0).toUpperCase() + type.slice(1), " Menu"), React.createElement("hr", {
41022
+ }, React.createElement(Container$R, null, React.createElement(Title$r, null, type.charAt(0).toUpperCase() + type.slice(1), " Menu"), React.createElement("hr", {
40727
41023
  className: "golden"
40728
41024
  }), React.createElement(ScrollWrapper, {
40729
41025
  id: "TraderContainer"
@@ -40740,7 +41036,7 @@ var TradingMenu = function TradingMenu(_ref) {
40740
41036
  scale: scale,
40741
41037
  isBuy: isBuy()
40742
41038
  });
40743
- })), React.createElement(InfoSection$2, null, React.createElement(GoldInfo, null, React.createElement("p", null, "Available Gold:"), React.createElement("p", null, "$", characterAvailableGold.toFixed(2))), React.createElement(GoldInfo, null, React.createElement("p", null, "Total:"), React.createElement("p", null, "$", sum)), !hasGoldForSale() ? React.createElement(AlertText, null, "Sorry, not enough money.") : React.createElement(GoldInfo, null, React.createElement("p", null, "Final Gold:"), React.createElement("p", null, "$", getFinalGold().toFixed(2)))), React.createElement(ButtonWrapper$4, null, React.createElement(Button, {
41039
+ })), React.createElement(InfoSection$2, null, React.createElement(GoldInfo, null, React.createElement("p", null, "Available Gold:"), React.createElement("p", null, "$", characterAvailableGold.toFixed(2))), React.createElement(GoldInfo, null, React.createElement("p", null, "Total:"), React.createElement("p", null, "$", sum)), !hasGoldForSale() ? React.createElement(AlertText, null, "Sorry, not enough money.") : React.createElement(GoldInfo, null, React.createElement("p", null, "Final Gold:"), React.createElement("p", null, "$", getFinalGold().toFixed(2)))), React.createElement(ButtonWrapper$5, null, React.createElement(Button, {
40744
41040
  buttonType: ButtonTypes.RPGUIButton,
40745
41041
  disabled: !hasGoldForSale(),
40746
41042
  onPointerDown: function onPointerDown() {
@@ -40755,7 +41051,7 @@ var Container$R = /*#__PURE__*/styled.div.withConfig({
40755
41051
  displayName: "TradingMenu__Container",
40756
41052
  componentId: "sc-1wjsz1l-0"
40757
41053
  })(["width:100%;"]);
40758
- var Title$q = /*#__PURE__*/styled.h1.withConfig({
41054
+ var Title$r = /*#__PURE__*/styled.h1.withConfig({
40759
41055
  displayName: "TradingMenu__Title",
40760
41056
  componentId: "sc-1wjsz1l-1"
40761
41057
  })(["font-size:0.7rem !important;color:yellow !important;text-align:center;"]);
@@ -40775,7 +41071,7 @@ var AlertText = /*#__PURE__*/styled.p.withConfig({
40775
41071
  displayName: "TradingMenu__AlertText",
40776
41072
  componentId: "sc-1wjsz1l-5"
40777
41073
  })(["color:red !important;text-align:center;margin:0.3rem 0;font-size:0.5rem;"]);
40778
- var ButtonWrapper$4 = /*#__PURE__*/styled.div.withConfig({
41074
+ var ButtonWrapper$5 = /*#__PURE__*/styled.div.withConfig({
40779
41075
  displayName: "TradingMenu__ButtonWrapper",
40780
41076
  componentId: "sc-1wjsz1l-6"
40781
41077
  })(["display:flex;justify-content:space-around;width:100%;margin-top:1rem;"]);
@@ -40943,5 +41239,5 @@ var LessonContainer = /*#__PURE__*/styled.div.withConfig({
40943
41239
  componentId: "sc-7tgzv2-7"
40944
41240
  })(["display:flex;flex-direction:column;justify-content:space-between;min-height:200px;p{font-size:0.7rem !important;}"]);
40945
41241
 
40946
- export { ActionButtons, AsyncDropdown, BLUEPRINTS_PER_PAGE, BUY_ORDERS_PER_PAGE, BlueprintSearchModal, Button, ButtonTypes, BuyOrderPanel, BuyOrderRow, CTAButton, CartView, CharacterDetailModal, CharacterListingForm, CharacterListingModal, CharacterMarketplacePanel, CharacterMarketplaceRows, CharacterSelection, CharacterSkinSelectionModal, CharacterTradePanel, Chat, ChatDeprecated, ChatRevamp, CheckButton, CheckItem, CircularController, ConfirmModal, CountdownTimer, CraftBook, DCRateStrip, DCWalletContent, DCWalletModal, DailyTasks, DraggableContainer, Dropdown, DropdownSelectorContainer, DynamicText, EquipmentSet, EquipmentSlotSpriteByType, ErrorBoundary, FeaturedBanner, FriendList, GemSelector, GroupedBuyOrderRow, GroupedCharacterMarketplaceRow, GroupedMarketplaceRow, HISTORY_ITEMS_PER_PAGE, HistoryDialog, HistoryPanel, ImageCarousel, ImgSide, InformationCenter, Input, InputRadio, InternalTabs, ItemContainer$1 as ItemContainer, ItemPropertySimpleHandler, ItemQuantitySelectorModal, ItemSelector, ItemSlot, JoystickDPad, Leaderboard, ListMenu, LoginStreakPanel, Marketplace, MarketplaceBuyModal, MarketplaceRows, MarketplaceSettingsPanel, MetadataCollector, MultitabType, MyCharacterListingsPanel, NPCDialog, NPCDialogType, NPCMultiDialog, Pagination, PartyCreate, PartyDashboard, PartyInvite, PartyManager, PartyManagerRow, PartyRow, PaymentMethodModal, PlayersRow, ProgressBar$1 as ProgressBar, PropertySelect, PurchaseSuccess, QuantitySelectorModal, QuestInfo, QuestList, QuestionDialog, RPGUIContainer, RPGUIContainerTypes, RPGUIRoot, RadioCircle$2 as RadioCircle, RadioOption$1 as RadioOption, RadioOptionLabel, RadioOptionSub, RadioSelectCard, RangeSlider, RangeSliderType, SelectArrow, Shortcuts, SimpleImageCarousel, SkillProgressBar, SkillsContainer, SocialModal, Spellbook, SpriteFromAtlas, Stepper, Store, StoreBadges, StoreRedeemSection, TRANSACTION_TYPE_FILTER_ALL, TabBody, Table, TableCell, TableHeader, TableRow, TabsContainer$1 as TabsContainer, TextArea, TimeWidget, Tooltip, TradingMenu, Truncate, TrustBar, TutorialStepper, UserActionLink, _RPGUI, formatQuestStatus, formatQuestText, getMockedPlayersRowsLeader, getMockedPlayersRowsNotLeader, getQuestStatusColor, mockedPartyManager, mockedPartyRows, mockedPlayersRows, mockedPlayersRows2, useEventListener, useStoreCart };
41242
+ export { ActionButtons, AsyncDropdown, BLUEPRINTS_PER_PAGE, BUY_ORDERS_PER_PAGE, BlueprintSearchModal, Button, ButtonTypes, BuyOrderPanel, BuyOrderRow, CTAButton, CartView, CharacterDetailModal, CharacterListingForm, CharacterListingModal, CharacterMarketplacePanel, CharacterMarketplaceRows, CharacterSelection, CharacterSkinSelectionModal, CharacterTradePanel, Chat, ChatDeprecated, ChatRevamp, CheckButton, CheckItem, CircularController, ConfirmModal, CountdownTimer, CraftBook, DCRateStrip, DCWalletContent, DCWalletModal, DailyTasks, DraggableContainer, Dropdown, DropdownSelectorContainer, DynamicText, EquipmentSet, EquipmentSlotSpriteByType, ErrorBoundary, FeaturedBanner, FriendList, GemSelector, GroupedBuyOrderRow, GroupedCharacterMarketplaceRow, GroupedMarketplaceRow, HISTORY_ITEMS_PER_PAGE, HistoryDialog, HistoryPanel, ImageCarousel, ImgSide, InformationCenter, Input, InputRadio, InternalTabs, ItemContainer$1 as ItemContainer, ItemPropertySimpleHandler, ItemQuantitySelectorModal, ItemSelector, ItemSlot, JoystickDPad, Leaderboard, ListMenu, LoginStreakPanel, Marketplace, MarketplaceBuyModal, MarketplaceRows, MarketplaceSettingsPanel, MetadataCollector, MultitabType, MyCharacterListingsPanel, NPCDialog, NPCDialogType, NPCMultiDialog, Pagination, PartyCreate, PartyDashboard, PartyInvite, PartyManager, PartyManagerRow, PartyRow, PaymentMethodModal, PlayersRow, ProgressBar$1 as ProgressBar, PropertySelect, PurchaseSuccess, QuantitySelectorModal, QuestInfo, QuestList, QuestListRow, QuestionDialog, RPGUIContainer, RPGUIContainerTypes, RPGUIRoot, RadioCircle$2 as RadioCircle, RadioOption$1 as RadioOption, RadioOptionLabel, RadioOptionSub, RadioSelectCard, RangeSlider, RangeSliderType, SelectArrow, Shortcuts, SimpleImageCarousel, SkillProgressBar, SkillsContainer, SocialModal, Spellbook, SpriteFromAtlas, Stepper, Store, StoreBadges, StoreRedeemSection, TRANSACTION_TYPE_FILTER_ALL, TabBody, Table, TableCell, TableHeader, TableRow, TabsContainer$1 as TabsContainer, TextArea, TimeWidget, Tooltip, TradingMenu, Truncate, TrustBar, TutorialStepper, UserActionLink, _RPGUI, formatQuestStatus, formatQuestText, getMockedPlayersRowsLeader, getMockedPlayersRowsNotLeader, getQuestStatusColor, mockedPartyManager, mockedPartyRows, mockedPlayersRows, mockedPlayersRows2, useEventListener, useStoreCart };
40947
41243
  //# sourceMappingURL=long-bow.esm.js.map