bookish-press 0.4.232 → 0.5.1

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 (433) hide show
  1. package/{components → package/components}/Auth.svelte +11 -13
  2. package/{components → package/components}/Auth.svelte.d.ts +0 -0
  3. package/{components → package/components}/Authentication.d.ts +0 -0
  4. package/{components → package/components}/Authentication.js +0 -0
  5. package/{components → package/components}/BookPreview.svelte +13 -17
  6. package/{components → package/components}/BookPreview.svelte.d.ts +0 -0
  7. package/{components → package/components}/Link.svelte +2 -1
  8. package/{components → package/components}/Link.svelte.d.ts +1 -0
  9. package/{components → package/components}/app/BookList.svelte +0 -0
  10. package/{components → package/components}/app/BookList.svelte.d.ts +0 -0
  11. package/{components → package/components}/app/Button.svelte +5 -2
  12. package/{components → package/components}/app/Button.svelte.d.ts +0 -0
  13. package/{components → package/components}/app/Feedback.svelte +4 -9
  14. package/{components → package/components}/app/Feedback.svelte.d.ts +0 -0
  15. package/{components → package/components}/app/Head.svelte +4 -1
  16. package/{components → package/components}/app/Head.svelte.d.ts +6 -15
  17. package/{components → package/components}/app/Large.svelte +0 -0
  18. package/{components → package/components}/app/Large.svelte.d.ts +0 -0
  19. package/{components → package/components}/app/Lead.svelte +0 -0
  20. package/{components → package/components}/app/Lead.svelte.d.ts +0 -0
  21. package/package/components/app/Link.svelte +36 -0
  22. package/{components → package/components}/app/Link.svelte.d.ts +1 -0
  23. package/{components → package/components}/app/Options.svelte +0 -0
  24. package/{components → package/components}/app/Options.svelte.d.ts +0 -0
  25. package/{components → package/components}/app/Paragraph.svelte +1 -0
  26. package/{components → package/components}/app/Paragraph.svelte.d.ts +0 -0
  27. package/{components/app/Writing.svelte → package/components/app/Section.svelte} +0 -1
  28. package/package/components/app/Section.svelte.d.ts +27 -0
  29. package/{components → package/components}/app/Table.svelte +0 -0
  30. package/{components → package/components}/app/Table.svelte.d.ts +0 -0
  31. package/{components → package/components}/app/TextInput.svelte +2 -0
  32. package/{components → package/components}/app/TextInput.svelte.d.ts +0 -0
  33. package/{components → package/components}/chapter/Atom.svelte +1 -8
  34. package/{components → package/components}/chapter/Atom.svelte.d.ts +0 -0
  35. package/{components → package/components}/chapter/Block.svelte +3 -1
  36. package/{components → package/components}/chapter/Block.svelte.d.ts +0 -0
  37. package/{components → package/components}/chapter/Callout.svelte +0 -0
  38. package/{components → package/components}/chapter/Callout.svelte.d.ts +0 -0
  39. package/{components → package/components}/chapter/CaptionedCode.svelte +2 -2
  40. package/{components → package/components}/chapter/CaptionedCode.svelte.d.ts +0 -0
  41. package/{components → package/components}/chapter/ChapterBody.svelte +9 -16
  42. package/{components → package/components}/chapter/ChapterBody.svelte.d.ts +1 -0
  43. package/{components → package/components}/chapter/Citations.svelte +13 -11
  44. package/{components → package/components}/chapter/Citations.svelte.d.ts +0 -0
  45. package/{components → package/components}/chapter/Code.svelte +3 -2
  46. package/{components → package/components}/chapter/Code.svelte.d.ts +0 -0
  47. package/{components → package/components}/chapter/Comment.svelte +7 -13
  48. package/{components → package/components}/chapter/Comment.svelte.d.ts +0 -0
  49. package/{components → package/components}/chapter/Definition.svelte +8 -3
  50. package/{components → package/components}/chapter/Definition.svelte.d.ts +0 -0
  51. package/{components → package/components}/chapter/Embed.svelte +6 -5
  52. package/{components → package/components}/chapter/Embed.svelte.d.ts +1 -0
  53. package/{components → package/components}/chapter/ErrorMessage.svelte +0 -0
  54. package/{components → package/components}/chapter/ErrorMessage.svelte.d.ts +0 -0
  55. package/{components → package/components}/chapter/ExtendedPrism.d.ts +0 -0
  56. package/{components → package/components}/chapter/ExtendedPrism.js +0 -0
  57. package/{components → package/components}/chapter/Figure.svelte +8 -8
  58. package/{components → package/components}/chapter/Figure.svelte.d.ts +0 -0
  59. package/{components → package/components}/chapter/Footnote.svelte +13 -24
  60. package/{components → package/components}/chapter/Footnote.svelte.d.ts +0 -2
  61. package/{components → package/components}/chapter/Format.svelte +5 -4
  62. package/{components → package/components}/chapter/Format.svelte.d.ts +0 -0
  63. package/{components → package/components}/chapter/InlineCode.svelte +2 -2
  64. package/{components → package/components}/chapter/InlineCode.svelte.d.ts +0 -0
  65. package/{components → package/components}/chapter/Label.svelte +5 -7
  66. package/{components → package/components}/chapter/Label.svelte.d.ts +0 -0
  67. package/{components → package/components}/chapter/Link.svelte +8 -6
  68. package/{components → package/components}/chapter/Link.svelte.d.ts +0 -0
  69. package/{components → package/components}/chapter/List.svelte +5 -0
  70. package/{components → package/components}/chapter/List.svelte.d.ts +0 -0
  71. package/{components → package/components}/chapter/Marginal.svelte +30 -12
  72. package/{components → package/components}/chapter/Marginal.svelte.d.ts +0 -0
  73. package/{components → package/components}/chapter/Paragraph.svelte +23 -10
  74. package/{components → package/components}/chapter/Paragraph.svelte.d.ts +0 -0
  75. package/{components → package/components}/chapter/Positioned.svelte +0 -0
  76. package/{components → package/components}/chapter/Positioned.svelte.d.ts +0 -0
  77. package/{components → package/components}/chapter/Problem.svelte +0 -0
  78. package/{components → package/components}/chapter/Problem.svelte.d.ts +0 -0
  79. package/{components → package/components}/chapter/Python.svelte +0 -0
  80. package/{components → package/components}/chapter/Python.svelte.d.ts +0 -0
  81. package/{components → package/components}/chapter/Quote.svelte +20 -10
  82. package/{components → package/components}/chapter/Quote.svelte.d.ts +0 -0
  83. package/{components → package/components}/chapter/Rule.svelte +0 -0
  84. package/{components → package/components}/chapter/Rule.svelte.d.ts +0 -0
  85. package/{components → package/components}/chapter/Table.svelte +2 -2
  86. package/{components → package/components}/chapter/Table.svelte.d.ts +0 -0
  87. package/{components → package/components}/chapter/Text.svelte +2 -2
  88. package/{components → package/components}/chapter/Text.svelte.d.ts +0 -0
  89. package/package/components/controls/DarkToggle.svelte +38 -0
  90. package/package/components/controls/DarkToggle.svelte.d.ts +17 -0
  91. package/{components → package/components}/editor/BookishEditor.svelte +57 -32
  92. package/{components → package/components}/editor/BookishEditor.svelte.d.ts +4 -1
  93. package/{components → package/components}/editor/CalloutEditor.svelte +0 -0
  94. package/{components → package/components}/editor/CalloutEditor.svelte.d.ts +0 -0
  95. package/{components → package/components}/editor/CaptionedCodeEditor.svelte +0 -0
  96. package/{components → package/components}/editor/CaptionedCodeEditor.svelte.d.ts +0 -0
  97. package/{components → package/components}/editor/CaretContext.d.ts +0 -0
  98. package/{components → package/components}/editor/CaretContext.js +0 -0
  99. package/{components → package/components}/editor/CaretState.d.ts +0 -0
  100. package/{components → package/components}/editor/CaretState.js +0 -0
  101. package/{components → package/components}/editor/CaretUtilities.d.ts +0 -0
  102. package/{components → package/components}/editor/CaretUtilities.js +0 -0
  103. package/{components → package/components}/editor/CaretView.svelte +4 -2
  104. package/{components → package/components}/editor/CaretView.svelte.d.ts +1 -0
  105. package/{components → package/components}/editor/CitationsEditor.svelte +0 -0
  106. package/{components → package/components}/editor/CitationsEditor.svelte.d.ts +0 -0
  107. package/{components → package/components}/editor/Clipboard.d.ts +0 -0
  108. package/{components → package/components}/editor/Clipboard.js +0 -0
  109. package/{components → package/components}/editor/Command.d.ts +0 -0
  110. package/{components → package/components}/editor/Command.js +0 -0
  111. package/{components → package/components}/editor/Commands.d.ts +0 -0
  112. package/{components → package/components}/editor/Commands.js +0 -0
  113. package/package/components/editor/ConfirmButton.svelte +23 -0
  114. package/{components → package/components}/editor/ConfirmButton.svelte.d.ts +4 -3
  115. package/{components → package/components}/editor/DefinitionEditor.svelte +0 -0
  116. package/{components → package/components}/editor/DefinitionEditor.svelte.d.ts +0 -0
  117. package/{components → package/components}/editor/EmbedEditor.svelte +1 -1
  118. package/{components → package/components}/editor/EmbedEditor.svelte.d.ts +0 -0
  119. package/{components → package/components}/editor/Icon.svelte +0 -0
  120. package/{components → package/components}/editor/Icon.svelte.d.ts +0 -0
  121. package/{components → package/components}/editor/ImageChooser.svelte +0 -0
  122. package/{components → package/components}/editor/ImageChooser.svelte.d.ts +0 -0
  123. package/{components → package/components}/editor/InlineCodeEditor.svelte +0 -0
  124. package/{components → package/components}/editor/InlineCodeEditor.svelte.d.ts +0 -0
  125. package/{components → package/components}/editor/LabelEditor.svelte +0 -0
  126. package/{components → package/components}/editor/LabelEditor.svelte.d.ts +0 -0
  127. package/{components → package/components}/editor/LanguageEditor.svelte +0 -0
  128. package/{components → package/components}/editor/LanguageEditor.svelte.d.ts +0 -0
  129. package/{components → package/components}/editor/LinkEditor.svelte +4 -3
  130. package/{components → package/components}/editor/LinkEditor.svelte.d.ts +0 -0
  131. package/{components → package/components}/editor/Note.svelte +1 -0
  132. package/{components → package/components}/editor/Note.svelte.d.ts +0 -0
  133. package/package/components/editor/Permissions.svelte +93 -0
  134. package/package/components/editor/Permissions.svelte.d.ts +20 -0
  135. package/{components → package/components}/editor/PositionEditor.svelte +0 -0
  136. package/{components → package/components}/editor/PositionEditor.svelte.d.ts +0 -0
  137. package/{components → package/components}/editor/QuoteEditor.svelte +0 -0
  138. package/{components → package/components}/editor/QuoteEditor.svelte.d.ts +0 -0
  139. package/{components → package/components}/editor/Switch.svelte +0 -0
  140. package/{components → package/components}/editor/Switch.svelte.d.ts +0 -0
  141. package/{components → package/components}/editor/TableEditor.svelte +0 -0
  142. package/{components → package/components}/editor/TableEditor.svelte.d.ts +0 -0
  143. package/{components → package/components}/editor/TextEditor.svelte +2 -3
  144. package/{components → package/components}/editor/TextEditor.svelte.d.ts +0 -0
  145. package/{components → package/components}/editor/Toggle.svelte +0 -0
  146. package/{components → package/components}/editor/Toggle.svelte.d.ts +0 -0
  147. package/{components → package/components}/editor/Toolbar.svelte +8 -3
  148. package/{components → package/components}/editor/Toolbar.svelte.d.ts +0 -0
  149. package/{components → package/components}/editor/ToolbarGroup.svelte +0 -1
  150. package/{components → package/components}/editor/ToolbarGroup.svelte.d.ts +0 -0
  151. package/{components → package/components}/editor/ToolbarSpacer.svelte +0 -0
  152. package/{components → package/components}/editor/ToolbarSpacer.svelte.d.ts +0 -0
  153. package/{components → package/components}/editor/URLEditor.svelte +2 -0
  154. package/{components → package/components}/editor/URLEditor.svelte.d.ts +0 -0
  155. package/{components → package/components}/editor/UndoState.d.ts +0 -0
  156. package/{components → package/components}/editor/UndoState.js +0 -0
  157. package/{components → package/components}/editor/icons/annotate.svg +0 -0
  158. package/{components → package/components}/editor/icons/block.svg +0 -0
  159. package/{components → package/components}/editor/icons/bold.svg +0 -0
  160. package/{components → package/components}/editor/icons/bullets.svg +0 -0
  161. package/{components → package/components}/editor/icons/callout.svg +0 -0
  162. package/{components → package/components}/editor/icons/citation.svg +0 -0
  163. package/{components → package/components}/editor/icons/clear.svg +0 -0
  164. package/{components → package/components}/editor/icons/clipboard.svg +0 -0
  165. package/{components → package/components}/editor/icons/code.svg +0 -0
  166. package/{components → package/components}/editor/icons/columnafter.svg +0 -0
  167. package/{components → package/components}/editor/icons/columnbefore.svg +0 -0
  168. package/{components → package/components}/editor/icons/comment.svg +0 -0
  169. package/{components → package/components}/editor/icons/copy.svg +0 -0
  170. package/{components → package/components}/editor/icons/cut.svg +0 -0
  171. package/{components → package/components}/editor/icons/define.svg +0 -0
  172. package/{components → package/components}/editor/icons/deletecolumn.svg +0 -0
  173. package/{components → package/components}/editor/icons/deleterow.svg +0 -0
  174. package/{components → package/components}/editor/icons/footnote.svg +0 -0
  175. package/{components → package/components}/editor/icons/header1.svg +0 -0
  176. package/{components → package/components}/editor/icons/header2.svg +0 -0
  177. package/{components → package/components}/editor/icons/header3.svg +0 -0
  178. package/{components → package/components}/editor/icons/home.svg +0 -0
  179. package/{components → package/components}/editor/icons/indent.svg +0 -0
  180. package/{components → package/components}/editor/icons/italic.svg +0 -0
  181. package/{components → package/components}/editor/icons/label.svg +0 -0
  182. package/{components → package/components}/editor/icons/left.svg +0 -0
  183. package/{components → package/components}/editor/icons/level.svg +0 -0
  184. package/{components → package/components}/editor/icons/link.svg +0 -0
  185. package/{components → package/components}/editor/icons/list.svg +0 -0
  186. package/{components → package/components}/editor/icons/media.svg +0 -0
  187. package/{components → package/components}/editor/icons/middle.svg +0 -0
  188. package/{components → package/components}/editor/icons/numbers.svg +0 -0
  189. package/{components → package/components}/editor/icons/paragraph.svg +0 -0
  190. package/{components → package/components}/editor/icons/paste.svg +0 -0
  191. package/{components → package/components}/editor/icons/quote.svg +0 -0
  192. package/{components → package/components}/editor/icons/redo.svg +0 -0
  193. package/{components → package/components}/editor/icons/right.svg +0 -0
  194. package/{components → package/components}/editor/icons/rowabove.svg +0 -0
  195. package/{components → package/components}/editor/icons/rowbelow.svg +0 -0
  196. package/{components → package/components}/editor/icons/rule.svg +0 -0
  197. package/{components → package/components}/editor/icons/sub.svg +0 -0
  198. package/{components → package/components}/editor/icons/super.svg +0 -0
  199. package/{components → package/components}/editor/icons/table.svg +0 -0
  200. package/{components → package/components}/editor/icons/text.svg +0 -0
  201. package/{components → package/components}/editor/icons/time.svg +0 -0
  202. package/{components → package/components}/editor/icons/undo.svg +0 -0
  203. package/{components → package/components}/editor/icons/unindent.svg +0 -0
  204. package/{components → package/components}/editor/icons/unlink.svg +0 -0
  205. package/{components → package/components}/page/Acknowledgements.svelte +13 -11
  206. package/{components → package/components}/page/Acknowledgements.svelte.d.ts +0 -0
  207. package/package/components/page/Authors.svelte +86 -0
  208. package/{components → package/components}/page/Authors.svelte.d.ts +1 -0
  209. package/package/components/page/BookLoader.svelte +59 -0
  210. package/package/components/page/BookLoader.svelte.d.ts +16 -0
  211. package/{components → package/components}/page/BulkReferenceEditor.svelte +8 -8
  212. package/{components → package/components}/page/BulkReferenceEditor.svelte.d.ts +0 -0
  213. package/{components → package/components}/page/Chapter.svelte +69 -30
  214. package/{components → package/components}/page/Chapter.svelte.d.ts +0 -0
  215. package/{components → package/components}/page/ChapterContext.d.ts +0 -0
  216. package/{components → package/components}/page/ChapterContext.js +0 -0
  217. package/{components → package/components}/page/ChapterNumber.svelte +0 -0
  218. package/{components → package/components}/page/ChapterNumber.svelte.d.ts +0 -0
  219. package/{components → package/components}/page/ChapterTitle.svelte +0 -0
  220. package/{components → package/components}/page/ChapterTitle.svelte.d.ts +0 -0
  221. package/{components → package/components}/page/Contexts.d.ts +21 -5
  222. package/package/components/page/Contexts.js +144 -0
  223. package/{components → package/components}/page/DefinitionView.svelte +23 -14
  224. package/{components → package/components}/page/DefinitionView.svelte.d.ts +0 -0
  225. package/{components → package/components}/page/Description.svelte +12 -9
  226. package/{components → package/components}/page/Description.svelte.d.ts +0 -0
  227. package/{components → package/components}/page/Edition.svelte +9 -23
  228. package/{components → package/components}/page/Edition.svelte.d.ts +1 -2
  229. package/package/components/page/EditionLoader.svelte +99 -0
  230. package/package/components/page/EditionLoader.svelte.d.ts +18 -0
  231. package/package/components/page/Editions.svelte +109 -0
  232. package/{components → package/components}/page/Editions.svelte.d.ts +3 -1
  233. package/{components → package/components}/page/Glossary.svelte +13 -6
  234. package/{components → package/components}/page/Glossary.svelte.d.ts +0 -0
  235. package/{components → package/components}/page/Header.svelte +26 -21
  236. package/{components → package/components}/page/Header.svelte.d.ts +2 -0
  237. package/{components → package/components}/page/Index.svelte +14 -8
  238. package/{components → package/components}/page/Index.svelte.d.ts +0 -0
  239. package/{components → package/components}/page/Instructions.svelte +1 -2
  240. package/{components → package/components}/page/Instructions.svelte.d.ts +3 -1
  241. package/package/components/page/License.svelte +45 -0
  242. package/{components → package/components}/page/License.svelte.d.ts +0 -0
  243. package/{components → package/components}/page/Loading.svelte +0 -0
  244. package/{components → package/components}/page/Loading.svelte.d.ts +0 -0
  245. package/{components → package/components}/page/Media.svelte +40 -36
  246. package/{components → package/components}/page/Media.svelte.d.ts +0 -0
  247. package/package/components/page/MediaPreview.svelte +55 -0
  248. package/{components → package/components}/page/MediaPreview.svelte.d.ts +0 -0
  249. package/{components → package/components}/page/Muted.svelte +0 -0
  250. package/{components → package/components}/page/Muted.svelte.d.ts +0 -0
  251. package/{components → package/components}/page/Outline.svelte +69 -96
  252. package/{components → package/components}/page/Outline.svelte.d.ts +0 -0
  253. package/{components → package/components}/page/Page.svelte +4 -4
  254. package/{components → package/components}/page/Page.svelte.d.ts +0 -0
  255. package/{components → package/components}/page/PageHeader.svelte +5 -0
  256. package/{components → package/components}/page/PageHeader.svelte.d.ts +0 -0
  257. package/{components → package/components}/page/PageParagraph.svelte +0 -0
  258. package/{components → package/components}/page/PageParagraph.svelte.d.ts +0 -0
  259. package/{components → package/components}/page/PossibleChapter.svelte +0 -0
  260. package/{components → package/components}/page/PossibleChapter.svelte.d.ts +0 -0
  261. package/{components → package/components}/page/PossibleReference.svelte +2 -1
  262. package/{components → package/components}/page/PossibleReference.svelte.d.ts +1 -0
  263. package/{components → package/components}/page/Print.svelte +0 -0
  264. package/{components → package/components}/page/Print.svelte.d.ts +0 -0
  265. package/package/components/page/Publish.svelte +135 -0
  266. package/package/components/page/Publish.svelte.d.ts +14 -0
  267. package/{components → package/components}/page/Reference.svelte +54 -51
  268. package/{components → package/components}/page/Reference.svelte.d.ts +1 -0
  269. package/{components → package/components}/page/References.svelte +9 -4
  270. package/{components → package/components}/page/References.svelte.d.ts +0 -0
  271. package/{components → package/components}/page/Rows.svelte +0 -0
  272. package/{components → package/components}/page/Rows.svelte.d.ts +0 -0
  273. package/{components → package/components}/page/Search.svelte +27 -10
  274. package/{components → package/components}/page/Search.svelte.d.ts +0 -0
  275. package/package/components/page/Status.svelte +58 -0
  276. package/{components → package/components}/page/Status.svelte.d.ts +0 -0
  277. package/{components → package/components}/page/SubdomainEditor.svelte +5 -3
  278. package/{components → package/components}/page/SubdomainEditor.svelte.d.ts +0 -0
  279. package/{components → package/components}/page/TableOfContents.svelte +83 -37
  280. package/{components → package/components}/page/TableOfContents.svelte.d.ts +0 -0
  281. package/package/components/page/TableOfContentsImage.svelte +27 -0
  282. package/{components → package/components}/page/TableOfContentsImage.svelte.d.ts +1 -0
  283. package/{components → package/components}/page/TableOfContentsRow.svelte +11 -12
  284. package/{components → package/components}/page/TableOfContentsRow.svelte.d.ts +0 -0
  285. package/{components → package/components}/page/ThemeEditor.svelte +12 -10
  286. package/{components → package/components}/page/ThemeEditor.svelte.d.ts +0 -0
  287. package/{components → package/components}/page/ThemeEditorPreview.svelte +0 -0
  288. package/{components → package/components}/page/ThemeEditorPreview.svelte.d.ts +0 -0
  289. package/{components → package/components}/page/ThemeSetEditor.svelte +0 -0
  290. package/{components → package/components}/page/ThemeSetEditor.svelte.d.ts +0 -0
  291. package/{components → package/components}/page/ThemeVariableEditor.svelte +0 -0
  292. package/{components → package/components}/page/ThemeVariableEditor.svelte.d.ts +0 -0
  293. package/{components → package/components}/page/Title.svelte +0 -0
  294. package/{components → package/components}/page/Title.svelte.d.ts +0 -0
  295. package/{components → package/components}/page/Unknown.svelte +5 -2
  296. package/{components → package/components}/page/Unknown.svelte.d.ts +0 -0
  297. package/{components → package/components}/page/margins.d.ts +0 -0
  298. package/{components → package/components}/page/margins.js +0 -0
  299. package/{index.d.ts → package/index.d.ts} +3 -3
  300. package/{index.js → package/index.js} +3 -3
  301. package/package/models/CRUD.d.ts +28 -0
  302. package/package/models/CRUD.js +263 -0
  303. package/{models → package/models}/Firebase.d.ts +0 -0
  304. package/package/models/Firebase.js +36 -0
  305. package/{models → package/models}/book/Book.d.ts +23 -18
  306. package/package/models/book/Book.js +135 -0
  307. package/{models → package/models}/book/BookMedia.d.ts +1 -1
  308. package/{models → package/models}/book/BookMedia.js +9 -10
  309. package/{models → package/models}/book/BookSaveStatus.d.ts +0 -0
  310. package/{models → package/models}/book/BookSaveStatus.js +0 -0
  311. package/{models → package/models}/book/Chapter.d.ts +5 -1
  312. package/{models → package/models}/book/Chapter.js +24 -15
  313. package/{models → package/models}/book/ChapterID.d.ts +0 -0
  314. package/{models → package/models}/book/ChapterID.js +0 -0
  315. package/{models → package/models}/book/Definition.d.ts +0 -0
  316. package/{models → package/models}/book/Definition.js +0 -0
  317. package/{models → package/models}/book/Edition.d.ts +33 -7
  318. package/{models → package/models}/book/Edition.js +104 -32
  319. package/{models → package/models}/book/Reference.d.ts +0 -0
  320. package/{models → package/models}/book/Reference.js +0 -0
  321. package/{models → package/models}/book/Schema.d.ts +20 -15
  322. package/{models → package/models}/book/Schema.js +17 -16
  323. package/{models → package/models}/book/Theme.d.ts +0 -0
  324. package/{models → package/models}/book/Theme.js +7 -6
  325. package/{models → package/models}/book/ThemeColors.d.ts +0 -0
  326. package/{models → package/models}/book/ThemeColors.js +0 -0
  327. package/{models → package/models}/book/Words.d.ts +0 -0
  328. package/{models → package/models}/book/Words.js +0 -0
  329. package/{models → package/models}/chapter/AtomNode.d.ts +0 -0
  330. package/{models → package/models}/chapter/AtomNode.js +0 -0
  331. package/{models → package/models}/chapter/BlockNode.d.ts +0 -0
  332. package/{models → package/models}/chapter/BlockNode.js +0 -0
  333. package/{models → package/models}/chapter/BlocksNode.d.ts +0 -0
  334. package/{models → package/models}/chapter/BlocksNode.js +0 -0
  335. package/{models → package/models}/chapter/BlocksNode.test.d.ts +0 -0
  336. package/{models → package/models}/chapter/BlocksNode.test.js +0 -0
  337. package/{models → package/models}/chapter/Bookkeeping.d.ts +0 -0
  338. package/{models → package/models}/chapter/Bookkeeping.js +0 -0
  339. package/{models → package/models}/chapter/CalloutNode.d.ts +0 -0
  340. package/{models → package/models}/chapter/CalloutNode.js +0 -0
  341. package/{models → package/models}/chapter/Caret.d.ts +0 -0
  342. package/{models → package/models}/chapter/Caret.js +0 -0
  343. package/{models → package/models}/chapter/ChapterNode.d.ts +0 -0
  344. package/{models → package/models}/chapter/ChapterNode.js +0 -0
  345. package/{models → package/models}/chapter/CitationsNode.d.ts +0 -0
  346. package/{models → package/models}/chapter/CitationsNode.js +0 -0
  347. package/{models → package/models}/chapter/CodeNode.d.ts +0 -0
  348. package/{models → package/models}/chapter/CodeNode.js +0 -0
  349. package/{models → package/models}/chapter/CommentNode.d.ts +0 -0
  350. package/{models → package/models}/chapter/CommentNode.js +13 -3
  351. package/{models → package/models}/chapter/DefinitionNode.d.ts +0 -0
  352. package/{models → package/models}/chapter/DefinitionNode.js +0 -0
  353. package/{models → package/models}/chapter/Edit.d.ts +0 -0
  354. package/{models → package/models}/chapter/Edit.js +0 -0
  355. package/{models → package/models}/chapter/EmbedNode.d.ts +1 -0
  356. package/{models → package/models}/chapter/EmbedNode.js +6 -0
  357. package/{models → package/models}/chapter/ErrorNode.d.ts +0 -0
  358. package/{models → package/models}/chapter/ErrorNode.js +0 -0
  359. package/{models → package/models}/chapter/FootnoteNode.d.ts +0 -0
  360. package/{models → package/models}/chapter/FootnoteNode.js +0 -0
  361. package/{models → package/models}/chapter/FormatNode.d.ts +0 -0
  362. package/{models → package/models}/chapter/FormatNode.js +1 -6
  363. package/{models → package/models}/chapter/FormatNode.test.d.ts +0 -0
  364. package/{models → package/models}/chapter/FormatNode.test.js +0 -0
  365. package/{models → package/models}/chapter/InlineCodeNode.d.ts +0 -0
  366. package/{models → package/models}/chapter/InlineCodeNode.js +0 -0
  367. package/{models → package/models}/chapter/LabelNode.d.ts +0 -0
  368. package/{models → package/models}/chapter/LabelNode.js +0 -0
  369. package/{models → package/models}/chapter/LinkNode.d.ts +0 -0
  370. package/{models → package/models}/chapter/LinkNode.js +0 -0
  371. package/{models → package/models}/chapter/ListNode.d.ts +0 -0
  372. package/{models → package/models}/chapter/ListNode.js +0 -0
  373. package/{models → package/models}/chapter/ListNode.test.d.ts +0 -0
  374. package/{models → package/models}/chapter/ListNode.test.js +0 -0
  375. package/{models → package/models}/chapter/MetadataNode.d.ts +0 -0
  376. package/{models → package/models}/chapter/MetadataNode.js +0 -0
  377. package/{models → package/models}/chapter/Node.d.ts +0 -0
  378. package/{models → package/models}/chapter/Node.js +0 -0
  379. package/{models → package/models}/chapter/Node.test.d.ts +0 -0
  380. package/{models → package/models}/chapter/Node.test.js +0 -0
  381. package/{models → package/models}/chapter/ParagraphNode.d.ts +0 -0
  382. package/{models → package/models}/chapter/ParagraphNode.js +0 -0
  383. package/{models → package/models}/chapter/ParagraphNode.test.d.ts +0 -0
  384. package/{models → package/models}/chapter/ParagraphNode.test.js +0 -0
  385. package/{models → package/models}/chapter/Parser.d.ts +2 -2
  386. package/{models → package/models}/chapter/Parser.js +26 -24
  387. package/{models → package/models}/chapter/Parser.test.d.ts +0 -0
  388. package/{models → package/models}/chapter/Parser.test.js +0 -0
  389. package/{models → package/models}/chapter/Position.d.ts +0 -0
  390. package/{models → package/models}/chapter/Position.js +0 -0
  391. package/{models → package/models}/chapter/QuoteNode.d.ts +0 -0
  392. package/{models → package/models}/chapter/QuoteNode.js +0 -0
  393. package/{models → package/models}/chapter/RootNode.d.ts +0 -0
  394. package/{models → package/models}/chapter/RootNode.js +0 -0
  395. package/{models → package/models}/chapter/RuleNode.d.ts +0 -0
  396. package/{models → package/models}/chapter/RuleNode.js +0 -0
  397. package/{models → package/models}/chapter/TableNode.d.ts +0 -0
  398. package/{models → package/models}/chapter/TableNode.js +0 -0
  399. package/{models → package/models}/chapter/TableNode.test.d.ts +0 -0
  400. package/{models → package/models}/chapter/TableNode.test.js +0 -0
  401. package/{models → package/models}/chapter/TextNode.d.ts +0 -0
  402. package/{models → package/models}/chapter/TextNode.js +0 -0
  403. package/{models → package/models}/chapter/TextNode.test.d.ts +0 -0
  404. package/{models → package/models}/chapter/TextNode.test.js +0 -0
  405. package/package/util/dark.d.ts +2 -0
  406. package/package/util/dark.js +16 -0
  407. package/{util → package/util}/getSubdomain.d.ts +0 -0
  408. package/{util → package/util}/getSubdomain.js +0 -0
  409. package/{util → package/util}/isMobile.d.ts +0 -0
  410. package/{util → package/util}/isMobile.js +0 -0
  411. package/{util → package/util}/mineReference.d.ts +0 -0
  412. package/{util → package/util}/mineReference.js +0 -0
  413. package/{util → package/util}/scrollToEyeLevel.d.ts +0 -0
  414. package/{util → package/util}/scrollToEyeLevel.js +0 -0
  415. package/package.json +131 -267
  416. package/components/External.svelte +0 -4
  417. package/components/External.svelte.d.ts +0 -18
  418. package/components/app/Link.svelte +0 -24
  419. package/components/app/Writing.svelte.d.ts +0 -27
  420. package/components/editor/ConfirmButton.svelte +0 -49
  421. package/components/page/Authors.svelte +0 -82
  422. package/components/page/Contexts.js +0 -51
  423. package/components/page/Editions.svelte +0 -158
  424. package/components/page/License.svelte +0 -37
  425. package/components/page/MediaPreview.svelte +0 -29
  426. package/components/page/Status.svelte +0 -57
  427. package/components/page/TableOfContentsImage.svelte +0 -15
  428. package/models/CRUD.d.ts +0 -17
  429. package/models/CRUD.js +0 -207
  430. package/models/Firebase.js +0 -32
  431. package/models/book/Book.js +0 -142
  432. package/models/loadEdition.d.ts +0 -5
  433. package/models/loadEdition.js +0 -20
@@ -6,12 +6,13 @@ import ChapterIDs from '../../models/book/ChapterID';
6
6
  import Format from '../chapter/Format.svelte';
7
7
  import MediaPreview from './MediaPreview.svelte';
8
8
  import { onMount } from 'svelte';
9
- import { getBook, getEdition, isEditable } from './Contexts';
10
- import Button from '../app/Button.svelte';
9
+ import { getBase, getBook, getEdition, isBookEditable, isEditionEditable, } from './Contexts';
11
10
  import PageHeader from './PageHeader.svelte';
11
+ import ConfirmButton from '../editor/ConfirmButton.svelte';
12
12
  let book = getBook();
13
13
  let edition = getEdition();
14
- let editable = isEditable();
14
+ let editable = isBookEditable();
15
+ let base = getBase();
15
16
  let images = [];
16
17
  $: embeds = $edition?.getEmbeds() ?? [];
17
18
  $: media = $book?.getMedia();
@@ -29,7 +30,9 @@ $: unused = images?.filter((image) => embeds.find((embed) => embed.getURL() ===
29
30
  {#if $edition}
30
31
  <Page title={`${$edition.getTitle()} - Media`}>
31
32
  <Header
33
+ editable={isEditionEditable()}
32
34
  label="Media title"
35
+ id="media"
33
36
  getImage={() => $edition?.getImage(ChapterIDs.MediaID) ?? null}
34
37
  setImage={(embed) =>
35
38
  $edition
@@ -44,56 +47,57 @@ $: unused = images?.filter((image) => embeds.find((embed) => embed.getURL() ===
44
47
  next={$edition.getNextChapterID(ChapterIDs.MediaID)}
45
48
  />
46
49
  </Header>
47
- <Instructions>
48
- This page shows readers an index of the media in the book. Writers
49
- can use this page to manage any images that are linked or uploaded
50
- for this book. Note: images are shared between all editions, so if
51
- you delete one not used in this edition, it might be used in others.
50
+ <Instructions {editable}>
51
+ These are the images in the book, in order of appearance. You can
52
+ use this page to manage any images that are linked or uploaded for
53
+ this book. Note: images are shared between all editions, so if you
54
+ delete one not used in this edition, it might be used in others.
52
55
  </Instructions>
53
56
 
54
57
  {#if embeds.length === 0}
55
58
  <p>No images or videos appear in the book.</p>
56
59
  {:else}
57
- <p>These are the images and videos in the book:</p>
60
+ <p>These are the images in the book:</p>
58
61
  {/if}
59
62
  {#each embeds as embed}
60
- <MediaPreview
61
- url={embed.getSmallURL()}
62
- alt={embed.getDescription() === ''
63
- ? 'no description, image not used'
64
- : embed.getDescription()}
65
- >
66
- <span
67
- >{#if editable}{images &&
63
+ {#if !embed.isVideo()}
64
+ <MediaPreview
65
+ url={embed.isLocal()
66
+ ? `${$base}/${embed.getSmallURL()}`
67
+ : embed.getSmallURL()}
68
+ alt={embed.getDescription() === ''
69
+ ? 'no description'
70
+ : embed.getDescription()}
71
+ >
72
+ {#if editable}{images &&
68
73
  images.find((i) => i.url === embed.getURL()) ===
69
74
  undefined
70
- ? 'linked'
75
+ ? embed.getURL().length === 0
76
+ ? 'no url'
77
+ : 'linked'
71
78
  : 'uploaded'}{embed.getCredit().isEmptyText()
72
79
  ? ''
73
- : ' • '}{/if}<Format
74
- node={embed.getCredit()}
75
- /></span
76
- >
77
- </MediaPreview>
80
+ : ' • '}{/if}<Format node={embed.getCredit()} />
81
+ </MediaPreview>
82
+ {/if}
78
83
  {/each}
79
84
  {#if editable && unused !== undefined && unused.length > 0}
80
85
  <PageHeader id="unused">Unused</PageHeader>
81
- <Instructions>
82
- These images are uploaded to this book, but not used. Delete
83
- them if you don't need them. Note, however, that these images
84
- may be used in other editions of this book.
86
+ <Instructions {editable}>
87
+ These images are uploaded for this book, but not used in this
88
+ edition. Delete them if you don't need them. Warning: images may
89
+ be used in other editions of this book.
85
90
  </Instructions>
86
91
  {#each unused as image}
87
92
  <MediaPreview url={image.url} alt={''}>
88
- <span
89
- >uploaded <Button
90
- tooltip="delete this unused image"
91
- command={() =>
92
- media
93
- ?.remove(image)
94
- .then((images) => updateImages(images))}
95
- >- image</Button
96
- ></span
93
+ <ConfirmButton
94
+ tooltip="delete unused image"
95
+ confirm="delete image?"
96
+ command={() =>
97
+ media
98
+ ?.remove(image)
99
+ .then((images) => updateImages(images))}
100
+ >⨉ image</ConfirmButton
97
101
  >
98
102
  </MediaPreview>
99
103
  {/each}
@@ -0,0 +1,55 @@
1
+ <script>export let url;
2
+ export let alt;
3
+ let loaded;
4
+ let urlChecked;
5
+ $: {
6
+ if (urlChecked !== url) {
7
+ urlChecked = url;
8
+ let image = new Image();
9
+ image.src = url;
10
+ loaded = image.complete;
11
+ if (!loaded) {
12
+ image.onload = () => (loaded = true);
13
+ image.onerror = () => (loaded = null);
14
+ }
15
+ }
16
+ }
17
+ </script>
18
+
19
+ <figure class={'media-preview'}>
20
+ {#if loaded}
21
+ <img src={url.startsWith('http') ? url : `${url}`} {alt} />
22
+ {:else if loaded === null}
23
+ <div class="missing">missing image</div>
24
+ {/if}
25
+ <figcaption class="credit"><slot /></figcaption>
26
+ </figure>
27
+
28
+ <style>
29
+ .media-preview {
30
+ display: inline-block;
31
+ width: 12rem;
32
+ margin: 1em;
33
+ vertical-align: bottom;
34
+ }
35
+
36
+ .media-preview img {
37
+ width: 100%;
38
+ height: auto;
39
+ }
40
+
41
+ .missing {
42
+ height: 8em;
43
+ border: 1px solid var(--bookish-border-color-light);
44
+ padding: var(--bookish-inline-padding);
45
+ font-family: var(--bookish-paragraph-font-family);
46
+ font-size: var(--bookish-small-font-size);
47
+ }
48
+
49
+ .credit {
50
+ display: block;
51
+ text-align: right;
52
+ font-style: italic;
53
+ font-size: var(--bookish-small-font-size);
54
+ }
55
+ </style>
@@ -2,6 +2,7 @@
2
2
  import { onMount } from 'svelte';
3
3
  import Link from '../Link.svelte';
4
4
  import { getBase, getDarkMode } from './Contexts';
5
+ import DarkToggle from '../controls/DarkToggle.svelte';
5
6
  export let previous;
6
7
  export let next;
7
8
  export let collapse = false;
@@ -77,7 +78,7 @@ function highlight() {
77
78
  const threshold = getHighlightThreshold();
78
79
  // Find the header that we're past so we can update the outline.
79
80
  let indexOfNearestHeaderAbove = -1; // -1 represents the title
80
- Array.from(document.getElementsByClassName('bookish-header')).forEach((header, index) => {
81
+ Array.from(document.getElementsByClassName('page-header')).forEach((header, index) => {
81
82
  // Is this a header we care about?
82
83
  if (header.tagName === 'H1' ||
83
84
  header.tagName === 'H2' ||
@@ -112,8 +113,6 @@ onMount(() => {
112
113
  let previousLabel = '\u25C0\uFE0E';
113
114
  let nextLabel = '\u25B6\uFE0E';
114
115
  let expandLabel = '\u2630';
115
- let lightLabel = '\u263C';
116
- let darkLabel = '\u263E';
117
116
  </script>
118
117
 
119
118
  <nav
@@ -121,38 +120,44 @@ let darkLabel = '\u263E';
121
120
  class={'outline ' +
122
121
  (!expanded || collapse ? 'outline-collapsed' : 'outline-expanded')}
123
122
  >
124
- <!-- Visual cue of expandability, only visible in footer mode. -->
125
- <div
126
- class={'outline-collapse-cue' +
127
- (headers.length === 0 ? ' outline-collapse-cue-disabled' : '')}
128
- role="button"
129
- aria-label={expanded
130
- ? 'Collapse navigation menu'
131
- : 'Expand navigation menu'}
132
- tabIndex="0"
133
- on:click={headers.length > 0 ? toggleExpanded : undefined}
134
- on:keydown={(event) => {
135
- if (event.key === 'Enter' || event.key === ' ') toggleExpanded();
136
- }}
137
- >
138
- {expandLabel}
139
- </div>
140
- <div class="outline-headers">
141
- <!-- Book navigation links -->
123
+ <div class="outline-top">
124
+ <!-- Visual cue of expandability, only visible in footer mode. -->
125
+ <div
126
+ class={'outline-toggle' +
127
+ (headers.length === 0 ? ' outline-toggle-disabled' : '')}
128
+ role="button"
129
+ aria-label={expanded
130
+ ? 'Collapse navigation menu'
131
+ : 'Expand navigation menu'}
132
+ tabIndex="0"
133
+ on:click={headers.length > 0 ? toggleExpanded : undefined}
134
+ on:keydown={(event) => {
135
+ if (event.key === 'Enter' || event.key === ' ')
136
+ toggleExpanded();
137
+ }}
138
+ >
139
+ {expandLabel}
140
+ </div>
142
141
  <div class="outline-header-nav">
143
- {#if previous !== null}<Link to={$base + previous}
142
+ {#if previous !== null}<Link to="{$base}/{previous}"
144
143
  >{previousLabel}</Link
145
144
  >{:else}<span class="outline-header-nav-disabled"
146
145
  >{previousLabel}</span
147
146
  >{/if}
148
147
  &nbsp;&middot;&nbsp;
149
- <Link to={$base}>Home</Link>
148
+ <Link to="{$base}/">Home</Link>
150
149
  &nbsp;&middot;&nbsp;
151
- {#if next !== null}<Link to={$base + next}>{nextLabel}</Link
150
+ {#if next !== null}<Link to="{$base}/{next}">{nextLabel}</Link
152
151
  >{:else}<span class="outline-header-nav-disabled"
153
152
  >{nextLabel}</span
154
153
  >{/if}
155
154
  </div>
155
+ <!-- Dark mode toggle -->
156
+ <div class="outline-dark-toggle"
157
+ ><DarkToggle dark={$dark} toggle={toggleReadingMode} /></div
158
+ >
159
+ </div>
160
+ <div class="outline-headers">
156
161
  <!-- Scan through the headers and add a properly formatted link for each. -->
157
162
  {#each headers as header, index}
158
163
  <!-- Assumes that all headers have an H1, H2, etc. tag. -->
@@ -173,24 +178,6 @@ let darkLabel = '\u263E';
173
178
  {/if}
174
179
  {/each}
175
180
  </div>
176
- <!-- Dark mode toggle -->
177
- <div
178
- class="outline-reading-mode"
179
- role="button"
180
- aria-label={$dark === true
181
- ? 'Switch to light mode'
182
- : 'Switch to dark mode'}
183
- tabIndex="0"
184
- on:click={toggleReadingMode}
185
- on:keydown={(event) => {
186
- if (event.key === 'Enter' || event.key === ' ') {
187
- toggleReadingMode();
188
- event.stopPropagation();
189
- }
190
- }}
191
- >
192
- {$dark ? darkLabel : lightLabel}
193
- </div>
194
181
  </nav>
195
182
 
196
183
  <style>
@@ -206,18 +193,10 @@ let darkLabel = '\u263E';
206
193
  );
207
194
  }
208
195
 
209
- .outline-header-nav {
210
- display: inline-block;
211
- width: 100%;
212
- padding-bottom: var(--outline-padding);
213
- }
214
-
215
196
  .outline-header {
216
197
  display: block;
217
198
  line-height: var(--bookish-paragraph-line-height-tight);
218
199
  text-indent: 0;
219
- padding-left: 1rem;
220
- padding-right: 1rem;
221
200
  margin-bottom: 0.75rem;
222
201
  }
223
202
 
@@ -237,12 +216,12 @@ let darkLabel = '\u263E';
237
216
 
238
217
  :global(a .outline-header),
239
218
  :global(.outline-header-nav a) {
240
- color: var(--bookish-muted-color);
219
+ color: var(--bookish-muted-color) !important;
241
220
  }
242
221
 
243
222
  :global(a .outline-header-active),
244
223
  :global(a:hover .outline-header) {
245
- color: var(--bookish-paragraph-color);
224
+ color: var(--bookish-paragraph-color) !important;
246
225
  }
247
226
 
248
227
  .outline-header-nav-disabled {
@@ -250,7 +229,8 @@ let darkLabel = '\u263E';
250
229
  }
251
230
 
252
231
  :global(.outline a:hover) {
253
- text-decoration: none;
232
+ text-decoration: none !important;
233
+ color: var(--bookish-paragraph-color) !important;
254
234
  }
255
235
 
256
236
  /* Only apply this on devices with hover abilities. */
@@ -260,18 +240,18 @@ let darkLabel = '\u263E';
260
240
  }
261
241
  }
262
242
 
263
- :global(a .outline-header-active) {
264
- color: var(--bookish-paragraph-color);
265
- }
266
-
267
- .outline-reading-mode {
268
- transition: transform 0.2s ease-in;
243
+ .outline-top {
244
+ display: flex;
245
+ flex-direction: row;
246
+ flex-wrap: nowrap;
247
+ align-items: center;
248
+ width: 100%;
249
+ margin-bottom: 0.75rem;
269
250
  }
270
251
 
271
- .outline-reading-mode:hover {
272
- cursor: pointer;
273
- transform: scale(1.25, 1.25);
274
- color: var(--bookish-paragraph-color);
252
+ /* Make a little centered box to store the outline to preserve its left aligned structure, while making it easier to click. */
253
+ .outline-headers {
254
+ margin: auto;
275
255
  }
276
256
 
277
257
  /* Mobile */
@@ -281,7 +261,6 @@ let darkLabel = '\u263E';
281
261
  top: 100%; /* Put it all the way off screen on the bottom, then let JS translate */
282
262
  left: 0;
283
263
  right: 0;
284
- width: 100%;
285
264
  z-index: 2; /* Put it above content when it's a sheet in the footer */
286
265
  border-top: 1px solid var(--bookish-border-color-light);
287
266
  text-align: left;
@@ -289,58 +268,38 @@ let darkLabel = '\u263E';
289
268
  background-color: var(--bookish-background-color);
290
269
  box-shadow: 0px -1px 2px rgba(0, 0, 0, 0.25);
291
270
  backdrop-filter: blur(10px);
292
- -webkit-backdrop-filter: blur(10px);
293
271
  /* Cap height at window size. If the content is too tall, scroll it. */
294
272
  max-height: 100%;
295
273
  overflow-y: scroll;
274
+ padding: 0.5em;
296
275
  }
297
276
 
298
- /* Make a little centered box to store the outline to preserve its left aligned structure, while making it easier to click. */
299
- .outline-headers {
300
- width: 20em;
301
- margin: auto;
302
- }
303
-
304
- .outline-header-nav {
305
- text-align: center;
306
- padding-top: 0.5em; /* Add some spacing when in the footer */
307
- padding-bottom: 0.5em;
308
- text-indent: 0 !important; /* Override header default */
309
- font-size: 1.25rem !important;
310
- }
311
-
312
- .outline-reading-mode {
313
- position: absolute;
314
- top: 0.5em;
315
- left: 0;
277
+ .outline-dark-toggle {
316
278
  font-size: 1em;
317
279
  display: inline-block;
318
- padding-left: 1em;
319
- padding-right: 1em;
320
280
  }
321
281
 
322
- .outline-collapse-cue {
323
- position: absolute;
324
- top: 0.5em;
325
- right: 0;
282
+ .outline-top {
283
+ flex-direction: row-reverse;
284
+ }
285
+
286
+ .outline-toggle {
326
287
  font-size: 1em;
327
288
  display: inline-block;
328
- padding-left: 1em;
329
- padding-right: 1em;
330
289
  transition: transform 0.2s ease-in;
331
290
  }
332
291
 
333
- .outline-collapse-cue:hover {
292
+ .outline-toggle:hover {
334
293
  cursor: pointer;
335
294
  transform: scale(1.25, 1.25);
336
295
  color: var(--bookish-paragraph-color);
337
296
  }
338
297
 
339
- .outline-collapse-cue-disabled {
298
+ .outline-toggle-disabled {
340
299
  display: none;
341
300
  }
342
301
 
343
- .outline-expanded .outline-collapse-cue {
302
+ .outline-expanded .outline-toggle {
344
303
  transform: rotate(90deg);
345
304
  }
346
305
 
@@ -351,6 +310,15 @@ let darkLabel = '\u263E';
351
310
  .outline.outline-collapsed {
352
311
  transform: translateY(-3rem);
353
312
  }
313
+
314
+ .outline-headers {
315
+ width: 20em;
316
+ }
317
+
318
+ /* Center on mobile */
319
+ .outline-header-nav {
320
+ margin: auto;
321
+ }
354
322
  }
355
323
 
356
324
  /* Desktop */
@@ -380,14 +348,19 @@ let darkLabel = '\u263E';
380
348
  margin-left: var(--outline-offset);
381
349
  }
382
350
 
383
- .outline-collapse-cue {
351
+ .outline-toggle {
384
352
  display: none;
385
353
  }
386
354
 
387
- .outline-reading-mode {
355
+ .outline-dark-toggle {
388
356
  position: absolute;
389
357
  top: calc(var(--outline-padding));
390
358
  right: calc(var(--outline-padding));
391
359
  }
360
+
361
+ /* Left align on desktop, since no collapse cue. */
362
+ .outline-header-nav {
363
+ margin-right: auto;
364
+ }
392
365
  }
393
366
  </style>
@@ -45,12 +45,12 @@ function imagesAreLoaded() {
45
45
  <meta name="description" content={title} />
46
46
  </svelte:head>
47
47
 
48
+ <section class={'bookish-page' + (loaded ? ' loaded' : '')}>
49
+ <slot />
50
+ </section>
51
+ <!-- Overlay loading feedback if loading, but still render the page. -->
48
52
  {#if loaded === false}
49
53
  <Loading />
50
- {:else}
51
- <section class={'bookish-page' + (loaded ? ' loaded' : '')}>
52
- <slot />
53
- </section>
54
54
  {/if}
55
55
 
56
56
  <style>
@@ -10,5 +10,10 @@
10
10
  font-weight: var(--bookish-header-font-weight);
11
11
  line-height: var(--bookish-header-line-height);
12
12
  font-size: var(--bookish-header-1-font-size);
13
+
14
+ display: flex;
15
+ flex-direction: row;
16
+ align-items: center;
17
+ gap: var(--bookish-inline-padding);
13
18
  }
14
19
  </style>
@@ -2,10 +2,11 @@
2
2
  import Format from '../chapter/Format.svelte';
3
3
  import Reference from './Reference.svelte';
4
4
  export let node;
5
+ export let edit;
5
6
  </script>
6
7
 
7
8
  {#if node instanceof FormatNode}
8
9
  <Format {node} />
9
10
  {:else}
10
- <Reference reference={node} />
11
+ <Reference reference={node} {edit} />
11
12
  {/if}
@@ -4,6 +4,7 @@ import type Ref from '../../models/book/Reference';
4
4
  declare const __propDef: {
5
5
  props: {
6
6
  node: FormatNode | Ref;
7
+ edit: boolean;
7
8
  };
8
9
  events: {
9
10
  [evt: string]: CustomEvent<any>;