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,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 { L as H, a4 as B, ac as ie, ad as _, a9 as de, a2 as A, 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 { 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-CxvZkGrY.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
  };