@erudit-js/prose 4.1.1 → 4.2.0-dev.1

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 (208) hide show
  1. package/dist/app/appElement.d.ts +7 -6
  2. package/dist/app/appElement.js +1 -1
  3. package/dist/app/composables/anchor.d.ts +7 -7
  4. package/dist/app/composables/appElement.d.ts +4 -4
  5. package/dist/app/composables/appElement.js +3 -3
  6. package/dist/app/composables/context.d.ts +3 -2
  7. package/dist/app/composables/elementIcon.d.ts +2 -2
  8. package/dist/app/composables/elementIcon.js +1 -1
  9. package/dist/app/composables/language.d.ts +2 -2
  10. package/dist/app/composables/language.js +1 -1
  11. package/dist/app/composables/storage.d.ts +4 -4
  12. package/dist/app/composables/storage.js +0 -4
  13. package/dist/app/default/Mix.vue +2 -2
  14. package/dist/app/default/Text.vue +2 -2
  15. package/dist/app/shared/Prose.vue +3 -3
  16. package/dist/app/shared/Render.vue +5 -14
  17. package/dist/app/shared/block/AsideMenu.vue +2 -2
  18. package/dist/app/shared/block/AsideMenuCopyLink.vue +1 -1
  19. package/dist/app/shared/block/Block.vue +4 -4
  20. package/dist/app/shared/inliner/Inliner.vue +2 -2
  21. package/dist/coreElement.d.ts +25 -7
  22. package/dist/coreElement.js +2 -2
  23. package/dist/elements/accent/Accent.vue +4 -4
  24. package/dist/elements/accent/AccentColumnSection.vue +2 -2
  25. package/dist/elements/accent/AccentRowSections.vue +2 -2
  26. package/dist/elements/accent/app.d.ts +3 -3
  27. package/dist/elements/accent/app.js +2 -2
  28. package/dist/elements/accent/core.d.ts +61 -300
  29. package/dist/elements/accent/core.js +83 -68
  30. package/dist/elements/callout/Callout.vue +4 -4
  31. package/dist/elements/callout/app.d.ts +1 -8
  32. package/dist/elements/callout/app.js +2 -2
  33. package/dist/elements/callout/core.d.ts +21 -59
  34. package/dist/elements/callout/core.js +18 -17
  35. package/dist/elements/caption/Caption.vue +3 -3
  36. package/dist/elements/caption/app.d.ts +1 -8
  37. package/dist/elements/caption/app.js +2 -2
  38. package/dist/elements/caption/core.d.ts +21 -99
  39. package/dist/elements/caption/core.js +18 -22
  40. package/dist/elements/details/Details.vue +3 -3
  41. package/dist/elements/details/app.d.ts +1 -8
  42. package/dist/elements/details/app.js +2 -2
  43. package/dist/elements/details/core.d.ts +18 -61
  44. package/dist/elements/details/core.js +16 -11
  45. package/dist/elements/diagram/Diagram.vue +14 -11
  46. package/dist/elements/diagram/app.d.ts +1 -29
  47. package/dist/elements/diagram/app.js +2 -2
  48. package/dist/elements/diagram/core.d.ts +14 -177
  49. package/dist/elements/diagram/core.js +5 -8
  50. package/dist/elements/emphasis/Emphasis.vue +3 -3
  51. package/dist/elements/emphasis/app.d.ts +1 -8
  52. package/dist/elements/emphasis/app.js +2 -2
  53. package/dist/elements/emphasis/core.d.ts +13 -76
  54. package/dist/elements/emphasis/core.js +8 -9
  55. package/dist/elements/flex/Flex.vue +3 -3
  56. package/dist/elements/flex/app.d.ts +1 -8
  57. package/dist/elements/flex/app.js +2 -2
  58. package/dist/elements/flex/core.d.ts +16 -58
  59. package/dist/elements/flex/core.js +6 -7
  60. package/dist/elements/gallery/Gallery.vue +3 -3
  61. package/dist/elements/gallery/app.d.ts +1 -22
  62. package/dist/elements/gallery/app.js +2 -2
  63. package/dist/elements/gallery/core.d.ts +11 -132
  64. package/dist/elements/gallery/core.js +4 -5
  65. package/dist/elements/heading/Heading.vue +3 -3
  66. package/dist/elements/heading/_global.d.ts +2 -2
  67. package/dist/elements/heading/app.d.ts +1 -8
  68. package/dist/elements/heading/app.js +2 -2
  69. package/dist/elements/heading/core.d.ts +13 -97
  70. package/dist/elements/heading/core.js +8 -8
  71. package/dist/elements/horizontalLine/app.d.ts +1 -8
  72. package/dist/elements/horizontalLine/app.js +2 -2
  73. package/dist/elements/horizontalLine/core.d.ts +9 -47
  74. package/dist/elements/horizontalLine/core.js +4 -5
  75. package/dist/elements/image/Image.vue +3 -3
  76. package/dist/elements/image/ImageElement.vue +4 -4
  77. package/dist/elements/image/app.d.ts +1 -15
  78. package/dist/elements/image/app.js +2 -2
  79. package/dist/elements/image/core.d.ts +29 -108
  80. package/dist/elements/image/core.js +12 -19
  81. package/dist/elements/image/storage.d.ts +1 -1
  82. package/dist/elements/image/storage.js +6 -6
  83. package/dist/elements/lineBreak/app.d.ts +1 -8
  84. package/dist/elements/lineBreak/app.js +2 -2
  85. package/dist/elements/lineBreak/core.d.ts +9 -47
  86. package/dist/elements/lineBreak/core.js +4 -5
  87. package/dist/elements/link/BlockLink.vue +4 -6
  88. package/dist/elements/link/Link.vue +4 -4
  89. package/dist/elements/link/core.d.ts +6 -6
  90. package/dist/elements/link/core.js +4 -3
  91. package/dist/elements/link/dependency/app.d.ts +1 -15
  92. package/dist/elements/link/dependency/app.js +3 -3
  93. package/dist/elements/link/dependency/core.d.ts +27 -105
  94. package/dist/elements/link/dependency/core.js +6 -8
  95. package/dist/elements/link/hook.d.ts +12 -0
  96. package/dist/elements/link/hook.js +45 -0
  97. package/dist/elements/link/reference/app.d.ts +1 -15
  98. package/dist/elements/link/reference/app.js +3 -3
  99. package/dist/elements/link/reference/core.d.ts +24 -103
  100. package/dist/elements/link/reference/core.js +6 -8
  101. package/dist/elements/link/storage.js +1 -1
  102. package/dist/elements/list/List.vue +7 -5
  103. package/dist/elements/list/_global.d.ts +3 -3
  104. package/dist/elements/list/app.d.ts +1 -15
  105. package/dist/elements/list/app.js +2 -2
  106. package/dist/elements/list/core.d.ts +33 -155
  107. package/dist/elements/list/core.js +20 -18
  108. package/dist/elements/math/app.d.ts +1 -15
  109. package/dist/elements/math/app.js +3 -3
  110. package/dist/elements/math/block.d.ts +31 -43
  111. package/dist/elements/math/block.js +10 -9
  112. package/dist/elements/math/components/BlockMath.vue +4 -4
  113. package/dist/elements/math/components/InlinerMath.vue +4 -4
  114. package/dist/elements/math/core.d.ts +25 -53
  115. package/dist/elements/math/core.js +3 -11
  116. package/dist/elements/math/inliner.d.ts +24 -36
  117. package/dist/elements/math/inliner.js +10 -12
  118. package/dist/elements/paragraph/Paragraph.vue +3 -3
  119. package/dist/elements/paragraph/app.d.ts +1 -8
  120. package/dist/elements/paragraph/app.js +2 -2
  121. package/dist/elements/paragraph/core.d.ts +12 -53
  122. package/dist/elements/paragraph/core.js +6 -7
  123. package/dist/elements/problem/app.d.ts +1 -29
  124. package/dist/elements/problem/app.js +4 -4
  125. package/dist/elements/problem/components/Problem.vue +3 -3
  126. package/dist/elements/problem/components/ProblemContent.vue +15 -21
  127. package/dist/elements/problem/components/ProblemExpanderSection.vue +2 -2
  128. package/dist/elements/problem/components/Problems.vue +11 -7
  129. package/dist/elements/problem/components/SubProblem.vue +3 -4
  130. package/dist/elements/problem/components/expanders/Check.vue +3 -3
  131. package/dist/elements/problem/components/expanders/Checks.vue +6 -3
  132. package/dist/elements/problem/components/expanders/DefaultPlusSections.vue +3 -7
  133. package/dist/elements/problem/components/expanders/Hint.vue +3 -3
  134. package/dist/elements/problem/composables/problemScript.d.ts +2 -2
  135. package/dist/elements/problem/core.d.ts +63 -299
  136. package/dist/elements/problem/core.js +9 -11
  137. package/dist/elements/problem/hook.d.ts +1 -0
  138. package/dist/elements/problem/hook.js +14 -0
  139. package/dist/elements/problem/problem.d.ts +20 -77
  140. package/dist/elements/problem/problem.js +6 -6
  141. package/dist/elements/problem/problemCheck.d.ts +33 -83
  142. package/dist/elements/problem/problemCheck.js +16 -10
  143. package/dist/elements/problem/problemContent.d.ts +54 -401
  144. package/dist/elements/problem/problemContent.js +47 -56
  145. package/dist/elements/problem/problemScript.d.ts +18 -10
  146. package/dist/elements/problem/problemScript.js +15 -26
  147. package/dist/elements/problem/problems.d.ts +29 -188
  148. package/dist/elements/problem/problems.js +11 -15
  149. package/dist/elements/problem/storage.d.ts +1 -1
  150. package/dist/elements/problem/storage.js +2 -3
  151. package/dist/elements/table/Table.vue +3 -3
  152. package/dist/elements/table/app.d.ts +1 -29
  153. package/dist/elements/table/app.js +2 -2
  154. package/dist/elements/table/core.d.ts +28 -309
  155. package/dist/elements/table/core.js +17 -29
  156. package/dist/elements/video/Video.vue +4 -4
  157. package/dist/elements/video/app.d.ts +1 -15
  158. package/dist/elements/video/app.js +2 -2
  159. package/dist/elements/video/core.d.ts +26 -106
  160. package/dist/elements/video/core.js +11 -16
  161. package/dist/elements/video/storage.d.ts +1 -1
  162. package/dist/elements/video/storage.js +2 -3
  163. package/dist/error.d.ts +3 -0
  164. package/dist/error.js +6 -0
  165. package/dist/include.d.ts +4 -4
  166. package/dist/include.js +6 -12
  167. package/dist/index.d.ts +11 -11
  168. package/dist/index.js +11 -11
  169. package/dist/rawElement.d.ts +9 -6
  170. package/dist/rawElement.js +4 -0
  171. package/dist/rawToProse/countSchemas.d.ts +1 -0
  172. package/dist/rawToProse/countSchemas.js +11 -0
  173. package/dist/rawToProse/hook.d.ts +39 -0
  174. package/dist/rawToProse/hook.js +6 -0
  175. package/dist/rawToProse/index.d.ts +34 -0
  176. package/dist/rawToProse/index.js +92 -0
  177. package/dist/rawToProse/uniqueTitles.d.ts +1 -0
  178. package/dist/rawToProse/uniqueTitles.js +11 -0
  179. package/dist/shared/filePath.js +2 -2
  180. package/dist/shared/paragraphWrap.d.ts +3 -3
  181. package/dist/shared/paragraphWrap.js +7 -12
  182. package/dist/slugify/index.d.ts +3 -1
  183. package/dist/slugify/index.js +5 -6
  184. package/dist/slugify/languages/en.js +1 -1
  185. package/dist/slugify/languages/ru.js +1 -1
  186. package/dist/snippet.d.ts +39 -33
  187. package/dist/snippet.js +139 -73
  188. package/dist/tag.d.ts +22 -19
  189. package/dist/tag.js +19 -15
  190. package/dist/toc.d.ts +12 -18
  191. package/dist/toc.js +120 -42
  192. package/package.json +7 -6
  193. package/dist/app/default/Inliners.vue +0 -11
  194. package/dist/context.d.ts +0 -4
  195. package/dist/context.js +0 -1
  196. package/dist/elements/link/step.d.ts +0 -16
  197. package/dist/elements/link/step.js +0 -36
  198. package/dist/elements/problem/step.d.ts +0 -5
  199. package/dist/elements/problem/step.js +0 -13
  200. package/dist/resolve.d.ts +0 -21
  201. package/dist/resolve.js +0 -102
  202. package/dist/resolveStep.d.ts +0 -9
  203. package/dist/resolveStep.js +0 -3
  204. package/dist/title.d.ts +0 -8
  205. package/dist/title.js +0 -6
  206. package/dist/utils/docs.d.ts +0 -1
  207. package/dist/utils/docs.js +0 -22
  208. package/types.d.ts +0 -4
@@ -1,13 +0,0 @@
1
- import { isRawElement } from "@jsprose/core";
2
- import { defineResolveStep } from "../../resolveStep.js";
3
- import { problemSchema } from "./problem.js";
4
- import { subProblemSchema } from "./problems.js";
5
- export const problemScriptStep = defineResolveStep(({ rawElement }) => {
6
- if (!isRawElement(rawElement, problemSchema) && !isRawElement(rawElement, subProblemSchema)) {
7
- return;
8
- }
9
- const script = rawElement.storageKey?.replace("problemScript:", "");
10
- if (script) {
11
- return script;
12
- }
13
- });
package/dist/resolve.d.ts DELETED
@@ -1,21 +0,0 @@
1
- import { resolveRawElement, type AnySchema, type ProseElement } from '@jsprose/core';
2
- import type { EruditRawElement } from './rawElement.js';
3
- import type { EruditProseContext } from './context.js';
4
- import { type ResolvedSnippet } from './snippet.js';
5
- import { type ResolvedTocItem } from './toc.js';
6
- import type { ResolveStep } from './resolveStep.js';
7
- import { type ContentLinks } from './elements/link/step.js';
8
- export declare function resolveEruditRawElement(args: {
9
- context: EruditProseContext;
10
- rawElement: EruditRawElement<AnySchema>;
11
- step?: ResolveStep;
12
- }): Promise<Awaited<ReturnType<typeof resolveRawElement>> & ResolvedEruditRawElement>;
13
- export interface ResolvedEruditRawElement {
14
- proseElement: ProseElement<AnySchema>;
15
- snippets: ResolvedSnippet[];
16
- tocItems: ResolvedTocItem[];
17
- contentLinks: ContentLinks;
18
- files: Set<string>;
19
- problemScripts: Set<string>;
20
- uniqueTitles: Record<string, string>;
21
- }
package/dist/resolve.js DELETED
@@ -1,102 +0,0 @@
1
- import { resolveRawElement } from "@jsprose/core";
2
- import { snippetStep } from "./snippet.js";
3
- import { tocItemStep } from "./toc.js";
4
- import { slugify } from "./slugify/index.js";
5
- import { imageSrcStep } from "./elements/image/core.js";
6
- import { videoSrcStep } from "./elements/video/core.js";
7
- import { calloutIconSrcStep } from "./elements/callout/core.js";
8
- import { problemScriptStep } from "./elements/problem/step.js";
9
- import { contentLinkStep } from "./elements/link/step.js";
10
- export async function resolveEruditRawElement(args) {
11
- const { context, rawElement, step } = args;
12
- const snippets = [];
13
- const tocItems = [];
14
- const headingStack = [];
15
- const contentLinks = new Map();
16
- const files = new Set();
17
- const problemScripts = new Set();
18
- const uniqueTitles = {};
19
- const _step = async (args) => {
20
- const snippet = snippetStep(args);
21
- if (snippet) snippets.push(snippet);
22
- const tocItem = tocItemStep(args);
23
- if (tocItem) {
24
- if (tocItem.type === "heading") {
25
- // Pop headings from stack that are same level or deeper
26
- while (headingStack.length > 0) {
27
- const lastItem = headingStack[headingStack.length - 1];
28
- if (lastItem.type === "heading" && lastItem.level >= tocItem.level) {
29
- headingStack.pop();
30
- } else {
31
- break;
32
- }
33
- }
34
- // Add to parent or root
35
- if (headingStack.length > 0) {
36
- const parent = headingStack[headingStack.length - 1];
37
- if (parent.type === "heading") {
38
- parent.children.push(tocItem);
39
- }
40
- } else {
41
- tocItems.push(tocItem);
42
- }
43
- // Push this heading to stack
44
- headingStack.push(tocItem);
45
- } else {
46
- // Non-heading item: add to most recent heading or root
47
- if (headingStack.length > 0) {
48
- const parent = headingStack[headingStack.length - 1];
49
- if (parent.type === "heading") {
50
- parent.children.push(tocItem);
51
- }
52
- } else {
53
- tocItems.push(tocItem);
54
- }
55
- }
56
- }
57
- const resolvedLink = contentLinkStep(args);
58
- if (resolvedLink) {
59
- const existing = contentLinks.get(resolvedLink.storageKey) || [];
60
- contentLinks.set(resolvedLink.storageKey, [...existing, resolvedLink]);
61
- }
62
- const imageSrc = imageSrcStep(args);
63
- if (imageSrc && !files.has(imageSrc)) files.add(imageSrc);
64
- const videoSrc = videoSrcStep(args);
65
- if (videoSrc && !files.has(videoSrc)) files.add(videoSrc);
66
- const calloutIconSrc = calloutIconSrcStep(args);
67
- if (calloutIconSrc && !files.has(calloutIconSrc)) files.add(calloutIconSrc);
68
- const problemScript = problemScriptStep(args);
69
- if (problemScript && !problemScripts.has(problemScript)) problemScripts.add(problemScript);
70
- if (args.rawElement.title && args.rawElement.uniqueName) {
71
- uniqueTitles[args.rawElement.uniqueName] = args.rawElement.title;
72
- }
73
- if (step) {
74
- await step(args);
75
- }
76
- };
77
- const baseResolveResult = await resolveRawElement({
78
- rawElement,
79
- linkable: context.linkable,
80
- pre: async (rawElement) => {
81
- if (rawElement.slug) {
82
- rawElement.slug = await slugify(rawElement.slug, context.language);
83
- }
84
- },
85
- step: ({ rawElement, proseElement }) => {
86
- _step({
87
- context,
88
- rawElement,
89
- proseElement
90
- });
91
- }
92
- });
93
- return {
94
- ...baseResolveResult,
95
- snippets,
96
- tocItems,
97
- contentLinks,
98
- files,
99
- problemScripts,
100
- uniqueTitles
101
- };
102
- }
@@ -1,9 +0,0 @@
1
- import type { AnySchema, ProseElement } from '@jsprose/core';
2
- import type { EruditProseContext } from './context.js';
3
- import type { EruditRawElement } from './rawElement.js';
4
- export type ResolveStep<TReturn = undefined> = (args: {
5
- context: EruditProseContext;
6
- rawElement: EruditRawElement<AnySchema>;
7
- proseElement: ProseElement<AnySchema>;
8
- }) => TReturn | Promise<TReturn>;
9
- export declare function defineResolveStep<TReturn, TStep extends ResolveStep<TReturn>>(step: TStep): TStep;
@@ -1,3 +0,0 @@
1
- export function defineResolveStep(step) {
2
- return step;
3
- }
package/dist/title.d.ts DELETED
@@ -1,8 +0,0 @@
1
- import type { EruditProcessTagArgs } from './tag.js';
2
- export type ObjRawElementTitle = {
3
- /**
4
- * Shared element title to be used as fallback value (for example, in snippet or TOC).
5
- */
6
- title?: string;
7
- };
8
- export declare function finalizeTitle(processTagArgs: EruditProcessTagArgs): string | undefined;
package/dist/title.js DELETED
@@ -1,6 +0,0 @@
1
- export function finalizeTitle(processTagArgs) {
2
- const elementTitle = processTagArgs.element.title?.trim();
3
- const propSnippetTitle = processTagArgs.props.snippet?.title?.trim();
4
- const propTocTitle = typeof processTagArgs.props.toc === "string" ? processTagArgs.props.toc.trim() : undefined;
5
- return elementTitle || propSnippetTitle || propTocTitle || undefined;
6
- }
@@ -1 +0,0 @@
1
- export declare function extractTagDocs(tag: string, docsContent: string): string | undefined;
@@ -1,22 +0,0 @@
1
- export function extractTagDocs(tag, docsContent) {
2
- const blocks = docsContent.match(/\/\*\*[\s\S]*?\*\//g);
3
- if (!blocks) {
4
- return;
5
- }
6
- for (const block of blocks) {
7
- // After the JSDoc block, match the following JS statement (e.g., let M, Problem...)
8
- const after = docsContent.slice(docsContent.indexOf(block) + block.length);
9
- // Match trailing variable declarations after this block
10
- // e.g.: let A; OR let A, B, C; OR on multiple lines
11
- const declMatch = after.match(/^\s*let\s+([^;]+);/);
12
- if (!declMatch) {
13
- continue;
14
- }
15
- // Extract all declared names
16
- const names = declMatch[1].split(",").map((n) => n.trim()).filter(Boolean);
17
- // Found?
18
- if (names.includes(tag)) {
19
- return block;
20
- }
21
- }
22
- }
package/types.d.ts DELETED
@@ -1,4 +0,0 @@
1
- declare module '*?raw' {
2
- const content: string;
3
- export default content;
4
- }