@pie-element/placement-ordering 14.1.2-next.4 → 14.1.2-next.6

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 (33) hide show
  1. package/dist/author/choice-editor.js +2 -2
  2. package/dist/author/choice-tile.js +3 -2
  3. package/dist/author/design.js +1 -1
  4. package/dist/author/index.d.ts +1 -0
  5. package/dist/author/index.js +5 -2
  6. package/dist/browser/author/index.js +22660 -25834
  7. package/dist/browser/author/index.js.map +1 -1
  8. package/dist/browser/{browser-DHPggtaA.js → browser-Bd36Xf5z.js} +2 -2
  9. package/dist/browser/browser-Bd36Xf5z.js.map +1 -0
  10. package/dist/browser/controller/index.js +3 -3
  11. package/dist/browser/controller/index.js.map +1 -1
  12. package/dist/browser/delivery/index.js +436 -307
  13. package/dist/browser/delivery/index.js.map +1 -1
  14. package/dist/browser/{dist-D9ARZhQk.js → dist-DiGNNRzu.js} +2 -2
  15. package/dist/browser/{dist-D9ARZhQk.js.map → dist-DiGNNRzu.js.map} +1 -1
  16. package/dist/browser/{drag-provider-C1slTlsc.js → drag-provider-BdfhGCEU.js} +2474 -2529
  17. package/dist/browser/drag-provider-BdfhGCEU.js.map +1 -0
  18. package/dist/controller/scoring.js +1 -1
  19. package/dist/delivery/index.js +2 -2
  20. package/dist/delivery/keyboard-coordinates.d.ts +35 -0
  21. package/dist/delivery/keyboard-coordinates.js +48 -0
  22. package/dist/delivery/main.js +1 -1
  23. package/dist/delivery/ordering.js +1 -1
  24. package/dist/delivery/placement-ordering.d.ts +11 -0
  25. package/dist/delivery/placement-ordering.js +147 -79
  26. package/dist/delivery/tile.d.ts +3 -0
  27. package/dist/delivery/tile.js +66 -57
  28. package/dist/delivery/tiler.d.ts +6 -0
  29. package/dist/delivery/tiler.js +6 -3
  30. package/dist/index.iife.js +35 -35
  31. package/package.json +15 -9
  32. package/dist/browser/browser-DHPggtaA.js.map +0 -1
  33. package/dist/browser/drag-provider-C1slTlsc.js.map +0 -1
@@ -24,90 +24,89 @@ 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);
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, R = (e) => {
106
+ (e.code === "Space" || e.code === "Enter") && (e.preventDefault(), I());
107
+ }, z = e.useRef(null);
109
108
  return e.useEffect(() => {
110
- let e = D.current, t = (e) => {
109
+ let e = z.current, t = (e) => {
111
110
  e.preventDefault();
112
111
  };
113
112
  return e && e.addEventListener("touchstart", t, { passive: !1 }), () => {
@@ -115,23 +114,29 @@ var f = r("div")(({ theme: e, isDragging: t, isOver: n, disabled: r, outcome: i,
115
114
  };
116
115
  }, []), l("[render], props: ", t), /* @__PURE__ */ s("div", {
117
116
  ref: (e) => {
118
- D.current = e, S(e), T(e);
117
+ z.current = e, E(e), k(e);
119
118
  },
120
119
  style: {
121
- transform: C ? `translate3d(${C.x}px, ${C.y}px, 0)` : void 0,
120
+ transform: D ? `translate3d(${D.x}px, ${D.y}px, 0)` : void 0,
122
121
  boxSizing: "border-box",
123
122
  overflow: "visible",
124
123
  padding: 0,
125
124
  margin: 0,
126
125
  textAlign: "center",
127
126
  pointerEvents: "auto",
128
- cursor: u ? "not-allowed" : w ? "grabbing" : "grab",
129
- zIndex: w ? 1e3 : "auto",
130
- willChange: w ? "transform" : "auto"
127
+ cursor: u ? "not-allowed" : r === "target" && P ? "pointer" : O ? "grabbing" : "grab",
128
+ zIndex: O ? 1e3 : "auto",
129
+ willChange: O ? "transform" : "auto"
131
130
  },
131
+ role: L ? "button" : void 0,
132
+ tabIndex: L ? 0 : void 0,
133
+ onKeyDown: L ? R : void 0,
134
+ onClick: I,
135
+ onMouseEnter: () => N(!0),
136
+ onMouseLeave: () => N(!1),
132
137
  ...g && !u ? {
133
- ...x,
134
- ...b
138
+ ...T,
139
+ ...w
135
140
  } : {},
136
141
  children: /* @__PURE__ */ s(p, {
137
142
  label: n,
@@ -139,8 +144,9 @@ var f = r("div")(({ theme: e, isDragging: t, isOver: n, disabled: r, outcome: i,
139
144
  empty: c,
140
145
  index: f,
141
146
  guideIndex: m,
142
- isOver: E,
143
- isDragging: w,
147
+ isOver: F,
148
+ isDragging: O,
149
+ isSelected: j,
144
150
  disabled: u,
145
151
  outcome: d,
146
152
  type: r
@@ -159,7 +165,10 @@ m.propTypes = {
159
165
  guideIndex: n.number,
160
166
  instanceId: n.any,
161
167
  draggable: n.bool,
162
- tileIndex: n.number
168
+ tileIndex: n.number,
169
+ selectedChoice: n.object,
170
+ onChoiceClick: n.func,
171
+ onPlacementClick: n.func
163
172
  };
164
173
  //#endregion
165
- export { m as default };
174
+ 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, {