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
@@ -0,0 +1,135 @@
1
+ <script>import Parser from '../../models/chapter/Parser';
2
+ import BookishEditor from '../editor/BookishEditor.svelte';
3
+ import Switch from '../editor/Switch.svelte';
4
+ import { getUser, getEdition, getLeasee, isEditionEditable, lease, } from './Contexts';
5
+ import Format from '../chapter/Format.svelte';
6
+ import Note from '../editor/Note.svelte';
7
+ import Instructions from './Instructions.svelte';
8
+ import Link from '../Link.svelte';
9
+ import { PUBLIC_CONTEXT } from '$env/static/public';
10
+ import Button from '../app/Button.svelte';
11
+ import { publish } from '../../models/CRUD';
12
+ import Feedback from '../app/Feedback.svelte';
13
+ let auth = getUser();
14
+ let edition = getEdition();
15
+ let editable = isEditionEditable();
16
+ let publishing = false;
17
+ let feedback = undefined;
18
+ let error = undefined;
19
+ let url = undefined;
20
+ async function requestPublish() {
21
+ if ($edition) {
22
+ publishing = true;
23
+ error = undefined;
24
+ feedback = 'Binding the book, this could take a minute...';
25
+ try {
26
+ const result = await publish($edition);
27
+ if (typeof result === 'string') {
28
+ error = result;
29
+ feedback = undefined;
30
+ }
31
+ else {
32
+ url = result.url;
33
+ }
34
+ }
35
+ catch (err) {
36
+ console.log(err);
37
+ feedback = undefined;
38
+ error = 'Unable to bundle the book for download :(';
39
+ }
40
+ finally {
41
+ publishing = false;
42
+ }
43
+ }
44
+ }
45
+ let publisher = undefined;
46
+ $: {
47
+ if ($auth && $auth.user)
48
+ updateUserClaims();
49
+ }
50
+ async function updateUserClaims() {
51
+ if ($auth === undefined || $auth.user === null)
52
+ return;
53
+ const token = await $auth.user.getIdTokenResult();
54
+ publisher =
55
+ 'publisher' in token.claims && token.claims.publisher === true;
56
+ }
57
+ </script>
58
+
59
+ {#if $edition && (publisher === true || PUBLIC_CONTEXT === 'local')}
60
+ <Instructions {editable}>
61
+ Ready to publish this edition? Write a summary then hit the switch.
62
+ </Instructions>
63
+
64
+ <div class="publisher">
65
+ <div class="summary">
66
+ <BookishEditor
67
+ text={$edition.summary}
68
+ parser={(text) =>
69
+ Parser.parseFormat(undefined, text).withTextIfEmpty()}
70
+ save={(newSummary) =>
71
+ $edition
72
+ ? edition.set(
73
+ $edition.withSummary(newSummary.toBookdown())
74
+ )
75
+ : undefined}
76
+ chapter={false}
77
+ component={Format}
78
+ placeholder="Summarize this edition's changes to publish."
79
+ leasee={getLeasee(auth, edition, 'summary')}
80
+ lease={(lock) => lease(auth, edition, 'summary', lock)}
81
+ />
82
+ </div>
83
+ <Switch
84
+ options={['hidden', 'published']}
85
+ enabled={$edition.published !== null || $edition.summary.length > 0}
86
+ value={$edition.published !== null ? 'published' : 'hidden'}
87
+ edit={(published) =>
88
+ $edition
89
+ ? edition.set(
90
+ $edition.asPublished(published === 'published')
91
+ )
92
+ : undefined}
93
+ />
94
+ <!-- Disabled until we can find a way to properly build the book in a cloud function. -->
95
+ <!-- <Button
96
+ tooltip="Publish the book online"
97
+ disabled={publishing}
98
+ command={() => requestPublish()}>↓ download</Button
99
+ > -->
100
+ </div>
101
+ {#if error}
102
+ <Feedback error>{error}</Feedback>
103
+ {:else if url}
104
+ <p>Your book is <Link to={url}>ready for download</Link>.</p>
105
+ {:else if feedback}
106
+ <Feedback>{feedback}</Feedback>
107
+ {/if}
108
+ <div>
109
+ <Note
110
+ >{#if $edition.published}Last published {new Date(
111
+ $edition.published
112
+ ).toLocaleDateString('en-us')}{/if}</Note
113
+ >
114
+ </div>
115
+ {:else}
116
+ <Instructions {editable}>
117
+ You don't yet have publishing privileges. <Link
118
+ to="mailto:amy@amyjko.com">Write Amy</Link
119
+ > to schedule a chat about your book and ask for publishing privileges.
120
+ </Instructions>
121
+ {/if}
122
+
123
+ <style>
124
+ .publisher {
125
+ display: flex;
126
+ flex-direction: row;
127
+ flex-wrap: nowrap;
128
+ width: 100%;
129
+ align-items: baseline;
130
+ }
131
+
132
+ .summary {
133
+ flex: 1;
134
+ }
135
+ </style>
@@ -0,0 +1,14 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: Record<string, never>;
4
+ events: {
5
+ [evt: string]: CustomEvent<any>;
6
+ };
7
+ slots: {};
8
+ };
9
+ export type PublishProps = typeof __propDef.props;
10
+ export type PublishEvents = typeof __propDef.events;
11
+ export type PublishSlots = typeof __propDef.slots;
12
+ export default class Publish extends SvelteComponentTyped<PublishProps, PublishEvents, PublishSlots> {
13
+ }
14
+ export {};
@@ -5,12 +5,12 @@ import Button from '../app/Button.svelte';
5
5
  import Table from '../app/Table.svelte';
6
6
  import ConfirmButton from '../editor/ConfirmButton.svelte';
7
7
  import TextEditor from '../editor/TextEditor.svelte';
8
- import { getEdition, isEditable } from './Contexts';
8
+ import { getEdition, isEditionEditable } from './Contexts';
9
9
  import Link from '../Link.svelte';
10
10
  import Note from '../editor/Note.svelte';
11
- import Parser from '../../models/chapter/Parser';
12
11
  export let reference;
13
- let editable = isEditable();
12
+ export let edit = false;
13
+ let editable = isEditionEditable();
14
14
  let edition = getEdition();
15
15
  let editing = false;
16
16
  function startEditing() {
@@ -34,22 +34,6 @@ function move(field, direction) {
34
34
  }
35
35
  </script>
36
36
 
37
- {#if editable && !reference.short}
38
- <ConfirmButton
39
- tooltip="delete reference {reference.title}"
40
- commandLabel="- reference"
41
- confirmLabel="Confirm"
42
- command={() =>
43
- $edition
44
- ? edition.set($edition.withoutReference(reference.citationID))
45
- : undefined}
46
- />
47
- <Button
48
- tooltip="stop editing reference"
49
- command={() => (editing ? stopEditing() : startEditing())}
50
- >{editing ? 'done' : 'edit'}</Button
51
- >
52
- {/if}
53
37
  <!-- If a short version was requested, try to abbreviate the authors. -->
54
38
  {#if reference.short}
55
39
  {@const authorList = reference.authors.split(',')}
@@ -70,22 +54,7 @@ function move(field, direction) {
70
54
  {reference.title.charAt(reference.title.length - 1) === '?' ? '' : '.'}
71
55
  <em>{reference.source}</em>
72
56
  </p>
73
- {:else if !editable || !editing}
74
- <!-- If not editable, just render the reference. -->
75
- <p class="reference">
76
- {#if reference.authors}{reference.authors}{:else}<em>Authors</em>{/if}
77
- {#if reference.year}({reference.year}){:else}<em>Year</em>{/if}. {#if reference.url === null || reference.url.length === 0}{#if reference.title}{reference.title}{:else}<em
78
- >Title</em
79
- >{/if}{:else}<Link to={reference.url}
80
- >{#if reference.title}{reference.title}{:else}<em>Title</em
81
- >{/if}</Link
82
- >{/if}.<em
83
- >&nbsp;{#if reference.source}{reference.source}{:else}Source{/if}</em
84
- >.
85
- {#if reference.summary}<aside class="summary">{reference.summary}</aside
86
- >{/if}
87
- </p>
88
- {:else}
57
+ {:else if editable && edit && editing}
89
58
  <!-- If editable, place in rows to make room for text editors to not have to wrap. -->
90
59
  <Table>
91
60
  <!-- CitationID -->
@@ -94,8 +63,8 @@ function move(field, direction) {
94
63
  <td>
95
64
  <TextEditor
96
65
  text={reference.citationID}
97
- label={'Citation ID'}
98
- placeholder="Citation ID"
66
+ label={'reference ID'}
67
+ placeholder="reference ID"
99
68
  saveOnExit
100
69
  valid={(text) => {
101
70
  if (text.length === 0)
@@ -128,8 +97,8 @@ function move(field, direction) {
128
97
  <td>
129
98
  <TextEditor
130
99
  text={reference.authors}
131
- label={'Author list editor.'}
132
- placeholder="Authors"
100
+ label={'author list editor'}
101
+ placeholder="authors"
133
102
  valid={(text) => {
134
103
  if (text.length === 0) return "Authors can't be empty.";
135
104
  }}
@@ -151,8 +120,8 @@ function move(field, direction) {
151
120
  <td>
152
121
  <TextEditor
153
122
  text={reference.year}
154
- label={'Year editor.'}
155
- placeholder="Year"
123
+ label={'year editor'}
124
+ placeholder="year"
156
125
  valid={(text) => {
157
126
  if (text.length === 0) return "Year can't be empty";
158
127
  if (!/1?[0-9)[0-9]{2}/.test(text))
@@ -176,8 +145,8 @@ function move(field, direction) {
176
145
  <td>
177
146
  <TextEditor
178
147
  text={reference.title}
179
- label={'Title editor.'}
180
- placeholder="Title"
148
+ label={'title editor'}
149
+ placeholder="title"
181
150
  valid={(text) => {
182
151
  if (text.length === 0) return "Title can't be empty.";
183
152
  }}
@@ -200,8 +169,8 @@ function move(field, direction) {
200
169
  <em>
201
170
  <TextEditor
202
171
  text={reference.source}
203
- label={'Source editor.'}
204
- placeholder="Source"
172
+ label={'source editor'}
173
+ placeholder="source"
205
174
  valid={(text) => {
206
175
  if (text.length === 0)
207
176
  return "Source can't be empty";
@@ -225,8 +194,8 @@ function move(field, direction) {
225
194
  <td>
226
195
  <TextEditor
227
196
  text={reference.url}
228
- label={'URL editor.'}
229
- placeholder="URL"
197
+ label={'url editor'}
198
+ placeholder="url"
230
199
  valid={() => undefined}
231
200
  save={(text) =>
232
201
  $edition
@@ -245,8 +214,8 @@ function move(field, direction) {
245
214
  <td>
246
215
  <TextEditor
247
216
  text={reference.summary}
248
- label={'Summary editor.'}
249
- placeholder="Summary"
217
+ label={'summary editor'}
218
+ placeholder="summary"
250
219
  valid={() => undefined}
251
220
  save={(text) =>
252
221
  $edition
@@ -261,13 +230,47 @@ function move(field, direction) {
261
230
  </td>
262
231
  </tr>
263
232
  </Table>
233
+ {:else}
234
+ <!-- If not editable, just render the reference. -->
235
+ <p class="reference">
236
+ {#if reference.authors}{reference.authors}{:else}<em>Authors</em>{/if}
237
+ {#if reference.year}({reference.year}){:else}<em>Year</em>{/if}. {#if reference.url === null || reference.url.length === 0}{#if reference.title}{reference.title}{:else}<em
238
+ >Title</em
239
+ >{/if}{:else}<Link to={reference.url}
240
+ >{#if reference.title}{reference.title}{:else}<em>Title</em
241
+ >{/if}</Link
242
+ >{/if}.<em
243
+ >&nbsp;{#if reference.source}{reference.source}{:else}Source{/if}</em
244
+ >.
245
+ {#if reference.summary}<aside class="summary">{reference.summary}</aside
246
+ >{/if}
247
+ </p>
248
+ {/if}
249
+ {#if edit && editable && !reference.short}
250
+ <ConfirmButton
251
+ tooltip="delete reference {reference.title}"
252
+ confirm="delete reference..."
253
+ command={() =>
254
+ $edition
255
+ ? edition.set($edition.withoutReference(reference.citationID))
256
+ : undefined}>⨉</ConfirmButton
257
+ >
258
+ <Button
259
+ tooltip="stop editing reference"
260
+ command={() => (editing ? stopEditing() : startEditing())}
261
+ >{editing ? 'done' : 'edit'}</Button
262
+ >
264
263
  {/if}
265
264
 
266
265
  <style>
267
266
  .reference {
268
- line-height: var(--bookish-paragraph-line-height);
267
+ line-height: var(--bookish-paragraph-line-height-tight);
268
+ margin-top: 0;
269
+ }
270
+
271
+ p {
269
272
  margin-top: 0;
270
- margin-bottom: var(--bookish-header-spacing);
273
+ margin-bottom: 0;
271
274
  }
272
275
 
273
276
  .reference .summary {
@@ -3,6 +3,7 @@ import Reference from '../../models/book/Reference';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  reference: Reference;
6
+ edit?: boolean | undefined;
6
7
  };
7
8
  events: {
8
9
  [evt: string]: CustomEvent<any>;
@@ -1,13 +1,13 @@
1
1
  <script>import Header from './Header.svelte';
2
2
  import Outline from './Outline.svelte';
3
3
  import Page from './Page.svelte';
4
- import Parser from '../../models/chapter/Parser';
5
4
  import ChapterIDs from '../../models/book/ChapterID';
6
5
  import BulkReferenceEditor from './BulkReferenceEditor.svelte';
7
6
  import PossibleReference from './PossibleReference.svelte';
8
- import { getEdition, isEditable } from './Contexts';
7
+ import { getUser, getEdition, isEditionEditable } from './Contexts';
8
+ let auth = getUser();
9
9
  let edition = getEdition();
10
- let editable = isEditable();
10
+ let editable = isEditionEditable();
11
11
  $: references = $edition?.hasReferences() ? $edition.getReferences() : null;
12
12
  // Otherwise, map references to a list with letter headers.
13
13
  if (references !== null) {
@@ -17,7 +17,12 @@ if (references !== null) {
17
17
  {#if $edition}
18
18
  <Page title={`${$edition.getTitle()} - References`}>
19
19
  <Header
20
+ editable={isEditionEditable() ||
21
+ ($auth !== undefined &&
22
+ $auth.user !== null &&
23
+ $edition.isChapterEditor($auth.user.uid))}
20
24
  label="References title"
25
+ id="references"
21
26
  getImage={() => $edition?.getImage(ChapterIDs.ReferencesID) ?? null}
22
27
  setImage={(embed) =>
23
28
  $edition
@@ -41,7 +46,7 @@ if (references !== null) {
41
46
  <p><em>Sorted by last name of first author.</em></p>
42
47
 
43
48
  {#each Object.keys(references).sort() as citationID (citationID)}
44
- <PossibleReference node={references[citationID]} />
49
+ <PossibleReference node={references[citationID]} edit />
45
50
  {/each}
46
51
  {:else}
47
52
  <p>This book has no references.</p>
@@ -4,7 +4,7 @@ import Page from './Page.svelte';
4
4
  import Link from '../Link.svelte';
5
5
  import Chapter from '../../models/book/Chapter';
6
6
  import ChapterIDs from '../../models/book/ChapterID';
7
- import { getBase, getEdition } from './Contexts';
7
+ import { getBase, getEdition, isEditionEditable } from './Contexts';
8
8
  import TextInput from '../app/TextInput.svelte';
9
9
  import ChapterTitle from './ChapterTitle.svelte';
10
10
  import ChapterNumber from './ChapterNumber.svelte';
@@ -45,7 +45,7 @@ $: {
45
45
  .toLowerCase()
46
46
  .indexOf(lowerQuery);
47
47
  results.push({
48
- link: `${$base}${chapter.getID()}?word=${match.match.toLowerCase()}&number=${index}`,
48
+ link: `${$base}/${chapter.getID()}?word=${match.match.toLowerCase()}&number=${index}`,
49
49
  left: match.left +
50
50
  match.match.substring(0, start),
51
51
  match: match.match.substring(start, start + query.length),
@@ -61,6 +61,7 @@ $: {
61
61
  {#if $edition}
62
62
  <Page title={`${$edition.getTitle()} - Search`}>
63
63
  <Header
64
+ editable={isEditionEditable()}
64
65
  label="Search title"
65
66
  getImage={() => $edition?.getImage(ChapterIDs.SearchID) ?? null}
66
67
  setImage={(embed) =>
@@ -70,6 +71,7 @@ $: {
70
71
  )
71
72
  : undefined}
72
73
  header="Search"
74
+ id="search"
73
75
  tags={$edition.getTags()}
74
76
  >
75
77
  <Outline
@@ -84,14 +86,12 @@ $: {
84
86
  this book:
85
87
  </p>
86
88
 
87
- <p>
88
- <TextInput
89
- type="text"
90
- placeholder={'search for a word'}
91
- disabled={false}
92
- bind:text={query}
93
- />
94
- </p>
89
+ <input
90
+ class="query"
91
+ type="text"
92
+ placeholder="search for a word"
93
+ bind:value={query}
94
+ />
95
95
 
96
96
  {#if query.trim() !== ''}
97
97
  {#if query.trim().length < 3}
@@ -129,3 +129,20 @@ $: {
129
129
  {/if}
130
130
  </Page>
131
131
  {/if}
132
+
133
+ <style>
134
+ .query {
135
+ font-family: var(--bookish-header-font-family);
136
+ font-size: var(--bookish-header-font-size);
137
+ border: none;
138
+ border-bottom: 3px solid var(--bookish-border-color-light);
139
+ padding: var(--bookish-inline-padding);
140
+ display: inline-block;
141
+ margin-top: 2em;
142
+ }
143
+
144
+ .query:focus {
145
+ outline: none;
146
+ border-color: var(--bookish-highlight-color);
147
+ }
148
+ </style>
@@ -0,0 +1,58 @@
1
+ <script>import BookSaveStatus from '../../models/book/BookSaveStatus';
2
+ import { getStatus } from './Contexts';
3
+ let status = getStatus();
4
+ </script>
5
+
6
+ <small
7
+ class={`status ${
8
+ $status === BookSaveStatus.Saving
9
+ ? 'saving'
10
+ : $status === BookSaveStatus.Error
11
+ ? 'error'
12
+ : ''
13
+ }`}
14
+ >
15
+ {$status === BookSaveStatus.Changed
16
+ ? '\u270E Editing'
17
+ : $status === BookSaveStatus.Saving
18
+ ? '\u2026 Saving'
19
+ : $status === BookSaveStatus.Saved
20
+ ? '\u2713 Saved'
21
+ : $status === BookSaveStatus.Error
22
+ ? '\u2715 Not saved'
23
+ : ''}
24
+ </small>
25
+
26
+ <style>
27
+ .status {
28
+ color: var(--app-font-color-inverted);
29
+ font-family: var(--app-font);
30
+ white-space: nowrap;
31
+ background-color: var(--app-interactive-color);
32
+ padding-left: calc(var(--app-chrome-padding));
33
+ padding-right: calc(var(--app-chrome-padding));
34
+ padding-top: calc(var(--app-chrome-padding) / 3);
35
+ padding-bottom: calc(var(--app-chrome-padding) / 3);
36
+ border-radius: var(--app-chrome-roundedness);
37
+ }
38
+
39
+ .error {
40
+ background-color: var(--app-error-color);
41
+ }
42
+
43
+ .saving {
44
+ background-color: var(--app-muted-color);
45
+ }
46
+
47
+ @keyframes waiting {
48
+ 0% {
49
+ transform: rotate(-3deg);
50
+ }
51
+ 50% {
52
+ transform: rotate(3deg);
53
+ }
54
+ 100% {
55
+ transform: rotate(-3deg);
56
+ }
57
+ }
58
+ </style>
@@ -1,5 +1,6 @@
1
1
  <script>import TextEditor from '../editor/TextEditor.svelte';
2
2
  import { isSubdomainAvailable } from '../../models/CRUD';
3
+ import Note from '../editor/Note.svelte';
3
4
  import { getBook } from './Contexts';
4
5
  import Muted from './Muted.svelte';
5
6
  let book = getBook();
@@ -7,6 +8,7 @@ const invalidNames = [
7
8
  'email',
8
9
  'login',
9
10
  'confirm',
11
+ 'about',
10
12
  'read',
11
13
  'write',
12
14
  ];
@@ -14,7 +16,7 @@ const invalidNames = [
14
16
 
15
17
  {#if $book}
16
18
  <Muted>
17
- <TextEditor
19
+ <em>bookish.press/</em><TextEditor
18
20
  text={$book.getSubdomain() ?? ''}
19
21
  label="Book domain editor"
20
22
  save={// Save the new domain
@@ -25,7 +27,7 @@ const invalidNames = [
25
27
  else throw Error("Domain isn't available");
26
28
  }
27
29
  }}
28
- placeholder="URL name"
30
+ placeholder="book name"
29
31
  valid={(newDomain) =>
30
32
  // If not the empty string, must be a valid URL subdomain, and none of the existing routes.
31
33
  invalidNames.includes(newDomain) ||
@@ -33,7 +35,7 @@ const invalidNames = [
33
35
  !/^[A-Za-z0-9](?:[A-Za-z0-9\-]{0,61}[A-Za-z0-9])?$/.test(
34
36
  newDomain
35
37
  ))
36
- ? `Book domains must be fewer than 63 characters, made of symbols a-z, A-Z, and 0-9, and not one of ${invalidNames.join(
38
+ ? `Book IDs must be fewer than 63 characters, made of symbols a-z, A-Z, and 0-9, and not one of ${invalidNames.join(
37
39
  ', '
38
40
  )}.`
39
41
  : undefined}