@react-text-game/ui 0.3.1 → 0.3.4

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 (38) hide show
  1. package/dist/components/InteractiveMapComponent/Hotspot.d.ts.map +1 -1
  2. package/dist/components/InteractiveMapComponent/Hotspot.js +1 -2
  3. package/dist/components/InteractiveMapComponent/Hotspot.js.map +1 -1
  4. package/dist/components/InteractiveMapComponent/HotspotMenu.d.ts.map +1 -1
  5. package/dist/components/InteractiveMapComponent/HotspotMenu.js +2 -7
  6. package/dist/components/InteractiveMapComponent/HotspotMenu.js.map +1 -1
  7. package/dist/components/InteractiveMapComponent/HotspotMenuItem.d.ts +6 -0
  8. package/dist/components/InteractiveMapComponent/HotspotMenuItem.d.ts.map +1 -0
  9. package/dist/components/InteractiveMapComponent/HotspotMenuItem.js +13 -0
  10. package/dist/components/InteractiveMapComponent/HotspotMenuItem.js.map +1 -0
  11. package/dist/components/InteractiveMapComponent/ImageHotspot.d.ts +6 -1
  12. package/dist/components/InteractiveMapComponent/ImageHotspot.d.ts.map +1 -1
  13. package/dist/components/InteractiveMapComponent/ImageHotspot.js +36 -14
  14. package/dist/components/InteractiveMapComponent/ImageHotspot.js.map +1 -1
  15. package/dist/components/InteractiveMapComponent/LabelHotspot.d.ts +4 -1
  16. package/dist/components/InteractiveMapComponent/LabelHotspot.d.ts.map +1 -1
  17. package/dist/components/InteractiveMapComponent/LabelHotspot.js +6 -4
  18. package/dist/components/InteractiveMapComponent/LabelHotspot.js.map +1 -1
  19. package/dist/components/InteractiveMapComponent/SideHotspot.d.ts.map +1 -1
  20. package/dist/components/InteractiveMapComponent/SideHotspot.js +1 -2
  21. package/dist/components/InteractiveMapComponent/SideHotspot.js.map +1 -1
  22. package/dist/components/StoryComponent/components/Actions.d.ts.map +1 -1
  23. package/dist/components/StoryComponent/components/Actions.js +7 -2
  24. package/dist/components/StoryComponent/components/Actions.js.map +1 -1
  25. package/dist/components/common/Tooltip.d.ts +3 -3
  26. package/dist/components/common/Tooltip.d.ts.map +1 -1
  27. package/dist/components/common/Tooltip.js +124 -23
  28. package/dist/components/common/Tooltip.js.map +1 -1
  29. package/dist/styles/index.css +4 -45
  30. package/dist/tests/InteractiveMapComponent/ImageHotspot.test.d.ts +2 -0
  31. package/dist/tests/InteractiveMapComponent/ImageHotspot.test.d.ts.map +1 -0
  32. package/dist/tests/InteractiveMapComponent/ImageHotspot.test.js +460 -0
  33. package/dist/tests/InteractiveMapComponent/ImageHotspot.test.js.map +1 -0
  34. package/dist/tests/common/Tooltip.test.d.ts +2 -0
  35. package/dist/tests/common/Tooltip.test.d.ts.map +1 -0
  36. package/dist/tests/common/Tooltip.test.js +400 -0
  37. package/dist/tests/common/Tooltip.test.js.map +1 -0
  38. package/package.json +2 -2
@@ -0,0 +1,400 @@
1
+ import { cleanup, render, screen, waitFor } from "@testing-library/react";
2
+ import userEvent from "@testing-library/user-event";
3
+ import { afterEach, beforeEach, describe, expect, test } from "bun:test";
4
+ import { createElement, createRef } from "react";
5
+ import { Tooltip } from "../../components/common/Tooltip";
6
+ describe("Tooltip", () => {
7
+ beforeEach(() => {
8
+ // Clean up document.body between tests since tooltips are portaled
9
+ document.body.innerHTML = "";
10
+ });
11
+ afterEach(() => {
12
+ cleanup();
13
+ });
14
+ describe("Basic Rendering", () => {
15
+ test("does not render when disabled is true", () => {
16
+ const targetRef = createRef();
17
+ render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
18
+ targetRef,
19
+ content: "Tooltip content",
20
+ disabled: true,
21
+ })));
22
+ // Tooltip should not be in the document
23
+ expect(screen.queryByTestId("tooltip-content")).toBeNull();
24
+ });
25
+ test("does not render when not visible", () => {
26
+ const targetRef = createRef();
27
+ render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
28
+ targetRef,
29
+ content: "Tooltip content",
30
+ disabled: false,
31
+ })));
32
+ // Tooltip should not be visible initially
33
+ expect(screen.queryByTestId("tooltip-content")).toBeNull();
34
+ });
35
+ test("renders when visible after hover", async () => {
36
+ const user = userEvent.setup();
37
+ const targetRef = createRef();
38
+ render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
39
+ targetRef,
40
+ content: "Tooltip content",
41
+ disabled: false,
42
+ })));
43
+ const button = screen.getByText("Hover me");
44
+ await user.hover(button);
45
+ await waitFor(() => {
46
+ expect(screen.getByTestId("tooltip-content")).toBeTruthy();
47
+ expect(screen.getByText("Tooltip content")).toBeTruthy();
48
+ });
49
+ });
50
+ test("applies custom className", async () => {
51
+ const user = userEvent.setup();
52
+ const targetRef = createRef();
53
+ render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
54
+ targetRef,
55
+ content: "Tooltip content",
56
+ className: "custom-tooltip-class",
57
+ })));
58
+ const button = screen.getByText("Hover me");
59
+ await user.hover(button);
60
+ await waitFor(() => {
61
+ const tooltip = screen.getByTestId("tooltip-content");
62
+ expect(tooltip.className).toContain("custom-tooltip-class");
63
+ });
64
+ });
65
+ test("renders with ReactNode content", async () => {
66
+ const user = userEvent.setup();
67
+ const targetRef = createRef();
68
+ render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
69
+ targetRef,
70
+ content: createElement("strong", null, "Bold tooltip"),
71
+ })));
72
+ const button = screen.getByText("Hover me");
73
+ await user.hover(button);
74
+ await waitFor(() => {
75
+ expect(screen.getByText("Bold tooltip")).toBeTruthy();
76
+ const strong = screen.getByText("Bold tooltip").tagName;
77
+ expect(strong).toBe("STRONG");
78
+ });
79
+ });
80
+ });
81
+ describe("Visibility Control", () => {
82
+ test("shows tooltip on mouseenter", async () => {
83
+ const user = userEvent.setup();
84
+ const targetRef = createRef();
85
+ render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
86
+ targetRef,
87
+ content: "Tooltip content",
88
+ })));
89
+ expect(screen.queryByTestId("tooltip-content")).toBeNull();
90
+ const button = screen.getByText("Hover me");
91
+ await user.hover(button);
92
+ await waitFor(() => {
93
+ expect(screen.getByTestId("tooltip-content")).toBeTruthy();
94
+ });
95
+ });
96
+ test("hides tooltip on mouseleave", async () => {
97
+ const user = userEvent.setup();
98
+ const targetRef = createRef();
99
+ render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
100
+ targetRef,
101
+ content: "Tooltip content",
102
+ })));
103
+ const button = screen.getByText("Hover me");
104
+ await user.hover(button);
105
+ await waitFor(() => {
106
+ expect(screen.getByTestId("tooltip-content")).toBeTruthy();
107
+ });
108
+ await user.unhover(button);
109
+ await waitFor(() => {
110
+ expect(screen.queryByTestId("tooltip-content")).toBeNull();
111
+ });
112
+ });
113
+ test("does not show tooltip when disabled", async () => {
114
+ const user = userEvent.setup();
115
+ const targetRef = createRef();
116
+ render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
117
+ targetRef,
118
+ content: "Tooltip content",
119
+ disabled: true,
120
+ })));
121
+ const button = screen.getByText("Hover me");
122
+ await user.hover(button);
123
+ // Wait a bit to ensure it doesn't appear
124
+ await new Promise((resolve) => setTimeout(resolve, 100));
125
+ expect(screen.queryByTestId("tooltip-content")).toBeNull();
126
+ });
127
+ });
128
+ describe("Placement Positioning", () => {
129
+ const placements = [
130
+ "top",
131
+ "top-right",
132
+ "top-left",
133
+ "bottom",
134
+ "bottom-right",
135
+ "bottom-left",
136
+ "right",
137
+ "left",
138
+ ];
139
+ placements.forEach((placement) => {
140
+ test(`renders with ${placement} placement`, async () => {
141
+ const user = userEvent.setup();
142
+ const targetRef = createRef();
143
+ render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
144
+ targetRef,
145
+ content: "Tooltip content",
146
+ placement,
147
+ })));
148
+ const button = screen.getByText("Hover me");
149
+ await user.hover(button);
150
+ await waitFor(() => {
151
+ const tooltip = screen.getByTestId("tooltip-content");
152
+ expect(tooltip).toBeTruthy();
153
+ // Tooltip should have positioning styles
154
+ expect(tooltip.style.top).toBeTruthy();
155
+ expect(tooltip.style.left).toBeTruthy();
156
+ });
157
+ });
158
+ });
159
+ test("defaults to top placement when not specified", async () => {
160
+ const user = userEvent.setup();
161
+ const targetRef = createRef();
162
+ render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
163
+ targetRef,
164
+ content: "Tooltip content",
165
+ })));
166
+ const button = screen.getByText("Hover me");
167
+ await user.hover(button);
168
+ await waitFor(() => {
169
+ expect(screen.getByTestId("tooltip-content")).toBeTruthy();
170
+ });
171
+ });
172
+ });
173
+ describe("Arrow Rendering", () => {
174
+ test("renders arrow element", async () => {
175
+ const user = userEvent.setup();
176
+ const targetRef = createRef();
177
+ render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
178
+ targetRef,
179
+ content: "Tooltip content",
180
+ })));
181
+ const button = screen.getByText("Hover me");
182
+ await user.hover(button);
183
+ await waitFor(() => {
184
+ const tooltip = screen.getByTestId("tooltip-content");
185
+ const arrow = tooltip.querySelector(".rotate-45");
186
+ expect(arrow).toBeTruthy();
187
+ });
188
+ });
189
+ test("arrow has correct styles", async () => {
190
+ const user = userEvent.setup();
191
+ const targetRef = createRef();
192
+ render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
193
+ targetRef,
194
+ content: "Tooltip content",
195
+ })));
196
+ const button = screen.getByText("Hover me");
197
+ await user.hover(button);
198
+ await waitFor(() => {
199
+ const tooltip = screen.getByTestId("tooltip-content");
200
+ const arrow = tooltip.querySelector(".rotate-45");
201
+ expect(arrow).toBeTruthy();
202
+ // Arrow should have position styles
203
+ expect(arrow.style.top).toBeTruthy();
204
+ expect(arrow.style.left).toBeTruthy();
205
+ });
206
+ });
207
+ });
208
+ describe("Portal Behavior", () => {
209
+ test("renders tooltip in document.body via portal", async () => {
210
+ const user = userEvent.setup();
211
+ const targetRef = createRef();
212
+ const { container } = render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
213
+ targetRef,
214
+ content: "Tooltip content",
215
+ })));
216
+ const button = screen.getByText("Hover me");
217
+ await user.hover(button);
218
+ await waitFor(() => {
219
+ const tooltip = screen.getByTestId("tooltip-content");
220
+ expect(tooltip).toBeTruthy();
221
+ // Tooltip should be in document.body, not in the container
222
+ expect(container.contains(tooltip)).toBe(false);
223
+ expect(document.body.contains(tooltip)).toBe(true);
224
+ });
225
+ });
226
+ });
227
+ describe("Edge Cases", () => {
228
+ test("handles null targetRef gracefully", () => {
229
+ const targetRef = createRef();
230
+ // Don't attach the ref to anything
231
+ render(createElement("div", null, createElement(Tooltip, {
232
+ targetRef,
233
+ content: "Tooltip content",
234
+ })));
235
+ // Should not error, just not render
236
+ expect(screen.queryByTestId("tooltip-content")).toBeNull();
237
+ });
238
+ test("cleans up event listeners on unmount", async () => {
239
+ const user = userEvent.setup();
240
+ const targetRef = createRef();
241
+ const { unmount } = render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
242
+ targetRef,
243
+ content: "Tooltip content",
244
+ })));
245
+ const button = screen.getByText("Hover me");
246
+ await user.hover(button);
247
+ await waitFor(() => {
248
+ expect(screen.getByTestId("tooltip-content")).toBeTruthy();
249
+ });
250
+ // Unmount the component
251
+ unmount();
252
+ // Tooltip should be removed
253
+ expect(screen.queryByTestId("tooltip-content")).toBeNull();
254
+ });
255
+ test("shows tooltip when disabled changes from true to false", async () => {
256
+ const user = userEvent.setup();
257
+ const targetRef = createRef();
258
+ const { rerender } = render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
259
+ targetRef,
260
+ content: "Tooltip content",
261
+ disabled: true,
262
+ })));
263
+ const button = screen.getByText("Hover me");
264
+ await user.hover(button);
265
+ expect(screen.queryByTestId("tooltip-content")).toBeNull();
266
+ // Unhover first
267
+ await user.unhover(button);
268
+ // Re-render with disabled: false
269
+ rerender(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
270
+ targetRef,
271
+ content: "Tooltip content",
272
+ disabled: false,
273
+ })));
274
+ // Hover again to trigger the tooltip
275
+ await user.hover(button);
276
+ await waitFor(() => {
277
+ expect(screen.getByTestId("tooltip-content")).toBeTruthy();
278
+ });
279
+ });
280
+ test("handles placement change while visible", async () => {
281
+ const user = userEvent.setup();
282
+ const targetRef = createRef();
283
+ const { rerender } = render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
284
+ targetRef,
285
+ content: "Tooltip content",
286
+ placement: "top",
287
+ })));
288
+ const button = screen.getByText("Hover me");
289
+ await user.hover(button);
290
+ await waitFor(() => {
291
+ expect(screen.getByTestId("tooltip-content")).toBeTruthy();
292
+ });
293
+ // Change placement
294
+ rerender(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
295
+ targetRef,
296
+ content: "Tooltip content",
297
+ placement: "bottom",
298
+ })));
299
+ await waitFor(() => {
300
+ // Position should update based on new placement
301
+ expect(screen.getByTestId("tooltip-content")).toBeTruthy();
302
+ });
303
+ });
304
+ test("tooltip has correct ARIA attributes", async () => {
305
+ const user = userEvent.setup();
306
+ const targetRef = createRef();
307
+ render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
308
+ targetRef,
309
+ content: "Tooltip content",
310
+ })));
311
+ const button = screen.getByText("Hover me");
312
+ await user.hover(button);
313
+ await waitFor(() => {
314
+ const tooltip = screen.getByTestId("tooltip-content");
315
+ expect(tooltip.getAttribute("role")).toBe("tooltip");
316
+ });
317
+ });
318
+ test("handles rapid hover/unhover without errors", async () => {
319
+ const user = userEvent.setup();
320
+ const targetRef = createRef();
321
+ render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
322
+ targetRef,
323
+ content: "Tooltip content",
324
+ })));
325
+ const button = screen.getByText("Hover me");
326
+ // Rapidly hover and unhover
327
+ await user.hover(button);
328
+ await user.unhover(button);
329
+ await user.hover(button);
330
+ await user.unhover(button);
331
+ await user.hover(button);
332
+ // Should handle this gracefully
333
+ await waitFor(() => {
334
+ expect(screen.getByTestId("tooltip-content")).toBeTruthy();
335
+ });
336
+ });
337
+ });
338
+ describe("Styling", () => {
339
+ test("applies correct CSS classes", async () => {
340
+ const user = userEvent.setup();
341
+ const targetRef = createRef();
342
+ render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
343
+ targetRef,
344
+ content: "Tooltip content",
345
+ })));
346
+ const button = screen.getByText("Hover me");
347
+ await user.hover(button);
348
+ await waitFor(() => {
349
+ const tooltip = screen.getByTestId("tooltip-content");
350
+ expect(tooltip.className).toContain("fixed");
351
+ expect(tooltip.className).toContain("z-50");
352
+ expect(tooltip.className).toContain("bg-popover");
353
+ expect(tooltip.className).toContain("border");
354
+ });
355
+ });
356
+ test("has visible opacity when shown", async () => {
357
+ const user = userEvent.setup();
358
+ const targetRef = createRef();
359
+ render(createElement("div", null, createElement("button", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
360
+ targetRef,
361
+ content: "Tooltip content",
362
+ })));
363
+ const button = screen.getByText("Hover me");
364
+ await user.hover(button);
365
+ await waitFor(() => {
366
+ const tooltip = screen.getByTestId("tooltip-content");
367
+ expect(tooltip.className).toContain("opacity-100");
368
+ });
369
+ });
370
+ });
371
+ describe("Different Target Types", () => {
372
+ test("works with HTMLDivElement ref", async () => {
373
+ const user = userEvent.setup();
374
+ const targetRef = createRef();
375
+ render(createElement("div", null, createElement("div", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
376
+ targetRef,
377
+ content: "Tooltip content",
378
+ })));
379
+ const div = screen.getByText("Hover me");
380
+ await user.hover(div);
381
+ await waitFor(() => {
382
+ expect(screen.getByTestId("tooltip-content")).toBeTruthy();
383
+ });
384
+ });
385
+ test("works with HTMLElement ref", async () => {
386
+ const user = userEvent.setup();
387
+ const targetRef = createRef();
388
+ render(createElement("div", null, createElement("span", { ref: targetRef }, "Hover me"), createElement(Tooltip, {
389
+ targetRef,
390
+ content: "Tooltip content",
391
+ })));
392
+ const span = screen.getByText("Hover me");
393
+ await user.hover(span);
394
+ await waitFor(() => {
395
+ expect(screen.getByTestId("tooltip-content")).toBeTruthy();
396
+ });
397
+ });
398
+ });
399
+ });
400
+ //# sourceMappingURL=Tooltip.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tooltip.test.js","sourceRoot":"","sources":["../../../src/tests/common/Tooltip.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-text-game/ui",
3
- "version": "0.3.1",
3
+ "version": "0.3.4",
4
4
  "description": "Themeable React UI component library for text-based games with Tailwind CSS v4, featuring story passages, interactive maps, and customizable game interfaces",
5
5
  "private": false,
6
6
  "type": "module",
@@ -48,7 +48,7 @@
48
48
  "tsc-alias": "^1.8.16",
49
49
  "@tailwindcss/postcss": "^4.0.0",
50
50
  "postcss": "^8.4.49",
51
- "@react-text-game/core": "0.3.0"
51
+ "@react-text-game/core": "0.5.2"
52
52
  },
53
53
  "imports": {
54
54
  "#*": "./dist/*"