bookish-press 0.7.1 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/README.md +8 -0
  2. package/dist/components/Auth.svelte +29 -39
  3. package/dist/components/Auth.svelte.d.ts +5 -17
  4. package/dist/components/BookPreview.svelte +14 -20
  5. package/dist/components/BookPreview.svelte.d.ts +6 -18
  6. package/dist/components/Link.svelte +19 -30
  7. package/dist/components/Link.svelte.d.ts +7 -20
  8. package/dist/components/app/BookList.svelte +2 -3
  9. package/dist/components/app/BookList.svelte.d.ts +6 -18
  10. package/dist/components/app/Button.svelte +12 -8
  11. package/dist/components/app/Button.svelte.d.ts +10 -23
  12. package/dist/components/app/Feedback.svelte +4 -4
  13. package/dist/components/app/Feedback.svelte.d.ts +6 -19
  14. package/dist/components/app/Head.svelte +2 -2
  15. package/dist/components/app/Head.svelte.d.ts +6 -19
  16. package/dist/components/app/Large.svelte +4 -1
  17. package/dist/components/app/Large.svelte.d.ts +5 -28
  18. package/dist/components/app/Lead.svelte +4 -1
  19. package/dist/components/app/Lead.svelte.d.ts +5 -28
  20. package/dist/components/app/Link.svelte +12 -9
  21. package/dist/components/app/Link.svelte.d.ts +9 -22
  22. package/dist/components/app/Options.svelte +8 -6
  23. package/dist/components/app/Options.svelte.d.ts +8 -20
  24. package/dist/components/app/Paragraph.svelte +2 -2
  25. package/dist/components/app/Paragraph.svelte.d.ts +6 -19
  26. package/dist/components/app/Section.svelte +4 -1
  27. package/dist/components/app/Section.svelte.d.ts +5 -28
  28. package/dist/components/app/Table.svelte +4 -1
  29. package/dist/components/app/Table.svelte.d.ts +5 -28
  30. package/dist/components/app/TextInput.svelte +10 -8
  31. package/dist/components/app/TextInput.svelte.d.ts +12 -23
  32. package/dist/components/chapter/Atom.svelte +4 -7
  33. package/dist/components/chapter/Atom.svelte.d.ts +6 -19
  34. package/dist/components/chapter/Block.svelte +21 -23
  35. package/dist/components/chapter/Block.svelte.d.ts +5 -17
  36. package/dist/components/chapter/Callout.svelte +3 -5
  37. package/dist/components/chapter/Callout.svelte.d.ts +5 -17
  38. package/dist/components/chapter/CaptionedCode.svelte +12 -14
  39. package/dist/components/chapter/CaptionedCode.svelte.d.ts +5 -17
  40. package/dist/components/chapter/ChapterBody.svelte +14 -17
  41. package/dist/components/chapter/ChapterBody.svelte.d.ts +7 -19
  42. package/dist/components/chapter/ChapterBody.test.d.ts +1 -0
  43. package/dist/components/chapter/ChapterBody.test.js +85 -0
  44. package/dist/components/chapter/Citations.svelte +39 -45
  45. package/dist/components/chapter/Citations.svelte.d.ts +5 -17
  46. package/dist/components/chapter/Code.svelte +158 -155
  47. package/dist/components/chapter/Code.svelte.d.ts +10 -23
  48. package/dist/components/chapter/Comment.svelte +30 -23
  49. package/dist/components/chapter/Comment.svelte.d.ts +5 -17
  50. package/dist/components/chapter/Definition.svelte +36 -34
  51. package/dist/components/chapter/Definition.svelte.d.ts +5 -17
  52. package/dist/components/chapter/Embed.svelte +78 -72
  53. package/dist/components/chapter/Embed.svelte.d.ts +8 -20
  54. package/dist/components/chapter/ErrorMessage.svelte +2 -4
  55. package/dist/components/chapter/ErrorMessage.svelte.d.ts +5 -17
  56. package/dist/components/chapter/Figure.svelte +22 -29
  57. package/dist/components/chapter/Figure.svelte.d.ts +9 -22
  58. package/dist/components/chapter/Footnote.svelte +40 -32
  59. package/dist/components/chapter/Footnote.svelte.d.ts +5 -17
  60. package/dist/components/chapter/Format.svelte +26 -41
  61. package/dist/components/chapter/Format.svelte.d.ts +7 -18
  62. package/dist/components/chapter/InlineCode.svelte +7 -8
  63. package/dist/components/chapter/InlineCode.svelte.d.ts +5 -17
  64. package/dist/components/chapter/Label.svelte +5 -11
  65. package/dist/components/chapter/Label.svelte.d.ts +5 -17
  66. package/dist/components/chapter/LineBreak.svelte +1 -3
  67. package/dist/components/chapter/LineBreak.svelte.d.ts +5 -17
  68. package/dist/components/chapter/Link.svelte +17 -23
  69. package/dist/components/chapter/Link.svelte.d.ts +5 -17
  70. package/dist/components/chapter/List.svelte +9 -9
  71. package/dist/components/chapter/List.svelte.d.ts +6 -17
  72. package/dist/components/chapter/Marginal.svelte +59 -60
  73. package/dist/components/chapter/Marginal.svelte.d.ts +10 -22
  74. package/dist/components/chapter/Paragraph.svelte +8 -23
  75. package/dist/components/chapter/Paragraph.svelte.d.ts +6 -18
  76. package/dist/components/chapter/Positioned.svelte +2 -4
  77. package/dist/components/chapter/Positioned.svelte.d.ts +6 -19
  78. package/dist/components/chapter/Problem.svelte +3 -2
  79. package/dist/components/chapter/Problem.svelte.d.ts +5 -28
  80. package/dist/components/chapter/Python.svelte +45 -58
  81. package/dist/components/chapter/Python.svelte.d.ts +6 -18
  82. package/dist/components/chapter/Quote.svelte +5 -7
  83. package/dist/components/chapter/Quote.svelte.d.ts +5 -17
  84. package/dist/components/chapter/Rule.svelte +1 -3
  85. package/dist/components/chapter/Rule.svelte.d.ts +5 -17
  86. package/dist/components/chapter/Table.svelte +6 -8
  87. package/dist/components/chapter/Table.svelte.d.ts +5 -17
  88. package/dist/components/chapter/Text.svelte +54 -69
  89. package/dist/components/chapter/Text.svelte.d.ts +6 -18
  90. package/dist/components/controls/DarkToggle.svelte +7 -8
  91. package/dist/components/controls/DarkToggle.svelte.d.ts +6 -18
  92. package/dist/components/editor/BookishEditor.svelte +583 -761
  93. package/dist/components/editor/BookishEditor.svelte.d.ts +14 -26
  94. package/dist/components/editor/CalloutEditor.svelte +3 -3
  95. package/dist/components/editor/CalloutEditor.svelte.d.ts +5 -17
  96. package/dist/components/editor/CaptionedCodeEditor.svelte +5 -5
  97. package/dist/components/editor/CaptionedCodeEditor.svelte.d.ts +5 -17
  98. package/dist/components/editor/CaretView.svelte +23 -25
  99. package/dist/components/editor/CaretView.svelte.d.ts +15 -27
  100. package/dist/components/editor/CitationsEditor.svelte +25 -28
  101. package/dist/components/editor/CitationsEditor.svelte.d.ts +5 -17
  102. package/dist/components/editor/ConfirmButton.svelte +9 -6
  103. package/dist/components/editor/ConfirmButton.svelte.d.ts +8 -21
  104. package/dist/components/editor/DefinitionEditor.svelte +11 -15
  105. package/dist/components/editor/DefinitionEditor.svelte.d.ts +5 -17
  106. package/dist/components/editor/EmbedEditor.svelte +43 -44
  107. package/dist/components/editor/EmbedEditor.svelte.d.ts +5 -17
  108. package/dist/components/editor/Icon.svelte +1 -1
  109. package/dist/components/editor/Icon.svelte.d.ts +5 -17
  110. package/dist/components/editor/ImageChooser.svelte +15 -18
  111. package/dist/components/editor/ImageChooser.svelte.d.ts +6 -18
  112. package/dist/components/editor/ImageThumbnail.svelte +29 -24
  113. package/dist/components/editor/ImageThumbnail.svelte.d.ts +7 -19
  114. package/dist/components/editor/InlineCodeEditor.svelte +3 -3
  115. package/dist/components/editor/InlineCodeEditor.svelte.d.ts +5 -17
  116. package/dist/components/editor/LabelEditor.svelte +5 -6
  117. package/dist/components/editor/LabelEditor.svelte.d.ts +5 -17
  118. package/dist/components/editor/LanguageEditor.svelte +4 -5
  119. package/dist/components/editor/LanguageEditor.svelte.d.ts +6 -18
  120. package/dist/components/editor/LinkEditor.svelte +52 -68
  121. package/dist/components/editor/LinkEditor.svelte.d.ts +5 -17
  122. package/dist/components/editor/Note.svelte +4 -1
  123. package/dist/components/editor/Note.svelte.d.ts +5 -28
  124. package/dist/components/editor/Permissions.svelte +55 -51
  125. package/dist/components/editor/Permissions.svelte.d.ts +9 -21
  126. package/dist/components/editor/PositionEditor.svelte +6 -7
  127. package/dist/components/editor/PositionEditor.svelte.d.ts +6 -18
  128. package/dist/components/editor/QuoteEditor.svelte +3 -3
  129. package/dist/components/editor/QuoteEditor.svelte.d.ts +5 -17
  130. package/dist/components/editor/Switch.svelte +16 -11
  131. package/dist/components/editor/Switch.svelte.d.ts +9 -21
  132. package/dist/components/editor/TableEditor.svelte +3 -3
  133. package/dist/components/editor/TableEditor.svelte.d.ts +5 -17
  134. package/dist/components/editor/TextEditor.svelte +74 -87
  135. package/dist/components/editor/TextEditor.svelte.d.ts +13 -25
  136. package/dist/components/editor/Toggle.svelte +18 -21
  137. package/dist/components/editor/Toggle.svelte.d.ts +7 -20
  138. package/dist/components/editor/Toolbar.svelte +140 -145
  139. package/dist/components/editor/Toolbar.svelte.d.ts +5 -17
  140. package/dist/components/editor/ToolbarGroup.svelte +4 -4
  141. package/dist/components/editor/ToolbarGroup.svelte.d.ts +6 -19
  142. package/dist/components/editor/ToolbarSpacer.svelte +1 -1
  143. package/dist/components/editor/ToolbarSpacer.svelte.d.ts +22 -21
  144. package/dist/components/editor/URLEditor.svelte +3 -5
  145. package/dist/components/editor/URLEditor.svelte.d.ts +7 -19
  146. package/dist/components/page/Acknowledgements.svelte +14 -8
  147. package/dist/components/page/Acknowledgements.svelte.d.ts +3 -16
  148. package/dist/components/page/Analytics.svelte +2 -3
  149. package/dist/components/page/Analytics.svelte.d.ts +6 -17
  150. package/dist/components/page/Authors.svelte +29 -29
  151. package/dist/components/page/Authors.svelte.d.ts +11 -23
  152. package/dist/components/page/BookLoader.svelte +47 -43
  153. package/dist/components/page/BookLoader.svelte.d.ts +5 -17
  154. package/dist/components/page/BulkReferenceEditor.svelte +43 -26
  155. package/dist/components/page/BulkReferenceEditor.svelte.d.ts +3 -16
  156. package/dist/components/page/Chapter.svelte +226 -250
  157. package/dist/components/page/Chapter.svelte.d.ts +6 -18
  158. package/dist/components/page/ChapterContext.d.ts +3 -1
  159. package/dist/components/page/ChapterNumber.svelte +4 -1
  160. package/dist/components/page/ChapterNumber.svelte.d.ts +5 -28
  161. package/dist/components/page/ChapterTitle.svelte +4 -4
  162. package/dist/components/page/ChapterTitle.svelte.d.ts +6 -19
  163. package/dist/components/page/Contexts.js +2 -2
  164. package/dist/components/page/DefinitionView.svelte +51 -44
  165. package/dist/components/page/DefinitionView.svelte.d.ts +6 -18
  166. package/dist/components/page/Description.svelte +10 -4
  167. package/dist/components/page/Description.svelte.d.ts +16 -14
  168. package/dist/components/page/EditableHeader.svelte +4 -6
  169. package/dist/components/page/EditableHeader.svelte.d.ts +7 -18
  170. package/dist/components/page/Edition.svelte +57 -71
  171. package/dist/components/page/Edition.svelte.d.ts +7 -20
  172. package/dist/components/page/EditionLoader.svelte +119 -82
  173. package/dist/components/page/EditionLoader.svelte.d.ts +6 -19
  174. package/dist/components/page/Editions.svelte +61 -41
  175. package/dist/components/page/Editions.svelte.d.ts +5 -17
  176. package/dist/components/page/Glossary.svelte +31 -35
  177. package/dist/components/page/Glossary.svelte.d.ts +3 -16
  178. package/dist/components/page/Header.svelte +43 -49
  179. package/dist/components/page/Header.svelte.d.ts +19 -30
  180. package/dist/components/page/Index.svelte +46 -46
  181. package/dist/components/page/Index.svelte.d.ts +3 -16
  182. package/dist/components/page/Instructions.svelte +2 -2
  183. package/dist/components/page/Instructions.svelte.d.ts +6 -19
  184. package/dist/components/page/License.svelte +13 -7
  185. package/dist/components/page/License.svelte.d.ts +16 -14
  186. package/dist/components/page/Loading.svelte +9 -9
  187. package/dist/components/page/Loading.svelte.d.ts +22 -21
  188. package/dist/components/page/Media.svelte +36 -27
  189. package/dist/components/page/Media.svelte.d.ts +3 -16
  190. package/dist/components/page/MediaPreview.svelte +22 -19
  191. package/dist/components/page/MediaPreview.svelte.d.ts +8 -21
  192. package/dist/components/page/Muted.svelte +4 -1
  193. package/dist/components/page/Muted.svelte.d.ts +5 -28
  194. package/dist/components/page/Outline.svelte +76 -97
  195. package/dist/components/page/Outline.svelte.d.ts +8 -20
  196. package/dist/components/page/Page.svelte +27 -35
  197. package/dist/components/page/Page.svelte.d.ts +7 -20
  198. package/dist/components/page/PageHeader.svelte +2 -2
  199. package/dist/components/page/PageHeader.svelte.d.ts +6 -19
  200. package/dist/components/page/PageParagraph.svelte +4 -1
  201. package/dist/components/page/PageParagraph.svelte.d.ts +5 -28
  202. package/dist/components/page/PossibleChapter.svelte +7 -7
  203. package/dist/components/page/PossibleChapter.svelte.d.ts +3 -16
  204. package/dist/components/page/PossibleReference.svelte +4 -5
  205. package/dist/components/page/PossibleReference.svelte.d.ts +6 -18
  206. package/dist/components/page/Print.svelte +18 -2
  207. package/dist/components/page/Print.svelte.d.ts +3 -16
  208. package/dist/components/page/Publish.svelte +47 -47
  209. package/dist/components/page/Publish.svelte.d.ts +3 -16
  210. package/dist/components/page/Reference.svelte +24 -35
  211. package/dist/components/page/Reference.svelte.d.ts +6 -18
  212. package/dist/components/page/References.svelte +21 -22
  213. package/dist/components/page/References.svelte.d.ts +3 -16
  214. package/dist/components/page/Rows.svelte +4 -1
  215. package/dist/components/page/Rows.svelte.d.ts +5 -28
  216. package/dist/components/page/Search.svelte +58 -60
  217. package/dist/components/page/Search.svelte.d.ts +3 -16
  218. package/dist/components/page/Status.svelte +2 -2
  219. package/dist/components/page/Status.svelte.d.ts +16 -14
  220. package/dist/components/page/SubdomainEditor.svelte +11 -11
  221. package/dist/components/page/SubdomainEditor.svelte.d.ts +16 -14
  222. package/dist/components/page/TableOfContents.svelte +143 -125
  223. package/dist/components/page/TableOfContents.svelte.d.ts +3 -16
  224. package/dist/components/page/TableOfContentsImage.svelte +6 -7
  225. package/dist/components/page/TableOfContentsImage.svelte.d.ts +6 -18
  226. package/dist/components/page/TableOfContentsRow.svelte +32 -32
  227. package/dist/components/page/TableOfContentsRow.svelte.d.ts +10 -22
  228. package/dist/components/page/ThemeEditor.svelte +35 -28
  229. package/dist/components/page/ThemeEditor.svelte.d.ts +3 -16
  230. package/dist/components/page/ThemeEditorPreview.svelte +11 -13
  231. package/dist/components/page/ThemeEditorPreview.svelte.d.ts +5 -17
  232. package/dist/components/page/ThemeSetEditor.svelte +4 -6
  233. package/dist/components/page/ThemeSetEditor.svelte.d.ts +7 -19
  234. package/dist/components/page/ThemeVariableEditor.svelte +9 -11
  235. package/dist/components/page/ThemeVariableEditor.svelte.d.ts +7 -19
  236. package/dist/components/page/Title.svelte +4 -1
  237. package/dist/components/page/Title.svelte.d.ts +5 -28
  238. package/dist/components/page/Unknown.svelte +11 -8
  239. package/dist/components/page/Unknown.svelte.d.ts +5 -17
  240. package/dist/models/CRUD.js +23 -4
  241. package/dist/models/Firebase.js +18 -4
  242. package/dist/models/book/Book.d.ts +1 -1
  243. package/dist/models/book/Book.js +4 -3
  244. package/dist/models/book/BookMedia.js +1 -2
  245. package/dist/models/book/Chapter.js +3 -2
  246. package/dist/models/book/Edition.d.ts +1 -1
  247. package/dist/models/book/Edition.js +5 -1
  248. package/dist/models/chapter/BlocksNode.js +3 -1
  249. package/dist/models/chapter/BlocksNode.test.js +5 -1
  250. package/dist/models/chapter/Node.test.js +2 -2
  251. package/package.json +36 -25
@@ -1,16 +1,18 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: Record<string, never>;
4
- events: {
5
- [evt: string]: CustomEvent<any>;
1
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
6
11
  };
7
- slots: {};
8
- exports?: {} | undefined;
9
- bindings?: string | undefined;
10
- };
11
- export type SubdomainEditorProps = typeof __propDef.props;
12
- export type SubdomainEditorEvents = typeof __propDef.events;
13
- export type SubdomainEditorSlots = typeof __propDef.slots;
14
- export default class SubdomainEditor extends SvelteComponent<SubdomainEditorProps, SubdomainEditorEvents, SubdomainEditorSlots> {
12
+ z_$$bindings?: Bindings;
15
13
  }
16
- export {};
14
+ declare const SubdomainEditor: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type SubdomainEditor = InstanceType<typeof SubdomainEditor>;
18
+ export default SubdomainEditor;
@@ -1,72 +1,68 @@
1
- <script>import Instructions from './Instructions.svelte';
2
- import TableOfContentsRow from './TableOfContentsRow.svelte';
3
- import ChapterIDs from '../../models/book/ChapterID';
4
- import Page from './Page.svelte';
5
- import Header from './Header.svelte';
6
- import Outline from './Outline.svelte';
7
- import Link from '../Link.svelte';
8
- import SubdomainEditor from './SubdomainEditor.svelte';
9
- import Description from './Description.svelte';
10
- import Acknowledgements from './Acknowledgements.svelte';
11
- import License from './License.svelte';
12
- import Authors from './Authors.svelte';
13
- import TextEditor from '../editor/TextEditor.svelte';
14
- import Toggle from '../editor/Toggle.svelte';
15
- import { getUser, getBase, getBook, getEdition, isBookEditable, isEditionEditable, isEditionPartiallyEditable, setChapter, } from './Contexts';
16
- import Muted from './Muted.svelte';
17
- import Button from '../app/Button.svelte';
18
- import PageHeader from './PageHeader.svelte';
19
- import Rows from './Rows.svelte';
20
- import PageParagraph from './PageParagraph.svelte';
21
- import Note from '../editor/Note.svelte';
22
- import Permissions from '../editor/Permissions.svelte';
23
- import Publish from './Publish.svelte';
24
- import { onMount } from 'svelte';
25
- import Editions from './Editions.svelte';
26
- import EditableHeader from './EditableHeader.svelte';
1
+ <script lang="ts">import Instructions from "./Instructions.svelte";
2
+ import TableOfContentsRow from "./TableOfContentsRow.svelte";
3
+ import ChapterIDs from "../../models/book/ChapterID";
4
+ import Page from "./Page.svelte";
5
+ import Header from "./Header.svelte";
6
+ import Outline from "./Outline.svelte";
7
+ import Link from "../Link.svelte";
8
+ import SubdomainEditor from "./SubdomainEditor.svelte";
9
+ import Description from "./Description.svelte";
10
+ import Acknowledgements from "./Acknowledgements.svelte";
11
+ import License from "./License.svelte";
12
+ import Authors from "./Authors.svelte";
13
+ import TextEditor from "../editor/TextEditor.svelte";
14
+ import Toggle from "../editor/Toggle.svelte";
15
+ import {
16
+ getUser,
17
+ getBase,
18
+ getBook,
19
+ getEdition,
20
+ isBookEditable,
21
+ isEditionEditable,
22
+ isEditionPartiallyEditable,
23
+ setChapter
24
+ } from "./Contexts";
25
+ import Muted from "./Muted.svelte";
26
+ import Button from "../app/Button.svelte";
27
+ import PageHeader from "./PageHeader.svelte";
28
+ import Rows from "./Rows.svelte";
29
+ import PageParagraph from "./PageParagraph.svelte";
30
+ import Note from "../editor/Note.svelte";
31
+ import Permissions from "../editor/Permissions.svelte";
32
+ import Publish from "./Publish.svelte";
33
+ import { onMount } from "svelte";
34
+ import Editions from "./Editions.svelte";
35
+ import EditableHeader from "./EditableHeader.svelte";
27
36
  let auth = getUser();
28
37
  let book = getBook();
29
38
  let edition = getEdition();
30
39
  let base = getBase();
31
40
  let editable = isEditionEditable();
32
- function getProgressDescription(progress) {
33
- if (progress === null)
34
- return '';
35
- else if (progress === 0)
36
- return '';
37
- else if (progress < 30)
38
- return '; just started';
39
- else if (progress < 70)
40
- return '; halfway';
41
- else if (progress < 95)
42
- return '; almost done';
43
- else
44
- return '; done';
41
+ function getProgressDescription(progress2) {
42
+ if (progress2 === null) return "";
43
+ else if (progress2 === 0) return "";
44
+ else if (progress2 < 30) return "; just started";
45
+ else if (progress2 < 70) return "; halfway";
46
+ else if (progress2 < 95) return "; almost done";
47
+ else return "; done";
45
48
  }
46
- // Get the chapter progress
47
- let progressStorage = typeof localStorage !== 'undefined'
48
- ? localStorage.getItem('chapterProgress')
49
- : null;
49
+ let progressStorage = typeof localStorage !== "undefined" ? localStorage.getItem("chapterProgress") : null;
50
50
  let progress = progressStorage === null ? {} : JSON.parse(progressStorage);
51
- // Is there a colon? Let's make a subtitle
52
- $: title = $edition?.getTitle() ?? '';
53
- let subtitle = undefined;
54
- $: {
55
- let colon = title.indexOf(':');
56
- if (colon >= 0) {
57
- subtitle = title.substring(colon + 1).trim();
58
- title = title.substring(0, colon).trim();
59
- }
60
- }
51
+ let fullTitle = $derived($edition?.getTitle() ?? "");
52
+ let colon = $derived(fullTitle.indexOf(":"));
53
+ let title = $derived(
54
+ colon >= 0 ? fullTitle.substring(0, colon).trim() : fullTitle
55
+ );
56
+ let subtitle = $derived(
57
+ colon >= 0 ? fullTitle.substring(colon + 1).trim() : void 0
58
+ );
61
59
  let waitingForChapter = false;
62
60
  function addChapter() {
63
- if ($edition)
64
- edition.set($edition.withNewChapter());
61
+ if ($edition) edition.set($edition.withNewChapter());
65
62
  }
66
- /** Doing this on mount allows for prerendering an an update. */
67
- let bookURL = '…';
63
+ let bookURL = $state("\u2026");
68
64
  onMount(() => {
69
- bookURL = location.protocol + '//' + location.host + location.pathname;
65
+ bookURL = location.protocol + "//" + location.host + location.pathname;
70
66
  });
71
67
  </script>
72
68
 
@@ -87,36 +83,42 @@ onMount(() => {
87
83
  save={(text) =>
88
84
  $edition ? edition.set($edition.withTitle(text)) : undefined}
89
85
  >
90
- <svelte:fragment slot="before">
91
- {#if editable}
92
- <SubdomainEditor />
93
- {/if}
94
- </svelte:fragment>
95
- <Outline
96
- slot="outline"
97
- previous={null}
98
- next={$edition.getNextChapterID('', editable)}
99
- />
100
- <div slot="after">
101
- <Authors
102
- editable={isBookEditable()}
103
- authors={$edition.getAuthors()}
104
- add={() =>
105
- $edition
106
- ? edition.set($edition.withAuthor(''))
107
- : undefined}
108
- edit={(index, text) =>
109
- $edition
110
- ? edition.set($edition.withAuthorName(index, text))
111
- : undefined}
112
- remove={(index) =>
113
- $edition
114
- ? edition.set($edition.withoutAuthor(index))
115
- : undefined}
116
- editors={$edition.isEdited()}
86
+ {#snippet before()}
87
+
88
+ {#if editable}
89
+ <SubdomainEditor />
90
+ {/if}
91
+
92
+ {/snippet}
93
+ {#snippet outline()}
94
+ <Outline
95
+
96
+ previous={null}
97
+ next={$edition.getNextChapterID('', editable)}
117
98
  />
118
- <Note>{$edition.getEditionLabel()} edition</Note>
119
- </div>
99
+ {/snippet}
100
+ {#snippet after()}
101
+ <div >
102
+ <Authors
103
+ editable={isBookEditable()}
104
+ authors={$edition.getAuthors()}
105
+ add={() =>
106
+ $edition
107
+ ? edition.set($edition.withAuthor(''))
108
+ : undefined}
109
+ edit={(index, text) =>
110
+ $edition
111
+ ? edition.set($edition.withAuthorName(index, text))
112
+ : undefined}
113
+ remove={(index) =>
114
+ $edition
115
+ ? edition.set($edition.withoutAuthor(index))
116
+ : undefined}
117
+ editors={$edition.isEdited()}
118
+ />
119
+ <Note>{$edition.getEditionLabel()} edition</Note>
120
+ </div>
121
+ {/snippet}
120
122
  </Header>
121
123
 
122
124
  <Instructions {editable}>
@@ -180,69 +182,85 @@ onMount(() => {
180
182
  number={$edition.getChapterNumber(chapterID)}
181
183
  forthcoming={chapter.isForthcoming()}
182
184
  >
183
- <span slot="annotation">
184
- {#if editable}
185
- <TextEditor
186
- label={'Chapter section editor'}
187
- text={section ? section : ''}
188
- placeholder="section"
189
- valid={() => undefined}
190
- save={(text) =>
191
- setChapter(
192
- edition,
193
- chapter,
194
- chapter.withSection(text),
195
- )}
196
- />
197
- {:else if section}{section}{/if}
198
- {#if !editable && $auth !== undefined && $auth.user !== null && chapter.uids.includes($auth.user.uid)}
199
- You can edit this chapter.
200
- {/if}
201
- </span>
202
- <span class="etc" slot="etc">
203
- <Muted>
185
+ {#snippet annotation()}
186
+ <span >
204
187
  {#if editable}
205
- <Toggle
206
- on={chapter.isForthcoming()}
207
- save={(on) =>
188
+ <TextEditor
189
+ label={'Chapter section editor'}
190
+ text={section ? section : ''}
191
+ placeholder="section"
192
+ valid={() => undefined}
193
+ save={(text) =>
208
194
  setChapter(
209
195
  edition,
210
196
  chapter,
211
- chapter.asForthcoming(on),
197
+ chapter.withSection(text),
212
198
  )}
213
- >
214
- {etc}
215
- </Toggle>
216
- {:else}
217
- {etc}
199
+ />
200
+ {:else if section}{section}{/if}
201
+ {#if !editable && $auth !== undefined && $auth.user !== null && chapter.uids.includes($auth.user.uid)}
202
+ You can edit this chapter.
218
203
  {/if}
219
- </Muted>
220
- </span>
204
+ </span>
205
+ {/snippet}
206
+ {#snippet etc()}
207
+ <span class="etc" >
208
+ <Muted>
209
+ {#if editable}
210
+ <Toggle
211
+ on={chapter.isForthcoming()}
212
+ save={(on) =>
213
+ setChapter(
214
+ edition,
215
+ chapter,
216
+ chapter.asForthcoming(on),
217
+ )}
218
+ >
219
+ {etc}
220
+ </Toggle>
221
+ {:else}
222
+ {etc}
223
+ {/if}
224
+ </Muted>
225
+ </span>
226
+ {/snippet}
221
227
  </TableOfContentsRow>
222
228
  {/each}
223
229
  {#if $edition.hasReferences() || editable}
224
230
  <TableOfContentsRow chapter={ChapterIDs.ReferencesID}>
225
- <span slot="annotation">Everything cited</span>
231
+ {#snippet annotation()}
232
+ <span >Everything cited</span>
233
+ {/snippet}
226
234
  </TableOfContentsRow>
227
235
  {/if}
228
236
  {#if ($edition.getGlossary() && Object.keys($edition.getGlossary()).length > 0) || editable}
229
237
  <TableOfContentsRow chapter={ChapterIDs.GlossaryID}>
230
- <span slot="annotation">Definitions</span>
238
+ {#snippet annotation()}
239
+ <span >Definitions</span>
240
+ {/snippet}
231
241
  </TableOfContentsRow>
232
242
  {/if}
233
243
  <TableOfContentsRow chapter={ChapterIDs.IndexID}>
234
- <span slot="annotation">Common words and where they are</span>
244
+ {#snippet annotation()}
245
+ <span >Common words and where they are</span>
246
+ {/snippet}
235
247
  </TableOfContentsRow>
236
248
  <TableOfContentsRow chapter={ChapterIDs.SearchID}>
237
- <span slot="annotation">Find where words occur</span>
249
+ {#snippet annotation()}
250
+ <span >Find where words occur</span>
251
+ {/snippet}
238
252
  </TableOfContentsRow>
239
253
 
240
254
  <TableOfContentsRow chapter={ChapterIDs.MediaID}>
241
- <span slot="annotation">Images and video in the book</span>
255
+ {#snippet annotation()}
256
+ <span >Images and video in the book</span>
257
+ {/snippet}
242
258
  </TableOfContentsRow>
243
259
  {#if editable}
244
260
  <TableOfContentsRow chapter={ChapterIDs.UnknownID}>
245
- <span slot="annotation">Customize bad links</span>
261
+ {#snippet annotation()}
262
+ <span >Customize bad links</span>
263
+ {/snippet}
246
264
  </TableOfContentsRow>
247
265
  {/if}
248
266
  </Rows>
@@ -1,16 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: Record<string, never>;
4
- events: {
5
- [evt: string]: CustomEvent<any>;
6
- };
7
- slots: {};
8
- exports?: {} | undefined;
9
- bindings?: string | undefined;
10
- };
11
- export type TableOfContentsProps = typeof __propDef.props;
12
- export type TableOfContentsEvents = typeof __propDef.events;
13
- export type TableOfContentsSlots = typeof __propDef.slots;
14
- export default class TableOfContents extends SvelteComponent<TableOfContentsProps, TableOfContentsEvents, TableOfContentsSlots> {
15
- }
16
- export {};
1
+ declare const TableOfContents: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type TableOfContents = ReturnType<typeof TableOfContents>;
3
+ export default TableOfContents;
@@ -1,12 +1,11 @@
1
- <script>import EmbedNode from '../../models/chapter/EmbedNode';
2
- import Parser from '../../models/chapter/Parser';
3
- import { getBase, getEdition } from './Contexts';
4
- import Link from '../Link.svelte';
5
- export let embed;
6
- export let url;
1
+ <script lang="ts">import EmbedNode from "../../models/chapter/EmbedNode";
2
+ import Parser from "../../models/chapter/Parser";
3
+ import { getBase, getEdition } from "./Contexts";
4
+ import Link from "../Link.svelte";
5
+ let { embed, url } = $props();
7
6
  let edition = getEdition();
8
7
  let base = getBase();
9
- $: embedNode = embed === null ? null : Parser.parseEmbed($edition, embed);
8
+ let embedNode = $derived(embed === null ? null : Parser.parseEmbed($edition, embed));
10
9
  </script>
11
10
 
12
11
  {#if embedNode instanceof EmbedNode}
@@ -1,19 +1,7 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- embed: string | null;
5
- url: string | undefined;
6
- };
7
- events: {
8
- [evt: string]: CustomEvent<any>;
9
- };
10
- slots: {};
11
- exports?: {} | undefined;
12
- bindings?: string | undefined;
13
- };
14
- export type TableOfContentsImageProps = typeof __propDef.props;
15
- export type TableOfContentsImageEvents = typeof __propDef.events;
16
- export type TableOfContentsImageSlots = typeof __propDef.slots;
17
- export default class TableOfContentsImage extends SvelteComponent<TableOfContentsImageProps, TableOfContentsImageEvents, TableOfContentsImageSlots> {
1
+ interface Props {
2
+ embed: string | null;
3
+ url: string | undefined;
18
4
  }
19
- export {};
5
+ declare const TableOfContentsImage: import("svelte").Component<Props, {}, "">;
6
+ type TableOfContentsImage = ReturnType<typeof TableOfContentsImage>;
7
+ export default TableOfContentsImage;
@@ -1,42 +1,42 @@
1
- <script>import TableOfContentsImage from './TableOfContentsImage.svelte';
2
- import Chapter from '../../models/book/Chapter';
3
- import Toggle from '../editor/Toggle.svelte';
4
- import ConfirmButton from '../editor/ConfirmButton.svelte';
5
- import { getBase, getEdition, isEditionEditable, setChapter, } from './Contexts';
6
- import Muted from './Muted.svelte';
7
- import ChapterNumber from './ChapterNumber.svelte';
8
- import Button from '../app/Button.svelte';
9
- import ChapterTitle from './ChapterTitle.svelte';
10
- import Authors from './Authors.svelte';
11
- /** Either the chapter or a built in chapter ID */
12
- export let chapter;
13
- export let number = undefined;
14
- export let forthcoming = false;
1
+ <script lang="ts">import TableOfContentsImage from "./TableOfContentsImage.svelte";
2
+ import Chapter from "../../models/book/Chapter";
3
+ import Toggle from "../editor/Toggle.svelte";
4
+ import ConfirmButton from "../editor/ConfirmButton.svelte";
5
+ import {
6
+ getBase,
7
+ getEdition,
8
+ isEditionEditable,
9
+ setChapter
10
+ } from "./Contexts";
11
+ import Muted from "./Muted.svelte";
12
+ import ChapterNumber from "./ChapterNumber.svelte";
13
+ import Button from "../app/Button.svelte";
14
+ import ChapterTitle from "./ChapterTitle.svelte";
15
+ import Authors from "./Authors.svelte";
16
+ let {
17
+ chapter,
18
+ number = void 0,
19
+ forthcoming = false,
20
+ annotation,
21
+ etc
22
+ } = $props();
15
23
  let edition = getEdition();
16
24
  let base = getBase();
17
25
  let editable = isEditionEditable();
18
- $: title =
19
- chapter instanceof Chapter
20
- ? chapter.getTitle()
21
- : $edition
22
- ? $edition.getHeader(chapter)
23
- : '—';
26
+ let title = $derived(chapter instanceof Chapter ? chapter.getTitle() : $edition ? $edition.getHeader(chapter) : "\u2014");
24
27
  function moveUp() {
25
- if ($edition && chapter instanceof Chapter)
26
- edition.set($edition.withMovedChapter(getChapterID(), -1));
28
+ if ($edition && chapter instanceof Chapter)
29
+ edition.set($edition.withMovedChapter(getChapterID(), -1));
27
30
  }
28
31
  function moveDown() {
29
- if ($edition && chapter instanceof Chapter)
30
- edition.set($edition.withMovedChapter(getChapterID(), 1));
32
+ if ($edition && chapter instanceof Chapter)
33
+ edition.set($edition.withMovedChapter(getChapterID(), 1));
31
34
  }
32
35
  function getChapterID() {
33
- if (chapter instanceof Chapter)
34
- return chapter.getID();
35
- else
36
- return chapter;
36
+ if (chapter instanceof Chapter) return chapter.getID();
37
+ else return chapter;
37
38
  }
38
- $: chapterURL =
39
- forthcoming && !editable ? undefined : `${$base}/${getChapterID()}`;
39
+ let chapterURL = $derived(forthcoming && !editable ? void 0 : `${$base}/${getChapterID()}`);
40
40
  </script>
41
41
 
42
42
  <tr class="toc-row" class:forthcoming>
@@ -77,9 +77,9 @@ $: chapterURL =
77
77
  edit={() => {}}
78
78
  remove={() => {}}
79
79
  />{/if}
80
- <p><Muted><em><slot name="annotation" /></em></Muted></p>
80
+ <p><Muted><em>{@render annotation?.()}</em></Muted></p>
81
81
  </td>
82
- <td><slot name="etc" /></td>
82
+ <td>{@render etc?.()}</td>
83
83
  {#if editable && $edition}
84
84
  <td class="controls">
85
85
  {#if chapter instanceof Chapter}
@@ -1,25 +1,13 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import Chapter from '../../models/book/Chapter';
3
2
  import type { ChapterIDKey } from '../../models/book/ChapterID';
4
- declare const __propDef: {
5
- props: {
6
- /** Either the chapter or a built in chapter ID */ chapter: Chapter | ChapterIDKey;
7
- number?: number | undefined;
8
- forthcoming?: boolean;
9
- };
10
- events: {
11
- [evt: string]: CustomEvent<any>;
12
- };
13
- slots: {
14
- annotation: {};
15
- etc: {};
16
- };
17
- exports?: {} | undefined;
18
- bindings?: string | undefined;
19
- };
20
- export type TableOfContentsRowProps = typeof __propDef.props;
21
- export type TableOfContentsRowEvents = typeof __propDef.events;
22
- export type TableOfContentsRowSlots = typeof __propDef.slots;
23
- export default class TableOfContentsRow extends SvelteComponent<TableOfContentsRowProps, TableOfContentsRowEvents, TableOfContentsRowSlots> {
3
+ interface Props {
4
+ /** Either the chapter or a built in chapter ID */
5
+ chapter: Chapter | ChapterIDKey;
6
+ number?: number | undefined;
7
+ forthcoming?: boolean;
8
+ annotation?: import('svelte').Snippet;
9
+ etc?: import('svelte').Snippet;
24
10
  }
25
- export {};
11
+ declare const TableOfContentsRow: import("svelte").Component<Props, {}, "">;
12
+ type TableOfContentsRow = ReturnType<typeof TableOfContentsRow>;
13
+ export default TableOfContentsRow;
@@ -1,35 +1,40 @@
1
- <script>import Header from './Header.svelte';
2
- import Outline from './Outline.svelte';
3
- import Page from './Page.svelte';
4
- import { BookishTheme, CriticalTheme, HumanTheme, SeriousTheme, SketchyTheme, TechTheme, } from '../../models/book/Theme';
5
- import ConfirmButton from '../editor/ConfirmButton.svelte';
6
- import Instructions from './Instructions.svelte';
7
- import ThemeSetEditor from './ThemeSetEditor.svelte';
8
- import ThemeEditorPreview from './ThemeEditorPreview.svelte';
9
- import { getEdition, isEditionEditable } from './Contexts';
10
- import TextEditor from '../editor/TextEditor.svelte';
11
- import Button from '../app/Button.svelte';
12
- import Switch from '../editor/Switch.svelte';
13
- import Link from '../app/Link.svelte';
14
- import Rows from './Rows.svelte';
1
+ <script lang="ts">import Header from "./Header.svelte";
2
+ import Outline from "./Outline.svelte";
3
+ import Page from "./Page.svelte";
4
+ import {
5
+ BookishTheme,
6
+ CriticalTheme,
7
+ HumanTheme,
8
+ SeriousTheme,
9
+ SketchyTheme,
10
+ TechTheme
11
+ } from "../../models/book/Theme";
12
+ import ConfirmButton from "../editor/ConfirmButton.svelte";
13
+ import Instructions from "./Instructions.svelte";
14
+ import ThemeSetEditor from "./ThemeSetEditor.svelte";
15
+ import ThemeEditorPreview from "./ThemeEditorPreview.svelte";
16
+ import { getEdition, isEditionEditable } from "./Contexts";
17
+ import TextEditor from "../editor/TextEditor.svelte";
18
+ import Button from "../app/Button.svelte";
19
+ import Switch from "../editor/Switch.svelte";
20
+ import Link from "../app/Link.svelte";
21
+ import Rows from "./Rows.svelte";
15
22
  const themes = {
16
- Bookish: BookishTheme,
17
- Serious: SeriousTheme,
18
- Tech: TechTheme,
19
- Human: HumanTheme,
20
- Sketchy: SketchyTheme,
21
- Critical: CriticalTheme,
23
+ Bookish: BookishTheme,
24
+ Serious: SeriousTheme,
25
+ Tech: TechTheme,
26
+ Human: HumanTheme,
27
+ Sketchy: SketchyTheme,
28
+ Critical: CriticalTheme
22
29
  };
23
30
  let editable = isEditionEditable();
24
31
  let edition = getEdition();
25
- $: theme = $edition ? $edition.getTheme() : null;
26
- $: isDefault =
27
- theme === null || Object.values(themes).includes(theme);
32
+ let theme = $derived($edition ? $edition.getTheme() : null);
33
+ let isDefault = $derived(theme === null || Object.values(themes).includes(theme));
28
34
  function getEmptyGroup(group) {
29
- const empty = {};
30
- for (const key in Object.keys(group))
31
- empty[key] = '';
32
- return empty;
35
+ const empty = {};
36
+ for (const key in Object.keys(group)) empty[key] = "";
37
+ return empty;
33
38
  }
34
39
  </script>
35
40
 
@@ -41,7 +46,9 @@ function getEmptyGroup(group) {
41
46
  id="theme"
42
47
  header="Theme"
43
48
  >
44
- <Outline slot="outline" previous={null} next={null} />
49
+ {#snippet outline()}
50
+ <Outline previous={null} next={null} />
51
+ {/snippet}
45
52
  </Header>
46
53
 
47
54
  <Instructions {editable}>
@@ -1,16 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: Record<string, never>;
4
- events: {
5
- [evt: string]: CustomEvent<any>;
6
- };
7
- slots: {};
8
- exports?: {} | undefined;
9
- bindings?: string | undefined;
10
- };
11
- export type ThemeEditorProps = typeof __propDef.props;
12
- export type ThemeEditorEvents = typeof __propDef.events;
13
- export type ThemeEditorSlots = typeof __propDef.slots;
14
- export default class ThemeEditor extends SvelteComponent<ThemeEditorProps, ThemeEditorEvents, ThemeEditorSlots> {
15
- }
16
- export {};
1
+ declare const ThemeEditor: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type ThemeEditor = ReturnType<typeof ThemeEditor>;
3
+ export default ThemeEditor;