@rpg-engine/long-bow 0.3.58 → 0.3.60

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 (157) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +181 -181
  3. package/dist/components/CircularController/CircularController.d.ts +6 -3
  4. package/dist/components/Item/Inventory/ItemContainer.d.ts +4 -1
  5. package/dist/components/Item/Inventory/ItemSlot.d.ts +1 -0
  6. package/dist/components/Shortcuts/Shortcuts.d.ts +12 -0
  7. package/dist/components/Shortcuts/ShortcutsSetter.d.ts +12 -0
  8. package/dist/components/Shortcuts/SingleShortcut.d.ts +1 -0
  9. package/dist/components/Spellbook/Spellbook.d.ts +5 -3
  10. package/dist/components/Spellbook/constants.d.ts +3 -3
  11. package/dist/index.d.ts +1 -1
  12. package/dist/long-bow.cjs.development.js +1126 -963
  13. package/dist/long-bow.cjs.development.js.map +1 -1
  14. package/dist/long-bow.cjs.production.min.js +1 -1
  15. package/dist/long-bow.cjs.production.min.js.map +1 -1
  16. package/dist/long-bow.esm.js +849 -685
  17. package/dist/long-bow.esm.js.map +1 -1
  18. package/dist/stories/{QuickSpells.stories.d.ts → Shortcuts.stories.d.ts} +2 -2
  19. package/package.json +100 -100
  20. package/src/components/Abstractions/SlotsContainer.tsx +45 -45
  21. package/src/components/Arrow/SelectArrow.tsx +69 -69
  22. package/src/components/Arrow/img/arrow01-left-clicked.png +0 -0
  23. package/src/components/Arrow/img/arrow01-left.png +0 -0
  24. package/src/components/Arrow/img/arrow01-right-clicked.png +0 -0
  25. package/src/components/Arrow/img/arrow01-right.png +0 -0
  26. package/src/components/Arrow/img/arrow02-left-clicked.png +0 -0
  27. package/src/components/Arrow/img/arrow02-left.png +0 -0
  28. package/src/components/Arrow/img/arrow02-right-clicked.png +0 -0
  29. package/src/components/Arrow/img/arrow02-right.png +0 -0
  30. package/src/components/Button.tsx +40 -40
  31. package/src/components/Character/CharacterSelection.tsx +96 -96
  32. package/src/components/CharacterStatus/CharacterStatus.tsx +120 -120
  33. package/src/components/Chat/Chat.tsx +195 -195
  34. package/src/components/Chatdeprecated/ChatDeprecated.tsx +198 -198
  35. package/src/components/CheckButton.tsx +65 -65
  36. package/src/components/CircularController/CircularController.tsx +248 -162
  37. package/src/components/CraftBook/CraftBook.tsx +224 -224
  38. package/src/components/CraftBook/MockItems.ts +46 -46
  39. package/src/components/DraggableContainer.tsx +153 -153
  40. package/src/components/Dropdown.tsx +90 -90
  41. package/src/components/DropdownSelectorContainer.tsx +42 -42
  42. package/src/components/Equipment/EquipmentSet.tsx +190 -190
  43. package/src/components/HistoryDialog.tsx +104 -104
  44. package/src/components/Input.tsx +15 -15
  45. package/src/components/Item/Cards/ItemTooltip.tsx +33 -33
  46. package/src/components/Item/Inventory/ErrorBoundary.tsx +42 -42
  47. package/src/components/Item/Inventory/ItemContainer.tsx +210 -175
  48. package/src/components/Item/Inventory/ItemContainerTypes.ts +6 -6
  49. package/src/components/Item/Inventory/ItemQuantitySelector.tsx +138 -138
  50. package/src/components/Item/Inventory/ItemSlot.tsx +501 -467
  51. package/src/components/Item/Inventory/itemContainerHelper.ts +156 -156
  52. package/src/components/ListMenu.tsx +63 -63
  53. package/src/components/Multitab/Tab.tsx +66 -66
  54. package/src/components/Multitab/TabBody.tsx +13 -13
  55. package/src/components/Multitab/TabsContainer.tsx +97 -97
  56. package/src/components/NPCDialog/NPCDialog.tsx +121 -121
  57. package/src/components/NPCDialog/NPCDialogText.tsx +113 -113
  58. package/src/components/NPCDialog/NPCMultiDialog.tsx +159 -159
  59. package/src/components/NPCDialog/QuestionDialog/QuestionDialog.tsx +237 -237
  60. package/src/components/ProgressBar.tsx +92 -92
  61. package/src/components/PropertySelect/PropertySelect.tsx +106 -106
  62. package/src/components/QuestInfo/QuestInfo.tsx +230 -230
  63. package/src/components/QuestList.tsx +129 -129
  64. package/src/components/RPGUIContainer.tsx +47 -47
  65. package/src/components/RPGUIForceRenderStart.tsx +45 -45
  66. package/src/components/RPGUIRoot.tsx +14 -14
  67. package/src/components/RadioButton.tsx +53 -53
  68. package/src/components/RadioInput/RadioButton.tsx +96 -96
  69. package/src/components/RadioInput/RadioInput.tsx +102 -102
  70. package/src/components/RadioInput/instruments.ts +15 -15
  71. package/src/components/RangeSlider.tsx +78 -78
  72. package/src/components/RelativeListMenu.tsx +83 -83
  73. package/src/components/ScrollList.tsx +79 -79
  74. package/src/components/Shortcuts/Shortcuts.tsx +151 -0
  75. package/src/components/Shortcuts/ShortcutsSetter.tsx +132 -0
  76. package/src/components/Shortcuts/SingleShortcut.ts +62 -0
  77. package/src/components/SimpleProgressBar.tsx +62 -62
  78. package/src/components/SkillProgressBar.tsx +133 -133
  79. package/src/components/SkillsContainer.tsx +198 -198
  80. package/src/components/Spellbook/Spell.tsx +201 -201
  81. package/src/components/Spellbook/Spellbook.tsx +150 -144
  82. package/src/components/Spellbook/constants.ts +8 -12
  83. package/src/components/Spellbook/mockSpells.ts +60 -60
  84. package/src/components/StaticBook/StaticBook.tsx +103 -103
  85. package/src/components/TextArea.tsx +11 -11
  86. package/src/components/TimeWidget/DayNightPeriod/DayNightPeriod.tsx +35 -35
  87. package/src/components/TimeWidget/TimeWidget.tsx +63 -63
  88. package/src/components/TradingMenu/TradingItemRow.tsx +193 -193
  89. package/src/components/TradingMenu/TradingMenu.tsx +203 -203
  90. package/src/components/TradingMenu/items.mock.ts +96 -96
  91. package/src/components/Truncate.tsx +25 -25
  92. package/src/components/itemSelector/ItemSelector.tsx +136 -136
  93. package/src/components/shared/Column.tsx +16 -16
  94. package/src/components/shared/Ellipsis.tsx +65 -65
  95. package/src/components/shared/SpriteFromAtlas.tsx +102 -102
  96. package/src/components/typography/DynamicText.tsx +49 -49
  97. package/src/constants/uiColors.ts +20 -20
  98. package/src/constants/uiDevices.ts +3 -3
  99. package/src/constants/uiFonts.ts +12 -12
  100. package/src/hooks/useEventListener.ts +21 -21
  101. package/src/hooks/useOutsideAlerter.ts +25 -25
  102. package/src/index.tsx +40 -40
  103. package/src/libs/StringHelpers.ts +3 -3
  104. package/src/mocks/atlas/entities/entities.json +20215 -20215
  105. package/src/mocks/atlas/icons/icons.json +735 -735
  106. package/src/mocks/atlas/items/items.json +12086 -12086
  107. package/src/mocks/equipmentSet.mocks.ts +393 -393
  108. package/src/mocks/itemContainer.mocks.ts +562 -560
  109. package/src/mocks/skills.mocks.ts +128 -128
  110. package/src/stories/Arrow.stories.tsx +26 -26
  111. package/src/stories/Button.stories.tsx +36 -36
  112. package/src/stories/CharacterSelection.stories.tsx +45 -45
  113. package/src/stories/CharacterStatus.stories.tsx +29 -29
  114. package/src/stories/Chat.stories.tsx +187 -187
  115. package/src/stories/ChatDeprecated.stories.tsx +170 -170
  116. package/src/stories/CheckButton.stories.tsx +48 -48
  117. package/src/stories/CircullarController.stories.tsx +37 -33
  118. package/src/stories/CraftBook.stories.tsx +40 -40
  119. package/src/stories/DayNightPeriod.stories.tsx +27 -27
  120. package/src/stories/DraggableContainer.stories.tsx +28 -28
  121. package/src/stories/Dropdown.stories.tsx +46 -46
  122. package/src/stories/DropdownSelectorContainer.stories.tsx +41 -41
  123. package/src/stories/EquipmentSet.stories.tsx +65 -65
  124. package/src/stories/HistoryDialog.stories.tsx +61 -61
  125. package/src/stories/ItemContainer.stories.tsx +198 -124
  126. package/src/stories/ItemQuantitySelector.stories.tsx +26 -26
  127. package/src/stories/ItemSelector.stories.tsx +77 -77
  128. package/src/stories/ItemTradingComponent.stories.tsx +35 -35
  129. package/src/stories/ListMenu.stories.tsx +56 -56
  130. package/src/stories/Multitab.stories.tsx +51 -51
  131. package/src/stories/NPCDialog.stories.tsx +130 -130
  132. package/src/stories/NPCMultiDialog.stories.tsx +71 -71
  133. package/src/stories/ProgressBar.stories.tsx +23 -23
  134. package/src/stories/PropertySelect.stories.tsx +40 -40
  135. package/src/stories/QuestInfo.stories.tsx +107 -107
  136. package/src/stories/QuestList.stories.tsx +82 -82
  137. package/src/stories/RPGUIContainers.stories.tsx +42 -42
  138. package/src/stories/RadioButton.stories.tsx +49 -49
  139. package/src/stories/RadioInput.stories.tsx +34 -34
  140. package/src/stories/RangeSlider.stories.tsx +64 -64
  141. package/src/stories/ScrollList.stories.tsx +85 -85
  142. package/src/stories/Shortcuts.stories.tsx +39 -0
  143. package/src/stories/SimpleProgressBar.stories.tsx +22 -22
  144. package/src/stories/SkillProgressBar.stories.tsx +34 -34
  145. package/src/stories/SkillsContainer.stories.tsx +35 -35
  146. package/src/stories/Spellbook.stories.tsx +104 -107
  147. package/src/stories/StaticBook.stories.tsx +32 -32
  148. package/src/stories/Text.stories.tsx +42 -42
  149. package/src/stories/TimeWidget.stories.tsx +27 -27
  150. package/src/stories/TradingMenu.stories.tsx +45 -45
  151. package/src/types/eventTypes.ts +4 -4
  152. package/src/types/index.d.ts +2 -2
  153. package/dist/components/Spellbook/QuickSpells.d.ts +0 -10
  154. package/dist/components/Spellbook/SpellbookShortcuts.d.ts +0 -10
  155. package/src/components/Spellbook/QuickSpells.tsx +0 -120
  156. package/src/components/Spellbook/SpellbookShortcuts.tsx +0 -77
  157. package/src/stories/QuickSpells.stories.tsx +0 -38
@@ -33054,62 +33054,20 @@ var CheckButton = function CheckButton(_ref) {
33054
33054
  }));
33055
33055
  };
33056
33056
 
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;"]);
33057
+ var SingleShortcut = /*#__PURE__*/styled.button.withConfig({
33058
+ displayName: "SingleShortcut",
33059
+ componentId: "sc-vz5ev8-0"
33060
+ })(["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:", ";border-color:", ";}&:disabled{opacity:0.5;}"], uiColors.lightGray, uiColors.darkGray, uiColors.blue, uiColors.yellow, uiColors.darkGray, uiColors.gray, uiColors.yellow);
33106
33061
 
33107
33062
  var CircularController = function CircularController(_ref) {
33108
33063
  var onActionClick = _ref.onActionClick,
33109
33064
  onCancelClick = _ref.onCancelClick,
33110
- onSpellClick = _ref.onSpellClick,
33065
+ onShortcutClick = _ref.onShortcutClick,
33111
33066
  mana = _ref.mana,
33112
- spells = _ref.spells;
33067
+ shortcuts = _ref.shortcuts,
33068
+ inventory = _ref.inventory,
33069
+ atlasIMG = _ref.atlasIMG,
33070
+ atlasJSON = _ref.atlasJSON;
33113
33071
  var onTouchStart = function onTouchStart(e) {
33114
33072
  var target = e.target;
33115
33073
  target == null ? void 0 : target.classList.add('active');
@@ -33121,25 +33079,73 @@ var CircularController = function CircularController(_ref) {
33121
33079
  }, 100);
33122
33080
  action();
33123
33081
  };
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 () {};
33082
+ var renderShortcut = function renderShortcut(i) {
33083
+ var _shortcuts$i, _shortcuts$i2, _shortcuts$i4, _payload$manaCost;
33084
+ var variant = '';
33085
+ if (i === 0) variant = 'top';else if (i >= 3) variant = "bottom-" + (i - 3);
33086
+ var onShortcutClickBinded = ((_shortcuts$i = shortcuts[i]) == null ? void 0 : _shortcuts$i.type) !== shared.ShortcutType.None ? onShortcutClick.bind(null, i) : function () {};
33087
+ if (((_shortcuts$i2 = shortcuts[i]) == null ? void 0 : _shortcuts$i2.type) === shared.ShortcutType.Item) {
33088
+ var _shortcuts$i3;
33089
+ var _payload = (_shortcuts$i3 = shortcuts[i]) == null ? void 0 : _shortcuts$i3.payload;
33090
+ var itemsFromEquipment = [];
33091
+ if (inventory) {
33092
+ Object.keys(inventory.slots).forEach(function (i) {
33093
+ var _inventory$slots$inde;
33094
+ var index = parseInt(i);
33095
+ if (((_inventory$slots$inde = inventory.slots[index]) == null ? void 0 : _inventory$slots$inde.key) === (_payload == null ? void 0 : _payload.key)) {
33096
+ itemsFromEquipment.push(inventory.slots[index]);
33097
+ }
33098
+ });
33099
+ }
33100
+ var totalQty = itemsFromEquipment.reduce(function (acc, item) {
33101
+ return acc + ((item == null ? void 0 : item.stackQty) || 1);
33102
+ }, 0);
33103
+ return React__default.createElement(StyledShortcut, {
33104
+ key: i,
33105
+ onTouchStart: onTouchStart,
33106
+ onTouchEnd: onTouchEnd.bind(null, onShortcutClickBinded),
33107
+ disabled: false,
33108
+ className: variant
33109
+ }, _payload && React__default.createElement(SpriteFromAtlas, {
33110
+ atlasIMG: atlasIMG,
33111
+ atlasJSON: atlasJSON,
33112
+ spriteKey: shared.getItemTextureKeyPath({
33113
+ key: _payload.texturePath,
33114
+ texturePath: _payload.texturePath,
33115
+ stackQty: _payload.stackQty || 1
33116
+ }, atlasJSON),
33117
+ width: 32,
33118
+ height: 32,
33119
+ imgScale: 1.4,
33120
+ imgStyle: {
33121
+ left: '4px'
33122
+ },
33123
+ containerStyle: {
33124
+ pointerEvents: 'none'
33125
+ }
33126
+ }), React__default.createElement("span", {
33127
+ className: "qty"
33128
+ }, totalQty));
33129
+ }
33130
+ var payload = (_shortcuts$i4 = shortcuts[i]) == null ? void 0 : _shortcuts$i4.payload;
33130
33131
  return React__default.createElement(StyledShortcut, {
33131
33132
  key: i,
33132
- disabled: mana < (spell == null ? void 0 : spell.manaCost),
33133
33133
  onTouchStart: onTouchStart,
33134
- onTouchEnd: onTouchEnd.bind(null, onSpellClickBinded),
33134
+ onTouchEnd: onTouchEnd.bind(null, onShortcutClickBinded),
33135
+ disabled: mana < ((_payload$manaCost = payload == null ? void 0 : payload.manaCost) != null ? _payload$manaCost : 0),
33135
33136
  className: variant
33136
33137
  }, React__default.createElement("span", {
33137
33138
  className: "mana"
33138
- }, (spell == null ? void 0 : spell.key) && (spell == null ? void 0 : spell.manaCost)), React__default.createElement("span", {
33139
+ }, payload && payload.manaCost), React__default.createElement("span", {
33139
33140
  className: "magicWords"
33140
- }, spell == null ? void 0 : spell.magicWords.split(' ').map(function (word) {
33141
+ }, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
33141
33142
  return word[0];
33142
33143
  })));
33144
+ };
33145
+ return React__default.createElement(ButtonsContainer, null, React__default.createElement(ShortcutsContainer, null, Array.from({
33146
+ length: 6
33147
+ }).map(function (_, i) {
33148
+ return renderShortcut(i);
33143
33149
  })), React__default.createElement(Button$2, {
33144
33150
  onTouchStart: onTouchStart,
33145
33151
  onTouchEnd: onTouchEnd.bind(null, onActionClick)
@@ -33153,7 +33159,7 @@ var CircularController = function CircularController(_ref) {
33153
33159
  var Button$2 = /*#__PURE__*/styled.button.withConfig({
33154
33160
  displayName: "CircularController__Button",
33155
33161
  componentId: "sc-1fewf3h-0"
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);
33162
+ })(["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:all 0.1s;margin-top:-3rem;&.active{background-color:", ";border-color:", ";}.sword{transform:rotate(-45deg);height:2.5rem;width:1.9rem;pointer-events:none;}"], uiColors.lightGray, uiColors.darkGray, uiColors.gray, uiColors.yellow);
33157
33163
  var CancelButton = /*#__PURE__*/styled(Button$2).withConfig({
33158
33164
  displayName: "CircularController__CancelButton",
33159
33165
  componentId: "sc-1fewf3h-1"
@@ -33162,14 +33168,14 @@ var ButtonsContainer = /*#__PURE__*/styled.div.withConfig({
33162
33168
  displayName: "CircularController__ButtonsContainer",
33163
33169
  componentId: "sc-1fewf3h-2"
33164
33170
  })(["display:flex;align-items:center;justify-content:center;gap:0.5rem;"]);
33165
- var SpellsContainer = /*#__PURE__*/styled.div.withConfig({
33166
- displayName: "CircularController__SpellsContainer",
33171
+ var ShortcutsContainer = /*#__PURE__*/styled.div.withConfig({
33172
+ displayName: "CircularController__ShortcutsContainer",
33167
33173
  componentId: "sc-1fewf3h-3"
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({
33174
+ })(["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%));}"]);
33175
+ var StyledShortcut = /*#__PURE__*/styled(SingleShortcut).withConfig({
33170
33176
  displayName: "CircularController__StyledShortcut",
33171
33177
  componentId: "sc-1fewf3h-4"
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);
33178
+ })(["width:2.5rem;height:2.5rem;transition:all 0.1s;.mana,.qty{font-size:0.5rem;}&:hover,&:focus,&:active{background-color:", ";}&.active{background-color:", ";border-color:", ";}"], uiColors.lightGray, uiColors.gray, uiColors.yellow);
33173
33179
 
33174
33180
  function useOutsideClick(ref, id) {
33175
33181
  React.useEffect(function () {
@@ -33734,7 +33740,8 @@ var ItemSlot = /*#__PURE__*/mobxReactLite.observer(function (_ref) {
33734
33740
  checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
33735
33741
  openQuantitySelector = _ref.openQuantitySelector,
33736
33742
  checkIfItemShouldDragEnd = _ref.checkIfItemShouldDragEnd,
33737
- dragScale = _ref.dragScale;
33743
+ dragScale = _ref.dragScale,
33744
+ isSelectingShortcut = _ref.isSelectingShortcut;
33738
33745
  var _useState = React.useState(false),
33739
33746
  isTooltipVisible = _useState[0],
33740
33747
  setTooltipVisible = _useState[1];
@@ -33898,12 +33905,14 @@ var ItemSlot = /*#__PURE__*/mobxReactLite.observer(function (_ref) {
33898
33905
  bubbles: true
33899
33906
  });
33900
33907
  (_document$elementFrom = document.elementFromPoint(clientX, clientY)) == null ? void 0 : _document$elementFrom.dispatchEvent(simulatedEvent);
33901
- }
33908
+ },
33909
+ isSelectingShortcut: isSelectingShortcut && ((item == null ? void 0 : item.type) === shared.ItemType.Consumable || (item == null ? void 0 : item.type) === shared.ItemType.Tool)
33902
33910
  }, React__default.createElement(Draggable, {
33911
+ axis: isSelectingShortcut ? 'none' : 'both',
33903
33912
  defaultClassName: item ? 'draggable' : 'empty-slot',
33904
33913
  scale: dragScale,
33905
33914
  onStop: function onStop(e, data) {
33906
- if (wasDragged && item) {
33915
+ if (wasDragged && item && !isSelectingShortcut) {
33907
33916
  var _e$target;
33908
33917
  //@ts-ignore
33909
33918
  var classes = Array.from((_e$target = e.target) == null ? void 0 : _e$target.classList);
@@ -33941,12 +33950,12 @@ var ItemSlot = /*#__PURE__*/mobxReactLite.observer(function (_ref) {
33941
33950
  }
33942
33951
  }, 100);
33943
33952
  } else if (item) {
33944
- if (!isContextMenuDisabled) setIsContextMenuVisible(!isContextMenuVisible);
33953
+ if (!isContextMenuDisabled && !isSelectingShortcut) setIsContextMenuVisible(!isContextMenuVisible);
33945
33954
  onPointerDown(item.type, containerType, item);
33946
33955
  }
33947
33956
  },
33948
33957
  onStart: function onStart() {
33949
- if (!item) {
33958
+ if (!item || isSelectingShortcut) {
33950
33959
  return;
33951
33960
  }
33952
33961
  if (onDragStart) {
@@ -34008,7 +34017,7 @@ var rarityColor = function rarityColor(item) {
34008
34017
  var Container$a = /*#__PURE__*/styled.div.withConfig({
34009
34018
  displayName: "ItemSlot__Container",
34010
34019
  componentId: "sc-l2j5ef-0"
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) {
34020
+ })(["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) {
34012
34021
  var item = _ref2.item;
34013
34022
  return rarityColor(item);
34014
34023
  }, function (_ref3) {
@@ -34017,6 +34026,9 @@ var Container$a = /*#__PURE__*/styled.div.withConfig({
34017
34026
  }, function (_ref4) {
34018
34027
  var item = _ref4.item;
34019
34028
  return "0 0 4px 3px " + rarityColor(item);
34029
+ }, function (_ref5) {
34030
+ var isSelectingShortcut = _ref5.isSelectingShortcut;
34031
+ return isSelectingShortcut ? 'bg-color-change 1s infinite' : 'none';
34020
34032
  });
34021
34033
  var ItemContainer = /*#__PURE__*/styled.div.withConfig({
34022
34034
  displayName: "ItemSlot__ItemContainer",
@@ -34127,374 +34139,509 @@ var EquipmentColumn = /*#__PURE__*/styled.div.withConfig({
34127
34139
  componentId: "sc-1wuddg2-1"
34128
34140
  })(["display:flex;justify-content:center;flex-wrap:wrap;flex-direction:column;touch-action:none;"]);
34129
34141
 
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
- }
34142
+ var SlotsContainer = function SlotsContainer(_ref) {
34143
+ var children = _ref.children,
34144
+ title = _ref.title,
34145
+ onClose = _ref.onClose,
34146
+ _onPositionChange = _ref.onPositionChange,
34147
+ onOutsideClick = _ref.onOutsideClick,
34148
+ initialPosition = _ref.initialPosition;
34149
+ return React__default.createElement(DraggableContainer, {
34150
+ title: title,
34151
+ type: exports.RPGUIContainerTypes.Framed,
34152
+ onCloseButton: function onCloseButton() {
34153
+ if (onClose) {
34154
+ onClose();
34151
34155
  }
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
- }
34156
+ },
34157
+ width: "400px",
34158
+ cancelDrag: ".item-container-body, #shortcuts_list",
34159
+ onPositionChange: function onPositionChange(_ref2) {
34160
+ var x = _ref2.x,
34161
+ y = _ref2.y;
34162
+ if (_onPositionChange) {
34163
+ _onPositionChange({
34164
+ x: x,
34165
+ y: y
34166
+ });
34160
34167
  }
34161
- }, 50);
34162
- return function () {
34163
- clearInterval(interval);
34164
- };
34165
- }, [text]);
34166
- return React__default.createElement(TextContainer, null, textState);
34168
+ },
34169
+ onOutsideClick: onOutsideClick,
34170
+ initialPosition: initialPosition
34171
+ }, children);
34167
34172
  };
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
34173
 
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]));
34174
+ (function (RangeSliderType) {
34175
+ RangeSliderType["Slider"] = "rpgui-slider";
34176
+ RangeSliderType["GoldSlider"] = "rpgui-slider golden";
34177
+ })(exports.RangeSliderType || (exports.RangeSliderType = {}));
34178
+ var RangeSlider = function RangeSlider(_ref) {
34179
+ var type = _ref.type,
34180
+ valueMin = _ref.valueMin,
34181
+ valueMax = _ref.valueMax,
34182
+ width = _ref.width,
34183
+ _onChange = _ref.onChange,
34184
+ value = _ref.value;
34185
+ var sliderId = uuid.v4();
34186
+ var containerRef = React.useRef(null);
34197
34187
  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
- };
34188
+ left = _useState[0],
34189
+ setLeft = _useState[1];
34216
34190
  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();
34191
+ var _containerRef$current;
34192
+ var calculatedWidth = ((_containerRef$current = containerRef.current) == null ? void 0 : _containerRef$current.clientWidth) || 0;
34193
+ setLeft(Math.max((value - valueMin) / (valueMax - valueMin) * (calculatedWidth - 35) + 10));
34194
+ }, [value, valueMin, valueMax]);
34195
+ var typeClass = type === exports.RangeSliderType.GoldSlider ? 'golden' : '';
34196
+ return React__default.createElement("div", {
34197
+ style: {
34198
+ width: width,
34199
+ position: 'relative'
34230
34200
  },
34231
- onStart: function onStart() {
34232
- setShowGoNextIndicator(false);
34233
- onStartStep && onStartStep();
34201
+ className: "rpgui-slider-container " + typeClass,
34202
+ id: "rpgui-slider-" + sliderId,
34203
+ ref: containerRef
34204
+ }, React__default.createElement("div", {
34205
+ style: {
34206
+ pointerEvents: 'none'
34234
34207
  }
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();
34208
+ }, React__default.createElement("div", {
34209
+ className: "rpgui-slider-track " + typeClass
34210
+ }), React__default.createElement("div", {
34211
+ className: "rpgui-slider-left-edge " + typeClass
34212
+ }), React__default.createElement("div", {
34213
+ className: "rpgui-slider-right-edge " + typeClass
34214
+ }), React__default.createElement("div", {
34215
+ className: "rpgui-slider-thumb " + typeClass,
34216
+ style: {
34217
+ left: left
34240
34218
  }
34219
+ })), React__default.createElement(Input$1, {
34220
+ type: "range",
34221
+ style: {
34222
+ width: width
34223
+ },
34224
+ min: valueMin,
34225
+ max: valueMax,
34226
+ onChange: function onChange(e) {
34227
+ return _onChange(Number(e.target.value));
34228
+ },
34229
+ value: value,
34230
+ className: "rpgui-cursor-point"
34241
34231
  }));
34242
34232
  };
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
- };
34233
+ var Input$1 = /*#__PURE__*/styled.input.withConfig({
34234
+ displayName: "RangeSlider__Input",
34235
+ componentId: "sc-v8mte9-0"
34236
+ })(["opacity:0;position:absolute;width:100%;height:100%;top:0;left:0;margin-top:-5px;"]);
34275
34237
 
34276
- var QuestionDialog = function QuestionDialog(_ref) {
34277
- var questions = _ref.questions,
34278
- answers = _ref.answers,
34238
+ var ItemQuantitySelector = function ItemQuantitySelector(_ref) {
34239
+ var quantity = _ref.quantity,
34240
+ onConfirm = _ref.onConfirm,
34279
34241
  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];
34242
+ var _useState = React.useState(quantity),
34243
+ value = _useState[0],
34244
+ setValue = _useState[1];
34245
+ var inputRef = React.useRef(null);
34298
34246
  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)) {
34247
+ if (inputRef.current) {
34248
+ inputRef.current.focus();
34249
+ inputRef.current.select();
34250
+ var closeSelector = function closeSelector(e) {
34251
+ if (e.key === 'Escape') {
34344
34252
  onClose();
34345
- return;
34346
- } else {
34347
- setCurrentQuestion(questions.find(function (question) {
34348
- return question.id === currentAnswer.nextQuestionId;
34349
- }));
34350
34253
  }
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;
34254
+ };
34255
+ document.addEventListener('keydown', closeSelector);
34256
+ return function () {
34257
+ document.removeEventListener('keydown', closeSelector);
34258
+ };
34375
34259
  }
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);
34260
+ return function () {};
34261
+ }, []);
34262
+ return React__default.createElement(StyledContainer, {
34263
+ type: exports.RPGUIContainerTypes.Framed,
34264
+ width: "25rem"
34265
+ }, React__default.createElement(CloseButton$2, {
34266
+ className: "container-close",
34267
+ onPointerDown: onClose
34268
+ }, "X"), React__default.createElement("h2", null, "Select quantity to move"), React__default.createElement(StyledForm, {
34269
+ style: {
34270
+ width: '100%'
34399
34271
  },
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();
34272
+ onSubmit: function onSubmit(e) {
34273
+ e.preventDefault();
34274
+ var numberValue = Number(value);
34275
+ if (Number.isNaN(numberValue)) {
34276
+ return;
34461
34277
  }
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();
34278
+ onConfirm(Math.max(1, Math.min(quantity, numberValue)));
34279
+ },
34280
+ noValidate: true
34281
+ }, React__default.createElement(StyledInput, {
34282
+ innerRef: inputRef,
34283
+ placeholder: "Enter quantity",
34284
+ type: "number",
34285
+ min: 1,
34286
+ max: quantity,
34287
+ value: value,
34288
+ onChange: function onChange(e) {
34289
+ if (Number(e.target.value) >= quantity) {
34290
+ setValue(quantity);
34291
+ return;
34473
34292
  }
34293
+ setValue(e.target.value);
34294
+ },
34295
+ onBlur: function onBlur(e) {
34296
+ var newValue = Math.max(1, Math.min(quantity, Number(e.target.value)));
34297
+ setValue(newValue);
34474
34298
  }
34475
- })), type === exports.NPCDialogType.TextAndThumbnail && React__default.createElement(ThumbnailContainer, null, React__default.createElement(NPCThumbnail, {
34476
- src: imagePath || img$8
34477
- })))));
34299
+ }), React__default.createElement(RangeSlider, {
34300
+ type: exports.RangeSliderType.Slider,
34301
+ valueMin: 1,
34302
+ valueMax: quantity,
34303
+ width: "100%",
34304
+ onChange: setValue,
34305
+ value: value
34306
+ }), React__default.createElement(Button, {
34307
+ buttonType: exports.ButtonTypes.RPGUIButton,
34308
+ type: "submit"
34309
+ }, "Confirm")));
34478
34310
  };
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;"]);
34311
+ var StyledContainer = /*#__PURE__*/styled(RPGUIContainer).withConfig({
34312
+ displayName: "ItemQuantitySelector__StyledContainer",
34313
+ componentId: "sc-yfdtpn-0"
34314
+ })(["display:flex;flex-direction:column;align-items:center;"]);
34315
+ var StyledForm = /*#__PURE__*/styled.form.withConfig({
34316
+ displayName: "ItemQuantitySelector__StyledForm",
34317
+ componentId: "sc-yfdtpn-1"
34318
+ })(["display:flex;flex-direction:column;align-items:center;width:100%;"]);
34319
+ var StyledInput = /*#__PURE__*/styled(Input).withConfig({
34320
+ displayName: "ItemQuantitySelector__StyledInput",
34321
+ componentId: "sc-yfdtpn-2"
34322
+ })(["text-align:center;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}"]);
34323
+ var CloseButton$2 = /*#__PURE__*/styled.div.withConfig({
34324
+ displayName: "ItemQuantitySelector__CloseButton",
34325
+ componentId: "sc-yfdtpn-3"
34326
+ })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:0.8rem;"]);
34327
+
34328
+ var ShortcutsSetter = function ShortcutsSetter(_ref) {
34329
+ var setSettingShortcutIndex = _ref.setSettingShortcutIndex,
34330
+ settingShortcutIndex = _ref.settingShortcutIndex,
34331
+ shortcuts = _ref.shortcuts,
34332
+ removeShortcut = _ref.removeShortcut,
34333
+ atlasJSON = _ref.atlasJSON,
34334
+ atlasIMG = _ref.atlasIMG;
34335
+ var getContent = function getContent(index) {
34336
+ var _shortcuts$index, _shortcuts$index3;
34337
+ if (((_shortcuts$index = shortcuts[index]) == null ? void 0 : _shortcuts$index.type) === shared.ShortcutType.Item) {
34338
+ var _shortcuts$index2;
34339
+ var _payload = (_shortcuts$index2 = shortcuts[index]) == null ? void 0 : _shortcuts$index2.payload;
34340
+ if (!_payload) return null;
34341
+ return React__default.createElement(SpriteFromAtlas, {
34342
+ atlasIMG: atlasIMG,
34343
+ atlasJSON: atlasJSON,
34344
+ spriteKey: shared.getItemTextureKeyPath({
34345
+ key: _payload.texturePath,
34346
+ texturePath: _payload.texturePath,
34347
+ stackQty: _payload.stackQty || 1
34348
+ }, atlasJSON),
34349
+ width: 32,
34350
+ height: 32,
34351
+ imgScale: 1.6,
34352
+ imgStyle: {
34353
+ left: '5px'
34354
+ }
34355
+ });
34356
+ }
34357
+ var payload = (_shortcuts$index3 = shortcuts[index]) == null ? void 0 : _shortcuts$index3.payload;
34358
+ return React__default.createElement("span", null, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
34359
+ return word[0];
34360
+ }));
34361
+ };
34362
+ return React__default.createElement(Container$b, null, React__default.createElement("p", null, "Shortcuts:"), React__default.createElement(List, {
34363
+ id: "shortcuts_list"
34364
+ }, Array.from({
34365
+ length: 6
34366
+ }).map(function (_, i) {
34367
+ return React__default.createElement(Shortcut, {
34368
+ key: i,
34369
+ onPointerDown: function onPointerDown() {
34370
+ removeShortcut(i);
34371
+ if (!shortcuts[i] || shortcuts[i].type === shared.ShortcutType.None) setSettingShortcutIndex(i);
34372
+ },
34373
+ disabled: settingShortcutIndex !== -1 && settingShortcutIndex !== i,
34374
+ isBeingSet: settingShortcutIndex === i
34375
+ }, getContent(i));
34376
+ })));
34377
+ };
34378
+ var Container$b = /*#__PURE__*/styled.div.withConfig({
34379
+ displayName: "ShortcutsSetter__Container",
34380
+ componentId: "sc-xuouuf-0"
34381
+ })(["p{margin:0;margin-left:0.5rem;}"]);
34382
+ var Shortcut = /*#__PURE__*/styled.button.withConfig({
34383
+ displayName: "ShortcutsSetter__Shortcut",
34384
+ componentId: "sc-xuouuf-1"
34385
+ })(["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) {
34386
+ var isBeingSet = _ref2.isBeingSet;
34387
+ return isBeingSet ? uiColors.yellow : uiColors.darkGray;
34388
+ }, uiColors.darkGray, uiColors.gray);
34389
+ var List = /*#__PURE__*/styled.div.withConfig({
34390
+ displayName: "ShortcutsSetter__List",
34391
+ componentId: "sc-xuouuf-2"
34392
+ })(["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;"]);
34393
+
34394
+ var ItemContainer$1 = function ItemContainer(_ref) {
34395
+ var itemContainer = _ref.itemContainer,
34396
+ onClose = _ref.onClose,
34397
+ _onMouseOver = _ref.onMouseOver,
34398
+ _onSelected = _ref.onSelected,
34399
+ onItemClick = _ref.onItemClick,
34400
+ type = _ref.type,
34401
+ atlasJSON = _ref.atlasJSON,
34402
+ atlasIMG = _ref.atlasIMG,
34403
+ _ref$disableContextMe = _ref.disableContextMenu,
34404
+ disableContextMenu = _ref$disableContextMe === void 0 ? false : _ref$disableContextMe,
34405
+ onItemDragEnd = _ref.onItemDragEnd,
34406
+ onItemDragStart = _ref.onItemDragStart,
34407
+ onItemPlaceDrop = _ref.onItemPlaceDrop,
34408
+ _onOutsideDrop = _ref.onOutsideDrop,
34409
+ checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
34410
+ initialPosition = _ref.initialPosition,
34411
+ checkIfItemShouldDragEnd = _ref.checkIfItemShouldDragEnd,
34412
+ dragScale = _ref.dragScale,
34413
+ shortcuts = _ref.shortcuts,
34414
+ setItemShortcut = _ref.setItemShortcut,
34415
+ removeShortcut = _ref.removeShortcut;
34416
+ var _useState = React.useState({
34417
+ isOpen: false,
34418
+ maxQuantity: 1,
34419
+ callback: function callback(_quantity) {}
34420
+ }),
34421
+ quantitySelect = _useState[0],
34422
+ setQuantitySelect = _useState[1];
34423
+ var _useState2 = React.useState(-1),
34424
+ settingShortcutIndex = _useState2[0],
34425
+ setSettingShortcutIndex = _useState2[1];
34426
+ var onRenderSlots = function onRenderSlots() {
34427
+ var slots = [];
34428
+ for (var i = 0; i < itemContainer.slotQty; i++) {
34429
+ var _itemContainer$slots;
34430
+ slots.push(React__default.createElement(ItemSlot, {
34431
+ isContextMenuDisabled: disableContextMenu,
34432
+ key: i,
34433
+ slotIndex: i,
34434
+ item: ((_itemContainer$slots = itemContainer.slots) == null ? void 0 : _itemContainer$slots[i]) || null,
34435
+ itemContainerType: type,
34436
+ onMouseOver: function onMouseOver(event, slotIndex, item) {
34437
+ if (_onMouseOver) _onMouseOver(event, slotIndex, item);
34438
+ },
34439
+ onPointerDown: function onPointerDown(itemType, containerType, item) {
34440
+ if (settingShortcutIndex !== -1) {
34441
+ setSettingShortcutIndex(-1);
34442
+ if (itemType === shared.ItemType.Consumable || itemType === shared.ItemType.Tool) {
34443
+ setItemShortcut == null ? void 0 : setItemShortcut(item.key, settingShortcutIndex);
34444
+ }
34445
+ } else if (onItemClick) onItemClick(item, itemType, containerType);
34446
+ },
34447
+ onSelected: function onSelected(optionId, item) {
34448
+ if (_onSelected) _onSelected(optionId, item);
34449
+ },
34450
+ onDragStart: function onDragStart(item, slotIndex, itemContainerType) {
34451
+ if (onItemDragStart) onItemDragStart(item, slotIndex, itemContainerType);
34452
+ },
34453
+ onDragEnd: function onDragEnd(quantity) {
34454
+ if (onItemDragEnd) onItemDragEnd(quantity);
34455
+ },
34456
+ dragScale: dragScale,
34457
+ checkIfItemCanBeMoved: checkIfItemCanBeMoved,
34458
+ checkIfItemShouldDragEnd: checkIfItemShouldDragEnd,
34459
+ openQuantitySelector: function openQuantitySelector(maxQuantity, callback) {
34460
+ setQuantitySelect({
34461
+ isOpen: true,
34462
+ maxQuantity: maxQuantity,
34463
+ callback: callback
34464
+ });
34465
+ },
34466
+ onPlaceDrop: function onPlaceDrop(item, slotIndex, itemContainerType) {
34467
+ if (onItemPlaceDrop) onItemPlaceDrop(item, slotIndex, itemContainerType);
34468
+ },
34469
+ onOutsideDrop: function onOutsideDrop(item, position) {
34470
+ if (_onOutsideDrop) _onOutsideDrop(item, position);
34471
+ },
34472
+ atlasIMG: atlasIMG,
34473
+ atlasJSON: atlasJSON,
34474
+ isSelectingShortcut: settingShortcutIndex !== -1
34475
+ }));
34476
+ }
34477
+ return slots;
34478
+ };
34479
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(SlotsContainer, {
34480
+ title: itemContainer.name || 'Container',
34481
+ onClose: onClose,
34482
+ initialPosition: initialPosition
34483
+ }, type === shared.ItemContainerType.Inventory && shortcuts && removeShortcut && React__default.createElement(ShortcutsSetter, {
34484
+ setSettingShortcutIndex: setSettingShortcutIndex,
34485
+ settingShortcutIndex: settingShortcutIndex,
34486
+ shortcuts: shortcuts,
34487
+ removeShortcut: removeShortcut,
34488
+ atlasIMG: atlasIMG,
34489
+ atlasJSON: atlasJSON
34490
+ }), React__default.createElement(ItemsContainer, {
34491
+ className: "item-container-body"
34492
+ }, onRenderSlots())), quantitySelect.isOpen && React__default.createElement(QuantitySelectorContainer, null, React__default.createElement(ItemQuantitySelector, {
34493
+ quantity: quantitySelect.maxQuantity,
34494
+ onConfirm: function onConfirm(quantity) {
34495
+ quantitySelect.callback(quantity);
34496
+ setQuantitySelect({
34497
+ isOpen: false,
34498
+ maxQuantity: 1,
34499
+ callback: function callback() {}
34500
+ });
34501
+ },
34502
+ onClose: function onClose() {
34503
+ quantitySelect.callback(-1);
34504
+ setQuantitySelect({
34505
+ isOpen: false,
34506
+ maxQuantity: 1,
34507
+ callback: function callback() {}
34508
+ });
34509
+ }
34510
+ })));
34511
+ };
34512
+ var ItemsContainer = /*#__PURE__*/styled.div.withConfig({
34513
+ displayName: "ItemContainer__ItemsContainer",
34514
+ componentId: "sc-15y5p9l-0"
34515
+ })(["display:flex;justify-content:center;flex-wrap:wrap;"]);
34516
+ var QuantitySelectorContainer = /*#__PURE__*/styled.div.withConfig({
34517
+ displayName: "ItemContainer__QuantitySelectorContainer",
34518
+ componentId: "sc-15y5p9l-1"
34519
+ })(["position:absolute;top:0;left:0;width:100vw;height:100vh;z-index:100;display:flex;justify-content:center;align-items:center;background-color:rgba(0,0,0,0.5);"]);
34520
+
34521
+ var ItemSelector = function ItemSelector(_ref) {
34522
+ var atlasIMG = _ref.atlasIMG,
34523
+ atlasJSON = _ref.atlasJSON,
34524
+ options = _ref.options,
34525
+ onClose = _ref.onClose,
34526
+ onSelect = _ref.onSelect;
34527
+ var _useState = React.useState(),
34528
+ selectedValue = _useState[0],
34529
+ setSelectedValue = _useState[1];
34530
+ var handleClick = function handleClick() {
34531
+ var element = document.querySelector("input[name='test']:checked");
34532
+ var elementValue = element.value;
34533
+ setSelectedValue(elementValue);
34534
+ };
34535
+ React.useEffect(function () {
34536
+ if (selectedValue) {
34537
+ onSelect(selectedValue);
34538
+ }
34539
+ }, [selectedValue]);
34540
+ return React__default.createElement(DraggableContainer, {
34541
+ type: exports.RPGUIContainerTypes.Framed,
34542
+ width: "500px",
34543
+ cancelDrag: ".equipment-container-body .arrow-selector",
34544
+ onCloseButton: function onCloseButton() {
34545
+ if (onClose) {
34546
+ onClose();
34547
+ }
34548
+ }
34549
+ }, React__default.createElement("div", {
34550
+ style: {
34551
+ width: '100%'
34552
+ }
34553
+ }, React__default.createElement(Title$2, null, 'Harvesting instruments'), React__default.createElement(Subtitle$1, null, 'Use the tool, you need it'), React__default.createElement("hr", {
34554
+ className: "golden"
34555
+ })), React__default.createElement(RadioInputScroller$1, null, options == null ? void 0 : options.map(function (option, index) {
34556
+ return React__default.createElement(RadioOptionsWrapper$1, {
34557
+ key: index
34558
+ }, React__default.createElement(SpriteAtlasWrapper$1, null, React__default.createElement(SpriteFromAtlas, {
34559
+ atlasIMG: atlasIMG,
34560
+ atlasJSON: atlasJSON,
34561
+ spriteKey: option.imageKey,
34562
+ imgScale: 3
34563
+ })), React__default.createElement("div", null, React__default.createElement("input", {
34564
+ className: "rpgui-radio",
34565
+ type: "radio",
34566
+ value: option.name,
34567
+ name: "test"
34568
+ }), React__default.createElement("label", {
34569
+ onPointerDown: handleClick,
34570
+ style: {
34571
+ display: 'flex',
34572
+ alignItems: 'center'
34573
+ }
34574
+ }, option.name, " ", React__default.createElement("br", null), option.description)));
34575
+ })), React__default.createElement(ButtonWrapper$1, null, React__default.createElement(Button, {
34576
+ buttonType: exports.ButtonTypes.RPGUIButton,
34577
+ onPointerDown: onClose
34578
+ }, "Cancel"), React__default.createElement(Button, {
34579
+ buttonType: exports.ButtonTypes.RPGUIButton
34580
+ }, "Select")));
34581
+ };
34582
+ var Title$2 = /*#__PURE__*/styled.h1.withConfig({
34583
+ displayName: "ItemSelector__Title",
34584
+ componentId: "sc-gptoxp-0"
34585
+ })(["font-size:0.6rem;color:yellow !important;"]);
34586
+ var Subtitle$1 = /*#__PURE__*/styled.h1.withConfig({
34587
+ displayName: "ItemSelector__Subtitle",
34588
+ componentId: "sc-gptoxp-1"
34589
+ })(["font-size:0.4rem;color:yellow !important;"]);
34590
+ var RadioInputScroller$1 = /*#__PURE__*/styled.div.withConfig({
34591
+ displayName: "ItemSelector__RadioInputScroller",
34592
+ componentId: "sc-gptoxp-2"
34593
+ })(["padding-left:15px;padding-top:10px;width:100%;margin-top:1rem;align-items:center;margin-left:20px;align-items:flex-start;overflow-y:scroll;height:360px;"]);
34594
+ var SpriteAtlasWrapper$1 = /*#__PURE__*/styled.div.withConfig({
34595
+ displayName: "ItemSelector__SpriteAtlasWrapper",
34596
+ componentId: "sc-gptoxp-3"
34597
+ })(["margin-right:40px;"]);
34598
+ var RadioOptionsWrapper$1 = /*#__PURE__*/styled.div.withConfig({
34599
+ displayName: "ItemSelector__RadioOptionsWrapper",
34600
+ componentId: "sc-gptoxp-4"
34601
+ })(["display:flex;align-items:stretch;margin-bottom:40px;"]);
34602
+ var ButtonWrapper$1 = /*#__PURE__*/styled.div.withConfig({
34603
+ displayName: "ItemSelector__ButtonWrapper",
34604
+ componentId: "sc-gptoxp-5"
34605
+ })(["display:flex;justify-content:space-around;padding-top:20px;width:100%;"]);
34606
+
34607
+ var ListMenu = function ListMenu(_ref) {
34608
+ var options = _ref.options,
34609
+ onSelected = _ref.onSelected,
34610
+ x = _ref.x,
34611
+ y = _ref.y;
34612
+ return React__default.createElement(Container$c, {
34613
+ x: x,
34614
+ y: y
34615
+ }, React__default.createElement("ul", {
34616
+ className: "rpgui-list-imp",
34617
+ style: {
34618
+ overflow: 'hidden'
34619
+ }
34620
+ }, options.map(function (params, index) {
34621
+ return React__default.createElement(ListElement$1, {
34622
+ key: (params == null ? void 0 : params.id) || index,
34623
+ onPointerDown: function onPointerDown() {
34624
+ onSelected(params == null ? void 0 : params.id);
34625
+ }
34626
+ }, (params == null ? void 0 : params.text) || 'No text');
34627
+ })));
34628
+ };
34629
+ var Container$c = /*#__PURE__*/styled.div.withConfig({
34630
+ displayName: "ListMenu__Container",
34631
+ componentId: "sc-i9097t-0"
34632
+ })(["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) {
34633
+ return props.y || 0;
34634
+ }, function (props) {
34635
+ return props.x || 0;
34636
+ }, uiFonts.size.xsmall);
34637
+ var ListElement$1 = /*#__PURE__*/styled.li.withConfig({
34638
+ displayName: "ListMenu__ListElement",
34639
+ componentId: "sc-i9097t-1"
34640
+ })(["margin-right:0.5rem;"]);
34641
+
34642
+ var img$6 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAP1BMVEUAAAA7FyVxQTsUEBPj5v////+5v/tCJDOOUlIiHBr1oJfptaO6dWr61rhzFy1bMTjoanMUNGQoXMQkn97+88DQ3IhAAAAAAXRSTlMAQObYZgAAAAFiS0dEBfhv6ccAAAAHdElNRQfmAw4VOBC7c5LYAAABM0lEQVQ4y3XRi5KDIAwFUAUkbrBgpP//rZsHVHQ009qZ3tPboNN0zmwzvcw8O5sX4y0NOg/Et3jRCXF+ziULorjkOQ9gE24dvuUAzq08DiCO4pe3WN7zCP56vmpubBReQYC11YPS86ySxxCsAABTSgjb5m4g8nfbxvFHBkH2OEEvAItVuCuIsgGgl+Gcr7kDXxhEAx55A2SQEEeQeZwUaIP8Tbo05B0RFPhItAjgj1w6cDnhLluDj+Egkh3pCCP4pKQAw1IPO0W9Nti5gW9RP2dKA3BZd2Dw+baYX+Nt4GM00O4S3kEpF6Alb2Bv4LeC3kkGfAW0/p0RPoJVKr63ghHsKuRh5DIUKOAlGOwrtt9fQekAEfmhZslHUDoglB0zjfkJigN7UnTQQ4GBWomoVhEN/AOPSBh38gy+fwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wMy0xNFQyMTo1NTo1MSswMDowMJcc0eEAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDMtMTRUMjE6NTU6NTErMDA6MDDmQWldAAAAAElFTkSuQmCC';
34643
+
34644
+ 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';
34498
34645
 
34499
34646
  (function (ImgSide) {
34500
34647
  ImgSide["right"] = "right";
@@ -34532,7 +34679,7 @@ var NPCMultiDialog = function NPCMultiDialog(_ref) {
34532
34679
  type: exports.RPGUIContainerTypes.FramedGold,
34533
34680
  width: '50%',
34534
34681
  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, {
34682
+ }, 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, {
34536
34683
  flex: '70%'
34537
34684
  }, React__default.createElement(NPCDialogText, {
34538
34685
  onStartStep: function onStartStep() {
@@ -34547,14 +34694,14 @@ var NPCMultiDialog = function NPCMultiDialog(_ref) {
34547
34694
  _onClose();
34548
34695
  }
34549
34696
  }
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, {
34697
+ })), React__default.createElement(ThumbnailContainer, null, React__default.createElement(NPCThumbnail, {
34698
+ src: textAndTypeArray[slide].imagePath || img$6
34699
+ })), showGoNextIndicator && React__default.createElement(PressSpaceIndicator, {
34553
34700
  right: '10.5rem',
34554
34701
  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, {
34702
+ })), textAndTypeArray[slide].imageSide === 'left' && React__default.createElement(React__default.Fragment, null, React__default.createElement(ThumbnailContainer, null, React__default.createElement(NPCThumbnail, {
34703
+ src: textAndTypeArray[slide].imagePath || img$6
34704
+ })), React__default.createElement(TextContainer, {
34558
34705
  flex: '70%'
34559
34706
  }, React__default.createElement(NPCDialogText, {
34560
34707
  onStartStep: function onStartStep() {
@@ -34569,31 +34716,31 @@ var NPCMultiDialog = function NPCMultiDialog(_ref) {
34569
34716
  _onClose();
34570
34717
  }
34571
34718
  }
34572
- })), showGoNextIndicator && React__default.createElement(PressSpaceIndicator$1, {
34719
+ })), showGoNextIndicator && React__default.createElement(PressSpaceIndicator, {
34573
34720
  right: '1rem',
34574
34721
  src: img$7
34575
34722
  }))), ")"));
34576
34723
  };
34577
- var Container$e = /*#__PURE__*/styled.div.withConfig({
34724
+ var Container$d = /*#__PURE__*/styled.div.withConfig({
34578
34725
  displayName: "NPCMultiDialog__Container",
34579
34726
  componentId: "sc-rvu5wg-0"
34580
34727
  })(["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({
34728
+ var TextContainer = /*#__PURE__*/styled.div.withConfig({
34582
34729
  displayName: "NPCMultiDialog__TextContainer",
34583
34730
  componentId: "sc-rvu5wg-1"
34584
34731
  })(["flex:", " 0 0;width:355px;"], function (_ref2) {
34585
34732
  var flex = _ref2.flex;
34586
34733
  return flex;
34587
34734
  });
34588
- var ThumbnailContainer$1 = /*#__PURE__*/styled.div.withConfig({
34735
+ var ThumbnailContainer = /*#__PURE__*/styled.div.withConfig({
34589
34736
  displayName: "NPCMultiDialog__ThumbnailContainer",
34590
34737
  componentId: "sc-rvu5wg-2"
34591
34738
  })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
34592
- var NPCThumbnail$1 = /*#__PURE__*/styled.img.withConfig({
34739
+ var NPCThumbnail = /*#__PURE__*/styled.img.withConfig({
34593
34740
  displayName: "NPCMultiDialog__NPCThumbnail",
34594
34741
  componentId: "sc-rvu5wg-3"
34595
34742
  })(["image-rendering:pixelated;height:128px;width:128px;"]);
34596
- var PressSpaceIndicator$1 = /*#__PURE__*/styled.img.withConfig({
34743
+ var PressSpaceIndicator = /*#__PURE__*/styled.img.withConfig({
34597
34744
  displayName: "NPCMultiDialog__PressSpaceIndicator",
34598
34745
  componentId: "sc-rvu5wg-4"
34599
34746
  })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref3) {
@@ -34601,484 +34748,221 @@ var PressSpaceIndicator$1 = /*#__PURE__*/styled.img.withConfig({
34601
34748
  return right;
34602
34749
  });
34603
34750
 
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);
34751
+ //@ts-ignore
34752
+ var useEventListener = function useEventListener(type, handler, el) {
34753
+ if (el === void 0) {
34754
+ el = window;
34755
+ }
34756
+ var savedHandler = React__default.useRef();
34757
+ React__default.useEffect(function () {
34758
+ savedHandler.current = handler;
34759
+ }, [handler]);
34760
+ React__default.useEffect(function () {
34761
+ //@ts-ignore
34762
+ var listener = function listener(e) {
34763
+ return savedHandler.current(e);
34632
34764
  };
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
-
34668
- var SlotsContainer = function SlotsContainer(_ref) {
34669
- var children = _ref.children,
34670
- title = _ref.title,
34671
- onClose = _ref.onClose,
34672
- _onPositionChange = _ref.onPositionChange,
34673
- onOutsideClick = _ref.onOutsideClick,
34674
- initialPosition = _ref.initialPosition;
34675
- return React__default.createElement(DraggableContainer, {
34676
- title: title,
34677
- type: exports.RPGUIContainerTypes.Framed,
34678
- onCloseButton: function onCloseButton() {
34679
- if (onClose) {
34680
- onClose();
34681
- }
34682
- },
34683
- width: "330px",
34684
- cancelDrag: ".item-container-body",
34685
- onPositionChange: function onPositionChange(_ref2) {
34686
- var x = _ref2.x,
34687
- y = _ref2.y;
34688
- if (_onPositionChange) {
34689
- _onPositionChange({
34690
- x: x,
34691
- y: y
34692
- });
34693
- }
34694
- },
34695
- onOutsideClick: onOutsideClick,
34696
- initialPosition: initialPosition
34697
- }, children);
34698
- };
34699
-
34700
- (function (RangeSliderType) {
34701
- RangeSliderType["Slider"] = "rpgui-slider";
34702
- RangeSliderType["GoldSlider"] = "rpgui-slider golden";
34703
- })(exports.RangeSliderType || (exports.RangeSliderType = {}));
34704
- var RangeSlider = function RangeSlider(_ref) {
34705
- var type = _ref.type,
34706
- valueMin = _ref.valueMin,
34707
- valueMax = _ref.valueMax,
34708
- width = _ref.width,
34709
- _onChange = _ref.onChange,
34710
- value = _ref.value;
34711
- var sliderId = uuid.v4();
34712
- var containerRef = React.useRef(null);
34713
- var _useState = React.useState(0),
34714
- left = _useState[0],
34715
- setLeft = _useState[1];
34716
- React.useEffect(function () {
34717
- var _containerRef$current;
34718
- var calculatedWidth = ((_containerRef$current = containerRef.current) == null ? void 0 : _containerRef$current.clientWidth) || 0;
34719
- setLeft(Math.max((value - valueMin) / (valueMax - valueMin) * (calculatedWidth - 35) + 10));
34720
- }, [value, valueMin, valueMax]);
34721
- var typeClass = type === exports.RangeSliderType.GoldSlider ? 'golden' : '';
34722
- return React__default.createElement("div", {
34723
- style: {
34724
- width: width,
34725
- position: 'relative'
34726
- },
34727
- className: "rpgui-slider-container " + typeClass,
34728
- id: "rpgui-slider-" + sliderId,
34729
- ref: containerRef
34730
- }, React__default.createElement("div", {
34731
- style: {
34732
- pointerEvents: 'none'
34733
- }
34734
- }, React__default.createElement("div", {
34735
- className: "rpgui-slider-track " + typeClass
34736
- }), React__default.createElement("div", {
34737
- className: "rpgui-slider-left-edge " + typeClass
34738
- }), React__default.createElement("div", {
34739
- className: "rpgui-slider-right-edge " + typeClass
34740
- }), React__default.createElement("div", {
34741
- className: "rpgui-slider-thumb " + typeClass,
34742
- style: {
34743
- left: left
34744
- }
34745
- })), React__default.createElement(Input$1, {
34746
- type: "range",
34747
- style: {
34748
- width: width
34749
- },
34750
- min: valueMin,
34751
- max: valueMax,
34752
- onChange: function onChange(e) {
34753
- return _onChange(Number(e.target.value));
34754
- },
34755
- value: value,
34756
- className: "rpgui-cursor-point"
34757
- }));
34758
- };
34759
- var Input$1 = /*#__PURE__*/styled.input.withConfig({
34760
- displayName: "RangeSlider__Input",
34761
- componentId: "sc-v8mte9-0"
34762
- })(["opacity:0;position:absolute;width:100%;height:100%;top:0;left:0;margin-top:-5px;"]);
34763
-
34764
- var ItemQuantitySelector = function ItemQuantitySelector(_ref) {
34765
- var quantity = _ref.quantity,
34766
- onConfirm = _ref.onConfirm,
34767
- onClose = _ref.onClose;
34768
- var _useState = React.useState(quantity),
34769
- value = _useState[0],
34770
- setValue = _useState[1];
34771
- var inputRef = React.useRef(null);
34765
+ el.addEventListener(type, listener);
34766
+ return function () {
34767
+ el.removeEventListener(type, listener);
34768
+ };
34769
+ }, [type, el]);
34770
+ };
34771
+
34772
+ var DynamicText = function DynamicText(_ref) {
34773
+ var text = _ref.text,
34774
+ onFinish = _ref.onFinish,
34775
+ onStart = _ref.onStart;
34776
+ var _useState = React.useState(''),
34777
+ textState = _useState[0],
34778
+ setTextState = _useState[1];
34772
34779
  React.useEffect(function () {
34773
- if (inputRef.current) {
34774
- inputRef.current.focus();
34775
- inputRef.current.select();
34776
- var closeSelector = function closeSelector(e) {
34777
- if (e.key === 'Escape') {
34778
- onClose();
34780
+ var i = 0;
34781
+ var interval = setInterval(function () {
34782
+ // on every interval, show one more character
34783
+ if (i === 0) {
34784
+ if (onStart) {
34785
+ onStart();
34779
34786
  }
34780
- };
34781
- document.addEventListener('keydown', closeSelector);
34782
- return function () {
34783
- document.removeEventListener('keydown', closeSelector);
34784
- };
34785
- }
34786
- return function () {};
34787
- }, []);
34788
- return React__default.createElement(StyledContainer, {
34789
- type: exports.RPGUIContainerTypes.Framed,
34790
- width: "25rem"
34791
- }, React__default.createElement(CloseButton$2, {
34792
- className: "container-close",
34793
- onPointerDown: onClose
34794
- }, "X"), React__default.createElement("h2", null, "Select quantity to move"), React__default.createElement(StyledForm, {
34795
- style: {
34796
- width: '100%'
34797
- },
34798
- onSubmit: function onSubmit(e) {
34799
- e.preventDefault();
34800
- var numberValue = Number(value);
34801
- if (Number.isNaN(numberValue)) {
34802
- return;
34803
34787
  }
34804
- onConfirm(Math.max(1, Math.min(quantity, numberValue)));
34805
- },
34806
- noValidate: true
34807
- }, React__default.createElement(StyledInput, {
34808
- innerRef: inputRef,
34809
- placeholder: "Enter quantity",
34810
- type: "number",
34811
- min: 1,
34812
- max: quantity,
34813
- value: value,
34814
- onChange: function onChange(e) {
34815
- if (Number(e.target.value) >= quantity) {
34816
- setValue(quantity);
34817
- return;
34788
+ if (i < text.length) {
34789
+ setTextState(text.substring(0, i + 1));
34790
+ i++;
34791
+ } else {
34792
+ clearInterval(interval);
34793
+ if (onFinish) {
34794
+ onFinish();
34795
+ }
34818
34796
  }
34819
- setValue(e.target.value);
34820
- },
34821
- onBlur: function onBlur(e) {
34822
- var newValue = Math.max(1, Math.min(quantity, Number(e.target.value)));
34823
- setValue(newValue);
34824
- }
34825
- }), React__default.createElement(RangeSlider, {
34826
- type: exports.RangeSliderType.Slider,
34827
- valueMin: 1,
34828
- valueMax: quantity,
34829
- width: "100%",
34830
- onChange: setValue,
34831
- value: value
34832
- }), React__default.createElement(Button, {
34833
- buttonType: exports.ButtonTypes.RPGUIButton,
34834
- type: "submit"
34835
- }, "Confirm")));
34797
+ }, 50);
34798
+ return function () {
34799
+ clearInterval(interval);
34800
+ };
34801
+ }, [text]);
34802
+ return React__default.createElement(TextContainer$1, null, textState);
34836
34803
  };
34837
- var StyledContainer = /*#__PURE__*/styled(RPGUIContainer).withConfig({
34838
- displayName: "ItemQuantitySelector__StyledContainer",
34839
- componentId: "sc-yfdtpn-0"
34840
- })(["display:flex;flex-direction:column;align-items:center;"]);
34841
- var StyledForm = /*#__PURE__*/styled.form.withConfig({
34842
- displayName: "ItemQuantitySelector__StyledForm",
34843
- componentId: "sc-yfdtpn-1"
34844
- })(["display:flex;flex-direction:column;align-items:center;width:100%;"]);
34845
- var StyledInput = /*#__PURE__*/styled(Input).withConfig({
34846
- displayName: "ItemQuantitySelector__StyledInput",
34847
- componentId: "sc-yfdtpn-2"
34848
- })(["text-align:center;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}"]);
34849
- var CloseButton$2 = /*#__PURE__*/styled.div.withConfig({
34850
- displayName: "ItemQuantitySelector__CloseButton",
34851
- componentId: "sc-yfdtpn-3"
34852
- })(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:0.8rem;"]);
34804
+ var TextContainer$1 = /*#__PURE__*/styled.p.withConfig({
34805
+ displayName: "DynamicText__TextContainer",
34806
+ componentId: "sc-1ggl9nd-0"
34807
+ })(["font-size:0.7rem !important;color:white;text-shadow:1px 1px 0px #000000;letter-spacing:1.2px;word-break:normal;"]);
34853
34808
 
34854
- var ItemContainer$1 = function ItemContainer(_ref) {
34855
- var itemContainer = _ref.itemContainer,
34856
- onClose = _ref.onClose,
34857
- _onMouseOver = _ref.onMouseOver,
34858
- _onSelected = _ref.onSelected,
34859
- onItemClick = _ref.onItemClick,
34860
- type = _ref.type,
34861
- atlasJSON = _ref.atlasJSON,
34862
- atlasIMG = _ref.atlasIMG,
34863
- _ref$disableContextMe = _ref.disableContextMenu,
34864
- disableContextMenu = _ref$disableContextMe === void 0 ? false : _ref$disableContextMe,
34865
- onItemDragEnd = _ref.onItemDragEnd,
34866
- onItemDragStart = _ref.onItemDragStart,
34867
- onItemPlaceDrop = _ref.onItemPlaceDrop,
34868
- _onOutsideDrop = _ref.onOutsideDrop,
34869
- checkIfItemCanBeMoved = _ref.checkIfItemCanBeMoved,
34870
- initialPosition = _ref.initialPosition,
34871
- checkIfItemShouldDragEnd = _ref.checkIfItemShouldDragEnd,
34872
- dragScale = _ref.dragScale;
34873
- var _useState = React.useState({
34874
- isOpen: false,
34875
- maxQuantity: 1,
34876
- callback: function callback(_quantity) {}
34877
- }),
34878
- quantitySelect = _useState[0],
34879
- setQuantitySelect = _useState[1];
34880
- var onRenderSlots = function onRenderSlots() {
34881
- var slots = [];
34882
- for (var i = 0; i < itemContainer.slotQty; i++) {
34883
- var _itemContainer$slots;
34884
- slots.push(React__default.createElement(ItemSlot, {
34885
- isContextMenuDisabled: disableContextMenu,
34886
- key: i,
34887
- slotIndex: i,
34888
- item: ((_itemContainer$slots = itemContainer.slots) == null ? void 0 : _itemContainer$slots[i]) || null,
34889
- itemContainerType: type,
34890
- onMouseOver: function onMouseOver(event, slotIndex, item) {
34891
- if (_onMouseOver) _onMouseOver(event, slotIndex, item);
34892
- },
34893
- onPointerDown: function onPointerDown(ItemType, ContainerType, item) {
34894
- if (onItemClick) onItemClick(item, ItemType, ContainerType);
34895
- },
34896
- onSelected: function onSelected(optionId, item) {
34897
- if (_onSelected) _onSelected(optionId, item);
34898
- },
34899
- onDragStart: function onDragStart(item, slotIndex, itemContainerType) {
34900
- if (onItemDragStart) onItemDragStart(item, slotIndex, itemContainerType);
34901
- },
34902
- onDragEnd: function onDragEnd(quantity) {
34903
- if (onItemDragEnd) onItemDragEnd(quantity);
34904
- },
34905
- dragScale: dragScale,
34906
- checkIfItemCanBeMoved: checkIfItemCanBeMoved,
34907
- checkIfItemShouldDragEnd: checkIfItemShouldDragEnd,
34908
- openQuantitySelector: function openQuantitySelector(maxQuantity, callback) {
34909
- setQuantitySelect({
34910
- isOpen: true,
34911
- maxQuantity: maxQuantity,
34912
- callback: callback
34913
- });
34914
- },
34915
- onPlaceDrop: function onPlaceDrop(item, slotIndex, itemContainerType) {
34916
- if (onItemPlaceDrop) onItemPlaceDrop(item, slotIndex, itemContainerType);
34917
- },
34918
- onOutsideDrop: function onOutsideDrop(item, position) {
34919
- if (_onOutsideDrop) _onOutsideDrop(item, position);
34920
- },
34921
- atlasIMG: atlasIMG,
34922
- atlasJSON: atlasJSON
34923
- }));
34809
+ var QuestionDialog = function QuestionDialog(_ref) {
34810
+ var questions = _ref.questions,
34811
+ answers = _ref.answers,
34812
+ onClose = _ref.onClose;
34813
+ var _useState = React.useState(questions[0]),
34814
+ currentQuestion = _useState[0],
34815
+ setCurrentQuestion = _useState[1];
34816
+ var _useState2 = React.useState(false),
34817
+ canShowAnswers = _useState2[0],
34818
+ setCanShowAnswers = _useState2[1];
34819
+ var onGetFirstAnswer = function onGetFirstAnswer() {
34820
+ if (!currentQuestion.answerIds || currentQuestion.answerIds.length === 0) {
34821
+ return null;
34924
34822
  }
34925
- return slots;
34823
+ var firstAnswerId = currentQuestion.answerIds[0];
34824
+ return answers.find(function (answer) {
34825
+ return answer.id === firstAnswerId;
34826
+ });
34926
34827
  };
34927
- return React__default.createElement(React__default.Fragment, null, React__default.createElement(SlotsContainer, {
34928
- title: itemContainer.name || 'Container',
34929
- onClose: onClose,
34930
- initialPosition: initialPosition
34931
- }, React__default.createElement(ItemsContainer, {
34932
- className: "item-container-body"
34933
- }, onRenderSlots())), quantitySelect.isOpen && React__default.createElement(QuantitySelectorContainer, null, React__default.createElement(ItemQuantitySelector, {
34934
- quantity: quantitySelect.maxQuantity,
34935
- onConfirm: function onConfirm(quantity) {
34936
- quantitySelect.callback(quantity);
34937
- setQuantitySelect({
34938
- isOpen: false,
34939
- maxQuantity: 1,
34940
- callback: function callback() {}
34941
- });
34942
- },
34943
- onClose: function onClose() {
34944
- quantitySelect.callback(-1);
34945
- setQuantitySelect({
34946
- isOpen: false,
34947
- maxQuantity: 1,
34948
- callback: function callback() {}
34828
+ var _useState3 = React.useState(onGetFirstAnswer()),
34829
+ currentAnswer = _useState3[0],
34830
+ setCurrentAnswer = _useState3[1];
34831
+ React.useEffect(function () {
34832
+ setCurrentAnswer(onGetFirstAnswer());
34833
+ }, [currentQuestion]);
34834
+ var onGetAnswers = function onGetAnswers(answerIds) {
34835
+ return answerIds.map(function (answerId) {
34836
+ return answers.find(function (answer) {
34837
+ return answer.id === answerId;
34949
34838
  });
34839
+ });
34840
+ };
34841
+ var onKeyPress = function onKeyPress(e) {
34842
+ switch (e.key) {
34843
+ case 'ArrowDown':
34844
+ // select next answer, if any.
34845
+ // if no next answer, select first answer
34846
+ // const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(
34847
+ // (answer) => answer?.id === currentAnswer!.id + 1
34848
+ // );
34849
+ var nextAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
34850
+ return (answer == null ? void 0 : answer.id) === currentAnswer.id + 1;
34851
+ });
34852
+ var nextAnswerID = currentQuestion.answerIds[nextAnswerIndex];
34853
+ var nextAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
34854
+ return (answer == null ? void 0 : answer.id) === nextAnswerID;
34855
+ });
34856
+ setCurrentAnswer(nextAnswer || onGetFirstAnswer());
34857
+ break;
34858
+ case 'ArrowUp':
34859
+ // select previous answer, if any.
34860
+ // if no previous answer, select last answer
34861
+ var previousAnswerIndex = onGetAnswers(currentQuestion.answerIds).findIndex(function (answer) {
34862
+ return (answer == null ? void 0 : answer.id) === currentAnswer.id - 1;
34863
+ });
34864
+ var previousAnswerID = currentQuestion.answerIds && currentQuestion.answerIds[previousAnswerIndex];
34865
+ var previousAnswer = onGetAnswers(currentQuestion.answerIds).find(function (answer) {
34866
+ return (answer == null ? void 0 : answer.id) === previousAnswerID;
34867
+ });
34868
+ if (previousAnswer) {
34869
+ setCurrentAnswer(previousAnswer);
34870
+ } else {
34871
+ setCurrentAnswer(onGetAnswers(currentQuestion.answerIds).pop());
34872
+ }
34873
+ break;
34874
+ case 'Enter':
34875
+ setCanShowAnswers(false);
34876
+ if (!(currentAnswer != null && currentAnswer.nextQuestionId)) {
34877
+ onClose();
34878
+ return;
34879
+ } else {
34880
+ setCurrentQuestion(questions.find(function (question) {
34881
+ return question.id === currentAnswer.nextQuestionId;
34882
+ }));
34883
+ }
34884
+ break;
34950
34885
  }
34951
- })));
34952
- };
34953
- var ItemsContainer = /*#__PURE__*/styled.div.withConfig({
34954
- displayName: "ItemContainer__ItemsContainer",
34955
- componentId: "sc-15y5p9l-0"
34956
- })(["max-width:280px;display:flex;justify-content:center;flex-wrap:wrap;"]);
34957
- var QuantitySelectorContainer = /*#__PURE__*/styled.div.withConfig({
34958
- displayName: "ItemContainer__QuantitySelectorContainer",
34959
- componentId: "sc-15y5p9l-1"
34960
- })(["position:absolute;top:0;left:0;width:100vw;height:100vh;z-index:100;display:flex;justify-content:center;align-items:center;background-color:rgba(0,0,0,0.5);"]);
34961
-
34962
- var ItemSelector = function ItemSelector(_ref) {
34963
- var atlasIMG = _ref.atlasIMG,
34964
- atlasJSON = _ref.atlasJSON,
34965
- options = _ref.options,
34966
- onClose = _ref.onClose,
34967
- onSelect = _ref.onSelect;
34968
- var _useState = React.useState(),
34969
- selectedValue = _useState[0],
34970
- setSelectedValue = _useState[1];
34971
- var handleClick = function handleClick() {
34972
- var element = document.querySelector("input[name='test']:checked");
34973
- var elementValue = element.value;
34974
- setSelectedValue(elementValue);
34975
34886
  };
34976
- React.useEffect(function () {
34977
- if (selectedValue) {
34978
- onSelect(selectedValue);
34887
+ useEventListener('keydown', onKeyPress);
34888
+ var onAnswerClick = function onAnswerClick(answer) {
34889
+ setCanShowAnswers(false);
34890
+ if (answer.nextQuestionId) {
34891
+ // if there is a next question, go to it
34892
+ setCurrentQuestion(questions.find(function (question) {
34893
+ return question.id === answer.nextQuestionId;
34894
+ }));
34895
+ } else {
34896
+ // else, finish dialog!
34897
+ onClose();
34979
34898
  }
34980
- }, [selectedValue]);
34981
- return React__default.createElement(DraggableContainer, {
34982
- type: exports.RPGUIContainerTypes.Framed,
34983
- width: "500px",
34984
- cancelDrag: ".equipment-container-body .arrow-selector",
34985
- onCloseButton: function onCloseButton() {
34986
- if (onClose) {
34987
- onClose();
34988
- }
34899
+ };
34900
+ var onRenderCurrentAnswers = function onRenderCurrentAnswers() {
34901
+ var answerIds = currentQuestion.answerIds;
34902
+ if (!answerIds) {
34903
+ return null;
34989
34904
  }
34990
- }, React__default.createElement("div", {
34991
- style: {
34992
- width: '100%'
34905
+ var answers = onGetAnswers(answerIds);
34906
+ if (!answers) {
34907
+ return null;
34993
34908
  }
34994
- }, React__default.createElement(Title$2, null, 'Harvesting instruments'), React__default.createElement(Subtitle$1, null, 'Use the tool, you need it'), React__default.createElement("hr", {
34995
- className: "golden"
34996
- })), React__default.createElement(RadioInputScroller$1, null, options == null ? void 0 : options.map(function (option, index) {
34997
- return React__default.createElement(RadioOptionsWrapper$1, {
34998
- key: index
34999
- }, React__default.createElement(SpriteAtlasWrapper$1, null, React__default.createElement(SpriteFromAtlas, {
35000
- atlasIMG: atlasIMG,
35001
- atlasJSON: atlasJSON,
35002
- spriteKey: option.imageKey,
35003
- imgScale: 3
35004
- })), React__default.createElement("div", null, React__default.createElement("input", {
35005
- className: "rpgui-radio",
35006
- type: "radio",
35007
- value: option.name,
35008
- name: "test"
35009
- }), React__default.createElement("label", {
35010
- onPointerDown: handleClick,
35011
- style: {
35012
- display: 'flex',
35013
- alignItems: 'center'
34909
+ return answers.map(function (answer) {
34910
+ var isSelected = (currentAnswer == null ? void 0 : currentAnswer.id) === (answer == null ? void 0 : answer.id);
34911
+ var selectedColor = isSelected ? 'yellow' : 'white';
34912
+ if (answer) {
34913
+ return React__default.createElement(AnswerRow, {
34914
+ key: "answer_" + answer.id
34915
+ }, React__default.createElement(AnswerSelectedIcon, {
34916
+ color: selectedColor
34917
+ }, isSelected ? 'X' : null), React__default.createElement(Answer, {
34918
+ key: answer.id,
34919
+ onPointerDown: function onPointerDown() {
34920
+ return onAnswerClick(answer);
34921
+ },
34922
+ color: selectedColor
34923
+ }, answer.text));
35014
34924
  }
35015
- }, option.name, " ", React__default.createElement("br", null), option.description)));
35016
- })), React__default.createElement(ButtonWrapper$1, null, React__default.createElement(Button, {
35017
- buttonType: exports.ButtonTypes.RPGUIButton,
35018
- onPointerDown: onClose
35019
- }, "Cancel"), React__default.createElement(Button, {
35020
- buttonType: exports.ButtonTypes.RPGUIButton
35021
- }, "Select")));
35022
- };
35023
- var Title$2 = /*#__PURE__*/styled.h1.withConfig({
35024
- displayName: "ItemSelector__Title",
35025
- componentId: "sc-gptoxp-0"
35026
- })(["font-size:0.6rem;color:yellow !important;"]);
35027
- var Subtitle$1 = /*#__PURE__*/styled.h1.withConfig({
35028
- displayName: "ItemSelector__Subtitle",
35029
- componentId: "sc-gptoxp-1"
35030
- })(["font-size:0.4rem;color:yellow !important;"]);
35031
- var RadioInputScroller$1 = /*#__PURE__*/styled.div.withConfig({
35032
- displayName: "ItemSelector__RadioInputScroller",
35033
- componentId: "sc-gptoxp-2"
35034
- })(["padding-left:15px;padding-top:10px;width:100%;margin-top:1rem;align-items:center;margin-left:20px;align-items:flex-start;overflow-y:scroll;height:360px;"]);
35035
- var SpriteAtlasWrapper$1 = /*#__PURE__*/styled.div.withConfig({
35036
- displayName: "ItemSelector__SpriteAtlasWrapper",
35037
- componentId: "sc-gptoxp-3"
35038
- })(["margin-right:40px;"]);
35039
- var RadioOptionsWrapper$1 = /*#__PURE__*/styled.div.withConfig({
35040
- displayName: "ItemSelector__RadioOptionsWrapper",
35041
- componentId: "sc-gptoxp-4"
35042
- })(["display:flex;align-items:stretch;margin-bottom:40px;"]);
35043
- var ButtonWrapper$1 = /*#__PURE__*/styled.div.withConfig({
35044
- displayName: "ItemSelector__ButtonWrapper",
35045
- componentId: "sc-gptoxp-5"
35046
- })(["display:flex;justify-content:space-around;padding-top:20px;width:100%;"]);
35047
-
35048
- var ListMenu = function ListMenu(_ref) {
35049
- var options = _ref.options,
35050
- onSelected = _ref.onSelected,
35051
- x = _ref.x,
35052
- y = _ref.y;
35053
- return React__default.createElement(Container$f, {
35054
- x: x,
35055
- y: y
35056
- }, React__default.createElement("ul", {
35057
- className: "rpgui-list-imp",
35058
- style: {
35059
- overflow: 'hidden'
34925
+ return null;
34926
+ });
34927
+ };
34928
+ return React__default.createElement(Container$e, null, React__default.createElement(QuestionContainer, null, React__default.createElement(DynamicText, {
34929
+ text: currentQuestion.text,
34930
+ onStart: function onStart() {
34931
+ return setCanShowAnswers(false);
34932
+ },
34933
+ onFinish: function onFinish() {
34934
+ return setCanShowAnswers(true);
35060
34935
  }
35061
- }, options.map(function (params, index) {
35062
- return React__default.createElement(ListElement$1, {
35063
- key: (params == null ? void 0 : params.id) || index,
35064
- onPointerDown: function onPointerDown() {
35065
- onSelected(params == null ? void 0 : params.id);
35066
- }
35067
- }, (params == null ? void 0 : params.text) || 'No text');
35068
- })));
34936
+ })), canShowAnswers && React__default.createElement(AnswersContainer, null, onRenderCurrentAnswers()));
35069
34937
  };
35070
- var Container$f = /*#__PURE__*/styled.div.withConfig({
35071
- displayName: "ListMenu__Container",
35072
- componentId: "sc-i9097t-0"
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) {
35074
- return props.y || 0;
35075
- }, function (props) {
35076
- return props.x || 0;
35077
- }, uiFonts.size.xsmall);
35078
- var ListElement$1 = /*#__PURE__*/styled.li.withConfig({
35079
- displayName: "ListMenu__ListElement",
35080
- componentId: "sc-i9097t-1"
35081
- })(["margin-right:0.5rem;"]);
34938
+ var Container$e = /*#__PURE__*/styled.div.withConfig({
34939
+ displayName: "QuestionDialog__Container",
34940
+ componentId: "sc-bxc5u0-0"
34941
+ })(["display:flex;word-break:break-all;box-sizing:border-box;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;"]);
34942
+ var QuestionContainer = /*#__PURE__*/styled.div.withConfig({
34943
+ displayName: "QuestionDialog__QuestionContainer",
34944
+ componentId: "sc-bxc5u0-1"
34945
+ })(["flex:100%;width:100%;"]);
34946
+ var AnswersContainer = /*#__PURE__*/styled.div.withConfig({
34947
+ displayName: "QuestionDialog__AnswersContainer",
34948
+ componentId: "sc-bxc5u0-2"
34949
+ })(["flex:100%;"]);
34950
+ var Answer = /*#__PURE__*/styled.p.withConfig({
34951
+ displayName: "QuestionDialog__Answer",
34952
+ componentId: "sc-bxc5u0-3"
34953
+ })(["flex:auto;color:", " !important;font-size:0.65rem !important;background:inherit;border:none;"], function (props) {
34954
+ return props.color;
34955
+ });
34956
+ var AnswerSelectedIcon = /*#__PURE__*/styled.span.withConfig({
34957
+ displayName: "QuestionDialog__AnswerSelectedIcon",
34958
+ componentId: "sc-bxc5u0-4"
34959
+ })(["flex:5% 0 0;color:", " !important;"], function (props) {
34960
+ return props.color;
34961
+ });
34962
+ var AnswerRow = /*#__PURE__*/styled.div.withConfig({
34963
+ displayName: "QuestionDialog__AnswerRow",
34964
+ componentId: "sc-bxc5u0-5"
34965
+ })(["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;}"]);
35082
34966
 
35083
34967
  var ProgressBar = function ProgressBar(_ref) {
35084
34968
  var max = _ref.max,
@@ -35097,7 +34981,7 @@ var ProgressBar = function ProgressBar(_ref) {
35097
34981
  }
35098
34982
  return value * 100 / max;
35099
34983
  };
35100
- return React__default.createElement(Container$g, {
34984
+ return React__default.createElement(Container$f, {
35101
34985
  className: "rpgui-progress",
35102
34986
  "data-value": calculatePercentageValue(max, value) / 100,
35103
34987
  "data-rpguitype": "progress",
@@ -35126,7 +35010,7 @@ var TextOverlay$1 = /*#__PURE__*/styled.div.withConfig({
35126
35010
  displayName: "ProgressBar__TextOverlay",
35127
35011
  componentId: "sc-qa6fzh-1"
35128
35012
  })(["width:100%;position:relative;"]);
35129
- var Container$g = /*#__PURE__*/styled.div.withConfig({
35013
+ var Container$f = /*#__PURE__*/styled.div.withConfig({
35130
35014
  displayName: "ProgressBar__Container",
35131
35015
  componentId: "sc-qa6fzh-2"
35132
35016
  })(["display:flex;flex-direction:column;min-width:", "px;width:", "%;justify-content:start;align-items:flex-start;", ""], function (props) {
@@ -35137,7 +35021,7 @@ var Container$g = /*#__PURE__*/styled.div.withConfig({
35137
35021
  return props.style;
35138
35022
  });
35139
35023
 
35140
- var img$9 = 'data:image/png;base64,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';
35024
+ var img$8 = 'data:image/png;base64,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';
35141
35025
 
35142
35026
  var QuestInfo = function QuestInfo(_ref) {
35143
35027
  var quests = _ref.quests,
@@ -35179,7 +35063,7 @@ var QuestInfo = function QuestInfo(_ref) {
35179
35063
  }), React__default.createElement(QuestContainer, null, React__default.createElement(TitleContainer$1, {
35180
35064
  className: "drag-handler"
35181
35065
  }, React__default.createElement(Title$3, null, React__default.createElement(Thumbnail, {
35182
- src: quests[currentIndex].thumbnail || img$9
35066
+ src: quests[currentIndex].thumbnail || img$8
35183
35067
  }), quests[currentIndex].title), React__default.createElement(QuestSplitDiv, null, React__default.createElement("hr", {
35184
35068
  className: "golden"
35185
35069
  }))), React__default.createElement(Content, null, React__default.createElement("p", null, quests[currentIndex].description)), React__default.createElement(QuestColumn, {
@@ -35198,7 +35082,7 @@ var QuestInfo = function QuestInfo(_ref) {
35198
35082
  })))) : React__default.createElement(QuestsContainer, null, React__default.createElement(QuestContainer, null, React__default.createElement(TitleContainer$1, {
35199
35083
  className: "drag-handler"
35200
35084
  }, React__default.createElement(Title$3, null, React__default.createElement(Thumbnail, {
35201
- src: quests[0].thumbnail || img$9
35085
+ src: quests[0].thumbnail || img$8
35202
35086
  }), quests[0].title), React__default.createElement(QuestSplitDiv, null, React__default.createElement("hr", {
35203
35087
  className: "golden"
35204
35088
  }))), React__default.createElement(Content, null, React__default.createElement("p", null, quests[0].description)), React__default.createElement(QuestColumn, {
@@ -35331,15 +35215,115 @@ var InputRadio = function InputRadio(_ref) {
35331
35215
  }, element.label), React__default.createElement("br", null));
35332
35216
  }));
35333
35217
  };
35334
-
35335
- //@ts-ignore
35336
- var _RPGUI = RPGUI;
35337
- var RPGUIRoot = function RPGUIRoot(_ref) {
35338
- var children = _ref.children;
35339
- return React__default.createElement("div", {
35340
- className: "rpgui-content"
35341
- }, children);
35342
- };
35218
+
35219
+ //@ts-ignore
35220
+ var _RPGUI = RPGUI;
35221
+ var RPGUIRoot = function RPGUIRoot(_ref) {
35222
+ var children = _ref.children;
35223
+ return React__default.createElement("div", {
35224
+ className: "rpgui-content"
35225
+ }, children);
35226
+ };
35227
+
35228
+ var Shortcuts = function Shortcuts(_ref) {
35229
+ var shortcuts = _ref.shortcuts,
35230
+ onShortcutCast = _ref.onShortcutCast,
35231
+ mana = _ref.mana,
35232
+ _ref$isBlockedCasting = _ref.isBlockedCastingByKeyboard,
35233
+ isBlockedCastingByKeyboard = _ref$isBlockedCasting === void 0 ? false : _ref$isBlockedCasting,
35234
+ atlasJSON = _ref.atlasJSON,
35235
+ atlasIMG = _ref.atlasIMG,
35236
+ inventory = _ref.inventory;
35237
+ var shortcutsRefs = React.useRef([]);
35238
+ React.useEffect(function () {
35239
+ var handleKeyDown = function handleKeyDown(e) {
35240
+ if (isBlockedCastingByKeyboard) return;
35241
+ var shortcutIndex = Number(e.key) - 1;
35242
+ if (shortcutIndex >= 0 && shortcutIndex <= 5) {
35243
+ var _shortcutsRefs$curren;
35244
+ onShortcutCast(shortcutIndex);
35245
+ (_shortcutsRefs$curren = shortcutsRefs.current[shortcutIndex]) == null ? void 0 : _shortcutsRefs$curren.classList.add('active');
35246
+ setTimeout(function () {
35247
+ var _shortcutsRefs$curren2;
35248
+ (_shortcutsRefs$curren2 = shortcutsRefs.current[shortcutIndex]) == null ? void 0 : _shortcutsRefs$curren2.classList.remove('active');
35249
+ }, 150);
35250
+ }
35251
+ };
35252
+ window.addEventListener('keydown', handleKeyDown);
35253
+ return function () {
35254
+ window.removeEventListener('keydown', handleKeyDown);
35255
+ };
35256
+ }, [shortcuts, isBlockedCastingByKeyboard]);
35257
+ return React__default.createElement(List$1, null, Array.from({
35258
+ length: 6
35259
+ }).map(function (_, i) {
35260
+ var _shortcuts$i, _shortcuts$i3, _payload$manaCost;
35261
+ if (((_shortcuts$i = shortcuts[i]) == null ? void 0 : _shortcuts$i.type) === shared.ShortcutType.Item) {
35262
+ var _shortcuts$i2;
35263
+ var _payload = (_shortcuts$i2 = shortcuts[i]) == null ? void 0 : _shortcuts$i2.payload;
35264
+ var itemsFromEquipment = [];
35265
+ if (inventory) {
35266
+ Object.keys(inventory.slots).forEach(function (i) {
35267
+ var _inventory$slots$inde;
35268
+ var index = parseInt(i);
35269
+ if (((_inventory$slots$inde = inventory.slots[index]) == null ? void 0 : _inventory$slots$inde.key) === (_payload == null ? void 0 : _payload.key)) {
35270
+ itemsFromEquipment.push(inventory.slots[index]);
35271
+ }
35272
+ });
35273
+ }
35274
+ var totalQty = itemsFromEquipment.reduce(function (acc, item) {
35275
+ return acc + ((item == null ? void 0 : item.stackQty) || 1);
35276
+ }, 0);
35277
+ return React__default.createElement(StyledShortcut$1, {
35278
+ key: i,
35279
+ onPointerDown: onShortcutCast.bind(null, i),
35280
+ disabled: false,
35281
+ ref: function ref(el) {
35282
+ if (el) shortcutsRefs.current[i] = el;
35283
+ }
35284
+ }, _payload && React__default.createElement(SpriteFromAtlas, {
35285
+ atlasIMG: atlasIMG,
35286
+ atlasJSON: atlasJSON,
35287
+ spriteKey: shared.getItemTextureKeyPath({
35288
+ key: _payload.texturePath,
35289
+ texturePath: _payload.texturePath,
35290
+ stackQty: _payload.stackQty || 1
35291
+ }, atlasJSON),
35292
+ width: 32,
35293
+ height: 32
35294
+ }), React__default.createElement("span", {
35295
+ className: "qty"
35296
+ }, totalQty), React__default.createElement("span", {
35297
+ className: "keyboard"
35298
+ }, i + 1));
35299
+ }
35300
+ var payload = (_shortcuts$i3 = shortcuts[i]) == null ? void 0 : _shortcuts$i3.payload;
35301
+ return React__default.createElement(StyledShortcut$1, {
35302
+ key: i,
35303
+ onPointerDown: onShortcutCast.bind(null, i),
35304
+ disabled: mana < ((_payload$manaCost = payload == null ? void 0 : payload.manaCost) != null ? _payload$manaCost : 0),
35305
+ ref: function ref(el) {
35306
+ if (el) shortcutsRefs.current[i] = el;
35307
+ }
35308
+ }, React__default.createElement("span", {
35309
+ className: "mana"
35310
+ }, payload && payload.manaCost), React__default.createElement("span", {
35311
+ className: "magicWords"
35312
+ }, payload == null ? void 0 : payload.magicWords.split(' ').map(function (word) {
35313
+ return word[0];
35314
+ })), React__default.createElement("span", {
35315
+ className: "keyboard"
35316
+ }, i + 1));
35317
+ }));
35318
+ };
35319
+ var StyledShortcut$1 = /*#__PURE__*/styled(SingleShortcut).withConfig({
35320
+ displayName: "Shortcuts__StyledShortcut",
35321
+ componentId: "sc-kgtsi7-0"
35322
+ })(["transition:all 0.15s;&.active{background-color:", ";border-color:", ";}"], uiColors.gray, uiColors.yellow);
35323
+ var List$1 = /*#__PURE__*/styled.p.withConfig({
35324
+ displayName: "Shortcuts__List",
35325
+ componentId: "sc-kgtsi7-1"
35326
+ })(["width:100%;display:flex;align-items:center;justify-content:center;gap:0.5rem;box-sizing:border-box;margin:0 !important;"]);
35343
35327
 
35344
35328
  var SimpleProgressBar = function SimpleProgressBar(_ref) {
35345
35329
  var value = _ref.value,
@@ -35347,7 +35331,7 @@ var SimpleProgressBar = function SimpleProgressBar(_ref) {
35347
35331
  bgColor = _ref$bgColor === void 0 ? 'red' : _ref$bgColor,
35348
35332
  _ref$margin = _ref.margin,
35349
35333
  margin = _ref$margin === void 0 ? 20 : _ref$margin;
35350
- return React__default.createElement(Container$h, {
35334
+ return React__default.createElement(Container$g, {
35351
35335
  className: "simple-progress-bar"
35352
35336
  }, React__default.createElement(ProgressBarContainer, {
35353
35337
  margin: margin
@@ -35356,7 +35340,7 @@ var SimpleProgressBar = function SimpleProgressBar(_ref) {
35356
35340
  bgColor: bgColor
35357
35341
  }))));
35358
35342
  };
35359
- var Container$h = /*#__PURE__*/styled.div.withConfig({
35343
+ var Container$g = /*#__PURE__*/styled.div.withConfig({
35360
35344
  displayName: "SimpleProgressBar__Container",
35361
35345
  componentId: "sc-mbeil3-0"
35362
35346
  })(["display:flex;justify-content:center;align-items:center;width:100%;"]);
@@ -35583,7 +35567,7 @@ var Spell = function Spell(_ref) {
35583
35567
  isSettingShortcut = _ref.isSettingShortcut,
35584
35568
  minMagicLevelRequired = _ref.minMagicLevelRequired;
35585
35569
  var disabled = isSettingShortcut ? charMagicLevel < minMagicLevelRequired : manaCost > charMana || charMagicLevel < minMagicLevelRequired;
35586
- return React__default.createElement(Container$i, {
35570
+ return React__default.createElement(Container$h, {
35587
35571
  disabled: disabled,
35588
35572
  onPointerDown: onPointerDown == null ? void 0 : onPointerDown.bind(null, spellKey),
35589
35573
  isSettingShortcut: isSettingShortcut && !disabled,
@@ -35596,7 +35580,7 @@ var Spell = function Spell(_ref) {
35596
35580
  className: "mana"
35597
35581
  }, manaCost)));
35598
35582
  };
35599
- var Container$i = /*#__PURE__*/styled.button.withConfig({
35583
+ var Container$h = /*#__PURE__*/styled.button.withConfig({
35600
35584
  displayName: "Spell__Container",
35601
35585
  componentId: "sc-j96fa2-0"
35602
35586
  })(["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) {
@@ -35632,43 +35616,6 @@ var Overlay = /*#__PURE__*/styled.p.withConfig({
35632
35616
  componentId: "sc-j96fa2-7"
35633
35617
  })(["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);
35634
35618
 
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
-
35672
35619
  var Spellbook = function Spellbook(_ref) {
35673
35620
  var onClose = _ref.onClose,
35674
35621
  onInputFocus = _ref.onInputFocus,
@@ -35678,8 +35625,10 @@ var Spellbook = function Spellbook(_ref) {
35678
35625
  mana = _ref.mana,
35679
35626
  onSpellClick = _ref.onSpellClick,
35680
35627
  setSpellShortcut = _ref.setSpellShortcut,
35681
- spellShortcuts = _ref.spellShortcuts,
35682
- removeSpellShortcut = _ref.removeSpellShortcut;
35628
+ shortcuts = _ref.shortcuts,
35629
+ removeShortcut = _ref.removeShortcut,
35630
+ atlasIMG = _ref.atlasIMG,
35631
+ atlasJSON = _ref.atlasJSON;
35683
35632
  var _useState = React.useState(''),
35684
35633
  search = _useState[0],
35685
35634
  setSearch = _useState[1];
@@ -35716,11 +35665,13 @@ var Spellbook = function Spellbook(_ref) {
35716
35665
  width: "inherit",
35717
35666
  height: "inherit",
35718
35667
  cancelDrag: "#spellbook-search, #shortcuts_list, .spell"
35719
- }, React__default.createElement(Container$j, null, React__default.createElement(Title$6, null, "Learned Spells"), React__default.createElement(SpellbookShortcuts, {
35668
+ }, React__default.createElement(Container$i, null, React__default.createElement(Title$6, null, "Learned Spells"), React__default.createElement(ShortcutsSetter, {
35720
35669
  setSettingShortcutIndex: setSettingShortcutIndex,
35721
35670
  settingShortcutIndex: settingShortcutIndex,
35722
- shortcuts: spellShortcuts,
35723
- removeShortcut: removeSpellShortcut
35671
+ shortcuts: shortcuts,
35672
+ removeShortcut: removeShortcut,
35673
+ atlasIMG: atlasIMG,
35674
+ atlasJSON: atlasJSON
35724
35675
  }), React__default.createElement(Input, {
35725
35676
  placeholder: "Search for spell",
35726
35677
  value: search,
@@ -35746,7 +35697,7 @@ var Title$6 = /*#__PURE__*/styled.h1.withConfig({
35746
35697
  displayName: "Spellbook__Title",
35747
35698
  componentId: "sc-r02nfq-0"
35748
35699
  })(["font-size:", " !important;margin-bottom:0 !important;"], uiFonts.size.large);
35749
- var Container$j = /*#__PURE__*/styled.div.withConfig({
35700
+ var Container$i = /*#__PURE__*/styled.div.withConfig({
35750
35701
  displayName: "Spellbook__Container",
35751
35702
  componentId: "sc-r02nfq-1"
35752
35703
  })(["width:100%;height:100%;color:white;display:flex;flex-direction:column;"]);
@@ -35760,16 +35711,16 @@ var TextArea = function TextArea(_ref) {
35760
35711
  return React__default.createElement("textarea", Object.assign({}, props));
35761
35712
  };
35762
35713
 
35763
- var img$a = 'data:image/gif;base64,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';
35714
+ var img$9 = 'data:image/gif;base64,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';
35764
35715
 
35765
- var img$b = 'data:image/gif;base64,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';
35716
+ var img$a = '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';
35766
35717
 
35767
- var img$c = 'data:image/gif;base64,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';
35718
+ var img$b = 'data:image/gif;base64,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';
35768
35719
 
35769
35720
  var DayNightPeriod = function DayNightPeriod(_ref) {
35770
35721
  var _periodOfDaySrcFiles;
35771
35722
  var periodOfDay = _ref.periodOfDay;
35772
- var periodOfDaySrcFiles = (_periodOfDaySrcFiles = {}, _periodOfDaySrcFiles[shared.PeriodOfDay.Morning] = img$b, _periodOfDaySrcFiles[shared.PeriodOfDay.Afternoon] = img$a, _periodOfDaySrcFiles[shared.PeriodOfDay.Night] = img$c, _periodOfDaySrcFiles);
35723
+ var periodOfDaySrcFiles = (_periodOfDaySrcFiles = {}, _periodOfDaySrcFiles[shared.PeriodOfDay.Morning] = img$a, _periodOfDaySrcFiles[shared.PeriodOfDay.Afternoon] = img$9, _periodOfDaySrcFiles[shared.PeriodOfDay.Night] = img$b, _periodOfDaySrcFiles);
35773
35724
  return React__default.createElement(GifContainer, null, React__default.createElement("img", {
35774
35725
  src: periodOfDaySrcFiles[periodOfDay]
35775
35726
  }));
@@ -35779,7 +35730,7 @@ var GifContainer = /*#__PURE__*/styled.div.withConfig({
35779
35730
  componentId: "sc-10t97fw-0"
35780
35731
  })(["width:100%;img{width:67%;}"]);
35781
35732
 
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';
35733
+ 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';
35783
35734
 
35784
35735
  var TimeWidget = function TimeWidget(_ref) {
35785
35736
  var onClose = _ref.onClose,
@@ -35794,7 +35745,7 @@ var TimeWidget = function TimeWidget(_ref) {
35794
35745
  var WidgetContainer = /*#__PURE__*/styled.div.withConfig({
35795
35746
  displayName: "TimeWidget__WidgetContainer",
35796
35747
  componentId: "sc-1ja236h-0"
35797
- })(["background-image:url(", ");background-size:10rem;background-repeat:no-repeat;width:10rem;position:absolute;height:100px;"], img$d);
35748
+ })(["background-image:url(", ");background-size:10rem;background-repeat:no-repeat;width:10rem;position:absolute;height:100px;"], img$c);
35798
35749
  var Time = /*#__PURE__*/styled.div.withConfig({
35799
35750
  displayName: "TimeWidget__Time",
35800
35751
  componentId: "sc-1ja236h-1"
@@ -36042,17 +35993,230 @@ var Truncate = function Truncate(_ref) {
36042
35993
  var _ref$maxLines = _ref.maxLines,
36043
35994
  maxLines = _ref$maxLines === void 0 ? 1 : _ref$maxLines,
36044
35995
  children = _ref.children;
36045
- return React__default.createElement(Container$k, {
35996
+ return React__default.createElement(Container$j, {
36046
35997
  maxLines: maxLines
36047
35998
  }, children);
36048
35999
  };
36049
- var Container$k = /*#__PURE__*/styled.div.withConfig({
36000
+ var Container$j = /*#__PURE__*/styled.div.withConfig({
36050
36001
  displayName: "Truncate__Container",
36051
36002
  componentId: "sc-6x00qb-0"
36052
36003
  })(["display:-webkit-box;max-width:100%;max-height:100%;-webkit-line-clamp:", ";-webkit-box-orient:vertical;overflow:hidden;"], function (props) {
36053
36004
  return props.maxLines;
36054
36005
  });
36055
36006
 
36007
+ var IS_MOBILE_OR_TABLET = /*#__PURE__*/shared.isMobileOrTablet();
36008
+
36009
+ var chunkString = function chunkString(str, length) {
36010
+ return str.match(new RegExp('.{1,' + length + '}', 'g'));
36011
+ };
36012
+
36013
+ var img$d = 'data:image/gif;base64,R0lGODlhEAAQAPIAAAAAABQYLiw1TUBJc2hvmQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAM9CLrc/lCFGSKYJJP5AhlguDnBMIVgxXgmJapSSp3mKs/pKrT0IMCXUk+2Cgh2oSOnaDz+lswZpSOFUq2KBAAh/wtJbWFnZU1hZ2ljaw1nYW1tYT0wLjQ1NDU1ACH5BAEUAAAALAAAAAAQABAAAAIzhI+py90Bg4OjDrjCELxfFQhQx0mIJkaeaYRp5LJADMdnqXbyOJLYTdKBejjZoRaZJBMFACH/C0ltYWdlTWFnaWNrDWdhbW1hPTAuNDU0NTUAIfkEARQAAAAsAAAAABAAEAAAAjKEj6nL7Y+CDE6OO+QKQ/ifKYEgfR4VddPohQe7lmR0xidNTib65uacYP2AQWGuMlEUAAA7';
36014
+
36015
+ var NPCDialogText = function NPCDialogText(_ref) {
36016
+ var text = _ref.text,
36017
+ onClose = _ref.onClose,
36018
+ onEndStep = _ref.onEndStep,
36019
+ onStartStep = _ref.onStartStep,
36020
+ type = _ref.type;
36021
+ var windowSize = React.useRef([window.innerWidth, window.innerHeight]);
36022
+ function maxCharacters(width) {
36023
+ // Set the font size to 16 pixels
36024
+ var fontSize = 11.2;
36025
+ // Calculate the number of characters that can fit in one line
36026
+ var charactersPerLine = Math.floor(width / 2 / fontSize);
36027
+ // Calculate the number of lines that can fit in the div
36028
+ var linesPerDiv = Math.floor(180 / fontSize);
36029
+ // Calculate the maximum number of characters that can fit in the div
36030
+ var maxCharacters = charactersPerLine * linesPerDiv;
36031
+ // Return the maximum number of characters
36032
+ return Math.round(maxCharacters / 5);
36033
+ }
36034
+ var textChunks = chunkString(text, maxCharacters(windowSize.current[0]));
36035
+ var _useState = React.useState(0),
36036
+ chunkIndex = _useState[0],
36037
+ setChunkIndex = _useState[1];
36038
+ var onHandleSpacePress = function onHandleSpacePress(event) {
36039
+ if (event.code === 'Space') {
36040
+ goToNextStep();
36041
+ }
36042
+ };
36043
+ var goToNextStep = function goToNextStep() {
36044
+ var hasNextChunk = (textChunks == null ? void 0 : textChunks[chunkIndex + 1]) || false;
36045
+ if (hasNextChunk) {
36046
+ setChunkIndex(function (prev) {
36047
+ return prev + 1;
36048
+ });
36049
+ } else {
36050
+ // if there's no more text chunks, close the dialog
36051
+ onClose();
36052
+ }
36053
+ };
36054
+ React.useEffect(function () {
36055
+ document.addEventListener('keydown', onHandleSpacePress);
36056
+ return function () {
36057
+ return document.removeEventListener('keydown', onHandleSpacePress);
36058
+ };
36059
+ }, [chunkIndex]);
36060
+ var _useState2 = React.useState(false),
36061
+ showGoNextIndicator = _useState2[0],
36062
+ setShowGoNextIndicator = _useState2[1];
36063
+ return React__default.createElement(Container$k, null, React__default.createElement(DynamicText, {
36064
+ text: (textChunks == null ? void 0 : textChunks[chunkIndex]) || '',
36065
+ onFinish: function onFinish() {
36066
+ setShowGoNextIndicator(true);
36067
+ onEndStep && onEndStep();
36068
+ },
36069
+ onStart: function onStart() {
36070
+ setShowGoNextIndicator(false);
36071
+ onStartStep && onStartStep();
36072
+ }
36073
+ }), showGoNextIndicator && React__default.createElement(PressSpaceIndicator$1, {
36074
+ right: type === exports.NPCDialogType.TextOnly ? '1rem' : '10.5rem',
36075
+ src: IS_MOBILE_OR_TABLET ? img$d : img$7,
36076
+ onPointerDown: function onPointerDown() {
36077
+ goToNextStep();
36078
+ }
36079
+ }));
36080
+ };
36081
+ var Container$k = /*#__PURE__*/styled.div.withConfig({
36082
+ displayName: "NPCDialogText__Container",
36083
+ componentId: "sc-1cxkdh9-0"
36084
+ })([""]);
36085
+ var PressSpaceIndicator$1 = /*#__PURE__*/styled.img.withConfig({
36086
+ displayName: "NPCDialogText__PressSpaceIndicator",
36087
+ componentId: "sc-1cxkdh9-1"
36088
+ })(["position:absolute;right:", ";bottom:1rem;height:20.7px;image-rendering:-webkit-optimize-contrast;"], function (_ref2) {
36089
+ var right = _ref2.right;
36090
+ return right;
36091
+ });
36092
+
36093
+ (function (NPCDialogType) {
36094
+ NPCDialogType["TextOnly"] = "TextOnly";
36095
+ NPCDialogType["TextAndThumbnail"] = "TextAndThumbnail";
36096
+ })(exports.NPCDialogType || (exports.NPCDialogType = {}));
36097
+ var NPCDialog = function NPCDialog(_ref) {
36098
+ var text = _ref.text,
36099
+ type = _ref.type,
36100
+ _onClose = _ref.onClose,
36101
+ imagePath = _ref.imagePath,
36102
+ _ref$isQuestionDialog = _ref.isQuestionDialog,
36103
+ isQuestionDialog = _ref$isQuestionDialog === void 0 ? false : _ref$isQuestionDialog,
36104
+ questions = _ref.questions,
36105
+ answers = _ref.answers;
36106
+ return React__default.createElement(RPGUIContainer, {
36107
+ type: exports.RPGUIContainerTypes.FramedGold,
36108
+ width: isQuestionDialog ? '600px' : '80%',
36109
+ height: '180px'
36110
+ }, isQuestionDialog && questions && answers ? React__default.createElement(React__default.Fragment, null, React__default.createElement(TextContainer$2, {
36111
+ flex: type === exports.NPCDialogType.TextAndThumbnail ? '70%' : '100%'
36112
+ }, React__default.createElement(QuestionDialog, {
36113
+ questions: questions,
36114
+ answers: answers,
36115
+ onClose: function onClose() {
36116
+ if (_onClose) {
36117
+ _onClose();
36118
+ }
36119
+ }
36120
+ })), type === exports.NPCDialogType.TextAndThumbnail && React__default.createElement(ThumbnailContainer$1, null, React__default.createElement(NPCThumbnail$1, {
36121
+ src: imagePath || img$6
36122
+ }))) : React__default.createElement(React__default.Fragment, null, React__default.createElement(Container$l, null, React__default.createElement(TextContainer$2, {
36123
+ flex: type === exports.NPCDialogType.TextAndThumbnail ? '70%' : '100%'
36124
+ }, React__default.createElement(NPCDialogText, {
36125
+ type: type,
36126
+ text: text || 'No text provided.',
36127
+ onClose: function onClose() {
36128
+ if (_onClose) {
36129
+ _onClose();
36130
+ }
36131
+ }
36132
+ })), type === exports.NPCDialogType.TextAndThumbnail && React__default.createElement(ThumbnailContainer$1, null, React__default.createElement(NPCThumbnail$1, {
36133
+ src: imagePath || img$6
36134
+ })))));
36135
+ };
36136
+ var Container$l = /*#__PURE__*/styled.div.withConfig({
36137
+ displayName: "NPCDialog__Container",
36138
+ componentId: "sc-1b4aw74-0"
36139
+ })(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
36140
+ var TextContainer$2 = /*#__PURE__*/styled.div.withConfig({
36141
+ displayName: "NPCDialog__TextContainer",
36142
+ componentId: "sc-1b4aw74-1"
36143
+ })(["flex:", " 0 0;width:355px;"], function (_ref2) {
36144
+ var flex = _ref2.flex;
36145
+ return flex;
36146
+ });
36147
+ var ThumbnailContainer$1 = /*#__PURE__*/styled.div.withConfig({
36148
+ displayName: "NPCDialog__ThumbnailContainer",
36149
+ componentId: "sc-1b4aw74-2"
36150
+ })(["flex:30% 0 0;display:flex;justify-content:flex-end;"]);
36151
+ var NPCThumbnail$1 = /*#__PURE__*/styled.img.withConfig({
36152
+ displayName: "NPCDialog__NPCThumbnail",
36153
+ componentId: "sc-1b4aw74-3"
36154
+ })(["image-rendering:pixelated;height:128px;width:128px;"]);
36155
+
36156
+ var HistoryDialog = function HistoryDialog(_ref) {
36157
+ var backgroundImgPath = _ref.backgroundImgPath,
36158
+ fullCoverBackground = _ref.fullCoverBackground,
36159
+ questions = _ref.questions,
36160
+ answers = _ref.answers,
36161
+ text = _ref.text,
36162
+ imagePath = _ref.imagePath,
36163
+ textAndTypeArray = _ref.textAndTypeArray,
36164
+ onClose = _ref.onClose;
36165
+ var _useState = React.useState(0),
36166
+ img = _useState[0],
36167
+ setImage = _useState[1];
36168
+ var onHandleSpacePress = function onHandleSpacePress(event) {
36169
+ if (event.code === 'Space') {
36170
+ if (img < (backgroundImgPath == null ? void 0 : backgroundImgPath.length) - 1) {
36171
+ setImage(function (prev) {
36172
+ return prev + 1;
36173
+ });
36174
+ } else {
36175
+ // if there's no more text chunks, close the dialog
36176
+ onClose();
36177
+ }
36178
+ }
36179
+ };
36180
+ React.useEffect(function () {
36181
+ document.addEventListener('keydown', onHandleSpacePress);
36182
+ return function () {
36183
+ return document.removeEventListener('keydown', onHandleSpacePress);
36184
+ };
36185
+ }, [backgroundImgPath]);
36186
+ return React__default.createElement(BackgroundContainer, {
36187
+ imgPath: backgroundImgPath[img],
36188
+ fullImg: fullCoverBackground
36189
+ }, React__default.createElement(DialogContainer, null, textAndTypeArray ? React__default.createElement(NPCMultiDialog, {
36190
+ textAndTypeArray: textAndTypeArray,
36191
+ onClose: onClose
36192
+ }) : questions && answers ? React__default.createElement(QuestionDialog, {
36193
+ questions: questions,
36194
+ answers: answers,
36195
+ onClose: onClose
36196
+ }) : text && imagePath ? React__default.createElement(NPCDialog, {
36197
+ text: text,
36198
+ imagePath: imagePath,
36199
+ onClose: onClose,
36200
+ type: exports.NPCDialogType.TextAndThumbnail
36201
+ }) : React__default.createElement(NPCDialog, {
36202
+ text: text,
36203
+ onClose: onClose,
36204
+ type: exports.NPCDialogType.TextOnly
36205
+ })));
36206
+ };
36207
+ var BackgroundContainer = /*#__PURE__*/styled.div.withConfig({
36208
+ displayName: "HistoryDialog__BackgroundContainer",
36209
+ componentId: "sc-u6oe75-0"
36210
+ })(["width:100%;height:100%;background-image:url(", ");background-size:", ";display:flex;justify-content:space-evenly;align-items:center;"], function (props) {
36211
+ return props.imgPath;
36212
+ }, function (props) {
36213
+ return props.imgPath ? 'cover' : 'auto';
36214
+ });
36215
+ var DialogContainer = /*#__PURE__*/styled.div.withConfig({
36216
+ displayName: "HistoryDialog__DialogContainer",
36217
+ componentId: "sc-u6oe75-1"
36218
+ })(["display:flex;justify-content:center;padding-top:200px;"]);
36219
+
36056
36220
  exports.Button = Button;
36057
36221
  exports.CharacterSelection = CharacterSelection;
36058
36222
  exports.Chat = Chat;
@@ -36080,13 +36244,12 @@ exports.PropertySelect = PropertySelect;
36080
36244
  exports.QuestInfo = QuestInfo;
36081
36245
  exports.QuestList = QuestList;
36082
36246
  exports.QuestionDialog = QuestionDialog;
36083
- exports.QuickSpells = QuickSpells;
36084
36247
  exports.RPGUIContainer = RPGUIContainer;
36085
36248
  exports.RPGUIRoot = RPGUIRoot;
36086
36249
  exports.RangeSlider = RangeSlider;
36250
+ exports.Shortcuts = Shortcuts;
36087
36251
  exports.SkillProgressBar = SkillProgressBar;
36088
36252
  exports.SkillsContainer = SkillsContainer;
36089
- exports.SpellShortcut = SpellShortcut;
36090
36253
  exports.Spellbook = Spellbook;
36091
36254
  exports.SpriteFromAtlas = SpriteFromAtlas;
36092
36255
  exports.TextArea = TextArea;