@rpg-engine/long-bow 0.8.38 → 0.8.39

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.
@@ -14,6 +14,7 @@ interface IInformationCenterProps {
14
14
  loading?: boolean;
15
15
  error?: string;
16
16
  initialSearchQuery?: string;
17
+ onClose?: () => void;
17
18
  }
18
19
  export declare const InformationCenter: React.FC<IInformationCenterProps>;
19
20
  export {};
@@ -18,6 +18,7 @@ interface IAdvancedFiltersProps {
18
18
  sections: IFilterSection[];
19
19
  onClearAll: () => void;
20
20
  hasActiveFilters: boolean;
21
+ onClose?: () => void;
21
22
  }
22
23
  export declare const AdvancedFilters: React.FC<IAdvancedFiltersProps>;
23
24
  export {};
@@ -31555,7 +31555,8 @@ var AdvancedFilters = function AdvancedFilters(_ref) {
31555
31555
  onToggle = _ref.onToggle,
31556
31556
  sections = _ref.sections,
31557
31557
  onClearAll = _ref.onClearAll,
31558
- hasActiveFilters = _ref.hasActiveFilters;
31558
+ hasActiveFilters = _ref.hasActiveFilters,
31559
+ onClose = _ref.onClose;
31559
31560
  var renderFilterSection = function renderFilterSection(section) {
31560
31561
  switch (section.type) {
31561
31562
  case 'range':
@@ -31601,11 +31602,11 @@ var AdvancedFilters = function AdvancedFilters(_ref) {
31601
31602
  setButtonPosition = _React$useState[1];
31602
31603
  var buttonRef = React.useRef(null);
31603
31604
  var panelRef = React.useRef(null);
31605
+ var isMobile = shared.isMobileOrTablet();
31604
31606
  React.useEffect(function () {
31605
31607
  if (isOpen && buttonRef.current) {
31606
31608
  var rect = buttonRef.current.getBoundingClientRect();
31607
- var isMobileView = window.innerWidth < 480;
31608
- if (isMobileView) {
31609
+ if (isMobile) {
31609
31610
  // For mobile, position in center of screen
31610
31611
  setButtonPosition({
31611
31612
  top: window.innerHeight / 2,
@@ -31621,7 +31622,7 @@ var AdvancedFilters = function AdvancedFilters(_ref) {
31621
31622
  });
31622
31623
  }
31623
31624
  }
31624
- }, [isOpen]);
31625
+ }, [isOpen, isMobile]);
31625
31626
  // Handle click outside to close the panel
31626
31627
  React.useEffect(function () {
31627
31628
  var handleClickOutside = function handleClickOutside(event) {
@@ -31636,6 +31637,12 @@ var AdvancedFilters = function AdvancedFilters(_ref) {
31636
31637
  document.removeEventListener('mousedown', handleClickOutside);
31637
31638
  };
31638
31639
  }, [isOpen, onToggle]);
31640
+ var handleClose = function handleClose() {
31641
+ onToggle();
31642
+ if (onClose) {
31643
+ onClose();
31644
+ }
31645
+ };
31639
31646
  return React__default.createElement(Container$q, null, React__default.createElement(FilterButton, {
31640
31647
  onClick: onToggle,
31641
31648
  "$hasActiveFilters": hasActiveFilters,
@@ -31652,18 +31659,17 @@ var AdvancedFilters = function AdvancedFilters(_ref) {
31652
31659
  return rangeValue[0] !== undefined || rangeValue[1] !== undefined;
31653
31660
  }
31654
31661
  return section.value !== 'all';
31655
- }).length)), isOpen && React__default.createElement(Portal, null, React__default.createElement(FiltersPanel, {
31662
+ }).length)), isOpen && React__default.createElement(Portal, null, isMobile && React__default.createElement(Overlay$1, null), React__default.createElement(FiltersPanel, {
31656
31663
  ref: panelRef,
31657
31664
  style: {
31658
31665
  position: 'fixed',
31659
- top: buttonPosition.isMobile ? '50vh' : buttonPosition.top + "px",
31660
- left: buttonPosition.isMobile ? '50vw' : buttonPosition.left + "px",
31661
- transform: buttonPosition.isMobile ? 'translate(-50%, -50%)' : 'translateX(-50%)',
31666
+ top: isMobile ? '50vh' : buttonPosition.top + "px",
31667
+ left: isMobile ? '50vw' : buttonPosition.left + "px",
31662
31668
  zIndex: 9999
31663
31669
  },
31664
- "$isMobile": buttonPosition.isMobile
31670
+ "$isMobile": isMobile
31665
31671
  }, React__default.createElement(FilterHeader, null, React__default.createElement(FilterTitle, null, "Advanced Filters"), React__default.createElement(CloseButton$6, {
31666
- onClick: onToggle
31672
+ onClick: handleClose
31667
31673
  }, "\xD7")), sections.map(renderFilterSection), hasActiveFilters && React__default.createElement(ClearFiltersButton, {
31668
31674
  onClick: onClearAll
31669
31675
  }, "Clear All Filters"))));
@@ -31695,40 +31701,52 @@ var FilterCount = /*#__PURE__*/styled__default.div.withConfig({
31695
31701
  var FiltersPanel = /*#__PURE__*/styled__default.div.withConfig({
31696
31702
  displayName: "AdvancedFilters__FiltersPanel",
31697
31703
  componentId: "sc-1xj6ldr-3"
31698
- })(["background:#1a1a1a;border:1px solid #333;border-radius:6px;padding:1rem;width:280px;max-width:calc(100vw - 20px);display:flex;flex-direction:column;gap:1rem;box-shadow:0 4px 12px rgba(0,0,0,0.3);font-family:'Press Start 2P',cursive;@media (max-width:320px){width:250px;padding:0.75rem;gap:0.75rem;}&:before{content:'';position:absolute;top:-6px;left:50%;transform:translateX(-50%) rotate(45deg);width:12px;height:12px;background:#1a1a1a;border-left:1px solid #333;border-top:1px solid #333;display:", ";}"], function (props) {
31704
+ })(["background:#1a1a1a;border:1px solid #333;border-radius:6px;padding:", ";width:", ";max-width:calc(100vw - 20px);display:flex;flex-direction:column;gap:", ";box-shadow:0 4px 12px rgba(0,0,0,0.3);font-family:'Press Start 2P',cursive;transform:", ";@media (max-width:320px){width:220px;padding:0.65rem;gap:0.65rem;}&:before{content:'';position:absolute;top:-6px;left:50%;transform:translateX(-50%) rotate(45deg);width:12px;height:12px;background:#1a1a1a;border-left:1px solid #333;border-top:1px solid #333;display:", ";}"], function (props) {
31705
+ return props.$isMobile ? '0.75rem' : '1rem';
31706
+ }, function (props) {
31707
+ return props.$isMobile ? '240px' : '280px';
31708
+ }, function (props) {
31709
+ return props.$isMobile ? '0.75rem' : '1rem';
31710
+ }, function (props) {
31711
+ return props.$isMobile ? 'translate(-50%, -50%) scale(0.9)' : 'translateX(-50%)';
31712
+ }, function (props) {
31699
31713
  return props.$isMobile ? 'none' : 'block';
31700
31714
  });
31701
31715
  var FilterHeader = /*#__PURE__*/styled__default.div.withConfig({
31702
31716
  displayName: "AdvancedFilters__FilterHeader",
31703
31717
  componentId: "sc-1xj6ldr-4"
31704
31718
  })(["display:flex;align-items:center;justify-content:space-between;padding-bottom:0.75rem;margin-bottom:0.5rem;border-bottom:1px solid #333;"]);
31719
+ var Overlay$1 = /*#__PURE__*/styled__default.div.withConfig({
31720
+ displayName: "AdvancedFilters__Overlay",
31721
+ componentId: "sc-1xj6ldr-5"
31722
+ })(["position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.6);z-index:9998;animation:fadeIn 0.2s ease-out;@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}"]);
31705
31723
  var FilterTitle = /*#__PURE__*/styled__default.div.withConfig({
31706
31724
  displayName: "AdvancedFilters__FilterTitle",
31707
- componentId: "sc-1xj6ldr-5"
31725
+ componentId: "sc-1xj6ldr-6"
31708
31726
  })(["font-weight:600;color:#ffd700;font-size:0.75rem;"]);
31709
31727
  var FilterSection = /*#__PURE__*/styled__default.div.withConfig({
31710
31728
  displayName: "AdvancedFilters__FilterSection",
31711
- componentId: "sc-1xj6ldr-6"
31729
+ componentId: "sc-1xj6ldr-7"
31712
31730
  })(["display:flex;flex-direction:column;gap:0.5rem;"]);
31713
31731
  var Label$1 = /*#__PURE__*/styled__default.div.withConfig({
31714
31732
  displayName: "AdvancedFilters__Label",
31715
- componentId: "sc-1xj6ldr-7"
31733
+ componentId: "sc-1xj6ldr-8"
31716
31734
  })(["color:#999;font-size:0.65rem;text-transform:uppercase;letter-spacing:0.05em;"]);
31717
31735
  var RangeInputs = /*#__PURE__*/styled__default.div.withConfig({
31718
31736
  displayName: "AdvancedFilters__RangeInputs",
31719
- componentId: "sc-1xj6ldr-8"
31737
+ componentId: "sc-1xj6ldr-9"
31720
31738
  })(["display:flex;align-items:center;gap:0.5rem;input{width:80px;background:#262626 !important;border:1px solid #444 !important;border-radius:4px !important;color:#ddd !important;font-size:0.65rem !important;padding:0.5rem !important;height:auto !important;box-shadow:inset 0 1px 3px rgba(0,0,0,0.2) !important;&::placeholder{color:#666 !important;}&:focus{border-color:#f59e0b !important;outline:none !important;}}svg{color:#666;font-size:0.875rem;}"]);
31721
31739
  var ClearFiltersButton = /*#__PURE__*/styled__default.button.withConfig({
31722
31740
  displayName: "AdvancedFilters__ClearFiltersButton",
31723
- componentId: "sc-1xj6ldr-9"
31741
+ componentId: "sc-1xj6ldr-10"
31724
31742
  })(["width:100%;background:transparent;color:#666;border:none;padding:0.75rem 0;margin-top:0.5rem;cursor:pointer;font-size:0.65rem;transition:all 0.2s;border-top:1px solid #333;text-transform:uppercase;letter-spacing:0.05em;font-family:'Press Start 2P',cursive;&:hover{color:#ffd700;}"]);
31725
31743
  var CloseButton$6 = /*#__PURE__*/styled__default.button.withConfig({
31726
31744
  displayName: "AdvancedFilters__CloseButton",
31727
- componentId: "sc-1xj6ldr-10"
31745
+ componentId: "sc-1xj6ldr-11"
31728
31746
  })(["background:transparent;border:none;color:#999;font-size:1.5rem;line-height:1;cursor:pointer;padding:0;margin:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;&:hover{color:#ffd700;}"]);
31729
31747
  var StyledDropdownWrapper = /*#__PURE__*/styled__default.div.withConfig({
31730
31748
  displayName: "AdvancedFilters__StyledDropdownWrapper",
31731
- componentId: "sc-1xj6ldr-11"
31749
+ componentId: "sc-1xj6ldr-12"
31732
31750
  })([".rpgui-dropdown-imp{font-size:0.8rem;min-height:unset;padding-top:0.3rem;}"]);
31733
31751
 
31734
31752
  var ItemsAdvancedFilters = function ItemsAdvancedFilters(_ref) {
@@ -32697,7 +32715,8 @@ var InformationCenter = function InformationCenter(_ref) {
32697
32715
  loading = _ref$loading === void 0 ? false : _ref$loading,
32698
32716
  error = _ref.error,
32699
32717
  _ref$initialSearchQue = _ref.initialSearchQuery,
32700
- initialSearchQuery = _ref$initialSearchQue === void 0 ? '' : _ref$initialSearchQue;
32718
+ initialSearchQuery = _ref$initialSearchQue === void 0 ? '' : _ref$initialSearchQue,
32719
+ onClose = _ref.onClose;
32701
32720
  var _useState = React.useState('bestiary'),
32702
32721
  activeTab = _useState[0],
32703
32722
  setActiveTab = _useState[1];
@@ -32747,7 +32766,9 @@ var InformationCenter = function InformationCenter(_ref) {
32747
32766
  type: exports.RPGUIContainerTypes.Framed,
32748
32767
  width: isMobile ? '95%' : '80%',
32749
32768
  minWidth: "300px",
32750
- cancelDrag: ".PaginatedContent-content"
32769
+ cancelDrag: ".PaginatedContent-content",
32770
+ isFullScreen: isMobile,
32771
+ onCloseButton: onClose
32751
32772
  }, React__default.createElement(Container$r, null, React__default.createElement(InternalTabs, {
32752
32773
  tabs: tabs,
32753
32774
  activeTextColor: "#000000",
@@ -36135,7 +36156,7 @@ var Spell = function Spell(_ref) {
36135
36156
  onPointerUp: onPointerUp == null ? void 0 : onPointerUp.bind(null, spellKey),
36136
36157
  isSettingShortcut: isSettingShortcut && !disabled,
36137
36158
  className: "spell"
36138
- }, disabled && React__default.createElement(Overlay$1, null, charMagicLevel < minMagicLevelRequired ? 'Low magic level' : manaCost > charMana && 'No mana'), React__default.createElement(SpellImage, null, activeCooldown && activeCooldown > 0 ? React__default.createElement("span", {
36159
+ }, disabled && React__default.createElement(Overlay$2, null, charMagicLevel < minMagicLevelRequired ? 'Low magic level' : manaCost > charMana && 'No mana'), React__default.createElement(SpellImage, null, activeCooldown && activeCooldown > 0 ? React__default.createElement("span", {
36139
36160
  className: "cooldown"
36140
36161
  }, activeCooldown.toFixed(activeCooldown > 10 ? 0 : 1)) : null, React__default.createElement(SpriteFromAtlas, {
36141
36162
  atlasIMG: atlasIMG,
@@ -36181,7 +36202,7 @@ var Cost = /*#__PURE__*/styled__default.p.withConfig({
36181
36202
  displayName: "Spell__Cost",
36182
36203
  componentId: "sc-j96fa2-6"
36183
36204
  })(["display:flex;align-items:center;flex-direction:column;gap:0.5rem;div{z-index:1;}.mana{position:relative;font-size:", ";font-weight:bold;z-index:1;&::after{position:absolute;content:'';top:0;left:0;background-color:", ";width:100%;height:100%;border-radius:50%;transform:scale(1.8);filter:blur(10px);z-index:-1;}}"], uiFonts.size.medium, uiColors.blue);
36184
- var Overlay$1 = /*#__PURE__*/styled__default.p.withConfig({
36205
+ var Overlay$2 = /*#__PURE__*/styled__default.p.withConfig({
36185
36206
  displayName: "Spell__Overlay",
36186
36207
  componentId: "sc-j96fa2-7"
36187
36208
  })(["margin:0 !important;position:absolute;top:0;left:0;width:100%;height:100%;border-radius:1rem;display:flex;justify-content:center;align-items:center;color:", ";font-size:", " !important;font-weight:bold;z-index:10;background-color:rgba(0 0 0 / 0.2);"], uiColors.yellow, uiFonts.size.large);