jspsych-tangram 0.0.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.
Files changed (72) hide show
  1. package/README.md +25 -0
  2. package/dist/construct/index.browser.js +20431 -0
  3. package/dist/construct/index.browser.js.map +1 -0
  4. package/dist/construct/index.browser.min.js +42 -0
  5. package/dist/construct/index.browser.min.js.map +1 -0
  6. package/dist/construct/index.cjs +3720 -0
  7. package/dist/construct/index.cjs.map +1 -0
  8. package/dist/construct/index.d.ts +204 -0
  9. package/dist/construct/index.js +3718 -0
  10. package/dist/construct/index.js.map +1 -0
  11. package/dist/index.cjs +3920 -0
  12. package/dist/index.cjs.map +1 -0
  13. package/dist/index.d.ts +340 -0
  14. package/dist/index.js +3917 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/prep/index.browser.js +20455 -0
  17. package/dist/prep/index.browser.js.map +1 -0
  18. package/dist/prep/index.browser.min.js +42 -0
  19. package/dist/prep/index.browser.min.js.map +1 -0
  20. package/dist/prep/index.cjs +3744 -0
  21. package/dist/prep/index.cjs.map +1 -0
  22. package/dist/prep/index.d.ts +139 -0
  23. package/dist/prep/index.js +3742 -0
  24. package/dist/prep/index.js.map +1 -0
  25. package/package.json +77 -0
  26. package/src/core/components/README.md +249 -0
  27. package/src/core/components/board/BoardView.tsx +352 -0
  28. package/src/core/components/board/GameBoard.tsx +682 -0
  29. package/src/core/components/board/index.ts +70 -0
  30. package/src/core/components/board/useAnchorGrid.ts +110 -0
  31. package/src/core/components/board/useClickController.ts +436 -0
  32. package/src/core/components/board/useDragController.ts +1051 -0
  33. package/src/core/components/board/usePieceState.ts +178 -0
  34. package/src/core/components/board/utils.ts +76 -0
  35. package/src/core/components/index.ts +33 -0
  36. package/src/core/components/pieces/BlueprintRing.tsx +238 -0
  37. package/src/core/config/config.ts +85 -0
  38. package/src/core/domain/blueprints.ts +25 -0
  39. package/src/core/domain/layout.ts +159 -0
  40. package/src/core/domain/primitives.ts +159 -0
  41. package/src/core/domain/solve.ts +184 -0
  42. package/src/core/domain/types.ts +111 -0
  43. package/src/core/engine/collision/grid-snapping.ts +283 -0
  44. package/src/core/engine/collision/index.ts +4 -0
  45. package/src/core/engine/collision/sat-collision.ts +46 -0
  46. package/src/core/engine/collision/validation.ts +166 -0
  47. package/src/core/engine/geometry/bounds.ts +91 -0
  48. package/src/core/engine/geometry/collision.ts +64 -0
  49. package/src/core/engine/geometry/index.ts +19 -0
  50. package/src/core/engine/geometry/math.ts +101 -0
  51. package/src/core/engine/geometry/pieces.ts +290 -0
  52. package/src/core/engine/geometry/polygons.ts +43 -0
  53. package/src/core/engine/state/BaseGameController.ts +368 -0
  54. package/src/core/engine/validation/border-rendering.ts +318 -0
  55. package/src/core/engine/validation/complete.ts +102 -0
  56. package/src/core/engine/validation/face-to-face.ts +217 -0
  57. package/src/core/index.ts +3 -0
  58. package/src/core/io/InteractionTracker.ts +742 -0
  59. package/src/core/io/data-tracking.ts +271 -0
  60. package/src/core/io/json-to-tangram-spec.ts +110 -0
  61. package/src/core/io/quickstash.ts +141 -0
  62. package/src/core/io/stims.ts +110 -0
  63. package/src/core/types/index.ts +5 -0
  64. package/src/core/types/plugin-interfaces.ts +101 -0
  65. package/src/index.spec.ts +19 -0
  66. package/src/index.ts +2 -0
  67. package/src/plugins/tangram-construct/ConstructionApp.tsx +105 -0
  68. package/src/plugins/tangram-construct/index.ts +156 -0
  69. package/src/plugins/tangram-prep/PrepApp.tsx +182 -0
  70. package/src/plugins/tangram-prep/index.ts +122 -0
  71. package/tangram-construct.min.js +42 -0
  72. package/tangram-prep.min.js +42 -0
@@ -0,0 +1,139 @@
1
+ import { JsPsychPlugin, ParameterType, JsPsych, TrialType } from 'jspsych';
2
+
3
+ declare const info: {
4
+ name: string;
5
+ version: string;
6
+ parameters: {
7
+ /** Number of quickstash slots for macro creation */
8
+ num_quickstash_slots: {
9
+ type: ParameterType;
10
+ default: undefined;
11
+ };
12
+ /** Maximum pieces allowed per macro */
13
+ max_pieces_per_macro: {
14
+ type: ParameterType;
15
+ default: number;
16
+ };
17
+ /** Minimum pieces required per macro */
18
+ min_pieces_per_macro: {
19
+ type: ParameterType;
20
+ default: number;
21
+ };
22
+ /** Input mode: click or drag */
23
+ input: {
24
+ type: ParameterType;
25
+ default: string;
26
+ };
27
+ /** Layout mode: circle or semicircle */
28
+ layout: {
29
+ type: ParameterType;
30
+ default: string;
31
+ };
32
+ /** Whether all slots must be filled to complete trial */
33
+ require_all_slots: {
34
+ type: ParameterType;
35
+ default: undefined;
36
+ };
37
+ /** Array of pre-made macro pieces to edit */
38
+ quickstash_macros: {
39
+ type: ParameterType;
40
+ default: never[];
41
+ description: string;
42
+ };
43
+ /** Callback fired after each interaction (optional analytics hook) */
44
+ onInteraction: {
45
+ type: ParameterType;
46
+ default: undefined;
47
+ };
48
+ /** Callback fired when prep trial ends */
49
+ onTrialEnd: {
50
+ type: ParameterType;
51
+ default: undefined;
52
+ };
53
+ };
54
+ data: {
55
+ /** Completion status */
56
+ completed: {
57
+ type: ParameterType;
58
+ };
59
+ };
60
+ citations: string;
61
+ };
62
+ type Info = typeof info;
63
+ /**
64
+ * **tangram-prep**
65
+ *
66
+ * A jsPsych wrapper around the React-based prep interface.
67
+ *
68
+ * @author Justin Yang & Sean Paul Anderson
69
+ */
70
+ declare class TangramPrepPlugin implements JsPsychPlugin<Info> {
71
+ private jsPsych;
72
+ static info: {
73
+ name: string;
74
+ version: string;
75
+ parameters: {
76
+ /** Number of quickstash slots for macro creation */
77
+ num_quickstash_slots: {
78
+ type: ParameterType;
79
+ default: undefined;
80
+ };
81
+ /** Maximum pieces allowed per macro */
82
+ max_pieces_per_macro: {
83
+ type: ParameterType;
84
+ default: number;
85
+ };
86
+ /** Minimum pieces required per macro */
87
+ min_pieces_per_macro: {
88
+ type: ParameterType;
89
+ default: number;
90
+ };
91
+ /** Input mode: click or drag */
92
+ input: {
93
+ type: ParameterType;
94
+ default: string;
95
+ };
96
+ /** Layout mode: circle or semicircle */
97
+ layout: {
98
+ type: ParameterType;
99
+ default: string;
100
+ };
101
+ /** Whether all slots must be filled to complete trial */
102
+ require_all_slots: {
103
+ type: ParameterType;
104
+ default: undefined;
105
+ };
106
+ /** Array of pre-made macro pieces to edit */
107
+ quickstash_macros: {
108
+ type: ParameterType;
109
+ default: never[];
110
+ description: string;
111
+ };
112
+ /** Callback fired after each interaction (optional analytics hook) */
113
+ onInteraction: {
114
+ type: ParameterType;
115
+ default: undefined;
116
+ };
117
+ /** Callback fired when prep trial ends */
118
+ onTrialEnd: {
119
+ type: ParameterType;
120
+ default: undefined;
121
+ };
122
+ };
123
+ data: {
124
+ /** Completion status */
125
+ completed: {
126
+ type: ParameterType;
127
+ };
128
+ };
129
+ citations: string;
130
+ };
131
+ constructor(jsPsych: JsPsych);
132
+ /**
133
+ * Launches the trial by invoking startPrepTrial
134
+ * with the display element, parameters, and jsPsych instance.
135
+ */
136
+ trial(display_element: HTMLElement, trial: TrialType<Info>): void;
137
+ }
138
+
139
+ export { TangramPrepPlugin as default };