bookish-press 0.4.47 → 0.4.49

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 (533) hide show
  1. package/components/Auth.svelte +55 -0
  2. package/components/Auth.svelte.d.ts +16 -0
  3. package/{src/lib/components/Authentication.ts → components/Authentication.d.ts} +0 -2
  4. package/components/Authentication.js +1 -0
  5. package/{src/lib/components → components}/BookPreview.svelte +22 -27
  6. package/components/BookPreview.svelte.d.ts +18 -0
  7. package/{src/lib/components → components}/External.svelte +1 -2
  8. package/components/External.svelte.d.ts +18 -0
  9. package/components/Link.svelte +51 -0
  10. package/components/Link.svelte.d.ts +18 -0
  11. package/{src/lib/components → components}/app/BookList.svelte +3 -6
  12. package/components/app/BookList.svelte.d.ts +18 -0
  13. package/{src/lib/components → components}/app/Button.svelte +4 -5
  14. package/components/app/Button.svelte.d.ts +22 -0
  15. package/{src/lib/components → components}/app/Feedback.svelte +7 -11
  16. package/components/app/Feedback.svelte.d.ts +18 -0
  17. package/{src/lib/components → components}/app/Head.svelte +1 -2
  18. package/components/app/Head.svelte.d.ts +18 -0
  19. package/{src/lib/components → components}/app/Large.svelte +0 -0
  20. package/components/app/Large.svelte.d.ts +27 -0
  21. package/{src/lib/components → components}/app/Lead.svelte +0 -0
  22. package/components/app/Lead.svelte.d.ts +27 -0
  23. package/{src/lib/components → components}/app/Link.svelte +3 -4
  24. package/components/app/Link.svelte.d.ts +20 -0
  25. package/{src/lib/components → components}/app/Options.svelte +4 -5
  26. package/components/app/Options.svelte.d.ts +19 -0
  27. package/{src/lib/components → components}/app/Paragraph.svelte +1 -2
  28. package/components/app/Paragraph.svelte.d.ts +18 -0
  29. package/{src/lib/components → components}/app/Section.svelte +0 -0
  30. package/components/app/Section.svelte.d.ts +27 -0
  31. package/{src/lib/components → components}/app/Table.svelte +0 -0
  32. package/components/app/Table.svelte.d.ts +27 -0
  33. package/{src/lib/components → components}/app/TextInput.svelte +9 -12
  34. package/components/app/TextInput.svelte.d.ts +22 -0
  35. package/{src/lib/components → components}/chapter/Atom.svelte +12 -18
  36. package/components/chapter/Atom.svelte.d.ts +19 -0
  37. package/components/chapter/Block.svelte +37 -0
  38. package/components/chapter/Block.svelte.d.ts +17 -0
  39. package/{src/lib/components → components}/chapter/Callout.svelte +3 -6
  40. package/components/chapter/Callout.svelte.d.ts +17 -0
  41. package/{src/lib/components → components}/chapter/CaptionedCode.svelte +13 -21
  42. package/components/chapter/CaptionedCode.svelte.d.ts +17 -0
  43. package/{src/lib/components → components}/chapter/ChapterBody.svelte +9 -13
  44. package/components/chapter/ChapterBody.svelte.d.ts +19 -0
  45. package/{src/lib/components → components}/chapter/Citations.svelte +33 -34
  46. package/components/chapter/Citations.svelte.d.ts +17 -0
  47. package/{src/lib/components → components}/chapter/Code.svelte +60 -64
  48. package/components/chapter/Code.svelte.d.ts +22 -0
  49. package/{src/lib/components → components}/chapter/Comment.svelte +18 -30
  50. package/components/chapter/Comment.svelte.d.ts +17 -0
  51. package/{src/lib/components → components}/chapter/Definition.svelte +17 -23
  52. package/components/chapter/Definition.svelte.d.ts +17 -0
  53. package/{src/lib/components → components}/chapter/Embed.svelte +77 -97
  54. package/components/chapter/Embed.svelte.d.ts +20 -0
  55. package/components/chapter/ErrorMessage.svelte +9 -0
  56. package/components/chapter/ErrorMessage.svelte.d.ts +17 -0
  57. package/components/chapter/ExtendedPrism.d.ts +2 -0
  58. package/{src/lib/components → components}/chapter/ExtendedPrism.js +0 -0
  59. package/{src/lib/components → components}/chapter/Figure.svelte +26 -34
  60. package/components/chapter/Figure.svelte.d.ts +24 -0
  61. package/{src/lib/components → components}/chapter/Footnote.svelte +20 -32
  62. package/components/chapter/Footnote.svelte.d.ts +19 -0
  63. package/{src/lib/components → components}/chapter/Format.svelte +34 -39
  64. package/components/chapter/Format.svelte.d.ts +19 -0
  65. package/{src/lib/components → components}/chapter/InlineCode.svelte +5 -9
  66. package/components/chapter/InlineCode.svelte.d.ts +17 -0
  67. package/{src/lib/components → components}/chapter/Label.svelte +14 -23
  68. package/components/chapter/Label.svelte.d.ts +17 -0
  69. package/{src/lib/components → components}/chapter/Link.svelte +21 -27
  70. package/components/chapter/Link.svelte.d.ts +17 -0
  71. package/{src/lib/components → components}/chapter/List.svelte +3 -5
  72. package/components/chapter/List.svelte.d.ts +17 -0
  73. package/{src/lib/components → components}/chapter/Marginal.svelte +41 -54
  74. package/components/chapter/Marginal.svelte.d.ts +22 -0
  75. package/{src/lib/components → components}/chapter/Paragraph.svelte +20 -25
  76. package/components/chapter/Paragraph.svelte.d.ts +18 -0
  77. package/{src/lib/components → components}/chapter/Positioned.svelte +1 -4
  78. package/components/chapter/Positioned.svelte.d.ts +19 -0
  79. package/{src/lib/components → components}/chapter/Problem.svelte +0 -0
  80. package/components/chapter/Problem.svelte.d.ts +27 -0
  81. package/components/chapter/Python.svelte +128 -0
  82. package/components/chapter/Python.svelte.d.ts +18 -0
  83. package/{src/lib/components → components}/chapter/Quote.svelte +19 -13
  84. package/components/chapter/Quote.svelte.d.ts +17 -0
  85. package/{src/lib/components → components}/chapter/Rule.svelte +1 -4
  86. package/components/chapter/Rule.svelte.d.ts +17 -0
  87. package/{src/lib/components → components}/chapter/Table.svelte +7 -11
  88. package/components/chapter/Table.svelte.d.ts +17 -0
  89. package/components/chapter/Text.svelte +87 -0
  90. package/components/chapter/Text.svelte.d.ts +18 -0
  91. package/components/editor/BookishEditor.svelte +884 -0
  92. package/components/editor/BookishEditor.svelte.d.ts +25 -0
  93. package/components/editor/CalloutEditor.svelte +10 -0
  94. package/components/editor/CalloutEditor.svelte.d.ts +17 -0
  95. package/{src/lib/components → components}/editor/CaptionedCodeEditor.svelte +6 -10
  96. package/components/editor/CaptionedCodeEditor.svelte.d.ts +17 -0
  97. package/components/editor/CaretContext.d.ts +50 -0
  98. package/components/editor/CaretContext.js +1 -0
  99. package/{src/lib/components/editor/CaretState.ts → components/editor/CaretState.d.ts} +7 -6
  100. package/components/editor/CaretState.js +1 -0
  101. package/{src/lib/components/editor/CaretUtilities.ts → components/editor/CaretUtilities.d.ts} +0 -1
  102. package/components/editor/CaretUtilities.js +1 -0
  103. package/{src/lib/components → components}/editor/CaretView.svelte +20 -25
  104. package/components/editor/CaretView.svelte.d.ts +25 -0
  105. package/components/editor/CitationsEditor.svelte +53 -0
  106. package/components/editor/CitationsEditor.svelte.d.ts +17 -0
  107. package/{src/lib/components/editor/Clipboard.ts → components/editor/Clipboard.d.ts} +1 -2
  108. package/components/editor/Clipboard.js +1 -0
  109. package/{src/lib/components/editor/Command.ts → components/editor/Command.d.ts} +2 -8
  110. package/components/editor/Command.js +1 -0
  111. package/components/editor/Commands.d.ts +3 -0
  112. package/{src/lib/components/editor/Commands.ts → components/editor/Commands.js} +315 -730
  113. package/components/editor/ConfirmButton.svelte +49 -0
  114. package/components/editor/ConfirmButton.svelte.d.ts +19 -0
  115. package/components/editor/DefinitionEditor.svelte +36 -0
  116. package/components/editor/DefinitionEditor.svelte.d.ts +17 -0
  117. package/components/editor/EmbedEditor.svelte +137 -0
  118. package/components/editor/EmbedEditor.svelte.d.ts +17 -0
  119. package/{src/lib/components → components}/editor/Icon.svelte +1 -2
  120. package/components/editor/Icon.svelte.d.ts +16 -0
  121. package/{src/lib/components → components}/editor/ImageChooser.svelte +19 -24
  122. package/components/editor/ImageChooser.svelte.d.ts +18 -0
  123. package/components/editor/InlineCodeEditor.svelte +12 -0
  124. package/components/editor/InlineCodeEditor.svelte.d.ts +17 -0
  125. package/{src/lib/components → components}/editor/LabelEditor.svelte +9 -14
  126. package/components/editor/LabelEditor.svelte.d.ts +17 -0
  127. package/{src/lib/components → components}/editor/LanguageEditor.svelte +5 -8
  128. package/components/editor/LanguageEditor.svelte.d.ts +17 -0
  129. package/components/editor/LinkEditor.svelte +100 -0
  130. package/components/editor/LinkEditor.svelte.d.ts +17 -0
  131. package/{src/lib/components → components}/editor/Note.svelte +0 -0
  132. package/components/editor/Note.svelte.d.ts +27 -0
  133. package/{src/lib/components → components}/editor/Permissions.svelte +36 -43
  134. package/components/editor/Permissions.svelte.d.ts +20 -0
  135. package/components/editor/PositionEditor.svelte +17 -0
  136. package/components/editor/PositionEditor.svelte.d.ts +18 -0
  137. package/components/editor/QuoteEditor.svelte +10 -0
  138. package/components/editor/QuoteEditor.svelte.d.ts +17 -0
  139. package/{src/lib/components → components}/editor/Switch.svelte +11 -14
  140. package/components/editor/Switch.svelte.d.ts +20 -0
  141. package/components/editor/TableEditor.svelte +10 -0
  142. package/components/editor/TableEditor.svelte.d.ts +17 -0
  143. package/{src/lib/components → components}/editor/TextEditor.svelte +89 -101
  144. package/components/editor/TextEditor.svelte.d.ts +24 -0
  145. package/components/editor/Toggle.svelte +41 -0
  146. package/components/editor/Toggle.svelte.d.ts +19 -0
  147. package/components/editor/Toolbar.svelte +249 -0
  148. package/components/editor/Toolbar.svelte.d.ts +17 -0
  149. package/{src/lib/components → components}/editor/ToolbarGroup.svelte +3 -5
  150. package/components/editor/ToolbarGroup.svelte.d.ts +18 -0
  151. package/{src/lib/components → components}/editor/ToolbarSpacer.svelte +0 -0
  152. package/components/editor/ToolbarSpacer.svelte.d.ts +23 -0
  153. package/components/editor/URLEditor.svelte +13 -0
  154. package/components/editor/URLEditor.svelte.d.ts +18 -0
  155. package/{src/lib/components/editor/UndoState.ts → components/editor/UndoState.d.ts} +2 -3
  156. package/components/editor/UndoState.js +1 -0
  157. package/{src/lib/components → components}/editor/icons/annotate.svg +0 -0
  158. package/{src/lib/components → components}/editor/icons/block.svg +0 -0
  159. package/{src/lib/components → components}/editor/icons/bold.svg +0 -0
  160. package/{src/lib/components → components}/editor/icons/bullets.svg +0 -0
  161. package/{src/lib/components → components}/editor/icons/callout.svg +0 -0
  162. package/{src/lib/components → components}/editor/icons/citation.svg +0 -0
  163. package/{src/lib/components → components}/editor/icons/clear.svg +0 -0
  164. package/{src/lib/components → components}/editor/icons/clipboard.svg +0 -0
  165. package/{src/lib/components → components}/editor/icons/code.svg +0 -0
  166. package/{src/lib/components → components}/editor/icons/columnafter.svg +0 -0
  167. package/{src/lib/components → components}/editor/icons/columnbefore.svg +0 -0
  168. package/{src/lib/components → components}/editor/icons/comment.svg +0 -0
  169. package/{src/lib/components → components}/editor/icons/copy.svg +0 -0
  170. package/{src/lib/components → components}/editor/icons/cut.svg +0 -0
  171. package/{src/lib/components → components}/editor/icons/define.svg +0 -0
  172. package/{src/lib/components → components}/editor/icons/deletecolumn.svg +0 -0
  173. package/{src/lib/components → components}/editor/icons/deleterow.svg +0 -0
  174. package/{src/lib/components → components}/editor/icons/footnote.svg +0 -0
  175. package/{src/lib/components → components}/editor/icons/header1.svg +0 -0
  176. package/{src/lib/components → components}/editor/icons/header2.svg +0 -0
  177. package/{src/lib/components → components}/editor/icons/header3.svg +0 -0
  178. package/{src/lib/components → components}/editor/icons/home.svg +0 -0
  179. package/{src/lib/components → components}/editor/icons/indent.svg +0 -0
  180. package/{src/lib/components → components}/editor/icons/italic.svg +0 -0
  181. package/{src/lib/components → components}/editor/icons/label.svg +0 -0
  182. package/{src/lib/components → components}/editor/icons/left.svg +0 -0
  183. package/{src/lib/components → components}/editor/icons/level.svg +0 -0
  184. package/{src/lib/components → components}/editor/icons/link.svg +0 -0
  185. package/{src/lib/components → components}/editor/icons/list.svg +0 -0
  186. package/{src/lib/components → components}/editor/icons/media.svg +0 -0
  187. package/{src/lib/components → components}/editor/icons/middle.svg +0 -0
  188. package/{src/lib/components → components}/editor/icons/numbers.svg +0 -0
  189. package/{src/lib/components → components}/editor/icons/paragraph.svg +0 -0
  190. package/{src/lib/components → components}/editor/icons/paste.svg +0 -0
  191. package/{src/lib/components → components}/editor/icons/quote.svg +0 -0
  192. package/{src/lib/components → components}/editor/icons/redo.svg +0 -0
  193. package/{src/lib/components → components}/editor/icons/right.svg +0 -0
  194. package/{src/lib/components → components}/editor/icons/rowabove.svg +0 -0
  195. package/{src/lib/components → components}/editor/icons/rowbelow.svg +0 -0
  196. package/{src/lib/components → components}/editor/icons/rule.svg +0 -0
  197. package/{src/lib/components → components}/editor/icons/sub.svg +0 -0
  198. package/{src/lib/components → components}/editor/icons/super.svg +0 -0
  199. package/{src/lib/components → components}/editor/icons/table.svg +0 -0
  200. package/{src/lib/components → components}/editor/icons/text.svg +0 -0
  201. package/{src/lib/components → components}/editor/icons/time.svg +0 -0
  202. package/{src/lib/components → components}/editor/icons/undo.svg +0 -0
  203. package/{src/lib/components → components}/editor/icons/unindent.svg +0 -0
  204. package/{src/lib/components → components}/editor/icons/unlink.svg +0 -0
  205. package/{src/lib/components → components}/page/Acknowledgements.svelte +10 -19
  206. package/components/page/Acknowledgements.svelte.d.ts +14 -0
  207. package/components/page/Authors.svelte +85 -0
  208. package/components/page/Authors.svelte.d.ts +21 -0
  209. package/components/page/BookLoader.svelte +59 -0
  210. package/components/page/BookLoader.svelte.d.ts +16 -0
  211. package/components/page/BulkReferenceEditor.svelte +63 -0
  212. package/components/page/BulkReferenceEditor.svelte.d.ts +14 -0
  213. package/components/page/Chapter.svelte +393 -0
  214. package/components/page/Chapter.svelte.d.ts +18 -0
  215. package/components/page/ChapterContext.d.ts +10 -0
  216. package/components/page/ChapterContext.js +1 -0
  217. package/{src/lib/components → components}/page/ChapterNumber.svelte +0 -0
  218. package/components/page/ChapterNumber.svelte.d.ts +27 -0
  219. package/{src/lib/components → components}/page/ChapterTitle.svelte +2 -4
  220. package/components/page/ChapterTitle.svelte.d.ts +18 -0
  221. package/components/page/Contexts.d.ts +47 -0
  222. package/components/page/Contexts.js +133 -0
  223. package/{src/lib/components → components}/page/DefinitionView.svelte +38 -53
  224. package/components/page/DefinitionView.svelte.d.ts +18 -0
  225. package/{src/lib/components → components}/page/Description.svelte +7 -15
  226. package/components/page/Description.svelte.d.ts +14 -0
  227. package/components/page/Edition.svelte +161 -0
  228. package/components/page/Edition.svelte.d.ts +20 -0
  229. package/components/page/EditionLoader.svelte +99 -0
  230. package/components/page/EditionLoader.svelte.d.ts +18 -0
  231. package/{src/lib/components → components}/page/Editions.svelte +18 -22
  232. package/components/page/Editions.svelte.d.ts +14 -0
  233. package/{src/lib/components → components}/page/Glossary.svelte +28 -33
  234. package/components/page/Glossary.svelte.d.ts +14 -0
  235. package/{src/lib/components → components}/page/Header.svelte +52 -59
  236. package/components/page/Header.svelte.d.ts +29 -0
  237. package/{src/lib/components → components}/page/Index.svelte +47 -50
  238. package/components/page/Index.svelte.d.ts +14 -0
  239. package/{src/lib/components → components}/page/Instructions.svelte +1 -2
  240. package/components/page/Instructions.svelte.d.ts +18 -0
  241. package/{src/lib/components → components}/page/License.svelte +9 -17
  242. package/components/page/License.svelte.d.ts +14 -0
  243. package/{src/lib/components → components}/page/Loading.svelte +0 -0
  244. package/components/page/Loading.svelte.d.ts +23 -0
  245. package/{src/lib/components → components}/page/Media.svelte +27 -44
  246. package/components/page/Media.svelte.d.ts +14 -0
  247. package/{src/lib/components → components}/page/MediaPreview.svelte +2 -3
  248. package/components/page/MediaPreview.svelte.d.ts +19 -0
  249. package/{src/lib/components → components}/page/Muted.svelte +0 -0
  250. package/components/page/Muted.svelte.d.ts +27 -0
  251. package/{src/lib/components → components}/page/Outline.svelte +110 -140
  252. package/components/page/Outline.svelte.d.ts +19 -0
  253. package/components/page/Page.svelte +84 -0
  254. package/components/page/Page.svelte.d.ts +19 -0
  255. package/{src/lib/components → components}/page/PageHeader.svelte +1 -2
  256. package/components/page/PageHeader.svelte.d.ts +18 -0
  257. package/{src/lib/components → components}/page/PageParagraph.svelte +0 -0
  258. package/components/page/PageParagraph.svelte.d.ts +27 -0
  259. package/components/page/PossibleChapter.svelte +14 -0
  260. package/components/page/PossibleChapter.svelte.d.ts +14 -0
  261. package/components/page/PossibleReference.svelte +11 -0
  262. package/components/page/PossibleReference.svelte.d.ts +18 -0
  263. package/{src/lib/components → components}/page/Print.svelte +3 -5
  264. package/components/page/Print.svelte.d.ts +14 -0
  265. package/{src/lib/components → components}/page/Publish.svelte +52 -59
  266. package/components/page/Publish.svelte.d.ts +14 -0
  267. package/{src/lib/components → components}/page/Reference.svelte +30 -39
  268. package/components/page/Reference.svelte.d.ts +17 -0
  269. package/{src/lib/components → components}/page/References.svelte +14 -18
  270. package/components/page/References.svelte.d.ts +14 -0
  271. package/{src/lib/components → components}/page/Rows.svelte +0 -0
  272. package/components/page/Rows.svelte.d.ts +27 -0
  273. package/components/page/Search.svelte +133 -0
  274. package/components/page/Search.svelte.d.ts +14 -0
  275. package/{src/lib/components → components}/page/Status.svelte +3 -5
  276. package/components/page/Status.svelte.d.ts +14 -0
  277. package/{src/lib/components → components}/page/SubdomainEditor.svelte +13 -16
  278. package/components/page/SubdomainEditor.svelte.d.ts +14 -0
  279. package/{src/lib/components → components}/page/TableOfContents.svelte +68 -79
  280. package/components/page/TableOfContents.svelte.d.ts +14 -0
  281. package/components/page/TableOfContentsImage.svelte +18 -0
  282. package/components/page/TableOfContentsImage.svelte.d.ts +16 -0
  283. package/{src/lib/components → components}/page/TableOfContentsRow.svelte +24 -34
  284. package/components/page/TableOfContentsRow.svelte.d.ts +24 -0
  285. package/{src/lib/components → components}/page/ThemeEditor.svelte +33 -44
  286. package/components/page/ThemeEditor.svelte.d.ts +14 -0
  287. package/{src/lib/components → components}/page/ThemeEditorPreview.svelte +12 -21
  288. package/components/page/ThemeEditorPreview.svelte.d.ts +17 -0
  289. package/components/page/ThemeSetEditor.svelte +19 -0
  290. package/components/page/ThemeSetEditor.svelte.d.ts +18 -0
  291. package/{src/lib/components → components}/page/ThemeVariableEditor.svelte +14 -18
  292. package/components/page/ThemeVariableEditor.svelte.d.ts +18 -0
  293. package/{src/lib/components → components}/page/Title.svelte +0 -0
  294. package/components/page/Title.svelte.d.ts +27 -0
  295. package/{src/lib/components → components}/page/Unknown.svelte +8 -10
  296. package/components/page/Unknown.svelte.d.ts +16 -0
  297. package/components/page/margins.d.ts +2 -0
  298. package/{src/lib/components/page/margins.ts → components/page/margins.js} +46 -79
  299. package/index.d.ts +15 -0
  300. package/{src/lib/index.js → index.js} +0 -0
  301. package/models/CRUD.d.ts +27 -0
  302. package/models/CRUD.js +262 -0
  303. package/models/Firebase.d.ts +5 -0
  304. package/{src/lib/models/Firebase.ts → models/Firebase.js} +16 -26
  305. package/models/book/Book.d.ts +61 -0
  306. package/models/book/Book.js +135 -0
  307. package/models/book/BookMedia.d.ts +23 -0
  308. package/models/book/BookMedia.js +108 -0
  309. package/models/book/BookSaveStatus.d.ts +7 -0
  310. package/models/book/BookSaveStatus.js +8 -0
  311. package/models/book/Chapter.d.ts +81 -0
  312. package/models/book/Chapter.js +212 -0
  313. package/models/book/ChapterID.d.ts +10 -0
  314. package/{src/lib/models/book/ChapterID.ts → models/book/ChapterID.js} +0 -1
  315. package/models/book/Definition.d.ts +6 -0
  316. package/models/book/Definition.js +1 -0
  317. package/models/book/Edition.d.ts +139 -0
  318. package/models/book/Edition.js +620 -0
  319. package/models/book/Reference.d.ts +24 -0
  320. package/models/book/Reference.js +78 -0
  321. package/models/book/Schema.d.ts +174 -0
  322. package/{src/lib/models/book/Schema.ts → models/book/Schema.js} +0 -1
  323. package/models/book/Theme.d.ts +113 -0
  324. package/{src/lib/models/book/Theme.ts → models/book/Theme.js} +6 -110
  325. package/{src/lib/models/book/ThemeColors.ts → models/book/ThemeColors.d.ts} +0 -6
  326. package/models/book/ThemeColors.js +1 -0
  327. package/models/book/Words.d.ts +2 -0
  328. package/{src/lib/models/book/Words.ts → models/book/Words.js} +0 -1
  329. package/models/chapter/AtomNode.d.ts +18 -0
  330. package/{src/lib/models/chapter/AtomNode.ts → models/chapter/AtomNode.js} +10 -30
  331. package/models/chapter/BlockNode.d.ts +20 -0
  332. package/{src/lib/models/chapter/BlockNode.ts → models/chapter/BlockNode.js} +47 -80
  333. package/models/chapter/BlocksNode.d.ts +50 -0
  334. package/{src/lib/models/chapter/BlocksNode.ts → models/chapter/BlocksNode.js} +359 -571
  335. package/models/chapter/BlocksNode.test.d.ts +1 -0
  336. package/models/chapter/BlocksNode.test.js +568 -0
  337. package/{src/lib/models/chapter/Bookkeeping.ts → models/chapter/Bookkeeping.d.ts} +0 -0
  338. package/models/chapter/Bookkeeping.js +1 -0
  339. package/models/chapter/CalloutNode.d.ts +17 -0
  340. package/models/chapter/CalloutNode.js +58 -0
  341. package/models/chapter/Caret.d.ts +23 -0
  342. package/{src/lib/models/chapter/Caret.ts → models/chapter/Caret.js} +26 -50
  343. package/models/chapter/ChapterNode.d.ts +34 -0
  344. package/models/chapter/ChapterNode.js +117 -0
  345. package/models/chapter/CitationsNode.d.ts +16 -0
  346. package/{src/lib/models/chapter/CitationsNode.ts → models/chapter/CitationsNode.js} +10 -17
  347. package/models/chapter/CodeNode.d.ts +35 -0
  348. package/{src/lib/models/chapter/CodeNode.ts → models/chapter/CodeNode.js} +62 -125
  349. package/models/chapter/CommentNode.d.ts +18 -0
  350. package/models/chapter/CommentNode.js +48 -0
  351. package/models/chapter/DefinitionNode.d.ts +12 -0
  352. package/{src/lib/models/chapter/DefinitionNode.ts → models/chapter/DefinitionNode.js} +8 -14
  353. package/models/chapter/Edit.d.ts +7 -0
  354. package/models/chapter/Edit.js +1 -0
  355. package/models/chapter/EmbedNode.d.ts +45 -0
  356. package/models/chapter/EmbedNode.js +168 -0
  357. package/models/chapter/ErrorNode.d.ts +17 -0
  358. package/{src/lib/models/chapter/ErrorNode.ts → models/chapter/ErrorNode.js} +8 -15
  359. package/models/chapter/FootnoteNode.d.ts +18 -0
  360. package/models/chapter/FootnoteNode.js +47 -0
  361. package/models/chapter/FormatNode.d.ts +60 -0
  362. package/{src/lib/models/chapter/FormatNode.ts → models/chapter/FormatNode.js} +262 -443
  363. package/models/chapter/FormatNode.test.d.ts +1 -0
  364. package/models/chapter/FormatNode.test.js +96 -0
  365. package/models/chapter/InlineCodeNode.d.ts +12 -0
  366. package/{src/lib/models/chapter/InlineCodeNode.ts → models/chapter/InlineCodeNode.js} +9 -17
  367. package/models/chapter/LabelNode.d.ts +17 -0
  368. package/{src/lib/models/chapter/LabelNode.ts → models/chapter/LabelNode.js} +10 -26
  369. package/models/chapter/LinkNode.d.ts +12 -0
  370. package/{src/lib/models/chapter/LinkNode.ts → models/chapter/LinkNode.js} +7 -12
  371. package/models/chapter/ListNode.d.ts +51 -0
  372. package/{src/lib/models/chapter/ListNode.ts → models/chapter/ListNode.js} +200 -277
  373. package/models/chapter/ListNode.test.d.ts +1 -0
  374. package/{src/lib/models/chapter/ListNode.test.ts → models/chapter/ListNode.test.js} +20 -57
  375. package/models/chapter/MetadataNode.d.ts +17 -0
  376. package/models/chapter/MetadataNode.js +32 -0
  377. package/models/chapter/Node.d.ts +38 -0
  378. package/{src/lib/models/chapter/Node.ts → models/chapter/Node.js} +71 -155
  379. package/models/chapter/Node.test.d.ts +1 -0
  380. package/{src/lib/models → models}/chapter/Node.test.js +0 -0
  381. package/models/chapter/ParagraphNode.d.ts +33 -0
  382. package/{src/lib/models/chapter/ParagraphNode.ts → models/chapter/ParagraphNode.js} +58 -95
  383. package/models/chapter/ParagraphNode.test.d.ts +1 -0
  384. package/models/chapter/ParagraphNode.test.js +30 -0
  385. package/models/chapter/Parser.d.ts +75 -0
  386. package/{src/lib/models/chapter/Parser.ts → models/chapter/Parser.js} +184 -369
  387. package/models/chapter/Parser.test.d.ts +1 -0
  388. package/{src/lib/models/chapter/Parser.test.ts → models/chapter/Parser.test.js} +0 -7
  389. package/{src/lib/models/chapter/Position.ts → models/chapter/Position.d.ts} +0 -0
  390. package/models/chapter/Position.js +1 -0
  391. package/models/chapter/QuoteNode.d.ts +25 -0
  392. package/models/chapter/QuoteNode.js +99 -0
  393. package/{src/lib/models/chapter/RootNode.ts → models/chapter/RootNode.d.ts} +0 -2
  394. package/models/chapter/RootNode.js +1 -0
  395. package/models/chapter/RuleNode.d.ts +15 -0
  396. package/{src/lib/models/chapter/RuleNode.ts → models/chapter/RuleNode.js} +6 -9
  397. package/models/chapter/TableNode.d.ts +37 -0
  398. package/{src/lib/models/chapter/TableNode.ts → models/chapter/TableNode.js} +82 -141
  399. package/models/chapter/TableNode.test.d.ts +1 -0
  400. package/{src/lib/models/chapter/TableNode.test.ts → models/chapter/TableNode.test.js} +10 -27
  401. package/models/chapter/TextNode.d.ts +36 -0
  402. package/{src/lib/models/chapter/TextNode.ts → models/chapter/TextNode.js} +65 -117
  403. package/models/chapter/TextNode.test.d.ts +1 -0
  404. package/{src/lib/models/chapter/TextNode.test.ts → models/chapter/TextNode.test.js} +0 -2
  405. package/package.json +270 -53
  406. package/util/getSubdomain.d.ts +3 -0
  407. package/{src/lib/util/getSubdomain.ts → util/getSubdomain.js} +8 -14
  408. package/util/isMobile.d.ts +2 -0
  409. package/{src/lib/util/isMobile.ts → util/isMobile.js} +0 -1
  410. package/util/mineReference.d.ts +4 -0
  411. package/{src/lib/util/mineReference.ts → util/mineReference.js} +25 -45
  412. package/util/scrollToEyeLevel.d.ts +2 -0
  413. package/{src/lib/util/scrollToEyeLevel.ts → util/scrollToEyeLevel.js} +2 -4
  414. package/.env.example +0 -8
  415. package/.firebaserc +0 -8
  416. package/.prettierignore +0 -8
  417. package/.prettierrc.json +0 -5
  418. package/_update-notifier-last-checked +0 -0
  419. package/firebase.json +0 -46
  420. package/firestore.indexes.json +0 -4
  421. package/firestore.rules +0 -59
  422. package/functions/.eslintrc.js +0 -28
  423. package/functions/package-lock.json +0 -12595
  424. package/functions/package.json +0 -43
  425. package/functions/src/index.ts +0 -345
  426. package/functions/tsconfig.dev.json +0 -3
  427. package/functions/tsconfig.json +0 -15
  428. package/scripts/claims.cjs +0 -99
  429. package/src/app.d.ts +0 -9
  430. package/src/app.html +0 -24
  431. package/src/lib/components/Auth.svelte +0 -65
  432. package/src/lib/components/Link.svelte +0 -58
  433. package/src/lib/components/chapter/Block.svelte +0 -42
  434. package/src/lib/components/chapter/ErrorMessage.svelte +0 -12
  435. package/src/lib/components/chapter/Python.svelte +0 -144
  436. package/src/lib/components/chapter/Text.svelte +0 -109
  437. package/src/lib/components/editor/BookishEditor.svelte +0 -1101
  438. package/src/lib/components/editor/CalloutEditor.svelte +0 -14
  439. package/src/lib/components/editor/CaretContext.ts +0 -55
  440. package/src/lib/components/editor/CitationsEditor.svelte +0 -64
  441. package/src/lib/components/editor/ConfirmButton.svelte +0 -51
  442. package/src/lib/components/editor/DefinitionEditor.svelte +0 -44
  443. package/src/lib/components/editor/EmbedEditor.svelte +0 -152
  444. package/src/lib/components/editor/InlineCodeEditor.svelte +0 -16
  445. package/src/lib/components/editor/LinkEditor.svelte +0 -110
  446. package/src/lib/components/editor/PositionEditor.svelte +0 -21
  447. package/src/lib/components/editor/QuoteEditor.svelte +0 -14
  448. package/src/lib/components/editor/TableEditor.svelte +0 -14
  449. package/src/lib/components/editor/Toggle.svelte +0 -47
  450. package/src/lib/components/editor/Toolbar.svelte +0 -297
  451. package/src/lib/components/editor/URLEditor.svelte +0 -15
  452. package/src/lib/components/page/Authors.svelte +0 -92
  453. package/src/lib/components/page/BookLoader.svelte +0 -77
  454. package/src/lib/components/page/BulkReferenceEditor.svelte +0 -86
  455. package/src/lib/components/page/Chapter.svelte +0 -449
  456. package/src/lib/components/page/ChapterContext.ts +0 -13
  457. package/src/lib/components/page/Contexts.ts +0 -176
  458. package/src/lib/components/page/Edition.svelte +0 -189
  459. package/src/lib/components/page/EditionLoader.svelte +0 -123
  460. package/src/lib/components/page/Page.svelte +0 -94
  461. package/src/lib/components/page/PossibleChapter.svelte +0 -16
  462. package/src/lib/components/page/PossibleReference.svelte +0 -14
  463. package/src/lib/components/page/Search.svelte +0 -153
  464. package/src/lib/components/page/TableOfContentsImage.svelte +0 -22
  465. package/src/lib/components/page/ThemeSetEditor.svelte +0 -21
  466. package/src/lib/models/CRUD.ts +0 -469
  467. package/src/lib/models/book/Book.ts +0 -283
  468. package/src/lib/models/book/BookMedia.ts +0 -182
  469. package/src/lib/models/book/BookSaveStatus.ts +0 -8
  470. package/src/lib/models/book/Chapter.ts +0 -462
  471. package/src/lib/models/book/Definition.ts +0 -2
  472. package/src/lib/models/book/Edition.ts +0 -1216
  473. package/src/lib/models/book/Reference.ts +0 -171
  474. package/src/lib/models/chapter/BlocksNode.test.ts +0 -867
  475. package/src/lib/models/chapter/CalloutNode.ts +0 -79
  476. package/src/lib/models/chapter/ChapterNode.ts +0 -169
  477. package/src/lib/models/chapter/CommentNode.ts +0 -61
  478. package/src/lib/models/chapter/Edit.ts +0 -6
  479. package/src/lib/models/chapter/EmbedNode.ts +0 -257
  480. package/src/lib/models/chapter/FootnoteNode.ts +0 -59
  481. package/src/lib/models/chapter/FormatNode.test.ts +0 -137
  482. package/src/lib/models/chapter/MetadataNode.ts +0 -44
  483. package/src/lib/models/chapter/ParagraphNode.test.ts +0 -54
  484. package/src/lib/models/chapter/QuoteNode.ts +0 -135
  485. package/src/params/edition.ts +0 -3
  486. package/src/routes/+error.svelte +0 -12
  487. package/src/routes/+layout.svelte +0 -241
  488. package/src/routes/+page.svelte +0 -43
  489. package/src/routes/Footer.svelte +0 -0
  490. package/src/routes/Header.svelte +0 -112
  491. package/src/routes/[bookid]/+layout.svelte +0 -5
  492. package/src/routes/[bookid]/[[editionid=edition]]/+error.svelte +0 -14
  493. package/src/routes/[bookid]/[[editionid=edition]]/+layout.svelte +0 -7
  494. package/src/routes/[bookid]/[[editionid=edition]]/+page.svelte +0 -5
  495. package/src/routes/[bookid]/[[editionid=edition]]/[chapterid]/+page.svelte +0 -5
  496. package/src/routes/[bookid]/[[editionid=edition]]/glossary/+page.svelte +0 -5
  497. package/src/routes/[bookid]/[[editionid=edition]]/index/[[letter]]/+page.svelte +0 -5
  498. package/src/routes/[bookid]/[[editionid=edition]]/media/+page.svelte +0 -5
  499. package/src/routes/[bookid]/[[editionid=edition]]/print/+page.svelte +0 -5
  500. package/src/routes/[bookid]/[[editionid=edition]]/references/+page.svelte +0 -5
  501. package/src/routes/[bookid]/[[editionid=edition]]/search/+page.svelte +0 -5
  502. package/src/routes/[bookid]/editions/+page.svelte +0 -20
  503. package/src/routes/about/+page.svelte +0 -102
  504. package/src/routes/confirm/+page.svelte +0 -62
  505. package/src/routes/email/+page.svelte +0 -99
  506. package/src/routes/login/+page.svelte +0 -66
  507. package/src/routes/read/+page.svelte +0 -38
  508. package/src/routes/write/+error.svelte +0 -10
  509. package/src/routes/write/+layout.svelte +0 -11
  510. package/src/routes/write/+page.svelte +0 -114
  511. package/src/routes/write/[bookid]/+layout.svelte +0 -5
  512. package/src/routes/write/[bookid]/[[editionid=edition]]/+layout.svelte +0 -7
  513. package/src/routes/write/[bookid]/[[editionid=edition]]/+page.svelte +0 -5
  514. package/src/routes/write/[bookid]/[[editionid=edition]]/[chapterid]/+page.svelte +0 -5
  515. package/src/routes/write/[bookid]/[[editionid=edition]]/glossary/+page.svelte +0 -5
  516. package/src/routes/write/[bookid]/[[editionid=edition]]/index/[[letter]]/+page.svelte +0 -5
  517. package/src/routes/write/[bookid]/[[editionid=edition]]/media/+page.svelte +0 -5
  518. package/src/routes/write/[bookid]/[[editionid=edition]]/print/+page.svelte +0 -5
  519. package/src/routes/write/[bookid]/[[editionid=edition]]/references/+page.svelte +0 -5
  520. package/src/routes/write/[bookid]/[[editionid=edition]]/search/+page.svelte +0 -5
  521. package/src/routes/write/[bookid]/[[editionid=edition]]/theme/+page.svelte +0 -5
  522. package/src/routes/write/[bookid]/[[editionid=edition]]/unknown/+page.svelte +0 -5
  523. package/src/routes/write/[bookid]/editions/+page.svelte +0 -20
  524. package/src/vite-env.d.ts +0 -1
  525. package/static/icons/favicon.png +0 -0
  526. package/static/icons/icon.png +0 -0
  527. package/static/icons/ios-icon.png +0 -0
  528. package/storage.rules +0 -9
  529. package/svelte.config.js +0 -19
  530. package/tsconfig.json +0 -18
  531. package/tsconfig.node.json +0 -9
  532. package/vite.config.ts +0 -8
  533. package/vite.reader.config.ts +0 -32
@@ -1,297 +0,0 @@
1
- <script lang="ts">
2
- import commands from './Commands';
3
- import type Command from './Command';
4
-
5
- import TextNode from '$lib/models/chapter/TextNode';
6
- import AtomNode from '$lib/models/chapter/AtomNode';
7
-
8
- import LinkNode from '$lib/models/chapter/LinkNode';
9
- import LabelNode from '$lib/models/chapter/LabelNode';
10
- import InlineCodeNode from '$lib/models/chapter/InlineCodeNode';
11
- import CitationsNode from '$lib/models/chapter/CitationsNode';
12
- import DefinitionNode from '$lib/models/chapter/DefinitionNode';
13
- import CodeNode from '$lib/models/chapter/CodeNode';
14
- import CalloutNode from '$lib/models/chapter/CalloutNode';
15
- import EmbedNode from '$lib/models/chapter/EmbedNode';
16
- import QuoteNode from '$lib/models/chapter/QuoteNode';
17
- import type MetadataNode from '$lib/models/chapter/MetadataNode';
18
-
19
- import LabelEditor from '$lib/components/editor/LabelEditor.svelte';
20
- import InlineCodeEditor from '$lib/components/editor/InlineCodeEditor.svelte';
21
- import CitationsEditor from '$lib/components/editor/CitationsEditor.svelte';
22
- import LinkEditor from '$lib/components/editor/LinkEditor.svelte';
23
- import DefinitionEditor from '$lib/components/editor/DefinitionEditor.svelte';
24
- import CaptionedCodeEditor from '$lib/components/editor/CaptionedCodeEditor.svelte';
25
- import CalloutEditor from '$lib/components/editor/CalloutEditor.svelte';
26
- import QuoteEditor from '$lib/components/editor/QuoteEditor.svelte';
27
- import EmbedEditor from '$lib/components/editor/EmbedEditor.svelte';
28
- import TableEditor from '$lib/components/editor/TableEditor.svelte';
29
- import ToolbarGroup from './ToolbarGroup.svelte';
30
- import Icon from './Icon.svelte';
31
- import Button from '../app/Button.svelte';
32
-
33
- import AnnotateIcon from './icons/annotate.svg?raw';
34
- import BlockIcon from './icons/block.svg?raw';
35
- import ClipboardIcon from './icons/clipboard.svg?raw';
36
- import LevelIcon from './icons/level.svg?raw';
37
- import ListIcon from './icons/list.svg?raw';
38
- import TextIcon from './icons/text.svg?raw';
39
- import TimeIcon from './icons/time.svg?raw';
40
- import TableIcon from './icons/table.svg?raw';
41
- import LinkIcon from './icons/link.svg?raw';
42
-
43
- import LabelIcon from './icons/label.svg?raw';
44
- import CitationIcon from './icons/citation.svg?raw';
45
- import DefineIcon from './icons/define.svg?raw';
46
- import CodeIcon from './icons/code.svg?raw';
47
- import CalloutIcon from './icons/callout.svg?raw';
48
- import QuoteIcon from './icons/quote.svg?raw';
49
- import MediaIcon from './icons/media.svg?raw';
50
- import TableNode from '../../models/chapter/TableNode';
51
- import { slide } from 'svelte/transition';
52
- import type CaretState from './CaretState';
53
-
54
- const keyLabels: { [key: string]: string } = {
55
- Digit0: '0',
56
- Digit1: '1',
57
- Digit2: '2',
58
- Digit3: '3',
59
- ArrowDown: '↓',
60
- ArrowUp: '↑',
61
- ArrowLeft: '←',
62
- ArrowRight: '→',
63
- Backspace: '\u232B',
64
- };
65
-
66
- const categoryOrder: { [key: string]: number } = {
67
- navigation: 1,
68
- selection: 2,
69
- text: 3,
70
- clipboard: 4,
71
- annotation: 5,
72
- paragraph: 6,
73
- level: 7,
74
- list: 8,
75
- table: 9,
76
- block: 10,
77
- };
78
-
79
- const categoryIcons: { [key: string]: string } = {
80
- text: TextIcon,
81
- clipboard: ClipboardIcon,
82
- annotation: AnnotateIcon,
83
- level: LevelIcon,
84
- block: BlockIcon,
85
- list: ListIcon,
86
- table: TableIcon,
87
- history: TimeIcon,
88
- };
89
-
90
- export let caret: CaretState;
91
-
92
- $: context = caret.context;
93
- $: chapter = context?.root;
94
-
95
- let element: HTMLElement | null = null;
96
- let categories: string[] | undefined = undefined;
97
- let commandsByCategory: { [key: string]: Command[] } = {};
98
- let metaNode: MetadataNode<any> | AtomNode<any> | undefined = undefined;
99
- let calloutNode: CalloutNode | undefined = undefined;
100
- let quoteNode: QuoteNode | undefined = undefined;
101
- let embedNode: EmbedNode | undefined = undefined;
102
- let tableNode: TableNode | undefined = undefined;
103
-
104
- function getShortcutDescription(command: Command) {
105
- const macOS = navigator.userAgent.indexOf('Mac') >= 0;
106
- const controlSymbol = macOS ? '\u2318' : 'Ctrl+';
107
- const altSymbol = macOS ? '\u2325' : 'Alt+';
108
- const key = command.key
109
- ? Array.isArray(command.key)
110
- ? command.key.join('/')
111
- : command.key
112
- : command.code
113
- ? command.code
114
- : 'any';
115
- const keyLabel = (
116
- typeof key === 'string'
117
- ? key in keyLabels
118
- ? keyLabels[key]
119
- : key
120
- : '—'
121
- ).toLocaleUpperCase();
122
- return `${command.control ? controlSymbol : ''}${
123
- command.alt ? altSymbol : ''
124
- }${command.shift ? '\u21E7' : ''}${keyLabel}`;
125
- }
126
-
127
- // Update the above when the dependencies below change.
128
- $: {
129
- if (context !== undefined && chapter) {
130
- // Filter the commands by those interactive with a mouse and active.
131
- const visible = commands.filter(
132
- (command) =>
133
- command.visible === true ||
134
- (context &&
135
- command.visible instanceof Function &&
136
- command.visible(context))
137
- );
138
-
139
- // Extract the active categories and sort them
140
- categories = Array.from(
141
- new Set(commands.map((command) => command.category))
142
- ).sort((a, b) =>
143
- a in categoryOrder && b in categoryOrder
144
- ? categoryOrder[a] - categoryOrder[b]
145
- : 0
146
- );
147
-
148
- // Make a list for each category of commands
149
- commandsByCategory = {};
150
- categories.forEach((cat) => {
151
- if (commandsByCategory)
152
- commandsByCategory[cat] = visible.filter(
153
- (command) => command.category === cat
154
- );
155
- });
156
-
157
- const caretNode = context.start.node;
158
-
159
- metaNode =
160
- caretNode instanceof AtomNode
161
- ? caretNode
162
- : caretNode instanceof TextNode
163
- ? (caretNode.getParent(chapter) as MetadataNode<any>)
164
- : undefined;
165
-
166
- calloutNode = caretNode.getClosestParentMatching(
167
- chapter,
168
- (p) => p instanceof CalloutNode
169
- ) as CalloutNode;
170
- quoteNode = caretNode.getClosestParentMatching(
171
- chapter,
172
- (p) => p instanceof QuoteNode
173
- ) as QuoteNode;
174
- embedNode =
175
- caretNode instanceof EmbedNode
176
- ? caretNode
177
- : (caretNode.getClosestParentMatching(
178
- chapter,
179
- (p) => p instanceof EmbedNode
180
- ) as EmbedNode);
181
- tableNode = caretNode.getClosestParentMatching(
182
- chapter,
183
- (p) => p instanceof TableNode
184
- ) as TableNode;
185
- }
186
- }
187
-
188
- function handleKeyPress(event: KeyboardEvent) {
189
- // Return focus to the editor if someone presses an unhandled enter
190
- if ((event.key === 'Escape' || event.key === 'Enter') && element) {
191
- const editor = element.closest('.bookish-editor');
192
- if (editor instanceof HTMLElement) {
193
- event.stopPropagation();
194
- editor.focus();
195
- }
196
- return true;
197
- }
198
- }
199
- </script>
200
-
201
- {#if chapter}
202
- <section
203
- class="bookish-editor-toolbar"
204
- bind:this={element}
205
- on:keypress={handleKeyPress}
206
- on:keydown={handleKeyPress}
207
- on:mousedown|stopPropagation={() => element?.focus()}
208
- tabIndex="0"
209
- transition:slide={{ duration: 200 }}
210
- >
211
- {#if context && categories}
212
- {#each categories as cat}
213
- {#if commandsByCategory[cat].length > 0}
214
- <ToolbarGroup
215
- icon={cat in categoryIcons
216
- ? categoryIcons[cat]
217
- : cat.charAt(0).toUpperCase() + cat.slice(1)}
218
- >
219
- {#each commandsByCategory[cat] as command}
220
- <Button
221
- disabled={command.active === false ||
222
- (command.active instanceof Function &&
223
- command.active.call(
224
- undefined,
225
- context
226
- ) === false)}
227
- tooltip={command.description +
228
- ' ' +
229
- getShortcutDescription(command)}
230
- tabIndex="0"
231
- command={() =>
232
- caret?.executor.call(
233
- undefined,
234
- command,
235
- ''
236
- )}
237
- >
238
- <Icon icon={command.icon} />
239
- </Button>
240
- {/each}
241
- {#if cat === 'table' && tableNode}
242
- <TableEditor table={tableNode} />
243
- {/if}
244
- </ToolbarGroup>
245
- {/if}
246
- {/each}
247
- {/if}
248
- {#if metaNode instanceof LinkNode}<ToolbarGroup icon={LinkIcon}
249
- ><LinkEditor link={metaNode} /></ToolbarGroup
250
- >
251
- {:else if metaNode instanceof LabelNode}<ToolbarGroup icon={LabelIcon}
252
- ><LabelEditor label={metaNode} /></ToolbarGroup
253
- >
254
- {:else if metaNode instanceof InlineCodeNode}<ToolbarGroup
255
- icon={CodeIcon}
256
- ><InlineCodeEditor code={metaNode} /></ToolbarGroup
257
- >
258
- {:else if metaNode instanceof CitationsNode}<ToolbarGroup
259
- icon={CitationIcon}
260
- ><CitationsEditor citations={metaNode} /></ToolbarGroup
261
- >
262
- {:else if metaNode instanceof DefinitionNode}<ToolbarGroup
263
- icon={DefineIcon}
264
- ><DefinitionEditor definition={metaNode} /></ToolbarGroup
265
- >
266
- {:else if metaNode instanceof CodeNode && context}<ToolbarGroup
267
- icon={CodeIcon}
268
- ><CaptionedCodeEditor code={metaNode} /></ToolbarGroup
269
- >
270
- {:else if calloutNode}<ToolbarGroup icon={CalloutIcon}
271
- ><CalloutEditor callout={calloutNode} /></ToolbarGroup
272
- >
273
- {:else if quoteNode}<ToolbarGroup icon={QuoteIcon}
274
- ><QuoteEditor quote={quoteNode} /></ToolbarGroup
275
- >
276
- {:else if embedNode}<ToolbarGroup icon={MediaIcon}
277
- ><EmbedEditor embed={embedNode} /></ToolbarGroup
278
- >
279
- {/if}
280
- </section>
281
- {/if}
282
-
283
- <style>
284
- .bookish-editor-toolbar {
285
- display: flex;
286
- flex-direction: row;
287
- flex-wrap: wrap;
288
- align-items: baseline;
289
- background: var(--bookish-background-color);
290
- font-family: var(--app-font);
291
- font-size: var(--app-chrome-font-size);
292
- }
293
-
294
- .bookish-editor-toolbar:focus {
295
- outline: 2px solid var(--app-interactive-color);
296
- }
297
- </style>
@@ -1,15 +0,0 @@
1
- <script lang="ts">
2
- import TextEditor from './TextEditor.svelte';
3
-
4
- export let url: string;
5
- export let validator: (text: string) => undefined | string;
6
- export let edit: (newURL: string) => string | undefined;
7
- </script>
8
-
9
- <TextEditor
10
- placeholder="url"
11
- text={url}
12
- label="URL editor"
13
- valid={(url) => validator(url)}
14
- save={(url) => edit(url)}
15
- />
@@ -1,92 +0,0 @@
1
- <script lang="ts">
2
- import Parser from '$lib/models/chapter/Parser';
3
- import TextEditor from '$lib/components/editor/TextEditor.svelte';
4
- import Format from '$lib/components/chapter/Format.svelte';
5
- import { afterUpdate } from 'svelte';
6
- import { getEdition, isBookEditable, isEditionEditable } from './Contexts';
7
- import Note from '../editor/Note.svelte';
8
- import Button from '../app/Button.svelte';
9
-
10
- export let editable: boolean;
11
- export let authors: string[];
12
- export let inheritedAuthors: string[] | undefined = undefined;
13
- export let add: () => Promise<void> | void;
14
- export let edit: (index: number, text: string) => Promise<void> | void;
15
- export let remove: (index: number) => Promise<void> | void;
16
-
17
- let edition = getEdition();
18
-
19
- let authorList: HTMLDivElement | null = null;
20
- let newAuthor = false;
21
-
22
- $: authorsToShow =
23
- authors.length > 0
24
- ? authors
25
- : inheritedAuthors !== undefined && inheritedAuthors.length > 0
26
- ? inheritedAuthors
27
- : undefined;
28
-
29
- function addAuthor() {
30
- add();
31
- newAuthor = true;
32
- }
33
-
34
- // When there's a new author, focus on it.
35
- afterUpdate(() => {
36
- if (authors.length > 0 && authorList && newAuthor) {
37
- const editors = authorList.querySelectorAll('input');
38
- if (editors.length > 0) {
39
- const lastAuthor = editors[editors.length - 1];
40
- if (lastAuthor instanceof HTMLElement) {
41
- lastAuthor.focus();
42
- }
43
- }
44
- newAuthor = false;
45
- }
46
- });
47
- </script>
48
-
49
- <p class="bookish-authors" bind:this={authorList}>
50
- <!-- Editing and inherited authors? Say they're -->
51
- {#if authorsToShow === undefined}
52
- No authors
53
- {:else}
54
- <em>by </em>
55
- {#each authorsToShow as author, index}
56
- {#if editable}
57
- <TextEditor
58
- text={author}
59
- label={'Author name editor'}
60
- placeholder="author"
61
- valid={() => undefined}
62
- save={(text) =>
63
- /* If text is already empty, remove */ author.length >
64
- 0 && text === ''
65
- ? remove(index)
66
- : edit(index, text)}
67
- />
68
- {:else}
69
- <span
70
- ><Format
71
- node={Parser.parseFormat($edition, author)}
72
- /></span
73
- >
74
- {/if}
75
- {#if index < authors.length - 1},&nbsp{/if}
76
- {/each}
77
- {/if}
78
- {#if editable}
79
- <Note>(edition authors)&nbsp;</Note>
80
- {/if}
81
- {#if editable}
82
- &nbsp;<Button tooltip="add author" command={addAuthor}>+ author</Button>
83
- {/if}
84
- </p>
85
-
86
- <style>
87
- .bookish-authors {
88
- font-family: var(--bookish-header-font-family);
89
- font-style: italic;
90
- margin: 0;
91
- }
92
- </style>
@@ -1,77 +0,0 @@
1
- <script lang="ts">
2
- import Loading from '$lib/components/page/Loading.svelte';
3
- import Feedback from '$lib/components/app/Feedback.svelte';
4
- import { onDestroy } from 'svelte';
5
- import { page } from '$app/stores';
6
- import type Book from '$lib/models/book/Book';
7
- import { getBook, getUser } from '$lib/components/page/Contexts';
8
- import {
9
- listenToBookWithID as listenToBooksWithID,
10
- listenToBooksByName as listenToBooksWithName,
11
- } from '$lib/models/CRUD';
12
- import type { Unsubscribe } from 'firebase/auth';
13
-
14
- let auth = getUser();
15
- let book = getBook();
16
-
17
- // Keep track of the query updates
18
- let booksByName: Book[] | undefined = undefined;
19
- let bookByID: Book | null | undefined = undefined;
20
-
21
- // Mege them together here
22
- $: currentBook =
23
- // Neither loaded? Current book isn't loaded.
24
- booksByName === undefined && bookByID === undefined
25
- ? undefined
26
- : booksByName !== undefined && booksByName.length > 0
27
- ? booksByName[0]
28
- : bookByID ?? null;
29
-
30
- // Whenever the merge changes, update the book store (updating the whole UI)
31
- $: book.set(currentBook ?? undefined);
32
-
33
- // Keep track of listeners to unsubscribe to on page changes.
34
- let nameUnsub: Unsubscribe | undefined = undefined;
35
- let idUnsub: Unsubscribe | undefined = undefined;
36
-
37
- function unsub() {
38
- if (nameUnsub) nameUnsub();
39
- if (idUnsub) idUnsub();
40
- }
41
-
42
- // Keep track of any errors.
43
- let error: string | undefined;
44
-
45
- function listen() {
46
- unsub();
47
- try {
48
- nameUnsub = listenToBooksWithName(
49
- $page.params.bookid,
50
- (books) => (booksByName = books)
51
- );
52
- idUnsub = listenToBooksWithID(
53
- $page.params.bookid,
54
- (book) => (bookByID = book)
55
- );
56
- } catch (err) {
57
- error = '' + err;
58
- }
59
- }
60
-
61
- // When page or auth changes and there's a user, update the listener.
62
- $: if ($page && $auth && $auth.user !== null) listen();
63
-
64
- // When this is unmounted, unset them.
65
- onDestroy(() => {
66
- book.set(undefined);
67
- unsub();
68
- });
69
- </script>
70
-
71
- {#if error || currentBook === null}
72
- <Feedback error>Unable to load book.</Feedback>
73
- {:else if currentBook === undefined}
74
- <Loading />
75
- {:else}
76
- <slot />
77
- {/if}
@@ -1,86 +0,0 @@
1
- <script lang="ts">
2
- import Instructions from './Instructions.svelte';
3
- import {
4
- getUniqueReferenceID,
5
- mineReference,
6
- } from '$lib/util/mineReference';
7
- import Reference from '$lib/models/book/Reference';
8
- import {
9
- getEdition,
10
- isEditionEditable,
11
- isEditionPartiallyEditable,
12
- } from './Contexts';
13
- import Button from '../app/Button.svelte';
14
-
15
- let edition = getEdition();
16
- let text = '';
17
- let editable = isEditionEditable() || isEditionPartiallyEditable();
18
-
19
- function handleBulkAdd() {
20
- // Split by lines, skipping empty lines.
21
- const references = text
22
- .split(/\n+/)
23
- .map((line) =>
24
- mineReference(
25
- Object.keys($edition?.getReferences() ?? []),
26
- line
27
- )
28
- );
29
-
30
- if ($edition) {
31
- edition.set($edition.withNewReferences(references));
32
- text = '';
33
- }
34
- }
35
-
36
- function handleEmptyAdd() {
37
- if ($edition) {
38
- edition.set(
39
- $edition.withNewReferences([
40
- new Reference(
41
- getUniqueReferenceID(
42
- Object.keys($edition.getReferences())
43
- )
44
- ),
45
- ])
46
- );
47
- }
48
- }
49
- </script>
50
-
51
- <Instructions {editable}>
52
- To add references to a chapter, add them here first. You can add one at a
53
- time, or try pasting them in bulk, and this page will try to pull out author
54
- lists, years, sources, and URLs. Be sure to verify it though &mdash; it's
55
- likely to get some things wrong.
56
- </Instructions>
57
-
58
- <textarea rows={5} bind:value={text} style="width: 100%" />
59
- <Button
60
- tooltip="convert to references"
61
- disabled={text.length === 0}
62
- command={handleBulkAdd}>+ bulk references</Button
63
- >
64
- <Button tooltip="add empty reference" command={handleEmptyAdd}
65
- >+ reference</Button
66
- >
67
-
68
- <style>
69
- textarea {
70
- width: 100%;
71
- padding: var(--app-chrome-padding);
72
- font-family: var(--app-font);
73
- font-size: var(--app-font-size);
74
- border: none;
75
- border-top: var(--app-chrome-border-size) solid var(--app-border-color);
76
- border-bottom: var(--app-chrome-border-size) solid
77
- var(--app-border-color);
78
- margin-bottom: var(--app-chrome-padding);
79
- }
80
-
81
- textarea:focus {
82
- border-bottom-color: var(--app-interactive-color);
83
- border-top-color: var(--app-interactive-color);
84
- outline: none;
85
- }
86
- </style>