hyperbook 0.113.1 → 0.113.2

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-zyz99U6n.js → EditorElement-CE3Yr86b.js} +155 -155
  3. package/dist/assets/directive-bitflow/{ReportElements-BnX14NtV.js → ReportElements-eYGRtw6N.js} +1 -1
  4. package/dist/assets/directive-bitflow/{bitLoaders-DIGwTcpd.js → bitLoaders-CxvZkGrY.js} +1138 -1073
  5. package/dist/assets/directive-bitflow/editor.js +3 -3
  6. package/dist/assets/directive-bitflow/flow.js +3 -3
  7. package/dist/assets/directive-bitflow/{index-IQHOi2fr.js → index-88c3K20U.js} +31 -31
  8. package/dist/assets/directive-bitflow/{index-Bqf-kixT.js → index-B61LKxr1.js} +45 -45
  9. package/dist/assets/directive-bitflow/{index-CFcRAa3F.js → index-BG0PL-Z6.js} +30 -30
  10. package/dist/assets/directive-bitflow/{index-B3jMTk1o.js → index-BNdpL6Ss.js} +78 -78
  11. package/dist/assets/directive-bitflow/{index-Fq7njn6_.js → index-BO-d4HVC.js} +48 -48
  12. package/dist/assets/directive-bitflow/{index-Bf_NXJjq.js → index-BZhNY0lo.js} +12 -12
  13. package/dist/assets/directive-bitflow/{index-COndsSPW.js → index-BadyFTU5.js} +8 -8
  14. package/dist/assets/directive-bitflow/{index-CvCZVgKv.js → index-BlT1EcFH.js} +34 -34
  15. package/dist/assets/directive-bitflow/{index-CW9iev-_.js → index-BuQ-K_tR.js} +7 -7
  16. package/dist/assets/directive-bitflow/{index-DjWNEPDL.js → index-Bw0pL0hW.js} +28 -28
  17. package/dist/assets/directive-bitflow/{index-BQ5h4nDN.js → index-BwBVUdJ9.js} +94 -94
  18. package/dist/assets/directive-bitflow/{index-CjscG0z6.js → index-BydYlLy4.js} +73 -73
  19. package/dist/assets/directive-bitflow/{index-BpG316Ls.js → index-C7RJxxAx.js} +63 -63
  20. package/dist/assets/directive-bitflow/{index-eN2S_MLj.js → index-CERSJ9uS.js} +70 -70
  21. package/dist/assets/directive-bitflow/{index-DtsDy2By.js → index-CLHtOGrW.js} +11 -11
  22. package/dist/assets/directive-bitflow/{index-Bf_FQRbK.js → index-CWe2GjBK.js} +14 -14
  23. package/dist/assets/directive-bitflow/{index-CzdZQibq.js → index-CfKpkSVC.js} +72 -72
  24. package/dist/assets/directive-bitflow/{index-Fr7yl4Vn.js → index-CjKhq7gY.js} +23 -23
  25. package/dist/assets/directive-bitflow/{index-DoKlIgCD.js → index-Cm4w1Zyc.js} +38 -38
  26. package/dist/assets/directive-bitflow/{index-D5yZNeIg.js → index-D0U3nepG.js} +52 -52
  27. package/dist/assets/directive-bitflow/{index-C5czXkRd.js → index-D4PdXMcj.js} +33 -33
  28. package/dist/assets/directive-bitflow/{index-BLcJNyog.js → index-D9LOuqr2.js} +99 -99
  29. package/dist/assets/directive-bitflow/{index-BIJ7VfD2.js → index-DIb3CXwC.js} +42 -42
  30. package/dist/assets/directive-bitflow/{index-CZyaFdD2.js → index-DQP0cUsP.js} +70 -70
  31. package/dist/assets/directive-bitflow/{index-ChgzyMHe.js → index-DUOrQfVe.js} +27 -27
  32. package/dist/assets/directive-bitflow/{index-kRpwcprB.js → index-DW3cUBvZ.js} +1 -1
  33. package/dist/assets/directive-bitflow/{index-C_ZTSeqv.js → index-DYWo0PUv.js} +24 -24
  34. package/dist/assets/directive-bitflow/{index-xapm2BQE.js → index-D_QhyFcx.js} +101 -91
  35. package/dist/assets/directive-bitflow/{index-BdBBCZSy.js → index-Dn5hHVuT.js} +226 -193
  36. package/dist/assets/directive-bitflow/{index-D7m-hJZ9.js → index-DruC5d43.js} +69 -69
  37. package/dist/assets/directive-bitflow/{index-e_8twLaN.js → index-EKIgFddO.js} +105 -105
  38. package/dist/assets/directive-bitflow/{index-8jTO-NJA.js → index-HXNGIC7K.js} +70 -70
  39. package/dist/assets/directive-bitflow/{index-DnVYIuen.js → index-ISbOe239.js} +42 -42
  40. package/dist/assets/directive-bitflow/{index-cnRM_JDB.js → index-IsMJtrUT.js} +31 -31
  41. package/dist/assets/directive-bitflow/{index-B7Z6Q-PQ.js → index-TUXuIR22.js} +6 -6
  42. package/dist/assets/directive-bitflow/{index-CK1UMcfT.js → index-WbE9UOFa.js} +24 -24
  43. package/dist/assets/directive-bitflow/{index-YPMWh-1B.js → index-d5ebPDeY.js} +13 -13
  44. package/dist/assets/directive-bitflow/{index-NyNuXp4C.js → index-ledofrbo.js} +33 -33
  45. package/dist/assets/directive-bitflow/{index-BseSaQlX.js → index-oNmOArKu.js} +1 -1
  46. package/dist/assets/directive-bitflow/{index-ivI25bnR.js → index-rp4UTV85.js} +84 -84
  47. package/dist/assets/directive-bitflow/{index-XxGfBwJe.js → index-xTX3CXJW.js} +23 -23
  48. package/dist/assets/directive-bitflow/index.js +6 -6
  49. package/dist/assets/directive-bitflow/katex-DSLAjWZH-CHGN3Pr6.js +11314 -0
  50. package/dist/assets/directive-bitflow/katex-Dv-tcU2S-Dv-tcU2S.js +4 -0
  51. package/dist/assets/directive-bitflow/report.js +1 -1
  52. package/dist/assets/directive-bitflow/{shareableReport-ArQU1XjG.js → shareableReport-vjEU4OvA.js} +2 -2
  53. package/dist/index.js +1 -1
  54. package/package.json +4 -4
@@ -1,22 +1,22 @@
1
- import { L as C, ak as V, a2 as v, a4 as E, ao as le, a5 as U, ac as te, ad as _, a9 as O, P as ae, j as a, a as R, b as k, aa as ne, s as oe } from "./dom-uYx_3K1r.js";
2
- import { v as W, y as re, e as G, _ as T, M as A, P as ie, t as se, E as ce, L as de, R as ue } from "./bitLoaders-DIGwTcpd.js";
3
- const I = ["text", "number", "formula"], be = U(I), me = C({
1
+ import { L as C, ak as U, a2 as v, a4 as E, ao as le, a5 as V, ac as te, ad as I, a9 as O, P as ae, j as a, a as R, b as k, aa as ne, s as oe } from "./dom-uYx_3K1r.js";
2
+ import { e as W, C as re, P as G, i as T, F as A, M as ie, r as se, B as ce, U as de, H as be } from "./bitLoaders-CxvZkGrY.js";
3
+ const Y = ["text", "number", "formula"], ue = V(Y), me = C({
4
4
  /** Stable across edits, so a cell keeps pointing at the same column. */
5
5
  id: v().min(1),
6
6
  header: v().default(""),
7
- kind: be.default("text")
7
+ kind: ue.default("text")
8
8
  }), he = C({
9
9
  given: v()
10
10
  }), we = C({
11
11
  accepted: E(v()).default([])
12
- }), fe = le([he, we]), S = (e) => e !== void 0 && "given" in e, K = (e) => e !== void 0 && "accepted" in e, Y = () => ({ accepted: [] }), pe = C({
12
+ }), fe = le([he, we]), S = (e) => e !== void 0 && "given" in e, F = (e) => e !== void 0 && "accepted" in e, _ = () => ({ accepted: [] }), pe = C({
13
13
  /** Stable across edits and across a shuffled marking pass — see `rowOrder`. */
14
14
  id: v().min(1),
15
15
  /** Shown only when `rowHeaders` is on. */
16
16
  header: v().optional(),
17
17
  /** Column id → the cell there. */
18
- cells: V(v(), fe).default({})
19
- }), ge = ["fixed", "any"], ve = U(ge), xe = C({
18
+ cells: U(v(), fe).default({})
19
+ }), ge = ["fixed", "any"], ve = V(ge), xe = C({
20
20
  instruction: v().default(""),
21
21
  /** Shown above the table. Optional — most tables need no more caption than the instruction already gives. */
22
22
  caption: v().default(""),
@@ -48,7 +48,7 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
48
48
  * three of four cells right.
49
49
  */
50
50
  partialCredit: O().default(!0),
51
- evaluation: te.default(_)
51
+ evaluation: te.default(I)
52
52
  }).check((e) => {
53
53
  const { columns: t, rows: n, evaluation: o } = e.value, l = t.map((i) => i.id);
54
54
  new Set(l).size !== l.length && e.issues.push({
@@ -64,12 +64,12 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
64
64
  path: ["rows"],
65
65
  message: "Each row needs its own id."
66
66
  }), n.forEach((i, s) => {
67
- for (const b of t)
68
- i.cells[b.id] === void 0 && e.issues.push({
67
+ for (const u of t)
68
+ i.cells[u.id] === void 0 && e.issues.push({
69
69
  code: "custom",
70
70
  input: i,
71
- path: ["rows", s, "cells", b.id],
72
- message: `“${i.header || `Row ${s + 1}`}” has no entry for “${b.header || `Column ${t.indexOf(b) + 1}`}”.`
71
+ path: ["rows", s, "cells", u.id],
72
+ message: `“${i.header || `Row ${s + 1}`}” has no entry for “${u.header || `Column ${t.indexOf(u) + 1}`}”.`
73
73
  });
74
74
  }), o.mode !== "auto") return;
75
75
  t.length === 0 && e.issues.push({
@@ -92,12 +92,12 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
92
92
  });
93
93
  let r = 0;
94
94
  n.forEach((i, s) => {
95
- for (const b of t) {
96
- const m = i.cells[b.id];
97
- K(m) && (r += 1, m.accepted.every((p) => p.trim() === "") && e.issues.push({
95
+ for (const u of t) {
96
+ const m = i.cells[u.id];
97
+ F(m) && (r += 1, m.accepted.every((p) => p.trim() === "") && e.issues.push({
98
98
  code: "custom",
99
99
  input: m,
100
- path: ["rows", s, "cells", b.id, "accepted"],
100
+ path: ["rows", s, "cells", u.id, "accepted"],
101
101
  message: "Give at least one accepted answer for this cell, or mark it given."
102
102
  }));
103
103
  }
@@ -108,8 +108,8 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
108
108
  message: "Leave at least one cell blank for the learner to fill in."
109
109
  });
110
110
  }), z = (e, t) => `${e}:${t}`, Me = C({
111
- cells: V(v(), v()).default({})
112
- }), F = (e, t, n) => e?.cells?.[z(t, n)] ?? "", je = (e, t, n, o) => ({
111
+ cells: U(v(), v()).default({})
112
+ }), K = (e, t, n) => e?.cells?.[z(t, n)] ?? "", je = (e, t, n, o) => ({
113
113
  cells: { ...e?.cells, [z(t, n)]: o }
114
114
  }), ke = " | ", D = (e) => e.join(ke), $ = (e) => e.split("|").map((t) => t.trim()).filter((t) => t !== ""), q = (e, t) => {
115
115
  for (let n = t.length + 1; ; n++) {
@@ -118,7 +118,7 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
118
118
  }
119
119
  }, ye = (e, t) => ({
120
120
  id: t,
121
- cells: Object.fromEntries(e.map((n) => [n.id, Y()]))
121
+ cells: Object.fromEntries(e.map((n) => [n.id, _()]))
122
122
  }), B = (e) => {
123
123
  const t = e.trim().replace(",", ".");
124
124
  if (/^[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?$/.test(t))
@@ -126,11 +126,11 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
126
126
  }, Ce = (e, t, n) => {
127
127
  const o = n ? e.trim().replace(/\s+/g, " ") : e;
128
128
  return t ? o : o.toLowerCase();
129
- }, Ne = (e, t) => {
129
+ }, He = (e, t) => {
130
130
  const n = e.replace(/\s+/g, "");
131
131
  return t ? n : n.toUpperCase();
132
132
  }, M = (e, t, n) => {
133
- if (t === "formula") return Ne(e, n.caseSensitive);
133
+ if (t === "formula") return He(e, n.caseSensitive);
134
134
  if (t === "number") {
135
135
  const o = B(e);
136
136
  if (o !== void 0) return String(o);
@@ -143,12 +143,12 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
143
143
  return Math.abs(d - r) <= o.numberTolerance;
144
144
  }
145
145
  return M(l, n, o) === M(t, n, o);
146
- }), He = (e) => {
146
+ }), Ne = (e) => {
147
147
  const t = e.length, n = new Array(t + 1).fill(0), o = new Array(t + 1).fill(0), l = new Array(t + 1).fill(0), d = new Array(t + 1).fill(0);
148
148
  for (let i = 1; i <= t; i++) {
149
149
  l[0] = i;
150
150
  let s = 0;
151
- const b = new Array(t + 1).fill(1 / 0), m = new Array(t + 1).fill(!1);
151
+ const u = new Array(t + 1).fill(1 / 0), m = new Array(t + 1).fill(!1);
152
152
  do {
153
153
  m[s] = !0;
154
154
  const p = l[s];
@@ -156,10 +156,10 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
156
156
  for (let h = 1; h <= t; h++) {
157
157
  if (m[h]) continue;
158
158
  const j = e[p - 1][h - 1] - n[p] - o[h];
159
- j < b[h] && (b[h] = j, d[h] = s), b[h] < g && (g = b[h], x = h);
159
+ j < u[h] && (u[h] = j, d[h] = s), u[h] < g && (g = u[h], x = h);
160
160
  }
161
161
  for (let h = 0; h <= t; h++)
162
- m[h] ? (n[l[h]] += g, o[h] -= g) : b[h] -= g;
162
+ m[h] ? (n[l[h]] += g, o[h] -= g) : u[h] -= g;
163
163
  s = x;
164
164
  } while (l[s] !== 0);
165
165
  do {
@@ -171,28 +171,28 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
171
171
  for (let i = 1; i <= t; i++)
172
172
  l[i] > 0 && (r[l[i] - 1] = i - 1);
173
173
  return r;
174
- }, Oe = (e, t, n) => Object.fromEntries(e.columns.map((o) => [o.id, F(t, n, o.id)])), Te = (e, t, n, o) => {
174
+ }, Oe = (e, t, n) => Object.fromEntries(e.columns.map((o) => [o.id, K(t, n, o.id)])), Te = (e, t, n, o) => {
175
175
  let l = 0;
176
176
  for (const d of e) {
177
177
  const r = t.cells[d.id];
178
- K(r) && J(r.accepted, n[d.id] ?? "", d.kind, o) && (l += 1);
178
+ F(r) && J(r.accepted, n[d.id] ?? "", d.kind, o) && (l += 1);
179
179
  }
180
180
  return l;
181
181
  }, Ae = (e, t) => {
182
- const { rows: n, columns: o, rowOrder: l } = e, d = n.map((s, b) => b);
182
+ const { rows: n, columns: o, rowOrder: l } = e, d = n.map((s, u) => u);
183
183
  if (l !== "any" || n.length === 0) return d;
184
184
  const r = n.map((s) => Oe(e, t, s.id)), i = n.map(
185
- (s, b) => n.map((m, p) => -Te(o, n[p], r[b], e))
185
+ (s, u) => n.map((m, p) => -Te(o, n[p], r[u], e))
186
186
  );
187
- return He(i);
187
+ return Ne(i);
188
188
  }, P = (e, t) => {
189
189
  const n = {}, o = Ae(e, t);
190
190
  return e.rows.forEach((l, d) => {
191
191
  const r = e.rows[o[d]];
192
192
  for (const i of e.columns) {
193
193
  const s = r.cells[i.id];
194
- if (!K(s)) continue;
195
- const b = F(t, l.id, i.id), m = J(s.accepted, b, i.kind, e);
194
+ if (!F(s)) continue;
195
+ const u = K(t, l.id, i.id), m = J(s.accepted, u, i.kind, e);
196
196
  n[z(l.id, i.id)] = m ? "correct" : "wrong";
197
197
  }
198
198
  }), n;
@@ -242,7 +242,7 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
242
242
  correct: "richtig",
243
243
  wrong: "falsch"
244
244
  }
245
- }, ze = ".bitflow-table-scroll{overflow-x:auto}.bitflow-table{border-collapse:collapse;width:auto;min-width:100%}.bitflow-table caption{text-align:start;padding-bottom:var(--bitflow-space-xxsmall)}.bitflow-table th,.bitflow-table td{padding:var(--bitflow-space-xxsmall);border:1px solid var(--bitflow-color-border);text-align:start;vertical-align:middle}.bitflow-table thead th,.bitflow-table tbody th{background:var(--bitflow-color-neutral-100);font-weight:var(--bitflow-font-weight-medium);white-space:nowrap}.bitflow-table-cell-given{font-variant-numeric:tabular-nums}.bitflow-table-input{min-height:2.25rem;min-width:var(--bitflow-table-cell-width, 7rem);font-size:var(--bitflow-font-size-standard);font-variant-numeric:tabular-nums}.bitflow-table-cell-correct .bitflow-input{border-color:var(--bitflow-color-correct);background:var(--bitflow-color-correct-surface)}.bitflow-table-cell-wrong .bitflow-input{border-color:var(--bitflow-color-wrong);background:var(--bitflow-color-wrong-surface)}.bitflow-table-editor-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--bitflow-space-xsmall)}.bitflow-table-editor-row>.bitflow-input,.bitflow-table-editor-row>.bitflow-select{flex:1 1 var(--bitflow-table-editor-min, 7rem);min-width:0}.bitflow-table-row-name{flex:1 1 auto}.bitflow-table-actions{flex:none;flex-wrap:nowrap}.bitflow-table-cell-editor{display:flex;flex-direction:column;gap:var(--bitflow-space-xxsmall)}.bitflow-table-select{min-height:2.25rem}.bitflow-table-tolerance{width:var(--bitflow-table-tolerance-width, 8rem)}", Q = {
245
+ }, ze = ".bitflow-table-scroll{overflow-x:auto}.bitflow-table{border-collapse:collapse;width:auto;min-width:100%}.bitflow-table caption{text-align:start;padding-bottom:var(--bitflow-space-xxsmall)}.bitflow-table th,.bitflow-table td{padding:var(--bitflow-space-xxsmall);border:1px solid var(--bitflow-color-border);text-align:start;vertical-align:middle}.bitflow-table thead th,.bitflow-table tbody th{background:var(--bitflow-color-neutral-100);font-weight:var(--bitflow-font-weight-medium);white-space:nowrap}.bitflow-table thead th{vertical-align:top;padding:var(--bitflow-space-xsmall)}.bitflow-table tbody th,.bitflow-table-cell-given{padding-inline:var(--bitflow-space-xsmall)}.bitflow-table-cell-given{font-variant-numeric:tabular-nums}.bitflow-table-input{min-height:2.25rem;min-width:var(--bitflow-table-cell-width, 7rem);font-size:var(--bitflow-font-size-standard);font-variant-numeric:tabular-nums}.bitflow-table-cell-correct .bitflow-input{border-color:var(--bitflow-color-correct);background:var(--bitflow-color-correct-surface)}.bitflow-table-cell-wrong .bitflow-input{border-color:var(--bitflow-color-wrong);background:var(--bitflow-color-wrong-surface)}.bitflow-table-editor-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--bitflow-space-xsmall)}.bitflow-table-editor-row>.bitflow-input,.bitflow-table-editor-row>.bitflow-select{flex:1 1 var(--bitflow-table-editor-min, 7rem);min-width:0}.bitflow-table-row-name{flex:1 1 auto}.bitflow-table-actions{flex:none;flex-wrap:nowrap}.bitflow-table-cell-editor{display:flex;flex-direction:column;gap:var(--bitflow-space-xxsmall)}.bitflow-table-select{min-height:2.25rem}.bitflow-table-tolerance{width:var(--bitflow-table-tolerance-width, 8rem)}", Q = {
246
246
  en: {
247
247
  instructionLabel: "Instruction",
248
248
  instructionHint: "Shown above the table. Markdown is allowed — put the query or the formula to work from in a code block.",
@@ -379,17 +379,17 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
379
379
  })), r = l.map((i, s) => ({
380
380
  id: `row-${s + 1}`,
381
381
  cells: Object.fromEntries(
382
- d.map((b, m) => {
382
+ d.map((u, m) => {
383
383
  const p = (i[m] ?? "").trim();
384
384
  return [
385
- b.id,
385
+ u.id,
386
386
  t === "given" ? { given: p } : { accepted: p === "" ? [] : [p] }
387
387
  ];
388
388
  })
389
389
  )
390
390
  }));
391
391
  return { columns: d, rows: r };
392
- }, N = (e, t, n) => e.header || n("unnamedColumn", { number: t + 1 }), H = (e, t, n) => e.header || n("unnamedRow", { number: t + 1 }), X = (e, t) => e.cells[t] ?? { accepted: [] }, Be = (e) => "text", Ke = ({
392
+ }, H = (e, t, n) => e.header || n("unnamedColumn", { number: t + 1 }), N = (e, t, n) => e.header || n("unnamedRow", { number: t + 1 }), X = (e, t) => e.cells[t] ?? { accepted: [] }, Be = (e) => "text", Fe = ({
393
393
  data: e,
394
394
  answer: t,
395
395
  states: n,
@@ -398,20 +398,20 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
398
398
  caption: d,
399
399
  onChange: r
400
400
  }) => {
401
- const i = (s, b) => k(y, s, l, b);
401
+ const i = (s, u) => k(y, s, l, u);
402
402
  return /* @__PURE__ */ a.jsx("div", { className: "bitflow-table-scroll", children: /* @__PURE__ */ a.jsxs("table", { className: "bitflow-table", children: [
403
403
  /* @__PURE__ */ a.jsx("caption", { className: "bitflow-label", children: d ?? (e.caption.trim() !== "" ? e.caption : i("tableLabel")) }),
404
404
  /* @__PURE__ */ a.jsx("thead", { children: /* @__PURE__ */ a.jsxs("tr", { children: [
405
405
  e.rowHeaders && /* @__PURE__ */ a.jsx("th", { scope: "col" }),
406
- e.columns.map((s, b) => /* @__PURE__ */ a.jsx("th", { scope: "col", children: N(s, b, i) }, s.id))
406
+ e.columns.map((s, u) => /* @__PURE__ */ a.jsx("th", { scope: "col", children: H(s, u, i) }, s.id))
407
407
  ] }) }),
408
- /* @__PURE__ */ a.jsx("tbody", { children: e.rows.map((s, b) => /* @__PURE__ */ a.jsxs("tr", { children: [
409
- e.rowHeaders && /* @__PURE__ */ a.jsx("th", { scope: "row", children: H(s, b, i) }),
408
+ /* @__PURE__ */ a.jsx("tbody", { children: e.rows.map((s, u) => /* @__PURE__ */ a.jsxs("tr", { children: [
409
+ e.rowHeaders && /* @__PURE__ */ a.jsx("th", { scope: "row", children: N(s, u, i) }),
410
410
  e.columns.map((m, p) => {
411
- const g = X(s, m.id), x = H(s, b, i), h = N(m, p, i);
411
+ const g = X(s, m.id), x = N(s, u, i), h = H(m, p, i);
412
412
  if (S(g))
413
413
  return /* @__PURE__ */ a.jsx("td", { className: "bitflow-table-cell bitflow-table-cell-given", children: g.given }, m.id);
414
- const j = n?.[z(s.id, m.id)], Z = F(t, s.id, m.id), c = i("cellLabel", { column: h, row: x });
414
+ const j = n?.[z(s.id, m.id)], Z = K(t, s.id, m.id), c = i("cellLabel", { column: h, row: x });
415
415
  return /* @__PURE__ */ a.jsxs(
416
416
  "td",
417
417
  {
@@ -429,7 +429,7 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
429
429
  autoCapitalize: "off",
430
430
  autoCorrect: "off",
431
431
  spellCheck: !1,
432
- onChange: (u) => r(je(t, s.id, m.id, u.target.value))
432
+ onChange: (b) => r(je(t, s.id, m.id, b.target.value))
433
433
  }
434
434
  ),
435
435
  j && /* @__PURE__ */ a.jsx("span", { className: "bitflow-visually-hidden", children: i(j) })
@@ -440,24 +440,24 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
440
440
  })
441
441
  ] }, s.id)) })
442
442
  ] }) });
443
- }, Fe = ({
443
+ }, Ke = ({
444
444
  data: e,
445
445
  locale: t,
446
446
  onChange: n
447
447
  }) => {
448
448
  const o = (r, i) => k(y, r, t, i), l = (r, i) => k(Q, r, t, i), d = (r, i, s) => n(
449
- e.rows.map((b) => b.id === r ? { ...b, cells: { ...b.cells, [i]: s } } : b)
449
+ e.rows.map((u) => u.id === r ? { ...u, cells: { ...u.cells, [i]: s } } : u)
450
450
  );
451
451
  return /* @__PURE__ */ a.jsx("div", { className: "bitflow-table-scroll", children: /* @__PURE__ */ a.jsxs("table", { className: "bitflow-table", children: [
452
452
  /* @__PURE__ */ a.jsx("caption", { className: "bitflow-label", children: l("answerKeyLabel") }),
453
453
  /* @__PURE__ */ a.jsx("thead", { children: /* @__PURE__ */ a.jsxs("tr", { children: [
454
454
  e.rowHeaders && /* @__PURE__ */ a.jsx("th", { scope: "col" }),
455
- e.columns.map((r, i) => /* @__PURE__ */ a.jsx("th", { scope: "col", children: N(r, i, o) }, r.id))
455
+ e.columns.map((r, i) => /* @__PURE__ */ a.jsx("th", { scope: "col", children: H(r, i, o) }, r.id))
456
456
  ] }) }),
457
457
  /* @__PURE__ */ a.jsx("tbody", { children: e.rows.map((r, i) => /* @__PURE__ */ a.jsxs("tr", { children: [
458
- e.rowHeaders && /* @__PURE__ */ a.jsx("th", { scope: "row", children: H(r, i, o) }),
459
- e.columns.map((s, b) => {
460
- const m = X(r, s.id), p = H(r, i, o), g = N(s, b, o), x = S(m);
458
+ e.rowHeaders && /* @__PURE__ */ a.jsx("th", { scope: "row", children: N(r, i, o) }),
459
+ e.columns.map((s, u) => {
460
+ const m = X(r, s.id), p = N(r, i, o), g = H(s, u, o), x = S(m);
461
461
  return /* @__PURE__ */ a.jsx("td", { className: "bitflow-table-cell", children: /* @__PURE__ */ a.jsxs("div", { className: "bitflow-table-cell-editor", children: [
462
462
  /* @__PURE__ */ a.jsxs(
463
463
  "select",
@@ -540,7 +540,7 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
540
540
  /* @__PURE__ */ a.jsx(de, { markdown: e.instruction }),
541
541
  /* @__PURE__ */ a.jsx("p", { className: "bitflow-hint", children: r(o ? "howToReadonly" : e.rowOrder === "any" ? "howToAnyOrder" : "howTo") }),
542
542
  /* @__PURE__ */ a.jsx(
543
- Ke,
543
+ Fe,
544
544
  {
545
545
  data: e,
546
546
  answer: t,
@@ -562,34 +562,34 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
562
562
  onChange: n,
563
563
  errors: o
564
564
  }) => {
565
- const l = (c, u) => k(Q, c, t, u), d = (c, u) => k(y, c, t, u), r = (c) => n({ ...e, ...c }), [i, s] = R.useState(""), [b, m] = R.useState(void 0), p = (c) => {
566
- const u = Ee(i, c);
567
- if (!u) {
565
+ const l = (c, b) => k(Q, c, t, b), d = (c, b) => k(y, c, t, b), r = (c) => n({ ...e, ...c }), [i, s] = R.useState(""), [u, m] = R.useState(void 0), p = (c) => {
566
+ const b = Ee(i, c);
567
+ if (!b) {
568
568
  m(l("pasteEmpty"));
569
569
  return;
570
570
  }
571
- m(void 0), r(u);
572
- }, g = (c, u) => r({
571
+ m(void 0), r(b);
572
+ }, g = (c, b) => r({
573
573
  columns: e.columns.map(
574
- (w) => w.id === c ? { ...w, ...u } : w
574
+ (w) => w.id === c ? { ...w, ...b } : w
575
575
  )
576
576
  }), x = () => {
577
- const c = q("column", e.columns.map((u) => u.id));
577
+ const c = q("column", e.columns.map((b) => b.id));
578
578
  r({
579
579
  columns: [...e.columns, { id: c, header: "", kind: "text" }],
580
- rows: e.rows.map((u) => ({
581
- ...u,
582
- cells: { ...u.cells, [c]: Y() }
580
+ rows: e.rows.map((b) => ({
581
+ ...b,
582
+ cells: { ...b.cells, [c]: _() }
583
583
  }))
584
584
  });
585
585
  }, h = (c) => r({
586
- columns: e.columns.filter((u) => u.id !== c),
587
- rows: e.rows.map((u) => {
588
- const w = { ...u.cells };
589
- return delete w[c], { ...u, cells: w };
586
+ columns: e.columns.filter((b) => b.id !== c),
587
+ rows: e.rows.map((b) => {
588
+ const w = { ...b.cells };
589
+ return delete w[c], { ...b, cells: w };
590
590
  })
591
- }), j = (c, u) => r({
592
- rows: e.rows.map((w) => w.id === c ? { ...w, ...u } : w)
591
+ }), j = (c, b) => r({
592
+ rows: e.rows.map((w) => w.id === c ? { ...w, ...b } : w)
593
593
  }), Z = {
594
594
  text: l("kindText"),
595
595
  number: l("kindNumber"),
@@ -623,7 +623,7 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
623
623
  hint: l("pasteHint"),
624
624
  rows: 5,
625
625
  value: i,
626
- error: b,
626
+ error: u,
627
627
  onChange: s
628
628
  }
629
629
  ),
@@ -653,8 +653,8 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
653
653
  /* @__PURE__ */ a.jsx("span", { className: "bitflow-hint", children: l("columnsHint") }),
654
654
  T(o, "columns") && /* @__PURE__ */ a.jsx("span", { className: "bitflow-field-error", role: "alert", children: T(o, "columns") }),
655
655
  e.columns.length === 0 && /* @__PURE__ */ a.jsx("p", { className: "bitflow-text-muted", children: l("noColumns") }),
656
- e.columns.map((c, u) => {
657
- const w = N(c, u, d);
656
+ e.columns.map((c, b) => {
657
+ const w = H(c, b, d);
658
658
  return /* @__PURE__ */ a.jsxs("div", { className: "bitflow-table-editor-row", children: [
659
659
  /* @__PURE__ */ a.jsx(
660
660
  "input",
@@ -663,7 +663,7 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
663
663
  className: "bitflow-input",
664
664
  value: c.header,
665
665
  placeholder: l("columnHeaderPlaceholder"),
666
- "aria-label": l("columnHeaderOf", { position: u + 1 }),
666
+ "aria-label": l("columnHeaderOf", { position: b + 1 }),
667
667
  onChange: (f) => g(c.id, { header: f.target.value })
668
668
  }
669
669
  ),
@@ -672,9 +672,9 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
672
672
  {
673
673
  className: "bitflow-select",
674
674
  value: c.kind,
675
- "aria-label": l("columnKindOf", { position: u + 1 }),
675
+ "aria-label": l("columnKindOf", { position: b + 1 }),
676
676
  onChange: (f) => g(c.id, { kind: f.target.value }),
677
- children: I.map((f) => /* @__PURE__ */ a.jsx("option", { value: f, children: Z[f] }, f))
677
+ children: Y.map((f) => /* @__PURE__ */ a.jsx("option", { value: f, children: Z[f] }, f))
678
678
  }
679
679
  ),
680
680
  /* @__PURE__ */ a.jsxs("div", { className: "bitflow-row bitflow-table-actions", children: [
@@ -684,9 +684,9 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
684
684
  type: "button",
685
685
  className: "bitflow-button bitflow-button-quiet",
686
686
  "aria-label": l("moveUpOf", { name: w }),
687
- disabled: u === 0,
687
+ disabled: b === 0,
688
688
  onClick: () => {
689
- const f = L(e.columns, u, -1);
689
+ const f = L(e.columns, b, -1);
690
690
  f && r({ columns: f });
691
691
  },
692
692
  children: "↑"
@@ -698,9 +698,9 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
698
698
  type: "button",
699
699
  className: "bitflow-button bitflow-button-quiet",
700
700
  "aria-label": l("moveDownOf", { name: w }),
701
- disabled: u === e.columns.length - 1,
701
+ disabled: b === e.columns.length - 1,
702
702
  onClick: () => {
703
- const f = L(e.columns, u, 1);
703
+ const f = L(e.columns, b, 1);
704
704
  f && r({ columns: f });
705
705
  },
706
706
  children: "↓"
@@ -734,8 +734,8 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
734
734
  /* @__PURE__ */ a.jsx("span", { className: "bitflow-hint", children: l("rowsHint") }),
735
735
  T(o, "rows") && /* @__PURE__ */ a.jsx("span", { className: "bitflow-field-error", role: "alert", children: T(o, "rows") }),
736
736
  e.rows.length === 0 && /* @__PURE__ */ a.jsx("p", { className: "bitflow-text-muted", children: l("noRows") }),
737
- e.rows.map((c, u) => {
738
- const w = H(c, u, d);
737
+ e.rows.map((c, b) => {
738
+ const w = N(c, b, d);
739
739
  return /* @__PURE__ */ a.jsxs("div", { className: "bitflow-table-editor-row", children: [
740
740
  e.rowHeaders ? /* @__PURE__ */ a.jsx(
741
741
  "input",
@@ -744,7 +744,7 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
744
744
  className: "bitflow-input",
745
745
  value: c.header ?? "",
746
746
  placeholder: l("rowHeaderPlaceholder"),
747
- "aria-label": l("rowHeaderOf", { position: u + 1 }),
747
+ "aria-label": l("rowHeaderOf", { position: b + 1 }),
748
748
  onChange: (f) => j(c.id, { header: f.target.value })
749
749
  }
750
750
  ) : /* @__PURE__ */ a.jsx("span", { className: "bitflow-table-row-name", children: w }),
@@ -755,9 +755,9 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
755
755
  type: "button",
756
756
  className: "bitflow-button bitflow-button-quiet",
757
757
  "aria-label": l("moveUpOf", { name: w }),
758
- disabled: u === 0,
758
+ disabled: b === 0,
759
759
  onClick: () => {
760
- const f = L(e.rows, u, -1);
760
+ const f = L(e.rows, b, -1);
761
761
  f && r({ rows: f });
762
762
  },
763
763
  children: "↑"
@@ -769,9 +769,9 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
769
769
  type: "button",
770
770
  className: "bitflow-button bitflow-button-quiet",
771
771
  "aria-label": l("moveDownOf", { name: w }),
772
- disabled: u === e.rows.length - 1,
772
+ disabled: b === e.rows.length - 1,
773
773
  onClick: () => {
774
- const f = L(e.rows, u, 1);
774
+ const f = L(e.rows, b, 1);
775
775
  f && r({ rows: f });
776
776
  },
777
777
  children: "↓"
@@ -808,7 +808,7 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
808
808
  e.columns.length > 0 && e.rows.length > 0 && /* @__PURE__ */ a.jsxs("div", { className: "bitflow-field", children: [
809
809
  /* @__PURE__ */ a.jsx("span", { className: "bitflow-hint", children: l("answerKeyHint") }),
810
810
  De(o).map((c) => /* @__PURE__ */ a.jsx("span", { className: "bitflow-field-error", role: "alert", children: c }, c)),
811
- /* @__PURE__ */ a.jsx(Fe, { data: e, locale: t, onChange: (c) => r({ rows: c }) })
811
+ /* @__PURE__ */ a.jsx(Ke, { data: e, locale: t, onChange: (c) => r({ rows: c }) })
812
812
  ] }),
813
813
  /* @__PURE__ */ a.jsxs(G, { summary: l("advanced"), children: [
814
814
  /* @__PURE__ */ a.jsx(
@@ -860,8 +860,8 @@ const I = ["text", "number", "formula"], be = U(I), me = C({
860
860
  min: 0,
861
861
  step: "any",
862
862
  value: e.numberTolerance,
863
- onChange: (u) => {
864
- const w = Number(u.target.value);
863
+ onChange: (b) => {
864
+ const w = Number(b.target.value);
865
865
  Number.isFinite(w) && w >= 0 && r({ numberTolerance: w });
866
866
  }
867
867
  }
@@ -912,36 +912,36 @@ ne({
912
912
  ignoreWhitespace: !0,
913
913
  numberTolerance: 0,
914
914
  partialCredit: !0,
915
- evaluation: _()
915
+ evaluation: I()
916
916
  })
917
917
  });
918
- ue(ee);
918
+ be(ee);
919
919
  oe("bitflow-styles-task-table", ze);
920
920
  export {
921
921
  Me as AnswerSchema,
922
922
  we as BlankCellSchema,
923
- I as COLUMN_KINDS,
923
+ Y as COLUMN_KINDS,
924
924
  fe as CellSchema,
925
- be as ColumnKindSchema,
925
+ ue as ColumnKindSchema,
926
926
  me as ColumnSchema,
927
927
  xe as DataSchema,
928
- Ke as FillableTable,
928
+ Fe as FillableTable,
929
929
  Ge as Form,
930
930
  he as GivenCellSchema,
931
931
  ge as ROW_ORDERS,
932
932
  ve as RowOrderSchema,
933
933
  pe as RowSchema,
934
934
  ee as TYPE,
935
- Fe as TableEditor,
935
+ Ke as TableEditor,
936
936
  We as Task,
937
937
  Se as allCorrect,
938
- He as assignMinCost,
938
+ Ne as assignMinCost,
939
939
  J as cellCorrect,
940
940
  z as cellKey,
941
941
  P as cellStates,
942
942
  Re as evaluate,
943
943
  Q as formMessages,
944
- K as isBlankCell,
944
+ F as isBlankCell,
945
945
  S as isGivenCell,
946
946
  Ae as matchRows,
947
947
  y as messages,