bookish-press 0.4.1 → 0.4.3
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 +3 -1
- package/components/Auth.svelte +27 -24
- package/components/Auth.svelte.d.ts +4 -4
- package/components/Authentication.d.ts +2 -2
- package/components/BookPreview.svelte +75 -59
- package/components/BookPreview.svelte.d.ts +5 -5
- package/components/External.svelte +1 -1
- package/components/External.svelte.d.ts +3 -3
- package/components/Link.svelte +49 -3
- package/components/Link.svelte.d.ts +3 -4
- package/components/app/BookList.svelte +19 -0
- package/components/app/BookList.svelte.d.ts +18 -0
- package/components/app/Button.svelte +49 -0
- package/components/app/Button.svelte.d.ts +22 -0
- package/components/app/Feedback.svelte +47 -0
- package/components/app/Feedback.svelte.d.ts +18 -0
- package/components/app/Head.svelte +15 -0
- package/components/app/Head.svelte.d.ts +18 -0
- package/components/app/Large.svelte +8 -0
- package/components/app/Large.svelte.d.ts +27 -0
- package/components/app/Lead.svelte +12 -0
- package/components/app/Lead.svelte.d.ts +27 -0
- package/components/app/Link.svelte +24 -0
- package/components/app/Link.svelte.d.ts +20 -0
- package/components/app/Options.svelte +24 -0
- package/components/app/Options.svelte.d.ts +19 -0
- package/components/app/Paragraph.svelte +20 -0
- package/components/app/Paragraph.svelte.d.ts +18 -0
- package/components/app/Section.svelte +12 -0
- package/components/app/Section.svelte.d.ts +27 -0
- package/components/app/Table.svelte +32 -0
- package/components/app/Table.svelte.d.ts +27 -0
- package/components/app/TextInput.svelte +38 -0
- package/components/app/TextInput.svelte.d.ts +22 -0
- package/components/chapter/Atom.svelte +20 -6
- package/components/chapter/Atom.svelte.d.ts +3 -3
- package/components/chapter/Block.svelte +26 -21
- package/components/chapter/Block.svelte.d.ts +4 -4
- package/components/chapter/Callout.svelte +38 -7
- package/components/chapter/Callout.svelte.d.ts +4 -4
- package/components/chapter/CaptionedCode.svelte +67 -24
- package/components/chapter/CaptionedCode.svelte.d.ts +4 -4
- package/components/chapter/ChapterBody.svelte +62 -9
- package/components/chapter/ChapterBody.svelte.d.ts +5 -4
- package/components/chapter/Citations.svelte +86 -20
- package/components/chapter/Citations.svelte.d.ts +4 -4
- package/components/chapter/Code.svelte +152 -21
- package/components/chapter/Code.svelte.d.ts +3 -3
- package/components/chapter/Comment.svelte +39 -17
- package/components/chapter/Comment.svelte.d.ts +3 -3
- package/components/chapter/Definition.svelte +52 -18
- package/components/chapter/Definition.svelte.d.ts +5 -8
- package/components/chapter/Embed.svelte +155 -67
- package/components/chapter/Embed.svelte.d.ts +6 -4
- package/components/chapter/ErrorMessage.svelte +7 -2
- package/components/chapter/ErrorMessage.svelte.d.ts +4 -4
- package/components/chapter/ExtendedPrism.d.ts +2 -0
- package/components/chapter/ExtendedPrism.js +69 -0
- package/components/chapter/Figure.svelte +90 -0
- package/components/chapter/Figure.svelte.d.ts +24 -0
- package/components/chapter/Footnote.svelte +75 -12
- package/components/chapter/Footnote.svelte.d.ts +4 -4
- package/components/chapter/Format.svelte +63 -38
- package/components/chapter/Format.svelte.d.ts +5 -4
- package/components/chapter/InlineCode.svelte +16 -6
- package/components/chapter/InlineCode.svelte.d.ts +4 -4
- package/components/chapter/Label.svelte +38 -9
- package/components/chapter/Label.svelte.d.ts +4 -4
- package/components/chapter/Link.svelte +24 -19
- package/components/chapter/Link.svelte.d.ts +4 -4
- package/components/chapter/List.svelte +75 -8
- package/components/chapter/List.svelte.d.ts +4 -4
- package/components/chapter/Marginal.svelte +169 -27
- package/components/chapter/Marginal.svelte.d.ts +6 -3
- package/components/chapter/Paragraph.svelte +79 -6
- package/components/chapter/Paragraph.svelte.d.ts +4 -4
- package/components/chapter/Positioned.svelte +33 -0
- package/components/chapter/Positioned.svelte.d.ts +19 -0
- package/components/chapter/Problem.svelte +15 -0
- package/components/chapter/Problem.svelte.d.ts +27 -0
- package/components/chapter/Python.svelte +68 -21
- package/components/chapter/Python.svelte.d.ts +4 -4
- package/components/chapter/Quote.svelte +64 -11
- package/components/chapter/Quote.svelte.d.ts +4 -4
- package/components/chapter/Rule.svelte +12 -1
- package/components/chapter/Rule.svelte.d.ts +4 -4
- package/components/chapter/Table.svelte +36 -25
- package/components/chapter/Table.svelte.d.ts +4 -4
- package/components/chapter/Text.svelte +61 -36
- package/components/chapter/Text.svelte.d.ts +5 -4
- package/components/editor/BookishEditor.svelte +373 -244
- package/components/editor/BookishEditor.svelte.d.ts +9 -6
- package/components/editor/CalloutEditor.svelte +5 -5
- package/components/editor/CalloutEditor.svelte.d.ts +4 -4
- package/components/editor/CaptionedCodeEditor.svelte +16 -12
- package/components/editor/CaptionedCodeEditor.svelte.d.ts +4 -4
- package/components/editor/CaretContext.d.ts +48 -16
- package/components/editor/CaretState.d.ts +16 -44
- package/components/editor/CaretUtilities.d.ts +2 -2
- package/components/editor/CaretView.svelte +82 -0
- package/components/editor/CaretView.svelte.d.ts +25 -0
- package/components/editor/CitationsEditor.svelte +36 -25
- package/components/editor/CitationsEditor.svelte.d.ts +4 -4
- package/components/editor/Clipboard.d.ts +2 -2
- package/components/editor/Command.d.ts +13 -12
- package/components/editor/Commands.d.ts +1 -1
- package/components/editor/Commands.js +1114 -571
- package/components/editor/ConfirmButton.svelte +18 -12
- package/components/editor/ConfirmButton.svelte.d.ts +5 -4
- package/components/editor/DefinitionEditor.svelte +29 -21
- package/components/editor/DefinitionEditor.svelte.d.ts +4 -4
- package/components/editor/EmbedEditor.svelte +93 -43
- package/components/editor/EmbedEditor.svelte.d.ts +3 -3
- package/components/editor/Icon.svelte +17 -0
- package/components/editor/Icon.svelte.d.ts +16 -0
- package/components/editor/ImageChooser.svelte +53 -34
- package/components/editor/ImageChooser.svelte.d.ts +3 -3
- package/components/editor/InlineCodeEditor.svelte +7 -4
- package/components/editor/InlineCodeEditor.svelte.d.ts +4 -4
- package/components/editor/LabelEditor.svelte +20 -11
- package/components/editor/LabelEditor.svelte.d.ts +4 -4
- package/components/editor/LanguageEditor.svelte +10 -7
- package/components/editor/LanguageEditor.svelte.d.ts +3 -3
- package/components/editor/LinkEditor.svelte +64 -39
- package/components/editor/LinkEditor.svelte.d.ts +4 -4
- package/components/editor/Note.svelte +4 -3
- package/components/editor/Note.svelte.d.ts +6 -2
- package/components/editor/Permissions.svelte +95 -0
- package/components/editor/Permissions.svelte.d.ts +20 -0
- package/components/editor/PositionEditor.svelte +9 -6
- package/components/editor/PositionEditor.svelte.d.ts +4 -4
- package/components/editor/QuoteEditor.svelte +7 -2
- package/components/editor/QuoteEditor.svelte.d.ts +4 -4
- package/components/editor/Switch.svelte +55 -28
- package/components/editor/Switch.svelte.d.ts +4 -4
- package/components/editor/TableEditor.svelte +10 -0
- package/components/editor/TableEditor.svelte.d.ts +17 -0
- package/components/editor/TextEditor.svelte +83 -45
- package/components/editor/TextEditor.svelte.d.ts +5 -4
- package/components/editor/Toggle.svelte +11 -8
- package/components/editor/Toggle.svelte.d.ts +4 -4
- package/components/editor/Toolbar.svelte +191 -144
- package/components/editor/Toolbar.svelte.d.ts +5 -8
- package/components/editor/ToolbarGroup.svelte +17 -23
- package/components/editor/ToolbarGroup.svelte.d.ts +3 -4
- package/components/editor/ToolbarSpacer.svelte +8 -1
- package/components/editor/ToolbarSpacer.svelte.d.ts +6 -2
- package/components/editor/URLEditor.svelte +6 -8
- package/components/editor/URLEditor.svelte.d.ts +3 -3
- package/components/editor/UndoState.d.ts +3 -3
- package/components/editor/icons/annotate.svg +1 -0
- package/components/editor/icons/block.svg +1 -0
- package/components/editor/icons/bold.svg +1 -0
- package/components/editor/icons/bullets.svg +1 -0
- package/components/editor/icons/callout.svg +1 -0
- package/components/editor/icons/citation.svg +8 -0
- package/components/editor/icons/clear.svg +1 -0
- package/components/editor/icons/clipboard.svg +1 -0
- package/components/editor/icons/code.svg +1 -0
- package/components/editor/icons/columnafter.svg +1 -0
- package/components/editor/icons/columnbefore.svg +1 -0
- package/components/editor/icons/comment.svg +1 -0
- package/components/editor/icons/copy.svg +1 -0
- package/components/editor/icons/cut.svg +1 -0
- package/components/editor/icons/define.svg +7 -0
- package/components/editor/icons/deletecolumn.svg +1 -0
- package/components/editor/icons/deleterow.svg +1 -0
- package/components/editor/icons/footnote.svg +8 -0
- package/components/editor/icons/header1.svg +7 -0
- package/components/editor/icons/header2.svg +7 -0
- package/components/editor/icons/header3.svg +7 -0
- package/components/editor/icons/home.svg +1 -0
- package/components/editor/icons/indent.svg +1 -0
- package/components/editor/icons/italic.svg +1 -0
- package/components/editor/icons/label.svg +1 -0
- package/components/editor/icons/left.svg +1 -0
- package/components/editor/icons/level.svg +1 -0
- package/components/editor/icons/link.svg +1 -0
- package/components/editor/icons/list.svg +1 -0
- package/components/editor/icons/media.svg +1 -0
- package/components/editor/icons/middle.svg +1 -0
- package/components/editor/icons/numbers.svg +10 -0
- package/components/editor/icons/paragraph.svg +1 -0
- package/components/editor/icons/paste.svg +10 -0
- package/components/editor/icons/quote.svg +1 -0
- package/components/editor/icons/redo.svg +1 -0
- package/components/editor/icons/right.svg +1 -0
- package/components/editor/icons/rowabove.svg +1 -0
- package/components/editor/icons/rowbelow.svg +1 -0
- package/components/editor/icons/rule.svg +1 -0
- package/components/editor/icons/sub.svg +1 -0
- package/components/editor/icons/super.svg +1 -0
- package/components/editor/icons/table.svg +1 -0
- package/components/editor/icons/text.svg +1 -0
- package/components/editor/icons/time.svg +1 -0
- package/components/editor/icons/undo.svg +1 -0
- package/components/editor/icons/unindent.svg +1 -0
- package/components/editor/icons/unlink.svg +1 -0
- package/components/page/Acknowledgements.svelte +35 -24
- package/components/page/Acknowledgements.svelte.d.ts +4 -4
- package/components/page/Authors.svelte +34 -17
- package/components/page/Authors.svelte.d.ts +7 -6
- package/components/page/BookLoader.svelte +59 -0
- package/components/page/BookLoader.svelte.d.ts +16 -0
- package/components/page/BulkReferenceEditor.svelte +54 -23
- package/components/page/BulkReferenceEditor.svelte.d.ts +4 -4
- package/components/page/Chapter.svelte +234 -143
- package/components/page/Chapter.svelte.d.ts +3 -3
- package/components/page/ChapterContext.d.ts +4 -4
- package/components/page/ChapterNumber.svelte +9 -0
- package/components/page/ChapterNumber.svelte.d.ts +27 -0
- package/components/page/ChapterTitle.svelte +16 -0
- package/components/page/ChapterTitle.svelte.d.ts +18 -0
- package/components/page/Contexts.d.ts +42 -22
- package/components/page/Contexts.js +129 -17
- package/components/page/DefinitionView.svelte +129 -90
- package/components/page/DefinitionView.svelte.d.ts +3 -3
- package/components/page/Description.svelte +31 -19
- package/components/page/Description.svelte.d.ts +4 -4
- package/components/page/Edition.svelte +135 -81
- package/components/page/Edition.svelte.d.ts +5 -6
- package/components/page/EditionLoader.svelte +99 -0
- package/components/page/EditionLoader.svelte.d.ts +18 -0
- package/components/page/Editions.svelte +106 -0
- package/components/page/Editions.svelte.d.ts +14 -0
- package/components/page/Glossary.svelte +65 -49
- package/components/page/Glossary.svelte.d.ts +4 -4
- package/components/page/Header.svelte +143 -56
- package/components/page/Header.svelte.d.ts +8 -6
- package/components/page/Index.svelte +116 -80
- package/components/page/Index.svelte.d.ts +4 -4
- package/components/page/Instructions.svelte +18 -17
- package/components/page/Instructions.svelte.d.ts +6 -4
- package/components/page/License.svelte +39 -23
- package/components/page/License.svelte.d.ts +4 -4
- package/components/page/Loading.svelte +102 -12
- package/components/page/Loading.svelte.d.ts +6 -2
- package/components/page/Media.svelte +81 -53
- package/components/page/Media.svelte.d.ts +4 -4
- package/components/page/MediaPreview.svelte +26 -8
- package/components/page/MediaPreview.svelte.d.ts +3 -3
- package/components/page/Muted.svelte +10 -0
- package/components/page/Muted.svelte.d.ts +27 -0
- package/components/page/Outline.svelte +279 -59
- package/components/page/Outline.svelte.d.ts +3 -3
- package/components/page/Page.svelte +40 -9
- package/components/page/Page.svelte.d.ts +3 -3
- package/components/page/PageHeader.svelte +14 -0
- package/components/page/PageHeader.svelte.d.ts +18 -0
- package/components/page/PageParagraph.svelte +18 -0
- package/components/page/PageParagraph.svelte.d.ts +27 -0
- package/components/page/PossibleChapter.svelte +7 -7
- package/components/page/PossibleChapter.svelte.d.ts +4 -4
- package/components/page/PossibleReference.svelte +6 -11
- package/components/page/PossibleReference.svelte.d.ts +6 -7
- package/components/page/Print.svelte +27 -3
- package/components/page/Print.svelte.d.ts +4 -4
- package/components/page/Publish.svelte +134 -0
- package/components/page/Publish.svelte.d.ts +14 -0
- package/components/page/Reference.svelte +259 -117
- package/components/page/Reference.svelte.d.ts +5 -5
- package/components/page/References.svelte +45 -48
- package/components/page/References.svelte.d.ts +4 -4
- package/components/page/Rows.svelte +54 -0
- package/components/page/Rows.svelte.d.ts +27 -0
- package/components/page/Search.svelte +88 -63
- package/components/page/Search.svelte.d.ts +4 -4
- package/components/page/Status.svelte +46 -39
- package/components/page/Status.svelte.d.ts +4 -9
- package/components/page/SubdomainEditor.svelte +41 -27
- package/components/page/SubdomainEditor.svelte.d.ts +4 -4
- package/components/page/TableOfContents.svelte +264 -191
- package/components/page/TableOfContents.svelte.d.ts +4 -4
- package/components/page/TableOfContentsImage.svelte +8 -8
- package/components/page/TableOfContentsImage.svelte.d.ts +3 -3
- package/components/page/TableOfContentsRow.svelte +97 -34
- package/components/page/TableOfContentsRow.svelte.d.ts +4 -4
- package/components/page/ThemeEditor.svelte +177 -39
- package/components/page/ThemeEditor.svelte.d.ts +4 -4
- package/components/page/ThemeEditorPreview.svelte +35 -23
- package/components/page/ThemeEditorPreview.svelte.d.ts +5 -5
- package/components/page/ThemeSetEditor.svelte +15 -13
- package/components/page/ThemeSetEditor.svelte.d.ts +4 -4
- package/components/page/ThemeVariableEditor.svelte +24 -15
- package/components/page/ThemeVariableEditor.svelte.d.ts +3 -3
- package/components/page/Title.svelte +12 -0
- package/components/page/Title.svelte.d.ts +27 -0
- package/components/page/Unknown.svelte +28 -21
- package/components/page/Unknown.svelte.d.ts +4 -4
- package/components/page/margins.js +50 -33
- package/index.d.ts +13 -0
- package/index.js +14 -0
- package/models/CRUD.d.ts +27 -0
- package/models/CRUD.js +262 -0
- package/models/Firebase.d.ts +1 -0
- package/models/Firebase.js +26 -16
- package/models/book/Book.d.ts +40 -39
- package/models/book/Book.js +121 -121
- package/models/book/BookMedia.d.ts +3 -3
- package/models/book/BookMedia.js +22 -16
- package/models/book/BookSaveStatus.d.ts +7 -0
- package/models/book/BookSaveStatus.js +8 -0
- package/models/book/Chapter.d.ts +50 -39
- package/models/book/Chapter.js +189 -198
- package/models/book/ChapterID.js +7 -7
- package/models/book/Definition.d.ts +1 -1
- package/models/book/Edition.d.ts +87 -61
- package/models/book/Edition.js +460 -309
- package/models/book/Reference.d.ts +24 -0
- package/models/book/Reference.js +78 -0
- package/models/book/Schema.d.ts +168 -0
- package/models/book/Schema.js +115 -0
- package/models/book/Theme.d.ts +44 -37
- package/models/book/Theme.js +452 -52
- package/models/book/ThemeColors.d.ts +1 -1
- package/models/book/Words.d.ts +2 -0
- package/models/book/Words.js +110 -0
- package/models/chapter/AtomNode.d.ts +4 -4
- package/models/chapter/AtomNode.js +20 -13
- package/models/chapter/BlockNode.d.ts +9 -10
- package/models/chapter/BlockNode.js +32 -13
- package/models/chapter/BlocksNode.d.ts +10 -10
- package/models/chapter/BlocksNode.js +315 -120
- package/models/chapter/BlocksNode.test.js +494 -228
- package/models/chapter/Bookkeeping.d.ts +1 -1
- package/models/chapter/CalloutNode.d.ts +3 -3
- package/models/chapter/CalloutNode.js +34 -12
- package/models/chapter/Caret.d.ts +9 -7
- package/models/chapter/Caret.js +11 -6
- package/models/chapter/ChapterNode.d.ts +11 -11
- package/models/chapter/ChapterNode.js +70 -33
- package/models/chapter/CitationsNode.d.ts +3 -3
- package/models/chapter/CitationsNode.js +31 -12
- package/models/chapter/CodeNode.d.ts +11 -6
- package/models/chapter/CodeNode.js +143 -34
- package/models/chapter/CommentNode.d.ts +5 -5
- package/models/chapter/CommentNode.js +29 -13
- package/models/chapter/DefinitionNode.d.ts +2 -2
- package/models/chapter/DefinitionNode.js +15 -7
- package/models/chapter/Edit.d.ts +3 -3
- package/models/chapter/EmbedNode.d.ts +9 -5
- package/models/chapter/EmbedNode.js +108 -35
- package/models/chapter/ErrorNode.d.ts +2 -2
- package/models/chapter/ErrorNode.js +34 -12
- package/models/chapter/FootnoteNode.d.ts +5 -5
- package/models/chapter/FootnoteNode.js +34 -16
- package/models/chapter/FormatNode.d.ts +10 -10
- package/models/chapter/FormatNode.js +237 -106
- package/models/chapter/FormatNode.test.js +87 -45
- package/models/chapter/InlineCodeNode.d.ts +2 -2
- package/models/chapter/InlineCodeNode.js +22 -9
- package/models/chapter/LabelNode.d.ts +4 -4
- package/models/chapter/LabelNode.js +31 -13
- package/models/chapter/LinkNode.d.ts +2 -2
- package/models/chapter/LinkNode.js +21 -9
- package/models/chapter/ListNode.d.ts +8 -8
- package/models/chapter/ListNode.js +99 -38
- package/models/chapter/ListNode.test.js +29 -24
- package/models/chapter/MetadataNode.d.ts +3 -3
- package/models/chapter/MetadataNode.js +13 -5
- package/models/chapter/Node.d.ts +5 -3
- package/models/chapter/Node.js +76 -29
- package/models/chapter/Node.test.js +20 -18
- package/models/chapter/ParagraphNode.d.ts +6 -6
- package/models/chapter/ParagraphNode.js +84 -29
- package/models/chapter/ParagraphNode.test.js +22 -13
- package/models/chapter/Parser.d.ts +27 -27
- package/models/chapter/Parser.js +220 -206
- package/models/chapter/Parser.test.js +16 -16
- package/models/chapter/Position.d.ts +1 -1
- package/models/chapter/QuoteNode.d.ts +6 -6
- package/models/chapter/QuoteNode.js +61 -23
- package/models/chapter/RootNode.d.ts +4 -4
- package/models/chapter/RuleNode.d.ts +2 -2
- package/models/chapter/RuleNode.js +31 -11
- package/models/chapter/TableNode.d.ts +8 -6
- package/models/chapter/TableNode.js +89 -34
- package/models/chapter/TableNode.test.js +22 -24
- package/models/chapter/TextNode.d.ts +6 -6
- package/models/chapter/TextNode.js +72 -32
- package/models/chapter/TextNode.test.js +4 -4
- package/package.json +108 -26
- package/util/getSubdomain.js +8 -6
- package/util/isMobile.js +1 -1
- package/util/mineReference.d.ts +3 -2
- package/util/mineReference.js +67 -29
- package/util/scrollToEyeLevel.js +6 -1
- package/components/chapter/renderPosition.d.ts +0 -3
- package/components/chapter/renderPosition.js +0 -4
- package/components/editor/ToolbarIcon.svelte +0 -22
- package/components/editor/ToolbarIcon.svelte.d.ts +0 -16
- package/components/page/Alert.svelte +0 -11
- package/components/page/Alert.svelte.d.ts +0 -23
- package/components/page/Revisions.svelte +0 -124
- package/components/page/Revisions.svelte.d.ts +0 -14
- package/models/BookLoader.d.ts +0 -2
- package/models/BookLoader.js +0 -67
- package/models/Firestore.d.ts +0 -22
- package/models/Firestore.js +0 -194
- package/models/chapter/ReferenceNode.d.ts +0 -29
- package/models/chapter/ReferenceNode.js +0 -48
- package/models/loadEdition.d.ts +0 -5
- package/models/loadEdition.js +0 -16
|
@@ -1,47 +1,56 @@
|
|
|
1
|
-
<script>import Instructions from
|
|
2
|
-
import Parser from
|
|
3
|
-
import TableOfContentsRow from
|
|
4
|
-
import ChapterIDs from
|
|
5
|
-
import Page from
|
|
6
|
-
import Header from
|
|
7
|
-
import Outline from
|
|
8
|
-
import Link from
|
|
9
|
-
import SubdomainEditor from
|
|
10
|
-
import Description from
|
|
11
|
-
import Acknowledgements from
|
|
12
|
-
import License from
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
1
|
+
<script>import Instructions from './Instructions.svelte';
|
|
2
|
+
import Parser from '../../models/chapter/Parser';
|
|
3
|
+
import TableOfContentsRow from './TableOfContentsRow.svelte';
|
|
4
|
+
import ChapterIDs from '../../models/book/ChapterID';
|
|
5
|
+
import Page from './Page.svelte';
|
|
6
|
+
import Header from './Header.svelte';
|
|
7
|
+
import Outline from './Outline.svelte';
|
|
8
|
+
import Link from '../Link.svelte';
|
|
9
|
+
import SubdomainEditor from './SubdomainEditor.svelte';
|
|
10
|
+
import Description from './Description.svelte';
|
|
11
|
+
import Acknowledgements from './Acknowledgements.svelte';
|
|
12
|
+
import License from './License.svelte';
|
|
13
|
+
import Authors from './Authors.svelte';
|
|
14
|
+
import TextEditor from '../editor/TextEditor.svelte';
|
|
15
|
+
import Toggle from '../editor/Toggle.svelte';
|
|
16
|
+
import { getUser, getBase, getBook, getEdition, isBookEditable, isEditionEditable, isEditionPartiallyEditable, setChapter, } from './Contexts';
|
|
17
|
+
import Muted from './Muted.svelte';
|
|
18
|
+
import Button from '../app/Button.svelte';
|
|
19
|
+
import PageHeader from './PageHeader.svelte';
|
|
20
|
+
import Rows from './Rows.svelte';
|
|
21
|
+
import PageParagraph from './PageParagraph.svelte';
|
|
22
|
+
import Note from '../editor/Note.svelte';
|
|
23
|
+
import Permissions from '../editor/Permissions.svelte';
|
|
24
|
+
import Publish from './Publish.svelte';
|
|
25
|
+
let auth = getUser();
|
|
26
|
+
let book = getBook();
|
|
18
27
|
let edition = getEdition();
|
|
19
28
|
let base = getBase();
|
|
20
|
-
let editable =
|
|
29
|
+
let editable = isEditionEditable();
|
|
21
30
|
function getProgressDescription(progress) {
|
|
22
31
|
if (progress === null)
|
|
23
|
-
return
|
|
32
|
+
return '';
|
|
24
33
|
else if (progress === 0)
|
|
25
|
-
return
|
|
34
|
+
return '';
|
|
26
35
|
else if (progress < 30)
|
|
27
|
-
return
|
|
36
|
+
return '; just started';
|
|
28
37
|
else if (progress < 70)
|
|
29
|
-
return
|
|
38
|
+
return '; halfway';
|
|
30
39
|
else if (progress < 95)
|
|
31
|
-
return
|
|
40
|
+
return '; almost done';
|
|
32
41
|
else
|
|
33
|
-
return
|
|
42
|
+
return '; done';
|
|
34
43
|
}
|
|
35
44
|
// Get the chapter progress
|
|
36
|
-
let progressStorage = typeof localStorage !==
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
45
|
+
let progressStorage = typeof localStorage !== 'undefined'
|
|
46
|
+
? localStorage.getItem('chapterProgress')
|
|
47
|
+
: null;
|
|
48
|
+
let progress = progressStorage === null ? {} : JSON.parse(progressStorage);
|
|
40
49
|
// Is there a colon? Let's make a subtitle
|
|
41
|
-
$: title = $edition
|
|
50
|
+
$: title = $edition?.getTitle() ?? '';
|
|
42
51
|
let subtitle = undefined;
|
|
43
52
|
$: {
|
|
44
|
-
let colon = title.indexOf(
|
|
53
|
+
let colon = title.indexOf(':');
|
|
45
54
|
if (colon >= 0) {
|
|
46
55
|
subtitle = title.substring(colon + 1).trim();
|
|
47
56
|
title = title.substring(0, colon).trim();
|
|
@@ -49,186 +58,250 @@ $: {
|
|
|
49
58
|
}
|
|
50
59
|
let waitingForChapter = false;
|
|
51
60
|
function addChapter() {
|
|
52
|
-
|
|
53
|
-
|
|
61
|
+
if ($edition)
|
|
62
|
+
edition.set($edition.withNewChapter());
|
|
54
63
|
}
|
|
55
64
|
</script>
|
|
56
65
|
|
|
57
|
-
|
|
58
|
-
<title
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
<
|
|
66
|
+
{#if $edition}
|
|
67
|
+
<Page title={$edition.getTitle()}>
|
|
68
|
+
<Header
|
|
69
|
+
editable={isEditionEditable()}
|
|
70
|
+
label="Book title"
|
|
71
|
+
getImage={() => $edition?.getImage('cover') ?? null}
|
|
72
|
+
setImage={(embed) =>
|
|
73
|
+
$edition
|
|
74
|
+
? edition.set($edition.withImage('cover', embed))
|
|
75
|
+
: undefined}
|
|
76
|
+
header={title}
|
|
77
|
+
id="toc"
|
|
78
|
+
{subtitle}
|
|
79
|
+
tags={$edition.getTags()}
|
|
80
|
+
save={(text) =>
|
|
81
|
+
$edition ? edition.set($edition.withTitle(text)) : undefined}
|
|
82
|
+
>
|
|
83
|
+
<svelte:fragment slot="before">
|
|
84
|
+
{#if editable}
|
|
85
|
+
<SubdomainEditor />
|
|
86
|
+
{/if}
|
|
87
|
+
</svelte:fragment>
|
|
88
|
+
<Outline
|
|
89
|
+
slot="outline"
|
|
90
|
+
previous={null}
|
|
91
|
+
next={$edition.getNextChapterID('')}
|
|
92
|
+
/>
|
|
93
|
+
<div slot="after">
|
|
94
|
+
<Authors
|
|
95
|
+
editable={isBookEditable()}
|
|
96
|
+
authors={$edition.getAuthors()}
|
|
97
|
+
add={() =>
|
|
98
|
+
$edition
|
|
99
|
+
? edition.set($edition.withAuthor(''))
|
|
100
|
+
: undefined}
|
|
101
|
+
edit={(index, text) =>
|
|
102
|
+
$edition
|
|
103
|
+
? edition.set($edition.withAuthorName(index, text))
|
|
104
|
+
: undefined}
|
|
105
|
+
remove={(index) =>
|
|
106
|
+
$edition
|
|
107
|
+
? edition.set($edition.withoutAuthor(index))
|
|
108
|
+
: undefined}
|
|
109
|
+
/>
|
|
110
|
+
<Note>{$edition.getEditionLabel()} edition</Note>
|
|
111
|
+
</div>
|
|
112
|
+
</Header>
|
|
113
|
+
|
|
114
|
+
<Instructions {editable}>
|
|
115
|
+
Edit this book's cover image, ID, title, and authors above. The book
|
|
116
|
+
ID appears in the book's URL (e.g., bookish.press/<em>bookid</em>).
|
|
117
|
+
</Instructions>
|
|
118
|
+
|
|
119
|
+
<Description />
|
|
120
|
+
|
|
121
|
+
<Instructions {editable}>
|
|
122
|
+
This will appear on the <Link to={$base + 'read'}
|
|
123
|
+
>book browsing</Link
|
|
124
|
+
> page and in your table of contents. Write an informative description
|
|
125
|
+
of what your book is about.
|
|
126
|
+
</Instructions>
|
|
127
|
+
|
|
128
|
+
<Instructions {editable}>
|
|
129
|
+
Add, remove, and reorder chapters here. You can add optional book
|
|
130
|
+
sections to each chapter, toggle chapters as numbered/unnumbered or
|
|
131
|
+
published/forthcoming. Click the title to edit the chapter.
|
|
132
|
+
</Instructions>
|
|
133
|
+
|
|
134
|
+
<PageHeader id="chapters"
|
|
135
|
+
>Chapters {#if editable}<Button
|
|
136
|
+
tooltip="add empty chapter"
|
|
137
|
+
disabled={waitingForChapter}
|
|
138
|
+
command={addChapter}>+ chapter</Button
|
|
139
|
+
>{/if}</PageHeader
|
|
140
|
+
>
|
|
141
|
+
|
|
142
|
+
<Rows>
|
|
143
|
+
{#each $edition.getChapters() as chapter}
|
|
144
|
+
{@const chapterID = chapter.getID()}
|
|
145
|
+
{@const readingTime = chapter.getReadingTime($edition)}
|
|
146
|
+
{@const readingEstimate =
|
|
147
|
+
readingTime === undefined
|
|
148
|
+
? 'Forthcoming'
|
|
149
|
+
: readingTime < 5
|
|
150
|
+
? '<5 min read'
|
|
151
|
+
: readingTime < 60
|
|
152
|
+
? '~' + Math.floor(readingTime / 5) * 5 + ' min read'
|
|
153
|
+
: '~' + Math.floor(readingTime / 60) + ' hour read'}
|
|
154
|
+
{@const section = chapter.getSection()}
|
|
155
|
+
{@const etc =
|
|
156
|
+
readingEstimate +
|
|
157
|
+
(!chapter.isForthcoming()
|
|
158
|
+
? getProgressDescription(
|
|
159
|
+
chapterID in progress ? progress[chapterID] : null
|
|
160
|
+
)
|
|
161
|
+
: '')}
|
|
162
|
+
|
|
163
|
+
<TableOfContentsRow
|
|
164
|
+
{chapter}
|
|
165
|
+
{chapterID}
|
|
166
|
+
number={$edition.getChapterNumber(chapterID)}
|
|
167
|
+
title={chapter.getTitle()}
|
|
168
|
+
forthcoming={chapter.isForthcoming()}
|
|
169
|
+
>
|
|
170
|
+
<span slot="annotation">
|
|
171
|
+
{#if editable}
|
|
172
|
+
<TextEditor
|
|
173
|
+
label={'Chapter section editor'}
|
|
174
|
+
text={section ? section : ''}
|
|
175
|
+
placeholder="section"
|
|
176
|
+
valid={() => undefined}
|
|
177
|
+
save={(text) =>
|
|
178
|
+
setChapter(
|
|
179
|
+
edition,
|
|
180
|
+
chapter,
|
|
181
|
+
chapter.withSection(text)
|
|
182
|
+
)}
|
|
183
|
+
/>
|
|
184
|
+
{:else if section}{section}{/if}
|
|
185
|
+
{#if !editable && $auth !== undefined && $auth.user !== null && chapter.uids.includes($auth.user.uid)}
|
|
186
|
+
You can edit this chapter.
|
|
187
|
+
{/if}
|
|
188
|
+
</span>
|
|
189
|
+
<span slot="etc">
|
|
190
|
+
<Muted>
|
|
143
191
|
{#if editable}
|
|
144
|
-
<Toggle
|
|
192
|
+
<Toggle
|
|
193
|
+
on={chapter.isForthcoming()}
|
|
194
|
+
save={(on) =>
|
|
195
|
+
setChapter(
|
|
196
|
+
edition,
|
|
197
|
+
chapter,
|
|
198
|
+
chapter.asForthcoming(on)
|
|
199
|
+
)}
|
|
200
|
+
>
|
|
145
201
|
{etc}
|
|
146
202
|
</Toggle>
|
|
147
203
|
{:else}
|
|
148
|
-
{
|
|
204
|
+
{etc}
|
|
149
205
|
{/if}
|
|
150
|
-
</
|
|
151
|
-
</
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
chapterID={ChapterIDs.ReferencesID}
|
|
156
|
-
title="References"
|
|
157
|
-
>
|
|
158
|
-
<span slot="annotation">Everything cited</span>
|
|
159
|
-
</TableOfContentsRow>
|
|
160
|
-
{/if}
|
|
161
|
-
{#if $edition.getGlossary() && Object.keys($edition.getGlossary()).length > 0 || editable }
|
|
162
|
-
<TableOfContentsRow
|
|
163
|
-
chapterID={ChapterIDs.GlossaryID}
|
|
164
|
-
title="Glossary"
|
|
165
|
-
>
|
|
166
|
-
<span slot="annotation">Definitions</span>
|
|
167
|
-
</TableOfContentsRow>
|
|
168
|
-
{/if}
|
|
206
|
+
</Muted>
|
|
207
|
+
</span>
|
|
208
|
+
</TableOfContentsRow>
|
|
209
|
+
{/each}
|
|
210
|
+
{#if $edition.hasReferences() || editable}
|
|
169
211
|
<TableOfContentsRow
|
|
170
|
-
chapterID={ChapterIDs.
|
|
171
|
-
title="
|
|
172
|
-
>
|
|
173
|
-
<span slot="annotation">
|
|
212
|
+
chapterID={ChapterIDs.ReferencesID}
|
|
213
|
+
title="References"
|
|
214
|
+
>
|
|
215
|
+
<span slot="annotation">Everything cited</span>
|
|
174
216
|
</TableOfContentsRow>
|
|
217
|
+
{/if}
|
|
218
|
+
{#if ($edition.getGlossary() && Object.keys($edition.getGlossary()).length > 0) || editable}
|
|
175
219
|
<TableOfContentsRow
|
|
176
|
-
chapterID={ChapterIDs.
|
|
177
|
-
title="
|
|
178
|
-
>
|
|
179
|
-
<span slot="annotation">
|
|
220
|
+
chapterID={ChapterIDs.GlossaryID}
|
|
221
|
+
title="Glossary"
|
|
222
|
+
>
|
|
223
|
+
<span slot="annotation">Definitions</span>
|
|
180
224
|
</TableOfContentsRow>
|
|
225
|
+
{/if}
|
|
226
|
+
<TableOfContentsRow chapterID={ChapterIDs.IndexID} title="Index">
|
|
227
|
+
<span slot="annotation">Common words and where they are</span>
|
|
228
|
+
</TableOfContentsRow>
|
|
229
|
+
<TableOfContentsRow chapterID={ChapterIDs.SearchID} title="Search">
|
|
230
|
+
<span slot="annotation">Find where words occur</span>
|
|
231
|
+
</TableOfContentsRow>
|
|
181
232
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
233
|
+
<TableOfContentsRow chapterID={ChapterIDs.MediaID} title="Media">
|
|
234
|
+
<span slot="annotation">Images and video in the book</span>
|
|
235
|
+
</TableOfContentsRow>
|
|
236
|
+
{#if editable}
|
|
237
|
+
<TableOfContentsRow chapterID="theme" title="Theme">
|
|
238
|
+
<span slot="annotation">Style the book</span>
|
|
187
239
|
</TableOfContentsRow>
|
|
188
|
-
|
|
189
|
-
<
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
chapterID="unknown"
|
|
197
|
-
title="Unknown"
|
|
198
|
-
>
|
|
199
|
-
<span slot="annotation">Customize bad links</span>
|
|
200
|
-
</TableOfContentsRow>
|
|
201
|
-
{/if}
|
|
202
|
-
</tbody>
|
|
203
|
-
</table>
|
|
204
|
-
</div>
|
|
240
|
+
<TableOfContentsRow chapterID="unknown" title="Unknown">
|
|
241
|
+
<span slot="annotation">Customize bad links</span>
|
|
242
|
+
</TableOfContentsRow>
|
|
243
|
+
{/if}
|
|
244
|
+
</Rows>
|
|
245
|
+
|
|
246
|
+
<Acknowledgements />
|
|
247
|
+
<License />
|
|
205
248
|
|
|
206
|
-
|
|
207
|
-
<License />
|
|
249
|
+
<PageHeader id="print">Print</PageHeader>
|
|
208
250
|
|
|
209
|
-
|
|
251
|
+
<Instructions {editable}>
|
|
252
|
+
This link will generate the entire book on a single page, suitable
|
|
253
|
+
for printing.
|
|
254
|
+
</Instructions>
|
|
210
255
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
256
|
+
<PageParagraph>
|
|
257
|
+
Want to print this book or generate a PDF? See <Link
|
|
258
|
+
to={$base + 'print'}>all chapters on a single page</Link
|
|
259
|
+
> and then print or export. Long books can take some time to render.
|
|
260
|
+
</PageParagraph>
|
|
214
261
|
|
|
215
|
-
|
|
216
|
-
Want to print this book or generate a PDF?
|
|
217
|
-
See <Link to={base + "print"}>all chapters on a single page</Link> and then print or export.
|
|
218
|
-
Long books can take some time to render.
|
|
219
|
-
</p>
|
|
262
|
+
<PageHeader id="citation">Citation</PageHeader>
|
|
220
263
|
|
|
221
|
-
|
|
264
|
+
<Instructions {editable}>
|
|
265
|
+
This citation is created from the current authors, title, and date.
|
|
266
|
+
</Instructions>
|
|
222
267
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
268
|
+
<!-- Book citation -->
|
|
269
|
+
<PageParagraph>
|
|
270
|
+
{$edition
|
|
271
|
+
.getAuthors()
|
|
272
|
+
.map((author) => Parser.parseFormat($edition, author).toText())
|
|
273
|
+
.join(', ')} ({new Date().getFullYear()}).
|
|
274
|
+
<em>{$edition.getTitle()}</em>. {location.protocol +
|
|
275
|
+
'//' +
|
|
276
|
+
location.host +
|
|
277
|
+
location.pathname},
|
|
278
|
+
<em>retrieved {new Date().toLocaleDateString('en-US')}</em>.
|
|
279
|
+
</PageParagraph>
|
|
226
280
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
281
|
+
{#if editable}
|
|
282
|
+
<PageHeader id="publish">Publish</PageHeader>
|
|
283
|
+
<Publish />
|
|
284
|
+
{/if}
|
|
231
285
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
286
|
+
{#if $book && (editable || isEditionPartiallyEditable())}
|
|
287
|
+
<PageHeader>Editors</PageHeader>
|
|
288
|
+
<Instructions {editable}>
|
|
289
|
+
These authors can edit this edition and its chapters. To give
|
|
290
|
+
book-level permissions, edit the book editors on the <Link
|
|
291
|
+
to="/write/{$book.ref.id}/editions">editions</Link
|
|
292
|
+
>
|
|
293
|
+
page. To give chapter-level permissions, navigate to the chapter.
|
|
294
|
+
</Instructions>
|
|
295
|
+
<Permissions
|
|
296
|
+
uids={$edition.uids}
|
|
297
|
+
inheriteduids={$book.uids}
|
|
298
|
+
atleastone={false}
|
|
299
|
+
writable={editable}
|
|
300
|
+
change={(uids) =>
|
|
301
|
+
$edition
|
|
302
|
+
? edition.set($edition.withEditors(uids))
|
|
303
|
+
: undefined}
|
|
304
|
+
/>
|
|
305
|
+
{/if}
|
|
306
|
+
</Page>
|
|
307
|
+
{/if}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
2
|
declare const __propDef: {
|
|
3
|
-
props:
|
|
3
|
+
props: Record<string, never>;
|
|
4
4
|
events: {
|
|
5
5
|
[evt: string]: CustomEvent<any>;
|
|
6
6
|
};
|
|
7
7
|
slots: {};
|
|
8
8
|
};
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
9
|
+
export type TableOfContentsProps = typeof __propDef.props;
|
|
10
|
+
export type TableOfContentsEvents = typeof __propDef.events;
|
|
11
|
+
export type TableOfContentsSlots = typeof __propDef.slots;
|
|
12
12
|
export default class TableOfContents extends SvelteComponentTyped<TableOfContentsProps, TableOfContentsEvents, TableOfContentsSlots> {
|
|
13
13
|
}
|
|
14
14
|
export {};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
<script>import EmbedNode from
|
|
2
|
-
import Parser from
|
|
3
|
-
import { getEdition } from
|
|
1
|
+
<script>import EmbedNode from '../../models/chapter/EmbedNode';
|
|
2
|
+
import Parser from '../../models/chapter/Parser';
|
|
3
|
+
import { getEdition } from './Contexts';
|
|
4
4
|
export let embed;
|
|
5
5
|
let edition = getEdition();
|
|
6
6
|
$: embedNode = embed === null ? null : Parser.parseEmbed($edition, embed);
|
|
7
7
|
</script>
|
|
8
8
|
|
|
9
|
-
{#if embedNode instanceof EmbedNode
|
|
10
|
-
<img
|
|
9
|
+
{#if embedNode instanceof EmbedNode}
|
|
10
|
+
<img
|
|
11
11
|
style="width: 5em"
|
|
12
|
-
src={embedNode.getSmallURL()
|
|
13
|
-
alt={embedNode.getDescription()
|
|
12
|
+
src={embedNode.getSmallURL()}
|
|
13
|
+
alt={embedNode.getDescription()}
|
|
14
14
|
/>
|
|
15
|
-
{/if}
|
|
15
|
+
{/if}
|
|
@@ -8,9 +8,9 @@ declare const __propDef: {
|
|
|
8
8
|
};
|
|
9
9
|
slots: {};
|
|
10
10
|
};
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
11
|
+
export type TableOfContentsImageProps = typeof __propDef.props;
|
|
12
|
+
export type TableOfContentsImageEvents = typeof __propDef.events;
|
|
13
|
+
export type TableOfContentsImageSlots = typeof __propDef.slots;
|
|
14
14
|
export default class TableOfContentsImage extends SvelteComponentTyped<TableOfContentsImageProps, TableOfContentsImageEvents, TableOfContentsImageSlots> {
|
|
15
15
|
}
|
|
16
16
|
export {};
|