@rpg-engine/long-bow 0.3.54 → 0.3.55

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 (163) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +181 -181
  3. package/dist/components/Arrow/SelectArrow.d.ts +1 -1
  4. package/dist/components/Button.d.ts +2 -2
  5. package/dist/components/CircularController/CircularController.d.ts +4 -7
  6. package/dist/components/Item/Inventory/ItemContainer.d.ts +1 -4
  7. package/dist/components/Item/Inventory/ItemSlot.d.ts +1 -2
  8. package/dist/components/Multitab/Tab.d.ts +1 -1
  9. package/dist/components/QuestInfo/QuestInfo.d.ts +1 -1
  10. package/dist/components/Spellbook/QuickSpells.d.ts +10 -0
  11. package/dist/components/Spellbook/Spell.d.ts +1 -1
  12. package/dist/components/Spellbook/Spellbook.d.ts +3 -5
  13. package/dist/components/Spellbook/SpellbookShortcuts.d.ts +10 -0
  14. package/dist/components/Spellbook/constants.d.ts +3 -3
  15. package/dist/components/shared/SpriteFromAtlas.d.ts +1 -1
  16. package/dist/index.d.ts +1 -1
  17. package/dist/long-bow.cjs.development.js +734 -913
  18. package/dist/long-bow.cjs.development.js.map +1 -1
  19. package/dist/long-bow.cjs.production.min.js +1 -1
  20. package/dist/long-bow.cjs.production.min.js.map +1 -1
  21. package/dist/long-bow.esm.js +736 -916
  22. package/dist/long-bow.esm.js.map +1 -1
  23. package/dist/stories/{Shortcuts.stories.d.ts → QuickSpells.stories.d.ts} +2 -2
  24. package/package.json +100 -100
  25. package/src/components/Abstractions/SlotsContainer.tsx +45 -45
  26. package/src/components/Arrow/SelectArrow.tsx +69 -65
  27. package/src/components/Arrow/img/arrow01-left-clicked.png +0 -0
  28. package/src/components/Arrow/img/arrow01-left.png +0 -0
  29. package/src/components/Arrow/img/arrow01-right-clicked.png +0 -0
  30. package/src/components/Arrow/img/arrow01-right.png +0 -0
  31. package/src/components/Arrow/img/arrow02-left-clicked.png +0 -0
  32. package/src/components/Arrow/img/arrow02-left.png +0 -0
  33. package/src/components/Arrow/img/arrow02-right-clicked.png +0 -0
  34. package/src/components/Arrow/img/arrow02-right.png +0 -0
  35. package/src/components/Button.tsx +40 -41
  36. package/src/components/Character/CharacterSelection.tsx +96 -96
  37. package/src/components/CharacterStatus/CharacterStatus.tsx +120 -120
  38. package/src/components/Chat/Chat.tsx +195 -195
  39. package/src/components/Chatdeprecated/ChatDeprecated.tsx +198 -200
  40. package/src/components/CheckButton.tsx +65 -65
  41. package/src/components/CircularController/CircularController.tsx +162 -245
  42. package/src/components/CraftBook/CraftBook.tsx +224 -235
  43. package/src/components/CraftBook/MockItems.ts +46 -46
  44. package/src/components/DraggableContainer.tsx +153 -154
  45. package/src/components/Dropdown.tsx +90 -96
  46. package/src/components/DropdownSelectorContainer.tsx +42 -42
  47. package/src/components/Equipment/EquipmentSet.tsx +190 -190
  48. package/src/components/HistoryDialog.tsx +104 -104
  49. package/src/components/Input.tsx +15 -15
  50. package/src/components/Item/Cards/ItemTooltip.tsx +33 -33
  51. package/src/components/Item/Inventory/ErrorBoundary.tsx +42 -42
  52. package/src/components/Item/Inventory/ItemContainer.tsx +175 -210
  53. package/src/components/Item/Inventory/ItemContainerTypes.ts +6 -6
  54. package/src/components/Item/Inventory/ItemQuantitySelector.tsx +138 -142
  55. package/src/components/Item/Inventory/ItemSlot.tsx +467 -501
  56. package/src/components/Item/Inventory/itemContainerHelper.ts +156 -156
  57. package/src/components/ListMenu.tsx +63 -63
  58. package/src/components/Multitab/Tab.tsx +66 -57
  59. package/src/components/Multitab/TabBody.tsx +13 -13
  60. package/src/components/Multitab/TabsContainer.tsx +97 -97
  61. package/src/components/NPCDialog/NPCDialog.tsx +121 -121
  62. package/src/components/NPCDialog/NPCDialogText.tsx +113 -113
  63. package/src/components/NPCDialog/NPCMultiDialog.tsx +159 -159
  64. package/src/components/NPCDialog/QuestionDialog/QuestionDialog.tsx +237 -237
  65. package/src/components/ProgressBar.tsx +92 -92
  66. package/src/components/PropertySelect/PropertySelect.tsx +106 -114
  67. package/src/components/QuestInfo/QuestInfo.tsx +230 -232
  68. package/src/components/QuestList.tsx +129 -129
  69. package/src/components/RPGUIContainer.tsx +47 -47
  70. package/src/components/RPGUIForceRenderStart.tsx +45 -45
  71. package/src/components/RPGUIRoot.tsx +14 -14
  72. package/src/components/RadioButton.tsx +53 -53
  73. package/src/components/RadioInput/RadioButton.tsx +96 -98
  74. package/src/components/RadioInput/RadioInput.tsx +102 -99
  75. package/src/components/RadioInput/instruments.ts +15 -15
  76. package/src/components/RangeSlider.tsx +78 -78
  77. package/src/components/RelativeListMenu.tsx +83 -83
  78. package/src/components/ScrollList.tsx +79 -79
  79. package/src/components/SimpleProgressBar.tsx +62 -62
  80. package/src/components/SkillProgressBar.tsx +133 -133
  81. package/src/components/SkillsContainer.tsx +198 -200
  82. package/src/components/Spellbook/QuickSpells.tsx +120 -0
  83. package/src/components/Spellbook/Spell.tsx +201 -201
  84. package/src/components/Spellbook/Spellbook.tsx +144 -150
  85. package/src/components/Spellbook/SpellbookShortcuts.tsx +77 -0
  86. package/src/components/Spellbook/constants.ts +12 -8
  87. package/src/components/Spellbook/mockSpells.ts +60 -60
  88. package/src/components/StaticBook/StaticBook.tsx +103 -105
  89. package/src/components/TextArea.tsx +11 -11
  90. package/src/components/TimeWidget/DayNightPeriod/DayNightPeriod.tsx +35 -35
  91. package/src/components/TimeWidget/TimeWidget.tsx +63 -63
  92. package/src/components/TradingMenu/TradingItemRow.tsx +193 -197
  93. package/src/components/TradingMenu/TradingMenu.tsx +203 -203
  94. package/src/components/TradingMenu/items.mock.ts +96 -96
  95. package/src/components/Truncate.tsx +25 -25
  96. package/src/components/itemSelector/ItemSelector.tsx +136 -136
  97. package/src/components/shared/Column.tsx +16 -16
  98. package/src/components/shared/Ellipsis.tsx +65 -65
  99. package/src/components/shared/SpriteFromAtlas.tsx +102 -102
  100. package/src/components/typography/DynamicText.tsx +49 -49
  101. package/src/constants/uiColors.ts +20 -20
  102. package/src/constants/uiDevices.ts +3 -3
  103. package/src/constants/uiFonts.ts +12 -12
  104. package/src/hooks/useEventListener.ts +21 -21
  105. package/src/hooks/useOutsideAlerter.ts +25 -25
  106. package/src/index.tsx +40 -40
  107. package/src/libs/StringHelpers.ts +3 -3
  108. package/src/mocks/atlas/entities/entities.json +20215 -20215
  109. package/src/mocks/atlas/icons/icons.json +735 -735
  110. package/src/mocks/atlas/items/items.json +12086 -12086
  111. package/src/mocks/equipmentSet.mocks.ts +393 -393
  112. package/src/mocks/itemContainer.mocks.ts +560 -562
  113. package/src/mocks/skills.mocks.ts +128 -128
  114. package/src/stories/Arrow.stories.tsx +26 -26
  115. package/src/stories/Button.stories.tsx +36 -36
  116. package/src/stories/CharacterSelection.stories.tsx +45 -45
  117. package/src/stories/CharacterStatus.stories.tsx +29 -29
  118. package/src/stories/Chat.stories.tsx +187 -187
  119. package/src/stories/ChatDeprecated.stories.tsx +170 -170
  120. package/src/stories/CheckButton.stories.tsx +48 -48
  121. package/src/stories/CircullarController.stories.tsx +33 -37
  122. package/src/stories/CraftBook.stories.tsx +40 -40
  123. package/src/stories/DayNightPeriod.stories.tsx +27 -27
  124. package/src/stories/DraggableContainer.stories.tsx +28 -28
  125. package/src/stories/Dropdown.stories.tsx +46 -46
  126. package/src/stories/DropdownSelectorContainer.stories.tsx +41 -41
  127. package/src/stories/EquipmentSet.stories.tsx +65 -65
  128. package/src/stories/HistoryDialog.stories.tsx +61 -61
  129. package/src/stories/ItemContainer.stories.tsx +124 -198
  130. package/src/stories/ItemQuantitySelector.stories.tsx +26 -26
  131. package/src/stories/ItemSelector.stories.tsx +77 -77
  132. package/src/stories/ItemTradingComponent.stories.tsx +35 -35
  133. package/src/stories/ListMenu.stories.tsx +56 -56
  134. package/src/stories/Multitab.stories.tsx +51 -51
  135. package/src/stories/NPCDialog.stories.tsx +130 -130
  136. package/src/stories/NPCMultiDialog.stories.tsx +71 -71
  137. package/src/stories/ProgressBar.stories.tsx +23 -23
  138. package/src/stories/PropertySelect.stories.tsx +40 -40
  139. package/src/stories/QuestInfo.stories.tsx +110 -107
  140. package/src/stories/QuestList.stories.tsx +82 -82
  141. package/src/stories/QuickSpells.stories.tsx +38 -0
  142. package/src/stories/RPGUIContainers.stories.tsx +42 -42
  143. package/src/stories/RadioButton.stories.tsx +49 -49
  144. package/src/stories/RadioInput.stories.tsx +34 -34
  145. package/src/stories/RangeSlider.stories.tsx +64 -64
  146. package/src/stories/ScrollList.stories.tsx +85 -85
  147. package/src/stories/SimpleProgressBar.stories.tsx +22 -22
  148. package/src/stories/SkillProgressBar.stories.tsx +34 -34
  149. package/src/stories/SkillsContainer.stories.tsx +35 -35
  150. package/src/stories/Spellbook.stories.tsx +107 -104
  151. package/src/stories/StaticBook.stories.tsx +32 -32
  152. package/src/stories/Text.stories.tsx +42 -42
  153. package/src/stories/TimeWidget.stories.tsx +27 -27
  154. package/src/stories/TradingMenu.stories.tsx +45 -45
  155. package/src/types/eventTypes.ts +4 -4
  156. package/src/types/index.d.ts +2 -2
  157. package/dist/components/Shortcuts/Shortcuts.d.ts +0 -12
  158. package/dist/components/Shortcuts/ShortcutsSetter.d.ts +0 -12
  159. package/dist/components/Shortcuts/SingleShortcut.d.ts +0 -1
  160. package/src/components/Shortcuts/Shortcuts.tsx +0 -129
  161. package/src/components/Shortcuts/ShortcutsSetter.tsx +0 -132
  162. package/src/components/Shortcuts/SingleShortcut.ts +0 -61
  163. package/src/stories/Shortcuts.stories.tsx +0 -39
@@ -73,7 +73,7 @@ var uiFonts = {
73
73
  }
74
74
  };
75
75
 
76
- var _excluded = ["disabled", "children", "buttonType", "onClick"];
76
+ var _excluded = ["disabled", "children", "buttonType", "onPointerDown"];
77
77
  (function (ButtonTypes) {
78
78
  ButtonTypes["RPGUIButton"] = "rpgui-button";
79
79
  ButtonTypes["RPGUIGoldButton"] = "rpgui-button golden";
@@ -83,14 +83,13 @@ var Button = function Button(_ref) {
83
83
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
84
84
  children = _ref.children,
85
85
  buttonType = _ref.buttonType,
86
- onClick = _ref.onClick,
86
+ onPointerDown = _ref.onPointerDown,
87
87
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
88
88
  return React__default.createElement(ButtonContainer, Object.assign({
89
89
  className: "" + buttonType,
90
90
  disabled: disabled
91
91
  }, props, {
92
- onTouchStart: onClick,
93
- onClick: onClick
92
+ onPointerDown: onPointerDown
94
93
  }), React__default.createElement("p", null, children));
95
94
  };
96
95
  var ButtonContainer = /*#__PURE__*/styled.button.withConfig({
@@ -109,7 +108,7 @@ var SpriteFromAtlas = function SpriteFromAtlas(_ref) {
109
108
  _ref$imgScale = _ref.imgScale,
110
109
  imgScale = _ref$imgScale === void 0 ? 2 : _ref$imgScale,
111
110
  imgStyle = _ref.imgStyle,
112
- onClick = _ref.onClick,
111
+ onPointerDown = _ref.onPointerDown,
113
112
  containerStyle = _ref.containerStyle,
114
113
  _ref$grayScale = _ref.grayScale,
115
114
  grayScale = _ref$grayScale === void 0 ? false : _ref$grayScale,
@@ -123,7 +122,7 @@ var SpriteFromAtlas = function SpriteFromAtlas(_ref) {
123
122
  width: width,
124
123
  height: height,
125
124
  hasHover: grayScale,
126
- onClick: onClick,
125
+ onPointerDown: onPointerDown,
127
126
  style: containerStyle
128
127
  }, React__default.createElement(ImgSprite, {
129
128
  className: "sprite-from-atlas-img",
@@ -32523,22 +32522,22 @@ var img$4 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0A
32523
32522
 
32524
32523
  var img$5 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAS5JREFUWIXtl7Fqw0AMhv8LLmTI4KFk8pJAtkKJpzRDCoasHZvnyJP0OZqx3Y90KZ3OdM7qKfHgIUNpAu1U+TA654YGUXr/JGRx/vmEdDbw36UA4P4upYTW2y+ucJzG6ifOTXXy4HJfeBnoeFWdUeIGFABc9hLC/vqWsYXTiT55mE+bmq0RJyBuIGp7+PFoKNbLmOLuIuXKMZ1odoKyrE+t0VYny30hT0DcgAKA+eyKErmpCKON3UctraHYbsfqycgTEDcQAX673Uf21Niyl1tjUpQ4AXEDEQBcJ/U+ei+Ov/4S9xSERcRcx67l85y3XhsAgId1yeZvRxeE/WVzoHy4CwDmOnahduG1lcQ16qKqUTex2xInIG5AAcDNYEiJze6T/apx4XUp/BcE/Rl9A77uW6caXAGtAAAAAElFTkSuQmCC';
32525
32524
 
32526
- var _excluded$1 = ["direction", "size", "onClick"];
32525
+ var _excluded$1 = ["direction", "size", "onPointerDown"];
32527
32526
  var SelectArrow = function SelectArrow(_ref) {
32528
32527
  var _ref$direction = _ref.direction,
32529
32528
  direction = _ref$direction === void 0 ? 'left' : _ref$direction,
32530
32529
  size = _ref.size,
32531
- _onClick = _ref.onClick,
32530
+ _onPointerDown = _ref.onPointerDown,
32532
32531
  props = _objectWithoutPropertiesLoose(_ref, _excluded$1);
32533
32532
  return React__default.createElement(React__default.Fragment, null, direction === 'left' ? React__default.createElement(LeftArrow, Object.assign({
32534
32533
  size: size,
32535
- onClick: function onClick() {
32536
- return _onClick();
32534
+ onPointerDown: function onPointerDown() {
32535
+ return _onPointerDown();
32537
32536
  }
32538
32537
  }, props)) : React__default.createElement(RightArrow, Object.assign({
32539
32538
  size: size,
32540
- onClick: function onClick() {
32541
- return _onClick();
32539
+ onPointerDown: function onPointerDown() {
32540
+ return _onPointerDown();
32542
32541
  }
32543
32542
  }, props)));
32544
32543
  };
@@ -32624,12 +32623,10 @@ var PropertySelect = function PropertySelect(_ref) {
32624
32623
  className: "rpgui-progress-track"
32625
32624
  }), React__default.createElement(SelectArrow, {
32626
32625
  direction: "left",
32627
- onClick: onLeftClick,
32628
- onTouchStart: onLeftClick
32626
+ onPointerDown: onLeftClick
32629
32627
  }), React__default.createElement(SelectArrow, {
32630
32628
  direction: "right",
32631
- onClick: onRightClick,
32632
- onTouchStart: onRightClick
32629
+ onPointerDown: onRightClick
32633
32630
  }));
32634
32631
  };
32635
32632
  var Item = /*#__PURE__*/styled.span.withConfig({
@@ -32790,7 +32787,7 @@ var Chat = function Chat(_ref) {
32790
32787
  autoComplete: "off",
32791
32788
  onFocus: onFocus,
32792
32789
  onBlur: onBlur,
32793
- onTouchStart: onFocus,
32790
+ onPointerDown: onFocus,
32794
32791
  autoFocus: true
32795
32792
  })), React__default.createElement(Column, {
32796
32793
  justifyContent: "flex-end"
@@ -32961,8 +32958,7 @@ var ChatDeprecated = function ChatDeprecated(_ref) {
32961
32958
  }, React__default.createElement(reactErrorBoundary.ErrorBoundary, {
32962
32959
  fallback: React__default.createElement("p", null, "Oops! Your chat has crashed.")
32963
32960
  }, onCloseButton && React__default.createElement(CloseButton, {
32964
- onClick: onCloseButton,
32965
- onTouchStart: onCloseButton
32961
+ onPointerDown: onCloseButton
32966
32962
  }, "X"), React__default.createElement(RPGUIContainer, {
32967
32963
  type: exports.RPGUIContainerTypes.FramedGrey,
32968
32964
  width: '100%',
@@ -33051,27 +33047,69 @@ var CheckButton = function CheckButton(_ref) {
33051
33047
  checked: selectedValues[element.label],
33052
33048
  onChange: function onChange() {}
33053
33049
  }), React__default.createElement("label", {
33054
- onClick: function onClick() {
33050
+ onPointerDown: function onPointerDown() {
33055
33051
  return handleClick(element.label);
33056
33052
  }
33057
33053
  }, element.label), React__default.createElement("br", null));
33058
33054
  }));
33059
33055
  };
33060
33056
 
33061
- var SingleShortcut = /*#__PURE__*/styled.button.withConfig({
33062
- displayName: "SingleShortcut",
33063
- componentId: "sc-vz5ev8-0"
33064
- })(["width:3rem;height:3rem;background-color:", ";border:2px solid ", ";border-radius:50%;text-transform:uppercase;font-size:0.7rem;font-weight:bold;display:flex;align-items:center;justify-content:center;position:relative;span{pointer-events:none;}.mana{position:absolute;top:-5px;right:0;font-size:0.65rem;color:", ";}.qty{position:absolute;top:-5px;right:0;font-size:0.65rem;}.magicWords{margin-top:4px;}.keyboard{position:absolute;bottom:-5px;left:0;font-size:0.65rem;color:", ";}&:hover,&:focus{background-color:", ";}&:active{background-color:", ";}&:disabled{opacity:0.5;}"], uiColors.lightGray, uiColors.darkGray, uiColors.blue, uiColors.yellow, uiColors.darkGray, uiColors.gray);
33057
+ var QuickSpells = function QuickSpells(_ref) {
33058
+ var quickSpells = _ref.quickSpells,
33059
+ onSpellCast = _ref.onSpellCast,
33060
+ mana = _ref.mana,
33061
+ _ref$isBlockedCasting = _ref.isBlockedCastingByKeyboard,
33062
+ isBlockedCastingByKeyboard = _ref$isBlockedCasting === void 0 ? false : _ref$isBlockedCasting;
33063
+ React.useEffect(function () {
33064
+ var handleKeyDown = function handleKeyDown(e) {
33065
+ if (isBlockedCastingByKeyboard) return;
33066
+ var shortcutIndex = Number(e.key) - 1;
33067
+ if (shortcutIndex >= 0 && shortcutIndex <= 3) {
33068
+ var shortcut = quickSpells[shortcutIndex];
33069
+ if (shortcut != null && shortcut.key && mana >= (shortcut == null ? void 0 : shortcut.manaCost)) {
33070
+ onSpellCast(shortcut.key);
33071
+ }
33072
+ }
33073
+ };
33074
+ window.addEventListener('keydown', handleKeyDown);
33075
+ return function () {
33076
+ window.removeEventListener('keydown', handleKeyDown);
33077
+ };
33078
+ }, [quickSpells, isBlockedCastingByKeyboard]);
33079
+ return React__default.createElement(List, null, Array.from({
33080
+ length: 4
33081
+ }).map(function (_, i) {
33082
+ var _quickSpells$i, _quickSpells$i2, _quickSpells$i3, _quickSpells$i4, _quickSpells$i5;
33083
+ return React__default.createElement(SpellShortcut, {
33084
+ key: i,
33085
+ onPointerDown: onSpellCast.bind(null, (_quickSpells$i = quickSpells[i]) == null ? void 0 : _quickSpells$i.key),
33086
+ disabled: mana < ((_quickSpells$i2 = quickSpells[i]) == null ? void 0 : _quickSpells$i2.manaCost)
33087
+ }, React__default.createElement("span", {
33088
+ className: "mana"
33089
+ }, ((_quickSpells$i3 = quickSpells[i]) == null ? void 0 : _quickSpells$i3.key) && ((_quickSpells$i4 = quickSpells[i]) == null ? void 0 : _quickSpells$i4.manaCost)), React__default.createElement("span", {
33090
+ className: "magicWords"
33091
+ }, (_quickSpells$i5 = quickSpells[i]) == null ? void 0 : _quickSpells$i5.magicWords.split(' ').map(function (word) {
33092
+ return word[0];
33093
+ })), React__default.createElement("span", {
33094
+ className: "keyboard"
33095
+ }, i + 1));
33096
+ }));
33097
+ };
33098
+ var SpellShortcut = /*#__PURE__*/styled.button.withConfig({
33099
+ displayName: "QuickSpells__SpellShortcut",
33100
+ componentId: "sc-41yq7s-0"
33101
+ })(["width:3rem;height:3rem;background-color:", ";border:2px solid ", ";border-radius:50%;text-transform:uppercase;font-size:0.7rem;font-weight:bold;display:flex;align-items:center;justify-content:center;position:relative;span{pointer-events:none;}.mana{position:absolute;top:-5px;right:0;font-size:0.65rem;color:", ";}.magicWords{margin-top:4px;}.keyboard{position:absolute;bottom:-5px;left:0;font-size:0.65rem;color:", ";}&:hover,&:focus{background-color:", ";}&:active{background-color:", ";}&:disabled{opacity:0.5;}"], uiColors.lightGray, uiColors.darkGray, uiColors.blue, uiColors.yellow, uiColors.darkGray, uiColors.gray);
33102
+ var List = /*#__PURE__*/styled.p.withConfig({
33103
+ displayName: "QuickSpells__List",
33104
+ componentId: "sc-41yq7s-1"
33105
+ })(["width:100%;display:flex;align-items:center;justify-content:center;gap:0.5rem;box-sizing:border-box;margin:0 !important;"]);
33065
33106
 
33066
33107
  var CircularController = function CircularController(_ref) {
33067
- var onActionClick = _ref.onActionClick,
33108
+ var onActionPointerDown = _ref.onActionPointerDown,
33068
33109
  onCancelClick = _ref.onCancelClick,
33069
- onShortcutClick = _ref.onShortcutClick,
33110
+ onSpellClick = _ref.onSpellClick,
33070
33111
  mana = _ref.mana,
33071
- shortcuts = _ref.shortcuts,
33072
- inventory = _ref.inventory,
33073
- atlasIMG = _ref.atlasIMG,
33074
- atlasJSON = _ref.atlasJSON;
33112
+ spells = _ref.spells;
33075
33113
  var onTouchStart = function onTouchStart(e) {
33076
33114
  var target = e.target;
33077
33115
  target == null ? void 0 : target.classList.add('active');
@@ -33083,73 +33121,28 @@ var CircularController = function CircularController(_ref) {
33083
33121
  }, 100);
33084
33122
  action();
33085
33123
  };
33086
- var renderShortcut = function renderShortcut(i) {
33087
- var _shortcuts$i, _shortcuts$i2, _shortcuts$i4, _payload$manaCost;
33088
- var variant = '';
33089
- if (i === 0) variant = 'top';else if (i >= 3) variant = "bottom-" + (i - 3);
33090
- var onShortcutClickBinded = ((_shortcuts$i = shortcuts[i]) == null ? void 0 : _shortcuts$i.type) !== shared.ShortcutType.None ? onShortcutClick.bind(null, i) : function () {};
33091
- if (((_shortcuts$i2 = shortcuts[i]) == null ? void 0 : _shortcuts$i2.type) === shared.ShortcutType.Item) {
33092
- var _shortcuts$i3;
33093
- var _payload = (_shortcuts$i3 = shortcuts[i]) == null ? void 0 : _shortcuts$i3.payload;
33094
- var itemsFromEquipment = [];
33095
- if (inventory) {
33096
- Object.keys(inventory.slots).forEach(function (i) {
33097
- var _inventory$slots$inde;
33098
- var index = parseInt(i);
33099
- if (((_inventory$slots$inde = inventory.slots[index]) == null ? void 0 : _inventory$slots$inde.key) === (_payload == null ? void 0 : _payload.key)) {
33100
- itemsFromEquipment.push(inventory.slots[index]);
33101
- }
33102
- });
33103
- }
33104
- var totalQty = itemsFromEquipment.reduce(function (acc, item) {
33105
- return acc + ((item == null ? void 0 : item.stackQty) || 1);
33106
- }, 0);
33107
- return React__default.createElement(StyledShortcut, {
33108
- key: i,
33109
- onTouchStart: onTouchStart,
33110
- onTouchEnd: onTouchEnd.bind(null, onShortcutClickBinded),
33111
- disabled: false,
33112
- className: variant
33113
- }, _payload && React__default.createElement(SpriteFromAtlas, {
33114
- atlasIMG: atlasIMG,
33115
- atlasJSON: atlasJSON,
33116
- spriteKey: shared.getItemTextureKeyPath({
33117
- key: _payload.texturePath,
33118
- texturePath: _payload.texturePath,
33119
- stackQty: _payload.stackQty || 1
33120
- }, atlasJSON),
33121
- width: 32,
33122
- height: 32,
33123
- imgScale: 1.4,
33124
- imgStyle: {
33125
- left: '4px'
33126
- }
33127
- }), React__default.createElement("span", {
33128
- className: "qty"
33129
- }, totalQty));
33130
- }
33131
- var payload = (_shortcuts$i4 = shortcuts[i]) == null ? void 0 : _shortcuts$i4.payload;
33124
+ return React__default.createElement(ButtonsContainer, null, React__default.createElement(SpellsContainer, null, Array.from({
33125
+ length: 4
33126
+ }).map(function (_, i) {
33127
+ var variant = i === 0 ? 'top' : i === 3 ? 'bottom' : '';
33128
+ var spell = spells[i];
33129
+ var onSpellClickBinded = spell ? onSpellClick.bind(null, spell.key) : function () {};
33132
33130
  return React__default.createElement(StyledShortcut, {
33133
33131
  key: i,
33132
+ disabled: mana < (spell == null ? void 0 : spell.manaCost),
33134
33133
  onTouchStart: onTouchStart,
33135
- onTouchEnd: onTouchEnd.bind(null, onShortcutClickBinded),
33136
- disabled: mana < ((_payload$manaCost = payload == null ? void 0 : payload.manaCost) != null ? _payload$manaCost : 0),
33134
+ onTouchEnd: onTouchEnd.bind(null, onSpellClickBinded),
33137
33135
  className: variant
33138
33136
  }, React__default.createElement("span", {
33139
33137
  className: "mana"
33140
- }, payload && payload.manaCost), React__default.createElement("span", {
33138
+ }, (spell == null ? void 0 : spell.key) && (spell == null ? void 0 : spell.manaCost)), React__default.createElement("span", {
33141
33139
  className: "magicWords"
33142
- }, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
33140
+ }, spell == null ? void 0 : spell.magicWords.split(' ').map(function (word) {
33143
33141
  return word[0];
33144
33142
  })));
33145
- };
33146
- return React__default.createElement(ButtonsContainer, null, React__default.createElement(ShortcutsContainer, null, Array.from({
33147
- length: 6
33148
- }).map(function (_, i) {
33149
- return renderShortcut(i);
33150
33143
  })), React__default.createElement(Button$2, {
33151
33144
  onTouchStart: onTouchStart,
33152
- onTouchEnd: onTouchEnd.bind(null, onActionClick)
33145
+ onTouchEnd: onTouchEnd.bind(null, onActionPointerDown)
33153
33146
  }, React__default.createElement("div", {
33154
33147
  className: "rpgui-icon sword"
33155
33148
  })), React__default.createElement(CancelButton, {
@@ -33160,7 +33153,7 @@ var CircularController = function CircularController(_ref) {
33160
33153
  var Button$2 = /*#__PURE__*/styled.button.withConfig({
33161
33154
  displayName: "CircularController__Button",
33162
33155
  componentId: "sc-1fewf3h-0"
33163
- })(["width:4.3rem;height:4.3rem;background-color:", ";border:2px solid ", ";border-radius:50%;text-transform:uppercase;font-size:0.7rem;font-weight:bold;display:flex;align-items:center;justify-content:center;position:relative;transition:background-color 0.1s;margin-top:-3rem;&.active{background-color:", ";}.sword{transform:rotate(-45deg);height:2.5rem;width:1.9rem;pointer-events:none;}"], uiColors.lightGray, uiColors.darkGray, uiColors.gray);
33156
+ })(["width:4.3rem;height:4.3rem;background-color:", ";border:2px solid ", ";border-radius:50%;text-transform:uppercase;font-size:0.7rem;font-weight:bold;display:flex;align-items:center;justify-content:center;position:relative;transition:background-color 0.1s;&.active{background-color:", ";}.sword{transform:rotate(-45deg);height:2.5rem;width:1.9rem;pointer-events:none;}"], uiColors.lightGray, uiColors.darkGray, uiColors.gray);
33164
33157
  var CancelButton = /*#__PURE__*/styled(Button$2).withConfig({
33165
33158
  displayName: "CircularController__CancelButton",
33166
33159
  componentId: "sc-1fewf3h-1"
@@ -33169,14 +33162,14 @@ var ButtonsContainer = /*#__PURE__*/styled.div.withConfig({
33169
33162
  displayName: "CircularController__ButtonsContainer",
33170
33163
  componentId: "sc-1fewf3h-2"
33171
33164
  })(["display:flex;align-items:center;justify-content:center;gap:0.5rem;"]);
33172
- var ShortcutsContainer = /*#__PURE__*/styled.div.withConfig({
33173
- displayName: "CircularController__ShortcutsContainer",
33165
+ var SpellsContainer = /*#__PURE__*/styled.div.withConfig({
33166
+ displayName: "CircularController__SpellsContainer",
33174
33167
  componentId: "sc-1fewf3h-3"
33175
- })(["display:flex;align-items:center;justify-content:center;gap:0.5rem;flex-direction:column;margin-top:3rem;.top{transform:translate(93%,25%);}.bottom-0{transform:translate(93%,-25%);}.bottom-1{transform:translate(-120%,calc(-5.5rem));}.bottom-2{transform:translate(-30%,calc(-5.5rem - 25%));}"]);
33176
- var StyledShortcut = /*#__PURE__*/styled(SingleShortcut).withConfig({
33168
+ })(["display:flex;align-items:center;justify-content:center;gap:0.4rem;flex-direction:column;.top{transform:translate(93%,25%);}.bottom{transform:translate(93%,-25%);}"]);
33169
+ var StyledShortcut = /*#__PURE__*/styled(SpellShortcut).withConfig({
33177
33170
  displayName: "CircularController__StyledShortcut",
33178
33171
  componentId: "sc-1fewf3h-4"
33179
- })(["width:2.5rem;height:2.5rem;transition:background-color 0.1s;.mana,.qty{font-size:0.5rem;}&:hover,&:focus,&:active{background-color:", ";}&.active{background-color:", ";}"], uiColors.lightGray, uiColors.gray);
33172
+ })(["width:2.5rem;height:2.5rem;transition:background-color 0.1s;.mana{font-size:0.5rem;}&:hover,&:focus,&:active{background-color:", ";}&.active{background-color:", ";}"], uiColors.lightGray, uiColors.gray);
33180
33173
 
33181
33174
  function useOutsideClick(ref, id) {
33182
33175
  React.useEffect(function () {
@@ -33261,8 +33254,7 @@ var DraggableContainer = function DraggableContainer(_ref) {
33261
33254
  width: imgWidth
33262
33255
  }), title)), onCloseButton && React__default.createElement(CloseButton$1, {
33263
33256
  className: "container-close",
33264
- onClick: onCloseButton,
33265
- onTouchStart: onCloseButton
33257
+ onPointerDown: onCloseButton
33266
33258
  }, "X"), children));
33267
33259
  };
33268
33260
  var Container$6 = /*#__PURE__*/styled.div.withConfig({
@@ -33327,12 +33319,7 @@ var Dropdown = function Dropdown(_ref) {
33327
33319
  }, React__default.createElement(DropdownSelect, {
33328
33320
  id: "dropdown-" + dropdownId,
33329
33321
  className: "rpgui-dropdown-imp rpgui-dropdown-imp-header",
33330
- onClick: function onClick() {
33331
- return setOpened(function (prev) {
33332
- return !prev;
33333
- });
33334
- },
33335
- onTouchStart: function onTouchStart() {
33322
+ onPointerDown: function onPointerDown() {
33336
33323
  return setOpened(function (prev) {
33337
33324
  return !prev;
33338
33325
  });
@@ -33343,12 +33330,7 @@ var Dropdown = function Dropdown(_ref) {
33343
33330
  }, options.map(function (option) {
33344
33331
  return React__default.createElement("li", {
33345
33332
  key: option.id,
33346
- onClick: function onClick() {
33347
- setSelectedValue(option.value);
33348
- setSelectedOption(option.option);
33349
- setOpened(false);
33350
- },
33351
- onTouchStart: function onTouchStart() {
33333
+ onPointerDown: function onPointerDown() {
33352
33334
  setSelectedValue(option.value);
33353
33335
  setSelectedOption(option.option);
33354
33336
  setOpened(false);
@@ -33454,10 +33436,7 @@ var CraftBook = function CraftBook(_ref) {
33454
33436
  imgScale: 3,
33455
33437
  grayScale: !option.canCraft
33456
33438
  })), React__default.createElement("div", null, React__default.createElement("div", {
33457
- onClick: function onClick() {
33458
- return handleClick(option.key);
33459
- },
33460
- onTouchStart: function onTouchStart() {
33439
+ onPointerDown: function onPointerDown() {
33461
33440
  return handleClick(option.key);
33462
33441
  }
33463
33442
  }, React__default.createElement("input", {
@@ -33471,15 +33450,9 @@ var CraftBook = function CraftBook(_ref) {
33471
33450
  return handleClick(option.key);
33472
33451
  }
33473
33452
  }), React__default.createElement("label", {
33474
- onClick: function onClick() {
33453
+ onPointerDown: function onPointerDown() {
33475
33454
  handleClick(option.key);
33476
33455
  },
33477
- onTouchStart: function onTouchStart() {
33478
- setIsShown({
33479
- show: true,
33480
- index: index
33481
- });
33482
- },
33483
33456
  style: {
33484
33457
  display: 'flex',
33485
33458
  alignItems: 'center'
@@ -33508,14 +33481,10 @@ var CraftBook = function CraftBook(_ref) {
33508
33481
  })));
33509
33482
  })), React__default.createElement(ButtonWrapper, null, React__default.createElement(Button, {
33510
33483
  buttonType: exports.ButtonTypes.RPGUIButton,
33511
- onClick: onClose,
33512
- onTouchStart: onClose
33484
+ onPointerDown: onClose
33513
33485
  }, "Cancel"), React__default.createElement(Button, {
33514
33486
  buttonType: exports.ButtonTypes.RPGUIButton,
33515
- onClick: function onClick() {
33516
- return onCraftItem(craftItem);
33517
- },
33518
- onTouchStart: function onTouchStart() {
33487
+ onPointerDown: function onPointerDown() {
33519
33488
  return onCraftItem(craftItem);
33520
33489
  }
33521
33490
  }, "Craft")));
@@ -33606,7 +33575,7 @@ var RelativeListMenu = function RelativeListMenu(_ref) {
33606
33575
  }, options.map(function (params, index) {
33607
33576
  return React__default.createElement(ListElement, {
33608
33577
  key: (params == null ? void 0 : params.id) || index,
33609
- onClick: function onClick() {
33578
+ onPointerDown: function onPointerDown() {
33610
33579
  onSelected(params == null ? void 0 : params.id);
33611
33580
  }
33612
33581
  }, (params == null ? void 0 : params.text) || 'No text');
@@ -33752,7 +33721,7 @@ var ItemSlot = /*#__PURE__*/mobxReactLite.observer(function (_ref) {
33752
33721
  slotSpriteMask = _ref.slotSpriteMask,
33753
33722
  _onMouseOver = _ref.onMouseOver,
33754
33723
  _onMouseOut = _ref.onMouseOut,
33755
- onClick = _ref.onClick,
33724
+ onPointerDown = _ref.onPointerDown,
33756
33725
  _onSelected = _ref.onSelected,
33757
33726
  atlasJSON = _ref.atlasJSON,
33758
33727
  atlasIMG = _ref.atlasIMG,
@@ -33765,8 +33734,7 @@ var ItemSlot = /*#__PURE__*/mobxReactLite.observer(function (_ref) {
33765
33734
  checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
33766
33735
  openQuantitySelector = _ref.openQuantitySelector,
33767
33736
  checkIfItemShouldDragEnd = _ref.checkIfItemShouldDragEnd,
33768
- dragScale = _ref.dragScale,
33769
- isSelectingShortcut = _ref.isSelectingShortcut;
33737
+ dragScale = _ref.dragScale;
33770
33738
  var _useState = React.useState(false),
33771
33739
  isTooltipVisible = _useState[0],
33772
33740
  setTooltipVisible = _useState[1];
@@ -33930,14 +33898,12 @@ var ItemSlot = /*#__PURE__*/mobxReactLite.observer(function (_ref) {
33930
33898
  bubbles: true
33931
33899
  });
33932
33900
  (_document$elementFrom = document.elementFromPoint(clientX, clientY)) == null ? void 0 : _document$elementFrom.dispatchEvent(simulatedEvent);
33933
- },
33934
- isSelectingShortcut: isSelectingShortcut && ((item == null ? void 0 : item.type) === shared.ItemType.Consumable || (item == null ? void 0 : item.type) === shared.ItemType.Tool)
33901
+ }
33935
33902
  }, React__default.createElement(Draggable, {
33936
- axis: isSelectingShortcut ? 'none' : 'both',
33937
33903
  defaultClassName: item ? 'draggable' : 'empty-slot',
33938
33904
  scale: dragScale,
33939
33905
  onStop: function onStop(e, data) {
33940
- if (wasDragged && item && !isSelectingShortcut) {
33906
+ if (wasDragged && item) {
33941
33907
  var _e$target;
33942
33908
  //@ts-ignore
33943
33909
  var classes = Array.from((_e$target = e.target) == null ? void 0 : _e$target.classList);
@@ -33975,12 +33941,12 @@ var ItemSlot = /*#__PURE__*/mobxReactLite.observer(function (_ref) {
33975
33941
  }
33976
33942
  }, 100);
33977
33943
  } else if (item) {
33978
- if (!isContextMenuDisabled && !isSelectingShortcut) setIsContextMenuVisible(!isContextMenuVisible);
33979
- onClick(item.type, containerType, item);
33944
+ if (!isContextMenuDisabled) setIsContextMenuVisible(!isContextMenuVisible);
33945
+ onPointerDown(item.type, containerType, item);
33980
33946
  }
33981
33947
  },
33982
33948
  onStart: function onStart() {
33983
- if (!item || isSelectingShortcut) {
33949
+ if (!item) {
33984
33950
  return;
33985
33951
  }
33986
33952
  if (onDragStart) {
@@ -34042,7 +34008,7 @@ var rarityColor = function rarityColor(item) {
34042
34008
  var Container$a = /*#__PURE__*/styled.div.withConfig({
34043
34009
  displayName: "ItemSlot__Container",
34044
34010
  componentId: "sc-l2j5ef-0"
34045
- })(["margin:0.1rem;.sprite-from-atlas-img{position:relative;top:1.5rem;left:1.5rem;border-color:", ";box-shadow:", " inset,", ";}position:relative;&::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) {
34011
+ })(["margin:0.1rem;.sprite-from-atlas-img{position:relative;top:1.5rem;left:1.5rem;border-color:", ";box-shadow:", " inset,", ";}position:relative;"], function (_ref2) {
34046
34012
  var item = _ref2.item;
34047
34013
  return rarityColor(item);
34048
34014
  }, function (_ref3) {
@@ -34051,9 +34017,6 @@ var Container$a = /*#__PURE__*/styled.div.withConfig({
34051
34017
  }, function (_ref4) {
34052
34018
  var item = _ref4.item;
34053
34019
  return "0 0 4px 3px " + rarityColor(item);
34054
- }, function (_ref5) {
34055
- var isSelectingShortcut = _ref5.isSelectingShortcut;
34056
- return isSelectingShortcut ? 'bg-color-change 1s infinite' : 'none';
34057
34020
  });
34058
34021
  var ItemContainer = /*#__PURE__*/styled.div.withConfig({
34059
34022
  displayName: "ItemSlot__ItemContainer",
@@ -34114,7 +34077,7 @@ var EquipmentSet = function EquipmentSet(_ref) {
34114
34077
  onMouseOver: function onMouseOver(event, slotIndex, item) {
34115
34078
  if (_onMouseOver) _onMouseOver(event, slotIndex, item);
34116
34079
  },
34117
- onClick: function onClick(itemType, ContainerType) {
34080
+ onPointerDown: function onPointerDown(itemType, ContainerType) {
34118
34081
  if (onItemClick) onItemClick(itemType, item, ContainerType);
34119
34082
  },
34120
34083
  onSelected: function onSelected(optionId) {
@@ -34164,6 +34127,544 @@ var EquipmentColumn = /*#__PURE__*/styled.div.withConfig({
34164
34127
  componentId: "sc-1wuddg2-1"
34165
34128
  })(["display:flex;justify-content:center;flex-wrap:wrap;flex-direction:column;touch-action:none;"]);
34166
34129
 
34130
+ var IS_MOBILE_OR_TABLET = /*#__PURE__*/shared.isMobileOrTablet();
34131
+
34132
+ var chunkString = function chunkString(str, length) {
34133
+ return str.match(new RegExp('.{1,' + length + '}', 'g'));
34134
+ };
34135
+
34136
+ var DynamicText = function DynamicText(_ref) {
34137
+ var text = _ref.text,
34138
+ onFinish = _ref.onFinish,
34139
+ onStart = _ref.onStart;
34140
+ var _useState = React.useState(''),
34141
+ textState = _useState[0],
34142
+ setTextState = _useState[1];
34143
+ React.useEffect(function () {
34144
+ var i = 0;
34145
+ var interval = setInterval(function () {
34146
+ // on every interval, show one more character
34147
+ if (i === 0) {
34148
+ if (onStart) {
34149
+ onStart();
34150
+ }
34151
+ }
34152
+ if (i < text.length) {
34153
+ setTextState(text.substring(0, i + 1));
34154
+ i++;
34155
+ } else {
34156
+ clearInterval(interval);
34157
+ if (onFinish) {
34158
+ onFinish();
34159
+ }
34160
+ }
34161
+ }, 50);
34162
+ return function () {
34163
+ clearInterval(interval);
34164
+ };
34165
+ }, [text]);
34166
+ return React__default.createElement(TextContainer, null, textState);
34167
+ };
34168
+ var TextContainer = /*#__PURE__*/styled.p.withConfig({
34169
+ displayName: "DynamicText__TextContainer",
34170
+ componentId: "sc-1ggl9nd-0"
34171
+ })(["font-size:0.7rem !important;color:white;text-shadow:1px 1px 0px #000000;letter-spacing:1.2px;word-break:normal;"]);
34172
+
34173
+ var img$6 = 'data:image/gif;base64,R0lGODlhEAAQAPIAAAAAABQYLiw1TUBJc2hvmQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAM9CLrc/lCFGSKYJJP5AhlguDnBMIVgxXgmJapSSp3mKs/pKrT0IMCXUk+2Cgh2oSOnaDz+lswZpSOFUq2KBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAIzhI+py90Bg4OjDrjCELxfFQhQx0mIJkaeaYRp5LJADMdnqXbyOJLYTdKBejjZoRaZJBMFACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAABAAEAAAAjKEj6nL7Y+CDE6OO+QKQ/ifKYEgfR4VddPohQe7lmR0xidNTib65uacYP2AQWGuMlEUAAA7';
34174
+
34175
+ var img$7 = 'data:image/gif;base64,R0lGODlhQAAgAPIAAAAAAA0NDRERESIiIigoKFlZWf///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw5nYW1tYT0wLjQ1NDU0NQAh+QQBFAAAACwAAAAAQAAgAAAD/wi63P4wykmrvTjrzbv/YAgIZGmeaKquakQWcCzPdG3fNukIeO//PQGDBywafcIF8chswpKKZcxApTqvNOiIZi0YsODncFaFlcNOrdTbJVff0/c3Lp/Xs2N37cy2ndt6ZnhKXHdsc4d7VnwyfIxqPWWOXXWLgHSGYoSNbZKVZp2WiJyjg1GFcaClqaqJhasyUAFrh3Cur3KqubWXBQIBAAEDtDeMaEEDAcLEx2gCycvN0jHPysPT09XR2M3a19zH3gTM4EYCBNDD4yzs7e4r48nB6gT19vf4+fr7/P3P8sKGvRtIkMUAeQoCHlzIsKHDhxAjSoTWQJnFixgzatzIsQWjRQYJAAAh/wtJbWFnZU1hZ2ljaw5nYW1tYT0wLjQ1NDU0NQAh+QQBFAAAACwAAAAAQAAgAAAD8Ai63P4wykmrvTjrzbv/YCiOlGCeaKqubMtGZiHPdG3feI6bjqD/wOBPwPAJj0ggcWFMOp+ypaI5M1it0KxNCqDKsAWDdhwt1q5fMPnJ9aJt17g4HafJ3/et+Tzn99V+aThqfTNtcHlhhIBVWG+BdDSHOmiPeHdij3aYhZONf46YkZGanzpSAV6KjaOIpqWtNwIBAAEDqqKKhZuJnHSwAgMBtqo5sGs5wcO3yM01ysTO0gXQzNPN1cXXUNnbyNna3kcmwrW3Lujp6ugD5bbn6/HyLe20Cu/t+fr7/P3+/wCF2VswrKDBgwgTKlzIsCCDBAA7';
34176
+
34177
+ var NPCDialogText = function NPCDialogText(_ref) {
34178
+ var text = _ref.text,
34179
+ onClose = _ref.onClose,
34180
+ onEndStep = _ref.onEndStep,
34181
+ onStartStep = _ref.onStartStep,
34182
+ type = _ref.type;
34183
+ var windowSize = React.useRef([window.innerWidth, window.innerHeight]);
34184
+ function maxCharacters(width) {
34185
+ // Set the font size to 16 pixels
34186
+ var fontSize = 11.2;
34187
+ // Calculate the number of characters that can fit in one line
34188
+ var charactersPerLine = Math.floor(width / 2 / fontSize);
34189
+ // Calculate the number of lines that can fit in the div
34190
+ var linesPerDiv = Math.floor(180 / fontSize);
34191
+ // Calculate the maximum number of characters that can fit in the div
34192
+ var maxCharacters = charactersPerLine * linesPerDiv;
34193
+ // Return the maximum number of characters
34194
+ return Math.round(maxCharacters / 5);
34195
+ }
34196
+ var textChunks = chunkString(text, maxCharacters(windowSize.current[0]));
34197
+ var _useState = React.useState(0),
34198
+ chunkIndex = _useState[0],
34199
+ setChunkIndex = _useState[1];
34200
+ var onHandleSpacePress = function onHandleSpacePress(event) {
34201
+ if (event.code === 'Space') {
34202
+ goToNextStep();
34203
+ }
34204
+ };
34205
+ var goToNextStep = function goToNextStep() {
34206
+ var hasNextChunk = (textChunks == null ? void 0 : textChunks[chunkIndex + 1]) || false;
34207
+ if (hasNextChunk) {
34208
+ setChunkIndex(function (prev) {
34209
+ return prev + 1;
34210
+ });
34211
+ } else {
34212
+ // if there's no more text chunks, close the dialog
34213
+ onClose();
34214
+ }
34215
+ };
34216
+ React.useEffect(function () {
34217
+ document.addEventListener('keydown', onHandleSpacePress);
34218
+ return function () {
34219
+ return document.removeEventListener('keydown', onHandleSpacePress);
34220
+ };
34221
+ }, [chunkIndex]);
34222
+ var _useState2 = React.useState(false),
34223
+ showGoNextIndicator = _useState2[0],
34224
+ setShowGoNextIndicator = _useState2[1];
34225
+ return React__default.createElement(Container$b, null, React__default.createElement(DynamicText, {
34226
+ text: (textChunks == null ? void 0 : textChunks[chunkIndex]) || '',
34227
+ onFinish: function onFinish() {
34228
+ setShowGoNextIndicator(true);
34229
+ onEndStep && onEndStep();
34230
+ },
34231
+ onStart: function onStart() {
34232
+ setShowGoNextIndicator(false);
34233
+ onStartStep && onStartStep();
34234
+ }
34235
+ }), showGoNextIndicator && React__default.createElement(PressSpaceIndicator, {
34236
+ right: type === exports.NPCDialogType.TextOnly ? '1rem' : '10.5rem',
34237
+ src: IS_MOBILE_OR_TABLET ? img$6 : img$7,
34238
+ onPointerDown: function onPointerDown() {
34239
+ goToNextStep();
34240
+ }
34241
+ }));
34242
+ };
34243
+ var Container$b = /*#__PURE__*/styled.div.withConfig({
34244
+ displayName: "NPCDialogText__Container",
34245
+ componentId: "sc-1cxkdh9-0"
34246
+ })([""]);
34247
+ var PressSpaceIndicator = /*#__PURE__*/styled.img.withConfig({
34248
+ displayName: "NPCDialogText__PressSpaceIndicator",
34249
+ componentId: "sc-1cxkdh9-1"
34250
+ })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref2) {
34251
+ var right = _ref2.right;
34252
+ return right;
34253
+ });
34254
+
34255
+ //@ts-ignore
34256
+ var useEventListener = function useEventListener(type, handler, el) {
34257
+ if (el === void 0) {
34258
+ el = window;
34259
+ }
34260
+ var savedHandler = React__default.useRef();
34261
+ React__default.useEffect(function () {
34262
+ savedHandler.current = handler;
34263
+ }, [handler]);
34264
+ React__default.useEffect(function () {
34265
+ //@ts-ignore
34266
+ var listener = function listener(e) {
34267
+ return savedHandler.current(e);
34268
+ };
34269
+ el.addEventListener(type, listener);
34270
+ return function () {
34271
+ el.removeEventListener(type, listener);
34272
+ };
34273
+ }, [type, el]);
34274
+ };
34275
+
34276
+ var QuestionDialog = function QuestionDialog(_ref) {
34277
+ var questions = _ref.questions,
34278
+ answers = _ref.answers,
34279
+ onClose = _ref.onClose;
34280
+ var _useState = React.useState(questions[0]),
34281
+ currentQuestion = _useState[0],
34282
+ setCurrentQuestion = _useState[1];
34283
+ var _useState2 = React.useState(false),
34284
+ canShowAnswers = _useState2[0],
34285
+ setCanShowAnswers = _useState2[1];
34286
+ var onGetFirstAnswer = function onGetFirstAnswer() {
34287
+ if (!currentQuestion.answerIds || currentQuestion.answerIds.length === 0) {
34288
+ return null;
34289
+ }
34290
+ var firstAnswerId = currentQuestion.answerIds[0];
34291
+ return answers.find(function (answer) {
34292
+ return answer.id === firstAnswerId;
34293
+ });
34294
+ };
34295
+ var _useState3 = React.useState(onGetFirstAnswer()),
34296
+ currentAnswer = _useState3[0],
34297
+ setCurrentAnswer = _useState3[1];
34298
+ React.useEffect(function () {
34299
+ setCurrentAnswer(onGetFirstAnswer());
34300
+ }, [currentQuestion]);
34301
+ var onGetAnswers = function onGetAnswers(answerIds) {
34302
+ return answerIds.map(function (answerId) {
34303
+ return answers.find(function (answer) {
34304
+ return answer.id === answerId;
34305
+ });
34306
+ });
34307
+ };
34308
+ var onKeyPress = function onKeyPress(e) {
34309
+ switch (e.key) {
34310
+ case 'ArrowDown':
34311
+ // select next answer, if any.
34312
+ // if no next answer, select first answer
34313
+ // const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(
34314
+ // (answer) => answer?.id === currentAnswer!.id + 1
34315
+ // );
34316
+ var nextAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
34317
+ return (answer == null ? void 0 : answer.id) === currentAnswer.id + 1;
34318
+ });
34319
+ var nextAnswerID = currentQuestion.answerIds[nextAnswerIndex];
34320
+ var nextAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
34321
+ return (answer == null ? void 0 : answer.id) === nextAnswerID;
34322
+ });
34323
+ setCurrentAnswer(nextAnswer || onGetFirstAnswer());
34324
+ break;
34325
+ case 'ArrowUp':
34326
+ // select previous answer, if any.
34327
+ // if no previous answer, select last answer
34328
+ var previousAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
34329
+ return (answer == null ? void 0 : answer.id) === currentAnswer.id - 1;
34330
+ });
34331
+ var previousAnswerID = currentQuestion.answerIds && currentQuestion.answerIds[previousAnswerIndex];
34332
+ var previousAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
34333
+ return (answer == null ? void 0 : answer.id) === previousAnswerID;
34334
+ });
34335
+ if (previousAnswer) {
34336
+ setCurrentAnswer(previousAnswer);
34337
+ } else {
34338
+ setCurrentAnswer(onGetAnswers(currentQuestion.answerIds).pop());
34339
+ }
34340
+ break;
34341
+ case 'Enter':
34342
+ setCanShowAnswers(false);
34343
+ if (!(currentAnswer != null && currentAnswer.nextQuestionId)) {
34344
+ onClose();
34345
+ return;
34346
+ } else {
34347
+ setCurrentQuestion(questions.find(function (question) {
34348
+ return question.id === currentAnswer.nextQuestionId;
34349
+ }));
34350
+ }
34351
+ break;
34352
+ }
34353
+ };
34354
+ useEventListener('keydown', onKeyPress);
34355
+ var onAnswerClick = function onAnswerClick(answer) {
34356
+ setCanShowAnswers(false);
34357
+ if (answer.nextQuestionId) {
34358
+ // if there is a next question, go to it
34359
+ setCurrentQuestion(questions.find(function (question) {
34360
+ return question.id === answer.nextQuestionId;
34361
+ }));
34362
+ } else {
34363
+ // else, finish dialog!
34364
+ onClose();
34365
+ }
34366
+ };
34367
+ var onRenderCurrentAnswers = function onRenderCurrentAnswers() {
34368
+ var answerIds = currentQuestion.answerIds;
34369
+ if (!answerIds) {
34370
+ return null;
34371
+ }
34372
+ var answers = onGetAnswers(answerIds);
34373
+ if (!answers) {
34374
+ return null;
34375
+ }
34376
+ return answers.map(function (answer) {
34377
+ var isSelected = (currentAnswer == null ? void 0 : currentAnswer.id) === (answer == null ? void 0 : answer.id);
34378
+ var selectedColor = isSelected ? 'yellow' : 'white';
34379
+ if (answer) {
34380
+ return React__default.createElement(AnswerRow, {
34381
+ key: "answer_" + answer.id
34382
+ }, React__default.createElement(AnswerSelectedIcon, {
34383
+ color: selectedColor
34384
+ }, isSelected ? 'X' : null), React__default.createElement(Answer, {
34385
+ key: answer.id,
34386
+ onPointerDown: function onPointerDown() {
34387
+ return onAnswerClick(answer);
34388
+ },
34389
+ color: selectedColor
34390
+ }, answer.text));
34391
+ }
34392
+ return null;
34393
+ });
34394
+ };
34395
+ return React__default.createElement(Container$c, null, React__default.createElement(QuestionContainer, null, React__default.createElement(DynamicText, {
34396
+ text: currentQuestion.text,
34397
+ onStart: function onStart() {
34398
+ return setCanShowAnswers(false);
34399
+ },
34400
+ onFinish: function onFinish() {
34401
+ return setCanShowAnswers(true);
34402
+ }
34403
+ })), canShowAnswers && React__default.createElement(AnswersContainer, null, onRenderCurrentAnswers()));
34404
+ };
34405
+ var Container$c = /*#__PURE__*/styled.div.withConfig({
34406
+ displayName: "QuestionDialog__Container",
34407
+ componentId: "sc-bxc5u0-0"
34408
+ })(["display:flex;word-break:break-all;box-sizing:border-box;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;"]);
34409
+ var QuestionContainer = /*#__PURE__*/styled.div.withConfig({
34410
+ displayName: "QuestionDialog__QuestionContainer",
34411
+ componentId: "sc-bxc5u0-1"
34412
+ })(["flex:100%;width:100%;"]);
34413
+ var AnswersContainer = /*#__PURE__*/styled.div.withConfig({
34414
+ displayName: "QuestionDialog__AnswersContainer",
34415
+ componentId: "sc-bxc5u0-2"
34416
+ })(["flex:100%;"]);
34417
+ var Answer = /*#__PURE__*/styled.p.withConfig({
34418
+ displayName: "QuestionDialog__Answer",
34419
+ componentId: "sc-bxc5u0-3"
34420
+ })(["flex:auto;color:", " !important;font-size:0.65rem !important;background:inherit;border:none;"], function (props) {
34421
+ return props.color;
34422
+ });
34423
+ var AnswerSelectedIcon = /*#__PURE__*/styled.span.withConfig({
34424
+ displayName: "QuestionDialog__AnswerSelectedIcon",
34425
+ componentId: "sc-bxc5u0-4"
34426
+ })(["flex:5% 0 0;color:", " !important;"], function (props) {
34427
+ return props.color;
34428
+ });
34429
+ var AnswerRow = /*#__PURE__*/styled.div.withConfig({
34430
+ displayName: "QuestionDialog__AnswerRow",
34431
+ componentId: "sc-bxc5u0-5"
34432
+ })(["display:flex;flex-wrap:wrap;justify-content:center;align-items:center;margin-bottom:0.5rem;height:22px;p{line-height:unset;margin-top:0;margin-bottom:0rem;}"]);
34433
+
34434
+ var img$8 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAP1BMVEUAAAA7FyVxQTsUEBPj5v////+5v/tCJDOOUlIiHBr1oJfptaO6dWr61rhzFy1bMTjoanMUNGQoXMQkn97+88DQ3IhAAAAAAXRSTlMAQObYZgAAAAFiS0dEBfhv6ccAAAAHdElNRQfmAw4VOBC7c5LYAAABM0lEQVQ4y3XRi5KDIAwFUAUkbrBgpP//rZsHVHQ009qZ3tPboNN0zmwzvcw8O5sX4y0NOg/Et3jRCXF+ziULorjkOQ9gE24dvuUAzq08DiCO4pe3WN7zCP56vmpubBReQYC11YPS86ySxxCsAABTSgjb5m4g8nfbxvFHBkH2OEEvAItVuCuIsgGgl+Gcr7kDXxhEAx55A2SQEEeQeZwUaIP8Tbo05B0RFPhItAjgj1w6cDnhLluDj+Egkh3pCCP4pKQAw1IPO0W9Nti5gW9RP2dKA3BZd2Dw+baYX+Nt4GM00O4S3kEpF6Alb2Bv4LeC3kkGfAW0/p0RPoJVKr63ghHsKuRh5DIUKOAlGOwrtt9fQekAEfmhZslHUDoglB0zjfkJigN7UnTQQ4GBWomoVhEN/AOPSBh38gy+fwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wMy0xNFQyMTo1NTo1MSswMDowMJcc0eEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDMtMTRUMjE6NTU6NTErMDA6MDDmQWldAAAAAElFTkSuQmCC';
34435
+
34436
+ (function (NPCDialogType) {
34437
+ NPCDialogType["TextOnly"] = "TextOnly";
34438
+ NPCDialogType["TextAndThumbnail"] = "TextAndThumbnail";
34439
+ })(exports.NPCDialogType || (exports.NPCDialogType = {}));
34440
+ var NPCDialog = function NPCDialog(_ref) {
34441
+ var text = _ref.text,
34442
+ type = _ref.type,
34443
+ _onClose = _ref.onClose,
34444
+ imagePath = _ref.imagePath,
34445
+ _ref$isQuestionDialog = _ref.isQuestionDialog,
34446
+ isQuestionDialog = _ref$isQuestionDialog === void 0 ? false : _ref$isQuestionDialog,
34447
+ questions = _ref.questions,
34448
+ answers = _ref.answers;
34449
+ return React__default.createElement(RPGUIContainer, {
34450
+ type: exports.RPGUIContainerTypes.FramedGold,
34451
+ width: isQuestionDialog ? '600px' : '80%',
34452
+ height: '180px'
34453
+ }, isQuestionDialog && questions && answers ? React__default.createElement(React__default.Fragment, null, React__default.createElement(TextContainer$1, {
34454
+ flex: type === exports.NPCDialogType.TextAndThumbnail ? '70%' : '100%'
34455
+ }, React__default.createElement(QuestionDialog, {
34456
+ questions: questions,
34457
+ answers: answers,
34458
+ onClose: function onClose() {
34459
+ if (_onClose) {
34460
+ _onClose();
34461
+ }
34462
+ }
34463
+ })), type === exports.NPCDialogType.TextAndThumbnail && React__default.createElement(ThumbnailContainer, null, React__default.createElement(NPCThumbnail, {
34464
+ src: imagePath || img$8
34465
+ }))) : React__default.createElement(React__default.Fragment, null, React__default.createElement(Container$d, null, React__default.createElement(TextContainer$1, {
34466
+ flex: type === exports.NPCDialogType.TextAndThumbnail ? '70%' : '100%'
34467
+ }, React__default.createElement(NPCDialogText, {
34468
+ type: type,
34469
+ text: text || 'No text provided.',
34470
+ onClose: function onClose() {
34471
+ if (_onClose) {
34472
+ _onClose();
34473
+ }
34474
+ }
34475
+ })), type === exports.NPCDialogType.TextAndThumbnail && React__default.createElement(ThumbnailContainer, null, React__default.createElement(NPCThumbnail, {
34476
+ src: imagePath || img$8
34477
+ })))));
34478
+ };
34479
+ var Container$d = /*#__PURE__*/styled.div.withConfig({
34480
+ displayName: "NPCDialog__Container",
34481
+ componentId: "sc-1b4aw74-0"
34482
+ })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
34483
+ var TextContainer$1 = /*#__PURE__*/styled.div.withConfig({
34484
+ displayName: "NPCDialog__TextContainer",
34485
+ componentId: "sc-1b4aw74-1"
34486
+ })(["flex:", " 0 0;width:355px;"], function (_ref2) {
34487
+ var flex = _ref2.flex;
34488
+ return flex;
34489
+ });
34490
+ var ThumbnailContainer = /*#__PURE__*/styled.div.withConfig({
34491
+ displayName: "NPCDialog__ThumbnailContainer",
34492
+ componentId: "sc-1b4aw74-2"
34493
+ })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
34494
+ var NPCThumbnail = /*#__PURE__*/styled.img.withConfig({
34495
+ displayName: "NPCDialog__NPCThumbnail",
34496
+ componentId: "sc-1b4aw74-3"
34497
+ })(["image-rendering:pixelated;height:128px;width:128px;"]);
34498
+
34499
+ (function (ImgSide) {
34500
+ ImgSide["right"] = "right";
34501
+ ImgSide["left"] = "left";
34502
+ })(exports.ImgSide || (exports.ImgSide = {}));
34503
+ var NPCMultiDialog = function NPCMultiDialog(_ref) {
34504
+ var _textAndTypeArray$sli;
34505
+ var _onClose = _ref.onClose,
34506
+ textAndTypeArray = _ref.textAndTypeArray;
34507
+ var _useState = React.useState(false),
34508
+ showGoNextIndicator = _useState[0],
34509
+ setShowGoNextIndicator = _useState[1];
34510
+ var _useState2 = React.useState(0),
34511
+ slide = _useState2[0],
34512
+ setSlide = _useState2[1];
34513
+ var onHandleSpacePress = function onHandleSpacePress(event) {
34514
+ if (event.code === 'Space') {
34515
+ if (slide < (textAndTypeArray == null ? void 0 : textAndTypeArray.length) - 1) {
34516
+ setSlide(function (prev) {
34517
+ return prev + 1;
34518
+ });
34519
+ } else {
34520
+ // if there's no more text chunks, close the dialog
34521
+ _onClose();
34522
+ }
34523
+ }
34524
+ };
34525
+ React.useEffect(function () {
34526
+ document.addEventListener('keydown', onHandleSpacePress);
34527
+ return function () {
34528
+ return document.removeEventListener('keydown', onHandleSpacePress);
34529
+ };
34530
+ }, [slide]);
34531
+ return React__default.createElement(RPGUIContainer, {
34532
+ type: exports.RPGUIContainerTypes.FramedGold,
34533
+ width: '50%',
34534
+ height: '180px'
34535
+ }, React__default.createElement(React__default.Fragment, null, React__default.createElement(Container$e, null, ((_textAndTypeArray$sli = textAndTypeArray[slide]) == null ? void 0 : _textAndTypeArray$sli.imageSide) === 'right' && React__default.createElement(React__default.Fragment, null, React__default.createElement(TextContainer$2, {
34536
+ flex: '70%'
34537
+ }, React__default.createElement(NPCDialogText, {
34538
+ onStartStep: function onStartStep() {
34539
+ return setShowGoNextIndicator(false);
34540
+ },
34541
+ onEndStep: function onEndStep() {
34542
+ return setShowGoNextIndicator(true);
34543
+ },
34544
+ text: textAndTypeArray[slide].text || 'No text provided.',
34545
+ onClose: function onClose() {
34546
+ if (_onClose) {
34547
+ _onClose();
34548
+ }
34549
+ }
34550
+ })), React__default.createElement(ThumbnailContainer$1, null, React__default.createElement(NPCThumbnail$1, {
34551
+ src: textAndTypeArray[slide].imagePath || img$8
34552
+ })), showGoNextIndicator && React__default.createElement(PressSpaceIndicator$1, {
34553
+ right: '10.5rem',
34554
+ src: img$7
34555
+ })), textAndTypeArray[slide].imageSide === 'left' && React__default.createElement(React__default.Fragment, null, React__default.createElement(ThumbnailContainer$1, null, React__default.createElement(NPCThumbnail$1, {
34556
+ src: textAndTypeArray[slide].imagePath || img$8
34557
+ })), React__default.createElement(TextContainer$2, {
34558
+ flex: '70%'
34559
+ }, React__default.createElement(NPCDialogText, {
34560
+ onStartStep: function onStartStep() {
34561
+ return setShowGoNextIndicator(false);
34562
+ },
34563
+ onEndStep: function onEndStep() {
34564
+ return setShowGoNextIndicator(true);
34565
+ },
34566
+ text: textAndTypeArray[slide].text || 'No text provided.',
34567
+ onClose: function onClose() {
34568
+ if (_onClose) {
34569
+ _onClose();
34570
+ }
34571
+ }
34572
+ })), showGoNextIndicator && React__default.createElement(PressSpaceIndicator$1, {
34573
+ right: '1rem',
34574
+ src: img$7
34575
+ }))), ")"));
34576
+ };
34577
+ var Container$e = /*#__PURE__*/styled.div.withConfig({
34578
+ displayName: "NPCMultiDialog__Container",
34579
+ componentId: "sc-rvu5wg-0"
34580
+ })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
34581
+ var TextContainer$2 = /*#__PURE__*/styled.div.withConfig({
34582
+ displayName: "NPCMultiDialog__TextContainer",
34583
+ componentId: "sc-rvu5wg-1"
34584
+ })(["flex:", " 0 0;width:355px;"], function (_ref2) {
34585
+ var flex = _ref2.flex;
34586
+ return flex;
34587
+ });
34588
+ var ThumbnailContainer$1 = /*#__PURE__*/styled.div.withConfig({
34589
+ displayName: "NPCMultiDialog__ThumbnailContainer",
34590
+ componentId: "sc-rvu5wg-2"
34591
+ })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
34592
+ var NPCThumbnail$1 = /*#__PURE__*/styled.img.withConfig({
34593
+ displayName: "NPCMultiDialog__NPCThumbnail",
34594
+ componentId: "sc-rvu5wg-3"
34595
+ })(["image-rendering:pixelated;height:128px;width:128px;"]);
34596
+ var PressSpaceIndicator$1 = /*#__PURE__*/styled.img.withConfig({
34597
+ displayName: "NPCMultiDialog__PressSpaceIndicator",
34598
+ componentId: "sc-rvu5wg-4"
34599
+ })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref3) {
34600
+ var right = _ref3.right;
34601
+ return right;
34602
+ });
34603
+
34604
+ var HistoryDialog = function HistoryDialog(_ref) {
34605
+ var backgroundImgPath = _ref.backgroundImgPath,
34606
+ fullCoverBackground = _ref.fullCoverBackground,
34607
+ questions = _ref.questions,
34608
+ answers = _ref.answers,
34609
+ text = _ref.text,
34610
+ imagePath = _ref.imagePath,
34611
+ textAndTypeArray = _ref.textAndTypeArray,
34612
+ onClose = _ref.onClose;
34613
+ var _useState = React.useState(0),
34614
+ img = _useState[0],
34615
+ setImage = _useState[1];
34616
+ var onHandleSpacePress = function onHandleSpacePress(event) {
34617
+ if (event.code === 'Space') {
34618
+ if (img < (backgroundImgPath == null ? void 0 : backgroundImgPath.length) - 1) {
34619
+ setImage(function (prev) {
34620
+ return prev + 1;
34621
+ });
34622
+ } else {
34623
+ // if there's no more text chunks, close the dialog
34624
+ onClose();
34625
+ }
34626
+ }
34627
+ };
34628
+ React.useEffect(function () {
34629
+ document.addEventListener('keydown', onHandleSpacePress);
34630
+ return function () {
34631
+ return document.removeEventListener('keydown', onHandleSpacePress);
34632
+ };
34633
+ }, [backgroundImgPath]);
34634
+ return React__default.createElement(BackgroundContainer, {
34635
+ imgPath: backgroundImgPath[img],
34636
+ fullImg: fullCoverBackground
34637
+ }, React__default.createElement(DialogContainer, null, textAndTypeArray ? React__default.createElement(NPCMultiDialog, {
34638
+ textAndTypeArray: textAndTypeArray,
34639
+ onClose: onClose
34640
+ }) : questions && answers ? React__default.createElement(QuestionDialog, {
34641
+ questions: questions,
34642
+ answers: answers,
34643
+ onClose: onClose
34644
+ }) : text && imagePath ? React__default.createElement(NPCDialog, {
34645
+ text: text,
34646
+ imagePath: imagePath,
34647
+ onClose: onClose,
34648
+ type: exports.NPCDialogType.TextAndThumbnail
34649
+ }) : React__default.createElement(NPCDialog, {
34650
+ text: text,
34651
+ onClose: onClose,
34652
+ type: exports.NPCDialogType.TextOnly
34653
+ })));
34654
+ };
34655
+ var BackgroundContainer = /*#__PURE__*/styled.div.withConfig({
34656
+ displayName: "HistoryDialog__BackgroundContainer",
34657
+ componentId: "sc-u6oe75-0"
34658
+ })(["width:100%;height:100%;background-image:url(", ");background-size:", ";display:flex;justify-content:space-evenly;align-items:center;"], function (props) {
34659
+ return props.imgPath;
34660
+ }, function (props) {
34661
+ return props.imgPath ? 'cover' : 'auto';
34662
+ });
34663
+ var DialogContainer = /*#__PURE__*/styled.div.withConfig({
34664
+ displayName: "HistoryDialog__DialogContainer",
34665
+ componentId: "sc-u6oe75-1"
34666
+ })(["display:flex;justify-content:center;padding-top:200px;"]);
34667
+
34167
34668
  var SlotsContainer = function SlotsContainer(_ref) {
34168
34669
  var children = _ref.children,
34169
34670
  title = _ref.title,
@@ -34179,8 +34680,8 @@ var SlotsContainer = function SlotsContainer(_ref) {
34179
34680
  onClose();
34180
34681
  }
34181
34682
  },
34182
- width: "400px",
34183
- cancelDrag: ".item-container-body, #shortcuts_list",
34683
+ width: "330px",
34684
+ cancelDrag: ".item-container-body",
34184
34685
  onPositionChange: function onPositionChange(_ref2) {
34185
34686
  var x = _ref2.x,
34186
34687
  y = _ref2.y;
@@ -34289,8 +34790,7 @@ var ItemQuantitySelector = function ItemQuantitySelector(_ref) {
34289
34790
  width: "25rem"
34290
34791
  }, React__default.createElement(CloseButton$2, {
34291
34792
  className: "container-close",
34292
- onClick: onClose,
34293
- onTouchStart: onClose
34793
+ onPointerDown: onClose
34294
34794
  }, "X"), React__default.createElement("h2", null, "Select quantity to move"), React__default.createElement(StyledForm, {
34295
34795
  style: {
34296
34796
  width: '100%'
@@ -34351,72 +34851,6 @@ var CloseButton$2 = /*#__PURE__*/styled.div.withConfig({
34351
34851
  componentId: "sc-yfdtpn-3"
34352
34852
  })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:0.8rem;"]);
34353
34853
 
34354
- var ShortcutsSetter = function ShortcutsSetter(_ref) {
34355
- var setSettingShortcutIndex = _ref.setSettingShortcutIndex,
34356
- settingShortcutIndex = _ref.settingShortcutIndex,
34357
- shortcuts = _ref.shortcuts,
34358
- removeShortcut = _ref.removeShortcut,
34359
- atlasJSON = _ref.atlasJSON,
34360
- atlasIMG = _ref.atlasIMG;
34361
- var getContent = function getContent(index) {
34362
- var _shortcuts$index, _shortcuts$index3;
34363
- if (((_shortcuts$index = shortcuts[index]) == null ? void 0 : _shortcuts$index.type) === shared.ShortcutType.Item) {
34364
- var _shortcuts$index2;
34365
- var _payload = (_shortcuts$index2 = shortcuts[index]) == null ? void 0 : _shortcuts$index2.payload;
34366
- if (!_payload) return null;
34367
- return React__default.createElement(SpriteFromAtlas, {
34368
- atlasIMG: atlasIMG,
34369
- atlasJSON: atlasJSON,
34370
- spriteKey: shared.getItemTextureKeyPath({
34371
- key: _payload.texturePath,
34372
- texturePath: _payload.texturePath,
34373
- stackQty: _payload.stackQty || 1
34374
- }, atlasJSON),
34375
- width: 32,
34376
- height: 32,
34377
- imgScale: 1.6,
34378
- imgStyle: {
34379
- left: '5px'
34380
- }
34381
- });
34382
- }
34383
- var payload = (_shortcuts$index3 = shortcuts[index]) == null ? void 0 : _shortcuts$index3.payload;
34384
- return React__default.createElement("span", null, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
34385
- return word[0];
34386
- }));
34387
- };
34388
- return React__default.createElement(Container$b, null, React__default.createElement("p", null, "Shortcuts:"), React__default.createElement(List, {
34389
- id: "shortcuts_list"
34390
- }, Array.from({
34391
- length: 6
34392
- }).map(function (_, i) {
34393
- return React__default.createElement(Shortcut, {
34394
- key: i,
34395
- onClick: function onClick() {
34396
- removeShortcut(i);
34397
- if (!shortcuts[i] || shortcuts[i].type === shared.ShortcutType.None) setSettingShortcutIndex(i);
34398
- },
34399
- disabled: settingShortcutIndex !== -1 && settingShortcutIndex !== i,
34400
- isBeingSet: settingShortcutIndex === i
34401
- }, getContent(i));
34402
- })));
34403
- };
34404
- var Container$b = /*#__PURE__*/styled.div.withConfig({
34405
- displayName: "ShortcutsSetter__Container",
34406
- componentId: "sc-xuouuf-0"
34407
- })(["p{margin:0;margin-left:0.5rem;}"]);
34408
- var Shortcut = /*#__PURE__*/styled.button.withConfig({
34409
- displayName: "ShortcutsSetter__Shortcut",
34410
- componentId: "sc-xuouuf-1"
34411
- })(["width:2.6rem;height:2.6rem;background-color:", ";border:2px solid ", ";border-radius:50%;text-transform:uppercase;font-size:0.7rem;font-weight:bold;display:flex;align-items:center;justify-content:center;span{margin-top:4px;}&:hover,&:focus{background-color:", ";}&:active{background-color:", ";}&:disabled{opacity:0.5;}"], uiColors.lightGray, function (_ref2) {
34412
- var isBeingSet = _ref2.isBeingSet;
34413
- return isBeingSet ? uiColors.yellow : uiColors.darkGray;
34414
- }, uiColors.darkGray, uiColors.gray);
34415
- var List = /*#__PURE__*/styled.div.withConfig({
34416
- displayName: "ShortcutsSetter__List",
34417
- componentId: "sc-xuouuf-2"
34418
- })(["width:100%;display:flex;align-items:center;gap:0.5rem;padding-bottom:0.5rem;padding-left:0.5rem;box-sizing:border-box;margin:0 !important;"]);
34419
-
34420
34854
  var ItemContainer$1 = function ItemContainer(_ref) {
34421
34855
  var itemContainer = _ref.itemContainer,
34422
34856
  onClose = _ref.onClose,
@@ -34435,10 +34869,7 @@ var ItemContainer$1 = function ItemContainer(_ref) {
34435
34869
  checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
34436
34870
  initialPosition = _ref.initialPosition,
34437
34871
  checkIfItemShouldDragEnd = _ref.checkIfItemShouldDragEnd,
34438
- dragScale = _ref.dragScale,
34439
- shortcuts = _ref.shortcuts,
34440
- setItemShortcut = _ref.setItemShortcut,
34441
- removeShortcut = _ref.removeShortcut;
34872
+ dragScale = _ref.dragScale;
34442
34873
  var _useState = React.useState({
34443
34874
  isOpen: false,
34444
34875
  maxQuantity: 1,
@@ -34446,9 +34877,6 @@ var ItemContainer$1 = function ItemContainer(_ref) {
34446
34877
  }),
34447
34878
  quantitySelect = _useState[0],
34448
34879
  setQuantitySelect = _useState[1];
34449
- var _useState2 = React.useState(-1),
34450
- settingShortcutIndex = _useState2[0],
34451
- setSettingShortcutIndex = _useState2[1];
34452
34880
  var onRenderSlots = function onRenderSlots() {
34453
34881
  var slots = [];
34454
34882
  for (var i = 0; i < itemContainer.slotQty; i++) {
@@ -34462,13 +34890,8 @@ var ItemContainer$1 = function ItemContainer(_ref) {
34462
34890
  onMouseOver: function onMouseOver(event, slotIndex, item) {
34463
34891
  if (_onMouseOver) _onMouseOver(event, slotIndex, item);
34464
34892
  },
34465
- onClick: function onClick(itemType, containerType, item) {
34466
- if (settingShortcutIndex !== -1) {
34467
- setSettingShortcutIndex(-1);
34468
- if (itemType === shared.ItemType.Consumable || itemType === shared.ItemType.Tool) {
34469
- setItemShortcut == null ? void 0 : setItemShortcut(item.key, settingShortcutIndex);
34470
- }
34471
- } else if (onItemClick) onItemClick(item, itemType, containerType);
34893
+ onPointerDown: function onPointerDown(ItemType, ContainerType, item) {
34894
+ if (onItemClick) onItemClick(item, ItemType, ContainerType);
34472
34895
  },
34473
34896
  onSelected: function onSelected(optionId, item) {
34474
34897
  if (_onSelected) _onSelected(optionId, item);
@@ -34496,8 +34919,7 @@ var ItemContainer$1 = function ItemContainer(_ref) {
34496
34919
  if (_onOutsideDrop) _onOutsideDrop(item, position);
34497
34920
  },
34498
34921
  atlasIMG: atlasIMG,
34499
- atlasJSON: atlasJSON,
34500
- isSelectingShortcut: settingShortcutIndex !== -1
34922
+ atlasJSON: atlasJSON
34501
34923
  }));
34502
34924
  }
34503
34925
  return slots;
@@ -34506,14 +34928,7 @@ var ItemContainer$1 = function ItemContainer(_ref) {
34506
34928
  title: itemContainer.name || 'Container',
34507
34929
  onClose: onClose,
34508
34930
  initialPosition: initialPosition
34509
- }, type === shared.ItemContainerType.Inventory && shortcuts && removeShortcut && React__default.createElement(ShortcutsSetter, {
34510
- setSettingShortcutIndex: setSettingShortcutIndex,
34511
- settingShortcutIndex: settingShortcutIndex,
34512
- shortcuts: shortcuts,
34513
- removeShortcut: removeShortcut,
34514
- atlasIMG: atlasIMG,
34515
- atlasJSON: atlasJSON
34516
- }), React__default.createElement(ItemsContainer, {
34931
+ }, React__default.createElement(ItemsContainer, {
34517
34932
  className: "item-container-body"
34518
34933
  }, onRenderSlots())), quantitySelect.isOpen && React__default.createElement(QuantitySelectorContainer, null, React__default.createElement(ItemQuantitySelector, {
34519
34934
  quantity: quantitySelect.maxQuantity,
@@ -34538,7 +34953,7 @@ var ItemContainer$1 = function ItemContainer(_ref) {
34538
34953
  var ItemsContainer = /*#__PURE__*/styled.div.withConfig({
34539
34954
  displayName: "ItemContainer__ItemsContainer",
34540
34955
  componentId: "sc-15y5p9l-0"
34541
- })(["display:flex;justify-content:center;flex-wrap:wrap;"]);
34956
+ })(["max-width:280px;display:flex;justify-content:center;flex-wrap:wrap;"]);
34542
34957
  var QuantitySelectorContainer = /*#__PURE__*/styled.div.withConfig({
34543
34958
  displayName: "ItemContainer__QuantitySelectorContainer",
34544
34959
  componentId: "sc-15y5p9l-1"
@@ -34592,7 +35007,7 @@ var ItemSelector = function ItemSelector(_ref) {
34592
35007
  value: option.name,
34593
35008
  name: "test"
34594
35009
  }), React__default.createElement("label", {
34595
- onClick: handleClick,
35010
+ onPointerDown: handleClick,
34596
35011
  style: {
34597
35012
  display: 'flex',
34598
35013
  alignItems: 'center'
@@ -34600,7 +35015,7 @@ var ItemSelector = function ItemSelector(_ref) {
34600
35015
  }, option.name, " ", React__default.createElement("br", null), option.description)));
34601
35016
  })), React__default.createElement(ButtonWrapper$1, null, React__default.createElement(Button, {
34602
35017
  buttonType: exports.ButtonTypes.RPGUIButton,
34603
- onClick: onClose
35018
+ onPointerDown: onClose
34604
35019
  }, "Cancel"), React__default.createElement(Button, {
34605
35020
  buttonType: exports.ButtonTypes.RPGUIButton
34606
35021
  }, "Select")));
@@ -34635,7 +35050,7 @@ var ListMenu = function ListMenu(_ref) {
34635
35050
  onSelected = _ref.onSelected,
34636
35051
  x = _ref.x,
34637
35052
  y = _ref.y;
34638
- return React__default.createElement(Container$c, {
35053
+ return React__default.createElement(Container$f, {
34639
35054
  x: x,
34640
35055
  y: y
34641
35056
  }, React__default.createElement("ul", {
@@ -34646,13 +35061,13 @@ var ListMenu = function ListMenu(_ref) {
34646
35061
  }, options.map(function (params, index) {
34647
35062
  return React__default.createElement(ListElement$1, {
34648
35063
  key: (params == null ? void 0 : params.id) || index,
34649
- onClick: function onClick() {
35064
+ onPointerDown: function onPointerDown() {
34650
35065
  onSelected(params == null ? void 0 : params.id);
34651
35066
  }
34652
35067
  }, (params == null ? void 0 : params.text) || 'No text');
34653
35068
  })));
34654
35069
  };
34655
- var Container$c = /*#__PURE__*/styled.div.withConfig({
35070
+ var Container$f = /*#__PURE__*/styled.div.withConfig({
34656
35071
  displayName: "ListMenu__Container",
34657
35072
  componentId: "sc-i9097t-0"
34658
35073
  })(["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) {
@@ -34665,331 +35080,6 @@ var ListElement$1 = /*#__PURE__*/styled.li.withConfig({
34665
35080
  componentId: "sc-i9097t-1"
34666
35081
  })(["margin-right:0.5rem;"]);
34667
35082
 
34668
- var img$6 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAP1BMVEUAAAA7FyVxQTsUEBPj5v////+5v/tCJDOOUlIiHBr1oJfptaO6dWr61rhzFy1bMTjoanMUNGQoXMQkn97+88DQ3IhAAAAAAXRSTlMAQObYZgAAAAFiS0dEBfhv6ccAAAAHdElNRQfmAw4VOBC7c5LYAAABM0lEQVQ4y3XRi5KDIAwFUAUkbrBgpP//rZsHVHQ009qZ3tPboNN0zmwzvcw8O5sX4y0NOg/Et3jRCXF+ziULorjkOQ9gE24dvuUAzq08DiCO4pe3WN7zCP56vmpubBReQYC11YPS86ySxxCsAABTSgjb5m4g8nfbxvFHBkH2OEEvAItVuCuIsgGgl+Gcr7kDXxhEAx55A2SQEEeQeZwUaIP8Tbo05B0RFPhItAjgj1w6cDnhLluDj+Egkh3pCCP4pKQAw1IPO0W9Nti5gW9RP2dKA3BZd2Dw+baYX+Nt4GM00O4S3kEpF6Alb2Bv4LeC3kkGfAW0/p0RPoJVKr63ghHsKuRh5DIUKOAlGOwrtt9fQekAEfmhZslHUDoglB0zjfkJigN7UnTQQ4GBWomoVhEN/AOPSBh38gy+fwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wMy0xNFQyMTo1NTo1MSswMDowMJcc0eEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDMtMTRUMjE6NTU6NTErMDA6MDDmQWldAAAAAElFTkSuQmCC';
34669
-
34670
- var img$7 = 'data:image/gif;base64,R0lGODlhQAAgAPIAAAAAAA0NDRERESIiIigoKFlZWf///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw5nYW1tYT0wLjQ1NDU0NQAh+QQBFAAAACwAAAAAQAAgAAAD/wi63P4wykmrvTjrzbv/YAgIZGmeaKquakQWcCzPdG3fNukIeO//PQGDBywafcIF8chswpKKZcxApTqvNOiIZi0YsODncFaFlcNOrdTbJVff0/c3Lp/Xs2N37cy2ndt6ZnhKXHdsc4d7VnwyfIxqPWWOXXWLgHSGYoSNbZKVZp2WiJyjg1GFcaClqaqJhasyUAFrh3Cur3KqubWXBQIBAAEDtDeMaEEDAcLEx2gCycvN0jHPysPT09XR2M3a19zH3gTM4EYCBNDD4yzs7e4r48nB6gT19vf4+fr7/P3P8sKGvRtIkMUAeQoCHlzIsKHDhxAjSoTWQJnFixgzatzIsQWjRQYJAAAh/wtJbWFnZU1hZ2ljaw5nYW1tYT0wLjQ1NDU0NQAh+QQBFAAAACwAAAAAQAAgAAAD8Ai63P4wykmrvTjrzbv/YCiOlGCeaKqubMtGZiHPdG3feI6bjqD/wOBPwPAJj0ggcWFMOp+ypaI5M1it0KxNCqDKsAWDdhwt1q5fMPnJ9aJt17g4HafJ3/et+Tzn99V+aThqfTNtcHlhhIBVWG+BdDSHOmiPeHdij3aYhZONf46YkZGanzpSAV6KjaOIpqWtNwIBAAEDqqKKhZuJnHSwAgMBtqo5sGs5wcO3yM01ysTO0gXQzNPN1cXXUNnbyNna3kcmwrW3Lujp6ugD5bbn6/HyLe20Cu/t+fr7/P3+/wCF2VswrKDBgwgTKlzIsCCDBAA7';
34671
-
34672
- (function (ImgSide) {
34673
- ImgSide["right"] = "right";
34674
- ImgSide["left"] = "left";
34675
- })(exports.ImgSide || (exports.ImgSide = {}));
34676
- var NPCMultiDialog = function NPCMultiDialog(_ref) {
34677
- var _textAndTypeArray$sli;
34678
- var _onClose = _ref.onClose,
34679
- textAndTypeArray = _ref.textAndTypeArray;
34680
- var _useState = React.useState(false),
34681
- showGoNextIndicator = _useState[0],
34682
- setShowGoNextIndicator = _useState[1];
34683
- var _useState2 = React.useState(0),
34684
- slide = _useState2[0],
34685
- setSlide = _useState2[1];
34686
- var onHandleSpacePress = function onHandleSpacePress(event) {
34687
- if (event.code === 'Space') {
34688
- if (slide < (textAndTypeArray == null ? void 0 : textAndTypeArray.length) - 1) {
34689
- setSlide(function (prev) {
34690
- return prev + 1;
34691
- });
34692
- } else {
34693
- // if there's no more text chunks, close the dialog
34694
- _onClose();
34695
- }
34696
- }
34697
- };
34698
- React.useEffect(function () {
34699
- document.addEventListener('keydown', onHandleSpacePress);
34700
- return function () {
34701
- return document.removeEventListener('keydown', onHandleSpacePress);
34702
- };
34703
- }, [slide]);
34704
- return React__default.createElement(RPGUIContainer, {
34705
- type: exports.RPGUIContainerTypes.FramedGold,
34706
- width: '50%',
34707
- height: '180px'
34708
- }, React__default.createElement(React__default.Fragment, null, React__default.createElement(Container$d, null, ((_textAndTypeArray$sli = textAndTypeArray[slide]) == null ? void 0 : _textAndTypeArray$sli.imageSide) === 'right' && React__default.createElement(React__default.Fragment, null, React__default.createElement(TextContainer, {
34709
- flex: '70%'
34710
- }, React__default.createElement(NPCDialogText, {
34711
- onStartStep: function onStartStep() {
34712
- return setShowGoNextIndicator(false);
34713
- },
34714
- onEndStep: function onEndStep() {
34715
- return setShowGoNextIndicator(true);
34716
- },
34717
- text: textAndTypeArray[slide].text || 'No text provided.',
34718
- onClose: function onClose() {
34719
- if (_onClose) {
34720
- _onClose();
34721
- }
34722
- }
34723
- })), React__default.createElement(ThumbnailContainer, null, React__default.createElement(NPCThumbnail, {
34724
- src: textAndTypeArray[slide].imagePath || img$6
34725
- })), showGoNextIndicator && React__default.createElement(PressSpaceIndicator, {
34726
- right: '10.5rem',
34727
- src: img$7
34728
- })), textAndTypeArray[slide].imageSide === 'left' && React__default.createElement(React__default.Fragment, null, React__default.createElement(ThumbnailContainer, null, React__default.createElement(NPCThumbnail, {
34729
- src: textAndTypeArray[slide].imagePath || img$6
34730
- })), React__default.createElement(TextContainer, {
34731
- flex: '70%'
34732
- }, React__default.createElement(NPCDialogText, {
34733
- onStartStep: function onStartStep() {
34734
- return setShowGoNextIndicator(false);
34735
- },
34736
- onEndStep: function onEndStep() {
34737
- return setShowGoNextIndicator(true);
34738
- },
34739
- text: textAndTypeArray[slide].text || 'No text provided.',
34740
- onClose: function onClose() {
34741
- if (_onClose) {
34742
- _onClose();
34743
- }
34744
- }
34745
- })), showGoNextIndicator && React__default.createElement(PressSpaceIndicator, {
34746
- right: '1rem',
34747
- src: img$7
34748
- }))), ")"));
34749
- };
34750
- var Container$d = /*#__PURE__*/styled.div.withConfig({
34751
- displayName: "NPCMultiDialog__Container",
34752
- componentId: "sc-rvu5wg-0"
34753
- })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
34754
- var TextContainer = /*#__PURE__*/styled.div.withConfig({
34755
- displayName: "NPCMultiDialog__TextContainer",
34756
- componentId: "sc-rvu5wg-1"
34757
- })(["flex:", " 0 0;width:355px;"], function (_ref2) {
34758
- var flex = _ref2.flex;
34759
- return flex;
34760
- });
34761
- var ThumbnailContainer = /*#__PURE__*/styled.div.withConfig({
34762
- displayName: "NPCMultiDialog__ThumbnailContainer",
34763
- componentId: "sc-rvu5wg-2"
34764
- })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
34765
- var NPCThumbnail = /*#__PURE__*/styled.img.withConfig({
34766
- displayName: "NPCMultiDialog__NPCThumbnail",
34767
- componentId: "sc-rvu5wg-3"
34768
- })(["image-rendering:pixelated;height:128px;width:128px;"]);
34769
- var PressSpaceIndicator = /*#__PURE__*/styled.img.withConfig({
34770
- displayName: "NPCMultiDialog__PressSpaceIndicator",
34771
- componentId: "sc-rvu5wg-4"
34772
- })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref3) {
34773
- var right = _ref3.right;
34774
- return right;
34775
- });
34776
-
34777
- //@ts-ignore
34778
- var useEventListener = function useEventListener(type, handler, el) {
34779
- if (el === void 0) {
34780
- el = window;
34781
- }
34782
- var savedHandler = React__default.useRef();
34783
- React__default.useEffect(function () {
34784
- savedHandler.current = handler;
34785
- }, [handler]);
34786
- React__default.useEffect(function () {
34787
- //@ts-ignore
34788
- var listener = function listener(e) {
34789
- return savedHandler.current(e);
34790
- };
34791
- el.addEventListener(type, listener);
34792
- return function () {
34793
- el.removeEventListener(type, listener);
34794
- };
34795
- }, [type, el]);
34796
- };
34797
-
34798
- var DynamicText = function DynamicText(_ref) {
34799
- var text = _ref.text,
34800
- onFinish = _ref.onFinish,
34801
- onStart = _ref.onStart;
34802
- var _useState = React.useState(''),
34803
- textState = _useState[0],
34804
- setTextState = _useState[1];
34805
- React.useEffect(function () {
34806
- var i = 0;
34807
- var interval = setInterval(function () {
34808
- // on every interval, show one more character
34809
- if (i === 0) {
34810
- if (onStart) {
34811
- onStart();
34812
- }
34813
- }
34814
- if (i < text.length) {
34815
- setTextState(text.substring(0, i + 1));
34816
- i++;
34817
- } else {
34818
- clearInterval(interval);
34819
- if (onFinish) {
34820
- onFinish();
34821
- }
34822
- }
34823
- }, 50);
34824
- return function () {
34825
- clearInterval(interval);
34826
- };
34827
- }, [text]);
34828
- return React__default.createElement(TextContainer$1, null, textState);
34829
- };
34830
- var TextContainer$1 = /*#__PURE__*/styled.p.withConfig({
34831
- displayName: "DynamicText__TextContainer",
34832
- componentId: "sc-1ggl9nd-0"
34833
- })(["font-size:0.7rem !important;color:white;text-shadow:1px 1px 0px #000000;letter-spacing:1.2px;word-break:normal;"]);
34834
-
34835
- var QuestionDialog = function QuestionDialog(_ref) {
34836
- var questions = _ref.questions,
34837
- answers = _ref.answers,
34838
- onClose = _ref.onClose;
34839
- var _useState = React.useState(questions[0]),
34840
- currentQuestion = _useState[0],
34841
- setCurrentQuestion = _useState[1];
34842
- var _useState2 = React.useState(false),
34843
- canShowAnswers = _useState2[0],
34844
- setCanShowAnswers = _useState2[1];
34845
- var onGetFirstAnswer = function onGetFirstAnswer() {
34846
- if (!currentQuestion.answerIds || currentQuestion.answerIds.length === 0) {
34847
- return null;
34848
- }
34849
- var firstAnswerId = currentQuestion.answerIds[0];
34850
- return answers.find(function (answer) {
34851
- return answer.id === firstAnswerId;
34852
- });
34853
- };
34854
- var _useState3 = React.useState(onGetFirstAnswer()),
34855
- currentAnswer = _useState3[0],
34856
- setCurrentAnswer = _useState3[1];
34857
- React.useEffect(function () {
34858
- setCurrentAnswer(onGetFirstAnswer());
34859
- }, [currentQuestion]);
34860
- var onGetAnswers = function onGetAnswers(answerIds) {
34861
- return answerIds.map(function (answerId) {
34862
- return answers.find(function (answer) {
34863
- return answer.id === answerId;
34864
- });
34865
- });
34866
- };
34867
- var onKeyPress = function onKeyPress(e) {
34868
- switch (e.key) {
34869
- case 'ArrowDown':
34870
- // select next answer, if any.
34871
- // if no next answer, select first answer
34872
- // const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(
34873
- // (answer) => answer?.id === currentAnswer!.id + 1
34874
- // );
34875
- var nextAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
34876
- return (answer == null ? void 0 : answer.id) === currentAnswer.id + 1;
34877
- });
34878
- var nextAnswerID = currentQuestion.answerIds[nextAnswerIndex];
34879
- var nextAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
34880
- return (answer == null ? void 0 : answer.id) === nextAnswerID;
34881
- });
34882
- setCurrentAnswer(nextAnswer || onGetFirstAnswer());
34883
- break;
34884
- case 'ArrowUp':
34885
- // select previous answer, if any.
34886
- // if no previous answer, select last answer
34887
- var previousAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
34888
- return (answer == null ? void 0 : answer.id) === currentAnswer.id - 1;
34889
- });
34890
- var previousAnswerID = currentQuestion.answerIds && currentQuestion.answerIds[previousAnswerIndex];
34891
- var previousAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
34892
- return (answer == null ? void 0 : answer.id) === previousAnswerID;
34893
- });
34894
- if (previousAnswer) {
34895
- setCurrentAnswer(previousAnswer);
34896
- } else {
34897
- setCurrentAnswer(onGetAnswers(currentQuestion.answerIds).pop());
34898
- }
34899
- break;
34900
- case 'Enter':
34901
- setCanShowAnswers(false);
34902
- if (!(currentAnswer != null && currentAnswer.nextQuestionId)) {
34903
- onClose();
34904
- return;
34905
- } else {
34906
- setCurrentQuestion(questions.find(function (question) {
34907
- return question.id === currentAnswer.nextQuestionId;
34908
- }));
34909
- }
34910
- break;
34911
- }
34912
- };
34913
- useEventListener('keydown', onKeyPress);
34914
- var onAnswerClick = function onAnswerClick(answer) {
34915
- setCanShowAnswers(false);
34916
- if (answer.nextQuestionId) {
34917
- // if there is a next question, go to it
34918
- setCurrentQuestion(questions.find(function (question) {
34919
- return question.id === answer.nextQuestionId;
34920
- }));
34921
- } else {
34922
- // else, finish dialog!
34923
- onClose();
34924
- }
34925
- };
34926
- var onRenderCurrentAnswers = function onRenderCurrentAnswers() {
34927
- var answerIds = currentQuestion.answerIds;
34928
- if (!answerIds) {
34929
- return null;
34930
- }
34931
- var answers = onGetAnswers(answerIds);
34932
- if (!answers) {
34933
- return null;
34934
- }
34935
- return answers.map(function (answer) {
34936
- var isSelected = (currentAnswer == null ? void 0 : currentAnswer.id) === (answer == null ? void 0 : answer.id);
34937
- var selectedColor = isSelected ? 'yellow' : 'white';
34938
- if (answer) {
34939
- return React__default.createElement(AnswerRow, {
34940
- key: "answer_" + answer.id
34941
- }, React__default.createElement(AnswerSelectedIcon, {
34942
- color: selectedColor
34943
- }, isSelected ? 'X' : null), React__default.createElement(Answer, {
34944
- key: answer.id,
34945
- onClick: function onClick() {
34946
- return onAnswerClick(answer);
34947
- },
34948
- color: selectedColor
34949
- }, answer.text));
34950
- }
34951
- return null;
34952
- });
34953
- };
34954
- return React__default.createElement(Container$e, null, React__default.createElement(QuestionContainer, null, React__default.createElement(DynamicText, {
34955
- text: currentQuestion.text,
34956
- onStart: function onStart() {
34957
- return setCanShowAnswers(false);
34958
- },
34959
- onFinish: function onFinish() {
34960
- return setCanShowAnswers(true);
34961
- }
34962
- })), canShowAnswers && React__default.createElement(AnswersContainer, null, onRenderCurrentAnswers()));
34963
- };
34964
- var Container$e = /*#__PURE__*/styled.div.withConfig({
34965
- displayName: "QuestionDialog__Container",
34966
- componentId: "sc-bxc5u0-0"
34967
- })(["display:flex;word-break:break-all;box-sizing:border-box;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;"]);
34968
- var QuestionContainer = /*#__PURE__*/styled.div.withConfig({
34969
- displayName: "QuestionDialog__QuestionContainer",
34970
- componentId: "sc-bxc5u0-1"
34971
- })(["flex:100%;width:100%;"]);
34972
- var AnswersContainer = /*#__PURE__*/styled.div.withConfig({
34973
- displayName: "QuestionDialog__AnswersContainer",
34974
- componentId: "sc-bxc5u0-2"
34975
- })(["flex:100%;"]);
34976
- var Answer = /*#__PURE__*/styled.p.withConfig({
34977
- displayName: "QuestionDialog__Answer",
34978
- componentId: "sc-bxc5u0-3"
34979
- })(["flex:auto;color:", " !important;font-size:0.65rem !important;background:inherit;border:none;"], function (props) {
34980
- return props.color;
34981
- });
34982
- var AnswerSelectedIcon = /*#__PURE__*/styled.span.withConfig({
34983
- displayName: "QuestionDialog__AnswerSelectedIcon",
34984
- componentId: "sc-bxc5u0-4"
34985
- })(["flex:5% 0 0;color:", " !important;"], function (props) {
34986
- return props.color;
34987
- });
34988
- var AnswerRow = /*#__PURE__*/styled.div.withConfig({
34989
- displayName: "QuestionDialog__AnswerRow",
34990
- componentId: "sc-bxc5u0-5"
34991
- })(["display:flex;flex-wrap:wrap;justify-content:center;align-items:center;margin-bottom:0.5rem;height:22px;p{line-height:unset;margin-top:0;margin-bottom:0rem;}"]);
34992
-
34993
35083
  var ProgressBar = function ProgressBar(_ref) {
34994
35084
  var max = _ref.max,
34995
35085
  value = _ref.value,
@@ -35007,7 +35097,7 @@ var ProgressBar = function ProgressBar(_ref) {
35007
35097
  }
35008
35098
  return value * 100 / max;
35009
35099
  };
35010
- return React__default.createElement(Container$f, {
35100
+ return React__default.createElement(Container$g, {
35011
35101
  className: "rpgui-progress",
35012
35102
  "data-value": calculatePercentageValue(max, value) / 100,
35013
35103
  "data-rpguitype": "progress",
@@ -35036,7 +35126,7 @@ var TextOverlay$1 = /*#__PURE__*/styled.div.withConfig({
35036
35126
  displayName: "ProgressBar__TextOverlay",
35037
35127
  componentId: "sc-qa6fzh-1"
35038
35128
  })(["width:100%;position:relative;"]);
35039
- var Container$f = /*#__PURE__*/styled.div.withConfig({
35129
+ var Container$g = /*#__PURE__*/styled.div.withConfig({
35040
35130
  displayName: "ProgressBar__Container",
35041
35131
  componentId: "sc-qa6fzh-2"
35042
35132
  })(["display:flex;flex-direction:column;min-width:", "px;width:", "%;justify-content:start;align-items:flex-start;", ""], function (props) {
@@ -35047,7 +35137,7 @@ var Container$f = /*#__PURE__*/styled.div.withConfig({
35047
35137
  return props.style;
35048
35138
  });
35049
35139
 
35050
- var img$8 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAEZ0FNQQAAsY58+1GTAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAHcSURBVHja7Ji/agJBEId/K/cCdoKFFjZCbGxCekmVOunzCil8hhS+gr3WVmIvKbQxIILFKQjXhCPkASZN5tjd27ud9SRYOKV3u/ftN7P/VESEa4gariRuIHZEkpeUUkYhEZEKbeNrG0mJJ/MlOq0m9odTKRg/W+2OaDfqRh9xkmbPbaBIMrLJfInB/R0AoN2o4+v7B3GSAkAOzAXAwW0XH59QSpEOIzLCEHanuq31Zot+r1sIYcdwNDZgahIblww2GTxrXDb02B9OAIB+r4tOqymCYXtspRQkxMZ6s82lK8SG14jPBnccYmM6W6Df62ZWSkGkNjgt59p4eXyAt1h9NvSoasMJcs5MqWqj0IjEBncuNVdmIwcSYmN/OIlSUjZTnCD2Ui7pXLqK+tKSgTCEtOikBcrAvrQAQE2HkIwwTlJj2l7CBgBERKSUUrTaHQ3lcZI6t3G2IZ0pEhvZ7ssww9E4Wym5YUi6qoQioqDZwmB6emxDtg3ej97fXv0nNN64OHQrutbpbGG8o//2/DRwpsyXFsOI9DDjCv0j+oCkNowakR6iXSks+rjURtDhWS9q+1DtMiL5eC41lar9D8w2pQMVrR1nGym7p9hA/25EcrESXchu/wbcQDzxOwDLF0pIXBCe1wAAAABJRU5ErkJggg==';
35140
+ var img$9 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAEZ0FNQQAAsY58+1GTAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAHcSURBVHja7Ji/agJBEId/K/cCdoKFFjZCbGxCekmVOunzCil8hhS+gr3WVmIvKbQxIILFKQjXhCPkASZN5tjd27ud9SRYOKV3u/ftN7P/VESEa4gariRuIHZEkpeUUkYhEZEKbeNrG0mJJ/MlOq0m9odTKRg/W+2OaDfqRh9xkmbPbaBIMrLJfInB/R0AoN2o4+v7B3GSAkAOzAXAwW0XH59QSpEOIzLCEHanuq31Zot+r1sIYcdwNDZgahIblww2GTxrXDb02B9OAIB+r4tOqymCYXtspRQkxMZ6s82lK8SG14jPBnccYmM6W6Df62ZWSkGkNjgt59p4eXyAt1h9NvSoasMJcs5MqWqj0IjEBncuNVdmIwcSYmN/OIlSUjZTnCD2Ui7pXLqK+tKSgTCEtOikBcrAvrQAQE2HkIwwTlJj2l7CBgBERKSUUrTaHQ3lcZI6t3G2IZ0pEhvZ7ssww9E4Wym5YUi6qoQioqDZwmB6emxDtg3ej97fXv0nNN64OHQrutbpbGG8o//2/DRwpsyXFsOI9DDjCv0j+oCkNowakR6iXSks+rjURtDhWS9q+1DtMiL5eC41lar9D8w2pQMVrR1nGym7p9hA/25EcrESXchu/wbcQDzxOwDLF0pIXBCe1wAAAABJRU5ErkJggg==';
35051
35141
 
35052
35142
  var QuestInfo = function QuestInfo(_ref) {
35053
35143
  var quests = _ref.quests,
@@ -35082,16 +35172,14 @@ var QuestInfo = function QuestInfo(_ref) {
35082
35172
  cancelDrag: ".equipment-container-body .arrow-selector"
35083
35173
  }, quests.length >= 2 ? React__default.createElement(QuestsContainer, null, currentIndex !== 0 && React__default.createElement(SelectArrow, {
35084
35174
  direction: "left",
35085
- onClick: onLeftClick,
35086
- onTouchStart: onLeftClick
35175
+ onPointerDown: onLeftClick
35087
35176
  }), currentIndex !== quests.length - 1 && React__default.createElement(SelectArrow, {
35088
35177
  direction: "right",
35089
- onClick: onRightClick,
35090
- onTouchStart: onRightClick
35178
+ onPointerDown: onRightClick
35091
35179
  }), React__default.createElement(QuestContainer, null, React__default.createElement(TitleContainer$1, {
35092
35180
  className: "drag-handler"
35093
35181
  }, React__default.createElement(Title$3, null, React__default.createElement(Thumbnail, {
35094
- src: quests[currentIndex].thumbnail || img$8
35182
+ src: quests[currentIndex].thumbnail || img$9
35095
35183
  }), quests[currentIndex].title), React__default.createElement(QuestSplitDiv, null, React__default.createElement("hr", {
35096
35184
  className: "golden"
35097
35185
  }))), React__default.createElement(Content, null, React__default.createElement("p", null, quests[currentIndex].description)), React__default.createElement(QuestColumn, {
@@ -35100,8 +35188,8 @@ var QuestInfo = function QuestInfo(_ref) {
35100
35188
  }, buttons && buttons.map(function (button, index) {
35101
35189
  return React__default.createElement(Button, {
35102
35190
  key: index,
35103
- onClick: function onClick() {
35104
- return button.onClick(quests[currentIndex]._id, quests[currentIndex].npcId);
35191
+ onPointerDown: function onPointerDown() {
35192
+ return button.onPointerDown(quests[currentIndex]._id, quests[currentIndex].npcId);
35105
35193
  },
35106
35194
  disabled: button.disabled,
35107
35195
  buttonType: exports.ButtonTypes.RPGUIButton,
@@ -35110,7 +35198,7 @@ var QuestInfo = function QuestInfo(_ref) {
35110
35198
  })))) : React__default.createElement(QuestsContainer, null, React__default.createElement(QuestContainer, null, React__default.createElement(TitleContainer$1, {
35111
35199
  className: "drag-handler"
35112
35200
  }, React__default.createElement(Title$3, null, React__default.createElement(Thumbnail, {
35113
- src: quests[0].thumbnail || img$8
35201
+ src: quests[0].thumbnail || img$9
35114
35202
  }), quests[0].title), React__default.createElement(QuestSplitDiv, null, React__default.createElement("hr", {
35115
35203
  className: "golden"
35116
35204
  }))), React__default.createElement(Content, null, React__default.createElement("p", null, quests[0].description)), React__default.createElement(QuestColumn, {
@@ -35119,8 +35207,8 @@ var QuestInfo = function QuestInfo(_ref) {
35119
35207
  }, buttons && buttons.map(function (button, index) {
35120
35208
  return React__default.createElement(Button, {
35121
35209
  key: index,
35122
- onClick: function onClick() {
35123
- return button.onClick(quests[0]._id, quests[0].npcId);
35210
+ onPointerDown: function onPointerDown() {
35211
+ return button.onPointerDown(quests[0]._id, quests[0].npcId);
35124
35212
  },
35125
35213
  disabled: button.disabled,
35126
35214
  buttonType: exports.ButtonTypes.RPGUIButton,
@@ -35239,7 +35327,7 @@ var InputRadio = function InputRadio(_ref) {
35239
35327
  name: name,
35240
35328
  type: "radio"
35241
35329
  }), React__default.createElement("label", {
35242
- onClick: handleClick
35330
+ onPointerDown: handleClick
35243
35331
  }, element.label), React__default.createElement("br", null));
35244
35332
  }));
35245
35333
  };
@@ -35253,96 +35341,13 @@ var RPGUIRoot = function RPGUIRoot(_ref) {
35253
35341
  }, children);
35254
35342
  };
35255
35343
 
35256
- var Shortcuts = function Shortcuts(_ref) {
35257
- var shortcuts = _ref.shortcuts,
35258
- onShortcutCast = _ref.onShortcutCast,
35259
- mana = _ref.mana,
35260
- _ref$isBlockedCasting = _ref.isBlockedCastingByKeyboard,
35261
- isBlockedCastingByKeyboard = _ref$isBlockedCasting === void 0 ? false : _ref$isBlockedCasting,
35262
- atlasJSON = _ref.atlasJSON,
35263
- atlasIMG = _ref.atlasIMG,
35264
- inventory = _ref.inventory;
35265
- React.useEffect(function () {
35266
- var handleKeyDown = function handleKeyDown(e) {
35267
- if (isBlockedCastingByKeyboard) return;
35268
- var shortcutIndex = Number(e.key) - 1;
35269
- if (shortcutIndex >= 0 && shortcutIndex <= 5) {
35270
- onShortcutCast(shortcutIndex);
35271
- }
35272
- };
35273
- window.addEventListener('keydown', handleKeyDown);
35274
- return function () {
35275
- window.removeEventListener('keydown', handleKeyDown);
35276
- };
35277
- }, [shortcuts, isBlockedCastingByKeyboard]);
35278
- return React__default.createElement(List$1, null, Array.from({
35279
- length: 6
35280
- }).map(function (_, i) {
35281
- var _shortcuts$i, _shortcuts$i3, _payload$manaCost;
35282
- if (((_shortcuts$i = shortcuts[i]) == null ? void 0 : _shortcuts$i.type) === shared.ShortcutType.Item) {
35283
- var _shortcuts$i2;
35284
- var _payload = (_shortcuts$i2 = shortcuts[i]) == null ? void 0 : _shortcuts$i2.payload;
35285
- var itemsFromEquipment = [];
35286
- if (inventory) {
35287
- Object.keys(inventory.slots).forEach(function (i) {
35288
- var _inventory$slots$inde;
35289
- var index = parseInt(i);
35290
- if (((_inventory$slots$inde = inventory.slots[index]) == null ? void 0 : _inventory$slots$inde.key) === (_payload == null ? void 0 : _payload.key)) {
35291
- itemsFromEquipment.push(inventory.slots[index]);
35292
- }
35293
- });
35294
- }
35295
- var totalQty = itemsFromEquipment.reduce(function (acc, item) {
35296
- return acc + ((item == null ? void 0 : item.stackQty) || 1);
35297
- }, 0);
35298
- return React__default.createElement(SingleShortcut, {
35299
- key: i,
35300
- onClick: onShortcutCast.bind(null, i),
35301
- disabled: false
35302
- }, _payload && React__default.createElement(SpriteFromAtlas, {
35303
- atlasIMG: atlasIMG,
35304
- atlasJSON: atlasJSON,
35305
- spriteKey: shared.getItemTextureKeyPath({
35306
- key: _payload.texturePath,
35307
- texturePath: _payload.texturePath,
35308
- stackQty: _payload.stackQty || 1
35309
- }, atlasJSON),
35310
- width: 32,
35311
- height: 32
35312
- }), React__default.createElement("span", {
35313
- className: "qty"
35314
- }, totalQty), React__default.createElement("span", {
35315
- className: "keyboard"
35316
- }, i + 1));
35317
- }
35318
- var payload = (_shortcuts$i3 = shortcuts[i]) == null ? void 0 : _shortcuts$i3.payload;
35319
- return React__default.createElement(SingleShortcut, {
35320
- key: i,
35321
- onClick: onShortcutCast.bind(null, i),
35322
- disabled: mana < ((_payload$manaCost = payload == null ? void 0 : payload.manaCost) != null ? _payload$manaCost : 0)
35323
- }, React__default.createElement("span", {
35324
- className: "mana"
35325
- }, payload && payload.manaCost), React__default.createElement("span", {
35326
- className: "magicWords"
35327
- }, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
35328
- return word[0];
35329
- })), React__default.createElement("span", {
35330
- className: "keyboard"
35331
- }, i + 1));
35332
- }));
35333
- };
35334
- var List$1 = /*#__PURE__*/styled.p.withConfig({
35335
- displayName: "Shortcuts__List",
35336
- componentId: "sc-kgtsi7-0"
35337
- })(["width:100%;display:flex;align-items:center;justify-content:center;gap:0.5rem;box-sizing:border-box;margin:0 !important;"]);
35338
-
35339
35344
  var SimpleProgressBar = function SimpleProgressBar(_ref) {
35340
35345
  var value = _ref.value,
35341
35346
  _ref$bgColor = _ref.bgColor,
35342
35347
  bgColor = _ref$bgColor === void 0 ? 'red' : _ref$bgColor,
35343
35348
  _ref$margin = _ref.margin,
35344
35349
  margin = _ref$margin === void 0 ? 20 : _ref$margin;
35345
- return React__default.createElement(Container$g, {
35350
+ return React__default.createElement(Container$h, {
35346
35351
  className: "simple-progress-bar"
35347
35352
  }, React__default.createElement(ProgressBarContainer, {
35348
35353
  margin: margin
@@ -35351,7 +35356,7 @@ var SimpleProgressBar = function SimpleProgressBar(_ref) {
35351
35356
  bgColor: bgColor
35352
35357
  }))));
35353
35358
  };
35354
- var Container$g = /*#__PURE__*/styled.div.withConfig({
35359
+ var Container$h = /*#__PURE__*/styled.div.withConfig({
35355
35360
  displayName: "SimpleProgressBar__Container",
35356
35361
  componentId: "sc-mbeil3-0"
35357
35362
  })(["display:flex;justify-content:center;align-items:center;width:100%;"]);
@@ -35527,8 +35532,7 @@ var SkillsContainer = function SkillsContainer(_ref) {
35527
35532
  title: "Skills",
35528
35533
  cancelDrag: "#skillsDiv"
35529
35534
  }, onCloseButton && React__default.createElement(CloseButton$3, {
35530
- onClick: onCloseButton,
35531
- onTouchStart: onCloseButton
35535
+ onPointerDown: onCloseButton
35532
35536
  }, "X"), React__default.createElement(SkillsContainerDiv, {
35533
35537
  id: "skillsDiv"
35534
35538
  }, React__default.createElement(SkillSplitDiv, null, React__default.createElement("p", null, "General"), React__default.createElement("hr", {
@@ -35575,13 +35579,13 @@ var Spell = function Spell(_ref) {
35575
35579
  manaCost = _ref.manaCost,
35576
35580
  charMana = _ref.charMana,
35577
35581
  charMagicLevel = _ref.charMagicLevel,
35578
- onClick = _ref.onClick,
35582
+ onPointerDown = _ref.onPointerDown,
35579
35583
  isSettingShortcut = _ref.isSettingShortcut,
35580
35584
  minMagicLevelRequired = _ref.minMagicLevelRequired;
35581
35585
  var disabled = isSettingShortcut ? charMagicLevel < minMagicLevelRequired : manaCost > charMana || charMagicLevel < minMagicLevelRequired;
35582
- return React__default.createElement(Container$h, {
35586
+ return React__default.createElement(Container$i, {
35583
35587
  disabled: disabled,
35584
- onClick: onClick == null ? void 0 : onClick.bind(null, spellKey),
35588
+ onPointerDown: onPointerDown == null ? void 0 : onPointerDown.bind(null, spellKey),
35585
35589
  isSettingShortcut: isSettingShortcut && !disabled,
35586
35590
  className: "spell"
35587
35591
  }, disabled && React__default.createElement(Overlay, null, charMagicLevel < minMagicLevelRequired ? 'Low magic level' : manaCost > charMana && 'No mana'), React__default.createElement(SpellImage, null, magicWords.split(' ').map(function (word) {
@@ -35592,7 +35596,7 @@ var Spell = function Spell(_ref) {
35592
35596
  className: "mana"
35593
35597
  }, manaCost)));
35594
35598
  };
35595
- var Container$h = /*#__PURE__*/styled.button.withConfig({
35599
+ var Container$i = /*#__PURE__*/styled.button.withConfig({
35596
35600
  displayName: "Spell__Container",
35597
35601
  componentId: "sc-j96fa2-0"
35598
35602
  })(["display:block;background:none;border:2px solid transparent;border-radius:1rem;width:100%;display:flex;height:5rem;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) {
@@ -35628,6 +35632,43 @@ var Overlay = /*#__PURE__*/styled.p.withConfig({
35628
35632
  componentId: "sc-j96fa2-7"
35629
35633
  })(["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);
35630
35634
 
35635
+ var SpellbookShortcuts = function SpellbookShortcuts(_ref) {
35636
+ var setSettingShortcutIndex = _ref.setSettingShortcutIndex,
35637
+ settingShortcutIndex = _ref.settingShortcutIndex,
35638
+ shortcuts = _ref.shortcuts,
35639
+ removeShortcut = _ref.removeShortcut;
35640
+ return React__default.createElement(List$1, {
35641
+ id: "shortcuts_list"
35642
+ }, "Spells shortcuts:", Array.from({
35643
+ length: 4
35644
+ }).map(function (_, i) {
35645
+ var _shortcuts$i2;
35646
+ return React__default.createElement(SpellShortcut$1, {
35647
+ key: i,
35648
+ onPointerDown: function onPointerDown() {
35649
+ var _shortcuts$i;
35650
+ removeShortcut(i);
35651
+ if (!((_shortcuts$i = shortcuts[i]) != null && _shortcuts$i.key)) setSettingShortcutIndex(i);
35652
+ },
35653
+ disabled: settingShortcutIndex !== -1 && settingShortcutIndex !== i,
35654
+ isBeingSet: settingShortcutIndex === i
35655
+ }, React__default.createElement("span", null, (_shortcuts$i2 = shortcuts[i]) == null ? void 0 : _shortcuts$i2.magicWords.split(' ').map(function (word) {
35656
+ return word[0];
35657
+ })));
35658
+ }));
35659
+ };
35660
+ var SpellShortcut$1 = /*#__PURE__*/styled.button.withConfig({
35661
+ displayName: "SpellbookShortcuts__SpellShortcut",
35662
+ componentId: "sc-fr4a0d-0"
35663
+ })(["width:2.6rem;height:2.6rem;background-color:", ";border:2px solid ", ";border-radius:50%;text-transform:uppercase;font-size:0.7rem;font-weight:bold;display:flex;align-items:center;justify-content:center;span{margin-top:4px;}&:hover,&:focus{background-color:", ";}&:active{background-color:", ";}&:disabled{opacity:0.5;}"], uiColors.lightGray, function (_ref2) {
35664
+ var isBeingSet = _ref2.isBeingSet;
35665
+ return isBeingSet ? uiColors.yellow : uiColors.darkGray;
35666
+ }, uiColors.darkGray, uiColors.gray);
35667
+ var List$1 = /*#__PURE__*/styled.p.withConfig({
35668
+ displayName: "SpellbookShortcuts__List",
35669
+ componentId: "sc-fr4a0d-1"
35670
+ })(["width:100%;display:flex;align-items:center;justify-content:flex-end;gap:0.5rem;padding:0.5rem;box-sizing:border-box;margin:0 !important;"]);
35671
+
35631
35672
  var Spellbook = function Spellbook(_ref) {
35632
35673
  var onClose = _ref.onClose,
35633
35674
  onInputFocus = _ref.onInputFocus,
@@ -35637,10 +35678,8 @@ var Spellbook = function Spellbook(_ref) {
35637
35678
  mana = _ref.mana,
35638
35679
  onSpellClick = _ref.onSpellClick,
35639
35680
  setSpellShortcut = _ref.setSpellShortcut,
35640
- shortcuts = _ref.shortcuts,
35641
- removeShortcut = _ref.removeShortcut,
35642
- atlasIMG = _ref.atlasIMG,
35643
- atlasJSON = _ref.atlasJSON;
35681
+ spellShortcuts = _ref.spellShortcuts,
35682
+ removeSpellShortcut = _ref.removeSpellShortcut;
35644
35683
  var _useState = React.useState(''),
35645
35684
  search = _useState[0],
35646
35685
  setSearch = _useState[1];
@@ -35677,13 +35716,11 @@ var Spellbook = function Spellbook(_ref) {
35677
35716
  width: "inherit",
35678
35717
  height: "inherit",
35679
35718
  cancelDrag: "#spellbook-search, #shortcuts_list, .spell"
35680
- }, React__default.createElement(Container$i, null, React__default.createElement(Title$6, null, "Learned Spells"), React__default.createElement(ShortcutsSetter, {
35719
+ }, React__default.createElement(Container$j, null, React__default.createElement(Title$6, null, "Learned Spells"), React__default.createElement(SpellbookShortcuts, {
35681
35720
  setSettingShortcutIndex: setSettingShortcutIndex,
35682
35721
  settingShortcutIndex: settingShortcutIndex,
35683
- shortcuts: shortcuts,
35684
- removeShortcut: removeShortcut,
35685
- atlasIMG: atlasIMG,
35686
- atlasJSON: atlasJSON
35722
+ shortcuts: spellShortcuts,
35723
+ removeShortcut: removeSpellShortcut
35687
35724
  }), React__default.createElement(Input, {
35688
35725
  placeholder: "Search for spell",
35689
35726
  value: search,
@@ -35699,7 +35736,7 @@ var Spellbook = function Spellbook(_ref) {
35699
35736
  }, React__default.createElement(Spell, Object.assign({
35700
35737
  charMana: mana,
35701
35738
  charMagicLevel: magicLevel,
35702
- onClick: settingShortcutIndex !== -1 ? setShortcut : onSpellClick,
35739
+ onPointerDown: settingShortcutIndex !== -1 ? setShortcut : onSpellClick,
35703
35740
  spellKey: spell.key,
35704
35741
  isSettingShortcut: settingShortcutIndex !== -1
35705
35742
  }, spell)));
@@ -35709,7 +35746,7 @@ var Title$6 = /*#__PURE__*/styled.h1.withConfig({
35709
35746
  displayName: "Spellbook__Title",
35710
35747
  componentId: "sc-r02nfq-0"
35711
35748
  })(["font-size:", " !important;margin-bottom:0 !important;"], uiFonts.size.large);
35712
- var Container$i = /*#__PURE__*/styled.div.withConfig({
35749
+ var Container$j = /*#__PURE__*/styled.div.withConfig({
35713
35750
  displayName: "Spellbook__Container",
35714
35751
  componentId: "sc-r02nfq-1"
35715
35752
  })(["width:100%;height:100%;color:white;display:flex;flex-direction:column;"]);
@@ -35723,16 +35760,16 @@ var TextArea = function TextArea(_ref) {
35723
35760
  return React__default.createElement("textarea", Object.assign({}, props));
35724
35761
  };
35725
35762
 
35726
- var img$9 = 'data:image/gif;base64,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';
35763
+ var img$a = 'data:image/gif;base64,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';
35727
35764
 
35728
- var img$a = 'data:image/gif;base64,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';
35765
+ var img$b = 'data:image/gif;base64,R0lGODlhTgBNAPMAAAAAALcILyZ31ESZ+lrC/1Ds//vvpv3wo4G8//////38+QAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAAIf4gQ3JlYXRlZCB3aXRoIGV6Z2lmLmNvbSBHSUYgbWFrZXIALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQfIpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2yL+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlAgHm5ybmZV2KHh0naWcepYlo22mradzqUUClK61nJSxIJiMrgm+v664oSKrXqa/yMmmbrkexVXHydK+y2bNULON0dPTppLXGs9UpdzlCaVt4FpsZuTm5ejWwx3iU53v753p89jtnPj49JVRZ2ELgYMFoP0DaE6gF4JjBBycSCChEncMucV7yC+DQYoI/y8uzAjvFUddEkGGRHKPZMlN8lCqXDmgpctuJs90XDdzpc2bynJWgSjh40yLP4ECE1pHZs8CB5MqPcd0ClEARlVCjTpy6kadTrWC7KpU4NaDVndeyNqT64GpSzedBblHbcGUbSmSddlprsokV7HizUtAKsO+hAkMCCw48UTD+RAnZsw2L0aApfy2pTw48eWGczX3ZNzYsdtNAf2KVkm6tOnC2+JqXg2ytWBStiSLzWv7dh5XBnS/Pti7nj9TW2kT7u1bT03dBZSPtuuMnfMkqqXXpl79uhLR2icyj+gdSfjN3FF6Pz89kXU3itnPHO/xfXlm6VXZv3+ShnH+gOUnikAUAFpFny7/XYeGGBOssR8qQjBYQRQPpoOGgHc4WOEeYGAYB4VBBDGEhMTkYCKJKKao4oostujiizDGKOOMF0QAACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAAE4ATQAABP8QyEmrvTjrzbv/YCiOZGmeaKqubOu+cCzPa2DfuE2ruOD/QB9uN7IBB8ikEgnUETk333JKZQpuT0zgV+1Sf4Esxegtd6/h7FZgbn+vz617/k3P5PS8Ei7bIv6AgYKDhIWBfC9+houMjIgsio2Sk4CPKZGUmY2WJnh6B6ChoHpMdieec6KqoXqcRQKaq7Khmq4gmI2zurSUth6oZbMJw8Szc74dwF2rxM3Oq27IG7iGzM7Xw6uT0hnKVNbY2NBm3Bfe36Lh6gmq0aa/bGaq6+vt5O/J8cGh9PSibeUqbCFAoMAyfv38sSoTcMJAggQNTkmXsN5Chvg0PIRYcMm8iur/7HlpCGAjR4lIKIIMefFMxm4COEJEOUDlSnEtq5A0eTKJzZvPcta5FVNmRJ8IgV77h5Go0YgEayZV2ozpyJdaihotAPEnVXZCp+zUepLjx69gF3KFuGTsU6Negf5bazSJ27dmp1IVRfdpqRA838YFyRcvRJISAj89e1NV37eIS5I1zLiiY8OHscLEnFevP7oHHkPWvJkzwcohH4s2GjnxZMyol4peLbO161SyloKiTZug7du4dRkobLo26Wn6gs9a29vwb+B5ls9s/vS5w+R0Lp+kztH6dVJTVnP3ffzDOTrjR7c43yZ99fIi2FchMMA9a/ivwIP3jlx/Hv5QYOefQUtxSDGgTgCaJx8paIhxnYH+geGgQEYIGA0a+NFQIYRngJGhGlEEIeIQE8aXw4klpqjiiiy26OKLMMYo44w0XhABACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAAE4ATQAABP8QyEmrvTjrzbv/YCiOZGmeaKqubOu+cCzPa2DfuE2ruOD/QB9uN7IBB8ikEgnUETk333JKZQpuT0zgV+1Sf4Esxegtd6/h7FZgbn+vz617/k3P5PS8Ei7bIv6AgYKDhIWBfC9+houMjIgsio2Sk4CPKZGUmY2WJnh6n2d2J555B6anpqCcRQKaf6iwp64IqyCYk7G5spq1HqRmusGndL0dv166CcrLunPFG7eLscvU1bGUzxnHVdPV3sqxbtkX21Td39/hbeMV5VOw6PEJsOKivmzAqPLy9GbsYwIIFCijbx+/Yf7sQQlIoOFAc6cMGkS1TqGGLQ0zPlxSUGI8ign/bTHMKJBjR4/pQHr5BwAjyZJKTqJMmaoMS5cvNw6QOdMawpUWtY0kqZNnT2Y/Q4l86bAhEqNH5yWtcnOoxow7I0b1plLpB5xXSUI9qrIAyT1BtVhlSgDeVqTDzLJlkpbcWrZjUVKUy5bAAJYt777M6xEV376AA/cdrHXr3sUNE4Nd7JasYciR66rFnLGyXr4DDiPWvJnzOYkHRItmmljCZMqe+a1e/bK1a3z5CM+jLXCx7dtzklFTcJlzbdIXcbcRVpw35N/A6TDnW8A5W+gT3HXRpdo6SezZlUuHRdt75hriQZkf3UJ7m/XXkYtwX8UvfNbyWYFSlZ8E/f1LgGdMRXoAUtXfKFIUSJWAtvyXBxpihJcggGBE2I4RBK6DxoF9rDHhGWBwSEQPQZQ4hIXz5aAiiiy26OKLMMYo44w01mjjjRdEAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQfIpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2yL+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlJmNliZ4ep9ndieeoKV7oiWYmgesrayah6giqpSutq2wf5wgpG63v616ux+9ZcDHwXPDHbSLwAnQ0cCZyxvFXbfR2tu3yrLMbL622+TStt6z4WbZ5e3dbdVa6sau7fYJ5/Df1gIF6/X37OUrE8/CFgII/WFrFTCgKzcFxwhAmLAKwIb3HpqJOOEgRQIK/5dcxOguGcF98j6CnDKOpECNXjhK8PgxJJKRLsvBDMVrokqbA3Dm5GaSJzGfNREmETrUHKuNKC/QpFiA4k2GTXUWrSITwFSQKoNizUr0aZKqVplENYhU5UemWTWidTug61e3BFqShXZuLt6uXtvizTt270O/bgEHHvy2MNnDjAkovosXLknIkScLHqx36IG5AxAnXpsyMsLOlxGL/qh45ubKqB2KXk2xtes27Bp+Hkzb9m3csaMp4LvbtErfgec8I4qWNmPkycUhYzW3gPPRl+b9O6b6em3SHq7R+7Xau2Tw4bVLd2X+L/qjppC0x+5CvBkCoY27j2E/Ptf3JPTn30cpOwg4IHQ9qTdgXQiGQMaCSaAhRkdcxAfGhBVEoSA8aAB4xxpSEASGh3FoGEQQQ2A4Sw4squjiizDGKOOMNNZo44045nhBBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQfIpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2yL+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlJmNliZ4ep9ndieeoKV7oiWYmgesrayah6giqpSutq2wf5wgpG63v616ux+9ZcDHwXPDHbSLwAnQ0cCZyxvFXbfR2tu3yrLMbL622+TStt6z4WbZ5e3dbdVa6sau7fYJ5/Df1gIF6/X37OUrE8/CFgII/WFrFTCgKzcFxwhAmLAKwIb3HpqJOOEgRQIK/5dcxOguGcF98j6CnDKOpECNXjhK8PgxJJKRLsvBDMVrokqbA3Dm5GaSJzGfNREmETrUHKuNKC/QpFiA4k2GTXUWrSITwFSQKoNizUr0aZKqVplENYhU5UemWTWidTug61e3BFqShXZuLt6uXtvizTt270O/bgEHHvy2MNnDjAkovosXLknIkScLHqx36IG5AxAnXpsyMsLOlxGL/qh45ubKqB2KXk2xtes27Bp+Hkzb9m3csaMp4LvbtErfgec8I4qWNmPkycUhYzW3gPPRl+b9O6b6em3SHq7R+7Xau2Tw4bVLd2X+L/qjppC0x+5CvBkCoY27j2E/Ptf3JPTn30cpOwg4IHQ9qTdgXQiGQMaCSaAhRkdcxAfGhBVEoSA8aAB4xxpSEASGh3FoGEQQQ2A4Sw4squjiizDGKOOMNNZo44045nhBBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAABOAE0AAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz2tg37hNq7jg/0AfbjeyAQfIpBIJ1BE5N99ySmUKbk9M4FftUn+BLMXoLXev4exWYG5/r8+te/5Nz+T0vBIu2yL+gIGCg4SFgXwvfoaLjIyILIqNkpOAjymRlJmNliZ4ep9ndieeeQemp6agnEUCmn+osKeuCKsgmJOxubKatR6kZrrBp3S9Hb9eugnKy7pzxRu3i7HL1NWxlM8Zx1XT1d7KsW7ZF9tU3d/f4W3jFeVTsOjxCbDior5swKjy8vRm7GMCCBQoo28fv2H+7EEJSKDhQHOnDBpEtU6hhi0NMz5cUlBiPIoJ/20xzCiQY0eP6UB6+QcAI8mSSk6iTJmqDEuXLzcOkDnTGsKVFrWNJKmTZ09mP0OJfOmwIRKjR+clrXJzqMaMOyNG9aZS6QecV0lCPaqyAMk9QbVYZUoA3lakw8yyZZKW3Fq2Y1FSlMuWwACWLe++zOsRFd++gAP3Hax1697FDRODXeyWrGHIkeuqxZyxsl6+Aw4j1ryZ8zmJB0SLZppYwmTKnvmtXv2ytWt8+QjPoy1wse3bc5JRU3CZc23SF3G3EVacN+TfwOkw51vAOVvoE9x10aXaOkns2ZVLh0Xbe+Ya4kGZH91Ce5v115GLcF/FL3zW8lmBUpWfBP39S4BnTEV6AFLV3yhSFEiVgLb8lwcaYoSXIIBgRNiOEQSug8aBfawx4RlgcEhED0GUOISF8+WgIoostujiizDGKOOMNNZo440XRAAAIf8LSW1hZ2VNYWdpY2sNZ2FtbWE9MC40NTQ1NQAh+QQBFAAAACwAAAAATgBNAAAE/xDISau9OOvNu/9gKI5kaZ5oqq5s675wLM9rYN+4Tau44P9AH243sgEHyKQSCdQROTffckplCm5PTOBX7VJ/gSzF6C13r+HsVmBuf6/PrXv+Tc/k9LwSLtsi/oCBgoOEhYF8L36Gi4yMiCyKjZKTgI8pkZSZjZYmeHoHoKGgekx2J55zoqqhepxFApqrsqGariCYjbO6tJS2HqhlswnDxLNzvh3AXavEzc6rbsgbuIbMztfDq5PSGcpU1tjY0GbcF97fouHqCarRpr9sZqrr6+3k78nxwaH09KJt5SpsIUCgwDJ+/fyxKhNwwkCCBA1OSZew3kKG+DQ8hFhwybyK6v/seWkIYCNHiUgoggx58UzGbgI4QkQ5QOVKcS2rkDR5MonNm89y1rkVU2ZEnwiBXvuHkajRiARrJlXajOnIl1qKGi0A8SdVdkKn7NR6kuPHr2AXcoW4ZOxTo16B/ltrNInbt2anUhVF92mpEDzfxgXJFy9EkhICPz17U1Xft4hLkjXMuKJjw4exwsTctbI/ugceQ9a8mTMBcJ9lijYaOfFkyp6Xil4ts7XrVLKWgqJNm6Dt27h1GShsujbpafqCz1rb2/Bv4HmWz2z+9LnD5HQun6TO0fp1UlNWc/d9/MM5OuNHtzjfJn318iLYVyEwwD1r+K/Ag/eOXH8e/lBg559BS3FIMaBOAJonHyloiHGdgf6B4aBARggYDRr40VAhhGeAkaEaUQQh4hATxpfDiSWmqOKKLLbo4oswxijjjDReEAEAIf8LSW1hZ2VNYWdpY2sNZ2FtbWE9MC40NTQ1NQAh+QQBFAAAACwAAAAATgBNAAAE/xDISau9OOvNu/9gKI5kaZ5oqq5s675wLM9rYN+4Tau44P9AH243sgEHyKQSCdQROTffckplCm5PTOBX7VJ/gSzF6C13r+HsVmBuf6/PrXv+Tc/k9LwSLtsi/oCBgoOEhYF8L36Gi4yMiCyKjZKTgI8pkZQIB5ucm5mVdih4dJ2lnHqWJaNtpq2nc6lFApSutZyUsSCYjK4Jvr+uuKEiq16mv8jJpm65HsVVx8nSvstmzVCzjdHT06aS1xrPVKXc5QmlbeBabGbk5uXo1sMd4lOd7++d6fPY7Zz4+PSVUWdhC4GDBaD9A2hOoBeCYwQcnEggoRJ3DLnFe8gvg0GKCP8vLswI7xVHXRJBhkRyj2TJTfJQqlw5oKXLbibPdFw3c6XNm8pyVoEo4eNMiz+BAhNaR2bPAgeTKj3HdApRAEZVQo06cupGnU61guyqVODWg1Z3Xsjak+uBqUs3nQW5R23BlG0pknXZaa7KJFex4s1LQCrDvoQJDAgsOPFEw/kQJ2bMNi9GgKX8tqU8OPHlhnM192Tc2LHbTQH9ilZJurTpwtvial4NsrVgUrYki81r+3YeVwZ0vz7Yu54/U1tpE+7tW09N3QWUj7brjJ3zJKql16Ze/boS0donMo/oHUn4zdxRej8/PZF1N4rZzxzv8X15ZulV2b9/koZx/oDlJ4pAFABaRZ8u/12HhhgTrLEfKkIwWEEUD6aDhoB3OFjhHmBgGAeFQQQxhITE5GAiiSimqOKKLLbo4oswxijjjBdEAAA7';
35729
35766
 
35730
- var img$b = 'data:image/gif;base64,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';
35767
+ var img$c = 'data:image/gif;base64,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';
35731
35768
 
35732
35769
  var DayNightPeriod = function DayNightPeriod(_ref) {
35733
35770
  var _periodOfDaySrcFiles;
35734
35771
  var periodOfDay = _ref.periodOfDay;
35735
- var periodOfDaySrcFiles = (_periodOfDaySrcFiles = {}, _periodOfDaySrcFiles[shared.PeriodOfDay.Morning] = img$a, _periodOfDaySrcFiles[shared.PeriodOfDay.Afternoon] = img$9, _periodOfDaySrcFiles[shared.PeriodOfDay.Night] = img$b, _periodOfDaySrcFiles);
35772
+ var periodOfDaySrcFiles = (_periodOfDaySrcFiles = {}, _periodOfDaySrcFiles[shared.PeriodOfDay.Morning] = img$b, _periodOfDaySrcFiles[shared.PeriodOfDay.Afternoon] = img$a, _periodOfDaySrcFiles[shared.PeriodOfDay.Night] = img$c, _periodOfDaySrcFiles);
35736
35773
  return React__default.createElement(GifContainer, null, React__default.createElement("img", {
35737
35774
  src: periodOfDaySrcFiles[periodOfDay]
35738
35775
  }));
@@ -35742,14 +35779,14 @@ var GifContainer = /*#__PURE__*/styled.div.withConfig({
35742
35779
  componentId: "sc-10t97fw-0"
35743
35780
  })(["width:100%;img{width:67%;}"]);
35744
35781
 
35745
- var img$c = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAABHCAYAAAA0qHhdAAAAAXNSR0IArs4c6QAABGRJREFUeJztnb9PGzEUx7+JMjC0Uge6tVsVdTghQP0D2qgjzGz8D8woE2LO/5CNOcwlU9WJRCgDYmWJRAYkFgak6wDv5HPsO9/P8J79WUhicr7nzz3bOV8uHbRPXOXN2x++1LUfYnh4uu8AQK+FulLy7hbHxn96vrh22tjW0b7xPVtH+87bkMbnj1/jh6f7TqfBOmKgurwy6MJ10VRuKqNylwMl7wBy3U5WuetBOhg9om6ZSRaqEtvImJ2zRfL4/GA3eXy494LJzNwBmcpc//9w7wUAMJn1ktdt5bbnaj228qw6VeqWGbctUEXNxn40Fj+2/jn5lHpel8xUd+oqcedsUajum2HkNHEiqf1oDAD4/e1HkWrYMF8uE6GTWQ+j6aryBCh2lVhUXt77bXJpP2i/+tE41e1y5uo2W1cVmfHd4rhxiXnbdZEqReiv76/jpE1q2YbOFNmUwDxsYreO9lkLvbrtJSLp+Xy5xN9/g8TBYPSIboltv0uRWXU/X1zjbnGM08t527tUC7aM1B0UbXiryE1KNGHKUu4ZqjKarpLMpAlQkcxkIxIw7xP3DLVBnzldZbISSUgXqvtwkclSJCFNqDpu0mdqOkOUJ5O1SEKSUHVWWyQzRYgkJAml7KTMzBszRYkkJAhVu1ny49rNpuAskuAaw9VtL/d0nikwY1ZybQQb+udQ+gzKZbXFtGqiq3Y63yoR6m770Rg3wyi1gK1iel1dQNbLqazsX9M2dKib1bPNi6wkbNl5M4w2tUulGIwe8fB031nrhH0RCbzGpgrVJxSEaYXfdoWCrdxE1lUNtnJ9+6PpKrmgSxUVm45IyTIB8zncnbPF2th58nMbo+kq9zUX8t5XpC4SCQSZVpkovzy4MWiHvRRJSBFaZj0z8E6xyvQlKwE5sYbMFEQXlvHSd97apNL3YtomZKYgjDKljCFFkBBzyExBBJmCCDIFEWQKIsgURJApiCBTEEGmILqA26q4b3Bsk5CZgjDKdL1/gCQkxJzI5NitNAXXtugC6HC5NL9N3tqE1cn3MGYKIiVT7V4kjCGuqLFy7WIBw61jOAdTFikxp66bPT/YXbsnm4RF2yz0Hmgy67EcLwHDmCnlKC0D99hVmcmslntQZaCYuWYlYPgWmOkeOaeXc5bB5XF+sLs2yeMs05iC+rh5uBfF0sbO17EyHSf3HkkfMzunl3P2QZWB88SHsO246JmtpBmsSuYZoMmsJ+5Egn6CQFIvlHUkrk2GKFO5ZiiJ1AVKyEogPwDj7BbgN8M1zVwBOSIBtyDYC/VBJOAeCFuhvogEigXDTqhPIoESd4LmItQ3kUC5oKxCgc1LtUkEZIsEKvx6wnsU6rNIoFpwmUKJpsVmCVT2ARAuEqgeoJNQoH6pLhLf6gU8EAnUE2QMoPDPSxSV6ypP2T499EIkUG+gzlnaND5lo0pjv5/Ztljt2l/vRALNBl2q+y2Kj92pjTYaIDXWVZVruPree4nEJhqi6ppokGfhP6xr60VVr5O+AAAAAElFTkSuQmCC';
35782
+ var img$d = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAABHCAYAAAA0qHhdAAAAAXNSR0IArs4c6QAABGRJREFUeJztnb9PGzEUx7+JMjC0Uge6tVsVdTghQP0D2qgjzGz8D8woE2LO/5CNOcwlU9WJRCgDYmWJRAYkFgak6wDv5HPsO9/P8J79WUhicr7nzz3bOV8uHbRPXOXN2x++1LUfYnh4uu8AQK+FulLy7hbHxn96vrh22tjW0b7xPVtH+87bkMbnj1/jh6f7TqfBOmKgurwy6MJ10VRuKqNylwMl7wBy3U5WuetBOhg9om6ZSRaqEtvImJ2zRfL4/GA3eXy494LJzNwBmcpc//9w7wUAMJn1ktdt5bbnaj228qw6VeqWGbctUEXNxn40Fj+2/jn5lHpel8xUd+oqcedsUajum2HkNHEiqf1oDAD4/e1HkWrYMF8uE6GTWQ+j6aryBCh2lVhUXt77bXJpP2i/+tE41e1y5uo2W1cVmfHd4rhxiXnbdZEqReiv76/jpE1q2YbOFNmUwDxsYreO9lkLvbrtJSLp+Xy5xN9/g8TBYPSIboltv0uRWXU/X1zjbnGM08t527tUC7aM1B0UbXiryE1KNGHKUu4ZqjKarpLMpAlQkcxkIxIw7xP3DLVBnzldZbISSUgXqvtwkclSJCFNqDpu0mdqOkOUJ5O1SEKSUHVWWyQzRYgkJAml7KTMzBszRYkkJAhVu1ny49rNpuAskuAaw9VtL/d0nikwY1ZybQQb+udQ+gzKZbXFtGqiq3Y63yoR6m770Rg3wyi1gK1iel1dQNbLqazsX9M2dKib1bPNi6wkbNl5M4w2tUulGIwe8fB031nrhH0RCbzGpgrVJxSEaYXfdoWCrdxE1lUNtnJ9+6PpKrmgSxUVm45IyTIB8zncnbPF2th58nMbo+kq9zUX8t5XpC4SCQSZVpkovzy4MWiHvRRJSBFaZj0z8E6xyvQlKwE5sYbMFEQXlvHSd97apNL3YtomZKYgjDKljCFFkBBzyExBBJmCCDIFEWQKIsgURJApiCBTEEGmILqA26q4b3Bsk5CZgjDKdL1/gCQkxJzI5NitNAXXtugC6HC5NL9N3tqE1cn3MGYKIiVT7V4kjCGuqLFy7WIBw61jOAdTFikxp66bPT/YXbsnm4RF2yz0Hmgy67EcLwHDmCnlKC0D99hVmcmslntQZaCYuWYlYPgWmOkeOaeXc5bB5XF+sLs2yeMs05iC+rh5uBfF0sbO17EyHSf3HkkfMzunl3P2QZWB88SHsO246JmtpBmsSuYZoMmsJ+5Egn6CQFIvlHUkrk2GKFO5ZiiJ1AVKyEogPwDj7BbgN8M1zVwBOSIBtyDYC/VBJOAeCFuhvogEigXDTqhPIoESd4LmItQ3kUC5oKxCgc1LtUkEZIsEKvx6wnsU6rNIoFpwmUKJpsVmCVT2ARAuEqgeoJNQoH6pLhLf6gU8EAnUE2QMoPDPSxSV6ypP2T499EIkUG+gzlnaND5lo0pjv5/Ztljt2l/vRALNBl2q+y2Kj92pjTYaIDXWVZVruPree4nEJhqi6ppokGfhP6xr60VVr5O+AAAAAElFTkSuQmCC';
35746
35783
 
35747
35784
  var TimeWidget = function TimeWidget(_ref) {
35748
35785
  var onClose = _ref.onClose,
35749
35786
  TimeClock = _ref.TimeClock,
35750
35787
  periodOfDay = _ref.periodOfDay;
35751
35788
  return React__default.createElement(Draggable, null, React__default.createElement(WidgetContainer, null, React__default.createElement(CloseButton$4, {
35752
- onClick: onClose
35789
+ onPointerDown: onClose
35753
35790
  }, "X"), React__default.createElement(DayNightContainer, null, React__default.createElement(DayNightPeriod, {
35754
35791
  periodOfDay: periodOfDay
35755
35792
  })), React__default.createElement(Time, null, TimeClock)));
@@ -35757,7 +35794,7 @@ var TimeWidget = function TimeWidget(_ref) {
35757
35794
  var WidgetContainer = /*#__PURE__*/styled.div.withConfig({
35758
35795
  displayName: "TimeWidget__WidgetContainer",
35759
35796
  componentId: "sc-1ja236h-0"
35760
- })(["background-image:url(", ");background-size:10rem;background-repeat:no-repeat;width:10rem;position:absolute;height:100px;"], img$c);
35797
+ })(["background-image:url(", ");background-size:10rem;background-repeat:no-repeat;width:10rem;position:absolute;height:100px;"], img$d);
35761
35798
  var Time = /*#__PURE__*/styled.div.withConfig({
35762
35799
  displayName: "TimeWidget__Time",
35763
35800
  componentId: "sc-1ja236h-1"
@@ -35819,26 +35856,22 @@ var TradingItemRow = function TradingItemRow(_ref) {
35819
35856
  size: 32,
35820
35857
  className: "arrow-selector",
35821
35858
  direction: "left",
35822
- onClick: onLeftOutClick,
35823
- onTouchStart: onLeftOutClick
35859
+ onPointerDown: onLeftOutClick
35824
35860
  }), React__default.createElement(StyledArrow, {
35825
35861
  size: 32,
35826
35862
  className: "arrow-selector",
35827
35863
  direction: "left",
35828
- onClick: onLeftClick,
35829
- onTouchStart: onLeftClick
35864
+ onPointerDown: onLeftClick
35830
35865
  }), React__default.createElement(QuantityDisplay, null, React__default.createElement(TextOverlay$2, null, React__default.createElement(Item$1, null, selectedQty))), React__default.createElement(StyledArrow, {
35831
35866
  size: 32,
35832
35867
  className: "arrow-selector",
35833
35868
  direction: "right",
35834
- onClick: onRightClick,
35835
- onTouchStart: onRightClick
35869
+ onPointerDown: onRightClick
35836
35870
  }), React__default.createElement(SelectArrow, {
35837
35871
  size: 32,
35838
35872
  className: "arrow-selector",
35839
35873
  direction: "right",
35840
- onClick: onRightOutClick,
35841
- onTouchStart: onRightOutClick
35874
+ onPointerDown: onRightOutClick
35842
35875
  })));
35843
35876
  };
35844
35877
  var StyledArrow = /*#__PURE__*/styled(SelectArrow).withConfig({
@@ -35965,12 +35998,12 @@ var TradingMenu = function TradingMenu(_ref) {
35965
35998
  })), React__default.createElement(GoldWrapper, null, React__default.createElement("p", null, "Available Gold:"), React__default.createElement("p", null, "$", characterAvailableGold)), React__default.createElement(TotalWrapper, null, React__default.createElement("p", null, "Total:"), React__default.createElement("p", null, "$", sum)), !hasGoldForSale() ? React__default.createElement(AlertWrapper, null, React__default.createElement("p", null, " Sorry, not enough money.")) : React__default.createElement(GoldWrapper, null, React__default.createElement("p", null, "Final Gold:"), React__default.createElement("p", null, "$", getFinalGold())), React__default.createElement(ButtonWrapper$2, null, React__default.createElement(Button, {
35966
35999
  buttonType: exports.ButtonTypes.RPGUIButton,
35967
36000
  disabled: !hasGoldForSale(),
35968
- onClick: function onClick() {
36001
+ onPointerDown: function onPointerDown() {
35969
36002
  return onConfirmClick();
35970
36003
  }
35971
36004
  }, "Confirm"), React__default.createElement(Button, {
35972
36005
  buttonType: exports.ButtonTypes.RPGUIButton,
35973
- onClick: function onClick() {
36006
+ onPointerDown: function onPointerDown() {
35974
36007
  return onClose();
35975
36008
  }
35976
36009
  }, "Cancel"))));
@@ -36009,230 +36042,17 @@ var Truncate = function Truncate(_ref) {
36009
36042
  var _ref$maxLines = _ref.maxLines,
36010
36043
  maxLines = _ref$maxLines === void 0 ? 1 : _ref$maxLines,
36011
36044
  children = _ref.children;
36012
- return React__default.createElement(Container$j, {
36045
+ return React__default.createElement(Container$k, {
36013
36046
  maxLines: maxLines
36014
36047
  }, children);
36015
36048
  };
36016
- var Container$j = /*#__PURE__*/styled.div.withConfig({
36049
+ var Container$k = /*#__PURE__*/styled.div.withConfig({
36017
36050
  displayName: "Truncate__Container",
36018
36051
  componentId: "sc-6x00qb-0"
36019
36052
  })(["display:-webkit-box;max-width:100%;max-height:100%;-webkit-line-clamp:", ";-webkit-box-orient:vertical;overflow:hidden;"], function (props) {
36020
36053
  return props.maxLines;
36021
36054
  });
36022
36055
 
36023
- var IS_MOBILE_OR_TABLET = /*#__PURE__*/shared.isMobileOrTablet();
36024
-
36025
- var chunkString = function chunkString(str, length) {
36026
- return str.match(new RegExp('.{1,' + length + '}', 'g'));
36027
- };
36028
-
36029
- var img$d = 'data:image/gif;base64,R0lGODlhEAAQAPIAAAAAABQYLiw1TUBJc2hvmQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAM9CLrc/lCFGSKYJJP5AhlguDnBMIVgxXgmJapSSp3mKs/pKrT0IMCXUk+2Cgh2oSOnaDz+lswZpSOFUq2KBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAIzhI+py90Bg4OjDrjCELxfFQhQx0mIJkaeaYRp5LJADMdnqXbyOJLYTdKBejjZoRaZJBMFACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAABAAEAAAAjKEj6nL7Y+CDE6OO+QKQ/ifKYEgfR4VddPohQe7lmR0xidNTib65uacYP2AQWGuMlEUAAA7';
36030
-
36031
- var NPCDialogText = function NPCDialogText(_ref) {
36032
- var text = _ref.text,
36033
- onClose = _ref.onClose,
36034
- onEndStep = _ref.onEndStep,
36035
- onStartStep = _ref.onStartStep,
36036
- type = _ref.type;
36037
- var windowSize = React.useRef([window.innerWidth, window.innerHeight]);
36038
- function maxCharacters(width) {
36039
- // Set the font size to 16 pixels
36040
- var fontSize = 11.2;
36041
- // Calculate the number of characters that can fit in one line
36042
- var charactersPerLine = Math.floor(width / 2 / fontSize);
36043
- // Calculate the number of lines that can fit in the div
36044
- var linesPerDiv = Math.floor(180 / fontSize);
36045
- // Calculate the maximum number of characters that can fit in the div
36046
- var maxCharacters = charactersPerLine * linesPerDiv;
36047
- // Return the maximum number of characters
36048
- return Math.round(maxCharacters / 5);
36049
- }
36050
- var textChunks = chunkString(text, maxCharacters(windowSize.current[0]));
36051
- var _useState = React.useState(0),
36052
- chunkIndex = _useState[0],
36053
- setChunkIndex = _useState[1];
36054
- var onHandleSpacePress = function onHandleSpacePress(event) {
36055
- if (event.code === 'Space') {
36056
- goToNextStep();
36057
- }
36058
- };
36059
- var goToNextStep = function goToNextStep() {
36060
- var hasNextChunk = (textChunks == null ? void 0 : textChunks[chunkIndex + 1]) || false;
36061
- if (hasNextChunk) {
36062
- setChunkIndex(function (prev) {
36063
- return prev + 1;
36064
- });
36065
- } else {
36066
- // if there's no more text chunks, close the dialog
36067
- onClose();
36068
- }
36069
- };
36070
- React.useEffect(function () {
36071
- document.addEventListener('keydown', onHandleSpacePress);
36072
- return function () {
36073
- return document.removeEventListener('keydown', onHandleSpacePress);
36074
- };
36075
- }, [chunkIndex]);
36076
- var _useState2 = React.useState(false),
36077
- showGoNextIndicator = _useState2[0],
36078
- setShowGoNextIndicator = _useState2[1];
36079
- return React__default.createElement(Container$k, null, React__default.createElement(DynamicText, {
36080
- text: (textChunks == null ? void 0 : textChunks[chunkIndex]) || '',
36081
- onFinish: function onFinish() {
36082
- setShowGoNextIndicator(true);
36083
- onEndStep && onEndStep();
36084
- },
36085
- onStart: function onStart() {
36086
- setShowGoNextIndicator(false);
36087
- onStartStep && onStartStep();
36088
- }
36089
- }), showGoNextIndicator && React__default.createElement(PressSpaceIndicator$1, {
36090
- right: type === exports.NPCDialogType.TextOnly ? '1rem' : '10.5rem',
36091
- src: IS_MOBILE_OR_TABLET ? img$d : img$7,
36092
- onClick: function onClick() {
36093
- goToNextStep();
36094
- }
36095
- }));
36096
- };
36097
- var Container$k = /*#__PURE__*/styled.div.withConfig({
36098
- displayName: "NPCDialogText__Container",
36099
- componentId: "sc-1cxkdh9-0"
36100
- })([""]);
36101
- var PressSpaceIndicator$1 = /*#__PURE__*/styled.img.withConfig({
36102
- displayName: "NPCDialogText__PressSpaceIndicator",
36103
- componentId: "sc-1cxkdh9-1"
36104
- })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref2) {
36105
- var right = _ref2.right;
36106
- return right;
36107
- });
36108
-
36109
- (function (NPCDialogType) {
36110
- NPCDialogType["TextOnly"] = "TextOnly";
36111
- NPCDialogType["TextAndThumbnail"] = "TextAndThumbnail";
36112
- })(exports.NPCDialogType || (exports.NPCDialogType = {}));
36113
- var NPCDialog = function NPCDialog(_ref) {
36114
- var text = _ref.text,
36115
- type = _ref.type,
36116
- _onClose = _ref.onClose,
36117
- imagePath = _ref.imagePath,
36118
- _ref$isQuestionDialog = _ref.isQuestionDialog,
36119
- isQuestionDialog = _ref$isQuestionDialog === void 0 ? false : _ref$isQuestionDialog,
36120
- questions = _ref.questions,
36121
- answers = _ref.answers;
36122
- return React__default.createElement(RPGUIContainer, {
36123
- type: exports.RPGUIContainerTypes.FramedGold,
36124
- width: isQuestionDialog ? '600px' : '80%',
36125
- height: '180px'
36126
- }, isQuestionDialog && questions && answers ? React__default.createElement(React__default.Fragment, null, React__default.createElement(TextContainer$2, {
36127
- flex: type === exports.NPCDialogType.TextAndThumbnail ? '70%' : '100%'
36128
- }, React__default.createElement(QuestionDialog, {
36129
- questions: questions,
36130
- answers: answers,
36131
- onClose: function onClose() {
36132
- if (_onClose) {
36133
- _onClose();
36134
- }
36135
- }
36136
- })), type === exports.NPCDialogType.TextAndThumbnail && React__default.createElement(ThumbnailContainer$1, null, React__default.createElement(NPCThumbnail$1, {
36137
- src: imagePath || img$6
36138
- }))) : React__default.createElement(React__default.Fragment, null, React__default.createElement(Container$l, null, React__default.createElement(TextContainer$2, {
36139
- flex: type === exports.NPCDialogType.TextAndThumbnail ? '70%' : '100%'
36140
- }, React__default.createElement(NPCDialogText, {
36141
- type: type,
36142
- text: text || 'No text provided.',
36143
- onClose: function onClose() {
36144
- if (_onClose) {
36145
- _onClose();
36146
- }
36147
- }
36148
- })), type === exports.NPCDialogType.TextAndThumbnail && React__default.createElement(ThumbnailContainer$1, null, React__default.createElement(NPCThumbnail$1, {
36149
- src: imagePath || img$6
36150
- })))));
36151
- };
36152
- var Container$l = /*#__PURE__*/styled.div.withConfig({
36153
- displayName: "NPCDialog__Container",
36154
- componentId: "sc-1b4aw74-0"
36155
- })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
36156
- var TextContainer$2 = /*#__PURE__*/styled.div.withConfig({
36157
- displayName: "NPCDialog__TextContainer",
36158
- componentId: "sc-1b4aw74-1"
36159
- })(["flex:", " 0 0;width:355px;"], function (_ref2) {
36160
- var flex = _ref2.flex;
36161
- return flex;
36162
- });
36163
- var ThumbnailContainer$1 = /*#__PURE__*/styled.div.withConfig({
36164
- displayName: "NPCDialog__ThumbnailContainer",
36165
- componentId: "sc-1b4aw74-2"
36166
- })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
36167
- var NPCThumbnail$1 = /*#__PURE__*/styled.img.withConfig({
36168
- displayName: "NPCDialog__NPCThumbnail",
36169
- componentId: "sc-1b4aw74-3"
36170
- })(["image-rendering:pixelated;height:128px;width:128px;"]);
36171
-
36172
- var HistoryDialog = function HistoryDialog(_ref) {
36173
- var backgroundImgPath = _ref.backgroundImgPath,
36174
- fullCoverBackground = _ref.fullCoverBackground,
36175
- questions = _ref.questions,
36176
- answers = _ref.answers,
36177
- text = _ref.text,
36178
- imagePath = _ref.imagePath,
36179
- textAndTypeArray = _ref.textAndTypeArray,
36180
- onClose = _ref.onClose;
36181
- var _useState = React.useState(0),
36182
- img = _useState[0],
36183
- setImage = _useState[1];
36184
- var onHandleSpacePress = function onHandleSpacePress(event) {
36185
- if (event.code === 'Space') {
36186
- if (img < (backgroundImgPath == null ? void 0 : backgroundImgPath.length) - 1) {
36187
- setImage(function (prev) {
36188
- return prev + 1;
36189
- });
36190
- } else {
36191
- // if there's no more text chunks, close the dialog
36192
- onClose();
36193
- }
36194
- }
36195
- };
36196
- React.useEffect(function () {
36197
- document.addEventListener('keydown', onHandleSpacePress);
36198
- return function () {
36199
- return document.removeEventListener('keydown', onHandleSpacePress);
36200
- };
36201
- }, [backgroundImgPath]);
36202
- return React__default.createElement(BackgroundContainer, {
36203
- imgPath: backgroundImgPath[img],
36204
- fullImg: fullCoverBackground
36205
- }, React__default.createElement(DialogContainer, null, textAndTypeArray ? React__default.createElement(NPCMultiDialog, {
36206
- textAndTypeArray: textAndTypeArray,
36207
- onClose: onClose
36208
- }) : questions && answers ? React__default.createElement(QuestionDialog, {
36209
- questions: questions,
36210
- answers: answers,
36211
- onClose: onClose
36212
- }) : text && imagePath ? React__default.createElement(NPCDialog, {
36213
- text: text,
36214
- imagePath: imagePath,
36215
- onClose: onClose,
36216
- type: exports.NPCDialogType.TextAndThumbnail
36217
- }) : React__default.createElement(NPCDialog, {
36218
- text: text,
36219
- onClose: onClose,
36220
- type: exports.NPCDialogType.TextOnly
36221
- })));
36222
- };
36223
- var BackgroundContainer = /*#__PURE__*/styled.div.withConfig({
36224
- displayName: "HistoryDialog__BackgroundContainer",
36225
- componentId: "sc-u6oe75-0"
36226
- })(["width:100%;height:100%;background-image:url(", ");background-size:", ";display:flex;justify-content:space-evenly;align-items:center;"], function (props) {
36227
- return props.imgPath;
36228
- }, function (props) {
36229
- return props.imgPath ? 'cover' : 'auto';
36230
- });
36231
- var DialogContainer = /*#__PURE__*/styled.div.withConfig({
36232
- displayName: "HistoryDialog__DialogContainer",
36233
- componentId: "sc-u6oe75-1"
36234
- })(["display:flex;justify-content:center;padding-top:200px;"]);
36235
-
36236
36056
  exports.Button = Button;
36237
36057
  exports.CharacterSelection = CharacterSelection;
36238
36058
  exports.Chat = Chat;
@@ -36260,12 +36080,13 @@ exports.PropertySelect = PropertySelect;
36260
36080
  exports.QuestInfo = QuestInfo;
36261
36081
  exports.QuestList = QuestList;
36262
36082
  exports.QuestionDialog = QuestionDialog;
36083
+ exports.QuickSpells = QuickSpells;
36263
36084
  exports.RPGUIContainer = RPGUIContainer;
36264
36085
  exports.RPGUIRoot = RPGUIRoot;
36265
36086
  exports.RangeSlider = RangeSlider;
36266
- exports.Shortcuts = Shortcuts;
36267
36087
  exports.SkillProgressBar = SkillProgressBar;
36268
36088
  exports.SkillsContainer = SkillsContainer;
36089
+ exports.SpellShortcut = SpellShortcut;
36269
36090
  exports.Spellbook = Spellbook;
36270
36091
  exports.SpriteFromAtlas = SpriteFromAtlas;
36271
36092
  exports.TextArea = TextArea;