@rpg-engine/long-bow 0.8.31 → 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 (24) 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 +467 -163
  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 +468 -164
  14. package/dist/long-bow.esm.js.map +1 -1
  15. package/package.json +1 -1
  16. package/src/components/InformationCenter/sections/bestiary/BestiaryAdvancedFilters.tsx +95 -0
  17. package/src/components/InformationCenter/sections/bestiary/InformationCenterBestiarySection.tsx +103 -61
  18. package/src/components/InformationCenter/sections/items/InformationCenterItemsSection.tsx +62 -69
  19. package/src/components/InformationCenter/sections/items/ItemsAdvancedFilters.tsx +80 -0
  20. package/src/components/shared/AdvancedFilters/AdvancedFilters.tsx +279 -0
  21. package/src/components/shared/PaginatedContent/PaginatedContent.tsx +1 -0
  22. package/src/components/shared/SearchBar/SearchBar.tsx +15 -5
  23. package/src/components/shared/SearchHeader/SearchHeader.tsx +2 -0
  24. package/src/hooks/useTooltipPosition.ts +73 -0
@@ -2,7 +2,7 @@ import React, { useState, useEffect, Component, useRef, useCallback, useContext,
2
2
  import styled, { css, keyframes } from 'styled-components';
3
3
  import { BeatLoader } from 'react-spinners';
4
4
  import { v4 } from 'uuid';
5
- import { GRID_WIDTH, GRID_HEIGHT, ShortcutType, getItemTextureKeyPath, ItemRarities, ItemContainerType, ItemType, DepotSocketEvents, ItemSocketEvents, ItemSocketEventsDisplayLabels, ActionsForInventory, ActionsForEquipmentSet, ActionsForLoot, ActionsForMapContainer, ItemSubType, isMobile, ItemSlotType, isMobileOrTablet, 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';
@@ -30827,6 +30827,59 @@ var ContentWrapper = /*#__PURE__*/styled.div.withConfig({
30827
30827
  componentId: "sc-ldufv0-3"
30828
30828
  })([""]);
30829
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
+
30830
30883
  var usePagination = function usePagination(_ref) {
30831
30884
  var items = _ref.items,
30832
30885
  itemsPerPage = _ref.itemsPerPage,
@@ -30894,7 +30947,9 @@ var SearchBar = function SearchBar(_ref) {
30894
30947
  var value = _ref.value,
30895
30948
  _onChange = _ref.onChange,
30896
30949
  placeholder = _ref.placeholder,
30897
- className = _ref.className;
30950
+ className = _ref.className,
30951
+ rightElement = _ref.rightElement;
30952
+ var hasRightElement = Boolean(rightElement);
30898
30953
  return React.createElement(Container$m, {
30899
30954
  className: className
30900
30955
  }, React.createElement(Input$1, {
@@ -30904,8 +30959,9 @@ var SearchBar = function SearchBar(_ref) {
30904
30959
  return _onChange(e.target.value);
30905
30960
  },
30906
30961
  placeholder: placeholder,
30907
- className: "rpgui-input"
30908
- }), 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));
30909
30965
  };
30910
30966
  var Container$m = /*#__PURE__*/styled.div.withConfig({
30911
30967
  displayName: "SearchBar__Container",
@@ -30914,11 +30970,13 @@ var Container$m = /*#__PURE__*/styled.div.withConfig({
30914
30970
  var Input$1 = /*#__PURE__*/styled.input.withConfig({
30915
30971
  displayName: "SearchBar__Input",
30916
30972
  componentId: "sc-13n8z02-1"
30917
- })(["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
+ });
30918
30976
  var IconContainer = /*#__PURE__*/styled.div.withConfig({
30919
30977
  displayName: "SearchBar__IconContainer",
30920
30978
  componentId: "sc-13n8z02-2"
30921
- })(["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;}"]);
30922
30980
  var SearchIcon = /*#__PURE__*/styled(FaSearch).withConfig({
30923
30981
  displayName: "SearchBar__SearchIcon",
30924
30982
  componentId: "sc-13n8z02-3"
@@ -30934,7 +30992,8 @@ var SearchHeader = function SearchHeader(_ref) {
30934
30992
  }, React.createElement(HeaderContent, null, searchOptions && React.createElement(SearchContainer$2, null, React.createElement(StyledSearchBar, {
30935
30993
  value: searchOptions.value,
30936
30994
  onChange: searchOptions.onChange,
30937
- placeholder: searchOptions.placeholder || 'Search...'
30995
+ placeholder: searchOptions.placeholder || 'Search...',
30996
+ rightElement: searchOptions.rightElement
30938
30997
  })), filterOptions && React.createElement(FilterContainer, null, React.createElement(StyledDropdown, {
30939
30998
  options: filterOptions.options,
30940
30999
  onChange: filterOptions.onOptionChange,
@@ -31402,7 +31461,180 @@ var InformationCenterItemTooltip = function InformationCenterItemTooltip(_ref) {
31402
31461
  }, item.rarity)))));
31403
31462
  };
31404
31463
 
31405
- 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
+
31406
31638
  var formatItemType = function formatItemType(type) {
31407
31639
  var words = type.split(/(?=[A-Z])/);
31408
31640
  if (words.length === 1) {
@@ -31429,32 +31661,28 @@ var InformationCenterItemsSection = function InformationCenterItemsSection(_ref)
31429
31661
  var _useState2 = useState('all'),
31430
31662
  selectedItemCategory = _useState2[0],
31431
31663
  setSelectedItemCategory = _useState2[1];
31432
- var _useState3 = useState(null),
31433
- hoveredItem = _useState3[0],
31434
- setHoveredItem = _useState3[1];
31435
- var _useState4 = useState({
31436
- x: 0,
31437
- y: 0
31438
- }),
31439
- tooltipPosition = _useState4[0],
31440
- 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];
31441
31670
  var _useState5 = useState(null),
31442
31671
  selectedItem = _useState5[0],
31443
31672
  setSelectedItem = _useState5[1];
31444
- var itemCategoryOptions = [{
31445
- id: 0,
31446
- value: 'all',
31447
- option: 'All Items'
31448
- }].concat(Object.values(ItemType).map(function (type, index) {
31449
- return {
31450
- id: index + 1,
31451
- value: type,
31452
- option: formatItemType(type)
31453
- };
31454
- }));
31455
- var filteredItems = items.filter(function (item) {
31456
- return (selectedItemCategory === 'all' || item.type === selectedItemCategory) && item.name.toLowerCase().includes(searchQuery.toLowerCase());
31457
- });
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]);
31458
31686
  var getDroppedByNPCs = function getDroppedByNPCs(itemId, npcs) {
31459
31687
  return npcs.filter(function (npc) {
31460
31688
  var _npc$loots;
@@ -31463,35 +31691,12 @@ var InformationCenterItemsSection = function InformationCenterItemsSection(_ref)
31463
31691
  });
31464
31692
  }) || [];
31465
31693
  };
31466
- var handleMouseEnter = function handleMouseEnter(e, item) {
31467
- if (!isMobile) {
31468
- setTooltipPosition({
31469
- x: e.clientX + TOOLTIP_OFFSET,
31470
- y: e.clientY
31471
- });
31472
- setHoveredItem(item);
31473
- }
31474
- };
31475
- var handleMouseMove = function handleMouseMove(e) {
31476
- if (!isMobile && hoveredItem) {
31477
- setTooltipPosition({
31478
- x: e.clientX + TOOLTIP_OFFSET,
31479
- y: e.clientY
31480
- });
31481
- }
31482
- };
31483
- var handleMouseLeave = function handleMouseLeave() {
31484
- if (!isMobile) {
31485
- setHoveredItem(null);
31486
- }
31487
- };
31488
31694
  var handleTouchStart = function handleTouchStart(e, item) {
31489
31695
  e.preventDefault();
31490
31696
  setSelectedItem(item);
31491
31697
  };
31492
31698
  var handleItemClick = function handleItemClick(item) {
31493
31699
  setSelectedItem(item);
31494
- setHoveredItem(null);
31495
31700
  };
31496
31701
  var handleSearchChange = function handleSearchChange(newQuery) {
31497
31702
  setSearchQuery(newQuery);
@@ -31507,9 +31712,8 @@ var InformationCenterItemsSection = function InformationCenterItemsSection(_ref)
31507
31712
  atlasJSON: itemsAtlasJSON,
31508
31713
  atlasIMG: itemsAtlasIMG,
31509
31714
  onMouseEnter: function onMouseEnter(e) {
31510
- return handleMouseEnter(e, item);
31715
+ return handleMouseEnter(item, e);
31511
31716
  },
31512
- onMouseMove: handleMouseMove,
31513
31717
  onMouseLeave: handleMouseLeave,
31514
31718
  onTouchStart: function onTouchStart(e) {
31515
31719
  return handleTouchStart(e, item);
@@ -31519,32 +31723,40 @@ var InformationCenterItemsSection = function InformationCenterItemsSection(_ref)
31519
31723
  }
31520
31724
  });
31521
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
+ }));
31522
31736
  return React.createElement(React.Fragment, null, React.createElement(PaginatedContent, {
31523
31737
  items: filteredItems,
31524
31738
  renderItem: renderItem,
31525
31739
  emptyMessage: "No items found",
31526
- filterOptions: {
31527
- options: itemCategoryOptions,
31528
- selectedOption: selectedItemCategory,
31529
- onOptionChange: setSelectedItemCategory
31530
- },
31531
31740
  searchOptions: {
31532
31741
  value: searchQuery,
31533
31742
  onChange: handleSearchChange,
31534
- placeholder: 'Search items...'
31743
+ placeholder: 'Search items...',
31744
+ rightElement: SearchBarRightElement
31535
31745
  },
31536
- dependencies: [selectedItemCategory],
31746
+ dependencies: [selectedItemCategory, selectedTier],
31537
31747
  tabId: tabId,
31538
31748
  layout: "grid",
31539
31749
  itemHeight: "180px"
31540
- }), !isMobile && hoveredItem && React.createElement(TooltipWrapper, {
31750
+ }), !isMobile && tooltipState && tooltipState.item && React.createElement(Portal, null, React.createElement(TooltipWrapper, {
31751
+ width: TOOLTIP_WIDTH,
31541
31752
  style: {
31542
- top: tooltipPosition.y,
31543
- left: tooltipPosition.x
31753
+ position: 'fixed',
31754
+ left: tooltipState.position.x + "px",
31755
+ top: tooltipState.position.y + "px"
31544
31756
  }
31545
31757
  }, React.createElement(InformationCenterItemTooltip, {
31546
- item: hoveredItem
31547
- })), selectedItem && React.createElement(Portal, null, React.createElement(InformationCenterItemDetails, {
31758
+ item: tooltipState.item
31759
+ }))), selectedItem && React.createElement(Portal, null, React.createElement(InformationCenterItemDetails, {
31548
31760
  item: selectedItem,
31549
31761
  itemsAtlasJSON: itemsAtlasJSON,
31550
31762
  itemsAtlasIMG: itemsAtlasIMG,
@@ -31557,7 +31769,82 @@ var InformationCenterItemsSection = function InformationCenterItemsSection(_ref)
31557
31769
  var TooltipWrapper = /*#__PURE__*/styled.div.withConfig({
31558
31770
  displayName: "InformationCenterItemsSection__TooltipWrapper",
31559
31771
  componentId: "sc-1wmpapt-0"
31560
- })(["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
+ };
31561
31848
 
31562
31849
  var ITEMS_PER_PAGE$1 = 5;
31563
31850
  var formatItemName = function formatItemName(itemPath) {
@@ -31621,7 +31908,7 @@ var InformationCenterNPCDetails = function InformationCenterNPCDetails(_ref) {
31621
31908
  atlasJSON: entitiesAtlasJSON,
31622
31909
  atlasIMG: entitiesAtlasIMG,
31623
31910
  onBack: onBack
31624
- }, 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, {
31625
31912
  title: "Stats",
31626
31913
  defaultOpen: !isMobile
31627
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, {
@@ -31677,7 +31964,7 @@ var InfoItem$1 = /*#__PURE__*/styled.div.withConfig({
31677
31964
  displayName: "InformationCenterNPCDetails__InfoItem",
31678
31965
  componentId: "sc-fdu3xl-1"
31679
31966
  })(["display:flex;align-items:center;gap:8px;"]);
31680
- var Label$1 = /*#__PURE__*/styled.span.withConfig({
31967
+ var Label$2 = /*#__PURE__*/styled.span.withConfig({
31681
31968
  displayName: "InformationCenterNPCDetails__Label",
31682
31969
  componentId: "sc-fdu3xl-2"
31683
31970
  })(["color:", ";font-size:0.5rem;opacity:0.8;"], uiColors.yellow);
@@ -31886,49 +32173,36 @@ var InformationCenterBestiarySection = function InformationCenterBestiarySection
31886
32173
  searchQuery = _useState[0],
31887
32174
  setSearchQuery = _useState[1];
31888
32175
  var _useState2 = useState(null),
31889
- tooltipData = _useState2[0],
31890
- setTooltipData = _useState2[1];
31891
- var _useState3 = useState(null),
31892
- selectedMonster = _useState3[0],
31893
- setSelectedMonster = _useState3[1];
31894
- var handleMouseEnter = function handleMouseEnter(monster, event) {
31895
- if (!isMobile && !selectedMonster) {
31896
- setTooltipData({
31897
- npc: monster,
31898
- position: {
31899
- x: event.clientX,
31900
- y: event.clientY
31901
- }
31902
- });
31903
- }
31904
- };
31905
- var handleMouseLeave = function handleMouseLeave() {
31906
- if (!isMobile) {
31907
- setTooltipData(null);
31908
- }
31909
- };
31910
- var handleMouseMove = function handleMouseMove(event) {
31911
- if (!isMobile && tooltipData) {
31912
- setTooltipData(_extends({}, tooltipData, {
31913
- position: {
31914
- x: event.clientX,
31915
- y: event.clientY
31916
- }
31917
- }));
31918
- }
31919
- };
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];
31920
32199
  var handleTouchStart = function handleTouchStart(monster, event) {
31921
32200
  event.preventDefault();
31922
32201
  setSelectedMonster(monster);
31923
- setTooltipData(null);
31924
32202
  };
31925
32203
  var handleMonsterClick = function handleMonsterClick(monster) {
31926
32204
  setSelectedMonster(monster);
31927
- setTooltipData(null);
31928
32205
  };
31929
- var _useState4 = useState('all'),
31930
- selectedBestiaryCategory = _useState4[0],
31931
- setSelectedBestiaryCategory = _useState4[1];
31932
32206
  var bestiaryCategoryOptions = [{
31933
32207
  id: 0,
31934
32208
  value: 'all',
@@ -31937,10 +32211,13 @@ var InformationCenterBestiarySection = function InformationCenterBestiarySection
31937
32211
  id: 1,
31938
32212
  value: 'bosses',
31939
32213
  option: 'Bosses'
31940
- }].concat(Object.entries(NPCAlignment).map(function (_ref2, index) {
32214
+ }].concat(Object.entries(NPCAlignment).filter(function (_ref2) {
31941
32215
  var value = _ref2[1];
32216
+ return value !== NPCAlignment.Friendly;
32217
+ }).map(function (_ref3, index) {
32218
+ var value = _ref3[1];
31942
32219
  return {
31943
- id: index + 1,
32220
+ id: index + 2,
31944
32221
  value: value,
31945
32222
  option: formatItemType(value)
31946
32223
  };
@@ -31959,7 +32236,6 @@ var InformationCenterBestiarySection = function InformationCenterBestiarySection
31959
32236
  return handleMouseEnter(item, e);
31960
32237
  },
31961
32238
  onMouseLeave: handleMouseLeave,
31962
- onMouseMove: handleMouseMove,
31963
32239
  onTouchStart: function onTouchStart(e) {
31964
32240
  return handleTouchStart(item, e);
31965
32241
  }
@@ -31967,7 +32243,9 @@ var InformationCenterBestiarySection = function InformationCenterBestiarySection
31967
32243
  };
31968
32244
  var filteredItems = useMemo(function () {
31969
32245
  return bestiaryItems.filter(function (item) {
32246
+ // Basic search filter
31970
32247
  var matchesSearch = item.name.toLowerCase().includes(searchQuery.toLowerCase());
32248
+ // Category filter
31971
32249
  var matchesCategory = true;
31972
32250
  if (selectedBestiaryCategory === 'bosses') {
31973
32251
  matchesCategory = item.isBoss === true;
@@ -31976,15 +32254,33 @@ var InformationCenterBestiarySection = function InformationCenterBestiarySection
31976
32254
  } else if (selectedBestiaryCategory !== 'all') {
31977
32255
  matchesCategory = item.alignment === selectedBestiaryCategory;
31978
32256
  }
31979
- 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;
31980
32264
  });
31981
- }, [bestiaryItems, searchQuery, selectedBestiaryCategory]);
32265
+ }, [bestiaryItems, searchQuery, selectedBestiaryCategory, levelRange, selectedSubtype, selectedAttackType]);
31982
32266
  var handleSearchChange = function handleSearchChange(newQuery) {
31983
32267
  setSearchQuery(newQuery);
31984
32268
  if (newQuery && selectedBestiaryCategory !== 'all') {
31985
32269
  setSelectedBestiaryCategory('all');
31986
32270
  }
31987
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
+ }));
31988
32284
  return React.createElement(React.Fragment, null, React.createElement(PaginatedContent, {
31989
32285
  items: filteredItems,
31990
32286
  renderItem: renderItem,
@@ -31999,18 +32295,20 @@ var InformationCenterBestiarySection = function InformationCenterBestiarySection
31999
32295
  searchOptions: {
32000
32296
  value: searchQuery,
32001
32297
  onChange: handleSearchChange,
32002
- placeholder: 'Search monsters...'
32298
+ placeholder: 'Search monsters...',
32299
+ rightElement: SearchBarRightElement
32003
32300
  },
32004
- dependencies: [selectedBestiaryCategory],
32301
+ dependencies: [selectedBestiaryCategory, levelRange, selectedSubtype, selectedAttackType],
32005
32302
  itemHeight: "180px"
32006
- }), !isMobile && 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,
32007
32305
  style: {
32008
32306
  position: 'fixed',
32009
- left: tooltipData.position.x + 10,
32010
- top: tooltipData.position.y + 10
32307
+ left: tooltipState.position.x + "px",
32308
+ top: tooltipState.position.y + "px"
32011
32309
  }
32012
32310
  }, React.createElement(InformationCenterNPCTooltip, {
32013
- npc: tooltipData.npc,
32311
+ npc: tooltipState.item,
32014
32312
  itemsAtlasJSON: itemsAtlasJSON,
32015
32313
  itemsAtlasIMG: itemsAtlasIMG
32016
32314
  }))), selectedMonster && React.createElement(Portal, null, React.createElement(InformationCenterNPCDetails, {
@@ -32029,7 +32327,13 @@ var InformationCenterBestiarySection = function InformationCenterBestiarySection
32029
32327
  var TooltipWrapper$1 = /*#__PURE__*/styled.div.withConfig({
32030
32328
  displayName: "InformationCenterBestiarySection__TooltipWrapper",
32031
32329
  componentId: "sc-e3h0p2-0"
32032
- })(["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;"]);
32033
32337
 
32034
32338
  var InformationCenterFAQSection = function InformationCenterFAQSection(_ref) {
32035
32339
  var faqItems = _ref.faqItems,
@@ -32052,7 +32356,7 @@ var InformationCenterFAQSection = function InformationCenterFAQSection(_ref) {
32052
32356
  title: item.question
32053
32357
  }, React.createElement(Answer$1, null, item.answer));
32054
32358
  };
32055
- return React.createElement(Container$q, null, React.createElement(SearchHeader, {
32359
+ return React.createElement(Container$r, null, React.createElement(SearchHeader, {
32056
32360
  searchOptions: {
32057
32361
  value: searchQuery,
32058
32362
  onChange: setSearchQuery,
@@ -32067,7 +32371,7 @@ var InformationCenterFAQSection = function InformationCenterFAQSection(_ref) {
32067
32371
  itemsPerPage: 10
32068
32372
  }));
32069
32373
  };
32070
- var Container$q = /*#__PURE__*/styled.div.withConfig({
32374
+ var Container$r = /*#__PURE__*/styled.div.withConfig({
32071
32375
  displayName: "InformationCenterFaqSection__Container",
32072
32376
  componentId: "sc-ofmaa9-0"
32073
32377
  })(["display:flex;flex-direction:column;gap:1rem;width:100%;"]);
@@ -32286,7 +32590,7 @@ var InformationCenter = function InformationCenter(_ref) {
32286
32590
  return React.createElement(DraggableContainer, {
32287
32591
  title: "Information Center",
32288
32592
  type: RPGUIContainerTypes.Framed
32289
- }, React.createElement(Container$r, null, React.createElement(InternalTabs, {
32593
+ }, React.createElement(Container$s, null, React.createElement(InternalTabs, {
32290
32594
  tabs: tabs,
32291
32595
  activeTextColor: "#000000",
32292
32596
  activeTab: activeTab,
@@ -32297,7 +32601,7 @@ var InformationCenter = function InformationCenter(_ref) {
32297
32601
  hoverColor: "#fef3c7"
32298
32602
  })));
32299
32603
  };
32300
- var Container$r = /*#__PURE__*/styled.div.withConfig({
32604
+ var Container$s = /*#__PURE__*/styled.div.withConfig({
32301
32605
  displayName: "InformationCenter__Container",
32302
32606
  componentId: "sc-1ttl62e-0"
32303
32607
  })(["width:100%;max-width:800px;margin:0 auto;padding:1rem;"]);
@@ -32468,7 +32772,7 @@ var ShortcutsSetter = function ShortcutsSetter(_ref) {
32468
32772
  }
32469
32773
  return null;
32470
32774
  };
32471
- 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, {
32472
32776
  id: "shortcuts_list"
32473
32777
  }, Array.from({
32474
32778
  length: 12
@@ -32486,7 +32790,7 @@ var ShortcutsSetter = function ShortcutsSetter(_ref) {
32486
32790
  }, getContent(i));
32487
32791
  })));
32488
32792
  };
32489
- var Container$s = /*#__PURE__*/styled.div.withConfig({
32793
+ var Container$t = /*#__PURE__*/styled.div.withConfig({
32490
32794
  displayName: "ShortcutsSetter__Container",
32491
32795
  componentId: "sc-xuouuf-0"
32492
32796
  })(["p{margin:0;margin-left:0.5rem;font-size:10px;}width:100%;"]);
@@ -32931,7 +33235,7 @@ var ConfirmModal = function ConfirmModal(_ref) {
32931
33235
  e.stopPropagation();
32932
33236
  onClose();
32933
33237
  };
32934
- 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, {
32935
33239
  onClick: handleClose
32936
33240
  }, React.createElement(DraggableContainer, {
32937
33241
  width: "auto",
@@ -32954,7 +33258,7 @@ var Background = /*#__PURE__*/styled.div.withConfig({
32954
33258
  displayName: "ConfirmModal__Background",
32955
33259
  componentId: "sc-11qkyu1-0"
32956
33260
  })(["position:absolute;width:100%;height:100%;background-color:#000000;opacity:0.5;left:0;top:0;z-index:1000;"]);
32957
- var Container$t = /*#__PURE__*/styled.div.withConfig({
33261
+ var Container$u = /*#__PURE__*/styled.div.withConfig({
32958
33262
  displayName: "ConfirmModal__Container",
32959
33263
  componentId: "sc-11qkyu1-1"
32960
33264
  })(["position:absolute;width:100%;height:100%;left:0;top:0;display:flex;justify-content:center;align-items:center;z-index:1001;"]);
@@ -33009,7 +33313,7 @@ var ColorSelector = function ColorSelector(_ref) {
33009
33313
  cancelDrag: ".react-colorful",
33010
33314
  width: "25rem",
33011
33315
  onCloseButton: onClose
33012
- }, 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, {
33013
33317
  color: currentColor,
33014
33318
  onChange: function onChange(color) {
33015
33319
  setCurrentColor(color);
@@ -33025,7 +33329,7 @@ var ColorSelector = function ColorSelector(_ref) {
33025
33329
  onClose: handleClose
33026
33330
  }));
33027
33331
  };
33028
- var Container$u = /*#__PURE__*/styled.div.withConfig({
33332
+ var Container$v = /*#__PURE__*/styled.div.withConfig({
33029
33333
  displayName: "ItemPropertyColorSelector__Container",
33030
33334
  componentId: "sc-me1r4z-0"
33031
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;"]);
@@ -33381,7 +33685,7 @@ var ListMenu = function ListMenu(_ref) {
33381
33685
  onSelected = _ref.onSelected,
33382
33686
  x = _ref.x,
33383
33687
  y = _ref.y;
33384
- return React.createElement(Container$v, {
33688
+ return React.createElement(Container$w, {
33385
33689
  x: x,
33386
33690
  y: y
33387
33691
  }, React.createElement("ul", {
@@ -33398,7 +33702,7 @@ var ListMenu = function ListMenu(_ref) {
33398
33702
  }, (params == null ? void 0 : params.text) || 'No text');
33399
33703
  })));
33400
33704
  };
33401
- var Container$v = /*#__PURE__*/styled.div.withConfig({
33705
+ var Container$w = /*#__PURE__*/styled.div.withConfig({
33402
33706
  displayName: "ListMenu__Container",
33403
33707
  componentId: "sc-i9097t-0"
33404
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) {
@@ -33417,7 +33721,7 @@ var Pager = function Pager(_ref) {
33417
33721
  itemsPerPage = _ref.itemsPerPage,
33418
33722
  onPageChange = _ref.onPageChange;
33419
33723
  var totalPages = Math.ceil(totalItems / itemsPerPage);
33420
- 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", {
33421
33725
  disabled: currentPage === 1,
33422
33726
  onPointerDown: function onPointerDown() {
33423
33727
  return onPageChange(Math.max(currentPage - 1, 1));
@@ -33431,7 +33735,7 @@ var Pager = function Pager(_ref) {
33431
33735
  }
33432
33736
  }, '>')));
33433
33737
  };
33434
- var Container$w = /*#__PURE__*/styled.div.withConfig({
33738
+ var Container$x = /*#__PURE__*/styled.div.withConfig({
33435
33739
  displayName: "Pager__Container",
33436
33740
  componentId: "sc-1ekmf50-0"
33437
33741
  })(["display:flex;flex-direction:column;align-items:center;p{margin:0;font-size:", ";}"], uiFonts.size.xsmall);
@@ -33952,13 +34256,13 @@ var TabBody = function TabBody(_ref) {
33952
34256
  children = _ref.children,
33953
34257
  styles = _ref.styles,
33954
34258
  centerContent = _ref.centerContent;
33955
- return React.createElement(Container$x, {
34259
+ return React.createElement(Container$y, {
33956
34260
  styles: styles,
33957
34261
  "data-tab-id": id,
33958
34262
  centerContent: centerContent
33959
34263
  }, children);
33960
34264
  };
33961
- var Container$x = /*#__PURE__*/styled.div.withConfig({
34265
+ var Container$y = /*#__PURE__*/styled.div.withConfig({
33962
34266
  displayName: "TabBody__Container",
33963
34267
  componentId: "sc-196oof2-0"
33964
34268
  })(["width:", ";height:", ";overflow-y:auto;display:", ";justify-content:", ";align-items:", ";"], function (props) {
@@ -34611,7 +34915,7 @@ var ProgressBar = function ProgressBar(_ref) {
34611
34915
  }
34612
34916
  return value * 100 / max;
34613
34917
  };
34614
- return React.createElement(Container$y, {
34918
+ return React.createElement(Container$z, {
34615
34919
  className: "rpgui-progress",
34616
34920
  "data-value": calculatePercentageValue(max, value) / 100,
34617
34921
  "data-rpguitype": "progress",
@@ -34641,7 +34945,7 @@ var TextOverlay$1 = /*#__PURE__*/styled.div.withConfig({
34641
34945
  displayName: "ProgressBar__TextOverlay",
34642
34946
  componentId: "sc-qa6fzh-1"
34643
34947
  })(["width:100%;position:relative;"]);
34644
- var Container$y = /*#__PURE__*/styled.div.withConfig({
34948
+ var Container$z = /*#__PURE__*/styled.div.withConfig({
34645
34949
  displayName: "ProgressBar__Container",
34646
34950
  componentId: "sc-qa6fzh-2"
34647
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) {
@@ -34782,17 +35086,17 @@ var QuestList = function QuestList(_ref) {
34782
35086
  return React.createElement(QuestCard, {
34783
35087
  key: i,
34784
35088
  style: styles == null ? void 0 : styles.card
34785
- }, React.createElement(QuestItem, null, React.createElement(Label$2, {
35089
+ }, React.createElement(QuestItem, null, React.createElement(Label$3, {
34786
35090
  style: styles == null ? void 0 : styles.label
34787
35091
  }, "Title:"), React.createElement(Value$2, {
34788
35092
  style: styles == null ? void 0 : styles.value
34789
- }, formatQuestText(quest.title))), React.createElement(QuestItem, null, React.createElement(Label$2, {
35093
+ }, formatQuestText(quest.title))), React.createElement(QuestItem, null, React.createElement(Label$3, {
34790
35094
  style: styles == null ? void 0 : styles.label
34791
35095
  }, "Status:"), React.createElement(Value$2, {
34792
35096
  style: _extends({}, styles == null ? void 0 : styles.value, {
34793
35097
  color: getQuestStatusColor(quest.status)
34794
35098
  })
34795
- }, (_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, {
34796
35100
  style: styles == null ? void 0 : styles.label
34797
35101
  }, "Description:"), React.createElement(Value$2, {
34798
35102
  style: styles == null ? void 0 : styles.value
@@ -34811,7 +35115,7 @@ var QuestItem = /*#__PURE__*/styled.div.withConfig({
34811
35115
  displayName: "QuestList__QuestItem",
34812
35116
  componentId: "sc-1c1y8sp-2"
34813
35117
  })(["display:flex;margin-bottom:5px;flex-wrap:wrap;&:last-child{margin-bottom:0;}"]);
34814
- var Label$2 = /*#__PURE__*/styled.span.withConfig({
35118
+ var Label$3 = /*#__PURE__*/styled.span.withConfig({
34815
35119
  displayName: "QuestList__Label",
34816
35120
  componentId: "sc-1c1y8sp-3"
34817
35121
  })(["font-weight:bold;color:", " !important;margin-right:10px;"], uiColors.yellow);
@@ -34882,9 +35186,9 @@ var InputRadio = function InputRadio(_ref) {
34882
35186
 
34883
35187
  var RPGUIScrollbar = function RPGUIScrollbar(_ref) {
34884
35188
  var children = _ref.children;
34885
- return React.createElement(Container$z, null, children);
35189
+ return React.createElement(Container$A, null, children);
34886
35190
  };
34887
- var Container$z = /*#__PURE__*/styled.div.withConfig({
35191
+ var Container$A = /*#__PURE__*/styled.div.withConfig({
34888
35192
  displayName: "RPGUIScrollbar__Container",
34889
35193
  componentId: "sc-p3msmb-0"
34890
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;}"]);
@@ -35040,7 +35344,7 @@ var SimpleProgressBar = function SimpleProgressBar(_ref) {
35040
35344
  margin = _ref$margin === void 0 ? 20 : _ref$margin;
35041
35345
  // Ensure the width is at least 1% if value is greater than 0
35042
35346
  var width = value > 0 ? Math.max(1, Math.min(100, value)) : 0;
35043
- return React.createElement(Container$A, {
35347
+ return React.createElement(Container$B, {
35044
35348
  className: "simple-progress-bar"
35045
35349
  }, React.createElement(ProgressBarContainer, {
35046
35350
  margin: margin
@@ -35049,7 +35353,7 @@ var SimpleProgressBar = function SimpleProgressBar(_ref) {
35049
35353
  bgColor: bgColor
35050
35354
  }))));
35051
35355
  };
35052
- var Container$A = /*#__PURE__*/styled.div.withConfig({
35356
+ var Container$B = /*#__PURE__*/styled.div.withConfig({
35053
35357
  displayName: "SimpleProgressBar__Container",
35054
35358
  componentId: "sc-mbeil3-0"
35055
35359
  })(["display:flex;justify-content:center;align-items:center;width:100%;"]);
@@ -35382,7 +35686,7 @@ var SocialModal = function SocialModal(_ref) {
35382
35686
  title: "Social Channels",
35383
35687
  width: "500px",
35384
35688
  onCloseButton: onClose
35385
- }, React.createElement(Container$B, null, React.createElement(HeaderImage, {
35689
+ }, React.createElement(Container$C, null, React.createElement(HeaderImage, {
35386
35690
  src: img$9,
35387
35691
  alt: ""
35388
35692
  }), React.createElement(ButtonsContainer$1, null, React.createElement(MainButtons, null, React.createElement(SocialButton$1, {
@@ -35400,7 +35704,7 @@ var SocialModal = function SocialModal(_ref) {
35400
35704
  onClick: handleWhatsAppClick
35401
35705
  }, React.createElement(FaWhatsapp, null), " Join WhatsApp")))));
35402
35706
  };
35403
- var Container$B = /*#__PURE__*/styled.div.withConfig({
35707
+ var Container$C = /*#__PURE__*/styled.div.withConfig({
35404
35708
  displayName: "SocialModal__Container",
35405
35709
  componentId: "sc-tbjhp9-0"
35406
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% );}"]);
@@ -35446,7 +35750,7 @@ var SpellInfo$1 = function SpellInfo(_ref) {
35446
35750
  castingType = spell.castingType,
35447
35751
  cooldown = spell.cooldown,
35448
35752
  maxDistanceGrid = spell.maxDistanceGrid;
35449
- 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", {
35450
35754
  className: "label"
35451
35755
  }, "Casting Type:"), React.createElement("div", {
35452
35756
  className: "value"
@@ -35472,7 +35776,7 @@ var SpellInfo$1 = function SpellInfo(_ref) {
35472
35776
  className: "value"
35473
35777
  }, requiredItem))), React.createElement(Description$4, null, description));
35474
35778
  };
35475
- var Container$C = /*#__PURE__*/styled.div.withConfig({
35779
+ var Container$D = /*#__PURE__*/styled.div.withConfig({
35476
35780
  displayName: "SpellInfo__Container",
35477
35781
  componentId: "sc-4hbw3q-0"
35478
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);
@@ -35526,7 +35830,7 @@ var MobileSpellTooltip = function MobileSpellTooltip(_ref) {
35526
35830
  var _ref$current;
35527
35831
  (_ref$current = ref.current) == null ? void 0 : _ref$current.classList.add('fadeOut');
35528
35832
  };
35529
- return React.createElement(ModalPortal, null, React.createElement(Container$D, {
35833
+ return React.createElement(ModalPortal, null, React.createElement(Container$E, {
35530
35834
  ref: ref,
35531
35835
  onTouchEnd: function onTouchEnd() {
35532
35836
  handleFadeOut();
@@ -35551,7 +35855,7 @@ var MobileSpellTooltip = function MobileSpellTooltip(_ref) {
35551
35855
  }, option.text);
35552
35856
  }))));
35553
35857
  };
35554
- var Container$D = /*#__PURE__*/styled.div.withConfig({
35858
+ var Container$E = /*#__PURE__*/styled.div.withConfig({
35555
35859
  displayName: "MobileSpellTooltip__Container",
35556
35860
  componentId: "sc-6p7uvr-0"
35557
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;}"]);
@@ -35592,13 +35896,13 @@ var MagicTooltip = function MagicTooltip(_ref) {
35592
35896
  }
35593
35897
  return;
35594
35898
  }, []);
35595
- return React.createElement(ModalPortal, null, React.createElement(Container$E, {
35899
+ return React.createElement(ModalPortal, null, React.createElement(Container$F, {
35596
35900
  ref: ref
35597
35901
  }, React.createElement(SpellInfoDisplay, {
35598
35902
  spell: spell
35599
35903
  })));
35600
35904
  };
35601
- var Container$E = /*#__PURE__*/styled.div.withConfig({
35905
+ var Container$F = /*#__PURE__*/styled.div.withConfig({
35602
35906
  displayName: "SpellTooltip__Container",
35603
35907
  componentId: "sc-1go0gwg-0"
35604
35908
  })(["position:absolute;z-index:100;pointer-events:none;left:0;top:0;opacity:0;transition:opacity 0.08s;"]);
@@ -35671,7 +35975,7 @@ var Spell = function Spell(_ref) {
35671
35975
  var IMAGE_SCALE = 2;
35672
35976
  return React.createElement(SpellInfoWrapper, {
35673
35977
  spell: spell
35674
- }, React.createElement(Container$F, {
35978
+ }, React.createElement(Container$G, {
35675
35979
  onPointerUp: onPointerUp == null ? void 0 : onPointerUp.bind(null, spellKey),
35676
35980
  isSettingShortcut: isSettingShortcut && !disabled,
35677
35981
  className: "spell"
@@ -35690,7 +35994,7 @@ var Spell = function Spell(_ref) {
35690
35994
  className: "mana"
35691
35995
  }, manaCost))));
35692
35996
  };
35693
- var Container$F = /*#__PURE__*/styled.button.withConfig({
35997
+ var Container$G = /*#__PURE__*/styled.button.withConfig({
35694
35998
  displayName: "Spell__Container",
35695
35999
  componentId: "sc-j96fa2-0"
35696
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) {
@@ -35769,7 +36073,7 @@ var Spellbook = function Spellbook(_ref) {
35769
36073
  height: "inherit",
35770
36074
  cancelDrag: "#spellbook-search, #shortcuts_list, .spell",
35771
36075
  scale: scale
35772
- }, 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, {
35773
36077
  setSettingShortcutIndex: setSettingShortcutIndex,
35774
36078
  settingShortcutIndex: settingShortcutIndex,
35775
36079
  shortcuts: shortcuts,
@@ -35805,7 +36109,7 @@ var Title$d = /*#__PURE__*/styled.h1.withConfig({
35805
36109
  displayName: "Spellbook__Title",
35806
36110
  componentId: "sc-r02nfq-0"
35807
36111
  })(["font-size:", " !important;margin-bottom:0 !important;"], uiFonts.size.large);
35808
- var Container$G = /*#__PURE__*/styled.div.withConfig({
36112
+ var Container$H = /*#__PURE__*/styled.div.withConfig({
35809
36113
  displayName: "Spellbook__Container",
35810
36114
  componentId: "sc-r02nfq-1"
35811
36115
  })(["width:100%;height:100%;color:white;display:flex;flex-direction:column;"]);
@@ -36287,7 +36591,7 @@ var TradingMenu = function TradingMenu(_ref) {
36287
36591
  width: "500px",
36288
36592
  cancelDrag: "#TraderContainer",
36289
36593
  scale: scale
36290
- }, 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", {
36291
36595
  className: "golden"
36292
36596
  }), React.createElement(ScrollWrapper, {
36293
36597
  id: "TraderContainer"
@@ -36315,7 +36619,7 @@ var TradingMenu = function TradingMenu(_ref) {
36315
36619
  onPointerDown: onClose
36316
36620
  }, "Cancel"))));
36317
36621
  };
36318
- var Container$H = /*#__PURE__*/styled.div.withConfig({
36622
+ var Container$I = /*#__PURE__*/styled.div.withConfig({
36319
36623
  displayName: "TradingMenu__Container",
36320
36624
  componentId: "sc-1wjsz1l-0"
36321
36625
  })(["width:100%;"]);
@@ -36349,11 +36653,11 @@ var Truncate = function Truncate(_ref) {
36349
36653
  var _ref$maxLines = _ref.maxLines,
36350
36654
  maxLines = _ref$maxLines === void 0 ? 1 : _ref$maxLines,
36351
36655
  children = _ref.children;
36352
- return React.createElement(Container$I, {
36656
+ return React.createElement(Container$J, {
36353
36657
  maxLines: maxLines
36354
36658
  }, children);
36355
36659
  };
36356
- var Container$I = /*#__PURE__*/styled.div.withConfig({
36660
+ var Container$J = /*#__PURE__*/styled.div.withConfig({
36357
36661
  displayName: "Truncate__Container",
36358
36662
  componentId: "sc-6x00qb-0"
36359
36663
  })(["display:-webkit-box;max-width:100%;max-height:100%;-webkit-line-clamp:", ";-webkit-box-orient:vertical;overflow:hidden;"], function (props) {
@@ -36461,7 +36765,7 @@ var TutorialStepper = /*#__PURE__*/React.memo(function (_ref) {
36461
36765
  };
36462
36766
  });
36463
36767
  }, [lessons, imageStyle]);
36464
- return React.createElement(Container$J, null, React.createElement(Stepper, {
36768
+ return React.createElement(Container$K, null, React.createElement(Stepper, {
36465
36769
  steps: generateLessons,
36466
36770
  finalCTAButton: {
36467
36771
  label: 'Close',
@@ -36478,7 +36782,7 @@ var LessonBody = /*#__PURE__*/styled.div.withConfig({
36478
36782
  displayName: "TutorialStepper__LessonBody",
36479
36783
  componentId: "sc-7tgzv2-1"
36480
36784
  })([""]);
36481
- var Container$J = /*#__PURE__*/styled.div.withConfig({
36785
+ var Container$K = /*#__PURE__*/styled.div.withConfig({
36482
36786
  displayName: "TutorialStepper__Container",
36483
36787
  componentId: "sc-7tgzv2-2"
36484
36788
  })(["width:80%;max-width:600px;@media (max-width:600px){width:95%;}"]);