bookish-press 0.4.1 → 0.4.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (394) hide show
  1. package/README.md +3 -1
  2. package/components/Auth.svelte +19 -14
  3. package/components/Auth.svelte.d.ts +4 -4
  4. package/components/Authentication.d.ts +2 -2
  5. package/components/BookPreview.svelte +77 -59
  6. package/components/BookPreview.svelte.d.ts +5 -5
  7. package/components/External.svelte +1 -1
  8. package/components/External.svelte.d.ts +3 -3
  9. package/components/Link.svelte +49 -3
  10. package/components/Link.svelte.d.ts +3 -4
  11. package/components/app/BookList.svelte +19 -0
  12. package/components/app/BookList.svelte.d.ts +18 -0
  13. package/components/app/Button.svelte +49 -0
  14. package/components/app/Button.svelte.d.ts +22 -0
  15. package/components/app/Feedback.svelte +45 -0
  16. package/components/app/Feedback.svelte.d.ts +18 -0
  17. package/components/app/Head.svelte +12 -0
  18. package/components/app/Head.svelte.d.ts +27 -0
  19. package/components/app/Large.svelte +8 -0
  20. package/components/app/Large.svelte.d.ts +27 -0
  21. package/components/app/Lead.svelte +12 -0
  22. package/components/app/Lead.svelte.d.ts +27 -0
  23. package/components/app/Link.svelte +24 -0
  24. package/components/app/Link.svelte.d.ts +20 -0
  25. package/components/app/Options.svelte +24 -0
  26. package/components/app/Options.svelte.d.ts +19 -0
  27. package/components/app/Paragraph.svelte +19 -0
  28. package/components/app/Paragraph.svelte.d.ts +18 -0
  29. package/components/app/Table.svelte +32 -0
  30. package/components/app/Table.svelte.d.ts +27 -0
  31. package/components/app/TextInput.svelte +37 -0
  32. package/components/app/TextInput.svelte.d.ts +22 -0
  33. package/components/app/Writing.svelte +13 -0
  34. package/components/app/Writing.svelte.d.ts +27 -0
  35. package/components/chapter/Atom.svelte +20 -6
  36. package/components/chapter/Atom.svelte.d.ts +3 -3
  37. package/components/chapter/Block.svelte +23 -20
  38. package/components/chapter/Block.svelte.d.ts +4 -4
  39. package/components/chapter/Callout.svelte +38 -7
  40. package/components/chapter/Callout.svelte.d.ts +4 -4
  41. package/components/chapter/CaptionedCode.svelte +66 -23
  42. package/components/chapter/CaptionedCode.svelte.d.ts +4 -4
  43. package/components/chapter/ChapterBody.svelte +61 -9
  44. package/components/chapter/ChapterBody.svelte.d.ts +4 -4
  45. package/components/chapter/Citations.svelte +86 -20
  46. package/components/chapter/Citations.svelte.d.ts +4 -4
  47. package/components/chapter/Code.svelte +152 -21
  48. package/components/chapter/Code.svelte.d.ts +3 -3
  49. package/components/chapter/Comment.svelte +38 -16
  50. package/components/chapter/Comment.svelte.d.ts +3 -3
  51. package/components/chapter/Definition.svelte +52 -18
  52. package/components/chapter/Definition.svelte.d.ts +5 -8
  53. package/components/chapter/Embed.svelte +154 -66
  54. package/components/chapter/Embed.svelte.d.ts +5 -4
  55. package/components/chapter/ErrorMessage.svelte +7 -2
  56. package/components/chapter/ErrorMessage.svelte.d.ts +4 -4
  57. package/components/chapter/ExtendedPrism.d.ts +2 -0
  58. package/components/chapter/ExtendedPrism.js +69 -0
  59. package/components/chapter/Figure.svelte +90 -0
  60. package/components/chapter/Figure.svelte.d.ts +24 -0
  61. package/components/chapter/Footnote.svelte +75 -12
  62. package/components/chapter/Footnote.svelte.d.ts +4 -4
  63. package/components/chapter/Format.svelte +60 -37
  64. package/components/chapter/Format.svelte.d.ts +4 -4
  65. package/components/chapter/InlineCode.svelte +15 -5
  66. package/components/chapter/InlineCode.svelte.d.ts +4 -4
  67. package/components/chapter/Label.svelte +37 -8
  68. package/components/chapter/Label.svelte.d.ts +4 -4
  69. package/components/chapter/Link.svelte +23 -18
  70. package/components/chapter/Link.svelte.d.ts +4 -4
  71. package/components/chapter/List.svelte +75 -8
  72. package/components/chapter/List.svelte.d.ts +4 -4
  73. package/components/chapter/Marginal.svelte +169 -27
  74. package/components/chapter/Marginal.svelte.d.ts +6 -3
  75. package/components/chapter/Paragraph.svelte +74 -6
  76. package/components/chapter/Paragraph.svelte.d.ts +4 -4
  77. package/components/chapter/Positioned.svelte +33 -0
  78. package/components/chapter/Positioned.svelte.d.ts +19 -0
  79. package/components/chapter/Problem.svelte +15 -0
  80. package/components/chapter/Problem.svelte.d.ts +27 -0
  81. package/components/chapter/Python.svelte +68 -21
  82. package/components/chapter/Python.svelte.d.ts +4 -4
  83. package/components/chapter/Quote.svelte +64 -11
  84. package/components/chapter/Quote.svelte.d.ts +4 -4
  85. package/components/chapter/Rule.svelte +12 -1
  86. package/components/chapter/Rule.svelte.d.ts +4 -4
  87. package/components/chapter/Table.svelte +36 -25
  88. package/components/chapter/Table.svelte.d.ts +4 -4
  89. package/components/chapter/Text.svelte +61 -36
  90. package/components/chapter/Text.svelte.d.ts +5 -4
  91. package/components/editor/BookishEditor.svelte +343 -237
  92. package/components/editor/BookishEditor.svelte.d.ts +5 -5
  93. package/components/editor/CalloutEditor.svelte +5 -5
  94. package/components/editor/CalloutEditor.svelte.d.ts +4 -4
  95. package/components/editor/CaptionedCodeEditor.svelte +16 -12
  96. package/components/editor/CaptionedCodeEditor.svelte.d.ts +4 -4
  97. package/components/editor/CaretContext.d.ts +48 -16
  98. package/components/editor/CaretState.d.ts +16 -44
  99. package/components/editor/CaretUtilities.d.ts +2 -2
  100. package/components/editor/CaretView.svelte +80 -0
  101. package/components/editor/CaretView.svelte.d.ts +24 -0
  102. package/components/editor/CitationsEditor.svelte +36 -25
  103. package/components/editor/CitationsEditor.svelte.d.ts +4 -4
  104. package/components/editor/Clipboard.d.ts +2 -2
  105. package/components/editor/Command.d.ts +13 -12
  106. package/components/editor/Commands.d.ts +1 -1
  107. package/components/editor/Commands.js +1114 -571
  108. package/components/editor/ConfirmButton.svelte +18 -12
  109. package/components/editor/ConfirmButton.svelte.d.ts +5 -4
  110. package/components/editor/DefinitionEditor.svelte +29 -21
  111. package/components/editor/DefinitionEditor.svelte.d.ts +4 -4
  112. package/components/editor/EmbedEditor.svelte +93 -43
  113. package/components/editor/EmbedEditor.svelte.d.ts +3 -3
  114. package/components/editor/Icon.svelte +17 -0
  115. package/components/editor/Icon.svelte.d.ts +16 -0
  116. package/components/editor/ImageChooser.svelte +53 -34
  117. package/components/editor/ImageChooser.svelte.d.ts +3 -3
  118. package/components/editor/InlineCodeEditor.svelte +7 -4
  119. package/components/editor/InlineCodeEditor.svelte.d.ts +4 -4
  120. package/components/editor/LabelEditor.svelte +20 -11
  121. package/components/editor/LabelEditor.svelte.d.ts +4 -4
  122. package/components/editor/LanguageEditor.svelte +10 -7
  123. package/components/editor/LanguageEditor.svelte.d.ts +3 -3
  124. package/components/editor/LinkEditor.svelte +64 -39
  125. package/components/editor/LinkEditor.svelte.d.ts +4 -4
  126. package/components/editor/Note.svelte +3 -3
  127. package/components/editor/Note.svelte.d.ts +6 -2
  128. package/components/editor/PositionEditor.svelte +9 -6
  129. package/components/editor/PositionEditor.svelte.d.ts +4 -4
  130. package/components/editor/QuoteEditor.svelte +7 -2
  131. package/components/editor/QuoteEditor.svelte.d.ts +4 -4
  132. package/components/editor/Switch.svelte +55 -28
  133. package/components/editor/Switch.svelte.d.ts +4 -4
  134. package/components/editor/TableEditor.svelte +10 -0
  135. package/components/editor/TableEditor.svelte.d.ts +17 -0
  136. package/components/editor/TextEditor.svelte +83 -45
  137. package/components/editor/TextEditor.svelte.d.ts +5 -4
  138. package/components/editor/Toggle.svelte +11 -8
  139. package/components/editor/Toggle.svelte.d.ts +4 -4
  140. package/components/editor/Toolbar.svelte +192 -144
  141. package/components/editor/Toolbar.svelte.d.ts +5 -8
  142. package/components/editor/ToolbarGroup.svelte +18 -23
  143. package/components/editor/ToolbarGroup.svelte.d.ts +3 -4
  144. package/components/editor/ToolbarSpacer.svelte +8 -1
  145. package/components/editor/ToolbarSpacer.svelte.d.ts +6 -2
  146. package/components/editor/URLEditor.svelte +6 -8
  147. package/components/editor/URLEditor.svelte.d.ts +3 -3
  148. package/components/editor/UndoState.d.ts +3 -3
  149. package/components/editor/icons/annotate.svg +1 -0
  150. package/components/editor/icons/block.svg +1 -0
  151. package/components/editor/icons/bold.svg +1 -0
  152. package/components/editor/icons/bullets.svg +1 -0
  153. package/components/editor/icons/callout.svg +1 -0
  154. package/components/editor/icons/citation.svg +8 -0
  155. package/components/editor/icons/clear.svg +1 -0
  156. package/components/editor/icons/clipboard.svg +1 -0
  157. package/components/editor/icons/code.svg +1 -0
  158. package/components/editor/icons/columnafter.svg +1 -0
  159. package/components/editor/icons/columnbefore.svg +1 -0
  160. package/components/editor/icons/comment.svg +1 -0
  161. package/components/editor/icons/copy.svg +1 -0
  162. package/components/editor/icons/cut.svg +1 -0
  163. package/components/editor/icons/define.svg +7 -0
  164. package/components/editor/icons/deletecolumn.svg +1 -0
  165. package/components/editor/icons/deleterow.svg +1 -0
  166. package/components/editor/icons/footnote.svg +8 -0
  167. package/components/editor/icons/header1.svg +7 -0
  168. package/components/editor/icons/header2.svg +7 -0
  169. package/components/editor/icons/header3.svg +7 -0
  170. package/components/editor/icons/home.svg +1 -0
  171. package/components/editor/icons/indent.svg +1 -0
  172. package/components/editor/icons/italic.svg +1 -0
  173. package/components/editor/icons/label.svg +1 -0
  174. package/components/editor/icons/left.svg +1 -0
  175. package/components/editor/icons/level.svg +1 -0
  176. package/components/editor/icons/link.svg +1 -0
  177. package/components/editor/icons/list.svg +1 -0
  178. package/components/editor/icons/media.svg +1 -0
  179. package/components/editor/icons/middle.svg +1 -0
  180. package/components/editor/icons/numbers.svg +10 -0
  181. package/components/editor/icons/paragraph.svg +1 -0
  182. package/components/editor/icons/paste.svg +10 -0
  183. package/components/editor/icons/quote.svg +1 -0
  184. package/components/editor/icons/redo.svg +1 -0
  185. package/components/editor/icons/right.svg +1 -0
  186. package/components/editor/icons/rowabove.svg +1 -0
  187. package/components/editor/icons/rowbelow.svg +1 -0
  188. package/components/editor/icons/rule.svg +1 -0
  189. package/components/editor/icons/sub.svg +1 -0
  190. package/components/editor/icons/super.svg +1 -0
  191. package/components/editor/icons/table.svg +1 -0
  192. package/components/editor/icons/text.svg +1 -0
  193. package/components/editor/icons/time.svg +1 -0
  194. package/components/editor/icons/undo.svg +1 -0
  195. package/components/editor/icons/unindent.svg +1 -0
  196. package/components/editor/icons/unlink.svg +1 -0
  197. package/components/page/Acknowledgements.svelte +31 -22
  198. package/components/page/Acknowledgements.svelte.d.ts +4 -4
  199. package/components/page/Authors.svelte +34 -14
  200. package/components/page/Authors.svelte.d.ts +6 -6
  201. package/components/page/BulkReferenceEditor.svelte +53 -22
  202. package/components/page/BulkReferenceEditor.svelte.d.ts +4 -4
  203. package/components/page/Chapter.svelte +196 -141
  204. package/components/page/Chapter.svelte.d.ts +3 -3
  205. package/components/page/ChapterContext.d.ts +4 -4
  206. package/components/page/ChapterNumber.svelte +9 -0
  207. package/components/page/ChapterNumber.svelte.d.ts +27 -0
  208. package/components/page/ChapterTitle.svelte +16 -0
  209. package/components/page/ChapterTitle.svelte.d.ts +18 -0
  210. package/components/page/Contexts.d.ts +31 -20
  211. package/components/page/Contexts.js +47 -17
  212. package/components/page/DefinitionView.svelte +115 -86
  213. package/components/page/DefinitionView.svelte.d.ts +3 -3
  214. package/components/page/Description.svelte +27 -18
  215. package/components/page/Description.svelte.d.ts +4 -4
  216. package/components/page/Edition.svelte +127 -75
  217. package/components/page/Edition.svelte.d.ts +4 -4
  218. package/components/page/Editions.svelte +144 -0
  219. package/components/page/Editions.svelte.d.ts +14 -0
  220. package/components/page/Glossary.svelte +57 -48
  221. package/components/page/Glossary.svelte.d.ts +4 -4
  222. package/components/page/Header.svelte +129 -44
  223. package/components/page/Header.svelte.d.ts +6 -6
  224. package/components/page/Index.svelte +114 -80
  225. package/components/page/Index.svelte.d.ts +4 -4
  226. package/components/page/Instructions.svelte +18 -16
  227. package/components/page/Instructions.svelte.d.ts +4 -4
  228. package/components/page/License.svelte +29 -21
  229. package/components/page/License.svelte.d.ts +4 -4
  230. package/components/page/Loading.svelte +102 -12
  231. package/components/page/Loading.svelte.d.ts +6 -2
  232. package/components/page/Media.svelte +77 -51
  233. package/components/page/Media.svelte.d.ts +4 -4
  234. package/components/page/MediaPreview.svelte +26 -8
  235. package/components/page/MediaPreview.svelte.d.ts +3 -3
  236. package/components/page/Muted.svelte +10 -0
  237. package/components/page/Muted.svelte.d.ts +27 -0
  238. package/components/page/Outline.svelte +279 -59
  239. package/components/page/Outline.svelte.d.ts +3 -3
  240. package/components/page/Page.svelte +40 -9
  241. package/components/page/Page.svelte.d.ts +3 -3
  242. package/components/page/PageHeader.svelte +14 -0
  243. package/components/page/PageHeader.svelte.d.ts +18 -0
  244. package/components/page/PageParagraph.svelte +18 -0
  245. package/components/page/PageParagraph.svelte.d.ts +27 -0
  246. package/components/page/PossibleChapter.svelte +7 -7
  247. package/components/page/PossibleChapter.svelte.d.ts +4 -4
  248. package/components/page/PossibleReference.svelte +6 -11
  249. package/components/page/PossibleReference.svelte.d.ts +6 -7
  250. package/components/page/Print.svelte +27 -3
  251. package/components/page/Print.svelte.d.ts +4 -4
  252. package/components/page/Reference.svelte +256 -113
  253. package/components/page/Reference.svelte.d.ts +5 -5
  254. package/components/page/References.svelte +39 -47
  255. package/components/page/References.svelte.d.ts +4 -4
  256. package/components/page/Rows.svelte +54 -0
  257. package/components/page/Rows.svelte.d.ts +27 -0
  258. package/components/page/Search.svelte +86 -63
  259. package/components/page/Search.svelte.d.ts +4 -4
  260. package/components/page/Status.svelte +43 -35
  261. package/components/page/Status.svelte.d.ts +4 -9
  262. package/components/page/SubdomainEditor.svelte +40 -27
  263. package/components/page/SubdomainEditor.svelte.d.ts +4 -4
  264. package/components/page/TableOfContents.svelte +225 -190
  265. package/components/page/TableOfContents.svelte.d.ts +4 -4
  266. package/components/page/TableOfContentsImage.svelte +8 -8
  267. package/components/page/TableOfContentsImage.svelte.d.ts +3 -3
  268. package/components/page/TableOfContentsRow.svelte +96 -33
  269. package/components/page/TableOfContentsRow.svelte.d.ts +4 -4
  270. package/components/page/ThemeEditor.svelte +174 -39
  271. package/components/page/ThemeEditor.svelte.d.ts +4 -4
  272. package/components/page/ThemeEditorPreview.svelte +35 -23
  273. package/components/page/ThemeEditorPreview.svelte.d.ts +5 -5
  274. package/components/page/ThemeSetEditor.svelte +15 -13
  275. package/components/page/ThemeSetEditor.svelte.d.ts +4 -4
  276. package/components/page/ThemeVariableEditor.svelte +24 -15
  277. package/components/page/ThemeVariableEditor.svelte.d.ts +3 -3
  278. package/components/page/Title.svelte +12 -0
  279. package/components/page/Title.svelte.d.ts +27 -0
  280. package/components/page/Unknown.svelte +25 -21
  281. package/components/page/Unknown.svelte.d.ts +4 -4
  282. package/components/page/margins.js +50 -33
  283. package/index.d.ts +14 -0
  284. package/index.js +14 -0
  285. package/models/CRUD.d.ts +17 -0
  286. package/models/CRUD.js +194 -0
  287. package/models/Firebase.js +17 -15
  288. package/models/book/Book.d.ts +24 -28
  289. package/models/book/Book.js +120 -113
  290. package/models/book/BookMedia.d.ts +3 -3
  291. package/models/book/BookMedia.js +22 -16
  292. package/models/book/BookSaveStatus.d.ts +7 -0
  293. package/models/book/BookSaveStatus.js +8 -0
  294. package/models/book/Chapter.d.ts +46 -39
  295. package/models/book/Chapter.js +180 -198
  296. package/models/book/ChapterID.js +7 -7
  297. package/models/book/Definition.d.ts +1 -1
  298. package/models/book/Edition.d.ts +62 -60
  299. package/models/book/Edition.js +385 -303
  300. package/models/book/Reference.d.ts +24 -0
  301. package/models/book/Reference.js +78 -0
  302. package/models/book/Schema.d.ts +169 -0
  303. package/models/book/Schema.js +114 -0
  304. package/models/book/Theme.d.ts +44 -37
  305. package/models/book/Theme.js +452 -52
  306. package/models/book/ThemeColors.d.ts +1 -1
  307. package/models/book/Words.d.ts +2 -0
  308. package/models/book/Words.js +110 -0
  309. package/models/chapter/AtomNode.d.ts +4 -4
  310. package/models/chapter/AtomNode.js +20 -13
  311. package/models/chapter/BlockNode.d.ts +9 -10
  312. package/models/chapter/BlockNode.js +32 -13
  313. package/models/chapter/BlocksNode.d.ts +10 -10
  314. package/models/chapter/BlocksNode.js +315 -120
  315. package/models/chapter/BlocksNode.test.js +494 -228
  316. package/models/chapter/Bookkeeping.d.ts +1 -1
  317. package/models/chapter/CalloutNode.d.ts +3 -3
  318. package/models/chapter/CalloutNode.js +34 -12
  319. package/models/chapter/Caret.d.ts +9 -7
  320. package/models/chapter/Caret.js +11 -6
  321. package/models/chapter/ChapterNode.d.ts +11 -11
  322. package/models/chapter/ChapterNode.js +70 -33
  323. package/models/chapter/CitationsNode.d.ts +3 -3
  324. package/models/chapter/CitationsNode.js +31 -12
  325. package/models/chapter/CodeNode.d.ts +11 -6
  326. package/models/chapter/CodeNode.js +143 -34
  327. package/models/chapter/CommentNode.d.ts +5 -5
  328. package/models/chapter/CommentNode.js +29 -13
  329. package/models/chapter/DefinitionNode.d.ts +2 -2
  330. package/models/chapter/DefinitionNode.js +15 -7
  331. package/models/chapter/Edit.d.ts +3 -3
  332. package/models/chapter/EmbedNode.d.ts +9 -5
  333. package/models/chapter/EmbedNode.js +108 -35
  334. package/models/chapter/ErrorNode.d.ts +2 -2
  335. package/models/chapter/ErrorNode.js +34 -12
  336. package/models/chapter/FootnoteNode.d.ts +5 -5
  337. package/models/chapter/FootnoteNode.js +34 -16
  338. package/models/chapter/FormatNode.d.ts +10 -10
  339. package/models/chapter/FormatNode.js +237 -106
  340. package/models/chapter/FormatNode.test.js +87 -45
  341. package/models/chapter/InlineCodeNode.d.ts +2 -2
  342. package/models/chapter/InlineCodeNode.js +22 -9
  343. package/models/chapter/LabelNode.d.ts +4 -4
  344. package/models/chapter/LabelNode.js +31 -13
  345. package/models/chapter/LinkNode.d.ts +2 -2
  346. package/models/chapter/LinkNode.js +21 -9
  347. package/models/chapter/ListNode.d.ts +8 -8
  348. package/models/chapter/ListNode.js +99 -38
  349. package/models/chapter/ListNode.test.js +29 -24
  350. package/models/chapter/MetadataNode.d.ts +3 -3
  351. package/models/chapter/MetadataNode.js +13 -5
  352. package/models/chapter/Node.d.ts +5 -3
  353. package/models/chapter/Node.js +76 -29
  354. package/models/chapter/Node.test.js +20 -18
  355. package/models/chapter/ParagraphNode.d.ts +6 -6
  356. package/models/chapter/ParagraphNode.js +84 -29
  357. package/models/chapter/ParagraphNode.test.js +22 -13
  358. package/models/chapter/Parser.d.ts +25 -25
  359. package/models/chapter/Parser.js +201 -189
  360. package/models/chapter/Parser.test.js +16 -16
  361. package/models/chapter/Position.d.ts +1 -1
  362. package/models/chapter/QuoteNode.d.ts +6 -6
  363. package/models/chapter/QuoteNode.js +61 -23
  364. package/models/chapter/RootNode.d.ts +4 -4
  365. package/models/chapter/RuleNode.d.ts +2 -2
  366. package/models/chapter/RuleNode.js +31 -11
  367. package/models/chapter/TableNode.d.ts +8 -6
  368. package/models/chapter/TableNode.js +89 -34
  369. package/models/chapter/TableNode.test.js +22 -24
  370. package/models/chapter/TextNode.d.ts +6 -6
  371. package/models/chapter/TextNode.js +72 -32
  372. package/models/chapter/TextNode.test.js +4 -4
  373. package/models/loadEdition.d.ts +1 -1
  374. package/models/loadEdition.js +10 -6
  375. package/package.json +104 -25
  376. package/util/getSubdomain.js +8 -6
  377. package/util/isMobile.js +1 -1
  378. package/util/mineReference.d.ts +3 -2
  379. package/util/mineReference.js +67 -29
  380. package/util/scrollToEyeLevel.js +6 -1
  381. package/components/chapter/renderPosition.d.ts +0 -3
  382. package/components/chapter/renderPosition.js +0 -4
  383. package/components/editor/ToolbarIcon.svelte +0 -22
  384. package/components/editor/ToolbarIcon.svelte.d.ts +0 -16
  385. package/components/page/Alert.svelte +0 -11
  386. package/components/page/Alert.svelte.d.ts +0 -23
  387. package/components/page/Revisions.svelte +0 -124
  388. package/components/page/Revisions.svelte.d.ts +0 -14
  389. package/models/BookLoader.d.ts +0 -2
  390. package/models/BookLoader.js +0 -67
  391. package/models/Firestore.d.ts +0 -22
  392. package/models/Firestore.js +0 -194
  393. package/models/chapter/ReferenceNode.d.ts +0 -29
  394. package/models/chapter/ReferenceNode.js +0 -48
@@ -1,9 +1,9 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type RootNode from "../../models/chapter/RootNode";
2
+ import type RootNode from '../../models/chapter/RootNode';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  ast: RootNode;
6
- save: (node: RootNode) => Promise<void> | undefined;
6
+ save: (node: RootNode) => Promise<void> | void;
7
7
  chapter: boolean;
8
8
  autofocus?: boolean | undefined;
9
9
  component: ConstructorOfATypedSvelteComponent;
@@ -14,9 +14,9 @@ declare const __propDef: {
14
14
  };
15
15
  slots: {};
16
16
  };
17
- export declare type BookishEditorProps = typeof __propDef.props;
18
- export declare type BookishEditorEvents = typeof __propDef.events;
19
- export declare type BookishEditorSlots = typeof __propDef.slots;
17
+ export type BookishEditorProps = typeof __propDef.props;
18
+ export type BookishEditorEvents = typeof __propDef.events;
19
+ export type BookishEditorSlots = typeof __propDef.slots;
20
20
  export default class BookishEditor extends SvelteComponentTyped<BookishEditorProps, BookishEditorEvents, BookishEditorSlots> {
21
21
  }
22
22
  export {};
@@ -1,10 +1,10 @@
1
- <script>import PositionEditor from "./PositionEditor.svelte";
1
+ <script>import PositionEditor from './PositionEditor.svelte';
2
2
  import { getCaret } from '../page/Contexts';
3
3
  export let callout;
4
4
  let caret = getCaret();
5
5
  </script>
6
6
 
7
- <PositionEditor
8
- value={callout.getPosition()}
9
- edit={position => $caret?.edit(callout, callout.withPosition(position))}
10
- />
7
+ <PositionEditor
8
+ value={callout.getPosition()}
9
+ edit={(position) => $caret?.edit(callout, callout.withPosition(position))}
10
+ />
@@ -1,5 +1,5 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type CalloutNode from "../../models/chapter/CalloutNode";
2
+ import type CalloutNode from '../../models/chapter/CalloutNode';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  callout: CalloutNode;
@@ -9,9 +9,9 @@ declare const __propDef: {
9
9
  };
10
10
  slots: {};
11
11
  };
12
- export declare type CalloutEditorProps = typeof __propDef.props;
13
- export declare type CalloutEditorEvents = typeof __propDef.events;
14
- export declare type CalloutEditorSlots = typeof __propDef.slots;
12
+ export type CalloutEditorProps = typeof __propDef.props;
13
+ export type CalloutEditorEvents = typeof __propDef.events;
14
+ export type CalloutEditorSlots = typeof __propDef.slots;
15
15
  export default class CalloutEditor extends SvelteComponentTyped<CalloutEditorProps, CalloutEditorEvents, CalloutEditorSlots> {
16
16
  }
17
17
  export {};
@@ -1,22 +1,26 @@
1
- <script>import LanguageEditor from "./LanguageEditor.svelte";
2
- import PositionEditor from "./PositionEditor.svelte";
3
- import Switch from "./Switch.svelte";
4
- import { getCaret } from "../page/Contexts";
1
+ <script>import LanguageEditor from './LanguageEditor.svelte';
2
+ import PositionEditor from './PositionEditor.svelte';
3
+ import Switch from './Switch.svelte';
4
+ import { getCaret } from '../page/Contexts';
5
5
  export let code;
6
6
  let caret = getCaret();
7
7
  </script>
8
+
8
9
  <span>
9
10
  <PositionEditor
10
11
  value={code.getPosition()}
11
- edit={value => $caret?.edit(code, code.withPosition(value)) }
12
+ edit={(value) => $caret?.edit(code, code.withPosition(value))}
12
13
  />
13
- <LanguageEditor language={code.getLanguage()} edit={lang => $caret?.edit(code, code.withLanguage(lang)) } />
14
- {#if code.getLanguage() === "python"}
14
+ <LanguageEditor
15
+ language={code.getLanguage()}
16
+ edit={(lang) => $caret?.edit(code, code.withLanguage(lang))}
17
+ />
18
+ {#if code.getLanguage() === 'python'}
15
19
  <Switch
16
- options={["executable", "read only"]}
17
- value={code.isExecutable() ? "executable" : "read only"}
18
- position=">"
19
- edit={value => $caret?.edit(code, code.withExecutable(value === "executable")) }
20
+ options={['executable', 'read only']}
21
+ value={code.isExecutable() ? 'executable' : 'read only'}
22
+ edit={(value) =>
23
+ $caret?.edit(code, code.withExecutable(value === 'executable'))}
20
24
  />
21
25
  {/if}
22
- </span>
26
+ </span>
@@ -1,5 +1,5 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type CodeNode from "../../models/chapter/CodeNode";
2
+ import type CodeNode from '../../models/chapter/CodeNode';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  code: CodeNode;
@@ -9,9 +9,9 @@ declare const __propDef: {
9
9
  };
10
10
  slots: {};
11
11
  };
12
- export declare type CaptionedCodeEditorProps = typeof __propDef.props;
13
- export declare type CaptionedCodeEditorEvents = typeof __propDef.events;
14
- export declare type CaptionedCodeEditorSlots = typeof __propDef.slots;
12
+ export type CaptionedCodeEditorProps = typeof __propDef.props;
13
+ export type CaptionedCodeEditorEvents = typeof __propDef.events;
14
+ export type CaptionedCodeEditorSlots = typeof __propDef.slots;
15
15
  export default class CaptionedCodeEditor extends SvelteComponentTyped<CaptionedCodeEditorProps, CaptionedCodeEditorEvents, CaptionedCodeEditorSlots> {
16
16
  }
17
17
  export {};
@@ -1,18 +1,50 @@
1
- import type { 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;
1
+ import type Caret from '../../models/chapter/Caret';
2
+ import type { CaretRange } from '../../models/chapter/Caret';
3
+ import type ParagraphNode from '../../models/chapter/ParagraphNode';
4
+ import type AtomNode from '../../models/chapter/AtomNode';
5
+ import type FormatNode from '../../models/chapter/FormatNode';
6
+ import type BlocksNode from '../../models/chapter/BlocksNode';
7
+ import type ListNode from '../../models/chapter/ListNode';
8
+ import type TableNode from '../../models/chapter/TableNode';
9
+ import type MetadataNode from '../../models/chapter/MetadataNode';
10
+ import type RootNode from '../../models/chapter/RootNode';
11
+ import type Edit from '../../models/chapter/Edit';
12
+ import type CodeNode from '../../models/chapter/CodeNode';
13
+ import type BlockNode from '../../models/chapter/BlockNode';
14
+ import type Clipboard from './Clipboard';
15
+ import type UndoState from './UndoState';
16
+ import type Node from '../../models/chapter/Node';
17
+ export type PasteContent = {
18
+ plain: string | undefined;
19
+ };
20
+ type CaretContext = {
21
+ chapter: boolean;
22
+ range: CaretRange;
23
+ start: Caret;
24
+ end: Caret;
25
+ isSelection: boolean;
15
26
  root: RootNode;
16
- focused: boolean;
17
- } | undefined;
27
+ blocks: BlocksNode | undefined;
28
+ paragraph: ParagraphNode | undefined;
29
+ block: BlockNode | undefined;
30
+ includesList: boolean;
31
+ code: CodeNode | undefined;
32
+ list: ListNode | undefined;
33
+ table: TableNode | undefined;
34
+ format: FormatNode | undefined;
35
+ atom: AtomNode<any> | undefined;
36
+ meta: MetadataNode<any> | undefined;
37
+ startIsText: boolean;
38
+ endIsText: boolean;
39
+ startIsTextOrAtom: boolean;
40
+ endIsTextOrAtom: boolean;
41
+ atParagraphStart: boolean;
42
+ undoStack: UndoState[];
43
+ undoPosition: number;
44
+ undo: () => Edit;
45
+ redo: () => Edit;
46
+ clipboard: Clipboard;
47
+ handleCopy: (node: Node) => void;
48
+ handlePaste: (context: CaretContext, text: PasteContent | Node, save: boolean) => Edit;
49
+ };
18
50
  export default CaretContext;
@@ -1,47 +1,19 @@
1
- import type 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;
1
+ import type { CaretRange } from '../../models/chapter/Caret';
2
+ import type RootNode from '../../models/chapter/RootNode';
3
+ import type CaretContext from './CaretContext';
4
+ import type Node from '../../models/chapter/Node';
5
+ import type Command from './Command';
6
+ type CaretState = {
23
7
  root: RootNode;
24
- 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;
8
+ range: CaretRange | undefined;
9
+ coordinate: {
10
+ x: number;
11
+ y: number;
12
+ } | undefined;
13
+ context: CaretContext | undefined;
14
+ edit: (previous: Node, edited: Node) => void;
15
+ setCaret: (range: CaretRange) => void;
16
+ executor: (command: Command, key: string) => void;
17
+ focused: boolean;
46
18
  };
47
19
  export default CaretState;
@@ -1,5 +1,5 @@
1
- import type Caret from "../../models/chapter/Caret";
2
- declare type CaretUtilities = {
1
+ import type Caret from '../../models/chapter/Caret';
2
+ type CaretUtilities = {
3
3
  getCaretOnLine: (caret: Caret, below: boolean) => Caret;
4
4
  };
5
5
  export default CaretUtilities;
@@ -0,0 +1,80 @@
1
+ <script>import { afterUpdate } from 'svelte';
2
+ export let left;
3
+ export let top;
4
+ export let height;
5
+ export let linked;
6
+ export let italic;
7
+ export let bold;
8
+ export let disabled;
9
+ export let ignored;
10
+ export let blink;
11
+ let element;
12
+ let headerHeight = 0;
13
+ // When the caret updates, make sure it's in view.
14
+ afterUpdate(() => {
15
+ element?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
16
+ headerHeight =
17
+ document.querySelector('.bookish-app > .header')
18
+ ?.offsetHeight ?? 0;
19
+ });
20
+ </script>
21
+
22
+ <div
23
+ class="caret"
24
+ class:blink
25
+ class:disabled
26
+ class:ignored
27
+ class:bold
28
+ class:italic
29
+ class:linked
30
+ style:left="{left}px"
31
+ style:top="{top}px"
32
+ style:height="{height}px"
33
+ style:scroll-margin-top="{headerHeight}px"
34
+ bind:this={element}
35
+ />
36
+
37
+ <style>
38
+ .caret {
39
+ left: 0;
40
+ top: 0;
41
+ width: 0px;
42
+ background: none;
43
+ outline: 1px solid var(--bookish-paragraph-color);
44
+ display: inline-block;
45
+ box-sizing: border-box;
46
+ position: absolute;
47
+ z-index: 1;
48
+ }
49
+
50
+ @keyframes caret-blink {
51
+ 100% {
52
+ outline: none;
53
+ }
54
+ }
55
+
56
+ .disabled {
57
+ outline-color: var(--app-muted-color);
58
+ }
59
+
60
+ .blink {
61
+ animation: caret-blink 1s steps(2) infinite;
62
+ }
63
+
64
+ .italic {
65
+ transform: skew(-10deg);
66
+ }
67
+
68
+ .bold {
69
+ outline-width: 2px;
70
+ }
71
+
72
+ .ignored {
73
+ animation: failure 100ms 10;
74
+ }
75
+
76
+ .linked {
77
+ outline-width: 1px;
78
+ outline-color: var(--bookish-link-color);
79
+ }
80
+ </style>
@@ -0,0 +1,24 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ left: number;
5
+ top: number;
6
+ height: number;
7
+ linked: boolean;
8
+ italic: boolean;
9
+ bold: boolean;
10
+ disabled: boolean;
11
+ ignored: boolean;
12
+ blink: boolean;
13
+ };
14
+ events: {
15
+ [evt: string]: CustomEvent<any>;
16
+ };
17
+ slots: {};
18
+ };
19
+ export type CaretViewProps = typeof __propDef.props;
20
+ export type CaretViewEvents = typeof __propDef.events;
21
+ export type CaretViewSlots = typeof __propDef.slots;
22
+ export default class CaretView extends SvelteComponentTyped<CaretViewProps, CaretViewEvents, CaretViewSlots> {
23
+ }
24
+ export {};
@@ -1,14 +1,14 @@
1
- <script>import { getCaret, getEdition } from "../page/Contexts";
2
- import Note from "./Note.svelte";
1
+ <script>import Note from './Note.svelte';
2
+ import Options from '../app/Options.svelte';
3
+ import Button from '../app/Button.svelte';
4
+ import { getCaret, getEdition } from '../page/Contexts';
3
5
  export let citations;
4
- let edition = getEdition();
5
6
  let caret = getCaret();
6
- let selection;
7
- function handleSelection() {
8
- if (selection) {
7
+ let edition = getEdition();
8
+ let value = '';
9
+ function handleSelection(selection) {
10
+ if (selection.length > 0)
9
11
  update(new Set([...citations.getMeta(), selection]));
10
- selection = undefined;
11
- }
12
12
  }
13
13
  function removeSelection(citationID) {
14
14
  let ids = new Set(citations.getMeta());
@@ -18,25 +18,36 @@ function removeSelection(citationID) {
18
18
  function update(set) {
19
19
  $caret?.edit(citations, citations.withMeta(Array.from(set)));
20
20
  }
21
- $: uncited = Object.keys($edition.getReferences()).filter(citationID => !citations.getMeta().includes(citationID)).sort();
21
+ $: uncited =
22
+ $edition === undefined
23
+ ? []
24
+ : Object.keys($edition.getReferences())
25
+ .filter((citationID) => !citations.getMeta().includes(citationID))
26
+ .sort();
27
+ let options = [];
28
+ $: {
29
+ options = [];
30
+ options.push([
31
+ uncited.length > 0 ? 'Choose references' : 'No uncited references',
32
+ '',
33
+ ]);
34
+ for (const citationID of uncited)
35
+ options.push([citationID, citationID]);
36
+ }
22
37
  </script>
23
38
 
24
- <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>
39
+ <Options
40
+ {options}
41
+ bind:value
42
+ changed={handleSelection}
43
+ label="choose citations"
44
+ />
31
45
  {#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>
46
+ {citationID}
47
+ <Button
48
+ tooltip="Remove citation"
49
+ command={() => removeSelection(citationID)}>&times; citation</Button
50
+ >
40
51
  {:else}
41
52
  <Note>&mdash;</Note>
42
- {/each}
53
+ {/each}
@@ -1,5 +1,5 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type CitationsNode from "../../models/chapter/CitationsNode";
2
+ import type CitationsNode from '../../models/chapter/CitationsNode';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  citations: CitationsNode;
@@ -9,9 +9,9 @@ declare const __propDef: {
9
9
  };
10
10
  slots: {};
11
11
  };
12
- export declare type CitationsEditorProps = typeof __propDef.props;
13
- export declare type CitationsEditorEvents = typeof __propDef.events;
14
- export declare type CitationsEditorSlots = typeof __propDef.slots;
12
+ export type CitationsEditorProps = typeof __propDef.props;
13
+ export type CitationsEditorEvents = typeof __propDef.events;
14
+ export type CitationsEditorSlots = typeof __propDef.slots;
15
15
  export default class CitationsEditor extends SvelteComponentTyped<CitationsEditorProps, CitationsEditorEvents, CitationsEditorSlots> {
16
16
  }
17
17
  export {};
@@ -1,3 +1,3 @@
1
- import type Node from "../../models/chapter/Node";
2
- declare type Clipboard = undefined | Node;
1
+ import type Node from '../../models/chapter/Node';
2
+ type Clipboard = undefined | Node;
3
3
  export default Clipboard;
@@ -1,18 +1,19 @@
1
- import type Edit from "../../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;
1
+ import type Edit from '../../models/chapter/Edit';
2
+ import type CaretUtilities from './CaretUtilities';
3
+ import type CaretContext from './CaretContext';
4
+ type Command = {
5
+ icon: string;
7
6
  description: string;
8
7
  category: string;
9
- control: boolean;
10
- alt: boolean;
8
+ control: boolean | undefined;
9
+ press?: boolean | undefined;
10
+ alt: boolean | undefined;
11
11
  shift: boolean | undefined;
12
- key?: string | string[];
12
+ key?: string | string[] | ((key: string) => boolean);
13
13
  code?: string;
14
- visible: boolean | ((context: CaretState) => boolean);
15
- active: boolean | ((context: CaretState, key?: string) => boolean);
16
- handler: (context: CaretState, utilities: CaretUtilities, key: string) => Edit;
14
+ mutates: boolean;
15
+ visible: boolean | ((context: CaretContext) => boolean);
16
+ active: boolean | ((context: CaretContext, key?: string) => boolean);
17
+ handler: (context: CaretContext, utilities: CaretUtilities, key: string) => Edit;
17
18
  };
18
19
  export default Command;
@@ -1,3 +1,3 @@
1
- import type Command from "./Command";
1
+ import type Command from './Command';
2
2
  declare const commands: Command[];
3
3
  export default commands;