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,69 @@
1
- <script>import Block from "./Block.svelte";
1
+ <svelte:options immutable={true} />
2
+
3
+ <script>import Block from './Block.svelte';
2
4
  import Format from './Format.svelte';
3
- import renderPosition from "./renderPosition";
5
+ import Positioned from './Positioned.svelte';
4
6
  export let node;
5
7
  $: credit = node.getCredit();
6
- $: position = node.getPosition();
7
8
  </script>
8
9
 
9
- <blockquote class={"bookish-blockquote " + renderPosition(position)} data-nodeid={node.nodeID}>
10
- {#each node.getBlocks() as element}
11
- <Block node={element}/>
12
- {/each}
13
- {#if credit}
14
- <div class="bookish-blockquote-caption"><span><Format node={credit} placeholder="credit"/></span></div>
15
- {/if}
16
- </blockquote>
10
+ <Positioned position={node.getPosition()}>
11
+ <figure>
12
+ <blockquote class={'bookish-blockquote'} data-nodeid={node.nodeID}>
13
+ {#each node.getBlocks() as element (element.nodeID)}
14
+ <Block node={element} />
15
+ {/each}
16
+ </blockquote>
17
+ {#if credit}
18
+ <figcaption class="bookish-blockquote-caption"
19
+ ><Format node={credit} placeholder="credit" /></figcaption
20
+ >
21
+ {/if}
22
+ </figure>
23
+ </Positioned>
24
+
25
+ <style>
26
+ .bookish-blockquote {
27
+ clear: both;
28
+ border: none;
29
+ font-family: var(--bookish-header-font-family);
30
+ font-weight: 400;
31
+ font-style: italic;
32
+ padding: 0;
33
+ margin-top: var(--bookish-paragraph-spacing);
34
+ margin-bottom: var(--bookish-paragraph-spacing);
35
+ margin-left: var(--bookish-indent);
36
+ margin-right: var(--bookish-indent);
37
+ position: relative;
38
+ }
39
+
40
+ .bookish-blockquote > :global(p) {
41
+ margin: 0;
42
+ padding: 0;
43
+ }
44
+
45
+ .bookish-blockquote-caption {
46
+ margin-top: 0.5em;
47
+ text-align: right;
48
+ font-family: var(--bookish-header-font-family);
49
+ font-style: italic;
50
+ color: var(--bookish-muted-color);
51
+ }
52
+
53
+ .bookish-blockquote:before {
54
+ content: '\201C';
55
+ position: relative;
56
+ top: 80pt;
57
+ left: -40pt;
58
+ font-family: 'Modum Extra';
59
+ font-size: 120pt;
60
+ font-weight: bold;
61
+ color: var(--bookish-highlight-color);
62
+ z-index: -1;
63
+ }
64
+
65
+ .bookish-blockquote-caption:before {
66
+ content: '--';
67
+ margin-right: 0.25em;
68
+ }
69
+ </style>
@@ -1,5 +1,5 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type QuoteNode from "../../models/chapter/QuoteNode";
2
+ import type QuoteNode from '../../models/chapter/QuoteNode';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  node: QuoteNode;
@@ -9,9 +9,9 @@ declare const __propDef: {
9
9
  };
10
10
  slots: {};
11
11
  };
12
- export declare type QuoteProps = typeof __propDef.props;
13
- export declare type QuoteEvents = typeof __propDef.events;
14
- export declare type QuoteSlots = typeof __propDef.slots;
12
+ export type QuoteProps = typeof __propDef.props;
13
+ export type QuoteEvents = typeof __propDef.events;
14
+ export type QuoteSlots = typeof __propDef.slots;
15
15
  export default class Quote extends SvelteComponentTyped<QuoteProps, QuoteEvents, QuoteSlots> {
16
16
  }
17
17
  export {};
@@ -1,4 +1,15 @@
1
+ <svelte:options immutable={true} />
2
+
1
3
  <script>export let node;
2
4
  </script>
3
5
 
4
- <hr data-nodeid={node.nodeID}/>
6
+ <hr data-nodeid={node.nodeID} />
7
+
8
+ <style>
9
+ hr {
10
+ border: none;
11
+ border-bottom: 1px solid var(--bookish-border-color-light);
12
+ margin-top: calc(var(--bookish-paragraph-spacing) * 3);
13
+ margin-bottom: calc(var(--bookish-paragraph-spacing) * 3);
14
+ }
15
+ </style>
@@ -1,5 +1,5 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type RuleNode from "../../models/chapter/RuleNode";
2
+ import type RuleNode from '../../models/chapter/RuleNode';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  node: RuleNode;
@@ -9,9 +9,9 @@ declare const __propDef: {
9
9
  };
10
10
  slots: {};
11
11
  };
12
- export declare type RuleProps = typeof __propDef.props;
13
- export declare type RuleEvents = typeof __propDef.events;
14
- export declare type RuleSlots = typeof __propDef.slots;
12
+ export type RuleProps = typeof __propDef.props;
13
+ export type RuleEvents = typeof __propDef.events;
14
+ export type RuleSlots = typeof __propDef.slots;
15
15
  export default class Rule extends SvelteComponentTyped<RuleProps, RuleEvents, RuleSlots> {
16
16
  }
17
17
  export {};
@@ -1,29 +1,40 @@
1
- <script>import Format from './Format.svelte';
2
- import renderPosition from "./renderPosition";
1
+ <svelte:options immutable={true} />
2
+
3
+ <script>import Figure from './Figure.svelte';
4
+ import Format from './Format.svelte';
5
+ import Rows from '../page/Rows.svelte';
6
+ import { isEditable } from '../page/Contexts';
3
7
  export let node;
8
+ let editable = isEditable();
4
9
  $: rows = node.getRows();
5
- $: caption = node.getCaption();
6
10
  </script>
7
11
 
8
- <div class={"bookish-figure " + renderPosition(node.getPosition())} data-nodeid={node.nodeID}>
9
- <div class="bookish-table">
10
- <table>
11
- <tbody>
12
- {#each rows as row }
13
- <tr>
14
- {#if row.length === 1 }
15
- <td colspan={rows.reduce((max, row) => Math.max(row.length, max), 0)}><Format node={row[0]}/></td>
16
- {:else}
17
- {#each row as cell }
18
- <td><Format node={cell}/></td>
19
- {/each}
20
- {/if}
21
- </tr>
22
- {/each}
23
- </tbody>
24
- </table>
25
- </div>
26
- {#if caption !== undefined}
27
- <div class="bookish-figure-caption"><Format node={caption} placeholder="caption"/></div>
28
- {/if}
29
- </div>
12
+ <Figure {node} caption={node.getCaption()}>
13
+ <Rows>
14
+ {#each rows as row, index}
15
+ <tr class={editable ? 'editable' : null}>
16
+ {#if row.length === 1}
17
+ <svelte:element this={index === 0 ? 'th' : 'td'}>
18
+ colspan={rows.reduce(
19
+ (max, row) => Math.max(row.length, max),
20
+ 0
21
+ )}><Format node={row[0]} /></svelte:element
22
+ >
23
+ {:else}
24
+ {#each row as cell (cell.nodeID)}
25
+ <svelte:element this={index === 0 ? 'th' : 'td'}
26
+ ><Format node={cell} /></svelte:element
27
+ >
28
+ {/each}
29
+ {/if}
30
+ </tr>
31
+ {/each}
32
+ </Rows>
33
+ </Figure>
34
+
35
+ <style>
36
+ tr.editable td,
37
+ tr.editable th {
38
+ border: 1px dotted var(--app-border-color);
39
+ }
40
+ </style>
@@ -1,5 +1,5 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type TableNode from "../../models/chapter/TableNode";
2
+ import type TableNode from '../../models/chapter/TableNode';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  node: TableNode;
@@ -9,9 +9,9 @@ declare const __propDef: {
9
9
  };
10
10
  slots: {};
11
11
  };
12
- export declare type TableProps = typeof __propDef.props;
13
- export declare type TableEvents = typeof __propDef.events;
14
- export declare type TableSlots = typeof __propDef.slots;
12
+ export type TableProps = typeof __propDef.props;
13
+ export type TableEvents = typeof __propDef.events;
14
+ export type TableSlots = typeof __propDef.slots;
15
15
  export default class Table extends SvelteComponentTyped<TableProps, TableEvents, TableSlots> {
16
16
  }
17
17
  export {};
@@ -1,62 +1,87 @@
1
- <script>import { getChapter } from "../page/Contexts";
1
+ <svelte:options immutable={true} />
2
+
3
+ <script>import { getChapter, isEditable } from '../page/Contexts';
2
4
  export let node;
5
+ export let placeholder = undefined;
3
6
  $: text = node.getText();
4
7
  let context = getChapter();
8
+ let editable = isEditable();
5
9
  function replaceMultipleSpacesWithNonBreakingSpaces(original) {
6
- let revisedText = "";
10
+ let revisedText = '';
7
11
  for (let i = 0; i < original.length; i++) {
8
12
  // If its a space and its at the beginning, the end, or the previous character was a space, make it a non-breaking space.
9
13
  let c = original.charAt(i);
10
- if (c === " " && (i === 0 || i === original.length - 1 || original.charAt(i - 1) === " "))
11
- revisedText += "\u00a0";
14
+ if (c === ' ' &&
15
+ (i === 0 ||
16
+ i === original.length - 1 ||
17
+ original.charAt(i - 1) === ' '))
18
+ revisedText += '\u00a0';
12
19
  else
13
20
  revisedText += c;
14
21
  }
15
22
  return revisedText;
16
23
  }
17
- // Compute highlights, if highlighted
18
- let segments = undefined;
24
+ // Manipulate text for rendering.
19
25
  $: {
20
26
  // Replace any spaces at the beginning or end of the string with explicit non-breaking spaces to ensure that they render.
21
27
  text = replaceMultipleSpacesWithNonBreakingSpaces(text);
22
28
  // If the text ends with a newline, render a non-breaking space at the end.
23
- if (text.length > 0 && text.charAt(text.length - 1) === "\n")
24
- text = text + "\ufeff";
25
- // If there's no text, render a non-breaking space.
29
+ if (text.length > 0 && text.charAt(text.length - 1) === '\n')
30
+ text = text + '\ufeff';
31
+ // If there's no text, render a non-breaking space, or a placeholder if provided.
26
32
  if (text.length === 0)
27
- text = "\ufeff";
28
- // Is there a query we're supposed to highlight? If so, highlight it.
29
- if ($context && $context.highlightedWord) {
30
- const query = $context.highlightedWord;
31
- const lowerText = text.toLowerCase();
32
- // Does this text contain the query? Highlight it.
33
- if (lowerText.indexOf(query) >= 0) {
34
- // Find all the matches
35
- const indices = [];
36
- for (let i = 0; i < text.length; ++i) {
37
- if (lowerText.substring(i, i + query.length) === query) {
38
- indices.push(i);
33
+ text = placeholder ?? '\ufeff';
34
+ }
35
+ // Compute highlights, if highlighted
36
+ let segments = undefined;
37
+ $: {
38
+ segments = undefined;
39
+ if (!editable) {
40
+ // Is there a query we're supposed to highlight? If so, highlight it.
41
+ if ($context && $context.highlightedWord) {
42
+ const query = $context.highlightedWord;
43
+ const lowerText = text.toLowerCase();
44
+ // Does this text contain the query? Highlight it.
45
+ if (lowerText.indexOf(query) >= 0) {
46
+ // Find all the matches
47
+ const indices = [];
48
+ for (let i = 0; i < text.length; ++i) {
49
+ if (lowerText.substring(i, i + query.length) === query) {
50
+ indices.push(i);
51
+ }
39
52
  }
53
+ // Go through each one and construct contents for the span to return.
54
+ segments = [];
55
+ for (let i = 0; i < indices.length; i++) {
56
+ // Push the text from the end of the last match or the start of the string.
57
+ segments.push([
58
+ text.substring(i === 0 ? 0 : indices[i - 1] + query.length, indices[i]),
59
+ false,
60
+ ]);
61
+ segments.push([
62
+ text.substring(indices[i], indices[i] + query.length),
63
+ true,
64
+ ]);
65
+ }
66
+ if (indices[indices.length - 1] < text.length - 1)
67
+ segments.push([
68
+ text.substring(indices[indices.length - 1] + query.length, text.length),
69
+ false,
70
+ ]);
40
71
  }
41
- // Go through each one and construct contents for the span to return.
42
- segments = [];
43
- for (let i = 0; i < indices.length; i++) {
44
- // Push the text from the end of the last match or the start of the string.
45
- segments.push([text.substring(i === 0 ? 0 : indices[i - 1] + query.length, indices[i]), false]);
46
- segments.push([text.substring(indices[i], indices[i] + query.length), true]);
47
- }
48
- if (indices[indices.length - 1] < text.length - 1)
49
- segments.push([text.substring(indices[indices.length - 1] + query.length, text.length), false]);
50
72
  }
51
73
  }
52
74
  }
53
75
  </script>
54
76
 
55
-
56
- {#if segments }
57
- {#each segments as segment }
58
- <span class={`bookish-text ${segment[1] ? "bookish-content-highlight" : ""}`}>{segment[0]}</span>
77
+ {#if segments}
78
+ {#each segments as segment}
79
+ <span
80
+ class={`bookish-text ${
81
+ segment[1] ? 'bookish-content-highlight' : ''
82
+ }`}>{segment[0]}</span
83
+ >
59
84
  {/each}
60
85
  {:else}
61
- <span class={"bookish-text"} data-nodeid={node.nodeID}>{text}</span>
62
- {/if}
86
+ <span class={'bookish-text'} data-nodeid={node.nodeID}>{text}</span>
87
+ {/if}
@@ -1,17 +1,18 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type TextNode from "../../models/chapter/TextNode";
2
+ import type TextNode from '../../models/chapter/TextNode';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  node: TextNode;
6
+ placeholder?: string | undefined;
6
7
  };
7
8
  events: {
8
9
  [evt: string]: CustomEvent<any>;
9
10
  };
10
11
  slots: {};
11
12
  };
12
- export declare type TextProps = typeof __propDef.props;
13
- export declare type TextEvents = typeof __propDef.events;
14
- export declare type TextSlots = typeof __propDef.slots;
13
+ export type TextProps = typeof __propDef.props;
14
+ export type TextEvents = typeof __propDef.events;
15
+ export type TextSlots = typeof __propDef.slots;
15
16
  export default class Text extends SvelteComponentTyped<TextProps, TextEvents, TextSlots> {
16
17
  }
17
18
  export {};