bookish-press 0.7.4 → 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 (249) 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 +36 -34
  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 +224 -249
  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 +26 -31
  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 +75 -97
  195. package/dist/components/page/Outline.svelte.d.ts +8 -20
  196. package/dist/components/page/Page.svelte +23 -33
  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 +11 -12
  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/Firebase.js +18 -4
  241. package/dist/models/book/Book.js +2 -1
  242. package/dist/models/book/BookMedia.js +1 -2
  243. package/dist/models/book/Chapter.js +3 -2
  244. package/dist/models/book/Edition.d.ts +1 -1
  245. package/dist/models/book/Edition.js +5 -1
  246. package/dist/models/chapter/BlocksNode.js +3 -1
  247. package/dist/models/chapter/BlocksNode.test.js +5 -1
  248. package/dist/models/chapter/Node.test.js +2 -2
  249. package/package.json +34 -22
@@ -1,44 +1,42 @@
1
- <script>import Header from './Header.svelte';
2
- import Outline from './Outline.svelte';
3
- import Page from './Page.svelte';
4
- import Instructions from './Instructions.svelte';
5
- import ChapterIDs from '../../models/book/ChapterID';
6
- import Link from '../Link.svelte';
7
- import { getBase, getEdition, isEditionEditable } from './Contexts';
8
- import { page } from '$app/stores';
9
- import Muted from './Muted.svelte';
10
- import ChapterTitle from './ChapterTitle.svelte';
11
- import ChapterNumber from './ChapterNumber.svelte';
12
- import PageHeader from './PageHeader.svelte';
13
- 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 Instructions from "./Instructions.svelte";
5
+ import ChapterIDs from "../../models/book/ChapterID";
6
+ import Link from "../Link.svelte";
7
+ import { getBase, getEdition, isEditionEditable } from "./Contexts";
8
+ import { page } from "$app/state";
9
+ import Muted from "./Muted.svelte";
10
+ import ChapterTitle from "./ChapterTitle.svelte";
11
+ import ChapterNumber from "./ChapterNumber.svelte";
12
+ import PageHeader from "./PageHeader.svelte";
13
+ import Rows from "./Rows.svelte";
14
14
  let editable = isEditionEditable();
15
15
  let edition = getEdition();
16
16
  let base = getBase();
17
- // What letter are we matching?
18
- $: letter = $page.params.letter;
19
- $: bookIndex = $edition?.getBookIndex() ?? {};
20
- let letters = {};
21
- // Figure out what letters have words
22
- $: {
23
- for (const word of Object.keys(bookIndex).sort((a, b) => a.localeCompare(b)))
24
- letters[word.charAt(0).toLocaleLowerCase()] = true;
25
- }
26
- let words = [];
27
- $: {
28
- words = [];
29
- let count = 0;
30
- Object.keys(bookIndex)
31
- .sort((a, b) => a.localeCompare(b))
32
- .forEach((word) => {
33
- const firstLetter = word.charAt(0).toLowerCase();
34
- if (letter === firstLetter) {
35
- count++;
36
- if (count % 20 === 0)
37
- words.push(true);
38
- words.push(word);
39
- }
40
- });
41
- }
17
+ let letter = $derived(page.params.letter);
18
+ let bookIndex = $derived($edition?.getBookIndex() ?? {});
19
+ let letters = $derived.by(() => {
20
+ const map = {};
21
+ for (const word of Object.keys(bookIndex).sort(
22
+ (a, b) => a.localeCompare(b)
23
+ ))
24
+ map[word.charAt(0).toLocaleLowerCase()] = true;
25
+ return map;
26
+ });
27
+ let words = $derived.by(() => {
28
+ const list = [];
29
+ let count = 0;
30
+ Object.keys(bookIndex).sort((a, b) => a.localeCompare(b)).forEach((word) => {
31
+ const firstLetter = word.charAt(0).toLowerCase();
32
+ if (letter === firstLetter) {
33
+ count++;
34
+ if (count % 20 === 0) list.push(true);
35
+ list.push(word);
36
+ }
37
+ });
38
+ return list;
39
+ });
42
40
  </script>
43
41
 
44
42
  {#if $edition}
@@ -59,14 +57,16 @@ $: {
59
57
  ? edition.set($edition.withHeader(ChapterIDs.IndexID, text))
60
58
  : undefined}
61
59
  >
62
- <Outline
63
- slot="outline"
64
- previous={$edition.getPreviousChapterID(
65
- ChapterIDs.IndexID,
66
- editable,
67
- )}
68
- next={$edition.getNextChapterID(ChapterIDs.IndexID, editable)}
69
- />
60
+ {#snippet outline()}
61
+ <Outline
62
+
63
+ previous={$edition.getPreviousChapterID(
64
+ ChapterIDs.IndexID,
65
+ editable,
66
+ )}
67
+ next={$edition.getNextChapterID(ChapterIDs.IndexID, editable)}
68
+ />
69
+ {/snippet}
70
70
  </Header>
71
71
 
72
72
  <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 IndexProps = typeof __propDef.props;
12
- export type IndexEvents = typeof __propDef.events;
13
- export type IndexSlots = typeof __propDef.slots;
14
- export default class Index extends SvelteComponent<IndexProps, IndexEvents, IndexSlots> {
15
- }
16
- export {};
1
+ declare const Index: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type Index = ReturnType<typeof Index>;
3
+ export default Index;
@@ -1,8 +1,8 @@
1
- <script>export let editable;
1
+ <script lang="ts">let { editable, children } = $props();
2
2
  </script>
3
3
 
4
4
  {#if editable}
5
- <aside class="instructions"><slot /></aside>
5
+ <aside class="instructions">{@render children?.()}</aside>
6
6
  {/if}
7
7
 
8
8
  <style>
@@ -1,20 +1,7 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- editable: boolean;
5
- };
6
- events: {
7
- [evt: string]: CustomEvent<any>;
8
- };
9
- slots: {
10
- default: {};
11
- };
12
- exports?: {} | undefined;
13
- bindings?: string | undefined;
14
- };
15
- export type InstructionsProps = typeof __propDef.props;
16
- export type InstructionsEvents = typeof __propDef.events;
17
- export type InstructionsSlots = typeof __propDef.slots;
18
- export default class Instructions extends SvelteComponent<InstructionsProps, InstructionsEvents, InstructionsSlots> {
1
+ interface Props {
2
+ editable: boolean;
3
+ children?: import('svelte').Snippet;
19
4
  }
20
- export {};
5
+ declare const Instructions: import("svelte").Component<Props, {}, "">;
6
+ type Instructions = ReturnType<typeof Instructions>;
7
+ export default Instructions;
@@ -1,9 +1,15 @@
1
- <script>import Parser from '../../models/chapter/Parser';
2
- import BookishEditor from '../editor/BookishEditor.svelte';
3
- import Instructions from './Instructions.svelte';
4
- import Format from '../chapter/Format.svelte';
5
- import { getUser, getEdition, getLeasee, isEditionEditable, lease, } from './Contexts';
6
- import EditableHeader from './EditableHeader.svelte';
1
+ <script lang="ts">import Parser from "../../models/chapter/Parser";
2
+ import BookishEditor from "../editor/BookishEditor.svelte";
3
+ import Instructions from "./Instructions.svelte";
4
+ import Format from "../chapter/Format.svelte";
5
+ import {
6
+ getUser,
7
+ getEdition,
8
+ getLeasee,
9
+ isEditionEditable,
10
+ lease
11
+ } from "./Contexts";
12
+ import EditableHeader from "./EditableHeader.svelte";
7
13
  let auth = getUser();
8
14
  let edition = getEdition();
9
15
  let editable = isEditionEditable();
@@ -19,7 +25,7 @@ let editable = isEditionEditable();
19
25
  {#if $edition}
20
26
  <!-- If editable, show acknowledgements even if they're empty, otherwise hide -->
21
27
  {#if editable}
22
- <!-- svelte-ignore missing-declaration -->
28
+ <!-- svelte-ignore missing_declaration -->
23
29
  <BookishEditor
24
30
  text={$edition.getLicense()}
25
31
  parser={(text) =>
@@ -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 LicenseProps = typeof __propDef.props;
12
- export type LicenseEvents = typeof __propDef.events;
13
- export type LicenseSlots = typeof __propDef.slots;
14
- export default class License extends SvelteComponent<LicenseProps, LicenseEvents, LicenseSlots> {
12
+ z_$$bindings?: Bindings;
15
13
  }
16
- export {};
14
+ declare const License: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type License = InstanceType<typeof License>;
18
+ export default License;
@@ -7,15 +7,15 @@
7
7
  : '')}
8
8
  >
9
9
  <div class="bookish-loading-animation">
10
- <div />
11
- <div />
12
- <div />
13
- <div />
14
- <div />
15
- <div />
16
- <div />
17
- <div />
18
- <div />
10
+ <div></div>
11
+ <div></div>
12
+ <div></div>
13
+ <div></div>
14
+ <div></div>
15
+ <div></div>
16
+ <div></div>
17
+ <div></div>
18
+ <div></div>
19
19
  </div>
20
20
  </div>
21
21
 
@@ -1,25 +1,26 @@
1
- /** @typedef {typeof __propDef.props} LoadingProps */
2
- /** @typedef {typeof __propDef.events} LoadingEvents */
3
- /** @typedef {typeof __propDef.slots} LoadingSlots */
4
- export default class Loading extends SvelteComponent<{
1
+ export default Loading;
2
+ type Loading = SvelteComponent<{
5
3
  [x: string]: never;
6
4
  }, {
7
5
  [evt: string]: CustomEvent<any>;
8
- }, {}> {
9
- }
10
- export type LoadingProps = typeof __propDef.props;
11
- export type LoadingEvents = typeof __propDef.events;
12
- export type LoadingSlots = typeof __propDef.slots;
13
- import { SvelteComponent } from "svelte";
14
- declare const __propDef: {
15
- props: {
16
- [x: string]: never;
17
- };
18
- events: {
19
- [evt: string]: CustomEvent<any>;
20
- };
21
- slots: {};
22
- exports?: undefined;
23
- bindings?: undefined;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
24
8
  };
25
- export {};
9
+ declare const Loading: $$__sveltets_2_IsomorphicComponent<{
10
+ [x: string]: never;
11
+ }, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}, {}, string>;
14
+ 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> {
15
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
16
+ $$bindings?: Bindings;
17
+ } & Exports;
18
+ (internal: unknown, props: {
19
+ $$events?: Events;
20
+ $$slots?: Slots;
21
+ }): Exports & {
22
+ $set?: any;
23
+ $on?: any;
24
+ };
25
+ z_$$bindings?: Bindings;
26
+ }
@@ -1,30 +1,37 @@
1
- <script>import Header from './Header.svelte';
2
- import Outline from './Outline.svelte';
3
- import Page from './Page.svelte';
4
- import Instructions from './Instructions.svelte';
5
- import ChapterIDs from '../../models/book/ChapterID';
6
- import Format from '../chapter/Format.svelte';
7
- import MediaPreview from './MediaPreview.svelte';
8
- import { onMount } from 'svelte';
9
- import { getBase, getBook, getEdition, isBookEditable, isEditionEditable, } from './Contexts';
10
- import PageHeader from './PageHeader.svelte';
11
- import ConfirmButton from '../editor/ConfirmButton.svelte';
1
+ <script lang="ts">import Header from "./Header.svelte";
2
+ import Outline from "./Outline.svelte";
3
+ import Page from "./Page.svelte";
4
+ import Instructions from "./Instructions.svelte";
5
+ import ChapterIDs from "../../models/book/ChapterID";
6
+ import Format from "../chapter/Format.svelte";
7
+ import MediaPreview from "./MediaPreview.svelte";
8
+ import { onMount } from "svelte";
9
+ import {
10
+ getBase,
11
+ getBook,
12
+ getEdition,
13
+ isBookEditable,
14
+ isEditionEditable
15
+ } from "./Contexts";
16
+ import PageHeader from "./PageHeader.svelte";
17
+ import ConfirmButton from "../editor/ConfirmButton.svelte";
12
18
  let book = getBook();
13
19
  let edition = getEdition();
14
20
  let editable = isBookEditable();
15
21
  let base = getBase();
16
- let images = [];
17
- $: embeds = $edition?.getEmbeds() ?? [];
18
- $: media = $book?.getMedia();
22
+ let images = $state([]);
23
+ let embeds = $derived($edition?.getEmbeds() ?? []);
24
+ let media = $derived($book?.getMedia());
19
25
  function updateImages(newImages) {
20
- images = newImages;
26
+ images = newImages;
21
27
  }
22
28
  onMount(() => {
23
- // Listen to image changes.
24
- media?.notify(updateImages);
25
- return () => media?.stopNotifying(updateImages);
29
+ media?.notify(updateImages);
30
+ return () => media?.stopNotifying(updateImages);
26
31
  });
27
- $: unused = images?.filter((image) => !embeds.some((embed) => image.url.includes(embed.embed.getURL())));
32
+ let unused = $derived(images?.filter(
33
+ (image) => !embeds.some((embed) => image.url.includes(embed.embed.getURL()))
34
+ ));
28
35
  </script>
29
36
 
30
37
  {#if $edition}
@@ -45,14 +52,16 @@ $: unused = images?.filter((image) => !embeds.some((embed) => image.url.includes
45
52
  ? edition.set($edition.withHeader(ChapterIDs.MediaID, text))
46
53
  : undefined}
47
54
  >
48
- <Outline
49
- slot="outline"
50
- previous={$edition.getPreviousChapterID(
51
- ChapterIDs.MediaID,
52
- editable,
53
- )}
54
- next={$edition.getNextChapterID(ChapterIDs.MediaID, editable)}
55
- />
55
+ {#snippet outline()}
56
+ <Outline
57
+
58
+ previous={$edition.getPreviousChapterID(
59
+ ChapterIDs.MediaID,
60
+ editable,
61
+ )}
62
+ next={$edition.getNextChapterID(ChapterIDs.MediaID, editable)}
63
+ />
64
+ {/snippet}
56
65
  </Header>
57
66
  <Instructions {editable}>
58
67
  These are the images in the book, in order of appearance. You can
@@ -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 MediaProps = typeof __propDef.props;
12
- export type MediaEvents = typeof __propDef.events;
13
- export type MediaSlots = typeof __propDef.slots;
14
- export default class Media extends SvelteComponent<MediaProps, MediaEvents, MediaSlots> {
15
- }
16
- export {};
1
+ declare const Media: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type Media = ReturnType<typeof Media>;
3
+ export default Media;
@@ -1,23 +1,26 @@
1
- <script>import Link from '../Link.svelte';
2
- import { getBase } from './Contexts';
3
- export let url;
4
- export let alt;
5
- export let chapterID;
1
+ <script lang="ts">import Link from "../Link.svelte";
2
+ import { getBase } from "./Contexts";
3
+ let {
4
+ url,
5
+ alt,
6
+ chapterID,
7
+ children
8
+ } = $props();
6
9
  let base = getBase();
7
- let loaded;
8
- let urlChecked;
9
- $: {
10
- if (urlChecked !== url && typeof Image !== 'undefined') {
11
- urlChecked = url;
12
- let image = new Image();
13
- image.src = url;
14
- loaded = image.complete;
15
- if (!loaded) {
16
- image.onload = () => (loaded = true);
17
- image.onerror = () => (loaded = null);
18
- }
10
+ let loaded = $state();
11
+ let urlChecked = void 0;
12
+ $effect.pre(() => {
13
+ if (urlChecked !== url && typeof Image !== "undefined") {
14
+ urlChecked = url;
15
+ let image = new Image();
16
+ image.src = url;
17
+ loaded = image.complete;
18
+ if (!loaded) {
19
+ image.onload = () => loaded = true;
20
+ image.onerror = () => loaded = null;
19
21
  }
20
- }
22
+ }
23
+ });
21
24
  </script>
22
25
 
23
26
  <figure class={'media-preview'}>
@@ -28,7 +31,7 @@ $: {
28
31
  {:else if loaded === null}
29
32
  <div class="missing">missing image</div>
30
33
  {/if}
31
- <figcaption class="credit"><slot /></figcaption>
34
+ <figcaption class="credit">{@render children?.()}</figcaption>
32
35
  </figure>
33
36
 
34
37
  <style>
@@ -1,22 +1,9 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- url: string;
5
- alt: string;
6
- chapterID: string | undefined;
7
- };
8
- events: {
9
- [evt: string]: CustomEvent<any>;
10
- };
11
- slots: {
12
- default: {};
13
- };
14
- exports?: {} | undefined;
15
- bindings?: string | undefined;
16
- };
17
- export type MediaPreviewProps = typeof __propDef.props;
18
- export type MediaPreviewEvents = typeof __propDef.events;
19
- export type MediaPreviewSlots = typeof __propDef.slots;
20
- export default class MediaPreview extends SvelteComponent<MediaPreviewProps, MediaPreviewEvents, MediaPreviewSlots> {
1
+ interface Props {
2
+ url: string;
3
+ alt: string;
4
+ chapterID: string | undefined;
5
+ children?: import('svelte').Snippet;
21
6
  }
22
- export {};
7
+ declare const MediaPreview: import("svelte").Component<Props, {}, "">;
8
+ type MediaPreview = ReturnType<typeof MediaPreview>;
9
+ export default MediaPreview;
@@ -1,4 +1,7 @@
1
- <span class="muted"><slot /></span>
1
+ <script lang="ts">let { children } = $props();
2
+ </script>
3
+
4
+ <span class="muted">{@render children?.()}</span>
2
5
 
3
6
  <style>
4
7
  /* TYPOGRAPHY */
@@ -1,29 +1,6 @@
1
- /** @typedef {typeof __propDef.props} MutedProps */
2
- /** @typedef {typeof __propDef.events} MutedEvents */
3
- /** @typedef {typeof __propDef.slots} MutedSlots */
4
- export default class Muted extends SvelteComponent<{
5
- [x: string]: never;
6
- }, {
7
- [evt: string]: CustomEvent<any>;
8
- }, {
9
- default: {};
10
- }> {
1
+ interface Props {
2
+ children?: import('svelte').Snippet;
11
3
  }
12
- export type MutedProps = typeof __propDef.props;
13
- export type MutedEvents = typeof __propDef.events;
14
- export type MutedSlots = typeof __propDef.slots;
15
- import { SvelteComponent } from "svelte";
16
- declare const __propDef: {
17
- props: {
18
- [x: string]: never;
19
- };
20
- events: {
21
- [evt: string]: CustomEvent<any>;
22
- };
23
- slots: {
24
- default: {};
25
- };
26
- exports?: undefined;
27
- bindings?: undefined;
28
- };
29
- export {};
4
+ declare const Muted: import("svelte").Component<Props, {}, "">;
5
+ type Muted = ReturnType<typeof Muted>;
6
+ export default Muted;