hyperbook 0.113.1 → 0.113.3

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 (55) hide show
  1. package/dist/asset-manifest.json +9 -9
  2. package/dist/assets/directive-bitflow/{EditorElement-zyz99U6n.js → EditorElement-BNwEKIvk.js} +258 -258
  3. package/dist/assets/directive-bitflow/{ReportElements-BnX14NtV.js → ReportElements-CAvHx5xm.js} +2 -2
  4. package/dist/assets/directive-bitflow/{bitLoaders-DIGwTcpd.js → bitLoaders-7qanePQL.js} +1138 -1073
  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-BseSaQlX.js → index-4JaKZ7WT.js} +2 -2
  9. package/dist/assets/directive-bitflow/{index-e_8twLaN.js → index-6CQr_atd.js} +120 -120
  10. package/dist/assets/directive-bitflow/{index-COndsSPW.js → index-B9iG-a48.js} +9 -9
  11. package/dist/assets/directive-bitflow/{index-C5czXkRd.js → index-BFYoOtcY.js} +36 -36
  12. package/dist/assets/directive-bitflow/{index-YPMWh-1B.js → index-BI6aFdIS.js} +21 -21
  13. package/dist/assets/directive-bitflow/{index-D7m-hJZ9.js → index-Bf078mfo.js} +69 -69
  14. package/dist/assets/directive-bitflow/{index-Bf_FQRbK.js → index-BinE5Wvd.js} +19 -19
  15. package/dist/assets/directive-bitflow/{index-CFcRAa3F.js → index-BoX5-jkC.js} +31 -31
  16. package/dist/assets/directive-bitflow/{index-NyNuXp4C.js → index-BqRsXShM.js} +34 -34
  17. package/dist/assets/directive-bitflow/{index-Fr7yl4Vn.js → index-BxihQ8Oo.js} +21 -21
  18. package/dist/assets/directive-bitflow/{index-B3jMTk1o.js → index-C5YguHZU.js} +101 -101
  19. package/dist/assets/directive-bitflow/{index-XxGfBwJe.js → index-C8zwSmE6.js} +27 -27
  20. package/dist/assets/directive-bitflow/{index-BLcJNyog.js → index-C9JSBTNc.js} +91 -91
  21. package/dist/assets/directive-bitflow/{index-CjscG0z6.js → index-CCMI6UK4.js} +75 -75
  22. package/dist/assets/directive-bitflow/{index-CK1UMcfT.js → index-CGDt8H6s.js} +24 -24
  23. package/dist/assets/directive-bitflow/{index-xapm2BQE.js → index-Ca1v0pjV.js} +102 -92
  24. package/dist/assets/directive-bitflow/{index-IQHOi2fr.js → index-CaYn3Gmh.js} +31 -31
  25. package/dist/assets/directive-bitflow/{index-BpG316Ls.js → index-CbQue0If.js} +67 -67
  26. package/dist/assets/directive-bitflow/{index-CzdZQibq.js → index-CjH3h0OO.js} +79 -79
  27. package/dist/assets/directive-bitflow/{index-B7Z6Q-PQ.js → index-CkO3QfOS.js} +8 -8
  28. package/dist/assets/directive-bitflow/{index-BIJ7VfD2.js → index-Cz4i5rfe.js} +39 -39
  29. package/dist/assets/directive-bitflow/{index-8jTO-NJA.js → index-D0NtgeiX.js} +85 -85
  30. package/dist/assets/directive-bitflow/{index-DtsDy2By.js → index-D1C_1SPY.js} +14 -14
  31. package/dist/assets/directive-bitflow/{index-BdBBCZSy.js → index-D45u7EVR.js} +227 -194
  32. package/dist/assets/directive-bitflow/{index-cnRM_JDB.js → index-D9Ox4YpM.js} +33 -33
  33. package/dist/assets/directive-bitflow/{index-Bqf-kixT.js → index-DJ1w2Xcm.js} +46 -46
  34. package/dist/assets/directive-bitflow/{index-BQ5h4nDN.js → index-DUqW2fmV.js} +94 -94
  35. package/dist/assets/directive-bitflow/{index-ChgzyMHe.js → index-Deedj9EF.js} +25 -25
  36. package/dist/assets/directive-bitflow/{index-CZyaFdD2.js → index-Dg6nnY_v.js} +68 -68
  37. package/dist/assets/directive-bitflow/{index-kRpwcprB.js → index-DgxEzomz.js} +2 -2
  38. package/dist/assets/directive-bitflow/{index-D5yZNeIg.js → index-Dl0-ZAT5.js} +52 -52
  39. package/dist/assets/directive-bitflow/{index-DnVYIuen.js → index-Do6dmZyj.js} +42 -42
  40. package/dist/assets/directive-bitflow/{index-DjWNEPDL.js → index-DqnGC-DU.js} +31 -31
  41. package/dist/assets/directive-bitflow/{index-ivI25bnR.js → index-DwXXeSwk.js} +73 -73
  42. package/dist/assets/directive-bitflow/{index-Bf_NXJjq.js → index-b6qwcTj9.js} +15 -15
  43. package/dist/assets/directive-bitflow/{index-Fq7njn6_.js → index-d105UFQI.js} +58 -58
  44. package/dist/assets/directive-bitflow/{index-CW9iev-_.js → index-jijMWQB6.js} +8 -8
  45. package/dist/assets/directive-bitflow/{index-C_ZTSeqv.js → index-kxO5_U9Y.js} +24 -24
  46. package/dist/assets/directive-bitflow/{index-DoKlIgCD.js → index-p5AOgOal.js} +35 -35
  47. package/dist/assets/directive-bitflow/{index-CvCZVgKv.js → index-q2APknM6.js} +46 -46
  48. package/dist/assets/directive-bitflow/{index-eN2S_MLj.js → index-zVkWgm5I.js} +70 -70
  49. package/dist/assets/directive-bitflow/index.js +6 -6
  50. package/dist/assets/directive-bitflow/katex-DSLAjWZH-CHGN3Pr6.js +11314 -0
  51. package/dist/assets/directive-bitflow/katex-Dv-tcU2S-Dv-tcU2S.js +4 -0
  52. package/dist/assets/directive-bitflow/report.js +1 -1
  53. package/dist/assets/directive-bitflow/{shareableReport-ArQU1XjG.js → shareableReport-mdyEMdsJ.js} +6 -6
  54. package/dist/index.js +1 -1
  55. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
- import { L as H, a4 as G, ac as ie, ad as _, a9 as de, a2 as z, P as W, a5 as ce, a as L, j as w, b as D, aa as ue, s as we } from "./dom-uYx_3K1r.js";
2
- import { v as X, A as F, M as q, e as he, E as me, L as fe, s as be, t as ge, R as pe } from "./bitLoaders-DIGwTcpd.js";
3
- const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bitflow-space-xsmall)}.bitflow-wordsearch-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--bitflow-space-medium);align-items:start}.bitflow-wordsearch-grid{display:flex;flex-direction:column;width:min(100%,calc(var(--bitflow-wordsearch-columns, 10) * 2rem));border:var(--bitflow-border-width) solid var(--bitflow-color-border);border-radius:var(--bitflow-radius-standard);background:var(--bitflow-color-surface);-webkit-user-select:none;user-select:none;touch-action:none;cursor:crosshair}.bitflow-wordsearch-grid:focus-visible{outline:none;box-shadow:var(--bitflow-shadow-outline)}.bitflow-wordsearch-row{display:flex}.bitflow-wordsearch-cell{display:flex;align-items:center;justify-content:center;flex:1 1 0;min-width:0;aspect-ratio:1;container-type:inline-size;color:var(--bitflow-color-text)}.bitflow-wordsearch-letter{font-family:var(--bitflow-font-family-mono);font-size:55cqw;line-height:1;text-transform:uppercase}.bitflow-wordsearch-cell-found{background:var(--bitflow-color-correct-surface);color:var(--bitflow-color-correct);font-weight:var(--bitflow-font-weight-bold);border-radius:var(--bitflow-radius-full)}.bitflow-wordsearch-cell-drawing{background:var(--bitflow-color-primary-light);border-radius:var(--bitflow-radius-full)}.bitflow-wordsearch-cell-cursor{box-shadow:inset 0 0 0 2px var(--bitflow-color-primary);border-radius:var(--bitflow-radius-full)}.bitflow-wordsearch-words{display:flex;flex-direction:column;gap:var(--bitflow-space-xxsmall)}.bitflow-wordsearch-list{display:flex;flex-wrap:wrap;gap:var(--bitflow-space-xxsmall) var(--bitflow-space-small);padding:0;margin:0;list-style:none}.bitflow-wordsearch-word{font-family:var(--bitflow-font-family-mono);text-transform:uppercase;letter-spacing:.05em}.bitflow-wordsearch-word-found{color:var(--bitflow-color-text-muted);text-decoration:line-through}.bitflow-wordsearch-missed{margin-inline-start:var(--bitflow-space-xxsmall);font-family:var(--bitflow-font-family);font-size:var(--bitflow-font-size-small);letter-spacing:normal;text-transform:none;color:var(--bitflow-color-wrong)}.bitflow-wordsearch-preview{margin-top:var(--bitflow-space-xxsmall);cursor:default}", y = {
1
+ import { P as H, a4 as B, ac as ie, ad as _, a9 as de, a2 as A, Y as W, a5 as ce, a as L, j as w, b as D, aa as ue, s as we } from "./dom-B6NPWBb1.js";
2
+ import { e as X, g as T, F as q, P as he, B as me, U as fe, y as be, r as ge, H as pe } from "./bitLoaders-7qanePQL.js";
3
+ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bitflow-space-small)}.bitflow-wordsearch-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--bitflow-space-medium);align-items:start}.bitflow-wordsearch-grid{display:flex;flex-direction:column;width:min(100%,calc(var(--bitflow-wordsearch-columns, 10) * 2rem));border:var(--bitflow-border-width) solid var(--bitflow-color-border);border-radius:var(--bitflow-radius-standard);background:var(--bitflow-color-surface);-webkit-user-select:none;user-select:none;touch-action:none;cursor:crosshair}.bitflow-wordsearch-grid:focus-visible{outline:none;box-shadow:var(--bitflow-shadow-outline)}.bitflow-wordsearch-row{display:flex}.bitflow-wordsearch-cell{display:flex;align-items:center;justify-content:center;flex:1 1 0;min-width:0;aspect-ratio:1;container-type:inline-size;color:var(--bitflow-color-text)}.bitflow-wordsearch-letter{font-family:var(--bitflow-font-family-mono);font-size:55cqw;line-height:1;text-transform:uppercase}.bitflow-wordsearch-cell-found{background:var(--bitflow-color-correct-surface);color:var(--bitflow-color-correct);font-weight:var(--bitflow-font-weight-bold);border-radius:var(--bitflow-radius-full)}.bitflow-wordsearch-cell-drawing{background:var(--bitflow-color-primary-light);border-radius:var(--bitflow-radius-full)}.bitflow-wordsearch-cell-cursor{box-shadow:inset 0 0 0 2px var(--bitflow-color-primary);border-radius:var(--bitflow-radius-full)}.bitflow-wordsearch-words{display:flex;flex-direction:column;gap:var(--bitflow-space-xxsmall)}.bitflow-wordsearch-list{display:flex;flex-wrap:wrap;gap:var(--bitflow-space-xxsmall) var(--bitflow-space-small);padding:0;margin:0;list-style:none}.bitflow-wordsearch-word{font-family:var(--bitflow-font-family-mono);text-transform:uppercase;letter-spacing:.05em}.bitflow-wordsearch-word-found{color:var(--bitflow-color-text-muted);text-decoration:line-through}.bitflow-wordsearch-missed{margin-inline-start:var(--bitflow-space-xxsmall);font-family:var(--bitflow-font-family);font-size:var(--bitflow-font-size-small);letter-spacing:normal;text-transform:none;color:var(--bitflow-color-wrong)}.bitflow-wordsearch-preview{margin-top:var(--bitflow-space-xxsmall);cursor:default}", y = {
4
4
  east: { row: 0, column: 1 },
5
5
  west: { row: 0, column: -1 },
6
6
  south: { row: 1, column: 0 },
@@ -13,21 +13,21 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
13
13
  Object.keys(y)
14
14
  ), ve = H({
15
15
  /** Stable across edits, so an answer keeps pointing at the same word. */
16
- id: z().min(1),
16
+ id: A().min(1),
17
17
  /** The word to find. Compared in uppercase, so case never decides a mark. */
18
- text: z().default(""),
18
+ text: A().default(""),
19
19
  /** Where its first letter sits, zero-based from the top-left. */
20
20
  row: W().int().min(0).default(0),
21
21
  column: W().int().min(0).default(0),
22
22
  direction: J.default("east")
23
- }), k = (e) => [...e.trim().toUpperCase()].filter((t) => t !== " "), T = (e) => {
23
+ }), k = (e) => [...e.trim().toUpperCase()].filter((t) => t !== " "), F = (e) => {
24
24
  const t = y[e.direction];
25
25
  return k(e.text).map((r, o) => ({
26
26
  row: e.row + t.row * o,
27
27
  column: e.column + t.column * o
28
28
  }));
29
29
  }, j = (e, t) => `${e},${t}`, ye = H({
30
- instruction: z().default(""),
30
+ instruction: A().default(""),
31
31
  rows: W().int().min(2).max(30).default(10),
32
32
  columns: W().int().min(2).max(30).default(10),
33
33
  /**
@@ -35,14 +35,14 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
35
35
  * the filler letters are part of the puzzle, and a puzzle that is
36
36
  * regenerated is a different puzzle.
37
37
  */
38
- letters: z().default(""),
39
- words: G(ve).default([]),
38
+ letters: A().default(""),
39
+ words: B(ve).default([]),
40
40
  /**
41
41
  * Which runs the author allows. Kept as a setting rather than read back
42
42
  * off the words, so unticking a direction nothing happens to use still
43
43
  * means something the next time the grid is built.
44
44
  */
45
- directions: G(J).default(() => Object.keys(y)),
45
+ directions: B(J).default(() => Object.keys(y)),
46
46
  /**
47
47
  * Whether the words are listed. Off, the learner is told only how many
48
48
  * there are — much harder, and the way a word search is set as a spelling
@@ -90,7 +90,7 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
90
90
  }
91
91
  const u = (c, l) => s[c * o + l];
92
92
  t.forEach((c, l) => {
93
- const m = T(c);
93
+ const m = F(c);
94
94
  if (m.some(
95
95
  (a) => a.row < 0 || a.column < 0 || a.row >= r || a.column >= o
96
96
  )) {
@@ -121,8 +121,8 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
121
121
  * word search is answered by pointing at the grid, and what was pointed at
122
122
  * is the thing worth recording.
123
123
  */
124
- found: G(je).default([])
125
- }), Z = (e, t, r) => {
124
+ found: B(je).default([])
125
+ }), G = (e, t, r) => {
126
126
  if (!(t < 0 || r < 0 || t >= e.rows || r >= e.columns))
127
127
  return e.letters[t * e.columns + r];
128
128
  }, ee = (e) => {
@@ -134,19 +134,19 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
134
134
  row: e.row + s.row * u,
135
135
  column: e.column + s.column * u
136
136
  }));
137
- }, $ = (e) => e.map((t) => `${t.row},${t.column}`).join(">"), B = (e, t) => {
137
+ }, $ = (e) => e.map((t) => `${t.row},${t.column}`).join(">"), I = (e, t) => {
138
138
  const r = ee(t);
139
139
  if (!r) return;
140
140
  const o = $(r), s = $([...r].reverse());
141
141
  return e.words.find((h) => {
142
142
  if (k(h.text).length < 2) return !1;
143
- const u = $(T(h));
143
+ const u = $(F(h));
144
144
  return u === o || u === s;
145
145
  });
146
146
  }, te = (e, t) => {
147
147
  const r = /* @__PURE__ */ new Map();
148
148
  for (const o of t?.found ?? []) {
149
- const s = B(e, o);
149
+ const s = I(e, o);
150
150
  s && r.set(s.id, s);
151
151
  }
152
152
  return [...r.values()];
@@ -172,7 +172,7 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
172
172
  words: ke(e, t)
173
173
  }
174
174
  };
175
- }, I = {
175
+ }, P = {
176
176
  en: {
177
177
  name: "Find the words",
178
178
  description: "A letter grid with words hidden in it for the learner to find.",
@@ -293,7 +293,7 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
293
293
  c.set(j(b.row + p.row * M, b.column + p.column * M), R);
294
294
  }), l.push({ ...a.word, ...b });
295
295
  }
296
- const i = Ae(c, { rows: t, columns: r }, l, h);
296
+ const i = Ee(c, { rows: t, columns: r }, l, h);
297
297
  return {
298
298
  rows: t,
299
299
  columns: r,
@@ -311,14 +311,14 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
311
311
  const m = y[l];
312
312
  for (let g = 0; g < r.rows; g++)
313
313
  for (let i = 0; i < r.columns; i++) {
314
- const a = Ee(e, t, { row: g, column: i }, m, r);
314
+ const a = Ce(e, t, { row: g, column: i }, m, r);
315
315
  a !== null && h.push({ at: { row: g, column: i, direction: l }, overlap: a });
316
316
  }
317
317
  }
318
318
  if (h.length === 0) return;
319
319
  const u = Math.max(...h.map((l) => l.overlap)), c = h.filter((l) => l.overlap === u);
320
320
  return c[Math.floor(s() * c.length)].at;
321
- }, Ee = (e, t, r, o, s) => {
321
+ }, Ce = (e, t, r, o, s) => {
322
322
  let h = 0;
323
323
  for (let u = 0; u < t.length; u++) {
324
324
  const c = r.row + o.row * u, l = r.column + o.column * u;
@@ -331,7 +331,7 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
331
331
  }
332
332
  }
333
333
  return h;
334
- }, Ae = (e, t, r, o) => {
334
+ }, Ee = (e, t, r, o) => {
335
335
  const s = r.map((l) => k(l.text).join("")), h = s.map((l) => [...l].reverse().join("")), u = [.../* @__PURE__ */ new Set([...s, ...h])];
336
336
  for (let l = 0; l < t.rows; l++)
337
337
  for (let m = 0; m < t.columns; m++) {
@@ -339,7 +339,7 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
339
339
  if (!e.has(g))
340
340
  for (let i = 0; i < O.length; i++) {
341
341
  const a = O[Math.floor(o() * O.length)];
342
- if (e.set(g, a), !Ce(e, t, { row: l, column: m }, u)) break;
342
+ if (e.set(g, a), !Se(e, t, { row: l, column: m }, u)) break;
343
343
  }
344
344
  }
345
345
  let c = "";
@@ -347,7 +347,7 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
347
347
  for (let m = 0; m < t.columns; m++)
348
348
  c += e.get(j(l, m)) ?? "A";
349
349
  return c;
350
- }, Ce = (e, t, r, o) => {
350
+ }, Se = (e, t, r, o) => {
351
351
  const s = Math.max(...o.map((h) => h.length));
352
352
  for (const h of [
353
353
  y.east,
@@ -366,7 +366,7 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
366
366
  }
367
367
  }
368
368
  return !1;
369
- }, Se = ({
369
+ }, ze = ({
370
370
  data: e,
371
371
  answer: t,
372
372
  outcomes: r,
@@ -374,34 +374,34 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
374
374
  readonly: s,
375
375
  onChange: h
376
376
  }) => {
377
- const u = (n, d) => D(I, n, o, d), [c, l] = L.useState({ row: 0, column: 0 }), [m, g] = L.useState(null), [i, a] = L.useState(""), b = L.useRef(null), p = L.useRef(null), [, R] = L.useReducer((n) => n + 1, 0), M = e.words.filter((n) => k(n.text).length > 1), P = t.found, E = /* @__PURE__ */ new Map();
378
- for (const n of P) {
379
- const d = B(e, n);
377
+ const u = (n, d) => D(P, n, o, d), [c, l] = L.useState({ row: 0, column: 0 }), [m, g] = L.useState(null), [i, a] = L.useState(""), b = L.useRef(null), p = L.useRef(null), [, R] = L.useReducer((n) => n + 1, 0), M = e.words.filter((n) => k(n.text).length > 1), Z = t.found, C = /* @__PURE__ */ new Map();
378
+ for (const n of Z) {
379
+ const d = I(e, n);
380
380
  if (d)
381
- for (const f of T(d))
382
- E.set(j(f.row, f.column), d.id);
381
+ for (const f of F(d))
382
+ C.set(j(f.row, f.column), d.id);
383
383
  }
384
- const A = new Set(E.values()), re = (n) => r?.find((d) => d.wordId === n), C = p.current ? {
384
+ const E = new Set(C.values()), re = (n) => r?.find((d) => d.wordId === n), S = p.current ? {
385
385
  row: p.current.from.row,
386
386
  column: p.current.from.column,
387
387
  endRow: p.current.to.row,
388
388
  endColumn: p.current.to.column
389
- } : m ? { row: m.row, column: m.column, endRow: c.row, endColumn: c.column } : null, K = new Set(
390
- (C ? ee(C) ?? [{ row: C.row, column: C.column }] : []).map((n) => j(n.row, n.column))
391
- ), U = (n) => {
392
- const d = B(e, n);
389
+ } : m ? { row: m.row, column: m.column, endRow: c.row, endColumn: c.column } : null, U = new Set(
390
+ (S ? ee(S) ?? [{ row: S.row, column: S.column }] : []).map((n) => j(n.row, n.column))
391
+ ), K = (n) => {
392
+ const d = I(e, n);
393
393
  if (!d) {
394
394
  a(u("nothingThere"));
395
395
  return;
396
396
  }
397
- if (A.has(d.id)) {
397
+ if (E.has(d.id)) {
398
398
  a(u("alreadyFound", { word: d.text }));
399
399
  return;
400
400
  }
401
- h({ found: [...P, n] }), a(
401
+ h({ found: [...Z, n] }), a(
402
402
  u("wordFound", {
403
403
  word: d.text,
404
- found: A.size + 1,
404
+ found: E.size + 1,
405
405
  total: M.length
406
406
  })
407
407
  );
@@ -435,14 +435,14 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
435
435
  f && (p.current = { ...d, to: ne(d.from, f) }, R());
436
436
  }, () => {
437
437
  const n = p.current;
438
- p.current = null, R(), n && (l(n.to), U({
438
+ p.current = null, R(), n && (l(n.to), K({
439
439
  row: n.from.row,
440
440
  column: n.from.column,
441
441
  endRow: n.to.row,
442
442
  endColumn: n.to.column
443
443
  }));
444
444
  });
445
- const S = (n, d) => {
445
+ const z = (n, d) => {
446
446
  l((f) => ({
447
447
  row: Math.min(e.rows - 1, Math.max(0, f.row + n)),
448
448
  column: Math.min(e.columns - 1, Math.max(0, f.column + d))
@@ -450,10 +450,10 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
450
450
  }, ae = (n) => {
451
451
  if (s) return;
452
452
  const d = {
453
- ArrowRight: () => S(0, 1),
454
- ArrowLeft: () => S(0, -1),
455
- ArrowDown: () => S(1, 0),
456
- ArrowUp: () => S(-1, 0),
453
+ ArrowRight: () => z(0, 1),
454
+ ArrowLeft: () => z(0, -1),
455
+ ArrowDown: () => z(1, 0),
456
+ ArrowUp: () => z(-1, 0),
457
457
  Home: () => l((f) => ({ ...f, column: 0 })),
458
458
  End: () => l((f) => ({ ...f, column: e.columns - 1 })),
459
459
  Escape: () => {
@@ -476,11 +476,11 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
476
476
  endRow: c.row,
477
477
  endColumn: c.column
478
478
  };
479
- g(null), U(n);
479
+ g(null), K(n);
480
480
  }, le = (n, d) => {
481
- const f = E.get(j(n, d)), x = M.find((v) => v.id === f);
481
+ const f = C.get(j(n, d)), x = M.find((v) => v.id === f);
482
482
  return u("cellAt", {
483
- letter: Z(e, n, d) ?? "",
483
+ letter: G(e, n, d) ?? "",
484
484
  row: n + 1,
485
485
  column: d + 1
486
486
  }) + (x ? `. ${u("partOf", { word: x.text })}` : "");
@@ -502,15 +502,15 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
502
502
  onKeyDown: ae,
503
503
  children: Array.from({ length: e.rows }, (n, d) => /* @__PURE__ */ w.jsx("div", { role: "row", className: "bitflow-wordsearch-row", children: Array.from({ length: e.columns }, (f, x) => {
504
504
  const v = j(d, x), N = ["bitflow-wordsearch-cell"];
505
- return E.has(v) && N.push("bitflow-wordsearch-cell-found"), K.has(v) && N.push("bitflow-wordsearch-cell-drawing"), c.row === d && c.column === x && N.push("bitflow-wordsearch-cell-cursor"), /* @__PURE__ */ w.jsx(
505
+ return C.has(v) && N.push("bitflow-wordsearch-cell-found"), U.has(v) && N.push("bitflow-wordsearch-cell-drawing"), c.row === d && c.column === x && N.push("bitflow-wordsearch-cell-cursor"), /* @__PURE__ */ w.jsx(
506
506
  "span",
507
507
  {
508
508
  id: `cell-${d}-${x}`,
509
509
  role: "gridcell",
510
510
  className: N.join(" "),
511
511
  "aria-label": le(d, x),
512
- "aria-selected": K.has(v),
513
- children: /* @__PURE__ */ w.jsx("span", { className: "bitflow-wordsearch-letter", children: Z(e, d, x) })
512
+ "aria-selected": U.has(v),
513
+ children: /* @__PURE__ */ w.jsx("span", { className: "bitflow-wordsearch-letter", children: G(e, d, x) })
514
514
  },
515
515
  x
516
516
  );
@@ -518,9 +518,9 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
518
518
  }
519
519
  ),
520
520
  /* @__PURE__ */ w.jsxs("div", { className: "bitflow-wordsearch-words", children: [
521
- /* @__PURE__ */ w.jsx("h3", { className: "bitflow-label", children: u("wordsHeading", { found: A.size, total: M.length }) }),
521
+ /* @__PURE__ */ w.jsx("h3", { className: "bitflow-label", children: u("wordsHeading", { found: E.size, total: M.length }) }),
522
522
  e.showWords ? /* @__PURE__ */ w.jsx("ul", { className: "bitflow-wordsearch-list", children: M.map((n) => {
523
- const d = re(n.id), f = A.has(n.id);
523
+ const d = re(n.id), f = E.has(n.id);
524
524
  return /* @__PURE__ */ w.jsxs(
525
525
  "li",
526
526
  {
@@ -541,7 +541,7 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
541
541
  ] }),
542
542
  /* @__PURE__ */ w.jsx("div", { className: "bitflow-visually-hidden", role: "status", "aria-live": "polite", children: i })
543
543
  ] });
544
- }, ze = ({
544
+ }, Ae = ({
545
545
  data: e,
546
546
  answer: t,
547
547
  result: r,
@@ -551,7 +551,7 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
551
551
  }) => /* @__PURE__ */ w.jsxs("div", { className: "bitflow-stack", children: [
552
552
  /* @__PURE__ */ w.jsx(fe, { markdown: e.instruction }),
553
553
  /* @__PURE__ */ w.jsx(
554
- Se,
554
+ ze,
555
555
  {
556
556
  data: e,
557
557
  answer: { found: t?.found ?? [] },
@@ -575,7 +575,7 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
575
575
  direction: "east"
576
576
  };
577
577
  });
578
- }, Te = ({
578
+ }, Fe = ({
579
579
  data: e,
580
580
  locale: t,
581
581
  onChange: r,
@@ -597,7 +597,7 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
597
597
  [e.words, e.rows, e.columns, u]
598
598
  ), m = new Set(
599
599
  e.words.flatMap(
600
- (i) => k(i.text).length > 1 ? T(i).map((a) => j(a.row, a.column)) : []
600
+ (i) => k(i.text).length > 1 ? F(i).map((a) => j(a.row, a.column)) : []
601
601
  )
602
602
  ), g = (i) => /* @__PURE__ */ w.jsx(ge, { label: s(i), children: (a) => /* @__PURE__ */ w.jsx(
603
603
  "input",
@@ -632,7 +632,7 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
632
632
  hint: s("wordsHint"),
633
633
  rows: 6,
634
634
  value: De(e.words),
635
- error: F(o, "words"),
635
+ error: T(o, "words"),
636
636
  onChange: (i) => c({ words: He(i, e.words) })
637
637
  }
638
638
  ),
@@ -643,7 +643,7 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
643
643
  g("rows"),
644
644
  g("columns")
645
645
  ] }),
646
- F(o, "letters") && /* @__PURE__ */ w.jsx("span", { className: "bitflow-field-error", role: "alert", children: F(o, "letters") })
646
+ T(o, "letters") && /* @__PURE__ */ w.jsx("span", { className: "bitflow-field-error", role: "alert", children: T(o, "letters") })
647
647
  ] }),
648
648
  /* @__PURE__ */ w.jsxs("fieldset", { className: "bitflow-field", children: [
649
649
  /* @__PURE__ */ w.jsx("legend", { className: "bitflow-label", children: s("directionsLabel") }),
@@ -674,7 +674,7 @@ const xe = ".bitflow-wordsearch{display:flex;flex-direction:column;gap:var(--bit
674
674
  "span",
675
675
  {
676
676
  className: m.has(j(a, p)) ? "bitflow-wordsearch-cell bitflow-wordsearch-cell-found" : "bitflow-wordsearch-cell",
677
- children: /* @__PURE__ */ w.jsx("span", { className: "bitflow-wordsearch-letter", children: Z(e, a, p) })
677
+ children: /* @__PURE__ */ w.jsx("span", { className: "bitflow-wordsearch-letter", children: G(e, a, p) })
678
678
  },
679
679
  p
680
680
  )) }, a))
@@ -707,11 +707,11 @@ ue({
707
707
  kind: "task",
708
708
  schema: ye,
709
709
  evaluate: We,
710
- Task: ze,
711
- Form: Te,
710
+ Task: Ae,
711
+ Form: Fe,
712
712
  info: (e) => ({
713
- name: D(I, "name", e),
714
- description: D(I, "description", e)
713
+ name: D(P, "name", e),
714
+ description: D(P, "description", e)
715
715
  }),
716
716
  defaultData: () => ({
717
717
  instruction: "",
@@ -731,24 +731,24 @@ export {
731
731
  y as DIRECTIONS,
732
732
  ye as DataSchema,
733
733
  J as DirectionSchema,
734
- Te as Form,
734
+ Fe as Form,
735
735
  je as SelectionSchema,
736
736
  oe as TYPE,
737
- ze as Task,
738
- Se as WordGrid,
737
+ Ae as Task,
738
+ ze as WordGrid,
739
739
  ve as WordSchema,
740
740
  j as cellKey,
741
741
  ee as cellsBetween,
742
- T as cellsOf,
742
+ F as cellsOf,
743
743
  We as evaluate,
744
744
  Ne as formMessages,
745
745
  te as foundWords,
746
746
  Q as generate,
747
- Z as letterAt,
747
+ G as letterAt,
748
748
  k as lettersOf,
749
- I as messages,
749
+ P as messages,
750
750
  ke as outcomes,
751
751
  Me as scoreOf,
752
752
  Le as seededRandom,
753
- B as wordFound
753
+ I as wordFound
754
754
  };
@@ -1,6 +1,6 @@
1
- import { L as u, a9 as f, ac as y, ad as m, ab as c, a2 as g, j as n, b as r, s as p, aa as v } from "./dom-uYx_3K1r.js";
2
- import { v as k, P as w, y as b, e as N, E as j, L as x, R as L } from "./bitLoaders-DIGwTcpd.js";
3
- const W = ".bitflow-yes-no{border:0;margin:0;padding:0;display:flex;gap:var(--bitflow-space-xsmall)}.bitflow-yes-no .bitflow-option{flex:1;justify-content:center;align-items:center}", q = ({
1
+ import { P as u, a9 as f, ac as g, ad as m, ab as c, a2 as y, j as n, b as r, s as p, aa as k } from "./dom-B6NPWBb1.js";
2
+ import { e as v, M as w, C as b, P as N, B as j, U as x, H as W } from "./bitLoaders-7qanePQL.js";
3
+ const q = ".bitflow-yes-no{border:0;margin:0;padding:0;display:flex;gap:var(--bitflow-space-xsmall)}.bitflow-yes-no .bitflow-option{flex:1;justify-content:center;align-items:center}", L = ({
4
4
  data: e,
5
5
  answer: o
6
6
  }) => {
@@ -48,17 +48,17 @@ const W = ".bitflow-yes-no{border:0;margin:0;padding:0;display:flex;gap:var(--bi
48
48
  it: { name: "Sì / No", description: "Una domanda con risposta sì o no.", yes: "Sì", no: "No", legend: "Scegli sì o no" },
49
49
  pt: { name: "Sim / Não", description: "Uma pergunta de sim ou não.", yes: "Sim", no: "Não", legend: "Escolhe sim ou não" },
50
50
  tr: { name: "Evet / Hayır", description: "Evet ya da hayır ile yanıtlanan bir soru.", yes: "Evet", no: "Hayır", legend: "Evet ya da hayır seçin" }
51
- }, E = u({
51
+ }, C = u({
52
52
  /** The statement or question, as Markdown. */
53
- question: g().default(""),
53
+ question: y().default(""),
54
54
  /** Which answer counts as right. */
55
55
  correctAnswer: f().default(!0),
56
56
  /** Shown when the learner answered yes and yes was wrong. */
57
57
  feedbackWhenYes: c.optional(),
58
58
  /** Shown when the learner answered no and no was wrong. */
59
59
  feedbackWhenNo: c.optional(),
60
- evaluation: y.default(m)
61
- }), F = u({ yes: f() }), A = ({
60
+ evaluation: g.default(m)
61
+ }), Y = u({ yes: f() }), A = ({
62
62
  data: e,
63
63
  answer: o,
64
64
  readonly: t,
@@ -85,7 +85,7 @@ const W = ".bitflow-yes-no{border:0;margin:0;padding:0;display:flex;gap:var(--bi
85
85
  ] }, String(l)))
86
86
  ] })
87
87
  ] });
88
- }, S = ({
88
+ }, E = ({
89
89
  data: e,
90
90
  locale: o,
91
91
  onChange: t
@@ -93,7 +93,7 @@ const W = ".bitflow-yes-no{border:0;margin:0;padding:0;display:flex;gap:var(--bi
93
93
  const s = (a) => r(d, a, o), i = (a) => t({ ...e, ...a });
94
94
  return /* @__PURE__ */ n.jsxs("div", { className: "bitflow-stack", children: [
95
95
  /* @__PURE__ */ n.jsx(
96
- k,
96
+ v,
97
97
  {
98
98
  label: s("questionLabel"),
99
99
  hint: s("questionHint"),
@@ -147,15 +147,15 @@ const W = ".bitflow-yes-no{border:0;margin:0;padding:0;display:flex;gap:var(--bi
147
147
  ) })
148
148
  ] });
149
149
  };
150
- p("bitflow-styles-task-yes-no", W);
150
+ p("bitflow-styles-task-yes-no", q);
151
151
  const h = "task-yes-no";
152
- v({
152
+ k({
153
153
  type: h,
154
154
  kind: "task",
155
- schema: E,
156
- evaluate: q,
155
+ schema: C,
156
+ evaluate: L,
157
157
  Task: A,
158
- Form: S,
158
+ Form: E,
159
159
  info: (e) => ({
160
160
  name: r(d, "name", e),
161
161
  description: r(d, "description", e)
@@ -166,13 +166,13 @@ v({
166
166
  evaluation: m()
167
167
  })
168
168
  });
169
- L(h);
169
+ W(h);
170
170
  export {
171
- F as AnswerSchema,
172
- E as DataSchema,
173
- S as Form,
171
+ Y as AnswerSchema,
172
+ C as DataSchema,
173
+ E as Form,
174
174
  h as TYPE,
175
175
  A as Task,
176
- q as evaluate,
176
+ L as evaluate,
177
177
  d as messages
178
178
  };
@@ -1,27 +1,27 @@
1
- import { L as k, ac as S, ad as M, al as R, P as O, a2 as v, a9 as D, j as l, b as u, a as m, a4 as U, a5 as $, aa as B, s as q } from "./dom-uYx_3K1r.js";
2
- import { v as T, A as w, e as W, E as G, L as K, R as Y } from "./bitLoaders-DIGwTcpd.js";
3
- const I = ".bitflow-highlight-maroon{background:#f6d6d6;color:#4a1010}.bitflow-highlight-orange{background:#ffe0bd;color:#4a2c00}.bitflow-highlight-blue{background:#cfe0f7;color:#10294a}.bitflow-highlight-lavender{background:#e2dbf5;color:#2b1f4a}.bitflow-highlight-yellow{background:#fbf1b8;color:#453c00}.bitflow-highlight-palette{display:flex;flex-wrap:wrap;gap:var(--bitflow-space-xxsmall)}.bitflow-highlight-swatch{display:inline-flex;align-items:center;padding:var(--bitflow-space-xxsmall) var(--bitflow-space-xsmall);min-height:44px;border:var(--bitflow-border-width) solid transparent;border-radius:var(--bitflow-radius-standard);cursor:pointer;font-size:var(--bitflow-font-size-small)}.bitflow-highlight-swatch:has(:checked){border-color:var(--bitflow-color-neutral-900);font-weight:var(--bitflow-font-weight-bold)}.bitflow-highlight-swatch:has(:focus-visible){box-shadow:var(--bitflow-shadow-outline)}.bitflow-highlight-eraser{background:var(--bitflow-color-neutral-100)}.bitflow-highlight-text{white-space:pre-wrap;line-height:var(--bitflow-line-height-relaxed, 1.8);margin:0}.bitflow-highlight-text{cursor:text}.bitflow-highlight-token[role=button]{cursor:pointer;border-radius:var(--bitflow-radius-small);text-decoration:underline dotted var(--bitflow-color-neutral-400);text-underline-offset:3px}.bitflow-highlight-token[role=button]:hover{background:var(--bitflow-color-neutral-100);text-decoration-color:var(--bitflow-color-neutral-900)}.bitflow-highlight-token[role=button]:focus-visible{box-shadow:var(--bitflow-shadow-outline)}@media(pointer:coarse){.bitflow-highlight-text{line-height:2.2}.bitflow-highlight-token[role=button]{padding-block:4px;box-decoration-break:clone;-webkit-box-decoration-break:clone}}.bitflow-highlight-text ::selection{background:var(--bitflow-color-primary-light)}.bitflow-highlight-agreement{margin:0;padding-left:var(--bitflow-space-small);color:var(--bitflow-color-text-muted);font-size:var(--bitflow-font-size-small)}.bitflow-highlight-color-row{display:flex;align-items:center;gap:var(--bitflow-space-xsmall)}.bitflow-highlight-cutoff{display:flex;align-items:center;justify-content:space-between;gap:var(--bitflow-space-xsmall)}.bitflow-highlight-cutoff input{max-width:6em}", f = ["maroon", "orange", "blue", "lavender", "yellow"], j = $(f), z = U(j.nullable()), _ = k({
4
- instruction: v().default(""),
5
- text: v().default(""),
1
+ import { P as v, ac as A, ad as M, al as H, Y as O, a2 as k, a9 as U, j as l, b as u, a as m, a4 as D, a5 as B, aa as $, s as q } from "./dom-B6NPWBb1.js";
2
+ import { e as T, g as w, P as W, B as Y, U as G, H as I } from "./bitLoaders-7qanePQL.js";
3
+ const K = ".bitflow-highlight-maroon{background:#f6d6d6;color:#4a1010}.bitflow-highlight-orange{background:#ffe0bd;color:#4a2c00}.bitflow-highlight-blue{background:#cfe0f7;color:#10294a}.bitflow-highlight-lavender{background:#e2dbf5;color:#2b1f4a}.bitflow-highlight-yellow{background:#fbf1b8;color:#453c00}.bitflow-highlight-palette{display:flex;flex-wrap:wrap;gap:var(--bitflow-space-xxsmall)}.bitflow-highlight-swatch{display:inline-flex;align-items:center;padding:var(--bitflow-space-xxsmall) var(--bitflow-space-xsmall);min-height:44px;border:var(--bitflow-border-width) solid transparent;border-radius:var(--bitflow-radius-standard);cursor:pointer;font-size:var(--bitflow-font-size-small)}.bitflow-highlight-swatch:has(:checked){border-color:var(--bitflow-color-neutral-900);font-weight:var(--bitflow-font-weight-bold)}.bitflow-highlight-swatch:has(:focus-visible){box-shadow:var(--bitflow-shadow-outline)}.bitflow-highlight-eraser{background:var(--bitflow-color-neutral-100)}.bitflow-highlight-text{white-space:pre-wrap;line-height:var(--bitflow-line-height-relaxed, 1.8);margin:0}.bitflow-highlight-text{cursor:text}.bitflow-highlight-token[role=button]{cursor:pointer;border-radius:var(--bitflow-radius-small);text-decoration:underline dotted var(--bitflow-color-neutral-400);text-underline-offset:3px}.bitflow-highlight-token[role=button]:hover{background:var(--bitflow-color-neutral-100);text-decoration-color:var(--bitflow-color-neutral-900)}.bitflow-highlight-token[role=button]:focus-visible{box-shadow:var(--bitflow-shadow-outline)}@media(pointer:coarse){.bitflow-highlight-text{line-height:2.2}.bitflow-highlight-token[role=button]{padding-block:4px;box-decoration-break:clone;-webkit-box-decoration-break:clone}}.bitflow-highlight-text ::selection{background:var(--bitflow-color-primary-light)}.bitflow-highlight-agreement{margin:0;padding-left:var(--bitflow-space-small);color:var(--bitflow-color-text-muted);font-size:var(--bitflow-font-size-small)}.bitflow-highlight-color-row{display:flex;align-items:center;gap:var(--bitflow-space-xsmall)}.bitflow-highlight-cutoff{display:flex;align-items:center;justify-content:space-between;gap:var(--bitflow-space-xsmall)}.bitflow-highlight-cutoff input{max-width:6em}", f = ["maroon", "orange", "blue", "lavender", "yellow"], j = B(f), P = D(j.nullable()), _ = v({
4
+ instruction: k().default(""),
5
+ text: k().default(""),
6
6
  // `partialRecord`, not `record`: a task uses one or two colours, and a
7
7
  // plain enum-keyed record in zod 4 would demand an entry for all five.
8
- colors: R(
8
+ colors: H(
9
9
  j,
10
- k({
11
- enabled: D().default(!1),
10
+ v({
11
+ enabled: U().default(!1),
12
12
  /** What this colour means in this task, e.g. "cause". */
13
- label: v().default("")
13
+ label: k().default("")
14
14
  })
15
15
  ).default({}),
16
16
  /** The teacher's own highlighting, compared against character by character. */
17
- reference: z.default([]),
17
+ reference: P.default([]),
18
18
  /**
19
19
  * Per colour, the Cohen's kappa a learner must reach for that colour to
20
20
  * count as right. Kappa rather than raw overlap because agreeing by
21
21
  * accident on a mostly-unhighlighted text is easy.
22
22
  */
23
- cutoffs: R(j, O().min(0).max(1)).default({}),
24
- evaluation: S.default(M)
23
+ cutoffs: H(j, O().min(0).max(1)).default({}),
24
+ evaluation: A.default(M)
25
25
  }).check((e) => {
26
26
  e.value.evaluation.mode === "auto" && (f.filter((o) => e.value.colors[o]?.enabled).length === 0 && e.issues.push({
27
27
  code: "custom",
@@ -34,8 +34,8 @@ const I = ".bitflow-highlight-maroon{background:#f6d6d6;color:#4a1010}.bitflow-h
34
34
  path: ["reference"],
35
35
  message: "The reference highlighting does not match the text. Re-mark the text after editing it."
36
36
  }));
37
- }), re = k({
38
- highlights: z.default([])
37
+ }), re = v({
38
+ highlights: P.default([])
39
39
  }), V = ({
40
40
  bothHighlighted: e,
41
41
  bothPlain: o,
@@ -157,7 +157,7 @@ const I = ".bitflow-highlight-maroon{background:#f6d6d6;color:#4a1010}.bitflow-h
157
157
  word: !0
158
158
  }), n = t.index + t[0].length;
159
159
  return n < e.length && o.push({ text: e.slice(n), start: n, end: e.length, word: !1 }), o;
160
- }, H = (e, o, i) => {
160
+ }, R = (e, o, i) => {
161
161
  const n = e[o] ?? null;
162
162
  for (let t = o; t < i; t++)
163
163
  if ((e[t] ?? null) !== n) return null;
@@ -171,7 +171,7 @@ const I = ".bitflow-highlight-maroon{background:#f6d6d6;color:#4a1010}.bitflow-h
171
171
  if (!i) return null;
172
172
  const n = Number(i.dataset.start);
173
173
  return Number.isFinite(n) ? n + o : null;
174
- }, P = ({
174
+ }, z = ({
175
175
  text: e,
176
176
  highlights: o,
177
177
  colors: i,
@@ -179,7 +179,7 @@ const I = ".bitflow-highlight-maroon{background:#f6d6d6;color:#4a1010}.bitflow-h
179
179
  readonly: t,
180
180
  onChange: c
181
181
  }) => {
182
- const s = (r, d) => u(g, r, n, d), a = f.filter((r) => i[r]?.enabled), [h, y] = m.useState(a[0] ?? null), F = m.useMemo(() => J(e), [e]), N = (r) => i[r]?.label || u(g, r, n), x = m.useCallback(
182
+ const s = (r, d) => u(g, r, n, d), a = f.filter((r) => i[r]?.enabled), [h, y] = m.useState(a[0] ?? null), S = m.useMemo(() => J(e), [e]), N = (r) => i[r]?.label || u(g, r, n), x = m.useCallback(
183
183
  (r, d, b) => c(Q(o, e.length, r, d, b)),
184
184
  [o, c, e.length]
185
185
  ), C = m.useCallback(() => {
@@ -191,7 +191,7 @@ const I = ".bitflow-highlight-maroon{background:#f6d6d6;color:#4a1010}.bitflow-h
191
191
  }, [h, x, t]), L = m.useCallback(
192
192
  (r) => {
193
193
  if (t) return;
194
- const d = H(o, r.start, r.end);
194
+ const d = R(o, r.start, r.end);
195
195
  x(r.start, r.end, d === h ? null : h);
196
196
  },
197
197
  [h, x, o, t]
@@ -247,8 +247,8 @@ const I = ".bitflow-highlight-maroon{background:#f6d6d6;color:#4a1010}.bitflow-h
247
247
  className: "bitflow-highlight-text",
248
248
  onMouseUp: C,
249
249
  onKeyUp: C,
250
- children: F.map((r) => {
251
- const d = H(o, r.start, r.end), b = [
250
+ children: S.map((r) => {
251
+ const d = R(o, r.start, r.end), b = [
252
252
  r.word ? "bitflow-highlight-token" : "",
253
253
  d ? `bitflow-highlight-${d}` : ""
254
254
  ].filter(Boolean).join(" ");
@@ -294,9 +294,9 @@ const I = ".bitflow-highlight-maroon{background:#f6d6d6;color:#4a1010}.bitflow-h
294
294
  }) => {
295
295
  const s = i?.detail?.agreement ?? {};
296
296
  return /* @__PURE__ */ l.jsxs("div", { className: "bitflow-stack", children: [
297
- /* @__PURE__ */ l.jsx(K, { markdown: e.instruction }),
297
+ /* @__PURE__ */ l.jsx(G, { markdown: e.instruction }),
298
298
  /* @__PURE__ */ l.jsx(
299
- P,
299
+ z,
300
300
  {
301
301
  text: e.text,
302
302
  highlights: o?.highlights ?? [],
@@ -392,7 +392,7 @@ const I = ".bitflow-highlight-maroon{background:#f6d6d6;color:#4a1010}.bitflow-h
392
392
  /* @__PURE__ */ l.jsx("span", { className: "bitflow-hint", children: t("referenceHint") }),
393
393
  w(n, "reference") && /* @__PURE__ */ l.jsx("span", { className: "bitflow-field-error", role: "alert", children: w(n, "reference") }),
394
394
  /* @__PURE__ */ l.jsx(
395
- P,
395
+ z,
396
396
  {
397
397
  text: e.text,
398
398
  highlights: e.reference,
@@ -428,7 +428,7 @@ const I = ".bitflow-highlight-maroon{background:#f6d6d6;color:#4a1010}.bitflow-h
428
428
  ] }, a))
429
429
  ] }),
430
430
  /* @__PURE__ */ l.jsx(
431
- G,
431
+ Y,
432
432
  {
433
433
  evaluation: e.evaluation,
434
434
  locale: o,
@@ -437,9 +437,9 @@ const I = ".bitflow-highlight-maroon{background:#f6d6d6;color:#4a1010}.bitflow-h
437
437
  )
438
438
  ] })
439
439
  ] });
440
- }, A = "task-highlighting";
441
- B({
442
- type: A,
440
+ }, F = "task-highlighting";
441
+ $({
442
+ type: F,
443
443
  kind: "task",
444
444
  schema: _,
445
445
  evaluate: Z,
@@ -458,15 +458,15 @@ B({
458
458
  evaluation: M()
459
459
  })
460
460
  });
461
- Y(A);
462
- q("bitflow-styles-task-highlighting", I);
461
+ I(F);
462
+ q("bitflow-styles-task-highlighting", K);
463
463
  export {
464
464
  re as AnswerSchema,
465
465
  f as COLORS,
466
466
  _ as DataSchema,
467
467
  te as Form,
468
- P as Highlighter,
469
- A as TYPE,
468
+ z as Highlighter,
469
+ F as TYPE,
470
470
  ee as Task,
471
471
  X as agreementPerColor,
472
472
  Z as evaluate,