@rpg-engine/long-bow 0.8.230 → 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 (30) 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 +473 -156
  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 +474 -158
  15. package/dist/long-bow.esm.js.map +1 -1
  16. package/package.json +1 -1
  17. package/src/components/Item/Cards/ItemTooltip.tsx +27 -16
  18. package/src/components/Quests/QuestInfo/QuestInfo.tsx +57 -68
  19. package/src/components/Quests/QuestInfo/QuestObjectivesSection.tsx +114 -0
  20. package/src/components/Quests/QuestInfo/QuestRequirementsSection.tsx +74 -0
  21. package/src/components/Quests/QuestInfo/QuestRewardsSection.tsx +128 -0
  22. package/src/components/Quests/QuestInfo/QuestSectionTypes.ts +8 -0
  23. package/src/components/Quests/QuestList.tsx +12 -87
  24. package/src/components/Quests/QuestListRow.tsx +178 -0
  25. package/src/components/Store/CartView.tsx +3 -2
  26. package/src/components/Store/MetadataCollector.tsx +28 -1
  27. package/src/components/Store/__test__/MetadataCollector.spec.tsx +12 -3
  28. package/src/components/Tutorial/TutorialStepper.tsx +2 -0
  29. package/src/components/shared/SimpleTooltip.tsx +32 -19
  30. 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';
@@ -3732,26 +3732,35 @@ var ItemTooltip = function ItemTooltip(_ref) {
3732
3732
  atlasJSON = _ref.atlasJSON,
3733
3733
  equipmentSet = _ref.equipmentSet;
3734
3734
  var ref = useRef(null);
3735
+ var rafId = useRef(null);
3735
3736
  useEffect(function () {
3736
3737
  var current = ref.current;
3737
3738
  if (current) {
3738
3739
  var handleMouseMove = function handleMouseMove(event) {
3740
+ if (rafId.current !== null) return;
3739
3741
  var clientX = event.clientX,
3740
3742
  clientY = event.clientY;
3741
- // Adjust the position of the tooltip based on the mouse position
3742
- var rect = current.getBoundingClientRect();
3743
- var tooltipWidth = rect.width;
3744
- var tooltipHeight = rect.height;
3745
- var isOffScreenRight = clientX + tooltipWidth + offset > window.innerWidth;
3746
- var isOffScreenBottom = clientY + tooltipHeight + offset > window.innerHeight;
3747
- var x = isOffScreenRight ? clientX - tooltipWidth - offset : clientX + offset;
3748
- var y = isOffScreenBottom ? clientY - tooltipHeight - offset : clientY + offset;
3749
- current.style.transform = "translate(" + x + "px, " + y + "px)";
3750
- current.style.opacity = '1';
3743
+ rafId.current = requestAnimationFrame(function () {
3744
+ rafId.current = null;
3745
+ // Adjust the position of the tooltip based on the mouse position
3746
+ var rect = current.getBoundingClientRect();
3747
+ var tooltipWidth = rect.width;
3748
+ var tooltipHeight = rect.height;
3749
+ var isOffScreenRight = clientX + tooltipWidth + offset > window.innerWidth;
3750
+ var isOffScreenBottom = clientY + tooltipHeight + offset > window.innerHeight;
3751
+ var x = isOffScreenRight ? clientX - tooltipWidth - offset : clientX + offset;
3752
+ var y = isOffScreenBottom ? clientY - tooltipHeight - offset : clientY + offset;
3753
+ current.style.transform = "translate(" + x + "px, " + y + "px)";
3754
+ current.style.opacity = '1';
3755
+ });
3751
3756
  };
3752
3757
  window.addEventListener('mousemove', handleMouseMove);
3753
3758
  return function () {
3754
3759
  window.removeEventListener('mousemove', handleMouseMove);
3760
+ if (rafId.current !== null) {
3761
+ cancelAnimationFrame(rafId.current);
3762
+ rafId.current = null;
3763
+ }
3755
3764
  };
3756
3765
  }
3757
3766
  return;
@@ -5357,6 +5366,7 @@ var SimpleTooltip = function SimpleTooltip(_ref) {
5357
5366
  var tooltipRef = useRef(null);
5358
5367
  var triggerRef = useRef(null);
5359
5368
  var timeoutRef = useRef();
5369
+ var rafId = useRef(null);
5360
5370
  var calculatePosition = function calculatePosition() {
5361
5371
  if (!triggerRef.current || !tooltipRef.current) return;
5362
5372
  var triggerRect = triggerRef.current.getBoundingClientRect();
@@ -5408,15 +5418,21 @@ var SimpleTooltip = function SimpleTooltip(_ref) {
5408
5418
  };
5409
5419
  useEffect(function () {
5410
5420
  var handleMouseMove = function handleMouseMove(event) {
5411
- if (visible && tooltipRef.current && triggerRef.current) {
5412
- var tooltipRect = tooltipRef.current.getBoundingClientRect();
5413
- var triggerRect = triggerRef.current.getBoundingClientRect();
5414
- var isOutsideTooltip = event.clientX < tooltipRect.left || event.clientX > tooltipRect.right || event.clientY < tooltipRect.top || event.clientY > tooltipRect.bottom;
5415
- var isOutsideTrigger = event.clientX < triggerRect.left || event.clientX > triggerRect.right || event.clientY < triggerRect.top || event.clientY > triggerRect.bottom;
5416
- if (isOutsideTooltip && isOutsideTrigger) {
5417
- hideTooltip();
5421
+ if (rafId.current !== null) return;
5422
+ var clientX = event.clientX,
5423
+ clientY = event.clientY;
5424
+ rafId.current = requestAnimationFrame(function () {
5425
+ rafId.current = null;
5426
+ if (visible && tooltipRef.current && triggerRef.current) {
5427
+ var tooltipRect = tooltipRef.current.getBoundingClientRect();
5428
+ var triggerRect = triggerRef.current.getBoundingClientRect();
5429
+ var isOutsideTooltip = clientX < tooltipRect.left || clientX > tooltipRect.right || clientY < tooltipRect.top || clientY > tooltipRect.bottom;
5430
+ var isOutsideTrigger = clientX < triggerRect.left || clientX > triggerRect.right || clientY < triggerRect.top || clientY > triggerRect.bottom;
5431
+ if (isOutsideTooltip && isOutsideTrigger) {
5432
+ hideTooltip();
5433
+ }
5418
5434
  }
5419
- }
5435
+ });
5420
5436
  };
5421
5437
  var handleScroll = function handleScroll() {
5422
5438
  if (visible) {
@@ -5435,6 +5451,10 @@ var SimpleTooltip = function SimpleTooltip(_ref) {
5435
5451
  document.removeEventListener('mousemove', handleMouseMove);
5436
5452
  window.removeEventListener('scroll', handleScroll);
5437
5453
  window.removeEventListener('resize', handleResize);
5454
+ if (rafId.current !== null) {
5455
+ cancelAnimationFrame(rafId.current);
5456
+ rafId.current = null;
5457
+ }
5438
5458
  clearTimeout(timeoutRef.current);
5439
5459
  };
5440
5460
  }, [visible]);
@@ -15619,21 +15639,239 @@ var Container$E = /*#__PURE__*/styled.div.withConfig({
15619
15639
 
15620
15640
  var img$7 = 'data:image/png;base64,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';
15621
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
+
15622
15853
  var QuestInfo = function QuestInfo(_ref) {
15623
15854
  var quests = _ref.quests,
15624
15855
  onClose = _ref.onClose,
15625
15856
  buttons = _ref.buttons,
15626
15857
  onChangeQuest = _ref.onChangeQuest,
15627
- 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;
15628
15865
  var _useState = useState(0),
15629
15866
  currentIndex = _useState[0],
15630
15867
  setCurrentIndex = _useState[1];
15631
15868
  var questsLength = quests.length - 1;
15869
+ var currentQuest = quests[currentIndex] || quests[0];
15632
15870
  useEffect(function () {
15633
- if (onChangeQuest) {
15634
- onChangeQuest(currentIndex, quests[currentIndex]._id);
15871
+ if (onChangeQuest && currentQuest) {
15872
+ onChangeQuest(currentIndex, currentQuest._id);
15635
15873
  }
15636
- }, [currentIndex]);
15874
+ }, [currentIndex, currentQuest]);
15637
15875
  var onLeftClick = function onLeftClick() {
15638
15876
  if (currentIndex === 0) setCurrentIndex(questsLength);else setCurrentIndex(function (index) {
15639
15877
  return index - 1;
@@ -15652,50 +15890,47 @@ var QuestInfo = function QuestInfo(_ref) {
15652
15890
  width: "730px",
15653
15891
  cancelDrag: ".equipment-container-body .arrow-selector",
15654
15892
  scale: scale
15655
- }, 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, {
15656
15894
  direction: "left",
15657
15895
  onPointerDown: onLeftClick
15658
- }), currentIndex !== quests.length - 1 && React.createElement(SelectArrow, {
15896
+ }), quests.length >= 2 && currentIndex !== quests.length - 1 && React.createElement(SelectArrow, {
15659
15897
  direction: "right",
15660
15898
  onPointerDown: onRightClick
15661
15899
  }), React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
15662
15900
  className: "drag-handler"
15663
15901
  }, React.createElement(Title$h, null, React.createElement(Thumbnail, {
15664
- src: quests[currentIndex].thumbnail || img$7
15665
- }), quests[currentIndex].title), React.createElement(QuestSplitDiv, null, React.createElement("hr", {
15666
- className: "golden"
15667
- }))), React.createElement(Content$3, null, React.createElement("p", null, quests[currentIndex].description)), React.createElement(QuestColumn, {
15668
- className: "dark-background",
15669
- justifyContent: "flex-end"
15670
- }, buttons && buttons.map(function (button, index) {
15671
- return React.createElement(Button, {
15672
- key: index,
15673
- onPointerDown: function onPointerDown() {
15674
- return button.onClick(quests[currentIndex]._id, quests[currentIndex].npcId);
15675
- },
15676
- disabled: button.disabled,
15677
- buttonType: ButtonTypes.RPGUIButton,
15678
- id: "button-" + index
15679
- }, button.title);
15680
- })))) : React.createElement(QuestsContainer, null, React.createElement(QuestContainer, null, React.createElement(TitleContainer$1, {
15681
- className: "drag-handler"
15682
- }, React.createElement(Title$h, null, React.createElement(Thumbnail, {
15683
- src: quests[0].thumbnail || img$7
15684
- }), 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", {
15685
15904
  className: "golden"
15686
- }))), 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, {
15687
15920
  className: "dark-background",
15688
15921
  justifyContent: "flex-end"
15689
15922
  }, buttons && buttons.map(function (button, index) {
15690
- return React.createElement(Button, {
15923
+ return React.createElement(ButtonWrapper$3, {
15691
15924
  key: index,
15925
+ title: button.disabled ? button.disabledReason : undefined
15926
+ }, React.createElement(Button, {
15692
15927
  onPointerDown: function onPointerDown() {
15693
- return button.onClick(quests[0]._id, quests[0].npcId);
15928
+ return button.onClick(currentQuest._id, currentQuest.npcId);
15694
15929
  },
15695
15930
  disabled: button.disabled,
15696
15931
  buttonType: ButtonTypes.RPGUIButton,
15697
15932
  id: "button-" + index
15698
- }, button.title);
15933
+ }, button.title));
15699
15934
  })))));
15700
15935
  };
15701
15936
  var QuestDraggableContainer = /*#__PURE__*/styled(DraggableContainer).withConfig({
@@ -15722,70 +15957,74 @@ var QuestColumn = /*#__PURE__*/styled(Column).withConfig({
15722
15957
  displayName: "QuestInfo__QuestColumn",
15723
15958
  componentId: "sc-1wccpiy-5"
15724
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;"]);
15725
15964
  var TitleContainer$1 = /*#__PURE__*/styled.div.withConfig({
15726
15965
  displayName: "QuestInfo__TitleContainer",
15727
- componentId: "sc-1wccpiy-6"
15966
+ componentId: "sc-1wccpiy-7"
15728
15967
  })(["width:100%;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;margin-top:1rem;"]);
15729
15968
  var Title$h = /*#__PURE__*/styled.h1.withConfig({
15730
15969
  displayName: "QuestInfo__Title",
15731
- componentId: "sc-1wccpiy-7"
15970
+ componentId: "sc-1wccpiy-8"
15732
15971
  })(["color:white;z-index:22;font-size:", " !important;color:", " !important;"], uiFonts.size.medium, uiColors.yellow);
15733
15972
  var Thumbnail = /*#__PURE__*/styled.img.withConfig({
15734
15973
  displayName: "QuestInfo__Thumbnail",
15735
- componentId: "sc-1wccpiy-8"
15974
+ componentId: "sc-1wccpiy-9"
15736
15975
  })(["color:white;z-index:22;width:32px * 1.5;margin-right:0.5rem;position:relative;top:-4px;"]);
15737
15976
 
15738
- var QuestList = function QuestList(_ref) {
15739
- var quests = _ref.quests,
15740
- styles = _ref.styles;
15741
- return React.createElement(QuestListContainer, {
15742
- style: styles == null ? void 0 : styles.container
15743
- }, quests && quests.length > 0 ? quests.map(function (quest, i) {
15744
- var _formatQuestStatus;
15745
- return React.createElement(QuestCard, {
15746
- key: i,
15747
- style: styles == null ? void 0 : styles.card
15748
- }, React.createElement(QuestItem, null, React.createElement(Label$6, {
15749
- style: styles == null ? void 0 : styles.label
15750
- }, "Title:"), React.createElement(Value$2, {
15751
- style: styles == null ? void 0 : styles.value
15752
- }, formatQuestText(quest.title))), React.createElement(QuestItem, null, React.createElement(Label$6, {
15753
- style: styles == null ? void 0 : styles.label
15754
- }, "Status:"), React.createElement(Value$2, {
15755
- style: _extends({}, styles == null ? void 0 : styles.value, {
15756
- color: getQuestStatusColor(quest.status)
15757
- })
15758
- }, (_formatQuestStatus = formatQuestStatus(quest.status)) != null ? _formatQuestStatus : 'Unknown')), React.createElement(QuestItem, null, React.createElement(Label$6, {
15759
- style: styles == null ? void 0 : styles.label
15760
- }, "Description:"), React.createElement(Value$2, {
15761
- style: styles == null ? void 0 : styles.value
15762
- }, quest.description)));
15763
- }) : 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"))));
15764
16027
  };
15765
- var QuestListContainer = /*#__PURE__*/styled.div.withConfig({
15766
- displayName: "QuestList__QuestListContainer",
15767
- componentId: "sc-1c1y8sp-0"
15768
- })(["max-height:400px;padding:10px;border-radius:10px;font-size:0.7rem;"]);
15769
- var QuestCard = /*#__PURE__*/styled.div.withConfig({
15770
- displayName: "QuestList__QuestCard",
15771
- componentId: "sc-1c1y8sp-1"
15772
- })(["background-color:", ";padding:15px;margin-bottom:10px;border-radius:10px;border:1px solid ", ";display:flex;flex-direction:column;"], uiColors.darkGray, uiColors.gray);
15773
- var QuestItem = /*#__PURE__*/styled.div.withConfig({
15774
- displayName: "QuestList__QuestItem",
15775
- componentId: "sc-1c1y8sp-2"
15776
- })(["display:flex;margin-bottom:5px;flex-wrap:wrap;&:last-child{margin-bottom:0;}"]);
15777
- var Label$6 = /*#__PURE__*/styled.span.withConfig({
15778
- displayName: "QuestList__Label",
15779
- componentId: "sc-1c1y8sp-3"
15780
- })(["font-weight:bold;color:", " !important;margin-right:10px;"], uiColors.yellow);
15781
- var Value$2 = /*#__PURE__*/styled.span.withConfig({
15782
- displayName: "QuestList__Value",
15783
- componentId: "sc-1c1y8sp-4"
15784
- })(["flex-grow:1;color:", ";word-wrap:break-word;"], uiColors.white);
15785
- var NoQuestContainer = /*#__PURE__*/styled.div.withConfig({
15786
- displayName: "QuestList__NoQuestContainer",
15787
- componentId: "sc-1c1y8sp-5"
15788
- })(["text-align:center;p{margin-top:5px;color:", ";}"], uiColors.lightGray);
15789
16028
  var formatQuestText = function formatQuestText(text) {
15790
16029
  if (!text) return '';
15791
16030
  return text.split('-').map(function (word) {
@@ -15810,6 +16049,73 @@ var formatQuestStatus = function formatQuestStatus(status) {
15810
16049
  return c.toUpperCase();
15811
16050
  });
15812
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);
15813
16119
 
15814
16120
  var InputRadio = function InputRadio(_ref) {
15815
16121
  var name = _ref.name,
@@ -15862,9 +16168,9 @@ var RadioSelectCard = function RadioSelectCard(_ref) {
15862
16168
  onClick: onClick,
15863
16169
  "data-testid": testId,
15864
16170
  type: "button"
15865
- }, 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, {
15866
16172
  "$active": active
15867
- }, 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, {
15868
16174
  "$active": active
15869
16175
  }, badge));
15870
16176
  };
@@ -15896,14 +16202,14 @@ var Body = /*#__PURE__*/styled.div.withConfig({
15896
16202
  displayName: "RadioSelectCard__Body",
15897
16203
  componentId: "sc-12jrcz1-2"
15898
16204
  })(["flex:1 !important;min-width:0 !important;display:flex !important;flex-direction:column !important;gap:0.2rem !important;"]);
15899
- var Label$7 = /*#__PURE__*/styled.span.withConfig({
16205
+ var Label$6 = /*#__PURE__*/styled.span.withConfig({
15900
16206
  displayName: "RadioSelectCard__Label",
15901
16207
  componentId: "sc-12jrcz1-3"
15902
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) {
15903
16209
  var $active = _ref7.$active;
15904
16210
  return $active ? '#f59e0b' : 'rgba(255, 255, 255, 0.9)';
15905
16211
  });
15906
- var Description$5 = /*#__PURE__*/styled.span.withConfig({
16212
+ var Description$6 = /*#__PURE__*/styled.span.withConfig({
15907
16213
  displayName: "RadioSelectCard__Description",
15908
16214
  componentId: "sc-12jrcz1-4"
15909
16215
  })(["font-size:0.62rem !important;color:rgba(255,255,255,0.45) !important;line-height:1.4 !important;"]);
@@ -16436,11 +16742,11 @@ var SkillInfoModal = function SkillInfoModal(_ref) {
16436
16742
  onPointerDown: onClose
16437
16743
  }), React.createElement(ModalContainer$7, null, React.createElement(ModalContent$7, {
16438
16744
  onPointerDown: stopPropagation
16439
- }, React.createElement(Header$d, null, React.createElement(Title$i, {
16745
+ }, React.createElement(Header$e, null, React.createElement(Title$j, {
16440
16746
  "$color": info.color
16441
16747
  }, info.name), React.createElement(CloseButton$g, {
16442
16748
  onPointerDown: onClose
16443
- }, 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)))));
16444
16750
  };
16445
16751
  var Overlay$9 = /*#__PURE__*/styled.div.withConfig({
16446
16752
  displayName: "SkillInfoModal__Overlay",
@@ -16454,11 +16760,11 @@ var ModalContent$7 = /*#__PURE__*/styled.div.withConfig({
16454
16760
  displayName: "SkillInfoModal__ModalContent",
16455
16761
  componentId: "sc-pqkzdj-2"
16456
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;}}"]);
16457
- var Header$d = /*#__PURE__*/styled.div.withConfig({
16763
+ var Header$e = /*#__PURE__*/styled.div.withConfig({
16458
16764
  displayName: "SkillInfoModal__Header",
16459
16765
  componentId: "sc-pqkzdj-3"
16460
16766
  })(["display:flex;align-items:center;gap:8px;"]);
16461
- var Title$i = /*#__PURE__*/styled.h3.withConfig({
16767
+ var Title$j = /*#__PURE__*/styled.h3.withConfig({
16462
16768
  displayName: "SkillInfoModal__Title",
16463
16769
  componentId: "sc-pqkzdj-4"
16464
16770
  })(["margin:0;flex:1;font-family:'Press Start 2P',cursive;font-size:0.65rem;color:", ";"], function (_ref2) {
@@ -16469,11 +16775,11 @@ var CloseButton$g = /*#__PURE__*/styled.button.withConfig({
16469
16775
  displayName: "SkillInfoModal__CloseButton",
16470
16776
  componentId: "sc-pqkzdj-5"
16471
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;}"]);
16472
- var Section$4 = /*#__PURE__*/styled.div.withConfig({
16778
+ var Section$7 = /*#__PURE__*/styled.div.withConfig({
16473
16779
  displayName: "SkillInfoModal__Section",
16474
16780
  componentId: "sc-pqkzdj-6"
16475
16781
  })(["display:flex;flex-direction:column;gap:6px;"]);
16476
- var Label$8 = /*#__PURE__*/styled.span.withConfig({
16782
+ var Label$7 = /*#__PURE__*/styled.span.withConfig({
16477
16783
  displayName: "SkillInfoModal__Label",
16478
16784
  componentId: "sc-pqkzdj-7"
16479
16785
  })(["font-size:0.5rem;font-weight:bold;text-transform:uppercase;letter-spacing:0.05em;color:rgba(255,255,255,0.45);"]);
@@ -16786,7 +17092,7 @@ var SpellInfo$1 = function SpellInfo(_ref) {
16786
17092
  castingType = spell.castingType,
16787
17093
  cooldown = spell.cooldown,
16788
17094
  maxDistanceGrid = spell.maxDistanceGrid;
16789
- 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", {
16790
17096
  className: "label"
16791
17097
  }, "Casting Type:"), React.createElement("div", {
16792
17098
  className: "value"
@@ -16810,13 +17116,13 @@ var SpellInfo$1 = function SpellInfo(_ref) {
16810
17116
  className: "label"
16811
17117
  }, "Required Item:"), React.createElement("div", {
16812
17118
  className: "value"
16813
- }, requiredItem))), React.createElement(Description$6, null, description));
17119
+ }, requiredItem))), React.createElement(Description$7, null, description));
16814
17120
  };
16815
17121
  var Container$G = /*#__PURE__*/styled.div.withConfig({
16816
17122
  displayName: "SpellInfo__Container",
16817
17123
  componentId: "sc-4hbw3q-0"
16818
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);
16819
- var Title$j = /*#__PURE__*/styled.div.withConfig({
17125
+ var Title$k = /*#__PURE__*/styled.div.withConfig({
16820
17126
  displayName: "SpellInfo__Title",
16821
17127
  componentId: "sc-4hbw3q-1"
16822
17128
  })(["font-size:", ";font-weight:bold;margin-bottom:0.5rem;display:flex;align-items:center;margin:0;"], uiFonts.size.medium);
@@ -16824,11 +17130,11 @@ var Type$1 = /*#__PURE__*/styled.div.withConfig({
16824
17130
  displayName: "SpellInfo__Type",
16825
17131
  componentId: "sc-4hbw3q-2"
16826
17132
  })(["font-size:", ";margin-top:0.2rem;color:", ";"], uiFonts.size.small, uiColors.lightGray);
16827
- var Description$6 = /*#__PURE__*/styled.div.withConfig({
17133
+ var Description$7 = /*#__PURE__*/styled.div.withConfig({
16828
17134
  displayName: "SpellInfo__Description",
16829
17135
  componentId: "sc-4hbw3q-3"
16830
17136
  })(["margin-top:1.5rem;font-size:", ";color:", ";font-style:italic;"], uiFonts.size.small, uiColors.lightGray);
16831
- var Header$e = /*#__PURE__*/styled.div.withConfig({
17137
+ var Header$f = /*#__PURE__*/styled.div.withConfig({
16832
17138
  displayName: "SpellInfo__Header",
16833
17139
  componentId: "sc-4hbw3q-4"
16834
17140
  })(["display:flex;align-items:center;justify-content:space-between;margin-bottom:0.5rem;"]);
@@ -17055,9 +17361,9 @@ var Spell = function Spell(_ref) {
17055
17361
  imgScale: IMAGE_SCALE,
17056
17362
  containerStyle: CONTAINER_STYLE,
17057
17363
  centered: true
17058
- })), 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", {
17059
17365
  className: "spell"
17060
- }, "(", 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", {
17061
17367
  className: "mana"
17062
17368
  }, manaCost))));
17063
17369
  };
@@ -17076,11 +17382,11 @@ var Info = /*#__PURE__*/styled.span.withConfig({
17076
17382
  displayName: "Spell__Info",
17077
17383
  componentId: "sc-j96fa2-2"
17078
17384
  })(["width:0;flex:1;@media (orientation:portrait){display:none;}"]);
17079
- var Title$k = /*#__PURE__*/styled.p.withConfig({
17385
+ var Title$l = /*#__PURE__*/styled.p.withConfig({
17080
17386
  displayName: "Spell__Title",
17081
17387
  componentId: "sc-j96fa2-3"
17082
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);
17083
- var Description$7 = /*#__PURE__*/styled.div.withConfig({
17389
+ var Description$8 = /*#__PURE__*/styled.div.withConfig({
17084
17390
  displayName: "Spell__Description",
17085
17391
  componentId: "sc-j96fa2-4"
17086
17392
  })(["font-size:", " !important;line-height:1.1 !important;"], uiFonts.size.small);
@@ -17141,7 +17447,7 @@ var Spellbook = function Spellbook(_ref) {
17141
17447
  height: "inherit",
17142
17448
  cancelDrag: "#spellbook-search, #shortcuts_list, .spell",
17143
17449
  scale: scale
17144
- }, 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, {
17145
17451
  setSettingShortcutIndex: setSettingShortcutIndex,
17146
17452
  settingShortcutIndex: settingShortcutIndex,
17147
17453
  shortcuts: shortcuts,
@@ -17174,7 +17480,7 @@ var Spellbook = function Spellbook(_ref) {
17174
17480
  }, spell)));
17175
17481
  }))));
17176
17482
  };
17177
- var Title$l = /*#__PURE__*/styled.h1.withConfig({
17483
+ var Title$m = /*#__PURE__*/styled.h1.withConfig({
17178
17484
  displayName: "Spellbook__Title",
17179
17485
  componentId: "sc-r02nfq-0"
17180
17486
  })(["font-size:", " !important;margin-bottom:0 !important;"], uiFonts.size.large);
@@ -37594,7 +37900,7 @@ var PurchaseSuccess = function PurchaseSuccess(_ref) {
37594
37900
  key: i,
37595
37901
  "$i": i
37596
37902
  });
37597
- })), 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) {
37598
37904
  var _item$metadata;
37599
37905
  var isCharSkin = item.metadataType === MetadataType.CharacterSkin;
37600
37906
  var spriteKey = isCharSkin && (_item$metadata = item.metadata) != null && _item$metadata.selectedSkinTextureKey ? item.metadata.selectedSkinTextureKey + "/down/standing/0.png" : item.texturePath;
@@ -37641,7 +37947,7 @@ var Spark = /*#__PURE__*/styled.div.withConfig({
37641
37947
  }, function (p) {
37642
37948
  return p.$i * 0.2;
37643
37949
  });
37644
- var Header$f = /*#__PURE__*/styled.div.withConfig({
37950
+ var Header$g = /*#__PURE__*/styled.div.withConfig({
37645
37951
  displayName: "PurchaseSuccess__Header",
37646
37952
  componentId: "sc-18z5q21-3"
37647
37953
  })(["display:flex;flex-direction:column;align-items:center;gap:0.5rem;"]);
@@ -37653,7 +37959,7 @@ var TrophyIcon = /*#__PURE__*/styled.div.withConfig({
37653
37959
  displayName: "PurchaseSuccess__TrophyIcon",
37654
37960
  componentId: "sc-18z5q21-5"
37655
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);
37656
- var Title$m = /*#__PURE__*/styled.h2.withConfig({
37962
+ var Title$n = /*#__PURE__*/styled.h2.withConfig({
37657
37963
  displayName: "PurchaseSuccess__Title",
37658
37964
  componentId: "sc-18z5q21-6"
37659
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);"]);
@@ -37703,7 +38009,7 @@ var MetadataDisplay = function MetadataDisplay(_ref) {
37703
38009
  metadata = _ref.metadata;
37704
38010
  switch (type) {
37705
38011
  case MetadataType.CharacterSkin:
37706
- 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'));
37707
38013
  default:
37708
38014
  return null;
37709
38015
  }
@@ -37816,26 +38122,27 @@ var CartView = function CartView(_ref2) {
37816
38122
  onClose: onCloseStore != null ? onCloseStore : onClose
37817
38123
  });
37818
38124
  }
37819
- 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) {
37820
38126
  return s + ci.quantity;
37821
38127
  }, 0), ")"), React.createElement(CloseButton$i, {
37822
38128
  onPointerDown: onClose
37823
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) {
37824
- 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;
37825
38131
  var getSpriteKey = function getSpriteKey(textureKey) {
37826
38132
  return textureKey + '/down/standing/0.png';
37827
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;
37828
38135
  return React.createElement(CartItemRow, {
37829
38136
  key: cartItem.item.key
37830
38137
  }, React.createElement(ItemIconContainer, null, React.createElement(SpriteFromAtlas, {
37831
38138
  atlasJSON: cartItem.item.metadataType === MetadataType.CharacterSkin ? characterAtlasJSON : atlasJSON,
37832
38139
  atlasIMG: cartItem.item.metadataType === MetadataType.CharacterSkin ? img$9 : atlasIMG,
37833
- 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,
37834
38141
  width: 24,
37835
38142
  height: 24,
37836
38143
  imgScale: 1.5,
37837
38144
  centered: true
37838
- })), 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, {
37839
38146
  type: cartItem.item.metadataType,
37840
38147
  metadata: cartItem.metadata
37841
38148
  })), React.createElement(CTAButton, {
@@ -37863,11 +38170,11 @@ var Container$M = /*#__PURE__*/styled.div.withConfig({
37863
38170
  displayName: "CartView__Container",
37864
38171
  componentId: "sc-ydtyl1-0"
37865
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;}"]);
37866
- var Header$g = /*#__PURE__*/styled.div.withConfig({
38173
+ var Header$h = /*#__PURE__*/styled.div.withConfig({
37867
38174
  displayName: "CartView__Header",
37868
38175
  componentId: "sc-ydtyl1-1"
37869
38176
  })(["display:flex;justify-content:space-between;align-items:center;flex-shrink:0;"]);
37870
- var Title$n = /*#__PURE__*/styled.h2.withConfig({
38177
+ var Title$o = /*#__PURE__*/styled.h2.withConfig({
37871
38178
  displayName: "CartView__Title",
37872
38179
  componentId: "sc-ydtyl1-2"
37873
38180
  })(["font-family:'Press Start 2P',cursive;font-size:1rem;color:#ffffff;margin:0;"]);
@@ -38401,6 +38708,17 @@ function uuidv4() {
38401
38708
  });
38402
38709
  }
38403
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
+ };
38404
38722
  var MetadataCollector = function MetadataCollector(_ref) {
38405
38723
  var metadataType = _ref.metadataType,
38406
38724
  config = _ref.config,
@@ -38441,9 +38759,7 @@ var MetadataCollector = function MetadataCollector(_ref) {
38441
38759
  isOpen: true,
38442
38760
  onClose: handleCancel,
38443
38761
  onConfirm: function onConfirm(selectedSkin) {
38444
- return handleCollect({
38445
- selectedSkin: selectedSkin
38446
- });
38762
+ return handleCollect(getCharacterSkinMetadata(selectedSkin, config.availableCharacters || []));
38447
38763
  },
38448
38764
  availableCharacters: config.availableCharacters || [],
38449
38765
  atlasJSON: config.atlasJSON,
@@ -38498,7 +38814,7 @@ var PaymentMethodModal = function PaymentMethodModal(_ref) {
38498
38814
  onClick: stopPropagation,
38499
38815
  onTouchStart: stopPropagation,
38500
38816
  onPointerDown: stopPropagation
38501
- }, 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, {
38502
38818
  onPointerDown: onClose,
38503
38819
  "aria-label": "Close"
38504
38820
  }, React.createElement(Cancel, null))), React.createElement(Options$1, null, React.createElement(RadioOption$2, {
@@ -38540,11 +38856,11 @@ var ModalContent$8 = /*#__PURE__*/styled.div.withConfig({
38540
38856
  displayName: "PaymentMethodModal__ModalContent",
38541
38857
  componentId: "sc-1dxy6lr-2"
38542
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;}}"]);
38543
- var Header$h = /*#__PURE__*/styled.div.withConfig({
38859
+ var Header$i = /*#__PURE__*/styled.div.withConfig({
38544
38860
  displayName: "PaymentMethodModal__Header",
38545
38861
  componentId: "sc-1dxy6lr-3"
38546
38862
  })(["display:flex;align-items:center;justify-content:space-between;"]);
38547
- var Title$o = /*#__PURE__*/styled.h3.withConfig({
38863
+ var Title$p = /*#__PURE__*/styled.h3.withConfig({
38548
38864
  displayName: "PaymentMethodModal__Title",
38549
38865
  componentId: "sc-1dxy6lr-4"
38550
38866
  })(["margin:0;font-family:'Press Start 2P',cursive;font-size:0.7rem;color:#fef08a;"]);
@@ -38910,7 +39226,7 @@ var StoreCharacterSkinRow = function StoreCharacterSkinRow(_ref) {
38910
39226
  height: 32,
38911
39227
  imgScale: 2,
38912
39228
  centered: true
38913
- }) : 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, {
38914
39230
  direction: "left",
38915
39231
  onPointerDown: handlePreviousSkin,
38916
39232
  size: 24
@@ -39043,7 +39359,7 @@ var SkinNavArrow = /*#__PURE__*/styled(SelectArrow).withConfig({
39043
39359
  displayName: "StoreCharacterSkinRow__SkinNavArrow",
39044
39360
  componentId: "sc-81xqsx-10"
39045
39361
  })(["position:static;"]);
39046
- var Header$i = /*#__PURE__*/styled.div.withConfig({
39362
+ var Header$j = /*#__PURE__*/styled.div.withConfig({
39047
39363
  displayName: "StoreCharacterSkinRow__Header",
39048
39364
  componentId: "sc-81xqsx-11"
39049
39365
  })(["display:flex;align-items:center;gap:0.5rem;"]);
@@ -39852,7 +40168,7 @@ var StoreRedeemSection = function StoreRedeemSection(_ref) {
39852
40168
  height: 32
39853
40169
  })), React.createElement(SuccessTitle, null, "Code Redeemed!"), dcAmount != null && React.createElement(DCAmountDisplay, null, "+", React.createElement(MMORPGNumber, {
39854
40170
  value: dcAmount
39855
- }), " 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, {
39856
40172
  icon: React.createElement(Receipt, null),
39857
40173
  label: "Redeem Another",
39858
40174
  onClick: handleReset
@@ -39862,13 +40178,13 @@ var StoreRedeemSection = function StoreRedeemSection(_ref) {
39862
40178
  return React.createElement(Container$O, null, React.createElement(ResultContainer, null, React.createElement(ErrorIcon, null, React.createElement(WarningDiamond, {
39863
40179
  width: 32,
39864
40180
  height: 32
39865
- })), 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, {
39866
40182
  icon: React.createElement(Receipt, null),
39867
40183
  label: "Try Again",
39868
40184
  onClick: handleReset
39869
40185
  }))));
39870
40186
  }
39871
- 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, {
39872
40188
  type: "text",
39873
40189
  value: code,
39874
40190
  onChange: function onChange(e) {
@@ -39881,7 +40197,7 @@ var StoreRedeemSection = function StoreRedeemSection(_ref) {
39881
40197
  disabled: status === 'loading',
39882
40198
  autoComplete: "off",
39883
40199
  spellCheck: false
39884
- })), React.createElement(ButtonWrapper$3, null, React.createElement(CTAButton, {
40200
+ })), React.createElement(ButtonWrapper$4, null, React.createElement(CTAButton, {
39885
40201
  icon: React.createElement(Receipt, null),
39886
40202
  label: status === 'loading' ? 'Redeeming...' : 'Redeem Code',
39887
40203
  onClick: function onClick() {
@@ -39895,11 +40211,11 @@ var Container$O = /*#__PURE__*/styled.div.withConfig({
39895
40211
  displayName: "StoreRedeemSection__Container",
39896
40212
  componentId: "sc-1pzosml-0"
39897
40213
  })(["display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem;max-width:420px;margin:0 auto;gap:1rem;"]);
39898
- var Title$p = /*#__PURE__*/styled.h3.withConfig({
40214
+ var Title$q = /*#__PURE__*/styled.h3.withConfig({
39899
40215
  displayName: "StoreRedeemSection__Title",
39900
40216
  componentId: "sc-1pzosml-1"
39901
40217
  })(["font-family:'Press Start 2P',cursive;font-size:0.85rem;color:", ";margin:0;text-align:center;"], uiColors.white);
39902
- var Description$8 = /*#__PURE__*/styled.p.withConfig({
40218
+ var Description$9 = /*#__PURE__*/styled.p.withConfig({
39903
40219
  displayName: "StoreRedeemSection__Description",
39904
40220
  componentId: "sc-1pzosml-2"
39905
40221
  })(["font-family:'Press Start 2P',cursive;font-size:0.55rem;color:", ";margin:0;text-align:center;line-height:1.6;"], uiColors.lightGray);
@@ -39911,7 +40227,7 @@ var CodeInput = /*#__PURE__*/styled.input.withConfig({
39911
40227
  displayName: "StoreRedeemSection__CodeInput",
39912
40228
  componentId: "sc-1pzosml-4"
39913
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);
39914
- var ButtonWrapper$3 = /*#__PURE__*/styled.div.withConfig({
40230
+ var ButtonWrapper$4 = /*#__PURE__*/styled.div.withConfig({
39915
40231
  displayName: "StoreRedeemSection__ButtonWrapper",
39916
40232
  componentId: "sc-1pzosml-5"
39917
40233
  })(["width:100%;margin-top:0.5rem;"]);
@@ -39958,14 +40274,14 @@ var StoreItemDetails = function StoreItemDetails(_ref) {
39958
40274
  if (typeof imageUrl === 'string') return imageUrl;
39959
40275
  return imageUrl["default"] || imageUrl.src;
39960
40276
  };
39961
- 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, {
39962
40278
  onClick: onBack
39963
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", {
39964
40280
  src: getImageSrc(),
39965
40281
  alt: item.name
39966
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, {
39967
40283
  value: item.dcPrice
39968
- }), " 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, {
39969
40285
  icon: React.createElement(ShoppingCart, null),
39970
40286
  label: "Add to Cart",
39971
40287
  onClick: function onClick() {
@@ -39978,7 +40294,7 @@ var Container$P = /*#__PURE__*/styled.div.withConfig({
39978
40294
  displayName: "StoreItemDetails__Container",
39979
40295
  componentId: "sc-k3ho5z-0"
39980
40296
  })(["display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;height:100%;"]);
39981
- var Header$j = /*#__PURE__*/styled.div.withConfig({
40297
+ var Header$k = /*#__PURE__*/styled.div.withConfig({
39982
40298
  displayName: "StoreItemDetails__Header",
39983
40299
  componentId: "sc-k3ho5z-1"
39984
40300
  })(["display:flex;align-items:center;gap:1rem;"]);
@@ -40010,7 +40326,7 @@ var ItemPrice$2 = /*#__PURE__*/styled.div.withConfig({
40010
40326
  displayName: "StoreItemDetails__ItemPrice",
40011
40327
  componentId: "sc-k3ho5z-8"
40012
40328
  })(["font-family:'Press Start 2P',cursive;font-size:1rem;color:#fef08a;"]);
40013
- var Description$9 = /*#__PURE__*/styled.p.withConfig({
40329
+ var Description$a = /*#__PURE__*/styled.p.withConfig({
40014
40330
  displayName: "StoreItemDetails__Description",
40015
40331
  componentId: "sc-k3ho5z-9"
40016
40332
  })(["margin:0;font-family:'Press Start 2P',cursive;font-size:0.875rem;line-height:1.6;color:#ffffff;"]);
@@ -40703,7 +41019,7 @@ var TradingMenu = function TradingMenu(_ref) {
40703
41019
  width: "500px",
40704
41020
  cancelDrag: "#TraderContainer",
40705
41021
  scale: scale
40706
- }, 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", {
40707
41023
  className: "golden"
40708
41024
  }), React.createElement(ScrollWrapper, {
40709
41025
  id: "TraderContainer"
@@ -40720,7 +41036,7 @@ var TradingMenu = function TradingMenu(_ref) {
40720
41036
  scale: scale,
40721
41037
  isBuy: isBuy()
40722
41038
  });
40723
- })), 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, {
40724
41040
  buttonType: ButtonTypes.RPGUIButton,
40725
41041
  disabled: !hasGoldForSale(),
40726
41042
  onPointerDown: function onPointerDown() {
@@ -40735,7 +41051,7 @@ var Container$R = /*#__PURE__*/styled.div.withConfig({
40735
41051
  displayName: "TradingMenu__Container",
40736
41052
  componentId: "sc-1wjsz1l-0"
40737
41053
  })(["width:100%;"]);
40738
- var Title$q = /*#__PURE__*/styled.h1.withConfig({
41054
+ var Title$r = /*#__PURE__*/styled.h1.withConfig({
40739
41055
  displayName: "TradingMenu__Title",
40740
41056
  componentId: "sc-1wjsz1l-1"
40741
41057
  })(["font-size:0.7rem !important;color:yellow !important;text-align:center;"]);
@@ -40755,7 +41071,7 @@ var AlertText = /*#__PURE__*/styled.p.withConfig({
40755
41071
  displayName: "TradingMenu__AlertText",
40756
41072
  componentId: "sc-1wjsz1l-5"
40757
41073
  })(["color:red !important;text-align:center;margin:0.3rem 0;font-size:0.5rem;"]);
40758
- var ButtonWrapper$4 = /*#__PURE__*/styled.div.withConfig({
41074
+ var ButtonWrapper$5 = /*#__PURE__*/styled.div.withConfig({
40759
41075
  displayName: "TradingMenu__ButtonWrapper",
40760
41076
  componentId: "sc-1wjsz1l-6"
40761
41077
  })(["display:flex;justify-content:space-around;width:100%;margin-top:1rem;"]);
@@ -40923,5 +41239,5 @@ var LessonContainer = /*#__PURE__*/styled.div.withConfig({
40923
41239
  componentId: "sc-7tgzv2-7"
40924
41240
  })(["display:flex;flex-direction:column;justify-content:space-between;min-height:200px;p{font-size:0.7rem !important;}"]);
40925
41241
 
40926
- 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 };
40927
41243
  //# sourceMappingURL=long-bow.esm.js.map