bookish-press 0.4.231 → 0.5.0
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/{components → package/components}/Auth.svelte +11 -13
- package/{components → package/components}/Auth.svelte.d.ts +0 -0
- package/{components → package/components}/Authentication.d.ts +0 -0
- package/{components → package/components}/Authentication.js +0 -0
- package/{components → package/components}/BookPreview.svelte +13 -17
- package/{components → package/components}/BookPreview.svelte.d.ts +0 -0
- package/{components → package/components}/Link.svelte +2 -1
- package/{components → package/components}/Link.svelte.d.ts +1 -0
- package/{components → package/components}/app/BookList.svelte +0 -0
- package/{components → package/components}/app/BookList.svelte.d.ts +0 -0
- package/{components → package/components}/app/Button.svelte +5 -2
- package/{components → package/components}/app/Button.svelte.d.ts +0 -0
- package/{components → package/components}/app/Feedback.svelte +4 -9
- package/{components → package/components}/app/Feedback.svelte.d.ts +0 -0
- package/{components → package/components}/app/Head.svelte +4 -1
- package/{components → package/components}/app/Head.svelte.d.ts +6 -15
- package/{components → package/components}/app/Large.svelte +0 -0
- package/{components → package/components}/app/Large.svelte.d.ts +0 -0
- package/{components → package/components}/app/Lead.svelte +0 -0
- package/{components → package/components}/app/Lead.svelte.d.ts +0 -0
- package/package/components/app/Link.svelte +36 -0
- package/{components → package/components}/app/Link.svelte.d.ts +1 -0
- package/{components → package/components}/app/Options.svelte +0 -0
- package/{components → package/components}/app/Options.svelte.d.ts +0 -0
- package/{components → package/components}/app/Paragraph.svelte +1 -0
- package/{components → package/components}/app/Paragraph.svelte.d.ts +0 -0
- package/{components/app/Writing.svelte → package/components/app/Section.svelte} +0 -1
- package/package/components/app/Section.svelte.d.ts +27 -0
- package/{components → package/components}/app/Table.svelte +0 -0
- package/{components → package/components}/app/Table.svelte.d.ts +0 -0
- package/{components → package/components}/app/TextInput.svelte +2 -0
- package/{components → package/components}/app/TextInput.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Atom.svelte +1 -8
- package/{components → package/components}/chapter/Atom.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Block.svelte +3 -1
- package/{components → package/components}/chapter/Block.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Callout.svelte +0 -0
- package/{components → package/components}/chapter/Callout.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/CaptionedCode.svelte +2 -2
- package/{components → package/components}/chapter/CaptionedCode.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/ChapterBody.svelte +9 -16
- package/{components → package/components}/chapter/ChapterBody.svelte.d.ts +1 -0
- package/{components → package/components}/chapter/Citations.svelte +13 -11
- package/{components → package/components}/chapter/Citations.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Code.svelte +3 -2
- package/{components → package/components}/chapter/Code.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Comment.svelte +7 -13
- package/{components → package/components}/chapter/Comment.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Definition.svelte +8 -3
- package/{components → package/components}/chapter/Definition.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Embed.svelte +6 -5
- package/{components → package/components}/chapter/Embed.svelte.d.ts +1 -0
- package/{components → package/components}/chapter/ErrorMessage.svelte +0 -0
- package/{components → package/components}/chapter/ErrorMessage.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/ExtendedPrism.d.ts +0 -0
- package/{components → package/components}/chapter/ExtendedPrism.js +0 -0
- package/{components → package/components}/chapter/Figure.svelte +8 -8
- package/{components → package/components}/chapter/Figure.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Footnote.svelte +13 -24
- package/{components → package/components}/chapter/Footnote.svelte.d.ts +0 -2
- package/{components → package/components}/chapter/Format.svelte +5 -4
- package/{components → package/components}/chapter/Format.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/InlineCode.svelte +2 -2
- package/{components → package/components}/chapter/InlineCode.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Label.svelte +5 -7
- package/{components → package/components}/chapter/Label.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Link.svelte +8 -6
- package/{components → package/components}/chapter/Link.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/List.svelte +5 -0
- package/{components → package/components}/chapter/List.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Marginal.svelte +30 -12
- package/{components → package/components}/chapter/Marginal.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Paragraph.svelte +23 -10
- package/{components → package/components}/chapter/Paragraph.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Positioned.svelte +0 -0
- package/{components → package/components}/chapter/Positioned.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Problem.svelte +0 -0
- package/{components → package/components}/chapter/Problem.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Python.svelte +0 -0
- package/{components → package/components}/chapter/Python.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Quote.svelte +20 -10
- package/{components → package/components}/chapter/Quote.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Rule.svelte +0 -0
- package/{components → package/components}/chapter/Rule.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Table.svelte +2 -2
- package/{components → package/components}/chapter/Table.svelte.d.ts +0 -0
- package/{components → package/components}/chapter/Text.svelte +2 -2
- package/{components → package/components}/chapter/Text.svelte.d.ts +0 -0
- package/package/components/controls/DarkToggle.svelte +38 -0
- package/package/components/controls/DarkToggle.svelte.d.ts +17 -0
- package/{components → package/components}/editor/BookishEditor.svelte +57 -32
- package/{components → package/components}/editor/BookishEditor.svelte.d.ts +4 -1
- package/{components → package/components}/editor/CalloutEditor.svelte +0 -0
- package/{components → package/components}/editor/CalloutEditor.svelte.d.ts +0 -0
- package/{components → package/components}/editor/CaptionedCodeEditor.svelte +0 -0
- package/{components → package/components}/editor/CaptionedCodeEditor.svelte.d.ts +0 -0
- package/{components → package/components}/editor/CaretContext.d.ts +0 -0
- package/{components → package/components}/editor/CaretContext.js +0 -0
- package/{components → package/components}/editor/CaretState.d.ts +0 -0
- package/{components → package/components}/editor/CaretState.js +0 -0
- package/{components → package/components}/editor/CaretUtilities.d.ts +0 -0
- package/{components → package/components}/editor/CaretUtilities.js +0 -0
- package/{components → package/components}/editor/CaretView.svelte +4 -2
- package/{components → package/components}/editor/CaretView.svelte.d.ts +1 -0
- package/{components → package/components}/editor/CitationsEditor.svelte +0 -0
- package/{components → package/components}/editor/CitationsEditor.svelte.d.ts +0 -0
- package/{components → package/components}/editor/Clipboard.d.ts +0 -0
- package/{components → package/components}/editor/Clipboard.js +0 -0
- package/{components → package/components}/editor/Command.d.ts +0 -0
- package/{components → package/components}/editor/Command.js +0 -0
- package/{components → package/components}/editor/Commands.d.ts +0 -0
- package/{components → package/components}/editor/Commands.js +0 -0
- package/package/components/editor/ConfirmButton.svelte +23 -0
- package/{components → package/components}/editor/ConfirmButton.svelte.d.ts +4 -3
- package/{components → package/components}/editor/DefinitionEditor.svelte +0 -0
- package/{components → package/components}/editor/DefinitionEditor.svelte.d.ts +0 -0
- package/{components → package/components}/editor/EmbedEditor.svelte +1 -1
- package/{components → package/components}/editor/EmbedEditor.svelte.d.ts +0 -0
- package/{components → package/components}/editor/Icon.svelte +0 -0
- package/{components → package/components}/editor/Icon.svelte.d.ts +0 -0
- package/{components → package/components}/editor/ImageChooser.svelte +0 -0
- package/{components → package/components}/editor/ImageChooser.svelte.d.ts +0 -0
- package/{components → package/components}/editor/InlineCodeEditor.svelte +0 -0
- package/{components → package/components}/editor/InlineCodeEditor.svelte.d.ts +0 -0
- package/{components → package/components}/editor/LabelEditor.svelte +0 -0
- package/{components → package/components}/editor/LabelEditor.svelte.d.ts +0 -0
- package/{components → package/components}/editor/LanguageEditor.svelte +0 -0
- package/{components → package/components}/editor/LanguageEditor.svelte.d.ts +0 -0
- package/{components → package/components}/editor/LinkEditor.svelte +4 -3
- package/{components → package/components}/editor/LinkEditor.svelte.d.ts +0 -0
- package/{components → package/components}/editor/Note.svelte +1 -0
- package/{components → package/components}/editor/Note.svelte.d.ts +0 -0
- package/package/components/editor/Permissions.svelte +93 -0
- package/package/components/editor/Permissions.svelte.d.ts +20 -0
- package/{components → package/components}/editor/PositionEditor.svelte +0 -0
- package/{components → package/components}/editor/PositionEditor.svelte.d.ts +0 -0
- package/{components → package/components}/editor/QuoteEditor.svelte +0 -0
- package/{components → package/components}/editor/QuoteEditor.svelte.d.ts +0 -0
- package/{components → package/components}/editor/Switch.svelte +0 -0
- package/{components → package/components}/editor/Switch.svelte.d.ts +0 -0
- package/{components → package/components}/editor/TableEditor.svelte +0 -0
- package/{components → package/components}/editor/TableEditor.svelte.d.ts +0 -0
- package/{components → package/components}/editor/TextEditor.svelte +2 -3
- package/{components → package/components}/editor/TextEditor.svelte.d.ts +0 -0
- package/{components → package/components}/editor/Toggle.svelte +0 -0
- package/{components → package/components}/editor/Toggle.svelte.d.ts +0 -0
- package/{components → package/components}/editor/Toolbar.svelte +8 -3
- package/{components → package/components}/editor/Toolbar.svelte.d.ts +0 -0
- package/{components → package/components}/editor/ToolbarGroup.svelte +0 -1
- package/{components → package/components}/editor/ToolbarGroup.svelte.d.ts +0 -0
- package/{components → package/components}/editor/ToolbarSpacer.svelte +0 -0
- package/{components → package/components}/editor/ToolbarSpacer.svelte.d.ts +0 -0
- package/{components → package/components}/editor/URLEditor.svelte +2 -0
- package/{components → package/components}/editor/URLEditor.svelte.d.ts +0 -0
- package/{components → package/components}/editor/UndoState.d.ts +0 -0
- package/{components → package/components}/editor/UndoState.js +0 -0
- package/{components → package/components}/editor/icons/annotate.svg +0 -0
- package/{components → package/components}/editor/icons/block.svg +0 -0
- package/{components → package/components}/editor/icons/bold.svg +0 -0
- package/{components → package/components}/editor/icons/bullets.svg +0 -0
- package/{components → package/components}/editor/icons/callout.svg +0 -0
- package/{components → package/components}/editor/icons/citation.svg +0 -0
- package/{components → package/components}/editor/icons/clear.svg +0 -0
- package/{components → package/components}/editor/icons/clipboard.svg +0 -0
- package/{components → package/components}/editor/icons/code.svg +0 -0
- package/{components → package/components}/editor/icons/columnafter.svg +0 -0
- package/{components → package/components}/editor/icons/columnbefore.svg +0 -0
- package/{components → package/components}/editor/icons/comment.svg +0 -0
- package/{components → package/components}/editor/icons/copy.svg +0 -0
- package/{components → package/components}/editor/icons/cut.svg +0 -0
- package/{components → package/components}/editor/icons/define.svg +0 -0
- package/{components → package/components}/editor/icons/deletecolumn.svg +0 -0
- package/{components → package/components}/editor/icons/deleterow.svg +0 -0
- package/{components → package/components}/editor/icons/footnote.svg +0 -0
- package/{components → package/components}/editor/icons/header1.svg +0 -0
- package/{components → package/components}/editor/icons/header2.svg +0 -0
- package/{components → package/components}/editor/icons/header3.svg +0 -0
- package/{components → package/components}/editor/icons/home.svg +0 -0
- package/{components → package/components}/editor/icons/indent.svg +0 -0
- package/{components → package/components}/editor/icons/italic.svg +0 -0
- package/{components → package/components}/editor/icons/label.svg +0 -0
- package/{components → package/components}/editor/icons/left.svg +0 -0
- package/{components → package/components}/editor/icons/level.svg +0 -0
- package/{components → package/components}/editor/icons/link.svg +0 -0
- package/{components → package/components}/editor/icons/list.svg +0 -0
- package/{components → package/components}/editor/icons/media.svg +0 -0
- package/{components → package/components}/editor/icons/middle.svg +0 -0
- package/{components → package/components}/editor/icons/numbers.svg +0 -0
- package/{components → package/components}/editor/icons/paragraph.svg +0 -0
- package/{components → package/components}/editor/icons/paste.svg +0 -0
- package/{components → package/components}/editor/icons/quote.svg +0 -0
- package/{components → package/components}/editor/icons/redo.svg +0 -0
- package/{components → package/components}/editor/icons/right.svg +0 -0
- package/{components → package/components}/editor/icons/rowabove.svg +0 -0
- package/{components → package/components}/editor/icons/rowbelow.svg +0 -0
- package/{components → package/components}/editor/icons/rule.svg +0 -0
- package/{components → package/components}/editor/icons/sub.svg +0 -0
- package/{components → package/components}/editor/icons/super.svg +0 -0
- package/{components → package/components}/editor/icons/table.svg +0 -0
- package/{components → package/components}/editor/icons/text.svg +0 -0
- package/{components → package/components}/editor/icons/time.svg +0 -0
- package/{components → package/components}/editor/icons/undo.svg +0 -0
- package/{components → package/components}/editor/icons/unindent.svg +0 -0
- package/{components → package/components}/editor/icons/unlink.svg +0 -0
- package/{components → package/components}/page/Acknowledgements.svelte +13 -11
- package/{components → package/components}/page/Acknowledgements.svelte.d.ts +0 -0
- package/package/components/page/Authors.svelte +86 -0
- package/{components → package/components}/page/Authors.svelte.d.ts +1 -0
- package/package/components/page/BookLoader.svelte +59 -0
- package/package/components/page/BookLoader.svelte.d.ts +16 -0
- package/{components → package/components}/page/BulkReferenceEditor.svelte +8 -8
- package/{components → package/components}/page/BulkReferenceEditor.svelte.d.ts +0 -0
- package/{components → package/components}/page/Chapter.svelte +69 -30
- package/{components → package/components}/page/Chapter.svelte.d.ts +0 -0
- package/{components → package/components}/page/ChapterContext.d.ts +0 -0
- package/{components → package/components}/page/ChapterContext.js +0 -0
- package/{components → package/components}/page/ChapterNumber.svelte +0 -0
- package/{components → package/components}/page/ChapterNumber.svelte.d.ts +0 -0
- package/{components → package/components}/page/ChapterTitle.svelte +0 -0
- package/{components → package/components}/page/ChapterTitle.svelte.d.ts +0 -0
- package/{components → package/components}/page/Contexts.d.ts +21 -5
- package/package/components/page/Contexts.js +144 -0
- package/{components → package/components}/page/DefinitionView.svelte +23 -14
- package/{components → package/components}/page/DefinitionView.svelte.d.ts +0 -0
- package/{components → package/components}/page/Description.svelte +12 -9
- package/{components → package/components}/page/Description.svelte.d.ts +0 -0
- package/{components → package/components}/page/Edition.svelte +13 -23
- package/{components → package/components}/page/Edition.svelte.d.ts +1 -2
- package/package/components/page/EditionLoader.svelte +99 -0
- package/package/components/page/EditionLoader.svelte.d.ts +18 -0
- package/package/components/page/Editions.svelte +109 -0
- package/{components → package/components}/page/Editions.svelte.d.ts +3 -1
- package/{components → package/components}/page/Glossary.svelte +13 -6
- package/{components → package/components}/page/Glossary.svelte.d.ts +0 -0
- package/{components → package/components}/page/Header.svelte +26 -21
- package/{components → package/components}/page/Header.svelte.d.ts +2 -0
- package/{components → package/components}/page/Index.svelte +14 -8
- package/{components → package/components}/page/Index.svelte.d.ts +0 -0
- package/{components → package/components}/page/Instructions.svelte +1 -2
- package/{components → package/components}/page/Instructions.svelte.d.ts +3 -1
- package/package/components/page/License.svelte +45 -0
- package/{components → package/components}/page/License.svelte.d.ts +0 -0
- package/{components → package/components}/page/Loading.svelte +0 -0
- package/{components → package/components}/page/Loading.svelte.d.ts +0 -0
- package/{components → package/components}/page/Media.svelte +40 -36
- package/{components → package/components}/page/Media.svelte.d.ts +0 -0
- package/package/components/page/MediaPreview.svelte +55 -0
- package/{components → package/components}/page/MediaPreview.svelte.d.ts +0 -0
- package/{components → package/components}/page/Muted.svelte +0 -0
- package/{components → package/components}/page/Muted.svelte.d.ts +0 -0
- package/{components → package/components}/page/Outline.svelte +69 -96
- package/{components → package/components}/page/Outline.svelte.d.ts +0 -0
- package/{components → package/components}/page/Page.svelte +4 -4
- package/{components → package/components}/page/Page.svelte.d.ts +0 -0
- package/{components → package/components}/page/PageHeader.svelte +5 -0
- package/{components → package/components}/page/PageHeader.svelte.d.ts +0 -0
- package/{components → package/components}/page/PageParagraph.svelte +0 -0
- package/{components → package/components}/page/PageParagraph.svelte.d.ts +0 -0
- package/{components → package/components}/page/PossibleChapter.svelte +0 -0
- package/{components → package/components}/page/PossibleChapter.svelte.d.ts +0 -0
- package/{components → package/components}/page/PossibleReference.svelte +2 -1
- package/{components → package/components}/page/PossibleReference.svelte.d.ts +1 -0
- package/{components → package/components}/page/Print.svelte +0 -0
- package/{components → package/components}/page/Print.svelte.d.ts +0 -0
- package/package/components/page/Publish.svelte +135 -0
- package/package/components/page/Publish.svelte.d.ts +14 -0
- package/{components → package/components}/page/Reference.svelte +54 -51
- package/{components → package/components}/page/Reference.svelte.d.ts +1 -0
- package/{components → package/components}/page/References.svelte +9 -4
- package/{components → package/components}/page/References.svelte.d.ts +0 -0
- package/{components → package/components}/page/Rows.svelte +0 -0
- package/{components → package/components}/page/Rows.svelte.d.ts +0 -0
- package/{components → package/components}/page/Search.svelte +27 -10
- package/{components → package/components}/page/Search.svelte.d.ts +0 -0
- package/package/components/page/Status.svelte +58 -0
- package/{components → package/components}/page/Status.svelte.d.ts +0 -0
- package/{components → package/components}/page/SubdomainEditor.svelte +5 -3
- package/{components → package/components}/page/SubdomainEditor.svelte.d.ts +0 -0
- package/{components → package/components}/page/TableOfContents.svelte +83 -37
- package/{components → package/components}/page/TableOfContents.svelte.d.ts +0 -0
- package/package/components/page/TableOfContentsImage.svelte +27 -0
- package/{components → package/components}/page/TableOfContentsImage.svelte.d.ts +1 -0
- package/{components → package/components}/page/TableOfContentsRow.svelte +11 -12
- package/{components → package/components}/page/TableOfContentsRow.svelte.d.ts +0 -0
- package/{components → package/components}/page/ThemeEditor.svelte +12 -10
- package/{components → package/components}/page/ThemeEditor.svelte.d.ts +0 -0
- package/{components → package/components}/page/ThemeEditorPreview.svelte +0 -0
- package/{components → package/components}/page/ThemeEditorPreview.svelte.d.ts +0 -0
- package/{components → package/components}/page/ThemeSetEditor.svelte +0 -0
- package/{components → package/components}/page/ThemeSetEditor.svelte.d.ts +0 -0
- package/{components → package/components}/page/ThemeVariableEditor.svelte +0 -0
- package/{components → package/components}/page/ThemeVariableEditor.svelte.d.ts +0 -0
- package/{components → package/components}/page/Title.svelte +0 -0
- package/{components → package/components}/page/Title.svelte.d.ts +0 -0
- package/{components → package/components}/page/Unknown.svelte +5 -2
- package/{components → package/components}/page/Unknown.svelte.d.ts +0 -0
- package/{components → package/components}/page/margins.d.ts +0 -0
- package/{components → package/components}/page/margins.js +0 -0
- package/{index.d.ts → package/index.d.ts} +3 -1
- package/{index.js → package/index.js} +3 -1
- package/package/models/CRUD.d.ts +28 -0
- package/package/models/CRUD.js +263 -0
- package/{models → package/models}/Firebase.d.ts +0 -0
- package/package/models/Firebase.js +36 -0
- package/{models → package/models}/book/Book.d.ts +23 -18
- package/package/models/book/Book.js +135 -0
- package/{models → package/models}/book/BookMedia.d.ts +1 -1
- package/{models → package/models}/book/BookMedia.js +9 -10
- package/{models → package/models}/book/BookSaveStatus.d.ts +0 -0
- package/{models → package/models}/book/BookSaveStatus.js +0 -0
- package/{models → package/models}/book/Chapter.d.ts +5 -1
- package/{models → package/models}/book/Chapter.js +24 -15
- package/{models → package/models}/book/ChapterID.d.ts +0 -0
- package/{models → package/models}/book/ChapterID.js +0 -0
- package/{models → package/models}/book/Definition.d.ts +0 -0
- package/{models → package/models}/book/Definition.js +0 -0
- package/{models → package/models}/book/Edition.d.ts +33 -7
- package/{models → package/models}/book/Edition.js +104 -32
- package/{models → package/models}/book/Reference.d.ts +0 -0
- package/{models → package/models}/book/Reference.js +0 -0
- package/{models → package/models}/book/Schema.d.ts +20 -15
- package/{models → package/models}/book/Schema.js +17 -16
- package/{models → package/models}/book/Theme.d.ts +0 -0
- package/{models → package/models}/book/Theme.js +7 -6
- package/{models → package/models}/book/ThemeColors.d.ts +0 -0
- package/{models → package/models}/book/ThemeColors.js +0 -0
- package/{models → package/models}/book/Words.d.ts +0 -0
- package/{models → package/models}/book/Words.js +0 -0
- package/{models → package/models}/chapter/AtomNode.d.ts +0 -0
- package/{models → package/models}/chapter/AtomNode.js +0 -0
- package/{models → package/models}/chapter/BlockNode.d.ts +0 -0
- package/{models → package/models}/chapter/BlockNode.js +0 -0
- package/{models → package/models}/chapter/BlocksNode.d.ts +0 -0
- package/{models → package/models}/chapter/BlocksNode.js +0 -0
- package/{models → package/models}/chapter/BlocksNode.test.d.ts +0 -0
- package/{models → package/models}/chapter/BlocksNode.test.js +0 -0
- package/{models → package/models}/chapter/Bookkeeping.d.ts +0 -0
- package/{models → package/models}/chapter/Bookkeeping.js +0 -0
- package/{models → package/models}/chapter/CalloutNode.d.ts +0 -0
- package/{models → package/models}/chapter/CalloutNode.js +0 -0
- package/{models → package/models}/chapter/Caret.d.ts +0 -0
- package/{models → package/models}/chapter/Caret.js +0 -0
- package/{models → package/models}/chapter/ChapterNode.d.ts +0 -0
- package/{models → package/models}/chapter/ChapterNode.js +0 -0
- package/{models → package/models}/chapter/CitationsNode.d.ts +0 -0
- package/{models → package/models}/chapter/CitationsNode.js +0 -0
- package/{models → package/models}/chapter/CodeNode.d.ts +0 -0
- package/{models → package/models}/chapter/CodeNode.js +0 -0
- package/{models → package/models}/chapter/CommentNode.d.ts +0 -0
- package/{models → package/models}/chapter/CommentNode.js +13 -3
- package/{models → package/models}/chapter/DefinitionNode.d.ts +0 -0
- package/{models → package/models}/chapter/DefinitionNode.js +0 -0
- package/{models → package/models}/chapter/Edit.d.ts +0 -0
- package/{models → package/models}/chapter/Edit.js +0 -0
- package/{models → package/models}/chapter/EmbedNode.d.ts +1 -0
- package/{models → package/models}/chapter/EmbedNode.js +6 -0
- package/{models → package/models}/chapter/ErrorNode.d.ts +0 -0
- package/{models → package/models}/chapter/ErrorNode.js +0 -0
- package/{models → package/models}/chapter/FootnoteNode.d.ts +0 -0
- package/{models → package/models}/chapter/FootnoteNode.js +0 -0
- package/{models → package/models}/chapter/FormatNode.d.ts +0 -0
- package/{models → package/models}/chapter/FormatNode.js +1 -6
- package/{models → package/models}/chapter/FormatNode.test.d.ts +0 -0
- package/{models → package/models}/chapter/FormatNode.test.js +0 -0
- package/{models → package/models}/chapter/InlineCodeNode.d.ts +0 -0
- package/{models → package/models}/chapter/InlineCodeNode.js +0 -0
- package/{models → package/models}/chapter/LabelNode.d.ts +0 -0
- package/{models → package/models}/chapter/LabelNode.js +0 -0
- package/{models → package/models}/chapter/LinkNode.d.ts +0 -0
- package/{models → package/models}/chapter/LinkNode.js +0 -0
- package/{models → package/models}/chapter/ListNode.d.ts +0 -0
- package/{models → package/models}/chapter/ListNode.js +0 -0
- package/{models → package/models}/chapter/ListNode.test.d.ts +0 -0
- package/{models → package/models}/chapter/ListNode.test.js +0 -0
- package/{models → package/models}/chapter/MetadataNode.d.ts +0 -0
- package/{models → package/models}/chapter/MetadataNode.js +0 -0
- package/{models → package/models}/chapter/Node.d.ts +0 -0
- package/{models → package/models}/chapter/Node.js +0 -0
- package/{models → package/models}/chapter/Node.test.d.ts +0 -0
- package/{models → package/models}/chapter/Node.test.js +0 -0
- package/{models → package/models}/chapter/ParagraphNode.d.ts +0 -0
- package/{models → package/models}/chapter/ParagraphNode.js +0 -0
- package/{models → package/models}/chapter/ParagraphNode.test.d.ts +0 -0
- package/{models → package/models}/chapter/ParagraphNode.test.js +0 -0
- package/{models → package/models}/chapter/Parser.d.ts +2 -2
- package/{models → package/models}/chapter/Parser.js +26 -24
- package/{models → package/models}/chapter/Parser.test.d.ts +0 -0
- package/{models → package/models}/chapter/Parser.test.js +0 -0
- package/{models → package/models}/chapter/Position.d.ts +0 -0
- package/{models → package/models}/chapter/Position.js +0 -0
- package/{models → package/models}/chapter/QuoteNode.d.ts +0 -0
- package/{models → package/models}/chapter/QuoteNode.js +0 -0
- package/{models → package/models}/chapter/RootNode.d.ts +0 -0
- package/{models → package/models}/chapter/RootNode.js +0 -0
- package/{models → package/models}/chapter/RuleNode.d.ts +0 -0
- package/{models → package/models}/chapter/RuleNode.js +0 -0
- package/{models → package/models}/chapter/TableNode.d.ts +0 -0
- package/{models → package/models}/chapter/TableNode.js +0 -0
- package/{models → package/models}/chapter/TableNode.test.d.ts +0 -0
- package/{models → package/models}/chapter/TableNode.test.js +0 -0
- package/{models → package/models}/chapter/TextNode.d.ts +0 -0
- package/{models → package/models}/chapter/TextNode.js +0 -0
- package/{models → package/models}/chapter/TextNode.test.d.ts +0 -0
- package/{models → package/models}/chapter/TextNode.test.js +0 -0
- package/package/util/dark.d.ts +2 -0
- package/package/util/dark.js +16 -0
- package/{util → package/util}/getSubdomain.d.ts +0 -0
- package/{util → package/util}/getSubdomain.js +0 -0
- package/{util → package/util}/isMobile.d.ts +0 -0
- package/{util → package/util}/isMobile.js +0 -0
- package/{util → package/util}/mineReference.d.ts +0 -0
- package/{util → package/util}/mineReference.js +0 -0
- package/{util → package/util}/scrollToEyeLevel.d.ts +0 -0
- package/{util → package/util}/scrollToEyeLevel.js +0 -0
- package/package.json +955 -267
- package/components/External.svelte +0 -4
- package/components/External.svelte.d.ts +0 -18
- package/components/app/Link.svelte +0 -24
- package/components/app/Writing.svelte.d.ts +0 -27
- package/components/editor/ConfirmButton.svelte +0 -49
- package/components/page/Authors.svelte +0 -82
- package/components/page/Contexts.js +0 -51
- package/components/page/Editions.svelte +0 -158
- package/components/page/License.svelte +0 -37
- package/components/page/MediaPreview.svelte +0 -29
- package/components/page/Status.svelte +0 -57
- package/components/page/TableOfContentsImage.svelte +0 -15
- package/models/CRUD.d.ts +0 -17
- package/models/CRUD.js +0 -207
- package/models/Firebase.js +0 -32
- package/models/book/Book.js +0 -142
- package/models/loadEdition.d.ts +0 -5
- package/models/loadEdition.js +0 -20
|
@@ -2,9 +2,8 @@ import { SvelteComponentTyped } from "svelte";
|
|
|
2
2
|
import type EditionModel from '../../models/book/Edition';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
5
|
-
editable?: boolean | undefined;
|
|
6
|
-
base?: string | undefined;
|
|
7
5
|
edition: EditionModel;
|
|
6
|
+
base?: string | undefined;
|
|
8
7
|
};
|
|
9
8
|
events: {
|
|
10
9
|
[evt: string]: CustomEvent<any>;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
<script>import Loading from './Loading.svelte';
|
|
2
|
+
import Edition from './Edition.svelte';
|
|
3
|
+
import Feedback from '../app/Feedback.svelte';
|
|
4
|
+
import { getBook, getEdition, getUser, getChapterText, } from './Contexts';
|
|
5
|
+
import { onDestroy } from 'svelte';
|
|
6
|
+
import { page } from '$app/stores';
|
|
7
|
+
import { listenToChapters, listenToEdition } from '../../models/CRUD';
|
|
8
|
+
export let write;
|
|
9
|
+
let auth = getUser();
|
|
10
|
+
let book = getBook();
|
|
11
|
+
let edition = getEdition();
|
|
12
|
+
let chapterText = getChapterText();
|
|
13
|
+
let editionUnsub = undefined;
|
|
14
|
+
let chaptersUnsub = undefined;
|
|
15
|
+
let error = undefined;
|
|
16
|
+
function unsub() {
|
|
17
|
+
// Unsubscribe to the old edition document if we were listening to one.
|
|
18
|
+
if (editionUnsub)
|
|
19
|
+
editionUnsub();
|
|
20
|
+
if (chaptersUnsub)
|
|
21
|
+
chaptersUnsub();
|
|
22
|
+
}
|
|
23
|
+
function listen() {
|
|
24
|
+
unsub();
|
|
25
|
+
error = undefined;
|
|
26
|
+
// If we no longer have a book, we can't get an edition.
|
|
27
|
+
if ($book === undefined) {
|
|
28
|
+
edition.set(undefined);
|
|
29
|
+
error = 'Unknown book.';
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
const editionNumber = $page.params.editionid;
|
|
34
|
+
const latestPublished = !write;
|
|
35
|
+
// Figure out which edition to load.
|
|
36
|
+
let editionID;
|
|
37
|
+
if (editionNumber === undefined) {
|
|
38
|
+
if (latestPublished) {
|
|
39
|
+
editionID = $book.getLatestPublishedEditionID();
|
|
40
|
+
if (editionID === undefined)
|
|
41
|
+
error = 'There is no published edition of this book.';
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
editionID = $book.getLatestEditionID();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
editionID = $book.getEditionNumberID(parseFloat(editionNumber));
|
|
49
|
+
if (editionID === undefined)
|
|
50
|
+
error = `There is no ${editionNumber} edition of this book`;
|
|
51
|
+
}
|
|
52
|
+
// Listen to the doc for changes and listen to all of its chapters.
|
|
53
|
+
if (editionID !== undefined) {
|
|
54
|
+
editionUnsub = listenToEdition($book.getID(), editionID, (ed) => {
|
|
55
|
+
if (ed) {
|
|
56
|
+
// Before setting the new edition, augmented it with the chapter text.
|
|
57
|
+
edition.set($chapterText
|
|
58
|
+
? ed.withChapterText($chapterText)
|
|
59
|
+
: ed);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
edition.set(undefined);
|
|
63
|
+
error = 'Unable to load edition';
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
chaptersUnsub = listenToChapters($book.getID(), editionID, (chapters) => {
|
|
67
|
+
// Update the chapter text store.
|
|
68
|
+
chapterText.set(chapters);
|
|
69
|
+
// Update the chapter text in the current edition.
|
|
70
|
+
if ($edition)
|
|
71
|
+
edition.set($edition.withChapterText(chapters));
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Whenever the book or page changes, change the listener.
|
|
77
|
+
$: if ($page && $auth && $auth.user !== null)
|
|
78
|
+
listen();
|
|
79
|
+
// When unmounted, unset the stores — no longer viewing a book.
|
|
80
|
+
onDestroy(() => {
|
|
81
|
+
edition.set(undefined);
|
|
82
|
+
unsub();
|
|
83
|
+
});
|
|
84
|
+
</script>
|
|
85
|
+
|
|
86
|
+
{#if $book === undefined || error}
|
|
87
|
+
<Feedback error>Unable to load edition.</Feedback>
|
|
88
|
+
{:else if $edition === undefined}
|
|
89
|
+
<Loading />
|
|
90
|
+
{:else}
|
|
91
|
+
<Edition
|
|
92
|
+
edition={$edition}
|
|
93
|
+
base={write
|
|
94
|
+
? `/write/${$book.getID()}/${$edition.getEditionNumber()}`
|
|
95
|
+
: `/${$book.getSubdomain() ?? $book.getID()}`}
|
|
96
|
+
>
|
|
97
|
+
<slot />
|
|
98
|
+
</Edition>
|
|
99
|
+
{/if}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
write: boolean;
|
|
5
|
+
};
|
|
6
|
+
events: {
|
|
7
|
+
[evt: string]: CustomEvent<any>;
|
|
8
|
+
};
|
|
9
|
+
slots: {
|
|
10
|
+
default: {};
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export type EditionLoaderProps = typeof __propDef.props;
|
|
14
|
+
export type EditionLoaderEvents = typeof __propDef.events;
|
|
15
|
+
export type EditionLoaderSlots = typeof __propDef.slots;
|
|
16
|
+
export default class EditionLoader extends SvelteComponentTyped<EditionLoaderProps, EditionLoaderEvents, EditionLoaderSlots> {
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
<script>import { createNewEdition } from '../../models/CRUD';
|
|
2
|
+
import Instructions from './Instructions.svelte';
|
|
3
|
+
import Note from '../editor/Note.svelte';
|
|
4
|
+
import { getBook, isBookEditable } from './Contexts';
|
|
5
|
+
import Button from '../app/Button.svelte';
|
|
6
|
+
import Link from '../app/Link.svelte';
|
|
7
|
+
import Format from '../chapter/Format.svelte';
|
|
8
|
+
import Parser from '../../models/chapter/Parser';
|
|
9
|
+
import Permissions from '../editor/Permissions.svelte';
|
|
10
|
+
export let editors = true;
|
|
11
|
+
let book = getBook();
|
|
12
|
+
let editable = isBookEditable();
|
|
13
|
+
$: editions = $book?.getEditions();
|
|
14
|
+
$: latestPublishedID = $book?.getLatestPublishedEditionID();
|
|
15
|
+
async function handleDraftEdition() {
|
|
16
|
+
if ($book === undefined)
|
|
17
|
+
return;
|
|
18
|
+
book.set(await createNewEdition($book));
|
|
19
|
+
}
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
{#if $book && editions}
|
|
23
|
+
{#if editable}
|
|
24
|
+
<p>
|
|
25
|
+
<Button tooltip="create new edition" command={handleDraftEdition}
|
|
26
|
+
>+ edition</Button
|
|
27
|
+
>
|
|
28
|
+
</p>
|
|
29
|
+
{/if}
|
|
30
|
+
<Instructions {editable}>
|
|
31
|
+
Each book has one or more editions, allowing you to track revisions and
|
|
32
|
+
ensure previous versions remain available. When you're ready to revise,
|
|
33
|
+
add a new edition here; it will copy the latest edition, which you can
|
|
34
|
+
then edit. When you're ready to publish an edition, write a summary here
|
|
35
|
+
and then publish. By default, readers will see the latest published
|
|
36
|
+
edition, but they can access older editions here.
|
|
37
|
+
</Instructions>
|
|
38
|
+
{#each editions as edition, index (edition.ref)}
|
|
39
|
+
{@const editionNumber =
|
|
40
|
+
editions === undefined ? -1 : editions.length - index}
|
|
41
|
+
{@const editionLabel =
|
|
42
|
+
editionNumber +
|
|
43
|
+
(editionNumber === 1
|
|
44
|
+
? 'st'
|
|
45
|
+
: editionNumber === 2
|
|
46
|
+
? 'nd'
|
|
47
|
+
: editionNumber === 3
|
|
48
|
+
? 'rd'
|
|
49
|
+
: 'th')}
|
|
50
|
+
|
|
51
|
+
{#if $book && (editable || edition.published)}
|
|
52
|
+
<section class="edition">
|
|
53
|
+
<h3
|
|
54
|
+
>{editionLabel}
|
|
55
|
+
<Note
|
|
56
|
+
>{#if edition.published}{new Date(
|
|
57
|
+
edition.published
|
|
58
|
+
).toLocaleDateString(
|
|
59
|
+
'en-us'
|
|
60
|
+
)}{:else}unpublished{/if}
|
|
61
|
+
{#if edition.published}
|
|
62
|
+
<Link
|
|
63
|
+
to={latestPublishedID === edition.ref.id &&
|
|
64
|
+
$book.getSubdomain() !== undefined
|
|
65
|
+
? `/${$book.getSubdomain()}`
|
|
66
|
+
: `/${$book.getID()}/${
|
|
67
|
+
editions.length - index
|
|
68
|
+
}`}
|
|
69
|
+
external>read</Link
|
|
70
|
+
>{/if}
|
|
71
|
+
{#if editable}
|
|
72
|
+
|
|
73
|
+
<Link
|
|
74
|
+
to={`/write/${$book.getID()}/${
|
|
75
|
+
editions.length - index
|
|
76
|
+
}`}>edit</Link
|
|
77
|
+
>
|
|
78
|
+
{/if}
|
|
79
|
+
</Note>
|
|
80
|
+
</h3>
|
|
81
|
+
<p
|
|
82
|
+
>{#if edition.summary !== ''}<Format
|
|
83
|
+
node={Parser.parseFormat(
|
|
84
|
+
undefined,
|
|
85
|
+
edition.summary
|
|
86
|
+
)}
|
|
87
|
+
/>{:else}&mdash{/if}</p
|
|
88
|
+
>
|
|
89
|
+
</section>
|
|
90
|
+
{/if}
|
|
91
|
+
{/each}
|
|
92
|
+
|
|
93
|
+
{#if editable && editors}
|
|
94
|
+
<h2>Editors</h2>
|
|
95
|
+
<Instructions {editable}>
|
|
96
|
+
These authors can edit any aspect of the book and any of its
|
|
97
|
+
editions.
|
|
98
|
+
</Instructions>
|
|
99
|
+
|
|
100
|
+
<Permissions
|
|
101
|
+
uids={$book.uids}
|
|
102
|
+
inheriteduids={[]}
|
|
103
|
+
atleastone={true}
|
|
104
|
+
writable={editable}
|
|
105
|
+
change={(uids) =>
|
|
106
|
+
$book ? book.set($book.withEditors(uids)) : undefined}
|
|
107
|
+
/>
|
|
108
|
+
{/if}
|
|
109
|
+
{/if}
|
|
@@ -3,12 +3,12 @@ import Outline from './Outline.svelte';
|
|
|
3
3
|
import Page from './Page.svelte';
|
|
4
4
|
import ChapterIDs from '../../models/book/ChapterID';
|
|
5
5
|
import DefinitionView from './DefinitionView.svelte';
|
|
6
|
-
import { getEdition,
|
|
6
|
+
import { getUser, getEdition, isEditionEditable } from './Contexts';
|
|
7
7
|
import Instructions from './Instructions.svelte';
|
|
8
8
|
import Button from '../app/Button.svelte';
|
|
9
|
-
|
|
9
|
+
let auth = getUser();
|
|
10
10
|
let edition = getEdition();
|
|
11
|
-
let editable =
|
|
11
|
+
let editable = isEditionEditable();
|
|
12
12
|
$: glossary = $edition?.getGlossary() ?? {};
|
|
13
13
|
// Sort by canonical phrases
|
|
14
14
|
$: keys =
|
|
@@ -32,7 +32,12 @@ function addEmptyDefinition() {
|
|
|
32
32
|
{#if $edition}
|
|
33
33
|
<Page title={`${$edition.getTitle()} - Glossary`}>
|
|
34
34
|
<Header
|
|
35
|
+
editable={isEditionEditable() ||
|
|
36
|
+
($auth !== undefined &&
|
|
37
|
+
$auth.user !== null &&
|
|
38
|
+
$edition.isChapterEditor($auth.user.uid))}
|
|
35
39
|
label="Glossary title"
|
|
40
|
+
id="glossary"
|
|
36
41
|
getImage={() => $edition?.getImage(ChapterIDs.GlossaryID) ?? null}
|
|
37
42
|
setImage={(embed) =>
|
|
38
43
|
$edition
|
|
@@ -50,10 +55,12 @@ function addEmptyDefinition() {
|
|
|
50
55
|
/>
|
|
51
56
|
</Header>
|
|
52
57
|
{#if editable}
|
|
53
|
-
<Instructions>
|
|
54
|
-
|
|
58
|
+
<Instructions {editable}>
|
|
59
|
+
Build a glossary here, adding terms, phrases, definitions, and
|
|
60
|
+
synonyms. Then, in a chapter, you can select any text and link
|
|
61
|
+
it to a definition.
|
|
55
62
|
</Instructions>
|
|
56
|
-
<Button tooltip="
|
|
63
|
+
<Button tooltip="add glossary entry" command={addEmptyDefinition}
|
|
57
64
|
>+ definition</Button
|
|
58
65
|
>
|
|
59
66
|
{/if}
|
|
File without changes
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
<script>import
|
|
2
|
-
import Parser from '../../models/chapter/Parser';
|
|
1
|
+
<script>import Parser from '../../models/chapter/Parser';
|
|
3
2
|
import Embed from '../chapter/Embed.svelte';
|
|
4
|
-
import ErrorMessage from '../chapter/ErrorMessage.svelte';
|
|
5
3
|
import BookishEditor from '../editor/BookishEditor.svelte';
|
|
6
4
|
import Title from './Title.svelte';
|
|
7
5
|
import { onMount } from 'svelte';
|
|
8
6
|
import TextEditor from '../editor/TextEditor.svelte';
|
|
9
|
-
import { getEdition,
|
|
7
|
+
import { getUser, getEdition, getLeasee, lease } from './Contexts';
|
|
10
8
|
import Button from '../app/Button.svelte';
|
|
9
|
+
import ConfirmButton from '../editor/ConfirmButton.svelte';
|
|
10
|
+
/** True if an author should be able to edit this header. */
|
|
11
|
+
export let editable;
|
|
11
12
|
export let label;
|
|
12
13
|
export let header;
|
|
14
|
+
export let id;
|
|
13
15
|
export let subtitle = undefined;
|
|
14
16
|
export let print = false;
|
|
15
17
|
export let tags = undefined;
|
|
@@ -18,8 +20,8 @@ export let setImage;
|
|
|
18
20
|
export let save = null;
|
|
19
21
|
let title = null;
|
|
20
22
|
let showReminder = true;
|
|
23
|
+
let auth = getUser();
|
|
21
24
|
let edition = getEdition();
|
|
22
|
-
let editable = isEditable();
|
|
23
25
|
function updateScrollReminder() {
|
|
24
26
|
// If the bottom of the window is below the top of the title, hide the reminder.
|
|
25
27
|
if (title)
|
|
@@ -48,29 +50,30 @@ onMount(() => {
|
|
|
48
50
|
};
|
|
49
51
|
});
|
|
50
52
|
// Get the embed, update when getImage function prop changes.
|
|
51
|
-
let
|
|
52
|
-
$:
|
|
53
|
-
let embed = getImage();
|
|
54
|
-
embedNode = embed ? Parser.parseEmbed($edition, embed) : undefined;
|
|
55
|
-
}
|
|
53
|
+
let embed;
|
|
54
|
+
$: embed = getImage();
|
|
56
55
|
</script>
|
|
57
56
|
|
|
58
57
|
<header class="bookish-chapter-header">
|
|
59
|
-
{#if
|
|
58
|
+
{#if embed}
|
|
60
59
|
<div class="bookish-figure-full">
|
|
61
|
-
{#if edition && editable
|
|
60
|
+
{#if $edition && editable}
|
|
62
61
|
<BookishEditor
|
|
63
|
-
|
|
62
|
+
text={embed}
|
|
63
|
+
parser={(text) => Parser.parseEmbed($edition, text)}
|
|
64
64
|
save={(node) =>
|
|
65
65
|
setImage ? setImage(node.toBookdown()) : undefined}
|
|
66
66
|
chapter={false}
|
|
67
67
|
component={Embed}
|
|
68
68
|
placeholder=""
|
|
69
|
+
leasee={getLeasee(auth, edition, `embed-${id}`)}
|
|
70
|
+
lease={(lock) => lease(auth, edition, `embed-${id}`, lock)}
|
|
69
71
|
/>
|
|
70
|
-
{:else if embedNode instanceof EmbedNode}
|
|
71
|
-
<Embed node={embedNode} />
|
|
72
72
|
{:else}
|
|
73
|
-
<
|
|
73
|
+
<Embed
|
|
74
|
+
node={Parser.parseEmbed($edition, embed)}
|
|
75
|
+
editable={false}
|
|
76
|
+
/>
|
|
74
77
|
{/if}
|
|
75
78
|
{#if !print && showReminder}
|
|
76
79
|
<div class="bookish-scroll-reminder" />
|
|
@@ -84,13 +87,15 @@ $: {
|
|
|
84
87
|
<slot name="outline" />
|
|
85
88
|
{/if}
|
|
86
89
|
{#if editable}
|
|
87
|
-
{#if
|
|
88
|
-
<Button tooltip="add cover image
|
|
90
|
+
{#if embed === null}
|
|
91
|
+
<Button tooltip="add cover image" command={addCover}
|
|
89
92
|
>+ cover image</Button
|
|
90
93
|
>
|
|
91
94
|
{:else}
|
|
92
|
-
<
|
|
93
|
-
|
|
95
|
+
<ConfirmButton
|
|
96
|
+
confirm="remove image?"
|
|
97
|
+
tooltip="remove cover image"
|
|
98
|
+
command={removeCover}>- cover image</ConfirmButton
|
|
94
99
|
>
|
|
95
100
|
{/if}
|
|
96
101
|
{/if}
|
|
@@ -101,7 +106,7 @@ $: {
|
|
|
101
106
|
<TextEditor
|
|
102
107
|
{label}
|
|
103
108
|
text={header + (subtitle ? ': ' + subtitle : '')}
|
|
104
|
-
placeholder="
|
|
109
|
+
placeholder="title"
|
|
105
110
|
valid={(text) =>
|
|
106
111
|
text.length === 0
|
|
107
112
|
? 'Titles have to be at least one character long.'
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
2
|
declare const __propDef: {
|
|
3
3
|
props: {
|
|
4
|
+
/** True if an author should be able to edit this header. */ editable: boolean;
|
|
4
5
|
label: string;
|
|
5
6
|
header: string;
|
|
7
|
+
id: string;
|
|
6
8
|
subtitle?: string | undefined;
|
|
7
9
|
print?: boolean | undefined;
|
|
8
10
|
tags?: string[] | undefined;
|
|
@@ -4,13 +4,14 @@ import Page from './Page.svelte';
|
|
|
4
4
|
import Instructions from './Instructions.svelte';
|
|
5
5
|
import ChapterIDs from '../../models/book/ChapterID';
|
|
6
6
|
import Link from '../Link.svelte';
|
|
7
|
-
import { getBase, getEdition } from './Contexts';
|
|
7
|
+
import { getBase, getEdition, isEditionEditable } from './Contexts';
|
|
8
8
|
import { page } from '$app/stores';
|
|
9
9
|
import Muted from './Muted.svelte';
|
|
10
10
|
import ChapterTitle from './ChapterTitle.svelte';
|
|
11
11
|
import ChapterNumber from './ChapterNumber.svelte';
|
|
12
12
|
import PageHeader from './PageHeader.svelte';
|
|
13
13
|
import Rows from './Rows.svelte';
|
|
14
|
+
let editable = isEditionEditable();
|
|
14
15
|
let edition = getEdition();
|
|
15
16
|
let base = getBase();
|
|
16
17
|
// What letter are we matching?
|
|
@@ -43,7 +44,9 @@ $: {
|
|
|
43
44
|
{#if $edition}
|
|
44
45
|
<Page title={`${$edition.getTitle()} - Index`}>
|
|
45
46
|
<Header
|
|
47
|
+
editable={isEditionEditable()}
|
|
46
48
|
label="Index title"
|
|
49
|
+
id="index"
|
|
47
50
|
getImage={() => $edition?.getImage(ChapterIDs.IndexID) ?? null}
|
|
48
51
|
setImage={(embed) =>
|
|
49
52
|
$edition
|
|
@@ -59,9 +62,8 @@ $: {
|
|
|
59
62
|
/>
|
|
60
63
|
</Header>
|
|
61
64
|
|
|
62
|
-
<Instructions>
|
|
63
|
-
This index is created automatically
|
|
64
|
-
more control over it in the future.
|
|
65
|
+
<Instructions {editable}>
|
|
66
|
+
This index is created automatically using the words in the chapters.
|
|
65
67
|
</Instructions>
|
|
66
68
|
|
|
67
69
|
<p
|
|
@@ -79,7 +81,7 @@ $: {
|
|
|
79
81
|
<nav class="letters">
|
|
80
82
|
{#each 'abcdefghijklmnopqrstuvwxyz'.split('') as symbol, index}
|
|
81
83
|
{#if symbol in letters && letter !== symbol}
|
|
82
|
-
<Link to={$base
|
|
84
|
+
<Link to="{$base}/index/{symbol}">{symbol}</Link>
|
|
83
85
|
{:else if letter === symbol}
|
|
84
86
|
<strong
|
|
85
87
|
><span style="font-size: 200%">{symbol}</span
|
|
@@ -95,13 +97,13 @@ $: {
|
|
|
95
97
|
{#each words as word, index}
|
|
96
98
|
{#if word === true}
|
|
97
99
|
<tr
|
|
98
|
-
><td colspan={2}
|
|
100
|
+
><td class="term" colspan={2}
|
|
99
101
|
><PageHeader>{words[index + 1]}</PageHeader></td
|
|
100
102
|
></tr
|
|
101
103
|
>
|
|
102
104
|
{:else}
|
|
103
105
|
<tr>
|
|
104
|
-
<td>{word}</td>
|
|
106
|
+
<td class="term">{word}</td>
|
|
105
107
|
<td>
|
|
106
108
|
<!-- Sort the chapters by chapter number -->
|
|
107
109
|
{#each Array.from(bookIndex[word]).sort( (a, b) => {
|
|
@@ -120,7 +122,7 @@ $: {
|
|
|
120
122
|
{/if}</ChapterNumber
|
|
121
123
|
>
|
|
122
124
|
<ChapterTitle
|
|
123
|
-
link={`${$base}
|
|
125
|
+
link={`${$base}/${chapterID}?word=${word}`}
|
|
124
126
|
>{$edition.getChapterName(
|
|
125
127
|
chapterID
|
|
126
128
|
)}</ChapterTitle
|
|
@@ -141,6 +143,10 @@ $: {
|
|
|
141
143
|
margin-top: 0;
|
|
142
144
|
}
|
|
143
145
|
|
|
146
|
+
.term {
|
|
147
|
+
vertical-align: baseline;
|
|
148
|
+
}
|
|
149
|
+
|
|
144
150
|
.letters {
|
|
145
151
|
display: flex;
|
|
146
152
|
flex-direction: row;
|
|
File without changes
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<script>import Parser from '../../models/chapter/Parser';
|
|
2
|
+
import BookishEditor from '../editor/BookishEditor.svelte';
|
|
3
|
+
import Instructions from './Instructions.svelte';
|
|
4
|
+
import Format from '../chapter/Format.svelte';
|
|
5
|
+
import { getUser, getEdition, getLeasee, isEditionEditable, lease, } from './Contexts';
|
|
6
|
+
import PageHeader from './PageHeader.svelte';
|
|
7
|
+
let auth = getUser();
|
|
8
|
+
let edition = getEdition();
|
|
9
|
+
let editable = isEditionEditable();
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<PageHeader id="license">License</PageHeader>
|
|
13
|
+
|
|
14
|
+
<Instructions {editable}>
|
|
15
|
+
Do you want to specify rights other than your region's default copyrights?
|
|
16
|
+
Edit them here.
|
|
17
|
+
</Instructions>
|
|
18
|
+
|
|
19
|
+
{#if $edition}
|
|
20
|
+
<!-- If editable, show acknowledgements even if they're empty, otherwise hide -->
|
|
21
|
+
{#if editable}
|
|
22
|
+
<!-- svelte-ignore missing-declaration -->
|
|
23
|
+
<BookishEditor
|
|
24
|
+
text={$edition.getLicense()}
|
|
25
|
+
parser={(text) =>
|
|
26
|
+
Parser.parseFormat($edition, text).withTextIfEmpty()}
|
|
27
|
+
save={(node) =>
|
|
28
|
+
$edition
|
|
29
|
+
? edition.set($edition.setLicense(node.toBookdown()))
|
|
30
|
+
: undefined}
|
|
31
|
+
chapter={false}
|
|
32
|
+
component={Format}
|
|
33
|
+
placeholder="license"
|
|
34
|
+
leasee={getLeasee(auth, edition, `license`)}
|
|
35
|
+
lease={(lock) => lease(auth, edition, `license`, lock)}
|
|
36
|
+
/>
|
|
37
|
+
{:else}
|
|
38
|
+
<Format
|
|
39
|
+
node={Parser.parseFormat(
|
|
40
|
+
$edition,
|
|
41
|
+
$edition.getLicense()
|
|
42
|
+
).withTextIfEmpty()}
|
|
43
|
+
/>
|
|
44
|
+
{/if}
|
|
45
|
+
{/if}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|