bookish-press 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/components/Auth.svelte +52 -0
  4. package/components/Auth.svelte.d.ts +16 -0
  5. package/components/Authentication.d.ts +8 -0
  6. package/components/Authentication.js +1 -0
  7. package/components/BookPreview.svelte +87 -0
  8. package/components/BookPreview.svelte.d.ts +18 -0
  9. package/components/External.svelte +4 -0
  10. package/components/External.svelte.d.ts +18 -0
  11. package/components/Link.svelte +5 -0
  12. package/components/Link.svelte.d.ts +19 -0
  13. package/components/chapter/Atom.svelte +36 -0
  14. package/components/chapter/Atom.svelte.d.ts +19 -0
  15. package/components/chapter/Block.svelte +32 -0
  16. package/components/chapter/Block.svelte.d.ts +17 -0
  17. package/components/chapter/Callout.svelte +10 -0
  18. package/components/chapter/Callout.svelte.d.ts +17 -0
  19. package/components/chapter/CaptionedCode.svelte +34 -0
  20. package/components/chapter/CaptionedCode.svelte.d.ts +17 -0
  21. package/components/chapter/ChapterBody.svelte +23 -0
  22. package/components/chapter/ChapterBody.svelte.d.ts +18 -0
  23. package/components/chapter/Citations.svelte +66 -0
  24. package/components/chapter/Citations.svelte.d.ts +17 -0
  25. package/components/chapter/Code.svelte +35 -0
  26. package/components/chapter/Code.svelte.d.ts +22 -0
  27. package/components/chapter/Comment.svelte +46 -0
  28. package/components/chapter/Comment.svelte.d.ts +17 -0
  29. package/components/chapter/Definition.svelte +38 -0
  30. package/components/chapter/Definition.svelte.d.ts +20 -0
  31. package/components/chapter/Embed.svelte +122 -0
  32. package/components/chapter/Embed.svelte.d.ts +18 -0
  33. package/components/chapter/ErrorMessage.svelte +4 -0
  34. package/components/chapter/ErrorMessage.svelte.d.ts +17 -0
  35. package/components/chapter/Footnote.svelte +37 -0
  36. package/components/chapter/Footnote.svelte.d.ts +19 -0
  37. package/components/chapter/Format.svelte +57 -0
  38. package/components/chapter/Format.svelte.d.ts +18 -0
  39. package/components/chapter/InlineCode.svelte +12 -0
  40. package/components/chapter/InlineCode.svelte.d.ts +17 -0
  41. package/components/chapter/Label.svelte +20 -0
  42. package/components/chapter/Label.svelte.d.ts +17 -0
  43. package/components/chapter/Link.svelte +51 -0
  44. package/components/chapter/Link.svelte.d.ts +17 -0
  45. package/components/chapter/List.svelte +14 -0
  46. package/components/chapter/List.svelte.d.ts +17 -0
  47. package/components/chapter/Marginal.svelte +48 -0
  48. package/components/chapter/Marginal.svelte.d.ts +19 -0
  49. package/components/chapter/Paragraph.svelte +15 -0
  50. package/components/chapter/Paragraph.svelte.d.ts +18 -0
  51. package/components/chapter/Python.svelte +81 -0
  52. package/components/chapter/Python.svelte.d.ts +18 -0
  53. package/components/chapter/Quote.svelte +16 -0
  54. package/components/chapter/Quote.svelte.d.ts +17 -0
  55. package/components/chapter/Rule.svelte +4 -0
  56. package/components/chapter/Rule.svelte.d.ts +17 -0
  57. package/components/chapter/Table.svelte +29 -0
  58. package/components/chapter/Table.svelte.d.ts +17 -0
  59. package/components/chapter/Text.svelte +62 -0
  60. package/components/chapter/Text.svelte.d.ts +17 -0
  61. package/components/chapter/renderPosition.d.ts +3 -0
  62. package/components/chapter/renderPosition.js +4 -0
  63. package/components/editor/BookishEditor.svelte +755 -0
  64. package/components/editor/BookishEditor.svelte.d.ts +22 -0
  65. package/components/editor/CalloutEditor.svelte +10 -0
  66. package/components/editor/CalloutEditor.svelte.d.ts +17 -0
  67. package/components/editor/CaptionedCodeEditor.svelte +22 -0
  68. package/components/editor/CaptionedCodeEditor.svelte.d.ts +17 -0
  69. package/components/editor/CaretContext.d.ts +18 -0
  70. package/components/editor/CaretContext.js +1 -0
  71. package/components/editor/CaretState.d.ts +47 -0
  72. package/components/editor/CaretState.js +1 -0
  73. package/components/editor/CaretUtilities.d.ts +5 -0
  74. package/components/editor/CaretUtilities.js +1 -0
  75. package/components/editor/CitationsEditor.svelte +42 -0
  76. package/components/editor/CitationsEditor.svelte.d.ts +17 -0
  77. package/components/editor/Clipboard.d.ts +3 -0
  78. package/components/editor/Clipboard.js +1 -0
  79. package/components/editor/Command.d.ts +18 -0
  80. package/components/editor/Command.js +1 -0
  81. package/components/editor/Commands.d.ts +3 -0
  82. package/components/editor/Commands.js +951 -0
  83. package/components/editor/ConfirmButton.svelte +43 -0
  84. package/components/editor/ConfirmButton.svelte.d.ts +18 -0
  85. package/components/editor/DefinitionEditor.svelte +28 -0
  86. package/components/editor/DefinitionEditor.svelte.d.ts +17 -0
  87. package/components/editor/EmbedEditor.svelte +87 -0
  88. package/components/editor/EmbedEditor.svelte.d.ts +17 -0
  89. package/components/editor/ImageChooser.svelte +70 -0
  90. package/components/editor/ImageChooser.svelte.d.ts +18 -0
  91. package/components/editor/InlineCodeEditor.svelte +9 -0
  92. package/components/editor/InlineCodeEditor.svelte.d.ts +17 -0
  93. package/components/editor/LabelEditor.svelte +23 -0
  94. package/components/editor/LabelEditor.svelte.d.ts +17 -0
  95. package/components/editor/LanguageEditor.svelte +11 -0
  96. package/components/editor/LanguageEditor.svelte.d.ts +17 -0
  97. package/components/editor/LinkEditor.svelte +75 -0
  98. package/components/editor/LinkEditor.svelte.d.ts +17 -0
  99. package/components/editor/Note.svelte +9 -0
  100. package/components/editor/Note.svelte.d.ts +23 -0
  101. package/components/editor/PositionEditor.svelte +14 -0
  102. package/components/editor/PositionEditor.svelte.d.ts +18 -0
  103. package/components/editor/QuoteEditor.svelte +5 -0
  104. package/components/editor/QuoteEditor.svelte.d.ts +17 -0
  105. package/components/editor/Switch.svelte +56 -0
  106. package/components/editor/Switch.svelte.d.ts +20 -0
  107. package/components/editor/TextEditor.svelte +193 -0
  108. package/components/editor/TextEditor.svelte.d.ts +23 -0
  109. package/components/editor/Toggle.svelte +38 -0
  110. package/components/editor/Toggle.svelte.d.ts +19 -0
  111. package/components/editor/Toolbar.svelte +202 -0
  112. package/components/editor/Toolbar.svelte.d.ts +20 -0
  113. package/components/editor/ToolbarGroup.svelte +41 -0
  114. package/components/editor/ToolbarGroup.svelte.d.ts +19 -0
  115. package/components/editor/ToolbarIcon.svelte +22 -0
  116. package/components/editor/ToolbarIcon.svelte.d.ts +16 -0
  117. package/components/editor/ToolbarSpacer.svelte +1 -0
  118. package/components/editor/ToolbarSpacer.svelte.d.ts +19 -0
  119. package/components/editor/URLEditor.svelte +15 -0
  120. package/components/editor/URLEditor.svelte.d.ts +18 -0
  121. package/components/editor/UndoState.d.ts +8 -0
  122. package/components/editor/UndoState.js +1 -0
  123. package/components/page/Acknowledgements.svelte +29 -0
  124. package/components/page/Acknowledgements.svelte.d.ts +14 -0
  125. package/components/page/Alert.svelte +11 -0
  126. package/components/page/Alert.svelte.d.ts +23 -0
  127. package/components/page/Authors.svelte +62 -0
  128. package/components/page/Authors.svelte.d.ts +20 -0
  129. package/components/page/BulkReferenceEditor.svelte +32 -0
  130. package/components/page/BulkReferenceEditor.svelte.d.ts +14 -0
  131. package/components/page/Chapter.svelte +301 -0
  132. package/components/page/Chapter.svelte.d.ts +18 -0
  133. package/components/page/ChapterContext.d.ts +10 -0
  134. package/components/page/ChapterContext.js +1 -0
  135. package/components/page/Contexts.d.ts +27 -0
  136. package/components/page/Contexts.js +21 -0
  137. package/components/page/DefinitionView.svelte +129 -0
  138. package/components/page/DefinitionView.svelte.d.ts +18 -0
  139. package/components/page/Description.svelte +22 -0
  140. package/components/page/Description.svelte.d.ts +14 -0
  141. package/components/page/Edition.svelte +106 -0
  142. package/components/page/Edition.svelte.d.ts +21 -0
  143. package/components/page/Glossary.svelte +61 -0
  144. package/components/page/Glossary.svelte.d.ts +14 -0
  145. package/components/page/Header.svelte +105 -0
  146. package/components/page/Header.svelte.d.ts +27 -0
  147. package/components/page/Index.svelte +117 -0
  148. package/components/page/Index.svelte.d.ts +14 -0
  149. package/components/page/Instructions.svelte +30 -0
  150. package/components/page/Instructions.svelte.d.ts +16 -0
  151. package/components/page/License.svelte +29 -0
  152. package/components/page/License.svelte.d.ts +14 -0
  153. package/components/page/Loading.svelte +13 -0
  154. package/components/page/Loading.svelte.d.ts +19 -0
  155. package/components/page/Media.svelte +76 -0
  156. package/components/page/Media.svelte.d.ts +14 -0
  157. package/components/page/MediaPreview.svelte +11 -0
  158. package/components/page/MediaPreview.svelte.d.ts +19 -0
  159. package/components/page/Outline.svelte +173 -0
  160. package/components/page/Outline.svelte.d.ts +19 -0
  161. package/components/page/Page.svelte +53 -0
  162. package/components/page/Page.svelte.d.ts +19 -0
  163. package/components/page/PossibleChapter.svelte +14 -0
  164. package/components/page/PossibleChapter.svelte.d.ts +14 -0
  165. package/components/page/PossibleReference.svelte +16 -0
  166. package/components/page/PossibleReference.svelte.d.ts +19 -0
  167. package/components/page/Print.svelte +8 -0
  168. package/components/page/Print.svelte.d.ts +14 -0
  169. package/components/page/Reference.svelte +145 -0
  170. package/components/page/Reference.svelte.d.ts +17 -0
  171. package/components/page/References.svelte +58 -0
  172. package/components/page/References.svelte.d.ts +14 -0
  173. package/components/page/Revisions.svelte +124 -0
  174. package/components/page/Revisions.svelte.d.ts +14 -0
  175. package/components/page/Search.svelte +108 -0
  176. package/components/page/Search.svelte.d.ts +14 -0
  177. package/components/page/Status.svelte +49 -0
  178. package/components/page/Status.svelte.d.ts +19 -0
  179. package/components/page/SubdomainEditor.svelte +30 -0
  180. package/components/page/SubdomainEditor.svelte.d.ts +14 -0
  181. package/components/page/TableOfContents.svelte +234 -0
  182. package/components/page/TableOfContents.svelte.d.ts +14 -0
  183. package/components/page/TableOfContentsImage.svelte +15 -0
  184. package/components/page/TableOfContentsImage.svelte.d.ts +16 -0
  185. package/components/page/TableOfContentsRow.svelte +57 -0
  186. package/components/page/TableOfContentsRow.svelte.d.ts +24 -0
  187. package/components/page/ThemeEditor.svelte +52 -0
  188. package/components/page/ThemeEditor.svelte.d.ts +14 -0
  189. package/components/page/ThemeEditorPreview.svelte +37 -0
  190. package/components/page/ThemeEditorPreview.svelte.d.ts +17 -0
  191. package/components/page/ThemeSetEditor.svelte +17 -0
  192. package/components/page/ThemeSetEditor.svelte.d.ts +18 -0
  193. package/components/page/ThemeVariableEditor.svelte +28 -0
  194. package/components/page/ThemeVariableEditor.svelte.d.ts +18 -0
  195. package/components/page/Unknown.svelte +29 -0
  196. package/components/page/Unknown.svelte.d.ts +16 -0
  197. package/components/page/margins.d.ts +2 -0
  198. package/components/page/margins.js +132 -0
  199. package/models/BookLoader.d.ts +2 -0
  200. package/models/BookLoader.js +67 -0
  201. package/models/Firebase.d.ts +4 -0
  202. package/models/Firebase.js +26 -0
  203. package/models/Firestore.d.ts +22 -0
  204. package/models/Firestore.js +194 -0
  205. package/models/book/Book.d.ts +60 -0
  206. package/models/book/Book.js +135 -0
  207. package/models/book/BookMedia.d.ts +23 -0
  208. package/models/book/BookMedia.js +102 -0
  209. package/models/book/Chapter.d.ts +70 -0
  210. package/models/book/Chapter.js +221 -0
  211. package/models/book/ChapterID.d.ts +10 -0
  212. package/models/book/ChapterID.js +10 -0
  213. package/models/book/Definition.d.ts +6 -0
  214. package/models/book/Definition.js +1 -0
  215. package/models/book/Edition.d.ts +111 -0
  216. package/models/book/Edition.js +466 -0
  217. package/models/book/Theme.d.ts +106 -0
  218. package/models/book/Theme.js +76 -0
  219. package/models/book/ThemeColors.d.ts +15 -0
  220. package/models/book/ThemeColors.js +1 -0
  221. package/models/chapter/AtomNode.d.ts +18 -0
  222. package/models/chapter/AtomNode.js +31 -0
  223. package/models/chapter/BlockNode.d.ts +21 -0
  224. package/models/chapter/BlockNode.js +117 -0
  225. package/models/chapter/BlocksNode.d.ts +50 -0
  226. package/models/chapter/BlocksNode.js +709 -0
  227. package/models/chapter/BlocksNode.test.d.ts +1 -0
  228. package/models/chapter/BlocksNode.test.js +302 -0
  229. package/models/chapter/Bookkeeping.d.ts +4 -0
  230. package/models/chapter/Bookkeeping.js +1 -0
  231. package/models/chapter/CalloutNode.d.ts +17 -0
  232. package/models/chapter/CalloutNode.js +36 -0
  233. package/models/chapter/Caret.d.ts +21 -0
  234. package/models/chapter/Caret.js +69 -0
  235. package/models/chapter/ChapterNode.d.ts +34 -0
  236. package/models/chapter/ChapterNode.js +80 -0
  237. package/models/chapter/CitationsNode.d.ts +16 -0
  238. package/models/chapter/CitationsNode.js +17 -0
  239. package/models/chapter/CodeNode.d.ts +30 -0
  240. package/models/chapter/CodeNode.js +64 -0
  241. package/models/chapter/CommentNode.d.ts +18 -0
  242. package/models/chapter/CommentNode.js +32 -0
  243. package/models/chapter/DefinitionNode.d.ts +12 -0
  244. package/models/chapter/DefinitionNode.js +20 -0
  245. package/models/chapter/Edit.d.ts +7 -0
  246. package/models/chapter/Edit.js +1 -0
  247. package/models/chapter/EmbedNode.d.ts +40 -0
  248. package/models/chapter/EmbedNode.js +89 -0
  249. package/models/chapter/ErrorNode.d.ts +17 -0
  250. package/models/chapter/ErrorNode.js +21 -0
  251. package/models/chapter/FootnoteNode.d.ts +18 -0
  252. package/models/chapter/FootnoteNode.js +29 -0
  253. package/models/chapter/FormatNode.d.ts +60 -0
  254. package/models/chapter/FormatNode.js +614 -0
  255. package/models/chapter/FormatNode.test.d.ts +1 -0
  256. package/models/chapter/FormatNode.test.js +54 -0
  257. package/models/chapter/InlineCodeNode.d.ts +12 -0
  258. package/models/chapter/InlineCodeNode.js +18 -0
  259. package/models/chapter/LabelNode.d.ts +17 -0
  260. package/models/chapter/LabelNode.js +22 -0
  261. package/models/chapter/LinkNode.d.ts +12 -0
  262. package/models/chapter/LinkNode.js +16 -0
  263. package/models/chapter/ListNode.d.ts +51 -0
  264. package/models/chapter/ListNode.js +370 -0
  265. package/models/chapter/ListNode.test.d.ts +1 -0
  266. package/models/chapter/ListNode.test.js +49 -0
  267. package/models/chapter/MetadataNode.d.ts +17 -0
  268. package/models/chapter/MetadataNode.js +24 -0
  269. package/models/chapter/Node.d.ts +36 -0
  270. package/models/chapter/Node.js +173 -0
  271. package/models/chapter/Node.test.d.ts +1 -0
  272. package/models/chapter/Node.test.js +27 -0
  273. package/models/chapter/ParagraphNode.d.ts +33 -0
  274. package/models/chapter/ParagraphNode.js +93 -0
  275. package/models/chapter/ParagraphNode.test.d.ts +1 -0
  276. package/models/chapter/ParagraphNode.test.js +21 -0
  277. package/models/chapter/Parser.d.ts +75 -0
  278. package/models/chapter/Parser.js +824 -0
  279. package/models/chapter/Parser.test.d.ts +1 -0
  280. package/models/chapter/Parser.test.js +25 -0
  281. package/models/chapter/Position.d.ts +2 -0
  282. package/models/chapter/Position.js +1 -0
  283. package/models/chapter/QuoteNode.d.ts +25 -0
  284. package/models/chapter/QuoteNode.js +61 -0
  285. package/models/chapter/ReferenceNode.d.ts +29 -0
  286. package/models/chapter/ReferenceNode.js +48 -0
  287. package/models/chapter/RootNode.d.ts +5 -0
  288. package/models/chapter/RootNode.js +1 -0
  289. package/models/chapter/RuleNode.d.ts +15 -0
  290. package/models/chapter/RuleNode.js +16 -0
  291. package/models/chapter/TableNode.d.ts +35 -0
  292. package/models/chapter/TableNode.js +176 -0
  293. package/models/chapter/TableNode.test.d.ts +1 -0
  294. package/models/chapter/TableNode.test.js +31 -0
  295. package/models/chapter/TextNode.d.ts +36 -0
  296. package/models/chapter/TextNode.js +136 -0
  297. package/models/chapter/TextNode.test.d.ts +1 -0
  298. package/models/chapter/TextNode.test.js +6 -0
  299. package/models/loadEdition.d.ts +5 -0
  300. package/models/loadEdition.js +16 -0
  301. package/package.json +189 -0
  302. package/util/getSubdomain.d.ts +3 -0
  303. package/util/getSubdomain.js +22 -0
  304. package/util/isMobile.d.ts +2 -0
  305. package/util/isMobile.js +6 -0
  306. package/util/mineReference.d.ts +3 -0
  307. package/util/mineReference.js +62 -0
  308. package/util/scrollToEyeLevel.d.ts +2 -0
  309. package/util/scrollToEyeLevel.js +5 -0
@@ -0,0 +1,22 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type RootNode from "../../models/chapter/RootNode";
3
+ declare const __propDef: {
4
+ props: {
5
+ ast: RootNode;
6
+ save: (node: RootNode) => Promise<void> | undefined;
7
+ chapter: boolean;
8
+ autofocus?: boolean | undefined;
9
+ component: ConstructorOfATypedSvelteComponent;
10
+ placeholder: string;
11
+ };
12
+ events: {
13
+ [evt: string]: CustomEvent<any>;
14
+ };
15
+ slots: {};
16
+ };
17
+ export declare type BookishEditorProps = typeof __propDef.props;
18
+ export declare type BookishEditorEvents = typeof __propDef.events;
19
+ export declare type BookishEditorSlots = typeof __propDef.slots;
20
+ export default class BookishEditor extends SvelteComponentTyped<BookishEditorProps, BookishEditorEvents, BookishEditorSlots> {
21
+ }
22
+ export {};
@@ -0,0 +1,10 @@
1
+ <script>import PositionEditor from "./PositionEditor.svelte";
2
+ import { getCaret } from '../page/Contexts';
3
+ export let callout;
4
+ let caret = getCaret();
5
+ </script>
6
+
7
+ <PositionEditor
8
+ value={callout.getPosition()}
9
+ edit={position => $caret?.edit(callout, callout.withPosition(position))}
10
+ />
@@ -0,0 +1,17 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type CalloutNode from "../../models/chapter/CalloutNode";
3
+ declare const __propDef: {
4
+ props: {
5
+ callout: CalloutNode;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ };
12
+ export declare type CalloutEditorProps = typeof __propDef.props;
13
+ export declare type CalloutEditorEvents = typeof __propDef.events;
14
+ export declare type CalloutEditorSlots = typeof __propDef.slots;
15
+ export default class CalloutEditor extends SvelteComponentTyped<CalloutEditorProps, CalloutEditorEvents, CalloutEditorSlots> {
16
+ }
17
+ export {};
@@ -0,0 +1,22 @@
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
+ export let code;
6
+ let caret = getCaret();
7
+ </script>
8
+ <span>
9
+ <PositionEditor
10
+ value={code.getPosition()}
11
+ edit={value => $caret?.edit(code, code.withPosition(value)) }
12
+ />
13
+ <LanguageEditor language={code.getLanguage()} edit={lang => $caret?.edit(code, code.withLanguage(lang)) } />
14
+ {#if code.getLanguage() === "python"}
15
+ <Switch
16
+ options={["executable", "read only"]}
17
+ value={code.isExecutable() ? "executable" : "read only"}
18
+ position=">"
19
+ edit={value => $caret?.edit(code, code.withExecutable(value === "executable")) }
20
+ />
21
+ {/if}
22
+ </span>
@@ -0,0 +1,17 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type CodeNode from "../../models/chapter/CodeNode";
3
+ declare const __propDef: {
4
+ props: {
5
+ code: CodeNode;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ };
12
+ export declare type CaptionedCodeEditorProps = typeof __propDef.props;
13
+ export declare type CaptionedCodeEditorEvents = typeof __propDef.events;
14
+ export declare type CaptionedCodeEditorSlots = typeof __propDef.slots;
15
+ export default class CaptionedCodeEditor extends SvelteComponentTyped<CaptionedCodeEditorProps, CaptionedCodeEditorEvents, CaptionedCodeEditorSlots> {
16
+ }
17
+ export {};
@@ -0,0 +1,18 @@
1
+ import type { CaretRange } from "../../models/chapter/Caret";
2
+ import type RootNode from "../../models/chapter/RootNode";
3
+ import type CaretState from "./CaretState";
4
+ import type Node from "../../models/chapter/Node";
5
+ declare type CaretContext = {
6
+ range: CaretRange | undefined;
7
+ coordinate: {
8
+ x: number;
9
+ y: number;
10
+ } | undefined;
11
+ forceUpdate: Function;
12
+ context: CaretState | undefined;
13
+ edit: (previous: Node, edited: Node) => void;
14
+ setCaret: (range: CaretRange) => void;
15
+ root: RootNode;
16
+ focused: boolean;
17
+ } | undefined;
18
+ export default CaretContext;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,47 @@
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
+ declare type CaretState = {
18
+ chapter: boolean;
19
+ range: CaretRange;
20
+ start: Caret;
21
+ end: Caret;
22
+ isSelection: boolean;
23
+ root: RootNode;
24
+ blocks: BlocksNode | undefined;
25
+ paragraph: ParagraphNode | undefined;
26
+ block: BlockNode | undefined;
27
+ includesList: boolean;
28
+ code: CodeNode | undefined;
29
+ list: ListNode | undefined;
30
+ table: TableNode | undefined;
31
+ format: FormatNode | undefined;
32
+ atom: AtomNode<any> | undefined;
33
+ meta: MetadataNode<any> | undefined;
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;
46
+ };
47
+ export default CaretState;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import type Caret from "../../models/chapter/Caret";
2
+ declare type CaretUtilities = {
3
+ getCaretOnLine: (caret: Caret, below: boolean) => Caret;
4
+ };
5
+ export default CaretUtilities;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,42 @@
1
+ <script>import { getCaret, getEdition } from "../page/Contexts";
2
+ import Note from "./Note.svelte";
3
+ export let citations;
4
+ let edition = getEdition();
5
+ let caret = getCaret();
6
+ let selection;
7
+ function handleSelection() {
8
+ if (selection) {
9
+ update(new Set([...citations.getMeta(), selection]));
10
+ selection = undefined;
11
+ }
12
+ }
13
+ function removeSelection(citationID) {
14
+ let ids = new Set(citations.getMeta());
15
+ ids.delete(citationID);
16
+ update(ids);
17
+ }
18
+ function update(set) {
19
+ $caret?.edit(citations, citations.withMeta(Array.from(set)));
20
+ }
21
+ $: uncited = Object.keys($edition.getReferences()).filter(citationID => !citations.getMeta().includes(citationID)).sort();
22
+ </script>
23
+
24
+ <select bind:value={selection} on:change={handleSelection}>
25
+ <option value={undefined}><em>{uncited.length > 0 ? "Choose references" : "No uncited references"}</em></option>
26
+ {#each uncited as citationID}
27
+ <option value={citationID}>{citationID}</option>
28
+ {/each}
29
+
30
+ </select>
31
+ {#each citations.getMeta() as citationID}
32
+ <sup>
33
+ {citationID}
34
+ <span tabIndex=0
35
+ style="cursor:pointer"
36
+ on:click={() => removeSelection(citationID) }
37
+ on:keydown={ event => { if(event.key === "Enter" || event.key === " ") removeSelection(citationID); }}
38
+ >&times;</span>
39
+ </sup>
40
+ {:else}
41
+ <Note>&mdash;</Note>
42
+ {/each}
@@ -0,0 +1,17 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type CitationsNode from "../../models/chapter/CitationsNode";
3
+ declare const __propDef: {
4
+ props: {
5
+ citations: CitationsNode;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ };
12
+ export declare type CitationsEditorProps = typeof __propDef.props;
13
+ export declare type CitationsEditorEvents = typeof __propDef.events;
14
+ export declare type CitationsEditorSlots = typeof __propDef.slots;
15
+ export default class CitationsEditor extends SvelteComponentTyped<CitationsEditorProps, CitationsEditorEvents, CitationsEditorSlots> {
16
+ }
17
+ export {};
@@ -0,0 +1,3 @@
1
+ import type Node from "../../models/chapter/Node";
2
+ declare type Clipboard = undefined | Node;
3
+ export default Clipboard;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ import type Edit from "../../models/chapter/Edit";
2
+ import type CaretUtilities from "./CaretUtilities";
3
+ import type CaretState from "./CaretState";
4
+ declare type Command = {
5
+ label?: string;
6
+ icon?: string;
7
+ description: string;
8
+ category: string;
9
+ control: boolean;
10
+ alt: boolean;
11
+ shift: boolean | undefined;
12
+ key?: string | string[];
13
+ code?: string;
14
+ visible: boolean | ((context: CaretState) => boolean);
15
+ active: boolean | ((context: CaretState, key?: string) => boolean);
16
+ handler: (context: CaretState, utilities: CaretUtilities, key: string) => Edit;
17
+ };
18
+ export default Command;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import type Command from "./Command";
2
+ declare const commands: Command[];
3
+ export default commands;