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 g, a4 as v, a2 as c, j as a, a as y, b as f, E as k, a5 as F, a9 as N, s as L, aa as C } from "./dom-uYx_3K1r.js";
2
- import { S as H, y as b, v as w, e as K, P as O, M as T, L as E, R as S } from "./bitLoaders-DIGwTcpd.js";
3
- const z = ".bitflow-identify{display:flex;flex-direction:column;gap:var(--bitflow-space-small);border:var(--bitflow-border-width) solid var(--bitflow-color-border);border-radius:var(--bitflow-radius-standard);padding:var(--bitflow-space-small);margin:0}.bitflow-identify-required{margin:0;min-height:1.5em;color:var(--bitflow-color-warning);font-size:var(--bitflow-font-size-small)}", p = {
1
+ import { P as g, a4 as k, a2 as c, j as a, a as q, b as f, E as v, a5 as y, a9 as N, s as C, aa as H } from "./dom-B6NPWBb1.js";
2
+ import { $ as L, C as b, e as w, P as K, M as O, F as E, U as T, H as z } from "./bitLoaders-7qanePQL.js";
3
+ const A = ".bitflow-identify{display:flex;flex-direction:column;gap:var(--bitflow-space-small);border:var(--bitflow-border-width) solid var(--bitflow-color-border);border-radius:var(--bitflow-radius-standard);padding:var(--bitflow-space-small);margin:0}.bitflow-identify-required{margin:0;min-height:1.5em;color:var(--bitflow-color-warning);font-size:var(--bitflow-font-size-small)}", p = {
4
4
  en: {
5
5
  name: "Who you are",
6
6
  description: "Asks the learner for a name or a class before the assessment starts.",
@@ -73,20 +73,20 @@ const z = ".bitflow-identify{display:flex;flex-direction:column;gap:var(--bitflo
73
73
  incomplete: "Başlamadan önce “Gerekli” işaretli her yeri doldur.",
74
74
  nameFallback: "Ad"
75
75
  }
76
- }, A = g({
76
+ }, S = g({
77
77
  id: c().min(1),
78
78
  label: c().default(""),
79
79
  hint: c().default(""),
80
80
  required: N().default(!0),
81
- kind: F(["text", "select"]).default("text"),
81
+ kind: y(["text", "select"]).default("text"),
82
82
  /** Only for `select`. Ignored otherwise. */
83
- options: v(c()).default([])
83
+ options: k(c()).default([])
84
84
  }), R = g({
85
85
  title: c().default(""),
86
86
  markdown: c().default(""),
87
- fields: v(A).default([])
87
+ fields: k(S).default([])
88
88
  }), D = () => ({
89
- id: k("field"),
89
+ id: v("field"),
90
90
  label: "",
91
91
  hint: "",
92
92
  required: !0,
@@ -94,12 +94,12 @@ const z = ".bitflow-identify{display:flex;flex-direction:column;gap:var(--bitflo
94
94
  options: []
95
95
  }), x = (e, r) => e.fields.every(
96
96
  (s) => !s.required || s.label.trim() === "" || (r?.[s.id] ?? "").trim() !== ""
97
- ), M = (e, r) => {
97
+ ), I = (e, r) => {
98
98
  for (const s of e.fields) {
99
99
  const t = (r?.[s.id] ?? "").trim();
100
100
  if (t !== "") return t;
101
101
  }
102
- }, W = {
102
+ }, P = {
103
103
  en: {
104
104
  titleLabel: "Title",
105
105
  markdownLabel: "Introduction",
@@ -138,23 +138,23 @@ const z = ".bitflow-identify{display:flex;flex-direction:column;gap:var(--bitflo
138
138
  removeField: "Diese Frage entfernen",
139
139
  fieldUnnamed: "Frage ohne Text"
140
140
  }
141
- }, P = ({
141
+ }, W = ({
142
142
  data: e,
143
143
  answer: r,
144
144
  readonly: s,
145
145
  locale: t,
146
146
  onAnswerChange: h
147
147
  }) => {
148
- const d = (l) => f(p, l, t), i = y.useId(), n = e.fields.filter((l) => l.label.trim() !== ""), o = (l, u) => h({ ...r, [l]: u });
148
+ const d = (l) => f(p, l, t), i = q.useId(), n = e.fields.filter((l) => l.label.trim() !== ""), o = (l, u) => h({ ...r, [l]: u });
149
149
  return /* @__PURE__ */ a.jsxs("div", { className: "bitflow-stack", children: [
150
150
  e.title && /* @__PURE__ */ a.jsx("h1", { className: "bitflow-heading", children: e.title }),
151
- /* @__PURE__ */ a.jsx(E, { markdown: e.markdown }),
151
+ /* @__PURE__ */ a.jsx(T, { markdown: e.markdown }),
152
152
  n.length > 0 && /* @__PURE__ */ a.jsxs("fieldset", { className: "bitflow-identify", children: [
153
153
  /* @__PURE__ */ a.jsx("legend", { className: "bitflow-label", children: d("legend") }),
154
154
  n.map((l) => {
155
- const u = `${i}-${l.id}`, q = l.required ? `${l.label} (${d("required")})` : l.label;
155
+ const u = `${i}-${l.id}`, F = l.required ? `${l.label} (${d("required")})` : l.label;
156
156
  return /* @__PURE__ */ a.jsxs("div", { className: "bitflow-field", children: [
157
- /* @__PURE__ */ a.jsx("label", { className: "bitflow-label", htmlFor: u, children: q }),
157
+ /* @__PURE__ */ a.jsx("label", { className: "bitflow-label", htmlFor: u, children: F }),
158
158
  l.hint && /* @__PURE__ */ a.jsx("span", { className: "bitflow-hint", children: l.hint }),
159
159
  l.kind === "select" ? /* @__PURE__ */ a.jsxs(
160
160
  "select",
@@ -187,12 +187,12 @@ const z = ".bitflow-identify{display:flex;flex-direction:column;gap:var(--bitflo
187
187
  ] }),
188
188
  /* @__PURE__ */ a.jsx("p", { className: "bitflow-identify-required", children: !x(e, r) && !s && d("incomplete") })
189
189
  ] });
190
- }, V = ({
190
+ }, U = ({
191
191
  data: e,
192
192
  locale: r,
193
193
  onChange: s
194
194
  }) => {
195
- const t = (i) => f(W, i, r), h = H(e.fields.map((i) => i.id)), d = (i, n) => s({
195
+ const t = (i) => f(P, i, r), h = L(e.fields.map((i) => i.id)), d = (i, n) => s({
196
196
  ...e,
197
197
  fields: e.fields.map(
198
198
  (o) => o.id === i ? { ...o, ...n } : o
@@ -270,7 +270,7 @@ const z = ".bitflow-identify{display:flex;flex-direction:column;gap:var(--bitflo
270
270
  }
271
271
  ),
272
272
  /* @__PURE__ */ a.jsx(
273
- T,
273
+ E,
274
274
  {
275
275
  label: t("fieldRequired"),
276
276
  checked: i.required,
@@ -304,14 +304,14 @@ const z = ".bitflow-identify{display:flex;flex-direction:column;gap:var(--bitflo
304
304
  )
305
305
  ] });
306
306
  };
307
- L("bitflow-styles-start-identify", z);
307
+ C("bitflow-styles-start-identify", A);
308
308
  const j = "start-identify";
309
- C({
309
+ H({
310
310
  type: j,
311
311
  kind: "start",
312
312
  schema: R,
313
- Task: P,
314
- Form: V,
313
+ Task: W,
314
+ Form: U,
315
315
  info: (e) => ({
316
316
  name: f(p, "name", e),
317
317
  description: f(p, "description", e)
@@ -325,7 +325,7 @@ C({
325
325
  // empty list would hand the author a step that shows nothing.
326
326
  fields: [
327
327
  {
328
- id: k("field"),
328
+ id: v("field"),
329
329
  label: "Name",
330
330
  hint: "",
331
331
  required: !0,
@@ -335,13 +335,13 @@ C({
335
335
  ]
336
336
  })
337
337
  });
338
- S(j);
338
+ z(j);
339
339
  export {
340
340
  R as DataSchema,
341
- V as Form,
341
+ U as Form,
342
342
  j as TYPE,
343
- P as Task,
344
- M as identityOf,
343
+ W as Task,
344
+ I as identityOf,
345
345
  x as isFilledIn,
346
346
  p as messages
347
347
  };
@@ -1,6 +1,6 @@
1
- import { L as q, ak as ue, a2 as A, a as D, j as w, ac as me, ad as X, a9 as fe, a4 as he, a5 as Q, P as Z, b as B, aa as be, s as pe } from "./dom-uYx_3K1r.js";
2
- import { S as ge, v as xe, A as F, e as _, y as J, P as ve, M as ye, E as ke, L as je, R as Ne } from "./bitLoaders-DIGwTcpd.js";
3
- const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitflow-space-xsmall)}.bitflow-crossword-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--bitflow-space-medium);align-items:start}.bitflow-crossword-grid{display:flex;flex-direction:column;width:min(100%,calc(var(--bitflow-crossword-columns, 10) * 2.25rem));border:var(--bitflow-border-width) solid var(--bitflow-color-neutral-900);background:var(--bitflow-color-neutral-900);gap:1px}.bitflow-crossword-row{display:flex;gap:1px}.bitflow-crossword-cell,.bitflow-crossword-blank{position:relative;flex:1 1 0;min-width:0;aspect-ratio:1;container-type:inline-size}.bitflow-crossword-blank{background:var(--bitflow-color-neutral-900)}.bitflow-crossword-cell{display:flex;align-items:center;justify-content:center;background:var(--bitflow-color-surface)}.bitflow-crossword-cell-word{background:var(--bitflow-color-primary-light)}.bitflow-crossword-cell-here{box-shadow:inset 0 0 0 2px var(--bitflow-color-primary)}.bitflow-crossword-cell-correct{background:var(--bitflow-color-correct-surface)}.bitflow-crossword-cell-wrong{background:var(--bitflow-color-wrong-surface)}.bitflow-crossword-number{position:absolute;top:1px;left:2px;font-size:max(.5rem,22cqw);line-height:1;color:var(--bitflow-color-text-muted);pointer-events:none}.bitflow-crossword-input{width:100%;height:100%;padding:0;font:inherit;font-size:60cqw;font-weight:var(--bitflow-font-weight-medium);line-height:1;text-align:center;text-transform:uppercase;color:var(--bitflow-color-text);background:none;border:0;border-radius:0;cursor:pointer}.bitflow-crossword-input:focus{outline:none}.bitflow-crossword-input:disabled{cursor:default;-webkit-text-fill-color:var(--bitflow-color-text);opacity:1}.bitflow-crossword-clues{display:flex;flex-direction:column;gap:var(--bitflow-space-small)}.bitflow-crossword-clue-list{display:flex;flex-direction:column;gap:var(--bitflow-space-xxsmall);padding:0;margin:var(--bitflow-space-xxsmall) 0 0;list-style:none}.bitflow-crossword-clue{display:flex;gap:var(--bitflow-space-xsmall);align-items:center;padding:var(--bitflow-space-xxsmall);border-radius:var(--bitflow-radius-small)}.bitflow-crossword-clue-current{background:var(--bitflow-color-primary-light)}.bitflow-crossword-clue-text{display:flex;gap:var(--bitflow-space-xsmall);flex:1;padding:0;font:inherit;text-align:start;color:inherit;background:none;border:0;cursor:pointer}.bitflow-crossword-clue .bitflow-crossword-number{position:static;font-size:inherit;font-weight:var(--bitflow-font-weight-bold);color:var(--bitflow-color-text-muted)}.bitflow-crossword-word{box-sizing:border-box;width:calc(var(--bitflow-crossword-letters, 8) * (1ch + .15em) + 2 * var(--bitflow-space-xxsmall) + 2 * var(--bitflow-border-width));padding:var(--bitflow-space-xxsmall);font-family:var(--bitflow-font-family-mono);font-size:var(--bitflow-font-size-standard);text-transform:uppercase;letter-spacing:.15em;color:var(--bitflow-color-text);background:var(--bitflow-color-surface);border:var(--bitflow-border-width) solid var(--bitflow-color-border);border-radius:var(--bitflow-radius-small)}.bitflow-crossword-mark{font-size:var(--bitflow-font-size-small)}.bitflow-crossword-mark-correct{color:var(--bitflow-color-correct)}.bitflow-crossword-mark-wrong{color:var(--bitflow-color-wrong)}.bitflow-crossword-preview{margin-top:var(--bitflow-space-xxsmall)}.bitflow-crossword-solution{font-size:60cqw;font-weight:var(--bitflow-font-weight-medium);line-height:1;text-transform:uppercase}", Me = Q(["across", "down"]), We = q({
1
+ import { P as q, ak as ue, a2 as A, a as D, j as w, ac as me, ad as X, a9 as fe, a4 as he, a5 as Q, Y as Z, b as B, aa as be, s as pe } from "./dom-B6NPWBb1.js";
2
+ import { $ as ge, e as xe, g as F, P as _, C as J, M as ve, F as ke, B as ye, U as je, H as Ne } from "./bitLoaders-7qanePQL.js";
3
+ const Me = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitflow-space-small)}.bitflow-crossword-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--bitflow-space-medium);align-items:start}.bitflow-crossword-grid{display:flex;flex-direction:column;width:min(100%,calc(var(--bitflow-crossword-columns, 10) * 2.25rem));border:var(--bitflow-border-width) solid var(--bitflow-color-neutral-900);background:var(--bitflow-color-neutral-900);gap:1px}.bitflow-crossword-row{display:flex;gap:1px}.bitflow-crossword-cell,.bitflow-crossword-blank{position:relative;flex:1 1 0;min-width:0;aspect-ratio:1;container-type:inline-size}.bitflow-crossword-blank{background:var(--bitflow-color-neutral-900)}.bitflow-crossword-cell{display:flex;align-items:center;justify-content:center;background:var(--bitflow-color-surface)}.bitflow-crossword-cell-word{background:var(--bitflow-color-primary-light)}.bitflow-crossword-cell-here{box-shadow:inset 0 0 0 2px var(--bitflow-color-primary)}.bitflow-crossword-cell-correct{background:var(--bitflow-color-correct-surface)}.bitflow-crossword-cell-wrong{background:var(--bitflow-color-wrong-surface)}.bitflow-crossword-number{position:absolute;top:1px;left:2px;font-size:max(.5rem,22cqw);line-height:1;color:var(--bitflow-color-text-muted);pointer-events:none}.bitflow-crossword-input{width:100%;height:100%;padding:0;font:inherit;font-size:60cqw;font-weight:var(--bitflow-font-weight-medium);line-height:1;text-align:center;text-transform:uppercase;color:var(--bitflow-color-text);background:none;border:0;border-radius:0;cursor:pointer}.bitflow-crossword-input:focus{outline:none}.bitflow-crossword-input:disabled{cursor:default;-webkit-text-fill-color:var(--bitflow-color-text);opacity:1}.bitflow-crossword-clues{display:flex;flex-direction:column;gap:var(--bitflow-space-small)}.bitflow-crossword-clue-list{display:flex;flex-direction:column;gap:var(--bitflow-space-xxsmall);padding:0;margin:var(--bitflow-space-xxsmall) 0 0;list-style:none}.bitflow-crossword-clue{display:flex;gap:var(--bitflow-space-xsmall);align-items:center;padding:var(--bitflow-space-xxsmall);border-radius:var(--bitflow-radius-small)}.bitflow-crossword-clue-current{background:var(--bitflow-color-primary-light)}.bitflow-crossword-clue-text{display:flex;gap:var(--bitflow-space-xsmall);flex:1;padding:0;font:inherit;text-align:start;color:inherit;background:none;border:0;cursor:pointer}.bitflow-crossword-clue .bitflow-crossword-number{position:static;font-size:inherit;font-weight:var(--bitflow-font-weight-bold);color:var(--bitflow-color-text-muted)}.bitflow-crossword-word{box-sizing:border-box;width:calc(var(--bitflow-crossword-letters, 8) * (1ch + .15em) + 2 * var(--bitflow-space-xxsmall) + 2 * var(--bitflow-border-width));padding:var(--bitflow-space-xxsmall);font-family:var(--bitflow-font-family-mono);font-size:var(--bitflow-font-size-standard);text-transform:uppercase;letter-spacing:.15em;color:var(--bitflow-color-text);background:var(--bitflow-color-surface);border:var(--bitflow-border-width) solid var(--bitflow-color-border);border-radius:var(--bitflow-radius-small)}.bitflow-crossword-mark{font-size:var(--bitflow-font-size-small)}.bitflow-crossword-mark-correct{color:var(--bitflow-color-correct)}.bitflow-crossword-mark-wrong{color:var(--bitflow-color-wrong)}.bitflow-crossword-preview{margin-top:var(--bitflow-space-xxsmall)}.bitflow-crossword-solution{font-size:60cqw;font-weight:var(--bitflow-font-weight-medium);line-height:1;text-transform:uppercase}", Ce = Q(["across", "down"]), We = q({
4
4
  /** Stable across edits, so an answer keeps pointing at the same word. */
5
5
  id: A().min(1),
6
6
  clue: A().default(""),
@@ -12,11 +12,11 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
12
12
  /** Zero-based, from the top-left of the grid. */
13
13
  row: Z().int().min(0).default(0),
14
14
  column: Z().int().min(0).default(0),
15
- orientation: Me.default("across")
16
- }), Ce = Q(["words", "letters"]), O = (e) => e.trim().toUpperCase().slice(0, 1), W = (e) => [...e.trim().toUpperCase()].filter((l) => l !== " "), Ae = q({
15
+ orientation: Ce.default("across")
16
+ }), Le = Q(["words", "letters"]), O = (e) => e.trim().toUpperCase().slice(0, 1), W = (e) => [...e.trim().toUpperCase()].filter((l) => l !== " "), Ae = q({
17
17
  instruction: A().default(""),
18
18
  words: he(We).default([]),
19
- scoring: Ce.default("words"),
19
+ scoring: Le.default("words"),
20
20
  /**
21
21
  * Whether a wrong letter costs a point. Off by default: a crossword
22
22
  * rewards care already, and a learner who guesses at the last clue should
@@ -69,7 +69,7 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
69
69
  * adds a word.
70
70
  */
71
71
  letters: ue(A(), A()).default({})
72
- }), y = (e, l) => `${e},${l}`, ee = (e) => W(e.answer).map((l, n) => ({
72
+ }), k = (e, l) => `${e},${l}`, ee = (e) => W(e.answer).map((l, n) => ({
73
73
  row: e.row + (e.orientation === "down" ? n : 0),
74
74
  column: e.column + (e.orientation === "across" ? n : 0)
75
75
  })), ze = (e) => {
@@ -79,7 +79,7 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
79
79
  e.forEach((c, b) => {
80
80
  const g = W(c.answer);
81
81
  ee(c).forEach((r, t) => {
82
- const i = y(r.row, r.column), f = n.get(i);
82
+ const i = k(r.row, r.column), f = n.get(i);
83
83
  if (!f) {
84
84
  n.set(i, { letter: g[t], wordIndex: b });
85
85
  return;
@@ -109,16 +109,16 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
109
109
  });
110
110
  const m = /* @__PURE__ */ new Set();
111
111
  return l.filter((c) => m.has(c.index) ? !1 : (m.add(c.index), !0));
112
- }, R = (e) => {
112
+ }, S = (e) => {
113
113
  const l = e.words.filter((i) => W(i.answer).length > 0);
114
114
  if (l.length === 0)
115
115
  return { rows: 0, columns: 0, cells: /* @__PURE__ */ new Map(), words: [] };
116
116
  const n = l.map(ee), s = n.flat(), o = Math.min(...s.map((i) => i.row)), u = Math.min(...s.map((i) => i.column)), m = /* @__PURE__ */ new Map();
117
117
  l.forEach((i, f) => {
118
118
  const x = W(i.answer);
119
- n[f].forEach((k, N) => {
120
- const E = k.row - o, M = k.column - u, C = y(E, M), L = m.get(C) ?? { row: E, column: M, solution: x[N] };
121
- L[i.orientation] = i.id, m.set(C, L);
119
+ n[f].forEach((y, N) => {
120
+ const H = y.row - o, C = y.column - u, L = k(H, C), M = m.get(L) ?? { row: H, column: C, solution: x[N] };
121
+ M[i.orientation] = i.id, m.set(L, M);
122
122
  });
123
123
  });
124
124
  const c = Math.max(...[...m.values()].map((i) => i.row)) + 1, b = Math.max(...[...m.values()].map((i) => i.column)) + 1, g = l.map((i, f) => ({
@@ -128,10 +128,10 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
128
128
  letters: W(i.answer)
129
129
  })).sort((i, f) => i.row - f.row || i.column - f.column), r = /* @__PURE__ */ new Map(), t = [];
130
130
  for (const i of g) {
131
- const f = y(i.row, i.column), x = r.get(f) ?? r.size + 1;
131
+ const f = k(i.row, i.column), x = r.get(f) ?? r.size + 1;
132
132
  r.set(f, x);
133
- const k = m.get(f);
134
- k && (k.number = x), t.push({
133
+ const y = m.get(f);
134
+ y && (y.number = x), t.push({
135
135
  ...i.word,
136
136
  row: i.row,
137
137
  column: i.column,
@@ -140,26 +140,26 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
140
140
  });
141
141
  }
142
142
  return { rows: c, columns: b, cells: m, words: t };
143
- }, Ee = (e) => ({
143
+ }, He = (e) => ({
144
144
  across: e.words.filter((l) => l.orientation === "across"),
145
145
  down: e.words.filter((l) => l.orientation === "down")
146
- }), S = (e, l) => {
146
+ }), $ = (e, l) => {
147
147
  const n = e.words.find((s) => s.id === l);
148
148
  return n ? n.letters.map(
149
149
  (s, o) => e.cells.get(
150
- y(
150
+ k(
151
151
  n.row + (n.orientation === "down" ? o : 0),
152
152
  n.column + (n.orientation === "across" ? o : 0)
153
153
  )
154
154
  )
155
155
  ).filter((s) => s !== void 0) : [];
156
- }, He = (e, l) => O(e?.letters?.[l] ?? ""), U = (e, l, n, s) => {
157
- const o = e.cells.get(y(n, s));
156
+ }, Ee = (e, l) => O(e?.letters?.[l] ?? ""), U = (e, l, n, s) => {
157
+ const o = e.cells.get(k(n, s));
158
158
  if (!o) return "blank";
159
- const u = He(l, y(n, s));
159
+ const u = Ee(l, k(n, s));
160
160
  return u ? u === o.solution ? "correct" : "wrong" : "blank";
161
- }, oe = (e, l, n = R(e)) => n.words.map((s) => {
162
- const o = S(n, s.id).map(
161
+ }, oe = (e, l, n = S(e)) => n.words.map((s) => {
162
+ const o = $(n, s.id).map(
163
163
  (u) => U(n, l, u.row, u.column)
164
164
  );
165
165
  return {
@@ -168,7 +168,7 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
168
168
  complete: o.every((u) => u !== "blank"),
169
169
  wrong: o.filter((u) => u === "wrong").length
170
170
  };
171
- }), Pe = (e, l, n = R(e)) => {
171
+ }), Pe = (e, l, n = S(e)) => {
172
172
  if (e.scoring === "letters") {
173
173
  const u = [...n.cells.values()], m = u.reduce((c, b) => {
174
174
  const g = U(n, l, b.row, b.column);
@@ -178,13 +178,13 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
178
178
  }
179
179
  const s = oe(e, l, n), o = s.reduce((u, m) => m.correct ? u + 1 : m.wrong > 0 && e.penaliseWrong ? u - 1 : u, 0);
180
180
  return { earned: Math.max(0, o), possible: s.length };
181
- }, Se = ({
181
+ }, $e = ({
182
182
  data: e,
183
183
  answer: l
184
184
  }) => {
185
185
  if (e.evaluation.mode === "skip")
186
186
  return { state: "unknown", allowRetry: !1 };
187
- const n = R(e), s = oe(e, l, n), o = Pe(e, l, n);
187
+ const n = S(e), s = oe(e, l, n), o = Pe(e, l, n);
188
188
  return {
189
189
  state: o.possible > 0 && o.earned === o.possible ? "correct" : "wrong",
190
190
  score: o,
@@ -228,7 +228,7 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
228
228
  clueWrong: "nicht richtig",
229
229
  clueUnfinished: "nicht fertig"
230
230
  }
231
- }, Re = ({
231
+ }, Se = ({
232
232
  data: e,
233
233
  answer: l,
234
234
  outcomes: n,
@@ -236,28 +236,28 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
236
236
  readonly: o,
237
237
  onChange: u
238
238
  }) => {
239
- const m = (d, a) => B(K, d, s, a), c = R(e), b = Ee(c), g = c.words[0], [r, t] = D.useState({
239
+ const m = (d, a) => B(K, d, s, a), c = S(e), b = He(c), g = c.words[0], [r, t] = D.useState({
240
240
  row: g?.row ?? 0,
241
241
  column: g?.column ?? 0
242
242
  }), [i, f] = D.useState(
243
243
  g?.orientation ?? "across"
244
- ), x = D.useRef(/* @__PURE__ */ new Map()), k = D.useRef(null), N = (d) => c.cells.get(y(d.row, d.column)), E = (d) => l.letters[y(d.row, d.column)] ?? "", M = N(r) ? r : { row: g?.row ?? 0, column: g?.column ?? 0 }, C = (() => {
245
- const d = N(M), a = d?.[i] ?? d?.[i === "across" ? "down" : "across"];
244
+ ), x = D.useRef(/* @__PURE__ */ new Map()), y = D.useRef(null), N = (d) => c.cells.get(k(d.row, d.column)), H = (d) => l.letters[k(d.row, d.column)] ?? "", C = N(r) ? r : { row: g?.row ?? 0, column: g?.column ?? 0 }, L = (() => {
245
+ const d = N(C), a = d?.[i] ?? d?.[i === "across" ? "down" : "across"];
246
246
  return c.words.find((p) => p.id === a);
247
- })(), L = C ? S(c, C.id) : [], se = (d) => L.some(
247
+ })(), M = L ? $(c, L.id) : [], se = (d) => M.some(
248
248
  (a) => a.row === d.row && a.column === d.column
249
249
  ), G = (d) => {
250
- t(d), x.current.get(y(d.row, d.column))?.focus();
251
- }, $ = (d, a) => {
250
+ t(d), x.current.get(k(d.row, d.column))?.focus();
251
+ }, I = (d, a) => {
252
252
  if (o) return;
253
- const p = y(d.row, d.column), h = { ...l.letters };
253
+ const p = k(d.row, d.column), h = { ...l.letters };
254
254
  a ? h[p] = a : delete h[p], u({ letters: h });
255
255
  }, Y = (d, a) => {
256
- const p = L.findIndex(
256
+ const p = M.findIndex(
257
257
  (v) => v.row === d.row && v.column === d.column
258
- ), h = L[p + a];
258
+ ), h = M[p + a];
259
259
  return h ? { row: h.row, column: h.column } : void 0;
260
- }, T = (d, a, p) => {
260
+ }, R = (d, a, p) => {
261
261
  for (let h = 1; h <= Math.max(c.rows, c.columns); h++) {
262
262
  const v = { row: d.row + a * h, column: d.column + p * h };
263
263
  if (N(v)) return v;
@@ -268,44 +268,44 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
268
268
  const p = (v) => v && G(v), h = {
269
269
  // A perpendicular arrow turns the corner rather than leaving the word,
270
270
  // which is what every crossword on paper and screen does.
271
- ArrowRight: () => i === "across" ? p(T(a, 0, 1)) : f("across"),
272
- ArrowLeft: () => i === "across" ? p(T(a, 0, -1)) : f("across"),
273
- ArrowDown: () => i === "down" ? p(T(a, 1, 0)) : f("down"),
274
- ArrowUp: () => i === "down" ? p(T(a, -1, 0)) : f("down"),
275
- Home: () => p(L[0]),
276
- End: () => p(L[L.length - 1]),
271
+ ArrowRight: () => i === "across" ? p(R(a, 0, 1)) : f("across"),
272
+ ArrowLeft: () => i === "across" ? p(R(a, 0, -1)) : f("across"),
273
+ ArrowDown: () => i === "down" ? p(R(a, 1, 0)) : f("down"),
274
+ ArrowUp: () => i === "down" ? p(R(a, -1, 0)) : f("down"),
275
+ Home: () => p(M[0]),
276
+ End: () => p(M[M.length - 1]),
277
277
  " ": () => f(i === "across" ? "down" : "across"),
278
278
  Backspace: () => {
279
- if (E(a)) {
280
- $(a, "");
279
+ if (H(a)) {
280
+ I(a, "");
281
281
  return;
282
282
  }
283
283
  const v = Y(a, -1);
284
- v && ($(v, ""), p(v));
284
+ v && (I(v, ""), p(v));
285
285
  },
286
- Delete: () => $(a, "")
286
+ Delete: () => I(a, "")
287
287
  }[d.key];
288
288
  h && (d.preventDefault(), h());
289
289
  }, ae = (d, a) => {
290
290
  const p = O(a.slice(-1));
291
291
  if (!p) return;
292
- $(d, p);
292
+ I(d, p);
293
293
  const h = Y(d, 1);
294
294
  h && G(h);
295
295
  }, ie = (d, a) => {
296
296
  if (o) return;
297
297
  const p = { ...l.letters };
298
- S(c, d.id).forEach((h, v) => {
299
- const j = O(a[v] ?? ""), H = y(h.row, h.column);
300
- j ? p[H] = j : delete p[H];
298
+ $(c, d.id).forEach((h, v) => {
299
+ const j = O(a[v] ?? ""), E = k(h.row, h.column);
300
+ j ? p[E] = j : delete p[E];
301
301
  }), u({ letters: p });
302
- }, ce = (d) => S(c, d.id).map((a) => l.letters[y(a.row, a.column)] ?? " ").join("").trimEnd(), de = (d) => n?.find((a) => a.wordId === d);
302
+ }, ce = (d) => $(c, d.id).map((a) => l.letters[k(a.row, a.column)] ?? " ").join("").trimEnd(), de = (d) => n?.find((a) => a.wordId === d);
303
303
  function we(d) {
304
304
  const a = [m("cellAt", { row: d.row + 1, column: d.column + 1 })];
305
305
  for (const p of ["across", "down"]) {
306
306
  const h = c.words.find((j) => j.id === d[p]);
307
307
  if (!h) continue;
308
- const v = S(c, h.id).findIndex(
308
+ const v = $(c, h.id).findIndex(
309
309
  (j) => j.row === d.row && j.column === d.column
310
310
  ) + 1;
311
311
  a.push(
@@ -342,14 +342,14 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
342
342
  },
343
343
  h
344
344
  );
345
- const j = M.row === a && M.column === h, H = n ? U(c, l, a, h) : void 0, I = ["bitflow-crossword-cell"];
346
- return se(v) && I.push("bitflow-crossword-cell-word"), j && I.push("bitflow-crossword-cell-here"), H && I.push(`bitflow-crossword-cell-${H}`), /* @__PURE__ */ w.jsxs("div", { role: "gridcell", className: I.join(" "), children: [
345
+ const j = C.row === a && C.column === h, E = n ? U(c, l, a, h) : void 0, T = ["bitflow-crossword-cell"];
346
+ return se(v) && T.push("bitflow-crossword-cell-word"), j && T.push("bitflow-crossword-cell-here"), E && T.push(`bitflow-crossword-cell-${E}`), /* @__PURE__ */ w.jsxs("div", { role: "gridcell", className: T.join(" "), children: [
347
347
  v.number !== void 0 && /* @__PURE__ */ w.jsx("span", { className: "bitflow-crossword-number", "aria-hidden": "true", children: v.number }),
348
348
  /* @__PURE__ */ w.jsx(
349
349
  "input",
350
350
  {
351
351
  ref: (P) => {
352
- x.current.set(y(a, h), P);
352
+ x.current.set(k(a, h), P);
353
353
  },
354
354
  className: "bitflow-crossword-input",
355
355
  type: "text",
@@ -360,14 +360,14 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
360
360
  maxLength: 1,
361
361
  disabled: o,
362
362
  tabIndex: j ? 0 : -1,
363
- value: E({ row: a, column: h }),
363
+ value: H({ row: a, column: h }),
364
364
  "aria-label": we(v),
365
365
  onFocus: () => t({ row: a, column: h }),
366
366
  onPointerDown: () => {
367
- k.current = y(M.row, M.column);
367
+ y.current = k(C.row, C.column);
368
368
  },
369
369
  onClick: () => {
370
- k.current === y(a, h) && f(i === "across" ? "down" : "across");
370
+ y.current === k(a, h) && f(i === "across" ? "down" : "across");
371
371
  },
372
372
  onKeyDown: (P) => le(P, { row: a, column: h }),
373
373
  onChange: (P) => ae({ row: a, column: h }, P.target.value)
@@ -381,7 +381,7 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
381
381
  (d) => b[d].length === 0 ? null : /* @__PURE__ */ w.jsxs("section", { children: [
382
382
  /* @__PURE__ */ w.jsx("h3", { className: "bitflow-label", children: m(d) }),
383
383
  /* @__PURE__ */ w.jsx("ul", { className: "bitflow-crossword-clue-list", children: b[d].map((a) => {
384
- const p = de(a.id), h = C?.id === a.id;
384
+ const p = de(a.id), h = L?.id === a.id;
385
385
  return /* @__PURE__ */ w.jsxs(
386
386
  "li",
387
387
  {
@@ -439,7 +439,7 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
439
439
  ) })
440
440
  ] })
441
441
  ] });
442
- }, $e = {
442
+ }, Ie = {
443
443
  en: {
444
444
  instructionLabel: "Instruction",
445
445
  instructionHint: "Shown above the grid. Markdown is allowed.",
@@ -502,7 +502,7 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
502
502
  );
503
503
  let s;
504
504
  for (let r = 0; r < n.length; r++) {
505
- const t = Te(n, r);
505
+ const t = Re(n, r);
506
506
  if ((!s || t.unplaced.length < s.unplaced.length || t.unplaced.length === s.unplaced.length && t.area < s.area) && (s = t), s.unplaced.length === 0 && r >= 2) break;
507
507
  }
508
508
  const { placed: o, unplaced: u } = s, m = Math.min(...o.map((r) => r.row)), c = Math.min(...o.map((r) => r.column)), b = Math.max(
@@ -529,12 +529,12 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
529
529
  words: e.map((r) => ({ ...r, ...g.get(r.id) ?? {} })),
530
530
  unplaced: u
531
531
  };
532
- }, Te = (e, l) => {
532
+ }, Re = (e, l) => {
533
533
  const n = /* @__PURE__ */ new Map(), s = [], o = (r, t) => {
534
534
  const i = z(t.orientation);
535
535
  r.letters.forEach((f, x) => {
536
- const k = y(t.row + i.row * x, t.column + i.column * x), N = n.get(k) ?? { letter: f, across: !1, down: !1 };
537
- N[t.orientation] = !0, n.set(k, N);
536
+ const y = k(t.row + i.row * x, t.column + i.column * x), N = n.get(y) ?? { letter: f, across: !1, down: !1 };
537
+ N[t.orientation] = !0, n.set(y, N);
538
538
  }), s.push({ ...r, ...t });
539
539
  };
540
540
  o(e[l], { row: 0, column: 0, orientation: "across" });
@@ -543,7 +543,7 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
543
543
  for (; m.length > 0; ) {
544
544
  const r = [];
545
545
  for (const t of m) {
546
- const i = Ie(n, s, t.letters);
546
+ const i = Te(n, s, t.letters);
547
547
  i ? o(t, i) : r.push(t);
548
548
  }
549
549
  if (r.length === m.length) {
@@ -560,7 +560,7 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
560
560
  r.column + (r.orientation === "across" ? r.letters.length - 1 : 0)
561
561
  ]), g = (Math.max(...c) - Math.min(...c) + 1) * (Math.max(...b) - Math.min(...b) + 1);
562
562
  return { placed: s, unplaced: u, area: g };
563
- }, Ie = (e, l, n) => {
563
+ }, Te = (e, l, n) => {
564
564
  let s;
565
565
  for (const o of l) {
566
566
  const u = z(o.orientation), m = re(o.orientation), c = z(m);
@@ -580,20 +580,20 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
580
580
  }
581
581
  return s?.at;
582
582
  }, De = (e, l, n) => {
583
- const s = z(n.orientation), o = z(re(n.orientation)), u = y(n.row - s.row, n.column - s.column), m = y(
583
+ const s = z(n.orientation), o = z(re(n.orientation)), u = k(n.row - s.row, n.column - s.column), m = k(
584
584
  n.row + s.row * l.length,
585
585
  n.column + s.column * l.length
586
586
  );
587
587
  if (e.has(u) || e.has(m)) return null;
588
588
  let c = 0;
589
589
  for (let b = 0; b < l.length; b++) {
590
- const g = n.row + s.row * b, r = n.column + s.column * b, t = e.get(y(g, r));
590
+ const g = n.row + s.row * b, r = n.column + s.column * b, t = e.get(k(g, r));
591
591
  if (t !== void 0) {
592
592
  if (t.letter !== l[b] || t[n.orientation]) return null;
593
593
  c++;
594
594
  continue;
595
595
  }
596
- if (e.has(y(g - o.row, r - o.column)) || e.has(y(g + o.row, r + o.column)))
596
+ if (e.has(k(g - o.row, r - o.column)) || e.has(k(g + o.row, r + o.column)))
597
597
  return null;
598
598
  }
599
599
  return c > 0 ? c : null;
@@ -615,7 +615,7 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
615
615
  }) => /* @__PURE__ */ w.jsxs("div", { className: "bitflow-stack", children: [
616
616
  /* @__PURE__ */ w.jsx(je, { markdown: e.instruction }),
617
617
  /* @__PURE__ */ w.jsx(
618
- Re,
618
+ Se,
619
619
  {
620
620
  data: e,
621
621
  answer: { letters: l?.letters ?? {} },
@@ -636,10 +636,10 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
636
636
  onChange: n,
637
637
  errors: s
638
638
  }) => {
639
- const o = (t, i) => B($e, t, l, i), u = (t) => n({ ...e, ...t }), m = (t, i = !0) => u({ words: i ? V(t).words : t }), c = (t, i, f = !0) => m(
639
+ const o = (t, i) => B(Ie, t, l, i), u = (t) => n({ ...e, ...t }), m = (t, i = !0) => u({ words: i ? V(t).words : t }), c = (t, i, f = !0) => m(
640
640
  e.words.map((x) => x.id === t ? { ...x, ...i } : x),
641
641
  f
642
- ), b = ge(e.words.map((t) => t.id)), g = V(e.words).unplaced, r = R(e);
642
+ ), b = ge(e.words.map((t) => t.id)), g = V(e.words).unplaced, r = S(e);
643
643
  return /* @__PURE__ */ w.jsxs("div", { className: "bitflow-stack", children: [
644
644
  /* @__PURE__ */ w.jsx(
645
645
  xe,
@@ -735,10 +735,10 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
735
735
  className: "bitflow-crossword-grid bitflow-crossword-preview",
736
736
  style: { "--bitflow-crossword-columns": r.columns },
737
737
  children: Array.from({ length: r.rows }, (t, i) => /* @__PURE__ */ w.jsx("div", { className: "bitflow-crossword-row", children: Array.from({ length: r.columns }, (f, x) => {
738
- const k = r.cells.get(y(i, x));
739
- return k ? /* @__PURE__ */ w.jsxs("span", { className: "bitflow-crossword-cell", children: [
740
- k.number !== void 0 && /* @__PURE__ */ w.jsx("span", { className: "bitflow-crossword-number", children: k.number }),
741
- /* @__PURE__ */ w.jsx("span", { className: "bitflow-crossword-solution", children: k.solution })
738
+ const y = r.cells.get(k(i, x));
739
+ return y ? /* @__PURE__ */ w.jsxs("span", { className: "bitflow-crossword-cell", children: [
740
+ y.number !== void 0 && /* @__PURE__ */ w.jsx("span", { className: "bitflow-crossword-number", children: y.number }),
741
+ /* @__PURE__ */ w.jsx("span", { className: "bitflow-crossword-solution", children: y.solution })
742
742
  ] }, x) : /* @__PURE__ */ w.jsx("span", { className: "bitflow-crossword-blank" }, x);
743
743
  }) }, i))
744
744
  }
@@ -759,7 +759,7 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
759
759
  }
760
760
  ),
761
761
  /* @__PURE__ */ w.jsx(
762
- ye,
762
+ ke,
763
763
  {
764
764
  label: o("penaliseLabel"),
765
765
  hint: o("penaliseHint"),
@@ -768,7 +768,7 @@ const Le = ".bitflow-crossword{display:flex;flex-direction:column;gap:var(--bitf
768
768
  }
769
769
  ),
770
770
  /* @__PURE__ */ w.jsx(
771
- ke,
771
+ ye,
772
772
  {
773
773
  evaluation: e.evaluation,
774
774
  locale: l,
@@ -782,7 +782,7 @@ be({
782
782
  type: te,
783
783
  kind: "task",
784
784
  schema: Ae,
785
- evaluate: Se,
785
+ evaluate: $e,
786
786
  Task: Be,
787
787
  Form: Oe,
788
788
  info: (e) => ({
@@ -798,30 +798,30 @@ be({
798
798
  })
799
799
  });
800
800
  Ne(te);
801
- pe("bitflow-styles-task-crossword", Le);
801
+ pe("bitflow-styles-task-crossword", Me);
802
802
  export {
803
803
  Ue as AnswerSchema,
804
- Re as Crossword,
804
+ Se as Crossword,
805
805
  Ae as DataSchema,
806
806
  Oe as Form,
807
- Me as OrientationSchema,
808
- Ce as ScoringSchema,
807
+ Ce as OrientationSchema,
808
+ Le as ScoringSchema,
809
809
  te as TYPE,
810
810
  Be as Task,
811
811
  We as WordSchema,
812
- y as cellKey,
812
+ k as cellKey,
813
813
  U as cellOutcome,
814
814
  ee as cellsOf,
815
- Ee as cluesOf,
816
- Se as evaluate,
817
- $e as formMessages,
818
- R as gridOf,
815
+ He as cluesOf,
816
+ $e as evaluate,
817
+ Ie as formMessages,
818
+ S as gridOf,
819
819
  V as layout,
820
- He as letterAt,
820
+ Ee as letterAt,
821
821
  W as lettersOf,
822
822
  K as messages,
823
823
  O as normalise,
824
824
  oe as outcomes,
825
- S as pathOf,
825
+ $ as pathOf,
826
826
  Pe as scoreOf
827
827
  };