jspsych-tangram 0.0.5 → 0.0.7

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.
@@ -16661,26 +16661,27 @@ var TangramPrepPlugin = (function (jspsych) {
16661
16661
  const CONFIG = {
16662
16662
  color: {
16663
16663
  bands: {
16664
- silhouette: { fillEven: "#eef2ff", fillOdd: "#f6f7fb", stroke: "#c7d2fe" },
16665
- workspace: { fillEven: "#f3f4f6", fillOdd: "#f9fafb", stroke: "#e5e7eb" }
16664
+ silhouette: { fillEven: "#fff2ccff", fillOdd: "#fff2ccff", stroke: "#b1b1b1" },
16665
+ workspace: { fillEven: "#fff2ccff", fillOdd: "#fff2ccff", stroke: "#b1b1b1" }
16666
16666
  },
16667
- completion: { fill: "#dcfce7", stroke: "#86efac" },
16668
- silhouetteMask: "#94a3b8",
16667
+ completion: { fill: "#ccfff2", stroke: "#13da57" },
16668
+ silhouetteMask: "#374151",
16669
16669
  anchors: { invalid: "#7dd3fc", valid: "#475569" },
16670
- piece: { draggingFill: "#1d4ed8", validFill: "#60a5fa", invalidFill: "#ef4444", invalidStroke: "#dc2626", selectedStroke: "#111827", allGreenStroke: "#86efac", borderStroke: "#374151" },
16670
+ piece: { draggingFill: "#8e7cc3ff", validFill: "#8e7cc3ff", invalidFill: "#ef4444", invalidStroke: "#dc2626", selectedStroke: "#674ea7", allGreenStroke: "#86efac", borderStroke: "#674ea7" },
16671
16671
  ui: { light: "#60a5fa", dark: "#1d4ed8" },
16672
- blueprint: { fill: "#374151", selectedStroke: "#111827", badgeFill: "#eef2ff", labelFill: "#374151" }
16672
+ blueprint: { fill: "#374151", selectedStroke: "#111827", badgeFill: "#000000", labelFill: "#ffffff" }
16673
16673
  },
16674
16674
  opacity: {
16675
- blueprint: 0.95,
16676
- silhouetteMask: 0.45,
16677
- anchors: { valid: 0.8, invalid: 0.5 },
16678
- piece: { invalid: 0.35, dragging: 0.6, locked: 0.7, normal: 0.95 }
16675
+ blueprint: 0.4,
16676
+ silhouetteMask: 0.25,
16677
+ //anchors: { valid: 0.80, invalid: 0.50 },
16678
+ anchors: { invalid: 0, valid: 0 },
16679
+ piece: { invalid: 0.35, dragging: 0.75, locked: 1, normal: 1 }
16679
16680
  },
16680
16681
  size: {
16681
- stroke: { bandPx: 1, pieceSelectedPx: 1.5, allGreenStrokePx: 6, pieceBorderPx: 1 },
16682
+ stroke: { bandPx: 5, pieceSelectedPx: 3, allGreenStrokePx: 10, pieceBorderPx: 2 },
16682
16683
  anchorRadiusPx: { valid: 1, invalid: 1 },
16683
- badgeFontPx: 12,
16684
+ badgeFontPx: 16,
16684
16685
  centerBadge: { fractionOfOuterR: 0.15, minPx: 20, marginPx: 4 }
16685
16686
  },
16686
16687
  layout: {
@@ -20259,9 +20260,11 @@ var TangramPrepPlugin = (function (jspsych) {
20259
20260
  layoutMode,
20260
20261
  requireAllSlots,
20261
20262
  quickstashMacros,
20263
+ primitiveOrder,
20262
20264
  onInteraction,
20263
20265
  onTrialEnd
20264
20266
  } = params;
20267
+ const PRIMITIVE_BLUEPRINTS_ORDERED = [...PRIMITIVE_BLUEPRINTS].sort((a, b) => primitiveOrder.indexOf(a.kind) - primitiveOrder.indexOf(b.kind));
20265
20268
  const prepSectors = Array.from({ length: numQuickstashSlots }, (_, i) => ({
20266
20269
  id: `prep-sector-${i}`,
20267
20270
  tangramId: `prep-sector-${i}`,
@@ -20275,7 +20278,7 @@ var TangramPrepPlugin = (function (jspsych) {
20275
20278
  const handleControllerReady = (controller, layout, force) => {
20276
20279
  if (quickstashMacros && quickstashMacros.length > 0 && layout) {
20277
20280
  const primsByKind = /* @__PURE__ */ new Map();
20278
- PRIMITIVE_BLUEPRINTS.forEach((p) => primsByKind.set(p.kind, p));
20281
+ PRIMITIVE_BLUEPRINTS_ORDERED.forEach((p) => primsByKind.set(p.kind, p));
20279
20282
  quickstashMacros.forEach((anchorComposite, macroIndex) => {
20280
20283
  const sectorId = `prep-sector-${macroIndex}`;
20281
20284
  const compositeBlueprint = convertAnchorCompositeToPixels(
@@ -20332,7 +20335,7 @@ var TangramPrepPlugin = (function (jspsych) {
20332
20335
  sectors: prepSectors,
20333
20336
  quickstash: [],
20334
20337
  // No pre-made macros
20335
- primitives: PRIMITIVE_BLUEPRINTS,
20338
+ primitives: PRIMITIVE_BLUEPRINTS_ORDERED,
20336
20339
  layout: layoutMode,
20337
20340
  target: "workspace",
20338
20341
  // Pieces go in sectors
@@ -20393,6 +20396,12 @@ var TangramPrepPlugin = (function (jspsych) {
20393
20396
  default: [],
20394
20397
  description: "Array of AnchorComposite objects to edit as primitive pieces"
20395
20398
  },
20399
+ /** Array of primitive names in the order they should be displayed */
20400
+ primitive_order: {
20401
+ type: jspsych.ParameterType.OBJECT,
20402
+ default: ["square", "smalltriangle", "parallelogram", "medtriangle", "largetriangle"],
20403
+ description: "Array of primitive names in the order they should be displayed"
20404
+ },
20396
20405
  /** Callback fired after each interaction (optional analytics hook) */
20397
20406
  onInteraction: {
20398
20407
  type: jspsych.ParameterType.FUNCTION,
@@ -20443,6 +20452,7 @@ var TangramPrepPlugin = (function (jspsych) {
20443
20452
  layoutMode: trial.layout,
20444
20453
  requireAllSlots: trial.require_all_slots,
20445
20454
  quickstashMacros: trial.quickstash_macros,
20455
+ primitiveOrder: trial.primitive_order,
20446
20456
  onInteraction: trial.onInteraction,
20447
20457
  onTrialEnd: wrappedOnTrialEnd
20448
20458
  };