@tygo-van-den-hurk/slyde 0.0.2-unstable-0192a39.0 → 0.0.2-unstable-8f6d5a0.0

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 (215) hide show
  1. package/README.md +5 -5
  2. package/dist/browser/css/modes/base.d.ts +8 -0
  3. package/dist/browser/css/modes/base.d.ts.map +1 -0
  4. package/dist/browser/css/modes/base.js +110 -0
  5. package/dist/browser/css/modes/base.js.map +1 -0
  6. package/dist/browser/css/modes/pdf.d.ts +6 -0
  7. package/dist/browser/css/modes/pdf.d.ts.map +1 -0
  8. package/dist/browser/css/modes/pdf.js +26 -0
  9. package/dist/browser/css/modes/pdf.js.map +1 -0
  10. package/dist/browser/css/modes/presentation.d.ts +8 -0
  11. package/dist/browser/css/modes/presentation.d.ts.map +1 -0
  12. package/dist/browser/css/modes/presentation.js +43 -0
  13. package/dist/browser/css/modes/presentation.js.map +1 -0
  14. package/dist/browser/css/tw-config.d.ts +6 -0
  15. package/dist/browser/css/tw-config.d.ts.map +1 -0
  16. package/dist/browser/css/tw-config.js +34 -0
  17. package/dist/browser/css/tw-config.js.map +1 -0
  18. package/dist/browser/{css.d.ts → css/types.d.ts} +2 -10
  19. package/dist/browser/css/types.d.ts.map +1 -0
  20. package/dist/browser/css/types.js +2 -0
  21. package/dist/browser/css/types.js.map +1 -0
  22. package/dist/browser/html.d.ts +1 -1
  23. package/dist/browser/html.d.ts.map +1 -1
  24. package/dist/browser/html.js +16 -8
  25. package/dist/browser/html.js.map +1 -1
  26. package/dist/browser/scripts/input-bindings.d.ts +23 -0
  27. package/dist/browser/scripts/input-bindings.d.ts.map +1 -0
  28. package/dist/browser/scripts/input-bindings.js +129 -0
  29. package/dist/browser/scripts/input-bindings.js.map +1 -0
  30. package/dist/browser/scripts/pdf-mode.d.ts +29 -0
  31. package/dist/browser/scripts/pdf-mode.d.ts.map +1 -0
  32. package/dist/browser/scripts/pdf-mode.js +60 -0
  33. package/dist/browser/scripts/pdf-mode.js.map +1 -0
  34. package/dist/browser/scripts/slide-control.d.ts +60 -0
  35. package/dist/browser/scripts/slide-control.d.ts.map +1 -0
  36. package/dist/browser/scripts/slide-control.js +74 -0
  37. package/dist/browser/scripts/slide-control.js.map +1 -0
  38. package/dist/browser/scripts/utils.d.ts +12 -0
  39. package/dist/browser/scripts/utils.d.ts.map +1 -0
  40. package/dist/browser/scripts/utils.js +22 -0
  41. package/dist/browser/scripts/utils.js.map +1 -0
  42. package/dist/lib/core/render/render.js +1 -1
  43. package/dist/lib/core/render/render.js.map +1 -1
  44. package/package.json +1 -1
  45. package/dist/browser/css.d.ts.map +0 -1
  46. package/dist/browser/css.js +0 -184
  47. package/dist/browser/css.js.map +0 -1
  48. package/dist/browser/index.d.ts +0 -3
  49. package/dist/browser/index.d.ts.map +0 -1
  50. package/dist/browser/index.js +0 -5
  51. package/dist/browser/index.js.map +0 -1
  52. package/dist/browser/page-logic.browser.d.ts +0 -78
  53. package/dist/browser/page-logic.browser.d.ts.map +0 -1
  54. package/dist/browser/page-logic.browser.js +0 -264
  55. package/dist/browser/page-logic.browser.js.map +0 -1
  56. package/dist/test/lib/core/compiler/io/cleanAndMergeAdjacentTextNodes.test.d.ts +0 -2
  57. package/dist/test/lib/core/compiler/io/cleanAndMergeAdjacentTextNodes.test.d.ts.map +0 -1
  58. package/dist/test/lib/core/compiler/io/cleanAndMergeAdjacentTextNodes.test.js +0 -300
  59. package/dist/test/lib/core/compiler/io/cleanAndMergeAdjacentTextNodes.test.js.map +0 -1
  60. package/dist/test/lib/core/compiler/io/cleanAndMergeAdjacentTextNodesRecurse.test.d.ts +0 -2
  61. package/dist/test/lib/core/compiler/io/cleanAndMergeAdjacentTextNodesRecurse.test.d.ts.map +0 -1
  62. package/dist/test/lib/core/compiler/io/cleanAndMergeAdjacentTextNodesRecurse.test.js +0 -184
  63. package/dist/test/lib/core/compiler/io/cleanAndMergeAdjacentTextNodesRecurse.test.js.map +0 -1
  64. package/dist/test/lib/core/compiler/io/loadPlugins.test.d.ts +0 -2
  65. package/dist/test/lib/core/compiler/io/loadPlugins.test.d.ts.map +0 -1
  66. package/dist/test/lib/core/compiler/io/loadPlugins.test.js +0 -30
  67. package/dist/test/lib/core/compiler/io/loadPlugins.test.js.map +0 -1
  68. package/dist/test/lib/core/compiler/io/parseInput.test.d.ts +0 -2
  69. package/dist/test/lib/core/compiler/io/parseInput.test.d.ts.map +0 -1
  70. package/dist/test/lib/core/compiler/io/parseInput.test.js +0 -21
  71. package/dist/test/lib/core/compiler/io/parseInput.test.js.map +0 -1
  72. package/dist/test/lib/core/components/blocks/image.test.d.ts +0 -2
  73. package/dist/test/lib/core/components/blocks/image.test.d.ts.map +0 -1
  74. package/dist/test/lib/core/components/blocks/image.test.js +0 -41
  75. package/dist/test/lib/core/components/blocks/image.test.js.map +0 -1
  76. package/dist/test/lib/core/components/blocks/point.test.d.ts +0 -2
  77. package/dist/test/lib/core/components/blocks/point.test.d.ts.map +0 -1
  78. package/dist/test/lib/core/components/blocks/point.test.js +0 -31
  79. package/dist/test/lib/core/components/blocks/point.test.js.map +0 -1
  80. package/dist/test/lib/core/components/blocks/quote.test.d.ts +0 -2
  81. package/dist/test/lib/core/components/blocks/quote.test.d.ts.map +0 -1
  82. package/dist/test/lib/core/components/blocks/quote.test.js +0 -31
  83. package/dist/test/lib/core/components/blocks/quote.test.js.map +0 -1
  84. package/dist/test/lib/core/components/blocks/table.test.d.ts +0 -2
  85. package/dist/test/lib/core/components/blocks/table.test.d.ts.map +0 -1
  86. package/dist/test/lib/core/components/blocks/table.test.js +0 -35
  87. package/dist/test/lib/core/components/blocks/table.test.js.map +0 -1
  88. package/dist/test/lib/core/components/blocks/text.test.d.ts +0 -2
  89. package/dist/test/lib/core/components/blocks/text.test.d.ts.map +0 -1
  90. package/dist/test/lib/core/components/blocks/text.test.js +0 -31
  91. package/dist/test/lib/core/components/blocks/text.test.js.map +0 -1
  92. package/dist/test/lib/core/components/class.test.d.ts +0 -2
  93. package/dist/test/lib/core/components/class.test.d.ts.map +0 -1
  94. package/dist/test/lib/core/components/class.test.js +0 -111
  95. package/dist/test/lib/core/components/class.test.js.map +0 -1
  96. package/dist/test/lib/core/components/presentations/presentation.test.d.ts +0 -2
  97. package/dist/test/lib/core/components/presentations/presentation.test.d.ts.map +0 -1
  98. package/dist/test/lib/core/components/presentations/presentation.test.js +0 -31
  99. package/dist/test/lib/core/components/presentations/presentation.test.js.map +0 -1
  100. package/dist/test/lib/core/components/slides/iframe.test.d.ts +0 -2
  101. package/dist/test/lib/core/components/slides/iframe.test.d.ts.map +0 -1
  102. package/dist/test/lib/core/components/slides/iframe.test.js +0 -31
  103. package/dist/test/lib/core/components/slides/iframe.test.js.map +0 -1
  104. package/dist/test/lib/core/components/slides/question-slide.test.d.ts +0 -2
  105. package/dist/test/lib/core/components/slides/question-slide.test.d.ts.map +0 -1
  106. package/dist/test/lib/core/components/slides/question-slide.test.js +0 -31
  107. package/dist/test/lib/core/components/slides/question-slide.test.js.map +0 -1
  108. package/dist/test/lib/core/components/slides/slide.test.d.ts +0 -2
  109. package/dist/test/lib/core/components/slides/slide.test.d.ts.map +0 -1
  110. package/dist/test/lib/core/components/slides/slide.test.js +0 -31
  111. package/dist/test/lib/core/components/slides/slide.test.js.map +0 -1
  112. package/dist/test/lib/core/components/slides/title-slide.test.d.ts +0 -2
  113. package/dist/test/lib/core/components/slides/title-slide.test.d.ts.map +0 -1
  114. package/dist/test/lib/core/components/slides/title-slide.test.js +0 -52
  115. package/dist/test/lib/core/components/slides/title-slide.test.js.map +0 -1
  116. package/dist/test/lib/core/components/utils/extract.test.d.ts +0 -2
  117. package/dist/test/lib/core/components/utils/extract.test.d.ts.map +0 -1
  118. package/dist/test/lib/core/components/utils/extract.test.js +0 -88
  119. package/dist/test/lib/core/components/utils/extract.test.js.map +0 -1
  120. package/dist/test/lib/core/components/utils/fetch.test.d.ts +0 -2
  121. package/dist/test/lib/core/components/utils/fetch.test.d.ts.map +0 -1
  122. package/dist/test/lib/core/components/utils/fetch.test.js +0 -62
  123. package/dist/test/lib/core/components/utils/fetch.test.js.map +0 -1
  124. package/dist/test/lib/core/components/utils/transform.test.d.ts +0 -2
  125. package/dist/test/lib/core/components/utils/transform.test.d.ts.map +0 -1
  126. package/dist/test/lib/core/components/utils/transform.test.js +0 -65
  127. package/dist/test/lib/core/components/utils/transform.test.js.map +0 -1
  128. package/dist/test/lib/core/defaults.test.d.ts +0 -2
  129. package/dist/test/lib/core/defaults.test.d.ts.map +0 -1
  130. package/dist/test/lib/core/defaults.test.js +0 -32
  131. package/dist/test/lib/core/defaults.test.js.map +0 -1
  132. package/dist/test/lib/core/markup/class.test.d.ts +0 -2
  133. package/dist/test/lib/core/markup/class.test.d.ts.map +0 -1
  134. package/dist/test/lib/core/markup/class.test.js +0 -68
  135. package/dist/test/lib/core/markup/class.test.js.map +0 -1
  136. package/dist/test/lib/core/markup/languages/latex.test.d.ts +0 -2
  137. package/dist/test/lib/core/markup/languages/latex.test.d.ts.map +0 -1
  138. package/dist/test/lib/core/markup/languages/latex.test.js +0 -22
  139. package/dist/test/lib/core/markup/languages/latex.test.js.map +0 -1
  140. package/dist/test/lib/core/markup/languages/lowercase.test.d.ts +0 -2
  141. package/dist/test/lib/core/markup/languages/lowercase.test.d.ts.map +0 -1
  142. package/dist/test/lib/core/markup/languages/lowercase.test.js +0 -26
  143. package/dist/test/lib/core/markup/languages/lowercase.test.js.map +0 -1
  144. package/dist/test/lib/core/markup/languages/markdown.test.d.ts +0 -2
  145. package/dist/test/lib/core/markup/languages/markdown.test.d.ts.map +0 -1
  146. package/dist/test/lib/core/markup/languages/markdown.test.js +0 -151
  147. package/dist/test/lib/core/markup/languages/markdown.test.js.map +0 -1
  148. package/dist/test/lib/core/markup/languages/plain.test.d.ts +0 -2
  149. package/dist/test/lib/core/markup/languages/plain.test.d.ts.map +0 -1
  150. package/dist/test/lib/core/markup/languages/plain.test.js +0 -26
  151. package/dist/test/lib/core/markup/languages/plain.test.js.map +0 -1
  152. package/dist/test/lib/core/markup/languages/slyde.test.d.ts +0 -2
  153. package/dist/test/lib/core/markup/languages/slyde.test.d.ts.map +0 -1
  154. package/dist/test/lib/core/markup/languages/slyde.test.js +0 -218
  155. package/dist/test/lib/core/markup/languages/slyde.test.js.map +0 -1
  156. package/dist/test/lib/core/markup/languages/uppercase.test.d.ts +0 -2
  157. package/dist/test/lib/core/markup/languages/uppercase.test.d.ts.map +0 -1
  158. package/dist/test/lib/core/markup/languages/uppercase.test.js +0 -26
  159. package/dist/test/lib/core/markup/languages/uppercase.test.js.map +0 -1
  160. package/dist/test/lib/core/markup/utils.test.d.ts +0 -2
  161. package/dist/test/lib/core/markup/utils.test.d.ts.map +0 -1
  162. package/dist/test/lib/core/markup/utils.test.js +0 -18
  163. package/dist/test/lib/core/markup/utils.test.js.map +0 -1
  164. package/dist/test/lib/core/registry.test.d.ts +0 -2
  165. package/dist/test/lib/core/registry.test.d.ts.map +0 -1
  166. package/dist/test/lib/core/registry.test.js +0 -120
  167. package/dist/test/lib/core/registry.test.js.map +0 -1
  168. package/dist/test/lib/core/render/processing-instructions.test.d.ts +0 -2
  169. package/dist/test/lib/core/render/processing-instructions.test.d.ts.map +0 -1
  170. package/dist/test/lib/core/render/processing-instructions.test.js +0 -68
  171. package/dist/test/lib/core/render/processing-instructions.test.js.map +0 -1
  172. package/dist/test/lib/core/render/render.test.d.ts +0 -2
  173. package/dist/test/lib/core/render/render.test.d.ts.map +0 -1
  174. package/dist/test/lib/core/render/render.test.js +0 -84
  175. package/dist/test/lib/core/render/render.test.js.map +0 -1
  176. package/dist/test/lib/core/render/utils.test.d.ts +0 -2
  177. package/dist/test/lib/core/render/utils.test.d.ts.map +0 -1
  178. package/dist/test/lib/core/render/utils.test.js +0 -161
  179. package/dist/test/lib/core/render/utils.test.js.map +0 -1
  180. package/dist/test/lib/logger.test.d.ts +0 -2
  181. package/dist/test/lib/logger.test.d.ts.map +0 -1
  182. package/dist/test/lib/logger.test.js +0 -64
  183. package/dist/test/lib/logger.test.js.map +0 -1
  184. package/dist/test/lib/types/base-path.test.d.ts +0 -2
  185. package/dist/test/lib/types/base-path.test.d.ts.map +0 -1
  186. package/dist/test/lib/types/base-path.test.js +0 -36
  187. package/dist/test/lib/types/base-path.test.js.map +0 -1
  188. package/dist/test/lib/types/log-level.test.d.ts +0 -2
  189. package/dist/test/lib/types/log-level.test.d.ts.map +0 -1
  190. package/dist/test/lib/types/log-level.test.js +0 -122
  191. package/dist/test/lib/types/log-level.test.js.map +0 -1
  192. package/dist/test/lib/types/optional.test.d.ts +0 -2
  193. package/dist/test/lib/types/optional.test.d.ts.map +0 -1
  194. package/dist/test/lib/types/optional.test.js +0 -116
  195. package/dist/test/lib/types/optional.test.js.map +0 -1
  196. package/dist/test/lib/types/result.test.d.ts +0 -2
  197. package/dist/test/lib/types/result.test.d.ts.map +0 -1
  198. package/dist/test/lib/types/result.test.js +0 -97
  199. package/dist/test/lib/types/result.test.js.map +0 -1
  200. package/dist/test/lib/utils/index.test.d.ts +0 -2
  201. package/dist/test/lib/utils/index.test.d.ts.map +0 -1
  202. package/dist/test/lib/utils/index.test.js +0 -27
  203. package/dist/test/lib/utils/index.test.js.map +0 -1
  204. package/dist/test/lib/utils/switch-case.test.d.ts +0 -2
  205. package/dist/test/lib/utils/switch-case.test.d.ts.map +0 -1
  206. package/dist/test/lib/utils/switch-case.test.js +0 -33
  207. package/dist/test/lib/utils/switch-case.test.js.map +0 -1
  208. package/dist/test/src/cli.test.d.ts +0 -2
  209. package/dist/test/src/cli.test.d.ts.map +0 -1
  210. package/dist/test/src/cli.test.js +0 -9
  211. package/dist/test/src/cli.test.js.map +0 -1
  212. package/dist/vitest.config.d.ts +0 -3
  213. package/dist/vitest.config.d.ts.map +0 -1
  214. package/dist/vitest.config.js +0 -30
  215. package/dist/vitest.config.js.map +0 -1
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <div align="center">
2
2
  <picture>
3
- <source srcset="https://github.com/Tygo-van-den-Hurk/Slyde/blob/0192a399344a453f752428758b40f698063ca2cd/docs/assets/logo-standalone.svg" media="(max-width: 600px)">
4
- <img src="https://github.com/Tygo-van-den-Hurk/Slyde/blob/0192a399344a453f752428758b40f698063ca2cd/docs/assets/logo-with-text.svg" width="50%" alt="the Slyde logo">
3
+ <source srcset="https://github.com/Tygo-van-den-Hurk/Slyde/blob/8f6d5a052ccfa5de6f833b9fecd4ed5e0f5ce640/docs/assets/logo-standalone.svg" media="(max-width: 600px)">
4
+ <img src="https://github.com/Tygo-van-den-Hurk/Slyde/blob/8f6d5a052ccfa5de6f833b9fecd4ed5e0f5ce640/docs/assets/logo-with-text.svg" width="50%" alt="the Slyde logo">
5
5
  </picture>
6
6
  <br>
7
7
  <br>
@@ -26,7 +26,7 @@ Slyde is a program to create professional beautifully animated presentations fro
26
26
 
27
27
  This would output the following fully animated presentation:
28
28
 
29
- <img src="https://github.com/Tygo-van-den-Hurk/Slyde/blob/0192a399344a453f752428758b40f698063ca2cd/docs/assets/example-presentation.gif" width="100%" alt="An example Slyde presentation based on the previous example XML template">
29
+ <img src="https://github.com/Tygo-van-den-Hurk/Slyde/blob/8f6d5a052ccfa5de6f833b9fecd4ed5e0f5ce640/docs/assets/example-presentation.gif" width="100%" alt="An example Slyde presentation based on the previous example XML template">
30
30
 
31
31
  ## Features
32
32
 
@@ -57,7 +57,7 @@ To install Slyde using npm from [GitHub' NPM registry](https://npm.pkg.github.co
57
57
  To install and run slyde using [docker](http://docker.com), run the following command:
58
58
 
59
59
  ```Shell
60
- docker run --interactive --tty --volume "$PWD:/pwd" --rm ghcr.io/tygo-van-den-hurk/slyde:latest compile /pwd/slyde.xml --output /pwd/slyde.html
60
+ docker run -it --volume "$PWD:/pwd" --rm ghcr.io/tygo-van-den-hurk/slyde:latest compile
61
61
  ```
62
62
 
63
63
  ### Building from source
@@ -81,4 +81,4 @@ You can also install Slyde in your path by adding the `--global` flag. You might
81
81
 
82
82
  ## Licence
83
83
 
84
- All files in this repository fall under a [licence](https://github.com/Tygo-van-den-Hurk/Slyde/blob/0192a399344a453f752428758b40f698063ca2cd/LICENSE).
84
+ All files in this repository fall under a [licence](https://github.com/Tygo-van-den-Hurk/Slyde/blob/8f6d5a052ccfa5de6f833b9fecd4ed5e0f5ce640/LICENSE).
@@ -0,0 +1,8 @@
1
+ import type { SlydeHtmlDocumentCssProperties } from '#browser/css/types';
2
+ /** Passes the provided arguments as CSS variables up the tree. */
3
+ export declare const variables: ({ background, foreground, primary, secondary, size, }: SlydeHtmlDocumentCssProperties) => string;
4
+ /** All the CSS for the HTML body. */
5
+ export declare const html = "\n html {\n height: 100vh;\n width: 100vw;\n margin: 0;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: black;\n font-family: \"DejaVu Sans\", sans-serif !important;\n }\n";
6
+ /** The default CSS to display regardless of the mode we're in. */
7
+ export declare const baseCSS: (args: SlydeHtmlDocumentCssProperties) => string;
8
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../browser/css/modes/base.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAEzE,kEAAkE;AAClE,eAAO,MAAM,SAAS,GAAsB,uDAMzC,8BAA8B,KAAG,MAcnC,CAAC;AAEF,qCAAqC;AACrC,eAAO,MAAM,IAAI,kQAYhB,CAAC;AAyEF,kEAAkE;AAClE,eAAO,MAAM,OAAO,GAAoB,MAAM,8BAA8B,KAAG,MAW9E,CAAC"}
@@ -0,0 +1,110 @@
1
+ /* eslint-disable no-inline-comments */
2
+ import { Component } from '#lib/core/components/class';
3
+ /** Passes the provided arguments as CSS variables up the tree. */
4
+ export const variables = function variables({ background, foreground, primary, secondary, size, }) {
5
+ return /*CSS*/ `
6
+ /*
7
+ !!!! Any changes to this function removing variables are very much breaking changes !!!!
8
+ */
9
+ :root {
10
+ --width: ${size.width} !important;
11
+ --height: ${size.height} !important;
12
+ --foreground: ${foreground} !important;
13
+ --background: ${background} !important;
14
+ --secondary: ${secondary} !important;
15
+ --primary: ${primary} !important;
16
+ }
17
+ `;
18
+ };
19
+ /** All the CSS for the HTML body. */
20
+ export const html = /*CSS*/ `
21
+ html {
22
+ height: 100vh;
23
+ width: 100vw;
24
+ margin: 0;
25
+ padding: 0;
26
+ display: flex;
27
+ justify-content: center;
28
+ align-items: center;
29
+ background-color: black;
30
+ font-family: "DejaVu Sans", sans-serif !important;
31
+ }
32
+ `;
33
+ /** Disables all scrollbars everywhere */
34
+ const scrollBars = /*CSS*/ `
35
+ * {
36
+ scrollbar-width: none;
37
+ -ms-overflow-style: none;
38
+ }
39
+
40
+ *::-webkit-scrollbar {
41
+ display: none;
42
+ }
43
+ `;
44
+ /** A list of things that should never be displayed. */
45
+ const hide = /*CSS*/ `
46
+ head, style, script {
47
+ display: none !important;
48
+ visibility: hidden !important;
49
+ }
50
+ `;
51
+ /** Styles the latex containers created by the latex parsers. */
52
+ const latex = /*CSS*/ `
53
+ mjx-container {
54
+ display: inline-block;
55
+ vertical-align: middle;
56
+ }
57
+ `;
58
+ const fontSize = 1;
59
+ /** The CSS related to the body. */
60
+ const body = /*CSS*/ `
61
+ body { /* Calculation of --unit */
62
+ color: var(--foreground);
63
+ position: relative;
64
+
65
+ --unit: min(
66
+ (min(100vw, calc(100vh * var(--width) / var(--height))) / var(--width)),
67
+ (min(100vh, calc(100vw * var(--height) / var(--width))) / var(--height)),
68
+ ) !important;
69
+
70
+ container-name: document;
71
+ container-type: size;
72
+ width: calc(var(--width) * var(--unit));
73
+ }
74
+
75
+ body { /* Calculation of the --font size. */
76
+ --font-size: min(
77
+ ${fontSize} * 1vw * (100 / var(--width)),
78
+ 100vh * (${fontSize} / var(--height))
79
+ ) !important;
80
+ font-size: var(--font-size);
81
+ }
82
+ `;
83
+ /** CSS related to the slides */
84
+ const slide = /*CSS*/ `
85
+ body slyde-component[level="${Component.level.slide}"] {
86
+ display: block;
87
+ background-color: var(--background);
88
+ width: 100%;
89
+ aspect-ratio: var(--width) / var(--height);
90
+ }
91
+ `;
92
+ /** CSS related to anchors */
93
+ const anchors = /*CSS*/ `
94
+ a { color: var(--secondary) }
95
+ a:hover { text-decoration: underline }
96
+ `;
97
+ /** The default CSS to display regardless of the mode we're in. */
98
+ export const baseCSS = function baseCSS(args) {
99
+ return /* CSS */ `
100
+ ${variables(args)}
101
+ ${html}
102
+ ${scrollBars}
103
+ ${hide}
104
+ ${latex}
105
+ ${body}
106
+ ${slide}
107
+ ${anchors}
108
+ `;
109
+ };
110
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../browser/css/modes/base.ts"],"names":[],"mappings":"AAAA,uCAAuC;AAEvC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD,kEAAkE;AAClE,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,SAAS,CAAC,EAC1C,UAAU,EACV,UAAU,EACV,OAAO,EACP,SAAS,EACT,IAAI,GAC2B;IAC/B,OAAO,OAAO,CAAC;;;;;iBAKA,IAAI,CAAC,KAAK;kBACT,IAAI,CAAC,MAAM;sBACP,UAAU;sBACV,UAAU;qBACX,SAAS;mBACX,OAAO;;GAEvB,CAAC;AACJ,CAAC,CAAC;AAEF,qCAAqC;AACrC,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC;;;;;;;;;;;;CAY3B,CAAC;AAEF,yCAAyC;AACzC,MAAM,UAAU,GAAG,OAAO,CAAC;;;;;;;;;CAS1B,CAAC;AAEF,uDAAuD;AACvD,MAAM,IAAI,GAAG,OAAO,CAAC;;;;;CAKpB,CAAC;AAEF,gEAAgE;AAChE,MAAM,KAAK,GAAG,OAAO,CAAC;;;;;CAKrB,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,CAAC;AAEnB,mCAAmC;AACnC,MAAM,IAAI,GAAG,OAAO,CAAC;;;;;;;;;;;;;;;;;QAiBb,QAAQ;iBACC,QAAQ;;;;CAIxB,CAAC;AAEF,gCAAgC;AAChC,MAAM,KAAK,GAAG,OAAO,CAAC;gCACU,SAAS,CAAC,KAAK,CAAC,KAAK;;;;;;CAMpD,CAAC;AAEF,6BAA6B;AAC7B,MAAM,OAAO,GAAG,OAAO,CAAC;;;CAGvB,CAAC;AAEF,kEAAkE;AAClE,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,OAAO,CAAC,IAAoC;IAC1E,OAAO,SAAS,CAAC;MACb,SAAS,CAAC,IAAI,CAAC;MACf,IAAI;MACJ,UAAU;MACV,IAAI;MACJ,KAAK;MACL,IAAI;MACJ,KAAK;MACL,OAAO;GACV,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * This file contains all the CSS to ONLY apply when the document is in "PDF" mode.
3
+ */
4
+ /** The CSS to apply when in this mode */
5
+ export declare const pdfModeStyle: string;
6
+ //# sourceMappingURL=pdf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf.d.ts","sourceRoot":"","sources":["../../../../browser/css/modes/pdf.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyBH,yCAAyC;AACzC,eAAO,MAAM,YAAY,QAAoB,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * This file contains all the CSS to ONLY apply when the document is in "PDF" mode.
3
+ */
4
+ //
5
+ import { Component } from '#lib/core/components/class';
6
+ /** The CSS for the body. */
7
+ // eslint-disable-next-line no-inline-comments
8
+ const body = /*CSS*/ `
9
+ body {
10
+ overflow-x: scroll;
11
+ height: 100vh;
12
+ }
13
+ `;
14
+ // eslint-disable-next-line no-inline-comments
15
+ const slide = /*CSS*/ `
16
+ body slyde-component[level="${Component.level.slide}"] {
17
+ margin-bottom: var(--unit);
18
+ }
19
+
20
+ body slyde-component[level="${Component.level.slide}"]:last-child {
21
+ margin-bottom: 0;
22
+ }
23
+ `;
24
+ /** The CSS to apply when in this mode */
25
+ export const pdfModeStyle = `${body}${slide}`;
26
+ //# sourceMappingURL=pdf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../../../browser/css/modes/pdf.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,EAAE;AAEF,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,4BAA4B;AAC5B,8CAA8C;AAC9C,MAAM,IAAI,GAAG,OAAO,CAAC;;;;;CAKX,CAAC;AAEX,8CAA8C;AAC9C,MAAM,KAAK,GAAG,OAAO,CAAC;gCACU,SAAS,CAAC,KAAK,CAAC,KAAK;;;;gCAIrB,SAAS,CAAC,KAAK,CAAC,KAAK;;;CAG3C,CAAC;AAEX,yCAAyC;AACzC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This file contains all the CSS to only apply when the document is in it's default "presenting" mode.
3
+ */
4
+ /** Makes nothing selectable. Prevents selecting things when presenting. */
5
+ export declare const nothingSelectable: "\n * {\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n }\n";
6
+ /** The CSS to apply when in presentation mode. */
7
+ export declare const presentationModeStyle: "\n \n * {\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n }\n\n \n body slyde-component[level=\"1\"] {\n display: none;\n }\n \n /* Move to a separate style element later to allow JS to alter it. */\n body slyde-component[level=\"1\"]:first-of-type {\n display: block;\n }\n\n \n body {\n overflow: hidden;\n aspect-ratio: var(--width) / var(--height);\n /* Full height, unless it would be wider then the slide itself. */\n height: min(100vh, calc(100vw * var(--height) / var(--width)));\n }\n\n";
8
+ //# sourceMappingURL=presentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation.d.ts","sourceRoot":"","sources":["../../../../browser/css/modes/presentation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,2EAA2E;AAE3E,eAAO,MAAM,iBAAiB,mIAOpB,CAAC;AAyBX,kDAAkD;AAClD,eAAO,MAAM,qBAAqB,qlBAIxB,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * This file contains all the CSS to only apply when the document is in it's default "presenting" mode.
3
+ */
4
+ //
5
+ import { Component } from '#lib/core/components/class';
6
+ /** Makes nothing selectable. Prevents selecting things when presenting. */
7
+ // eslint-disable-next-line no-inline-comments
8
+ export const nothingSelectable = /*CSS*/ `
9
+ * {
10
+ user-select: none;
11
+ -webkit-user-select: none;
12
+ -moz-user-select: none;
13
+ -ms-user-select: none;
14
+ }
15
+ `;
16
+ /** The CSS for the body */
17
+ // eslint-disable-next-line no-inline-comments
18
+ const body = /*CSS*/ `
19
+ body {
20
+ overflow: hidden;
21
+ aspect-ratio: var(--width) / var(--height);
22
+ /* Full height, unless it would be wider then the slide itself. */
23
+ height: min(100vh, calc(100vw * var(--height) / var(--width)));
24
+ }
25
+ `;
26
+ // eslint-disable-next-line no-inline-comments
27
+ const slide = /*CSS*/ `
28
+ body slyde-component[level="${Component.level.slide}"] {
29
+ display: none;
30
+ }
31
+
32
+ /* Move to a separate style element later to allow JS to alter it. */
33
+ body slyde-component[level="${Component.level.slide}"]:first-of-type {
34
+ display: block;
35
+ }
36
+ `;
37
+ /** The CSS to apply when in presentation mode. */
38
+ export const presentationModeStyle = `
39
+ ${nothingSelectable}
40
+ ${slide}
41
+ ${body}
42
+ `;
43
+ //# sourceMappingURL=presentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation.js","sourceRoot":"","sources":["../../../../browser/css/modes/presentation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,EAAE;AAEF,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,2EAA2E;AAC3E,8CAA8C;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC;;;;;;;CAO/B,CAAC;AAEX,2BAA2B;AAC3B,8CAA8C;AAC9C,MAAM,IAAI,GAAG,OAAO,CAAC;;;;;;;CAOX,CAAC;AAEX,8CAA8C;AAC9C,MAAM,KAAK,GAAG,OAAO,CAAC;gCACU,SAAS,CAAC,KAAK,CAAC,KAAK;;;;;gCAKrB,SAAS,CAAC,KAAK,CAAC,KAAK;;;CAG3C,CAAC;AAEX,kDAAkD;AAClD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACjC,iBAAiB;IACjB,KAAK;IACL,IAAI;CACE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { SlydeHtmlDocumentCssProperties } from '#browser/css/types';
2
+ /** The config for tailwind in the browser. */
3
+ export declare const tailwindConfig: ({ background, foreground, secondary, primary, }: SlydeHtmlDocumentCssProperties) => {
4
+ theme: Record<string, Record<string, unknown>>;
5
+ };
6
+ //# sourceMappingURL=tw-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tw-config.d.ts","sourceRoot":"","sources":["../../../browser/css/tw-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAEzE,8CAA8C;AAC9C,eAAO,MAAM,cAAc,GAA2B,iDAKnD,8BAA8B,KAAG;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAoCnF,CAAC"}
@@ -0,0 +1,34 @@
1
+ /** The config for tailwind in the browser. */
2
+ export const tailwindConfig = function tailwindConfig({ background, foreground, secondary, primary, }) {
3
+ return {
4
+ theme: {
5
+ /**
6
+ * Allow **only** these colors.
7
+ */
8
+ colors: { background, foreground, primary, secondary },
9
+ /**
10
+ * Extend the tailwind config with these options.
11
+ */
12
+ extend: {},
13
+ /** The different font sizes */
14
+ fontSize: {
15
+ '2xl': 'calc(var(--font-size) * 2.50)',
16
+ '2xs': 'calc(var(--font-size) * 0.25)',
17
+ '3xl': 'calc(var(--font-size) * 3.00)',
18
+ '4xl': 'calc(var(--font-size) * 3.50)',
19
+ '5xl': 'calc(var(--font-size) * 4.00)',
20
+ base: 'calc(var(--font-size) * 1.00)',
21
+ lg: 'calc(var(--font-size) * 1.50)',
22
+ sm: 'calc(var(--font-size) * 0.75)',
23
+ xl: 'calc(var(--font-size) * 2.00)',
24
+ xs: 'calc(var(--font-size) * 0.50)',
25
+ },
26
+ /**
27
+ * Allow **only** the scale of `--unit` which is the unit of measurement in a slyde HTML document as it changes
28
+ * based on the size of the document. All other measurements don't.
29
+ */
30
+ spacing: Object.fromEntries(Array.from({ length: 1000 }, (_ignore, amount) => [amount, `calc(${amount} * var(--unit))`])),
31
+ },
32
+ };
33
+ };
34
+ //# sourceMappingURL=tw-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tw-config.js","sourceRoot":"","sources":["../../../browser/css/tw-config.ts"],"names":[],"mappings":"AAEA,8CAA8C;AAC9C,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,cAAc,CAAC,EACpD,UAAU,EACV,UAAU,EACV,SAAS,EACT,OAAO,GACwB;IAC/B,OAAO;QACL,KAAK,EAAE;YACL;;eAEG;YACH,MAAM,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE;YAEtD;;eAEG;YACH,MAAM,EAAE,EAAE;YAEV,+BAA+B;YAC/B,QAAQ,EAAE;gBACR,KAAK,EAAE,+BAA+B;gBACtC,KAAK,EAAE,+BAA+B;gBACtC,KAAK,EAAE,+BAA+B;gBACtC,KAAK,EAAE,+BAA+B;gBACtC,KAAK,EAAE,+BAA+B;gBACtC,IAAI,EAAE,+BAA+B;gBACrC,EAAE,EAAE,+BAA+B;gBACnC,EAAE,EAAE,+BAA+B;gBACnC,EAAE,EAAE,+BAA+B;gBACnC,EAAE,EAAE,+BAA+B;aACpC;YAED;;;eAGG;YACH,OAAO,EAAE,MAAM,CAAC,WAAW,CACzB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,MAAM,iBAAiB,CAAC,CAAC,CAC7F;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- /** All properties that a Slyde HTML document requires. */
1
+ /** All properties that a Slyde HTML document requires for CSS generation. */
2
2
  export interface SlydeHtmlDocumentCssProperties {
3
3
  /** The background color of the document */
4
4
  readonly background: string;
@@ -16,12 +16,4 @@ export interface SlydeHtmlDocumentCssProperties {
16
16
  readonly width: number;
17
17
  };
18
18
  }
19
- /** The config for tailwind in the browser. */
20
- export declare const tailwindConfig: ({ background, foreground, secondary, primary, }: SlydeHtmlDocumentCssProperties) => {
21
- theme: Record<string, Record<string, unknown>>;
22
- };
23
- /** Returns a base Tailwind CSS style block that sets default styles. */
24
- export declare const baseTailwind: () => string;
25
- /** The only part of the CSS that cannot be done using TailWindCss. */
26
- export declare const baseCSS: (args: SlydeHtmlDocumentCssProperties) => string;
27
- //# sourceMappingURL=css.d.ts.map
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../browser/css/types.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,MAAM,WAAW,8BAA8B;IAC7C,2CAA2C;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,6BAA6B;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,qFAAqF;IACrF,QAAQ,CAAC,IAAI,EAAE;QACb,6CAA6C;QAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,6CAA6C;QAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;CACH"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../browser/css/types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { type SlydeHtmlDocumentCssProperties } from '#browser/css';
1
+ import type { SlydeHtmlDocumentCssProperties } from '#browser/css/types';
2
2
  /** The properties a */
3
3
  export interface SlydeHtmlDocumentHtmlProperties extends SlydeHtmlDocumentCssProperties {
4
4
  /** The title of the presentation. */
@@ -1 +1 @@
1
- {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../browser/html.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,8BAA8B,EAIpC,MAAM,cAAc,CAAC;AAGtB,wBAAwB;AACxB,MAAM,WAAW,+BAAgC,SAAQ,8BAA8B;IACrF,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,qCAAqC;AACrC,eAAO,MAAM,YAAY,GAAyB,MAAM,+BAA+B,KAAG,MAmCzF,CAAC"}
1
+ {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../browser/html.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AASzE,wBAAwB;AACxB,MAAM,WAAW,+BAAgC,SAAQ,8BAA8B;IACrF,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,iCAAiC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,qCAAqC;AACrC,eAAO,MAAM,YAAY,GAAyB,MAAM,+BAA+B,KAAG,MAuCzF,CAAC"}
@@ -1,6 +1,10 @@
1
- /* eslint-disable @typescript-eslint/strict-boolean-expressions, no-ternary */
2
- import { baseCSS, baseTailwind, tailwindConfig, } from '#browser/css';
3
- import { setupScriptCode } from '#browser/page-logic.browser';
1
+ import { baseCSS } from '#browser/css/modes/base';
2
+ import inputBindingScript from '#browser/scripts/input-bindings';
3
+ import pdfModeScript from '#browser/scripts/pdf-mode';
4
+ import { pdfModeStyle } from '#browser/css/modes/pdf';
5
+ import slideControlScript from '#browser/scripts/slide-control';
6
+ import { tailwindConfig } from '#browser/css/tw-config';
7
+ import utilsScript from '#browser/scripts/utils';
4
8
  /** Creates an HTML document from */
5
9
  export const htmlDocument = function htmlDocument(args) {
6
10
  // eslint-disable-next-line no-inline-comments
@@ -8,14 +12,15 @@ export const htmlDocument = function htmlDocument(args) {
8
12
  <!DOCTYPE html>
9
13
  <html lang="en">
10
14
  <head>
11
- <style> ${baseCSS({ ...args })} </style>
12
- ${baseTailwind()}
13
15
  <title>${args.title}</title>
14
16
  <!-- TODO: wget this script and then inject it as a string instead. -->
15
- <script> const Logger = Object.freeze({ ...console, critical: console.error }); </script>
16
17
  <script src="https://cdn.tailwindcss.com"></script>
17
18
  <script id="tailwind-config-setup"> tailwind.config = ${JSON.stringify(tailwindConfig({ ...args }))}; </script>
18
- <script id="event-listening-setup" type="module">${setupScriptCode}</script>
19
+ <script> const Logger = Object.freeze({ ...console, critical: console.error }); </script>
20
+ <script type="module">${utilsScript}</script>
21
+ <script type="module">${slideControlScript}</script>
22
+ <script type="module">${pdfModeScript}</script>
23
+ <script type="module">${inputBindingScript}</script>
19
24
  <meta charset="UTF-8">
20
25
  <meta name="darkreader-lock">
21
26
  <meta property="og:title" content="${args.title}">
@@ -26,11 +31,14 @@ export const htmlDocument = function htmlDocument(args) {
26
31
  <meta name="authors" content="${args.authors.join(',')}">
27
32
  <meta name="msapplication-TileImage" content="${args.icon}" />
28
33
  <meta name="msapplication-TileColor" content="${args.background}" />
29
- <!-- <meta http-equiv="Content-Security-Policy" content="connect-src 'none'; script-src 'self' ${args.nonce ? `'nonce-${args.nonce}'` : ''};"> -->
34
+ <!-- <meta http-equiv="Content-Security-Policy" content="connect-src 'none'; script-src 'self' ${((args.nonce ?? '') !== '' && `'nonce-${args.nonce}'`) || ''};"> -->
30
35
  <meta name="theme-color" content="${args.primary}" />
31
36
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
32
37
  <link rel="icon" href="${args.icon}">
33
38
  <link rel="apple-touch-icon" href="${args.icon}">
39
+ <style> ${baseCSS({ ...args })} </style>
40
+ <style id="dynamic-style">${pdfModeStyle}</style>
41
+ <noscript><style id="pdf-mode-style">${pdfModeStyle}</style></noscript>
34
42
  </head>
35
43
  <body>
36
44
  ${args.content}
@@ -1 +1 @@
1
- {"version":3,"file":"html.js","sourceRoot":"","sources":["../../browser/html.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAE9E,OAAO,EAEL,OAAO,EACP,YAAY,EACZ,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAwB9D,qCAAqC;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,YAAY,CAAC,IAAqC;IACrF,8CAA8C;IAC9C,OAAO,QAAQ,CAAC;;;;kBAIA,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;UAC5B,YAAY,EAAE;iBACP,IAAI,CAAC,KAAK;;;;gEAIqC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;2DAChD,eAAe;;;6CAG7B,IAAI,CAAC,KAAK;mDACJ,IAAI,CAAC,WAAW;6CACtB,IAAI,CAAC,IAAI;yCACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;4CACpB,IAAI,CAAC,WAAW;wCACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;wDACN,IAAI,CAAC,IAAI;wDACT,IAAI,CAAC,UAAU;yGACkC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;4CACtG,IAAI,CAAC,OAAO;;iCAEvB,IAAI,CAAC,IAAI;6CACG,IAAI,CAAC,IAAI;;;UAG5C,IAAI,CAAC,OAAO;;;GAGnB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../browser/html.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,kBAAkB,MAAM,iCAAiC,CAAC;AACjE,OAAO,aAAa,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,kBAAkB,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAwBjD,qCAAqC;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,YAAY,CAAC,IAAqC;IACrF,8CAA8C;IAC9C,OAAO,QAAQ,CAAC;;;;iBAID,IAAI,CAAC,KAAK;;;gEAGqC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;;gCAE3E,WAAW;gCACX,kBAAkB;gCAClB,aAAa;gCACb,kBAAkB;;;6CAGL,IAAI,CAAC,KAAK;mDACJ,IAAI,CAAC,WAAW;6CACtB,IAAI,CAAC,IAAI;yCACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;4CACpB,IAAI,CAAC,WAAW;wCACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;wDACN,IAAI,CAAC,IAAI;wDACT,IAAI,CAAC,UAAU;yGACkC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,UAAU,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE;4CACzH,IAAI,CAAC,OAAO;;iCAEvB,IAAI,CAAC,IAAI;6CACG,IAAI,CAAC,IAAI;kBACpC,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;oCACF,YAAY;+CACD,YAAY;;;UAGjD,IAAI,CAAC,OAAO;;;GAGnB,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ declare let script: string;
2
+ /** Handles key presses on the document, and moves slides accordingly. */
3
+ export declare const handleKeyPresses: (event: KeyboardEvent) => void;
4
+ /** Handles scrolling through on the document, and moves slides accordingly. */
5
+ export declare const handleScrollEvents: (event: WheelEvent) => void;
6
+ /**
7
+ * Handles touch events the screen. Goes to the next slide, when tapping the right half,
8
+ * and the previous slide when tapping the left half of the screen.
9
+ */
10
+ export declare const handleTouchEvents: (event: TouchEvent) => void;
11
+ /** Prevents context menus from showing up when right clicking. */
12
+ export declare const handleContextMenus: (event: MouseEvent) => void;
13
+ interface MouseHider {
14
+ (): void;
15
+ hideTimeout?: NodeJS.Timeout;
16
+ }
17
+ /** Hides mouse cursor when its not moving, shows the mouse cursor when it is. */
18
+ export declare const handleMouseMove: MouseHider;
19
+ /** Handles mouse presses on the document, and moves slides accordingly. */
20
+ export declare const handleMousePresses: (event: MouseEvent) => void;
21
+ /** The contents of the input binding script. */
22
+ export default script;
23
+ //# sourceMappingURL=input-bindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-bindings.d.ts","sourceRoot":"","sources":["../../../browser/scripts/input-bindings.ts"],"names":[],"mappings":"AAEA,QAAA,IAAI,MAAM,QAAoB,CAAC;AAE/B,yEAAyE;AAEzE,eAAO,MAAM,gBAAgB,GAA6B,OAAO,aAAa,KAAG,IAgDhF,CAAC;AAIF,+EAA+E;AAE/E,eAAO,MAAM,kBAAkB,GAA+B,OAAO,UAAU,KAAG,IAIjF,CAAC;AAIF;;;GAGG;AAEH,eAAO,MAAM,iBAAiB,GAA8B,OAAO,UAAU,KAAG,IAe/E,CAAC;AAIF,kEAAkE;AAElE,eAAO,MAAM,kBAAkB,GAA+B,OAAO,UAAU,KAAG,IAGjF,CAAC;AAIF,UAAU,UAAU;IAClB,IAAI,IAAI,CAAC;IACT,WAAW,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;CAC9B;AAED,iFAAiF;AACjF,eAAO,MAAM,eAAe,EAWvB,UAAU,CAAC;AAIhB,2EAA2E;AAE3E,eAAO,MAAM,kBAAkB,GAA+B,OAAO,UAAU,KAAG,IAWjF,CAAC;AAIF,gDAAgD;AAChD,eAAe,MAAM,CAAC"}
@@ -0,0 +1,129 @@
1
+ import { Logger } from '#lib/logger';
2
+ let script = '"use-strict";\n';
3
+ /** Handles key presses on the document, and moves slides accordingly. */
4
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types, complexity
5
+ export const handleKeyPresses = function handleKeyPresses(event) {
6
+ event.preventDefault();
7
+ Logger.warn(event);
8
+ switch (event.key) {
9
+ // Moving to the next slide:
10
+ case 'Enter':
11
+ case 'Space':
12
+ case 'Tab':
13
+ case ' ':
14
+ case 'd':
15
+ case 'D':
16
+ case 'l':
17
+ case 'L':
18
+ case 'ArrowRight':
19
+ if (window.isPDF())
20
+ break;
21
+ case 'ArrowDown': // eslint-disable-line no-fallthrough
22
+ case 'PageDown':
23
+ window.goToNextSlide();
24
+ break;
25
+ // Moving to the previous slide:
26
+ case 'a':
27
+ case 'A':
28
+ case 'h':
29
+ case 'H':
30
+ case 'ArrowLeft':
31
+ if (window.isPDF())
32
+ break;
33
+ case 'ArrowUp': // eslint-disable-line no-fallthrough
34
+ case 'PageUp':
35
+ window.goToPreviousSlide();
36
+ break;
37
+ // Making the presentation full screen
38
+ case 'f':
39
+ case 'F':
40
+ case 'F11':
41
+ window.toggleFullScreen();
42
+ break;
43
+ // Toggling PDF mode
44
+ case 'p':
45
+ case 'P':
46
+ window.togglePdfMode();
47
+ break;
48
+ // Ignore unknown keybindings.
49
+ default:
50
+ }
51
+ };
52
+ script += `window.addEventListener("keydown", ${handleKeyPresses.toString()});\n`;
53
+ /** Handles scrolling through on the document, and moves slides accordingly. */
54
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
55
+ export const handleScrollEvents = function handleScrollEvents(event) {
56
+ if (window.isPDF())
57
+ return;
58
+ if (event.deltaY < -1)
59
+ window.goToNextSlide(); // eslint-disable-line @typescript-eslint/no-magic-numbers
60
+ if (event.deltaY > 1)
61
+ window.goToPreviousSlide();
62
+ };
63
+ script += `window.addEventListener("wheel", ${handleScrollEvents.toString()});\n`;
64
+ /**
65
+ * Handles touch events the screen. Goes to the next slide, when tapping the right half,
66
+ * and the previous slide when tapping the left half of the screen.
67
+ */
68
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
69
+ export const handleTouchEvents = function handleTouchEvents(event) {
70
+ if (window.isPDF())
71
+ return;
72
+ const half = 2;
73
+ const screenWidth = window.innerWidth;
74
+ for (const touch of event.touches) {
75
+ // Ignoring touches outside of the presentation, or are not on document nodes.
76
+ const { target } = touch;
77
+ if (!(target instanceof Node))
78
+ continue;
79
+ if (!document.body.contains(target))
80
+ continue;
81
+ if (target === document.documentElement)
82
+ continue;
83
+ if (touch.clientX > screenWidth / half)
84
+ window.goToNextSlide();
85
+ else
86
+ window.goToPreviousSlide();
87
+ }
88
+ };
89
+ script += `window.addEventListener("touch", ${handleScrollEvents.toString()});\n`;
90
+ /** Prevents context menus from showing up when right clicking. */
91
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
92
+ export const handleContextMenus = function handleContextMenus(event) {
93
+ if (window.isPDF())
94
+ return;
95
+ event.preventDefault();
96
+ };
97
+ script += `window.addEventListener("contextmenu", ${handleContextMenus.toString()});\n`;
98
+ /** Hides mouse cursor when its not moving, shows the mouse cursor when it is. */
99
+ export const handleMouseMove = function handleMouseMove() {
100
+ if (window.isPDF())
101
+ return;
102
+ const ref = handleMouseMove;
103
+ clearTimeout(ref.hideTimeout);
104
+ document.documentElement.style.cursor = 'default';
105
+ const oneSecond = 1000;
106
+ ref.hideTimeout = setTimeout(() => {
107
+ document.documentElement.style.cursor = 'none';
108
+ }, oneSecond);
109
+ };
110
+ script += `window.addEventListener("mousemove", ${handleMouseMove.toString()});\n`;
111
+ /** Handles mouse presses on the document, and moves slides accordingly. */
112
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
113
+ export const handleMousePresses = function handleMousePresses(event) {
114
+ if (window.isPDF())
115
+ return;
116
+ // Letting the "handle touch" function handle clicks if they are on mobile.
117
+ if ('ontouchstart' in window || navigator.maxTouchPoints > 0)
118
+ return;
119
+ const leftClick = 0;
120
+ if (event.button === leftClick)
121
+ window.goToNextSlide();
122
+ const rightClick = 2;
123
+ if (event.button === rightClick)
124
+ window.goToPreviousSlide();
125
+ };
126
+ script += `window.addEventListener("mousedown", ${handleMousePresses.toString()});\n`;
127
+ /** The contents of the input binding script. */
128
+ export default script; // eslint-disable-line import/no-default-export
129
+ //# sourceMappingURL=input-bindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-bindings.js","sourceRoot":"","sources":["../../../browser/scripts/input-bindings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ declare let script: string;
2
+ interface isPdfFunction {
3
+ (state?: boolean): boolean;
4
+ readonly state: boolean;
5
+ }
6
+ /** Checks if the document is supposed to viewed as a PDF. */
7
+ export declare const isPDF: isPdfFunction;
8
+ declare global {
9
+ interface Window {
10
+ /** Checks if the document is supposed to viewed as a PDF. */
11
+ isPDF: typeof isPDF;
12
+ }
13
+ }
14
+ /** Toggles PDF mode, triggers on a `slyde:mode:pdf:toggle` event. */
15
+ export declare const togglePdfMode: () => void;
16
+ declare global {
17
+ interface Window {
18
+ togglePdfMode: typeof togglePdfMode;
19
+ }
20
+ }
21
+ /** Toggles PDF mode, triggers on a `slyde:mode:pdf:on` event. */
22
+ export declare const turnPdfModeOnEventCallback: () => void;
23
+ /** Toggles PDF mode, triggers on a `slyde:mode:pdf:off` event. */
24
+ export declare const turnPdfModeOffEventCallback: () => void;
25
+ /** The callback to exec when the window loads and we can set the PDF type. */
26
+ export declare const onWindowPdfModeCallback: () => void;
27
+ /** The JavaScript to inject in relation to PDF mode. */
28
+ export default script;
29
+ //# sourceMappingURL=pdf-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-mode.d.ts","sourceRoot":"","sources":["../../../browser/scripts/pdf-mode.ts"],"names":[],"mappings":"AAIA,QAAA,IAAI,MAAM,QAAoB,CAAC;AAQ/B,UAAU,aAAa;IACrB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,6DAA6D;AAG7D,eAAO,MAAM,KAAK,EAkBb,aAAa,CAAC;AAInB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,6DAA6D;QAC7D,KAAK,EAAE,OAAO,KAAK,CAAC;KACrB;CACF;AAED,qEAAqE;AACrE,eAAO,MAAM,aAAa,QAA6B,IAEtD,CAAC;AAKF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,aAAa,EAAE,OAAO,aAAa,CAAC;KACrC;CACF;AAED,iEAAiE;AACjE,eAAO,MAAM,0BAA0B,QAA0C,IAEhF,CAAC;AAIF,kEAAkE;AAClE,eAAO,MAAM,2BAA2B,QAA2C,IAElF,CAAC;AAIF,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,QAAuC,IAI1E,CAAC;AAIF,wDAAwD;AACxD,eAAe,MAAM,CAAC"}