@rpg-engine/long-bow 0.8.35 → 0.8.37

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.
@@ -2,7 +2,7 @@ import React, { useState, useEffect, Component, useRef, useCallback, useContext,
2
2
  import styled, { css, 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, ItemRarities, ItemContainerType, ItemType, DepotSocketEvents, ItemSocketEvents, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemSubType, isMobile, ItemSlotType, isMobileOrTablet, NPCSubtype, EntityAttackType, NPCAlignment, VideoGuideCategory, VideoGuideLanguage, CharacterClass, QuestStatus, getSPForLevel, getXPForLevel, PeriodOfDay, UserAccountTypes } 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, ItemSlotType, isMobileOrTablet, NPCSubtype, EntityAttackType, NPCAlignment, VideoGuideCategory, VideoGuideLanguage, CharacterClass, QuestStatus, getSPForLevel, getXPForLevel, PeriodOfDay, UserAccountTypes } from '@rpg-engine/shared';
6
6
  import dayjs from 'dayjs';
7
7
  import { ErrorBoundary as ErrorBoundary$1 } from 'react-error-boundary';
8
8
  import { FaTimes, FaDiscord, FaWhatsapp, FaSearch, FaThumbtack, FaBoxOpen, FaChevronLeft, FaChevronRight, FaChevronUp, FaChevronDown, FaReddit } from 'react-icons/fa';
@@ -27518,175 +27518,6 @@ function useTouchTarget() {
27518
27518
  return getTouchTarget;
27519
27519
  }
27520
27520
 
27521
- var rarityColor = function rarityColor(item) {
27522
- switch (item == null ? void 0 : item.rarity) {
27523
- case ItemRarities.Uncommon:
27524
- return 'rgba(13, 193, 13, 0.6)';
27525
- case ItemRarities.Rare:
27526
- return 'rgba(8, 104, 187, 0.6)';
27527
- case ItemRarities.Epic:
27528
- return 'rgba(191, 0, 255, 0.6)';
27529
- case ItemRarities.Legendary:
27530
- return 'rgba(255, 191, 0,0.6)';
27531
- default:
27532
- return null;
27533
- }
27534
- };
27535
-
27536
- var gemColors = {
27537
- 'emerald-gem': '#50C878',
27538
- 'topaz-radiance': '#FFC87C',
27539
- 'sapphire-gem': '#0F52BA',
27540
- 'ruby-gem': '#E0115F',
27541
- 'misty-quartz-gem': '#D9D9F3',
27542
- 'coral-reef-gem': '#FF7F50',
27543
- 'jasper-gem': '#D73B3E',
27544
- 'earthstone-gem': '#8B4513',
27545
- 'obsidian-gem': '#0B0C0E',
27546
- 'amethyst-gem': '#9966CC'
27547
- };
27548
- var defaultColor = '#FFFFFF'; // Default color (white)
27549
- var onRenderGems = function onRenderGems(item) {
27550
- var _item$attachedGems;
27551
- var gemQty = ((_item$attachedGems = item.attachedGems) == null ? void 0 : _item$attachedGems.length) || 0;
27552
- if (gemQty > 0) {
27553
- return React.createElement(ItemSlotQty, {
27554
- item: item
27555
- });
27556
- }
27557
- return undefined;
27558
- };
27559
- var ItemSlotQty = function ItemSlotQty(_ref) {
27560
- var _item$attachedGems2;
27561
- var item = _ref.item;
27562
- var itemId = item._id;
27563
- return React.createElement(ItemQtyContainer, {
27564
- key: "qty-" + itemId,
27565
- className: "item-slot-qty"
27566
- }, (_item$attachedGems2 = item.attachedGems) == null ? void 0 : _item$attachedGems2.map(function (gem, index) {
27567
- return React.createElement(Gem, {
27568
- key: itemId + "-gem-" + index,
27569
- color: gemColors[gem.key] || defaultColor
27570
- });
27571
- }));
27572
- };
27573
- var ItemQtyContainer = /*#__PURE__*/styled.div.withConfig({
27574
- displayName: "ItemGem__ItemQtyContainer",
27575
- componentId: "sc-1ekseaq-0"
27576
- })(["position:relative;width:85%;height:16px;top:28px;left:0px;pointer-events:none;transform:scale(0.8);display:flex;align-items:center;justify-content:flex-start;opacity:0.8;"]);
27577
- var Gem = /*#__PURE__*/styled.div.withConfig({
27578
- displayName: "ItemGem__Gem",
27579
- componentId: "sc-1ekseaq-1"
27580
- })(["width:8px;height:8px;background:", ";border:1px solid black;transform:rotate(45deg);margin:0 2px;box-shadow:0 0 5px ", ";transition:transform 0.2s,box-shadow 0.2s;&:hover{transform:rotate(45deg) scale(1.2);box-shadow:0 0 10px ", ";}"], function (_ref2) {
27581
- var color = _ref2.color;
27582
- return "radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.8), transparent 30%), \n linear-gradient(45deg, " + color + ", " + color + " 50%, rgba(255, 255, 255, 0.2))";
27583
- }, function (_ref3) {
27584
- var color = _ref3.color;
27585
- return color;
27586
- }, function (_ref4) {
27587
- var color = _ref4.color;
27588
- return color;
27589
- });
27590
-
27591
- var onRenderStackInfo = function onRenderStackInfo(itemId, stackQty) {
27592
- var isFractionalStackQty = stackQty % 1 !== 0;
27593
- var isLargerThan999 = stackQty > 999;
27594
- var qtyClassName = 'regular';
27595
- if (isLargerThan999) qtyClassName = 'small';
27596
- if (isFractionalStackQty) qtyClassName = 'xsmall';
27597
- if (stackQty > 1) {
27598
- return React.createElement(ItemSlotQty$1, {
27599
- itemId: itemId,
27600
- stackQty: stackQty,
27601
- qtyClassName: qtyClassName
27602
- });
27603
- }
27604
- return undefined;
27605
- };
27606
- var ItemSlotQty$1 = function ItemSlotQty(_ref) {
27607
- var itemId = _ref.itemId,
27608
- stackQty = _ref.stackQty,
27609
- qtyClassName = _ref.qtyClassName;
27610
- return React.createElement(ItemQtyContainer$1, {
27611
- key: "qty-" + itemId,
27612
- className: "item-slot-qty"
27613
- }, React.createElement(Ellipsis, {
27614
- maxLines: 1,
27615
- maxWidth: "48px"
27616
- }, React.createElement(ItemQty, {
27617
- className: qtyClassName
27618
- }, Math.round(stackQty * 100) / 100, ' ')));
27619
- };
27620
- var ItemQtyContainer$1 = /*#__PURE__*/styled.div.withConfig({
27621
- displayName: "ItemSlotQty__ItemQtyContainer",
27622
- componentId: "sc-keb1s5-0"
27623
- })(["position:relative;width:85%;height:16px;top:25px;left:2px;pointer-events:none;display:flex;justify-content:flex-end;"]);
27624
- var ItemQty = /*#__PURE__*/styled.span.withConfig({
27625
- displayName: "ItemSlotQty__ItemQty",
27626
- componentId: "sc-keb1s5-1"
27627
- })(["&.regular{font-size:", ";}&.small{font-size:", ";}&.xsmall{font-size:", ";}"], uiFonts.size.small, uiFonts.size.xsmall, uiFonts.size.xxsmall);
27628
-
27629
- var ItemSlotRenderer = function ItemSlotRenderer(_ref) {
27630
- var containerType = _ref.containerType,
27631
- atlasJSON = _ref.atlasJSON,
27632
- atlasIMG = _ref.atlasIMG,
27633
- slotSpriteMask = _ref.slotSpriteMask,
27634
- item = _ref.item;
27635
- var renderStackInfo = function renderStackInfo(item) {
27636
- return item.stackQty && item.stackQty > 1 && onRenderStackInfo(item._id, item.stackQty);
27637
- };
27638
- var renderGems = function renderGems(item) {
27639
- return item.attachedGems && onRenderGems(item);
27640
- };
27641
- var renderItem = function renderItem(item) {
27642
- if (!(item != null && item.texturePath)) {
27643
- return null;
27644
- }
27645
- return React.createElement(ErrorBoundary, {
27646
- key: item._id
27647
- }, React.createElement(SpriteFromAtlas, {
27648
- atlasIMG: atlasIMG,
27649
- atlasJSON: atlasJSON,
27650
- spriteKey: getItemTextureKeyPath({
27651
- key: item.texturePath,
27652
- texturePath: item.texturePath,
27653
- stackQty: item.stackQty || 1,
27654
- isStackable: item.isStackable
27655
- }, atlasJSON),
27656
- imgScale: 3,
27657
- imgClassname: "sprite-from-atlas-img--item",
27658
- tintColor: item.tintColor
27659
- }), renderStackInfo(item), renderGems(item));
27660
- };
27661
- var renderEquipment = function renderEquipment(itemToRender) {
27662
- var _itemToRender$allowed;
27663
- if (!(itemToRender != null && itemToRender.texturePath) || !((_itemToRender$allowed = itemToRender.allowedEquipSlotType) != null && _itemToRender$allowed.includes(slotSpriteMask))) {
27664
- return React.createElement(ErrorBoundary, {
27665
- key: v4()
27666
- }, React.createElement(SpriteFromAtlas, {
27667
- key: v4(),
27668
- atlasIMG: atlasIMG,
27669
- atlasJSON: atlasJSON,
27670
- spriteKey: EquipmentSlotSpriteByType[slotSpriteMask],
27671
- imgScale: 3,
27672
- grayScale: true,
27673
- opacity: 0.4,
27674
- imgClassname: "sprite-from-atlas-img--item"
27675
- }));
27676
- }
27677
- return renderItem(itemToRender);
27678
- };
27679
- var onRenderSlot = function onRenderSlot(itemToRender) {
27680
- switch (containerType) {
27681
- case ItemContainerType.Equipment:
27682
- return renderEquipment(itemToRender);
27683
- default:
27684
- return renderItem(itemToRender);
27685
- }
27686
- };
27687
- return React.createElement(React.Fragment, null, onRenderSlot(item));
27688
- };
27689
-
27690
27521
  var generateContextMenuListOptions = function generateContextMenuListOptions(actionsByTypeList) {
27691
27522
  var contextMenu = actionsByTypeList.map(function (action) {
27692
27523
  return {
@@ -27948,6 +27779,194 @@ var ItemSlotDraggingProvider = function ItemSlotDraggingProvider(_ref) {
27948
27779
  }, children);
27949
27780
  };
27950
27781
 
27782
+ var qualityColorHex = function qualityColorHex(item) {
27783
+ switch (item == null ? void 0 : item.quality) {
27784
+ case ItemQualityLevel.HighQuality:
27785
+ return '#00bfff';
27786
+ case ItemQualityLevel.Exceptional:
27787
+ return '#ff8c00';
27788
+ case ItemQualityLevel.Mastercrafted:
27789
+ return '#ff00ff';
27790
+ case ItemQualityLevel.Ancient:
27791
+ return '#ffd700';
27792
+ case ItemQualityLevel.Mythic:
27793
+ return '#ff0080';
27794
+ default:
27795
+ return 'transparent';
27796
+ }
27797
+ };
27798
+
27799
+ var rarityColor = function rarityColor(item) {
27800
+ switch (item == null ? void 0 : item.rarity) {
27801
+ case ItemRarities.Uncommon:
27802
+ return 'rgba(13, 193, 13, 0.6)';
27803
+ case ItemRarities.Rare:
27804
+ return 'rgba(8, 104, 187, 0.6)';
27805
+ case ItemRarities.Epic:
27806
+ return 'rgba(191, 0, 255, 0.6)';
27807
+ case ItemRarities.Legendary:
27808
+ return 'rgba(255, 191, 0,0.6)';
27809
+ default:
27810
+ return null;
27811
+ }
27812
+ };
27813
+
27814
+ var gemColors = {
27815
+ 'emerald-gem': '#50C878',
27816
+ 'topaz-radiance': '#FFC87C',
27817
+ 'sapphire-gem': '#0F52BA',
27818
+ 'ruby-gem': '#E0115F',
27819
+ 'misty-quartz-gem': '#D9D9F3',
27820
+ 'coral-reef-gem': '#FF7F50',
27821
+ 'jasper-gem': '#D73B3E',
27822
+ 'earthstone-gem': '#8B4513',
27823
+ 'obsidian-gem': '#0B0C0E',
27824
+ 'amethyst-gem': '#9966CC'
27825
+ };
27826
+ var defaultColor = '#FFFFFF'; // Default color (white)
27827
+ var onRenderGems = function onRenderGems(item) {
27828
+ var _item$attachedGems;
27829
+ var gemQty = ((_item$attachedGems = item.attachedGems) == null ? void 0 : _item$attachedGems.length) || 0;
27830
+ if (gemQty > 0) {
27831
+ return React.createElement(ItemSlotQty, {
27832
+ item: item
27833
+ });
27834
+ }
27835
+ return undefined;
27836
+ };
27837
+ var ItemSlotQty = function ItemSlotQty(_ref) {
27838
+ var _item$attachedGems2;
27839
+ var item = _ref.item;
27840
+ var itemId = item._id;
27841
+ return React.createElement(ItemQtyContainer, {
27842
+ key: "qty-" + itemId,
27843
+ className: "item-slot-qty"
27844
+ }, (_item$attachedGems2 = item.attachedGems) == null ? void 0 : _item$attachedGems2.map(function (gem, index) {
27845
+ return React.createElement(Gem, {
27846
+ key: itemId + "-gem-" + index,
27847
+ color: gemColors[gem.key] || defaultColor
27848
+ });
27849
+ }));
27850
+ };
27851
+ var ItemQtyContainer = /*#__PURE__*/styled.div.withConfig({
27852
+ displayName: "ItemGem__ItemQtyContainer",
27853
+ componentId: "sc-1ekseaq-0"
27854
+ })(["position:relative;width:85%;height:16px;top:28px;left:0px;pointer-events:none;transform:scale(0.8);display:flex;align-items:center;justify-content:flex-start;opacity:0.8;"]);
27855
+ var Gem = /*#__PURE__*/styled.div.withConfig({
27856
+ displayName: "ItemGem__Gem",
27857
+ componentId: "sc-1ekseaq-1"
27858
+ })(["width:8px;height:8px;background:", ";border:1px solid black;transform:rotate(45deg);margin:0 2px;box-shadow:0 0 5px ", ";transition:transform 0.2s,box-shadow 0.2s;&:hover{transform:rotate(45deg) scale(1.2);box-shadow:0 0 10px ", ";}"], function (_ref2) {
27859
+ var color = _ref2.color;
27860
+ return "radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.8), transparent 30%), \n linear-gradient(45deg, " + color + ", " + color + " 50%, rgba(255, 255, 255, 0.2))";
27861
+ }, function (_ref3) {
27862
+ var color = _ref3.color;
27863
+ return color;
27864
+ }, function (_ref4) {
27865
+ var color = _ref4.color;
27866
+ return color;
27867
+ });
27868
+
27869
+ var onRenderStackInfo = function onRenderStackInfo(itemId, stackQty) {
27870
+ var isFractionalStackQty = stackQty % 1 !== 0;
27871
+ var isLargerThan999 = stackQty > 999;
27872
+ var qtyClassName = 'regular';
27873
+ if (isLargerThan999) qtyClassName = 'small';
27874
+ if (isFractionalStackQty) qtyClassName = 'xsmall';
27875
+ if (stackQty > 1) {
27876
+ return React.createElement(ItemSlotQty$1, {
27877
+ itemId: itemId,
27878
+ stackQty: stackQty,
27879
+ qtyClassName: qtyClassName
27880
+ });
27881
+ }
27882
+ return undefined;
27883
+ };
27884
+ var ItemSlotQty$1 = function ItemSlotQty(_ref) {
27885
+ var itemId = _ref.itemId,
27886
+ stackQty = _ref.stackQty,
27887
+ qtyClassName = _ref.qtyClassName;
27888
+ return React.createElement(ItemQtyContainer$1, {
27889
+ key: "qty-" + itemId,
27890
+ className: "item-slot-qty"
27891
+ }, React.createElement(Ellipsis, {
27892
+ maxLines: 1,
27893
+ maxWidth: "48px"
27894
+ }, React.createElement(ItemQty, {
27895
+ className: qtyClassName
27896
+ }, Math.round(stackQty * 100) / 100, ' ')));
27897
+ };
27898
+ var ItemQtyContainer$1 = /*#__PURE__*/styled.div.withConfig({
27899
+ displayName: "ItemSlotQty__ItemQtyContainer",
27900
+ componentId: "sc-keb1s5-0"
27901
+ })(["position:relative;width:85%;height:16px;top:25px;left:2px;pointer-events:none;display:flex;justify-content:flex-end;"]);
27902
+ var ItemQty = /*#__PURE__*/styled.span.withConfig({
27903
+ displayName: "ItemSlotQty__ItemQty",
27904
+ componentId: "sc-keb1s5-1"
27905
+ })(["&.regular{font-size:", ";}&.small{font-size:", ";}&.xsmall{font-size:", ";}"], uiFonts.size.small, uiFonts.size.xsmall, uiFonts.size.xxsmall);
27906
+
27907
+ var ItemSlotRenderer = function ItemSlotRenderer(_ref) {
27908
+ var containerType = _ref.containerType,
27909
+ atlasJSON = _ref.atlasJSON,
27910
+ atlasIMG = _ref.atlasIMG,
27911
+ slotSpriteMask = _ref.slotSpriteMask,
27912
+ item = _ref.item;
27913
+ var renderStackInfo = function renderStackInfo(item) {
27914
+ return item.stackQty && item.stackQty > 1 && onRenderStackInfo(item._id, item.stackQty);
27915
+ };
27916
+ var renderGems = function renderGems(item) {
27917
+ return item.attachedGems && onRenderGems(item);
27918
+ };
27919
+ var renderItem = function renderItem(item) {
27920
+ if (!(item != null && item.texturePath)) {
27921
+ return null;
27922
+ }
27923
+ return React.createElement(ErrorBoundary, {
27924
+ key: item._id
27925
+ }, item.quality && item.quality !== ItemQualityLevel.Normal && React.createElement("div", {
27926
+ className: "quality-star"
27927
+ }, "\u2605"), React.createElement(SpriteFromAtlas, {
27928
+ atlasIMG: atlasIMG,
27929
+ atlasJSON: atlasJSON,
27930
+ spriteKey: getItemTextureKeyPath({
27931
+ key: item.texturePath,
27932
+ texturePath: item.texturePath,
27933
+ stackQty: item.stackQty || 1,
27934
+ isStackable: item.isStackable
27935
+ }, atlasJSON),
27936
+ imgScale: 3,
27937
+ imgClassname: "sprite-from-atlas-img--item",
27938
+ tintColor: item.tintColor
27939
+ }), renderStackInfo(item), renderGems(item));
27940
+ };
27941
+ var renderEquipment = function renderEquipment(itemToRender) {
27942
+ var _itemToRender$allowed;
27943
+ if (!(itemToRender != null && itemToRender.texturePath) || !((_itemToRender$allowed = itemToRender.allowedEquipSlotType) != null && _itemToRender$allowed.includes(slotSpriteMask))) {
27944
+ return React.createElement(ErrorBoundary, {
27945
+ key: v4()
27946
+ }, React.createElement(SpriteFromAtlas, {
27947
+ key: v4(),
27948
+ atlasIMG: atlasIMG,
27949
+ atlasJSON: atlasJSON,
27950
+ spriteKey: EquipmentSlotSpriteByType[slotSpriteMask],
27951
+ imgScale: 3,
27952
+ grayScale: true,
27953
+ opacity: 0.4,
27954
+ imgClassname: "sprite-from-atlas-img--item"
27955
+ }));
27956
+ }
27957
+ return renderItem(itemToRender);
27958
+ };
27959
+ var onRenderSlot = function onRenderSlot(itemToRender) {
27960
+ switch (containerType) {
27961
+ case ItemContainerType.Equipment:
27962
+ return renderEquipment(itemToRender);
27963
+ default:
27964
+ return renderItem(itemToRender);
27965
+ }
27966
+ };
27967
+ return onRenderSlot(item);
27968
+ };
27969
+
27951
27970
  var EquipmentSlotSpriteByType = {
27952
27971
  Neck: 'accessories/corruption-necklace.png',
27953
27972
  LeftHand: 'swords/broad-sword.png',
@@ -28264,7 +28283,7 @@ var ItemSlot = /*#__PURE__*/observer(function (_ref) {
28264
28283
  var Container$a = /*#__PURE__*/styled.div.withConfig({
28265
28284
  displayName: "ItemSlot__Container",
28266
28285
  componentId: "sc-l2j5ef-0"
28267
- })(["margin:0.1rem;.react-draggable-dragging{opacity:", ";}position:relative;.sprite-from-atlas-img--item{position:relative;top:1.5rem;left:1.5rem;border-color:", ";box-shadow:", " inset,", ";}&::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-radius:12px;pointer-events:none;animation:", ";@keyframes bg-color-change{0%{background-color:rgba(255 255 255 / 0.5);}50%{background-color:transparent;}100%{background-color:rgba(255 255 255 / 0.5);}}}"], function (_ref2) {
28286
+ })(["margin:0.1rem;.react-draggable-dragging{opacity:", ";}position:relative;.sprite-from-atlas-img--item{position:relative;top:1.5rem;left:1.5rem;border-color:", ";box-shadow:", " inset,", ";}.quality-star{position:absolute;top:0.5rem;left:0.5rem;font-size:1.2rem;z-index:2;text-shadow:0 0 3px black;pointer-events:none;color:", ";}&::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-radius:12px;pointer-events:none;animation:", ";@keyframes bg-color-change{0%{background-color:rgba(255 255 255 / 0.5);}50%{background-color:transparent;}100%{background-color:rgba(255 255 255 / 0.5);}}}"], function (_ref2) {
28268
28287
  var isDraggingItem = _ref2.isDraggingItem;
28269
28288
  return isDraggingItem ? 0 : 1;
28270
28289
  }, function (_ref3) {
@@ -28277,7 +28296,10 @@ var Container$a = /*#__PURE__*/styled.div.withConfig({
28277
28296
  var item = _ref5.item;
28278
28297
  return "0 0 4px 3px " + rarityColor(item);
28279
28298
  }, function (_ref6) {
28280
- var isSelectingShortcut = _ref6.isSelectingShortcut;
28299
+ var item = _ref6.item;
28300
+ return qualityColorHex(item);
28301
+ }, function (_ref7) {
28302
+ var isSelectingShortcut = _ref7.isSelectingShortcut;
28281
28303
  return isSelectingShortcut ? 'bg-color-change 1s infinite' : 'none';
28282
28304
  });
28283
28305
  var ItemContainer = /*#__PURE__*/styled.div.withConfig({
@@ -28394,10 +28416,16 @@ var ItemInfo = function ItemInfo(_ref) {
28394
28416
  var Container$b = /*#__PURE__*/styled.div.withConfig({
28395
28417
  displayName: "ItemInfo__Container",
28396
28418
  componentId: "sc-1xm4q8k-0"
28397
- })(["color:white;background-color:#222;border-radius:5px;padding:0.5rem;font-size:", ";border:3px solid ", ";height:max-content;width:18rem;@media (max-width:640px){width:80vw;}"], uiFonts.size.small, function (_ref2) {
28419
+ })(["color:white;background-color:#222;border-radius:5px;padding:0.5rem;font-size:", ";border:3px solid ", ";box-shadow:", ";height:max-content;width:18rem;position:relative;", " @media (max-width:640px){width:80vw;}"], uiFonts.size.small, function (_ref2) {
28398
28420
  var _rarityColor;
28399
28421
  var item = _ref2.item;
28400
28422
  return (_rarityColor = rarityColor(item)) != null ? _rarityColor : uiColors.lightGray;
28423
+ }, function (_ref3) {
28424
+ var item = _ref3.item;
28425
+ return "0 0 5px 2px " + rarityColor(item);
28426
+ }, function (_ref4) {
28427
+ var item = _ref4.item;
28428
+ return (item == null ? void 0 : item.quality) && item.quality !== ItemQualityLevel.Normal && "\n &::before {\n content: '\u2605';\n position: absolute;\n top: 0.2rem;\n left: 0.5rem;\n font-size: 1.2rem;\n color: " + qualityColorHex(item) + ";\n text-shadow: 0 0 3px black;\n }\n ";
28401
28429
  });
28402
28430
  var Title$1 = /*#__PURE__*/styled.div.withConfig({
28403
28431
  displayName: "ItemInfo__Title",
@@ -28406,8 +28434,8 @@ var Title$1 = /*#__PURE__*/styled.div.withConfig({
28406
28434
  var Rarity = /*#__PURE__*/styled.div.withConfig({
28407
28435
  displayName: "ItemInfo__Rarity",
28408
28436
  componentId: "sc-1xm4q8k-2"
28409
- })(["font-size:", ";font-weight:normal;margin-top:0.2rem;color:", ";filter:brightness(1.5);"], uiFonts.size.small, function (_ref3) {
28410
- var item = _ref3.item;
28437
+ })(["font-size:", ";font-weight:normal;margin-top:0.2rem;color:", ";filter:brightness(1.5);"], uiFonts.size.small, function (_ref5) {
28438
+ var item = _ref5.item;
28411
28439
  return rarityColor(item);
28412
28440
  });
28413
28441
  var Type = /*#__PURE__*/styled.div.withConfig({
@@ -28421,8 +28449,8 @@ var LevelRequirement = /*#__PURE__*/styled.div.withConfig({
28421
28449
  var Statistic = /*#__PURE__*/styled.div.withConfig({
28422
28450
  displayName: "ItemInfo__Statistic",
28423
28451
  componentId: "sc-1xm4q8k-5"
28424
- })(["margin-bottom:0.4rem;width:100%;color:", ";.label{display:inline-block;margin-right:0.5rem;color:inherit;}.value{display:inline-block;color:inherit;}&.better,.better{color:", ";}&.worse,.worse{color:", ";}"], function (_ref4) {
28425
- var $isSpecial = _ref4.$isSpecial;
28452
+ })(["margin-bottom:0.4rem;width:100%;color:", ";.label{display:inline-block;margin-right:0.5rem;color:inherit;}.value{display:inline-block;color:inherit;}&.better,.better{color:", ";}&.worse,.worse{color:", ";}"], function (_ref6) {
28453
+ var $isSpecial = _ref6.$isSpecial;
28426
28454
  return $isSpecial ? uiColors.darkYellow : 'inherit';
28427
28455
  }, uiColors.lightGreen, uiColors.cardinal);
28428
28456
  var Description = /*#__PURE__*/styled.div.withConfig({
@@ -30765,6 +30793,9 @@ var FadeInCarouselImg = /*#__PURE__*/styled(CarouselImg).withConfig({
30765
30793
  componentId: "sc-gdvbly-5"
30766
30794
  })(["animation:", " 0.5s;"], fadeIn);
30767
30795
 
30796
+ var UI_BREAKPOINT_MOBILE = '950px';
30797
+ var UI_BREAKPOINT_SMALL_LAPTOP = '1400px';
30798
+
30768
30799
  var InternalTabs = function InternalTabs(_ref) {
30769
30800
  var _tabs$find;
30770
30801
  var tabs = _ref.tabs,
@@ -30813,39 +30844,56 @@ var TabHeader = /*#__PURE__*/styled.div.withConfig({
30813
30844
  var TabButton = /*#__PURE__*/styled.button.withConfig({
30814
30845
  displayName: "InternalTabs__TabButton",
30815
30846
  componentId: "sc-ldufv0-2"
30816
- })(["flex:1;padding:0.5rem 1rem;font-size:0.875rem;font-weight:500;border-right:1px solid ", ";background-color:", ";color:", ";&:last-child{border-right:none;}&:hover{background-color:", ";}"], function (props) {
30847
+ })(["flex:1;padding:0.25rem 0.5rem;font-size:0.75rem;font-weight:500;border-right:1px solid ", ";background-color:", ";color:", ";white-space:nowrap;overflow:hidden;text-overflow:ellipsis;@media (min-width:480px){padding:0.375rem 0.75rem;font-size:0.8125rem;}@media (min-width:", "){padding:0.5rem 1rem;font-size:0.875rem;}&:last-child{border-right:none;}&:hover{background-color:", ";}"], function (props) {
30817
30848
  return props.borderColor;
30818
30849
  }, function (props) {
30819
30850
  return props.active ? props.activeColor : 'transparent';
30820
30851
  }, function (props) {
30821
30852
  return props.active ? props.activeTextColor : props.inactiveColor;
30822
- }, function (props) {
30853
+ }, UI_BREAKPOINT_MOBILE, function (props) {
30823
30854
  return props.active ? props.activeColor : props.hoverColor;
30824
30855
  });
30825
30856
  var ContentWrapper = /*#__PURE__*/styled.div.withConfig({
30826
30857
  displayName: "InternalTabs__ContentWrapper",
30827
30858
  componentId: "sc-ldufv0-3"
30828
- })([""]);
30859
+ })(["width:100%;"]);
30829
30860
 
30830
- var TOOLTIP_WIDTH = 300;
30831
30861
  var TOOLTIP_OFFSET = 10;
30832
30862
  var MIN_VISIBLE_HEIGHT = 100;
30833
30863
  var useTooltipPosition = function useTooltipPosition() {
30864
+ // Dynamically calculate tooltip width based on screen size
30865
+ var getTooltipWidth = function getTooltipWidth() {
30866
+ var viewportWidth = window.innerWidth;
30867
+ if (viewportWidth < 360) {
30868
+ return Math.min(280, viewportWidth - 20);
30869
+ }
30870
+ if (viewportWidth < 480) {
30871
+ return 300;
30872
+ }
30873
+ return 320;
30874
+ };
30875
+ var TOOLTIP_WIDTH = getTooltipWidth();
30834
30876
  var _useState = useState(null),
30835
30877
  tooltipState = _useState[0],
30836
30878
  setTooltipState = _useState[1];
30837
30879
  var calculateTooltipPosition = function calculateTooltipPosition(rect) {
30838
30880
  var viewportWidth = window.innerWidth;
30839
30881
  var viewportHeight = window.innerHeight;
30882
+ var tooltipWidth = getTooltipWidth();
30840
30883
  // Try to position to the right first
30841
30884
  var x = rect.right + TOOLTIP_OFFSET;
30842
30885
  // If it would overflow right, try positioning to the left
30843
- if (x + TOOLTIP_WIDTH > viewportWidth - TOOLTIP_OFFSET) {
30844
- x = rect.left - TOOLTIP_WIDTH - TOOLTIP_OFFSET;
30886
+ if (x + tooltipWidth > viewportWidth - TOOLTIP_OFFSET) {
30887
+ x = rect.left - tooltipWidth - TOOLTIP_OFFSET;
30845
30888
  }
30846
- // If left positioning would go off screen, position relative to viewport
30889
+ // If left positioning would go off screen, center it or position relative to viewport
30847
30890
  if (x < TOOLTIP_OFFSET) {
30848
- x = TOOLTIP_OFFSET;
30891
+ if (viewportWidth < 400) {
30892
+ // For very small screens, center the tooltip
30893
+ x = Math.max(TOOLTIP_OFFSET, (viewportWidth - tooltipWidth) / 2);
30894
+ } else {
30895
+ x = TOOLTIP_OFFSET;
30896
+ }
30849
30897
  }
30850
30898
  // Position vertically aligned with the top of the element
30851
30899
  var y = rect.top;
@@ -31078,15 +31126,13 @@ var PaginatedContent = function PaginatedContent(_ref) {
31078
31126
  var Container$n = /*#__PURE__*/styled.div.withConfig({
31079
31127
  displayName: "PaginatedContent__Container",
31080
31128
  componentId: "sc-lzp9hn-0"
31081
- })(["display:flex;flex-direction:column;gap:1rem;min-height:400px;width:100%;"]);
31129
+ })(["display:flex;flex-direction:column;gap:0.5rem;min-height:400px;width:100%;"]);
31082
31130
  var Content = /*#__PURE__*/styled.div.withConfig({
31083
31131
  displayName: "PaginatedContent__Content",
31084
31132
  componentId: "sc-lzp9hn-1"
31085
- })(["display:flex;flex-direction:column;gap:0.5rem;flex:1;padding:1rem;min-height:200px;max-height:", ";overflow-y:", ";&.grid{display:grid;grid-template-columns:repeat( ", ",minmax(0,1fr) );gap:1rem;align-items:start;.PaginatedContent-item{display:flex;align-items:flex-start;height:", ";}}&.list{display:flex;flex-direction:column;gap:0.5rem;}"], function (props) {
31086
- return props.$maxHeight;
31087
- }, function (props) {
31088
- return props.$maxHeight ? 'auto' : 'visible';
31089
- }, function (props) {
31133
+ })(["display:flex;flex-direction:column;gap:0.5rem;flex:1;padding:0.25rem;min-height:200px;max-height:60vh;height:100%;overflow-y:auto;overflow-x:hidden;box-sizing:border-box;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.3) rgba(0,0,0,0.2);@media (min-width:360px){padding:0.5rem;}@media (min-width:480px){padding:1rem;}&.grid{display:grid;grid-template-columns:1fr;gap:0.5rem;align-items:start;justify-content:center;width:100%;@media (min-width:320px){grid-template-columns:repeat(2,minmax(100px,1fr));}@media (min-width:400px){grid-template-columns:repeat(2,minmax(120px,1fr));gap:0.75rem;}@media (min-width:480px){grid-template-columns:repeat(3,minmax(120px,1fr));gap:1rem;}@media (min-width:768px){grid-template-columns:repeat(4,minmax(120px,1fr));}@media (min-width:", "){grid-template-columns:repeat( ", ",minmax(120px,1fr) );}@media (min-width:", "){grid-template-columns:repeat( ", ",minmax(120px,1fr) );}.PaginatedContent-item{display:flex;align-items:flex-start;justify-content:center;height:", ";width:100%;box-sizing:border-box;min-height:120px;}}&.list{display:flex;flex-direction:column;gap:0.5rem;}"], UI_BREAKPOINT_MOBILE, function (props) {
31134
+ return Math.min(props.$gridColumns, 4);
31135
+ }, UI_BREAKPOINT_SMALL_LAPTOP, function (props) {
31090
31136
  return props.$gridColumns;
31091
31137
  }, function (props) {
31092
31138
  var _props$$itemHeight;
@@ -31095,7 +31141,7 @@ var Content = /*#__PURE__*/styled.div.withConfig({
31095
31141
  var PaginationContainer$1 = /*#__PURE__*/styled.div.withConfig({
31096
31142
  displayName: "PaginatedContent__PaginationContainer",
31097
31143
  componentId: "sc-lzp9hn-2"
31098
- })(["display:flex;justify-content:center;padding:1rem;"]);
31144
+ })(["display:flex;justify-content:center;padding:0.5rem;@media (min-width:480px){padding:1rem;}"]);
31099
31145
  var EmptyMessage = /*#__PURE__*/styled.div.withConfig({
31100
31146
  displayName: "PaginatedContent__EmptyMessage",
31101
31147
  componentId: "sc-lzp9hn-3"
@@ -31126,12 +31172,46 @@ var InformationCenterCell = function InformationCenterCell(_ref) {
31126
31172
  onMouseLeave = _ref.onMouseLeave,
31127
31173
  onMouseMove = _ref.onMouseMove,
31128
31174
  onTouchStart = _ref.onTouchStart;
31175
+ var _useState = useState(null),
31176
+ touchStartY = _useState[0],
31177
+ setTouchStartY = _useState[1];
31178
+ var _useState2 = useState(null),
31179
+ touchStartX = _useState2[0],
31180
+ setTouchStartX = _useState2[1];
31181
+ var _useState3 = useState(false),
31182
+ isTouchScrolling = _useState3[0],
31183
+ setIsTouchScrolling = _useState3[1];
31184
+ var handleTouchStart = function handleTouchStart(e) {
31185
+ setTouchStartY(e.touches[0].clientY);
31186
+ setTouchStartX(e.touches[0].clientX);
31187
+ setIsTouchScrolling(false);
31188
+ };
31189
+ var handleTouchMove = function handleTouchMove(e) {
31190
+ if (touchStartY !== null && touchStartX !== null) {
31191
+ var touchDiffY = Math.abs(e.touches[0].clientY - touchStartY);
31192
+ var touchDiffX = Math.abs(e.touches[0].clientX - touchStartX);
31193
+ // If user moved finger more than 15px in any direction, consider it scrolling
31194
+ if (touchDiffY > 15 || touchDiffX > 15) {
31195
+ setIsTouchScrolling(true);
31196
+ e.stopPropagation(); // Prevent parent elements from handling this touch
31197
+ }
31198
+ }
31199
+ };
31200
+ var handleTouchEnd = function handleTouchEnd(e) {
31201
+ if (!isTouchScrolling && onTouchStart) {
31202
+ onTouchStart(e);
31203
+ }
31204
+ setTouchStartY(null);
31205
+ setTouchStartX(null);
31206
+ };
31129
31207
  return React.createElement(CellContainer, {
31130
31208
  onClick: onClick,
31131
31209
  onMouseEnter: onMouseEnter,
31132
31210
  onMouseLeave: onMouseLeave,
31133
31211
  onMouseMove: onMouseMove,
31134
- onTouchStart: onTouchStart
31212
+ onTouchStart: handleTouchStart,
31213
+ onTouchMove: handleTouchMove,
31214
+ onTouchEnd: handleTouchEnd
31135
31215
  }, React.createElement(SpriteContainer$1, null, React.createElement(SpriteFromAtlas, {
31136
31216
  atlasJSON: atlasJSON,
31137
31217
  atlasIMG: atlasIMG,
@@ -31139,20 +31219,24 @@ var InformationCenterCell = function InformationCenterCell(_ref) {
31139
31219
  width: 32,
31140
31220
  height: 32,
31141
31221
  imgScale: 1
31142
- })), React.createElement(CellName, null, name));
31222
+ })), React.createElement(CellNameContainer, null, React.createElement(CellName, null, name)));
31143
31223
  };
31144
31224
  var CellContainer = /*#__PURE__*/styled.div.withConfig({
31145
31225
  displayName: "InformationCenterCell__CellContainer",
31146
31226
  componentId: "sc-w48fdf-0"
31147
- })(["position:relative;background:rgba(0,0,0,0.2);padding:0.75rem;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:background-color 0.2s ease;width:100%;height:100%;min-width:120px;min-height:120px;box-sizing:border-box;&:hover{background:rgba(0,0,0,0.3);}"]);
31227
+ })(["position:relative;background:rgba(0,0,0,0.2);padding:0.2rem;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:background-color 0.2s ease;width:100%;height:100%;min-height:90px;box-sizing:border-box;gap:0.2rem;margin:0;@media (min-width:360px){padding:0.3rem;gap:0.3rem;margin:1px;width:calc(100% - 2px);min-height:100px;}@media (min-width:", "){min-height:110px;}&:hover{background:rgba(0,0,0,0.3);}"], UI_BREAKPOINT_MOBILE);
31148
31228
  var SpriteContainer$1 = /*#__PURE__*/styled.div.withConfig({
31149
31229
  displayName: "InformationCenterCell__SpriteContainer",
31150
31230
  componentId: "sc-w48fdf-1"
31151
- })(["margin-bottom:0.5rem;display:flex;justify-content:center;align-items:center;width:64px;height:64px;position:relative;background:rgba(0,0,0,0.3);border-radius:4px;flex-shrink:0;.sprite-from-atlas-img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(2);image-rendering:pixelated;}"]);
31231
+ })(["display:flex;justify-content:center;align-items:center;width:32px;height:32px;position:relative;background:rgba(0,0,0,0.3);border-radius:4px;flex-shrink:0;overflow:hidden;padding:1rem;margin-top:1rem;@media (min-width:360px){width:36px;height:36px;}@media (min-width:480px){width:42px;height:42px;}@media (min-width:", "){width:48px;height:48px;}.sprite-from-atlas-img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(2);image-rendering:pixelated;}"], UI_BREAKPOINT_MOBILE);
31232
+ var CellNameContainer = /*#__PURE__*/styled.div.withConfig({
31233
+ displayName: "InformationCenterCell__CellNameContainer",
31234
+ componentId: "sc-w48fdf-2"
31235
+ })(["display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;width:100%;padding-top:0.1rem;"]);
31152
31236
  var CellName = /*#__PURE__*/styled.h3.withConfig({
31153
31237
  displayName: "InformationCenterCell__CellName",
31154
- componentId: "sc-w48fdf-2"
31155
- })(["font-size:0.7rem;color:#fef08a;margin:0;text-align:center;font-family:'Press Start 2P',cursive;line-height:1.2;word-break:break-word;max-width:100%;"]);
31238
+ componentId: "sc-w48fdf-3"
31239
+ })(["font-size:0.5rem;color:#fef08a;margin:0;text-align:center;font-family:'Press Start 2P',cursive;line-height:1.1;word-break:break-word;max-width:100%;overflow-wrap:break-word;hyphens:auto;width:100%;padding:0 0.125rem;box-sizing:border-box;@media (min-width:320px){padding:0 0.25rem;}@media (min-width:360px){font-size:0.55rem;}@media (min-width:480px){font-size:0.6rem;}@media (min-width:", "){font-size:0.65rem;}"], UI_BREAKPOINT_MOBILE);
31156
31240
 
31157
31241
  var BaseInformationDetails = function BaseInformationDetails(_ref) {
31158
31242
  var name = _ref.name,
@@ -31493,18 +31577,64 @@ var AdvancedFilters = function AdvancedFilters(_ref) {
31493
31577
  case 'dropdown':
31494
31578
  return React.createElement(FilterSection, {
31495
31579
  key: section.key
31496
- }, React.createElement(Label$1, null, section.label), React.createElement(Dropdown, {
31580
+ }, React.createElement(Label$1, null, section.label), React.createElement(StyledDropdownWrapper, null, React.createElement(Dropdown, {
31497
31581
  options: section.options || [],
31498
31582
  onChange: section.onChange,
31499
31583
  width: "100%"
31500
- }));
31584
+ })));
31501
31585
  default:
31502
31586
  return null;
31503
31587
  }
31504
31588
  };
31589
+ // Calculate button position for the portal
31590
+ var _React$useState = React.useState({
31591
+ top: 0,
31592
+ left: 0,
31593
+ isMobile: false
31594
+ }),
31595
+ buttonPosition = _React$useState[0],
31596
+ setButtonPosition = _React$useState[1];
31597
+ var buttonRef = useRef(null);
31598
+ var panelRef = useRef(null);
31599
+ useEffect(function () {
31600
+ if (isOpen && buttonRef.current) {
31601
+ var rect = buttonRef.current.getBoundingClientRect();
31602
+ var isMobileView = window.innerWidth < 480;
31603
+ if (isMobileView) {
31604
+ // For mobile, position in center of screen
31605
+ setButtonPosition({
31606
+ top: window.innerHeight / 2,
31607
+ left: window.innerWidth / 2,
31608
+ isMobile: true
31609
+ });
31610
+ } else {
31611
+ // Position below the button for larger screens
31612
+ setButtonPosition({
31613
+ top: rect.bottom + window.scrollY,
31614
+ left: rect.left + rect.width / 2 + window.scrollX,
31615
+ isMobile: false
31616
+ });
31617
+ }
31618
+ }
31619
+ }, [isOpen]);
31620
+ // Handle click outside to close the panel
31621
+ useEffect(function () {
31622
+ var handleClickOutside = function handleClickOutside(event) {
31623
+ if (isOpen && panelRef.current && !panelRef.current.contains(event.target) && buttonRef.current && !buttonRef.current.contains(event.target)) {
31624
+ onToggle();
31625
+ }
31626
+ };
31627
+ if (isOpen) {
31628
+ document.addEventListener('mousedown', handleClickOutside);
31629
+ }
31630
+ return function () {
31631
+ document.removeEventListener('mousedown', handleClickOutside);
31632
+ };
31633
+ }, [isOpen, onToggle]);
31505
31634
  return React.createElement(Container$q, null, React.createElement(FilterButton, {
31506
31635
  onClick: onToggle,
31507
- "$hasActiveFilters": hasActiveFilters
31636
+ "$hasActiveFilters": hasActiveFilters,
31637
+ ref: buttonRef
31508
31638
  }, hasActiveFilters ? React.createElement(AiFillFilter, {
31509
31639
  size: 20
31510
31640
  }) : React.createElement(AiOutlineFilter, {
@@ -31517,9 +31647,21 @@ var AdvancedFilters = function AdvancedFilters(_ref) {
31517
31647
  return rangeValue[0] !== undefined || rangeValue[1] !== undefined;
31518
31648
  }
31519
31649
  return section.value !== 'all';
31520
- }).length)), isOpen && React.createElement(FiltersPanel, null, React.createElement(FilterHeader, null, React.createElement(FilterTitle, null, "Advanced Filters")), sections.map(renderFilterSection), hasActiveFilters && React.createElement(ClearFiltersButton, {
31650
+ }).length)), isOpen && React.createElement(Portal, null, React.createElement(FiltersPanel, {
31651
+ ref: panelRef,
31652
+ style: {
31653
+ position: 'fixed',
31654
+ top: buttonPosition.isMobile ? '50vh' : buttonPosition.top + "px",
31655
+ left: buttonPosition.isMobile ? '50vw' : buttonPosition.left + "px",
31656
+ transform: buttonPosition.isMobile ? 'translate(-50%, -50%)' : 'translateX(-50%)',
31657
+ zIndex: 9999
31658
+ },
31659
+ "$isMobile": buttonPosition.isMobile
31660
+ }, React.createElement(FilterHeader, null, React.createElement(FilterTitle, null, "Advanced Filters"), React.createElement(CloseButton$6, {
31661
+ onClick: onToggle
31662
+ }, "\xD7")), sections.map(renderFilterSection), hasActiveFilters && React.createElement(ClearFiltersButton, {
31521
31663
  onClick: onClearAll
31522
- }, "Clear All Filters")));
31664
+ }, "Clear All Filters"))));
31523
31665
  };
31524
31666
  var Container$q = /*#__PURE__*/styled.div.withConfig({
31525
31667
  displayName: "AdvancedFilters__Container",
@@ -31548,7 +31690,9 @@ var FilterCount = /*#__PURE__*/styled.div.withConfig({
31548
31690
  var FiltersPanel = /*#__PURE__*/styled.div.withConfig({
31549
31691
  displayName: "AdvancedFilters__FiltersPanel",
31550
31692
  componentId: "sc-1xj6ldr-3"
31551
- })(["position:absolute;top:calc(100% + 0.75rem);right:-8px;background:#1a1a1a;border:1px solid #333;border-radius:6px;padding:1rem;z-index:1000;min-width:280px;display:flex;flex-direction:column;gap:1rem;box-shadow:0 4px 12px rgba(0,0,0,0.3);&:before{content:'';position:absolute;top:-6px;right:16px;width:12px;height:12px;background:#1a1a1a;border-left:1px solid #333;border-top:1px solid #333;transform:rotate(45deg);}"]);
31693
+ })(["background:#1a1a1a;border:1px solid #333;border-radius:6px;padding:1rem;width:280px;max-width:calc(100vw - 20px);display:flex;flex-direction:column;gap:1rem;box-shadow:0 4px 12px rgba(0,0,0,0.3);font-family:'Press Start 2P',cursive;@media (max-width:320px){width:250px;padding:0.75rem;gap:0.75rem;}&:before{content:'';position:absolute;top:-6px;left:50%;transform:translateX(-50%) rotate(45deg);width:12px;height:12px;background:#1a1a1a;border-left:1px solid #333;border-top:1px solid #333;display:", ";}"], function (props) {
31694
+ return props.$isMobile ? 'none' : 'block';
31695
+ });
31552
31696
  var FilterHeader = /*#__PURE__*/styled.div.withConfig({
31553
31697
  displayName: "AdvancedFilters__FilterHeader",
31554
31698
  componentId: "sc-1xj6ldr-4"
@@ -31556,7 +31700,7 @@ var FilterHeader = /*#__PURE__*/styled.div.withConfig({
31556
31700
  var FilterTitle = /*#__PURE__*/styled.div.withConfig({
31557
31701
  displayName: "AdvancedFilters__FilterTitle",
31558
31702
  componentId: "sc-1xj6ldr-5"
31559
- })(["font-weight:600;color:#ffd700;font-size:0.875rem;"]);
31703
+ })(["font-weight:600;color:#ffd700;font-size:0.75rem;"]);
31560
31704
  var FilterSection = /*#__PURE__*/styled.div.withConfig({
31561
31705
  displayName: "AdvancedFilters__FilterSection",
31562
31706
  componentId: "sc-1xj6ldr-6"
@@ -31564,15 +31708,23 @@ var FilterSection = /*#__PURE__*/styled.div.withConfig({
31564
31708
  var Label$1 = /*#__PURE__*/styled.div.withConfig({
31565
31709
  displayName: "AdvancedFilters__Label",
31566
31710
  componentId: "sc-1xj6ldr-7"
31567
- })(["color:#999;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.05em;"]);
31711
+ })(["color:#999;font-size:0.65rem;text-transform:uppercase;letter-spacing:0.05em;"]);
31568
31712
  var RangeInputs = /*#__PURE__*/styled.div.withConfig({
31569
31713
  displayName: "AdvancedFilters__RangeInputs",
31570
31714
  componentId: "sc-1xj6ldr-8"
31571
- })(["display:flex;align-items:center;gap:0.5rem;input{width:80px;background:#262626 !important;border:1px solid #333 !important;color:#fff !important;}svg{color:#666;font-size:0.875rem;}"]);
31715
+ })(["display:flex;align-items:center;gap:0.5rem;input{width:80px;background:#262626 !important;border:1px solid #444 !important;border-radius:4px !important;color:#ddd !important;font-size:0.65rem !important;padding:0.5rem !important;height:auto !important;box-shadow:inset 0 1px 3px rgba(0,0,0,0.2) !important;&::placeholder{color:#666 !important;}&:focus{border-color:#f59e0b !important;outline:none !important;}}svg{color:#666;font-size:0.875rem;}"]);
31572
31716
  var ClearFiltersButton = /*#__PURE__*/styled.button.withConfig({
31573
31717
  displayName: "AdvancedFilters__ClearFiltersButton",
31574
31718
  componentId: "sc-1xj6ldr-9"
31575
- })(["width:100%;background:transparent;color:#666;border:none;padding:0.75rem 0;margin-top:0.5rem;cursor:pointer;font-size:0.75rem;transition:all 0.2s;border-top:1px solid #333;text-transform:uppercase;letter-spacing:0.05em;&:hover{color:#ffd700;}"]);
31719
+ })(["width:100%;background:transparent;color:#666;border:none;padding:0.75rem 0;margin-top:0.5rem;cursor:pointer;font-size:0.65rem;transition:all 0.2s;border-top:1px solid #333;text-transform:uppercase;letter-spacing:0.05em;font-family:'Press Start 2P',cursive;&:hover{color:#ffd700;}"]);
31720
+ var CloseButton$6 = /*#__PURE__*/styled.button.withConfig({
31721
+ displayName: "AdvancedFilters__CloseButton",
31722
+ componentId: "sc-1xj6ldr-10"
31723
+ })(["background:transparent;border:none;color:#999;font-size:1.5rem;line-height:1;cursor:pointer;padding:0;margin:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;&:hover{color:#ffd700;}"]);
31724
+ var StyledDropdownWrapper = /*#__PURE__*/styled.div.withConfig({
31725
+ displayName: "AdvancedFilters__StyledDropdownWrapper",
31726
+ componentId: "sc-1xj6ldr-11"
31727
+ })([".rpgui-dropdown-imp{font-size:0.8rem;min-height:unset;padding-top:0.3rem;}"]);
31576
31728
 
31577
31729
  var ItemsAdvancedFilters = function ItemsAdvancedFilters(_ref) {
31578
31730
  var isOpen = _ref.isOpen,
@@ -31746,7 +31898,7 @@ var InformationCenterItemsSection = function InformationCenterItemsSection(_ref)
31746
31898
  dependencies: [selectedItemCategory, selectedTier],
31747
31899
  tabId: tabId,
31748
31900
  layout: "grid",
31749
- itemHeight: "180px"
31901
+ itemHeight: isMobile ? '150px' : '180px'
31750
31902
  }), !isMobile && tooltipState && tooltipState.item && React.createElement(Portal, null, React.createElement(TooltipWrapper, {
31751
31903
  width: TOOLTIP_WIDTH,
31752
31904
  style: {
@@ -32346,7 +32498,7 @@ var InformationCenterBestiarySection = function InformationCenterBestiarySection
32346
32498
  rightElement: SearchBarRightElement
32347
32499
  },
32348
32500
  dependencies: [selectedBestiaryCategory, levelRange, selectedSubtype, selectedAttackType],
32349
- itemHeight: "180px"
32501
+ itemHeight: isMobile ? '150px' : '180px'
32350
32502
  }), !isMobile && tooltipState && tooltipState.item && React.createElement(Portal, null, React.createElement(TooltipWrapper$1, {
32351
32503
  width: TOOLTIP_WIDTH,
32352
32504
  style: {
@@ -32396,6 +32548,7 @@ var InformationCenterTutorialsSection = function InformationCenterTutorialsSecti
32396
32548
  var videoGuides = _ref.videoGuides,
32397
32549
  initialSearchQuery = _ref.initialSearchQuery,
32398
32550
  tabId = _ref.tabId;
32551
+ var isMobile = isMobileOrTablet();
32399
32552
  var _useState = useState(initialSearchQuery),
32400
32553
  searchQuery = _useState[0],
32401
32554
  setSearchQuery = _useState[1];
@@ -32446,7 +32599,7 @@ var InformationCenterTutorialsSection = function InformationCenterTutorialsSecti
32446
32599
  maxLines: 2
32447
32600
  }, guide.title)), React.createElement(GuideDescription, null, React.createElement(Ellipsis, {
32448
32601
  maxWidth: "100%",
32449
- maxLines: 5
32602
+ maxLines: isMobile ? 3 : 5
32450
32603
  }, guide.description)), React.createElement(GuideLabelsContainer, null, React.createElement(GuideCategory, null, guide.category), React.createElement(GuideLanguage, null, guide.language))));
32451
32604
  };
32452
32605
  var filteredGuides = useMemo(function () {
@@ -32484,9 +32637,9 @@ var InformationCenterTutorialsSection = function InformationCenterTutorialsSecti
32484
32637
  dependencies: [selectedCategory],
32485
32638
  tabId: tabId,
32486
32639
  layout: "grid",
32487
- gridColumns: GRID_COLUMNS,
32640
+ gridColumns: isMobile ? 1 : GRID_COLUMNS,
32488
32641
  itemsPerPage: ITEMS_PER_PAGE$2,
32489
- itemHeight: "320px"
32642
+ itemHeight: isMobile ? '280px' : '320px'
32490
32643
  });
32491
32644
  };
32492
32645
  var GuideItem = /*#__PURE__*/styled.div.withConfig({
@@ -32543,6 +32696,7 @@ var InformationCenter = function InformationCenter(_ref) {
32543
32696
  var _useState = useState('bestiary'),
32544
32697
  activeTab = _useState[0],
32545
32698
  setActiveTab = _useState[1];
32699
+ var isMobile = isMobileOrTablet();
32546
32700
  if (loading) {
32547
32701
  return React.createElement(LoadingMessage, null, "Loading...");
32548
32702
  }
@@ -32585,7 +32739,9 @@ var InformationCenter = function InformationCenter(_ref) {
32585
32739
  }];
32586
32740
  return React.createElement(DraggableContainer, {
32587
32741
  title: "Information Center",
32588
- type: RPGUIContainerTypes.Framed
32742
+ type: RPGUIContainerTypes.Framed,
32743
+ width: isMobile ? '95%' : '80%',
32744
+ minWidth: "300px"
32589
32745
  }, React.createElement(Container$r, null, React.createElement(InternalTabs, {
32590
32746
  tabs: tabs,
32591
32747
  activeTextColor: "#000000",
@@ -32600,7 +32756,7 @@ var InformationCenter = function InformationCenter(_ref) {
32600
32756
  var Container$r = /*#__PURE__*/styled.div.withConfig({
32601
32757
  displayName: "InformationCenter__Container",
32602
32758
  componentId: "sc-1ttl62e-0"
32603
- })(["width:100%;max-width:800px;margin:0 auto;padding:1rem;"]);
32759
+ })(["width:100%;max-width:100%;margin:0 auto;padding:0.125rem;overflow:hidden;box-sizing:border-box;@media (min-width:320px){padding:0.25rem;}@media (min-width:360px){padding:0.5rem;}@media (min-width:480px){padding:0.75rem;}"]);
32604
32760
  var LoadingMessage = /*#__PURE__*/styled.div.withConfig({
32605
32761
  displayName: "InformationCenter__LoadingMessage",
32606
32762
  componentId: "sc-1ttl62e-1"
@@ -32900,7 +33056,7 @@ var QuantitySelector = function QuantitySelector(_ref) {
32900
33056
  return React.createElement(StyledContainer, {
32901
33057
  type: RPGUIContainerTypes.Framed,
32902
33058
  width: "25rem"
32903
- }, React.createElement(CloseButton$6, {
33059
+ }, React.createElement(CloseButton$7, {
32904
33060
  className: "container-close",
32905
33061
  onPointerDown: onClose
32906
33062
  }, "X"), React.createElement("h2", null, title), React.createElement(StyledForm, {
@@ -32945,7 +33101,7 @@ var StyledContainer = /*#__PURE__*/styled(RPGUIContainer).withConfig({
32945
33101
  displayName: "QuantitySelector__StyledContainer",
32946
33102
  componentId: "sc-z4ut57-0"
32947
33103
  })(["position:relative;display:flex;flex-direction:column;align-items:center;padding:1rem;h2{margin:0;margin-bottom:1rem;font-size:1rem;}"]);
32948
- var CloseButton$6 = /*#__PURE__*/styled.div.withConfig({
33104
+ var CloseButton$7 = /*#__PURE__*/styled.div.withConfig({
32949
33105
  displayName: "QuantitySelector__CloseButton",
32950
33106
  componentId: "sc-z4ut57-1"
32951
33107
  })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:1.5rem;cursor:pointer;"]);
@@ -35575,7 +35731,7 @@ var SkillsContainer = function SkillsContainer(_ref) {
35575
35731
  cancelDrag: "#skillsDiv",
35576
35732
  scale: scale,
35577
35733
  width: "100%"
35578
- }, onCloseButton && React.createElement(CloseButton$7, {
35734
+ }, onCloseButton && React.createElement(CloseButton$8, {
35579
35735
  onPointerDown: onCloseButton
35580
35736
  }, "X"), React.createElement(SkillsContainerDiv, {
35581
35737
  id: "skillsDiv"
@@ -35610,7 +35766,7 @@ var SkillSplitDiv = /*#__PURE__*/styled.div.withConfig({
35610
35766
  displayName: "SkillsContainer__SkillSplitDiv",
35611
35767
  componentId: "sc-1g0c67q-2"
35612
35768
  })(["width:100%;font-size:11px;hr{margin:0;margin-bottom:1rem;padding:0px;}p{margin-bottom:0px;}"]);
35613
- var CloseButton$7 = /*#__PURE__*/styled.div.withConfig({
35769
+ var CloseButton$8 = /*#__PURE__*/styled.div.withConfig({
35614
35770
  displayName: "SkillsContainer__CloseButton",
35615
35771
  componentId: "sc-1g0c67q-3"
35616
35772
  })(["position:absolute;top:2px;right:2px;color:white;z-index:22;font-size:1.1rem;"]);
@@ -36291,7 +36447,7 @@ var TimeWidget = function TimeWidget(_ref) {
36291
36447
  return React.createElement(Draggable, {
36292
36448
  scale: scale,
36293
36449
  cancel: ".time-widget-close,.time-widget-container,.time-widget-container *"
36294
- }, React.createElement(WidgetContainer, null, React.createElement(CloseButton$8, {
36450
+ }, React.createElement(WidgetContainer, null, React.createElement(CloseButton$9, {
36295
36451
  onPointerDown: onClose,
36296
36452
  className: "time-widget-close"
36297
36453
  }, "X"), React.createElement(DayNightContainer, {
@@ -36308,7 +36464,7 @@ var Time = /*#__PURE__*/styled.div.withConfig({
36308
36464
  displayName: "TimeWidget__Time",
36309
36465
  componentId: "sc-1ja236h-1"
36310
36466
  })(["top:0.75rem;right:0.5rem;position:absolute;font-size:", ";color:white;"], uiFonts.size.small);
36311
- var CloseButton$8 = /*#__PURE__*/styled.p.withConfig({
36467
+ var CloseButton$9 = /*#__PURE__*/styled.p.withConfig({
36312
36468
  displayName: "TimeWidget__CloseButton",
36313
36469
  componentId: "sc-1ja236h-2"
36314
36470
  })(["position:absolute;top:-0.5rem;margin:0;right:-0.2rem;font-size:", " !important;z-index:1;"], uiFonts.size.small);