bookish-press 0.5.32 → 0.5.71

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 (168) hide show
  1. package/README.md +30 -1
  2. package/dist/components/Auth.svelte.d.ts +2 -2
  3. package/dist/components/BookPreview.svelte.d.ts +2 -2
  4. package/dist/components/Link.svelte.d.ts +2 -2
  5. package/dist/components/app/BookList.svelte.d.ts +2 -2
  6. package/dist/components/app/Button.svelte.d.ts +2 -2
  7. package/dist/components/app/Feedback.svelte.d.ts +2 -2
  8. package/dist/components/app/Head.svelte.d.ts +2 -2
  9. package/dist/components/app/Large.svelte.d.ts +2 -2
  10. package/dist/components/app/Lead.svelte.d.ts +2 -2
  11. package/dist/components/app/Link.svelte.d.ts +2 -2
  12. package/dist/components/app/Options.svelte +1 -0
  13. package/dist/components/app/Options.svelte.d.ts +2 -2
  14. package/dist/components/app/Paragraph.svelte.d.ts +2 -2
  15. package/dist/components/app/Section.svelte.d.ts +2 -2
  16. package/dist/components/app/Table.svelte +0 -1
  17. package/dist/components/app/Table.svelte.d.ts +2 -2
  18. package/dist/components/app/TextInput.svelte.d.ts +2 -2
  19. package/dist/components/chapter/Atom.svelte.d.ts +2 -2
  20. package/dist/components/chapter/Block.svelte.d.ts +2 -2
  21. package/dist/components/chapter/Callout.svelte.d.ts +2 -2
  22. package/dist/components/chapter/CaptionedCode.svelte +21 -19
  23. package/dist/components/chapter/CaptionedCode.svelte.d.ts +2 -2
  24. package/dist/components/chapter/ChapterBody.svelte +2 -0
  25. package/dist/components/chapter/ChapterBody.svelte.d.ts +2 -2
  26. package/dist/components/chapter/Citations.svelte.d.ts +2 -2
  27. package/dist/components/chapter/Code.svelte.d.ts +2 -2
  28. package/dist/components/chapter/Comment.svelte.d.ts +2 -2
  29. package/dist/components/chapter/Definition.svelte +6 -7
  30. package/dist/components/chapter/Definition.svelte.d.ts +2 -2
  31. package/dist/components/chapter/Embed.svelte +4 -3
  32. package/dist/components/chapter/Embed.svelte.d.ts +2 -2
  33. package/dist/components/chapter/ErrorMessage.svelte.d.ts +2 -2
  34. package/dist/components/chapter/Figure.svelte +9 -1
  35. package/dist/components/chapter/Figure.svelte.d.ts +3 -2
  36. package/dist/components/chapter/Footnote.svelte.d.ts +2 -2
  37. package/dist/components/chapter/Format.svelte +21 -16
  38. package/dist/components/chapter/Format.svelte.d.ts +2 -2
  39. package/dist/components/chapter/InlineCode.svelte.d.ts +2 -2
  40. package/dist/components/chapter/Label.svelte.d.ts +2 -2
  41. package/dist/components/chapter/LineBreak.svelte +6 -0
  42. package/dist/components/chapter/LineBreak.svelte.d.ts +17 -0
  43. package/dist/components/chapter/Link.svelte.d.ts +2 -2
  44. package/dist/components/chapter/List.svelte.d.ts +2 -2
  45. package/dist/components/chapter/Marginal.svelte +5 -4
  46. package/dist/components/chapter/Marginal.svelte.d.ts +2 -2
  47. package/dist/components/chapter/Paragraph.svelte.d.ts +2 -2
  48. package/dist/components/chapter/Positioned.svelte.d.ts +2 -2
  49. package/dist/components/chapter/Problem.svelte.d.ts +2 -2
  50. package/dist/components/chapter/Python.svelte.d.ts +2 -2
  51. package/dist/components/chapter/Quote.svelte.d.ts +2 -2
  52. package/dist/components/chapter/Rule.svelte +2 -2
  53. package/dist/components/chapter/Rule.svelte.d.ts +2 -2
  54. package/dist/components/chapter/Table.svelte.d.ts +2 -2
  55. package/dist/components/chapter/Text.svelte.d.ts +2 -2
  56. package/dist/components/controls/DarkToggle.svelte.d.ts +2 -2
  57. package/dist/components/editor/BookishEditor.svelte +22 -22
  58. package/dist/components/editor/BookishEditor.svelte.d.ts +2 -2
  59. package/dist/components/editor/CalloutEditor.svelte.d.ts +2 -2
  60. package/dist/components/editor/CaptionedCodeEditor.svelte.d.ts +2 -2
  61. package/dist/components/editor/CaretContext.d.ts +1 -1
  62. package/dist/components/editor/CaretView.svelte +8 -3
  63. package/dist/components/editor/CaretView.svelte.d.ts +2 -2
  64. package/dist/components/editor/CitationsEditor.svelte.d.ts +2 -2
  65. package/dist/components/editor/Commands.js +109 -43
  66. package/dist/components/editor/ConfirmButton.svelte +7 -1
  67. package/dist/components/editor/ConfirmButton.svelte.d.ts +2 -2
  68. package/dist/components/editor/DefinitionEditor.svelte.d.ts +2 -2
  69. package/dist/components/editor/EmbedEditor.svelte.d.ts +2 -2
  70. package/dist/components/editor/Icon.svelte.d.ts +2 -2
  71. package/dist/components/editor/ImageChooser.svelte +2 -1
  72. package/dist/components/editor/ImageChooser.svelte.d.ts +2 -2
  73. package/dist/components/editor/ImageThumbnail.svelte +11 -7
  74. package/dist/components/editor/ImageThumbnail.svelte.d.ts +2 -2
  75. package/dist/components/editor/InlineCodeEditor.svelte.d.ts +2 -2
  76. package/dist/components/editor/LabelEditor.svelte.d.ts +2 -2
  77. package/dist/components/editor/LanguageEditor.svelte.d.ts +2 -2
  78. package/dist/components/editor/LinkEditor.svelte +4 -3
  79. package/dist/components/editor/LinkEditor.svelte.d.ts +2 -2
  80. package/dist/components/editor/Note.svelte.d.ts +2 -2
  81. package/dist/components/editor/Permissions.svelte.d.ts +2 -2
  82. package/dist/components/editor/PositionEditor.svelte.d.ts +2 -2
  83. package/dist/components/editor/QuoteEditor.svelte.d.ts +2 -2
  84. package/dist/components/editor/Switch.svelte.d.ts +2 -2
  85. package/dist/components/editor/TableEditor.svelte.d.ts +2 -2
  86. package/dist/components/editor/TextEditor.svelte.d.ts +2 -2
  87. package/dist/components/editor/Toggle.svelte.d.ts +2 -2
  88. package/dist/components/editor/Toolbar.svelte +2 -1
  89. package/dist/components/editor/Toolbar.svelte.d.ts +2 -2
  90. package/dist/components/editor/ToolbarGroup.svelte.d.ts +2 -2
  91. package/dist/components/editor/ToolbarSpacer.svelte.d.ts +2 -2
  92. package/dist/components/editor/URLEditor.svelte.d.ts +2 -2
  93. package/dist/components/page/Acknowledgements.svelte.d.ts +2 -2
  94. package/dist/components/page/Authors.svelte.d.ts +2 -2
  95. package/dist/components/page/BookLoader.svelte.d.ts +2 -2
  96. package/dist/components/page/BulkReferenceEditor.svelte +1 -1
  97. package/dist/components/page/BulkReferenceEditor.svelte.d.ts +2 -2
  98. package/dist/components/page/Chapter.svelte +4 -5
  99. package/dist/components/page/Chapter.svelte.d.ts +2 -2
  100. package/dist/components/page/ChapterNumber.svelte.d.ts +2 -2
  101. package/dist/components/page/ChapterTitle.svelte.d.ts +2 -2
  102. package/dist/components/page/DefinitionView.svelte.d.ts +2 -2
  103. package/dist/components/page/Description.svelte.d.ts +2 -2
  104. package/dist/components/page/Edition.svelte.d.ts +2 -2
  105. package/dist/components/page/EditionLoader.svelte +9 -18
  106. package/dist/components/page/EditionLoader.svelte.d.ts +2 -2
  107. package/dist/components/page/Editions.svelte +4 -3
  108. package/dist/components/page/Editions.svelte.d.ts +2 -2
  109. package/dist/components/page/Glossary.svelte +8 -2
  110. package/dist/components/page/Glossary.svelte.d.ts +2 -2
  111. package/dist/components/page/Header.svelte.d.ts +2 -2
  112. package/dist/components/page/Index.svelte +5 -2
  113. package/dist/components/page/Index.svelte.d.ts +2 -2
  114. package/dist/components/page/Instructions.svelte.d.ts +2 -2
  115. package/dist/components/page/License.svelte.d.ts +2 -2
  116. package/dist/components/page/Loading.svelte.d.ts +2 -2
  117. package/dist/components/page/Media.svelte +5 -2
  118. package/dist/components/page/Media.svelte.d.ts +2 -2
  119. package/dist/components/page/MediaPreview.svelte.d.ts +2 -2
  120. package/dist/components/page/Muted.svelte.d.ts +2 -2
  121. package/dist/components/page/Outline.svelte.d.ts +2 -2
  122. package/dist/components/page/Page.svelte.d.ts +2 -2
  123. package/dist/components/page/PageHeader.svelte.d.ts +2 -2
  124. package/dist/components/page/PageParagraph.svelte.d.ts +2 -2
  125. package/dist/components/page/PossibleChapter.svelte.d.ts +2 -2
  126. package/dist/components/page/PossibleReference.svelte.d.ts +2 -2
  127. package/dist/components/page/Print.svelte.d.ts +2 -2
  128. package/dist/components/page/Publish.svelte.d.ts +2 -2
  129. package/dist/components/page/Reference.svelte +24 -15
  130. package/dist/components/page/Reference.svelte.d.ts +2 -2
  131. package/dist/components/page/References.svelte +6 -2
  132. package/dist/components/page/References.svelte.d.ts +2 -2
  133. package/dist/components/page/Rows.svelte.d.ts +2 -2
  134. package/dist/components/page/Search.svelte +5 -3
  135. package/dist/components/page/Search.svelte.d.ts +2 -2
  136. package/dist/components/page/Status.svelte.d.ts +2 -2
  137. package/dist/components/page/SubdomainEditor.svelte +4 -3
  138. package/dist/components/page/SubdomainEditor.svelte.d.ts +2 -2
  139. package/dist/components/page/TableOfContents.svelte +9 -3
  140. package/dist/components/page/TableOfContents.svelte.d.ts +2 -2
  141. package/dist/components/page/TableOfContentsImage.svelte.d.ts +2 -2
  142. package/dist/components/page/TableOfContentsRow.svelte +4 -2
  143. package/dist/components/page/TableOfContentsRow.svelte.d.ts +2 -2
  144. package/dist/components/page/ThemeEditor.svelte.d.ts +2 -2
  145. package/dist/components/page/ThemeEditorPreview.svelte.d.ts +2 -2
  146. package/dist/components/page/ThemeSetEditor.svelte.d.ts +2 -2
  147. package/dist/components/page/ThemeVariableEditor.svelte.d.ts +2 -2
  148. package/dist/components/page/Title.svelte.d.ts +2 -2
  149. package/dist/components/page/Unknown.svelte.d.ts +2 -2
  150. package/dist/models/CRUD.d.ts +1 -2
  151. package/dist/models/CRUD.js +3 -5
  152. package/dist/models/book/BookMedia.js +8 -3
  153. package/dist/models/book/Chapter.d.ts +1 -1
  154. package/dist/models/book/Chapter.js +2 -3
  155. package/dist/models/book/Edition.d.ts +7 -5
  156. package/dist/models/book/Edition.js +10 -15
  157. package/dist/models/chapter/Caret.d.ts +2 -1
  158. package/dist/models/chapter/Caret.js +20 -6
  159. package/dist/models/chapter/FormatNode.d.ts +4 -1
  160. package/dist/models/chapter/FormatNode.js +53 -9
  161. package/dist/models/chapter/LineBreakNode.d.ts +15 -0
  162. package/dist/models/chapter/LineBreakNode.js +37 -0
  163. package/dist/models/chapter/Parser.d.ts +2 -0
  164. package/dist/models/chapter/Parser.js +12 -2
  165. package/dist/models/chapter/Symbols.d.ts +1 -0
  166. package/dist/models/chapter/Symbols.js +1 -0
  167. package/dist/util/mineReference.js +8 -6
  168. package/package.json +22 -19
@@ -154,10 +154,11 @@ function handleKeyPress(event) {
154
154
  <section
155
155
  class="bookish-editor-toolbar"
156
156
  bind:this={element}
157
+ role="button"
157
158
  on:keypress={handleKeyPress}
158
159
  on:keydown={handleKeyPress}
159
160
  on:mousedown|stopPropagation={() => element?.focus()}
160
- tabIndex="0"
161
+ tabindex="0"
161
162
  transition:slide={{ duration: 200 }}
162
163
  >
163
164
  {#if context && categories}
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  import type CaretState from './CaretState';
3
3
  declare const __propDef: {
4
4
  props: {
@@ -12,6 +12,6 @@ declare const __propDef: {
12
12
  export type ToolbarProps = typeof __propDef.props;
13
13
  export type ToolbarEvents = typeof __propDef.events;
14
14
  export type ToolbarSlots = typeof __propDef.slots;
15
- export default class Toolbar extends SvelteComponentTyped<ToolbarProps, ToolbarEvents, ToolbarSlots> {
15
+ export default class Toolbar extends SvelteComponent<ToolbarProps, ToolbarEvents, ToolbarSlots> {
16
16
  }
17
17
  export {};
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  icon: string;
@@ -13,6 +13,6 @@ declare const __propDef: {
13
13
  export type ToolbarGroupProps = typeof __propDef.props;
14
14
  export type ToolbarGroupEvents = typeof __propDef.events;
15
15
  export type ToolbarGroupSlots = typeof __propDef.slots;
16
- export default class ToolbarGroup extends SvelteComponentTyped<ToolbarGroupProps, ToolbarGroupEvents, ToolbarGroupSlots> {
16
+ export default class ToolbarGroup extends SvelteComponent<ToolbarGroupProps, ToolbarGroupEvents, ToolbarGroupSlots> {
17
17
  }
18
18
  export {};
@@ -1,7 +1,7 @@
1
1
  /** @typedef {typeof __propDef.props} ToolbarSpacerProps */
2
2
  /** @typedef {typeof __propDef.events} ToolbarSpacerEvents */
3
3
  /** @typedef {typeof __propDef.slots} ToolbarSpacerSlots */
4
- export default class ToolbarSpacer extends SvelteComponentTyped<{
4
+ export default class ToolbarSpacer extends SvelteComponent<{
5
5
  [x: string]: never;
6
6
  }, {
7
7
  [evt: string]: CustomEvent<any>;
@@ -10,7 +10,7 @@ export default class ToolbarSpacer extends SvelteComponentTyped<{
10
10
  export type ToolbarSpacerProps = typeof __propDef.props;
11
11
  export type ToolbarSpacerEvents = typeof __propDef.events;
12
12
  export type ToolbarSpacerSlots = typeof __propDef.slots;
13
- import { SvelteComponentTyped } from "svelte";
13
+ import { SvelteComponent } from "svelte";
14
14
  declare const __propDef: {
15
15
  props: {
16
16
  [x: string]: never;
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  url: string;
@@ -13,6 +13,6 @@ declare const __propDef: {
13
13
  export type UrlEditorProps = typeof __propDef.props;
14
14
  export type UrlEditorEvents = typeof __propDef.events;
15
15
  export type UrlEditorSlots = typeof __propDef.slots;
16
- export default class UrlEditor extends SvelteComponentTyped<UrlEditorProps, UrlEditorEvents, UrlEditorSlots> {
16
+ export default class UrlEditor extends SvelteComponent<UrlEditorProps, UrlEditorEvents, UrlEditorSlots> {
17
17
  }
18
18
  export {};
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: Record<string, never>;
4
4
  events: {
@@ -9,6 +9,6 @@ declare const __propDef: {
9
9
  export type AcknowledgementsProps = typeof __propDef.props;
10
10
  export type AcknowledgementsEvents = typeof __propDef.events;
11
11
  export type AcknowledgementsSlots = typeof __propDef.slots;
12
- export default class Acknowledgements extends SvelteComponentTyped<AcknowledgementsProps, AcknowledgementsEvents, AcknowledgementsSlots> {
12
+ export default class Acknowledgements extends SvelteComponent<AcknowledgementsProps, AcknowledgementsEvents, AcknowledgementsSlots> {
13
13
  }
14
14
  export {};
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  editable: boolean;
@@ -16,6 +16,6 @@ declare const __propDef: {
16
16
  export type AuthorsProps = typeof __propDef.props;
17
17
  export type AuthorsEvents = typeof __propDef.events;
18
18
  export type AuthorsSlots = typeof __propDef.slots;
19
- export default class Authors extends SvelteComponentTyped<AuthorsProps, AuthorsEvents, AuthorsSlots> {
19
+ export default class Authors extends SvelteComponent<AuthorsProps, AuthorsEvents, AuthorsSlots> {
20
20
  }
21
21
  export {};
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: Record<string, never>;
4
4
  events: {
@@ -11,6 +11,6 @@ declare const __propDef: {
11
11
  export type BookLoaderProps = typeof __propDef.props;
12
12
  export type BookLoaderEvents = typeof __propDef.events;
13
13
  export type BookLoaderSlots = typeof __propDef.slots;
14
- export default class BookLoader extends SvelteComponentTyped<BookLoaderProps, BookLoaderEvents, BookLoaderSlots> {
14
+ export default class BookLoader extends SvelteComponent<BookLoaderProps, BookLoaderEvents, BookLoaderSlots> {
15
15
  }
16
16
  export {};
@@ -39,7 +39,7 @@ function handleEmptyAdd() {
39
39
  command={handleBulkAdd}>+ bulk references</Button
40
40
  >
41
41
  <Button tooltip="add empty reference" command={handleEmptyAdd}
42
- >+ reference</Button
42
+ >+ empty reference</Button
43
43
  >
44
44
 
45
45
  <style>
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: Record<string, never>;
4
4
  events: {
@@ -9,6 +9,6 @@ declare const __propDef: {
9
9
  export type BulkReferenceEditorProps = typeof __propDef.props;
10
10
  export type BulkReferenceEditorEvents = typeof __propDef.events;
11
11
  export type BulkReferenceEditorSlots = typeof __propDef.slots;
12
- export default class BulkReferenceEditor extends SvelteComponentTyped<BulkReferenceEditorProps, BulkReferenceEditorEvents, BulkReferenceEditorSlots> {
12
+ export default class BulkReferenceEditor extends SvelteComponent<BulkReferenceEditorProps, BulkReferenceEditorEvents, BulkReferenceEditorSlots> {
13
13
  }
14
14
  export {};
@@ -213,8 +213,8 @@ let editable = isBookEditable() ||
213
213
  <Outline
214
214
  slot="outline"
215
215
  collapse={$marginal !== undefined}
216
- previous={$edition.getPreviousChapterID(chapterID)}
217
- next={$edition.getNextChapterID(chapterID)}
216
+ previous={$edition.getPreviousChapterID(chapterID, editable)}
217
+ next={$edition.getNextChapterID(chapterID, editable)}
218
218
  listener={(expanded) => {
219
219
  // If the outline is being expanded, hide the marginal, otherwise leave it alone.
220
220
  if (expanded) marginal.set(undefined);
@@ -331,9 +331,8 @@ let editable = isBookEditable() ||
331
331
  {:else}
332
332
  <ChapterBody node={chapterAST} />
333
333
  {/if}
334
- {:else}
335
- <span>Loading...</span>
336
- {/if}
334
+ {:else if $edition === undefined}Loading...{:else}Unable to load
335
+ chapter text{/if}
337
336
  </section>
338
337
 
339
338
  {#if citations && citations.size > 0}
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  import type ChapterModel from '../../models/book/Chapter';
3
3
  declare const __propDef: {
4
4
  props: {
@@ -13,6 +13,6 @@ declare const __propDef: {
13
13
  export type ChapterProps = typeof __propDef.props;
14
14
  export type ChapterEvents = typeof __propDef.events;
15
15
  export type ChapterSlots = typeof __propDef.slots;
16
- export default class Chapter extends SvelteComponentTyped<ChapterProps, ChapterEvents, ChapterSlots> {
16
+ export default class Chapter extends SvelteComponent<ChapterProps, ChapterEvents, ChapterSlots> {
17
17
  }
18
18
  export {};
@@ -1,7 +1,7 @@
1
1
  /** @typedef {typeof __propDef.props} ChapterNumberProps */
2
2
  /** @typedef {typeof __propDef.events} ChapterNumberEvents */
3
3
  /** @typedef {typeof __propDef.slots} ChapterNumberSlots */
4
- export default class ChapterNumber extends SvelteComponentTyped<{
4
+ export default class ChapterNumber extends SvelteComponent<{
5
5
  [x: string]: never;
6
6
  }, {
7
7
  [evt: string]: CustomEvent<any>;
@@ -12,7 +12,7 @@ export default class ChapterNumber extends SvelteComponentTyped<{
12
12
  export type ChapterNumberProps = typeof __propDef.props;
13
13
  export type ChapterNumberEvents = typeof __propDef.events;
14
14
  export type ChapterNumberSlots = typeof __propDef.slots;
15
- import { SvelteComponentTyped } from "svelte";
15
+ import { SvelteComponent } from "svelte";
16
16
  declare const __propDef: {
17
17
  props: {
18
18
  [x: string]: never;
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  link?: string | undefined;
@@ -13,6 +13,6 @@ declare const __propDef: {
13
13
  export type ChapterTitleProps = typeof __propDef.props;
14
14
  export type ChapterTitleEvents = typeof __propDef.events;
15
15
  export type ChapterTitleSlots = typeof __propDef.slots;
16
- export default class ChapterTitle extends SvelteComponentTyped<ChapterTitleProps, ChapterTitleEvents, ChapterTitleSlots> {
16
+ export default class ChapterTitle extends SvelteComponent<ChapterTitleProps, ChapterTitleEvents, ChapterTitleSlots> {
17
17
  }
18
18
  export {};
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  import type Definition from '../../models/book/Definition';
3
3
  declare const __propDef: {
4
4
  props: {
@@ -13,6 +13,6 @@ declare const __propDef: {
13
13
  export type DefinitionViewProps = typeof __propDef.props;
14
14
  export type DefinitionViewEvents = typeof __propDef.events;
15
15
  export type DefinitionViewSlots = typeof __propDef.slots;
16
- export default class DefinitionView extends SvelteComponentTyped<DefinitionViewProps, DefinitionViewEvents, DefinitionViewSlots> {
16
+ export default class DefinitionView extends SvelteComponent<DefinitionViewProps, DefinitionViewEvents, DefinitionViewSlots> {
17
17
  }
18
18
  export {};
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: Record<string, never>;
4
4
  events: {
@@ -9,6 +9,6 @@ declare const __propDef: {
9
9
  export type DescriptionProps = typeof __propDef.props;
10
10
  export type DescriptionEvents = typeof __propDef.events;
11
11
  export type DescriptionSlots = typeof __propDef.slots;
12
- export default class Description extends SvelteComponentTyped<DescriptionProps, DescriptionEvents, DescriptionSlots> {
12
+ export default class Description extends SvelteComponent<DescriptionProps, DescriptionEvents, DescriptionSlots> {
13
13
  }
14
14
  export {};
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  import type EditionModel from '../../models/book/Edition';
3
3
  declare const __propDef: {
4
4
  props: {
@@ -15,6 +15,6 @@ declare const __propDef: {
15
15
  export type EditionProps = typeof __propDef.props;
16
16
  export type EditionEvents = typeof __propDef.events;
17
17
  export type EditionSlots = typeof __propDef.slots;
18
- export default class Edition extends SvelteComponentTyped<EditionProps, EditionEvents, EditionSlots> {
18
+ export default class Edition extends SvelteComponent<EditionProps, EditionEvents, EditionSlots> {
19
19
  }
20
20
  export {};
@@ -4,12 +4,13 @@ import Feedback from '../app/Feedback.svelte';
4
4
  import { getBook, getEdition, getUser, getChapterText, } from './Contexts';
5
5
  import { onDestroy } from 'svelte';
6
6
  import { page } from '$app/stores';
7
- import { deleteChapterText, listenToChapters, listenToEdition, } from '../../models/CRUD';
7
+ import { listenToChapters, listenToEdition } from '../../models/CRUD';
8
8
  export let write;
9
9
  let auth = getUser();
10
10
  let book = getBook();
11
11
  let edition = getEdition();
12
- let chapterText = getChapterText();
12
+ /** Mapping from Firestore docuemnt IDs to chapter text */
13
+ let chapterText = new Map();
13
14
  let editionUnsub = undefined;
14
15
  let chaptersUnsub = undefined;
15
16
  let error = undefined;
@@ -54,9 +55,7 @@ function listen() {
54
55
  editionUnsub = listenToEdition($book.getID(), editionID, (ed) => {
55
56
  if (ed) {
56
57
  // Before setting the new edition, augmented it with the chapter text.
57
- edition.set($chapterText
58
- ? ed.withChapterText($chapterText)
59
- : ed);
58
+ edition.set(ed.withChapterText(chapterText));
60
59
  }
61
60
  else {
62
61
  edition.set(undefined);
@@ -64,20 +63,12 @@ function listen() {
64
63
  }
65
64
  });
66
65
  chaptersUnsub = listenToChapters($book.getID(), editionID, (chapters) => {
67
- // Update the chapter text store.
68
- chapterText.set(chapters);
66
+ // Update the text of the chapters we received.
67
+ for (const [ref, text] of chapters)
68
+ chapterText.set(ref.id, text);
69
69
  // Update the chapter text in the current edition.
70
- if ($edition) {
71
- const newEdition = $edition.withChapterText(chapters);
72
- if (newEdition !== $edition)
73
- edition.set(newEdition);
74
- // Get all the chapters in the updated chapter list and
75
- // delete the ones not referenced by the edition.
76
- chapters
77
- .filter(([ref]) => $edition &&
78
- !$edition.hasChapterRefID(ref.id))
79
- .forEach(([ref]) => deleteChapterText(ref));
80
- }
70
+ if ($edition)
71
+ edition.set($edition.withChapterText(chapterText));
81
72
  });
82
73
  }
83
74
  }
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  write: boolean;
@@ -13,6 +13,6 @@ declare const __propDef: {
13
13
  export type EditionLoaderProps = typeof __propDef.props;
14
14
  export type EditionLoaderEvents = typeof __propDef.events;
15
15
  export type EditionLoaderSlots = typeof __propDef.slots;
16
- export default class EditionLoader extends SvelteComponentTyped<EditionLoaderProps, EditionLoaderEvents, EditionLoaderSlots> {
16
+ export default class EditionLoader extends SvelteComponent<EditionLoaderProps, EditionLoaderEvents, EditionLoaderSlots> {
17
17
  }
18
18
  export {};
@@ -1,7 +1,7 @@
1
1
  <script>import { createNewEdition } from '../../models/CRUD';
2
2
  import Instructions from './Instructions.svelte';
3
3
  import Note from '../editor/Note.svelte';
4
- import { getBook, isBookEditable } from './Contexts';
4
+ import { getBook, getUser, isBookEditable } from './Contexts';
5
5
  import Button from '../app/Button.svelte';
6
6
  import Link from '../app/Link.svelte';
7
7
  import Format from '../chapter/Format.svelte';
@@ -10,6 +10,7 @@ import Permissions from '../editor/Permissions.svelte';
10
10
  export let editors = true;
11
11
  let book = getBook();
12
12
  let editable = isBookEditable();
13
+ let user = getUser();
13
14
  $: editions = $book?.getEditions();
14
15
  $: latestPublishedID = $book?.getLatestPublishedEditionID();
15
16
  async function handleDraftEdition() {
@@ -48,7 +49,7 @@ async function handleDraftEdition() {
48
49
  ? 'rd'
49
50
  : 'th')}
50
51
 
51
- {#if $book && (editable || edition.published)}
52
+ {#if $book && (editable || edition.published || ($user?.user?.uid && edition.editionuids.includes($user.user.uid)))}
52
53
  <section class="edition">
53
54
  <h3
54
55
  >{editionLabel}
@@ -68,7 +69,7 @@ async function handleDraftEdition() {
68
69
  }`}
69
70
  external>read</Link
70
71
  >{/if}
71
- {#if editable}
72
+ {#if editable || ($user?.user?.uid && edition.editionuids.includes($user?.user.uid))}
72
73
  &nbsp;
73
74
  <Link
74
75
  to={`/write/${$book.getID()}/${
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  editors?: boolean | undefined;
@@ -11,6 +11,6 @@ declare const __propDef: {
11
11
  export type EditionsProps = typeof __propDef.props;
12
12
  export type EditionsEvents = typeof __propDef.events;
13
13
  export type EditionsSlots = typeof __propDef.slots;
14
- export default class Editions extends SvelteComponentTyped<EditionsProps, EditionsEvents, EditionsSlots> {
14
+ export default class Editions extends SvelteComponent<EditionsProps, EditionsEvents, EditionsSlots> {
15
15
  }
16
16
  export {};
@@ -50,8 +50,14 @@ function addEmptyDefinition() {
50
50
  >
51
51
  <Outline
52
52
  slot="outline"
53
- previous={$edition.getPreviousChapterID(ChapterIDs.GlossaryID)}
54
- next={$edition.getNextChapterID(ChapterIDs.GlossaryID)}
53
+ previous={$edition.getPreviousChapterID(
54
+ ChapterIDs.GlossaryID,
55
+ editable
56
+ )}
57
+ next={$edition.getNextChapterID(
58
+ ChapterIDs.GlossaryID,
59
+ editable
60
+ )}
55
61
  />
56
62
  </Header>
57
63
  {#if editable}
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: Record<string, never>;
4
4
  events: {
@@ -9,6 +9,6 @@ declare const __propDef: {
9
9
  export type GlossaryProps = typeof __propDef.props;
10
10
  export type GlossaryEvents = typeof __propDef.events;
11
11
  export type GlossarySlots = typeof __propDef.slots;
12
- export default class Glossary extends SvelteComponentTyped<GlossaryProps, GlossaryEvents, GlossarySlots> {
12
+ export default class Glossary extends SvelteComponent<GlossaryProps, GlossaryEvents, GlossarySlots> {
13
13
  }
14
14
  export {};
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  /** True if an author should be able to edit this header. */ editable: boolean;
@@ -24,6 +24,6 @@ declare const __propDef: {
24
24
  export type HeaderProps = typeof __propDef.props;
25
25
  export type HeaderEvents = typeof __propDef.events;
26
26
  export type HeaderSlots = typeof __propDef.slots;
27
- export default class Header extends SvelteComponentTyped<HeaderProps, HeaderEvents, HeaderSlots> {
27
+ export default class Header extends SvelteComponent<HeaderProps, HeaderEvents, HeaderSlots> {
28
28
  }
29
29
  export {};
@@ -57,8 +57,11 @@ $: {
57
57
  >
58
58
  <Outline
59
59
  slot="outline"
60
- previous={$edition.getPreviousChapterID(ChapterIDs.IndexID)}
61
- next={$edition.getNextChapterID(ChapterIDs.IndexID)}
60
+ previous={$edition.getPreviousChapterID(
61
+ ChapterIDs.IndexID,
62
+ editable
63
+ )}
64
+ next={$edition.getNextChapterID(ChapterIDs.IndexID, editable)}
62
65
  />
63
66
  </Header>
64
67
 
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: Record<string, never>;
4
4
  events: {
@@ -9,6 +9,6 @@ declare const __propDef: {
9
9
  export type IndexProps = typeof __propDef.props;
10
10
  export type IndexEvents = typeof __propDef.events;
11
11
  export type IndexSlots = typeof __propDef.slots;
12
- export default class Index extends SvelteComponentTyped<IndexProps, IndexEvents, IndexSlots> {
12
+ export default class Index extends SvelteComponent<IndexProps, IndexEvents, IndexSlots> {
13
13
  }
14
14
  export {};
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  editable: boolean;
@@ -13,6 +13,6 @@ declare const __propDef: {
13
13
  export type InstructionsProps = typeof __propDef.props;
14
14
  export type InstructionsEvents = typeof __propDef.events;
15
15
  export type InstructionsSlots = typeof __propDef.slots;
16
- export default class Instructions extends SvelteComponentTyped<InstructionsProps, InstructionsEvents, InstructionsSlots> {
16
+ export default class Instructions extends SvelteComponent<InstructionsProps, InstructionsEvents, InstructionsSlots> {
17
17
  }
18
18
  export {};
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: Record<string, never>;
4
4
  events: {
@@ -9,6 +9,6 @@ declare const __propDef: {
9
9
  export type LicenseProps = typeof __propDef.props;
10
10
  export type LicenseEvents = typeof __propDef.events;
11
11
  export type LicenseSlots = typeof __propDef.slots;
12
- export default class License extends SvelteComponentTyped<LicenseProps, LicenseEvents, LicenseSlots> {
12
+ export default class License extends SvelteComponent<LicenseProps, LicenseEvents, LicenseSlots> {
13
13
  }
14
14
  export {};
@@ -1,7 +1,7 @@
1
1
  /** @typedef {typeof __propDef.props} LoadingProps */
2
2
  /** @typedef {typeof __propDef.events} LoadingEvents */
3
3
  /** @typedef {typeof __propDef.slots} LoadingSlots */
4
- export default class Loading extends SvelteComponentTyped<{
4
+ export default class Loading extends SvelteComponent<{
5
5
  [x: string]: never;
6
6
  }, {
7
7
  [evt: string]: CustomEvent<any>;
@@ -10,7 +10,7 @@ export default class Loading extends SvelteComponentTyped<{
10
10
  export type LoadingProps = typeof __propDef.props;
11
11
  export type LoadingEvents = typeof __propDef.events;
12
12
  export type LoadingSlots = typeof __propDef.slots;
13
- import { SvelteComponentTyped } from "svelte";
13
+ import { SvelteComponent } from "svelte";
14
14
  declare const __propDef: {
15
15
  props: {
16
16
  [x: string]: never;
@@ -43,8 +43,11 @@ $: unused = images?.filter((image) => !embeds.some((embed) => image.url.includes
43
43
  >
44
44
  <Outline
45
45
  slot="outline"
46
- previous={$edition.getPreviousChapterID(ChapterIDs.MediaID)}
47
- next={$edition.getNextChapterID(ChapterIDs.MediaID)}
46
+ previous={$edition.getPreviousChapterID(
47
+ ChapterIDs.MediaID,
48
+ editable
49
+ )}
50
+ next={$edition.getNextChapterID(ChapterIDs.MediaID, editable)}
48
51
  />
49
52
  </Header>
50
53
  <Instructions {editable}>
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: Record<string, never>;
4
4
  events: {
@@ -9,6 +9,6 @@ declare const __propDef: {
9
9
  export type MediaProps = typeof __propDef.props;
10
10
  export type MediaEvents = typeof __propDef.events;
11
11
  export type MediaSlots = typeof __propDef.slots;
12
- export default class Media extends SvelteComponentTyped<MediaProps, MediaEvents, MediaSlots> {
12
+ export default class Media extends SvelteComponent<MediaProps, MediaEvents, MediaSlots> {
13
13
  }
14
14
  export {};
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  url: string;
@@ -15,6 +15,6 @@ declare const __propDef: {
15
15
  export type MediaPreviewProps = typeof __propDef.props;
16
16
  export type MediaPreviewEvents = typeof __propDef.events;
17
17
  export type MediaPreviewSlots = typeof __propDef.slots;
18
- export default class MediaPreview extends SvelteComponentTyped<MediaPreviewProps, MediaPreviewEvents, MediaPreviewSlots> {
18
+ export default class MediaPreview extends SvelteComponent<MediaPreviewProps, MediaPreviewEvents, MediaPreviewSlots> {
19
19
  }
20
20
  export {};
@@ -1,7 +1,7 @@
1
1
  /** @typedef {typeof __propDef.props} MutedProps */
2
2
  /** @typedef {typeof __propDef.events} MutedEvents */
3
3
  /** @typedef {typeof __propDef.slots} MutedSlots */
4
- export default class Muted extends SvelteComponentTyped<{
4
+ export default class Muted extends SvelteComponent<{
5
5
  [x: string]: never;
6
6
  }, {
7
7
  [evt: string]: CustomEvent<any>;
@@ -12,7 +12,7 @@ export default class Muted extends SvelteComponentTyped<{
12
12
  export type MutedProps = typeof __propDef.props;
13
13
  export type MutedEvents = typeof __propDef.events;
14
14
  export type MutedSlots = typeof __propDef.slots;
15
- import { SvelteComponentTyped } from "svelte";
15
+ import { SvelteComponent } from "svelte";
16
16
  declare const __propDef: {
17
17
  props: {
18
18
  [x: string]: never;
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  previous: string | null;
@@ -14,6 +14,6 @@ declare const __propDef: {
14
14
  export type OutlineProps = typeof __propDef.props;
15
15
  export type OutlineEvents = typeof __propDef.events;
16
16
  export type OutlineSlots = typeof __propDef.slots;
17
- export default class Outline extends SvelteComponentTyped<OutlineProps, OutlineEvents, OutlineSlots> {
17
+ export default class Outline extends SvelteComponent<OutlineProps, OutlineEvents, OutlineSlots> {
18
18
  }
19
19
  export {};
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  title: string;
@@ -14,6 +14,6 @@ declare const __propDef: {
14
14
  export type PageProps = typeof __propDef.props;
15
15
  export type PageEvents = typeof __propDef.events;
16
16
  export type PageSlots = typeof __propDef.slots;
17
- export default class Page extends SvelteComponentTyped<PageProps, PageEvents, PageSlots> {
17
+ export default class Page extends SvelteComponent<PageProps, PageEvents, PageSlots> {
18
18
  }
19
19
  export {};
@@ -1,4 +1,4 @@
1
- import { SvelteComponentTyped } from "svelte";
1
+ import { SvelteComponent } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  id?: string | null | undefined;
@@ -13,6 +13,6 @@ declare const __propDef: {
13
13
  export type PageHeaderProps = typeof __propDef.props;
14
14
  export type PageHeaderEvents = typeof __propDef.events;
15
15
  export type PageHeaderSlots = typeof __propDef.slots;
16
- export default class PageHeader extends SvelteComponentTyped<PageHeaderProps, PageHeaderEvents, PageHeaderSlots> {
16
+ export default class PageHeader extends SvelteComponent<PageHeaderProps, PageHeaderEvents, PageHeaderSlots> {
17
17
  }
18
18
  export {};
@@ -1,7 +1,7 @@
1
1
  /** @typedef {typeof __propDef.props} PageParagraphProps */
2
2
  /** @typedef {typeof __propDef.events} PageParagraphEvents */
3
3
  /** @typedef {typeof __propDef.slots} PageParagraphSlots */
4
- export default class PageParagraph extends SvelteComponentTyped<{
4
+ export default class PageParagraph extends SvelteComponent<{
5
5
  [x: string]: never;
6
6
  }, {
7
7
  [evt: string]: CustomEvent<any>;
@@ -12,7 +12,7 @@ export default class PageParagraph extends SvelteComponentTyped<{
12
12
  export type PageParagraphProps = typeof __propDef.props;
13
13
  export type PageParagraphEvents = typeof __propDef.events;
14
14
  export type PageParagraphSlots = typeof __propDef.slots;
15
- import { SvelteComponentTyped } from "svelte";
15
+ import { SvelteComponent } from "svelte";
16
16
  declare const __propDef: {
17
17
  props: {
18
18
  [x: string]: never;