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
@@ -185,7 +185,6 @@ class BaseGameController {
185
185
  const allDone = Object.values(this.state.sectors).every((s) => !!s.completedAt);
186
186
  if (allDone && !this.state.endedAt) {
187
187
  this.state.endedAt = NOW();
188
- console.log("[BaseGameController] all sectors complete");
189
188
  }
190
189
  }
191
190
  // ===== Piece Operations =====
@@ -2926,8 +2925,7 @@ class InteractionTracker {
2926
2925
  }
2927
2926
  const sectorTangramMap = this.controller.state.cfg.sectors.map((s) => ({
2928
2927
  sectorId: s.id,
2929
- tangramId: s.id
2930
- // In our system, sector ID == tangram ID
2928
+ tangramId: s.tangramId
2931
2929
  }));
2932
2930
  const blueprintOrder = {
2933
2931
  primitives: this.controller.state.primitives.map((bp) => bp.id),
@@ -3154,7 +3152,9 @@ function GameBoard(props) {
3154
3152
  if (allSectorsComplete && !gameCompleted) {
3155
3153
  setGameCompleted(true);
3156
3154
  if (tracker) {
3157
- tracker.finalizeTrial("auto_complete");
3155
+ setTimeout(() => {
3156
+ tracker.finalizeTrial("auto_complete");
3157
+ }, 0);
3158
3158
  }
3159
3159
  }
3160
3160
  };
@@ -3432,10 +3432,10 @@ function constructFromSpec(sideLens, angles, firstEdgeUnits) {
3432
3432
  return pts;
3433
3433
  }
3434
3434
  const FIRST_EDGES_UNITS = {
3435
- "small-triangle": [P(0, 0), P(0.5, 0.5)],
3435
+ "smalltriangle": [P(0, 0), P(0.5, 0.5)],
3436
3436
  "parallelogram": [P(0, 0), P(0.5, 0)],
3437
- "large-triangle": [P(0, 0), P(0.5, -0.5)],
3438
- "med-triangle": [P(0, 0), P(0.5, 0)],
3437
+ "largetriangle": [P(0, 0), P(0.5, -0.5)],
3438
+ "medtriangle": [P(0, 0), P(0.5, 0)],
3439
3439
  "square": [P(0, 0), P(0.5, 0)]
3440
3440
  };
3441
3441
  const PRIMITIVE_BLUEPRINTS_CACHE = (() => {
@@ -3448,8 +3448,8 @@ const PRIMITIVE_BLUEPRINTS_CACHE = (() => {
3448
3448
  color: "#f43f5e"
3449
3449
  },
3450
3450
  {
3451
- id: "prim:small",
3452
- kind: "small-triangle",
3451
+ id: "prim:smalltriangle",
3452
+ kind: "smalltriangle",
3453
3453
  sideLens: [HALFDIAGONAL, HALFDIAGONAL, HALFUNIT, HALFUNIT, HALFUNIT, HALFUNIT],
3454
3454
  angles: [180, 45, 180, 90, 180, 45],
3455
3455
  color: "#f59e0b"
@@ -3462,15 +3462,15 @@ const PRIMITIVE_BLUEPRINTS_CACHE = (() => {
3462
3462
  color: "#10b981"
3463
3463
  },
3464
3464
  {
3465
- id: "prim:med",
3466
- kind: "med-triangle",
3465
+ id: "prim:medtriangle",
3466
+ kind: "medtriangle",
3467
3467
  sideLens: [HALFUNIT, HALFUNIT, HALFUNIT, HALFUNIT, HALFDIAGONAL, HALFDIAGONAL, HALFDIAGONAL, HALFDIAGONAL],
3468
3468
  angles: [180, 180, 180, 45, 180, 90, 180, 45],
3469
3469
  color: "#3b82f6"
3470
3470
  },
3471
3471
  {
3472
- id: "prim:large",
3473
- kind: "large-triangle",
3472
+ id: "prim:largetriangle",
3473
+ kind: "largetriangle",
3474
3474
  sideLens: [
3475
3475
  HALFDIAGONAL,
3476
3476
  HALFDIAGONAL,
@@ -3553,6 +3553,8 @@ function startPrepTrial(display_element, params, jsPsych) {
3553
3553
  } = params;
3554
3554
  const prepSectors = Array.from({ length: numQuickstashSlots }, (_, i) => ({
3555
3555
  id: `prep-sector-${i}`,
3556
+ tangramId: `prep-sector-${i}`,
3557
+ // dummy value since prep mode doesn't have tangrams
3556
3558
  silhouette: {
3557
3559
  id: `prep-silhouette-${i}`,
3558
3560
  mask: []
@@ -3723,7 +3725,7 @@ class TangramPrepPlugin {
3723
3725
  this.jsPsych.finishTrial(data);
3724
3726
  };
3725
3727
  const params = {
3726
- numQuickstashSlots: trial.num_quickstash_slots || 4,
3728
+ numQuickstashSlots: trial.num_quickstash_slots,
3727
3729
  maxPiecesPerMacro: trial.max_pieces_per_macro,
3728
3730
  minPiecesPerMacro: trial.min_pieces_per_macro,
3729
3731
  inputMode: trial.input,