@erudit-js/prose 3.0.0-dev.25

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 (355) hide show
  1. package/dist/app/appElement.d.ts +19 -0
  2. package/dist/app/appElement.js +12 -0
  3. package/dist/app/component.d.ts +6 -0
  4. package/dist/app/component.js +6 -0
  5. package/dist/app/composables/anchor.d.ts +16 -0
  6. package/dist/app/composables/anchor.js +89 -0
  7. package/dist/app/composables/appElement.d.ts +4 -0
  8. package/dist/app/composables/appElement.js +16 -0
  9. package/dist/app/composables/context.d.ts +22 -0
  10. package/dist/app/composables/context.js +5 -0
  11. package/dist/app/composables/elementIcon.d.ts +3 -0
  12. package/dist/app/composables/elementIcon.js +5 -0
  13. package/dist/app/composables/formatText.d.ts +1 -0
  14. package/dist/app/composables/formatText.js +5 -0
  15. package/dist/app/composables/language.d.ts +8 -0
  16. package/dist/app/composables/language.js +13 -0
  17. package/dist/app/composables/storage.d.ts +5 -0
  18. package/dist/app/composables/storage.js +23 -0
  19. package/dist/app/default/Inliners.vue +11 -0
  20. package/dist/app/default/Mix.vue +11 -0
  21. package/dist/app/default/Text.vue +21 -0
  22. package/dist/app/icon.d.ts +5 -0
  23. package/dist/app/icon.js +7 -0
  24. package/dist/app/index.d.ts +18 -0
  25. package/dist/app/index.js +18 -0
  26. package/dist/app/language/element.d.ts +10 -0
  27. package/dist/app/language/element.js +12 -0
  28. package/dist/app/language/list/en.d.ts +3 -0
  29. package/dist/app/language/list/en.js +5 -0
  30. package/dist/app/language/list/ru.d.ts +3 -0
  31. package/dist/app/language/list/ru.js +5 -0
  32. package/dist/app/language/prose.d.ts +9 -0
  33. package/dist/app/language/prose.js +4 -0
  34. package/dist/app/shared/Prose.vue +36 -0
  35. package/dist/app/shared/Render.vue +51 -0
  36. package/dist/app/shared/assets/block.svg +3 -0
  37. package/dist/app/shared/assets/check.svg +3 -0
  38. package/dist/app/shared/assets/inliner.svg +3 -0
  39. package/dist/app/shared/assets/plus.svg +3 -0
  40. package/dist/app/shared/assets/share.svg +3 -0
  41. package/dist/app/shared/block/AsideMenu.vue +44 -0
  42. package/dist/app/shared/block/AsideMenuButton.vue +53 -0
  43. package/dist/app/shared/block/AsideMenuCopyLink.vue +40 -0
  44. package/dist/app/shared/block/AsideMenuSeparator.vue +3 -0
  45. package/dist/app/shared/block/Block.vue +270 -0
  46. package/dist/app/shared/inliner/Inliner.vue +11 -0
  47. package/dist/app/shared/invert.d.ts +2 -0
  48. package/dist/app/shared/invert.js +2 -0
  49. package/dist/app/shared/photoswipe/composable.d.ts +9 -0
  50. package/dist/app/shared/photoswipe/composable.js +68 -0
  51. package/dist/app/shared/photoswipe/style.css +26 -0
  52. package/dist/context.d.ts +4 -0
  53. package/dist/context.js +1 -0
  54. package/dist/coreElement.d.ts +10 -0
  55. package/dist/coreElement.js +6 -0
  56. package/dist/elements/accent/Accent.vue +92 -0
  57. package/dist/elements/accent/AccentColumnSection.vue +61 -0
  58. package/dist/elements/accent/AccentRowSections.vue +65 -0
  59. package/dist/elements/accent/app.d.ts +21 -0
  60. package/dist/elements/accent/app.js +16 -0
  61. package/dist/elements/accent/core.d.ts +340 -0
  62. package/dist/elements/accent/core.js +175 -0
  63. package/dist/elements/callout/Callout.vue +88 -0
  64. package/dist/elements/callout/_global.d.ts +15 -0
  65. package/dist/elements/callout/app.d.ts +9 -0
  66. package/dist/elements/callout/app.js +11 -0
  67. package/dist/elements/callout/core.d.ts +80 -0
  68. package/dist/elements/callout/core.js +37 -0
  69. package/dist/elements/callout/icon.svg +3 -0
  70. package/dist/elements/callout/languages/en.d.ts +4 -0
  71. package/dist/elements/callout/languages/en.js +2 -0
  72. package/dist/elements/callout/languages/ru.d.ts +4 -0
  73. package/dist/elements/callout/languages/ru.js +2 -0
  74. package/dist/elements/callout/storage.d.ts +2 -0
  75. package/dist/elements/callout/storage.js +5 -0
  76. package/dist/elements/caption/Caption.vue +47 -0
  77. package/dist/elements/caption/_global.d.ts +26 -0
  78. package/dist/elements/caption/app.d.ts +9 -0
  79. package/dist/elements/caption/app.js +6 -0
  80. package/dist/elements/caption/core.d.ts +114 -0
  81. package/dist/elements/caption/core.js +61 -0
  82. package/dist/elements/details/Details.vue +51 -0
  83. package/dist/elements/details/_global.d.ts +27 -0
  84. package/dist/elements/details/app.d.ts +9 -0
  85. package/dist/elements/details/app.js +11 -0
  86. package/dist/elements/details/core.d.ts +68 -0
  87. package/dist/elements/details/core.js +30 -0
  88. package/dist/elements/details/icon.svg +3 -0
  89. package/dist/elements/details/languages/en.d.ts +4 -0
  90. package/dist/elements/details/languages/en.js +2 -0
  91. package/dist/elements/details/languages/ru.d.ts +4 -0
  92. package/dist/elements/details/languages/ru.js +2 -0
  93. package/dist/elements/diagram/Diagram.vue +364 -0
  94. package/dist/elements/diagram/_global.d.ts +19 -0
  95. package/dist/elements/diagram/app.d.ts +30 -0
  96. package/dist/elements/diagram/app.js +11 -0
  97. package/dist/elements/diagram/core.d.ts +194 -0
  98. package/dist/elements/diagram/core.js +36 -0
  99. package/dist/elements/diagram/icon.svg +3 -0
  100. package/dist/elements/diagram/languages/en.d.ts +4 -0
  101. package/dist/elements/diagram/languages/en.js +2 -0
  102. package/dist/elements/diagram/languages/ru.d.ts +4 -0
  103. package/dist/elements/diagram/languages/ru.js +2 -0
  104. package/dist/elements/emphasis/Emphasis.vue +25 -0
  105. package/dist/elements/emphasis/_global.d.ts +18 -0
  106. package/dist/elements/emphasis/app.d.ts +9 -0
  107. package/dist/elements/emphasis/app.js +6 -0
  108. package/dist/elements/emphasis/core.d.ts +90 -0
  109. package/dist/elements/emphasis/core.js +32 -0
  110. package/dist/elements/flex/Flex.vue +32 -0
  111. package/dist/elements/flex/_global.d.ts +23 -0
  112. package/dist/elements/flex/app.d.ts +9 -0
  113. package/dist/elements/flex/app.js +11 -0
  114. package/dist/elements/flex/core.d.ts +67 -0
  115. package/dist/elements/flex/core.js +28 -0
  116. package/dist/elements/flex/icon.svg +3 -0
  117. package/dist/elements/flex/languages/en.d.ts +4 -0
  118. package/dist/elements/flex/languages/en.js +2 -0
  119. package/dist/elements/flex/languages/ru.d.ts +4 -0
  120. package/dist/elements/flex/languages/ru.js +2 -0
  121. package/dist/elements/gallery/Gallery.vue +56 -0
  122. package/dist/elements/gallery/_global.d.ts +18 -0
  123. package/dist/elements/gallery/app.d.ts +23 -0
  124. package/dist/elements/gallery/app.js +11 -0
  125. package/dist/elements/gallery/core.d.ts +138 -0
  126. package/dist/elements/gallery/core.js +21 -0
  127. package/dist/elements/gallery/icon.svg +3 -0
  128. package/dist/elements/gallery/languages/en.d.ts +4 -0
  129. package/dist/elements/gallery/languages/en.js +2 -0
  130. package/dist/elements/gallery/languages/ru.d.ts +4 -0
  131. package/dist/elements/gallery/languages/ru.js +2 -0
  132. package/dist/elements/heading/Heading.vue +44 -0
  133. package/dist/elements/heading/_global.d.ts +45 -0
  134. package/dist/elements/heading/app.d.ts +9 -0
  135. package/dist/elements/heading/app.js +11 -0
  136. package/dist/elements/heading/core.d.ts +108 -0
  137. package/dist/elements/heading/core.js +52 -0
  138. package/dist/elements/heading/icon.svg +3 -0
  139. package/dist/elements/heading/languages/en.d.ts +4 -0
  140. package/dist/elements/heading/languages/en.js +2 -0
  141. package/dist/elements/heading/languages/ru.d.ts +4 -0
  142. package/dist/elements/heading/languages/ru.js +2 -0
  143. package/dist/elements/horizontalLine/HorizontalLine.vue +6 -0
  144. package/dist/elements/horizontalLine/_global.d.ts +17 -0
  145. package/dist/elements/horizontalLine/app.d.ts +9 -0
  146. package/dist/elements/horizontalLine/app.js +6 -0
  147. package/dist/elements/horizontalLine/core.d.ts +54 -0
  148. package/dist/elements/horizontalLine/core.js +19 -0
  149. package/dist/elements/image/Image.vue +15 -0
  150. package/dist/elements/image/ImageElement.vue +80 -0
  151. package/dist/elements/image/_global.d.ts +18 -0
  152. package/dist/elements/image/app.d.ts +16 -0
  153. package/dist/elements/image/app.js +11 -0
  154. package/dist/elements/image/core.d.ts +136 -0
  155. package/dist/elements/image/core.js +44 -0
  156. package/dist/elements/image/icon.svg +3 -0
  157. package/dist/elements/image/languages/en.d.ts +4 -0
  158. package/dist/elements/image/languages/en.js +2 -0
  159. package/dist/elements/image/languages/ru.d.ts +4 -0
  160. package/dist/elements/image/languages/ru.js +2 -0
  161. package/dist/elements/image/storage.d.ts +6 -0
  162. package/dist/elements/image/storage.js +23 -0
  163. package/dist/elements/lineBreak/LineBreak.vue +3 -0
  164. package/dist/elements/lineBreak/_global.d.ts +18 -0
  165. package/dist/elements/lineBreak/app.d.ts +9 -0
  166. package/dist/elements/lineBreak/app.js +6 -0
  167. package/dist/elements/lineBreak/core.d.ts +54 -0
  168. package/dist/elements/lineBreak/core.js +19 -0
  169. package/dist/elements/link/BlockLink.vue +111 -0
  170. package/dist/elements/link/Link.vue +93 -0
  171. package/dist/elements/link/core.d.ts +13 -0
  172. package/dist/elements/link/core.js +12 -0
  173. package/dist/elements/link/dependency/_global.d.ts +47 -0
  174. package/dist/elements/link/dependency/app.d.ts +16 -0
  175. package/dist/elements/link/dependency/app.js +14 -0
  176. package/dist/elements/link/dependency/core.d.ts +125 -0
  177. package/dist/elements/link/dependency/core.js +51 -0
  178. package/dist/elements/link/dependency/languages/en.d.ts +4 -0
  179. package/dist/elements/link/dependency/languages/en.js +2 -0
  180. package/dist/elements/link/dependency/languages/ru.d.ts +4 -0
  181. package/dist/elements/link/dependency/languages/ru.js +2 -0
  182. package/dist/elements/link/icon.svg +3 -0
  183. package/dist/elements/link/reference/_global.d.ts +49 -0
  184. package/dist/elements/link/reference/app.d.ts +16 -0
  185. package/dist/elements/link/reference/app.js +14 -0
  186. package/dist/elements/link/reference/core.d.ts +120 -0
  187. package/dist/elements/link/reference/core.js +35 -0
  188. package/dist/elements/link/reference/languages/en.d.ts +4 -0
  189. package/dist/elements/link/reference/languages/en.js +2 -0
  190. package/dist/elements/link/reference/languages/ru.d.ts +4 -0
  191. package/dist/elements/link/reference/languages/ru.js +2 -0
  192. package/dist/elements/link/storage.d.ts +34 -0
  193. package/dist/elements/link/storage.js +20 -0
  194. package/dist/elements/list/List.vue +63 -0
  195. package/dist/elements/list/_global.d.ts +50 -0
  196. package/dist/elements/list/app.d.ts +16 -0
  197. package/dist/elements/list/app.js +11 -0
  198. package/dist/elements/list/core.d.ts +169 -0
  199. package/dist/elements/list/core.js +49 -0
  200. package/dist/elements/list/icon.svg +3 -0
  201. package/dist/elements/list/languages/en.d.ts +4 -0
  202. package/dist/elements/list/languages/en.js +2 -0
  203. package/dist/elements/list/languages/ru.d.ts +4 -0
  204. package/dist/elements/list/languages/ru.js +2 -0
  205. package/dist/elements/math/_global.d.ts +72 -0
  206. package/dist/elements/math/_global.ts +3 -0
  207. package/dist/elements/math/app.d.ts +16 -0
  208. package/dist/elements/math/app.js +20 -0
  209. package/dist/elements/math/block.d.ts +75 -0
  210. package/dist/elements/math/block.js +115 -0
  211. package/dist/elements/math/components/BlockMath.vue +30 -0
  212. package/dist/elements/math/components/InlinerMath.vue +65 -0
  213. package/dist/elements/math/components/Katex.vue +89 -0
  214. package/dist/elements/math/components/MathGroup.vue +39 -0
  215. package/dist/elements/math/core.d.ts +66 -0
  216. package/dist/elements/math/core.js +11 -0
  217. package/dist/elements/math/icon.svg +3 -0
  218. package/dist/elements/math/inliner.d.ts +64 -0
  219. package/dist/elements/math/inliner.js +85 -0
  220. package/dist/elements/math/katex.d.ts +8 -0
  221. package/dist/elements/math/katex.js +18 -0
  222. package/dist/elements/math/languages/en.d.ts +4 -0
  223. package/dist/elements/math/languages/en.js +2 -0
  224. package/dist/elements/math/languages/ru.d.ts +4 -0
  225. package/dist/elements/math/languages/ru.js +2 -0
  226. package/dist/elements/math/macros.d.ts +13 -0
  227. package/dist/elements/math/macros.js +12 -0
  228. package/dist/elements/paragraph/Paragraph.vue +27 -0
  229. package/dist/elements/paragraph/_global.d.ts +27 -0
  230. package/dist/elements/paragraph/app.d.ts +9 -0
  231. package/dist/elements/paragraph/app.js +11 -0
  232. package/dist/elements/paragraph/core.d.ts +67 -0
  233. package/dist/elements/paragraph/core.js +29 -0
  234. package/dist/elements/paragraph/icon.svg +4 -0
  235. package/dist/elements/paragraph/languages/en.d.ts +4 -0
  236. package/dist/elements/paragraph/languages/en.js +2 -0
  237. package/dist/elements/paragraph/languages/ru.d.ts +4 -0
  238. package/dist/elements/paragraph/languages/ru.js +2 -0
  239. package/dist/elements/problem/_global.d.ts +112 -0
  240. package/dist/elements/problem/app.d.ts +30 -0
  241. package/dist/elements/problem/app.js +27 -0
  242. package/dist/elements/problem/assets/actions/answer.svg +3 -0
  243. package/dist/elements/problem/assets/actions/check.svg +3 -0
  244. package/dist/elements/problem/assets/actions/generate.svg +3 -0
  245. package/dist/elements/problem/assets/actions/hint.svg +3 -0
  246. package/dist/elements/problem/assets/actions/note.svg +3 -0
  247. package/dist/elements/problem/assets/actions/solution.svg +3 -0
  248. package/dist/elements/problem/assets/attributes/applied.svg +3 -0
  249. package/dist/elements/problem/assets/attributes/inter.svg +3 -0
  250. package/dist/elements/problem/assets/attributes/method.svg +3 -0
  251. package/dist/elements/problem/assets/attributes/pretty.svg +1 -0
  252. package/dist/elements/problem/assets/icon.svg +3 -0
  253. package/dist/elements/problem/components/Problem.vue +22 -0
  254. package/dist/elements/problem/components/ProblemButton.vue +21 -0
  255. package/dist/elements/problem/components/ProblemContainer.vue +9 -0
  256. package/dist/elements/problem/components/ProblemContent.vue +371 -0
  257. package/dist/elements/problem/components/ProblemExpander.vue +7 -0
  258. package/dist/elements/problem/components/ProblemExpanderSection.vue +58 -0
  259. package/dist/elements/problem/components/ProblemHeader.vue +106 -0
  260. package/dist/elements/problem/components/Problems.vue +87 -0
  261. package/dist/elements/problem/components/SubProblem.vue +14 -0
  262. package/dist/elements/problem/components/expanders/Check.vue +151 -0
  263. package/dist/elements/problem/components/expanders/Checks.vue +83 -0
  264. package/dist/elements/problem/components/expanders/DefaultPlusSections.vue +38 -0
  265. package/dist/elements/problem/components/expanders/Hint.vue +26 -0
  266. package/dist/elements/problem/composables/phrase.d.ts +2 -0
  267. package/dist/elements/problem/composables/phrase.js +7 -0
  268. package/dist/elements/problem/composables/problemScript.d.ts +3 -0
  269. package/dist/elements/problem/composables/problemScript.js +11 -0
  270. package/dist/elements/problem/core.d.ts +248 -0
  271. package/dist/elements/problem/core.js +17 -0
  272. package/dist/elements/problem/languages/en.d.ts +3 -0
  273. package/dist/elements/problem/languages/en.js +24 -0
  274. package/dist/elements/problem/languages/ru.d.ts +3 -0
  275. package/dist/elements/problem/languages/ru.js +24 -0
  276. package/dist/elements/problem/phrases.d.ts +16 -0
  277. package/dist/elements/problem/phrases.js +1 -0
  278. package/dist/elements/problem/problem.d.ts +106 -0
  279. package/dist/elements/problem/problem.js +37 -0
  280. package/dist/elements/problem/problemContent.d.ts +439 -0
  281. package/dist/elements/problem/problemContent.js +236 -0
  282. package/dist/elements/problem/problemScript.d.ts +26 -0
  283. package/dist/elements/problem/problemScript.js +79 -0
  284. package/dist/elements/problem/problems.d.ts +212 -0
  285. package/dist/elements/problem/problems.js +74 -0
  286. package/dist/elements/problem/rng.d.ts +18 -0
  287. package/dist/elements/problem/rng.js +76 -0
  288. package/dist/elements/problem/shared.d.ts +28 -0
  289. package/dist/elements/problem/shared.js +42 -0
  290. package/dist/elements/problem/step.d.ts +5 -0
  291. package/dist/elements/problem/step.js +13 -0
  292. package/dist/elements/problem/storage.d.ts +5 -0
  293. package/dist/elements/problem/storage.js +8 -0
  294. package/dist/elements/table/Table.vue +104 -0
  295. package/dist/elements/table/_global.d.ts +36 -0
  296. package/dist/elements/table/app.d.ts +30 -0
  297. package/dist/elements/table/app.js +11 -0
  298. package/dist/elements/table/core.d.ts +324 -0
  299. package/dist/elements/table/core.js +65 -0
  300. package/dist/elements/table/icon.svg +3 -0
  301. package/dist/elements/table/languages/en.d.ts +4 -0
  302. package/dist/elements/table/languages/en.js +2 -0
  303. package/dist/elements/table/languages/ru.d.ts +4 -0
  304. package/dist/elements/table/languages/ru.js +2 -0
  305. package/dist/elements/video/Video.vue +109 -0
  306. package/dist/elements/video/_global.d.ts +18 -0
  307. package/dist/elements/video/app.d.ts +16 -0
  308. package/dist/elements/video/app.js +11 -0
  309. package/dist/elements/video/core.d.ts +128 -0
  310. package/dist/elements/video/core.js +43 -0
  311. package/dist/elements/video/icon.svg +3 -0
  312. package/dist/elements/video/languages/en.d.ts +4 -0
  313. package/dist/elements/video/languages/en.js +2 -0
  314. package/dist/elements/video/languages/ru.d.ts +4 -0
  315. package/dist/elements/video/languages/ru.js +2 -0
  316. package/dist/elements/video/storage.d.ts +2 -0
  317. package/dist/elements/video/storage.js +5 -0
  318. package/dist/include.d.ts +6 -0
  319. package/dist/include.js +42 -0
  320. package/dist/index.d.ts +15 -0
  321. package/dist/index.js +15 -0
  322. package/dist/rawElement.d.ts +6 -0
  323. package/dist/rawElement.js +3 -0
  324. package/dist/resolve.d.ts +20 -0
  325. package/dist/resolve.js +99 -0
  326. package/dist/resolveStep.d.ts +9 -0
  327. package/dist/resolveStep.js +3 -0
  328. package/dist/shared/filePath.d.ts +5 -0
  329. package/dist/shared/filePath.js +11 -0
  330. package/dist/shared/invert.d.ts +1 -0
  331. package/dist/shared/invert.js +1 -0
  332. package/dist/shared/paragraphWrap.d.ts +3 -0
  333. package/dist/shared/paragraphWrap.js +15 -0
  334. package/dist/shared/photoswipe.d.ts +10 -0
  335. package/dist/shared/photoswipe.js +10 -0
  336. package/dist/slugify/index.d.ts +1 -0
  337. package/dist/slugify/index.js +12 -0
  338. package/dist/slugify/languages/en.d.ts +2 -0
  339. package/dist/slugify/languages/en.js +3 -0
  340. package/dist/slugify/languages/ru.d.ts +2 -0
  341. package/dist/slugify/languages/ru.js +38 -0
  342. package/dist/snippet.d.ts +66 -0
  343. package/dist/snippet.js +57 -0
  344. package/dist/tag.d.ts +22 -0
  345. package/dist/tag.js +20 -0
  346. package/dist/title.d.ts +8 -0
  347. package/dist/title.js +6 -0
  348. package/dist/toc.d.ts +34 -0
  349. package/dist/toc.js +52 -0
  350. package/dist/utils/case.d.ts +4 -0
  351. package/dist/utils/case.js +8 -0
  352. package/dist/utils/docs.d.ts +1 -0
  353. package/dist/utils/docs.js +22 -0
  354. package/package.json +48 -0
  355. package/types.d.ts +4 -0
@@ -0,0 +1,65 @@
1
+ import { defineRegistryItem, defineSchema, ensureTagChildren, ensureTagInlinerChildren } from "@jsprose/core";
2
+ import { defineEruditTag } from "../../tag.js";
3
+ import { captionSchema } from "../caption/core.js";
4
+ import { defineEruditProseCoreElements } from "../../coreElement.js";
5
+ //
6
+ // Table Data
7
+ //
8
+ export const tableDataSchema = defineSchema({
9
+ name: "tableData",
10
+ type: "inliner",
11
+ linkable: false
12
+ })();
13
+ export const Td = defineEruditTag({
14
+ tagName: "Td",
15
+ schema: tableDataSchema
16
+ })(({ element, children, tagName, registry }) => {
17
+ ensureTagInlinerChildren(tagName, children, registry);
18
+ element.children = children;
19
+ });
20
+ export const tableDataRegistryItem = defineRegistryItem({
21
+ schema: tableDataSchema,
22
+ tags: [Td]
23
+ });
24
+ //
25
+ // Table Row
26
+ //
27
+ export const tableRowSchema = defineSchema({
28
+ name: "tableRow",
29
+ type: "inliner",
30
+ linkable: false
31
+ })();
32
+ export const Tr = defineEruditTag({
33
+ tagName: "Tr",
34
+ schema: tableRowSchema
35
+ })(({ element, children, tagName }) => {
36
+ ensureTagChildren(tagName, children, tableDataSchema);
37
+ element.children = children;
38
+ });
39
+ export const tableRowRegistryItem = defineRegistryItem({
40
+ schema: tableRowSchema,
41
+ tags: [Tr]
42
+ });
43
+ //
44
+ // Table
45
+ //
46
+ export const tableSchema = defineSchema({
47
+ name: "table",
48
+ type: "block",
49
+ linkable: true
50
+ })();
51
+ export const Table = defineEruditTag({
52
+ tagName: "Table",
53
+ schema: tableSchema
54
+ })(({ element, children, tagName }) => {
55
+ ensureTagChildren(tagName, children, [tableRowSchema, captionSchema]);
56
+ element.children = children;
57
+ });
58
+ export const tableRegistryItem = defineRegistryItem({
59
+ schema: tableSchema,
60
+ tags: [Table]
61
+ });
62
+ //
63
+ // Erudit Core Elements
64
+ //
65
+ export default defineEruditProseCoreElements({ registryItem: tableDataRegistryItem }, { registryItem: tableRowRegistryItem }, { registryItem: tableRegistryItem });
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+ <path d="M2.8,23.9c-.7,0-1.3-.3-1.9-.8-.5-.5-.8-1.1-.8-1.9V2.8C.1,2,.4,1.4.9.9,1.4.4,2,.1,2.8.1h18.5c.7,0,1.3.3,1.9.8s.8,1.1.8,1.9v18.5c0,.7-.3,1.3-.8,1.9-.5.5-1.1.8-1.9.8H2.8ZM10.7,16H2.8v5.3h7.9v-5.3ZM13.3,16v5.3h7.9v-5.3h-7.9ZM10.7,13.3v-5.3H2.8v5.3h7.9ZM13.3,13.3h7.9v-5.3h-7.9v5.3ZM2.8,5.4h18.5v-2.6H2.8v2.6Z"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ element_name: string;
3
+ };
4
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import { defineElementLanguage } from "../../../app/language/element.js";
2
+ export default defineElementLanguage({ element_name: "Table" });
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ element_name: string;
3
+ };
4
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import { defineElementLanguage } from "../../../app/language/element.js";
2
+ export default defineElementLanguage({ element_name: "Таблица" });
@@ -0,0 +1,109 @@
1
+ <script lang="ts" setup>
2
+ import { onMounted, onUnmounted, ref, useTemplateRef } from 'vue';
3
+ import type { ProseElement } from '@jsprose/core';
4
+
5
+ import type { videoSchema } from './core.js';
6
+ import { useElementStorage } from '../../app/composables/storage.js';
7
+ import { lightInvert, darkInvert } from '../../app/shared/invert.js';
8
+ import Block from '../../app/shared/block/Block.vue';
9
+ import Caption from '../caption/Caption.vue';
10
+
11
+ const { element } = defineProps<{
12
+ element: ProseElement<typeof videoSchema>;
13
+ }>();
14
+ const videoStorage = await useElementStorage<typeof videoSchema>(element);
15
+
16
+ const videoElement = useTemplateRef('video');
17
+ const observer = ref<IntersectionObserver | null>(null);
18
+
19
+ const wasInViewport = ref(false);
20
+ const manuallyPaused = ref(false);
21
+
22
+ if (!element.data.autoplay) {
23
+ wasInViewport.value = true;
24
+ manuallyPaused.value = true;
25
+ }
26
+
27
+ onMounted(() => {
28
+ if (!videoElement.value) return;
29
+
30
+ const video = videoElement.value;
31
+
32
+ const options: IntersectionObserverInit = {
33
+ rootMargin: '0px 0px 75px 0px',
34
+ threshold: 0,
35
+ };
36
+
37
+ observer.value = new IntersectionObserver((entries) => {
38
+ const entry = entries[0]!;
39
+ try {
40
+ if (entry.isIntersecting) {
41
+ wasInViewport.value = true;
42
+ if (!manuallyPaused.value) video.play();
43
+ } else {
44
+ // When the video is not in the viewport:
45
+ if (wasInViewport.value) {
46
+ // Video was in viewport before.
47
+ // If it is now leaving already paused then of course it was the user, who manually paused it.
48
+ manuallyPaused.value = video.paused;
49
+ } else {
50
+ // Video was never in viewport before and user had no chance to pause it.
51
+ manuallyPaused.value = false;
52
+ }
53
+
54
+ video.pause();
55
+ }
56
+ } catch {}
57
+ }, options);
58
+
59
+ observer.value.observe(video);
60
+ });
61
+
62
+ onUnmounted(() => {
63
+ if (observer.value) {
64
+ observer.value.disconnect();
65
+ }
66
+ });
67
+ </script>
68
+
69
+ <template>
70
+ <Block :element>
71
+ <video
72
+ ref="video"
73
+ :src="videoStorage.resolvedSrc"
74
+ preload="metadata"
75
+ loop
76
+ muted
77
+ controls
78
+ :class="[
79
+ 'm-auto rounded-xl',
80
+ {
81
+ [lightInvert + ' ' + $style.invertLight]:
82
+ element.data.invert === 'light',
83
+ [darkInvert + ' ' + $style.invertDark]:
84
+ element.data.invert === 'dark',
85
+ },
86
+ ]"
87
+ v-bind="
88
+ element.data.width
89
+ ? {
90
+ style: {
91
+ width: element.data.width,
92
+ maxWidth: `min(${element.data.width}, 100%)`,
93
+ },
94
+ }
95
+ : {}
96
+ "
97
+ ></video>
98
+ <Caption v-if="element.children" :caption="element.children[0]" />
99
+ </Block>
100
+ </template>
101
+
102
+ <style module>
103
+ :root[data-theme='light'] .invertLight,
104
+ :root[data-theme='dark'] .invertDark {
105
+ &::-webkit-media-controls-panel {
106
+ filter: invert(1) hue-rotate(180deg);
107
+ }
108
+ }
109
+ </style>
@@ -0,0 +1,18 @@
1
+ /**
2
+ * **Caution:** images should be placed locally somewhere within current Erudit project folder
3
+ * (preferable somewhere near the document using them).
4
+ *
5
+ * @title Video
6
+ * @layout block
7
+ * @example
8
+ * ```tsx
9
+ * // import vectorProjection from './assets/vector-projection.mp4';
10
+ * <Video src={vectorProjection} width="400px" invert="dark" />
11
+ *
12
+ * // import complexDiagram from './assets/complex-diagram.mp4';
13
+ * <Video src={complexDiagram} autoplay>
14
+ * <Caption>Complex diagram example</Caption>
15
+ * </Video>
16
+ * ```
17
+ */
18
+ export const Video = '_tag_';
@@ -0,0 +1,16 @@
1
+ declare const _default: import("../../app/appElement.js").AppElement<{
2
+ name: "video";
3
+ type: "block";
4
+ linkable: true;
5
+ Data: import("./core.js").VideoData;
6
+ Storage: import("./core.js").VideoStorage;
7
+ Children: [{
8
+ name: "caption";
9
+ type: "inliner";
10
+ linkable: false;
11
+ Data: import("../caption/core.js").CaptionData | undefined;
12
+ Storage: undefined;
13
+ Children: import("@jsprose/core").InlinerSchema[];
14
+ }] | undefined;
15
+ }>;
16
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import { defineEruditProseAppElement } from "../../app/appElement.js";
2
+ import { videoSchema } from "./core.js";
3
+ export default defineEruditProseAppElement({
4
+ schema: videoSchema,
5
+ component: () => import("./Video.vue"),
6
+ languages: {
7
+ en: () => import("./languages/en.js"),
8
+ ru: () => import("./languages/ru.js")
9
+ },
10
+ icon: () => import("./icon.svg?raw")
11
+ });
@@ -0,0 +1,128 @@
1
+ import type { Invert } from '../../shared/invert.js';
2
+ export interface VideoData {
3
+ src: string;
4
+ autoplay?: boolean;
5
+ invert?: Invert;
6
+ width?: string;
7
+ }
8
+ export interface VideoStorage {
9
+ resolvedSrc: string;
10
+ }
11
+ export declare const videoSchema: {
12
+ name: "video";
13
+ type: "block";
14
+ linkable: true;
15
+ Data: VideoData;
16
+ Storage: VideoStorage;
17
+ Children: [{
18
+ name: "caption";
19
+ type: "inliner";
20
+ linkable: false;
21
+ Data: import("../caption/core.js").CaptionData | undefined;
22
+ Storage: undefined;
23
+ Children: import("@jsprose/core").InlinerSchema[];
24
+ }] | undefined;
25
+ };
26
+ export declare const Video: import("@jsprose/core").Tag<"Video", {
27
+ name: "video";
28
+ type: "block";
29
+ linkable: true;
30
+ Data: VideoData;
31
+ Storage: VideoStorage;
32
+ Children: [{
33
+ name: "caption";
34
+ type: "inliner";
35
+ linkable: false;
36
+ Data: import("../caption/core.js").CaptionData | undefined;
37
+ Storage: undefined;
38
+ Children: import("@jsprose/core").InlinerSchema[];
39
+ }] | undefined;
40
+ }, {
41
+ src: string;
42
+ autoplay?: boolean;
43
+ invert?: Invert;
44
+ width?: string;
45
+ children?: {};
46
+ } & import("../../toc.js").ObjPropToc & import("../../snippet.js").ObjPropSnippet & import("../../snippet.js").ObjPropSearch & import("../../snippet.js").ObjPropQuick & import("../../snippet.js").ObjPropSeo>;
47
+ export declare const videoRegistryItem: import("@jsprose/core").RegistryItem<{
48
+ name: "video";
49
+ type: "block";
50
+ linkable: true;
51
+ Data: VideoData;
52
+ Storage: VideoStorage;
53
+ Children: [{
54
+ name: "caption";
55
+ type: "inliner";
56
+ linkable: false;
57
+ Data: import("../caption/core.js").CaptionData | undefined;
58
+ Storage: undefined;
59
+ Children: import("@jsprose/core").InlinerSchema[];
60
+ }] | undefined;
61
+ }, {
62
+ Video: import("@jsprose/core").Tag<"Video", {
63
+ name: "video";
64
+ type: "block";
65
+ linkable: true;
66
+ Data: VideoData;
67
+ Storage: VideoStorage;
68
+ Children: [{
69
+ name: "caption";
70
+ type: "inliner";
71
+ linkable: false;
72
+ Data: import("../caption/core.js").CaptionData | undefined;
73
+ Storage: undefined;
74
+ Children: import("@jsprose/core").InlinerSchema[];
75
+ }] | undefined;
76
+ }, {
77
+ src: string;
78
+ autoplay?: boolean;
79
+ invert?: Invert;
80
+ width?: string;
81
+ children?: {};
82
+ } & import("../../toc.js").ObjPropToc & import("../../snippet.js").ObjPropSnippet & import("../../snippet.js").ObjPropSearch & import("../../snippet.js").ObjPropQuick & import("../../snippet.js").ObjPropSeo>;
83
+ }, undefined>;
84
+ declare const _default: {
85
+ registryItem: import("@jsprose/core").RegistryItem<{
86
+ name: "video";
87
+ type: "block";
88
+ linkable: true;
89
+ Data: VideoData;
90
+ Storage: VideoStorage;
91
+ Children: [{
92
+ name: "caption";
93
+ type: "inliner";
94
+ linkable: false;
95
+ Data: import("../caption/core.js").CaptionData | undefined;
96
+ Storage: undefined;
97
+ Children: import("@jsprose/core").InlinerSchema[];
98
+ }] | undefined;
99
+ }, {
100
+ Video: import("@jsprose/core").Tag<"Video", {
101
+ name: "video";
102
+ type: "block";
103
+ linkable: true;
104
+ Data: VideoData;
105
+ Storage: VideoStorage;
106
+ Children: [{
107
+ name: "caption";
108
+ type: "inliner";
109
+ linkable: false;
110
+ Data: import("../caption/core.js").CaptionData | undefined;
111
+ Storage: undefined;
112
+ Children: import("@jsprose/core").InlinerSchema[];
113
+ }] | undefined;
114
+ }, {
115
+ src: string;
116
+ autoplay?: boolean;
117
+ invert?: Invert;
118
+ width?: string;
119
+ children?: {};
120
+ } & import("../../toc.js").ObjPropToc & import("../../snippet.js").ObjPropSnippet & import("../../snippet.js").ObjPropSearch & import("../../snippet.js").ObjPropQuick & import("../../snippet.js").ObjPropSeo>;
121
+ }, undefined>;
122
+ };
123
+ export default _default;
124
+ export declare const videoSrcStep: ({ rawElement }: {
125
+ context: import("../../context.js").EruditProseContext;
126
+ rawElement: import("../../rawElement.js").EruditRawElement<import("@jsprose/core").AnySchema>;
127
+ proseElement: import("@jsprose/core").ProseElement<import("@jsprose/core").AnySchema>;
128
+ }) => string | undefined;
@@ -0,0 +1,43 @@
1
+ import { defineRegistryItem, defineSchema, ensureTagChild, isRawElement } from "@jsprose/core";
2
+ import { captionSchema } from "../caption/core.js";
3
+ import { defineEruditTag } from "../../tag.js";
4
+ import { defineEruditProseCoreElement } from "../../coreElement.js";
5
+ import { defineResolveStep } from "../../resolveStep.js";
6
+ export const videoSchema = defineSchema({
7
+ name: "video",
8
+ type: "block",
9
+ linkable: true
10
+ })();
11
+ export const Video = defineEruditTag({
12
+ tagName: "Video",
13
+ schema: videoSchema
14
+ })(({ element, tagName, props, children }) => {
15
+ if (children) {
16
+ ensureTagChild(tagName, children, captionSchema);
17
+ element.children = children;
18
+ }
19
+ element.data = { src: props.src };
20
+ element.storageKey = props.src;
21
+ if (props.autoplay !== undefined) {
22
+ element.data.autoplay = props.autoplay;
23
+ }
24
+ if (props.width) {
25
+ element.data.width = props.width;
26
+ }
27
+ if (props.invert) {
28
+ element.data.invert = props.invert;
29
+ }
30
+ });
31
+ export const videoRegistryItem = defineRegistryItem({
32
+ schema: videoSchema,
33
+ tags: [Video]
34
+ });
35
+ export default defineEruditProseCoreElement({ registryItem: videoRegistryItem });
36
+ //
37
+ // Resolve
38
+ //
39
+ export const videoSrcStep = defineResolveStep(({ rawElement }) => {
40
+ if (isRawElement(rawElement, videoSchema)) {
41
+ return rawElement.data.src;
42
+ }
43
+ });
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
2
+ <path d="M10.4,16.4l5.8-3.7c.3-.2.4-.4.4-.7s-.1-.6-.4-.7l-5.8-3.7c-.3-.2-.6-.2-.9,0s-.5.4-.5.8v7.4c0,.4.2.6.5.8s.6.2.9,0ZM12,23.8c-1.6,0-3.2-.3-4.6-.9s-2.7-1.5-3.8-2.5-1.9-2.3-2.5-3.8S.2,13.6.2,12s.3-3.2.9-4.6,1.5-2.7,2.5-3.8,2.3-1.9,3.8-2.5S10.4.2,12,.2s3.2.3,4.6.9,2.7,1.5,3.8,2.5,1.9,2.3,2.5,3.8.9,3,.9,4.6-.3,3.2-.9,4.6-1.5,2.7-2.5,3.8-2.3,1.9-3.8,2.5-3,.9-4.6.9ZM12,21.5c2.6,0,4.9-.9,6.7-2.8s2.8-4.1,2.8-6.7-.9-4.9-2.8-6.7-4.1-2.8-6.7-2.8-4.9.9-6.7,2.8-2.8,4.1-2.8,6.7.9,4.9,2.8,6.7,4.1,2.8,6.7,2.8Z"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ element_name: string;
3
+ };
4
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import { defineElementLanguage } from "../../../app/language/element.js";
2
+ export default defineElementLanguage({ element_name: "Video" });
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ element_name: string;
3
+ };
4
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import { defineElementLanguage } from "../../../app/language/element.js";
2
+ export default defineElementLanguage({ element_name: "Видео" });
@@ -0,0 +1,2 @@
1
+ import type { VideoStorage } from './core.js';
2
+ export declare function createVideoStorage(projectAbsPath: string, projectBaseUrl: string, videoAbsoluteSrc: string): VideoStorage;
@@ -0,0 +1,5 @@
1
+ import { projectRelFilePath } from "../../shared/filePath.js";
2
+ export function createVideoStorage(projectAbsPath, projectBaseUrl, videoAbsoluteSrc) {
3
+ const resolvedSrc = projectBaseUrl + "file/" + projectRelFilePath(projectAbsPath, videoAbsoluteSrc);
4
+ return { resolvedSrc };
5
+ }
@@ -0,0 +1,6 @@
1
+ import { type AnySchema, type AnyUnique, type RawElement } from '@jsprose/core';
2
+ export declare function Include(props: {
3
+ children: AnyUnique | RawElement<AnySchema>;
4
+ toc?: true | string;
5
+ }): RawElement<AnySchema>;
6
+ export declare function isIncludedRawElement(rawElement: RawElement<AnySchema>): boolean;
@@ -0,0 +1,42 @@
1
+ import { isUnique } from "@jsprose/core";
2
+ import { finalizeToc } from "./toc.js";
3
+ const includedKey = "__ERUDIT_included";
4
+ export function Include(props) {
5
+ const rawElement = isUnique(props.children) ? props.children.rawElement : props.children;
6
+ function augmentRawElement(element) {
7
+ const isRoot = element === rawElement;
8
+ if (isRoot) {
9
+ if (props.toc) {
10
+ if (props.toc === true) {
11
+ element.toc = finalizeToc({
12
+ props: { toc: props.toc },
13
+ element
14
+ });
15
+ } else {
16
+ element.toc = {
17
+ add: true,
18
+ title: props.toc
19
+ };
20
+ }
21
+ } else {
22
+ delete element.toc;
23
+ }
24
+ } else {
25
+ delete element.toc;
26
+ }
27
+ delete element.snippet;
28
+ delete element.snippetFlags;
29
+ delete element.uniqueName;
30
+ element[includedKey] = true;
31
+ if (element.children) {
32
+ for (const child of element.children) {
33
+ augmentRawElement(child);
34
+ }
35
+ }
36
+ }
37
+ augmentRawElement(rawElement);
38
+ return rawElement;
39
+ }
40
+ export function isIncludedRawElement(rawElement) {
41
+ return rawElement[includedKey] === true;
42
+ }
@@ -0,0 +1,15 @@
1
+ export * from './coreElement.js';
2
+ export * from './rawElement.js';
3
+ export * from './resolve.js';
4
+ export * from './tag.js';
5
+ export * from './snippet.js';
6
+ export * from './toc.js';
7
+ export * from './title.js';
8
+ export * from './resolveStep.js';
9
+ export * from './include.js';
10
+ export * from './slugify/index.js';
11
+ export * from './utils/docs.js';
12
+ export * from './utils/case.js';
13
+ export * from './shared/filePath.js';
14
+ export * from './shared/invert.js';
15
+ export * from './shared/photoswipe.js';
package/dist/index.js ADDED
@@ -0,0 +1,15 @@
1
+ export * from "./coreElement.js";
2
+ export * from "./rawElement.js";
3
+ export * from "./resolve.js";
4
+ export * from "./tag.js";
5
+ export * from "./snippet.js";
6
+ export * from "./toc.js";
7
+ export * from "./title.js";
8
+ export * from "./resolveStep.js";
9
+ export * from "./include.js";
10
+ export * from "./slugify/index.js";
11
+ export * from "./utils/docs.js";
12
+ export * from "./utils/case.js";
13
+ export * from "./shared/filePath.js";
14
+ export * from "./shared/invert.js";
15
+ export * from "./shared/photoswipe.js";
@@ -0,0 +1,6 @@
1
+ import type { AnySchema, RawElement, schemaKind } from '@jsprose/core';
2
+ import type { ObjRawElementSnippet } from './snippet.js';
3
+ import type { ObjRawElementToc } from './toc.js';
4
+ import type { ObjRawElementTitle } from './title.js';
5
+ export type EruditRawElement<TSchema extends AnySchema, TTagName extends string = string> = RawElement<TSchema, TTagName> & ObjRawElementSnippet & ObjRawElementToc & ObjRawElementTitle;
6
+ export declare function asEruditRaw<TSchema extends AnySchema, TRawElement extends RawElement<TSchema>>(rawElement: TRawElement): EruditRawElement<TRawElement[typeof schemaKind], TRawElement['tagName']>;
@@ -0,0 +1,3 @@
1
+ export function asEruditRaw(rawElement) {
2
+ return rawElement;
3
+ }
@@ -0,0 +1,20 @@
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
+ export declare function resolveEruditRawElement(args: {
8
+ context: EruditProseContext;
9
+ rawElement: EruditRawElement<AnySchema>;
10
+ step?: ResolveStep;
11
+ }): Promise<Awaited<ReturnType<typeof resolveRawElement>> & ResolvedEruditRawElement>;
12
+ export interface ResolvedEruditRawElement {
13
+ proseElement: ProseElement<AnySchema>;
14
+ snippets: ResolvedSnippet[];
15
+ tocItems: ResolvedTocItem[];
16
+ dependencies: Set<string>;
17
+ files: Set<string>;
18
+ problemScripts: Set<string>;
19
+ uniqueTitles: Record<string, string>;
20
+ }