hyperbook 0.113.2 → 0.113.4

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 (54) hide show
  1. package/dist/asset-manifest.json +9 -9
  2. package/dist/assets/directive-bitflow/{EditorElement-CE3Yr86b.js → EditorElement-BNwEKIvk.js} +143 -143
  3. package/dist/assets/directive-bitflow/{ReportElements-eYGRtw6N.js → ReportElements-CAvHx5xm.js} +2 -2
  4. package/dist/assets/directive-bitflow/{bitLoaders-CxvZkGrY.js → bitLoaders-7qanePQL.js} +41 -41
  5. package/dist/assets/directive-bitflow/{dom-uYx_3K1r.js → dom-B6NPWBb1.js} +1558 -1551
  6. package/dist/assets/directive-bitflow/editor.js +3 -3
  7. package/dist/assets/directive-bitflow/flow.js +4 -4
  8. package/dist/assets/directive-bitflow/{index-oNmOArKu.js → index-4JaKZ7WT.js} +2 -2
  9. package/dist/assets/directive-bitflow/{index-EKIgFddO.js → index-6CQr_atd.js} +19 -19
  10. package/dist/assets/directive-bitflow/{index-BadyFTU5.js → index-B9iG-a48.js} +2 -2
  11. package/dist/assets/directive-bitflow/{index-D4PdXMcj.js → index-BFYoOtcY.js} +5 -5
  12. package/dist/assets/directive-bitflow/{index-d5ebPDeY.js → index-BI6aFdIS.js} +10 -10
  13. package/dist/assets/directive-bitflow/{index-DruC5d43.js → index-Bf078mfo.js} +2 -2
  14. package/dist/assets/directive-bitflow/{index-CWe2GjBK.js → index-BinE5Wvd.js} +7 -7
  15. package/dist/assets/directive-bitflow/{index-BG0PL-Z6.js → index-BoX5-jkC.js} +7 -7
  16. package/dist/assets/directive-bitflow/{index-ledofrbo.js → index-BqRsXShM.js} +4 -4
  17. package/dist/assets/directive-bitflow/{index-CjKhq7gY.js → index-BxihQ8Oo.js} +13 -13
  18. package/dist/assets/directive-bitflow/{index-BNdpL6Ss.js → index-C5YguHZU.js} +28 -28
  19. package/dist/assets/directive-bitflow/{index-xTX3CXJW.js → index-C8zwSmE6.js} +7 -7
  20. package/dist/assets/directive-bitflow/{index-D9LOuqr2.js → index-C9JSBTNc.js} +21 -21
  21. package/dist/assets/directive-bitflow/{index-BydYlLy4.js → index-CCMI6UK4.js} +8 -8
  22. package/dist/assets/directive-bitflow/{index-WbE9UOFa.js → index-CGDt8H6s.js} +5 -5
  23. package/dist/assets/directive-bitflow/{index-D_QhyFcx.js → index-Ca1v0pjV.js} +5 -5
  24. package/dist/assets/directive-bitflow/{index-88c3K20U.js → index-CaYn3Gmh.js} +12 -12
  25. package/dist/assets/directive-bitflow/{index-C7RJxxAx.js → index-CbQue0If.js} +30 -30
  26. package/dist/assets/directive-bitflow/{index-CfKpkSVC.js → index-CjH3h0OO.js} +28 -28
  27. package/dist/assets/directive-bitflow/{index-TUXuIR22.js → index-CkO3QfOS.js} +4 -4
  28. package/dist/assets/directive-bitflow/{index-DIb3CXwC.js → index-Cz4i5rfe.js} +6 -6
  29. package/dist/assets/directive-bitflow/{index-HXNGIC7K.js → index-D0NtgeiX.js} +17 -17
  30. package/dist/assets/directive-bitflow/{index-CLHtOGrW.js → index-D1C_1SPY.js} +4 -4
  31. package/dist/assets/directive-bitflow/{index-Dn5hHVuT.js → index-D45u7EVR.js} +13 -13
  32. package/dist/assets/directive-bitflow/{index-IsMJtrUT.js → index-D9Ox4YpM.js} +10 -10
  33. package/dist/assets/directive-bitflow/{index-B61LKxr1.js → index-DJ1w2Xcm.js} +15 -15
  34. package/dist/assets/directive-bitflow/{index-BwBVUdJ9.js → index-DUqW2fmV.js} +2 -2
  35. package/dist/assets/directive-bitflow/{index-DUOrQfVe.js → index-Deedj9EF.js} +6 -6
  36. package/dist/assets/directive-bitflow/{index-DQP0cUsP.js → index-Dg6nnY_v.js} +14 -14
  37. package/dist/assets/directive-bitflow/{index-DW3cUBvZ.js → index-DgxEzomz.js} +2 -2
  38. package/dist/assets/directive-bitflow/{index-D0U3nepG.js → index-Dl0-ZAT5.js} +20 -20
  39. package/dist/assets/directive-bitflow/{index-ISbOe239.js → index-Do6dmZyj.js} +2 -2
  40. package/dist/assets/directive-bitflow/{index-Bw0pL0hW.js → index-DqnGC-DU.js} +6 -6
  41. package/dist/assets/directive-bitflow/{index-rp4UTV85.js → index-DwXXeSwk.js} +19 -19
  42. package/dist/assets/directive-bitflow/{index-BZhNY0lo.js → index-b6qwcTj9.js} +9 -9
  43. package/dist/assets/directive-bitflow/{index-BO-d4HVC.js → index-d105UFQI.js} +21 -21
  44. package/dist/assets/directive-bitflow/{index-BuQ-K_tR.js → index-jijMWQB6.js} +2 -2
  45. package/dist/assets/directive-bitflow/{index-DYWo0PUv.js → index-kxO5_U9Y.js} +2 -2
  46. package/dist/assets/directive-bitflow/{index-Cm4w1Zyc.js → index-p5AOgOal.js} +21 -21
  47. package/dist/assets/directive-bitflow/{index-BlT1EcFH.js → index-q2APknM6.js} +15 -15
  48. package/dist/assets/directive-bitflow/{index-CERSJ9uS.js → index-zVkWgm5I.js} +11 -11
  49. package/dist/assets/directive-bitflow/index.js +6 -6
  50. package/dist/assets/directive-bitflow/report.js +1 -1
  51. package/dist/assets/directive-bitflow/{shareableReport-vjEU4OvA.js → shareableReport-mdyEMdsJ.js} +6 -6
  52. package/dist/assets/directive-multievent/multievent.js +9 -17
  53. package/dist/index.js +1 -1
  54. package/package.json +4 -4
@@ -1,15 +1,15 @@
1
- import { L as R, a4 as E, a9 as re, ac as ge, ad as oe, a2 as x, a as N, j as c, a5 as D, b as P, aa as we, s as ve } from "./dom-uYx_3K1r.js";
2
- import { e as ye, M as Q, r as ke, i as xe, g as O, C as Z, P as Ne, F as je, B as Ke, U as Se, H as Le } from "./bitLoaders-CxvZkGrY.js";
3
- const Te = /^[+-]?(?:\d+\.?\d*|\.\d+)$/, se = (e) => Te.test(e.trim()), $ = (e) => {
1
+ import { P as R, a4 as E, a9 as re, ac as ge, ad as oe, a2 as x, a as N, j as c, a5 as D, b as F, aa as we, s as ve } from "./dom-B6NPWBb1.js";
2
+ import { e as ye, M as Q, r as ke, i as xe, g as O, C as Z, P as Ne, F as je, B as Ke, U as Se, H as Te } from "./bitLoaders-7qanePQL.js";
3
+ const Le = /^[+-]?(?:\d+\.?\d*|\.\d+)$/, se = (e) => Le.test(e.trim()), $ = (e) => {
4
4
  const t = e.mode === "search" ? [e.searchKey] : e.mode === "insert" ? e.insertKeys : [], o = [...e.tree.nodes.map((n) => n.label), ...t].filter(
5
5
  (n) => n.trim() !== ""
6
6
  );
7
7
  return o.length > 0 && o.every(se);
8
- }, L = (e, t, o) => o ? Number(e) - Number(t) : e.localeCompare(t, void 0, { numeric: !0 }), Ce = (e, t) => {
8
+ }, T = (e, t, o) => o ? Number(e) - Number(t) : e.localeCompare(t, void 0, { numeric: !0 }), Ce = (e, t) => {
9
9
  for (let o = 0; o < e.length; o++)
10
10
  for (let n = o + 1; n < e.length; n++)
11
- if (L(e[o], e[n], t) === 0) return e[n];
12
- }, X = (e) => e.split(/[,\s]+/).map((t) => t.trim()).filter((t) => t !== ""), Fe = (e) => {
11
+ if (T(e[o], e[n], t) === 0) return e[n];
12
+ }, X = (e) => e.split(/[,\s]+/).map((t) => t.trim()).filter((t) => t !== ""), Pe = (e) => {
13
13
  const t = /* @__PURE__ */ new Set();
14
14
  for (const o of e)
15
15
  for (const n of [o.left, o.right])
@@ -17,7 +17,7 @@ const Te = /^[+-]?(?:\d+\.?\d*|\.\d+)$/, se = (e) => Te.test(e.trim()), $ = (e)
17
17
  if (t.has(n)) return n;
18
18
  t.add(n);
19
19
  }
20
- }, Pe = (e, t) => {
20
+ }, Fe = (e, t) => {
21
21
  if (e.length === 0) return t === void 0;
22
22
  if (t === void 0) return !1;
23
23
  const o = new Map(e.map((s) => [s.id, s])), n = /* @__PURE__ */ new Set(), r = [t];
@@ -33,7 +33,7 @@ const Te = /^[+-]?(?:\d+\.?\d*|\.\d+)$/, se = (e) => Te.test(e.trim()), $ = (e)
33
33
  const n = new Map(e.map((s) => [s.id, s])), r = (s, a, d) => {
34
34
  if (s === void 0) return !0;
35
35
  const i = n.get(s);
36
- return !i || a !== void 0 && L(i.label, a, o) <= 0 || d !== void 0 && L(i.label, d, o) >= 0 ? !1 : r(i.left, a, i.label) && r(i.right, i.label, d);
36
+ return !i || a !== void 0 && T(i.label, a, o) <= 0 || d !== void 0 && T(i.label, d, o) >= 0 ? !1 : r(i.left, a, i.label) && r(i.right, i.label, d);
37
37
  };
38
38
  return r(t, void 0, void 0);
39
39
  }, Me = (e, t, o) => {
@@ -61,7 +61,7 @@ const Te = /^[+-]?(?:\d+\.?\d*|\.\d+)$/, se = (e) => Te.test(e.trim()), $ = (e)
61
61
  s.push(a);
62
62
  const d = r.get(a);
63
63
  if (!d) break;
64
- const i = L(o, d.label, n);
64
+ const i = T(o, d.label, n);
65
65
  if (i === 0) return { path: s, found: !0 };
66
66
  a = i < 0 ? d.left : d.right;
67
67
  }
@@ -83,7 +83,7 @@ const Te = /^[+-]?(?:\d+\.?\d*|\.\d+)$/, se = (e) => Te.test(e.trim()), $ = (e)
83
83
  const n = new Map(e.nodes.map((s) => [s.id, s]));
84
84
  let r = e.root;
85
85
  for (; ; ) {
86
- const s = n.get(r), a = L(t, s.label, o) < 0 ? "left" : "right", d = a === "left" ? s.left : s.right;
86
+ const s = n.get(r), a = T(t, s.label, o) < 0 ? "left" : "right", d = a === "left" ? s.left : s.right;
87
87
  if (d === void 0) return { key: t, parent: r, side: a };
88
88
  r = d;
89
89
  }
@@ -97,7 +97,7 @@ const Te = /^[+-]?(?:\d+\.?\d*|\.\d+)$/, se = (e) => Te.test(e.trim()), $ = (e)
97
97
  }, ze = (e, t) => {
98
98
  const o = [];
99
99
  for (const r of e)
100
- r.trim() !== "" && (o.some((s) => L(s, r, t) === 0) || o.push(r));
100
+ r.trim() !== "" && (o.some((s) => T(s, r, t) === 0) || o.push(r));
101
101
  const n = { nodes: [], root: void 0 };
102
102
  return q(n, ne(n, o, t));
103
103
  }, Ee = (e) => {
@@ -154,7 +154,7 @@ const Te = /^[+-]?(?:\d+\.?\d*|\.\d+)$/, se = (e) => Te.test(e.trim()), $ = (e)
154
154
  return { error: "parseTrailing", vars: { token: i.kind === "key" ? i.value : i.kind } };
155
155
  }
156
156
  return { tree: { nodes: r, root: d } };
157
- }, F = (e) => {
157
+ }, P = (e) => {
158
158
  const t = new Map(e.nodes.map((n) => [n.id, n])), o = (n) => {
159
159
  if (n === void 0) return "";
160
160
  const r = t.get(n), s = r.left !== void 0, a = r.right !== void 0;
@@ -384,7 +384,7 @@ const Te = /^[+-]?(?:\d+\.?\d*|\.\d+)$/, se = (e) => Te.test(e.trim()), $ = (e)
384
384
  }));
385
385
  }
386
386
  });
387
- const u = !d && !i ? Fe(t.nodes) : void 0;
387
+ const u = !d && !i ? Pe(t.nodes) : void 0;
388
388
  u && e.issues.push({
389
389
  code: "custom",
390
390
  input: t.nodes,
@@ -416,7 +416,7 @@ const Te = /^[+-]?(?:\d+\.?\d*|\.\d+)$/, se = (e) => Te.test(e.trim()), $ = (e)
416
416
  message: "The root has to be the one place with no parent."
417
417
  }));
418
418
  }
419
- if (b && !Pe(t.nodes, t.root) && (e.issues.push({
419
+ if (b && !Fe(t.nodes, t.root) && (e.issues.push({
420
420
  code: "custom",
421
421
  input: t.nodes,
422
422
  path: ["tree", "nodes"],
@@ -462,7 +462,7 @@ const Te = /^[+-]?(?:\d+\.?\d*|\.\d+)$/, se = (e) => Te.test(e.trim()), $ = (e)
462
462
  });
463
463
  else {
464
464
  const m = r.find(
465
- (w) => t.nodes.some((v) => L(v.label, w, p) === 0)
465
+ (w) => t.nodes.some((v) => T(v.label, w, p) === 0)
466
466
  );
467
467
  m !== void 0 && e.issues.push({
468
468
  code: "custom",
@@ -571,10 +571,10 @@ const Te = /^[+-]?(?:\d+\.?\d*|\.\d+)$/, se = (e) => Te.test(e.trim()), $ = (e)
571
571
  onChange: a,
572
572
  diagramOnly: d
573
573
  }) => {
574
- const i = (l, g) => P(A, l, o, g), u = N.useRef(null), b = rt(u), [p, f] = N.useState(""), m = !n && a !== void 0, w = e.mode === "insert", v = t?.sequence ?? [], h = t?.placements ?? [], k = r !== void 0 || s !== void 0, M = w ? q(e.tree, h) : e.tree, j = $e(M.nodes, M.root, w), W = Xe * (j.depth + 1), H = (l) => ({
574
+ const i = (l, g) => F(A, l, o, g), u = N.useRef(null), b = rt(u), [p, f] = N.useState(""), m = !n && a !== void 0, w = e.mode === "insert", v = t?.sequence ?? [], h = t?.placements ?? [], k = r !== void 0 || s !== void 0, M = w ? q(e.tree, h) : e.tree, j = $e(M.nodes, M.root, w), W = Xe * (j.depth + 1), H = (l) => ({
575
575
  x: l.x * _,
576
576
  y: l.y * W
577
- }), I = new Map(j.nodes.map((l) => [l.id, H(l)])), U = j.nodes.length + j.slots.length, K = Math.min(te * b, 0.42 * _ / Math.max(U, 1)), B = (l) => M.nodes.find((g) => g.id === l)?.label || l, S = w ? e.insertKeys[h.length] : void 0, T = (l) => a?.({
577
+ }), I = new Map(j.nodes.map((l) => [l.id, H(l)])), U = j.nodes.length + j.slots.length, K = Math.min(te * b, 0.42 * _ / Math.max(U, 1)), B = (l) => M.nodes.find((g) => g.id === l)?.label || l, S = w ? e.insertKeys[h.length] : void 0, L = (l) => a?.({
578
578
  sequence: v,
579
579
  placements: h,
580
580
  ...t?.notFound !== void 0 ? { notFound: t.notFound } : {},
@@ -585,16 +585,16 @@ const Te = /^[+-]?(?:\d+\.?\d*|\.\d+)$/, se = (e) => Te.test(e.trim()), $ = (e)
585
585
  f(i("alreadyChosen", { key: B(l) }));
586
586
  return;
587
587
  }
588
- T({ sequence: [...v, l] }), f(i("added", { key: B(l), step: v.length + 1 }));
588
+ L({ sequence: [...v, l] }), f(i("added", { key: B(l), step: v.length + 1 }));
589
589
  }
590
590
  }, G = (l) => l.side === "root" ? i("slotRoot") : i(l.side === "left" ? "slotLeft" : "slotRight", {
591
591
  key: B(l.parentId)
592
592
  }), Y = (l) => {
593
- !m || S === void 0 || (T({
593
+ !m || S === void 0 || (L({
594
594
  placements: [...h, { key: S, parent: l.parentId, side: l.side }]
595
595
  }), f(i("placed", { key: S, where: G(l) })));
596
596
  }, ue = () => {
597
- m && (w ? T({ placements: h.slice(0, -1) }) : t?.notFound ? T({ notFound: !1 }) : T({ sequence: v.slice(0, -1) }), f(i("undone")));
597
+ m && (w ? L({ placements: h.slice(0, -1) }) : t?.notFound ? L({ notFound: !1 }) : L({ sequence: v.slice(0, -1) }), f(i("undone")));
598
598
  }, fe = () => {
599
599
  m && (a?.({ sequence: [], placements: [] }), f(i("cleared")));
600
600
  }, be = (l) => v.indexOf(l) + 1, J = (l) => r === void 0 ? void 0 : l <= r ? "correct" : "wrong", pe = (l) => {
@@ -749,7 +749,7 @@ const Te = /^[+-]?(?:\d+\.?\d*|\.\d+)$/, se = (e) => Te.test(e.trim()), $ = (e)
749
749
  className: "bitflow-button bitflow-button-secondary",
750
750
  "aria-pressed": t?.notFound === !0,
751
751
  onClick: () => {
752
- T({ notFound: !t?.notFound }), f(i(t?.notFound ? "notFoundOff" : "notFoundOn"));
752
+ L({ notFound: !t?.notFound }), f(i(t?.notFound ? "notFoundOff" : "notFoundOn"));
753
753
  },
754
754
  children: i("notFound")
755
755
  }
@@ -807,7 +807,7 @@ const Te = /^[+-]?(?:\d+\.?\d*|\.\d+)$/, se = (e) => Te.test(e.trim()), $ = (e)
807
807
  locale: r,
808
808
  onAnswerChange: s
809
809
  }) => {
810
- const a = (u, b) => P(A, u, r, b), d = o?.detail, i = n ? a("howToReadonly") : e.mode === "search" ? a("howToSearch", { key: e.searchKey }) : e.mode === "insert" ? a("howToInsert") : a("howToTraversal", { order: a(ce[e.traversal]) });
810
+ const a = (u, b) => F(A, u, r, b), d = o?.detail, i = n ? a("howToReadonly") : e.mode === "search" ? a("howToSearch", { key: e.searchKey }) : e.mode === "insert" ? a("howToInsert") : a("howToTraversal", { order: a(ce[e.traversal]) });
811
811
  return /* @__PURE__ */ c.jsxs("div", { className: "bitflow-stack", children: [
812
812
  /* @__PURE__ */ c.jsx(Se, { markdown: e.instruction }),
813
813
  /* @__PURE__ */ c.jsx("p", { className: "bitflow-hint", children: i }),
@@ -831,10 +831,10 @@ const Te = /^[+-]?(?:\d+\.?\d*|\.\d+)$/, se = (e) => Te.test(e.trim()), $ = (e)
831
831
  onChange: o,
832
832
  errors: n
833
833
  }) => {
834
- const r = (h, k) => P(Ze, h, t, k), s = (h) => o({ ...e, ...h }), [a, d] = N.useState(() => F(e.tree)), [i, u] = N.useState(void 0), [b, p] = N.useState(""), [f, m] = N.useState(() => e.insertKeys.join(", "));
834
+ const r = (h, k) => F(Ze, h, t, k), s = (h) => o({ ...e, ...h }), [a, d] = N.useState(() => P(e.tree)), [i, u] = N.useState(void 0), [b, p] = N.useState(""), [f, m] = N.useState(() => e.insertKeys.join(", "));
835
835
  N.useEffect(() => {
836
836
  const h = ee(a);
837
- "tree" in h && F(h.tree) === F(e.tree) || (d(F(e.tree)), u(void 0));
837
+ "tree" in h && P(h.tree) === P(e.tree) || (d(P(e.tree)), u(void 0));
838
838
  }, [e.tree]);
839
839
  const w = (h) => {
840
840
  d(h);
@@ -846,7 +846,7 @@ const Te = /^[+-]?(?:\d+\.?\d*|\.\d+)$/, se = (e) => Te.test(e.trim()), $ = (e)
846
846
  u(void 0), s({ tree: k.tree });
847
847
  }, v = () => {
848
848
  const h = X(b), k = ze(h, h.length > 0 && h.every(se));
849
- d(F(k)), u(void 0), s({ tree: k });
849
+ d(P(k)), u(void 0), s({ tree: k });
850
850
  };
851
851
  return /* @__PURE__ */ c.jsxs("div", { className: "bitflow-stack", children: [
852
852
  /* @__PURE__ */ c.jsx(
@@ -984,8 +984,8 @@ we({
984
984
  Task: ot,
985
985
  Form: st,
986
986
  info: (e) => ({
987
- name: P(A, "name", e),
988
- description: P(A, "description", e)
987
+ name: F(A, "name", e),
988
+ description: F(A, "description", e)
989
989
  }),
990
990
  defaultData: () => ({
991
991
  instruction: "",
@@ -998,7 +998,7 @@ we({
998
998
  evaluation: oe()
999
999
  })
1000
1000
  });
1001
- Le(he);
1001
+ Te(he);
1002
1002
  ve("bitflow-styles-task-binary-tree", Qe);
1003
1003
  export {
1004
1004
  lt as AnswerSchema,
@@ -1016,7 +1016,7 @@ export {
1016
1016
  qe as TreeSchema,
1017
1017
  de as TreeView,
1018
1018
  ze as buildBstFromKeys,
1019
- L as compareKeys,
1019
+ T as compareKeys,
1020
1020
  _e as evaluate,
1021
1021
  ne as expectedPlacements,
1022
1022
  Ze as formMessages,
@@ -1030,6 +1030,6 @@ export {
1030
1030
  ee as parseTreeText,
1031
1031
  Ie as searchPath,
1032
1032
  Me as traversalOrder,
1033
- F as treeToText,
1033
+ P as treeToText,
1034
1034
  q as treeWithPlacements
1035
1035
  };
@@ -1,12 +1,12 @@
1
- import { L as C, a4 as Y, a as x, j as r, ac as J, ad as Z, a2 as L, am as ee, a5 as te, b as P, aa as ae, s as ie } from "./dom-uYx_3K1r.js";
2
- import { $ as re, e as ne, g as z, P as q, B as le, U as se, M as oe, h as ce, C as de, H as he } from "./bitLoaders-CxvZkGrY.js";
3
- const ue = ".bitflow-matching{display:flex;flex-direction:column;gap:var(--bitflow-space-small)}.bitflow-matching-columns{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--bitflow-space-large)}.bitflow-matching-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.bitflow-matching-line{stroke:var(--bitflow-color-primary);stroke-width:2;stroke-linecap:round}.bitflow-matching-line-correct{stroke:var(--bitflow-color-correct)}.bitflow-matching-line-wrong{stroke:var(--bitflow-color-wrong)}.bitflow-matching-column{display:flex;flex-direction:column;gap:var(--bitflow-space-xxsmall);padding:0;margin:var(--bitflow-space-xxsmall) 0 0;list-style:none}.bitflow-matching-card{display:flex;gap:var(--bitflow-space-xsmall);align-items:center;width:100%;padding:var(--bitflow-space-xsmall);font:inherit;color:var(--bitflow-color-text);text-align:left;cursor:pointer;background:var(--bitflow-color-surface);border:var(--bitflow-border-width) solid var(--bitflow-color-border);border-radius:var(--bitflow-radius-standard)}.bitflow-matching-card:disabled{cursor:default}.bitflow-matching-image{max-height:4rem}.bitflow-matching-index{flex:none;width:1.5rem;height:1.5rem;font-size:var(--bitflow-font-size-small);font-variant-numeric:tabular-nums;line-height:1.5rem;color:var(--bitflow-color-on-primary);text-align:center;background:var(--bitflow-color-primary);border-radius:50%}.bitflow-matching-card.bitflow-matching-card-held{background:var(--bitflow-color-neutral-100);border-color:var(--bitflow-color-primary);box-shadow:0 0 0 2px var(--bitflow-color-primary)}.bitflow-matching-card.bitflow-matching-card-matched{background:var(--bitflow-color-neutral-100);border-style:dashed}.bitflow-matching-card.bitflow-matching-card-correct{background:color-mix(in srgb,var(--bitflow-color-correct) 12%,var(--bitflow-color-surface));border-style:solid;border-color:var(--bitflow-color-correct)}.bitflow-matching-card.bitflow-matching-card-wrong{background:color-mix(in srgb,var(--bitflow-color-wrong) 12%,var(--bitflow-color-surface));border-style:solid;border-color:var(--bitflow-color-wrong)}.bitflow-matching-status{position:sticky;bottom:0;z-index:1;margin:0;padding:var(--bitflow-space-xsmall) var(--bitflow-space-small);color:var(--bitflow-color-text);background:var(--bitflow-color-surface);border-top:var(--bitflow-border-width) solid var(--bitflow-color-primary);box-shadow:var(--bitflow-shadow-medium)}", G = (t) => t.leftId === t.rightId, me = ({
1
+ import { P as C, a4 as F, a as x, j as r, ac as J, ad as Z, a2 as P, am as ee, a5 as te, b as L, aa as ae, s as ie } from "./dom-B6NPWBb1.js";
2
+ import { $ as re, e as ne, g as z, P as G, B as le, U as se, M as oe, h as ce, C as de, H as he } from "./bitLoaders-7qanePQL.js";
3
+ const ue = ".bitflow-matching{display:flex;flex-direction:column;gap:var(--bitflow-space-small)}.bitflow-matching-columns{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--bitflow-space-large)}.bitflow-matching-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.bitflow-matching-line{stroke:var(--bitflow-color-primary);stroke-width:2;stroke-linecap:round}.bitflow-matching-line-correct{stroke:var(--bitflow-color-correct)}.bitflow-matching-line-wrong{stroke:var(--bitflow-color-wrong)}.bitflow-matching-column{display:flex;flex-direction:column;gap:var(--bitflow-space-xxsmall);padding:0;margin:var(--bitflow-space-xxsmall) 0 0;list-style:none}.bitflow-matching-card{display:flex;gap:var(--bitflow-space-xsmall);align-items:center;width:100%;padding:var(--bitflow-space-xsmall);font:inherit;color:var(--bitflow-color-text);text-align:left;cursor:pointer;background:var(--bitflow-color-surface);border:var(--bitflow-border-width) solid var(--bitflow-color-border);border-radius:var(--bitflow-radius-standard)}.bitflow-matching-card:disabled{cursor:default}.bitflow-matching-image{max-height:4rem}.bitflow-matching-index{flex:none;width:1.5rem;height:1.5rem;font-size:var(--bitflow-font-size-small);font-variant-numeric:tabular-nums;line-height:1.5rem;color:var(--bitflow-color-on-primary);text-align:center;background:var(--bitflow-color-primary);border-radius:50%}.bitflow-matching-card.bitflow-matching-card-held{background:var(--bitflow-color-neutral-100);border-color:var(--bitflow-color-primary);box-shadow:0 0 0 2px var(--bitflow-color-primary)}.bitflow-matching-card.bitflow-matching-card-matched{background:var(--bitflow-color-neutral-100);border-style:dashed}.bitflow-matching-card.bitflow-matching-card-correct{background:color-mix(in srgb,var(--bitflow-color-correct) 12%,var(--bitflow-color-surface));border-style:solid;border-color:var(--bitflow-color-correct)}.bitflow-matching-card.bitflow-matching-card-wrong{background:color-mix(in srgb,var(--bitflow-color-wrong) 12%,var(--bitflow-color-surface));border-style:solid;border-color:var(--bitflow-color-wrong)}.bitflow-matching-status{position:sticky;bottom:0;z-index:1;margin:0;padding:var(--bitflow-space-xsmall) var(--bitflow-space-small);color:var(--bitflow-color-text);background:var(--bitflow-color-surface);border-top:var(--bitflow-border-width) solid var(--bitflow-color-primary);box-shadow:var(--bitflow-shadow-medium)}", U = (t) => t.leftId === t.rightId, me = ({
4
4
  data: t,
5
5
  answer: l
6
6
  }) => {
7
7
  if (t.evaluation.mode === "skip")
8
8
  return { state: "unknown", allowRetry: !1 };
9
- const h = l?.matches ?? [], s = h.filter(G), n = t.pairs.length;
9
+ const h = l?.matches ?? [], s = h.filter(U), n = t.pairs.length;
10
10
  return {
11
11
  state: n > 0 && s.length === n ? "correct" : "wrong",
12
12
  score: { earned: s.length, possible: n },
@@ -14,7 +14,7 @@ const ue = ".bitflow-matching{display:flex;flex-direction:column;gap:var(--bitfl
14
14
  detail: {
15
15
  // Which pairings held, so each can be marked where it sits rather than
16
16
  // the learner being given a number to reverse-engineer.
17
- matches: h.map((o) => ({ ...o, correct: G(o) }))
17
+ matches: h.map((o) => ({ ...o, correct: U(o) }))
18
18
  }
19
19
  };
20
20
  }, R = {
@@ -58,23 +58,23 @@ const ue = ".bitflow-matching{display:flex;flex-direction:column;gap:var(--bitfl
58
58
  matchRight: "richtig",
59
59
  matchWrong: "nicht richtig"
60
60
  }
61
- }, U = C({
61
+ }, Y = C({
62
62
  kind: te(["text", "image"]).default("text"),
63
63
  /**
64
64
  * The words on the card, or — for a picture — what the picture shows. One
65
65
  * field either way, so an image can never be shipped undescribed.
66
66
  */
67
- label: L().default(""),
67
+ label: P().default(""),
68
68
  image: ee.optional()
69
69
  }), fe = C({
70
70
  /** Stable across edits, so an answer keeps pointing at the same pair. */
71
- id: L().min(1),
72
- left: U,
73
- right: U
71
+ id: P().min(1),
72
+ left: Y,
73
+ right: Y
74
74
  }), ge = C({
75
- instruction: L().default(""),
75
+ instruction: P().default(""),
76
76
  /** Written as pairs; the learner is given the two columns shuffled. */
77
- pairs: Y(fe).default([]),
77
+ pairs: F(fe).default([]),
78
78
  evaluation: J.default(Z)
79
79
  }).check((t) => {
80
80
  const l = t.value.pairs.map((h) => h.id);
@@ -106,11 +106,11 @@ const ue = ".bitflow-matching{display:flex;flex-direction:column;gap:var(--bitfl
106
106
  });
107
107
  }), be = C({
108
108
  /** The pair the left card came from. */
109
- leftId: L().min(1),
109
+ leftId: P().min(1),
110
110
  /** The pair the right card came from — the same one, when it is right. */
111
- rightId: L().min(1)
111
+ rightId: P().min(1)
112
112
  }), ze = C({
113
- matches: Y(be).default([])
113
+ matches: F(be).default([])
114
114
  }), we = ({
115
115
  pairs: t,
116
116
  leftOrder: l,
@@ -121,13 +121,13 @@ const ue = ".bitflow-matching{display:flex;flex-direction:column;gap:var(--bitfl
121
121
  readonly: k,
122
122
  onChange: g
123
123
  }) => {
124
- const u = (e, a) => P(R, e, o, a), [i, d] = x.useState(null), [w, c] = x.useState(""), b = x.useRef(null), T = x.useRef(/* @__PURE__ */ new Map()), [Q, H] = x.useState([]), p = (e) => t.find((a) => a.id === e), v = (e) => e.label, E = n !== void 0, M = i ? v(p(i).left) : null, $ = (e) => s.find((a) => a.leftId === e), A = (e) => s.find((a) => a.rightId === e), K = (e) => e && n?.find(
124
+ const u = (e, a) => L(R, e, o, a), [i, d] = x.useState(null), [w, c] = x.useState(""), b = x.useRef(null), T = x.useRef(/* @__PURE__ */ new Map()), [Q, H] = x.useState([]), p = (e) => t.find((a) => a.id === e), v = (e) => e.label, E = n !== void 0, M = i ? v(p(i).left) : null, $ = (e) => s.find((a) => a.leftId === e), A = (e) => s.find((a) => a.rightId === e), K = (e) => e && n?.find(
125
125
  (a) => a.leftId === e.leftId && a.rightId === e.rightId
126
126
  )?.correct;
127
127
  x.useEffect(() => {
128
128
  if (i === null) return;
129
129
  const e = (a) => {
130
- a.key === "Escape" && (d(null), c(P(R, "putDown", o)));
130
+ a.key === "Escape" && (d(null), c(L(R, "putDown", o)));
131
131
  };
132
132
  return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
133
133
  }, [i, o]);
@@ -308,7 +308,7 @@ const ue = ".bitflow-matching{display:flex;flex-direction:column;gap:var(--bitfl
308
308
  unnamedPair: "Leeres Paar",
309
309
  pairSummary: "{left} → {right}"
310
310
  }
311
- }, F = (t, l) => {
311
+ }, q = (t, l) => {
312
312
  const h = xe(ve(l)), s = [...t];
313
313
  for (let n = s.length - 1; n > 0; n--) {
314
314
  const o = Math.floor(h() * (n + 1));
@@ -334,11 +334,11 @@ const ue = ".bitflow-matching{display:flex;flex-direction:column;gap:var(--bitfl
334
334
  onAnswerChange: k
335
335
  }) => {
336
336
  const g = t.pairs.map((c) => c.id), u = o?.attemptId ?? "bitflow", i = x.useMemo(
337
- () => F(g, `${u}:left`),
337
+ () => q(g, `${u}:left`),
338
338
  // eslint-disable-next-line react-hooks/exhaustive-deps
339
339
  [g.join(), u]
340
340
  ), d = x.useMemo(
341
- () => F(g, `${u}:right`),
341
+ () => q(g, `${u}:right`),
342
342
  // eslint-disable-next-line react-hooks/exhaustive-deps
343
343
  [g.join(), u]
344
344
  ), w = (l?.matches ?? []).filter(
@@ -371,7 +371,7 @@ const ue = ".bitflow-matching{display:flex;flex-direction:column;gap:var(--bitfl
371
371
  onChange: h,
372
372
  errors: s
373
373
  }) => {
374
- const n = (i, d) => P(pe, i, l, d), o = (i) => h({ ...t, ...i }), k = re(t.pairs.map((i) => i.id)), g = (i, d, w) => o({
374
+ const n = (i, d) => L(pe, i, l, d), o = (i) => h({ ...t, ...i }), k = re(t.pairs.map((i) => i.id)), g = (i, d, w) => o({
375
375
  pairs: t.pairs.map(
376
376
  (c) => c.id === i ? { ...c, [d]: { ...c[d], ...w } } : c
377
377
  )
@@ -436,7 +436,7 @@ const ue = ".bitflow-matching{display:flex;flex-direction:column;gap:var(--bitfl
436
436
  z(s, "pairs") && /* @__PURE__ */ r.jsx("span", { className: "bitflow-field-error", role: "alert", children: z(s, "pairs") }),
437
437
  t.pairs.length === 0 && /* @__PURE__ */ r.jsx("p", { className: "bitflow-text-muted", children: n("noPairs") }),
438
438
  t.pairs.map((i, d) => /* @__PURE__ */ r.jsx("div", { className: "bitflow-rule", children: /* @__PURE__ */ r.jsxs(
439
- q,
439
+ G,
440
440
  {
441
441
  ...k.props(i.id),
442
442
  summary: i.left.label || i.right.label ? n("pairSummary", {
@@ -479,7 +479,7 @@ const ue = ".bitflow-matching{display:flex;flex-direction:column;gap:var(--bitfl
479
479
  }
480
480
  )
481
481
  ] }),
482
- /* @__PURE__ */ r.jsx(q, { summary: n("advanced"), children: /* @__PURE__ */ r.jsx(
482
+ /* @__PURE__ */ r.jsx(G, { summary: n("advanced"), children: /* @__PURE__ */ r.jsx(
483
483
  le,
484
484
  {
485
485
  evaluation: t.evaluation,
@@ -497,8 +497,8 @@ ae({
497
497
  Task: ke,
498
498
  Form: je,
499
499
  info: (t) => ({
500
- name: P(R, "name", t),
501
- description: P(R, "description", t)
500
+ name: L(R, "name", t),
501
+ description: L(R, "description", t)
502
502
  }),
503
503
  defaultData: () => ({
504
504
  instruction: "",
@@ -515,12 +515,12 @@ export {
515
515
  je as Form,
516
516
  be as MatchSchema,
517
517
  fe as PairSchema,
518
- U as SideSchema,
518
+ Y as SideSchema,
519
519
  _ as TYPE,
520
520
  ke as Task,
521
521
  me as evaluate,
522
522
  pe as formMessages,
523
- G as isRight,
523
+ U as isRight,
524
524
  R as messages,
525
- F as seededShuffle
525
+ q as seededShuffle
526
526
  };
@@ -1,5 +1,5 @@
1
- import { L as v, a9 as g, a2 as r, j as n, a as k, b as o, s as L, aa as y } from "./dom-uYx_3K1r.js";
2
- import { C as m, e as j, F as x, U as A, H } from "./bitLoaders-CxvZkGrY.js";
1
+ import { P as v, a9 as g, a2 as r, j as n, a as k, b as o, s as y, aa as L } from "./dom-B6NPWBb1.js";
2
+ import { C as m, e as j, F as x, U as A, H } from "./bitLoaders-7qanePQL.js";
3
3
  const F = ".bitflow-download-state{margin:0;min-height:var(--bitflow-space-small);font-size:var(--bitflow-font-size-small);color:var(--bitflow-color-text-muted)}", h = {
4
4
  en: {
5
5
  name: "Finish and save",
@@ -208,9 +208,9 @@ const F = ".bitflow-download-state{margin:0;min-height:var(--bitflow-space-small
208
208
  )
209
209
  ] });
210
210
  };
211
- L("bitflow-styles-end-download", F);
211
+ y("bitflow-styles-end-download", F);
212
212
  const w = "end-download";
213
- y({
213
+ L({
214
214
  type: w,
215
215
  kind: "end",
216
216
  schema: N,
@@ -1,5 +1,5 @@
1
- import { L as H, ak as V, a4 as M, a2 as w, P as q, j as t, ac as G, ad as D, a9 as N, a as z, b as v, aa as K, s as Q } from "./dom-uYx_3K1r.js";
2
- import { $ as X, e as Z, C as A, g as E, i as R, P as F, r as $, F as y, B as Y, U as _, H as ee } from "./bitLoaders-CxvZkGrY.js";
1
+ import { P as H, ak as V, a4 as M, a2 as w, Y as q, j as t, ac as G, ad as D, a9 as N, a as z, b as v, aa as Y, s as K } from "./dom-B6NPWBb1.js";
2
+ import { $ as Q, e as Z, C as A, g as E, i as R, P as F, r as $, F as y, B as X, U as _, H as ee } from "./bitLoaders-7qanePQL.js";
3
3
  const W = H({
4
4
  /** The call, as it would be written: `fak(3)`, `sum(list, 2)`. */
5
5
  call: w().default(""),
@@ -378,7 +378,7 @@ const W = H({
378
378
  if (!e.includes(o)) return o;
379
379
  }
380
380
  }, ue = ({ data: e, locale: n, onChange: o, errors: r }) => {
381
- const a = (l, c) => v(re, l, n, c), s = (l) => o({ ...e, ...l }), i = X(e.checkpoints.map((l) => l.id)), d = (l, c) => s({
381
+ const a = (l, c) => v(re, l, n, c), s = (l) => o({ ...e, ...l }), i = Q(e.checkpoints.map((l) => l.id)), d = (l, c) => s({
382
382
  checkpoints: e.checkpoints.map(
383
383
  (m) => m.id === l ? { ...m, ...c } : m
384
384
  )
@@ -560,7 +560,7 @@ const W = H({
560
560
  }
561
561
  ),
562
562
  /* @__PURE__ */ t.jsx(
563
- Y,
563
+ X,
564
564
  {
565
565
  evaluation: e.evaluation,
566
566
  locale: n,
@@ -570,7 +570,7 @@ const W = H({
570
570
  ] })
571
571
  ] });
572
572
  }, U = "task-call-stack";
573
- K({
573
+ Y({
574
574
  type: U,
575
575
  kind: "task",
576
576
  schema: te,
@@ -594,7 +594,7 @@ K({
594
594
  })
595
595
  });
596
596
  ee(U);
597
- Q("bitflow-styles-task-call-stack", ie);
597
+ K("bitflow-styles-task-call-stack", ie);
598
598
  export {
599
599
  we as AnswerSchema,
600
600
  ae as CheckpointSchema,
@@ -1,5 +1,5 @@
1
- import { L as $, a4 as R, ac as me, ad as re, a9 as G, a2 as N, P as Y, j as s, a5 as X, a as W, b as A, aa as ve, s as xe } from "./dom-uYx_3K1r.js";
2
- import { $ as ee, e as je, M as O, F as Z, g as y, P as K, C as ye, r as te, B as Te, y as Ne, U as Ce, H as ke } from "./bitLoaders-CxvZkGrY.js";
1
+ import { P as $, a4 as R, ac as me, ad as re, a9 as G, a2 as N, Y as K, j as s, a5 as X, a as W, b as A, aa as ve, s as xe } from "./dom-B6NPWBb1.js";
2
+ import { $ as ee, e as je, M as O, F as Y, g as y, P as Z, C as ye, r as te, B as Te, y as Ne, U as Ce, H as ke } from "./bitLoaders-7qanePQL.js";
3
3
  const C = (e, t) => e.weighted ? t.weight : 1, oe = 1e-9, U = (e, t) => Math.abs(e - t) <= oe * Math.max(1, Math.abs(e), Math.abs(t)), z = (e, t, a) => e.edges.find(
4
4
  (r) => r.source === t && r.target === a || !e.directed && r.source === a && r.target === t
5
5
  ), q = (e, t) => {
@@ -140,14 +140,14 @@ const C = (e, t) => e.weighted ? t.weight : 1, oe = 1e-9, U = (e, t) => Math.abs
140
140
  * Where it sits, as a fraction of the diagram in each direction. Never
141
141
  * pixels: the diagram is drawn at whatever size it is given.
142
142
  */
143
- x: Y().min(0).max(1).default(0.5),
144
- y: Y().min(0).max(1).default(0.5)
143
+ x: K().min(0).max(1).default(0.5),
144
+ y: K().min(0).max(1).default(0.5)
145
145
  }), ze = $({
146
146
  id: N().min(1),
147
147
  source: N().min(1),
148
148
  target: N().min(1),
149
149
  /** Ignored entirely unless the graph is weighted, where it is the cost. */
150
- weight: Y().positive().default(1)
150
+ weight: K().positive().default(1)
151
151
  }), ie = [
152
152
  "path",
153
153
  "shortestPath",
@@ -290,7 +290,7 @@ const C = (e, t) => e.weighted ? t.weight : 1, oe = 1e-9, U = (e, t) => Math.abs
290
290
  if (e.goal === "path") return v("correct");
291
291
  const a = Le(e, t), r = se(e, e.sourceId).get(e.targetId);
292
292
  return r === void 0 ? v("notToTarget") : U(a, r) ? v("correct") : v("notShortest");
293
- }, Ze = (e, t) => {
293
+ }, Ye = (e, t) => {
294
294
  const a = Se(e, e.sourceId);
295
295
  let r = 0;
296
296
  for (; r < t.length && r < a.length && t[r] === a[r]; )
@@ -301,7 +301,7 @@ const C = (e, t) => e.weighted ? t.weight : 1, oe = 1e-9, U = (e, t) => Math.abs
301
301
  return v("correct", { correctPrefix: r, outOf: n });
302
302
  const o = r === t.length ? "missesPlaces" : "wrongOrder";
303
303
  return v(o, { correctPrefix: r, outOf: n });
304
- }, Ke = (e, t) => {
304
+ }, Ze = (e, t) => {
305
305
  if (t.length === 0) return v("empty");
306
306
  const a = We(e, t);
307
307
  if (a === "cycle") return v("treeCycle");
@@ -309,7 +309,7 @@ const C = (e, t) => e.weighted ? t.weight : 1, oe = 1e-9, U = (e, t) => Math.abs
309
309
  if (a === "wrongSize") return v("treeWrongSize");
310
310
  const r = Pe(e);
311
311
  return r === void 0 ? v("treeDisconnected") : U(Ae(e, t), r) ? v("correct") : v("notCheapestTree");
312
- }, Ye = (e, t) => {
312
+ }, Ke = (e, t) => {
313
313
  if (t.length === 0) return v("empty");
314
314
  const a = new Set(t);
315
315
  if (!a.has(e.sourceId) || a.has(e.targetId))
@@ -322,11 +322,11 @@ const C = (e, t) => e.weighted ? t.weight : 1, oe = 1e-9, U = (e, t) => Math.abs
322
322
  );
323
323
  switch (e.goal) {
324
324
  case "traversal":
325
- return Ze(e, a);
325
+ return Ye(e, a);
326
326
  case "spanningTree":
327
- return Ke(e, a);
327
+ return Ze(e, a);
328
328
  case "cut":
329
- return Ye(e, a);
329
+ return Ke(e, a);
330
330
  default:
331
331
  return Ge(e, a);
332
332
  }
@@ -1013,7 +1013,7 @@ const C = (e, t) => e.weighted ? t.weight : 1, oe = 1e-9, U = (e, t) => Math.abs
1013
1013
  }
1014
1014
  ),
1015
1015
  /* @__PURE__ */ s.jsx(
1016
- Z,
1016
+ Y,
1017
1017
  {
1018
1018
  label: n("directedLabel"),
1019
1019
  hint: n("directedHint"),
@@ -1023,7 +1023,7 @@ const C = (e, t) => e.weighted ? t.weight : 1, oe = 1e-9, U = (e, t) => Math.abs
1023
1023
  ),
1024
1024
  y(r, "directed") && /* @__PURE__ */ s.jsx("span", { className: "bitflow-field-error", role: "alert", children: y(r, "directed") }),
1025
1025
  /* @__PURE__ */ s.jsx(
1026
- Z,
1026
+ Y,
1027
1027
  {
1028
1028
  label: n("weightedLabel"),
1029
1029
  hint: n("weightedHint"),
@@ -1050,7 +1050,7 @@ const C = (e, t) => e.weighted ? t.weight : 1, oe = 1e-9, U = (e, t) => Math.abs
1050
1050
  y(r, "nodes") && /* @__PURE__ */ s.jsx("span", { className: "bitflow-field-error", role: "alert", children: y(r, "nodes") }),
1051
1051
  e.nodes.length === 0 && /* @__PURE__ */ s.jsx("p", { className: "bitflow-text-muted", children: n("noPlaces") }),
1052
1052
  e.nodes.map((i, p) => /* @__PURE__ */ s.jsxs(
1053
- K,
1053
+ Z,
1054
1054
  {
1055
1055
  ...l.props(i.id),
1056
1056
  summary: i.label || n("unnamedPlace"),
@@ -1120,7 +1120,7 @@ const C = (e, t) => e.weighted ? t.weight : 1, oe = 1e-9, U = (e, t) => Math.abs
1120
1120
  y(r, "edges") && /* @__PURE__ */ s.jsx("span", { className: "bitflow-field-error", role: "alert", children: y(r, "edges") }),
1121
1121
  e.edges.length === 0 && /* @__PURE__ */ s.jsx("p", { className: "bitflow-text-muted", children: n("noConnections") }),
1122
1122
  e.edges.map((i, p) => /* @__PURE__ */ s.jsxs(
1123
- K,
1123
+ Z,
1124
1124
  {
1125
1125
  ...d.props(i.id),
1126
1126
  summary: `${x(e, i.source)} → ${x(e, i.target)}`,
@@ -1246,9 +1246,9 @@ const C = (e, t) => e.weighted ? t.weight : 1, oe = 1e-9, U = (e, t) => Math.abs
1246
1246
  }
1247
1247
  )
1248
1248
  ] }),
1249
- /* @__PURE__ */ s.jsxs(K, { summary: n("advanced"), children: [
1249
+ /* @__PURE__ */ s.jsxs(Z, { summary: n("advanced"), children: [
1250
1250
  e.goal === "traversal" && /* @__PURE__ */ s.jsx(
1251
- Z,
1251
+ Y,
1252
1252
  {
1253
1253
  label: n("partialCreditLabel"),
1254
1254
  hint: n("partialCreditHint"),
@@ -1,5 +1,5 @@
1
- import { L as w, a2 as l, a9 as k, j as i, a as c, b as u, s as y, aa as L } from "./dom-uYx_3K1r.js";
2
- import { C as h, e as j, F as x, r as q, U as S, H as z } from "./bitLoaders-CxvZkGrY.js";
1
+ import { P as w, a2 as l, a9 as k, j as i, a as c, b as u, s as y, aa as j } from "./dom-B6NPWBb1.js";
2
+ import { C as h, e as L, F as x, r as q, U as S, H as z } from "./bitLoaders-7qanePQL.js";
3
3
  const T = ".bitflow-handoff-state{margin:0;min-height:var(--bitflow-space-small);font-size:var(--bitflow-font-size-small);color:var(--bitflow-color-text-muted)}.bitflow-handoff-sent{color:var(--bitflow-color-correct)}.bitflow-handoff-failed,.bitflow-handoff-misconfigured{color:var(--bitflow-color-wrong)}.bitflow-handoff-link{color:var(--bitflow-color-primary-dark);text-underline-offset:.2em}", g = {
4
4
  en: {
5
5
  name: "Finish and hand back",
@@ -232,7 +232,7 @@ const T = ".bitflow-handoff-state{margin:0;min-height:var(--bitflow-space-small)
232
232
  }
233
233
  ),
234
234
  /* @__PURE__ */ i.jsx(
235
- j,
235
+ L,
236
236
  {
237
237
  label: a("markdownLabel"),
238
238
  hint: a("markdownHint"),
@@ -291,7 +291,7 @@ const T = ".bitflow-handoff-state{margin:0;min-height:var(--bitflow-space-small)
291
291
  };
292
292
  y("bitflow-styles-end-handoff", T);
293
293
  const b = "end-handoff";
294
- L({
294
+ j({
295
295
  type: b,
296
296
  kind: "end",
297
297
  schema: U,