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