jspsych-tangram 0.0.3 → 0.0.5

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 (35) hide show
  1. package/dist/construct/index.browser.js +23 -63
  2. package/dist/construct/index.browser.js.map +1 -1
  3. package/dist/construct/index.browser.min.js +11 -15
  4. package/dist/construct/index.browser.min.js.map +1 -1
  5. package/dist/construct/index.cjs +23 -63
  6. package/dist/construct/index.cjs.map +1 -1
  7. package/dist/construct/index.js +23 -63
  8. package/dist/construct/index.js.map +1 -1
  9. package/dist/index.cjs +26 -64
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.js +26 -64
  12. package/dist/index.js.map +1 -1
  13. package/dist/prep/index.browser.js +16 -14
  14. package/dist/prep/index.browser.js.map +1 -1
  15. package/dist/prep/index.browser.min.js +1 -1
  16. package/dist/prep/index.browser.min.js.map +1 -1
  17. package/dist/prep/index.cjs +16 -14
  18. package/dist/prep/index.cjs.map +1 -1
  19. package/dist/prep/index.js +16 -14
  20. package/dist/prep/index.js.map +1 -1
  21. package/package.json +1 -1
  22. package/src/core/components/board/GameBoard.tsx +4 -1
  23. package/src/core/domain/primitives.ts +9 -10
  24. package/src/core/domain/types.ts +4 -3
  25. package/src/core/engine/state/BaseGameController.ts +0 -1
  26. package/src/core/io/InteractionTracker.ts +1 -1
  27. package/src/core/io/quickstash.ts +3 -29
  28. package/src/core/types/plugin-interfaces.ts +1 -1
  29. package/src/plugins/tangram-construct/ConstructionApp.tsx +13 -58
  30. package/src/plugins/tangram-construct/index.ts +1 -1
  31. package/src/plugins/tangram-prep/PrepApp.tsx +1 -0
  32. package/src/plugins/tangram-prep/index.ts +1 -1
  33. package/tangram-construct.min.js +11 -15
  34. package/tangram-prep.min.js +1 -1
  35. package/src/core/io/stims.ts +0 -107
@@ -187,7 +187,6 @@ class BaseGameController {
187
187
  const allDone = Object.values(this.state.sectors).every((s) => !!s.completedAt);
188
188
  if (allDone && !this.state.endedAt) {
189
189
  this.state.endedAt = NOW();
190
- console.log("[BaseGameController] all sectors complete");
191
190
  }
192
191
  }
193
192
  // ===== Piece Operations =====
@@ -2928,8 +2927,7 @@ class InteractionTracker {
2928
2927
  }
2929
2928
  const sectorTangramMap = this.controller.state.cfg.sectors.map((s) => ({
2930
2929
  sectorId: s.id,
2931
- tangramId: s.id
2932
- // In our system, sector ID == tangram ID
2930
+ tangramId: s.tangramId
2933
2931
  }));
2934
2932
  const blueprintOrder = {
2935
2933
  primitives: this.controller.state.primitives.map((bp) => bp.id),
@@ -3156,7 +3154,9 @@ function GameBoard(props) {
3156
3154
  if (allSectorsComplete && !gameCompleted) {
3157
3155
  setGameCompleted(true);
3158
3156
  if (tracker) {
3159
- tracker.finalizeTrial("auto_complete");
3157
+ setTimeout(() => {
3158
+ tracker.finalizeTrial("auto_complete");
3159
+ }, 0);
3160
3160
  }
3161
3161
  }
3162
3162
  };
@@ -3434,10 +3434,10 @@ function constructFromSpec(sideLens, angles, firstEdgeUnits) {
3434
3434
  return pts;
3435
3435
  }
3436
3436
  const FIRST_EDGES_UNITS = {
3437
- "small-triangle": [P(0, 0), P(0.5, 0.5)],
3437
+ "smalltriangle": [P(0, 0), P(0.5, 0.5)],
3438
3438
  "parallelogram": [P(0, 0), P(0.5, 0)],
3439
- "large-triangle": [P(0, 0), P(0.5, -0.5)],
3440
- "med-triangle": [P(0, 0), P(0.5, 0)],
3439
+ "largetriangle": [P(0, 0), P(0.5, -0.5)],
3440
+ "medtriangle": [P(0, 0), P(0.5, 0)],
3441
3441
  "square": [P(0, 0), P(0.5, 0)]
3442
3442
  };
3443
3443
  const PRIMITIVE_BLUEPRINTS_CACHE = (() => {
@@ -3450,8 +3450,8 @@ const PRIMITIVE_BLUEPRINTS_CACHE = (() => {
3450
3450
  color: "#f43f5e"
3451
3451
  },
3452
3452
  {
3453
- id: "prim:small",
3454
- kind: "small-triangle",
3453
+ id: "prim:smalltriangle",
3454
+ kind: "smalltriangle",
3455
3455
  sideLens: [HALFDIAGONAL, HALFDIAGONAL, HALFUNIT, HALFUNIT, HALFUNIT, HALFUNIT],
3456
3456
  angles: [180, 45, 180, 90, 180, 45],
3457
3457
  color: "#f59e0b"
@@ -3464,15 +3464,15 @@ const PRIMITIVE_BLUEPRINTS_CACHE = (() => {
3464
3464
  color: "#10b981"
3465
3465
  },
3466
3466
  {
3467
- id: "prim:med",
3468
- kind: "med-triangle",
3467
+ id: "prim:medtriangle",
3468
+ kind: "medtriangle",
3469
3469
  sideLens: [HALFUNIT, HALFUNIT, HALFUNIT, HALFUNIT, HALFDIAGONAL, HALFDIAGONAL, HALFDIAGONAL, HALFDIAGONAL],
3470
3470
  angles: [180, 180, 180, 45, 180, 90, 180, 45],
3471
3471
  color: "#3b82f6"
3472
3472
  },
3473
3473
  {
3474
- id: "prim:large",
3475
- kind: "large-triangle",
3474
+ id: "prim:largetriangle",
3475
+ kind: "largetriangle",
3476
3476
  sideLens: [
3477
3477
  HALFDIAGONAL,
3478
3478
  HALFDIAGONAL,
@@ -3555,6 +3555,8 @@ function startPrepTrial(display_element, params, jsPsych) {
3555
3555
  } = params;
3556
3556
  const prepSectors = Array.from({ length: numQuickstashSlots }, (_, i) => ({
3557
3557
  id: `prep-sector-${i}`,
3558
+ tangramId: `prep-sector-${i}`,
3559
+ // dummy value since prep mode doesn't have tangrams
3558
3560
  silhouette: {
3559
3561
  id: `prep-silhouette-${i}`,
3560
3562
  mask: []
@@ -3725,7 +3727,7 @@ class TangramPrepPlugin {
3725
3727
  this.jsPsych.finishTrial(data);
3726
3728
  };
3727
3729
  const params = {
3728
- numQuickstashSlots: trial.num_quickstash_slots || 4,
3730
+ numQuickstashSlots: trial.num_quickstash_slots,
3729
3731
  maxPiecesPerMacro: trial.max_pieces_per_macro,
3730
3732
  minPiecesPerMacro: trial.min_pieces_per_macro,
3731
3733
  inputMode: trial.input,