@pie-element/placement-ordering 14.1.2-next.2 → 14.1.2-next.20

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 (50) hide show
  1. package/author.js +2 -0
  2. package/dist/author/choice-editor.js +2 -2
  3. package/dist/author/choice-tile.js +3 -2
  4. package/dist/author/design.js +1 -1
  5. package/dist/author/index.d.ts +1 -0
  6. package/dist/author/index.js +5 -2
  7. package/dist/browser/assets/Symbola-4c507403.woff2 +0 -0
  8. package/dist/browser/author/index.js +14940 -19583
  9. package/dist/browser/author/index.js.map +1 -1
  10. package/dist/browser/{browser-Dbw2uHQ7.js → browser-DMpDEszG.js} +7 -3
  11. package/dist/browser/browser-DMpDEszG.js.map +1 -0
  12. package/dist/browser/controller/index.js +140 -55
  13. package/dist/browser/controller/index.js.map +1 -1
  14. package/dist/browser/delivery/index.js +474 -325
  15. package/dist/browser/delivery/index.js.map +1 -1
  16. package/dist/browser/{dist-D9ARZhQk.js → dist-DCmVXYeO.js} +109 -7
  17. package/dist/browser/dist-DCmVXYeO.js.map +1 -0
  18. package/dist/browser/{drag-provider-C4BiCI76.js → drag-provider-LgVkQ5Yi.js} +2219 -2266
  19. package/dist/browser/drag-provider-LgVkQ5Yi.js.map +1 -0
  20. package/dist/browser/editor-runtime/assets/Symbola-4c507403.woff2 +0 -0
  21. package/dist/browser/editor-runtime/author/index.js +19668 -0
  22. package/dist/browser/editor-runtime/author/index.js.map +1 -0
  23. package/dist/browser/editor-runtime/browser-0nthm_zo.js +376 -0
  24. package/dist/browser/editor-runtime/browser-0nthm_zo.js.map +1 -0
  25. package/dist/browser/editor-runtime/controller/index.js +327 -0
  26. package/dist/browser/editor-runtime/controller/index.js.map +1 -0
  27. package/dist/browser/editor-runtime/delivery/index.js +1184 -0
  28. package/dist/browser/editor-runtime/delivery/index.js.map +1 -0
  29. package/dist/browser/editor-runtime/dist-DCmVXYeO.js +1528 -0
  30. package/dist/browser/editor-runtime/dist-DCmVXYeO.js.map +1 -0
  31. package/dist/browser/editor-runtime/drag-provider-Dpx1BjBS.js +10508 -0
  32. package/dist/browser/editor-runtime/drag-provider-Dpx1BjBS.js.map +1 -0
  33. package/dist/controller/scoring.js +3 -3
  34. package/dist/delivery/index.js +2 -2
  35. package/dist/delivery/keyboard-coordinates.d.ts +47 -0
  36. package/dist/delivery/keyboard-coordinates.js +51 -0
  37. package/dist/delivery/main.js +1 -1
  38. package/dist/delivery/ordering.js +14 -19
  39. package/dist/delivery/placement-ordering.d.ts +13 -0
  40. package/dist/delivery/placement-ordering.js +168 -83
  41. package/dist/delivery/tile.d.ts +3 -0
  42. package/dist/delivery/tile.js +75 -61
  43. package/dist/delivery/tiler.d.ts +6 -0
  44. package/dist/delivery/tiler.js +6 -3
  45. package/dist/index.iife.js +35 -35
  46. package/package.json +36 -25
  47. package/dist/browser/browser-Dbw2uHQ7.js.map +0 -1
  48. package/dist/browser/dist-D9ARZhQk.js.map +0 -1
  49. package/dist/browser/drag-provider-C4BiCI76.js.map +0 -1
  50. package/dist/browser/placement-ordering.css +0 -2
@@ -24,114 +24,124 @@ d.propTypes = {
24
24
  isOver: n.bool,
25
25
  disabled: n.bool
26
26
  };
27
- var f = r("div")(({ theme: e, isDragging: t, isOver: n, disabled: r, outcome: i, label: a, type: s }) => ({
28
- cursor: r ? "not-allowed" : "grab",
27
+ var f = r("div")(({ theme: e, isDragging: t, isSelected: n, isOver: r, disabled: i, outcome: a, label: s, type: c }) => ({
28
+ cursor: i ? "not-allowed" : "grab",
29
29
  width: "100%",
30
30
  height: "100%",
31
31
  padding: "10px",
32
32
  boxSizing: "border-box",
33
33
  overflow: "hidden",
34
- border: s === "choice" || s === "target" ? `1px solid ${e.palette.grey[400]}` : "1px solid transparent",
35
- backgroundColor: s === "choice" || s === "target" ? o.background() : "transparent",
36
- transition: s === "choice" || s === "target" ? "background-color 150ms ease, border-color 150ms ease, opacity 150ms ease" : "none",
34
+ border: c === "choice" || c === "target" ? `1px solid ${o.border()}` : "1px solid transparent",
35
+ backgroundColor: c === "choice" || c === "target" ? o.background() : "transparent",
36
+ transition: c === "choice" || c === "target" ? "background-color 150ms ease, border-color 150ms ease, opacity 150ms ease" : "none",
37
37
  pointerEvents: "none",
38
38
  userSelect: "none",
39
- ...(s === "choice" || s === "target") && { "&:hover": {
40
- backgroundColor: r ? o.background() : o.secondary(),
41
- borderColor: r ? e.palette.grey[400] : e.palette.primary.main,
42
- transform: r ? "none" : "scale(1.02)"
39
+ ...(c === "choice" || c === "target") && { "&:hover": {
40
+ backgroundColor: i ? o.background() : o.secondary(),
41
+ borderColor: i ? o.disabled() : e.palette.primary.main,
42
+ transform: i ? "none" : "scale(1.02)"
43
43
  } },
44
- ...(s === "choice" || s === "target") && n && !r && {
44
+ ...(c === "choice" || c === "target") && r && !i && {
45
45
  opacity: .4,
46
46
  backgroundColor: o.primaryLight(),
47
47
  borderColor: e.palette.primary.main,
48
48
  borderStyle: "dashed",
49
49
  transform: "scale(1.05)"
50
50
  },
51
- ...(s === "choice" || s === "target") && t && !r && {
51
+ ...(c === "choice" || c === "target") && (t || n) && !i && {
52
52
  opacity: .6,
53
53
  backgroundColor: o.secondaryLight(),
54
54
  transform: "scale(1.05) rotate(2deg)",
55
55
  boxShadow: "0 8px 16px rgba(0,0,0,0.2)",
56
56
  cursor: "grabbing"
57
57
  },
58
- ...(s === "choice" || s === "target") && r && {
58
+ ...(c === "choice" || c === "target") && i && {
59
59
  cursor: "not-allowed",
60
60
  "&:hover": {
61
61
  backgroundColor: o.background(),
62
62
  transform: "none"
63
63
  }
64
64
  },
65
- ...(s === "choice" || s === "target") && i === "incorrect" && { border: `1px solid ${o.incorrect()}` },
66
- ...(s === "choice" || s === "target") && i === "correct" && { border: `1px solid ${o.correct()}` },
67
- ...!a && {
65
+ ...(c === "choice" || c === "target") && a === "incorrect" && { border: `1px solid ${o.incorrect()}` },
66
+ ...(c === "choice" || c === "target") && a === "correct" && { border: `1px solid ${o.correct()}` },
67
+ ...!s && {
68
68
  border: "none",
69
69
  "&:hover": { backgroundColor: "unset" }
70
70
  }
71
71
  })), p = (e) => {
72
- let { type: t, isDragging: n, empty: r, isOver: i, label: a, disabled: o, outcome: c, guideIndex: l } = e;
73
- return r ? /* @__PURE__ */ s(d, {
72
+ let { type: t, isDragging: n, isSelected: r, empty: i, isOver: a, label: o, disabled: c, outcome: l, guideIndex: u } = e;
73
+ return i ? /* @__PURE__ */ s(d, {
74
74
  type: t,
75
- index: l,
76
- isOver: i,
77
- disabled: o
75
+ index: u,
76
+ isOver: a,
77
+ disabled: c
78
78
  }) : /* @__PURE__ */ s(f, {
79
79
  type: t,
80
80
  isDragging: n,
81
- isOver: i,
82
- disabled: o,
83
- outcome: c,
84
- label: a,
85
- dangerouslySetInnerHTML: { __html: a }
81
+ isSelected: r,
82
+ isOver: a,
83
+ disabled: c,
84
+ outcome: l,
85
+ label: o,
86
+ dangerouslySetInnerHTML: { __html: o }
86
87
  });
87
88
  }, m = (t) => {
88
- let { label: n, type: r, id: o, empty: c, disabled: u, outcome: d, index: f, guideIndex: m, instanceId: h, draggable: g, tileIndex: _ } = t, v = `tile-${r}-${o ?? "empty"}-${_}-${h}`, y = `drop-${r}-${o ?? "empty"}-${_}-${h}`, { attributes: b, listeners: x, setNodeRef: S, transform: C, isDragging: w } = i({
89
- id: v,
90
- data: {
91
- id: o,
92
- type: r,
93
- instanceId: h,
94
- value: n,
95
- index: f
96
- },
89
+ let { label: n, type: r, id: o, empty: c, disabled: u, outcome: d, index: f, guideIndex: m, instanceId: h, draggable: g, tileIndex: _, selectedChoice: v, onChoiceClick: y, onPlacementClick: b } = t, x = `tile-${r}-${o ?? "empty"}-${_}-${h}`, S = `drop-${r}-${o ?? "empty"}-${_}-${h}`, C = {
90
+ id: o,
91
+ type: r,
92
+ instanceId: h,
93
+ value: n,
94
+ index: f
95
+ }, { attributes: w, listeners: T, setNodeRef: E, transform: D, isDragging: O } = i({
96
+ id: x,
97
+ data: C,
97
98
  disabled: !g || u
98
- }), { setNodeRef: T, isOver: E } = a({
99
- id: y,
100
- data: {
101
- id: o,
102
- type: r,
103
- instanceId: h,
104
- value: n,
105
- index: f
106
- },
107
- disabled: w
108
- }), D = e.useRef(null);
109
- return e.useEffect(() => {
110
- let e = D.current, t = (e) => {
99
+ }), { setNodeRef: k, isOver: A } = a({
100
+ id: S,
101
+ data: C,
102
+ disabled: O
103
+ }), j = !!v && v.type === C.type && v.id === C.id && v.index === C.index, [M, N] = e.useState(!1), P = !!v && !u, F = A || r === "target" && P && M, I = () => {
104
+ u || (r === "choice" ? v?.type === "target" ? b?.(C) : g && y?.(C) : r === "target" && (j ? y?.(C) : v ? b?.(C) : g && y?.(C)));
105
+ }, L = !(g && !u) && !u && P, R = (e) => {
106
+ (e.code === "Space" || e.code === "Enter") && (e.preventDefault(), I());
107
+ }, z = e.useRef(null);
108
+ e.useEffect(() => {
109
+ let e = z.current, t = (e) => {
111
110
  e.preventDefault();
112
111
  };
113
112
  return e && e.addEventListener("touchstart", t, { passive: !1 }), () => {
114
113
  e && e.removeEventListener("touchstart", t);
115
114
  };
116
- }, []), l("[render], props: ", t), /* @__PURE__ */ s("div", {
117
- ref: (e) => {
118
- D.current = e, S(e), T(e);
119
- },
115
+ }, []);
116
+ let B = (e) => {
117
+ z.current = e, E(e), k(e);
118
+ };
119
+ l("[render], props: ", t);
120
+ let V = r === "target" ? `target-${f}` : r === "choice" ? `choice-${o}` : null, H = V ? `${h}:${V}` : void 0;
121
+ return /* @__PURE__ */ s("div", {
122
+ ref: B,
120
123
  style: {
121
- transform: C ? `translate3d(${C.x}px, ${C.y}px, 0)` : void 0,
124
+ transform: D ? `translate3d(${D.x}px, ${D.y}px, 0)` : void 0,
122
125
  boxSizing: "border-box",
123
126
  overflow: "visible",
124
127
  padding: 0,
125
128
  margin: 0,
126
129
  textAlign: "center",
127
130
  pointerEvents: "auto",
128
- cursor: u ? "not-allowed" : w ? "grabbing" : "grab",
129
- zIndex: w ? 1e3 : "auto",
130
- willChange: w ? "transform" : "auto"
131
+ cursor: u ? "not-allowed" : r === "target" && P ? "pointer" : O ? "grabbing" : "grab",
132
+ zIndex: O ? 1e3 : "auto",
133
+ willChange: O ? "transform" : "auto"
131
134
  },
135
+ role: L ? "button" : void 0,
136
+ tabIndex: L ? 0 : void 0,
137
+ onKeyDown: L ? R : void 0,
138
+ onClick: I,
139
+ onMouseEnter: () => N(!0),
140
+ onMouseLeave: () => N(!1),
141
+ "data-tile-id": H,
132
142
  ...g && !u ? {
133
- ...x,
134
- ...b
143
+ ...T,
144
+ ...w
135
145
  } : {},
136
146
  children: /* @__PURE__ */ s(p, {
137
147
  label: n,
@@ -139,8 +149,9 @@ var f = r("div")(({ theme: e, isDragging: t, isOver: n, disabled: r, outcome: i,
139
149
  empty: c,
140
150
  index: f,
141
151
  guideIndex: m,
142
- isOver: E,
143
- isDragging: w,
152
+ isOver: F,
153
+ isDragging: O,
154
+ isSelected: j,
144
155
  disabled: u,
145
156
  outcome: d,
146
157
  type: r
@@ -159,7 +170,10 @@ m.propTypes = {
159
170
  guideIndex: n.number,
160
171
  instanceId: n.any,
161
172
  draggable: n.bool,
162
- tileIndex: n.number
173
+ tileIndex: n.number,
174
+ selectedChoice: n.object,
175
+ onChoiceClick: n.func,
176
+ onPlacementClick: n.func
163
177
  };
164
178
  //#endregion
165
- export { m as default };
179
+ export { m as Tile, m as default };
@@ -16,6 +16,9 @@ export declare class HorizontalTiler extends React.Component {
16
16
  tiles: PropTypes.Validator<any[]>;
17
17
  tileSize: PropTypes.Requireable<string>;
18
18
  addGuide: PropTypes.Requireable<boolean>;
19
+ selectedChoice: PropTypes.Requireable<object>;
20
+ onChoiceClick: PropTypes.Requireable<(...args: any[]) => any>;
21
+ onPlacementClick: PropTypes.Requireable<(...args: any[]) => any>;
19
22
  };
20
23
  static defaultProps: {
21
24
  tileSize: string;
@@ -32,6 +35,9 @@ export declare class VerticalTiler extends React.Component {
32
35
  tiles: PropTypes.Validator<any[]>;
33
36
  tileSize: PropTypes.Requireable<string>;
34
37
  addGuide: PropTypes.Requireable<boolean>;
38
+ selectedChoice: PropTypes.Requireable<object>;
39
+ onChoiceClick: PropTypes.Requireable<(...args: any[]) => any>;
40
+ onPlacementClick: PropTypes.Requireable<(...args: any[]) => any>;
35
41
  };
36
42
  static defaultProps: {
37
43
  tileSize: string;
@@ -1,4 +1,4 @@
1
- import e from "./tile.js";
1
+ import { Tile as e } from "./tile.js";
2
2
  import t, { createElement as n } from "react";
3
3
  import r from "prop-types";
4
4
  import { styled as i } from "@mui/material/styles";
@@ -10,13 +10,16 @@ var s = {
10
10
  disabled: r.bool,
11
11
  tiles: r.array.isRequired,
12
12
  tileSize: r.string,
13
- addGuide: r.bool
13
+ addGuide: r.bool,
14
+ selectedChoice: r.object,
15
+ onChoiceClick: r.func,
16
+ onPlacementClick: r.func
14
17
  }, c = {
15
18
  tileSize: "1fr",
16
19
  disabled: !1,
17
20
  addGuide: !1
18
21
  }, l = (t) => {
19
- let r = (r, i) => (r.instanceId = t.instanceId, r.disabled = t.disabled, r.guideIndex = t.addGuide ? r.index + 1 : void 0, r.tileIndex = i, t.includeTargets || r.type === "choice" ? /* @__PURE__ */ n(e, {
22
+ let r = (r, i) => (r.instanceId = t.instanceId, r.disabled = t.disabled, r.guideIndex = t.addGuide ? r.index + 1 : void 0, r.tileIndex = i, r.selectedChoice = t.selectedChoice, r.onChoiceClick = t.onChoiceClick, r.onPlacementClick = t.onPlacementClick, t.includeTargets || r.type === "choice" ? /* @__PURE__ */ n(e, {
20
23
  ...r,
21
24
  key: i
22
25
  }) : /* @__PURE__ */ n(e, {