bookish-press 0.7.4 → 0.8.2
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 +8 -0
- package/dist/components/Auth.svelte +29 -39
- package/dist/components/Auth.svelte.d.ts +5 -17
- package/dist/components/BookPreview.svelte +14 -20
- package/dist/components/BookPreview.svelte.d.ts +6 -18
- package/dist/components/Link.svelte +19 -30
- package/dist/components/Link.svelte.d.ts +7 -20
- package/dist/components/app/BookList.svelte +2 -3
- package/dist/components/app/BookList.svelte.d.ts +6 -18
- package/dist/components/app/Button.svelte +12 -8
- package/dist/components/app/Button.svelte.d.ts +10 -23
- package/dist/components/app/Feedback.svelte +4 -4
- package/dist/components/app/Feedback.svelte.d.ts +6 -19
- package/dist/components/app/Head.svelte +2 -2
- package/dist/components/app/Head.svelte.d.ts +6 -19
- package/dist/components/app/Large.svelte +4 -1
- package/dist/components/app/Large.svelte.d.ts +5 -28
- package/dist/components/app/Lead.svelte +4 -1
- package/dist/components/app/Lead.svelte.d.ts +5 -28
- package/dist/components/app/Link.svelte +12 -9
- package/dist/components/app/Link.svelte.d.ts +9 -22
- package/dist/components/app/Options.svelte +8 -6
- package/dist/components/app/Options.svelte.d.ts +8 -20
- package/dist/components/app/Paragraph.svelte +2 -2
- package/dist/components/app/Paragraph.svelte.d.ts +6 -19
- package/dist/components/app/Section.svelte +4 -1
- package/dist/components/app/Section.svelte.d.ts +5 -28
- package/dist/components/app/Table.svelte +4 -1
- package/dist/components/app/Table.svelte.d.ts +5 -28
- package/dist/components/app/TextInput.svelte +10 -8
- package/dist/components/app/TextInput.svelte.d.ts +12 -23
- package/dist/components/chapter/Atom.svelte +4 -7
- package/dist/components/chapter/Atom.svelte.d.ts +6 -19
- package/dist/components/chapter/Block.svelte +21 -23
- package/dist/components/chapter/Block.svelte.d.ts +5 -17
- package/dist/components/chapter/Callout.svelte +3 -5
- package/dist/components/chapter/Callout.svelte.d.ts +5 -17
- package/dist/components/chapter/CaptionedCode.svelte +12 -14
- package/dist/components/chapter/CaptionedCode.svelte.d.ts +5 -17
- package/dist/components/chapter/ChapterBody.svelte +14 -17
- package/dist/components/chapter/ChapterBody.svelte.d.ts +7 -19
- package/dist/components/chapter/ChapterBody.test.d.ts +1 -0
- package/dist/components/chapter/ChapterBody.test.js +85 -0
- package/dist/components/chapter/Citations.svelte +39 -45
- package/dist/components/chapter/Citations.svelte.d.ts +5 -17
- package/dist/components/chapter/Code.svelte +158 -155
- package/dist/components/chapter/Code.svelte.d.ts +10 -23
- package/dist/components/chapter/Comment.svelte +30 -23
- package/dist/components/chapter/Comment.svelte.d.ts +5 -17
- package/dist/components/chapter/Definition.svelte +36 -34
- package/dist/components/chapter/Definition.svelte.d.ts +5 -17
- package/dist/components/chapter/Embed.svelte +78 -72
- package/dist/components/chapter/Embed.svelte.d.ts +8 -20
- package/dist/components/chapter/ErrorMessage.svelte +2 -4
- package/dist/components/chapter/ErrorMessage.svelte.d.ts +5 -17
- package/dist/components/chapter/Figure.svelte +22 -29
- package/dist/components/chapter/Figure.svelte.d.ts +9 -22
- package/dist/components/chapter/Footnote.svelte +40 -32
- package/dist/components/chapter/Footnote.svelte.d.ts +5 -17
- package/dist/components/chapter/Format.svelte +26 -41
- package/dist/components/chapter/Format.svelte.d.ts +7 -18
- package/dist/components/chapter/InlineCode.svelte +7 -8
- package/dist/components/chapter/InlineCode.svelte.d.ts +5 -17
- package/dist/components/chapter/Label.svelte +5 -11
- package/dist/components/chapter/Label.svelte.d.ts +5 -17
- package/dist/components/chapter/LineBreak.svelte +1 -3
- package/dist/components/chapter/LineBreak.svelte.d.ts +5 -17
- package/dist/components/chapter/Link.svelte +17 -23
- package/dist/components/chapter/Link.svelte.d.ts +5 -17
- package/dist/components/chapter/List.svelte +9 -9
- package/dist/components/chapter/List.svelte.d.ts +6 -17
- package/dist/components/chapter/Marginal.svelte +59 -60
- package/dist/components/chapter/Marginal.svelte.d.ts +10 -22
- package/dist/components/chapter/Paragraph.svelte +8 -23
- package/dist/components/chapter/Paragraph.svelte.d.ts +6 -18
- package/dist/components/chapter/Positioned.svelte +2 -4
- package/dist/components/chapter/Positioned.svelte.d.ts +6 -19
- package/dist/components/chapter/Problem.svelte +3 -2
- package/dist/components/chapter/Problem.svelte.d.ts +5 -28
- package/dist/components/chapter/Python.svelte +45 -58
- package/dist/components/chapter/Python.svelte.d.ts +6 -18
- package/dist/components/chapter/Quote.svelte +5 -7
- package/dist/components/chapter/Quote.svelte.d.ts +5 -17
- package/dist/components/chapter/Rule.svelte +1 -3
- package/dist/components/chapter/Rule.svelte.d.ts +5 -17
- package/dist/components/chapter/Table.svelte +6 -8
- package/dist/components/chapter/Table.svelte.d.ts +5 -17
- package/dist/components/chapter/Text.svelte +54 -69
- package/dist/components/chapter/Text.svelte.d.ts +6 -18
- package/dist/components/controls/DarkToggle.svelte +7 -8
- package/dist/components/controls/DarkToggle.svelte.d.ts +6 -18
- package/dist/components/editor/BookishEditor.svelte +583 -761
- package/dist/components/editor/BookishEditor.svelte.d.ts +14 -26
- package/dist/components/editor/CalloutEditor.svelte +3 -3
- package/dist/components/editor/CalloutEditor.svelte.d.ts +5 -17
- package/dist/components/editor/CaptionedCodeEditor.svelte +5 -5
- package/dist/components/editor/CaptionedCodeEditor.svelte.d.ts +5 -17
- package/dist/components/editor/CaretView.svelte +23 -25
- package/dist/components/editor/CaretView.svelte.d.ts +15 -27
- package/dist/components/editor/CitationsEditor.svelte +25 -28
- package/dist/components/editor/CitationsEditor.svelte.d.ts +5 -17
- package/dist/components/editor/ConfirmButton.svelte +9 -6
- package/dist/components/editor/ConfirmButton.svelte.d.ts +8 -21
- package/dist/components/editor/DefinitionEditor.svelte +11 -15
- package/dist/components/editor/DefinitionEditor.svelte.d.ts +5 -17
- package/dist/components/editor/EmbedEditor.svelte +43 -44
- package/dist/components/editor/EmbedEditor.svelte.d.ts +5 -17
- package/dist/components/editor/Icon.svelte +1 -1
- package/dist/components/editor/Icon.svelte.d.ts +5 -17
- package/dist/components/editor/ImageChooser.svelte +15 -18
- package/dist/components/editor/ImageChooser.svelte.d.ts +6 -18
- package/dist/components/editor/ImageThumbnail.svelte +29 -24
- package/dist/components/editor/ImageThumbnail.svelte.d.ts +7 -19
- package/dist/components/editor/InlineCodeEditor.svelte +3 -3
- package/dist/components/editor/InlineCodeEditor.svelte.d.ts +5 -17
- package/dist/components/editor/LabelEditor.svelte +5 -6
- package/dist/components/editor/LabelEditor.svelte.d.ts +5 -17
- package/dist/components/editor/LanguageEditor.svelte +4 -5
- package/dist/components/editor/LanguageEditor.svelte.d.ts +6 -18
- package/dist/components/editor/LinkEditor.svelte +52 -68
- package/dist/components/editor/LinkEditor.svelte.d.ts +5 -17
- package/dist/components/editor/Note.svelte +4 -1
- package/dist/components/editor/Note.svelte.d.ts +5 -28
- package/dist/components/editor/Permissions.svelte +36 -34
- package/dist/components/editor/Permissions.svelte.d.ts +9 -21
- package/dist/components/editor/PositionEditor.svelte +6 -7
- package/dist/components/editor/PositionEditor.svelte.d.ts +6 -18
- package/dist/components/editor/QuoteEditor.svelte +3 -3
- package/dist/components/editor/QuoteEditor.svelte.d.ts +5 -17
- package/dist/components/editor/Switch.svelte +16 -11
- package/dist/components/editor/Switch.svelte.d.ts +9 -21
- package/dist/components/editor/TableEditor.svelte +3 -3
- package/dist/components/editor/TableEditor.svelte.d.ts +5 -17
- package/dist/components/editor/TextEditor.svelte +74 -87
- package/dist/components/editor/TextEditor.svelte.d.ts +13 -25
- package/dist/components/editor/Toggle.svelte +18 -21
- package/dist/components/editor/Toggle.svelte.d.ts +7 -20
- package/dist/components/editor/Toolbar.svelte +140 -145
- package/dist/components/editor/Toolbar.svelte.d.ts +5 -17
- package/dist/components/editor/ToolbarGroup.svelte +4 -4
- package/dist/components/editor/ToolbarGroup.svelte.d.ts +6 -19
- package/dist/components/editor/ToolbarSpacer.svelte +1 -1
- package/dist/components/editor/ToolbarSpacer.svelte.d.ts +22 -21
- package/dist/components/editor/URLEditor.svelte +3 -5
- package/dist/components/editor/URLEditor.svelte.d.ts +7 -19
- package/dist/components/page/Acknowledgements.svelte +14 -8
- package/dist/components/page/Acknowledgements.svelte.d.ts +3 -16
- package/dist/components/page/Analytics.svelte +2 -3
- package/dist/components/page/Analytics.svelte.d.ts +6 -17
- package/dist/components/page/Authors.svelte +29 -29
- package/dist/components/page/Authors.svelte.d.ts +11 -23
- package/dist/components/page/BookLoader.svelte +47 -43
- package/dist/components/page/BookLoader.svelte.d.ts +5 -17
- package/dist/components/page/BulkReferenceEditor.svelte +43 -26
- package/dist/components/page/BulkReferenceEditor.svelte.d.ts +3 -16
- package/dist/components/page/Chapter.svelte +224 -249
- package/dist/components/page/Chapter.svelte.d.ts +6 -18
- package/dist/components/page/ChapterContext.d.ts +3 -1
- package/dist/components/page/ChapterNumber.svelte +4 -1
- package/dist/components/page/ChapterNumber.svelte.d.ts +5 -28
- package/dist/components/page/ChapterTitle.svelte +4 -4
- package/dist/components/page/ChapterTitle.svelte.d.ts +6 -19
- package/dist/components/page/Contexts.js +2 -2
- package/dist/components/page/DefinitionView.svelte +51 -44
- package/dist/components/page/DefinitionView.svelte.d.ts +6 -18
- package/dist/components/page/Description.svelte +10 -4
- package/dist/components/page/Description.svelte.d.ts +16 -14
- package/dist/components/page/EditableHeader.svelte +4 -6
- package/dist/components/page/EditableHeader.svelte.d.ts +7 -18
- package/dist/components/page/Edition.svelte +57 -71
- package/dist/components/page/Edition.svelte.d.ts +7 -20
- package/dist/components/page/EditionLoader.svelte +119 -82
- package/dist/components/page/EditionLoader.svelte.d.ts +6 -19
- package/dist/components/page/Editions.svelte +26 -31
- package/dist/components/page/Editions.svelte.d.ts +5 -17
- package/dist/components/page/Glossary.svelte +31 -35
- package/dist/components/page/Glossary.svelte.d.ts +3 -16
- package/dist/components/page/Header.svelte +43 -49
- package/dist/components/page/Header.svelte.d.ts +19 -30
- package/dist/components/page/Index.svelte +46 -46
- package/dist/components/page/Index.svelte.d.ts +3 -16
- package/dist/components/page/Instructions.svelte +2 -2
- package/dist/components/page/Instructions.svelte.d.ts +6 -19
- package/dist/components/page/License.svelte +13 -7
- package/dist/components/page/License.svelte.d.ts +16 -14
- package/dist/components/page/Loading.svelte +9 -9
- package/dist/components/page/Loading.svelte.d.ts +22 -21
- package/dist/components/page/Media.svelte +36 -27
- package/dist/components/page/Media.svelte.d.ts +3 -16
- package/dist/components/page/MediaPreview.svelte +22 -19
- package/dist/components/page/MediaPreview.svelte.d.ts +8 -21
- package/dist/components/page/Muted.svelte +4 -1
- package/dist/components/page/Muted.svelte.d.ts +5 -28
- package/dist/components/page/Outline.svelte +75 -97
- package/dist/components/page/Outline.svelte.d.ts +8 -20
- package/dist/components/page/Page.svelte +23 -33
- package/dist/components/page/Page.svelte.d.ts +7 -20
- package/dist/components/page/PageHeader.svelte +2 -2
- package/dist/components/page/PageHeader.svelte.d.ts +6 -19
- package/dist/components/page/PageParagraph.svelte +4 -1
- package/dist/components/page/PageParagraph.svelte.d.ts +5 -28
- package/dist/components/page/PossibleChapter.svelte +7 -7
- package/dist/components/page/PossibleChapter.svelte.d.ts +3 -16
- package/dist/components/page/PossibleReference.svelte +4 -5
- package/dist/components/page/PossibleReference.svelte.d.ts +6 -18
- package/dist/components/page/Print.svelte +11 -12
- package/dist/components/page/Print.svelte.d.ts +3 -16
- package/dist/components/page/Publish.svelte +47 -47
- package/dist/components/page/Publish.svelte.d.ts +3 -16
- package/dist/components/page/Reference.svelte +24 -35
- package/dist/components/page/Reference.svelte.d.ts +6 -18
- package/dist/components/page/References.svelte +21 -22
- package/dist/components/page/References.svelte.d.ts +3 -16
- package/dist/components/page/Rows.svelte +4 -1
- package/dist/components/page/Rows.svelte.d.ts +5 -28
- package/dist/components/page/Search.svelte +58 -60
- package/dist/components/page/Search.svelte.d.ts +3 -16
- package/dist/components/page/Status.svelte +2 -2
- package/dist/components/page/Status.svelte.d.ts +16 -14
- package/dist/components/page/SubdomainEditor.svelte +11 -11
- package/dist/components/page/SubdomainEditor.svelte.d.ts +16 -14
- package/dist/components/page/TableOfContents.svelte +143 -125
- package/dist/components/page/TableOfContents.svelte.d.ts +3 -16
- package/dist/components/page/TableOfContentsImage.svelte +6 -7
- package/dist/components/page/TableOfContentsImage.svelte.d.ts +6 -18
- package/dist/components/page/TableOfContentsRow.svelte +32 -32
- package/dist/components/page/TableOfContentsRow.svelte.d.ts +10 -22
- package/dist/components/page/ThemeEditor.svelte +35 -28
- package/dist/components/page/ThemeEditor.svelte.d.ts +3 -16
- package/dist/components/page/ThemeEditorPreview.svelte +11 -13
- package/dist/components/page/ThemeEditorPreview.svelte.d.ts +5 -17
- package/dist/components/page/ThemeSetEditor.svelte +4 -6
- package/dist/components/page/ThemeSetEditor.svelte.d.ts +7 -19
- package/dist/components/page/ThemeVariableEditor.svelte +9 -11
- package/dist/components/page/ThemeVariableEditor.svelte.d.ts +7 -19
- package/dist/components/page/Title.svelte +4 -1
- package/dist/components/page/Title.svelte.d.ts +5 -28
- package/dist/components/page/Unknown.svelte +11 -8
- package/dist/components/page/Unknown.svelte.d.ts +5 -17
- package/dist/models/Firebase.js +18 -4
- package/dist/models/book/Book.js +2 -1
- package/dist/models/book/BookMedia.js +1 -2
- package/dist/models/book/Chapter.js +3 -2
- package/dist/models/book/Edition.d.ts +1 -1
- package/dist/models/book/Edition.js +5 -1
- package/dist/models/chapter/BlocksNode.js +3 -1
- package/dist/models/chapter/BlocksNode.test.js +5 -1
- package/dist/models/chapter/Node.test.js +2 -2
- package/package.json +34 -22
|
@@ -1,19 +1,7 @@
|
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
|
2
1
|
import type InlineCodeNode from '../../models/chapter/InlineCodeNode';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
node: InlineCodeNode;
|
|
6
|
-
};
|
|
7
|
-
events: {
|
|
8
|
-
[evt: string]: CustomEvent<any>;
|
|
9
|
-
};
|
|
10
|
-
slots: {};
|
|
11
|
-
exports?: {} | undefined;
|
|
12
|
-
bindings?: string | undefined;
|
|
13
|
-
};
|
|
14
|
-
export type InlineCodeProps = typeof __propDef.props;
|
|
15
|
-
export type InlineCodeEvents = typeof __propDef.events;
|
|
16
|
-
export type InlineCodeSlots = typeof __propDef.slots;
|
|
17
|
-
export default class InlineCode extends SvelteComponent<InlineCodeProps, InlineCodeEvents, InlineCodeSlots> {
|
|
2
|
+
interface Props {
|
|
3
|
+
node: InlineCodeNode;
|
|
18
4
|
}
|
|
19
|
-
|
|
5
|
+
declare const InlineCode: import("svelte").Component<Props, {}, "">;
|
|
6
|
+
type InlineCode = ReturnType<typeof InlineCode>;
|
|
7
|
+
export default InlineCode;
|
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
<
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import Problem from './Problem.svelte';
|
|
6
|
-
export let node;
|
|
1
|
+
<script lang="ts">import Atom from "./Atom.svelte";
|
|
2
|
+
import { getChapter, getRoot, isChapterEditable } from "../page/Contexts";
|
|
3
|
+
import Problem from "./Problem.svelte";
|
|
4
|
+
let { node } = $props();
|
|
7
5
|
let editable = isChapterEditable();
|
|
8
6
|
let chapter = getChapter();
|
|
9
7
|
let root = getRoot();
|
|
10
|
-
|
|
11
|
-
$root === undefined
|
|
12
|
-
? false
|
|
13
|
-
: $root.getLabels().filter((l) => l.getMeta() === node.getMeta())
|
|
14
|
-
.length > 1;
|
|
8
|
+
let duplicate = $derived($root === void 0 ? false : $root.getLabels().filter((l) => l.getMeta() === node.getMeta()).length > 1);
|
|
15
9
|
</script>
|
|
16
10
|
|
|
17
11
|
<Atom {node}>
|
|
@@ -1,19 +1,7 @@
|
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
|
2
1
|
import type LabelNode from '../../models/chapter/LabelNode';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
node: LabelNode;
|
|
6
|
-
};
|
|
7
|
-
events: {
|
|
8
|
-
[evt: string]: CustomEvent<any>;
|
|
9
|
-
};
|
|
10
|
-
slots: {};
|
|
11
|
-
exports?: {} | undefined;
|
|
12
|
-
bindings?: string | undefined;
|
|
13
|
-
};
|
|
14
|
-
export type LabelProps = typeof __propDef.props;
|
|
15
|
-
export type LabelEvents = typeof __propDef.events;
|
|
16
|
-
export type LabelSlots = typeof __propDef.slots;
|
|
17
|
-
export default class Label extends SvelteComponent<LabelProps, LabelEvents, LabelSlots> {
|
|
2
|
+
interface Props {
|
|
3
|
+
node: LabelNode;
|
|
18
4
|
}
|
|
19
|
-
|
|
5
|
+
declare const Label: import("svelte").Component<Props, {}, "">;
|
|
6
|
+
type Label = ReturnType<typeof Label>;
|
|
7
|
+
export default Label;
|
|
@@ -1,19 +1,7 @@
|
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
|
2
1
|
import type LineBreakNode from '../../models/chapter/LineBreakNode';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
node: LineBreakNode;
|
|
6
|
-
};
|
|
7
|
-
events: {
|
|
8
|
-
[evt: string]: CustomEvent<any>;
|
|
9
|
-
};
|
|
10
|
-
slots: {};
|
|
11
|
-
exports?: {} | undefined;
|
|
12
|
-
bindings?: string | undefined;
|
|
13
|
-
};
|
|
14
|
-
export type LineBreakProps = typeof __propDef.props;
|
|
15
|
-
export type LineBreakEvents = typeof __propDef.events;
|
|
16
|
-
export type LineBreakSlots = typeof __propDef.slots;
|
|
17
|
-
export default class LineBreak extends SvelteComponent<LineBreakProps, LineBreakEvents, LineBreakSlots> {
|
|
2
|
+
interface Props {
|
|
3
|
+
node: LineBreakNode;
|
|
18
4
|
}
|
|
19
|
-
|
|
5
|
+
declare const LineBreak: import("svelte").Component<Props, {}, "">;
|
|
6
|
+
type LineBreak = ReturnType<typeof LineBreak>;
|
|
7
|
+
export default LineBreak;
|
|
@@ -1,31 +1,25 @@
|
|
|
1
|
-
<
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import Problem from './Problem.svelte';
|
|
6
|
-
export let node;
|
|
1
|
+
<script lang="ts">import { getBase, getEdition, isChapterEditable } from "../page/Contexts";
|
|
2
|
+
import Text from "./Text.svelte";
|
|
3
|
+
import Problem from "./Problem.svelte";
|
|
4
|
+
let { node } = $props();
|
|
7
5
|
let base = getBase();
|
|
8
6
|
let editable = isChapterEditable();
|
|
9
7
|
let edition = getEdition();
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
let url = $derived(node.getMeta());
|
|
9
|
+
let content = $derived(node.getText());
|
|
12
10
|
function isInvalidChapterLink() {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
else if (url.indexOf('#') >= 0) {
|
|
22
|
-
let parts = chapter.split('#');
|
|
23
|
-
chapter = parts[0];
|
|
24
|
-
}
|
|
25
|
-
if (chapter !== '' && !$edition?.hasChapter(chapter))
|
|
26
|
-
return true;
|
|
11
|
+
if (!url.startsWith("http")) {
|
|
12
|
+
let chapter = url;
|
|
13
|
+
if (url.indexOf(":") >= 0) {
|
|
14
|
+
let parts = chapter.split(":");
|
|
15
|
+
chapter = parts[0];
|
|
16
|
+
} else if (url.indexOf("#") >= 0) {
|
|
17
|
+
let parts = chapter.split("#");
|
|
18
|
+
chapter = parts[0];
|
|
27
19
|
}
|
|
28
|
-
return
|
|
20
|
+
if (chapter !== "" && !$edition?.hasChapter(chapter)) return true;
|
|
21
|
+
}
|
|
22
|
+
return false;
|
|
29
23
|
}
|
|
30
24
|
</script>
|
|
31
25
|
|
|
@@ -1,19 +1,7 @@
|
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
|
2
1
|
import type LinkNode from '../../models/chapter/LinkNode';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
node: LinkNode;
|
|
6
|
-
};
|
|
7
|
-
events: {
|
|
8
|
-
[evt: string]: CustomEvent<any>;
|
|
9
|
-
};
|
|
10
|
-
slots: {};
|
|
11
|
-
exports?: {} | undefined;
|
|
12
|
-
bindings?: string | undefined;
|
|
13
|
-
};
|
|
14
|
-
export type LinkProps = typeof __propDef.props;
|
|
15
|
-
export type LinkEvents = typeof __propDef.events;
|
|
16
|
-
export type LinkSlots = typeof __propDef.slots;
|
|
17
|
-
export default class Link extends SvelteComponent<LinkProps, LinkEvents, LinkSlots> {
|
|
2
|
+
interface Props {
|
|
3
|
+
node: LinkNode;
|
|
18
4
|
}
|
|
19
|
-
|
|
5
|
+
declare const Link: import("svelte").Component<Props, {}, "">;
|
|
6
|
+
type Link = ReturnType<typeof Link>;
|
|
7
|
+
export default Link;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
<
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export let node;
|
|
1
|
+
<script lang="ts">import List from "./List.svelte";
|
|
2
|
+
import ListNode from "../../models/chapter/ListNode";
|
|
3
|
+
import Format from "./Format.svelte";
|
|
4
|
+
let { node } = $props();
|
|
6
5
|
</script>
|
|
7
6
|
|
|
8
7
|
<svelte:element
|
|
@@ -11,7 +10,7 @@ export let node;
|
|
|
11
10
|
>
|
|
12
11
|
{#each node.getItems() as item (item.nodeID)}
|
|
13
12
|
{#if item instanceof ListNode}
|
|
14
|
-
<
|
|
13
|
+
<List node={item} />
|
|
15
14
|
{:else}
|
|
16
15
|
<li><Format node={item} /></li>
|
|
17
16
|
{/if}
|
|
@@ -39,13 +38,14 @@ export let node;
|
|
|
39
38
|
list-style-type: decimal;
|
|
40
39
|
}
|
|
41
40
|
|
|
42
|
-
/* Second level is lowercase alpha
|
|
43
|
-
|
|
41
|
+
/* Second level is lowercase alpha. Nested lists render as child List
|
|
42
|
+
components, so the inner elements need :global to match. */
|
|
43
|
+
ol :global(ol li) {
|
|
44
44
|
list-style-type: lower-alpha;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
/* Third level is uppercase alpha */
|
|
48
|
-
ol ol ol li {
|
|
48
|
+
ol :global(ol ol li) {
|
|
49
49
|
list-style-type: upper-alpha;
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -1,19 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import List from './List.svelte';
|
|
2
2
|
import ListNode from '../../models/chapter/ListNode';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
node: ListNode;
|
|
6
|
-
};
|
|
7
|
-
events: {
|
|
8
|
-
[evt: string]: CustomEvent<any>;
|
|
9
|
-
};
|
|
10
|
-
slots: {};
|
|
11
|
-
exports?: {} | undefined;
|
|
12
|
-
bindings?: string | undefined;
|
|
13
|
-
};
|
|
14
|
-
export type ListProps = typeof __propDef.props;
|
|
15
|
-
export type ListEvents = typeof __propDef.events;
|
|
16
|
-
export type ListSlots = typeof __propDef.slots;
|
|
17
|
-
export default class List extends SvelteComponent<ListProps, ListEvents, ListSlots> {
|
|
3
|
+
interface Props {
|
|
4
|
+
node: ListNode;
|
|
18
5
|
}
|
|
19
|
-
|
|
6
|
+
declare const List: import("svelte").Component<Props, {}, "">;
|
|
7
|
+
type List = ReturnType<typeof List>;
|
|
8
|
+
export default List;
|
|
@@ -1,61 +1,60 @@
|
|
|
1
|
-
<
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
let hovered = false;
|
|
1
|
+
<script lang="ts">import { isMobile, watchMobile } from "../../util/isMobile";
|
|
2
|
+
import { onMount } from "svelte";
|
|
3
|
+
import {
|
|
4
|
+
getCaret,
|
|
5
|
+
getChapter,
|
|
6
|
+
isChapterEditable
|
|
7
|
+
} from "../page/Contexts";
|
|
8
|
+
import AtomNode from "../../models/chapter/AtomNode";
|
|
9
|
+
let { node, id, label, interactor, content } = $props();
|
|
10
|
+
let hovered = $state(false);
|
|
11
11
|
let chapter = getChapter();
|
|
12
|
-
|
|
12
|
+
let editable = isChapterEditable();
|
|
13
13
|
let caret = getCaret();
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
function toggle(event,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
event.preventDefault();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return;
|
|
14
|
+
let selectedMarginal = $derived($chapter?.marginal);
|
|
15
|
+
let isHidden = $derived(
|
|
16
|
+
editable ? (
|
|
17
|
+
// If editable, it's hidden if the caret is not inside the marginal content.
|
|
18
|
+
!($caret?.range?.start.node === node || $caret?.range?.start.node.getAncestors($caret.root).some((ancestor) => ancestor === node))
|
|
19
|
+
) : (
|
|
20
|
+
// If not editable, it's hidden if it's not selected.
|
|
21
|
+
$selectedMarginal !== id
|
|
22
|
+
)
|
|
23
|
+
);
|
|
24
|
+
function toggle(event, interacted) {
|
|
25
|
+
if (editable) {
|
|
26
|
+
if (interacted) {
|
|
27
|
+
if (editable && $caret && node instanceof AtomNode) {
|
|
28
|
+
$caret.setCaret({
|
|
29
|
+
start: { node, index: 0 },
|
|
30
|
+
end: { node, index: 0 }
|
|
31
|
+
});
|
|
32
|
+
if (event) {
|
|
33
|
+
event.stopPropagation();
|
|
34
|
+
event.preventDefault();
|
|
39
35
|
}
|
|
36
|
+
}
|
|
37
|
+
return;
|
|
40
38
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
$chapter.marginal.set(undefined);
|
|
47
|
-
}
|
|
39
|
+
}
|
|
40
|
+
if ($chapter) {
|
|
41
|
+
if (isMobile() && isHidden) $chapter.marginal.set(id);
|
|
42
|
+
else $chapter.marginal.set(void 0);
|
|
43
|
+
}
|
|
48
44
|
}
|
|
49
45
|
function handleEnter() {
|
|
50
|
-
|
|
46
|
+
hovered = true;
|
|
51
47
|
}
|
|
52
48
|
function handleExit() {
|
|
53
|
-
|
|
49
|
+
hovered = false;
|
|
54
50
|
}
|
|
55
51
|
onMount(() => {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
52
|
+
const mediaWatch = watchMobile();
|
|
53
|
+
mediaWatch.addEventListener("change", () => toggle(void 0, false));
|
|
54
|
+
return () => mediaWatch.removeEventListener(
|
|
55
|
+
"change",
|
|
56
|
+
() => toggle(void 0, false)
|
|
57
|
+
);
|
|
59
58
|
});
|
|
60
59
|
</script>
|
|
61
60
|
|
|
@@ -68,26 +67,26 @@ onMount(() => {
|
|
|
68
67
|
aria-label={label}
|
|
69
68
|
role="button"
|
|
70
69
|
tabindex="0"
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
onmousedown={(event) => toggle(event, true)}
|
|
71
|
+
onkeydown={(event) =>
|
|
73
72
|
event.key === 'Enter' || event.key === ' '
|
|
74
73
|
? toggle(undefined, true)
|
|
75
74
|
: undefined}
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
onmouseenter={handleEnter}
|
|
76
|
+
onmouseleave={handleExit}>{@render interactor?.()}</span
|
|
78
77
|
><span
|
|
79
78
|
class={'bookish-marginal' +
|
|
80
79
|
(isHidden ? ' bookish-marginal-hidden' : '') +
|
|
81
80
|
(hovered ? ' bookish-marginal-hovered' : '')}
|
|
82
81
|
role="button"
|
|
83
82
|
tabindex={editable ? null : 0}
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
onmousedown={() => toggle(undefined, false)}
|
|
84
|
+
onkeydown={(event) =>
|
|
86
85
|
event.key === 'Enter' || event.key === ' '
|
|
87
86
|
? toggle(undefined, false)
|
|
88
87
|
: undefined}
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
onmouseenter={handleEnter}
|
|
89
|
+
onmouseleave={handleExit}>{@render content?.()}</span
|
|
91
90
|
>
|
|
92
91
|
|
|
93
92
|
<style>
|
|
@@ -155,10 +154,10 @@ onMount(() => {
|
|
|
155
154
|
}
|
|
156
155
|
|
|
157
156
|
:global(
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
157
|
+
.bookish-definition
|
|
158
|
+
.bookish-marginal.bookish-marginal-hovered
|
|
159
|
+
.bookish-definition-entry
|
|
160
|
+
) {
|
|
162
161
|
background: linear-gradient(
|
|
163
162
|
to right,
|
|
164
163
|
var(--bookish-link-color) 0px,
|
|
@@ -1,24 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type Snippet } from 'svelte';
|
|
2
2
|
import type Node from '../../models/chapter/Node';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
events: {
|
|
10
|
-
[evt: string]: CustomEvent<any>;
|
|
11
|
-
};
|
|
12
|
-
slots: {
|
|
13
|
-
interactor: {};
|
|
14
|
-
content: {};
|
|
15
|
-
};
|
|
16
|
-
exports?: {} | undefined;
|
|
17
|
-
bindings?: string | undefined;
|
|
18
|
-
};
|
|
19
|
-
export type MarginalProps = typeof __propDef.props;
|
|
20
|
-
export type MarginalEvents = typeof __propDef.events;
|
|
21
|
-
export type MarginalSlots = typeof __propDef.slots;
|
|
22
|
-
export default class Marginal extends SvelteComponent<MarginalProps, MarginalEvents, MarginalSlots> {
|
|
3
|
+
interface Props {
|
|
4
|
+
node: Node;
|
|
5
|
+
id: string;
|
|
6
|
+
label: string;
|
|
7
|
+
interactor?: Snippet;
|
|
8
|
+
content?: Snippet;
|
|
23
9
|
}
|
|
24
|
-
|
|
10
|
+
declare const Marginal: import("svelte").Component<Props, {}, "">;
|
|
11
|
+
type Marginal = ReturnType<typeof Marginal>;
|
|
12
|
+
export default Marginal;
|
|
@@ -1,29 +1,14 @@
|
|
|
1
|
-
<
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export let node;
|
|
6
|
-
export let placeholder = undefined;
|
|
7
|
-
$: level = node.getLevel();
|
|
1
|
+
<script lang="ts">import Format from "./Format.svelte";
|
|
2
|
+
import { getChapter, getEdition, getRoot } from "../page/Contexts";
|
|
3
|
+
let { node, placeholder = void 0 } = $props();
|
|
4
|
+
let level = $derived(node.getLevel());
|
|
8
5
|
let chapter = getChapter();
|
|
9
6
|
let edition = getEdition();
|
|
10
7
|
let root = getRoot();
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
$: classes =
|
|
16
|
-
node.getLevel() === 0
|
|
17
|
-
? undefined
|
|
18
|
-
: 'page-header' +
|
|
19
|
-
($chapter && $chapter.highlightedID === id
|
|
20
|
-
? ' bookish-content-highlight'
|
|
21
|
-
: '');
|
|
22
|
-
$: firstParagraph = $root.getFirstParagraph();
|
|
23
|
-
$: dropcap =
|
|
24
|
-
placeholder === undefined &&
|
|
25
|
-
node === firstParagraph &&
|
|
26
|
-
/^[a-zA-Z]/.test(firstParagraph.getFirstTextNode().getText());
|
|
8
|
+
let id = $derived(node.getLevel() === 0 || $edition === void 0 ? void 0 : "header-" + ($root.getHeaders().indexOf(node) ?? ""));
|
|
9
|
+
let classes = $derived(node.getLevel() === 0 ? void 0 : "page-header" + ($chapter && $chapter.highlightedID === id ? " bookish-content-highlight" : ""));
|
|
10
|
+
let firstParagraph = $derived($root.getFirstParagraph());
|
|
11
|
+
let dropcap = $derived(placeholder === void 0 && node === firstParagraph && /^[a-zA-Z]/.test(firstParagraph.getFirstTextNode().getText()));
|
|
27
12
|
</script>
|
|
28
13
|
|
|
29
14
|
{#if level === 0}
|
|
@@ -1,20 +1,8 @@
|
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
|
2
1
|
import type ParagraphNode from '../../models/chapter/ParagraphNode';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
placeholder?: string | undefined;
|
|
7
|
-
};
|
|
8
|
-
events: {
|
|
9
|
-
[evt: string]: CustomEvent<any>;
|
|
10
|
-
};
|
|
11
|
-
slots: {};
|
|
12
|
-
exports?: {} | undefined;
|
|
13
|
-
bindings?: string | undefined;
|
|
14
|
-
};
|
|
15
|
-
export type ParagraphProps = typeof __propDef.props;
|
|
16
|
-
export type ParagraphEvents = typeof __propDef.events;
|
|
17
|
-
export type ParagraphSlots = typeof __propDef.slots;
|
|
18
|
-
export default class Paragraph extends SvelteComponent<ParagraphProps, ParagraphEvents, ParagraphSlots> {
|
|
2
|
+
interface Props {
|
|
3
|
+
node: ParagraphNode;
|
|
4
|
+
placeholder?: string | undefined;
|
|
19
5
|
}
|
|
20
|
-
|
|
6
|
+
declare const Paragraph: import("svelte").Component<Props, {}, "">;
|
|
7
|
+
type Paragraph = ReturnType<typeof Paragraph>;
|
|
8
|
+
export default Paragraph;
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
<
|
|
2
|
-
|
|
3
|
-
<script>export let position;
|
|
1
|
+
<script lang="ts">let { position, children } = $props();
|
|
4
2
|
</script>
|
|
5
3
|
|
|
6
4
|
<div
|
|
@@ -8,7 +6,7 @@
|
|
|
8
6
|
? 'inset-left'
|
|
9
7
|
: position === '>'
|
|
10
8
|
? 'inset-right'
|
|
11
|
-
: ''}
|
|
9
|
+
: ''}>{@render children?.()}</div
|
|
12
10
|
>
|
|
13
11
|
|
|
14
12
|
<style>
|
|
@@ -1,21 +1,8 @@
|
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
|
2
1
|
import type Position from '../../models/chapter/Position';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
events: {
|
|
8
|
-
[evt: string]: CustomEvent<any>;
|
|
9
|
-
};
|
|
10
|
-
slots: {
|
|
11
|
-
default: {};
|
|
12
|
-
};
|
|
13
|
-
exports?: {} | undefined;
|
|
14
|
-
bindings?: string | undefined;
|
|
15
|
-
};
|
|
16
|
-
export type PositionedProps = typeof __propDef.props;
|
|
17
|
-
export type PositionedEvents = typeof __propDef.events;
|
|
18
|
-
export type PositionedSlots = typeof __propDef.slots;
|
|
19
|
-
export default class Positioned extends SvelteComponent<PositionedProps, PositionedEvents, PositionedSlots> {
|
|
2
|
+
interface Props {
|
|
3
|
+
position: Position;
|
|
4
|
+
children?: import('svelte').Snippet;
|
|
20
5
|
}
|
|
21
|
-
|
|
6
|
+
declare const Positioned: import("svelte").Component<Props, {}, "">;
|
|
7
|
+
type Positioned = ReturnType<typeof Positioned>;
|
|
8
|
+
export default Positioned;
|
|
@@ -1,29 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/** @typedef {typeof __propDef.slots} ProblemSlots */
|
|
4
|
-
export default class Problem extends SvelteComponent<{
|
|
5
|
-
[x: string]: never;
|
|
6
|
-
}, {
|
|
7
|
-
[evt: string]: CustomEvent<any>;
|
|
8
|
-
}, {
|
|
9
|
-
default: {};
|
|
10
|
-
}> {
|
|
1
|
+
interface Props {
|
|
2
|
+
children?: import('svelte').Snippet;
|
|
11
3
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export
|
|
15
|
-
import { SvelteComponent } from "svelte";
|
|
16
|
-
declare const __propDef: {
|
|
17
|
-
props: {
|
|
18
|
-
[x: string]: never;
|
|
19
|
-
};
|
|
20
|
-
events: {
|
|
21
|
-
[evt: string]: CustomEvent<any>;
|
|
22
|
-
};
|
|
23
|
-
slots: {
|
|
24
|
-
default: {};
|
|
25
|
-
};
|
|
26
|
-
exports?: undefined;
|
|
27
|
-
bindings?: undefined;
|
|
28
|
-
};
|
|
29
|
-
export {};
|
|
4
|
+
declare const Problem: import("svelte").Component<Props, {}, "">;
|
|
5
|
+
type Problem = ReturnType<typeof Problem>;
|
|
6
|
+
export default Problem;
|