bookish-press 0.4.1 → 0.4.3

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 (403) hide show
  1. package/README.md +3 -1
  2. package/components/Auth.svelte +27 -24
  3. package/components/Auth.svelte.d.ts +4 -4
  4. package/components/Authentication.d.ts +2 -2
  5. package/components/BookPreview.svelte +75 -59
  6. package/components/BookPreview.svelte.d.ts +5 -5
  7. package/components/External.svelte +1 -1
  8. package/components/External.svelte.d.ts +3 -3
  9. package/components/Link.svelte +49 -3
  10. package/components/Link.svelte.d.ts +3 -4
  11. package/components/app/BookList.svelte +19 -0
  12. package/components/app/BookList.svelte.d.ts +18 -0
  13. package/components/app/Button.svelte +49 -0
  14. package/components/app/Button.svelte.d.ts +22 -0
  15. package/components/app/Feedback.svelte +47 -0
  16. package/components/app/Feedback.svelte.d.ts +18 -0
  17. package/components/app/Head.svelte +15 -0
  18. package/components/app/Head.svelte.d.ts +18 -0
  19. package/components/app/Large.svelte +8 -0
  20. package/components/app/Large.svelte.d.ts +27 -0
  21. package/components/app/Lead.svelte +12 -0
  22. package/components/app/Lead.svelte.d.ts +27 -0
  23. package/components/app/Link.svelte +24 -0
  24. package/components/app/Link.svelte.d.ts +20 -0
  25. package/components/app/Options.svelte +24 -0
  26. package/components/app/Options.svelte.d.ts +19 -0
  27. package/components/app/Paragraph.svelte +20 -0
  28. package/components/app/Paragraph.svelte.d.ts +18 -0
  29. package/components/app/Section.svelte +12 -0
  30. package/components/app/Section.svelte.d.ts +27 -0
  31. package/components/app/Table.svelte +32 -0
  32. package/components/app/Table.svelte.d.ts +27 -0
  33. package/components/app/TextInput.svelte +38 -0
  34. package/components/app/TextInput.svelte.d.ts +22 -0
  35. package/components/chapter/Atom.svelte +20 -6
  36. package/components/chapter/Atom.svelte.d.ts +3 -3
  37. package/components/chapter/Block.svelte +26 -21
  38. package/components/chapter/Block.svelte.d.ts +4 -4
  39. package/components/chapter/Callout.svelte +38 -7
  40. package/components/chapter/Callout.svelte.d.ts +4 -4
  41. package/components/chapter/CaptionedCode.svelte +67 -24
  42. package/components/chapter/CaptionedCode.svelte.d.ts +4 -4
  43. package/components/chapter/ChapterBody.svelte +62 -9
  44. package/components/chapter/ChapterBody.svelte.d.ts +5 -4
  45. package/components/chapter/Citations.svelte +86 -20
  46. package/components/chapter/Citations.svelte.d.ts +4 -4
  47. package/components/chapter/Code.svelte +152 -21
  48. package/components/chapter/Code.svelte.d.ts +3 -3
  49. package/components/chapter/Comment.svelte +39 -17
  50. package/components/chapter/Comment.svelte.d.ts +3 -3
  51. package/components/chapter/Definition.svelte +52 -18
  52. package/components/chapter/Definition.svelte.d.ts +5 -8
  53. package/components/chapter/Embed.svelte +155 -67
  54. package/components/chapter/Embed.svelte.d.ts +6 -4
  55. package/components/chapter/ErrorMessage.svelte +7 -2
  56. package/components/chapter/ErrorMessage.svelte.d.ts +4 -4
  57. package/components/chapter/ExtendedPrism.d.ts +2 -0
  58. package/components/chapter/ExtendedPrism.js +69 -0
  59. package/components/chapter/Figure.svelte +90 -0
  60. package/components/chapter/Figure.svelte.d.ts +24 -0
  61. package/components/chapter/Footnote.svelte +75 -12
  62. package/components/chapter/Footnote.svelte.d.ts +4 -4
  63. package/components/chapter/Format.svelte +63 -38
  64. package/components/chapter/Format.svelte.d.ts +5 -4
  65. package/components/chapter/InlineCode.svelte +16 -6
  66. package/components/chapter/InlineCode.svelte.d.ts +4 -4
  67. package/components/chapter/Label.svelte +38 -9
  68. package/components/chapter/Label.svelte.d.ts +4 -4
  69. package/components/chapter/Link.svelte +24 -19
  70. package/components/chapter/Link.svelte.d.ts +4 -4
  71. package/components/chapter/List.svelte +75 -8
  72. package/components/chapter/List.svelte.d.ts +4 -4
  73. package/components/chapter/Marginal.svelte +169 -27
  74. package/components/chapter/Marginal.svelte.d.ts +6 -3
  75. package/components/chapter/Paragraph.svelte +79 -6
  76. package/components/chapter/Paragraph.svelte.d.ts +4 -4
  77. package/components/chapter/Positioned.svelte +33 -0
  78. package/components/chapter/Positioned.svelte.d.ts +19 -0
  79. package/components/chapter/Problem.svelte +15 -0
  80. package/components/chapter/Problem.svelte.d.ts +27 -0
  81. package/components/chapter/Python.svelte +68 -21
  82. package/components/chapter/Python.svelte.d.ts +4 -4
  83. package/components/chapter/Quote.svelte +64 -11
  84. package/components/chapter/Quote.svelte.d.ts +4 -4
  85. package/components/chapter/Rule.svelte +12 -1
  86. package/components/chapter/Rule.svelte.d.ts +4 -4
  87. package/components/chapter/Table.svelte +36 -25
  88. package/components/chapter/Table.svelte.d.ts +4 -4
  89. package/components/chapter/Text.svelte +61 -36
  90. package/components/chapter/Text.svelte.d.ts +5 -4
  91. package/components/editor/BookishEditor.svelte +373 -244
  92. package/components/editor/BookishEditor.svelte.d.ts +9 -6
  93. package/components/editor/CalloutEditor.svelte +5 -5
  94. package/components/editor/CalloutEditor.svelte.d.ts +4 -4
  95. package/components/editor/CaptionedCodeEditor.svelte +16 -12
  96. package/components/editor/CaptionedCodeEditor.svelte.d.ts +4 -4
  97. package/components/editor/CaretContext.d.ts +48 -16
  98. package/components/editor/CaretState.d.ts +16 -44
  99. package/components/editor/CaretUtilities.d.ts +2 -2
  100. package/components/editor/CaretView.svelte +82 -0
  101. package/components/editor/CaretView.svelte.d.ts +25 -0
  102. package/components/editor/CitationsEditor.svelte +36 -25
  103. package/components/editor/CitationsEditor.svelte.d.ts +4 -4
  104. package/components/editor/Clipboard.d.ts +2 -2
  105. package/components/editor/Command.d.ts +13 -12
  106. package/components/editor/Commands.d.ts +1 -1
  107. package/components/editor/Commands.js +1114 -571
  108. package/components/editor/ConfirmButton.svelte +18 -12
  109. package/components/editor/ConfirmButton.svelte.d.ts +5 -4
  110. package/components/editor/DefinitionEditor.svelte +29 -21
  111. package/components/editor/DefinitionEditor.svelte.d.ts +4 -4
  112. package/components/editor/EmbedEditor.svelte +93 -43
  113. package/components/editor/EmbedEditor.svelte.d.ts +3 -3
  114. package/components/editor/Icon.svelte +17 -0
  115. package/components/editor/Icon.svelte.d.ts +16 -0
  116. package/components/editor/ImageChooser.svelte +53 -34
  117. package/components/editor/ImageChooser.svelte.d.ts +3 -3
  118. package/components/editor/InlineCodeEditor.svelte +7 -4
  119. package/components/editor/InlineCodeEditor.svelte.d.ts +4 -4
  120. package/components/editor/LabelEditor.svelte +20 -11
  121. package/components/editor/LabelEditor.svelte.d.ts +4 -4
  122. package/components/editor/LanguageEditor.svelte +10 -7
  123. package/components/editor/LanguageEditor.svelte.d.ts +3 -3
  124. package/components/editor/LinkEditor.svelte +64 -39
  125. package/components/editor/LinkEditor.svelte.d.ts +4 -4
  126. package/components/editor/Note.svelte +4 -3
  127. package/components/editor/Note.svelte.d.ts +6 -2
  128. package/components/editor/Permissions.svelte +95 -0
  129. package/components/editor/Permissions.svelte.d.ts +20 -0
  130. package/components/editor/PositionEditor.svelte +9 -6
  131. package/components/editor/PositionEditor.svelte.d.ts +4 -4
  132. package/components/editor/QuoteEditor.svelte +7 -2
  133. package/components/editor/QuoteEditor.svelte.d.ts +4 -4
  134. package/components/editor/Switch.svelte +55 -28
  135. package/components/editor/Switch.svelte.d.ts +4 -4
  136. package/components/editor/TableEditor.svelte +10 -0
  137. package/components/editor/TableEditor.svelte.d.ts +17 -0
  138. package/components/editor/TextEditor.svelte +83 -45
  139. package/components/editor/TextEditor.svelte.d.ts +5 -4
  140. package/components/editor/Toggle.svelte +11 -8
  141. package/components/editor/Toggle.svelte.d.ts +4 -4
  142. package/components/editor/Toolbar.svelte +191 -144
  143. package/components/editor/Toolbar.svelte.d.ts +5 -8
  144. package/components/editor/ToolbarGroup.svelte +17 -23
  145. package/components/editor/ToolbarGroup.svelte.d.ts +3 -4
  146. package/components/editor/ToolbarSpacer.svelte +8 -1
  147. package/components/editor/ToolbarSpacer.svelte.d.ts +6 -2
  148. package/components/editor/URLEditor.svelte +6 -8
  149. package/components/editor/URLEditor.svelte.d.ts +3 -3
  150. package/components/editor/UndoState.d.ts +3 -3
  151. package/components/editor/icons/annotate.svg +1 -0
  152. package/components/editor/icons/block.svg +1 -0
  153. package/components/editor/icons/bold.svg +1 -0
  154. package/components/editor/icons/bullets.svg +1 -0
  155. package/components/editor/icons/callout.svg +1 -0
  156. package/components/editor/icons/citation.svg +8 -0
  157. package/components/editor/icons/clear.svg +1 -0
  158. package/components/editor/icons/clipboard.svg +1 -0
  159. package/components/editor/icons/code.svg +1 -0
  160. package/components/editor/icons/columnafter.svg +1 -0
  161. package/components/editor/icons/columnbefore.svg +1 -0
  162. package/components/editor/icons/comment.svg +1 -0
  163. package/components/editor/icons/copy.svg +1 -0
  164. package/components/editor/icons/cut.svg +1 -0
  165. package/components/editor/icons/define.svg +7 -0
  166. package/components/editor/icons/deletecolumn.svg +1 -0
  167. package/components/editor/icons/deleterow.svg +1 -0
  168. package/components/editor/icons/footnote.svg +8 -0
  169. package/components/editor/icons/header1.svg +7 -0
  170. package/components/editor/icons/header2.svg +7 -0
  171. package/components/editor/icons/header3.svg +7 -0
  172. package/components/editor/icons/home.svg +1 -0
  173. package/components/editor/icons/indent.svg +1 -0
  174. package/components/editor/icons/italic.svg +1 -0
  175. package/components/editor/icons/label.svg +1 -0
  176. package/components/editor/icons/left.svg +1 -0
  177. package/components/editor/icons/level.svg +1 -0
  178. package/components/editor/icons/link.svg +1 -0
  179. package/components/editor/icons/list.svg +1 -0
  180. package/components/editor/icons/media.svg +1 -0
  181. package/components/editor/icons/middle.svg +1 -0
  182. package/components/editor/icons/numbers.svg +10 -0
  183. package/components/editor/icons/paragraph.svg +1 -0
  184. package/components/editor/icons/paste.svg +10 -0
  185. package/components/editor/icons/quote.svg +1 -0
  186. package/components/editor/icons/redo.svg +1 -0
  187. package/components/editor/icons/right.svg +1 -0
  188. package/components/editor/icons/rowabove.svg +1 -0
  189. package/components/editor/icons/rowbelow.svg +1 -0
  190. package/components/editor/icons/rule.svg +1 -0
  191. package/components/editor/icons/sub.svg +1 -0
  192. package/components/editor/icons/super.svg +1 -0
  193. package/components/editor/icons/table.svg +1 -0
  194. package/components/editor/icons/text.svg +1 -0
  195. package/components/editor/icons/time.svg +1 -0
  196. package/components/editor/icons/undo.svg +1 -0
  197. package/components/editor/icons/unindent.svg +1 -0
  198. package/components/editor/icons/unlink.svg +1 -0
  199. package/components/page/Acknowledgements.svelte +35 -24
  200. package/components/page/Acknowledgements.svelte.d.ts +4 -4
  201. package/components/page/Authors.svelte +34 -17
  202. package/components/page/Authors.svelte.d.ts +7 -6
  203. package/components/page/BookLoader.svelte +59 -0
  204. package/components/page/BookLoader.svelte.d.ts +16 -0
  205. package/components/page/BulkReferenceEditor.svelte +54 -23
  206. package/components/page/BulkReferenceEditor.svelte.d.ts +4 -4
  207. package/components/page/Chapter.svelte +234 -143
  208. package/components/page/Chapter.svelte.d.ts +3 -3
  209. package/components/page/ChapterContext.d.ts +4 -4
  210. package/components/page/ChapterNumber.svelte +9 -0
  211. package/components/page/ChapterNumber.svelte.d.ts +27 -0
  212. package/components/page/ChapterTitle.svelte +16 -0
  213. package/components/page/ChapterTitle.svelte.d.ts +18 -0
  214. package/components/page/Contexts.d.ts +42 -22
  215. package/components/page/Contexts.js +129 -17
  216. package/components/page/DefinitionView.svelte +129 -90
  217. package/components/page/DefinitionView.svelte.d.ts +3 -3
  218. package/components/page/Description.svelte +31 -19
  219. package/components/page/Description.svelte.d.ts +4 -4
  220. package/components/page/Edition.svelte +135 -81
  221. package/components/page/Edition.svelte.d.ts +5 -6
  222. package/components/page/EditionLoader.svelte +99 -0
  223. package/components/page/EditionLoader.svelte.d.ts +18 -0
  224. package/components/page/Editions.svelte +106 -0
  225. package/components/page/Editions.svelte.d.ts +14 -0
  226. package/components/page/Glossary.svelte +65 -49
  227. package/components/page/Glossary.svelte.d.ts +4 -4
  228. package/components/page/Header.svelte +143 -56
  229. package/components/page/Header.svelte.d.ts +8 -6
  230. package/components/page/Index.svelte +116 -80
  231. package/components/page/Index.svelte.d.ts +4 -4
  232. package/components/page/Instructions.svelte +18 -17
  233. package/components/page/Instructions.svelte.d.ts +6 -4
  234. package/components/page/License.svelte +39 -23
  235. package/components/page/License.svelte.d.ts +4 -4
  236. package/components/page/Loading.svelte +102 -12
  237. package/components/page/Loading.svelte.d.ts +6 -2
  238. package/components/page/Media.svelte +81 -53
  239. package/components/page/Media.svelte.d.ts +4 -4
  240. package/components/page/MediaPreview.svelte +26 -8
  241. package/components/page/MediaPreview.svelte.d.ts +3 -3
  242. package/components/page/Muted.svelte +10 -0
  243. package/components/page/Muted.svelte.d.ts +27 -0
  244. package/components/page/Outline.svelte +279 -59
  245. package/components/page/Outline.svelte.d.ts +3 -3
  246. package/components/page/Page.svelte +40 -9
  247. package/components/page/Page.svelte.d.ts +3 -3
  248. package/components/page/PageHeader.svelte +14 -0
  249. package/components/page/PageHeader.svelte.d.ts +18 -0
  250. package/components/page/PageParagraph.svelte +18 -0
  251. package/components/page/PageParagraph.svelte.d.ts +27 -0
  252. package/components/page/PossibleChapter.svelte +7 -7
  253. package/components/page/PossibleChapter.svelte.d.ts +4 -4
  254. package/components/page/PossibleReference.svelte +6 -11
  255. package/components/page/PossibleReference.svelte.d.ts +6 -7
  256. package/components/page/Print.svelte +27 -3
  257. package/components/page/Print.svelte.d.ts +4 -4
  258. package/components/page/Publish.svelte +134 -0
  259. package/components/page/Publish.svelte.d.ts +14 -0
  260. package/components/page/Reference.svelte +259 -117
  261. package/components/page/Reference.svelte.d.ts +5 -5
  262. package/components/page/References.svelte +45 -48
  263. package/components/page/References.svelte.d.ts +4 -4
  264. package/components/page/Rows.svelte +54 -0
  265. package/components/page/Rows.svelte.d.ts +27 -0
  266. package/components/page/Search.svelte +88 -63
  267. package/components/page/Search.svelte.d.ts +4 -4
  268. package/components/page/Status.svelte +46 -39
  269. package/components/page/Status.svelte.d.ts +4 -9
  270. package/components/page/SubdomainEditor.svelte +41 -27
  271. package/components/page/SubdomainEditor.svelte.d.ts +4 -4
  272. package/components/page/TableOfContents.svelte +264 -191
  273. package/components/page/TableOfContents.svelte.d.ts +4 -4
  274. package/components/page/TableOfContentsImage.svelte +8 -8
  275. package/components/page/TableOfContentsImage.svelte.d.ts +3 -3
  276. package/components/page/TableOfContentsRow.svelte +97 -34
  277. package/components/page/TableOfContentsRow.svelte.d.ts +4 -4
  278. package/components/page/ThemeEditor.svelte +177 -39
  279. package/components/page/ThemeEditor.svelte.d.ts +4 -4
  280. package/components/page/ThemeEditorPreview.svelte +35 -23
  281. package/components/page/ThemeEditorPreview.svelte.d.ts +5 -5
  282. package/components/page/ThemeSetEditor.svelte +15 -13
  283. package/components/page/ThemeSetEditor.svelte.d.ts +4 -4
  284. package/components/page/ThemeVariableEditor.svelte +24 -15
  285. package/components/page/ThemeVariableEditor.svelte.d.ts +3 -3
  286. package/components/page/Title.svelte +12 -0
  287. package/components/page/Title.svelte.d.ts +27 -0
  288. package/components/page/Unknown.svelte +28 -21
  289. package/components/page/Unknown.svelte.d.ts +4 -4
  290. package/components/page/margins.js +50 -33
  291. package/index.d.ts +13 -0
  292. package/index.js +14 -0
  293. package/models/CRUD.d.ts +27 -0
  294. package/models/CRUD.js +262 -0
  295. package/models/Firebase.d.ts +1 -0
  296. package/models/Firebase.js +26 -16
  297. package/models/book/Book.d.ts +40 -39
  298. package/models/book/Book.js +121 -121
  299. package/models/book/BookMedia.d.ts +3 -3
  300. package/models/book/BookMedia.js +22 -16
  301. package/models/book/BookSaveStatus.d.ts +7 -0
  302. package/models/book/BookSaveStatus.js +8 -0
  303. package/models/book/Chapter.d.ts +50 -39
  304. package/models/book/Chapter.js +189 -198
  305. package/models/book/ChapterID.js +7 -7
  306. package/models/book/Definition.d.ts +1 -1
  307. package/models/book/Edition.d.ts +87 -61
  308. package/models/book/Edition.js +460 -309
  309. package/models/book/Reference.d.ts +24 -0
  310. package/models/book/Reference.js +78 -0
  311. package/models/book/Schema.d.ts +168 -0
  312. package/models/book/Schema.js +115 -0
  313. package/models/book/Theme.d.ts +44 -37
  314. package/models/book/Theme.js +452 -52
  315. package/models/book/ThemeColors.d.ts +1 -1
  316. package/models/book/Words.d.ts +2 -0
  317. package/models/book/Words.js +110 -0
  318. package/models/chapter/AtomNode.d.ts +4 -4
  319. package/models/chapter/AtomNode.js +20 -13
  320. package/models/chapter/BlockNode.d.ts +9 -10
  321. package/models/chapter/BlockNode.js +32 -13
  322. package/models/chapter/BlocksNode.d.ts +10 -10
  323. package/models/chapter/BlocksNode.js +315 -120
  324. package/models/chapter/BlocksNode.test.js +494 -228
  325. package/models/chapter/Bookkeeping.d.ts +1 -1
  326. package/models/chapter/CalloutNode.d.ts +3 -3
  327. package/models/chapter/CalloutNode.js +34 -12
  328. package/models/chapter/Caret.d.ts +9 -7
  329. package/models/chapter/Caret.js +11 -6
  330. package/models/chapter/ChapterNode.d.ts +11 -11
  331. package/models/chapter/ChapterNode.js +70 -33
  332. package/models/chapter/CitationsNode.d.ts +3 -3
  333. package/models/chapter/CitationsNode.js +31 -12
  334. package/models/chapter/CodeNode.d.ts +11 -6
  335. package/models/chapter/CodeNode.js +143 -34
  336. package/models/chapter/CommentNode.d.ts +5 -5
  337. package/models/chapter/CommentNode.js +29 -13
  338. package/models/chapter/DefinitionNode.d.ts +2 -2
  339. package/models/chapter/DefinitionNode.js +15 -7
  340. package/models/chapter/Edit.d.ts +3 -3
  341. package/models/chapter/EmbedNode.d.ts +9 -5
  342. package/models/chapter/EmbedNode.js +108 -35
  343. package/models/chapter/ErrorNode.d.ts +2 -2
  344. package/models/chapter/ErrorNode.js +34 -12
  345. package/models/chapter/FootnoteNode.d.ts +5 -5
  346. package/models/chapter/FootnoteNode.js +34 -16
  347. package/models/chapter/FormatNode.d.ts +10 -10
  348. package/models/chapter/FormatNode.js +237 -106
  349. package/models/chapter/FormatNode.test.js +87 -45
  350. package/models/chapter/InlineCodeNode.d.ts +2 -2
  351. package/models/chapter/InlineCodeNode.js +22 -9
  352. package/models/chapter/LabelNode.d.ts +4 -4
  353. package/models/chapter/LabelNode.js +31 -13
  354. package/models/chapter/LinkNode.d.ts +2 -2
  355. package/models/chapter/LinkNode.js +21 -9
  356. package/models/chapter/ListNode.d.ts +8 -8
  357. package/models/chapter/ListNode.js +99 -38
  358. package/models/chapter/ListNode.test.js +29 -24
  359. package/models/chapter/MetadataNode.d.ts +3 -3
  360. package/models/chapter/MetadataNode.js +13 -5
  361. package/models/chapter/Node.d.ts +5 -3
  362. package/models/chapter/Node.js +76 -29
  363. package/models/chapter/Node.test.js +20 -18
  364. package/models/chapter/ParagraphNode.d.ts +6 -6
  365. package/models/chapter/ParagraphNode.js +84 -29
  366. package/models/chapter/ParagraphNode.test.js +22 -13
  367. package/models/chapter/Parser.d.ts +27 -27
  368. package/models/chapter/Parser.js +220 -206
  369. package/models/chapter/Parser.test.js +16 -16
  370. package/models/chapter/Position.d.ts +1 -1
  371. package/models/chapter/QuoteNode.d.ts +6 -6
  372. package/models/chapter/QuoteNode.js +61 -23
  373. package/models/chapter/RootNode.d.ts +4 -4
  374. package/models/chapter/RuleNode.d.ts +2 -2
  375. package/models/chapter/RuleNode.js +31 -11
  376. package/models/chapter/TableNode.d.ts +8 -6
  377. package/models/chapter/TableNode.js +89 -34
  378. package/models/chapter/TableNode.test.js +22 -24
  379. package/models/chapter/TextNode.d.ts +6 -6
  380. package/models/chapter/TextNode.js +72 -32
  381. package/models/chapter/TextNode.test.js +4 -4
  382. package/package.json +108 -26
  383. package/util/getSubdomain.js +8 -6
  384. package/util/isMobile.js +1 -1
  385. package/util/mineReference.d.ts +3 -2
  386. package/util/mineReference.js +67 -29
  387. package/util/scrollToEyeLevel.js +6 -1
  388. package/components/chapter/renderPosition.d.ts +0 -3
  389. package/components/chapter/renderPosition.js +0 -4
  390. package/components/editor/ToolbarIcon.svelte +0 -22
  391. package/components/editor/ToolbarIcon.svelte.d.ts +0 -16
  392. package/components/page/Alert.svelte +0 -11
  393. package/components/page/Alert.svelte.d.ts +0 -23
  394. package/components/page/Revisions.svelte +0 -124
  395. package/components/page/Revisions.svelte.d.ts +0 -14
  396. package/models/BookLoader.d.ts +0 -2
  397. package/models/BookLoader.js +0 -67
  398. package/models/Firestore.d.ts +0 -22
  399. package/models/Firestore.js +0 -194
  400. package/models/chapter/ReferenceNode.d.ts +0 -29
  401. package/models/chapter/ReferenceNode.js +0 -48
  402. package/models/loadEdition.d.ts +0 -5
  403. package/models/loadEdition.js +0 -16
@@ -0,0 +1,9 @@
1
+ <span class="bookish-chapter-number"><slot /></span>
2
+
3
+ <style>
4
+ .bookish-chapter-number {
5
+ font-family: var(--bookish-header-font-family);
6
+ font-weight: normal;
7
+ font-style: italic;
8
+ }
9
+ </style>
@@ -0,0 +1,27 @@
1
+ /** @typedef {typeof __propDef.props} ChapterNumberProps */
2
+ /** @typedef {typeof __propDef.events} ChapterNumberEvents */
3
+ /** @typedef {typeof __propDef.slots} ChapterNumberSlots */
4
+ export default class ChapterNumber extends SvelteComponentTyped<{
5
+ [x: string]: never;
6
+ }, {
7
+ [evt: string]: CustomEvent<any>;
8
+ }, {
9
+ default: {};
10
+ }> {
11
+ }
12
+ export type ChapterNumberProps = typeof __propDef.props;
13
+ export type ChapterNumberEvents = typeof __propDef.events;
14
+ export type ChapterNumberSlots = typeof __propDef.slots;
15
+ import { SvelteComponentTyped } from "svelte";
16
+ declare const __propDef: {
17
+ props: {
18
+ [x: string]: never;
19
+ };
20
+ events: {
21
+ [evt: string]: CustomEvent<any>;
22
+ };
23
+ slots: {
24
+ default: {};
25
+ };
26
+ };
27
+ export {};
@@ -0,0 +1,16 @@
1
+ <script>import Link from '../Link.svelte';
2
+ export let link = undefined;
3
+ </script>
4
+
5
+ {#if link}
6
+ <Link to={link}><h3> <slot /></h3></Link>
7
+ {:else}
8
+ <h3><slot /></h3>
9
+ {/if}
10
+
11
+ <style>
12
+ h3 {
13
+ font-family: var(--bookish-header-font-family);
14
+ margin: 0;
15
+ }
16
+ </style>
@@ -0,0 +1,18 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ link?: string | undefined;
5
+ };
6
+ events: {
7
+ [evt: string]: CustomEvent<any>;
8
+ };
9
+ slots: {
10
+ default: {};
11
+ };
12
+ };
13
+ export type ChapterTitleProps = typeof __propDef.props;
14
+ export type ChapterTitleEvents = typeof __propDef.events;
15
+ export type ChapterTitleSlots = typeof __propDef.slots;
16
+ export default class ChapterTitle extends SvelteComponentTyped<ChapterTitleProps, ChapterTitleEvents, ChapterTitleSlots> {
17
+ }
18
+ export {};
@@ -1,27 +1,47 @@
1
- import type { Writable } from "svelte/store";
2
- import type Book from "../../models/book/Book";
3
- import type Edition from "../../models/book/Edition";
4
- import type Authentication from "../Authentication";
5
- import type CaretContext from "../editor/CaretContext";
6
- import type ChapterContext from "./ChapterContext";
7
- export declare type AuthContext = Writable<Authentication>;
8
- export declare const AUTH: unique symbol;
9
- export declare function getAuth(): AuthContext;
10
- export declare type EditionStore = Writable<Edition>;
11
- export declare const EDITION: unique symbol;
12
- export declare function getEdition(): EditionStore;
13
- export declare type CaretStore = Writable<CaretContext>;
14
- export declare const CARET: unique symbol;
15
- export declare function getCaret(): CaretStore;
16
- export declare type DarkModeStore = Writable<boolean>;
1
+ import { type Writable } from 'svelte/store';
2
+ import type Book from '../../models/book/Book';
3
+ import type Chapter from '../../models/book/Chapter';
4
+ import type BookSaveStatus from '../../models/book/BookSaveStatus';
5
+ import type Edition from '../../models/book/Edition';
6
+ import type Authentication from '../Authentication';
7
+ import type CaretState from '../editor/CaretState';
8
+ import type ChapterContext from './ChapterContext';
9
+ import type { DocumentReference } from 'firebase/firestore';
10
+ export type DarkModeStore = Writable<boolean>;
17
11
  export declare const DARK_MODE: unique symbol;
18
12
  export declare function getDarkMode(): DarkModeStore;
19
- export declare type ChapterStore = Writable<ChapterContext>;
13
+ export type UserStore = Writable<Authentication | undefined>;
14
+ export declare const USER: unique symbol;
15
+ export declare function getUser(): UserStore;
16
+ export type BookStore = Writable<Book | undefined>;
17
+ export declare const BOOK: unique symbol;
18
+ export declare function getBook(): BookStore;
19
+ export type EditionStore = Writable<Edition | undefined>;
20
+ export declare const EDITION: unique symbol;
21
+ export declare function getEdition(): EditionStore;
22
+ export type ChapterText = [DocumentReference, string][];
23
+ export type ChapterTextStore = Writable<ChapterText | undefined>;
24
+ export declare const CHAPTERTEXT: unique symbol;
25
+ export declare function getChapterText(): ChapterTextStore;
26
+ export type ChapterStore = Writable<ChapterContext>;
20
27
  export declare const CHAPTER: unique symbol;
21
28
  export declare function getChapter(): ChapterStore;
22
- export declare const EDITABLE: unique symbol;
23
- export declare function isEditable(): unknown;
29
+ /**
30
+ * Update the edition that contains the chapter, then update the
31
+ * global edition store with the new edition, propogating the changes everywhere.
32
+ */
33
+ export declare function setChapter(store: EditionStore, previous: Chapter, chapter: Chapter): void;
34
+ export declare function isChapterEditable(): boolean;
35
+ export declare function isEditionEditable(): boolean;
36
+ export declare function isEditionPartiallyEditable(): boolean;
37
+ export declare function isBookEditable(): boolean;
24
38
  export declare const BASE: unique symbol;
25
- export declare function getBase(): string;
26
- export declare const BOOK: unique symbol;
27
- export declare function getBook(): Book;
39
+ export type BaseStore = Writable<string>;
40
+ export declare function getBase(): BaseStore;
41
+ export declare const CARET: unique symbol;
42
+ export declare function getCaret(): Writable<CaretState | undefined>;
43
+ export declare const STATUS: unique symbol;
44
+ export type StatusStore = Writable<BookSaveStatus>;
45
+ export declare function getStatus(): StatusStore;
46
+ export declare function lease(authStore: UserStore, editionStore: EditionStore, contentID: string, lock: boolean): Promise<boolean>;
47
+ export declare function getLeasee(authStore: UserStore, editionStore: EditionStore, contentID: string): string | boolean;
@@ -2,20 +2,132 @@
2
2
  // to avoid key collisions and prevent typos. This is partly
3
3
  // future-proofing, but also because getContext<Type>() isn't type safe,
4
4
  // as the resulting value is coerced to Type even if it's not that value.
5
- import { getContext } from "svelte";
6
- export const AUTH = Symbol("auth");
7
- export function getAuth() { return getContext(AUTH); }
8
- export const EDITION = Symbol("edition");
9
- export function getEdition() { return getContext(EDITION); }
10
- export const CARET = Symbol("caret");
11
- export function getCaret() { return getContext(CARET); }
12
- export const DARK_MODE = Symbol("dark");
13
- export function getDarkMode() { return getContext(DARK_MODE); }
14
- export const CHAPTER = Symbol("chapter");
15
- export function getChapter() { return getContext(CHAPTER); }
16
- export const EDITABLE = Symbol("editable");
17
- export function isEditable() { return getContext(EDITABLE); }
18
- export const BASE = Symbol("base");
19
- export function getBase() { return getContext(BASE); }
20
- export const BOOK = Symbol("book");
21
- export function getBook() { return getContext(BOOK); }
5
+ import { getContext } from 'svelte';
6
+ import { get } from 'svelte/store';
7
+ import { page } from '$app/stores';
8
+ import { updateLock } from '../../models/CRUD';
9
+ export const DARK_MODE = Symbol('dark');
10
+ export function getDarkMode() {
11
+ return getContext(DARK_MODE);
12
+ }
13
+ export const USER = Symbol('user');
14
+ export function getUser() {
15
+ return getContext(USER);
16
+ }
17
+ export const BOOK = Symbol('book');
18
+ export function getBook() {
19
+ return getContext(BOOK);
20
+ }
21
+ export const EDITION = Symbol('edition');
22
+ export function getEdition() {
23
+ return getContext(EDITION);
24
+ }
25
+ export const CHAPTERTEXT = Symbol('chaptertext');
26
+ export function getChapterText() {
27
+ return getContext(CHAPTERTEXT);
28
+ }
29
+ export const CHAPTER = Symbol('chapter');
30
+ export function getChapter() {
31
+ return getContext(CHAPTER);
32
+ }
33
+ /**
34
+ * Update the edition that contains the chapter, then update the
35
+ * global edition store with the new edition, propogating the changes everywhere.
36
+ */
37
+ export function setChapter(store, previous, chapter) {
38
+ const edition = get(store);
39
+ if (edition)
40
+ store.set(edition.withRevisedChapter(previous, chapter));
41
+ }
42
+ export function isChapterEditable() {
43
+ if (!get(page).route.id?.startsWith('/write'))
44
+ return false;
45
+ const auth = get(getUser());
46
+ const chapter = get(getChapter());
47
+ const edition = get(getEdition());
48
+ const book = get(getBook());
49
+ return (chapter !== undefined &&
50
+ edition !== undefined &&
51
+ book !== undefined &&
52
+ auth !== undefined &&
53
+ auth.user !== null &&
54
+ (chapter.chapter.isEditor(auth.user.uid) ||
55
+ edition.isEditor(auth.user.uid) ||
56
+ book.isEditor(auth.user.uid)));
57
+ }
58
+ export function isEditionEditable() {
59
+ if (!get(page).route.id?.startsWith('/write'))
60
+ return false;
61
+ const auth = get(getUser());
62
+ const edition = get(getEdition());
63
+ const book = get(getBook());
64
+ return (edition !== undefined &&
65
+ book !== undefined &&
66
+ auth !== undefined &&
67
+ auth.user !== null &&
68
+ (edition.isEditor(auth.user.uid) || book.isEditor(auth.user.uid)));
69
+ }
70
+ export function isEditionPartiallyEditable() {
71
+ if (!get(page).route.id?.startsWith('/write'))
72
+ return false;
73
+ const auth = get(getUser());
74
+ const edition = get(getEdition());
75
+ return (edition !== undefined &&
76
+ auth !== undefined &&
77
+ auth.user !== null &&
78
+ edition.isChapterEditor(auth.user.uid));
79
+ }
80
+ export function isBookEditable() {
81
+ if (!get(page).route.id?.startsWith('/write'))
82
+ return false;
83
+ const auth = get(getUser());
84
+ const book = get(getBook());
85
+ return (book !== undefined &&
86
+ auth !== undefined &&
87
+ auth.user !== null &&
88
+ book.isEditor(auth.user.uid));
89
+ }
90
+ export const BASE = Symbol('base');
91
+ export function getBase() {
92
+ return getContext(BASE);
93
+ }
94
+ export const CARET = Symbol('caret');
95
+ export function getCaret() {
96
+ return getContext(CARET);
97
+ }
98
+ export const STATUS = Symbol('status');
99
+ export function getStatus() {
100
+ return getContext(STATUS);
101
+ }
102
+ export async function lease(authStore, editionStore, contentID, lock) {
103
+ const edition = get(editionStore);
104
+ const auth = get(authStore);
105
+ if (edition && auth && auth.user) {
106
+ await updateLock(edition, auth.user.uid, contentID, lock);
107
+ const latestEdition = get(editionStore);
108
+ const latestAuth = get(authStore);
109
+ if (latestEdition && latestAuth && latestAuth.user) {
110
+ editionStore.set(latestEdition.withLock(latestAuth.user.uid, contentID, lock));
111
+ return true;
112
+ }
113
+ else
114
+ return false;
115
+ }
116
+ else
117
+ return false;
118
+ }
119
+ export function getLeasee(authStore, editionStore, contentID) {
120
+ const edition = get(editionStore);
121
+ const auth = get(authStore);
122
+ if (edition !== undefined && auth !== undefined && auth.user !== null) {
123
+ const leasee = edition.getLeasee(contentID);
124
+ if (leasee === undefined)
125
+ return false;
126
+ else if (leasee === auth.user.uid)
127
+ return true;
128
+ else
129
+ return leasee;
130
+ }
131
+ else
132
+ return false;
133
+ }
@@ -5,17 +5,19 @@ import BookishEditor from '../editor/BookishEditor.svelte';
5
5
  import Format from '../chapter/Format.svelte';
6
6
  import Note from '../editor/Note.svelte';
7
7
  import { afterUpdate } from 'svelte';
8
- import { getEdition, isEditable } from './Contexts';
8
+ import { getUser, getEdition, getLeasee, isChapterEditable, lease, } from './Contexts';
9
+ import Button from '../app/Button.svelte';
9
10
  export let id;
10
11
  export let definition;
12
+ let auth = getUser();
11
13
  let edition = getEdition();
12
- let editable = isEditable();
14
+ let editable = isChapterEditable();
13
15
  // Focus after adding a new synonym.
14
16
  let newSynonym = false;
15
17
  let synonymsEditor = null;
16
18
  afterUpdate(() => {
17
19
  if (newSynonym && synonymsEditor) {
18
- const editors = synonymsEditor.querySelectorAll("input");
20
+ const editors = synonymsEditor.querySelectorAll('input');
19
21
  if (editors.length > 0) {
20
22
  const last = editors[editors.length - 1];
21
23
  if (last instanceof HTMLElement)
@@ -24,106 +26,143 @@ afterUpdate(() => {
24
26
  newSynonym = false;
25
27
  }
26
28
  });
27
- $: format = Parser.parseFormat(undefined, definition.definition).withTextIfEmpty();
28
29
  function addSynonym() {
29
- if ($edition && definition.synonyms) {
30
- $edition.editDefinition(id, {
30
+ if ($edition) {
31
+ edition.set($edition.withEditedDefinition(id, {
31
32
  phrase: definition.phrase,
32
33
  definition: definition.definition,
33
- synonyms: [...definition.synonyms, ""]
34
- });
34
+ synonyms: [...(definition.synonyms ?? []), ''],
35
+ }));
35
36
  }
36
37
  newSynonym = true;
37
38
  }
38
39
  $: syns = definition.synonyms || [];
39
40
  </script>
40
41
 
41
- <tr>
42
- <td>
43
- {#if editable && edition }
44
- <ConfirmButton
45
- commandLabel="x"
46
- confirmLabel="Confirm"
47
- command={() => $edition.removeDefinition(id)}
48
- />
49
- {/if}
50
- {#if editable && edition }
51
- <strong>
42
+ {#if $edition}
43
+ <section class="definition">
44
+ <dt>
45
+ {#if editable}
52
46
  <TextEditor
53
- startText={definition.phrase}
54
- label={'Glossary phrase editor.'}
55
- placeholder="Phrase"
56
- valid={ text => {
57
- if(text.length === 0) return "Phrase can't be empty";
47
+ text={definition.phrase}
48
+ label={'Glossary phrase editor.'}
49
+ placeholder="phrase"
50
+ valid={(text) => {
51
+ if (text.length === 0) return "phrase can't be empty";
58
52
  }}
59
- save={text => $edition.editDefinition(id, {
60
- phrase: text,
61
- definition: definition.definition,
62
- synonyms: definition.synonyms
63
- })}
53
+ save={(text) =>
54
+ $edition
55
+ ? edition.set(
56
+ $edition.withEditedDefinition(id, {
57
+ phrase: text,
58
+ definition: definition.definition,
59
+ synonyms: definition.synonyms,
60
+ })
61
+ )
62
+ : undefined}
64
63
  />
65
- </strong>
66
- {:else}
67
- <strong>{#if definition.phrase }{definition.phrase}{:else}<em>Phrase</em>{/if}</strong>
68
- {/if}
69
- </td>
70
- <td>
71
- {#if editable && edition }
72
- <BookishEditor
73
- ast={format}
74
- save={node => $edition.editDefinition(id, {
75
- phrase: definition.phrase,
76
- definition: node.toBookdown(),
77
- synonyms: definition.synonyms
78
- })}
79
- chapter={false}
80
- component={Format}
81
- placeholder="How would you define this?"
82
- />
83
- {:else}
84
- {#if definition.definition === ""}
64
+ {:else if definition.phrase}{definition.phrase}{:else}<em
65
+ >&mdash;</em
66
+ >{/if}
67
+ {#if editable}
68
+ <ConfirmButton
69
+ tooltip="delete entry {definition.phrase}"
70
+ commandLabel="- definition"
71
+ confirmLabel="confirm"
72
+ command={() =>
73
+ $edition
74
+ ? edition.set($edition.withoutDefinition(id))
75
+ : undefined}
76
+ />
77
+ {/if}
78
+ </dt>
79
+
80
+ <dd class="term">
81
+ {#if editable && edition}
82
+ <BookishEditor
83
+ text={definition.definition}
84
+ parser={(text) =>
85
+ Parser.parseFormat(undefined, text).withTextIfEmpty()}
86
+ save={(node) =>
87
+ $edition
88
+ ? edition.set(
89
+ $edition.withEditedDefinition(id, {
90
+ phrase: definition.phrase,
91
+ definition: node.toBookdown(),
92
+ synonyms: definition.synonyms,
93
+ })
94
+ )
95
+ : undefined}
96
+ chapter={false}
97
+ component={Format}
98
+ placeholder="definition"
99
+ leasee={getLeasee(auth, edition, `definition-${id}`)}
100
+ lease={(lock) =>
101
+ lease(auth, edition, `definition-${id}`, lock)}
102
+ />
103
+ {:else if definition.definition === ''}
85
104
  <em>Definition</em>
86
105
  {:else}
87
- <Format node={format}/>
106
+ <Format
107
+ node={Parser.parseFormat(
108
+ undefined,
109
+ definition.definition
110
+ ).withTextIfEmpty()}
111
+ />
88
112
  {/if}
89
- {/if}
90
- <br/>
91
- {#if edition && editable }
92
- <span bind:this={synonymsEditor}>
93
- <button on:click={addSynonym}>+</button>&nbsp;
94
- {#if syns.length === 0 }
95
- <em>No synonyms</em>
96
- {:else}
97
- {#each syns as syn, index }
98
- <Note>
99
- <TextEditor
100
- startText={syn}
101
- label={'Synonym editor.'}
102
- placeholder="Synonym"
103
- valid={ () => undefined }
104
- save={text => {
105
- const newSyns = [ ...syns ];
106
- // Remove the synonym if it's empty but wasn't before
107
- if(syn.length > 0 && text.length === 0)
108
- newSyns.splice(index, 1);
109
- else
110
- newSyns[index] = text;
111
- return $edition.editDefinition(id, {
112
- phrase: definition.phrase,
113
- definition: definition.definition,
114
- synonyms: newSyns
115
- });
116
- }}
117
- />
118
- </Note>
119
- {#if syns.length > 1 && index < syns.length - 1 },&nbsp;{/if}
120
- {/each}
121
- {/if}
122
- </span>
123
- {:else}
124
- {#if definition.synonyms !== undefined && definition.synonyms.length > 0 }
125
- <Note>{definition.synonyms.join(", ")}</Note>
113
+ {#if edition && editable}
114
+ <span bind:this={synonymsEditor}>
115
+ {#if syns.length === 0}
116
+ <Note>no synonyms</Note>
117
+ {:else}
118
+ {#each syns as syn, index}
119
+ <Note>
120
+ <TextEditor
121
+ text={syn}
122
+ label={'Synonym editor.'}
123
+ placeholder="synonym"
124
+ valid={() => undefined}
125
+ save={(text) => {
126
+ const newSyns = [...syns];
127
+ // Remove the synonym if it's empty but wasn't before
128
+ if (syn.length > 0 && text.length === 0)
129
+ newSyns.splice(index, 1);
130
+ else newSyns[index] = text;
131
+ if ($edition)
132
+ edition.set(
133
+ $edition.withEditedDefinition(
134
+ id,
135
+ {
136
+ phrase: definition.phrase,
137
+ definition:
138
+ definition.definition,
139
+ synonyms: newSyns,
140
+ }
141
+ )
142
+ );
143
+ }}
144
+ />
145
+ </Note>
146
+ {#if syns.length > 1 && index < syns.length - 1},&nbsp;{/if}
147
+ {/each}
148
+ {/if}
149
+ </span>&nbsp;<Button tooltip="add synonym" command={addSynonym}
150
+ >+ synonym</Button
151
+ >
152
+ {:else if definition.synonyms !== undefined && definition.synonyms.length > 0}
153
+ <Note>{definition.synonyms.join(', ')}</Note>
126
154
  {/if}
127
- {/if}
128
- </td>
129
- </tr>
155
+ </dd>
156
+ </section>
157
+ {/if}
158
+
159
+ <style>
160
+ dd {
161
+ margin: 0;
162
+ margin-top: var(--bookish-paragraph-spacing);
163
+ }
164
+
165
+ dt {
166
+ font-weight: bold;
167
+ }
168
+ </style>
@@ -10,9 +10,9 @@ declare const __propDef: {
10
10
  };
11
11
  slots: {};
12
12
  };
13
- export declare type DefinitionViewProps = typeof __propDef.props;
14
- export declare type DefinitionViewEvents = typeof __propDef.events;
15
- export declare type DefinitionViewSlots = typeof __propDef.slots;
13
+ export type DefinitionViewProps = typeof __propDef.props;
14
+ export type DefinitionViewEvents = typeof __propDef.events;
15
+ export type DefinitionViewSlots = typeof __propDef.slots;
16
16
  export default class DefinitionView extends SvelteComponentTyped<DefinitionViewProps, DefinitionViewEvents, DefinitionViewSlots> {
17
17
  }
18
18
  export {};
@@ -1,22 +1,34 @@
1
- <script>import Parser from "../../models/chapter/Parser";
2
- import ChapterBody from "../chapter/ChapterBody.svelte";
3
- import BookishEditor from "../editor/BookishEditor.svelte";
4
- import { getEdition, isEditable } from "./Contexts";
5
- let editable = isEditable();
1
+ <script>import Parser from '../../models/chapter/Parser';
2
+ import ChapterBody from '../chapter/ChapterBody.svelte';
3
+ import BookishEditor from '../editor/BookishEditor.svelte';
4
+ import { getUser, getEdition, getLeasee, isEditionEditable, lease, } from './Contexts';
5
+ let auth = getUser();
6
+ let editable = isEditionEditable();
6
7
  let edition = getEdition();
7
- $: descriptionNode = Parser.parseChapter($edition, $edition.getDescription());
8
8
  </script>
9
9
 
10
- <div class="bookish-description">
11
- {#if editable}
12
- <BookishEditor
13
- ast={descriptionNode}
14
- save={node => $edition.setDescription(node.toBookdown())}
15
- chapter={false}
16
- component={ChapterBody}
17
- placeholder="What this book about?"
18
- />
19
- {:else}
20
- <ChapterBody node={descriptionNode}/>
21
- {/if}
22
- </div>
10
+ {#if $edition}
11
+ <section class="bookish-description">
12
+ {#if editable}
13
+ <BookishEditor
14
+ text={$edition.getDescription()}
15
+ parser={(text) => Parser.parseChapter($edition, text)}
16
+ save={(node) =>
17
+ $edition
18
+ ? edition.set(
19
+ $edition?.setDescription(node.toBookdown())
20
+ )
21
+ : undefined}
22
+ chapter={false}
23
+ component={ChapterBody}
24
+ placeholder="book description"
25
+ leasee={getLeasee(auth, edition, `description`)}
26
+ lease={(lock) => lease(auth, edition, `description`, lock)}
27
+ />
28
+ {:else}
29
+ <ChapterBody
30
+ node={Parser.parseChapter($edition, $edition.getDescription())}
31
+ />
32
+ {/if}
33
+ </section>
34
+ {/if}
@@ -1,14 +1,14 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
- props: {};
3
+ props: Record<string, never>;
4
4
  events: {
5
5
  [evt: string]: CustomEvent<any>;
6
6
  };
7
7
  slots: {};
8
8
  };
9
- export declare type DescriptionProps = typeof __propDef.props;
10
- export declare type DescriptionEvents = typeof __propDef.events;
11
- export declare type DescriptionSlots = typeof __propDef.slots;
9
+ export type DescriptionProps = typeof __propDef.props;
10
+ export type DescriptionEvents = typeof __propDef.events;
11
+ export type DescriptionSlots = typeof __propDef.slots;
12
12
  export default class Description extends SvelteComponentTyped<DescriptionProps, DescriptionEvents, DescriptionSlots> {
13
13
  }
14
14
  export {};