@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
@@ -1,120 +0,0 @@
1
- import { IRawSpell } from '@rpg-engine/shared';
2
- import React, { useEffect } from 'react';
3
- import styled from 'styled-components';
4
- import { uiColors } from '../../constants/uiColors';
5
-
6
- export type QuickSpellsProps = {
7
- quickSpells: IRawSpell[];
8
- onSpellCast: (spellKey: string) => void;
9
- mana: number;
10
- isBlockedCastingByKeyboard?: boolean;
11
- };
12
-
13
- export const QuickSpells: React.FC<QuickSpellsProps> = ({
14
- quickSpells,
15
- onSpellCast,
16
- mana,
17
- isBlockedCastingByKeyboard = false,
18
- }) => {
19
- useEffect(() => {
20
- const handleKeyDown = (e: KeyboardEvent) => {
21
- if (isBlockedCastingByKeyboard) return;
22
-
23
- const shortcutIndex = Number(e.key) - 1;
24
- if (shortcutIndex >= 0 && shortcutIndex <= 3) {
25
- const shortcut = quickSpells[shortcutIndex];
26
- if (shortcut?.key && mana >= shortcut?.manaCost) {
27
- onSpellCast(shortcut.key);
28
- }
29
- }
30
- };
31
-
32
- window.addEventListener('keydown', handleKeyDown);
33
-
34
- return () => {
35
- window.removeEventListener('keydown', handleKeyDown);
36
- };
37
- }, [quickSpells, isBlockedCastingByKeyboard]);
38
-
39
- return (
40
- <List>
41
- {Array.from({ length: 4 }).map((_, i) => (
42
- <SpellShortcut
43
- key={i}
44
- onPointerDown={onSpellCast.bind(null, quickSpells[i]?.key)}
45
- disabled={mana < quickSpells[i]?.manaCost}
46
- >
47
- <span className="mana">
48
- {quickSpells[i]?.key && quickSpells[i]?.manaCost}
49
- </span>
50
- <span className="magicWords">
51
- {quickSpells[i]?.magicWords.split(' ').map(word => word[0])}
52
- </span>
53
- <span className="keyboard">{i + 1}</span>
54
- </SpellShortcut>
55
- ))}
56
- </List>
57
- );
58
- };
59
-
60
- export const SpellShortcut = styled.button`
61
- width: 3rem;
62
- height: 3rem;
63
- background-color: ${uiColors.lightGray};
64
- border: 2px solid ${uiColors.darkGray};
65
- border-radius: 50%;
66
- text-transform: uppercase;
67
- font-size: 0.7rem;
68
- font-weight: bold;
69
- display: flex;
70
- align-items: center;
71
- justify-content: center;
72
- position: relative;
73
-
74
- span {
75
- pointer-events: none;
76
- }
77
-
78
- .mana {
79
- position: absolute;
80
- top: -5px;
81
- right: 0;
82
- font-size: 0.65rem;
83
- color: ${uiColors.blue};
84
- }
85
-
86
- .magicWords {
87
- margin-top: 4px;
88
- }
89
-
90
- .keyboard {
91
- position: absolute;
92
- bottom: -5px;
93
- left: 0;
94
- font-size: 0.65rem;
95
- color: ${uiColors.yellow};
96
- }
97
-
98
- &:hover,
99
- &:focus {
100
- background-color: ${uiColors.darkGray};
101
- }
102
-
103
- &:active {
104
- background-color: ${uiColors.gray};
105
- }
106
-
107
- &:disabled {
108
- opacity: 0.5;
109
- }
110
- `;
111
-
112
- const List = styled.p`
113
- width: 100%;
114
- display: flex;
115
- align-items: center;
116
- justify-content: center;
117
- gap: 0.5rem;
118
- box-sizing: border-box;
119
- margin: 0 !important;
120
- `;
@@ -1,77 +0,0 @@
1
- import { IRawSpell } from '@rpg-engine/shared';
2
- import React from 'react';
3
- import styled from 'styled-components';
4
- import { uiColors } from '../../constants/uiColors';
5
-
6
- type Props = {
7
- setSettingShortcutIndex: (index: number) => void;
8
- settingShortcutIndex: number;
9
- shortcuts: IRawSpell[];
10
- removeShortcut: (index: number) => void;
11
- };
12
-
13
- export const SpellbookShortcuts: React.FC<Props> = ({
14
- setSettingShortcutIndex,
15
- settingShortcutIndex,
16
- shortcuts,
17
- removeShortcut,
18
- }) => (
19
- <List id="shortcuts_list">
20
- Spells shortcuts:
21
- {Array.from({ length: 4 }).map((_, i) => (
22
- <SpellShortcut
23
- key={i}
24
- onPointerDown={() => {
25
- removeShortcut(i);
26
- if (!shortcuts[i]?.key) setSettingShortcutIndex(i);
27
- }}
28
- disabled={settingShortcutIndex !== -1 && settingShortcutIndex !== i}
29
- isBeingSet={settingShortcutIndex === i}
30
- >
31
- <span>{shortcuts[i]?.magicWords.split(' ').map(word => word[0])}</span>
32
- </SpellShortcut>
33
- ))}
34
- </List>
35
- );
36
- const SpellShortcut = styled.button<{ isBeingSet?: boolean }>`
37
- width: 2.6rem;
38
- height: 2.6rem;
39
- background-color: ${uiColors.lightGray};
40
- border: 2px solid
41
- ${({ isBeingSet }) => (isBeingSet ? uiColors.yellow : uiColors.darkGray)};
42
- border-radius: 50%;
43
- text-transform: uppercase;
44
- font-size: 0.7rem;
45
- font-weight: bold;
46
- display: flex;
47
- align-items: center;
48
- justify-content: center;
49
-
50
- span {
51
- margin-top: 4px;
52
- }
53
-
54
- &:hover,
55
- &:focus {
56
- background-color: ${uiColors.darkGray};
57
- }
58
-
59
- &:active {
60
- background-color: ${uiColors.gray};
61
- }
62
-
63
- &:disabled {
64
- opacity: 0.5;
65
- }
66
- `;
67
-
68
- const List = styled.p`
69
- width: 100%;
70
- display: flex;
71
- align-items: center;
72
- justify-content: flex-end;
73
- gap: 0.5rem;
74
- padding: 0.5rem;
75
- box-sizing: border-box;
76
- margin: 0 !important;
77
- `;
@@ -1,38 +0,0 @@
1
- import { Meta, Story } from '@storybook/react';
2
- import React from 'react';
3
- import { RPGUIRoot } from '../components/RPGUIRoot';
4
- import { SPELL_SHORTCUTS_STORAGE_KEY } from '../components/Spellbook/constants';
5
- import {
6
- QuickSpells,
7
- QuickSpellsProps,
8
- } from '../components/Spellbook/QuickSpells';
9
-
10
- const meta: Meta = {
11
- title: 'QuickSpells',
12
- component: QuickSpells,
13
- };
14
-
15
- export default meta;
16
-
17
- const Template: Story<QuickSpellsProps> = args => {
18
- return (
19
- <RPGUIRoot>
20
- <div
21
- style={{
22
- width: '100%',
23
- }}
24
- >
25
- <QuickSpells {...args} />
26
- </div>
27
- </RPGUIRoot>
28
- );
29
- };
30
-
31
- export const Default = Template.bind({});
32
- Default.args = {
33
- onSpellCast: spellKey => console.log(spellKey),
34
- quickSpells: JSON.parse(
35
- localStorage.getItem(SPELL_SHORTCUTS_STORAGE_KEY) as string
36
- ),
37
- mana: 100,
38
- };