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
|
@@ -3,17 +3,15 @@
|
|
|
3
3
|
<script>import Atom from './Atom.svelte';
|
|
4
4
|
import Marginal from './Marginal.svelte';
|
|
5
5
|
import Format from './Format.svelte';
|
|
6
|
-
import { getChapter,
|
|
6
|
+
import { getChapter, isChapterEditable, getCaret, getEdition, getRoot, } from '../page/Contexts';
|
|
7
7
|
import { afterUpdate } from 'svelte';
|
|
8
8
|
import Icon from '../editor/Icon.svelte';
|
|
9
9
|
import CommentIcon from '../editor/icons/comment.svg?raw';
|
|
10
10
|
export let node;
|
|
11
11
|
let chapter = getChapter();
|
|
12
|
-
let
|
|
13
|
-
let
|
|
12
|
+
let editable = isChapterEditable();
|
|
13
|
+
let root = getRoot();
|
|
14
14
|
let caret = getCaret();
|
|
15
|
-
$: chapterNode =
|
|
16
|
-
$edition && $chapter ? $chapter.chapter.getAST($edition) : undefined;
|
|
17
15
|
$: focused =
|
|
18
16
|
$caret && $caret.range && node.contains($caret.range.start.node);
|
|
19
17
|
// Position the marginals on every render.
|
|
@@ -25,9 +23,7 @@ afterUpdate(() => $chapter?.layoutMarginals());
|
|
|
25
23
|
<Marginal
|
|
26
24
|
{node}
|
|
27
25
|
id={'comment-' +
|
|
28
|
-
(
|
|
29
|
-
? '?'
|
|
30
|
-
: chapterNode.getComments().indexOf(node))}
|
|
26
|
+
($root === undefined ? '?' : $root.getComments().indexOf(node))}
|
|
31
27
|
label="comment, escape to edit"
|
|
32
28
|
>
|
|
33
29
|
<span slot="interactor" class="bookish-comment-symbol">
|
|
@@ -35,9 +31,7 @@ afterUpdate(() => $chapter?.layoutMarginals());
|
|
|
35
31
|
</span>
|
|
36
32
|
<span
|
|
37
33
|
slot="content"
|
|
38
|
-
class={`
|
|
39
|
-
focused ? 'bookish-app-comment-focused' : ''
|
|
40
|
-
}`}
|
|
34
|
+
class={`comment ${focused ? 'comment-focused' : ''}`}
|
|
41
35
|
>
|
|
42
36
|
<Format node={node.getMeta()} placeholder="comment" />
|
|
43
37
|
</span>
|
|
@@ -46,7 +40,7 @@ afterUpdate(() => $chapter?.layoutMarginals());
|
|
|
46
40
|
</Atom>
|
|
47
41
|
|
|
48
42
|
<style>
|
|
49
|
-
.
|
|
43
|
+
.comment {
|
|
50
44
|
background: var(--app-chrome-background);
|
|
51
45
|
border: var(--app-chrome-border-size) solid var(--app-border-color);
|
|
52
46
|
border-radius: 0 var(--app-chrome-padding) var(--app-chrome-padding)
|
|
@@ -57,7 +51,7 @@ afterUpdate(() => $chapter?.layoutMarginals());
|
|
|
57
51
|
line-height: 1.5em;
|
|
58
52
|
}
|
|
59
53
|
|
|
60
|
-
.
|
|
54
|
+
.comment-focused,
|
|
61
55
|
.bookish-footnote-focused {
|
|
62
56
|
outline: 2px solid var(--bookish-highlight-color);
|
|
63
57
|
}
|
|
File without changes
|
|
@@ -5,9 +5,10 @@ import Text from './Text.svelte';
|
|
|
5
5
|
import Format from './Format.svelte';
|
|
6
6
|
import Marginal from './Marginal.svelte';
|
|
7
7
|
import Problem from './Problem.svelte';
|
|
8
|
-
import { getChapter, getEdition } from '../page/Contexts';
|
|
8
|
+
import { getChapter, getEdition, isChapterEditable, } from '../page/Contexts';
|
|
9
9
|
import { afterUpdate } from 'svelte';
|
|
10
10
|
export let node;
|
|
11
|
+
let editable = isChapterEditable();
|
|
11
12
|
let edition = getEdition();
|
|
12
13
|
let chapter = getChapter();
|
|
13
14
|
// Find the definition.
|
|
@@ -24,13 +25,17 @@ afterUpdate(() => $chapter?.layoutMarginals());
|
|
|
24
25
|
<Marginal
|
|
25
26
|
{node}
|
|
26
27
|
id={'glossary-' + glossaryID}
|
|
27
|
-
label=
|
|
28
|
+
label={entry ? `definition: ${entry.phrase}` : 'undefined phrase'}
|
|
28
29
|
>
|
|
29
30
|
<Text slot="interactor" node={phrase} /><span
|
|
30
31
|
slot="content"
|
|
31
32
|
class="bookish-definition-entry"
|
|
32
33
|
>{#if entry === undefined}<Problem
|
|
33
|
-
>
|
|
34
|
+
>{#if editable}{glossaryID.length === 0
|
|
35
|
+
? 'choose a definition'
|
|
36
|
+
: `unknown glossary ID ${glossaryID}`}{:else}<em
|
|
37
|
+
>missing definition</em
|
|
38
|
+
>{/if}</Problem
|
|
34
39
|
>{:else}<strong class="bookish-definition-entry-phrase"
|
|
35
40
|
>{entry.phrase}</strong
|
|
36
41
|
>: <Format
|
|
File without changes
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
<svelte:options immutable={true} />
|
|
2
2
|
|
|
3
3
|
<script>import { storage } from '../../models/Firebase';
|
|
4
|
-
import {
|
|
4
|
+
import { getCaret, getBook, getBase } from '../page/Contexts';
|
|
5
5
|
import Figure from './Figure.svelte';
|
|
6
6
|
import { getContext } from 'svelte';
|
|
7
7
|
export let node;
|
|
8
|
+
export let editable = false;
|
|
8
9
|
export let placeholder = '';
|
|
9
10
|
export let imageOnly = false;
|
|
10
11
|
$: url = node.getURL();
|
|
11
12
|
$: description = node.getDescription();
|
|
12
13
|
let caret = getCaret();
|
|
13
14
|
let book = getBook();
|
|
14
|
-
let
|
|
15
|
+
let base = getBase();
|
|
15
16
|
// Bookish editor should have passed down a way to set the active editor.
|
|
16
17
|
let claimCaret = getContext('claimeditor');
|
|
17
18
|
let dragging = false;
|
|
@@ -114,9 +115,9 @@ function handleClick() {
|
|
|
114
115
|
: 'Click or drag to choose or upload an image, or enter an image or video URL.'}
|
|
115
116
|
</p>
|
|
116
117
|
{:else}
|
|
117
|
-
<p class="bookish-figure-unspecified">
|
|
118
|
+
<p class="bookish-figure-unspecified">No image or video</p>
|
|
118
119
|
{/if}
|
|
119
|
-
{:else if
|
|
120
|
+
{:else if node.isVideo()}
|
|
120
121
|
<article class="bookish-figure-embed">
|
|
121
122
|
<iframe
|
|
122
123
|
class="bookish-figure-frame"
|
|
@@ -130,7 +131,7 @@ function handleClick() {
|
|
|
130
131
|
{:else}
|
|
131
132
|
<img
|
|
132
133
|
class={'bookish-figure-image'}
|
|
133
|
-
src={url.startsWith('http') ? url :
|
|
134
|
+
src={url.startsWith('http') ? url : `${$base}/images/${url}`}
|
|
134
135
|
srcset={node.hasSmallURL()
|
|
135
136
|
? `${node.getSmallURL()} 320w, ${url} 1024w`
|
|
136
137
|
: undefined}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
<script>import Format from './Format.svelte';
|
|
4
4
|
import Positioned from './Positioned.svelte';
|
|
5
|
-
import { getCaret,
|
|
5
|
+
import { getCaret, isChapterEditable } from '../page/Contexts';
|
|
6
6
|
export let node;
|
|
7
7
|
export let caption;
|
|
8
8
|
export let credit = undefined;
|
|
9
|
-
let editable =
|
|
9
|
+
let editable = isChapterEditable();
|
|
10
10
|
let caret = getCaret();
|
|
11
11
|
$: selected = $caret?.range?.start.node === node;
|
|
12
12
|
function focusFigure() {
|
|
@@ -41,12 +41,12 @@ function focusFigure() {
|
|
|
41
41
|
<slot />
|
|
42
42
|
</div>
|
|
43
43
|
{#if caption !== undefined}
|
|
44
|
-
<figcaption class="
|
|
44
|
+
<figcaption class="caption">
|
|
45
45
|
{#if caption}
|
|
46
46
|
<Format node={caption} placeholder="caption" />
|
|
47
47
|
{/if}
|
|
48
48
|
{#if credit}
|
|
49
|
-
<aside class="
|
|
49
|
+
<aside class="credit">
|
|
50
50
|
<Format node={credit} placeholder="credit" />
|
|
51
51
|
</aside>
|
|
52
52
|
{/if}
|
|
@@ -68,7 +68,7 @@ function focusFigure() {
|
|
|
68
68
|
filter: opacity(50%);
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
.
|
|
71
|
+
.caption {
|
|
72
72
|
text-align: center;
|
|
73
73
|
position: relative;
|
|
74
74
|
color: var(--bookish-muted-color);
|
|
@@ -78,11 +78,11 @@ function focusFigure() {
|
|
|
78
78
|
margin-bottom: var(--bookish-block-padding);
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
.
|
|
81
|
+
.credit {
|
|
82
82
|
display: block;
|
|
83
83
|
position: absolute;
|
|
84
|
-
top: -
|
|
85
|
-
right:
|
|
84
|
+
top: calc(-1.2 * var(--bookish-block-padding));
|
|
85
|
+
right: var(--bookish-block-padding);
|
|
86
86
|
text-align: right;
|
|
87
87
|
font-style: italic;
|
|
88
88
|
font-size: var(--bookish-small-font-size);
|
|
File without changes
|
|
@@ -3,24 +3,22 @@
|
|
|
3
3
|
<script>import Atom from './Atom.svelte';
|
|
4
4
|
import Marginal from './Marginal.svelte';
|
|
5
5
|
import Format from './Format.svelte';
|
|
6
|
-
import { getChapter, getEdition, getCaret, } from '../page/Contexts';
|
|
6
|
+
import { getChapter, getEdition, getCaret, getRoot, } from '../page/Contexts';
|
|
7
7
|
import { afterUpdate } from 'svelte';
|
|
8
8
|
export let node;
|
|
9
9
|
$: content = node.getMeta();
|
|
10
10
|
let caret = getCaret();
|
|
11
11
|
let chapter = getChapter();
|
|
12
12
|
let edition = getEdition();
|
|
13
|
+
let root = getRoot();
|
|
13
14
|
// What footnote number is this?
|
|
14
|
-
$:
|
|
15
|
-
$edition && $chapter ? $chapter.chapter.getAST($edition) : undefined;
|
|
16
|
-
$: number = ast?.getFootnotes().indexOf(node);
|
|
15
|
+
$: number = $root.getFootnotes().indexOf(node);
|
|
17
16
|
$: letter =
|
|
18
17
|
number === undefined ? undefined : $edition?.getFootnoteSymbol(number);
|
|
19
18
|
$: focused =
|
|
20
|
-
|
|
21
|
-
$caret &&
|
|
19
|
+
$caret &&
|
|
22
20
|
$caret.range &&
|
|
23
|
-
$caret.range.start.node.hasAncestor(
|
|
21
|
+
$caret.range.start.node.hasAncestor($root, node);
|
|
24
22
|
// Position the marginals on every render.
|
|
25
23
|
afterUpdate(() => $chapter?.layoutMarginals());
|
|
26
24
|
</script>
|
|
@@ -32,17 +30,16 @@ afterUpdate(() => $chapter?.layoutMarginals());
|
|
|
32
30
|
id={'footnote-' + number}
|
|
33
31
|
label="footnote, press escape to edit"
|
|
34
32
|
>
|
|
35
|
-
<sup slot="interactor" class="bookish-footnote-symbol">{letter}</sup
|
|
36
|
-
>
|
|
37
33
|
<!-- We prevent default on the span to prevent mouse events from bubbling up to the footnote symbol. This is key for two reasons:
|
|
38
34
|
1) clicks on the footnote select the footnote atom node itself
|
|
39
35
|
2) we want to be able to click on footnote text and we can't do that if the footnote sets the caret to the atom after clicks. -->
|
|
36
|
+
<sup slot="interactor" class="bookish-footnote-symbol">{letter}</sup
|
|
37
|
+
>
|
|
40
38
|
<span
|
|
41
39
|
slot="content"
|
|
42
40
|
class={`bookish-footnote ${
|
|
43
41
|
focused ? 'bookish-footnote-focused' : ''
|
|
44
42
|
}`}
|
|
45
|
-
on:mousedown|preventDefault
|
|
46
43
|
>
|
|
47
44
|
<sup class="bookish-footnote-symbol">{letter}</sup><Format
|
|
48
45
|
node={content}
|
|
@@ -54,6 +51,10 @@ afterUpdate(() => $chapter?.layoutMarginals());
|
|
|
54
51
|
</Atom>
|
|
55
52
|
|
|
56
53
|
<style>
|
|
54
|
+
sup {
|
|
55
|
+
line-height: 0;
|
|
56
|
+
}
|
|
57
|
+
|
|
57
58
|
.bookish-footnote-focused {
|
|
58
59
|
outline: 2px solid var(--bookish-highlight-color);
|
|
59
60
|
}
|
|
@@ -65,7 +66,7 @@ afterUpdate(() => $chapter?.layoutMarginals());
|
|
|
65
66
|
color: var(--bookish-paragraph-color);
|
|
66
67
|
font-weight: 300;
|
|
67
68
|
font-size: var(--bookish-small-font-size);
|
|
68
|
-
line-height: 1.5em;
|
|
69
|
+
/* line-height: 1.5em; */
|
|
69
70
|
}
|
|
70
71
|
|
|
71
72
|
.bookish-footnote-symbol {
|
|
@@ -75,26 +76,14 @@ afterUpdate(() => $chapter?.layoutMarginals());
|
|
|
75
76
|
position: relative;
|
|
76
77
|
}
|
|
77
78
|
|
|
78
|
-
/* This enables us to layout the numbers and letters in a neat right-aligned floating grid. */
|
|
79
|
-
.bookish-footnote {
|
|
80
|
-
position: relative;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
79
|
.bookish-footnote {
|
|
84
80
|
display: block;
|
|
85
81
|
line-height: var(--bookish-paragraph-line-height-tight);
|
|
86
|
-
margin-left: 1rem;
|
|
87
|
-
margin-bottom: 1rem;
|
|
88
|
-
text-align: left;
|
|
89
82
|
}
|
|
90
83
|
|
|
91
84
|
.bookish-footnote .bookish-footnote-symbol {
|
|
92
85
|
display: block;
|
|
93
86
|
float: left;
|
|
94
|
-
margin-
|
|
95
|
-
position: absolute;
|
|
96
|
-
left: -1.75em;
|
|
97
|
-
text-align: right;
|
|
98
|
-
width: 1.5em; /* Just enough space for 2 digits, a bit of a hack */
|
|
87
|
+
margin-left: -1em;
|
|
99
88
|
}
|
|
100
89
|
</style>
|
|
@@ -19,10 +19,9 @@ import Link from './Link.svelte';
|
|
|
19
19
|
import Comment from './Comment.svelte';
|
|
20
20
|
import Text from './Text.svelte';
|
|
21
21
|
import Format from './Format.svelte';
|
|
22
|
-
import {
|
|
22
|
+
import { isChapterEditable, isEditionEditable } from '../page/Contexts';
|
|
23
23
|
export let node;
|
|
24
24
|
export let placeholder = undefined;
|
|
25
|
-
let editable = isEditable();
|
|
26
25
|
$: format = node.getFormat();
|
|
27
26
|
$: tag =
|
|
28
27
|
format === '*'
|
|
@@ -35,7 +34,9 @@ $: tag =
|
|
|
35
34
|
? 'sub'
|
|
36
35
|
: 'span';
|
|
37
36
|
$: showPlaceholder =
|
|
38
|
-
node.isEmptyText() &&
|
|
37
|
+
node.isEmptyText() &&
|
|
38
|
+
placeholder !== undefined &&
|
|
39
|
+
(isChapterEditable() || isEditionEditable());
|
|
39
40
|
</script>
|
|
40
41
|
|
|
41
42
|
<svelte:element
|
|
@@ -46,7 +47,7 @@ $: showPlaceholder =
|
|
|
46
47
|
{#each node.getSegments() as segment (segment.nodeID)}
|
|
47
48
|
{#if segment instanceof TextNode}<Text
|
|
48
49
|
node={segment}
|
|
49
|
-
placeholder={node.getSegments().length === 1
|
|
50
|
+
placeholder={showPlaceholder && node.getSegments().length === 1
|
|
50
51
|
? placeholder
|
|
51
52
|
: undefined}
|
|
52
53
|
/>
|
|
File without changes
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<svelte:options immutable={true} />
|
|
2
2
|
|
|
3
|
-
<script>import {
|
|
3
|
+
<script>import { isChapterEditable } from '../page/Contexts';
|
|
4
4
|
import Code from './Code.svelte';
|
|
5
5
|
import Text from './Text.svelte';
|
|
6
6
|
export let node;
|
|
7
|
-
let editable =
|
|
7
|
+
let editable = isChapterEditable();
|
|
8
8
|
</script>
|
|
9
9
|
|
|
10
10
|
{#if editable}
|
|
File without changes
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
<svelte:options immutable={true} />
|
|
2
2
|
|
|
3
3
|
<script>import Atom from './Atom.svelte';
|
|
4
|
-
import { getChapter,
|
|
4
|
+
import { getChapter, getRoot, isChapterEditable } from '../page/Contexts';
|
|
5
5
|
import Problem from './Problem.svelte';
|
|
6
6
|
export let node;
|
|
7
|
-
let editable =
|
|
7
|
+
let editable = isChapterEditable();
|
|
8
8
|
let chapter = getChapter();
|
|
9
|
-
let
|
|
10
|
-
$: ast =
|
|
11
|
-
$edition && $chapter ? $chapter.chapter.getAST($edition) : undefined;
|
|
9
|
+
let root = getRoot();
|
|
12
10
|
$: duplicate =
|
|
13
|
-
|
|
11
|
+
$root === undefined
|
|
14
12
|
? false
|
|
15
|
-
:
|
|
13
|
+
: $root.getLabels().filter((l) => l.getMeta() === node.getMeta())
|
|
16
14
|
.length > 1;
|
|
17
15
|
</script>
|
|
18
16
|
|
|
File without changes
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
<svelte:options immutable={true} />
|
|
2
2
|
|
|
3
|
-
<script>import { getBase, getEdition,
|
|
3
|
+
<script>import { getBase, getEdition, isChapterEditable } from '../page/Contexts';
|
|
4
4
|
import Text from './Text.svelte';
|
|
5
5
|
import Problem from './Problem.svelte';
|
|
6
6
|
export let node;
|
|
7
7
|
let base = getBase();
|
|
8
|
-
let editable =
|
|
8
|
+
let editable = isChapterEditable();
|
|
9
9
|
let edition = getEdition();
|
|
10
10
|
$: url = node.getMeta();
|
|
11
11
|
$: content = node.getText();
|
|
@@ -35,20 +35,22 @@ function isInvalidChapterLink() {
|
|
|
35
35
|
<a href={url} target="_blank" rel="noreferrer"><Text node={content} /></a>
|
|
36
36
|
<!-- If's a chapter link with a label -->
|
|
37
37
|
{:else if url.indexOf(':') >= 0}
|
|
38
|
-
<!-- If the chapter isn't specified, set to the current chapter's id. -->
|
|
39
38
|
{#if url.split(':')[0] === ''}
|
|
39
|
+
<!-- If the chapter isn't specified, assume this chapter. -->
|
|
40
40
|
<a href={'#' + url.split(':')[1]}><Text node={content} /></a>
|
|
41
41
|
{:else}
|
|
42
|
-
|
|
42
|
+
<!-- If it is specified, include the base relative chapter ID and the label -->
|
|
43
|
+
<a href={`${$base}/${url.split(':')[0]}#${url.split(':')[1]}`}
|
|
43
44
|
><Text node={content} /></a
|
|
44
45
|
>
|
|
45
46
|
{/if}
|
|
46
|
-
<!-- If this is internal link, make a route link to the chapter. -->
|
|
47
47
|
{:else}
|
|
48
|
-
|
|
48
|
+
<!-- If this is internal link, make a route link to the chapter. -->
|
|
49
|
+
<a href={`${$base}/${url}`}><Text node={content} /></a>
|
|
49
50
|
{/if}
|
|
50
51
|
|
|
51
52
|
<style>
|
|
53
|
+
a,
|
|
52
54
|
.bookish-editor-link {
|
|
53
55
|
color: var(--bookish-link-color);
|
|
54
56
|
font-weight: var(--bookish-link-font-weight);
|
|
File without changes
|
|
File without changes
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
<script>import { isMobile, watchMobile } from '../../util/isMobile';
|
|
4
4
|
import { onMount } from 'svelte';
|
|
5
|
-
import { getCaret, getChapter,
|
|
5
|
+
import { getCaret, getChapter, isChapterEditable, } from '../page/Contexts';
|
|
6
|
+
import AtomNode from '../../models/chapter/AtomNode';
|
|
6
7
|
export let node;
|
|
7
8
|
export let id;
|
|
8
9
|
export let label;
|
|
9
10
|
let hovered = false;
|
|
10
11
|
let chapter = getChapter();
|
|
11
|
-
$: editable =
|
|
12
|
+
$: editable = isChapterEditable();
|
|
12
13
|
let caret = getCaret();
|
|
13
14
|
// If there's no marginal selected or this is different from the current selection, this is hidden.
|
|
14
15
|
$: selectedMarginal = $chapter?.marginal;
|
|
@@ -20,9 +21,23 @@ $: isHidden = editable
|
|
|
20
21
|
.some((ancestor) => ancestor === node))
|
|
21
22
|
: // If not editable, it's hidden if it's not selected.
|
|
22
23
|
$selectedMarginal !== id;
|
|
23
|
-
function toggle() {
|
|
24
|
-
if (editable)
|
|
25
|
-
|
|
24
|
+
function toggle(event, interactor) {
|
|
25
|
+
if (editable) {
|
|
26
|
+
if (interactor) {
|
|
27
|
+
if (editable && $caret && node instanceof AtomNode) {
|
|
28
|
+
// Select this so that the view stays focused.
|
|
29
|
+
$caret.setCaret({
|
|
30
|
+
start: { node, index: 0 },
|
|
31
|
+
end: { node, index: 0 },
|
|
32
|
+
});
|
|
33
|
+
if (event) {
|
|
34
|
+
event.stopPropagation();
|
|
35
|
+
event.preventDefault();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
26
41
|
if ($chapter) {
|
|
27
42
|
if (isMobile() && isHidden)
|
|
28
43
|
$chapter.marginal.set(id);
|
|
@@ -39,8 +54,8 @@ function handleExit() {
|
|
|
39
54
|
}
|
|
40
55
|
onMount(() => {
|
|
41
56
|
const mediaWatch = watchMobile();
|
|
42
|
-
mediaWatch.addEventListener('change', toggle);
|
|
43
|
-
return () => mediaWatch.removeEventListener('change', toggle);
|
|
57
|
+
mediaWatch.addEventListener('change', () => toggle(undefined, false));
|
|
58
|
+
return () => mediaWatch.removeEventListener('change', () => toggle(undefined, false));
|
|
44
59
|
});
|
|
45
60
|
</script>
|
|
46
61
|
|
|
@@ -51,10 +66,11 @@ onMount(() => {
|
|
|
51
66
|
editable ? '' : 'interactive'
|
|
52
67
|
}`}
|
|
53
68
|
aria-label={label}
|
|
54
|
-
|
|
55
|
-
on:mousedown={toggle}
|
|
69
|
+
on:mousedown={(event) => toggle(event, true)}
|
|
56
70
|
on:keydown={(event) =>
|
|
57
|
-
event.key === 'Enter' || event.key === ' '
|
|
71
|
+
event.key === 'Enter' || event.key === ' '
|
|
72
|
+
? toggle(undefined, true)
|
|
73
|
+
: undefined}
|
|
58
74
|
on:mouseenter={handleEnter}
|
|
59
75
|
on:mouseleave={handleExit}><slot name="interactor" /></span
|
|
60
76
|
><span
|
|
@@ -62,9 +78,11 @@ onMount(() => {
|
|
|
62
78
|
(isHidden ? ' bookish-marginal-hidden' : '') +
|
|
63
79
|
(hovered ? ' bookish-marginal-hovered' : '')}
|
|
64
80
|
tabIndex={editable ? null : 0}
|
|
65
|
-
on:mousedown={toggle}
|
|
81
|
+
on:mousedown={() => toggle(undefined, false)}
|
|
66
82
|
on:keydown={(event) =>
|
|
67
|
-
event.key === 'Enter' || event.key === ' '
|
|
83
|
+
event.key === 'Enter' || event.key === ' '
|
|
84
|
+
? toggle(undefined, false)
|
|
85
|
+
: undefined}
|
|
68
86
|
on:mouseenter={handleEnter}
|
|
69
87
|
on:mouseleave={handleExit}
|
|
70
88
|
>
|
|
File without changes
|
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
<svelte:options immutable={true} />
|
|
2
2
|
|
|
3
3
|
<script>import Format from './Format.svelte';
|
|
4
|
-
import { getChapter, getEdition } from '../page/Contexts';
|
|
4
|
+
import { getChapter, getEdition, getRoot } from '../page/Contexts';
|
|
5
5
|
export let node;
|
|
6
6
|
export let placeholder = undefined;
|
|
7
7
|
$: level = node.getLevel();
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
let chapter = getChapter();
|
|
9
|
+
let edition = getEdition();
|
|
10
|
+
let root = getRoot();
|
|
10
11
|
$: id =
|
|
11
|
-
node.getLevel() === 0 ||
|
|
12
|
-
$chapter === undefined ||
|
|
13
|
-
$edition === undefined
|
|
12
|
+
node.getLevel() === 0 || $edition === undefined
|
|
14
13
|
? undefined
|
|
15
|
-
: 'header-' +
|
|
16
|
-
($chapter.chapter.getAST($edition)?.getHeaders().indexOf(node) ??
|
|
17
|
-
'');
|
|
14
|
+
: 'header-' + ($root.getHeaders().indexOf(node) ?? '');
|
|
18
15
|
$: classes =
|
|
19
16
|
node.getLevel() === 0
|
|
20
17
|
? undefined
|
|
21
|
-
: '
|
|
18
|
+
: 'page-header' +
|
|
22
19
|
($chapter && $chapter.highlightedID === id
|
|
23
20
|
? ' bookish-content-highlight'
|
|
24
21
|
: '');
|
|
@@ -56,6 +53,22 @@ $: classes =
|
|
|
56
53
|
min-height: var(--bookish-paragraph-line-height);
|
|
57
54
|
}
|
|
58
55
|
|
|
56
|
+
/* This implements a drop cap in the first letter of the first text in the first format of the first paragraph of a chapter (but only chapters). */
|
|
57
|
+
:global(.chapter-content) p:first-of-type:not(.placeholder)::first-letter {
|
|
58
|
+
padding: 0 0.25rem;
|
|
59
|
+
margin: 0 0.25rem 0 0;
|
|
60
|
+
font-size: 4rem;
|
|
61
|
+
font-weight: 700;
|
|
62
|
+
float: left;
|
|
63
|
+
line-height: 1;
|
|
64
|
+
color: var(--bookish-paragraph-color);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.placeholder {
|
|
68
|
+
color: var(--bookish-muted-color);
|
|
69
|
+
font-style: italic;
|
|
70
|
+
}
|
|
71
|
+
|
|
59
72
|
h2,
|
|
60
73
|
h3,
|
|
61
74
|
h4,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|