@rpg-engine/long-bow 0.8.30 → 0.8.32

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 (34) hide show
  1. package/dist/components/InformationCenter/sections/bestiary/BestiaryAdvancedFilters.d.ts +13 -0
  2. package/dist/components/InformationCenter/sections/bestiary/InformationCenterBestiarySection.d.ts +2 -2
  3. package/dist/components/InformationCenter/sections/items/ItemsAdvancedFilters.d.ts +11 -0
  4. package/dist/components/shared/AdvancedFilters/AdvancedFilters.d.ts +23 -0
  5. package/dist/components/shared/PaginatedContent/PaginatedContent.d.ts +1 -0
  6. package/dist/components/shared/SearchBar/SearchBar.d.ts +1 -0
  7. package/dist/components/shared/SearchHeader/SearchHeader.d.ts +1 -0
  8. package/dist/hooks/useTooltipPosition.d.ts +15 -0
  9. package/dist/long-bow.cjs.development.js +758 -509
  10. package/dist/long-bow.cjs.development.js.map +1 -1
  11. package/dist/long-bow.cjs.production.min.js +1 -1
  12. package/dist/long-bow.cjs.production.min.js.map +1 -1
  13. package/dist/long-bow.esm.js +665 -416
  14. package/dist/long-bow.esm.js.map +1 -1
  15. package/package.json +2 -2
  16. package/src/components/InformationCenter/InformationCenter.tsx +5 -19
  17. package/src/components/InformationCenter/sections/bestiary/BestiaryAdvancedFilters.tsx +95 -0
  18. package/src/components/InformationCenter/sections/bestiary/InformationCenterBestiarySection.tsx +124 -84
  19. package/src/components/InformationCenter/sections/bestiary/InformationCenterNPCDetails.tsx +31 -7
  20. package/src/components/InformationCenter/sections/items/InformationCenterItemsSection.tsx +76 -78
  21. package/src/components/InformationCenter/sections/items/ItemsAdvancedFilters.tsx +80 -0
  22. package/src/components/InformationCenter/shared/BaseInformationDetails.tsx +34 -11
  23. package/src/components/Item/Cards/ItemInfo.tsx +1 -18
  24. package/src/components/Item/Inventory/ItemSlot.tsx +3 -15
  25. package/src/components/Item/Inventory/ItemSlotRenderer.tsx +2 -6
  26. package/src/components/shared/AdvancedFilters/AdvancedFilters.tsx +279 -0
  27. package/src/components/shared/Collapsible/Collapsible.tsx +1 -1
  28. package/src/components/shared/PaginatedContent/PaginatedContent.tsx +1 -0
  29. package/src/components/shared/SearchBar/SearchBar.tsx +15 -5
  30. package/src/components/shared/SearchHeader/SearchHeader.tsx +2 -0
  31. package/src/hooks/useTooltipPosition.ts +73 -0
  32. package/src/mocks/itemContainer.mocks.ts +0 -7
  33. package/dist/components/Item/Inventory/ItemSlotQuality.d.ts +0 -2
  34. package/src/components/Item/Inventory/ItemSlotQuality.ts +0 -18
@@ -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, ItemContainerType, ItemType, DepotSocketEvents, ItemSocketEvents, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemQualityLevel, ItemRarities, ItemSubType, isMobile, ItemSlotType, isMobileOrTablet, NPCAlignment, VideoGuideCategory, VideoGuideLanguage, CharacterClass, QuestStatus, getSPForLevel, getXPForLevel, PeriodOfDay, UserAccountTypes } from '@rpg-engine/shared';
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';
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';
@@ -12,8 +12,8 @@ import Draggable from 'react-draggable';
12
12
  import ReactDOM, { createPortal } from 'react-dom';
13
13
  import { camelCase, debounce } from 'lodash-es';
14
14
  import { observer } from 'mobx-react-lite';
15
+ import { AiFillFilter, AiOutlineFilter, AiFillCaretRight } from 'react-icons/ai';
15
16
  import { HexColorPicker } from 'react-colorful';
16
- import { AiFillCaretRight } from 'react-icons/ai';
17
17
  import 'rpgui/rpgui.css';
18
18
  import 'rpgui/rpgui.min.js';
19
19
  import capitalize from 'lodash-es/capitalize';
@@ -27518,6 +27518,175 @@ 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
+
27521
27690
  var generateContextMenuListOptions = function generateContextMenuListOptions(actionsByTypeList) {
27522
27691
  var contextMenu = actionsByTypeList.map(function (action) {
27523
27692
  return {
@@ -27779,194 +27948,6 @@ var ItemSlotDraggingProvider = function ItemSlotDraggingProvider(_ref) {
27779
27948
  }, children);
27780
27949
  };
27781
27950
 
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
-
27970
27951
  var EquipmentSlotSpriteByType = {
27971
27952
  Neck: 'accessories/corruption-necklace.png',
27972
27953
  LeftHand: 'swords/broad-sword.png',
@@ -28283,7 +28264,7 @@ var ItemSlot = /*#__PURE__*/observer(function (_ref) {
28283
28264
  var Container$a = /*#__PURE__*/styled.div.withConfig({
28284
28265
  displayName: "ItemSlot__Container",
28285
28266
  componentId: "sc-l2j5ef-0"
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) {
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) {
28287
28268
  var isDraggingItem = _ref2.isDraggingItem;
28288
28269
  return isDraggingItem ? 0 : 1;
28289
28270
  }, function (_ref3) {
@@ -28296,10 +28277,7 @@ var Container$a = /*#__PURE__*/styled.div.withConfig({
28296
28277
  var item = _ref5.item;
28297
28278
  return "0 0 4px 3px " + rarityColor(item);
28298
28279
  }, function (_ref6) {
28299
- var item = _ref6.item;
28300
- return qualityColorHex(item);
28301
- }, function (_ref7) {
28302
- var isSelectingShortcut = _ref7.isSelectingShortcut;
28280
+ var isSelectingShortcut = _ref6.isSelectingShortcut;
28303
28281
  return isSelectingShortcut ? 'bg-color-change 1s infinite' : 'none';
28304
28282
  });
28305
28283
  var ItemContainer = /*#__PURE__*/styled.div.withConfig({
@@ -28416,16 +28394,10 @@ var ItemInfo = function ItemInfo(_ref) {
28416
28394
  var Container$b = /*#__PURE__*/styled.div.withConfig({
28417
28395
  displayName: "ItemInfo__Container",
28418
28396
  componentId: "sc-1xm4q8k-0"
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) {
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) {
28420
28398
  var _rarityColor;
28421
28399
  var item = _ref2.item;
28422
28400
  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 ";
28429
28401
  });
28430
28402
  var Title$1 = /*#__PURE__*/styled.div.withConfig({
28431
28403
  displayName: "ItemInfo__Title",
@@ -28434,8 +28406,8 @@ var Title$1 = /*#__PURE__*/styled.div.withConfig({
28434
28406
  var Rarity = /*#__PURE__*/styled.div.withConfig({
28435
28407
  displayName: "ItemInfo__Rarity",
28436
28408
  componentId: "sc-1xm4q8k-2"
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;
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;
28439
28411
  return rarityColor(item);
28440
28412
  });
28441
28413
  var Type = /*#__PURE__*/styled.div.withConfig({
@@ -28449,8 +28421,8 @@ var LevelRequirement = /*#__PURE__*/styled.div.withConfig({
28449
28421
  var Statistic = /*#__PURE__*/styled.div.withConfig({
28450
28422
  displayName: "ItemInfo__Statistic",
28451
28423
  componentId: "sc-1xm4q8k-5"
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;
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;
28454
28426
  return $isSpecial ? uiColors.darkYellow : 'inherit';
28455
28427
  }, uiColors.lightGreen, uiColors.cardinal);
28456
28428
  var Description = /*#__PURE__*/styled.div.withConfig({
@@ -30855,6 +30827,59 @@ var ContentWrapper = /*#__PURE__*/styled.div.withConfig({
30855
30827
  componentId: "sc-ldufv0-3"
30856
30828
  })([""]);
30857
30829
 
30830
+ var TOOLTIP_WIDTH = 300;
30831
+ var TOOLTIP_OFFSET = 10;
30832
+ var MIN_VISIBLE_HEIGHT = 100;
30833
+ var useTooltipPosition = function useTooltipPosition() {
30834
+ var _useState = useState(null),
30835
+ tooltipState = _useState[0],
30836
+ setTooltipState = _useState[1];
30837
+ var calculateTooltipPosition = function calculateTooltipPosition(rect) {
30838
+ var viewportWidth = window.innerWidth;
30839
+ var viewportHeight = window.innerHeight;
30840
+ // Try to position to the right first
30841
+ var x = rect.right + TOOLTIP_OFFSET;
30842
+ // 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;
30845
+ }
30846
+ // If left positioning would go off screen, position relative to viewport
30847
+ if (x < TOOLTIP_OFFSET) {
30848
+ x = TOOLTIP_OFFSET;
30849
+ }
30850
+ // Position vertically aligned with the top of the element
30851
+ var y = rect.top;
30852
+ // Ensure tooltip doesn't go above viewport
30853
+ if (y < TOOLTIP_OFFSET) {
30854
+ y = TOOLTIP_OFFSET;
30855
+ }
30856
+ // Ensure some part of tooltip is always visible if element is near bottom
30857
+ if (y > viewportHeight - MIN_VISIBLE_HEIGHT) {
30858
+ y = viewportHeight - MIN_VISIBLE_HEIGHT;
30859
+ }
30860
+ return {
30861
+ x: x,
30862
+ y: y
30863
+ };
30864
+ };
30865
+ var handleMouseEnter = function handleMouseEnter(item, event) {
30866
+ var rect = event.currentTarget.getBoundingClientRect();
30867
+ setTooltipState({
30868
+ item: item,
30869
+ position: calculateTooltipPosition(rect)
30870
+ });
30871
+ };
30872
+ var handleMouseLeave = function handleMouseLeave() {
30873
+ setTooltipState(null);
30874
+ };
30875
+ return {
30876
+ tooltipState: tooltipState,
30877
+ handleMouseEnter: handleMouseEnter,
30878
+ handleMouseLeave: handleMouseLeave,
30879
+ TOOLTIP_WIDTH: TOOLTIP_WIDTH
30880
+ };
30881
+ };
30882
+
30858
30883
  var usePagination = function usePagination(_ref) {
30859
30884
  var items = _ref.items,
30860
30885
  itemsPerPage = _ref.itemsPerPage,
@@ -30922,7 +30947,9 @@ var SearchBar = function SearchBar(_ref) {
30922
30947
  var value = _ref.value,
30923
30948
  _onChange = _ref.onChange,
30924
30949
  placeholder = _ref.placeholder,
30925
- className = _ref.className;
30950
+ className = _ref.className,
30951
+ rightElement = _ref.rightElement;
30952
+ var hasRightElement = Boolean(rightElement);
30926
30953
  return React.createElement(Container$m, {
30927
30954
  className: className
30928
30955
  }, React.createElement(Input$1, {
@@ -30932,8 +30959,9 @@ var SearchBar = function SearchBar(_ref) {
30932
30959
  return _onChange(e.target.value);
30933
30960
  },
30934
30961
  placeholder: placeholder,
30935
- className: "rpgui-input"
30936
- }), React.createElement(IconContainer, null, React.createElement(SearchIcon, null)));
30962
+ className: "rpgui-input",
30963
+ "$hasRightElement": hasRightElement
30964
+ }), React.createElement(IconContainer, null, React.createElement(SearchIcon, null), rightElement));
30937
30965
  };
30938
30966
  var Container$m = /*#__PURE__*/styled.div.withConfig({
30939
30967
  displayName: "SearchBar__Container",
@@ -30942,11 +30970,13 @@ var Container$m = /*#__PURE__*/styled.div.withConfig({
30942
30970
  var Input$1 = /*#__PURE__*/styled.input.withConfig({
30943
30971
  displayName: "SearchBar__Input",
30944
30972
  componentId: "sc-13n8z02-1"
30945
- })(["width:100%;padding-right:2.5rem !important;background:rgba(0,0,0,0.2) !important;border:2px solid #f59e0b !important;box-shadow:0 0 10px rgba(245,158,11,0.3);color:#ffffff !important;font-family:'Press Start 2P',cursive !important;font-size:0.875rem !important;&::placeholder{color:rgba(255,255,255,0.5) !important;}"]);
30973
+ })(["width:100%;padding-right:", " !important;background:rgba(0,0,0,0.2) !important;border:2px solid #f59e0b !important;box-shadow:0 0 10px rgba(245,158,11,0.3);color:#ffffff !important;font-family:'Press Start 2P',cursive !important;font-size:0.875rem !important;&::placeholder{color:rgba(255,255,255,0.5) !important;}"], function (props) {
30974
+ return props.$hasRightElement ? '6rem' : '2.5rem';
30975
+ });
30946
30976
  var IconContainer = /*#__PURE__*/styled.div.withConfig({
30947
30977
  displayName: "SearchBar__IconContainer",
30948
30978
  componentId: "sc-13n8z02-2"
30949
- })(["position:absolute;right:0.75rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:24px;height:24px;pointer-events:none;"]);
30979
+ })(["position:absolute;right:0.75rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:0.5rem;pointer-events:none;z-index:1;> *{pointer-events:auto;}"]);
30950
30980
  var SearchIcon = /*#__PURE__*/styled(FaSearch).withConfig({
30951
30981
  displayName: "SearchBar__SearchIcon",
30952
30982
  componentId: "sc-13n8z02-3"
@@ -30962,7 +30992,8 @@ var SearchHeader = function SearchHeader(_ref) {
30962
30992
  }, React.createElement(HeaderContent, null, searchOptions && React.createElement(SearchContainer$2, null, React.createElement(StyledSearchBar, {
30963
30993
  value: searchOptions.value,
30964
30994
  onChange: searchOptions.onChange,
30965
- placeholder: searchOptions.placeholder || 'Search...'
30995
+ placeholder: searchOptions.placeholder || 'Search...',
30996
+ rightElement: searchOptions.rightElement
30966
30997
  })), filterOptions && React.createElement(FilterContainer, null, React.createElement(StyledDropdown, {
30967
30998
  options: filterOptions.options,
30968
30999
  onChange: filterOptions.onOptionChange,
@@ -31159,7 +31190,7 @@ var Icon$1 = /*#__PURE__*/styled.span.withConfig({
31159
31190
  var Content$1 = /*#__PURE__*/styled.div.withConfig({
31160
31191
  displayName: "Collapsible__Content",
31161
31192
  componentId: "sc-s4h8ey-4"
31162
- })(["padding:12px;"]);
31193
+ })(["padding:6px;"]);
31163
31194
 
31164
31195
  var BaseInformationDetails = function BaseInformationDetails(_ref) {
31165
31196
  var name = _ref.name,
@@ -31184,15 +31215,15 @@ var BaseInformationDetails = function BaseInformationDetails(_ref) {
31184
31215
  var Container$p = /*#__PURE__*/styled.div.withConfig({
31185
31216
  displayName: "BaseInformationDetails__Container",
31186
31217
  componentId: "sc-1vguuz8-0"
31187
- })(["position:absolute;inset:0;display:flex;justify-content:center;align-items:center;z-index:1000;"]);
31218
+ })(["position:fixed;inset:0;display:flex;justify-content:center;align-items:center;z-index:9999;"]);
31188
31219
  var Overlay = /*#__PURE__*/styled.div.withConfig({
31189
31220
  displayName: "BaseInformationDetails__Overlay",
31190
31221
  componentId: "sc-1vguuz8-1"
31191
- })(["position:absolute;inset:0;background-color:rgba(0,0,0,0.8);"]);
31222
+ })(["position:fixed;inset:0;background-color:rgba(0,0,0,0.8);"]);
31192
31223
  var Modal = /*#__PURE__*/styled.div.withConfig({
31193
31224
  displayName: "BaseInformationDetails__Modal",
31194
31225
  componentId: "sc-1vguuz8-2"
31195
- })(["position:relative;width:90%;height:90%;background-color:rgba(0,0,0,0.95);border-radius:4px;padding:16px;overflow-y:auto;z-index:1;font-family:'Press Start 2P',cursive;border:1px solid ", ";box-shadow:0 2px 4px rgba(0,0,0,0.2);&::-webkit-scrollbar{width:2px;}&::-webkit-scrollbar-track{background:transparent;}&::-webkit-scrollbar-thumb{background-color:", ";border-radius:4px;opacity:0.5;&:hover{opacity:1;}}scrollbar-width:thin;scrollbar-color:", " transparent;"], uiColors.darkGray, uiColors.yellow, uiColors.yellow);
31226
+ })(["position:fixed;background-color:rgba(0,0,0,0.95);border-radius:4px;padding:12px;overflow:hidden;z-index:1;font-family:'Press Start 2P',cursive;border:1px solid ", ";box-shadow:0 2px 4px rgba(0,0,0,0.2);width:90%;height:90%;top:5%;left:5%;max-width:800px;margin:0 auto;@media (max-width:768px){width:100%;height:100%;top:0;left:0;border-radius:0;padding:8px;}&::-webkit-scrollbar{width:2px;}&::-webkit-scrollbar-track{background:transparent;}&::-webkit-scrollbar-thumb{background-color:", ";border-radius:4px;opacity:0.5;&:hover{opacity:1;}}scrollbar-width:thin;scrollbar-color:", " transparent;"], uiColors.darkGray, uiColors.yellow, uiColors.yellow);
31196
31227
  var CloseButton$5 = /*#__PURE__*/styled.button.withConfig({
31197
31228
  displayName: "BaseInformationDetails__CloseButton",
31198
31229
  componentId: "sc-1vguuz8-3"
@@ -31204,7 +31235,7 @@ var Header$2 = /*#__PURE__*/styled.div.withConfig({
31204
31235
  var Content$2 = /*#__PURE__*/styled.div.withConfig({
31205
31236
  displayName: "BaseInformationDetails__Content",
31206
31237
  componentId: "sc-1vguuz8-5"
31207
- })(["display:flex;flex-direction:column;gap:16px;height:100%;overflow:auto;"]);
31238
+ })(["display:flex;flex-direction:column;gap:12px;height:calc(100% - 80px);overflow-y:auto;overflow-x:hidden;padding-right:6px;margin-right:-6px;@media (max-width:768px){height:calc(100% - 64px);gap:8px;padding-right:4px;margin-right:-4px;}"]);
31208
31239
  var Title$4 = /*#__PURE__*/styled.h2.withConfig({
31209
31240
  displayName: "BaseInformationDetails__Title",
31210
31241
  componentId: "sc-1vguuz8-6"
@@ -31430,7 +31461,180 @@ var InformationCenterItemTooltip = function InformationCenterItemTooltip(_ref) {
31430
31461
  }, item.rarity)))));
31431
31462
  };
31432
31463
 
31433
- var TOOLTIP_OFFSET = 200;
31464
+ var AdvancedFilters = function AdvancedFilters(_ref) {
31465
+ var isOpen = _ref.isOpen,
31466
+ onToggle = _ref.onToggle,
31467
+ sections = _ref.sections,
31468
+ onClearAll = _ref.onClearAll,
31469
+ hasActiveFilters = _ref.hasActiveFilters;
31470
+ var renderFilterSection = function renderFilterSection(section) {
31471
+ switch (section.type) {
31472
+ case 'range':
31473
+ var rangeValue = section.value;
31474
+ return React.createElement(FilterSection, {
31475
+ key: section.key
31476
+ }, React.createElement(Label$1, null, section.label), React.createElement(RangeInputs, null, React.createElement(Input, {
31477
+ type: "number",
31478
+ min: 0,
31479
+ placeholder: "Min",
31480
+ value: rangeValue[0] || '',
31481
+ onChange: function onChange(e) {
31482
+ return section.onChange([e.target.value ? Number(e.target.value) : undefined, rangeValue[1]]);
31483
+ }
31484
+ }), React.createElement(AiFillCaretRight, null), React.createElement(Input, {
31485
+ type: "number",
31486
+ min: 0,
31487
+ placeholder: "Max",
31488
+ value: rangeValue[1] || '',
31489
+ onChange: function onChange(e) {
31490
+ return section.onChange([rangeValue[0], e.target.value ? Number(e.target.value) : undefined]);
31491
+ }
31492
+ })));
31493
+ case 'dropdown':
31494
+ return React.createElement(FilterSection, {
31495
+ key: section.key
31496
+ }, React.createElement(Label$1, null, section.label), React.createElement(Dropdown, {
31497
+ options: section.options || [],
31498
+ onChange: section.onChange,
31499
+ width: "100%"
31500
+ }));
31501
+ default:
31502
+ return null;
31503
+ }
31504
+ };
31505
+ return React.createElement(Container$q, null, React.createElement(FilterButton, {
31506
+ onClick: onToggle,
31507
+ "$hasActiveFilters": hasActiveFilters
31508
+ }, hasActiveFilters ? React.createElement(AiFillFilter, {
31509
+ size: 20
31510
+ }) : React.createElement(AiOutlineFilter, {
31511
+ size: 20
31512
+ }), React.createElement(FilterCount, {
31513
+ "$visible": hasActiveFilters
31514
+ }, sections.filter(function (section) {
31515
+ if (section.type === 'range') {
31516
+ var rangeValue = section.value;
31517
+ return rangeValue[0] !== undefined || rangeValue[1] !== undefined;
31518
+ }
31519
+ 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, {
31521
+ onClick: onClearAll
31522
+ }, "Clear All Filters")));
31523
+ };
31524
+ var Container$q = /*#__PURE__*/styled.div.withConfig({
31525
+ displayName: "AdvancedFilters__Container",
31526
+ componentId: "sc-1xj6ldr-0"
31527
+ })(["position:relative;margin-left:0.5rem;"]);
31528
+ var FilterButton = /*#__PURE__*/styled.button.withConfig({
31529
+ displayName: "AdvancedFilters__FilterButton",
31530
+ componentId: "sc-1xj6ldr-1"
31531
+ })(["position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;color:", ";cursor:pointer;transition:all 0.2s;&:hover{color:", ";}"], function (_ref2) {
31532
+ var $hasActiveFilters = _ref2.$hasActiveFilters;
31533
+ return $hasActiveFilters ? '#ffd700' : 'rgba(255, 255, 255, 0.8)';
31534
+ }, function (_ref3) {
31535
+ var $hasActiveFilters = _ref3.$hasActiveFilters;
31536
+ return $hasActiveFilters ? '#ffd700' : '#ffffff';
31537
+ });
31538
+ var FilterCount = /*#__PURE__*/styled.div.withConfig({
31539
+ displayName: "AdvancedFilters__FilterCount",
31540
+ componentId: "sc-1xj6ldr-2"
31541
+ })(["position:absolute;top:-4px;right:-4px;background:#ffd700;color:#000;border-radius:50%;width:16px;height:16px;font-size:10px;font-weight:bold;display:flex;align-items:center;justify-content:center;opacity:", ";transform:scale(", ");transition:all 0.2s;"], function (_ref4) {
31542
+ var $visible = _ref4.$visible;
31543
+ return $visible ? 1 : 0;
31544
+ }, function (_ref5) {
31545
+ var $visible = _ref5.$visible;
31546
+ return $visible ? 1 : 0.5;
31547
+ });
31548
+ var FiltersPanel = /*#__PURE__*/styled.div.withConfig({
31549
+ displayName: "AdvancedFilters__FiltersPanel",
31550
+ 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);}"]);
31552
+ var FilterHeader = /*#__PURE__*/styled.div.withConfig({
31553
+ displayName: "AdvancedFilters__FilterHeader",
31554
+ componentId: "sc-1xj6ldr-4"
31555
+ })(["display:flex;align-items:center;justify-content:space-between;padding-bottom:0.75rem;margin-bottom:0.5rem;border-bottom:1px solid #333;"]);
31556
+ var FilterTitle = /*#__PURE__*/styled.div.withConfig({
31557
+ displayName: "AdvancedFilters__FilterTitle",
31558
+ componentId: "sc-1xj6ldr-5"
31559
+ })(["font-weight:600;color:#ffd700;font-size:0.875rem;"]);
31560
+ var FilterSection = /*#__PURE__*/styled.div.withConfig({
31561
+ displayName: "AdvancedFilters__FilterSection",
31562
+ componentId: "sc-1xj6ldr-6"
31563
+ })(["display:flex;flex-direction:column;gap:0.5rem;"]);
31564
+ var Label$1 = /*#__PURE__*/styled.div.withConfig({
31565
+ displayName: "AdvancedFilters__Label",
31566
+ componentId: "sc-1xj6ldr-7"
31567
+ })(["color:#999;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.05em;"]);
31568
+ var RangeInputs = /*#__PURE__*/styled.div.withConfig({
31569
+ displayName: "AdvancedFilters__RangeInputs",
31570
+ 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;}"]);
31572
+ var ClearFiltersButton = /*#__PURE__*/styled.button.withConfig({
31573
+ displayName: "AdvancedFilters__ClearFiltersButton",
31574
+ 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;}"]);
31576
+
31577
+ var ItemsAdvancedFilters = function ItemsAdvancedFilters(_ref) {
31578
+ var isOpen = _ref.isOpen,
31579
+ onToggle = _ref.onToggle,
31580
+ onTierChange = _ref.onTierChange,
31581
+ onTypeChange = _ref.onTypeChange,
31582
+ selectedTier = _ref.selectedTier,
31583
+ selectedType = _ref.selectedType;
31584
+ var tierOptions = [{
31585
+ id: 0,
31586
+ value: 'all',
31587
+ option: 'All Tiers'
31588
+ }].concat(Array.from({
31589
+ length: 5
31590
+ }, function (_, i) {
31591
+ return {
31592
+ id: i + 1,
31593
+ value: String(i + 1),
31594
+ option: "Tier " + (i + 1)
31595
+ };
31596
+ }));
31597
+ var typeOptions = [{
31598
+ id: 0,
31599
+ value: 'all',
31600
+ option: 'All Types'
31601
+ }].concat(Object.entries(ItemType).map(function (_ref2, index) {
31602
+ var value = _ref2[1];
31603
+ return {
31604
+ id: index + 1,
31605
+ value: value,
31606
+ option: formatItemType(value)
31607
+ };
31608
+ }));
31609
+ var hasActiveFilters = selectedTier !== 'all' || selectedType !== 'all';
31610
+ var handleClearFilters = function handleClearFilters() {
31611
+ onTierChange('all');
31612
+ onTypeChange('all');
31613
+ };
31614
+ var sections = [{
31615
+ type: 'dropdown',
31616
+ label: 'Tier',
31617
+ key: 'tier',
31618
+ options: tierOptions,
31619
+ value: selectedTier,
31620
+ onChange: onTierChange
31621
+ }, {
31622
+ type: 'dropdown',
31623
+ label: 'Item Type',
31624
+ key: 'type',
31625
+ options: typeOptions,
31626
+ value: selectedType,
31627
+ onChange: onTypeChange
31628
+ }];
31629
+ return React.createElement(AdvancedFilters, {
31630
+ isOpen: isOpen,
31631
+ onToggle: onToggle,
31632
+ sections: sections,
31633
+ onClearAll: handleClearFilters,
31634
+ hasActiveFilters: hasActiveFilters
31635
+ });
31636
+ };
31637
+
31434
31638
  var formatItemType = function formatItemType(type) {
31435
31639
  var words = type.split(/(?=[A-Z])/);
31436
31640
  if (words.length === 1) {
@@ -31450,38 +31654,35 @@ var InformationCenterItemsSection = function InformationCenterItemsSection(_ref)
31450
31654
  itemsAtlasIMG = _ref.itemsAtlasIMG,
31451
31655
  initialSearchQuery = _ref.initialSearchQuery,
31452
31656
  tabId = _ref.tabId;
31657
+ var isMobile = isMobileOrTablet();
31453
31658
  var _useState = useState(initialSearchQuery),
31454
31659
  searchQuery = _useState[0],
31455
31660
  setSearchQuery = _useState[1];
31456
31661
  var _useState2 = useState('all'),
31457
31662
  selectedItemCategory = _useState2[0],
31458
31663
  setSelectedItemCategory = _useState2[1];
31459
- var _useState3 = useState(null),
31460
- hoveredItem = _useState3[0],
31461
- setHoveredItem = _useState3[1];
31462
- var _useState4 = useState({
31463
- x: 0,
31464
- y: 0
31465
- }),
31466
- tooltipPosition = _useState4[0],
31467
- setTooltipPosition = _useState4[1];
31664
+ var _useState3 = useState('all'),
31665
+ selectedTier = _useState3[0],
31666
+ setSelectedTier = _useState3[1];
31667
+ var _useState4 = useState(false),
31668
+ isAdvancedFiltersOpen = _useState4[0],
31669
+ setIsAdvancedFiltersOpen = _useState4[1];
31468
31670
  var _useState5 = useState(null),
31469
31671
  selectedItem = _useState5[0],
31470
31672
  setSelectedItem = _useState5[1];
31471
- var itemCategoryOptions = [{
31472
- id: 0,
31473
- value: 'all',
31474
- option: 'All Items'
31475
- }].concat(Object.values(ItemType).map(function (type, index) {
31476
- return {
31477
- id: index + 1,
31478
- value: type,
31479
- option: formatItemType(type)
31480
- };
31481
- }));
31482
- var filteredItems = items.filter(function (item) {
31483
- return (selectedItemCategory === 'all' || item.type === selectedItemCategory) && item.name.toLowerCase().includes(searchQuery.toLowerCase());
31484
- });
31673
+ var _useTooltipPosition = useTooltipPosition(),
31674
+ tooltipState = _useTooltipPosition.tooltipState,
31675
+ handleMouseEnter = _useTooltipPosition.handleMouseEnter,
31676
+ handleMouseLeave = _useTooltipPosition.handleMouseLeave,
31677
+ TOOLTIP_WIDTH = _useTooltipPosition.TOOLTIP_WIDTH;
31678
+ var filteredItems = useMemo(function () {
31679
+ return items.filter(function (item) {
31680
+ var matchesSearch = item.name.toLowerCase().includes(searchQuery.toLowerCase());
31681
+ var matchesCategory = selectedItemCategory === 'all' || item.type === selectedItemCategory;
31682
+ var matchesTier = selectedTier === 'all' || String(item.tier) === selectedTier;
31683
+ return matchesSearch && matchesCategory && matchesTier;
31684
+ });
31685
+ }, [items, searchQuery, selectedItemCategory, selectedTier]);
31485
31686
  var getDroppedByNPCs = function getDroppedByNPCs(itemId, npcs) {
31486
31687
  return npcs.filter(function (npc) {
31487
31688
  var _npc$loots;
@@ -31490,35 +31691,12 @@ var InformationCenterItemsSection = function InformationCenterItemsSection(_ref)
31490
31691
  });
31491
31692
  }) || [];
31492
31693
  };
31493
- var handleMouseEnter = function handleMouseEnter(e, item) {
31494
- setTooltipPosition({
31495
- x: e.clientX + TOOLTIP_OFFSET,
31496
- y: e.clientY
31497
- });
31498
- setHoveredItem(item);
31499
- };
31500
- var handleMouseMove = function handleMouseMove(e) {
31501
- if (hoveredItem) {
31502
- setTooltipPosition({
31503
- x: e.clientX + TOOLTIP_OFFSET,
31504
- y: e.clientY
31505
- });
31506
- }
31507
- };
31508
- var handleMouseLeave = function handleMouseLeave() {
31509
- setHoveredItem(null);
31510
- };
31511
31694
  var handleTouchStart = function handleTouchStart(e, item) {
31512
- var touch = e.touches[0];
31513
- setTooltipPosition({
31514
- x: touch.clientX + TOOLTIP_OFFSET,
31515
- y: touch.clientY
31516
- });
31517
- setHoveredItem(item);
31695
+ e.preventDefault();
31696
+ setSelectedItem(item);
31518
31697
  };
31519
31698
  var handleItemClick = function handleItemClick(item) {
31520
31699
  setSelectedItem(item);
31521
- setHoveredItem(null);
31522
31700
  };
31523
31701
  var handleSearchChange = function handleSearchChange(newQuery) {
31524
31702
  setSearchQuery(newQuery);
@@ -31534,9 +31712,8 @@ var InformationCenterItemsSection = function InformationCenterItemsSection(_ref)
31534
31712
  atlasJSON: itemsAtlasJSON,
31535
31713
  atlasIMG: itemsAtlasIMG,
31536
31714
  onMouseEnter: function onMouseEnter(e) {
31537
- return handleMouseEnter(e, item);
31715
+ return handleMouseEnter(item, e);
31538
31716
  },
31539
- onMouseMove: handleMouseMove,
31540
31717
  onMouseLeave: handleMouseLeave,
31541
31718
  onTouchStart: function onTouchStart(e) {
31542
31719
  return handleTouchStart(e, item);
@@ -31546,32 +31723,40 @@ var InformationCenterItemsSection = function InformationCenterItemsSection(_ref)
31546
31723
  }
31547
31724
  });
31548
31725
  };
31726
+ var SearchBarRightElement = React.createElement(SearchBarActions, null, React.createElement(ItemsAdvancedFilters, {
31727
+ isOpen: isAdvancedFiltersOpen,
31728
+ onToggle: function onToggle() {
31729
+ return setIsAdvancedFiltersOpen(!isAdvancedFiltersOpen);
31730
+ },
31731
+ onTierChange: setSelectedTier,
31732
+ onTypeChange: setSelectedItemCategory,
31733
+ selectedTier: selectedTier,
31734
+ selectedType: selectedItemCategory
31735
+ }));
31549
31736
  return React.createElement(React.Fragment, null, React.createElement(PaginatedContent, {
31550
31737
  items: filteredItems,
31551
31738
  renderItem: renderItem,
31552
31739
  emptyMessage: "No items found",
31553
- filterOptions: {
31554
- options: itemCategoryOptions,
31555
- selectedOption: selectedItemCategory,
31556
- onOptionChange: setSelectedItemCategory
31557
- },
31558
31740
  searchOptions: {
31559
31741
  value: searchQuery,
31560
31742
  onChange: handleSearchChange,
31561
- placeholder: 'Search items...'
31743
+ placeholder: 'Search items...',
31744
+ rightElement: SearchBarRightElement
31562
31745
  },
31563
- dependencies: [selectedItemCategory],
31746
+ dependencies: [selectedItemCategory, selectedTier],
31564
31747
  tabId: tabId,
31565
31748
  layout: "grid",
31566
31749
  itemHeight: "180px"
31567
- }), hoveredItem && React.createElement(TooltipWrapper, {
31750
+ }), !isMobile && tooltipState && tooltipState.item && React.createElement(Portal, null, React.createElement(TooltipWrapper, {
31751
+ width: TOOLTIP_WIDTH,
31568
31752
  style: {
31569
- top: tooltipPosition.y,
31570
- left: tooltipPosition.x
31753
+ position: 'fixed',
31754
+ left: tooltipState.position.x + "px",
31755
+ top: tooltipState.position.y + "px"
31571
31756
  }
31572
31757
  }, React.createElement(InformationCenterItemTooltip, {
31573
- item: hoveredItem
31574
- })), selectedItem && React.createElement(InformationCenterItemDetails, {
31758
+ item: tooltipState.item
31759
+ }))), selectedItem && React.createElement(Portal, null, React.createElement(InformationCenterItemDetails, {
31575
31760
  item: selectedItem,
31576
31761
  itemsAtlasJSON: itemsAtlasJSON,
31577
31762
  itemsAtlasIMG: itemsAtlasIMG,
@@ -31579,12 +31764,87 @@ var InformationCenterItemsSection = function InformationCenterItemsSection(_ref)
31579
31764
  onBack: function onBack() {
31580
31765
  return setSelectedItem(null);
31581
31766
  }
31582
- }));
31767
+ })));
31583
31768
  };
31584
31769
  var TooltipWrapper = /*#__PURE__*/styled.div.withConfig({
31585
31770
  displayName: "InformationCenterItemsSection__TooltipWrapper",
31586
31771
  componentId: "sc-1wmpapt-0"
31587
- })(["position:fixed;z-index:1000;pointer-events:none;transition:transform 0.1s ease;"]);
31772
+ })(["z-index:1000;pointer-events:none;width:", ";"], function (props) {
31773
+ return props.width + "px";
31774
+ });
31775
+ var SearchBarActions = /*#__PURE__*/styled.div.withConfig({
31776
+ displayName: "InformationCenterItemsSection__SearchBarActions",
31777
+ componentId: "sc-1wmpapt-1"
31778
+ })(["display:flex;align-items:center;gap:0.5rem;"]);
31779
+
31780
+ var BestiaryAdvancedFilters = function BestiaryAdvancedFilters(_ref) {
31781
+ var isOpen = _ref.isOpen,
31782
+ onToggle = _ref.onToggle,
31783
+ onLevelRangeChange = _ref.onLevelRangeChange,
31784
+ onSubtypeChange = _ref.onSubtypeChange,
31785
+ onAttackTypeChange = _ref.onAttackTypeChange,
31786
+ levelRange = _ref.levelRange,
31787
+ selectedSubtype = _ref.selectedSubtype,
31788
+ selectedAttackType = _ref.selectedAttackType;
31789
+ var subtypeOptions = [{
31790
+ id: 0,
31791
+ value: 'all',
31792
+ option: 'All Types'
31793
+ }].concat(Object.entries(NPCSubtype).map(function (_ref2, index) {
31794
+ var value = _ref2[1];
31795
+ return {
31796
+ id: index + 1,
31797
+ value: value,
31798
+ option: formatItemType(value)
31799
+ };
31800
+ }));
31801
+ var attackTypeOptions = [{
31802
+ id: 0,
31803
+ value: 'all',
31804
+ option: 'All Attack Types'
31805
+ }].concat(Object.entries(EntityAttackType).map(function (_ref3, index) {
31806
+ var value = _ref3[1];
31807
+ return {
31808
+ id: index + 1,
31809
+ value: value,
31810
+ option: formatItemType(value)
31811
+ };
31812
+ }));
31813
+ var hasActiveFilters = levelRange[0] !== undefined || levelRange[1] !== undefined || selectedSubtype !== 'all' || selectedAttackType !== 'all';
31814
+ var handleClearFilters = function handleClearFilters() {
31815
+ onLevelRangeChange([undefined, undefined]);
31816
+ onSubtypeChange('all');
31817
+ onAttackTypeChange('all');
31818
+ };
31819
+ var sections = [{
31820
+ type: 'range',
31821
+ label: 'Level Range',
31822
+ key: 'level',
31823
+ value: levelRange,
31824
+ onChange: onLevelRangeChange
31825
+ }, {
31826
+ type: 'dropdown',
31827
+ label: 'Monster Type',
31828
+ key: 'subtype',
31829
+ options: subtypeOptions,
31830
+ value: selectedSubtype,
31831
+ onChange: onSubtypeChange
31832
+ }, {
31833
+ type: 'dropdown',
31834
+ label: 'Attack Type',
31835
+ key: 'attackType',
31836
+ options: attackTypeOptions,
31837
+ value: selectedAttackType,
31838
+ onChange: onAttackTypeChange
31839
+ }];
31840
+ return React.createElement(AdvancedFilters, {
31841
+ isOpen: isOpen,
31842
+ onToggle: onToggle,
31843
+ sections: sections,
31844
+ onClearAll: handleClearFilters,
31845
+ hasActiveFilters: hasActiveFilters
31846
+ });
31847
+ };
31588
31848
 
31589
31849
  var ITEMS_PER_PAGE$1 = 5;
31590
31850
  var formatItemName = function formatItemName(itemPath) {
@@ -31648,7 +31908,7 @@ var InformationCenterNPCDetails = function InformationCenterNPCDetails(_ref) {
31648
31908
  atlasJSON: entitiesAtlasJSON,
31649
31909
  atlasIMG: entitiesAtlasIMG,
31650
31910
  onBack: onBack
31651
- }, React.createElement(InfoSection$1, null, React.createElement(InfoItem$1, null, React.createElement(Label$1, null, "Type:"), React.createElement(Value$1, null, formatText(npc.subType))), React.createElement(InfoItem$1, null, React.createElement(Label$1, null, "Alignment:"), React.createElement(Value$1, null, formatText(npc.alignment))), React.createElement(InfoItem$1, null, React.createElement(Label$1, null, "Attack Type:"), React.createElement(Value$1, null, formatText(npc.attackType))), React.createElement(InfoItem$1, null, React.createElement(Label$1, null, "Range:"), React.createElement(Value$1, null, formatText(npc.maxRangeAttack))), React.createElement(InfoItem$1, null, React.createElement(Label$1, null, "Speed:"), React.createElement(Value$1, null, formatText(npc.speed)))), React.createElement(StyledCollapsible$1, {
31911
+ }, React.createElement(InfoSection$1, null, React.createElement(InfoItem$1, null, React.createElement(Label$2, null, "Type:"), React.createElement(Value$1, null, formatText(npc.subType))), React.createElement(InfoItem$1, null, React.createElement(Label$2, null, "Alignment:"), React.createElement(Value$1, null, formatText(npc.alignment))), React.createElement(InfoItem$1, null, React.createElement(Label$2, null, "Attack Type:"), React.createElement(Value$1, null, formatText(npc.attackType))), React.createElement(InfoItem$1, null, React.createElement(Label$2, null, "Range:"), React.createElement(Value$1, null, formatText(npc.maxRangeAttack))), React.createElement(InfoItem$1, null, React.createElement(Label$2, null, "Speed:"), React.createElement(Value$1, null, formatText(npc.speed)))), React.createElement(StyledCollapsible$1, {
31652
31912
  title: "Stats",
31653
31913
  defaultOpen: !isMobile
31654
31914
  }, React.createElement(StatGrid$1, null, React.createElement(StatItem$2, null, "HP: ", npc.baseHealth), React.createElement(StatItem$2, null, "Level: ", npc.skills.level), ((_npc$skills$strength = npc.skills.strength) == null ? void 0 : _npc$skills$strength.level) && React.createElement(StatItem$2, null, "Strength: ", npc.skills.strength.level), ((_npc$skills$dexterity = npc.skills.dexterity) == null ? void 0 : _npc$skills$dexterity.level) && React.createElement(StatItem$2, null, "Dexterity: ", npc.skills.dexterity.level), ((_npc$skills$resistanc = npc.skills.resistance) == null ? void 0 : _npc$skills$resistanc.level) && React.createElement(StatItem$2, null, "Resistance: ", npc.skills.resistance.level))), npc.loots && npc.loots.length > 0 && React.createElement(StyledCollapsible$1, {
@@ -31704,7 +31964,7 @@ var InfoItem$1 = /*#__PURE__*/styled.div.withConfig({
31704
31964
  displayName: "InformationCenterNPCDetails__InfoItem",
31705
31965
  componentId: "sc-fdu3xl-1"
31706
31966
  })(["display:flex;align-items:center;gap:8px;"]);
31707
- var Label$1 = /*#__PURE__*/styled.span.withConfig({
31967
+ var Label$2 = /*#__PURE__*/styled.span.withConfig({
31708
31968
  displayName: "InformationCenterNPCDetails__Label",
31709
31969
  componentId: "sc-fdu3xl-2"
31710
31970
  })(["color:", ";font-size:0.5rem;opacity:0.8;"], uiColors.yellow);
@@ -31715,7 +31975,7 @@ var Value$1 = /*#__PURE__*/styled.span.withConfig({
31715
31975
  var StyledCollapsible$1 = /*#__PURE__*/styled(Collapsible).withConfig({
31716
31976
  displayName: "InformationCenterNPCDetails__StyledCollapsible",
31717
31977
  componentId: "sc-fdu3xl-4"
31718
- })(["background:rgba(255,255,255,0.05);border-radius:4px;overflow:auto;scrollbar-width:thin;scrollbar-color:", " transparent;"], uiColors.darkGray);
31978
+ })(["background:rgba(255,255,255,0.05);border-radius:4px;overflow:visible;scrollbar-width:thin;scrollbar-color:", " transparent;width:100%;box-sizing:border-box;"], uiColors.darkGray);
31719
31979
  var StatGrid$1 = /*#__PURE__*/styled.div.withConfig({
31720
31980
  displayName: "InformationCenterNPCDetails__StatGrid",
31721
31981
  componentId: "sc-fdu3xl-5"
@@ -31767,19 +32027,19 @@ var Separator = /*#__PURE__*/styled.span.withConfig({
31767
32027
  var LootSearchContainer = /*#__PURE__*/styled.div.withConfig({
31768
32028
  displayName: "InformationCenterNPCDetails__LootSearchContainer",
31769
32029
  componentId: "sc-fdu3xl-17"
31770
- })(["padding:12px 12px 0;"]);
32030
+ })(["padding:8px;background:rgba(0,0,0,0.2);border-radius:4px;margin:8px 8px 4px;box-sizing:border-box;"]);
31771
32031
  var StyledSearchBar$1 = /*#__PURE__*/styled(SearchBar).withConfig({
31772
32032
  displayName: "InformationCenterNPCDetails__StyledSearchBar",
31773
32033
  componentId: "sc-fdu3xl-18"
31774
- })(["width:100%;"]);
32034
+ })(["width:100%;box-sizing:border-box;input{background:rgba(0,0,0,0.2) !important;border:1px solid rgba(255,255,255,0.1) !important;box-sizing:border-box;&:focus{border-color:", " !important;}}"], uiColors.yellow);
31775
32035
  var LootGrid = /*#__PURE__*/styled.div.withConfig({
31776
32036
  displayName: "InformationCenterNPCDetails__LootGrid",
31777
32037
  componentId: "sc-fdu3xl-19"
31778
- })(["display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;padding:12px;"]);
32038
+ })(["display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:4px;padding:4px 8px;width:100%;max-width:100%;box-sizing:border-box;@media (max-width:768px){grid-template-columns:1fr;padding:4px;}"]);
31779
32039
  var LootItem = /*#__PURE__*/styled.div.withConfig({
31780
32040
  displayName: "InformationCenterNPCDetails__LootItem",
31781
32041
  componentId: "sc-fdu3xl-20"
31782
- })(["display:flex;align-items:center;gap:8px;background:rgba(255,255,255,0.05);padding:8px;border-radius:4px;"]);
32042
+ })(["display:flex;align-items:center;gap:4px;background:rgba(255,255,255,0.05);padding:4px;border-radius:4px;min-width:0;"]);
31783
32043
  var LootDetails = /*#__PURE__*/styled.div.withConfig({
31784
32044
  displayName: "InformationCenterNPCDetails__LootDetails",
31785
32045
  componentId: "sc-fdu3xl-21"
@@ -31908,67 +32168,41 @@ var InformationCenterBestiarySection = function InformationCenterBestiarySection
31908
32168
  entitiesAtlasIMG = _ref.entitiesAtlasIMG,
31909
32169
  initialSearchQuery = _ref.initialSearchQuery,
31910
32170
  tabId = _ref.tabId;
32171
+ var isMobile = isMobileOrTablet();
31911
32172
  var _useState = useState(initialSearchQuery),
31912
32173
  searchQuery = _useState[0],
31913
32174
  setSearchQuery = _useState[1];
31914
32175
  var _useState2 = useState(null),
31915
- tooltipData = _useState2[0],
31916
- setTooltipData = _useState2[1];
31917
- var _useState3 = useState(null),
31918
- selectedMonster = _useState3[0],
31919
- setSelectedMonster = _useState3[1];
31920
- var _useState4 = useState('ontouchstart' in window),
31921
- isTouchDevice = _useState4[0];
31922
- var handleMouseEnter = function handleMouseEnter(monster, event) {
31923
- if (!isTouchDevice && !selectedMonster) {
31924
- setTooltipData({
31925
- npc: monster,
31926
- position: {
31927
- x: event.clientX,
31928
- y: event.clientY
31929
- }
31930
- });
31931
- }
31932
- };
31933
- var handleMouseLeave = function handleMouseLeave() {
31934
- if (!isTouchDevice) {
31935
- setTooltipData(null);
31936
- }
31937
- };
31938
- var handleMouseMove = function handleMouseMove(event) {
31939
- if (!isTouchDevice && tooltipData) {
31940
- setTooltipData(_extends({}, tooltipData, {
31941
- position: {
31942
- x: event.clientX,
31943
- y: event.clientY
31944
- }
31945
- }));
31946
- }
31947
- };
32176
+ selectedMonster = _useState2[0],
32177
+ setSelectedMonster = _useState2[1];
32178
+ var _useState3 = useState('all'),
32179
+ selectedBestiaryCategory = _useState3[0],
32180
+ setSelectedBestiaryCategory = _useState3[1];
32181
+ var _useTooltipPosition = useTooltipPosition(),
32182
+ tooltipState = _useTooltipPosition.tooltipState,
32183
+ handleMouseEnter = _useTooltipPosition.handleMouseEnter,
32184
+ handleMouseLeave = _useTooltipPosition.handleMouseLeave,
32185
+ TOOLTIP_WIDTH = _useTooltipPosition.TOOLTIP_WIDTH;
32186
+ // Advanced filters state
32187
+ var _useState4 = useState(false),
32188
+ isAdvancedFiltersOpen = _useState4[0],
32189
+ setIsAdvancedFiltersOpen = _useState4[1];
32190
+ var _useState5 = useState([undefined, undefined]),
32191
+ levelRange = _useState5[0],
32192
+ setLevelRange = _useState5[1];
32193
+ var _useState6 = useState('all'),
32194
+ selectedSubtype = _useState6[0],
32195
+ setSelectedSubtype = _useState6[1];
32196
+ var _useState7 = useState('all'),
32197
+ selectedAttackType = _useState7[0],
32198
+ setSelectedAttackType = _useState7[1];
31948
32199
  var handleTouchStart = function handleTouchStart(monster, event) {
31949
- if (isTouchDevice) {
31950
- event.preventDefault();
31951
- var touch = event.touches[0];
31952
- if ((tooltipData == null ? void 0 : tooltipData.npc.id) === monster.id) {
31953
- setTooltipData(null);
31954
- } else {
31955
- setTooltipData({
31956
- npc: monster,
31957
- position: {
31958
- x: touch.clientX,
31959
- y: touch.clientY
31960
- }
31961
- });
31962
- }
31963
- }
32200
+ event.preventDefault();
32201
+ setSelectedMonster(monster);
31964
32202
  };
31965
32203
  var handleMonsterClick = function handleMonsterClick(monster) {
31966
32204
  setSelectedMonster(monster);
31967
- setTooltipData(null);
31968
32205
  };
31969
- var _useState5 = useState('all'),
31970
- selectedBestiaryCategory = _useState5[0],
31971
- setSelectedBestiaryCategory = _useState5[1];
31972
32206
  var bestiaryCategoryOptions = [{
31973
32207
  id: 0,
31974
32208
  value: 'all',
@@ -31977,10 +32211,13 @@ var InformationCenterBestiarySection = function InformationCenterBestiarySection
31977
32211
  id: 1,
31978
32212
  value: 'bosses',
31979
32213
  option: 'Bosses'
31980
- }].concat(Object.entries(NPCAlignment).map(function (_ref2, index) {
32214
+ }].concat(Object.entries(NPCAlignment).filter(function (_ref2) {
31981
32215
  var value = _ref2[1];
32216
+ return value !== NPCAlignment.Friendly;
32217
+ }).map(function (_ref3, index) {
32218
+ var value = _ref3[1];
31982
32219
  return {
31983
- id: index + 1,
32220
+ id: index + 2,
31984
32221
  value: value,
31985
32222
  option: formatItemType(value)
31986
32223
  };
@@ -31999,7 +32236,6 @@ var InformationCenterBestiarySection = function InformationCenterBestiarySection
31999
32236
  return handleMouseEnter(item, e);
32000
32237
  },
32001
32238
  onMouseLeave: handleMouseLeave,
32002
- onMouseMove: handleMouseMove,
32003
32239
  onTouchStart: function onTouchStart(e) {
32004
32240
  return handleTouchStart(item, e);
32005
32241
  }
@@ -32007,7 +32243,9 @@ var InformationCenterBestiarySection = function InformationCenterBestiarySection
32007
32243
  };
32008
32244
  var filteredItems = useMemo(function () {
32009
32245
  return bestiaryItems.filter(function (item) {
32246
+ // Basic search filter
32010
32247
  var matchesSearch = item.name.toLowerCase().includes(searchQuery.toLowerCase());
32248
+ // Category filter
32011
32249
  var matchesCategory = true;
32012
32250
  if (selectedBestiaryCategory === 'bosses') {
32013
32251
  matchesCategory = item.isBoss === true;
@@ -32016,15 +32254,33 @@ var InformationCenterBestiarySection = function InformationCenterBestiarySection
32016
32254
  } else if (selectedBestiaryCategory !== 'all') {
32017
32255
  matchesCategory = item.alignment === selectedBestiaryCategory;
32018
32256
  }
32019
- return matchesSearch && matchesCategory;
32257
+ // Advanced filters
32258
+ var matchesLevel = (!levelRange[0] || item.skills.level >= levelRange[0]) && (!levelRange[1] || item.skills.level <= levelRange[1]);
32259
+ var matchesSubtype = selectedSubtype === 'all' || item.subType === selectedSubtype;
32260
+ var matchesAttackType = selectedAttackType === 'all' || item.attackType === selectedAttackType;
32261
+ // Filter out friendly NPCs
32262
+ var isNotFriendly = item.alignment !== NPCAlignment.Friendly;
32263
+ return matchesSearch && matchesCategory && matchesLevel && matchesSubtype && matchesAttackType && isNotFriendly;
32020
32264
  });
32021
- }, [bestiaryItems, searchQuery, selectedBestiaryCategory]);
32265
+ }, [bestiaryItems, searchQuery, selectedBestiaryCategory, levelRange, selectedSubtype, selectedAttackType]);
32022
32266
  var handleSearchChange = function handleSearchChange(newQuery) {
32023
32267
  setSearchQuery(newQuery);
32024
32268
  if (newQuery && selectedBestiaryCategory !== 'all') {
32025
32269
  setSelectedBestiaryCategory('all');
32026
32270
  }
32027
32271
  };
32272
+ var SearchBarRightElement = React.createElement(SearchBarActions$1, null, React.createElement(BestiaryAdvancedFilters, {
32273
+ isOpen: isAdvancedFiltersOpen,
32274
+ onToggle: function onToggle() {
32275
+ return setIsAdvancedFiltersOpen(!isAdvancedFiltersOpen);
32276
+ },
32277
+ onLevelRangeChange: setLevelRange,
32278
+ onSubtypeChange: setSelectedSubtype,
32279
+ onAttackTypeChange: setSelectedAttackType,
32280
+ levelRange: levelRange,
32281
+ selectedSubtype: selectedSubtype,
32282
+ selectedAttackType: selectedAttackType
32283
+ }));
32028
32284
  return React.createElement(React.Fragment, null, React.createElement(PaginatedContent, {
32029
32285
  items: filteredItems,
32030
32286
  renderItem: renderItem,
@@ -32039,21 +32295,23 @@ var InformationCenterBestiarySection = function InformationCenterBestiarySection
32039
32295
  searchOptions: {
32040
32296
  value: searchQuery,
32041
32297
  onChange: handleSearchChange,
32042
- placeholder: 'Search monsters...'
32298
+ placeholder: 'Search monsters...',
32299
+ rightElement: SearchBarRightElement
32043
32300
  },
32044
- dependencies: [selectedBestiaryCategory],
32301
+ dependencies: [selectedBestiaryCategory, levelRange, selectedSubtype, selectedAttackType],
32045
32302
  itemHeight: "180px"
32046
- }), tooltipData && React.createElement(Portal, null, React.createElement(TooltipWrapper$1, {
32303
+ }), !isMobile && tooltipState && tooltipState.item && React.createElement(Portal, null, React.createElement(TooltipWrapper$1, {
32304
+ width: TOOLTIP_WIDTH,
32047
32305
  style: {
32048
32306
  position: 'fixed',
32049
- left: tooltipData.position.x + 10,
32050
- top: tooltipData.position.y + 10
32307
+ left: tooltipState.position.x + "px",
32308
+ top: tooltipState.position.y + "px"
32051
32309
  }
32052
32310
  }, React.createElement(InformationCenterNPCTooltip, {
32053
- npc: tooltipData.npc,
32311
+ npc: tooltipState.item,
32054
32312
  itemsAtlasJSON: itemsAtlasJSON,
32055
32313
  itemsAtlasIMG: itemsAtlasIMG
32056
- }))), selectedMonster && React.createElement(InformationCenterNPCDetails, {
32314
+ }))), selectedMonster && React.createElement(Portal, null, React.createElement(InformationCenterNPCDetails, {
32057
32315
  npc: selectedMonster,
32058
32316
  itemsAtlasJSON: itemsAtlasJSON,
32059
32317
  itemsAtlasIMG: itemsAtlasIMG,
@@ -32064,12 +32322,18 @@ var InformationCenterBestiarySection = function InformationCenterBestiarySection
32064
32322
  onBack: function onBack() {
32065
32323
  return setSelectedMonster(null);
32066
32324
  }
32067
- }));
32325
+ })));
32068
32326
  };
32069
32327
  var TooltipWrapper$1 = /*#__PURE__*/styled.div.withConfig({
32070
32328
  displayName: "InformationCenterBestiarySection__TooltipWrapper",
32071
32329
  componentId: "sc-e3h0p2-0"
32072
- })(["position:fixed;z-index:1000;pointer-events:none;width:300px;"]);
32330
+ })(["z-index:1000;pointer-events:none;width:", ";"], function (props) {
32331
+ return props.width + "px";
32332
+ });
32333
+ var SearchBarActions$1 = /*#__PURE__*/styled.div.withConfig({
32334
+ displayName: "InformationCenterBestiarySection__SearchBarActions",
32335
+ componentId: "sc-e3h0p2-1"
32336
+ })(["display:flex;align-items:center;gap:0.5rem;"]);
32073
32337
 
32074
32338
  var InformationCenterFAQSection = function InformationCenterFAQSection(_ref) {
32075
32339
  var faqItems = _ref.faqItems,
@@ -32092,7 +32356,7 @@ var InformationCenterFAQSection = function InformationCenterFAQSection(_ref) {
32092
32356
  title: item.question
32093
32357
  }, React.createElement(Answer$1, null, item.answer));
32094
32358
  };
32095
- return React.createElement(Container$q, null, React.createElement(SearchHeader, {
32359
+ return React.createElement(Container$r, null, React.createElement(SearchHeader, {
32096
32360
  searchOptions: {
32097
32361
  value: searchQuery,
32098
32362
  onChange: setSearchQuery,
@@ -32107,7 +32371,7 @@ var InformationCenterFAQSection = function InformationCenterFAQSection(_ref) {
32107
32371
  itemsPerPage: 10
32108
32372
  }));
32109
32373
  };
32110
- var Container$q = /*#__PURE__*/styled.div.withConfig({
32374
+ var Container$r = /*#__PURE__*/styled.div.withConfig({
32111
32375
  displayName: "InformationCenterFaqSection__Container",
32112
32376
  componentId: "sc-ofmaa9-0"
32113
32377
  })(["display:flex;flex-direction:column;gap:1rem;width:100%;"]);
@@ -32275,9 +32539,6 @@ var InformationCenter = function InformationCenter(_ref) {
32275
32539
  var _useState = useState('bestiary'),
32276
32540
  activeTab = _useState[0],
32277
32541
  setActiveTab = _useState[1];
32278
- var _useState2 = useState(null),
32279
- selectedItem = _useState2[0],
32280
- setSelectedItem = _useState2[1];
32281
32542
  if (loading) {
32282
32543
  return React.createElement(LoadingMessage, null, "Loading...");
32283
32544
  }
@@ -32327,8 +32588,9 @@ var InformationCenter = function InformationCenter(_ref) {
32327
32588
  })
32328
32589
  }];
32329
32590
  return React.createElement(DraggableContainer, {
32330
- title: "Information Center"
32331
- }, React.createElement(Container$r, null, React.createElement(InternalTabs, {
32591
+ title: "Information Center",
32592
+ type: RPGUIContainerTypes.Framed
32593
+ }, React.createElement(Container$s, null, React.createElement(InternalTabs, {
32332
32594
  tabs: tabs,
32333
32595
  activeTextColor: "#000000",
32334
32596
  activeTab: activeTab,
@@ -32337,22 +32599,9 @@ var InformationCenter = function InformationCenter(_ref) {
32337
32599
  inactiveColor: "#6b7280",
32338
32600
  borderColor: "#f59e0b",
32339
32601
  hoverColor: "#fef3c7"
32340
- }), selectedItem && React.createElement(InformationCenterItemDetails, {
32341
- item: selectedItem,
32342
- itemsAtlasJSON: itemsAtlasJSON,
32343
- itemsAtlasIMG: itemsAtlasIMG,
32344
- droppedBy: bestiaryItems.filter(function (npc) {
32345
- var _npc$loots;
32346
- return (_npc$loots = npc.loots) == null ? void 0 : _npc$loots.some(function (loot) {
32347
- return loot.itemBlueprintKey === selectedItem.key;
32348
- });
32349
- }),
32350
- onBack: function onBack() {
32351
- return setSelectedItem(null);
32352
- }
32353
32602
  })));
32354
32603
  };
32355
- var Container$r = /*#__PURE__*/styled.div.withConfig({
32604
+ var Container$s = /*#__PURE__*/styled.div.withConfig({
32356
32605
  displayName: "InformationCenter__Container",
32357
32606
  componentId: "sc-1ttl62e-0"
32358
32607
  })(["width:100%;max-width:800px;margin:0 auto;padding:1rem;"]);
@@ -32523,7 +32772,7 @@ var ShortcutsSetter = function ShortcutsSetter(_ref) {
32523
32772
  }
32524
32773
  return null;
32525
32774
  };
32526
- return React.createElement(Container$s, null, React.createElement("p", null, "Shortcuts:"), React.createElement(List, {
32775
+ return React.createElement(Container$t, null, React.createElement("p", null, "Shortcuts:"), React.createElement(List, {
32527
32776
  id: "shortcuts_list"
32528
32777
  }, Array.from({
32529
32778
  length: 12
@@ -32541,7 +32790,7 @@ var ShortcutsSetter = function ShortcutsSetter(_ref) {
32541
32790
  }, getContent(i));
32542
32791
  })));
32543
32792
  };
32544
- var Container$s = /*#__PURE__*/styled.div.withConfig({
32793
+ var Container$t = /*#__PURE__*/styled.div.withConfig({
32545
32794
  displayName: "ShortcutsSetter__Container",
32546
32795
  componentId: "sc-xuouuf-0"
32547
32796
  })(["p{margin:0;margin-left:0.5rem;font-size:10px;}width:100%;"]);
@@ -32986,7 +33235,7 @@ var ConfirmModal = function ConfirmModal(_ref) {
32986
33235
  e.stopPropagation();
32987
33236
  onClose();
32988
33237
  };
32989
- return React.createElement(ModalPortal, null, React.createElement(Background, null), React.createElement(Container$t, {
33238
+ return React.createElement(ModalPortal, null, React.createElement(Background, null), React.createElement(Container$u, {
32990
33239
  onClick: handleClose
32991
33240
  }, React.createElement(DraggableContainer, {
32992
33241
  width: "auto",
@@ -33009,7 +33258,7 @@ var Background = /*#__PURE__*/styled.div.withConfig({
33009
33258
  displayName: "ConfirmModal__Background",
33010
33259
  componentId: "sc-11qkyu1-0"
33011
33260
  })(["position:absolute;width:100%;height:100%;background-color:#000000;opacity:0.5;left:0;top:0;z-index:1000;"]);
33012
- var Container$t = /*#__PURE__*/styled.div.withConfig({
33261
+ var Container$u = /*#__PURE__*/styled.div.withConfig({
33013
33262
  displayName: "ConfirmModal__Container",
33014
33263
  componentId: "sc-11qkyu1-1"
33015
33264
  })(["position:absolute;width:100%;height:100%;left:0;top:0;display:flex;justify-content:center;align-items:center;z-index:1001;"]);
@@ -33064,7 +33313,7 @@ var ColorSelector = function ColorSelector(_ref) {
33064
33313
  cancelDrag: ".react-colorful",
33065
33314
  width: "25rem",
33066
33315
  onCloseButton: onClose
33067
- }, React.createElement(Container$u, null, React.createElement(Header$3, null, "Select Color"), React.createElement(ColorPickerWrapper, null, React.createElement(HexColorPicker, {
33316
+ }, React.createElement(Container$v, null, React.createElement(Header$3, null, "Select Color"), React.createElement(ColorPickerWrapper, null, React.createElement(HexColorPicker, {
33068
33317
  color: currentColor,
33069
33318
  onChange: function onChange(color) {
33070
33319
  setCurrentColor(color);
@@ -33080,7 +33329,7 @@ var ColorSelector = function ColorSelector(_ref) {
33080
33329
  onClose: handleClose
33081
33330
  }));
33082
33331
  };
33083
- var Container$u = /*#__PURE__*/styled.div.withConfig({
33332
+ var Container$v = /*#__PURE__*/styled.div.withConfig({
33084
33333
  displayName: "ItemPropertyColorSelector__Container",
33085
33334
  componentId: "sc-me1r4z-0"
33086
33335
  })(["text-align:center;background:inherit;display:flex;flex-direction:column;gap:1.5rem;align-items:center;width:100%;max-width:24rem;margin:0 auto;"]);
@@ -33436,7 +33685,7 @@ var ListMenu = function ListMenu(_ref) {
33436
33685
  onSelected = _ref.onSelected,
33437
33686
  x = _ref.x,
33438
33687
  y = _ref.y;
33439
- return React.createElement(Container$v, {
33688
+ return React.createElement(Container$w, {
33440
33689
  x: x,
33441
33690
  y: y
33442
33691
  }, React.createElement("ul", {
@@ -33453,7 +33702,7 @@ var ListMenu = function ListMenu(_ref) {
33453
33702
  }, (params == null ? void 0 : params.text) || 'No text');
33454
33703
  })));
33455
33704
  };
33456
- var Container$v = /*#__PURE__*/styled.div.withConfig({
33705
+ var Container$w = /*#__PURE__*/styled.div.withConfig({
33457
33706
  displayName: "ListMenu__Container",
33458
33707
  componentId: "sc-i9097t-0"
33459
33708
  })(["display:flex;flex-direction:column;width:100%;justify-content:start;align-items:flex-start;position:absolute;top:", "px;left:", "px;li{font-size:", ";}"], function (props) {
@@ -33472,7 +33721,7 @@ var Pager = function Pager(_ref) {
33472
33721
  itemsPerPage = _ref.itemsPerPage,
33473
33722
  onPageChange = _ref.onPageChange;
33474
33723
  var totalPages = Math.ceil(totalItems / itemsPerPage);
33475
- return React.createElement(Container$w, null, React.createElement("p", null, "Total items: ", totalItems), React.createElement(PagerContainer, null, React.createElement("button", {
33724
+ return React.createElement(Container$x, null, React.createElement("p", null, "Total items: ", totalItems), React.createElement(PagerContainer, null, React.createElement("button", {
33476
33725
  disabled: currentPage === 1,
33477
33726
  onPointerDown: function onPointerDown() {
33478
33727
  return onPageChange(Math.max(currentPage - 1, 1));
@@ -33486,7 +33735,7 @@ var Pager = function Pager(_ref) {
33486
33735
  }
33487
33736
  }, '>')));
33488
33737
  };
33489
- var Container$w = /*#__PURE__*/styled.div.withConfig({
33738
+ var Container$x = /*#__PURE__*/styled.div.withConfig({
33490
33739
  displayName: "Pager__Container",
33491
33740
  componentId: "sc-1ekmf50-0"
33492
33741
  })(["display:flex;flex-direction:column;align-items:center;p{margin:0;font-size:", ";}"], uiFonts.size.xsmall);
@@ -34007,13 +34256,13 @@ var TabBody = function TabBody(_ref) {
34007
34256
  children = _ref.children,
34008
34257
  styles = _ref.styles,
34009
34258
  centerContent = _ref.centerContent;
34010
- return React.createElement(Container$x, {
34259
+ return React.createElement(Container$y, {
34011
34260
  styles: styles,
34012
34261
  "data-tab-id": id,
34013
34262
  centerContent: centerContent
34014
34263
  }, children);
34015
34264
  };
34016
- var Container$x = /*#__PURE__*/styled.div.withConfig({
34265
+ var Container$y = /*#__PURE__*/styled.div.withConfig({
34017
34266
  displayName: "TabBody__Container",
34018
34267
  componentId: "sc-196oof2-0"
34019
34268
  })(["width:", ";height:", ";overflow-y:auto;display:", ";justify-content:", ";align-items:", ";"], function (props) {
@@ -34666,7 +34915,7 @@ var ProgressBar = function ProgressBar(_ref) {
34666
34915
  }
34667
34916
  return value * 100 / max;
34668
34917
  };
34669
- return React.createElement(Container$y, {
34918
+ return React.createElement(Container$z, {
34670
34919
  className: "rpgui-progress",
34671
34920
  "data-value": calculatePercentageValue(max, value) / 100,
34672
34921
  "data-rpguitype": "progress",
@@ -34696,7 +34945,7 @@ var TextOverlay$1 = /*#__PURE__*/styled.div.withConfig({
34696
34945
  displayName: "ProgressBar__TextOverlay",
34697
34946
  componentId: "sc-qa6fzh-1"
34698
34947
  })(["width:100%;position:relative;"]);
34699
- var Container$y = /*#__PURE__*/styled.div.withConfig({
34948
+ var Container$z = /*#__PURE__*/styled.div.withConfig({
34700
34949
  displayName: "ProgressBar__Container",
34701
34950
  componentId: "sc-qa6fzh-2"
34702
34951
  })(["display:flex;flex-direction:column;min-width:", "px;width:", "%;justify-content:start;align-items:flex-start;", " @media (max-width:950px){transform:scale(", ");}"], function (props) {
@@ -34837,17 +35086,17 @@ var QuestList = function QuestList(_ref) {
34837
35086
  return React.createElement(QuestCard, {
34838
35087
  key: i,
34839
35088
  style: styles == null ? void 0 : styles.card
34840
- }, React.createElement(QuestItem, null, React.createElement(Label$2, {
35089
+ }, React.createElement(QuestItem, null, React.createElement(Label$3, {
34841
35090
  style: styles == null ? void 0 : styles.label
34842
35091
  }, "Title:"), React.createElement(Value$2, {
34843
35092
  style: styles == null ? void 0 : styles.value
34844
- }, formatQuestText(quest.title))), React.createElement(QuestItem, null, React.createElement(Label$2, {
35093
+ }, formatQuestText(quest.title))), React.createElement(QuestItem, null, React.createElement(Label$3, {
34845
35094
  style: styles == null ? void 0 : styles.label
34846
35095
  }, "Status:"), React.createElement(Value$2, {
34847
35096
  style: _extends({}, styles == null ? void 0 : styles.value, {
34848
35097
  color: getQuestStatusColor(quest.status)
34849
35098
  })
34850
- }, (_formatQuestStatus = formatQuestStatus(quest.status)) != null ? _formatQuestStatus : 'Unknown')), React.createElement(QuestItem, null, React.createElement(Label$2, {
35099
+ }, (_formatQuestStatus = formatQuestStatus(quest.status)) != null ? _formatQuestStatus : 'Unknown')), React.createElement(QuestItem, null, React.createElement(Label$3, {
34851
35100
  style: styles == null ? void 0 : styles.label
34852
35101
  }, "Description:"), React.createElement(Value$2, {
34853
35102
  style: styles == null ? void 0 : styles.value
@@ -34866,7 +35115,7 @@ var QuestItem = /*#__PURE__*/styled.div.withConfig({
34866
35115
  displayName: "QuestList__QuestItem",
34867
35116
  componentId: "sc-1c1y8sp-2"
34868
35117
  })(["display:flex;margin-bottom:5px;flex-wrap:wrap;&:last-child{margin-bottom:0;}"]);
34869
- var Label$2 = /*#__PURE__*/styled.span.withConfig({
35118
+ var Label$3 = /*#__PURE__*/styled.span.withConfig({
34870
35119
  displayName: "QuestList__Label",
34871
35120
  componentId: "sc-1c1y8sp-3"
34872
35121
  })(["font-weight:bold;color:", " !important;margin-right:10px;"], uiColors.yellow);
@@ -34937,9 +35186,9 @@ var InputRadio = function InputRadio(_ref) {
34937
35186
 
34938
35187
  var RPGUIScrollbar = function RPGUIScrollbar(_ref) {
34939
35188
  var children = _ref.children;
34940
- return React.createElement(Container$z, null, children);
35189
+ return React.createElement(Container$A, null, children);
34941
35190
  };
34942
- var Container$z = /*#__PURE__*/styled.div.withConfig({
35191
+ var Container$A = /*#__PURE__*/styled.div.withConfig({
34943
35192
  displayName: "RPGUIScrollbar__Container",
34944
35193
  componentId: "sc-p3msmb-0"
34945
35194
  })([".rpgui-content ::-webkit-scrollbar,.rpgui-content::-webkit-scrollbar{width:25px !important;}.rpgui-content ::-webkit-scrollbar-track,.rpgui-content::-webkit-scrollbar-track{background-size:25px 60px !important;}"]);
@@ -35095,7 +35344,7 @@ var SimpleProgressBar = function SimpleProgressBar(_ref) {
35095
35344
  margin = _ref$margin === void 0 ? 20 : _ref$margin;
35096
35345
  // Ensure the width is at least 1% if value is greater than 0
35097
35346
  var width = value > 0 ? Math.max(1, Math.min(100, value)) : 0;
35098
- return React.createElement(Container$A, {
35347
+ return React.createElement(Container$B, {
35099
35348
  className: "simple-progress-bar"
35100
35349
  }, React.createElement(ProgressBarContainer, {
35101
35350
  margin: margin
@@ -35104,7 +35353,7 @@ var SimpleProgressBar = function SimpleProgressBar(_ref) {
35104
35353
  bgColor: bgColor
35105
35354
  }))));
35106
35355
  };
35107
- var Container$A = /*#__PURE__*/styled.div.withConfig({
35356
+ var Container$B = /*#__PURE__*/styled.div.withConfig({
35108
35357
  displayName: "SimpleProgressBar__Container",
35109
35358
  componentId: "sc-mbeil3-0"
35110
35359
  })(["display:flex;justify-content:center;align-items:center;width:100%;"]);
@@ -35437,7 +35686,7 @@ var SocialModal = function SocialModal(_ref) {
35437
35686
  title: "Social Channels",
35438
35687
  width: "500px",
35439
35688
  onCloseButton: onClose
35440
- }, React.createElement(Container$B, null, React.createElement(HeaderImage, {
35689
+ }, React.createElement(Container$C, null, React.createElement(HeaderImage, {
35441
35690
  src: img$9,
35442
35691
  alt: ""
35443
35692
  }), React.createElement(ButtonsContainer$1, null, React.createElement(MainButtons, null, React.createElement(SocialButton$1, {
@@ -35455,7 +35704,7 @@ var SocialModal = function SocialModal(_ref) {
35455
35704
  onClick: handleWhatsAppClick
35456
35705
  }, React.createElement(FaWhatsapp, null), " Join WhatsApp")))));
35457
35706
  };
35458
- var Container$B = /*#__PURE__*/styled.div.withConfig({
35707
+ var Container$C = /*#__PURE__*/styled.div.withConfig({
35459
35708
  displayName: "SocialModal__Container",
35460
35709
  componentId: "sc-tbjhp9-0"
35461
35710
  })(["width:100%;display:flex;flex-direction:column;gap:16px;background-color:#5c4132;position:relative;border-radius:8px;overflow:hidden;&:before,&:after{content:'';position:absolute;left:0;right:0;height:3px;}&:before{bottom:0;background:linear-gradient( to right,#5c4132 0%,#2b1810 2%,#2b1810 98%,#5c4132 100% );}"]);
@@ -35501,7 +35750,7 @@ var SpellInfo$1 = function SpellInfo(_ref) {
35501
35750
  castingType = spell.castingType,
35502
35751
  cooldown = spell.cooldown,
35503
35752
  maxDistanceGrid = spell.maxDistanceGrid;
35504
- return React.createElement(Container$C, null, React.createElement(Header$5, null, React.createElement("div", null, React.createElement(Title$b, null, name), React.createElement(Type$1, null, magicWords))), React.createElement(Statistic$1, null, React.createElement("div", {
35753
+ return React.createElement(Container$D, null, React.createElement(Header$5, null, React.createElement("div", null, React.createElement(Title$b, null, name), React.createElement(Type$1, null, magicWords))), React.createElement(Statistic$1, null, React.createElement("div", {
35505
35754
  className: "label"
35506
35755
  }, "Casting Type:"), React.createElement("div", {
35507
35756
  className: "value"
@@ -35527,7 +35776,7 @@ var SpellInfo$1 = function SpellInfo(_ref) {
35527
35776
  className: "value"
35528
35777
  }, requiredItem))), React.createElement(Description$4, null, description));
35529
35778
  };
35530
- var Container$C = /*#__PURE__*/styled.div.withConfig({
35779
+ var Container$D = /*#__PURE__*/styled.div.withConfig({
35531
35780
  displayName: "SpellInfo__Container",
35532
35781
  componentId: "sc-4hbw3q-0"
35533
35782
  })(["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);
@@ -35581,7 +35830,7 @@ var MobileSpellTooltip = function MobileSpellTooltip(_ref) {
35581
35830
  var _ref$current;
35582
35831
  (_ref$current = ref.current) == null ? void 0 : _ref$current.classList.add('fadeOut');
35583
35832
  };
35584
- return React.createElement(ModalPortal, null, React.createElement(Container$D, {
35833
+ return React.createElement(ModalPortal, null, React.createElement(Container$E, {
35585
35834
  ref: ref,
35586
35835
  onTouchEnd: function onTouchEnd() {
35587
35836
  handleFadeOut();
@@ -35606,7 +35855,7 @@ var MobileSpellTooltip = function MobileSpellTooltip(_ref) {
35606
35855
  }, option.text);
35607
35856
  }))));
35608
35857
  };
35609
- var Container$D = /*#__PURE__*/styled.div.withConfig({
35858
+ var Container$E = /*#__PURE__*/styled.div.withConfig({
35610
35859
  displayName: "MobileSpellTooltip__Container",
35611
35860
  componentId: "sc-6p7uvr-0"
35612
35861
  })(["position:absolute;z-index:100;left:0;top:0;width:100vw;height:100vh;background-color:rgba(0 0 0 / 0.5);display:flex;justify-content:center;align-items:center;gap:0.5rem;transition:opacity 0.08s;animation:fadeIn 0.1s forwards;@keyframes fadeIn{0%{opacity:0;}100%{opacity:0.92;}}@keyframes fadeOut{0%{opacity:0.92;}100%{opacity:0;}}&.fadeOut{animation:fadeOut 0.1s forwards;}@media (max-width:580px){flex-direction:column;}"]);
@@ -35647,13 +35896,13 @@ var MagicTooltip = function MagicTooltip(_ref) {
35647
35896
  }
35648
35897
  return;
35649
35898
  }, []);
35650
- return React.createElement(ModalPortal, null, React.createElement(Container$E, {
35899
+ return React.createElement(ModalPortal, null, React.createElement(Container$F, {
35651
35900
  ref: ref
35652
35901
  }, React.createElement(SpellInfoDisplay, {
35653
35902
  spell: spell
35654
35903
  })));
35655
35904
  };
35656
- var Container$E = /*#__PURE__*/styled.div.withConfig({
35905
+ var Container$F = /*#__PURE__*/styled.div.withConfig({
35657
35906
  displayName: "SpellTooltip__Container",
35658
35907
  componentId: "sc-1go0gwg-0"
35659
35908
  })(["position:absolute;z-index:100;pointer-events:none;left:0;top:0;opacity:0;transition:opacity 0.08s;"]);
@@ -35726,7 +35975,7 @@ var Spell = function Spell(_ref) {
35726
35975
  var IMAGE_SCALE = 2;
35727
35976
  return React.createElement(SpellInfoWrapper, {
35728
35977
  spell: spell
35729
- }, React.createElement(Container$F, {
35978
+ }, React.createElement(Container$G, {
35730
35979
  onPointerUp: onPointerUp == null ? void 0 : onPointerUp.bind(null, spellKey),
35731
35980
  isSettingShortcut: isSettingShortcut && !disabled,
35732
35981
  className: "spell"
@@ -35745,7 +35994,7 @@ var Spell = function Spell(_ref) {
35745
35994
  className: "mana"
35746
35995
  }, manaCost))));
35747
35996
  };
35748
- var Container$F = /*#__PURE__*/styled.button.withConfig({
35997
+ var Container$G = /*#__PURE__*/styled.button.withConfig({
35749
35998
  displayName: "Spell__Container",
35750
35999
  componentId: "sc-j96fa2-0"
35751
36000
  })(["display:block;background:none;border:2px solid transparent;border-radius:1rem;width:100%;display:flex;gap:1rem;align-items:center;padding:0 1rem;text-align:left;position:relative;animation:", ";@keyframes border-color-change{0%{border-color:", ";}50%{border-color:transparent;}100%{border-color:", ";}}&:hover,&:focus{background-color:", ";}&:active{background:none;}"], function (_ref2) {
@@ -35824,7 +36073,7 @@ var Spellbook = function Spellbook(_ref) {
35824
36073
  height: "inherit",
35825
36074
  cancelDrag: "#spellbook-search, #shortcuts_list, .spell",
35826
36075
  scale: scale
35827
- }, React.createElement(Container$G, null, React.createElement(Title$d, null, "Learned Spells"), React.createElement(ShortcutsSetter, {
36076
+ }, React.createElement(Container$H, null, React.createElement(Title$d, null, "Learned Spells"), React.createElement(ShortcutsSetter, {
35828
36077
  setSettingShortcutIndex: setSettingShortcutIndex,
35829
36078
  settingShortcutIndex: settingShortcutIndex,
35830
36079
  shortcuts: shortcuts,
@@ -35860,7 +36109,7 @@ var Title$d = /*#__PURE__*/styled.h1.withConfig({
35860
36109
  displayName: "Spellbook__Title",
35861
36110
  componentId: "sc-r02nfq-0"
35862
36111
  })(["font-size:", " !important;margin-bottom:0 !important;"], uiFonts.size.large);
35863
- var Container$G = /*#__PURE__*/styled.div.withConfig({
36112
+ var Container$H = /*#__PURE__*/styled.div.withConfig({
35864
36113
  displayName: "Spellbook__Container",
35865
36114
  componentId: "sc-r02nfq-1"
35866
36115
  })(["width:100%;height:100%;color:white;display:flex;flex-direction:column;"]);
@@ -36342,7 +36591,7 @@ var TradingMenu = function TradingMenu(_ref) {
36342
36591
  width: "500px",
36343
36592
  cancelDrag: "#TraderContainer",
36344
36593
  scale: scale
36345
- }, React.createElement(Container$H, null, React.createElement(Title$e, null, type.charAt(0).toUpperCase() + type.slice(1), " Menu"), React.createElement("hr", {
36594
+ }, React.createElement(Container$I, null, React.createElement(Title$e, null, type.charAt(0).toUpperCase() + type.slice(1), " Menu"), React.createElement("hr", {
36346
36595
  className: "golden"
36347
36596
  }), React.createElement(ScrollWrapper, {
36348
36597
  id: "TraderContainer"
@@ -36370,7 +36619,7 @@ var TradingMenu = function TradingMenu(_ref) {
36370
36619
  onPointerDown: onClose
36371
36620
  }, "Cancel"))));
36372
36621
  };
36373
- var Container$H = /*#__PURE__*/styled.div.withConfig({
36622
+ var Container$I = /*#__PURE__*/styled.div.withConfig({
36374
36623
  displayName: "TradingMenu__Container",
36375
36624
  componentId: "sc-1wjsz1l-0"
36376
36625
  })(["width:100%;"]);
@@ -36404,11 +36653,11 @@ var Truncate = function Truncate(_ref) {
36404
36653
  var _ref$maxLines = _ref.maxLines,
36405
36654
  maxLines = _ref$maxLines === void 0 ? 1 : _ref$maxLines,
36406
36655
  children = _ref.children;
36407
- return React.createElement(Container$I, {
36656
+ return React.createElement(Container$J, {
36408
36657
  maxLines: maxLines
36409
36658
  }, children);
36410
36659
  };
36411
- var Container$I = /*#__PURE__*/styled.div.withConfig({
36660
+ var Container$J = /*#__PURE__*/styled.div.withConfig({
36412
36661
  displayName: "Truncate__Container",
36413
36662
  componentId: "sc-6x00qb-0"
36414
36663
  })(["display:-webkit-box;max-width:100%;max-height:100%;-webkit-line-clamp:", ";-webkit-box-orient:vertical;overflow:hidden;"], function (props) {
@@ -36516,7 +36765,7 @@ var TutorialStepper = /*#__PURE__*/React.memo(function (_ref) {
36516
36765
  };
36517
36766
  });
36518
36767
  }, [lessons, imageStyle]);
36519
- return React.createElement(Container$J, null, React.createElement(Stepper, {
36768
+ return React.createElement(Container$K, null, React.createElement(Stepper, {
36520
36769
  steps: generateLessons,
36521
36770
  finalCTAButton: {
36522
36771
  label: 'Close',
@@ -36533,7 +36782,7 @@ var LessonBody = /*#__PURE__*/styled.div.withConfig({
36533
36782
  displayName: "TutorialStepper__LessonBody",
36534
36783
  componentId: "sc-7tgzv2-1"
36535
36784
  })([""]);
36536
- var Container$J = /*#__PURE__*/styled.div.withConfig({
36785
+ var Container$K = /*#__PURE__*/styled.div.withConfig({
36537
36786
  displayName: "TutorialStepper__Container",
36538
36787
  componentId: "sc-7tgzv2-2"
36539
36788
  })(["width:80%;max-width:600px;@media (max-width:600px){width:95%;}"]);