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,24 +1,12 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- editable: boolean;
5
- authors: string[];
6
- inheritedAuthors?: string[] | undefined;
7
- add: () => Promise<void> | void;
8
- edit: (index: number, text: string) => Promise<void> | void;
9
- remove: (index: number) => Promise<void> | void;
10
- editors?: boolean;
11
- };
12
- events: {
13
- [evt: string]: CustomEvent<any>;
14
- };
15
- slots: {};
16
- exports?: {} | undefined;
17
- bindings?: string | undefined;
18
- };
19
- export type AuthorsProps = typeof __propDef.props;
20
- export type AuthorsEvents = typeof __propDef.events;
21
- export type AuthorsSlots = typeof __propDef.slots;
22
- export default class Authors extends SvelteComponent<AuthorsProps, AuthorsEvents, AuthorsSlots> {
1
+ interface Props {
2
+ editable: boolean;
3
+ authors: string[];
4
+ inheritedAuthors?: string[] | undefined;
5
+ add: () => Promise<void> | void;
6
+ edit: (index: number, text: string) => Promise<void> | void;
7
+ remove: (index: number) => Promise<void> | void;
8
+ editors?: boolean;
23
9
  }
24
- export {};
10
+ declare const Authors: import("svelte").Component<Props, {}, "">;
11
+ type Authors = ReturnType<typeof Authors>;
12
+ export default Authors;
@@ -1,52 +1,56 @@
1
- <script>import Loading from './Loading.svelte';
2
- import Feedback from '../app/Feedback.svelte';
3
- import { onDestroy } from 'svelte';
4
- import { page } from '$app/stores';
5
- import { getBook, getUser } from './Contexts';
6
- import { listenToBookWithID as listenToBooksWithID, listenToBooksByName as listenToBooksWithName, } from '../../models/CRUD';
1
+ <script lang="ts">import Loading from "./Loading.svelte";
2
+ import Feedback from "../app/Feedback.svelte";
3
+ import { onDestroy } from "svelte";
4
+ import { page } from "$app/state";
5
+ import { getBook, getUser } from "./Contexts";
6
+ import {
7
+ listenToBookWithID as listenToBooksWithID,
8
+ listenToBooksByName as listenToBooksWithName
9
+ } from "../../models/CRUD";
10
+ let { children } = $props();
7
11
  let auth = getUser();
8
12
  let book = getBook();
9
- // Keep track of the query updates
10
- let booksByName = undefined;
11
- let bookByID = undefined;
12
- // Mege them together here
13
- $: currentBook =
14
- // Neither loaded? Current book isn't loaded.
15
- booksByName === undefined && bookByID === undefined
16
- ? undefined
17
- : booksByName !== undefined && booksByName.length > 0
18
- ? booksByName[0]
19
- : bookByID ?? null;
20
- // Whenever the merge changes, update the book store (updating the whole UI)
21
- $: book.set(currentBook ?? undefined);
22
- // Keep track of listeners to unsubscribe to on page changes.
23
- let nameUnsub = undefined;
24
- let idUnsub = undefined;
13
+ let booksByName = $state(void 0);
14
+ let bookByID = $state(void 0);
15
+ let currentBook = $derived.by(() => {
16
+ if (booksByName === void 0 && bookByID === void 0)
17
+ return void 0;
18
+ return booksByName !== void 0 && booksByName.length > 0 ? booksByName[0] : bookByID ?? null;
19
+ });
20
+ $effect.pre(() => {
21
+ book.set(currentBook ?? void 0);
22
+ });
23
+ let nameUnsub = void 0;
24
+ let idUnsub = void 0;
25
25
  function unsub() {
26
- if (nameUnsub)
27
- nameUnsub();
28
- if (idUnsub)
29
- idUnsub();
26
+ if (nameUnsub) nameUnsub();
27
+ if (idUnsub) idUnsub();
30
28
  }
31
- // Keep track of any errors.
32
- let error;
29
+ let error = $state();
33
30
  function listen() {
34
- unsub();
35
- try {
36
- nameUnsub = listenToBooksWithName($page.params.bookid, (books) => (booksByName = books));
37
- idUnsub = listenToBooksWithID($page.params.bookid, (book) => (bookByID = book));
38
- }
39
- catch (err) {
40
- error = '' + err;
41
- }
31
+ unsub();
32
+ const bookid = page.params.bookid;
33
+ if (bookid === void 0) return;
34
+ try {
35
+ nameUnsub = listenToBooksWithName(
36
+ bookid,
37
+ (books) => booksByName = books
38
+ );
39
+ idUnsub = listenToBooksWithID(
40
+ bookid,
41
+ (book2) => bookByID = book2
42
+ );
43
+ } catch (err) {
44
+ error = "" + err;
45
+ }
42
46
  }
43
- // When page or auth changes and there's a user, update the listener.
44
- $: if ($page && $auth && $auth.user !== null)
45
- listen();
46
- // When this is unmounted, unset them.
47
+ $effect(() => {
48
+ void page.params.bookid;
49
+ if ($auth && $auth.user !== null) listen();
50
+ });
47
51
  onDestroy(() => {
48
- book.set(undefined);
49
- unsub();
52
+ book.set(void 0);
53
+ unsub();
50
54
  });
51
55
  </script>
52
56
 
@@ -55,5 +59,5 @@ onDestroy(() => {
55
59
  {:else if currentBook === undefined}
56
60
  <Loading />
57
61
  {:else}
58
- <slot />
62
+ {@render children?.()}
59
63
  {/if}
@@ -1,18 +1,6 @@
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
- default: {};
9
- };
10
- exports?: {} | undefined;
11
- bindings?: string | undefined;
12
- };
13
- export type BookLoaderProps = typeof __propDef.props;
14
- export type BookLoaderEvents = typeof __propDef.events;
15
- export type BookLoaderSlots = typeof __propDef.slots;
16
- export default class BookLoader extends SvelteComponent<BookLoaderProps, BookLoaderEvents, BookLoaderSlots> {
1
+ interface Props {
2
+ children?: import('svelte').Snippet;
17
3
  }
18
- export {};
4
+ declare const BookLoader: import("svelte").Component<Props, {}, "">;
5
+ type BookLoader = ReturnType<typeof BookLoader>;
6
+ export default BookLoader;
@@ -1,35 +1,52 @@
1
- <script>import Instructions from './Instructions.svelte';
2
- import { getUniqueReferenceID, mineReference, } from '../../util/mineReference';
3
- import Reference from '../../models/book/Reference';
4
- import { getEdition, isEditionEditable, isEditionPartiallyEditable, } from './Contexts';
5
- import Button from '../app/Button.svelte';
1
+ <script lang="ts">import Instructions from "./Instructions.svelte";
2
+ import {
3
+ getUniqueReferenceID,
4
+ mineReference
5
+ } from "../../util/mineReference";
6
+ import Reference from "../../models/book/Reference";
7
+ import {
8
+ getEdition,
9
+ isEditionEditable,
10
+ isEditionPartiallyEditable
11
+ } from "./Contexts";
12
+ import Button from "../app/Button.svelte";
6
13
  let edition = getEdition();
7
- let text = '';
14
+ let text = $state("");
8
15
  let editable = isEditionEditable() || isEditionPartiallyEditable();
9
16
  function handleBulkAdd() {
10
- // Split by lines, skipping empty lines.
11
- const chunks = text.split(/\n+/);
12
- const newReferences = [];
13
- for (const chunk of chunks) {
14
- newReferences.push(mineReference(
17
+ const chunks = text.split(/\n+/);
18
+ const newReferences = [];
19
+ for (const chunk of chunks) {
20
+ newReferences.push(
21
+ mineReference(
15
22
  // Pass the current IDs and the new reference IDs
16
- Array.from(new Set([
23
+ Array.from(
24
+ /* @__PURE__ */ new Set([
17
25
  ...Object.keys($edition?.getReferences() ?? []),
18
- ...newReferences.map((ref) => ref.citationID),
19
- ])), chunk));
20
- }
21
- // Handle possible duplicate IDs.
22
- if ($edition) {
23
- edition.set($edition.withNewReferences(newReferences));
24
- text = '';
25
- }
26
+ ...newReferences.map((ref) => ref.citationID)
27
+ ])
28
+ ),
29
+ chunk
30
+ )
31
+ );
32
+ }
33
+ if ($edition) {
34
+ edition.set($edition.withNewReferences(newReferences));
35
+ text = "";
36
+ }
26
37
  }
27
38
  function handleEmptyAdd() {
28
- if ($edition) {
29
- edition.set($edition.withNewReferences([
30
- new Reference(getUniqueReferenceID(Object.keys($edition.getReferences()))),
31
- ]));
32
- }
39
+ if ($edition) {
40
+ edition.set(
41
+ $edition.withNewReferences([
42
+ new Reference(
43
+ getUniqueReferenceID(
44
+ Object.keys($edition.getReferences())
45
+ )
46
+ )
47
+ ])
48
+ );
49
+ }
33
50
  }
34
51
  </script>
35
52
 
@@ -40,7 +57,7 @@ function handleEmptyAdd() {
40
57
  likely to get some things wrong.
41
58
  </Instructions>
42
59
 
43
- <textarea rows={5} bind:value={text} style="width: 100%" />
60
+ <textarea rows={5} bind:value={text} style="width: 100%"></textarea>
44
61
  <Button
45
62
  tooltip="convert to references"
46
63
  disabled={text.length === 0}
@@ -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 BulkReferenceEditorProps = typeof __propDef.props;
12
- export type BulkReferenceEditorEvents = typeof __propDef.events;
13
- export type BulkReferenceEditorSlots = typeof __propDef.slots;
14
- export default class BulkReferenceEditor extends SvelteComponent<BulkReferenceEditorProps, BulkReferenceEditorEvents, BulkReferenceEditorSlots> {
15
- }
16
- export {};
1
+ declare const BulkReferenceEditor: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type BulkReferenceEditor = ReturnType<typeof BulkReferenceEditor>;
3
+ export default BulkReferenceEditor;