bookish-press 0.4.231 → 0.5.0

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 +13 -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 -1
  300. package/{index.js → package/index.js} +3 -1
  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 +955 -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
@@ -9,13 +9,13 @@ $: credit = node.getCredit();
9
9
 
10
10
  <Positioned position={node.getPosition()}>
11
11
  <figure>
12
- <blockquote class={'bookish-blockquote'} data-nodeid={node.nodeID}>
12
+ <blockquote class="quote" data-nodeid={node.nodeID}>
13
13
  {#each node.getBlocks() as element (element.nodeID)}
14
14
  <Block node={element} />
15
15
  {/each}
16
16
  </blockquote>
17
17
  {#if credit}
18
- <figcaption class="bookish-blockquote-caption"
18
+ <figcaption class="caption {credit.isEmptyText() ? 'empty' : ''}"
19
19
  ><Format node={credit} placeholder="credit" /></figcaption
20
20
  >
21
21
  {/if}
@@ -23,7 +23,15 @@ $: credit = node.getCredit();
23
23
  </Positioned>
24
24
 
25
25
  <style>
26
- .bookish-blockquote {
26
+ figure {
27
+ margin: 0;
28
+ margin-block-start: 0;
29
+ margin-block-end: 0;
30
+ margin-inline-start: 0;
31
+ margin-inline-end: 0;
32
+ }
33
+
34
+ .quote {
27
35
  clear: both;
28
36
  border: none;
29
37
  font-family: var(--bookish-header-font-family);
@@ -37,12 +45,12 @@ $: credit = node.getCredit();
37
45
  position: relative;
38
46
  }
39
47
 
40
- .bookish-blockquote > :global(p) {
48
+ .quote > :global(p) {
41
49
  margin: 0;
42
50
  padding: 0;
43
51
  }
44
52
 
45
- .bookish-blockquote-caption {
53
+ .caption {
46
54
  margin-top: 0.5em;
47
55
  text-align: right;
48
56
  font-family: var(--bookish-header-font-family);
@@ -50,19 +58,21 @@ $: credit = node.getCredit();
50
58
  color: var(--bookish-muted-color);
51
59
  }
52
60
 
53
- .bookish-blockquote:before {
61
+ .quote:before {
54
62
  content: '\201C';
55
63
  position: relative;
56
- top: 80pt;
57
- left: -40pt;
58
- font-family: 'Modum Extra';
64
+ top: 0;
65
+ left: -0.5em;
66
+ height: 0.3em;
67
+ font-family: var(--bookish-header-font-family);
59
68
  font-size: 120pt;
60
69
  font-weight: bold;
61
70
  color: var(--bookish-highlight-color);
62
71
  z-index: -1;
72
+ display: block;
63
73
  }
64
74
 
65
- .bookish-blockquote-caption:before {
75
+ .caption:not(.empty):before {
66
76
  content: '--';
67
77
  margin-right: 0.25em;
68
78
  }
@@ -3,9 +3,9 @@
3
3
  <script>import Figure from './Figure.svelte';
4
4
  import Format from './Format.svelte';
5
5
  import Rows from '../page/Rows.svelte';
6
- import { isEditable } from '../page/Contexts';
6
+ import { isChapterEditable } from '../page/Contexts';
7
7
  export let node;
8
- let editable = isEditable();
8
+ let editable = isChapterEditable();
9
9
  $: rows = node.getRows();
10
10
  </script>
11
11
 
@@ -1,11 +1,11 @@
1
1
  <svelte:options immutable={true} />
2
2
 
3
- <script>import { getChapter, isEditable } from '../page/Contexts';
3
+ <script>import { getChapter, isChapterEditable } from '../page/Contexts';
4
4
  export let node;
5
5
  export let placeholder = undefined;
6
6
  $: text = node.getText();
7
7
  let context = getChapter();
8
- let editable = isEditable();
8
+ let editable = isChapterEditable();
9
9
  function replaceMultipleSpacesWithNonBreakingSpaces(original) {
10
10
  let revisedText = '';
11
11
  for (let i = 0; i < original.length; i++) {
@@ -0,0 +1,38 @@
1
+ <script>export let dark;
2
+ export let toggle;
3
+ const lightLabel = '\u263C';
4
+ const darkLabel = '\u263E';
5
+ function change() {
6
+ dark = !dark;
7
+ toggle();
8
+ }
9
+ </script>
10
+
11
+ <!-- Dark mode toggle -->
12
+ <div
13
+ class="dark-toggle"
14
+ role="button"
15
+ aria-label={dark === true ? 'Switch to light mode' : 'Switch to dark mode'}
16
+ tabIndex="0"
17
+ on:click={change}
18
+ on:keydown={(event) => {
19
+ if (event.key === 'Enter' || event.key === ' ') {
20
+ change();
21
+ event.stopPropagation();
22
+ }
23
+ }}
24
+ >
25
+ {dark ? darkLabel : lightLabel}
26
+ </div>
27
+
28
+ <style>
29
+ .dark-toggle {
30
+ transition: transform 0.2s ease-in;
31
+ user-select: none;
32
+ }
33
+ .dark-toggle:hover {
34
+ cursor: pointer;
35
+ transform: scale(1.25, 1.25);
36
+ color: var(--bookish-paragraph-color);
37
+ }
38
+ </style>
@@ -0,0 +1,17 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ dark: Boolean;
5
+ toggle: () => void;
6
+ };
7
+ events: {
8
+ [evt: string]: CustomEvent<any>;
9
+ };
10
+ slots: {};
11
+ };
12
+ export type DarkToggleProps = typeof __propDef.props;
13
+ export type DarkToggleEvents = typeof __propDef.events;
14
+ export type DarkToggleSlots = typeof __propDef.slots;
15
+ export default class DarkToggle extends SvelteComponentTyped<DarkToggleProps, DarkToggleEvents, DarkToggleSlots> {
16
+ }
17
+ export {};
@@ -1,6 +1,5 @@
1
1
  <script>import BookishNode from '../../models/chapter/Node';
2
2
  import ChapterNode from '../../models/chapter/ChapterNode';
3
- import Parser from '../../models/chapter/Parser';
4
3
  import LinkNode from '../../models/chapter/LinkNode';
5
4
  import ParagraphNode from '../../models/chapter/ParagraphNode';
6
5
  import TextNode from '../../models/chapter/TextNode';
@@ -16,17 +15,20 @@ import EmbedNode from '../../models/chapter/EmbedNode';
16
15
  import ErrorNode from '../../models/chapter/ErrorNode';
17
16
  import { caretRangeToIndexRange, indexRangeToCaretRange, } from '../../models/chapter/Caret';
18
17
  import commands from './Commands';
19
- import { getEdition } from '../page/Contexts';
20
18
  import { afterUpdate, onMount, setContext } from 'svelte';
21
- import { getCaret } from '../page/Contexts';
19
+ import { getCaret, getRoot } from '../page/Contexts';
22
20
  import CaretView from './CaretView.svelte';
21
+ import { writable } from 'svelte/store';
23
22
  const IDLE_TIME = 500;
24
- export let ast;
23
+ export let text;
24
+ export let parser;
25
25
  export let save;
26
26
  export let chapter;
27
27
  export let autofocus = false;
28
28
  export let component;
29
29
  export let placeholder;
30
+ export let leasee;
31
+ export let lease;
30
32
  let element = null;
31
33
  let caretRange = undefined;
32
34
  let caretCoordinate = undefined;
@@ -36,10 +38,19 @@ let editorFocused = false;
36
38
  let undoStack = [];
37
39
  let undoPosition = -1;
38
40
  let clipboard = undefined;
39
- let editedNode = ast;
40
41
  let ignoredInput = false;
41
- let edition = getEdition();
42
42
  let activeEditor = getCaret();
43
+ let editedNode;
44
+ $: {
45
+ // Note: when the text changes externally, the caret will be lost. We either have
46
+ // to implement fancy operational transform revision control for collaborative editing
47
+ // or a basic chapter locking strategy to avoid data loss. I went with locking for maintenance simplicity,
48
+ // but it would be nice to implement operational transform in the future.
49
+ if (editedNode === undefined || editedNode.toBookdown() !== text) {
50
+ editedNode = parser(text);
51
+ }
52
+ }
53
+ $: locked = typeof leasee === 'string';
43
54
  onMount(() => {
44
55
  const caret = editedNode.getFirstCaret();
45
56
  if (caret)
@@ -149,17 +160,24 @@ afterUpdate(() => {
149
160
  ? parseInt(lineHeightString.substring(0, lineHeightString.length - 2))
150
161
  : undefined;
151
162
  // Is the caret in relatively positioned ancestors above the editor? Undo their offsets.
152
- let caretAncestor = startNode.closest('.bookish-editor');
163
+ let caretAncestor = startNode.parentElement;
153
164
  let relativeX = 0;
154
165
  let relativeY = 0;
166
+ let fixedX = undefined;
167
+ let fixedY = undefined;
155
168
  while (caretAncestor != null) {
156
- if (window.getComputedStyle(caretAncestor)
157
- .position === 'relative') {
169
+ const style = window.getComputedStyle(caretAncestor);
170
+ if (style.position === 'relative') {
158
171
  relativeX += caretAncestor.offsetLeft;
159
172
  relativeY += caretAncestor.offsetTop;
160
173
  }
174
+ else if (style.position === 'fixed') {
175
+ fixedX = caretAncestor.offsetLeft;
176
+ fixedY = caretAncestor.offsetTop;
177
+ }
161
178
  caretAncestor = caretAncestor.parentElement;
162
179
  }
180
+ // Is the caret in a fixed position marginal? Get it's position.
163
181
  // If we're after a new line, calculate the correct position, since selections don't actually render to the next line.
164
182
  const left = afterNewLine
165
183
  ? textRect.left
@@ -357,17 +375,11 @@ function undo() {
357
375
  // Grab the next state
358
376
  let undoState = undoStack[undoPosition + 1];
359
377
  // Restore the content of the chapter.
360
- let node = ast instanceof ChapterNode
361
- ? Parser.parseChapter($edition, undoState.bookdown)
362
- : ast instanceof FormatNode
363
- ? Parser.parseFormat($edition, undoState.bookdown)
364
- : ast instanceof EmbedNode
365
- ? Parser.parseEmbed($edition, undoState.bookdown)
366
- : undefined;
378
+ let node = parser(undoState.bookdown);
367
379
  if (node === undefined || node instanceof ErrorNode)
368
380
  return;
369
381
  // Restore the view
370
- editedNode = node;
382
+ updateRoot(node);
371
383
  // Save the undo.
372
384
  save(node);
373
385
  // Move the undo state down a position.
@@ -383,16 +395,10 @@ function redo() {
383
395
  // Grab the next state
384
396
  let undoState = undoStack[undoPosition - 1];
385
397
  // Restore the content of the chapter.
386
- let node = ast instanceof ChapterNode
387
- ? Parser.parseChapter($edition, undoState.bookdown)
388
- : ast instanceof FormatNode
389
- ? Parser.parseFormat($edition, undoState.bookdown)
390
- : ast instanceof EmbedNode
391
- ? Parser.parseEmbed($edition, undoState.bookdown)
392
- : undefined;
398
+ let node = parser(undoState.bookdown);
393
399
  if (node === undefined)
394
400
  return;
395
- editedNode = node;
401
+ updateRoot(node);
396
402
  // Move the undo state down a position.
397
403
  if (undoPosition > 0)
398
404
  undoPosition = undoPosition - 1;
@@ -588,6 +594,9 @@ function executeCommand(command, key) {
588
594
  return false;
589
595
  }
590
596
  async function saveEdit(newRoot, newRange, command) {
597
+ // Don't save edits if locked.
598
+ if (locked)
599
+ return;
591
600
  // Call the save callback.
592
601
  save(newRoot);
593
602
  // Initialize a new history if we don't have one.
@@ -605,7 +614,7 @@ async function saveEdit(newRoot, newRange, command) {
605
614
  ];
606
615
  }
607
616
  // Change the chapter's AST.
608
- editedNode = newRoot;
617
+ updateRoot(newRoot);
609
618
  // Set the new undo stack, pre-pending the new command to the front.
610
619
  const newTextRange = caretRangeToIndexRange(newRoot, newRange);
611
620
  if (newTextRange !== undefined)
@@ -626,6 +635,10 @@ async function saveEdit(newRoot, newRange, command) {
626
635
  // Update the caret
627
636
  claimActiveEditor();
628
637
  }
638
+ function updateRoot(newRoot) {
639
+ editedNode = newRoot;
640
+ text = editedNode.toBookdown();
641
+ }
629
642
  function editNode(previous, edited) {
630
643
  if (caretRange) {
631
644
  const newRoot = editedNode.withNodeReplaced(previous, edited);
@@ -663,8 +676,13 @@ function isFocused() {
663
676
  (element !== null && element?.contains(document.activeElement)) ||
664
677
  toolbarIsFocused());
665
678
  }
666
- function updateFocus() {
679
+ function handleFocus() {
680
+ editorFocused = isFocused();
681
+ lease(true);
682
+ }
683
+ function handleBlur() {
667
684
  editorFocused = isFocused();
685
+ lease(false);
668
686
  }
669
687
  function handleCopy(node) {
670
688
  // Set the editor's clipboard.
@@ -793,15 +811,17 @@ setContext('claimeditor', claimActiveEditor);
793
811
 
794
812
  <div
795
813
  class={`bookish-editor ${inAtom ? 'bookish-editor-atom-focused' : ''}`}
814
+ class:locked
815
+ aria-disabled={locked}
796
816
  bind:this={element}
797
817
  on:keydown={handleKey}
798
818
  on:keypress={handlePress}
799
819
  on:mousedown|stopPropagation={handleMouseDown}
800
- on:focus={updateFocus}
801
- on:blur={updateFocus}
820
+ on:focus={handleFocus}
821
+ on:blur={handleBlur}
802
822
  tabIndex="0"
803
823
  >
804
- <!-- The chapter content -->
824
+ <!-- A view of the root -->
805
825
  <svelte:component this={component} node={editedNode} {placeholder} />
806
826
  <!-- The caret. We render our own since this view isn't contentEditable and we can't show a caret.
807
827
  Customize the rendering based on the formatting applied to the text node. -->
@@ -815,14 +835,19 @@ setContext('claimeditor', claimActiveEditor);
815
835
  linked={isLink}
816
836
  bold={isBold}
817
837
  italic={isItalic}
818
- disabled={!editorFocused}
838
+ disabled={!editorFocused || locked}
839
+ {locked}
819
840
  />
820
841
  {/if}
821
842
  </div>
822
843
 
823
844
  <style>
824
845
  .bookish-editor {
825
- min-height: 2em;
846
+ min-height: 1em;
847
+ }
848
+
849
+ .locked :global(.bookish-text) {
850
+ color: var(--app-muted-color);
826
851
  }
827
852
 
828
853
  .bookish-editor:focus {
@@ -2,12 +2,15 @@ import { SvelteComponentTyped } from "svelte";
2
2
  import type RootNode from '../../models/chapter/RootNode';
3
3
  declare const __propDef: {
4
4
  props: {
5
- ast: RootNode;
5
+ text: string;
6
+ parser: (text: string) => RootNode;
6
7
  save: (node: RootNode) => Promise<void> | void;
7
8
  chapter: boolean;
8
9
  autofocus?: boolean | undefined;
9
10
  component: ConstructorOfATypedSvelteComponent;
10
11
  placeholder: string;
12
+ leasee: string | boolean;
13
+ lease: (lock: boolean) => Promise<boolean> | boolean;
11
14
  };
12
15
  events: {
13
16
  [evt: string]: CustomEvent<any>;
@@ -8,6 +8,7 @@ export let bold;
8
8
  export let disabled;
9
9
  export let ignored;
10
10
  export let blink;
11
+ export let locked;
11
12
  let element;
12
13
  let headerHeight = 0;
13
14
  // When the caret updates, make sure it's in view.
@@ -32,7 +33,8 @@ afterUpdate(() => {
32
33
  style:height="{height}px"
33
34
  style:scroll-margin-top="{headerHeight}px"
34
35
  bind:this={element}
35
- />
36
+ >{#if locked}🔒{/if}</div
37
+ >
36
38
 
37
39
  <style>
38
40
  .caret {
@@ -44,7 +46,7 @@ afterUpdate(() => {
44
46
  display: inline-block;
45
47
  box-sizing: border-box;
46
48
  position: absolute;
47
- z-index: 1;
49
+ z-index: 2;
48
50
  }
49
51
 
50
52
  @keyframes caret-blink {
@@ -10,6 +10,7 @@ declare const __propDef: {
10
10
  disabled: boolean;
11
11
  ignored: boolean;
12
12
  blink: boolean;
13
+ locked: boolean;
13
14
  };
14
15
  events: {
15
16
  [evt: string]: CustomEvent<any>;
@@ -0,0 +1,23 @@
1
+ <script>import Button from '../app/Button.svelte';
2
+ export let tooltip;
3
+ export let confirm;
4
+ export let command;
5
+ let confirming = false;
6
+ </script>
7
+
8
+ <div class="confirm">
9
+ {#if !confirming}
10
+ <Button {tooltip} command={() => (confirming = true)}><slot /></Button>
11
+ {:else}
12
+ <Button tooltip="no" command={() => (confirming = false)}>no</Button
13
+ >&nbsp;<Button tooltip="yes" {command}>{confirm}</Button>
14
+ {/if}
15
+ </div>
16
+
17
+ <style>
18
+ .confirm {
19
+ font-family: var(--app-font);
20
+ font-size: var(--app-chrome-font-size);
21
+ display: inline-block;
22
+ }
23
+ </style>
@@ -1,15 +1,16 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
- commandLabel: string;
5
4
  tooltip: string;
6
- confirmLabel: string;
5
+ confirm: string;
7
6
  command: () => Promise<void> | void;
8
7
  };
9
8
  events: {
10
9
  [evt: string]: CustomEvent<any>;
11
10
  };
12
- slots: {};
11
+ slots: {
12
+ default: {};
13
+ };
13
14
  };
14
15
  export type ConfirmButtonProps = typeof __propDef.props;
15
16
  export type ConfirmButtonEvents = typeof __propDef.events;
@@ -37,7 +37,7 @@ function handleImageChange(event) {
37
37
  if (media === undefined)
38
38
  return;
39
39
  media.upload(file, (progress) => (upload = `${progress}% done`), (error) => (upload = error), (url, thumbnail) => {
40
- // Upload completed successfully, now we can get the download URL
40
+ // Upload completed successfully, update the front end.
41
41
  $caret?.edit(embed, embed.withURLs(url, thumbnail).withDescription(''));
42
42
  upload = undefined;
43
43
  });
@@ -1,5 +1,5 @@
1
1
  <script>import URLEditor from './URLEditor.svelte';
2
- import { getChapter, getEdition } from '../page/Contexts';
2
+ import { getChapter, getEdition, getRoot } from '../page/Contexts';
3
3
  import Icon from './Icon.svelte';
4
4
  import Button from '../app/Button.svelte';
5
5
  import UnlinkIcon from './icons/unlink.svg?raw';
@@ -9,6 +9,7 @@ export let link;
9
9
  let caret = getCaret();
10
10
  let edition = getEdition();
11
11
  let chapter = getChapter();
12
+ let root = getRoot();
12
13
  $: url = link.getMeta();
13
14
  function saveEdit(value) {
14
15
  $caret?.edit(link, link.withMeta(value));
@@ -38,8 +39,8 @@ function validate(urlOrChapter) {
38
39
  if (chapterID === undefined || labelID === undefined)
39
40
  return;
40
41
  // The chapter ID is optional; if it's missing, it refers to this chapter.
41
- const correspondingChapter = chapterID === '' && $chapter
42
- ? $chapter.chapter.getAST($edition)
42
+ const correspondingChapter = chapterID === ''
43
+ ? $root
43
44
  : $edition?.getChapter(chapterID)?.getAST($edition);
44
45
  if (correspondingChapter === undefined)
45
46
  return 'Not a valid URL or chapter.';
@@ -4,6 +4,7 @@
4
4
  span {
5
5
  font-size: small;
6
6
  font-style: italic;
7
+ font-weight: normal;
7
8
  color: var(--app-muted-color);
8
9
  }
9
10
  </style>