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
@@ -1,5 +1,5 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type FootnoteNode from "../../models/chapter/FootnoteNode";
2
+ import type FootnoteNode from '../../models/chapter/FootnoteNode';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  node: FootnoteNode;
@@ -11,9 +11,9 @@ declare const __propDef: {
11
11
  };
12
12
  slots: {};
13
13
  };
14
- export declare type FootnoteProps = typeof __propDef.props;
15
- export declare type FootnoteEvents = typeof __propDef.events;
16
- export declare type FootnoteSlots = typeof __propDef.slots;
14
+ export type FootnoteProps = typeof __propDef.props;
15
+ export type FootnoteEvents = typeof __propDef.events;
16
+ export type FootnoteSlots = typeof __propDef.slots;
17
17
  export default class Footnote extends SvelteComponentTyped<FootnoteProps, FootnoteEvents, FootnoteSlots> {
18
18
  }
19
19
  export {};
@@ -1,57 +1,80 @@
1
- <script>import FormatNode from "../../models/chapter/FormatNode";
2
- import CitationsNode from "../../models/chapter/CitationsNode";
3
- import CommentNode from "../../models/chapter/CommentNode";
4
- import DefinitionNode from "../../models/chapter/DefinitionNode";
5
- import FootnoteNode from "../../models/chapter/FootnoteNode";
6
- import InlineCodeNode from "../../models/chapter/InlineCodeNode";
7
- import LabelNode from "../../models/chapter/LabelNode";
8
- import LinkNode from "../../models/chapter/LinkNode";
9
- import TextNode from "../../models/chapter/TextNode";
10
- import Citations from "./Citations.svelte";
11
- import Definition from "./Definition.svelte";
12
- import Footnote from "./Footnote.svelte";
13
- import InlineCode from "./InlineCode.svelte";
14
- import Label from "./Label.svelte";
15
- import Link from "./Link.svelte";
16
- import Comment from "./Comment.svelte";
17
- import Text from "./Text.svelte";
18
- import Format from "./Format.svelte";
19
- import { isEditable } from "../page/Contexts";
1
+ <svelte:options immutable={true} />
2
+
3
+ <script>import FormatNode from '../../models/chapter/FormatNode';
4
+ import CitationsNode from '../../models/chapter/CitationsNode';
5
+ import CommentNode from '../../models/chapter/CommentNode';
6
+ import DefinitionNode from '../../models/chapter/DefinitionNode';
7
+ import FootnoteNode from '../../models/chapter/FootnoteNode';
8
+ import InlineCodeNode from '../../models/chapter/InlineCodeNode';
9
+ import LabelNode from '../../models/chapter/LabelNode';
10
+ import LinkNode from '../../models/chapter/LinkNode';
11
+ import TextNode from '../../models/chapter/TextNode';
12
+ import Problem from './Problem.svelte';
13
+ import Citations from './Citations.svelte';
14
+ import Definition from './Definition.svelte';
15
+ import Footnote from './Footnote.svelte';
16
+ import InlineCode from './InlineCode.svelte';
17
+ import Label from './Label.svelte';
18
+ import Link from './Link.svelte';
19
+ import Comment from './Comment.svelte';
20
+ import Text from './Text.svelte';
21
+ import Format from './Format.svelte';
22
+ import { isEditable } from '../page/Contexts';
20
23
  export let node;
21
24
  export let placeholder = undefined;
22
25
  let editable = isEditable();
23
26
  $: format = node.getFormat();
24
27
  $: tag =
25
- format === "*" ? "strong" :
26
- format === "_" ? "em" :
27
- format === "^" ? "sup" :
28
- format === "v" ? "sub" :
29
- "span";
30
- $: showPlaceholder = node.isEmptyText() && placeholder !== undefined && editable;
28
+ format === '*'
29
+ ? 'strong'
30
+ : format === '_'
31
+ ? 'em'
32
+ : format === '^'
33
+ ? 'sup'
34
+ : format === 'v'
35
+ ? 'sub'
36
+ : 'span';
37
+ $: showPlaceholder =
38
+ node.isEmptyText() && placeholder !== undefined && editable;
31
39
  </script>
32
40
 
33
- <svelte:element this={tag} data-nodeid={node.nodeID} class={showPlaceholder ? "bookish-editor-placeholder" : ""}>
34
- {#each node.getSegments() as segment}
35
- {#if segment instanceof TextNode}<Text node={segment} />
36
- {:else if segment instanceof InlineCodeNode}<InlineCode node={segment} />
41
+ <svelte:element
42
+ this={tag}
43
+ data-nodeid={node.nodeID}
44
+ class={`format ${showPlaceholder ? 'bookish-editor-placeholder' : ''}`}
45
+ >
46
+ {#each node.getSegments() as segment (segment.nodeID)}
47
+ {#if segment instanceof TextNode}<Text
48
+ node={segment}
49
+ placeholder={node.getSegments().length === 1
50
+ ? placeholder
51
+ : undefined}
52
+ />
53
+ {:else if segment instanceof InlineCodeNode}<InlineCode
54
+ node={segment}
55
+ />
37
56
  {:else if segment instanceof LinkNode}<Link node={segment} />
38
57
  {:else if segment instanceof CitationsNode}<Citations node={segment} />
39
- {:else if segment instanceof DefinitionNode}<Definition node={segment} />
58
+ {:else if segment instanceof DefinitionNode}<Definition
59
+ node={segment}
60
+ />
40
61
  {:else if segment instanceof FootnoteNode}<Footnote node={segment} />
41
62
  {:else if segment instanceof LabelNode}<Label node={segment} />
42
63
  {:else if segment instanceof CommentNode}<Comment node={segment} />
43
64
  {:else if segment instanceof FormatNode}<Format node={segment} />
44
- {:else}<span class="bookish-error">Unknown segment type node={segment}</span>
65
+ {:else}<Problem>Unknown segment type node={segment}</Problem>
45
66
  {/if}
46
67
  {/each}
47
- {#if showPlaceholder }
48
- { placeholder }
49
- {/if}
50
68
  </svelte:element>
51
69
 
52
70
  <style>
53
71
  .bookish-editor-placeholder {
54
- color: var(--bookish-app-chrome-muted);
72
+ color: var(--app-muted-color);
55
73
  font-style: italic;
56
- }
57
- </style>
74
+ }
75
+
76
+ strong,
77
+ b {
78
+ font-weight: var(--bookish-bold-font-weight);
79
+ }
80
+ </style>
@@ -1,5 +1,5 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import FormatNode from "../../models/chapter/FormatNode";
2
+ import FormatNode from '../../models/chapter/FormatNode';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  node: FormatNode;
@@ -10,9 +10,9 @@ declare const __propDef: {
10
10
  };
11
11
  slots: {};
12
12
  };
13
- export declare type FormatProps = typeof __propDef.props;
14
- export declare type FormatEvents = typeof __propDef.events;
15
- export declare type FormatSlots = typeof __propDef.slots;
13
+ export type FormatProps = typeof __propDef.props;
14
+ export type FormatEvents = typeof __propDef.events;
15
+ export type FormatSlots = typeof __propDef.slots;
16
16
  export default class Format extends SvelteComponentTyped<FormatProps, FormatEvents, FormatSlots> {
17
17
  }
18
18
  export {};
@@ -1,12 +1,22 @@
1
- <script>import { isEditable } from "../page/Contexts";
1
+ <svelte:options immutable={true} />
2
+
3
+ <script>import { isEditable } from '../page/Contexts';
2
4
  import Code from './Code.svelte';
3
5
  import Text from './Text.svelte';
4
6
  export let node;
5
7
  let editable = isEditable();
6
8
  </script>
7
9
 
8
- {#if editable }
9
- <span class="bookish-code bookish-code-inline hljs" data-nodeid={node.nodeID}><Text node={node.getText()}/></span>
10
+ {#if editable}
11
+ <span
12
+ class="bookish-code bookish-code-inline hljs"
13
+ data-nodeid={node.nodeID}><Text node={node.getText()} /></span
14
+ >
10
15
  {:else}
11
- <Code editable={false} inline={true} language={node.getMeta()} nodeID={node.getText().nodeID}>{node.getText().getText()}</Code>
12
- {/if}
16
+ <Code
17
+ editable={false}
18
+ inline={true}
19
+ language={node.getMeta()}
20
+ nodeID={node.getText().nodeID}>{node.getText().getText()}</Code
21
+ >
22
+ {/if}
@@ -1,5 +1,5 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type InlineCodeNode from "../../models/chapter/InlineCodeNode";
2
+ import type InlineCodeNode from '../../models/chapter/InlineCodeNode';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  node: InlineCodeNode;
@@ -9,9 +9,9 @@ declare const __propDef: {
9
9
  };
10
10
  slots: {};
11
11
  };
12
- export declare type InlineCodeProps = typeof __propDef.props;
13
- export declare type InlineCodeEvents = typeof __propDef.events;
14
- export declare type InlineCodeSlots = typeof __propDef.slots;
12
+ export type InlineCodeProps = typeof __propDef.props;
13
+ export type InlineCodeEvents = typeof __propDef.events;
14
+ export type InlineCodeSlots = typeof __propDef.slots;
15
15
  export default class InlineCode extends SvelteComponentTyped<InlineCodeProps, InlineCodeEvents, InlineCodeSlots> {
16
16
  }
17
17
  export {};
@@ -1,20 +1,49 @@
1
+ <svelte:options immutable={true} />
2
+
1
3
  <script>import Atom from './Atom.svelte';
2
- import { getChapter, isEditable } from "../page/Contexts";
4
+ import { getChapter, getEdition, isEditable } from '../page/Contexts';
5
+ import Problem from './Problem.svelte';
3
6
  export let node;
4
7
  let editable = isEditable();
5
8
  let chapter = getChapter();
6
- $: ast = $chapter?.chapter.getAST();
7
- $: duplicate = ast === undefined ? false : ast.getLabels().filter(l => l.getMeta() === node.getMeta()).length > 1;
9
+ let edition = getEdition();
10
+ $: ast =
11
+ $edition && $chapter ? $chapter.chapter.getAST($edition) : undefined;
12
+ $: duplicate =
13
+ ast === undefined
14
+ ? false
15
+ : ast.getLabels().filter((l) => l.getMeta() === node.getMeta())
16
+ .length > 1;
8
17
  </script>
9
18
 
10
- <Atom node={node}>
11
- <span
12
- class={"bookish-label" + ($chapter?.highlightedID === node.getMeta() ? " bookish-content-highlight" : "")}
19
+ <Atom {node}>
20
+ <span
21
+ class={'bookish-label' +
22
+ ($chapter?.highlightedID === node.getMeta()
23
+ ? ' bookish-content-highlight'
24
+ : '')}
13
25
  id={node.getMeta()}
14
26
  data-nodeid={node.nodeID}
15
27
  >
16
28
  {#if editable}
17
- <span class={`${duplicate ? "bookish-error" : ""}`}>•<code>{node.getMeta()}</code></span>
29
+ {#if duplicate}
30
+ <Problem>Duplicate label {node.getMeta()}</Problem>
31
+ {:else}
32
+ <span>•<code>{node.getMeta()}</code></span>
33
+ {/if}
18
34
  {/if}
19
35
  </span>
20
- </Atom>
36
+ </Atom>
37
+
38
+ <style>
39
+ /* A little circle at the point of the annotation */
40
+ .bookish-label.bookish-content-highlight {
41
+ display: inline-block;
42
+ width: 3em;
43
+ height: 3em;
44
+ border-radius: 3em;
45
+ position: absolute;
46
+ z-index: -1;
47
+ margin-left: -1em;
48
+ }
49
+ </style>
@@ -1,5 +1,5 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type LabelNode from "../../models/chapter/LabelNode";
2
+ import type LabelNode from '../../models/chapter/LabelNode';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  node: LabelNode;
@@ -9,9 +9,9 @@ declare const __propDef: {
9
9
  };
10
10
  slots: {};
11
11
  };
12
- export declare type LabelProps = typeof __propDef.props;
13
- export declare type LabelEvents = typeof __propDef.events;
14
- export declare type LabelSlots = typeof __propDef.slots;
12
+ export type LabelProps = typeof __propDef.props;
13
+ export type LabelEvents = typeof __propDef.events;
14
+ export type LabelSlots = typeof __propDef.slots;
15
15
  export default class Label extends SvelteComponentTyped<LabelProps, LabelEvents, LabelSlots> {
16
16
  }
17
17
  export {};
@@ -1,5 +1,8 @@
1
- <script>import { getBase, getEdition, isEditable } from "../page/Contexts";
1
+ <svelte:options immutable={true} />
2
+
3
+ <script>import { getBase, getEdition, isEditable } from '../page/Contexts';
2
4
  import Text from './Text.svelte';
5
+ import Problem from './Problem.svelte';
3
6
  export let node;
4
7
  let base = getBase();
5
8
  let editable = isEditable();
@@ -8,14 +11,14 @@ $: url = node.getMeta();
8
11
  $: content = node.getText();
9
12
  function isInvalidChapterLink() {
10
13
  // If it's internal, validate it.
11
- if (!url.startsWith("http")) {
14
+ if (!url.startsWith('http')) {
12
15
  // Pull out any labels and just get the chapter name.
13
16
  let chapter = url;
14
- if (url.indexOf(":") >= 0) {
15
- let parts = chapter.split(":");
17
+ if (url.indexOf(':') >= 0) {
18
+ let parts = chapter.split(':');
16
19
  chapter = parts[0];
17
20
  }
18
- if (chapter !== "" && !$edition.hasChapter(chapter))
21
+ if (chapter !== '' && !$edition?.hasChapter(chapter))
19
22
  return true;
20
23
  }
21
24
  return false;
@@ -24,23 +27,25 @@ function isInvalidChapterLink() {
24
27
 
25
28
  {#if editable}
26
29
  <span class="bookish-editor-link"><Text node={content} /></span>
27
- <!-- If this is an invalid chapter link, say so -->
30
+ <!-- If this is an invalid chapter link, say so -->
28
31
  {:else if isInvalidChapterLink()}
29
- <span class="bookish-error">Unknown chapter name reference '{url}'</span>
30
- <!-- If this is external link, make an anchor that opens a new window. -->
31
- {:else if url.startsWith("http")}
32
+ <Problem>Unknown chapter name reference '{url}'</Problem>
33
+ <!-- If this is external link, make an anchor that opens a new window. -->
34
+ {:else if url.startsWith('http')}
32
35
  <a href={url} target="_blank" rel="noreferrer"><Text node={content} /></a>
33
- <!-- If's a chapter link with a label -->
34
- {:else if url.indexOf(":") >= 0}
36
+ <!-- If's a chapter link with a label -->
37
+ {:else if url.indexOf(':') >= 0}
35
38
  <!-- If the chapter isn't specified, set to the current chapter's id. -->
36
- {#if url.split(":")[0] === ""}
37
- <a href={"#" + url.split(":")[1]}><Text node={content} /></a>
39
+ {#if url.split(':')[0] === ''}
40
+ <a href={'#' + url.split(':')[1]}><Text node={content} /></a>
38
41
  {:else}
39
- <a href={"/" + url.split(":")[0] + "#" + url.split(":")[1]}><Text node={content} /></a>
42
+ <a href={'/' + url.split(':')[0] + '#' + url.split(':')[1]}
43
+ ><Text node={content} /></a
44
+ >
40
45
  {/if}
41
- <!-- If this is internal link, make a route link to the chapter. -->
42
- {:else}
43
- <a href={base + "/" + url}><Text node={content} /></a>
46
+ <!-- If this is internal link, make a route link to the chapter. -->
47
+ {:else}
48
+ <a href={$base + '/' + url}><Text node={content} /></a>
44
49
  {/if}
45
50
 
46
51
  <style>
@@ -48,4 +53,4 @@ function isInvalidChapterLink() {
48
53
  color: var(--bookish-link-color);
49
54
  font-weight: var(--bookish-link-font-weight);
50
55
  }
51
- </style>
56
+ </style>
@@ -1,5 +1,5 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type LinkNode from "../../models/chapter/LinkNode";
2
+ import type LinkNode from '../../models/chapter/LinkNode';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  node: LinkNode;
@@ -9,9 +9,9 @@ declare const __propDef: {
9
9
  };
10
10
  slots: {};
11
11
  };
12
- export declare type LinkProps = typeof __propDef.props;
13
- export declare type LinkEvents = typeof __propDef.events;
14
- export declare type LinkSlots = typeof __propDef.slots;
12
+ export type LinkProps = typeof __propDef.props;
13
+ export type LinkEvents = typeof __propDef.events;
14
+ export type LinkSlots = typeof __propDef.slots;
15
15
  export default class Link extends SvelteComponentTyped<LinkProps, LinkEvents, LinkSlots> {
16
16
  }
17
17
  export {};
@@ -1,14 +1,81 @@
1
- <script>import ListNode from "../../models/chapter/ListNode";
2
- import Format from "./Format.svelte";
1
+ <svelte:options immutable={true} />
2
+
3
+ <script>import ListNode from '../../models/chapter/ListNode';
4
+ import Format from './Format.svelte';
3
5
  export let node;
4
6
  </script>
5
7
 
6
- <svelte:element this={node.isNumbered() ? "ol" : "ul"} data-nodeid={node.nodeID}>
7
- {#each node.getItems() as item }
8
- {#if item instanceof ListNode }
9
- <svelte:self node={item}/>
8
+ <svelte:element
9
+ this={node.isNumbered() ? 'ol' : 'ul'}
10
+ data-nodeid={node.nodeID}
11
+ >
12
+ {#each node.getItems() as item (item.nodeID)}
13
+ {#if item instanceof ListNode}
14
+ <svelte:self node={item} />
10
15
  {:else}
11
- <li><Format node={item}/></li>
16
+ <li><Format node={item} /></li>
12
17
  {/if}
13
18
  {/each}
14
- </svelte:element>
19
+ </svelte:element>
20
+
21
+ <style>
22
+ ol {
23
+ list-style: none;
24
+ counter-reset: item;
25
+ }
26
+
27
+ ol > li {
28
+ counter-increment: item;
29
+ }
30
+
31
+ ol > li {
32
+ list-style-type: none;
33
+ }
34
+
35
+ ol > :global(ol > li) {
36
+ list-style-type: none;
37
+ }
38
+
39
+ ol > :global(ol > ol > li) {
40
+ list-style-type: none;
41
+ }
42
+
43
+ ol > :global(li::before),
44
+ ul > :global(ol > li::before),
45
+ ul > :global(ul > ol > li::before) {
46
+ content: counter(item) '. ';
47
+ color: var(--bookish-bullet-color);
48
+ display: inline-block;
49
+ width: 1em;
50
+ margin-left: -1.5rem;
51
+ margin-right: 0.5rem;
52
+ text-align: right;
53
+ }
54
+
55
+ ol > :global(ol > li::before),
56
+ ul > :global(ol > ol > li::before) {
57
+ content: counter(item, lower-alpha) '. ';
58
+ }
59
+
60
+ ol > :global(ol > ol > li:before) {
61
+ content: counter(item, upper-alpha) '. ';
62
+ }
63
+
64
+ li {
65
+ margin-bottom: calc(0.5 * var(--bookish-paragraph-spacing));
66
+ }
67
+
68
+ ul li {
69
+ list-style: none;
70
+ }
71
+
72
+ ul li::before {
73
+ content: '*';
74
+ color: var(--bookish-bullet-color);
75
+ display: inline-block;
76
+ width: 1rem;
77
+ margin-left: -1rem;
78
+ font-family: var(--bookish-bullet-font-family);
79
+ font-weight: var(--bookish-bullet-font-weight);
80
+ }
81
+ </style>
@@ -1,5 +1,5 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import ListNode from "../../models/chapter/ListNode";
2
+ import ListNode from '../../models/chapter/ListNode';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  node: ListNode;
@@ -9,9 +9,9 @@ declare const __propDef: {
9
9
  };
10
10
  slots: {};
11
11
  };
12
- export declare type ListProps = typeof __propDef.props;
13
- export declare type ListEvents = typeof __propDef.events;
14
- export declare type ListSlots = typeof __propDef.slots;
12
+ export type ListProps = typeof __propDef.props;
13
+ export type ListEvents = typeof __propDef.events;
14
+ export type ListSlots = typeof __propDef.slots;
15
15
  export default class List extends SvelteComponentTyped<ListProps, ListEvents, ListSlots> {
16
16
  }
17
17
  export {};