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,28 +1,16 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type RootNode from '../../models/chapter/RootNode';
3
- declare const __propDef: {
4
- props: {
5
- text: string;
6
- parser: (text: string) => RootNode;
7
- save: (node: RootNode) => Promise<void> | void;
8
- chapter: boolean;
9
- autofocus?: boolean;
10
- component: ConstructorOfATypedSvelteComponent;
11
- placeholder: string;
12
- leasee: string | boolean;
13
- lease: (lock: boolean) => Promise<boolean> | boolean;
14
- inline?: boolean;
15
- };
16
- events: {
17
- [evt: string]: CustomEvent<any>;
18
- };
19
- slots: {};
20
- exports?: {} | undefined;
21
- bindings?: string | undefined;
22
- };
23
- export type BookishEditorProps = typeof __propDef.props;
24
- export type BookishEditorEvents = typeof __propDef.events;
25
- export type BookishEditorSlots = typeof __propDef.slots;
26
- export default class BookishEditor extends SvelteComponent<BookishEditorProps, BookishEditorEvents, BookishEditorSlots> {
2
+ interface Props {
3
+ text: string;
4
+ parser: (text: string) => RootNode;
5
+ save: (node: RootNode) => Promise<void> | void;
6
+ chapter: boolean;
7
+ autofocus?: boolean;
8
+ component: import('svelte').Component<any>;
9
+ placeholder: string;
10
+ leasee: string | boolean;
11
+ lease: (lock: boolean) => Promise<boolean> | boolean;
12
+ inline?: boolean;
27
13
  }
28
- export {};
14
+ declare const BookishEditor: import("svelte").Component<Props, {}, "">;
15
+ type BookishEditor = ReturnType<typeof BookishEditor>;
16
+ export default BookishEditor;
@@ -1,6 +1,6 @@
1
- <script>import PositionEditor from './PositionEditor.svelte';
2
- import { getCaret } from '../page/Contexts';
3
- export let callout;
1
+ <script lang="ts">import PositionEditor from "./PositionEditor.svelte";
2
+ import { getCaret } from "../page/Contexts";
3
+ let { callout } = $props();
4
4
  let caret = getCaret();
5
5
  </script>
6
6
 
@@ -1,19 +1,7 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type CalloutNode from '../../models/chapter/CalloutNode';
3
- declare const __propDef: {
4
- props: {
5
- callout: CalloutNode;
6
- };
7
- events: {
8
- [evt: string]: CustomEvent<any>;
9
- };
10
- slots: {};
11
- exports?: {} | undefined;
12
- bindings?: string | undefined;
13
- };
14
- export type CalloutEditorProps = typeof __propDef.props;
15
- export type CalloutEditorEvents = typeof __propDef.events;
16
- export type CalloutEditorSlots = typeof __propDef.slots;
17
- export default class CalloutEditor extends SvelteComponent<CalloutEditorProps, CalloutEditorEvents, CalloutEditorSlots> {
2
+ interface Props {
3
+ callout: CalloutNode;
18
4
  }
19
- export {};
5
+ declare const CalloutEditor: import("svelte").Component<Props, {}, "">;
6
+ type CalloutEditor = ReturnType<typeof CalloutEditor>;
7
+ export default CalloutEditor;
@@ -1,8 +1,8 @@
1
- <script>import LanguageEditor from './LanguageEditor.svelte';
2
- import PositionEditor from './PositionEditor.svelte';
3
- import Switch from './Switch.svelte';
4
- import { getCaret } from '../page/Contexts';
5
- export let code;
1
+ <script lang="ts">import LanguageEditor from "./LanguageEditor.svelte";
2
+ import PositionEditor from "./PositionEditor.svelte";
3
+ import Switch from "./Switch.svelte";
4
+ import { getCaret } from "../page/Contexts";
5
+ let { code } = $props();
6
6
  let caret = getCaret();
7
7
  </script>
8
8
 
@@ -1,19 +1,7 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type CodeNode from '../../models/chapter/CodeNode';
3
- declare const __propDef: {
4
- props: {
5
- code: CodeNode;
6
- };
7
- events: {
8
- [evt: string]: CustomEvent<any>;
9
- };
10
- slots: {};
11
- exports?: {} | undefined;
12
- bindings?: string | undefined;
13
- };
14
- export type CaptionedCodeEditorProps = typeof __propDef.props;
15
- export type CaptionedCodeEditorEvents = typeof __propDef.events;
16
- export type CaptionedCodeEditorSlots = typeof __propDef.slots;
17
- export default class CaptionedCodeEditor extends SvelteComponent<CaptionedCodeEditorProps, CaptionedCodeEditorEvents, CaptionedCodeEditorSlots> {
2
+ interface Props {
3
+ code: CodeNode;
18
4
  }
19
- export {};
5
+ declare const CaptionedCodeEditor: import("svelte").Component<Props, {}, "">;
6
+ type CaptionedCodeEditor = ReturnType<typeof CaptionedCodeEditor>;
7
+ export default CaptionedCodeEditor;
@@ -1,28 +1,26 @@
1
- <script>import { afterUpdate, tick } from 'svelte';
2
- export let left;
3
- export let top;
4
- export let height;
5
- export let linked;
6
- export let italic;
7
- export let bold;
8
- export let disabled;
9
- export let ignored;
10
- export let blink;
11
- export let locked;
12
- export let accent;
13
- let element;
14
- let headerHeight = 0;
15
- // When the caret updates position, scroll the element into view after the render is complete.
16
- $: {
17
- left;
18
- top;
19
- tick().then(() => element ? element.scrollIntoView({ block: 'nearest' }) : undefined);
20
- }
21
- /** Keep track of the header height, so we can snap to the caret position. */
22
- afterUpdate(() => {
23
- headerHeight =
24
- document.querySelector('.bookish-app > .header')
25
- ?.offsetHeight ?? 0;
1
+ <script lang="ts">import { tick } from "svelte";
2
+ let {
3
+ left,
4
+ top,
5
+ height,
6
+ linked,
7
+ italic,
8
+ bold,
9
+ disabled,
10
+ ignored,
11
+ blink,
12
+ locked,
13
+ accent
14
+ } = $props();
15
+ let element = $state();
16
+ let headerHeight = $state(0);
17
+ $effect(() => {
18
+ void left;
19
+ void top;
20
+ tick().then(
21
+ () => element ? element.scrollIntoView({ block: "nearest" }) : void 0
22
+ );
23
+ headerHeight = document.querySelector(".bookish-app > .header")?.offsetHeight ?? 0;
26
24
  });
27
25
  </script>
28
26
 
@@ -1,29 +1,17 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { Accent } from './CaretContext';
3
- declare const __propDef: {
4
- props: {
5
- left: number;
6
- top: number;
7
- height: number;
8
- linked: boolean;
9
- italic: boolean;
10
- bold: boolean;
11
- disabled: boolean;
12
- ignored: boolean;
13
- blink: boolean;
14
- locked: boolean;
15
- accent: Accent | undefined;
16
- };
17
- events: {
18
- [evt: string]: CustomEvent<any>;
19
- };
20
- slots: {};
21
- exports?: {} | undefined;
22
- bindings?: string | undefined;
23
- };
24
- export type CaretViewProps = typeof __propDef.props;
25
- export type CaretViewEvents = typeof __propDef.events;
26
- export type CaretViewSlots = typeof __propDef.slots;
27
- export default class CaretView extends SvelteComponent<CaretViewProps, CaretViewEvents, CaretViewSlots> {
2
+ interface Props {
3
+ left: number;
4
+ top: number;
5
+ height: number;
6
+ linked: boolean;
7
+ italic: boolean;
8
+ bold: boolean;
9
+ disabled: boolean;
10
+ ignored: boolean;
11
+ blink: boolean;
12
+ locked: boolean;
13
+ accent: Accent | undefined;
28
14
  }
29
- export {};
15
+ declare const CaretView: import("svelte").Component<Props, {}, "">;
16
+ type CaretView = ReturnType<typeof CaretView>;
17
+ export default CaretView;
@@ -1,39 +1,36 @@
1
- <script>import Note from './Note.svelte';
2
- import Options from '../app/Options.svelte';
3
- import Button from '../app/Button.svelte';
4
- import { getCaret, getEdition } from '../page/Contexts';
5
- export let citations;
1
+ <script lang="ts">import Note from "./Note.svelte";
2
+ import Options from "../app/Options.svelte";
3
+ import Button from "../app/Button.svelte";
4
+ import { getCaret, getEdition } from "../page/Contexts";
5
+ let { citations } = $props();
6
6
  let caret = getCaret();
7
7
  let edition = getEdition();
8
- let value = '';
8
+ let value = $state("");
9
9
  function handleSelection(selection) {
10
- if (selection.length > 0)
11
- update(new Set([...citations.getMeta(), selection]));
10
+ if (selection.length > 0)
11
+ update(/* @__PURE__ */ new Set([...citations.getMeta(), selection]));
12
12
  }
13
13
  function removeSelection(citationID) {
14
- let ids = new Set(citations.getMeta());
15
- ids.delete(citationID);
16
- update(ids);
14
+ let ids = new Set(citations.getMeta());
15
+ ids.delete(citationID);
16
+ update(ids);
17
17
  }
18
18
  function update(set) {
19
- $caret?.edit(citations, citations.withMeta(Array.from(set)));
20
- }
21
- $: uncited =
22
- $edition === undefined
23
- ? []
24
- : Object.keys($edition.getReferences())
25
- .filter((citationID) => !citations.getMeta().includes(citationID))
26
- .sort();
27
- let options = [];
28
- $: {
29
- options = [];
30
- options.push([
31
- uncited.length > 0 ? 'Choose references' : 'No uncited references',
32
- '',
33
- ]);
34
- for (const citationID of uncited)
35
- options.push([citationID, citationID]);
19
+ $caret?.edit(citations, citations.withMeta(Array.from(set)));
36
20
  }
21
+ let uncited = $derived($edition === void 0 ? [] : Object.keys($edition.getReferences()).filter(
22
+ (citationID) => !citations.getMeta().includes(citationID)
23
+ ).sort());
24
+ let options = $derived.by(() => {
25
+ const list = [
26
+ [
27
+ uncited.length > 0 ? "Choose references" : "No uncited references",
28
+ ""
29
+ ]
30
+ ];
31
+ for (const citationID of uncited) list.push([citationID, citationID]);
32
+ return list;
33
+ });
37
34
  </script>
38
35
 
39
36
  <Options
@@ -1,19 +1,7 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type CitationsNode from '../../models/chapter/CitationsNode';
3
- declare const __propDef: {
4
- props: {
5
- citations: CitationsNode;
6
- };
7
- events: {
8
- [evt: string]: CustomEvent<any>;
9
- };
10
- slots: {};
11
- exports?: {} | undefined;
12
- bindings?: string | undefined;
13
- };
14
- export type CitationsEditorProps = typeof __propDef.props;
15
- export type CitationsEditorEvents = typeof __propDef.events;
16
- export type CitationsEditorSlots = typeof __propDef.slots;
17
- export default class CitationsEditor extends SvelteComponent<CitationsEditorProps, CitationsEditorEvents, CitationsEditorSlots> {
2
+ interface Props {
3
+ citations: CitationsNode;
18
4
  }
19
- export {};
5
+ declare const CitationsEditor: import("svelte").Component<Props, {}, "">;
6
+ type CitationsEditor = ReturnType<typeof CitationsEditor>;
7
+ export default CitationsEditor;
@@ -1,13 +1,16 @@
1
- <script>import Button from '../app/Button.svelte';
2
- export let tooltip;
3
- export let confirm;
4
- export let command;
5
- let confirming = false;
1
+ <script lang="ts">import Button from "../app/Button.svelte";
2
+ let {
3
+ tooltip,
4
+ confirm,
5
+ command,
6
+ children
7
+ } = $props();
8
+ let confirming = $state(false);
6
9
  </script>
7
10
 
8
11
  <div class="confirm">
9
12
  {#if !confirming}
10
- <Button {tooltip} command={() => (confirming = true)}><slot /></Button>
13
+ <Button {tooltip} command={() => (confirming = true)}>{@render children?.()}</Button>
11
14
  {:else}
12
15
  <Button tooltip="no" command={() => (confirming = false)}>cancel</Button
13
16
  >&nbsp;<Button
@@ -1,22 +1,9 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- tooltip: string;
5
- confirm: string;
6
- command: () => Promise<void> | void;
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 ConfirmButtonProps = typeof __propDef.props;
18
- export type ConfirmButtonEvents = typeof __propDef.events;
19
- export type ConfirmButtonSlots = typeof __propDef.slots;
20
- export default class ConfirmButton extends SvelteComponent<ConfirmButtonProps, ConfirmButtonEvents, ConfirmButtonSlots> {
1
+ interface Props {
2
+ tooltip: string;
3
+ confirm: string;
4
+ command: () => Promise<void> | void;
5
+ children?: import('svelte').Snippet;
21
6
  }
22
- export {};
7
+ declare const ConfirmButton: import("svelte").Component<Props, {}, "">;
8
+ type ConfirmButton = ReturnType<typeof ConfirmButton>;
9
+ export default ConfirmButton;
@@ -1,22 +1,18 @@
1
- <script>import Options from '../app/Options.svelte';
2
- import Note from './Note.svelte';
3
- import { getCaret, getEdition } from '../page/Contexts';
4
- export let definition;
1
+ <script lang="ts">import Options from "../app/Options.svelte";
2
+ import Note from "./Note.svelte";
3
+ import { getCaret, getEdition } from "../page/Contexts";
4
+ let { definition } = $props();
5
5
  let caret = getCaret();
6
6
  let edition = getEdition();
7
- $: glossary = $edition?.getGlossary();
7
+ let glossary = $derived($edition?.getGlossary());
8
8
  function handleChange(glossaryID) {
9
- $caret?.edit(definition, definition.withMeta(glossaryID));
9
+ $caret?.edit(definition, definition.withMeta(glossaryID));
10
10
  }
11
- // Sort the glossary entries by phrase
12
- $: entries =
13
- glossary === undefined
14
- ? undefined
15
- : Object.entries(glossary)
16
- .map(([key, value]) => {
17
- return { glossaryID: key, phrase: value.phrase };
18
- })
19
- .sort((a, b) => a && b ? a.phrase.localeCompare(b.phrase) : 0);
11
+ let entries = $derived(glossary === void 0 ? void 0 : Object.entries(glossary).map(([key, value]) => {
12
+ return { glossaryID: key, phrase: value.phrase };
13
+ }).sort(
14
+ (a, b) => a && b ? a.phrase.localeCompare(b.phrase) : 0
15
+ ));
20
16
  </script>
21
17
 
22
18
  {#if entries !== undefined && glossary !== undefined}
@@ -1,19 +1,7 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type DefinitionNode from '../../models/chapter/DefinitionNode';
3
- declare const __propDef: {
4
- props: {
5
- definition: DefinitionNode;
6
- };
7
- events: {
8
- [evt: string]: CustomEvent<any>;
9
- };
10
- slots: {};
11
- exports?: {} | undefined;
12
- bindings?: string | undefined;
13
- };
14
- export type DefinitionEditorProps = typeof __propDef.props;
15
- export type DefinitionEditorEvents = typeof __propDef.events;
16
- export type DefinitionEditorSlots = typeof __propDef.slots;
17
- export default class DefinitionEditor extends SvelteComponent<DefinitionEditorProps, DefinitionEditorEvents, DefinitionEditorSlots> {
2
+ interface Props {
3
+ definition: DefinitionNode;
18
4
  }
19
- export {};
5
+ declare const DefinitionEditor: import("svelte").Component<Props, {}, "">;
6
+ type DefinitionEditor = ReturnType<typeof DefinitionEditor>;
7
+ export default DefinitionEditor;
@@ -1,53 +1,52 @@
1
- <script>import PositionEditor from './PositionEditor.svelte';
2
- import EmbedNode from '../../models/chapter/EmbedNode';
3
- import TextEditor from './TextEditor.svelte';
4
- import { storage } from '../../models/Firebase';
5
- import ToolbarSpacer from './ToolbarSpacer.svelte';
6
- import ImageChooser from './ImageChooser.svelte';
7
- import URLEditor from './URLEditor.svelte';
8
- import Note from './Note.svelte';
9
- import { getBook, getCaret } from '../page/Contexts';
10
- export let embed;
1
+ <script lang="ts">import PositionEditor from "./PositionEditor.svelte";
2
+ import EmbedNode from "../../models/chapter/EmbedNode";
3
+ import TextEditor from "./TextEditor.svelte";
4
+ import { storage } from "../../models/Firebase";
5
+ import ToolbarSpacer from "./ToolbarSpacer.svelte";
6
+ import ImageChooser from "./ImageChooser.svelte";
7
+ import URLEditor from "./URLEditor.svelte";
8
+ import Note from "./Note.svelte";
9
+ import { getBook, getCaret } from "../page/Contexts";
10
+ let { embed } = $props();
11
11
  let caret = getCaret();
12
- let upload = undefined;
13
- $: description = embed.getDescription();
12
+ let upload = $state(void 0);
13
+ let description = $derived(embed.getDescription());
14
14
  let book = getBook();
15
15
  function isValidURL(url) {
16
- // Is it a valid URL?
17
- try {
18
- let test = new URL(url);
19
- if (test.protocol === 'http:' || test.protocol === 'https:')
20
- return;
21
- }
22
- catch (_) { }
23
- return "URL doesn't seem valid";
16
+ try {
17
+ let test = new URL(url);
18
+ if (test.protocol === "http:" || test.protocol === "https:") return;
19
+ } catch (_) {
20
+ }
21
+ return "URL doesn't seem valid";
24
22
  }
25
23
  function handleImageChange(event) {
26
- if ($book === undefined)
27
- return;
28
- if ($caret === undefined)
29
- return;
30
- const target = event.target;
31
- const file = target.files === null ? undefined : target.files[0];
32
- const media = $book.getMedia();
33
- if (file === undefined)
34
- return;
35
- if (storage === undefined)
36
- return;
37
- if (media === undefined)
38
- return;
39
- media.upload(file, (progress) => (upload = `${progress}% done`), (error) => (upload = error), (url, thumbnail) => {
40
- // Upload completed successfully, update the front end.
41
- // Preserve the description, in case it's an image revision, to avoid data loss.
42
- $caret?.edit(embed, embed.withURLs(url, thumbnail));
43
- upload = undefined;
44
- });
24
+ if ($book === void 0) return;
25
+ if ($caret === void 0) return;
26
+ const target = event.target;
27
+ const file = target.files === null ? void 0 : target.files[0];
28
+ const media = $book.getMedia();
29
+ if (file === void 0) return;
30
+ if (storage === void 0) return;
31
+ if (media === void 0) return;
32
+ media.upload(
33
+ file,
34
+ (progress) => upload = `${progress}% done`,
35
+ (error) => upload = error,
36
+ (url, thumbnail) => {
37
+ $caret?.edit(embed, embed.withURLs(url, thumbnail));
38
+ upload = void 0;
39
+ }
40
+ );
45
41
  }
46
42
  function handleImageSelection(image) {
47
- $caret?.edit(embed, embed.getURL() === image.url
48
- ? // Toggle the embed if choosing the same image
49
- embed.withURL('').withDescription('')
50
- : embed.withURLs(image.url, image.thumb));
43
+ $caret?.edit(
44
+ embed,
45
+ embed.getURL() === image.url ? (
46
+ // Toggle the embed if choosing the same image
47
+ embed.withURL("").withDescription("")
48
+ ) : embed.withURLs(image.url, image.thumb)
49
+ );
51
50
  }
52
51
  </script>
53
52
 
@@ -62,7 +61,7 @@ function handleImageSelection(image) {
62
61
  <label class="file-upload" tabIndex="0">
63
62
  <input
64
63
  type="file"
65
- on:input={handleImageChange}
64
+ oninput={handleImageChange}
66
65
  accept=".jpg,.jpeg,.png,.gif,image/jpeg,image/png,image/gif"
67
66
  />
68
67
  Upload
@@ -1,19 +1,7 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import EmbedNode from '../../models/chapter/EmbedNode';
3
- declare const __propDef: {
4
- props: {
5
- embed: EmbedNode;
6
- };
7
- events: {
8
- [evt: string]: CustomEvent<any>;
9
- };
10
- slots: {};
11
- exports?: {} | undefined;
12
- bindings?: string | undefined;
13
- };
14
- export type EmbedEditorProps = typeof __propDef.props;
15
- export type EmbedEditorEvents = typeof __propDef.events;
16
- export type EmbedEditorSlots = typeof __propDef.slots;
17
- export default class EmbedEditor extends SvelteComponent<EmbedEditorProps, EmbedEditorEvents, EmbedEditorSlots> {
2
+ interface Props {
3
+ embed: EmbedNode;
18
4
  }
19
- export {};
5
+ declare const EmbedEditor: import("svelte").Component<Props, {}, "">;
6
+ type EmbedEditor = ReturnType<typeof EmbedEditor>;
7
+ export default EmbedEditor;
@@ -1,4 +1,4 @@
1
- <script>export let icon;
1
+ <script lang="ts">let { icon } = $props();
2
2
  </script>
3
3
 
4
4
  <span>
@@ -1,18 +1,6 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- icon: string;
5
- };
6
- events: {
7
- [evt: string]: CustomEvent<any>;
8
- };
9
- slots: {};
10
- exports?: {} | undefined;
11
- bindings?: string | undefined;
12
- };
13
- export type IconProps = typeof __propDef.props;
14
- export type IconEvents = typeof __propDef.events;
15
- export type IconSlots = typeof __propDef.slots;
16
- export default class Icon extends SvelteComponent<IconProps, IconEvents, IconSlots> {
1
+ interface Props {
2
+ icon: string;
17
3
  }
18
- export {};
4
+ declare const Icon: import("svelte").Component<Props, {}, "">;
5
+ type Icon = ReturnType<typeof Icon>;
6
+ export default Icon;
@@ -1,21 +1,18 @@
1
- <script>import { onMount } from 'svelte';
2
- import { getBook } from '../page/Contexts';
3
- import ImageThumbnail from './ImageThumbnail.svelte';
4
- export let select;
5
- export let selection;
1
+ <script lang="ts">import { onMount } from "svelte";
2
+ import { getBook } from "../page/Contexts";
3
+ import ImageThumbnail from "./ImageThumbnail.svelte";
4
+ let { select, selection } = $props();
6
5
  let book = getBook();
7
- let images = undefined;
8
- let expanded = false;
6
+ let images = $state(void 0);
7
+ let expanded = $state(false);
9
8
  function updateImages(newImages) {
10
- images = newImages;
9
+ images = newImages;
11
10
  }
12
- // Load the latest images in the book, and keep them updated as they change.
13
11
  onMount(() => {
14
- if ($book === undefined)
15
- return;
16
- const media = $book.getMedia();
17
- media.notify(updateImages);
18
- return () => media.stopNotifying(updateImages);
12
+ if ($book === void 0) return;
13
+ const media = $book.getMedia();
14
+ media.notify(updateImages);
15
+ return () => media.stopNotifying(updateImages);
19
16
  });
20
17
  </script>
21
18
 
@@ -23,13 +20,13 @@ onMount(() => {
23
20
  class={`bookish-image-chooser ${expanded ? 'expanded' : ''}`}
24
21
  tabindex="0"
25
22
  role="button"
26
- on:click={() => (expanded = !expanded)}
27
- on:keydown={(event) =>
23
+ onclick={() => (expanded = !expanded)}
24
+ onkeydown={(event) =>
28
25
  event.key === 'Enter' || event.key === ' '
29
26
  ? (expanded = !expanded)
30
27
  : undefined}
31
- on:mouseenter={() => (expanded = true)}
32
- on:mouseleave={() => (expanded = false)}
28
+ onmouseenter={() => (expanded = true)}
29
+ onmouseleave={() => (expanded = false)}
33
30
  >
34
31
  {#if images === undefined}
35
32
  Loading images