bookish-press 0.5.32 → 0.5.71
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 +30 -1
- package/dist/components/Auth.svelte.d.ts +2 -2
- package/dist/components/BookPreview.svelte.d.ts +2 -2
- package/dist/components/Link.svelte.d.ts +2 -2
- package/dist/components/app/BookList.svelte.d.ts +2 -2
- package/dist/components/app/Button.svelte.d.ts +2 -2
- package/dist/components/app/Feedback.svelte.d.ts +2 -2
- package/dist/components/app/Head.svelte.d.ts +2 -2
- package/dist/components/app/Large.svelte.d.ts +2 -2
- package/dist/components/app/Lead.svelte.d.ts +2 -2
- package/dist/components/app/Link.svelte.d.ts +2 -2
- package/dist/components/app/Options.svelte +1 -0
- package/dist/components/app/Options.svelte.d.ts +2 -2
- package/dist/components/app/Paragraph.svelte.d.ts +2 -2
- package/dist/components/app/Section.svelte.d.ts +2 -2
- package/dist/components/app/Table.svelte +0 -1
- package/dist/components/app/Table.svelte.d.ts +2 -2
- package/dist/components/app/TextInput.svelte.d.ts +2 -2
- package/dist/components/chapter/Atom.svelte.d.ts +2 -2
- package/dist/components/chapter/Block.svelte.d.ts +2 -2
- package/dist/components/chapter/Callout.svelte.d.ts +2 -2
- package/dist/components/chapter/CaptionedCode.svelte +21 -19
- package/dist/components/chapter/CaptionedCode.svelte.d.ts +2 -2
- package/dist/components/chapter/ChapterBody.svelte +2 -0
- package/dist/components/chapter/ChapterBody.svelte.d.ts +2 -2
- package/dist/components/chapter/Citations.svelte.d.ts +2 -2
- package/dist/components/chapter/Code.svelte.d.ts +2 -2
- package/dist/components/chapter/Comment.svelte.d.ts +2 -2
- package/dist/components/chapter/Definition.svelte +6 -7
- package/dist/components/chapter/Definition.svelte.d.ts +2 -2
- package/dist/components/chapter/Embed.svelte +4 -3
- package/dist/components/chapter/Embed.svelte.d.ts +2 -2
- package/dist/components/chapter/ErrorMessage.svelte.d.ts +2 -2
- package/dist/components/chapter/Figure.svelte +9 -1
- package/dist/components/chapter/Figure.svelte.d.ts +3 -2
- package/dist/components/chapter/Footnote.svelte.d.ts +2 -2
- package/dist/components/chapter/Format.svelte +21 -16
- package/dist/components/chapter/Format.svelte.d.ts +2 -2
- package/dist/components/chapter/InlineCode.svelte.d.ts +2 -2
- package/dist/components/chapter/Label.svelte.d.ts +2 -2
- package/dist/components/chapter/LineBreak.svelte +6 -0
- package/dist/components/chapter/LineBreak.svelte.d.ts +17 -0
- package/dist/components/chapter/Link.svelte.d.ts +2 -2
- package/dist/components/chapter/List.svelte.d.ts +2 -2
- package/dist/components/chapter/Marginal.svelte +5 -4
- package/dist/components/chapter/Marginal.svelte.d.ts +2 -2
- package/dist/components/chapter/Paragraph.svelte.d.ts +2 -2
- package/dist/components/chapter/Positioned.svelte.d.ts +2 -2
- package/dist/components/chapter/Problem.svelte.d.ts +2 -2
- package/dist/components/chapter/Python.svelte.d.ts +2 -2
- package/dist/components/chapter/Quote.svelte.d.ts +2 -2
- package/dist/components/chapter/Rule.svelte +2 -2
- package/dist/components/chapter/Rule.svelte.d.ts +2 -2
- package/dist/components/chapter/Table.svelte.d.ts +2 -2
- package/dist/components/chapter/Text.svelte.d.ts +2 -2
- package/dist/components/controls/DarkToggle.svelte.d.ts +2 -2
- package/dist/components/editor/BookishEditor.svelte +22 -22
- package/dist/components/editor/BookishEditor.svelte.d.ts +2 -2
- package/dist/components/editor/CalloutEditor.svelte.d.ts +2 -2
- package/dist/components/editor/CaptionedCodeEditor.svelte.d.ts +2 -2
- package/dist/components/editor/CaretContext.d.ts +1 -1
- package/dist/components/editor/CaretView.svelte +8 -3
- package/dist/components/editor/CaretView.svelte.d.ts +2 -2
- package/dist/components/editor/CitationsEditor.svelte.d.ts +2 -2
- package/dist/components/editor/Commands.js +109 -43
- package/dist/components/editor/ConfirmButton.svelte +7 -1
- package/dist/components/editor/ConfirmButton.svelte.d.ts +2 -2
- package/dist/components/editor/DefinitionEditor.svelte.d.ts +2 -2
- package/dist/components/editor/EmbedEditor.svelte.d.ts +2 -2
- package/dist/components/editor/Icon.svelte.d.ts +2 -2
- package/dist/components/editor/ImageChooser.svelte +2 -1
- package/dist/components/editor/ImageChooser.svelte.d.ts +2 -2
- package/dist/components/editor/ImageThumbnail.svelte +11 -7
- package/dist/components/editor/ImageThumbnail.svelte.d.ts +2 -2
- package/dist/components/editor/InlineCodeEditor.svelte.d.ts +2 -2
- package/dist/components/editor/LabelEditor.svelte.d.ts +2 -2
- package/dist/components/editor/LanguageEditor.svelte.d.ts +2 -2
- package/dist/components/editor/LinkEditor.svelte +4 -3
- package/dist/components/editor/LinkEditor.svelte.d.ts +2 -2
- package/dist/components/editor/Note.svelte.d.ts +2 -2
- package/dist/components/editor/Permissions.svelte.d.ts +2 -2
- package/dist/components/editor/PositionEditor.svelte.d.ts +2 -2
- package/dist/components/editor/QuoteEditor.svelte.d.ts +2 -2
- package/dist/components/editor/Switch.svelte.d.ts +2 -2
- package/dist/components/editor/TableEditor.svelte.d.ts +2 -2
- package/dist/components/editor/TextEditor.svelte.d.ts +2 -2
- package/dist/components/editor/Toggle.svelte.d.ts +2 -2
- package/dist/components/editor/Toolbar.svelte +2 -1
- package/dist/components/editor/Toolbar.svelte.d.ts +2 -2
- package/dist/components/editor/ToolbarGroup.svelte.d.ts +2 -2
- package/dist/components/editor/ToolbarSpacer.svelte.d.ts +2 -2
- package/dist/components/editor/URLEditor.svelte.d.ts +2 -2
- package/dist/components/page/Acknowledgements.svelte.d.ts +2 -2
- package/dist/components/page/Authors.svelte.d.ts +2 -2
- package/dist/components/page/BookLoader.svelte.d.ts +2 -2
- package/dist/components/page/BulkReferenceEditor.svelte +1 -1
- package/dist/components/page/BulkReferenceEditor.svelte.d.ts +2 -2
- package/dist/components/page/Chapter.svelte +4 -5
- package/dist/components/page/Chapter.svelte.d.ts +2 -2
- package/dist/components/page/ChapterNumber.svelte.d.ts +2 -2
- package/dist/components/page/ChapterTitle.svelte.d.ts +2 -2
- package/dist/components/page/DefinitionView.svelte.d.ts +2 -2
- package/dist/components/page/Description.svelte.d.ts +2 -2
- package/dist/components/page/Edition.svelte.d.ts +2 -2
- package/dist/components/page/EditionLoader.svelte +9 -18
- package/dist/components/page/EditionLoader.svelte.d.ts +2 -2
- package/dist/components/page/Editions.svelte +4 -3
- package/dist/components/page/Editions.svelte.d.ts +2 -2
- package/dist/components/page/Glossary.svelte +8 -2
- package/dist/components/page/Glossary.svelte.d.ts +2 -2
- package/dist/components/page/Header.svelte.d.ts +2 -2
- package/dist/components/page/Index.svelte +5 -2
- package/dist/components/page/Index.svelte.d.ts +2 -2
- package/dist/components/page/Instructions.svelte.d.ts +2 -2
- package/dist/components/page/License.svelte.d.ts +2 -2
- package/dist/components/page/Loading.svelte.d.ts +2 -2
- package/dist/components/page/Media.svelte +5 -2
- package/dist/components/page/Media.svelte.d.ts +2 -2
- package/dist/components/page/MediaPreview.svelte.d.ts +2 -2
- package/dist/components/page/Muted.svelte.d.ts +2 -2
- package/dist/components/page/Outline.svelte.d.ts +2 -2
- package/dist/components/page/Page.svelte.d.ts +2 -2
- package/dist/components/page/PageHeader.svelte.d.ts +2 -2
- package/dist/components/page/PageParagraph.svelte.d.ts +2 -2
- package/dist/components/page/PossibleChapter.svelte.d.ts +2 -2
- package/dist/components/page/PossibleReference.svelte.d.ts +2 -2
- package/dist/components/page/Print.svelte.d.ts +2 -2
- package/dist/components/page/Publish.svelte.d.ts +2 -2
- package/dist/components/page/Reference.svelte +24 -15
- package/dist/components/page/Reference.svelte.d.ts +2 -2
- package/dist/components/page/References.svelte +6 -2
- package/dist/components/page/References.svelte.d.ts +2 -2
- package/dist/components/page/Rows.svelte.d.ts +2 -2
- package/dist/components/page/Search.svelte +5 -3
- package/dist/components/page/Search.svelte.d.ts +2 -2
- package/dist/components/page/Status.svelte.d.ts +2 -2
- package/dist/components/page/SubdomainEditor.svelte +4 -3
- package/dist/components/page/SubdomainEditor.svelte.d.ts +2 -2
- package/dist/components/page/TableOfContents.svelte +9 -3
- package/dist/components/page/TableOfContents.svelte.d.ts +2 -2
- package/dist/components/page/TableOfContentsImage.svelte.d.ts +2 -2
- package/dist/components/page/TableOfContentsRow.svelte +4 -2
- package/dist/components/page/TableOfContentsRow.svelte.d.ts +2 -2
- package/dist/components/page/ThemeEditor.svelte.d.ts +2 -2
- package/dist/components/page/ThemeEditorPreview.svelte.d.ts +2 -2
- package/dist/components/page/ThemeSetEditor.svelte.d.ts +2 -2
- package/dist/components/page/ThemeVariableEditor.svelte.d.ts +2 -2
- package/dist/components/page/Title.svelte.d.ts +2 -2
- package/dist/components/page/Unknown.svelte.d.ts +2 -2
- package/dist/models/CRUD.d.ts +1 -2
- package/dist/models/CRUD.js +3 -5
- package/dist/models/book/BookMedia.js +8 -3
- package/dist/models/book/Chapter.d.ts +1 -1
- package/dist/models/book/Chapter.js +2 -3
- package/dist/models/book/Edition.d.ts +7 -5
- package/dist/models/book/Edition.js +10 -15
- package/dist/models/chapter/Caret.d.ts +2 -1
- package/dist/models/chapter/Caret.js +20 -6
- package/dist/models/chapter/FormatNode.d.ts +4 -1
- package/dist/models/chapter/FormatNode.js +53 -9
- package/dist/models/chapter/LineBreakNode.d.ts +15 -0
- package/dist/models/chapter/LineBreakNode.js +37 -0
- package/dist/models/chapter/Parser.d.ts +2 -0
- package/dist/models/chapter/Parser.js +12 -2
- package/dist/models/chapter/Symbols.d.ts +1 -0
- package/dist/models/chapter/Symbols.js +1 -0
- package/dist/util/mineReference.js +8 -6
- package/package.json +22 -19
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
import type FootnoteNode from '../../models/chapter/FootnoteNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
@@ -12,6 +12,6 @@ declare const __propDef: {
|
|
|
12
12
|
export type FootnoteProps = typeof __propDef.props;
|
|
13
13
|
export type FootnoteEvents = typeof __propDef.events;
|
|
14
14
|
export type FootnoteSlots = typeof __propDef.slots;
|
|
15
|
-
export default class Footnote extends
|
|
15
|
+
export default class Footnote extends SvelteComponent<FootnoteProps, FootnoteEvents, FootnoteSlots> {
|
|
16
16
|
}
|
|
17
17
|
export {};
|
|
@@ -20,6 +20,8 @@ import Comment from './Comment.svelte';
|
|
|
20
20
|
import Text from './Text.svelte';
|
|
21
21
|
import Format from './Format.svelte';
|
|
22
22
|
import { isChapterEditable, isEditionEditable } from '../page/Contexts';
|
|
23
|
+
import LineBreakNode from '../../models/chapter/LineBreakNode';
|
|
24
|
+
import LineBreak from './LineBreak.svelte';
|
|
23
25
|
export let node;
|
|
24
26
|
export let placeholder = undefined;
|
|
25
27
|
$: format = node.getFormat();
|
|
@@ -43,30 +45,33 @@ $: showPlaceholder =
|
|
|
43
45
|
this={tag}
|
|
44
46
|
data-nodeid={node.nodeID}
|
|
45
47
|
class={`format ${showPlaceholder ? 'bookish-editor-placeholder' : ''}`}
|
|
46
|
-
>
|
|
47
|
-
{#each node.getSegments() as segment (segment.nodeID)}
|
|
48
|
-
{#if segment instanceof TextNode}<Text
|
|
48
|
+
>{#each node.getSegments() as segment (segment.nodeID)}{#if segment instanceof TextNode}<Text
|
|
49
49
|
node={segment}
|
|
50
50
|
placeholder={showPlaceholder && node.getSegments().length === 1
|
|
51
51
|
? placeholder
|
|
52
52
|
: undefined}
|
|
53
|
+
/>{:else if segment instanceof LineBreakNode}<LineBreak
|
|
54
|
+
node={segment}
|
|
53
55
|
/>
|
|
54
56
|
{:else if segment instanceof InlineCodeNode}<InlineCode
|
|
55
57
|
node={segment}
|
|
56
|
-
/>
|
|
57
|
-
{:else if segment instanceof LinkNode}<Link node={segment} />
|
|
58
|
-
{:else if segment instanceof CitationsNode}<Citations node={segment} />
|
|
59
|
-
{:else if segment instanceof DefinitionNode}<Definition
|
|
58
|
+
/>{:else if segment instanceof LinkNode}<Link
|
|
60
59
|
node={segment}
|
|
61
|
-
/>
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
60
|
+
/>{:else if segment instanceof CitationsNode}<Citations
|
|
61
|
+
node={segment}
|
|
62
|
+
/>{:else if segment instanceof DefinitionNode}<Definition
|
|
63
|
+
node={segment}
|
|
64
|
+
/>{:else if segment instanceof FootnoteNode}<Footnote
|
|
65
|
+
node={segment}
|
|
66
|
+
/>{:else if segment instanceof LabelNode}<Label
|
|
67
|
+
node={segment}
|
|
68
|
+
/>{:else if segment instanceof CommentNode}<Comment
|
|
69
|
+
node={segment}
|
|
70
|
+
/>{:else if segment instanceof FormatNode}<Format
|
|
71
|
+
node={segment}
|
|
72
|
+
/>{:else}<Problem>Unknown segment type node={segment}</Problem
|
|
73
|
+
>{/if}{/each}</svelte:element
|
|
74
|
+
>
|
|
70
75
|
|
|
71
76
|
<style>
|
|
72
77
|
.bookish-editor-placeholder {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
import FormatNode from '../../models/chapter/FormatNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
@@ -13,6 +13,6 @@ declare const __propDef: {
|
|
|
13
13
|
export type FormatProps = typeof __propDef.props;
|
|
14
14
|
export type FormatEvents = typeof __propDef.events;
|
|
15
15
|
export type FormatSlots = typeof __propDef.slots;
|
|
16
|
-
export default class Format extends
|
|
16
|
+
export default class Format extends SvelteComponent<FormatProps, FormatEvents, FormatSlots> {
|
|
17
17
|
}
|
|
18
18
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
import type InlineCodeNode from '../../models/chapter/InlineCodeNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
@@ -12,6 +12,6 @@ declare const __propDef: {
|
|
|
12
12
|
export type InlineCodeProps = typeof __propDef.props;
|
|
13
13
|
export type InlineCodeEvents = typeof __propDef.events;
|
|
14
14
|
export type InlineCodeSlots = typeof __propDef.slots;
|
|
15
|
-
export default class InlineCode extends
|
|
15
|
+
export default class InlineCode extends SvelteComponent<InlineCodeProps, InlineCodeEvents, InlineCodeSlots> {
|
|
16
16
|
}
|
|
17
17
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
import type LabelNode from '../../models/chapter/LabelNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
@@ -12,6 +12,6 @@ declare const __propDef: {
|
|
|
12
12
|
export type LabelProps = typeof __propDef.props;
|
|
13
13
|
export type LabelEvents = typeof __propDef.events;
|
|
14
14
|
export type LabelSlots = typeof __propDef.slots;
|
|
15
|
-
export default class Label extends
|
|
15
|
+
export default class Label extends SvelteComponent<LabelProps, LabelEvents, LabelSlots> {
|
|
16
16
|
}
|
|
17
17
|
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
import type LineBreakNode from '../../models/chapter/LineBreakNode';
|
|
3
|
+
declare const __propDef: {
|
|
4
|
+
props: {
|
|
5
|
+
node: LineBreakNode;
|
|
6
|
+
};
|
|
7
|
+
events: {
|
|
8
|
+
[evt: string]: CustomEvent<any>;
|
|
9
|
+
};
|
|
10
|
+
slots: {};
|
|
11
|
+
};
|
|
12
|
+
export type LineBreakProps = typeof __propDef.props;
|
|
13
|
+
export type LineBreakEvents = typeof __propDef.events;
|
|
14
|
+
export type LineBreakSlots = typeof __propDef.slots;
|
|
15
|
+
export default class LineBreak extends SvelteComponent<LineBreakProps, LineBreakEvents, LineBreakSlots> {
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
import type LinkNode from '../../models/chapter/LinkNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
@@ -12,6 +12,6 @@ declare const __propDef: {
|
|
|
12
12
|
export type LinkProps = typeof __propDef.props;
|
|
13
13
|
export type LinkEvents = typeof __propDef.events;
|
|
14
14
|
export type LinkSlots = typeof __propDef.slots;
|
|
15
|
-
export default class Link extends
|
|
15
|
+
export default class Link extends SvelteComponent<LinkProps, LinkEvents, LinkSlots> {
|
|
16
16
|
}
|
|
17
17
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
import ListNode from '../../models/chapter/ListNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
@@ -12,6 +12,6 @@ declare const __propDef: {
|
|
|
12
12
|
export type ListProps = typeof __propDef.props;
|
|
13
13
|
export type ListEvents = typeof __propDef.events;
|
|
14
14
|
export type ListSlots = typeof __propDef.slots;
|
|
15
|
-
export default class List extends
|
|
15
|
+
export default class List extends SvelteComponent<ListProps, ListEvents, ListSlots> {
|
|
16
16
|
}
|
|
17
17
|
export {};
|
|
@@ -66,6 +66,8 @@ onMount(() => {
|
|
|
66
66
|
editable ? '' : 'interactive'
|
|
67
67
|
}`}
|
|
68
68
|
aria-label={label}
|
|
69
|
+
role="button"
|
|
70
|
+
tabindex="0"
|
|
69
71
|
on:mousedown={(event) => toggle(event, true)}
|
|
70
72
|
on:keydown={(event) =>
|
|
71
73
|
event.key === 'Enter' || event.key === ' '
|
|
@@ -77,17 +79,16 @@ onMount(() => {
|
|
|
77
79
|
class={'bookish-marginal' +
|
|
78
80
|
(isHidden ? ' bookish-marginal-hidden' : '') +
|
|
79
81
|
(hovered ? ' bookish-marginal-hovered' : '')}
|
|
80
|
-
|
|
82
|
+
role="button"
|
|
83
|
+
tabindex={editable ? null : 0}
|
|
81
84
|
on:mousedown={() => toggle(undefined, false)}
|
|
82
85
|
on:keydown={(event) =>
|
|
83
86
|
event.key === 'Enter' || event.key === ' '
|
|
84
87
|
? toggle(undefined, false)
|
|
85
88
|
: undefined}
|
|
86
89
|
on:mouseenter={handleEnter}
|
|
87
|
-
on:mouseleave={handleExit}
|
|
90
|
+
on:mouseleave={handleExit}><slot name="content" /></span
|
|
88
91
|
>
|
|
89
|
-
<slot name="content" />
|
|
90
|
-
</span>
|
|
91
92
|
|
|
92
93
|
<style>
|
|
93
94
|
:global(.bookish-definition)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
import type Node from '../../models/chapter/Node';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
@@ -17,6 +17,6 @@ declare const __propDef: {
|
|
|
17
17
|
export type MarginalProps = typeof __propDef.props;
|
|
18
18
|
export type MarginalEvents = typeof __propDef.events;
|
|
19
19
|
export type MarginalSlots = typeof __propDef.slots;
|
|
20
|
-
export default class Marginal extends
|
|
20
|
+
export default class Marginal extends SvelteComponent<MarginalProps, MarginalEvents, MarginalSlots> {
|
|
21
21
|
}
|
|
22
22
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
import type ParagraphNode from '../../models/chapter/ParagraphNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
@@ -13,6 +13,6 @@ declare const __propDef: {
|
|
|
13
13
|
export type ParagraphProps = typeof __propDef.props;
|
|
14
14
|
export type ParagraphEvents = typeof __propDef.events;
|
|
15
15
|
export type ParagraphSlots = typeof __propDef.slots;
|
|
16
|
-
export default class Paragraph extends
|
|
16
|
+
export default class Paragraph extends SvelteComponent<ParagraphProps, ParagraphEvents, ParagraphSlots> {
|
|
17
17
|
}
|
|
18
18
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
import type Position from '../../models/chapter/Position';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
@@ -14,6 +14,6 @@ declare const __propDef: {
|
|
|
14
14
|
export type PositionedProps = typeof __propDef.props;
|
|
15
15
|
export type PositionedEvents = typeof __propDef.events;
|
|
16
16
|
export type PositionedSlots = typeof __propDef.slots;
|
|
17
|
-
export default class Positioned extends
|
|
17
|
+
export default class Positioned extends SvelteComponent<PositionedProps, PositionedEvents, PositionedSlots> {
|
|
18
18
|
}
|
|
19
19
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** @typedef {typeof __propDef.props} ProblemProps */
|
|
2
2
|
/** @typedef {typeof __propDef.events} ProblemEvents */
|
|
3
3
|
/** @typedef {typeof __propDef.slots} ProblemSlots */
|
|
4
|
-
export default class Problem extends
|
|
4
|
+
export default class Problem extends SvelteComponent<{
|
|
5
5
|
[x: string]: never;
|
|
6
6
|
}, {
|
|
7
7
|
[evt: string]: CustomEvent<any>;
|
|
@@ -12,7 +12,7 @@ export default class Problem extends SvelteComponentTyped<{
|
|
|
12
12
|
export type ProblemProps = typeof __propDef.props;
|
|
13
13
|
export type ProblemEvents = typeof __propDef.events;
|
|
14
14
|
export type ProblemSlots = typeof __propDef.slots;
|
|
15
|
-
import {
|
|
15
|
+
import { SvelteComponent } from "svelte";
|
|
16
16
|
declare const __propDef: {
|
|
17
17
|
props: {
|
|
18
18
|
[x: string]: never;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
import type CodeNode from '../../models/chapter/CodeNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
@@ -13,6 +13,6 @@ declare const __propDef: {
|
|
|
13
13
|
export type PythonProps = typeof __propDef.props;
|
|
14
14
|
export type PythonEvents = typeof __propDef.events;
|
|
15
15
|
export type PythonSlots = typeof __propDef.slots;
|
|
16
|
-
export default class Python extends
|
|
16
|
+
export default class Python extends SvelteComponent<PythonProps, PythonEvents, PythonSlots> {
|
|
17
17
|
}
|
|
18
18
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
import type QuoteNode from '../../models/chapter/QuoteNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
@@ -12,6 +12,6 @@ declare const __propDef: {
|
|
|
12
12
|
export type QuoteProps = typeof __propDef.props;
|
|
13
13
|
export type QuoteEvents = typeof __propDef.events;
|
|
14
14
|
export type QuoteSlots = typeof __propDef.slots;
|
|
15
|
-
export default class Quote extends
|
|
15
|
+
export default class Quote extends SvelteComponent<QuoteProps, QuoteEvents, QuoteSlots> {
|
|
16
16
|
}
|
|
17
17
|
export {};
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
hr {
|
|
10
10
|
border: none;
|
|
11
11
|
border-bottom: 1px solid var(--bookish-border-color-light);
|
|
12
|
-
margin-top: calc(var(--bookish-paragraph-spacing)
|
|
13
|
-
margin-bottom: calc(var(--bookish-paragraph-spacing)
|
|
12
|
+
margin-top: calc(var(--bookish-paragraph-spacing));
|
|
13
|
+
margin-bottom: calc(var(--bookish-paragraph-spacing));
|
|
14
14
|
}
|
|
15
15
|
</style>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
import type RuleNode from '../../models/chapter/RuleNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
@@ -12,6 +12,6 @@ declare const __propDef: {
|
|
|
12
12
|
export type RuleProps = typeof __propDef.props;
|
|
13
13
|
export type RuleEvents = typeof __propDef.events;
|
|
14
14
|
export type RuleSlots = typeof __propDef.slots;
|
|
15
|
-
export default class Rule extends
|
|
15
|
+
export default class Rule extends SvelteComponent<RuleProps, RuleEvents, RuleSlots> {
|
|
16
16
|
}
|
|
17
17
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
import type TableNode from '../../models/chapter/TableNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
@@ -12,6 +12,6 @@ declare const __propDef: {
|
|
|
12
12
|
export type TableProps = typeof __propDef.props;
|
|
13
13
|
export type TableEvents = typeof __propDef.events;
|
|
14
14
|
export type TableSlots = typeof __propDef.slots;
|
|
15
|
-
export default class Table extends
|
|
15
|
+
export default class Table extends SvelteComponent<TableProps, TableEvents, TableSlots> {
|
|
16
16
|
}
|
|
17
17
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
import type TextNode from '../../models/chapter/TextNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
@@ -13,6 +13,6 @@ declare const __propDef: {
|
|
|
13
13
|
export type TextProps = typeof __propDef.props;
|
|
14
14
|
export type TextEvents = typeof __propDef.events;
|
|
15
15
|
export type TextSlots = typeof __propDef.slots;
|
|
16
|
-
export default class Text extends
|
|
16
|
+
export default class Text extends SvelteComponent<TextProps, TextEvents, TextSlots> {
|
|
17
17
|
}
|
|
18
18
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
declare const __propDef: {
|
|
3
3
|
props: {
|
|
4
4
|
dark: boolean;
|
|
@@ -12,6 +12,6 @@ declare const __propDef: {
|
|
|
12
12
|
export type DarkToggleProps = typeof __propDef.props;
|
|
13
13
|
export type DarkToggleEvents = typeof __propDef.events;
|
|
14
14
|
export type DarkToggleSlots = typeof __propDef.slots;
|
|
15
|
-
export default class DarkToggle extends
|
|
15
|
+
export default class DarkToggle extends SvelteComponent<DarkToggleProps, DarkToggleEvents, DarkToggleSlots> {
|
|
16
16
|
}
|
|
17
17
|
export {};
|
|
@@ -18,6 +18,7 @@ import commands from './Commands';
|
|
|
18
18
|
import { afterUpdate, onMount, setContext } from 'svelte';
|
|
19
19
|
import { getCaret } from '../page/Contexts';
|
|
20
20
|
import CaretView from './CaretView.svelte';
|
|
21
|
+
import Parser from '../../models/chapter/Parser';
|
|
21
22
|
const IDLE_TIME = 500;
|
|
22
23
|
export let text;
|
|
23
24
|
export let parser;
|
|
@@ -440,7 +441,7 @@ function getCaretContext() {
|
|
|
440
441
|
meta: parents?.find((n) => n instanceof MetadataNode),
|
|
441
442
|
includesList: includesList,
|
|
442
443
|
table: parents?.find((n) => n instanceof TableNode),
|
|
443
|
-
|
|
444
|
+
formatRoot: caretRange.end.node instanceof TextNode ||
|
|
444
445
|
caretRange.end.node instanceof AtomNode
|
|
445
446
|
? caretRange.end.node.getFormatRoot(editedNode)
|
|
446
447
|
: undefined,
|
|
@@ -484,8 +485,8 @@ function handleKey(event, press = false) {
|
|
|
484
485
|
const context = getCaretContext();
|
|
485
486
|
if (context === undefined)
|
|
486
487
|
return;
|
|
487
|
-
//
|
|
488
|
-
const
|
|
488
|
+
// Find a command that handles the event.
|
|
489
|
+
const command = commands.find((command) => {
|
|
489
490
|
// If the keystroke and caret position matches the command signature, execute the command and update the caret range.
|
|
490
491
|
if ((command.press === undefined || command.press === press) &&
|
|
491
492
|
(command.shift === undefined ||
|
|
@@ -503,19 +504,20 @@ function handleKey(event, press = false) {
|
|
|
503
504
|
(command.active === true ||
|
|
504
505
|
(command.active instanceof Function &&
|
|
505
506
|
command.active.call(undefined, context, event.key)))) {
|
|
506
|
-
//
|
|
507
|
-
|
|
508
|
-
if (handled) {
|
|
507
|
+
// See if the command is handled
|
|
508
|
+
if (executeCommand(command, event.key)) {
|
|
509
509
|
event.preventDefault();
|
|
510
510
|
event.stopPropagation();
|
|
511
|
+
return true;
|
|
511
512
|
}
|
|
512
|
-
//
|
|
513
|
-
|
|
513
|
+
// If not, this is not it.
|
|
514
|
+
else
|
|
515
|
+
return false;
|
|
514
516
|
}
|
|
515
517
|
// Continue searching for a matching command.
|
|
516
|
-
return
|
|
518
|
+
return false;
|
|
517
519
|
});
|
|
518
|
-
if (
|
|
520
|
+
if (command === undefined) {
|
|
519
521
|
// Toolbar navigation
|
|
520
522
|
if (event.key === 'Escape') {
|
|
521
523
|
// If we've selected a FootnoteNode or Comment, navigate to the footnote or comment text to edit it.
|
|
@@ -697,14 +699,16 @@ function handleCopy(node) {
|
|
|
697
699
|
window.alert("Your browser doesn't support copying to the clipboard :(");
|
|
698
700
|
}
|
|
699
701
|
function handlePaste(context, text, save) {
|
|
702
|
+
// If we're pasting a node, see what will accept it.
|
|
700
703
|
if (text instanceof BookishNode)
|
|
701
704
|
return handlePasteNode(context, text, save);
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
705
|
+
if (text.plain === undefined)
|
|
706
|
+
return undefined;
|
|
707
|
+
// If we're pasting text, then we parse it as a series of paragraphs.
|
|
708
|
+
const chapter = Parser.parseChapter(undefined, text.plain);
|
|
709
|
+
const edit = handlePasteNode(context, chapter, save);
|
|
710
|
+
if (edit)
|
|
711
|
+
return edit;
|
|
708
712
|
return undefined;
|
|
709
713
|
}
|
|
710
714
|
function handlePasteNode(context, node, save) {
|
|
@@ -806,13 +810,14 @@ setContext('claimeditor', claimActiveEditor);
|
|
|
806
810
|
class={`bookish-editor ${inAtom ? 'bookish-editor-atom-focused' : ''}`}
|
|
807
811
|
class:locked
|
|
808
812
|
aria-disabled={locked}
|
|
813
|
+
role="textbox"
|
|
809
814
|
bind:this={element}
|
|
810
815
|
on:keydown={handleKey}
|
|
811
816
|
on:keypress={handlePress}
|
|
812
817
|
on:mousedown|stopPropagation={handleMouseDown}
|
|
813
818
|
on:focus={handleFocus}
|
|
814
819
|
on:blur={handleBlur}
|
|
815
|
-
|
|
820
|
+
tabindex="0"
|
|
816
821
|
>
|
|
817
822
|
<!-- A view of the root -->
|
|
818
823
|
<svelte:component this={component} node={editedNode} {placeholder} />
|
|
@@ -871,9 +876,4 @@ setContext('claimeditor', claimActiveEditor);
|
|
|
871
876
|
.bookish-link-active {
|
|
872
877
|
font-weight: bold;
|
|
873
878
|
}
|
|
874
|
-
|
|
875
|
-
.bookish-editor :global(hr) {
|
|
876
|
-
margin-top: 1em;
|
|
877
|
-
margin-bottom: 1em;
|
|
878
|
-
}
|
|
879
879
|
</style>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
import type RootNode from '../../models/chapter/RootNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
@@ -20,6 +20,6 @@ declare const __propDef: {
|
|
|
20
20
|
export type BookishEditorProps = typeof __propDef.props;
|
|
21
21
|
export type BookishEditorEvents = typeof __propDef.events;
|
|
22
22
|
export type BookishEditorSlots = typeof __propDef.slots;
|
|
23
|
-
export default class BookishEditor extends
|
|
23
|
+
export default class BookishEditor extends SvelteComponent<BookishEditorProps, BookishEditorEvents, BookishEditorSlots> {
|
|
24
24
|
}
|
|
25
25
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
import type CalloutNode from '../../models/chapter/CalloutNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
@@ -12,6 +12,6 @@ declare const __propDef: {
|
|
|
12
12
|
export type CalloutEditorProps = typeof __propDef.props;
|
|
13
13
|
export type CalloutEditorEvents = typeof __propDef.events;
|
|
14
14
|
export type CalloutEditorSlots = typeof __propDef.slots;
|
|
15
|
-
export default class CalloutEditor extends
|
|
15
|
+
export default class CalloutEditor extends SvelteComponent<CalloutEditorProps, CalloutEditorEvents, CalloutEditorSlots> {
|
|
16
16
|
}
|
|
17
17
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
import type CodeNode from '../../models/chapter/CodeNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
@@ -12,6 +12,6 @@ declare const __propDef: {
|
|
|
12
12
|
export type CaptionedCodeEditorProps = typeof __propDef.props;
|
|
13
13
|
export type CaptionedCodeEditorEvents = typeof __propDef.events;
|
|
14
14
|
export type CaptionedCodeEditorSlots = typeof __propDef.slots;
|
|
15
|
-
export default class CaptionedCodeEditor extends
|
|
15
|
+
export default class CaptionedCodeEditor extends SvelteComponent<CaptionedCodeEditorProps, CaptionedCodeEditorEvents, CaptionedCodeEditorSlots> {
|
|
16
16
|
}
|
|
17
17
|
export {};
|
|
@@ -31,7 +31,7 @@ type CaretContext = {
|
|
|
31
31
|
code: CodeNode | undefined;
|
|
32
32
|
list: ListNode | undefined;
|
|
33
33
|
table: TableNode | undefined;
|
|
34
|
-
|
|
34
|
+
formatRoot: FormatNode | undefined;
|
|
35
35
|
atom: AtomNode<any> | undefined;
|
|
36
36
|
meta: MetadataNode<any> | undefined;
|
|
37
37
|
startIsText: boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script>import { afterUpdate } from 'svelte';
|
|
1
|
+
<script>import { afterUpdate, tick } from 'svelte';
|
|
2
2
|
export let left;
|
|
3
3
|
export let top;
|
|
4
4
|
export let height;
|
|
@@ -11,9 +11,14 @@ export let blink;
|
|
|
11
11
|
export let locked;
|
|
12
12
|
let element;
|
|
13
13
|
let headerHeight = 0;
|
|
14
|
-
// When the caret updates,
|
|
14
|
+
// When the caret updates position, scroll the element into view after the render is complete.
|
|
15
|
+
$: {
|
|
16
|
+
left;
|
|
17
|
+
top;
|
|
18
|
+
tick().then(() => element ? element.scrollIntoView({ block: 'nearest' }) : undefined);
|
|
19
|
+
}
|
|
20
|
+
/** Keep track of the header height, so we can snap to the caret position. */
|
|
15
21
|
afterUpdate(() => {
|
|
16
|
-
element?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
|
17
22
|
headerHeight =
|
|
18
23
|
document.querySelector('.bookish-app > .header')
|
|
19
24
|
?.offsetHeight ?? 0;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
declare const __propDef: {
|
|
3
3
|
props: {
|
|
4
4
|
left: number;
|
|
@@ -20,6 +20,6 @@ declare const __propDef: {
|
|
|
20
20
|
export type CaretViewProps = typeof __propDef.props;
|
|
21
21
|
export type CaretViewEvents = typeof __propDef.events;
|
|
22
22
|
export type CaretViewSlots = typeof __propDef.slots;
|
|
23
|
-
export default class CaretView extends
|
|
23
|
+
export default class CaretView extends SvelteComponent<CaretViewProps, CaretViewEvents, CaretViewSlots> {
|
|
24
24
|
}
|
|
25
25
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
2
|
import type CitationsNode from '../../models/chapter/CitationsNode';
|
|
3
3
|
declare const __propDef: {
|
|
4
4
|
props: {
|
|
@@ -12,6 +12,6 @@ declare const __propDef: {
|
|
|
12
12
|
export type CitationsEditorProps = typeof __propDef.props;
|
|
13
13
|
export type CitationsEditorEvents = typeof __propDef.events;
|
|
14
14
|
export type CitationsEditorSlots = typeof __propDef.slots;
|
|
15
|
-
export default class CitationsEditor extends
|
|
15
|
+
export default class CitationsEditor extends SvelteComponent<CitationsEditorProps, CitationsEditorEvents, CitationsEditorSlots> {
|
|
16
16
|
}
|
|
17
17
|
export {};
|