bookish-press 0.4.1 → 0.4.21

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 (395) 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 +158 -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 +207 -0
  287. package/models/Firebase.d.ts +1 -0
  288. package/models/Firebase.js +21 -15
  289. package/models/book/Book.d.ts +26 -30
  290. package/models/book/Book.js +120 -113
  291. package/models/book/BookMedia.d.ts +3 -3
  292. package/models/book/BookMedia.js +22 -16
  293. package/models/book/BookSaveStatus.d.ts +7 -0
  294. package/models/book/BookSaveStatus.js +8 -0
  295. package/models/book/Chapter.d.ts +46 -39
  296. package/models/book/Chapter.js +180 -198
  297. package/models/book/ChapterID.js +7 -7
  298. package/models/book/Definition.d.ts +1 -1
  299. package/models/book/Edition.d.ts +62 -60
  300. package/models/book/Edition.js +385 -303
  301. package/models/book/Reference.d.ts +24 -0
  302. package/models/book/Reference.js +78 -0
  303. package/models/book/Schema.d.ts +169 -0
  304. package/models/book/Schema.js +114 -0
  305. package/models/book/Theme.d.ts +44 -37
  306. package/models/book/Theme.js +452 -52
  307. package/models/book/ThemeColors.d.ts +1 -1
  308. package/models/book/Words.d.ts +2 -0
  309. package/models/book/Words.js +110 -0
  310. package/models/chapter/AtomNode.d.ts +4 -4
  311. package/models/chapter/AtomNode.js +20 -13
  312. package/models/chapter/BlockNode.d.ts +9 -10
  313. package/models/chapter/BlockNode.js +32 -13
  314. package/models/chapter/BlocksNode.d.ts +10 -10
  315. package/models/chapter/BlocksNode.js +315 -120
  316. package/models/chapter/BlocksNode.test.js +494 -228
  317. package/models/chapter/Bookkeeping.d.ts +1 -1
  318. package/models/chapter/CalloutNode.d.ts +3 -3
  319. package/models/chapter/CalloutNode.js +34 -12
  320. package/models/chapter/Caret.d.ts +9 -7
  321. package/models/chapter/Caret.js +11 -6
  322. package/models/chapter/ChapterNode.d.ts +11 -11
  323. package/models/chapter/ChapterNode.js +70 -33
  324. package/models/chapter/CitationsNode.d.ts +3 -3
  325. package/models/chapter/CitationsNode.js +31 -12
  326. package/models/chapter/CodeNode.d.ts +11 -6
  327. package/models/chapter/CodeNode.js +143 -34
  328. package/models/chapter/CommentNode.d.ts +5 -5
  329. package/models/chapter/CommentNode.js +29 -13
  330. package/models/chapter/DefinitionNode.d.ts +2 -2
  331. package/models/chapter/DefinitionNode.js +15 -7
  332. package/models/chapter/Edit.d.ts +3 -3
  333. package/models/chapter/EmbedNode.d.ts +9 -5
  334. package/models/chapter/EmbedNode.js +108 -35
  335. package/models/chapter/ErrorNode.d.ts +2 -2
  336. package/models/chapter/ErrorNode.js +34 -12
  337. package/models/chapter/FootnoteNode.d.ts +5 -5
  338. package/models/chapter/FootnoteNode.js +34 -16
  339. package/models/chapter/FormatNode.d.ts +10 -10
  340. package/models/chapter/FormatNode.js +237 -106
  341. package/models/chapter/FormatNode.test.js +87 -45
  342. package/models/chapter/InlineCodeNode.d.ts +2 -2
  343. package/models/chapter/InlineCodeNode.js +22 -9
  344. package/models/chapter/LabelNode.d.ts +4 -4
  345. package/models/chapter/LabelNode.js +31 -13
  346. package/models/chapter/LinkNode.d.ts +2 -2
  347. package/models/chapter/LinkNode.js +21 -9
  348. package/models/chapter/ListNode.d.ts +8 -8
  349. package/models/chapter/ListNode.js +99 -38
  350. package/models/chapter/ListNode.test.js +29 -24
  351. package/models/chapter/MetadataNode.d.ts +3 -3
  352. package/models/chapter/MetadataNode.js +13 -5
  353. package/models/chapter/Node.d.ts +5 -3
  354. package/models/chapter/Node.js +76 -29
  355. package/models/chapter/Node.test.js +20 -18
  356. package/models/chapter/ParagraphNode.d.ts +6 -6
  357. package/models/chapter/ParagraphNode.js +84 -29
  358. package/models/chapter/ParagraphNode.test.js +22 -13
  359. package/models/chapter/Parser.d.ts +25 -25
  360. package/models/chapter/Parser.js +201 -189
  361. package/models/chapter/Parser.test.js +16 -16
  362. package/models/chapter/Position.d.ts +1 -1
  363. package/models/chapter/QuoteNode.d.ts +6 -6
  364. package/models/chapter/QuoteNode.js +61 -23
  365. package/models/chapter/RootNode.d.ts +4 -4
  366. package/models/chapter/RuleNode.d.ts +2 -2
  367. package/models/chapter/RuleNode.js +31 -11
  368. package/models/chapter/TableNode.d.ts +8 -6
  369. package/models/chapter/TableNode.js +89 -34
  370. package/models/chapter/TableNode.test.js +22 -24
  371. package/models/chapter/TextNode.d.ts +6 -6
  372. package/models/chapter/TextNode.js +72 -32
  373. package/models/chapter/TextNode.test.js +4 -4
  374. package/models/loadEdition.d.ts +1 -1
  375. package/models/loadEdition.js +10 -6
  376. package/package.json +104 -25
  377. package/util/getSubdomain.js +8 -6
  378. package/util/isMobile.js +1 -1
  379. package/util/mineReference.d.ts +3 -2
  380. package/util/mineReference.js +67 -29
  381. package/util/scrollToEyeLevel.js +6 -1
  382. package/components/chapter/renderPosition.d.ts +0 -3
  383. package/components/chapter/renderPosition.js +0 -4
  384. package/components/editor/ToolbarIcon.svelte +0 -22
  385. package/components/editor/ToolbarIcon.svelte.d.ts +0 -16
  386. package/components/page/Alert.svelte +0 -11
  387. package/components/page/Alert.svelte.d.ts +0 -23
  388. package/components/page/Revisions.svelte +0 -124
  389. package/components/page/Revisions.svelte.d.ts +0 -14
  390. package/models/BookLoader.d.ts +0 -2
  391. package/models/BookLoader.js +0 -67
  392. package/models/Firestore.d.ts +0 -22
  393. package/models/Firestore.js +0 -194
  394. package/models/chapter/ReferenceNode.d.ts +0 -29
  395. package/models/chapter/ReferenceNode.js +0 -48
@@ -0,0 +1,27 @@
1
+ /** @typedef {typeof __propDef.props} LeadProps */
2
+ /** @typedef {typeof __propDef.events} LeadEvents */
3
+ /** @typedef {typeof __propDef.slots} LeadSlots */
4
+ export default class Lead extends SvelteComponentTyped<{
5
+ [x: string]: never;
6
+ }, {
7
+ [evt: string]: CustomEvent<any>;
8
+ }, {
9
+ default: {};
10
+ }> {
11
+ }
12
+ export type LeadProps = typeof __propDef.props;
13
+ export type LeadEvents = typeof __propDef.events;
14
+ export type LeadSlots = typeof __propDef.slots;
15
+ import { SvelteComponentTyped } 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
+ };
27
+ export {};
@@ -0,0 +1,24 @@
1
+ <script>export let to;
2
+ export let before = undefined;
3
+ export let title = undefined;
4
+ </script>
5
+
6
+ <a
7
+ href={to}
8
+ {title}
9
+ on:click={() => (before ? before() : undefined)}
10
+ target={to.startsWith('http') ? '_blank' : null}><slot /></a
11
+ >
12
+
13
+ <style>
14
+ a {
15
+ color: var(--app-interactive-color);
16
+ font-family: var(--app-font);
17
+ font-weight: 400;
18
+ text-decoration: none;
19
+ }
20
+
21
+ a:hover {
22
+ text-decoration: underline;
23
+ }
24
+ </style>
@@ -0,0 +1,20 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ to: string;
5
+ before?: Function | undefined;
6
+ title?: string | undefined;
7
+ };
8
+ events: {
9
+ [evt: string]: CustomEvent<any>;
10
+ };
11
+ slots: {
12
+ default: {};
13
+ };
14
+ };
15
+ export type LinkProps = typeof __propDef.props;
16
+ export type LinkEvents = typeof __propDef.events;
17
+ export type LinkSlots = typeof __propDef.slots;
18
+ export default class Link extends SvelteComponentTyped<LinkProps, LinkEvents, LinkSlots> {
19
+ }
20
+ export {};
@@ -0,0 +1,24 @@
1
+ <script>export let options;
2
+ export let changed;
3
+ export let value;
4
+ export let label;
5
+ </script>
6
+
7
+ <select bind:value on:change={() => changed(value)} aria-label={label}>
8
+ <option value="" selected={value === ''} />
9
+ {#each options as option}
10
+ <option value={option[1]} selected={value === option[1]}
11
+ >{option[0]}</option
12
+ >
13
+ {/each}
14
+ </select>
15
+
16
+ <style>
17
+ select {
18
+ border: none;
19
+ background-color: var(--app-chrome-background);
20
+ padding: var(--app-chrome-padding);
21
+ font-family: var(--app-font);
22
+ font-size: var(--app-chrome-font-size);
23
+ }
24
+ </style>
@@ -0,0 +1,19 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ options: [string, string][];
5
+ changed: (value: string) => void;
6
+ value: string;
7
+ label: string;
8
+ };
9
+ events: {
10
+ [evt: string]: CustomEvent<any>;
11
+ };
12
+ slots: {};
13
+ };
14
+ export type OptionsProps = typeof __propDef.props;
15
+ export type OptionsEvents = typeof __propDef.events;
16
+ export type OptionsSlots = typeof __propDef.slots;
17
+ export default class Options extends SvelteComponentTyped<OptionsProps, OptionsEvents, OptionsSlots> {
18
+ }
19
+ export {};
@@ -0,0 +1,19 @@
1
+ <script>export let aside = false;
2
+ </script>
3
+
4
+ <p class={aside ? 'aside' : ''}><slot /></p>
5
+
6
+ <style>
7
+ p {
8
+ font-family: var(--app-font);
9
+ font-size: var(--app-font-size);
10
+ font-weight: 300;
11
+ line-height: var(--app-line-height);
12
+ margin-top: 0;
13
+ margin-bottom: var(--app-text-spacing);
14
+ }
15
+
16
+ .aside {
17
+ font-style: italic;
18
+ }
19
+ </style>
@@ -0,0 +1,18 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ aside?: boolean | undefined;
5
+ };
6
+ events: {
7
+ [evt: string]: CustomEvent<any>;
8
+ };
9
+ slots: {
10
+ default: {};
11
+ };
12
+ };
13
+ export type ParagraphProps = typeof __propDef.props;
14
+ export type ParagraphEvents = typeof __propDef.events;
15
+ export type ParagraphSlots = typeof __propDef.slots;
16
+ export default class Paragraph extends SvelteComponentTyped<ParagraphProps, ParagraphEvents, ParagraphSlots> {
17
+ }
18
+ export {};
@@ -0,0 +1,32 @@
1
+ <section>
2
+ <table>
3
+ <slot />
4
+ </table>
5
+ </section>
6
+
7
+ <style>
8
+ section {
9
+ width: 100%;
10
+ overflow-x: auto;
11
+ margin-top: var(--app-text-spacing);
12
+ margin-bottom: var(--app-text-spacing);
13
+ border-top: var(--app-chrome-border-size) solid var(--app-border-color);
14
+ border-bottom: var(--app-chrome-border-size) solid
15
+ var(--app-border-color);
16
+ }
17
+
18
+ table {
19
+ width: 100%;
20
+ border-collapse: collapse;
21
+ clear: both;
22
+ border-collapse: separate;
23
+ border-spacing: 0;
24
+ }
25
+
26
+ table :global(td:not(:first-of-type)) {
27
+ padding: var(--app-chrome-padding);
28
+ vertical-align: top;
29
+ font-family: var(--app-font);
30
+ font-weight: 300;
31
+ }
32
+ </style>
@@ -0,0 +1,27 @@
1
+ /** @typedef {typeof __propDef.props} TableProps */
2
+ /** @typedef {typeof __propDef.events} TableEvents */
3
+ /** @typedef {typeof __propDef.slots} TableSlots */
4
+ export default class Table extends SvelteComponentTyped<{
5
+ [x: string]: never;
6
+ }, {
7
+ [evt: string]: CustomEvent<any>;
8
+ }, {
9
+ default: {};
10
+ }> {
11
+ }
12
+ export type TableProps = typeof __propDef.props;
13
+ export type TableEvents = typeof __propDef.events;
14
+ export type TableSlots = typeof __propDef.slots;
15
+ import { SvelteComponentTyped } 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
+ };
27
+ export {};
@@ -0,0 +1,37 @@
1
+ <script>export let text = '';
2
+ export let autocomplete = null;
3
+ export let type;
4
+ export let placeholder;
5
+ export let disabled;
6
+ let input;
7
+ export function value() {
8
+ return text;
9
+ }
10
+ </script>
11
+
12
+ <input
13
+ {autocomplete}
14
+ {type}
15
+ {placeholder}
16
+ {disabled}
17
+ bind:this={input}
18
+ on:input={() => (text = input.value)}
19
+ />
20
+
21
+ <style>
22
+ input {
23
+ font-family: var(--app-font);
24
+ font-size: var(--app-chrome-font-size);
25
+ color: var(--app-font-color);
26
+ padding: var(--app-chrome-padding);
27
+ font-size: var(--app-chrome-font-size);
28
+ border: none;
29
+ border-bottom: var(--app-chrome-border-size) solid
30
+ var(--app-border-color);
31
+ }
32
+
33
+ input:focus {
34
+ border-bottom-color: var(--app-interactive-color);
35
+ outline: none;
36
+ }
37
+ </style>
@@ -0,0 +1,22 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ text?: string | undefined;
5
+ autocomplete?: string | null | undefined;
6
+ type: string;
7
+ placeholder: string;
8
+ disabled: boolean;
9
+ value?: (() => string) | undefined;
10
+ };
11
+ events: {
12
+ [evt: string]: CustomEvent<any>;
13
+ };
14
+ slots: {};
15
+ };
16
+ export type TextInputProps = typeof __propDef.props;
17
+ export type TextInputEvents = typeof __propDef.events;
18
+ export type TextInputSlots = typeof __propDef.slots;
19
+ export default class TextInput extends SvelteComponentTyped<TextInputProps, TextInputEvents, TextInputSlots> {
20
+ get value(): () => string;
21
+ }
22
+ export {};
@@ -0,0 +1,13 @@
1
+ <section>
2
+ <slot />
3
+ </section>
4
+
5
+ <style>
6
+ section {
7
+ margin: auto;
8
+ padding-left: 2rem;
9
+ padding-right: 2rem;
10
+ min-width: 30rem;
11
+ max-width: 40rem;
12
+ }
13
+ </style>
@@ -0,0 +1,27 @@
1
+ /** @typedef {typeof __propDef.props} WritingProps */
2
+ /** @typedef {typeof __propDef.events} WritingEvents */
3
+ /** @typedef {typeof __propDef.slots} WritingSlots */
4
+ export default class Writing extends SvelteComponentTyped<{
5
+ [x: string]: never;
6
+ }, {
7
+ [evt: string]: CustomEvent<any>;
8
+ }, {
9
+ default: {};
10
+ }> {
11
+ }
12
+ export type WritingProps = typeof __propDef.props;
13
+ export type WritingEvents = typeof __propDef.events;
14
+ export type WritingSlots = typeof __propDef.slots;
15
+ import { SvelteComponentTyped } 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
+ };
27
+ export {};
@@ -1,3 +1,5 @@
1
+ <svelte:options immutable={true} />
2
+
1
3
  <script>import { getCaret } from '../page/Contexts';
2
4
  export let node;
3
5
  let caret = getCaret();
@@ -5,12 +7,20 @@ let caret = getCaret();
5
7
  $: selected = $caret && $caret.range && $caret.range.start.node === node;
6
8
  function handleMouseDown() {
7
9
  // Select this so that the view stays focused.
8
- $caret?.setCaret({ start: { node: node, index: 0 }, end: { node: node, index: 0 } });
10
+ $caret?.setCaret({
11
+ start: { node: node, index: 0 },
12
+ end: { node: node, index: 0 },
13
+ });
9
14
  }
10
15
  </script>
11
16
 
12
17
  <!-- Prevent the editor from receiving the click. -->
13
- <span class={`bookish-editor-atom ${selected ? "bookish-editor-atom-selected" : ""} ${$caret?.focused ? "bookish-editor-atom-selected-focused" : ""}`} on:mousedown|stopPropagation|preventDefault={handleMouseDown}><slot></slot></span>
18
+ <span
19
+ class={`bookish-editor-atom ${
20
+ selected ? 'bookish-editor-atom-selected' : ''
21
+ } ${$caret?.focused ? 'bookish-editor-atom-selected-focused' : ''}`}
22
+ on:mousedown|stopPropagation|preventDefault={handleMouseDown}><slot /></span
23
+ >
14
24
 
15
25
  <style>
16
26
  .bookish-editor-atom {
@@ -29,8 +39,12 @@ function handleMouseDown() {
29
39
  }
30
40
 
31
41
  @keyframes atom-selected {
32
- from, to { outline-width: 2px; }
33
- 50% { outline-width: 4px; }
42
+ from,
43
+ to {
44
+ outline-width: 2px;
45
+ }
46
+ 50% {
47
+ outline-width: 4px;
48
+ }
34
49
  }
35
-
36
- </style>
50
+ </style>
@@ -11,9 +11,9 @@ declare const __propDef: {
11
11
  default: {};
12
12
  };
13
13
  };
14
- export declare type AtomProps = typeof __propDef.props;
15
- export declare type AtomEvents = typeof __propDef.events;
16
- export declare type AtomSlots = typeof __propDef.slots;
14
+ export type AtomProps = typeof __propDef.props;
15
+ export type AtomEvents = typeof __propDef.events;
16
+ export type AtomSlots = typeof __propDef.slots;
17
17
  export default class Atom extends SvelteComponentTyped<AtomProps, AtomEvents, AtomSlots> {
18
18
  }
19
19
  export {};
@@ -1,21 +1,24 @@
1
- <script>import CalloutNode from "../../models/chapter/CalloutNode";
2
- import CodeNode from "../../models/chapter/CodeNode";
3
- import EmbedNode from "../../models/chapter/EmbedNode";
4
- import ErrorNode from "../../models/chapter/ErrorNode";
5
- import ListNode from "../../models/chapter/ListNode";
6
- import ParagraphNode from "../../models/chapter/ParagraphNode";
7
- import QuoteNode from "../../models/chapter/QuoteNode";
8
- import RuleNode from "../../models/chapter/RuleNode";
9
- import TableNode from "../../models/chapter/TableNode";
10
- import Callout from "./Callout.svelte";
11
- import CaptionedCode from "./CaptionedCode.svelte";
12
- import Embed from "./Embed.svelte";
13
- import ErrorMessage from "./ErrorMessage.svelte";
14
- import List from "./List.svelte";
15
- import Paragraph from "./Paragraph.svelte";
16
- import Quote from "./Quote.svelte";
17
- import Rule from "./Rule.svelte";
18
- import Table from "./Table.svelte";
1
+ <svelte:options immutable={true} />
2
+
3
+ <script>import CalloutNode from '../../models/chapter/CalloutNode';
4
+ import CodeNode from '../../models/chapter/CodeNode';
5
+ import EmbedNode from '../../models/chapter/EmbedNode';
6
+ import ErrorNode from '../../models/chapter/ErrorNode';
7
+ import ListNode from '../../models/chapter/ListNode';
8
+ import ParagraphNode from '../../models/chapter/ParagraphNode';
9
+ import QuoteNode from '../../models/chapter/QuoteNode';
10
+ import RuleNode from '../../models/chapter/RuleNode';
11
+ import TableNode from '../../models/chapter/TableNode';
12
+ import Callout from './Callout.svelte';
13
+ import CaptionedCode from './CaptionedCode.svelte';
14
+ import Embed from './Embed.svelte';
15
+ import ErrorMessage from './ErrorMessage.svelte';
16
+ import List from './List.svelte';
17
+ import Paragraph from './Paragraph.svelte';
18
+ import Quote from './Quote.svelte';
19
+ import Rule from './Rule.svelte';
20
+ import Table from './Table.svelte';
21
+ import Problem from './Problem.svelte';
19
22
  export let node;
20
23
  </script>
21
24
 
@@ -28,5 +31,5 @@ export let node;
28
31
  {:else if node instanceof ErrorNode}<ErrorMessage {node} />
29
32
  {:else if node instanceof RuleNode}<Rule {node} />
30
33
  {:else if node instanceof TableNode}<Table {node} />
31
- {:else}<p class="bookish-error">Unknown node type</p>
32
- {/if}
34
+ {:else}<p><Problem>Unknown node type</Problem></p>
35
+ {/if}
@@ -1,5 +1,5 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type BlockNode from "../../models/chapter/BlockNode";
2
+ import type BlockNode from '../../models/chapter/BlockNode';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  node: BlockNode;
@@ -9,9 +9,9 @@ declare const __propDef: {
9
9
  };
10
10
  slots: {};
11
11
  };
12
- export declare type BlockProps = typeof __propDef.props;
13
- export declare type BlockEvents = typeof __propDef.events;
14
- export declare type BlockSlots = typeof __propDef.slots;
12
+ export type BlockProps = typeof __propDef.props;
13
+ export type BlockEvents = typeof __propDef.events;
14
+ export type BlockSlots = typeof __propDef.slots;
15
15
  export default class Block extends SvelteComponentTyped<BlockProps, BlockEvents, BlockSlots> {
16
16
  }
17
17
  export {};
@@ -1,10 +1,41 @@
1
- <script>import Block from "./Block.svelte";
2
- import renderPosition from "./renderPosition";
1
+ <svelte:options immutable={true} />
2
+
3
+ <script>import Block from './Block.svelte';
4
+ import Positioned from './Positioned.svelte';
3
5
  export let node;
4
6
  </script>
5
7
 
6
- <div class={"bookish-callout " + renderPosition(node.getPosition())} data-nodeid={node.nodeID}>
7
- {#each node.getBlocks() as element }
8
- <Block node={element} />
9
- {/each}
10
- </div>
8
+ <Positioned position={node.getPosition()}>
9
+ <section class={'bookish-callout'} data-nodeid={node.nodeID}>
10
+ {#each node.getBlocks() as element (element.nodeID)}
11
+ <Block node={element} />
12
+ {/each}
13
+ </section>
14
+ </Positioned>
15
+
16
+ <style>
17
+ .bookish-callout {
18
+ border: none;
19
+ border-top: 2px solid var(--bookish-border-color-bold);
20
+ border-bottom: 2px solid var(--bookish-border-color-bold);
21
+ margin: var(--bookish-paragraph-spacing);
22
+ padding-left: 0;
23
+ padding-right: 0;
24
+ padding-top: var(--bookish-paragraph-spacing);
25
+ padding-bottom: var(--bookish-paragraph-spacing);
26
+ line-height: var(--bookish-paragraph-line-height-tight);
27
+ clear: both;
28
+ position: relative;
29
+ }
30
+
31
+ .bookish-callout :global(h2),
32
+ .bookish-callout :global(h3),
33
+ .bookish-callout :global(h4) {
34
+ margin-top: 0;
35
+ }
36
+
37
+ .bookish-callout :global(ol),
38
+ .bookish-callout :global(ul) {
39
+ padding-left: 1rem;
40
+ }
41
+ </style>
@@ -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
  node: CalloutNode;
@@ -9,9 +9,9 @@ declare const __propDef: {
9
9
  };
10
10
  slots: {};
11
11
  };
12
- export declare type CalloutProps = typeof __propDef.props;
13
- export declare type CalloutEvents = typeof __propDef.events;
14
- export declare type CalloutSlots = typeof __propDef.slots;
12
+ export type CalloutProps = typeof __propDef.props;
13
+ export type CalloutEvents = typeof __propDef.events;
14
+ export type CalloutSlots = typeof __propDef.slots;
15
15
  export default class Callout extends SvelteComponentTyped<CalloutProps, CalloutEvents, CalloutSlots> {
16
16
  }
17
17
  export {};
@@ -1,34 +1,77 @@
1
+ <svelte:options immutable={true} />
2
+
1
3
  <script>import Code from './Code.svelte';
2
4
  import Python from './Python.svelte';
3
- import Format from './Format.svelte';
4
5
  import Text from './Text.svelte';
5
- import renderPosition from './renderPosition';
6
- import { isEditable } from "../page/Contexts";
6
+ import { isEditable } from '../page/Contexts';
7
+ import Figure from './Figure.svelte';
8
+ import { getCaret } from '../page/Contexts';
7
9
  export let node;
8
- $: caption = node.getCaption();
9
10
  $: language = node.getLanguage();
10
11
  let editable = isEditable();
11
12
  // const languages = [ "C", "C++", "CSS", "Go", "HTML", "Java", "JavaScript", "Markdown", "Plaintext", "Python", "TypeScript" ];
13
+ let caret = getCaret();
14
+ $: inside =
15
+ $caret?.range?.start.node === node.getCodeNode() ||
16
+ $caret?.range?.end.node === node.getCodeNode();
12
17
  </script>
13
18
 
14
- <div class={"bookish-figure " + renderPosition(node.getPosition())} data-nodeid={node.nodeID}>
15
- {#if editable }
16
- <code
17
- class={`bookish-code bookish-code-block language-${language}`}
18
- >
19
- <Text node={node.getCodeNode()}/>
20
- </code>
21
- {:else}
22
- {#if node.getLanguage() === "python" && node.isExecutable() }
23
- <Python node={node} startCode={node.getCode()}></Python>
24
- {:else}
25
- <div>
26
- <Code editable={false} inline={false} language={node.getLanguage()} nodeID={node.getCodeNode().nodeID}>{node.getCode()}</Code>
27
- {#if node.getLanguage() !== "plaintext"}<div class="bookish-code-language">{node.getLanguage()}</div>{/if}
19
+ <Figure {node} caption={node.getCaption()}>
20
+ {#if editable}
21
+ <div class="container">
22
+ <code
23
+ class={`bookish-code bookish-code-block language-${language} ${
24
+ !inside ? 'hidden' : ''
25
+ }`}
26
+ >
27
+ <Text node={node.getCodeNode()} />
28
+ </code>
29
+ <div class="code" class:inside>
30
+ <Code
31
+ editable={false}
32
+ inline={false}
33
+ language={node.getLanguage()}
34
+ nodeID={node.getCodeNode().nodeID}>{node.getCode()}</Code
35
+ >
28
36
  </div>
29
- {/if}
30
- {/if}
31
- {#if caption }
32
- <div class="bookish-figure-caption"><Format node={caption} placeholder="caption"/></div>
37
+ </div>
38
+ {:else if node.getLanguage() === 'python' && node.isExecutable()}
39
+ <Python {node} startCode={node.getCode()} />
40
+ {:else}
41
+ <Code
42
+ editable={false}
43
+ inline={false}
44
+ language={node.getLanguage()}
45
+ nodeID={node.getCodeNode().nodeID}>{node.getCode()}</Code
46
+ >
33
47
  {/if}
34
- </div>
48
+ {#if node.getLanguage() !== 'plaintext'}<aside class="language"
49
+ >{node.getLanguage()}</aside
50
+ >{/if}
51
+ </Figure>
52
+
53
+ <style>
54
+ .language {
55
+ float: right;
56
+ margin-top: 0;
57
+ font-size: small;
58
+ color: gray;
59
+ margin-right: 0.5em;
60
+ }
61
+
62
+ .bookish-code.hidden {
63
+ opacity: 0;
64
+ }
65
+
66
+ .container {
67
+ position: relative;
68
+ }
69
+ .code {
70
+ position: absolute;
71
+ top: 0;
72
+ width: 100%;
73
+ }
74
+ .code.inside {
75
+ display: none;
76
+ }
77
+ </style>
@@ -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
  node: CodeNode;
@@ -9,9 +9,9 @@ declare const __propDef: {
9
9
  };
10
10
  slots: {};
11
11
  };
12
- export declare type CaptionedCodeProps = typeof __propDef.props;
13
- export declare type CaptionedCodeEvents = typeof __propDef.events;
14
- export declare type CaptionedCodeSlots = typeof __propDef.slots;
12
+ export type CaptionedCodeProps = typeof __propDef.props;
13
+ export type CaptionedCodeEvents = typeof __propDef.events;
14
+ export type CaptionedCodeSlots = typeof __propDef.slots;
15
15
  export default class CaptionedCode extends SvelteComponentTyped<CaptionedCodeProps, CaptionedCodeEvents, CaptionedCodeSlots> {
16
16
  }
17
17
  export {};