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,16 +1,21 @@
1
- <script>import Header from "./Header.svelte";
1
+ <script>import Header from './Header.svelte';
2
2
  import Outline from './Outline.svelte';
3
3
  import Page from './Page.svelte';
4
4
  import Instructions from './Instructions.svelte';
5
5
  import ChapterIDs from '../../models/book/ChapterID';
6
- import Link from "../Link.svelte";
7
- import { getBase, getEdition } from "./Contexts";
8
- import { page } from "$app/stores";
6
+ import Link from '../Link.svelte';
7
+ import { getBase, getEdition } from './Contexts';
8
+ import { page } from '$app/stores';
9
+ import Muted from './Muted.svelte';
10
+ import ChapterTitle from './ChapterTitle.svelte';
11
+ import ChapterNumber from './ChapterNumber.svelte';
12
+ import PageHeader from './PageHeader.svelte';
13
+ import Rows from './Rows.svelte';
9
14
  let edition = getEdition();
10
15
  let base = getBase();
11
16
  // What letter are we matching?
12
17
  $: letter = $page.params.letter;
13
- $: bookIndex = $edition.getBookIndex();
18
+ $: bookIndex = $edition?.getBookIndex() ?? {};
14
19
  let letters = {};
15
20
  // Figure out what letters have words
16
21
  $: {
@@ -21,7 +26,9 @@ let words = [];
21
26
  $: {
22
27
  words = [];
23
28
  let count = 0;
24
- Object.keys(bookIndex).sort((a, b) => a.localeCompare(b)).forEach(word => {
29
+ Object.keys(bookIndex)
30
+ .sort((a, b) => a.localeCompare(b))
31
+ .forEach((word) => {
25
32
  const firstLetter = word.charAt(0).toLowerCase();
26
33
  if (letter === firstLetter) {
27
34
  count++;
@@ -33,85 +40,112 @@ $: {
33
40
  }
34
41
  </script>
35
42
 
36
- <Page title={`${$edition.getTitle()} - Index`}>
37
- <Header
38
- label="Index title"
39
- getImage={() => $edition.getImage(ChapterIDs.IndexID)}
40
- setImage={(embed) => $edition.setImage(ChapterIDs.IndexID, embed)}
41
- header="Index"
42
- tags={$edition.getTags()}
43
- >
44
- <Outline
45
- slot="outline"
46
- previous={$edition.getPreviousChapterID(ChapterIDs.IndexID)}
47
- next={$edition.getNextChapterID(ChapterIDs.IndexID)}
48
- />
49
- </Header>
43
+ {#if $edition}
44
+ <Page title={`${$edition.getTitle()} - Index`}>
45
+ <Header
46
+ label="Index title"
47
+ getImage={() => $edition?.getImage(ChapterIDs.IndexID) ?? null}
48
+ setImage={(embed) =>
49
+ $edition
50
+ ? edition.set($edition.withImage(ChapterIDs.IndexID, embed))
51
+ : undefined}
52
+ header="Index"
53
+ tags={$edition.getTags()}
54
+ >
55
+ <Outline
56
+ slot="outline"
57
+ previous={$edition.getPreviousChapterID(ChapterIDs.IndexID)}
58
+ next={$edition.getNextChapterID(ChapterIDs.IndexID)}
59
+ />
60
+ </Header>
50
61
 
51
- <Instructions>
52
- This index is created automatically.
53
- It's not perfect; we may add more control over it in the future.
54
- </Instructions>
62
+ <Instructions>
63
+ This index is created automatically. It's not perfect; we may add
64
+ more control over it in the future.
65
+ </Instructions>
55
66
 
56
- <p><em>This index includes all words, excluding common English words, words with apostrophes, and words ending in -ly.</em></p>
67
+ <p
68
+ ><em
69
+ >This index includes all words, excluding common English words,
70
+ words with apostrophes, and words ending in -ly.</em
71
+ ></p
72
+ >
57
73
 
58
- {#if Object.keys(letters).length === 0 }
59
- <p>There are no words in this book, so there's no index.</p>
60
- {:else}
61
- <p>Pick a letter to browse:</p>
74
+ {#if Object.keys(letters).length === 0}
75
+ <p>There are no words in this book, so there's no index.</p>
76
+ {:else}
77
+ <p>Pick a letter to browse:</p>
62
78
 
63
- <p>
64
- {#each "abcdefghijklmnopqrstuvwxyz".split("") as symbol, index}
65
- <span style="display: inline-block">
66
- {#if symbol in letters && letter !== symbol }
67
- <Link to={base + "/index/" + symbol}>{symbol}</Link>
79
+ <nav class="letters">
80
+ {#each 'abcdefghijklmnopqrstuvwxyz'.split('') as symbol, index}
81
+ {#if symbol in letters && letter !== symbol}
82
+ <Link to={$base + 'index/' + symbol}>{symbol}</Link>
83
+ {:else if letter === symbol}
84
+ <strong
85
+ ><span style="font-size: 200%">{symbol}</span
86
+ ></strong
87
+ >
68
88
  {:else}
69
- <span>
70
- {#if letter === symbol }
71
- <strong><span style="font-size: 200%">{symbol}</span></strong>
72
- {:else}
73
- <span class={"bookish-muted"}>{symbol}</span>
74
- {/if}
75
- </span>
89
+ <Muted>{symbol}</Muted>
76
90
  {/if}
77
- {#if index < 26 - 1 }
78
- <span>&sdot;</span>
91
+ {/each}
92
+ </nav>
93
+
94
+ <Rows>
95
+ {#each words as word, index}
96
+ {#if word === true}
97
+ <tr
98
+ ><td colspan={2}
99
+ ><PageHeader>{words[index + 1]}</PageHeader></td
100
+ ></tr
101
+ >
102
+ {:else}
103
+ <tr>
104
+ <td>{word}</td>
105
+ <td>
106
+ <!-- Sort the chapters by chapter number -->
107
+ {#each Array.from(bookIndex[word]).sort( (a, b) => {
108
+ let numberA = $edition?.getChapterNumber(a) ?? 0;
109
+ let numberB = $edition?.getChapterNumber(b) ?? 0;
110
+ if (numberA === undefined) return -1;
111
+ if (numberB === undefined) return 1;
112
+ return numberA - numberB;
113
+ } ) as chapterID}
114
+ <!-- Map them to links to the first occurrence in the chapter. -->
115
+ <p>
116
+ <ChapterNumber
117
+ >Chapter {#if $edition.getChapterNumber(chapterID) !== undefined}{$edition.getChapterNumber(
118
+ chapterID
119
+ )}.
120
+ {/if}</ChapterNumber
121
+ >
122
+ <ChapterTitle
123
+ link={`${$base}${chapterID}?word=${word}`}
124
+ >{$edition.getChapterName(
125
+ chapterID
126
+ )}</ChapterTitle
127
+ >
128
+ </p>
129
+ {/each}
130
+ </td>
131
+ </tr>
79
132
  {/if}
80
- </span>
81
- {/each}
82
- </p>
133
+ {/each}
134
+ </Rows>
135
+ {/if}
136
+ </Page>
137
+ {/if}
138
+
139
+ <style>
140
+ tr p {
141
+ margin-top: 0;
142
+ }
83
143
 
84
- <div class="bookish-table">
85
- <table>
86
- <tbody>
87
- {#each words as word, index }
88
- {#if word === true}
89
- <tr><td colspan={2}><h2 class="bookish-header">{words[index + 1]}</h2></td></tr>
90
- {:else}
91
- <tr>
92
- <td>{word}</td>
93
- <td>
94
- <!-- Sort the chapters by chapter number -->
95
- {#each Array.from(bookIndex[word])
96
- .sort((a, b) => {
97
- let numberA = $edition.getChapterNumber(a);
98
- let numberB = $edition.getChapterNumber(b);
99
- if(numberA === undefined) return -1;
100
- if(numberB === undefined) return 1;
101
- return numberA - numberB;
102
- }) as chapterID, index }
103
- <!-- Map them to links to the first occurrence in the chapter. -->
104
- <span>
105
- Chapter {#if $edition.getChapterNumber(chapterID) !== undefined}<span> {$edition.getChapterNumber(chapterID)}. </span>{/if}<Link to={`${base}/${chapterID}?word=${word}`}>{$edition.getChapterName(chapterID)}</Link>
106
- {#if index < bookIndex[word].size - 1 }<br/>{/if}
107
- </span>
108
- {/each}
109
- </td>
110
- </tr>
111
- {/if}
112
- {/each}
113
- </tbody>
114
- </table>
115
- </div>
116
- {/if}
117
- </Page>
144
+ .letters {
145
+ display: flex;
146
+ flex-direction: row;
147
+ flex-wrap: nowrap;
148
+ gap: calc(2 * var(--bookish-inline-padding));
149
+ align-items: baseline;
150
+ }
151
+ </style>
@@ -1,14 +1,14 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
- props: {};
3
+ props: Record<string, never>;
4
4
  events: {
5
5
  [evt: string]: CustomEvent<any>;
6
6
  };
7
7
  slots: {};
8
8
  };
9
- export declare type IndexProps = typeof __propDef.props;
10
- export declare type IndexEvents = typeof __propDef.events;
11
- export declare type IndexSlots = typeof __propDef.slots;
9
+ export type IndexProps = typeof __propDef.props;
10
+ export type IndexEvents = typeof __propDef.events;
11
+ export type IndexSlots = typeof __propDef.slots;
12
12
  export default class Index extends SvelteComponentTyped<IndexProps, IndexEvents, IndexSlots> {
13
13
  }
14
14
  export {};
@@ -1,30 +1,32 @@
1
- <script>import { isEditable } from "./Contexts";
1
+ <script>import { isEditable } from './Contexts';
2
2
  let editable = isEditable();
3
3
  </script>
4
4
 
5
- {#if editable }
6
- <div class="bookish-instructions"><slot></slot></div>
5
+ {#if editable}
6
+ <aside class="instructions"><slot /></aside>
7
7
  {/if}
8
8
 
9
9
  <style>
10
- .bookish-instructions {
10
+ .instructions {
11
+ font-family: var(--app-font);
12
+ font-weight: 300;
11
13
  font-style: italic;
12
- margin-top: var(--bookish-app-margin);
13
- margin-bottom: var(--bookish-app-margin);
14
- line-height: 1.2;
15
- padding: var(--bookish-app-margin);
16
- border: 2px solid var(--bookish-app-chrome-border-color);
17
- border-radius: var(--bookish-roundedness);
14
+ margin-top: var(--app-text-spacing);
15
+ margin-bottom: var(--app-text-spacing);
16
+ line-height: var(--app-line-height);
17
+ padding-left: var(--app-chrome-padding);
18
+ border-left: var(--app-chrome-border-size) solid var(--app-border-color);
18
19
  }
19
20
 
20
- .bookish-instructions :global(p), .bookish-instructions :global(li) {
21
- font-family: var(--bookish-app-chrome-font-family);
22
- font-size: var(--bookish-app-chrome-font-size);
23
- line-height: var(--bookish-app-chrome-line-height);
21
+ .instructions :global(p),
22
+ .instructions :global(li) {
23
+ font-family: var(--app-font);
24
+ font-size: var(--app-chrome-font-size);
25
+ line-height: var(--app-line-height);
24
26
  margin-bottom: 0;
25
27
  }
26
28
 
27
- .bookish-instructions :global(p) {
29
+ .instructions :global(p) {
28
30
  margin-top: 0;
29
31
  }
30
- </style>
32
+ </style>
@@ -1,6 +1,6 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
- props: {};
3
+ props: Record<string, never>;
4
4
  events: {
5
5
  [evt: string]: CustomEvent<any>;
6
6
  };
@@ -8,9 +8,9 @@ declare const __propDef: {
8
8
  default: {};
9
9
  };
10
10
  };
11
- export declare type InstructionsProps = typeof __propDef.props;
12
- export declare type InstructionsEvents = typeof __propDef.events;
13
- export declare type InstructionsSlots = typeof __propDef.slots;
11
+ export type InstructionsProps = typeof __propDef.props;
12
+ export type InstructionsEvents = typeof __propDef.events;
13
+ export type InstructionsSlots = typeof __propDef.slots;
14
14
  export default class Instructions extends SvelteComponentTyped<InstructionsProps, InstructionsEvents, InstructionsSlots> {
15
15
  }
16
16
  export {};
@@ -1,29 +1,37 @@
1
- <script>import Parser from "../../models/chapter/Parser";
2
- import BookishEditor from "../editor/BookishEditor.svelte";
3
- import Instructions from "./Instructions.svelte";
4
- import Format from "../chapter/Format.svelte";
5
- import { getEdition, isEditable } from "./Contexts";
1
+ <script>import Parser from '../../models/chapter/Parser';
2
+ import BookishEditor from '../editor/BookishEditor.svelte';
3
+ import Instructions from './Instructions.svelte';
4
+ import Format from '../chapter/Format.svelte';
5
+ import { getEdition, isEditable } from './Contexts';
6
+ import PageHeader from './PageHeader.svelte';
6
7
  let edition = getEdition();
7
8
  let editable = isEditable();
8
- $: formatNode = Parser.parseFormat($edition, $edition.getLicense()).withTextIfEmpty();
9
+ $: formatNode = $edition
10
+ ? Parser.parseFormat($edition, $edition.getLicense()).withTextIfEmpty()
11
+ : undefined;
9
12
  </script>
10
13
 
11
- <h2 class="bookish-header" id="license">License</h2>
14
+ <PageHeader id="license">License</PageHeader>
12
15
 
13
16
  <Instructions>
14
- By default of U.S. Copyright Law, your content copyrighted and owned by all authors.
15
- Edit this if you'd like to grant different rights.
17
+ By default of U.S. Copyright Law, your content copyrighted and owned by all
18
+ authors. Edit this if you'd like to grant different rights.
16
19
  </Instructions>
17
20
 
18
- <!-- If editable, show acknowledgements even if they're empty, otherwise hide -->
19
- {#if editable }
20
- <BookishEditor
21
- ast={formatNode}
22
- save={node => $edition.setLicense(node.toBookdown())}
23
- chapter={false}
24
- component={Format}
25
- placeholder="In the U.S., all rights reserved by default. Want to offer different rights to readers?"
26
- />
27
- {:else}
28
- <Format node={formatNode} />
29
- {/if}
21
+ {#if $edition && formatNode}
22
+ <!-- If editable, show acknowledgements even if they're empty, otherwise hide -->
23
+ {#if editable}
24
+ <BookishEditor
25
+ ast={formatNode}
26
+ save={(node) =>
27
+ $edition
28
+ ? edition.set($edition.setLicense(node.toBookdown()))
29
+ : undefined}
30
+ chapter={false}
31
+ component={Format}
32
+ placeholder="In the U.S., all rights reserved by default. Want to offer different rights to readers?"
33
+ />
34
+ {:else}
35
+ <Format node={formatNode} />
36
+ {/if}
37
+ {/if}
@@ -1,14 +1,14 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
- props: {};
3
+ props: Record<string, never>;
4
4
  events: {
5
5
  [evt: string]: CustomEvent<any>;
6
6
  };
7
7
  slots: {};
8
8
  };
9
- export declare type LicenseProps = typeof __propDef.props;
10
- export declare type LicenseEvents = typeof __propDef.events;
11
- export declare type LicenseSlots = typeof __propDef.slots;
9
+ export type LicenseProps = typeof __propDef.props;
10
+ export type LicenseEvents = typeof __propDef.events;
11
+ export type LicenseSlots = typeof __propDef.slots;
12
12
  export default class License extends SvelteComponentTyped<LicenseProps, LicenseEvents, LicenseSlots> {
13
13
  }
14
14
  export {};
@@ -1,13 +1,103 @@
1
- <div class={"bookish bookish-loading" + (typeof localStorage !== "undefined" && localStorage.getItem("bookish-dark") === "true" ? " bookish-dark" : "")}>
2
- <div class="bookish-loading-animation">
3
- <div></div>
4
- <div></div>
5
- <div></div>
6
- <div></div>
7
- <div></div>
8
- <div></div>
9
- <div></div>
10
- <div></div>
11
- <div></div>
1
+ <div
2
+ aria-live="polite"
3
+ class={'bookish bookish-loading' +
4
+ (typeof localStorage !== 'undefined' &&
5
+ localStorage.getItem('dark') === 'true'
6
+ ? ' dark'
7
+ : '')}
8
+ >
9
+ <div class="bookish-loading-animation">
10
+ <div />
11
+ <div />
12
+ <div />
13
+ <div />
14
+ <div />
15
+ <div />
16
+ <div />
17
+ <div />
18
+ <div />
12
19
  </div>
13
- </div>
20
+ </div>
21
+
22
+ <style>
23
+ .bookish-loading {
24
+ width: 100vw;
25
+ height: 100vh;
26
+ }
27
+
28
+ .bookish-loading-animation {
29
+ position: fixed;
30
+ width: 80px;
31
+ height: 80px;
32
+ left: 50%;
33
+ top: 50%;
34
+ margin-left: -40px;
35
+ margin-top: -40px;
36
+ z-index: 2;
37
+ }
38
+
39
+ .bookish-loading-animation div {
40
+ position: absolute;
41
+ width: 16px;
42
+ height: 16px;
43
+ border-radius: 50%;
44
+ background: var(--bookish-muted-color);
45
+ animation: bookish-loading 1.2s linear infinite;
46
+ }
47
+
48
+ .bookish-loading-animation div:nth-child(1) {
49
+ top: 8px;
50
+ left: 8px;
51
+ animation-delay: 0s;
52
+ }
53
+ .bookish-loading-animation div:nth-child(2) {
54
+ top: 8px;
55
+ left: 32px;
56
+ animation-delay: -0.4s;
57
+ }
58
+ .bookish-loading-animation div:nth-child(3) {
59
+ top: 8px;
60
+ left: 56px;
61
+ animation-delay: -0.8s;
62
+ }
63
+ .bookish-loading-animation div:nth-child(4) {
64
+ top: 32px;
65
+ left: 8px;
66
+ animation-delay: -0.4s;
67
+ }
68
+ .bookish-loading-animation div:nth-child(5) {
69
+ top: 32px;
70
+ left: 32px;
71
+ animation-delay: -0.8s;
72
+ }
73
+ .bookish-loading-animation div:nth-child(6) {
74
+ top: 32px;
75
+ left: 56px;
76
+ animation-delay: -1.2s;
77
+ }
78
+ .bookish-loading-animation div:nth-child(7) {
79
+ top: 56px;
80
+ left: 8px;
81
+ animation-delay: -0.8s;
82
+ }
83
+ .bookish-loading-animation div:nth-child(8) {
84
+ top: 56px;
85
+ left: 32px;
86
+ animation-delay: -1.2s;
87
+ }
88
+ .bookish-loading-animation div:nth-child(9) {
89
+ top: 56px;
90
+ left: 56px;
91
+ animation-delay: -1.6s;
92
+ }
93
+
94
+ @keyframes bookish-loading {
95
+ 0%,
96
+ 100% {
97
+ opacity: 1;
98
+ }
99
+ 50% {
100
+ opacity: 0.5;
101
+ }
102
+ }
103
+ </style>
@@ -1,7 +1,9 @@
1
1
  /** @typedef {typeof __propDef.props} LoadingProps */
2
2
  /** @typedef {typeof __propDef.events} LoadingEvents */
3
3
  /** @typedef {typeof __propDef.slots} LoadingSlots */
4
- export default class Loading extends SvelteComponentTyped<{}, {
4
+ export default class Loading extends SvelteComponentTyped<{
5
+ [x: string]: never;
6
+ }, {
5
7
  [evt: string]: CustomEvent<any>;
6
8
  }, {}> {
7
9
  }
@@ -10,7 +12,9 @@ export type LoadingEvents = typeof __propDef.events;
10
12
  export type LoadingSlots = typeof __propDef.slots;
11
13
  import { SvelteComponentTyped } from "svelte";
12
14
  declare const __propDef: {
13
- props: {};
15
+ props: {
16
+ [x: string]: never;
17
+ };
14
18
  events: {
15
19
  [evt: string]: CustomEvent<any>;
16
20
  };