@prosopo/procaptcha-puzzle 2.12.3 → 2.13.1

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.
@@ -1,15 +1,36 @@
1
- import { ChallengeSurface } from "@prosopo/procaptcha-common";
2
- import { useCallback, useEffect, useRef, useState } from "react";
1
+ import { useTranslation } from "@prosopo/locale";
2
+ import { ChallengeSurface, isEventTrusted } from "@prosopo/procaptcha-common";
3
+ import { useCallback, useEffect, useId, useRef, useState } from "react";
3
4
  import { jsx, jsxs } from "@emotion/react/jsx-runtime";
4
5
  //#region src/components/PuzzleCanvas.tsx
5
6
  var CONTAINER_WIDTH = 300;
6
7
  var CONTAINER_HEIGHT = 200;
7
- var SHAKE_KEYFRAMES = `
8
+ var PIECE_CSS_CLASS = "prosopo-puzzle-piece";
9
+ var STEP_PX = 10;
10
+ var FINE_STEP_PX = 2;
11
+ var ANNOUNCE_DEBOUNCE_MS = 400;
12
+ var VISUALLY_HIDDEN = {
13
+ position: "absolute",
14
+ width: "1px",
15
+ height: "1px",
16
+ padding: 0,
17
+ margin: "-1px",
18
+ overflow: "hidden",
19
+ clip: "rect(0, 0, 0, 0)",
20
+ clipPath: "inset(50%)",
21
+ whiteSpace: "nowrap",
22
+ border: 0
23
+ };
24
+ var stylesheet = (focusRingColor) => `
8
25
  @keyframes prosopo-puzzle-shake {
9
26
  0%, 100% { transform: translateX(0); }
10
27
  10%, 30%, 50%, 70%, 90% { transform: translateX(-4px); }
11
28
  20%, 40%, 60%, 80% { transform: translateX(4px); }
12
29
  }
30
+ .${PIECE_CSS_CLASS}:focus-visible {
31
+ outline: 3px solid ${focusRingColor};
32
+ outline-offset: 2px;
33
+ }
13
34
  `;
14
35
  var PuzzleCanvas = ({ originX, originY, background, piece, pieceSize, onComplete, showRetry, submitting, theme, placement, anchor, onDismiss }) => {
15
36
  const [posX, setPosX] = useState(originX);
@@ -24,9 +45,17 @@ var PuzzleCanvas = ({ originX, originY, background, piece, pieceSize, onComplete
24
45
  });
25
46
  const [visible, setVisible] = useState(false);
26
47
  const [shaking, setShaking] = useState(false);
48
+ const { t } = useTranslation();
49
+ const baseId = useId();
50
+ const instructionId = `${baseId}-instruction`;
51
+ const keyboardHintId = `${baseId}-keyboard-hint`;
52
+ const keyboardDragging = useRef(false);
53
+ const [announcement, setAnnouncement] = useState("");
54
+ const announceTimer = useRef(null);
27
55
  useEffect(() => {
28
56
  setPosX(originX);
29
57
  setPosY(originY);
58
+ keyboardDragging.current = false;
30
59
  }, [originX, originY]);
31
60
  useEffect(() => {
32
61
  const frame = requestAnimationFrame(() => setVisible(true));
@@ -43,6 +72,25 @@ var PuzzleCanvas = ({ originX, originY, background, piece, pieceSize, onComplete
43
72
  const clamp = useCallback((value, min, max) => {
44
73
  return Math.max(min, Math.min(max, value));
45
74
  }, []);
75
+ const announce = useCallback((message, delayMs = 0) => {
76
+ if (announceTimer.current) {
77
+ clearTimeout(announceTimer.current);
78
+ announceTimer.current = null;
79
+ }
80
+ if (delayMs === 0) {
81
+ setAnnouncement(message);
82
+ return;
83
+ }
84
+ announceTimer.current = setTimeout(() => setAnnouncement(message), delayMs);
85
+ }, []);
86
+ useEffect(() => () => {
87
+ if (announceTimer.current) clearTimeout(announceTimer.current);
88
+ }, []);
89
+ const describePosition = useCallback((x, y) => t("WIDGET.PUZZLE.POSITION", {
90
+ defaultValue: "{{x}} percent across, {{y}} percent down",
91
+ x: Math.round(x / CONTAINER_WIDTH * 100),
92
+ y: Math.round(y / CONTAINER_HEIGHT * 100)
93
+ }), [t]);
46
94
  const getContainerOffset = useCallback(() => {
47
95
  if (containerRef.current) {
48
96
  const rect = containerRef.current.getBoundingClientRect();
@@ -69,15 +117,17 @@ var PuzzleCanvas = ({ originX, originY, background, piece, pieceSize, onComplete
69
117
  t: Date.now()
70
118
  });
71
119
  }, [clamp, getContainerOffset]);
120
+ const complete = useCallback((finalX, finalY) => {
121
+ onComplete(finalX, finalY, [...puzzleEvents.current]);
122
+ }, [onComplete]);
72
123
  const handleEndEvent = useCallback(() => {
73
124
  if (!isDragging.current) return;
74
125
  isDragging.current = false;
75
126
  setDragging(false);
76
- const currentEvents = [...puzzleEvents.current];
77
- const lastEvent = currentEvents[currentEvents.length - 1];
78
- onComplete(lastEvent ? lastEvent.x : originX, lastEvent ? lastEvent.y : originY, currentEvents);
127
+ const lastEvent = puzzleEvents.current[puzzleEvents.current.length - 1];
128
+ complete(lastEvent ? lastEvent.x : originX, lastEvent ? lastEvent.y : originY);
79
129
  }, [
80
- onComplete,
130
+ complete,
81
131
  originX,
82
132
  originY
83
133
  ]);
@@ -114,6 +164,7 @@ var PuzzleCanvas = ({ originX, originY, background, piece, pieceSize, onComplete
114
164
  const handlePieceMouseDown = useCallback((event) => {
115
165
  if (submitting) return;
116
166
  isDragging.current = true;
167
+ keyboardDragging.current = false;
117
168
  setDragging(true);
118
169
  puzzleEvents.current = [];
119
170
  const containerOffset = getContainerOffset();
@@ -132,6 +183,7 @@ var PuzzleCanvas = ({ originX, originY, background, piece, pieceSize, onComplete
132
183
  const touch = event.touches[0];
133
184
  if (touch) {
134
185
  isDragging.current = true;
186
+ keyboardDragging.current = false;
135
187
  setDragging(true);
136
188
  puzzleEvents.current = [];
137
189
  const containerOffset = getContainerOffset();
@@ -146,7 +198,84 @@ var PuzzleCanvas = ({ originX, originY, background, piece, pieceSize, onComplete
146
198
  posY,
147
199
  submitting
148
200
  ]);
149
- const instructionText = showRetry ? "Not quite — try again" : "Drag the piece to the target";
201
+ const moveByKeyboard = useCallback((deltaX, deltaY) => {
202
+ if (!keyboardDragging.current) {
203
+ keyboardDragging.current = true;
204
+ puzzleEvents.current = [];
205
+ }
206
+ const nextX = clamp(posX + deltaX, 0, CONTAINER_WIDTH);
207
+ const nextY = clamp(posY + deltaY, 0, CONTAINER_HEIGHT);
208
+ setPosX(nextX);
209
+ setPosY(nextY);
210
+ puzzleEvents.current.push({
211
+ x: nextX,
212
+ y: nextY,
213
+ t: Date.now()
214
+ });
215
+ announce(describePosition(nextX, nextY), ANNOUNCE_DEBOUNCE_MS);
216
+ }, [
217
+ announce,
218
+ clamp,
219
+ describePosition,
220
+ posX,
221
+ posY
222
+ ]);
223
+ const handlePieceKeyDown = useCallback((event) => {
224
+ if (submitting) return;
225
+ if (!isEventTrusted(event)) return;
226
+ const step = event.shiftKey ? FINE_STEP_PX : STEP_PX;
227
+ const move = {
228
+ ArrowLeft: [-step, 0],
229
+ ArrowRight: [step, 0],
230
+ ArrowUp: [0, -step],
231
+ ArrowDown: [0, step],
232
+ Home: [originX - posX, originY - posY]
233
+ }[event.key];
234
+ if (move) {
235
+ event.preventDefault();
236
+ moveByKeyboard(move[0], move[1]);
237
+ return;
238
+ }
239
+ if (event.key === "Enter" || event.key === " ") {
240
+ event.preventDefault();
241
+ keyboardDragging.current = false;
242
+ complete(posX, posY);
243
+ }
244
+ }, [
245
+ complete,
246
+ moveByKeyboard,
247
+ originX,
248
+ originY,
249
+ posX,
250
+ posY,
251
+ submitting
252
+ ]);
253
+ const handlePieceFocus = useCallback(() => {
254
+ announce(describePosition(posX, posY));
255
+ }, [
256
+ announce,
257
+ describePosition,
258
+ posX,
259
+ posY
260
+ ]);
261
+ const instructionText = showRetry ? t("WIDGET.PUZZLE.RETRY", { defaultValue: "Not quite — try again" }) : t("WIDGET.PUZZLE.DRAG", { defaultValue: "Drag the piece to the target" });
262
+ const keyboardHintText = t("WIDGET.PUZZLE.KEYBOARD_HINT", { defaultValue: "Use the arrow keys to move the piece, holding shift for smaller steps. Press Enter to submit it, Home to put it back at the start, or Escape to cancel." });
263
+ useEffect(() => {
264
+ if (!submitting) return;
265
+ announce(t("WIDGET.PUZZLE.CHECKING", { defaultValue: "Checking your answer" }));
266
+ }, [
267
+ submitting,
268
+ announce,
269
+ t
270
+ ]);
271
+ useEffect(() => {
272
+ if (!showRetry) return;
273
+ announce(t("WIDGET.PUZZLE.RETRY_ANNOUNCEMENT", { defaultValue: "Not quite. A new puzzle has loaded and the piece is back at the start." }));
274
+ }, [
275
+ showRetry,
276
+ announce,
277
+ t
278
+ ]);
150
279
  const headerBorderColor = showRetry ? theme.palette.error.main : "transparent";
151
280
  const headerTextColor = showRetry ? theme.palette.error.main : theme.palette.onSurface;
152
281
  const puzzleAreaBg = `linear-gradient(135deg, ${theme.palette.surface} 0%, ${theme.palette.primaryContainer.main} 50%, ${theme.palette.surface} 100%)`;
@@ -168,155 +297,179 @@ var PuzzleCanvas = ({ originX, originY, background, piece, pieceSize, onComplete
168
297
  anchor,
169
298
  onDismiss,
170
299
  scrim: visible ? "dim" : "none",
171
- children: [/* @__PURE__ */ jsx("style", { children: SHAKE_KEYFRAMES }), /* @__PURE__ */ jsxs("div", {
172
- style: {
173
- display: "flex",
174
- flexDirection: "column",
175
- alignItems: "center",
176
- gap: "0",
177
- opacity: visible ? 1 : 0,
178
- transform: visible ? "scale(1)" : "scale(0.9)",
179
- transition: "opacity 0.3s ease, transform 0.3s ease",
180
- animation: shaking ? "prosopo-puzzle-shake 0.5s ease" : "none"
181
- },
182
- children: [/* @__PURE__ */ jsx("div", {
300
+ dialogLabel: t("WIDGET.PUZZLE.DIALOG_LABEL", { defaultValue: "Puzzle challenge" }),
301
+ children: [
302
+ /* @__PURE__ */ jsx("style", { children: stylesheet(theme.palette.primary.main) }),
303
+ /* @__PURE__ */ jsx("output", {
304
+ "aria-live": "polite",
305
+ "aria-atomic": "true",
306
+ style: VISUALLY_HIDDEN,
307
+ children: announcement
308
+ }),
309
+ /* @__PURE__ */ jsx("div", {
310
+ id: keyboardHintId,
311
+ style: VISUALLY_HIDDEN,
312
+ children: keyboardHintText
313
+ }),
314
+ /* @__PURE__ */ jsxs("div", {
183
315
  style: {
184
- backgroundColor: theme.palette.surface,
185
- borderRadius: "20px 20px 0 0",
186
- padding: "12px 20px",
187
- width: `${CONTAINER_WIDTH}px`,
188
- boxSizing: "border-box",
189
- textAlign: "center",
190
- fontFamily: theme.font.fontFamily,
191
- fontSize: "14px",
192
- fontWeight: 500,
193
- color: headerTextColor,
194
- borderBottom: `2px solid ${headerBorderColor}`,
195
- transition: "color 0.3s ease, border-color 0.3s ease"
196
- },
197
- children: instructionText
198
- }), /* @__PURE__ */ jsxs("div", {
199
- ref: containerRef,
200
- style: {
201
- position: "relative",
202
- width: `${CONTAINER_WIDTH}px`,
203
- height: `${CONTAINER_HEIGHT}px`,
204
- background: puzzleAreaBg,
205
- borderRadius: "0 0 20px 20px",
206
- overflow: "hidden",
207
- userSelect: "none",
208
- opacity: submitting ? .6 : 1,
209
- pointerEvents: submitting ? "none" : "auto",
210
- transition: "opacity 0.2s ease"
316
+ display: "flex",
317
+ flexDirection: "column",
318
+ alignItems: "center",
319
+ gap: "0",
320
+ opacity: visible ? 1 : 0,
321
+ transform: visible ? "scale(1)" : "scale(0.9)",
322
+ transition: "opacity 0.3s ease, transform 0.3s ease",
323
+ animation: shaking ? "prosopo-puzzle-shake 0.5s ease" : "none"
211
324
  },
212
325
  children: [/* @__PURE__ */ jsx("div", {
326
+ id: instructionId,
213
327
  style: {
214
- position: "absolute",
215
- left: `-${CONTAINER_WIDTH}px`,
216
- top: `-${CONTAINER_HEIGHT}px`,
217
- width: `${CONTAINER_WIDTH * 3}px`,
218
- height: `${CONTAINER_HEIGHT * 3}px`,
219
- pointerEvents: "none",
220
- userSelect: "none",
221
- transform: bgTransform,
222
- transformOrigin: "center center",
223
- filter: bgFilter,
224
- transition: dragging ? "none" : "transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), filter 0.35s ease",
225
- willChange: "transform, filter"
328
+ backgroundColor: theme.palette.surface,
329
+ borderRadius: "20px 20px 0 0",
330
+ padding: "12px 20px",
331
+ width: `${CONTAINER_WIDTH}px`,
332
+ boxSizing: "border-box",
333
+ textAlign: "center",
334
+ fontFamily: theme.font.fontFamily,
335
+ fontSize: "14px",
336
+ fontWeight: 500,
337
+ color: headerTextColor,
338
+ borderBottom: `2px solid ${headerBorderColor}`,
339
+ transition: "color 0.3s ease, border-color 0.3s ease"
226
340
  },
227
- children: [
228
- [
229
- 0,
230
- 0,
231
- -1,
232
- -1
233
- ],
234
- [
235
- 1,
236
- 0,
237
- 1,
238
- -1
239
- ],
240
- [
241
- 2,
242
- 0,
243
- -1,
244
- -1
245
- ],
246
- [
247
- 0,
248
- 1,
249
- -1,
250
- 1
251
- ],
252
- [
253
- 1,
254
- 1,
255
- 1,
256
- 1
257
- ],
258
- [
259
- 2,
260
- 1,
261
- -1,
262
- 1
263
- ],
264
- [
265
- 0,
266
- 2,
267
- -1,
268
- -1
269
- ],
270
- [
271
- 1,
272
- 2,
273
- 1,
274
- -1
275
- ],
276
- [
277
- 2,
278
- 2,
279
- -1,
280
- -1
281
- ]
282
- ].map(([col, row, sx, sy]) => {
283
- const key = `${col}-${row}`;
284
- return /* @__PURE__ */ jsx("img", {
285
- src: background,
286
- alt: "",
287
- draggable: false,
288
- style: {
289
- position: "absolute",
290
- left: `${(col ?? 0) * CONTAINER_WIDTH}px`,
291
- top: `${(row ?? 0) * CONTAINER_HEIGHT}px`,
292
- width: `${CONTAINER_WIDTH}px`,
293
- height: `${CONTAINER_HEIGHT}px`,
294
- transform: `scale(${sx}, ${sy})`,
295
- pointerEvents: "none",
296
- userSelect: "none"
297
- }
298
- }, key);
299
- })
300
- }), /* @__PURE__ */ jsx("div", {
301
- ...process.env.NODE_ENV !== "production" && { "data-cy": "prosopo-puzzle-piece" },
302
- onMouseDown: handlePieceMouseDown,
303
- onTouchStart: handlePieceTouchStart,
341
+ children: instructionText
342
+ }), /* @__PURE__ */ jsxs("div", {
343
+ ref: containerRef,
304
344
  style: {
305
- position: "absolute",
306
- left: `${posX - pieceSize / 2}px`,
307
- top: `${posY - pieceSize / 2}px`,
308
- width: `${pieceSize}px`,
309
- height: `${pieceSize}px`,
310
- backgroundImage: `url(${piece})`,
311
- backgroundSize: "100% 100%",
312
- touchAction: "none",
313
- cursor: submitting ? "default" : isDragging.current ? "grabbing" : "grab",
314
- filter: isDragging.current ? "drop-shadow(0 4px 10px rgba(0, 0, 0, 0.45))" : "drop-shadow(0 2px 5px rgba(0, 0, 0, 0.35))",
315
- transition: isDragging.current ? "none" : "filter 0.2s ease, left 0.3s ease, top 0.3s ease"
316
- }
345
+ position: "relative",
346
+ width: `${CONTAINER_WIDTH}px`,
347
+ height: `${CONTAINER_HEIGHT}px`,
348
+ background: puzzleAreaBg,
349
+ borderRadius: "0 0 20px 20px",
350
+ overflow: "hidden",
351
+ userSelect: "none",
352
+ opacity: submitting ? .6 : 1,
353
+ pointerEvents: submitting ? "none" : "auto",
354
+ transition: "opacity 0.2s ease"
355
+ },
356
+ children: [/* @__PURE__ */ jsx("div", {
357
+ style: {
358
+ position: "absolute",
359
+ left: `-${CONTAINER_WIDTH}px`,
360
+ top: `-${CONTAINER_HEIGHT}px`,
361
+ width: `${CONTAINER_WIDTH * 3}px`,
362
+ height: `${CONTAINER_HEIGHT * 3}px`,
363
+ pointerEvents: "none",
364
+ userSelect: "none",
365
+ transform: bgTransform,
366
+ transformOrigin: "center center",
367
+ filter: bgFilter,
368
+ transition: dragging ? "none" : "transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), filter 0.35s ease",
369
+ willChange: "transform, filter"
370
+ },
371
+ children: [
372
+ [
373
+ 0,
374
+ 0,
375
+ -1,
376
+ -1
377
+ ],
378
+ [
379
+ 1,
380
+ 0,
381
+ 1,
382
+ -1
383
+ ],
384
+ [
385
+ 2,
386
+ 0,
387
+ -1,
388
+ -1
389
+ ],
390
+ [
391
+ 0,
392
+ 1,
393
+ -1,
394
+ 1
395
+ ],
396
+ [
397
+ 1,
398
+ 1,
399
+ 1,
400
+ 1
401
+ ],
402
+ [
403
+ 2,
404
+ 1,
405
+ -1,
406
+ 1
407
+ ],
408
+ [
409
+ 0,
410
+ 2,
411
+ -1,
412
+ -1
413
+ ],
414
+ [
415
+ 1,
416
+ 2,
417
+ 1,
418
+ -1
419
+ ],
420
+ [
421
+ 2,
422
+ 2,
423
+ -1,
424
+ -1
425
+ ]
426
+ ].map(([col, row, sx, sy]) => {
427
+ const key = `${col}-${row}`;
428
+ return /* @__PURE__ */ jsx("img", {
429
+ src: background,
430
+ alt: "",
431
+ draggable: false,
432
+ style: {
433
+ position: "absolute",
434
+ left: `${(col ?? 0) * CONTAINER_WIDTH}px`,
435
+ top: `${(row ?? 0) * CONTAINER_HEIGHT}px`,
436
+ width: `${CONTAINER_WIDTH}px`,
437
+ height: `${CONTAINER_HEIGHT}px`,
438
+ transform: `scale(${sx}, ${sy})`,
439
+ pointerEvents: "none",
440
+ userSelect: "none"
441
+ }
442
+ }, key);
443
+ })
444
+ }), /* @__PURE__ */ jsx("div", {
445
+ ...process.env.NODE_ENV !== "production" && { "data-cy": "prosopo-puzzle-piece" },
446
+ className: PIECE_CSS_CLASS,
447
+ role: "application",
448
+ "aria-roledescription": t("WIDGET.PUZZLE.PIECE_ROLE", { defaultValue: "draggable puzzle piece" }),
449
+ "aria-label": t("WIDGET.PUZZLE.PIECE_LABEL", { defaultValue: "Puzzle piece" }),
450
+ "aria-describedby": `${instructionId} ${keyboardHintId}`,
451
+ tabIndex: submitting ? -1 : 0,
452
+ onFocus: handlePieceFocus,
453
+ onKeyDown: handlePieceKeyDown,
454
+ onMouseDown: handlePieceMouseDown,
455
+ onTouchStart: handlePieceTouchStart,
456
+ style: {
457
+ position: "absolute",
458
+ left: `${posX - pieceSize / 2}px`,
459
+ top: `${posY - pieceSize / 2}px`,
460
+ width: `${pieceSize}px`,
461
+ height: `${pieceSize}px`,
462
+ backgroundImage: `url(${piece})`,
463
+ backgroundSize: "100% 100%",
464
+ touchAction: "none",
465
+ cursor: submitting ? "default" : isDragging.current ? "grabbing" : "grab",
466
+ filter: isDragging.current ? "drop-shadow(0 4px 10px rgba(0, 0, 0, 0.45))" : "drop-shadow(0 2px 5px rgba(0, 0, 0, 0.35))",
467
+ transition: isDragging.current ? "none" : "filter 0.2s ease, left 0.3s ease, top 0.3s ease"
468
+ }
469
+ })]
317
470
  })]
318
- })]
319
- })]
471
+ })
472
+ ]
320
473
  });
321
474
  };
322
475
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"PuzzleCanvas.js","sourceRoot":"","sources":["../../src/components/PuzzleCanvas.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PuzzleCanvas.js","sourceRoot":"","sources":["../../src/components/PuzzleCanvas.tsx"],"names":[],"mappings":"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"}