structural-codes-viewer 0.1.0-alpha.1 → 0.1.0-alpha.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 (135) hide show
  1. package/LICENSE +501 -0
  2. package/NOTICE +16 -0
  3. package/README.md +119 -63
  4. package/package-dist/CorpusContent.d.ts +44 -9
  5. package/package-dist/CorpusContent.js +452 -26
  6. package/package-dist/CorpusContent.js.map +1 -1
  7. package/package-dist/NormativeViewer.d.ts +23 -2
  8. package/package-dist/NormativeViewer.js +1699 -234
  9. package/package-dist/NormativeViewer.js.map +1 -1
  10. package/package-dist/ReferenceTools.d.ts +49 -0
  11. package/package-dist/ReferenceTools.js +14 -0
  12. package/package-dist/ReferenceTools.js.map +1 -0
  13. package/package-dist/annotations/AnnotationUi.d.ts +57 -0
  14. package/package-dist/annotations/AnnotationUi.js +114 -0
  15. package/package-dist/annotations/AnnotationUi.js.map +1 -0
  16. package/package-dist/annotations/annotationTargets.d.ts +39 -0
  17. package/package-dist/annotations/annotationTargets.js +94 -0
  18. package/package-dist/annotations/annotationTargets.js.map +1 -0
  19. package/package-dist/annotations/exportImport.d.ts +6 -0
  20. package/package-dist/annotations/exportImport.js +30 -0
  21. package/package-dist/annotations/exportImport.js.map +1 -0
  22. package/package-dist/annotations/index.d.ts +4 -0
  23. package/package-dist/annotations/index.js +5 -0
  24. package/package-dist/annotations/index.js.map +1 -0
  25. package/package-dist/annotations/indexedDb.d.ts +21 -0
  26. package/package-dist/annotations/indexedDb.js +210 -0
  27. package/package-dist/annotations/indexedDb.js.map +1 -0
  28. package/package-dist/annotations/schema.d.ts +8 -0
  29. package/package-dist/annotations/schema.js +102 -0
  30. package/package-dist/annotations/schema.js.map +1 -0
  31. package/package-dist/annotations/types.d.ts +52 -0
  32. package/package-dist/annotations/types.js +18 -0
  33. package/package-dist/annotations/types.js.map +1 -0
  34. package/package-dist/chatntc/canonicalization.d.ts +15 -0
  35. package/package-dist/chatntc/canonicalization.js +107 -0
  36. package/package-dist/chatntc/canonicalization.js.map +1 -0
  37. package/package-dist/chatntc/directives.d.ts +2 -0
  38. package/package-dist/chatntc/directives.js +38 -0
  39. package/package-dist/chatntc/directives.js.map +1 -0
  40. package/package-dist/chatntc/evidence.d.ts +17 -0
  41. package/package-dist/chatntc/evidence.js +116 -0
  42. package/package-dist/chatntc/evidence.js.map +1 -0
  43. package/package-dist/chatntc/index.d.ts +10 -0
  44. package/package-dist/chatntc/index.js +9 -0
  45. package/package-dist/chatntc/index.js.map +1 -0
  46. package/package-dist/chatntc/issueCategories.d.ts +2 -0
  47. package/package-dist/chatntc/issueCategories.js +11 -0
  48. package/package-dist/chatntc/issueCategories.js.map +1 -0
  49. package/package-dist/chatntc/policy.d.ts +35 -0
  50. package/package-dist/chatntc/policy.js +36 -0
  51. package/package-dist/chatntc/policy.js.map +1 -0
  52. package/package-dist/chatntc/provider.d.ts +42 -0
  53. package/package-dist/chatntc/provider.js +2 -0
  54. package/package-dist/chatntc/provider.js.map +1 -0
  55. package/package-dist/chatntc/responseContract.d.ts +52 -0
  56. package/package-dist/chatntc/responseContract.js +73 -0
  57. package/package-dist/chatntc/responseContract.js.map +1 -0
  58. package/package-dist/chatntc/retrieval.d.ts +5 -0
  59. package/package-dist/chatntc/retrieval.js +220 -0
  60. package/package-dist/chatntc/retrieval.js.map +1 -0
  61. package/package-dist/chatntc/types.d.ts +240 -0
  62. package/package-dist/chatntc/types.js +2 -0
  63. package/package-dist/chatntc/types.js.map +1 -0
  64. package/package-dist/chatntc/validation.d.ts +8 -0
  65. package/package-dist/chatntc/validation.js +299 -0
  66. package/package-dist/chatntc/validation.js.map +1 -0
  67. package/package-dist/chatntc/viewerArtifacts.d.ts +14 -0
  68. package/package-dist/chatntc/viewerArtifacts.js +168 -0
  69. package/package-dist/chatntc/viewerArtifacts.js.map +1 -0
  70. package/package-dist/chatntc-history/index.d.ts +2 -0
  71. package/package-dist/chatntc-history/index.js +3 -0
  72. package/package-dist/chatntc-history/index.js.map +1 -0
  73. package/package-dist/chatntc-history/indexedDb.d.ts +27 -0
  74. package/package-dist/chatntc-history/indexedDb.js +258 -0
  75. package/package-dist/chatntc-history/indexedDb.js.map +1 -0
  76. package/package-dist/chatntc-history/schema.d.ts +5 -0
  77. package/package-dist/chatntc-history/schema.js +102 -0
  78. package/package-dist/chatntc-history/schema.js.map +1 -0
  79. package/package-dist/chatntc-history/types.d.ts +78 -0
  80. package/package-dist/chatntc-history/types.js +23 -0
  81. package/package-dist/chatntc-history/types.js.map +1 -0
  82. package/package-dist/chatntc-ui/ChatNTCHistoryPanel.d.ts +9 -0
  83. package/package-dist/chatntc-ui/ChatNTCHistoryPanel.js +239 -0
  84. package/package-dist/chatntc-ui/ChatNTCHistoryPanel.js.map +1 -0
  85. package/package-dist/chatntc-ui/ChatNTCIcons.d.ts +10 -0
  86. package/package-dist/chatntc-ui/ChatNTCIcons.js +20 -0
  87. package/package-dist/chatntc-ui/ChatNTCIcons.js.map +1 -0
  88. package/package-dist/chatntc-ui/ChatNTCLoadingSkeleton.d.ts +1 -0
  89. package/package-dist/chatntc-ui/ChatNTCLoadingSkeleton.js +5 -0
  90. package/package-dist/chatntc-ui/ChatNTCLoadingSkeleton.js.map +1 -0
  91. package/package-dist/chatntc-ui/ChatNTCMarkdown.d.ts +14 -0
  92. package/package-dist/chatntc-ui/ChatNTCMarkdown.js +112 -0
  93. package/package-dist/chatntc-ui/ChatNTCMarkdown.js.map +1 -0
  94. package/package-dist/chatntc-ui/ChatNTCPanel.d.ts +29 -0
  95. package/package-dist/chatntc-ui/ChatNTCPanel.js +241 -0
  96. package/package-dist/chatntc-ui/ChatNTCPanel.js.map +1 -0
  97. package/package-dist/chatntc-ui/historyMessages.d.ts +5 -0
  98. package/package-dist/chatntc-ui/historyMessages.js +53 -0
  99. package/package-dist/chatntc-ui/historyMessages.js.map +1 -0
  100. package/package-dist/chatntc-ui/index.d.ts +3 -0
  101. package/package-dist/chatntc-ui/index.js +4 -0
  102. package/package-dist/chatntc-ui/index.js.map +1 -0
  103. package/package-dist/chatntc-ui/transport.d.ts +51 -0
  104. package/package-dist/chatntc-ui/transport.js +9 -0
  105. package/package-dist/chatntc-ui/transport.js.map +1 -0
  106. package/package-dist/chunkNavigation.d.ts +12 -0
  107. package/package-dist/chunkNavigation.js +44 -0
  108. package/package-dist/chunkNavigation.js.map +1 -0
  109. package/package-dist/corpusData.d.ts +176 -33
  110. package/package-dist/corpusData.js +52 -0
  111. package/package-dist/corpusData.js.map +1 -1
  112. package/package-dist/crossReferences.d.ts +46 -0
  113. package/package-dist/crossReferences.js +198 -0
  114. package/package-dist/crossReferences.js.map +1 -0
  115. package/package-dist/generate-artifacts.mjs +47 -12
  116. package/package-dist/globalScrubber.d.ts +10 -0
  117. package/package-dist/globalScrubber.js +85 -0
  118. package/package-dist/globalScrubber.js.map +1 -0
  119. package/package-dist/permalinks.d.ts +22 -0
  120. package/package-dist/permalinks.js +36 -0
  121. package/package-dist/permalinks.js.map +1 -0
  122. package/package-dist/searchClient.d.ts +22 -0
  123. package/package-dist/searchClient.js +133 -0
  124. package/package-dist/searchClient.js.map +1 -0
  125. package/package-dist/searchEngine.d.ts +68 -0
  126. package/package-dist/searchEngine.js +558 -0
  127. package/package-dist/searchEngine.js.map +1 -0
  128. package/package-dist/searchWorker.d.ts +1 -0
  129. package/package-dist/searchWorker.js +32 -0
  130. package/package-dist/searchWorker.js.map +1 -0
  131. package/package-dist/styles.css +927 -182
  132. package/package-dist/tableCaptions.d.mts +3 -0
  133. package/package-dist/tableCaptions.mjs +35 -0
  134. package/package-dist/tableCaptions.mjs.map +1 -0
  135. package/package.json +61 -15
@@ -1,6 +1,9 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  /* eslint-disable @next/next/no-img-element */
3
+ import { useEffect, useRef, useState } from "react";
3
4
  import katex from "katex";
5
+ import { findCrossReferences } from "./crossReferences.js";
6
+ import { visibleTableCaption, visibleTableCaptionInline, visibleTableNumberSuffix } from "./tableCaptions.mjs";
4
7
  const editorialTableNotePatterns = [
5
8
  /^\s*\[(?:TABELLA|ASSET)_[^\]]+\]/iu,
6
9
  /\bevidence\b/iu,
@@ -16,57 +19,480 @@ const editorialTableNotePatterns = [
16
19
  /\bschema corrente\b/iu,
17
20
  /\bdescrizion[ei] (?:testuali|strutturat[ae])\b/iu,
18
21
  /\bissue bloccante\b/iu,
19
- /\bprima della pubblicazione\b/iu,
20
22
  ];
21
- function visibleTableNotes(notes) {
22
- return notes.filter((note) => !editorialTableNotePatterns.some((pattern) => pattern.test(note)));
23
+ function visibleTableNotes(table) {
24
+ return table.notes
25
+ .map((text, index) => { var _a; return ({ text, inline: (_a = table.notesInline) === null || _a === void 0 ? void 0 : _a[index] }); })
26
+ .filter(({ text }) => !editorialTableNotePatterns.some((pattern) => pattern.test(text)));
23
27
  }
28
+ function tableColumnCount(headers, rows) {
29
+ return Math.max(0, ...[...headers, ...rows].map((row) => row.reduce((count, cell) => { var _a; return count + ((_a = cell.colSpan) !== null && _a !== void 0 ? _a : 1); }, 0)));
30
+ }
31
+ function tableAssetClass(officialNumber, assetId) {
32
+ const suffix = officialNumber === null || officialNumber === void 0 ? void 0 : officialNumber.toLowerCase().replace(/[^a-z0-9]+/gu, "-").replace(/^-|-$/gu, "");
33
+ const classes = suffix ? [`table-asset-${suffix}`] : [];
34
+ if (assetId === null || assetId === void 0 ? void 0 : assetId.endsWith(":c5.delta-t0"))
35
+ classes.push("table-asset-c5-delta-t0");
36
+ return classes.join(" ");
37
+ }
38
+ function figureAssetClass(officialNumber) {
39
+ const suffix = officialNumber === null || officialNumber === void 0 ? void 0 : officialNumber.toLowerCase().replace(/[^a-z0-9]+/gu, "-").replace(/^-|-$/gu, "");
40
+ return suffix ? `figure-asset-${suffix}` : "";
41
+ }
42
+ const latexMarkupCache = new Map();
24
43
  function latexMarkup(latex, displayMode) {
25
- return { __html: katex.renderToString(latex, { displayMode, throwOnError: false, strict: "warn", output: "html" }) };
44
+ const key = `${displayMode ? "display" : "inline"}:${latex}`;
45
+ const cached = latexMarkupCache.get(key);
46
+ if (cached)
47
+ return cached;
48
+ const markup = { __html: katex.renderToString(latex, { displayMode, throwOnError: false, strict: "warn", output: "html" }) };
49
+ latexMarkupCache.set(key, markup);
50
+ return markup;
51
+ }
52
+ function copyableImageClipboard() {
53
+ var _a;
54
+ return typeof navigator !== "undefined"
55
+ && typeof ((_a = navigator.clipboard) === null || _a === void 0 ? void 0 : _a.write) === "function"
56
+ && typeof ClipboardItem !== "undefined";
57
+ }
58
+ async function writeImageToClipboard(blob) {
59
+ if (!copyableImageClipboard())
60
+ throw new Error("Il browser non supporta la copia di immagini negli appunti.");
61
+ // Pass the promise directly so Clipboard.write is called while the click
62
+ // still has transient user activation; awaiting the rasterization first can
63
+ // make Chromium reject the write with NotAllowedError.
64
+ await navigator.clipboard.write([new ClipboardItem({ "image/png": blob })]);
65
+ }
66
+ async function figureImageBlob(image) {
67
+ const response = await fetch(image.currentSrc || image.src);
68
+ if (!response.ok)
69
+ throw new Error(`Impossibile caricare l'immagine (${response.status}).`);
70
+ const blob = await response.blob();
71
+ if (!blob.type.startsWith("image/"))
72
+ throw new Error("La risorsa non è un'immagine.");
73
+ return blob;
74
+ }
75
+ function CopyFigureIcon({ status }) {
76
+ if (status === "copied")
77
+ return _jsx("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", children: _jsx("path", { d: "m6.5 12.5 3.4 3.4 7.6-8" }) });
78
+ if (status === "error")
79
+ return _jsxs("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", children: [_jsx("path", { d: "M12 7.5v6" }), _jsx("path", { d: "M12 17.2v.3" }), _jsx("circle", { cx: "12", cy: "12", r: "9" })] });
80
+ return _jsxs("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", children: [_jsx("path", { d: "M7.5 6V5.5A2.5 2.5 0 0 1 10 3h7.5A2.5 2.5 0 0 1 20 5.5V13a2.5 2.5 0 0 1-2.5 2.5H17" }), _jsx("rect", { x: "4", y: "7", width: "13", height: "13", rx: "2.5" }), _jsx("circle", { cx: "13", cy: "11", r: "1.25" }), _jsx("path", { d: "m6.5 17 3.25-3.5 2.4 2.45 1.55-1.55 1.8 2.1" })] });
81
+ }
82
+ function CopyFigureButton() {
83
+ const [status, setStatus] = useState("idle");
84
+ const resetTimer = useRef(null);
85
+ useEffect(() => () => {
86
+ if (resetTimer.current !== null)
87
+ window.clearTimeout(resetTimer.current);
88
+ }, []);
89
+ async function copyFigure(event) {
90
+ const asset = event.currentTarget.closest(".scv-copyable-asset");
91
+ const target = asset === null || asset === void 0 ? void 0 : asset.querySelector("img");
92
+ if (!target)
93
+ return;
94
+ try {
95
+ await writeImageToClipboard(figureImageBlob(target));
96
+ setStatus("copied");
97
+ if (resetTimer.current !== null)
98
+ window.clearTimeout(resetTimer.current);
99
+ resetTimer.current = window.setTimeout(() => setStatus("idle"), 1700);
100
+ }
101
+ catch (_a) {
102
+ setStatus("error");
103
+ if (resetTimer.current !== null)
104
+ window.clearTimeout(resetTimer.current);
105
+ resetTimer.current = window.setTimeout(() => setStatus("idle"), 2200);
106
+ }
107
+ }
108
+ const feedback = status === "copied" ? "Immagine copiata negli appunti" : status === "error" ? "Copia non disponibile" : "Copia immagine";
109
+ return _jsx("button", { type: "button", className: `scv-copy-asset scv-copy-asset-${status}`, onClick: (event) => void copyFigure(event), "aria-label": feedback, title: feedback, children: _jsx(CopyFigureIcon, { status: status }) });
110
+ }
111
+ function MathCell({ cell, assetsBaseUrl }) {
112
+ const content = cell.inline
113
+ ? renderInlineSegments(cell.inline)
114
+ : cell.latex
115
+ ? _jsx("span", { className: "table-math", dangerouslySetInnerHTML: latexMarkup(cell.latex, false) })
116
+ : cell.text;
117
+ if (!cell.image)
118
+ return _jsx(_Fragment, { children: content });
119
+ const width = Math.max(1, Math.round(cell.image.region.width * 3));
120
+ const height = Math.max(1, Math.round(cell.image.region.height * 3));
121
+ return _jsxs("div", { className: "table-cell-content", children: [content && _jsx("div", { children: content }), _jsx("img", { className: "table-cell-image", loading: "lazy", src: `${assetsBaseUrl.replace(/\/+$/u, "")}/${cell.image.imagePath}`, alt: cell.image.alt, width: width, height: height })] });
122
+ }
123
+ function tableCellClass(cell) {
124
+ return [
125
+ cell.strong ? "table-cell-strong" : "",
126
+ cell.align ? `table-cell-align-${cell.align}` : "",
127
+ cell.noWrap ? "table-cell-no-wrap" : "",
128
+ cell.verticalText ? "table-cell-vertical" : "",
129
+ cell.shade ? `table-cell-shade-${cell.shade}` : "",
130
+ cell.spacer ? "table-cell-spacer" : "",
131
+ cell.subrowIndent ? "table-cell-subrow-indent" : "",
132
+ cell.subrowLabel ? "table-cell-subrow-label" : "",
133
+ cell.text.includes("\n") ? "table-cell-multiline" : "",
134
+ ].filter(Boolean).join(" ") || undefined;
135
+ }
136
+ export function leadingMathLabelEnd(inline) {
137
+ var _a;
138
+ if (((_a = inline[0]) === null || _a === void 0 ? void 0 : _a.kind) !== "math")
139
+ return 0;
140
+ let end = 1;
141
+ for (let index = 1; index < inline.length; index += 1) {
142
+ const segment = inline[index];
143
+ if (segment.kind === "math") {
144
+ end = index + 1;
145
+ continue;
146
+ }
147
+ if (segment.kind === "text" && /^(?:[\s,]+|[\s,]*(?:e|ed)[\s,]*)$/u.test(segment.value)) {
148
+ end = index + 1;
149
+ continue;
150
+ }
151
+ if (segment.kind === "text" && /^\s*(?:sono|è)\b/u.test(segment.value))
152
+ break;
153
+ break;
154
+ }
155
+ return end;
156
+ }
157
+ export function hasOfficialListMarker(block) {
158
+ var _a, _b;
159
+ return block.kind === "list-item" && /^\s*(?:[–—-]|\(?[a-z0-9]+[.)])\s+/iu.test((_b = (_a = block.text) === null || _a === void 0 ? void 0 : _a.normalized) !== null && _b !== void 0 ? _b : "");
160
+ }
161
+ const alphaRatioListUnitSuffixes = [":7.4.3.2", ":7.5.2.2", ":7.8.1.3"];
162
+ export function hasAlphaRatioListLayout(block, sourceUnitId) {
163
+ var _a, _b;
164
+ if (!sourceUnitId || !alphaRatioListUnitSuffixes.some((suffix) => sourceUnitId.endsWith(suffix)))
165
+ return false;
166
+ return block.kind === "list-item" && Boolean((_b = (_a = block.text) === null || _a === void 0 ? void 0 : _a.inline) === null || _b === void 0 ? void 0 : _b.some((segment) => { var _a; return segment.kind === "math" && /\\alpha_u\s*\/\s*\\alpha_1/u.test((_a = segment.latex) !== null && _a !== void 0 ? _a : ""); }));
167
+ }
168
+ export function hasInferredAlphaRatioListMarker(block, sourceUnitId) {
169
+ return hasAlphaRatioListLayout(block, sourceUnitId) && !hasOfficialListMarker(block);
170
+ }
171
+ function alphaRatioInlineWithMarker(block, sourceUnitId) {
172
+ var _a;
173
+ const inline = (_a = block.text) === null || _a === void 0 ? void 0 : _a.inline;
174
+ if (!inline || !hasInferredAlphaRatioListMarker(block, sourceUnitId))
175
+ return inline;
176
+ return [{ kind: "text", value: "- " }, ...inline];
177
+ }
178
+ export function hasAlphabeticListMarker(block) {
179
+ var _a, _b;
180
+ return block.kind === "list-item" && /^\s*(?:[a-z]+\.\d+\)|\(?[a-z]+[.)]|\d+[.)])\s+/iu.test((_b = (_a = block.text) === null || _a === void 0 ? void 0 : _a.normalized) !== null && _b !== void 0 ? _b : "");
181
+ }
182
+ export function hasSimpleDashMarker(block) {
183
+ var _a, _b;
184
+ if (block.kind !== "list-item" || block.listMarker === "none" || block.listMarker === "bullet")
185
+ return false;
186
+ return Boolean((_b = (_a = block.text) === null || _a === void 0 ? void 0 : _a.normalized) === null || _b === void 0 ? void 0 : _b.trim())
187
+ && !hasTrailingStrong(block)
188
+ && !hasTrailingMath(block)
189
+ && (block.listMarker === "dash" || !hasOfficialListMarker(block));
190
+ }
191
+ export function hasNoListMarker(block) {
192
+ return block.kind === "list-item" && block.listMarker === "none";
193
+ }
194
+ export function listMarkerClass(block) {
195
+ return block.kind === "list-item" && block.listMarker === "bullet" ? "list-item-with-bullet" : "";
196
+ }
197
+ export function listLevelClass(block) {
198
+ var _a;
199
+ return block.kind === "list-item" && ((_a = block.listLevel) !== null && _a !== void 0 ? _a : 0) > 0 ? `list-item-level-${block.listLevel}` : "";
26
200
  }
27
- function MathCell({ cell }) {
28
- if (!cell.latex)
29
- return cell.text;
30
- return _jsx("span", { className: "table-math", dangerouslySetInnerHTML: latexMarkup(cell.latex, false) });
201
+ export function indentLevelClass(block) {
202
+ return block.indentLevel && block.indentLevel > 0 ? `block-indent-${block.indentLevel}` : "";
31
203
  }
32
- export function BlockContent({ block, assets, showRaw = false, assetsBaseUrl = "/assets" }) {
33
- var _a, _b, _c, _d;
204
+ export function hasLeadingMath(block) {
205
+ var _a, _b;
206
+ const inline = (_a = block.text) === null || _a === void 0 ? void 0 : _a.inline;
207
+ return block.kind === "list-item" && block.listMarker === "none" && ((_b = inline === null || inline === void 0 ? void 0 : inline[0]) === null || _b === void 0 ? void 0 : _b.kind) === "math";
208
+ }
209
+ export function hasAlignedListContinuation(block) {
210
+ var _a, _b;
211
+ return block.kind === "list-item"
212
+ && block.listMarker === "none"
213
+ && /^\s*[–—-]\s+/u.test((_b = (_a = block.text) === null || _a === void 0 ? void 0 : _a.normalized) !== null && _b !== void 0 ? _b : "");
214
+ }
215
+ export function hasLeadingEmphasisLabel(block) {
216
+ var _a;
217
+ const inline = (_a = block.text) === null || _a === void 0 ? void 0 : _a.inline;
218
+ const label = inline === null || inline === void 0 ? void 0 : inline[0];
219
+ const following = inline === null || inline === void 0 ? void 0 : inline[1];
220
+ if (block.kind === "list-item" && block.listMarker === "none" && (label === null || label === void 0 ? void 0 : label.kind) === "strong" && inline !== undefined && inline.length > 1)
221
+ return true;
222
+ return ((block.kind === "paragraph" || (block.kind === "list-item" && block.listMarker === "none")) &&
223
+ ((label === null || label === void 0 ? void 0 : label.kind) === "em" || (label === null || label === void 0 ? void 0 : label.kind) === "underline") &&
224
+ (/:\s*$/u.test(label.value) || /^\s*:/u.test((following === null || following === void 0 ? void 0 : following.kind) === "text" ? following.value : "")));
225
+ }
226
+ export function leadingLabelKind(block) {
227
+ if (hasLeadingMath(block))
228
+ return "math";
229
+ if (hasLeadingEmphasisLabel(block))
230
+ return "emphasis";
231
+ return null;
232
+ }
233
+ export function groupAlignedLabelBlocks(blocks) {
234
+ var _a, _b;
235
+ const groups = [];
236
+ let index = 0;
237
+ while (index < blocks.length) {
238
+ const labelKind = leadingLabelKind(blocks[index]);
239
+ if (!labelKind) {
240
+ groups.push({ kind: "block", block: blocks[index], index });
241
+ index += 1;
242
+ continue;
243
+ }
244
+ const labelBlocks = [blocks[index]];
245
+ const indentLevel = (_a = blocks[index].indentLevel) !== null && _a !== void 0 ? _a : 0;
246
+ index += 1;
247
+ while (index < blocks.length
248
+ && ((_b = blocks[index].indentLevel) !== null && _b !== void 0 ? _b : 0) === indentLevel
249
+ && (leadingLabelKind(blocks[index]) === labelKind || (labelKind === "math" && hasAlignedListContinuation(blocks[index])))) {
250
+ labelBlocks.push(blocks[index]);
251
+ index += 1;
252
+ }
253
+ groups.push({ kind: "label-list", blocks: labelBlocks });
254
+ }
255
+ return groups;
256
+ }
257
+ export function hasTrailingStrong(block) {
258
+ var _a, _b;
259
+ const inline = (_a = block.text) === null || _a === void 0 ? void 0 : _a.inline;
260
+ return block.kind === "list-item" && inline !== undefined && inline.length > 0 && ((_b = inline.at(-1)) === null || _b === void 0 ? void 0 : _b.kind) === "strong";
261
+ }
262
+ export function hasTrailingMath(block) {
263
+ var _a, _b, _c;
264
+ const inline = (_a = block.text) === null || _a === void 0 ? void 0 : _a.inline;
265
+ if (block.kind !== "list-item" || !inline || inline.length < 2 || ((_b = inline[0]) === null || _b === void 0 ? void 0 : _b.kind) === "math" || ((_c = inline[1]) === null || _c === void 0 ? void 0 : _c.kind) !== "math")
266
+ return false;
267
+ return inline.slice(2).every((segment) => segment.kind === "text" && /^[\s,.;:!?»)\]]*$/u.test(segment.value));
268
+ }
269
+ function renderReferenceText(value, context, keyPrefix) {
270
+ var _a;
271
+ if (!context)
272
+ return value;
273
+ const references = findCrossReferences(value);
274
+ if (references.length === 0)
275
+ return value;
276
+ const nodes = [];
277
+ let offset = 0;
278
+ for (const reference of references) {
279
+ if (reference.start > offset)
280
+ nodes.push(value.slice(offset, reference.start));
281
+ nodes.push(_jsx("button", { type: "button", className: "scv-cross-reference", "data-scv-reference-kind": reference.kind, "data-scv-reference-number": reference.number, "data-scv-reference-document": (_a = reference.documentHint) !== null && _a !== void 0 ? _a : "", "data-scv-source-unit-id": context.sourceUnitId, "data-scv-source-document": context.sourceDocument, children: value.slice(reference.start, reference.end) }, `${keyPrefix}:${reference.start}:${reference.end}`));
282
+ offset = reference.end;
283
+ }
284
+ if (offset < value.length)
285
+ nodes.push(value.slice(offset));
286
+ return nodes;
287
+ }
288
+ export function renderInlineSegments(inline, context = null) {
289
+ const nodes = [];
290
+ inline.forEach((segment, index) => {
291
+ var _a, _b;
292
+ if (segment.kind === "math") {
293
+ nodes.push(_jsx("span", { className: "inline-math", title: segment.value, dangerouslySetInnerHTML: latexMarkup(segment.latex, false) }, `${segment.value}-${index}`));
294
+ return;
295
+ }
296
+ if (segment.kind === "em") {
297
+ nodes.push(_jsx("em", { children: renderReferenceText(segment.value, context, `em-${index}`) }, `em-${index}`));
298
+ return;
299
+ }
300
+ if (segment.kind === "underline") {
301
+ nodes.push(_jsx("u", { children: renderReferenceText(segment.value, context, `underline-${index}`) }, `underline-${index}`));
302
+ return;
303
+ }
304
+ if (segment.kind === "em-underline") {
305
+ nodes.push(_jsx("em", { children: _jsx("u", { children: renderReferenceText(segment.value, context, `em-underline-${index}`) }) }, `em-underline-${index}`));
306
+ return;
307
+ }
308
+ if (segment.kind === "strong-em") {
309
+ nodes.push(_jsx("strong", { children: _jsx("em", { children: renderReferenceText(segment.value, context, `strong-em-${index}`) }) }, `strong-em-${index}`));
310
+ return;
311
+ }
312
+ if (segment.kind === "strong-underline") {
313
+ nodes.push(_jsx("strong", { children: _jsx("u", { children: renderReferenceText(segment.value, context, `strong-underline-${index}`) }) }, `strong-underline-${index}`));
314
+ return;
315
+ }
316
+ if (segment.kind === "strong") {
317
+ nodes.push(_jsx("strong", { children: renderReferenceText(segment.value, context, `strong-${index}`) }, `strong-${index}`));
318
+ return;
319
+ }
320
+ const previous = inline[index - 1];
321
+ const leading = (_b = (_a = segment.value.match(/^[,.;:!?»)\]—-]+/u)) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : "";
322
+ if (leading && (previous === null || previous === void 0 ? void 0 : previous.kind) === "math") {
323
+ nodes[nodes.length - 1] = _jsxs("span", { className: "inline-keep-punct", children: [nodes[nodes.length - 1], leading] }, `keep-${index}`);
324
+ const rest = segment.value.slice(leading.length);
325
+ if (rest)
326
+ nodes.push(_jsx("span", { children: renderReferenceText(rest, context, `text-${index}`) }, `text-${index}`));
327
+ return;
328
+ }
329
+ nodes.push(_jsx("span", { children: renderReferenceText(segment.value, context, `text-${index}`) }, `text-${index}`));
330
+ });
331
+ return nodes;
332
+ }
333
+ function splitInlinePrefix(inline, prefix) {
334
+ let remaining = prefix;
335
+ const marker = [];
336
+ const description = [];
337
+ for (const segment of inline) {
338
+ if (!remaining) {
339
+ description.push(segment);
340
+ continue;
341
+ }
342
+ if (segment.kind === "math")
343
+ return null;
344
+ let consumed = 0;
345
+ while (consumed < segment.value.length && consumed < remaining.length && segment.value[consumed] === remaining[consumed])
346
+ consumed += 1;
347
+ if (consumed === 0)
348
+ return null;
349
+ if (consumed < segment.value.length) {
350
+ if (consumed !== remaining.length)
351
+ return null;
352
+ marker.push(Object.assign(Object.assign({}, segment), { value: segment.value.slice(0, consumed) }));
353
+ const rest = segment.value.slice(consumed);
354
+ if (rest)
355
+ description.push(Object.assign(Object.assign({}, segment), { value: rest }));
356
+ remaining = "";
357
+ continue;
358
+ }
359
+ marker.push(segment);
360
+ remaining = remaining.slice(consumed);
361
+ }
362
+ return remaining ? null : { marker, description };
363
+ }
364
+ function renderLeadingLabelContent(block, context, aligned) {
365
+ var _a;
366
+ const inline = (_a = block.text) === null || _a === void 0 ? void 0 : _a.inline;
367
+ if (!inline)
368
+ return null;
369
+ if (aligned && hasAlignedListContinuation(block)) {
370
+ return _jsxs(_Fragment, { children: [_jsx("span", { className: "leading-label-empty", "aria-hidden": "true" }), _jsx("span", { className: "leading-label-description", children: renderInlineSegments(inline, context) })] });
371
+ }
372
+ if (hasLeadingEmphasisLabel(block)) {
373
+ const label = inline[0];
374
+ const labelHasColon = /:\s*$/u.test(label.value);
375
+ const description = inline.slice(1).map((segment, index) => index === 0 && segment.kind === "text" ? Object.assign(Object.assign({}, segment), { value: segment.value.replace(labelHasColon ? /^\s*/u : /^\s*:\s*/u, "") }) : segment);
376
+ return _jsxs(_Fragment, { children: [_jsx("span", { className: "leading-label", children: label.kind === "strong" ? _jsx("strong", { children: label.value }) : label.kind === "em" ? _jsxs(_Fragment, { children: [_jsx("em", { children: label.value }), labelHasColon ? null : ":"] }) : label.kind === "underline" ? _jsxs(_Fragment, { children: [_jsx("u", { children: label.value }), labelHasColon ? null : ":"] }) : label.value }), _jsx("span", { className: "leading-label-description", children: renderInlineSegments(description, context) })] });
377
+ }
378
+ if (hasLeadingMath(block)) {
379
+ const labelEnd = leadingMathLabelEnd(inline);
380
+ const label = inline.slice(0, labelEnd);
381
+ const description = inline.slice(labelEnd).map((segment, index) => index === 0 && segment.kind === "text" ? Object.assign(Object.assign({}, segment), { value: segment.value.replace(/^\s+/u, "") }) : segment);
382
+ return _jsxs(_Fragment, { children: [_jsx("span", { className: "leading-math-label", children: renderInlineSegments(label, context) }), _jsx("span", { className: "leading-math-description", children: renderInlineSegments(description, context) })] });
383
+ }
384
+ return null;
385
+ }
386
+ function renderAlphabeticListContent(block, context) {
387
+ var _a, _b;
388
+ if (!hasAlphabeticListMarker(block))
389
+ return null;
390
+ const inline = (_a = block.text) === null || _a === void 0 ? void 0 : _a.inline;
391
+ const normalized = (_b = block.text) === null || _b === void 0 ? void 0 : _b.normalized;
392
+ const source = normalized;
393
+ if (!source)
394
+ return null;
395
+ const match = source.match(/^(\s*(?:[a-z]+\.\d+\)|\(?[a-z]+[.)]|\d+[.)])\s+)/iu);
396
+ if (!match)
397
+ return null;
398
+ if (!inline) {
399
+ return _jsxs(_Fragment, { children: [_jsx("span", { className: "list-marker-label", children: match[1] }), _jsx("span", { className: "list-description", children: normalized.slice(match[0].length) })] });
400
+ }
401
+ const split = splitInlinePrefix(inline, match[1]);
402
+ if (!split)
403
+ return _jsxs(_Fragment, { children: [_jsx("span", { className: "list-marker-label", children: match[1] }), _jsx("span", { className: "list-description", children: renderInlineSegments(inline, context) })] });
404
+ return _jsxs(_Fragment, { children: [_jsx("span", { className: "list-marker-label", children: renderInlineSegments(split.marker, context) }), _jsx("span", { className: "list-description", children: renderInlineSegments(split.description, context) })] });
405
+ }
406
+ export function BlockContent({ block, assets, assetsBaseUrl = "/assets", aligned = false, sourceUnitId, sourceDocument }) {
407
+ var _a, _b, _c, _d, _e, _f, _g;
408
+ const referenceContext = sourceUnitId && sourceDocument ? { sourceUnitId, sourceDocument } : null;
34
409
  if (block.text) {
35
- if (showRaw || !block.text.inline)
36
- return _jsx("p", { children: showRaw ? block.text.raw : block.text.normalized });
37
- return _jsx("p", { children: block.text.inline.map((segment, index) => segment.kind === "math" ? (_jsx("span", { className: "inline-math", title: segment.value, dangerouslySetInnerHTML: latexMarkup(segment.latex, false) }, `${segment.value}-${index}`)) : _jsx("span", { children: segment.value }, `text-${index}`)) });
410
+ const numberedNoteCounters = new Map();
411
+ const renderNoteParagraph = (paragraph, index) => {
412
+ var _a, _b, _c, _d;
413
+ const content = paragraph.inline
414
+ ? renderInlineSegments(paragraph.inline, referenceContext)
415
+ : renderReferenceText(paragraph.normalized, referenceContext, `${block.blockId}-paragraph-${index}`);
416
+ if (!paragraph.listMarker) {
417
+ numberedNoteCounters.clear();
418
+ return _jsx("p", { children: content }, `${block.blockId}-paragraph-${index}`);
419
+ }
420
+ const match = paragraph.normalized.match(/^\s*(\d+[.)])\s+/u);
421
+ let marker = "–";
422
+ if (paragraph.listMarker === "numbered") {
423
+ const level = (_a = paragraph.listLevel) !== null && _a !== void 0 ? _a : 0;
424
+ const nextNumber = ((_b = numberedNoteCounters.get(level)) !== null && _b !== void 0 ? _b : 0) + 1;
425
+ numberedNoteCounters.set(level, nextNumber);
426
+ marker = (_c = match === null || match === void 0 ? void 0 : match[1]) !== null && _c !== void 0 ? _c : `${nextNumber}.`;
427
+ }
428
+ else if (paragraph.listMarker === "bullet") {
429
+ numberedNoteCounters.clear();
430
+ marker = "•";
431
+ }
432
+ else {
433
+ numberedNoteCounters.clear();
434
+ }
435
+ const description = match && !paragraph.inline ? renderReferenceText(paragraph.normalized.slice(match[0].length), referenceContext, `${block.blockId}-paragraph-${index}-description`) : content;
436
+ return _jsxs("div", { className: "scv-note-list-item", "data-list-level": (_d = paragraph.listLevel) !== null && _d !== void 0 ? _d : 0, children: [_jsx("span", { className: "scv-note-list-marker", "aria-hidden": "true", children: marker }), _jsx("span", { className: "scv-note-list-description", children: description })] }, `${block.blockId}-paragraph-${index}`);
437
+ };
438
+ const textBlock = (content) => {
439
+ var _a;
440
+ return block.kind === "footnote"
441
+ ? _jsxs("div", { className: "scv-note-content", children: [_jsx("span", { className: "scv-note-rule", "aria-hidden": "true" }), ((_a = block.text) === null || _a === void 0 ? void 0 : _a.paragraphs) ? block.text.paragraphs.map(renderNoteParagraph) : _jsx("p", { children: content }), _jsx("span", { className: "scv-note-rule", "aria-hidden": "true" })] })
442
+ : _jsx("p", { children: content });
443
+ };
444
+ const alphabeticListContent = renderAlphabeticListContent(block, referenceContext);
445
+ if (alphabeticListContent)
446
+ return textBlock(alphabeticListContent);
447
+ if (!block.text.inline)
448
+ return textBlock(renderReferenceText(block.text.normalized, referenceContext, block.blockId));
449
+ const inline = (_a = alphaRatioInlineWithMarker(block, sourceUnitId)) !== null && _a !== void 0 ? _a : block.text.inline;
450
+ const leadingLabelContent = renderLeadingLabelContent(block, referenceContext, aligned);
451
+ if (leadingLabelContent)
452
+ return aligned ? _jsx(_Fragment, { children: leadingLabelContent }) : textBlock(leadingLabelContent);
453
+ return textBlock(renderInlineSegments(inline, referenceContext));
38
454
  }
39
455
  if (!block.assetId || !assets)
40
456
  return _jsx("p", { className: "asset-missing", children: "Asset non disponibile." });
41
457
  const formula = assets.formulas[block.assetId];
42
458
  if (formula)
43
- return (_jsxs("figure", { className: "formula-asset", children: [_jsxs("div", { className: "formula-row", children: [_jsx("div", { className: "formula-scroll", dangerouslySetInnerHTML: latexMarkup(formula.latex, true) }), formula.officialNumber && _jsxs("span", { className: "formula-number", children: ["[", formula.officialNumber, "]"] })] }), !formula.officialNumber && _jsx("figcaption", { children: _jsx("span", { children: "Formula non numerata" }) })] }));
459
+ return (_jsx("figure", { className: "formula-asset", children: _jsxs("div", { className: "formula-row", children: [_jsx("div", { className: "formula-scroll", dangerouslySetInnerHTML: latexMarkup(formula.latex, true) }), formula.officialNumber && _jsx("span", { className: "formula-number", children: _jsxs("button", { type: "button", className: "scv-permalink-trigger", "data-scv-copy-link": true, "aria-label": `Copia link alla formula ${formula.officialNumber}`, children: ["[", formula.officialNumber, "]"] }) })] }) }));
44
460
  const table = assets.tables[block.assetId];
45
461
  if (table) {
46
- const notes = visibleTableNotes(table.notes);
47
- return (_jsxs("figure", { className: "table-asset", children: [_jsxs("figcaption", { children: [_jsx("strong", { children: table.officialNumber ? `Tab. ${table.officialNumber}` : "Tabella non numerata" }), table.caption && _jsxs("span", { children: [" \u2014 ", table.caption] })] }), _jsx("div", { className: "table-scroll", children: _jsxs("table", { children: [_jsx("thead", { children: table.headers.map((row, rowIndex) => _jsx("tr", { children: row.map((cell, cellIndex) => _jsx("th", { colSpan: cell.colSpan, rowSpan: cell.rowSpan, children: _jsx(MathCell, { cell: cell }) }, `head-${rowIndex}-${cellIndex}`)) }, `head-${rowIndex}`)) }), _jsx("tbody", { children: table.rows.map((row, rowIndex) => _jsx("tr", { children: row.map((cell, cellIndex) => _jsx("td", { colSpan: cell.colSpan, rowSpan: cell.rowSpan, children: _jsx(MathCell, { cell: cell }) }, `body-${rowIndex}-${cellIndex}`)) }, `body-${rowIndex}`)) })] }) }), notes.length > 0 && _jsx("ul", { className: "table-notes", children: notes.map((note) => _jsx("li", { children: note }, note)) })] }));
462
+ const notes = visibleTableNotes(table);
463
+ const caption = visibleTableCaption(table.officialNumber, table.caption);
464
+ const captionInline = visibleTableCaptionInline(table.officialNumber, table.caption, table.captionInline);
465
+ const numberSuffix = visibleTableNumberSuffix(table.officialNumber, table.caption);
466
+ const label = table.officialNumber ? `Tab. ${table.officialNumber}${numberSuffix}` : table.hideLabel ? null : "Tabella non numerata";
467
+ const compactTable = Math.max(tableColumnCount(table.headers, table.rows), tableColumnCount([], (_b = table.footerRows) !== null && _b !== void 0 ? _b : [])) <= 4;
468
+ const renderRows = (rows, keyPrefix) => rows.map((row, rowIndex) => _jsx("tr", { children: row.map((cell, cellIndex) => { const CellTag = cell.header === true ? "th" : "td"; return _jsx(CellTag, { colSpan: cell.colSpan, rowSpan: cell.rowSpan, className: tableCellClass(cell), children: _jsx(MathCell, { cell: cell, assetsBaseUrl: assetsBaseUrl }) }, `${keyPrefix}-${rowIndex}-${cellIndex}`); }) }, `${keyPrefix}-${rowIndex}`));
469
+ return (_jsxs("figure", { className: `table-asset ${tableAssetClass(table.officialNumber, table.id)}`, children: [(label || caption) && _jsx("figcaption", { children: _jsxs("button", { type: "button", className: "scv-permalink-trigger scv-caption-permalink", "data-scv-copy-link": true, "aria-label": `Copia link alla tabella${table.officialNumber ? ` ${table.officialNumber}` : ""}`, children: [label && _jsx("strong", { children: label }), caption && _jsxs("span", { children: [label ? " — " : "", captionInline ? renderInlineSegments(captionInline) : caption] })] }) }), _jsxs("div", { className: `table-scroll ${compactTable ? "table-scroll-compact" : ""}`, children: [_jsxs("table", { children: [table.columnWidths && _jsx("colgroup", { children: table.columnWidths.map((width, index) => _jsx("col", { style: { width: `${width}%` } }, `column-${index}`)) }), _jsx("thead", { children: table.headers.map((row, rowIndex) => _jsx("tr", { children: row.map((cell, cellIndex) => { const CellTag = cell.header === false ? "td" : "th"; return _jsx(CellTag, { colSpan: cell.colSpan, rowSpan: cell.rowSpan, className: tableCellClass(cell), children: _jsx(MathCell, { cell: cell, assetsBaseUrl: assetsBaseUrl }) }, `head-${rowIndex}-${cellIndex}`); }) }, `head-${rowIndex}`)) }), _jsx("tbody", { children: renderRows(table.rows, "body") })] }), table.footerRows && _jsxs("table", { className: "table-independent-footer", children: [table.footerColumnWidths && _jsx("colgroup", { children: table.footerColumnWidths.map((width, index) => _jsx("col", { style: { width: `${width}%` } }, `footer-column-${index}`)) }), _jsx("tbody", { children: renderRows(table.footerRows, "footer") })] })] }), notes.length > 0 && _jsxs("div", { className: "table-notes", children: [_jsx("span", { className: "scv-note-rule", "aria-hidden": "true" }), notes.map(({ text, inline }) => _jsx("p", { children: inline ? renderInlineSegments(inline) : text }, text)), _jsx("span", { className: "scv-note-rule", "aria-hidden": "true" })] })] }));
48
470
  }
49
471
  const figure = assets.figures[block.assetId];
50
472
  if (figure) {
51
- const width = Math.max(1, Math.round((_b = (_a = figure.region) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 800));
52
- const height = Math.max(1, Math.round((_d = (_c = figure.region) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : 600));
53
- return _jsxs("figure", { className: "figure-asset", children: [_jsx("img", { loading: "lazy", src: `${assetsBaseUrl.replace(/\/+$/u, "")}/${figure.imagePath}`, alt: figure.alt, width: width, height: height }), _jsx("figcaption", { children: _jsx("span", { children: figure.caption }) })] });
473
+ const width = Math.max(1, Math.round((_d = (_c = figure.region) === null || _c === void 0 ? void 0 : _c.width) !== null && _d !== void 0 ? _d : 800));
474
+ const height = Math.max(1, Math.round((_f = (_e = figure.region) === null || _e === void 0 ? void 0 : _e.height) !== null && _f !== void 0 ? _f : 600));
475
+ const displayScale = (_g = figure.displayScale) !== null && _g !== void 0 ? _g : 1;
476
+ const imageStyle = displayScale === 1 ? undefined : { width: `${displayScale * 100}%`, maxWidth: "none" };
477
+ return _jsxs("figure", { className: `figure-asset ${figureAssetClass(figure.officialNumber)} scv-copyable-asset`, children: [_jsx("img", { loading: "lazy", src: `${assetsBaseUrl.replace(/\/+$/u, "")}/${figure.imagePath}`, alt: figure.alt, width: width, height: height, style: imageStyle }), figure.caption && _jsx("figcaption", { children: _jsx("button", { type: "button", className: "scv-permalink-trigger scv-caption-permalink", "data-scv-copy-link": true, "aria-label": `Copia link alla figura${figure.officialNumber ? ` ${figure.officialNumber}` : ""}`, children: figure.captionInline ? renderInlineSegments(figure.captionInline) : figure.caption }) }), _jsx(CopyFigureButton, {})] });
54
478
  }
55
479
  return _jsxs("p", { className: "asset-missing", children: ["Asset non risolto: ", block.assetId] });
56
480
  }
481
+ export function AlignedLabelList({ blocks, assets, assetsBaseUrl = "/assets", sourceUnitId, sourceDocument, renderAccessory }) {
482
+ var _a, _b;
483
+ const rootClass = "scv-label-list";
484
+ const indentLevel = (_b = (_a = blocks[0]) === null || _a === void 0 ? void 0 : _a.indentLevel) !== null && _b !== void 0 ? _b : 0;
485
+ return _jsx("div", { className: `${rootClass} ${indentLevel > 0 ? `block-indent-${indentLevel}` : ""}`, children: blocks.map((block) => _jsxs("div", { tabIndex: 0, className: `${rootClass}-row`, "data-scv-citation-target": "block", "data-scv-source-unit-id": sourceUnitId, "data-scv-block-id": block.blockId, children: [_jsx("div", { className: `${rootClass}-content`, children: _jsx(BlockContent, { block: block, assets: assets, assetsBaseUrl: assetsBaseUrl, sourceUnitId: sourceUnitId, sourceDocument: sourceDocument, aligned: true }) }), renderAccessory === null || renderAccessory === void 0 ? void 0 : renderAccessory(block)] }, block.blockId)) });
486
+ }
57
487
  function comparableTitle(value) {
58
488
  return value.normalize("NFKC").replace(/\s+/gu, " ").trim().toLocaleLowerCase("it");
59
489
  }
60
490
  export function isRepeatedUnitTitle(unit, block) {
491
+ if (unit.titleBlockId && block.blockId === unit.titleBlockId)
492
+ return true;
61
493
  if (block.kind !== "heading" || !block.text)
62
494
  return false;
63
495
  const renderedHeading = comparableTitle(block.text.normalized);
64
496
  return renderedHeading === comparableTitle(unit.title) || renderedHeading === comparableTitle(`${unit.numbering.official} ${unit.title}`);
65
497
  }
66
- export function UnitBlocks({ unit, assets, showRaw = false, compact = false, assetsBaseUrl = "/assets" }) {
67
- return _jsx("div", { className: `normative-copy ${compact ? "normative-copy-compact" : ""}`, children: unit.blocks.map((block, index) => {
68
- var _a;
69
- return _jsxs("section", { className: `text-block ${block.kind === "heading" ? "heading-block" : ""} ${block.kind === "list-item" ? "list-item-block" : ""} ${block.assetId ? "asset-block" : ""}`, children: [_jsxs("div", { className: "block-gutter", children: [_jsx("span", { children: String(index + 1).padStart(2, "0") }), block.evidence && _jsxs("span", { title: "Pagina PDF", children: ["p.", block.evidence.pdfPage] })] }), _jsxs("div", { children: [_jsx("span", { className: "block-kind", children: block.kind }), _jsx(BlockContent, { block: block, assets: assets, showRaw: showRaw, assetsBaseUrl: assetsBaseUrl }), ((_a = block.evidence) === null || _a === void 0 ? void 0 : _a.transformations) && block.evidence.transformations.length > 0 && _jsxs("details", { className: "transformations", children: [_jsxs("summary", { children: [block.evidence.transformations.length, " trasformazioni tracciate"] }), _jsx("ul", { children: block.evidence.transformations.map((transformation, transformationIndex) => _jsxs("li", { children: [_jsx("strong", { children: transformation.operation }), transformation.note] }, `${transformation.operation}-${transformationIndex}`)) })] })] })] }, block.blockId);
70
- }) });
71
- }
72
498
  //# sourceMappingURL=CorpusContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CorpusContent.js","sourceRoot":"","sources":["../shared/CorpusContent.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CorpusContent.js","sourceRoot":"","sources":["../shared/CorpusContent.tsx"],"names":[],"mappings":"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"}