bookish-press 0.4.0 → 0.4.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/components/Auth.svelte +19 -14
- package/components/Auth.svelte.d.ts +4 -4
- package/components/Authentication.d.ts +2 -2
- package/components/BookPreview.svelte +77 -59
- package/components/BookPreview.svelte.d.ts +5 -5
- package/components/External.svelte +1 -1
- package/components/External.svelte.d.ts +3 -3
- package/components/Link.svelte +49 -3
- package/components/Link.svelte.d.ts +3 -4
- package/components/app/BookList.svelte +19 -0
- package/components/app/BookList.svelte.d.ts +18 -0
- package/components/app/Button.svelte +49 -0
- package/components/app/Button.svelte.d.ts +22 -0
- package/components/app/Feedback.svelte +45 -0
- package/components/app/Feedback.svelte.d.ts +18 -0
- package/components/app/Head.svelte +12 -0
- package/components/app/Head.svelte.d.ts +27 -0
- package/components/app/Large.svelte +8 -0
- package/components/app/Large.svelte.d.ts +27 -0
- package/components/app/Lead.svelte +12 -0
- package/components/app/Lead.svelte.d.ts +27 -0
- package/components/app/Link.svelte +24 -0
- package/components/app/Link.svelte.d.ts +20 -0
- package/components/app/Options.svelte +24 -0
- package/components/app/Options.svelte.d.ts +19 -0
- package/components/app/Paragraph.svelte +19 -0
- package/components/app/Paragraph.svelte.d.ts +18 -0
- package/components/app/Table.svelte +32 -0
- package/components/app/Table.svelte.d.ts +27 -0
- package/components/app/TextInput.svelte +37 -0
- package/components/app/TextInput.svelte.d.ts +22 -0
- package/components/app/Writing.svelte +13 -0
- package/components/app/Writing.svelte.d.ts +27 -0
- package/components/chapter/Atom.svelte +20 -6
- package/components/chapter/Atom.svelte.d.ts +3 -3
- package/components/chapter/Block.svelte +23 -20
- package/components/chapter/Block.svelte.d.ts +4 -4
- package/components/chapter/Callout.svelte +38 -7
- package/components/chapter/Callout.svelte.d.ts +4 -4
- package/components/chapter/CaptionedCode.svelte +66 -23
- package/components/chapter/CaptionedCode.svelte.d.ts +4 -4
- package/components/chapter/ChapterBody.svelte +61 -9
- package/components/chapter/ChapterBody.svelte.d.ts +4 -4
- package/components/chapter/Citations.svelte +86 -20
- package/components/chapter/Citations.svelte.d.ts +4 -4
- package/components/chapter/Code.svelte +152 -21
- package/components/chapter/Code.svelte.d.ts +3 -3
- package/components/chapter/Comment.svelte +38 -16
- package/components/chapter/Comment.svelte.d.ts +3 -3
- package/components/chapter/Definition.svelte +52 -18
- package/components/chapter/Definition.svelte.d.ts +5 -8
- package/components/chapter/Embed.svelte +154 -66
- package/components/chapter/Embed.svelte.d.ts +5 -4
- package/components/chapter/ErrorMessage.svelte +7 -2
- package/components/chapter/ErrorMessage.svelte.d.ts +4 -4
- package/components/chapter/ExtendedPrism.d.ts +2 -0
- package/components/chapter/ExtendedPrism.js +69 -0
- package/components/chapter/Figure.svelte +90 -0
- package/components/chapter/Figure.svelte.d.ts +24 -0
- package/components/chapter/Footnote.svelte +75 -12
- package/components/chapter/Footnote.svelte.d.ts +4 -4
- package/components/chapter/Format.svelte +60 -37
- package/components/chapter/Format.svelte.d.ts +4 -4
- package/components/chapter/InlineCode.svelte +15 -5
- package/components/chapter/InlineCode.svelte.d.ts +4 -4
- package/components/chapter/Label.svelte +37 -8
- package/components/chapter/Label.svelte.d.ts +4 -4
- package/components/chapter/Link.svelte +23 -18
- package/components/chapter/Link.svelte.d.ts +4 -4
- package/components/chapter/List.svelte +75 -8
- package/components/chapter/List.svelte.d.ts +4 -4
- package/components/chapter/Marginal.svelte +169 -27
- package/components/chapter/Marginal.svelte.d.ts +6 -3
- package/components/chapter/Paragraph.svelte +74 -6
- package/components/chapter/Paragraph.svelte.d.ts +4 -4
- package/components/chapter/Positioned.svelte +33 -0
- package/components/chapter/Positioned.svelte.d.ts +19 -0
- package/components/chapter/Problem.svelte +15 -0
- package/components/chapter/Problem.svelte.d.ts +27 -0
- package/components/chapter/Python.svelte +68 -21
- package/components/chapter/Python.svelte.d.ts +4 -4
- package/components/chapter/Quote.svelte +64 -11
- package/components/chapter/Quote.svelte.d.ts +4 -4
- package/components/chapter/Rule.svelte +12 -1
- package/components/chapter/Rule.svelte.d.ts +4 -4
- package/components/chapter/Table.svelte +36 -25
- package/components/chapter/Table.svelte.d.ts +4 -4
- package/components/chapter/Text.svelte +61 -36
- package/components/chapter/Text.svelte.d.ts +5 -4
- package/components/editor/BookishEditor.svelte +343 -237
- package/components/editor/BookishEditor.svelte.d.ts +5 -5
- package/components/editor/CalloutEditor.svelte +5 -5
- package/components/editor/CalloutEditor.svelte.d.ts +4 -4
- package/components/editor/CaptionedCodeEditor.svelte +16 -12
- package/components/editor/CaptionedCodeEditor.svelte.d.ts +4 -4
- package/components/editor/CaretContext.d.ts +48 -16
- package/components/editor/CaretState.d.ts +16 -44
- package/components/editor/CaretUtilities.d.ts +2 -2
- package/components/editor/CaretView.svelte +80 -0
- package/components/editor/CaretView.svelte.d.ts +24 -0
- package/components/editor/CitationsEditor.svelte +36 -25
- package/components/editor/CitationsEditor.svelte.d.ts +4 -4
- package/components/editor/Clipboard.d.ts +2 -2
- package/components/editor/Command.d.ts +13 -12
- package/components/editor/Commands.d.ts +1 -1
- package/components/editor/Commands.js +1114 -571
- package/components/editor/ConfirmButton.svelte +18 -12
- package/components/editor/ConfirmButton.svelte.d.ts +5 -4
- package/components/editor/DefinitionEditor.svelte +29 -21
- package/components/editor/DefinitionEditor.svelte.d.ts +4 -4
- package/components/editor/EmbedEditor.svelte +93 -43
- package/components/editor/EmbedEditor.svelte.d.ts +3 -3
- package/components/editor/Icon.svelte +17 -0
- package/components/editor/Icon.svelte.d.ts +16 -0
- package/components/editor/ImageChooser.svelte +53 -34
- package/components/editor/ImageChooser.svelte.d.ts +3 -3
- package/components/editor/InlineCodeEditor.svelte +7 -4
- package/components/editor/InlineCodeEditor.svelte.d.ts +4 -4
- package/components/editor/LabelEditor.svelte +20 -11
- package/components/editor/LabelEditor.svelte.d.ts +4 -4
- package/components/editor/LanguageEditor.svelte +10 -7
- package/components/editor/LanguageEditor.svelte.d.ts +3 -3
- package/components/editor/LinkEditor.svelte +64 -39
- package/components/editor/LinkEditor.svelte.d.ts +4 -4
- package/components/editor/Note.svelte +3 -3
- package/components/editor/Note.svelte.d.ts +6 -2
- package/components/editor/PositionEditor.svelte +9 -6
- package/components/editor/PositionEditor.svelte.d.ts +4 -4
- package/components/editor/QuoteEditor.svelte +7 -2
- package/components/editor/QuoteEditor.svelte.d.ts +4 -4
- package/components/editor/Switch.svelte +55 -28
- package/components/editor/Switch.svelte.d.ts +4 -4
- package/components/editor/TableEditor.svelte +10 -0
- package/components/editor/TableEditor.svelte.d.ts +17 -0
- package/components/editor/TextEditor.svelte +83 -45
- package/components/editor/TextEditor.svelte.d.ts +5 -4
- package/components/editor/Toggle.svelte +11 -8
- package/components/editor/Toggle.svelte.d.ts +4 -4
- package/components/editor/Toolbar.svelte +192 -144
- package/components/editor/Toolbar.svelte.d.ts +5 -8
- package/components/editor/ToolbarGroup.svelte +18 -23
- package/components/editor/ToolbarGroup.svelte.d.ts +3 -4
- package/components/editor/ToolbarSpacer.svelte +8 -1
- package/components/editor/ToolbarSpacer.svelte.d.ts +6 -2
- package/components/editor/URLEditor.svelte +6 -8
- package/components/editor/URLEditor.svelte.d.ts +3 -3
- package/components/editor/UndoState.d.ts +3 -3
- package/components/editor/icons/annotate.svg +1 -0
- package/components/editor/icons/block.svg +1 -0
- package/components/editor/icons/bold.svg +1 -0
- package/components/editor/icons/bullets.svg +1 -0
- package/components/editor/icons/callout.svg +1 -0
- package/components/editor/icons/citation.svg +8 -0
- package/components/editor/icons/clear.svg +1 -0
- package/components/editor/icons/clipboard.svg +1 -0
- package/components/editor/icons/code.svg +1 -0
- package/components/editor/icons/columnafter.svg +1 -0
- package/components/editor/icons/columnbefore.svg +1 -0
- package/components/editor/icons/comment.svg +1 -0
- package/components/editor/icons/copy.svg +1 -0
- package/components/editor/icons/cut.svg +1 -0
- package/components/editor/icons/define.svg +7 -0
- package/components/editor/icons/deletecolumn.svg +1 -0
- package/components/editor/icons/deleterow.svg +1 -0
- package/components/editor/icons/footnote.svg +8 -0
- package/components/editor/icons/header1.svg +7 -0
- package/components/editor/icons/header2.svg +7 -0
- package/components/editor/icons/header3.svg +7 -0
- package/components/editor/icons/home.svg +1 -0
- package/components/editor/icons/indent.svg +1 -0
- package/components/editor/icons/italic.svg +1 -0
- package/components/editor/icons/label.svg +1 -0
- package/components/editor/icons/left.svg +1 -0
- package/components/editor/icons/level.svg +1 -0
- package/components/editor/icons/link.svg +1 -0
- package/components/editor/icons/list.svg +1 -0
- package/components/editor/icons/media.svg +1 -0
- package/components/editor/icons/middle.svg +1 -0
- package/components/editor/icons/numbers.svg +10 -0
- package/components/editor/icons/paragraph.svg +1 -0
- package/components/editor/icons/paste.svg +10 -0
- package/components/editor/icons/quote.svg +1 -0
- package/components/editor/icons/redo.svg +1 -0
- package/components/editor/icons/right.svg +1 -0
- package/components/editor/icons/rowabove.svg +1 -0
- package/components/editor/icons/rowbelow.svg +1 -0
- package/components/editor/icons/rule.svg +1 -0
- package/components/editor/icons/sub.svg +1 -0
- package/components/editor/icons/super.svg +1 -0
- package/components/editor/icons/table.svg +1 -0
- package/components/editor/icons/text.svg +1 -0
- package/components/editor/icons/time.svg +1 -0
- package/components/editor/icons/undo.svg +1 -0
- package/components/editor/icons/unindent.svg +1 -0
- package/components/editor/icons/unlink.svg +1 -0
- package/components/page/Acknowledgements.svelte +31 -22
- package/components/page/Acknowledgements.svelte.d.ts +4 -4
- package/components/page/Authors.svelte +34 -14
- package/components/page/Authors.svelte.d.ts +6 -6
- package/components/page/BulkReferenceEditor.svelte +53 -22
- package/components/page/BulkReferenceEditor.svelte.d.ts +4 -4
- package/components/page/Chapter.svelte +196 -141
- package/components/page/Chapter.svelte.d.ts +3 -3
- package/components/page/ChapterContext.d.ts +4 -4
- package/components/page/ChapterNumber.svelte +9 -0
- package/components/page/ChapterNumber.svelte.d.ts +27 -0
- package/components/page/ChapterTitle.svelte +16 -0
- package/components/page/ChapterTitle.svelte.d.ts +18 -0
- package/components/page/Contexts.d.ts +31 -20
- package/components/page/Contexts.js +47 -17
- package/components/page/DefinitionView.svelte +115 -86
- package/components/page/DefinitionView.svelte.d.ts +3 -3
- package/components/page/Description.svelte +27 -18
- package/components/page/Description.svelte.d.ts +4 -4
- package/components/page/Edition.svelte +127 -74
- package/components/page/Edition.svelte.d.ts +4 -4
- package/components/page/Editions.svelte +144 -0
- package/components/page/Editions.svelte.d.ts +14 -0
- package/components/page/Glossary.svelte +57 -48
- package/components/page/Glossary.svelte.d.ts +4 -4
- package/components/page/Header.svelte +129 -44
- package/components/page/Header.svelte.d.ts +6 -6
- package/components/page/Index.svelte +114 -80
- package/components/page/Index.svelte.d.ts +4 -4
- package/components/page/Instructions.svelte +18 -16
- package/components/page/Instructions.svelte.d.ts +4 -4
- package/components/page/License.svelte +29 -21
- package/components/page/License.svelte.d.ts +4 -4
- package/components/page/Loading.svelte +102 -12
- package/components/page/Loading.svelte.d.ts +6 -2
- package/components/page/Media.svelte +77 -51
- package/components/page/Media.svelte.d.ts +4 -4
- package/components/page/MediaPreview.svelte +26 -8
- package/components/page/MediaPreview.svelte.d.ts +3 -3
- package/components/page/Muted.svelte +10 -0
- package/components/page/Muted.svelte.d.ts +27 -0
- package/components/page/Outline.svelte +279 -59
- package/components/page/Outline.svelte.d.ts +3 -3
- package/components/page/Page.svelte +40 -9
- package/components/page/Page.svelte.d.ts +3 -3
- package/components/page/PageHeader.svelte +14 -0
- package/components/page/PageHeader.svelte.d.ts +18 -0
- package/components/page/PageParagraph.svelte +18 -0
- package/components/page/PageParagraph.svelte.d.ts +27 -0
- package/components/page/PossibleChapter.svelte +7 -7
- package/components/page/PossibleChapter.svelte.d.ts +4 -4
- package/components/page/PossibleReference.svelte +6 -11
- package/components/page/PossibleReference.svelte.d.ts +6 -7
- package/components/page/Print.svelte +27 -3
- package/components/page/Print.svelte.d.ts +4 -4
- package/components/page/Reference.svelte +256 -113
- package/components/page/Reference.svelte.d.ts +5 -5
- package/components/page/References.svelte +39 -47
- package/components/page/References.svelte.d.ts +4 -4
- package/components/page/Rows.svelte +54 -0
- package/components/page/Rows.svelte.d.ts +27 -0
- package/components/page/Search.svelte +86 -63
- package/components/page/Search.svelte.d.ts +4 -4
- package/components/page/Status.svelte +43 -35
- package/components/page/Status.svelte.d.ts +4 -9
- package/components/page/SubdomainEditor.svelte +40 -27
- package/components/page/SubdomainEditor.svelte.d.ts +4 -4
- package/components/page/TableOfContents.svelte +225 -190
- package/components/page/TableOfContents.svelte.d.ts +4 -4
- package/components/page/TableOfContentsImage.svelte +8 -8
- package/components/page/TableOfContentsImage.svelte.d.ts +3 -3
- package/components/page/TableOfContentsRow.svelte +96 -33
- package/components/page/TableOfContentsRow.svelte.d.ts +4 -4
- package/components/page/ThemeEditor.svelte +174 -39
- package/components/page/ThemeEditor.svelte.d.ts +4 -4
- package/components/page/ThemeEditorPreview.svelte +35 -23
- package/components/page/ThemeEditorPreview.svelte.d.ts +5 -5
- package/components/page/ThemeSetEditor.svelte +15 -13
- package/components/page/ThemeSetEditor.svelte.d.ts +4 -4
- package/components/page/ThemeVariableEditor.svelte +24 -15
- package/components/page/ThemeVariableEditor.svelte.d.ts +3 -3
- package/components/page/Title.svelte +12 -0
- package/components/page/Title.svelte.d.ts +27 -0
- package/components/page/Unknown.svelte +25 -21
- package/components/page/Unknown.svelte.d.ts +4 -4
- package/components/page/margins.js +50 -33
- package/index.d.ts +14 -0
- package/index.js +14 -0
- package/models/CRUD.d.ts +17 -0
- package/models/CRUD.js +194 -0
- package/models/Firebase.js +17 -15
- package/models/book/Book.d.ts +24 -28
- package/models/book/Book.js +120 -113
- package/models/book/BookMedia.d.ts +3 -3
- package/models/book/BookMedia.js +22 -16
- package/models/book/BookSaveStatus.d.ts +7 -0
- package/models/book/BookSaveStatus.js +8 -0
- package/models/book/Chapter.d.ts +46 -39
- package/models/book/Chapter.js +180 -198
- package/models/book/ChapterID.js +7 -7
- package/models/book/Definition.d.ts +1 -1
- package/models/book/Edition.d.ts +62 -60
- package/models/book/Edition.js +385 -303
- package/models/book/Reference.d.ts +24 -0
- package/models/book/Reference.js +78 -0
- package/models/book/Schema.d.ts +169 -0
- package/models/book/Schema.js +114 -0
- package/models/book/Theme.d.ts +44 -37
- package/models/book/Theme.js +452 -52
- package/models/book/ThemeColors.d.ts +1 -1
- package/models/book/Words.d.ts +2 -0
- package/models/book/Words.js +110 -0
- package/models/chapter/AtomNode.d.ts +4 -4
- package/models/chapter/AtomNode.js +20 -13
- package/models/chapter/BlockNode.d.ts +9 -10
- package/models/chapter/BlockNode.js +32 -13
- package/models/chapter/BlocksNode.d.ts +10 -10
- package/models/chapter/BlocksNode.js +315 -120
- package/models/chapter/BlocksNode.test.js +494 -228
- package/models/chapter/Bookkeeping.d.ts +1 -1
- package/models/chapter/CalloutNode.d.ts +3 -3
- package/models/chapter/CalloutNode.js +34 -12
- package/models/chapter/Caret.d.ts +9 -7
- package/models/chapter/Caret.js +11 -6
- package/models/chapter/ChapterNode.d.ts +11 -11
- package/models/chapter/ChapterNode.js +70 -33
- package/models/chapter/CitationsNode.d.ts +3 -3
- package/models/chapter/CitationsNode.js +31 -12
- package/models/chapter/CodeNode.d.ts +11 -6
- package/models/chapter/CodeNode.js +143 -34
- package/models/chapter/CommentNode.d.ts +5 -5
- package/models/chapter/CommentNode.js +29 -13
- package/models/chapter/DefinitionNode.d.ts +2 -2
- package/models/chapter/DefinitionNode.js +15 -7
- package/models/chapter/Edit.d.ts +3 -3
- package/models/chapter/EmbedNode.d.ts +9 -5
- package/models/chapter/EmbedNode.js +108 -35
- package/models/chapter/ErrorNode.d.ts +2 -2
- package/models/chapter/ErrorNode.js +34 -12
- package/models/chapter/FootnoteNode.d.ts +5 -5
- package/models/chapter/FootnoteNode.js +34 -16
- package/models/chapter/FormatNode.d.ts +10 -10
- package/models/chapter/FormatNode.js +237 -106
- package/models/chapter/FormatNode.test.js +87 -45
- package/models/chapter/InlineCodeNode.d.ts +2 -2
- package/models/chapter/InlineCodeNode.js +22 -9
- package/models/chapter/LabelNode.d.ts +4 -4
- package/models/chapter/LabelNode.js +31 -13
- package/models/chapter/LinkNode.d.ts +2 -2
- package/models/chapter/LinkNode.js +21 -9
- package/models/chapter/ListNode.d.ts +8 -8
- package/models/chapter/ListNode.js +99 -38
- package/models/chapter/ListNode.test.js +29 -24
- package/models/chapter/MetadataNode.d.ts +3 -3
- package/models/chapter/MetadataNode.js +13 -5
- package/models/chapter/Node.d.ts +5 -3
- package/models/chapter/Node.js +76 -29
- package/models/chapter/Node.test.js +20 -18
- package/models/chapter/ParagraphNode.d.ts +6 -6
- package/models/chapter/ParagraphNode.js +84 -29
- package/models/chapter/ParagraphNode.test.js +22 -13
- package/models/chapter/Parser.d.ts +25 -25
- package/models/chapter/Parser.js +201 -189
- package/models/chapter/Parser.test.js +16 -16
- package/models/chapter/Position.d.ts +1 -1
- package/models/chapter/QuoteNode.d.ts +6 -6
- package/models/chapter/QuoteNode.js +61 -23
- package/models/chapter/RootNode.d.ts +4 -4
- package/models/chapter/RuleNode.d.ts +2 -2
- package/models/chapter/RuleNode.js +31 -11
- package/models/chapter/TableNode.d.ts +8 -6
- package/models/chapter/TableNode.js +89 -34
- package/models/chapter/TableNode.test.js +22 -24
- package/models/chapter/TextNode.d.ts +6 -6
- package/models/chapter/TextNode.js +72 -32
- package/models/chapter/TextNode.test.js +4 -4
- package/models/loadEdition.d.ts +1 -1
- package/models/loadEdition.js +10 -6
- package/package.json +104 -25
- package/util/getSubdomain.js +8 -6
- package/util/isMobile.js +1 -1
- package/util/mineReference.d.ts +3 -2
- package/util/mineReference.js +67 -29
- package/util/scrollToEyeLevel.js +6 -1
- package/components/chapter/renderPosition.d.ts +0 -3
- package/components/chapter/renderPosition.js +0 -4
- package/components/editor/ToolbarIcon.svelte +0 -22
- package/components/editor/ToolbarIcon.svelte.d.ts +0 -16
- package/components/page/Alert.svelte +0 -11
- package/components/page/Alert.svelte.d.ts +0 -23
- package/components/page/Revisions.svelte +0 -124
- package/components/page/Revisions.svelte.d.ts +0 -14
- package/models/BookLoader.d.ts +0 -2
- package/models/BookLoader.js +0 -67
- package/models/Firestore.d.ts +0 -22
- package/models/Firestore.js +0 -194
- package/models/chapter/ReferenceNode.d.ts +0 -29
- package/models/chapter/ReferenceNode.js +0 -48
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
|
-
import type RootNode from
|
|
2
|
+
import type RootNode from '../../models/chapter/RootNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
5
5
|
ast: RootNode;
|
|
6
|
-
save: (node: RootNode) => Promise<void> |
|
|
6
|
+
save: (node: RootNode) => Promise<void> | void;
|
|
7
7
|
chapter: boolean;
|
|
8
8
|
autofocus?: boolean | undefined;
|
|
9
9
|
component: ConstructorOfATypedSvelteComponent;
|
|
@@ -14,9 +14,9 @@ declare const __propDef: {
|
|
|
14
14
|
};
|
|
15
15
|
slots: {};
|
|
16
16
|
};
|
|
17
|
-
export
|
|
18
|
-
export
|
|
19
|
-
export
|
|
17
|
+
export type BookishEditorProps = typeof __propDef.props;
|
|
18
|
+
export type BookishEditorEvents = typeof __propDef.events;
|
|
19
|
+
export type BookishEditorSlots = typeof __propDef.slots;
|
|
20
20
|
export default class BookishEditor extends SvelteComponentTyped<BookishEditorProps, BookishEditorEvents, BookishEditorSlots> {
|
|
21
21
|
}
|
|
22
22
|
export {};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
<script>import PositionEditor from
|
|
1
|
+
<script>import PositionEditor from './PositionEditor.svelte';
|
|
2
2
|
import { getCaret } from '../page/Contexts';
|
|
3
3
|
export let callout;
|
|
4
4
|
let caret = getCaret();
|
|
5
5
|
</script>
|
|
6
6
|
|
|
7
|
-
<PositionEditor
|
|
8
|
-
value={callout.getPosition()}
|
|
9
|
-
edit={position => $caret?.edit(callout, callout.withPosition(position))}
|
|
10
|
-
/>
|
|
7
|
+
<PositionEditor
|
|
8
|
+
value={callout.getPosition()}
|
|
9
|
+
edit={(position) => $caret?.edit(callout, callout.withPosition(position))}
|
|
10
|
+
/>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
|
-
import type CalloutNode from
|
|
2
|
+
import type CalloutNode from '../../models/chapter/CalloutNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
5
5
|
callout: CalloutNode;
|
|
@@ -9,9 +9,9 @@ declare const __propDef: {
|
|
|
9
9
|
};
|
|
10
10
|
slots: {};
|
|
11
11
|
};
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
12
|
+
export type CalloutEditorProps = typeof __propDef.props;
|
|
13
|
+
export type CalloutEditorEvents = typeof __propDef.events;
|
|
14
|
+
export type CalloutEditorSlots = typeof __propDef.slots;
|
|
15
15
|
export default class CalloutEditor extends SvelteComponentTyped<CalloutEditorProps, CalloutEditorEvents, CalloutEditorSlots> {
|
|
16
16
|
}
|
|
17
17
|
export {};
|
|
@@ -1,22 +1,26 @@
|
|
|
1
|
-
<script>import LanguageEditor from
|
|
2
|
-
import PositionEditor from
|
|
3
|
-
import Switch from
|
|
4
|
-
import { getCaret } from
|
|
1
|
+
<script>import LanguageEditor from './LanguageEditor.svelte';
|
|
2
|
+
import PositionEditor from './PositionEditor.svelte';
|
|
3
|
+
import Switch from './Switch.svelte';
|
|
4
|
+
import { getCaret } from '../page/Contexts';
|
|
5
5
|
export let code;
|
|
6
6
|
let caret = getCaret();
|
|
7
7
|
</script>
|
|
8
|
+
|
|
8
9
|
<span>
|
|
9
10
|
<PositionEditor
|
|
10
11
|
value={code.getPosition()}
|
|
11
|
-
edit={value => $caret?.edit(code, code.withPosition(value))
|
|
12
|
+
edit={(value) => $caret?.edit(code, code.withPosition(value))}
|
|
12
13
|
/>
|
|
13
|
-
<LanguageEditor
|
|
14
|
-
|
|
14
|
+
<LanguageEditor
|
|
15
|
+
language={code.getLanguage()}
|
|
16
|
+
edit={(lang) => $caret?.edit(code, code.withLanguage(lang))}
|
|
17
|
+
/>
|
|
18
|
+
{#if code.getLanguage() === 'python'}
|
|
15
19
|
<Switch
|
|
16
|
-
options={[
|
|
17
|
-
value={code.isExecutable() ?
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
options={['executable', 'read only']}
|
|
21
|
+
value={code.isExecutable() ? 'executable' : 'read only'}
|
|
22
|
+
edit={(value) =>
|
|
23
|
+
$caret?.edit(code, code.withExecutable(value === 'executable'))}
|
|
20
24
|
/>
|
|
21
25
|
{/if}
|
|
22
|
-
</span>
|
|
26
|
+
</span>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
|
-
import type CodeNode from
|
|
2
|
+
import type CodeNode from '../../models/chapter/CodeNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
5
5
|
code: CodeNode;
|
|
@@ -9,9 +9,9 @@ declare const __propDef: {
|
|
|
9
9
|
};
|
|
10
10
|
slots: {};
|
|
11
11
|
};
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
12
|
+
export type CaptionedCodeEditorProps = typeof __propDef.props;
|
|
13
|
+
export type CaptionedCodeEditorEvents = typeof __propDef.events;
|
|
14
|
+
export type CaptionedCodeEditorSlots = typeof __propDef.slots;
|
|
15
15
|
export default class CaptionedCodeEditor extends SvelteComponentTyped<CaptionedCodeEditorProps, CaptionedCodeEditorEvents, CaptionedCodeEditorSlots> {
|
|
16
16
|
}
|
|
17
17
|
export {};
|
|
@@ -1,18 +1,50 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
4
|
-
import type
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import type Caret from '../../models/chapter/Caret';
|
|
2
|
+
import type { CaretRange } from '../../models/chapter/Caret';
|
|
3
|
+
import type ParagraphNode from '../../models/chapter/ParagraphNode';
|
|
4
|
+
import type AtomNode from '../../models/chapter/AtomNode';
|
|
5
|
+
import type FormatNode from '../../models/chapter/FormatNode';
|
|
6
|
+
import type BlocksNode from '../../models/chapter/BlocksNode';
|
|
7
|
+
import type ListNode from '../../models/chapter/ListNode';
|
|
8
|
+
import type TableNode from '../../models/chapter/TableNode';
|
|
9
|
+
import type MetadataNode from '../../models/chapter/MetadataNode';
|
|
10
|
+
import type RootNode from '../../models/chapter/RootNode';
|
|
11
|
+
import type Edit from '../../models/chapter/Edit';
|
|
12
|
+
import type CodeNode from '../../models/chapter/CodeNode';
|
|
13
|
+
import type BlockNode from '../../models/chapter/BlockNode';
|
|
14
|
+
import type Clipboard from './Clipboard';
|
|
15
|
+
import type UndoState from './UndoState';
|
|
16
|
+
import type Node from '../../models/chapter/Node';
|
|
17
|
+
export type PasteContent = {
|
|
18
|
+
plain: string | undefined;
|
|
19
|
+
};
|
|
20
|
+
type CaretContext = {
|
|
21
|
+
chapter: boolean;
|
|
22
|
+
range: CaretRange;
|
|
23
|
+
start: Caret;
|
|
24
|
+
end: Caret;
|
|
25
|
+
isSelection: boolean;
|
|
15
26
|
root: RootNode;
|
|
16
|
-
|
|
17
|
-
|
|
27
|
+
blocks: BlocksNode | undefined;
|
|
28
|
+
paragraph: ParagraphNode | undefined;
|
|
29
|
+
block: BlockNode | undefined;
|
|
30
|
+
includesList: boolean;
|
|
31
|
+
code: CodeNode | undefined;
|
|
32
|
+
list: ListNode | undefined;
|
|
33
|
+
table: TableNode | undefined;
|
|
34
|
+
format: FormatNode | undefined;
|
|
35
|
+
atom: AtomNode<any> | undefined;
|
|
36
|
+
meta: MetadataNode<any> | undefined;
|
|
37
|
+
startIsText: boolean;
|
|
38
|
+
endIsText: boolean;
|
|
39
|
+
startIsTextOrAtom: boolean;
|
|
40
|
+
endIsTextOrAtom: boolean;
|
|
41
|
+
atParagraphStart: boolean;
|
|
42
|
+
undoStack: UndoState[];
|
|
43
|
+
undoPosition: number;
|
|
44
|
+
undo: () => Edit;
|
|
45
|
+
redo: () => Edit;
|
|
46
|
+
clipboard: Clipboard;
|
|
47
|
+
handleCopy: (node: Node) => void;
|
|
48
|
+
handlePaste: (context: CaretContext, text: PasteContent | Node, save: boolean) => Edit;
|
|
49
|
+
};
|
|
18
50
|
export default CaretContext;
|
|
@@ -1,47 +1,19 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
4
|
-
import type
|
|
5
|
-
import type
|
|
6
|
-
|
|
7
|
-
import type ListNode from "../../models/chapter/ListNode";
|
|
8
|
-
import type TableNode from "../../models/chapter/TableNode";
|
|
9
|
-
import type MetadataNode from "../../models/chapter/MetadataNode";
|
|
10
|
-
import type RootNode from "../../models/chapter/RootNode";
|
|
11
|
-
import type Edit from "../../models/chapter/Edit";
|
|
12
|
-
import type CodeNode from "../../models/chapter/CodeNode";
|
|
13
|
-
import type BlockNode from "../../models/chapter/BlockNode";
|
|
14
|
-
import type Clipboard from "./Clipboard";
|
|
15
|
-
import type UndoState from "./UndoState";
|
|
16
|
-
import type Node from "../../models/chapter/Node";
|
|
17
|
-
declare type CaretState = {
|
|
18
|
-
chapter: boolean;
|
|
19
|
-
range: CaretRange;
|
|
20
|
-
start: Caret;
|
|
21
|
-
end: Caret;
|
|
22
|
-
isSelection: boolean;
|
|
1
|
+
import type { CaretRange } from '../../models/chapter/Caret';
|
|
2
|
+
import type RootNode from '../../models/chapter/RootNode';
|
|
3
|
+
import type CaretContext from './CaretContext';
|
|
4
|
+
import type Node from '../../models/chapter/Node';
|
|
5
|
+
import type Command from './Command';
|
|
6
|
+
type CaretState = {
|
|
23
7
|
root: RootNode;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
startIsText: boolean;
|
|
35
|
-
endIsText: boolean;
|
|
36
|
-
startIsTextOrAtom: boolean;
|
|
37
|
-
endIsTextOrAtom: boolean;
|
|
38
|
-
atParagraphStart: boolean;
|
|
39
|
-
undoStack: UndoState[];
|
|
40
|
-
undoPosition: number;
|
|
41
|
-
undo: () => Edit;
|
|
42
|
-
redo: () => Edit;
|
|
43
|
-
clipboard: Clipboard;
|
|
44
|
-
handleCopy: (node: Node) => void;
|
|
45
|
-
handlePaste: (context: CaretState, node: Node, save: boolean) => Edit;
|
|
8
|
+
range: CaretRange | undefined;
|
|
9
|
+
coordinate: {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
} | undefined;
|
|
13
|
+
context: CaretContext | undefined;
|
|
14
|
+
edit: (previous: Node, edited: Node) => void;
|
|
15
|
+
setCaret: (range: CaretRange) => void;
|
|
16
|
+
executor: (command: Command, key: string) => void;
|
|
17
|
+
focused: boolean;
|
|
46
18
|
};
|
|
47
19
|
export default CaretState;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
<script>import { afterUpdate } from 'svelte';
|
|
2
|
+
export let left;
|
|
3
|
+
export let top;
|
|
4
|
+
export let height;
|
|
5
|
+
export let linked;
|
|
6
|
+
export let italic;
|
|
7
|
+
export let bold;
|
|
8
|
+
export let disabled;
|
|
9
|
+
export let ignored;
|
|
10
|
+
export let blink;
|
|
11
|
+
let element;
|
|
12
|
+
let headerHeight = 0;
|
|
13
|
+
// When the caret updates, make sure it's in view.
|
|
14
|
+
afterUpdate(() => {
|
|
15
|
+
element?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
|
16
|
+
headerHeight =
|
|
17
|
+
document.querySelector('.bookish-app > .header')
|
|
18
|
+
?.offsetHeight ?? 0;
|
|
19
|
+
});
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<div
|
|
23
|
+
class="caret"
|
|
24
|
+
class:blink
|
|
25
|
+
class:disabled
|
|
26
|
+
class:ignored
|
|
27
|
+
class:bold
|
|
28
|
+
class:italic
|
|
29
|
+
class:linked
|
|
30
|
+
style:left="{left}px"
|
|
31
|
+
style:top="{top}px"
|
|
32
|
+
style:height="{height}px"
|
|
33
|
+
style:scroll-margin-top="{headerHeight}px"
|
|
34
|
+
bind:this={element}
|
|
35
|
+
/>
|
|
36
|
+
|
|
37
|
+
<style>
|
|
38
|
+
.caret {
|
|
39
|
+
left: 0;
|
|
40
|
+
top: 0;
|
|
41
|
+
width: 0px;
|
|
42
|
+
background: none;
|
|
43
|
+
outline: 1px solid var(--bookish-paragraph-color);
|
|
44
|
+
display: inline-block;
|
|
45
|
+
box-sizing: border-box;
|
|
46
|
+
position: absolute;
|
|
47
|
+
z-index: 1;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@keyframes caret-blink {
|
|
51
|
+
100% {
|
|
52
|
+
outline: none;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.disabled {
|
|
57
|
+
outline-color: var(--app-muted-color);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.blink {
|
|
61
|
+
animation: caret-blink 1s steps(2) infinite;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.italic {
|
|
65
|
+
transform: skew(-10deg);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.bold {
|
|
69
|
+
outline-width: 2px;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.ignored {
|
|
73
|
+
animation: failure 100ms 10;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.linked {
|
|
77
|
+
outline-width: 1px;
|
|
78
|
+
outline-color: var(--bookish-link-color);
|
|
79
|
+
}
|
|
80
|
+
</style>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
left: number;
|
|
5
|
+
top: number;
|
|
6
|
+
height: number;
|
|
7
|
+
linked: boolean;
|
|
8
|
+
italic: boolean;
|
|
9
|
+
bold: boolean;
|
|
10
|
+
disabled: boolean;
|
|
11
|
+
ignored: boolean;
|
|
12
|
+
blink: boolean;
|
|
13
|
+
};
|
|
14
|
+
events: {
|
|
15
|
+
[evt: string]: CustomEvent<any>;
|
|
16
|
+
};
|
|
17
|
+
slots: {};
|
|
18
|
+
};
|
|
19
|
+
export type CaretViewProps = typeof __propDef.props;
|
|
20
|
+
export type CaretViewEvents = typeof __propDef.events;
|
|
21
|
+
export type CaretViewSlots = typeof __propDef.slots;
|
|
22
|
+
export default class CaretView extends SvelteComponentTyped<CaretViewProps, CaretViewEvents, CaretViewSlots> {
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
<script>import
|
|
2
|
-
import
|
|
1
|
+
<script>import Note from './Note.svelte';
|
|
2
|
+
import Options from '../app/Options.svelte';
|
|
3
|
+
import Button from '../app/Button.svelte';
|
|
4
|
+
import { getCaret, getEdition } from '../page/Contexts';
|
|
3
5
|
export let citations;
|
|
4
|
-
let edition = getEdition();
|
|
5
6
|
let caret = getCaret();
|
|
6
|
-
let
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
let edition = getEdition();
|
|
8
|
+
let value = '';
|
|
9
|
+
function handleSelection(selection) {
|
|
10
|
+
if (selection.length > 0)
|
|
9
11
|
update(new Set([...citations.getMeta(), selection]));
|
|
10
|
-
selection = undefined;
|
|
11
|
-
}
|
|
12
12
|
}
|
|
13
13
|
function removeSelection(citationID) {
|
|
14
14
|
let ids = new Set(citations.getMeta());
|
|
@@ -18,25 +18,36 @@ function removeSelection(citationID) {
|
|
|
18
18
|
function update(set) {
|
|
19
19
|
$caret?.edit(citations, citations.withMeta(Array.from(set)));
|
|
20
20
|
}
|
|
21
|
-
$: uncited =
|
|
21
|
+
$: uncited =
|
|
22
|
+
$edition === undefined
|
|
23
|
+
? []
|
|
24
|
+
: Object.keys($edition.getReferences())
|
|
25
|
+
.filter((citationID) => !citations.getMeta().includes(citationID))
|
|
26
|
+
.sort();
|
|
27
|
+
let options = [];
|
|
28
|
+
$: {
|
|
29
|
+
options = [];
|
|
30
|
+
options.push([
|
|
31
|
+
uncited.length > 0 ? 'Choose references' : 'No uncited references',
|
|
32
|
+
'',
|
|
33
|
+
]);
|
|
34
|
+
for (const citationID of uncited)
|
|
35
|
+
options.push([citationID, citationID]);
|
|
36
|
+
}
|
|
22
37
|
</script>
|
|
23
38
|
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
</select>
|
|
39
|
+
<Options
|
|
40
|
+
{options}
|
|
41
|
+
bind:value
|
|
42
|
+
changed={handleSelection}
|
|
43
|
+
label="choose citations"
|
|
44
|
+
/>
|
|
31
45
|
{#each citations.getMeta() as citationID}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
on:keydown={ event => { if(event.key === "Enter" || event.key === " ") removeSelection(citationID); }}
|
|
38
|
-
>×</span>
|
|
39
|
-
</sup>
|
|
46
|
+
{citationID}
|
|
47
|
+
<Button
|
|
48
|
+
tooltip="Remove citation"
|
|
49
|
+
command={() => removeSelection(citationID)}>× citation</Button
|
|
50
|
+
>
|
|
40
51
|
{:else}
|
|
41
52
|
<Note>—</Note>
|
|
42
|
-
{/each}
|
|
53
|
+
{/each}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
|
-
import type CitationsNode from
|
|
2
|
+
import type CitationsNode from '../../models/chapter/CitationsNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
5
5
|
citations: CitationsNode;
|
|
@@ -9,9 +9,9 @@ declare const __propDef: {
|
|
|
9
9
|
};
|
|
10
10
|
slots: {};
|
|
11
11
|
};
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
12
|
+
export type CitationsEditorProps = typeof __propDef.props;
|
|
13
|
+
export type CitationsEditorEvents = typeof __propDef.events;
|
|
14
|
+
export type CitationsEditorSlots = typeof __propDef.slots;
|
|
15
15
|
export default class CitationsEditor extends SvelteComponentTyped<CitationsEditorProps, CitationsEditorEvents, CitationsEditorSlots> {
|
|
16
16
|
}
|
|
17
17
|
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type Node from
|
|
2
|
-
|
|
1
|
+
import type Node from '../../models/chapter/Node';
|
|
2
|
+
type Clipboard = undefined | Node;
|
|
3
3
|
export default Clipboard;
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import type Edit from
|
|
2
|
-
import type CaretUtilities from
|
|
3
|
-
import type
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
icon?: string;
|
|
1
|
+
import type Edit from '../../models/chapter/Edit';
|
|
2
|
+
import type CaretUtilities from './CaretUtilities';
|
|
3
|
+
import type CaretContext from './CaretContext';
|
|
4
|
+
type Command = {
|
|
5
|
+
icon: string;
|
|
7
6
|
description: string;
|
|
8
7
|
category: string;
|
|
9
|
-
control: boolean;
|
|
10
|
-
|
|
8
|
+
control: boolean | undefined;
|
|
9
|
+
press?: boolean | undefined;
|
|
10
|
+
alt: boolean | undefined;
|
|
11
11
|
shift: boolean | undefined;
|
|
12
|
-
key?: string | string[];
|
|
12
|
+
key?: string | string[] | ((key: string) => boolean);
|
|
13
13
|
code?: string;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
mutates: boolean;
|
|
15
|
+
visible: boolean | ((context: CaretContext) => boolean);
|
|
16
|
+
active: boolean | ((context: CaretContext, key?: string) => boolean);
|
|
17
|
+
handler: (context: CaretContext, utilities: CaretUtilities, key: string) => Edit;
|
|
17
18
|
};
|
|
18
19
|
export default Command;
|