bookish-press 0.4.0 → 0.4.16

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 (394) hide show
  1. package/README.md +3 -1
  2. package/components/Auth.svelte +19 -14
  3. package/components/Auth.svelte.d.ts +4 -4
  4. package/components/Authentication.d.ts +2 -2
  5. package/components/BookPreview.svelte +77 -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 +45 -0
  16. package/components/app/Feedback.svelte.d.ts +18 -0
  17. package/components/app/Head.svelte +12 -0
  18. package/components/app/Head.svelte.d.ts +27 -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 +19 -0
  28. package/components/app/Paragraph.svelte.d.ts +18 -0
  29. package/components/app/Table.svelte +32 -0
  30. package/components/app/Table.svelte.d.ts +27 -0
  31. package/components/app/TextInput.svelte +37 -0
  32. package/components/app/TextInput.svelte.d.ts +22 -0
  33. package/components/app/Writing.svelte +13 -0
  34. package/components/app/Writing.svelte.d.ts +27 -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 +23 -20
  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 +66 -23
  42. package/components/chapter/CaptionedCode.svelte.d.ts +4 -4
  43. package/components/chapter/ChapterBody.svelte +61 -9
  44. package/components/chapter/ChapterBody.svelte.d.ts +4 -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 +38 -16
  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 +154 -66
  54. package/components/chapter/Embed.svelte.d.ts +5 -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 +60 -37
  64. package/components/chapter/Format.svelte.d.ts +4 -4
  65. package/components/chapter/InlineCode.svelte +15 -5
  66. package/components/chapter/InlineCode.svelte.d.ts +4 -4
  67. package/components/chapter/Label.svelte +37 -8
  68. package/components/chapter/Label.svelte.d.ts +4 -4
  69. package/components/chapter/Link.svelte +23 -18
  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 +74 -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 +343 -237
  92. package/components/editor/BookishEditor.svelte.d.ts +5 -5
  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 +80 -0
  101. package/components/editor/CaretView.svelte.d.ts +24 -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 +3 -3
  127. package/components/editor/Note.svelte.d.ts +6 -2
  128. package/components/editor/PositionEditor.svelte +9 -6
  129. package/components/editor/PositionEditor.svelte.d.ts +4 -4
  130. package/components/editor/QuoteEditor.svelte +7 -2
  131. package/components/editor/QuoteEditor.svelte.d.ts +4 -4
  132. package/components/editor/Switch.svelte +55 -28
  133. package/components/editor/Switch.svelte.d.ts +4 -4
  134. package/components/editor/TableEditor.svelte +10 -0
  135. package/components/editor/TableEditor.svelte.d.ts +17 -0
  136. package/components/editor/TextEditor.svelte +83 -45
  137. package/components/editor/TextEditor.svelte.d.ts +5 -4
  138. package/components/editor/Toggle.svelte +11 -8
  139. package/components/editor/Toggle.svelte.d.ts +4 -4
  140. package/components/editor/Toolbar.svelte +192 -144
  141. package/components/editor/Toolbar.svelte.d.ts +5 -8
  142. package/components/editor/ToolbarGroup.svelte +18 -23
  143. package/components/editor/ToolbarGroup.svelte.d.ts +3 -4
  144. package/components/editor/ToolbarSpacer.svelte +8 -1
  145. package/components/editor/ToolbarSpacer.svelte.d.ts +6 -2
  146. package/components/editor/URLEditor.svelte +6 -8
  147. package/components/editor/URLEditor.svelte.d.ts +3 -3
  148. package/components/editor/UndoState.d.ts +3 -3
  149. package/components/editor/icons/annotate.svg +1 -0
  150. package/components/editor/icons/block.svg +1 -0
  151. package/components/editor/icons/bold.svg +1 -0
  152. package/components/editor/icons/bullets.svg +1 -0
  153. package/components/editor/icons/callout.svg +1 -0
  154. package/components/editor/icons/citation.svg +8 -0
  155. package/components/editor/icons/clear.svg +1 -0
  156. package/components/editor/icons/clipboard.svg +1 -0
  157. package/components/editor/icons/code.svg +1 -0
  158. package/components/editor/icons/columnafter.svg +1 -0
  159. package/components/editor/icons/columnbefore.svg +1 -0
  160. package/components/editor/icons/comment.svg +1 -0
  161. package/components/editor/icons/copy.svg +1 -0
  162. package/components/editor/icons/cut.svg +1 -0
  163. package/components/editor/icons/define.svg +7 -0
  164. package/components/editor/icons/deletecolumn.svg +1 -0
  165. package/components/editor/icons/deleterow.svg +1 -0
  166. package/components/editor/icons/footnote.svg +8 -0
  167. package/components/editor/icons/header1.svg +7 -0
  168. package/components/editor/icons/header2.svg +7 -0
  169. package/components/editor/icons/header3.svg +7 -0
  170. package/components/editor/icons/home.svg +1 -0
  171. package/components/editor/icons/indent.svg +1 -0
  172. package/components/editor/icons/italic.svg +1 -0
  173. package/components/editor/icons/label.svg +1 -0
  174. package/components/editor/icons/left.svg +1 -0
  175. package/components/editor/icons/level.svg +1 -0
  176. package/components/editor/icons/link.svg +1 -0
  177. package/components/editor/icons/list.svg +1 -0
  178. package/components/editor/icons/media.svg +1 -0
  179. package/components/editor/icons/middle.svg +1 -0
  180. package/components/editor/icons/numbers.svg +10 -0
  181. package/components/editor/icons/paragraph.svg +1 -0
  182. package/components/editor/icons/paste.svg +10 -0
  183. package/components/editor/icons/quote.svg +1 -0
  184. package/components/editor/icons/redo.svg +1 -0
  185. package/components/editor/icons/right.svg +1 -0
  186. package/components/editor/icons/rowabove.svg +1 -0
  187. package/components/editor/icons/rowbelow.svg +1 -0
  188. package/components/editor/icons/rule.svg +1 -0
  189. package/components/editor/icons/sub.svg +1 -0
  190. package/components/editor/icons/super.svg +1 -0
  191. package/components/editor/icons/table.svg +1 -0
  192. package/components/editor/icons/text.svg +1 -0
  193. package/components/editor/icons/time.svg +1 -0
  194. package/components/editor/icons/undo.svg +1 -0
  195. package/components/editor/icons/unindent.svg +1 -0
  196. package/components/editor/icons/unlink.svg +1 -0
  197. package/components/page/Acknowledgements.svelte +31 -22
  198. package/components/page/Acknowledgements.svelte.d.ts +4 -4
  199. package/components/page/Authors.svelte +34 -14
  200. package/components/page/Authors.svelte.d.ts +6 -6
  201. package/components/page/BulkReferenceEditor.svelte +53 -22
  202. package/components/page/BulkReferenceEditor.svelte.d.ts +4 -4
  203. package/components/page/Chapter.svelte +196 -141
  204. package/components/page/Chapter.svelte.d.ts +3 -3
  205. package/components/page/ChapterContext.d.ts +4 -4
  206. package/components/page/ChapterNumber.svelte +9 -0
  207. package/components/page/ChapterNumber.svelte.d.ts +27 -0
  208. package/components/page/ChapterTitle.svelte +16 -0
  209. package/components/page/ChapterTitle.svelte.d.ts +18 -0
  210. package/components/page/Contexts.d.ts +31 -20
  211. package/components/page/Contexts.js +47 -17
  212. package/components/page/DefinitionView.svelte +115 -86
  213. package/components/page/DefinitionView.svelte.d.ts +3 -3
  214. package/components/page/Description.svelte +27 -18
  215. package/components/page/Description.svelte.d.ts +4 -4
  216. package/components/page/Edition.svelte +127 -74
  217. package/components/page/Edition.svelte.d.ts +4 -4
  218. package/components/page/Editions.svelte +144 -0
  219. package/components/page/Editions.svelte.d.ts +14 -0
  220. package/components/page/Glossary.svelte +57 -48
  221. package/components/page/Glossary.svelte.d.ts +4 -4
  222. package/components/page/Header.svelte +129 -44
  223. package/components/page/Header.svelte.d.ts +6 -6
  224. package/components/page/Index.svelte +114 -80
  225. package/components/page/Index.svelte.d.ts +4 -4
  226. package/components/page/Instructions.svelte +18 -16
  227. package/components/page/Instructions.svelte.d.ts +4 -4
  228. package/components/page/License.svelte +29 -21
  229. package/components/page/License.svelte.d.ts +4 -4
  230. package/components/page/Loading.svelte +102 -12
  231. package/components/page/Loading.svelte.d.ts +6 -2
  232. package/components/page/Media.svelte +77 -51
  233. package/components/page/Media.svelte.d.ts +4 -4
  234. package/components/page/MediaPreview.svelte +26 -8
  235. package/components/page/MediaPreview.svelte.d.ts +3 -3
  236. package/components/page/Muted.svelte +10 -0
  237. package/components/page/Muted.svelte.d.ts +27 -0
  238. package/components/page/Outline.svelte +279 -59
  239. package/components/page/Outline.svelte.d.ts +3 -3
  240. package/components/page/Page.svelte +40 -9
  241. package/components/page/Page.svelte.d.ts +3 -3
  242. package/components/page/PageHeader.svelte +14 -0
  243. package/components/page/PageHeader.svelte.d.ts +18 -0
  244. package/components/page/PageParagraph.svelte +18 -0
  245. package/components/page/PageParagraph.svelte.d.ts +27 -0
  246. package/components/page/PossibleChapter.svelte +7 -7
  247. package/components/page/PossibleChapter.svelte.d.ts +4 -4
  248. package/components/page/PossibleReference.svelte +6 -11
  249. package/components/page/PossibleReference.svelte.d.ts +6 -7
  250. package/components/page/Print.svelte +27 -3
  251. package/components/page/Print.svelte.d.ts +4 -4
  252. package/components/page/Reference.svelte +256 -113
  253. package/components/page/Reference.svelte.d.ts +5 -5
  254. package/components/page/References.svelte +39 -47
  255. package/components/page/References.svelte.d.ts +4 -4
  256. package/components/page/Rows.svelte +54 -0
  257. package/components/page/Rows.svelte.d.ts +27 -0
  258. package/components/page/Search.svelte +86 -63
  259. package/components/page/Search.svelte.d.ts +4 -4
  260. package/components/page/Status.svelte +43 -35
  261. package/components/page/Status.svelte.d.ts +4 -9
  262. package/components/page/SubdomainEditor.svelte +40 -27
  263. package/components/page/SubdomainEditor.svelte.d.ts +4 -4
  264. package/components/page/TableOfContents.svelte +225 -190
  265. package/components/page/TableOfContents.svelte.d.ts +4 -4
  266. package/components/page/TableOfContentsImage.svelte +8 -8
  267. package/components/page/TableOfContentsImage.svelte.d.ts +3 -3
  268. package/components/page/TableOfContentsRow.svelte +96 -33
  269. package/components/page/TableOfContentsRow.svelte.d.ts +4 -4
  270. package/components/page/ThemeEditor.svelte +174 -39
  271. package/components/page/ThemeEditor.svelte.d.ts +4 -4
  272. package/components/page/ThemeEditorPreview.svelte +35 -23
  273. package/components/page/ThemeEditorPreview.svelte.d.ts +5 -5
  274. package/components/page/ThemeSetEditor.svelte +15 -13
  275. package/components/page/ThemeSetEditor.svelte.d.ts +4 -4
  276. package/components/page/ThemeVariableEditor.svelte +24 -15
  277. package/components/page/ThemeVariableEditor.svelte.d.ts +3 -3
  278. package/components/page/Title.svelte +12 -0
  279. package/components/page/Title.svelte.d.ts +27 -0
  280. package/components/page/Unknown.svelte +25 -21
  281. package/components/page/Unknown.svelte.d.ts +4 -4
  282. package/components/page/margins.js +50 -33
  283. package/index.d.ts +14 -0
  284. package/index.js +14 -0
  285. package/models/CRUD.d.ts +17 -0
  286. package/models/CRUD.js +194 -0
  287. package/models/Firebase.js +17 -15
  288. package/models/book/Book.d.ts +24 -28
  289. package/models/book/Book.js +120 -113
  290. package/models/book/BookMedia.d.ts +3 -3
  291. package/models/book/BookMedia.js +22 -16
  292. package/models/book/BookSaveStatus.d.ts +7 -0
  293. package/models/book/BookSaveStatus.js +8 -0
  294. package/models/book/Chapter.d.ts +46 -39
  295. package/models/book/Chapter.js +180 -198
  296. package/models/book/ChapterID.js +7 -7
  297. package/models/book/Definition.d.ts +1 -1
  298. package/models/book/Edition.d.ts +62 -60
  299. package/models/book/Edition.js +385 -303
  300. package/models/book/Reference.d.ts +24 -0
  301. package/models/book/Reference.js +78 -0
  302. package/models/book/Schema.d.ts +169 -0
  303. package/models/book/Schema.js +114 -0
  304. package/models/book/Theme.d.ts +44 -37
  305. package/models/book/Theme.js +452 -52
  306. package/models/book/ThemeColors.d.ts +1 -1
  307. package/models/book/Words.d.ts +2 -0
  308. package/models/book/Words.js +110 -0
  309. package/models/chapter/AtomNode.d.ts +4 -4
  310. package/models/chapter/AtomNode.js +20 -13
  311. package/models/chapter/BlockNode.d.ts +9 -10
  312. package/models/chapter/BlockNode.js +32 -13
  313. package/models/chapter/BlocksNode.d.ts +10 -10
  314. package/models/chapter/BlocksNode.js +315 -120
  315. package/models/chapter/BlocksNode.test.js +494 -228
  316. package/models/chapter/Bookkeeping.d.ts +1 -1
  317. package/models/chapter/CalloutNode.d.ts +3 -3
  318. package/models/chapter/CalloutNode.js +34 -12
  319. package/models/chapter/Caret.d.ts +9 -7
  320. package/models/chapter/Caret.js +11 -6
  321. package/models/chapter/ChapterNode.d.ts +11 -11
  322. package/models/chapter/ChapterNode.js +70 -33
  323. package/models/chapter/CitationsNode.d.ts +3 -3
  324. package/models/chapter/CitationsNode.js +31 -12
  325. package/models/chapter/CodeNode.d.ts +11 -6
  326. package/models/chapter/CodeNode.js +143 -34
  327. package/models/chapter/CommentNode.d.ts +5 -5
  328. package/models/chapter/CommentNode.js +29 -13
  329. package/models/chapter/DefinitionNode.d.ts +2 -2
  330. package/models/chapter/DefinitionNode.js +15 -7
  331. package/models/chapter/Edit.d.ts +3 -3
  332. package/models/chapter/EmbedNode.d.ts +9 -5
  333. package/models/chapter/EmbedNode.js +108 -35
  334. package/models/chapter/ErrorNode.d.ts +2 -2
  335. package/models/chapter/ErrorNode.js +34 -12
  336. package/models/chapter/FootnoteNode.d.ts +5 -5
  337. package/models/chapter/FootnoteNode.js +34 -16
  338. package/models/chapter/FormatNode.d.ts +10 -10
  339. package/models/chapter/FormatNode.js +237 -106
  340. package/models/chapter/FormatNode.test.js +87 -45
  341. package/models/chapter/InlineCodeNode.d.ts +2 -2
  342. package/models/chapter/InlineCodeNode.js +22 -9
  343. package/models/chapter/LabelNode.d.ts +4 -4
  344. package/models/chapter/LabelNode.js +31 -13
  345. package/models/chapter/LinkNode.d.ts +2 -2
  346. package/models/chapter/LinkNode.js +21 -9
  347. package/models/chapter/ListNode.d.ts +8 -8
  348. package/models/chapter/ListNode.js +99 -38
  349. package/models/chapter/ListNode.test.js +29 -24
  350. package/models/chapter/MetadataNode.d.ts +3 -3
  351. package/models/chapter/MetadataNode.js +13 -5
  352. package/models/chapter/Node.d.ts +5 -3
  353. package/models/chapter/Node.js +76 -29
  354. package/models/chapter/Node.test.js +20 -18
  355. package/models/chapter/ParagraphNode.d.ts +6 -6
  356. package/models/chapter/ParagraphNode.js +84 -29
  357. package/models/chapter/ParagraphNode.test.js +22 -13
  358. package/models/chapter/Parser.d.ts +25 -25
  359. package/models/chapter/Parser.js +201 -189
  360. package/models/chapter/Parser.test.js +16 -16
  361. package/models/chapter/Position.d.ts +1 -1
  362. package/models/chapter/QuoteNode.d.ts +6 -6
  363. package/models/chapter/QuoteNode.js +61 -23
  364. package/models/chapter/RootNode.d.ts +4 -4
  365. package/models/chapter/RuleNode.d.ts +2 -2
  366. package/models/chapter/RuleNode.js +31 -11
  367. package/models/chapter/TableNode.d.ts +8 -6
  368. package/models/chapter/TableNode.js +89 -34
  369. package/models/chapter/TableNode.test.js +22 -24
  370. package/models/chapter/TextNode.d.ts +6 -6
  371. package/models/chapter/TextNode.js +72 -32
  372. package/models/chapter/TextNode.test.js +4 -4
  373. package/models/loadEdition.d.ts +1 -1
  374. package/models/loadEdition.js +10 -6
  375. package/package.json +104 -25
  376. package/util/getSubdomain.js +8 -6
  377. package/util/isMobile.js +1 -1
  378. package/util/mineReference.d.ts +3 -2
  379. package/util/mineReference.js +67 -29
  380. package/util/scrollToEyeLevel.js +6 -1
  381. package/components/chapter/renderPosition.d.ts +0 -3
  382. package/components/chapter/renderPosition.js +0 -4
  383. package/components/editor/ToolbarIcon.svelte +0 -22
  384. package/components/editor/ToolbarIcon.svelte.d.ts +0 -16
  385. package/components/page/Alert.svelte +0 -11
  386. package/components/page/Alert.svelte.d.ts +0 -23
  387. package/components/page/Revisions.svelte +0 -124
  388. package/components/page/Revisions.svelte.d.ts +0 -14
  389. package/models/BookLoader.d.ts +0 -2
  390. package/models/BookLoader.js +0 -67
  391. package/models/Firestore.d.ts +0 -22
  392. package/models/Firestore.js +0 -194
  393. package/models/chapter/ReferenceNode.d.ts +0 -29
  394. package/models/chapter/ReferenceNode.js +0 -48
@@ -1,8 +1,11 @@
1
- <script>import Link from "../Link.svelte";
2
- import TableOfContentsImage from "./TableOfContentsImage.svelte";
3
- import Toggle from "../editor/Toggle.svelte";
4
- import ConfirmButton from "../editor/ConfirmButton.svelte";
5
- import { getBase, getEdition, isEditable } from "./Contexts";
1
+ <script>import TableOfContentsImage from './TableOfContentsImage.svelte';
2
+ import Toggle from '../editor/Toggle.svelte';
3
+ import ConfirmButton from '../editor/ConfirmButton.svelte';
4
+ import { getBase, getEdition, isEditable, setChapter } from './Contexts';
5
+ import Muted from './Muted.svelte';
6
+ import ChapterNumber from './ChapterNumber.svelte';
7
+ import Button from '../app/Button.svelte';
8
+ import ChapterTitle from './ChapterTitle.svelte';
6
9
  export let chapterID;
7
10
  export let chapter = undefined;
8
11
  export let title;
@@ -11,47 +14,107 @@ export let forthcoming = false;
11
14
  let edition = getEdition();
12
15
  let base = getBase();
13
16
  let editable = isEditable();
14
- function moveUp() { chapter?.move(-1); }
15
- function moveDown() { chapter?.move(1); }
17
+ function moveUp() {
18
+ if ($edition && chapter)
19
+ edition.set($edition.withMovedChapter(chapter.getID(), -1));
20
+ }
21
+ function moveDown() {
22
+ if ($edition && chapter)
23
+ edition.set($edition.withMovedChapter(chapter.getID(), 1));
24
+ }
16
25
  </script>
17
26
 
18
- <tr class={forthcoming ? "bookish-forthcoming" : ""}>
19
- <td><TableOfContentsImage embed={$edition.getImage(chapterID)} /></td>
27
+ <tr class="toc-row" class:forthcoming>
28
+ <td
29
+ ><TableOfContentsImage
30
+ embed={chapter
31
+ ? chapter.getImage()
32
+ : $edition?.getImage(chapterID) ?? null}
33
+ /></td
34
+ >
20
35
  <td>
21
36
  {#if editable && chapter}
22
- <Toggle on={number !== undefined} save={ on => chapter && chapter.setNumbered(on) }>
23
- <div class="bookish-chapter-number">
37
+ <Toggle
38
+ on={number !== undefined}
39
+ save={(on) =>
40
+ chapter
41
+ ? setChapter(edition, chapter, chapter.asNumbered(on))
42
+ : undefined}
43
+ >
44
+ <ChapterNumber>
24
45
  {#if number !== undefined}
25
46
  Chapter {number}
26
47
  {:else}
27
- <span class="bookish-muted">Unnumbered</span>
48
+ <Muted>Unnumbered</Muted>
28
49
  {/if}
29
- </div>
50
+ </ChapterNumber>
30
51
  </Toggle>
31
- {:else if number !== undefined }
32
- <div class="bookish-chapter-number">{"Chapter " + number}</div>
52
+ {:else if number !== undefined}
53
+ <ChapterNumber>{'Chapter ' + number}</ChapterNumber>
33
54
  {/if}
34
- {#if forthcoming && !editable}
35
- <span>{title}</span>
36
- {:else}
37
- <Link to={`${base}/${chapterID}`}>{title}</Link>
38
- {/if}
39
- <small class="bookish-muted"><br/><em><slot name="annotation"></slot></em></small>
55
+ <ChapterTitle
56
+ link={forthcoming && !editable ? undefined : `${$base}${chapterID}`}
57
+ >{title}</ChapterTitle
58
+ >
59
+ <p><Muted><em><slot name="annotation" /></em></Muted></p>
40
60
  </td>
41
- <td><slot name="etc"></slot></td>
42
- {#if editable }
43
- <td>
44
- {#if chapter }
45
- <button disabled={chapter.getPosition() === 0} on:click={moveUp}>{"↑"}</button>
46
- &nbsp;
47
- <button disabled={chapter.getPosition() === chapter.getBook().getChapterCount() - 1} on:click={moveDown}>{"↓"}</button>
48
- &nbsp;
61
+ <td><slot name="etc" /></td>
62
+ {#if editable && $edition}
63
+ <td class="controls">
64
+ {#if chapter}
65
+ <Button
66
+ tooltip="move chapter up"
67
+ disabled={$edition.getChapterPosition(chapter.getID()) ===
68
+ 0}
69
+ command={moveUp}>{'↑'}</Button
70
+ >
71
+ <Button
72
+ tooltip="move chapter down"
73
+ disabled={$edition.getChapterPosition(chapter.getID()) ===
74
+ $edition.getChapterCount() - 1}
75
+ command={moveDown}>{'↓'}</Button
76
+ >
49
77
  <ConfirmButton
50
- commandLabel="x"
51
- confirmLabel="Confirm"
52
- command={() => chapter && chapter.delete()}
78
+ tooltip="delete chapter {title}"
79
+ commandLabel="delete"
80
+ confirmLabel="confirm"
81
+ command={() =>
82
+ chapter && $edition
83
+ ? edition.set(
84
+ $edition.withoutChapter(chapter.getID())
85
+ )
86
+ : undefined}
53
87
  />
54
88
  {/if}
55
89
  </td>
56
90
  {/if}
57
- </tr>
91
+ </tr>
92
+
93
+ <style>
94
+ .toc-row p {
95
+ margin: 0;
96
+ }
97
+
98
+ .forthcoming {
99
+ color: var(--app-muted-color);
100
+ }
101
+
102
+ .controls {
103
+ display: flex;
104
+ flex-direction: row;
105
+ flex-wrap: nowrap;
106
+ gap: var(--app-chrome-padding);
107
+ }
108
+
109
+ td:first-child {
110
+ padding-left: 0;
111
+ }
112
+
113
+ td:last-child {
114
+ padding-right: 0;
115
+ }
116
+
117
+ td {
118
+ vertical-align: top;
119
+ }
120
+ </style>
@@ -1,5 +1,5 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type Chapter from "../../models/book/Chapter";
2
+ import type Chapter from '../../models/book/Chapter';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  chapterID: string;
@@ -16,9 +16,9 @@ declare const __propDef: {
16
16
  etc: {};
17
17
  };
18
18
  };
19
- export declare type TableOfContentsRowProps = typeof __propDef.props;
20
- export declare type TableOfContentsRowEvents = typeof __propDef.events;
21
- export declare type TableOfContentsRowSlots = typeof __propDef.slots;
19
+ export type TableOfContentsRowProps = typeof __propDef.props;
20
+ export type TableOfContentsRowEvents = typeof __propDef.events;
21
+ export type TableOfContentsRowSlots = typeof __propDef.slots;
22
22
  export default class TableOfContentsRow extends SvelteComponentTyped<TableOfContentsRowProps, TableOfContentsRowEvents, TableOfContentsRowSlots> {
23
23
  }
24
24
  export {};
@@ -1,52 +1,187 @@
1
- <script>import Header from "./Header.svelte";
1
+ <script>import Header from './Header.svelte';
2
2
  import Outline from './Outline.svelte';
3
3
  import Page from './Page.svelte';
4
- import { defaultTheme } from '../../models/book/Theme';
4
+ import { BookishTheme, CriticalTheme, HumanTheme, SeriousTheme, SketchyTheme, TechTheme, } from '../../models/book/Theme';
5
5
  import ConfirmButton from '../editor/ConfirmButton.svelte';
6
6
  import Instructions from './Instructions.svelte';
7
7
  import ThemeSetEditor from './ThemeSetEditor.svelte';
8
8
  import ThemeEditorPreview from './ThemeEditorPreview.svelte';
9
- import External from "../External.svelte";
10
- import { getEdition } from "./Contexts";
9
+ import { getEdition } from './Contexts';
10
+ import TextEditor from '../editor/TextEditor.svelte';
11
+ import Button from '../app/Button.svelte';
12
+ import Switch from '../editor/Switch.svelte';
13
+ import Link from '../app/Link.svelte';
14
+ import Rows from './Rows.svelte';
15
+ const themes = {
16
+ Bookish: BookishTheme,
17
+ Serious: SeriousTheme,
18
+ Tech: TechTheme,
19
+ Human: HumanTheme,
20
+ Sketchy: SketchyTheme,
21
+ Critical: CriticalTheme,
22
+ };
11
23
  let edition = getEdition();
12
- $: theme = $edition.getTheme();
24
+ $: theme = $edition ? $edition.getTheme() : null;
25
+ $: isDefault =
26
+ theme === null || Object.values(themes).includes(theme);
27
+ function getEmptyGroup(group) {
28
+ const empty = {};
29
+ for (const key in Object.keys(group))
30
+ empty[key] = '';
31
+ return empty;
32
+ }
13
33
  </script>
14
34
 
15
- <Page title={`${$edition.getTitle()} - Theme`}>
16
- <Header
17
- label="Theme"
18
- getImage={() => null}
19
- setImage={ () => undefined}
20
- header="Theme"
21
- >
22
- <Outline
23
- slot="outline"
24
- previous={null}
25
- next={null}
26
- />
27
- </Header>
35
+ {#if theme && $edition}
36
+ <Page title={`${$edition?.getTitle()} - Theme`}>
37
+ <Header
38
+ label="Theme"
39
+ getImage={() => null}
40
+ setImage={() => undefined}
41
+ header="Theme"
42
+ >
43
+ <Outline slot="outline" previous={null} next={null} />
44
+ </Header>
28
45
 
29
- <Instructions>
30
- This is the theme editor.
31
- You can use it to choose from existing themes or create a custom theme for your book's appearance.
32
- To use it, you'll need to know a bit about how to format CSS <External to="https://developer.mozilla.org/en-US/docs/Web/CSS/color">colors</External>, <External to="https://developer.mozilla.org/en-US/docs/Web/CSS/font-size">fonts</External>, and <External to="https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units">sizes</External>.
33
- </Instructions>
46
+ <Instructions>
47
+ This is the theme editor. You can use it to choose from existing
48
+ themes or create a custom theme for your book's appearance. To use
49
+ it, you'll need to know a bit about how to format CSS <Link
50
+ to="https://developer.mozilla.org/en-US/docs/Web/CSS/color"
51
+ >colors</Link
52
+ >, <Link
53
+ to="https://developer.mozilla.org/en-US/docs/Web/CSS/font-size"
54
+ >fonts</Link
55
+ >, and <Link
56
+ to="https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units"
57
+ >sizes</Link
58
+ >.
59
+ </Instructions>
34
60
 
35
- {#if theme === null }
36
- <button on:click={() => $edition.setTheme(defaultTheme)}>Customize</button>
37
- {:else}
38
- <ConfirmButton
39
- commandLabel="Revert to default"
40
- confirmLabel="Delete your theme?"
41
- command={() => $edition.setTheme(null)}
61
+ <Switch
62
+ options={Object.keys(themes)}
63
+ edit={(name) =>
64
+ $edition
65
+ ? edition.set($edition.withTheme(themes[name]))
66
+ : undefined}
67
+ value={Object.keys(themes).find((key) => themes[key] === theme) ??
68
+ ''}
42
69
  />
43
- <ThemeEditorPreview theme={theme}/>
44
- <ThemeSetEditor header={"Light mode colors"} group="light" theme={theme} />
45
- <ThemeSetEditor header={"Dark mode colors"} group="dark" theme={theme} />
46
- <ThemeSetEditor header={"Fonts"} group="fonts" theme={theme} />
47
- <ThemeSetEditor header={"Font sizes"} group="sizes" theme={theme} />
48
- <ThemeSetEditor header={"Font weights"} group="weights" theme={theme} />
49
- <ThemeSetEditor header={"Spacing"} group="spacing" theme={theme} />
50
- {/if}
51
70
 
52
- </Page>
71
+ <!-- If it's not one of the -->
72
+ {#if isDefault}
73
+ <Button
74
+ tooltip="customize theme"
75
+ command={() =>
76
+ $edition
77
+ ? edition.set(
78
+ $edition.withTheme({
79
+ ...(theme === null ? BookishTheme : theme),
80
+ })
81
+ )
82
+ : undefined}>customize</Button
83
+ >
84
+ {:else}
85
+ <ConfirmButton
86
+ tooltip="Change the theme to the default Bookish theme."
87
+ commandLabel="- theme"
88
+ confirmLabel="delete your theme?"
89
+ command={() =>
90
+ $edition
91
+ ? edition.set($edition.withTheme(null))
92
+ : undefined}
93
+ />
94
+ {/if}
95
+
96
+ <ThemeEditorPreview {theme} />
97
+
98
+ {#if !isDefault && theme !== null}
99
+ <ThemeSetEditor
100
+ header={'Light mode colors'}
101
+ group="light"
102
+ properties={theme.light ?? getEmptyGroup(BookishTheme.light)}
103
+ />
104
+ <ThemeSetEditor
105
+ header={'Dark mode colors'}
106
+ group="dark"
107
+ properties={theme.dark ?? getEmptyGroup(BookishTheme.dark)}
108
+ />
109
+ <ThemeSetEditor
110
+ header={'Fonts'}
111
+ group="fonts"
112
+ properties={theme.fonts ?? getEmptyGroup(BookishTheme.fonts)}
113
+ />
114
+ <ThemeSetEditor
115
+ header={'Font sizes'}
116
+ group="sizes"
117
+ properties={theme.sizes ?? getEmptyGroup(BookishTheme.sizes)}
118
+ />
119
+ <ThemeSetEditor
120
+ header={'Font weights'}
121
+ group="weights"
122
+ properties={theme.weights ??
123
+ getEmptyGroup(BookishTheme.weights)}
124
+ />
125
+ <ThemeSetEditor
126
+ header={'Spacing'}
127
+ group="spacing"
128
+ properties={theme.spacing ??
129
+ getEmptyGroup(BookishTheme.spacing)}
130
+ />
131
+
132
+ <Rows>
133
+ <tr>
134
+ <td>
135
+ <em
136
+ >Add URLs to your own CSS to customize fonts and
137
+ styles further.</em
138
+ >
139
+ </td>
140
+ <td style="text-align:right;">
141
+ <Button
142
+ tooltip="Add a CSS import"
143
+ command={() => {
144
+ if (theme === null) return;
145
+ if (theme.imports === undefined)
146
+ theme.imports = [];
147
+ theme.imports.push('');
148
+ if ($edition)
149
+ edition.set($edition.withTheme(theme));
150
+ }}>+</Button
151
+ >
152
+ </td>
153
+ </tr>
154
+ {#each theme.imports ?? [] as url, index}
155
+ <tr>
156
+ <td>
157
+ <TextEditor
158
+ text={url}
159
+ label={`CSS url`}
160
+ placeholder={'CSS url'}
161
+ valid={() => undefined}
162
+ save={(text) => {
163
+ const newTheme = { ...theme };
164
+ if (newTheme.imports === undefined)
165
+ newTheme.imports = [];
166
+ newTheme.imports[index] = text;
167
+ if ($edition)
168
+ edition.set($edition.withTheme(theme));
169
+ }}
170
+ />
171
+ </td>
172
+ <td style="text-align: right">
173
+ <Button
174
+ tooltip="Remove this CSS import"
175
+ command={() => {
176
+ theme?.imports?.splice(index, 1);
177
+ if ($edition)
178
+ edition.set($edition.withTheme(theme));
179
+ }}>–</Button
180
+ >
181
+ </td>
182
+ </tr>
183
+ {/each}
184
+ </Rows>
185
+ {/if}
186
+ </Page>
187
+ {/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 ThemeEditorProps = typeof __propDef.props;
10
- export declare type ThemeEditorEvents = typeof __propDef.events;
11
- export declare type ThemeEditorSlots = typeof __propDef.slots;
9
+ export type ThemeEditorProps = typeof __propDef.props;
10
+ export type ThemeEditorEvents = typeof __propDef.events;
11
+ export type ThemeEditorSlots = typeof __propDef.slots;
12
12
  export default class ThemeEditor extends SvelteComponentTyped<ThemeEditorProps, ThemeEditorEvents, ThemeEditorSlots> {
13
13
  }
14
14
  export {};
@@ -1,37 +1,49 @@
1
- <script>import ChapterBody from "../chapter/ChapterBody.svelte";
2
- import Parser from "../../models/chapter/Parser";
3
- import { getDarkMode } from "./Contexts";
1
+ <script>import ChapterBody from '../chapter/ChapterBody.svelte';
2
+ import Parser from '../../models/chapter/Parser';
3
+ import { getDarkMode } from './Contexts';
4
4
  export let theme;
5
+ let position;
5
6
  let darkMode = getDarkMode();
6
- $: preview = Parser.parseChapter(undefined, `
7
- # Header 1
7
+ $: backgroundColor =
8
+ theme === null
9
+ ? null
10
+ : $darkMode
11
+ ? theme.dark?.backgroundColor
12
+ : theme.light?.backgroundColor;
13
+ $: preview = Parser.parseChapter(undefined, `# Header 1
8
14
  ## Header 2
9
15
  ### Header 3
10
16
 
11
17
  This is how a sentence with _various_ *formatting* ^will^ look.
12
18
 
13
19
  * How does it look?
14
- * Would you change anything?
20
+ * Would you change anything?
15
21
  `);
16
22
  </script>
17
23
 
18
- <div class="bookish-theme-preview" style={`background-color: ${$darkMode ? theme.dark.backgroundColor : theme.light.backgroundColor };`}>
19
- <ChapterBody node={preview}/>
20
- </div>
24
+ <aside
25
+ class={`preview ${position > window.innerHeight / 2 ? 'small' : ''}`}
26
+ style={`${backgroundColor ? `background-color: ${backgroundColor};` : ''}`}
27
+ >
28
+ <ChapterBody node={preview} />
29
+ </aside>
21
30
 
22
- <style>
23
- .bookish-theme-preview {
24
- padding: 1em;
25
- border: var(--bookish-app-chrome-border-width) solid black;
26
- transform: translate(-25%, -25%) scale(0.5);
27
- position: sticky;
28
- margin-top: 2em;
29
- top: 2em;
30
- z-index: 3;
31
- }
31
+ <svelte:window bind:scrollY={position} />
32
32
 
33
- :global(.bookish-dark .bookish-theme-preview) {
34
- border-color: white;
35
- }
33
+ <style>
34
+ .preview {
35
+ padding: 1em;
36
+ border: var(--app-chrome-border-size) solid black;
37
+ position: sticky;
38
+ margin-top: var(--app-text-spacing);
39
+ margin-bottom: var(--app-text-spacing);
40
+ top: 2em;
41
+ z-index: 3;
42
+ transition: transform 0.5s;
43
+ }
36
44
 
37
- </style>
45
+ .preview.small {
46
+ transform: scale(0.5);
47
+ transform-origin: left top;
48
+ }
49
+ </style>
@@ -1,17 +1,17 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
- import type Theme from "../../models/book/Theme";
2
+ import type Theme from '../../models/book/Theme';
3
3
  declare const __propDef: {
4
4
  props: {
5
- theme: Theme;
5
+ theme: Theme | null;
6
6
  };
7
7
  events: {
8
8
  [evt: string]: CustomEvent<any>;
9
9
  };
10
10
  slots: {};
11
11
  };
12
- export declare type ThemeEditorPreviewProps = typeof __propDef.props;
13
- export declare type ThemeEditorPreviewEvents = typeof __propDef.events;
14
- export declare type ThemeEditorPreviewSlots = typeof __propDef.slots;
12
+ export type ThemeEditorPreviewProps = typeof __propDef.props;
13
+ export type ThemeEditorPreviewEvents = typeof __propDef.events;
14
+ export type ThemeEditorPreviewSlots = typeof __propDef.slots;
15
15
  export default class ThemeEditorPreview extends SvelteComponentTyped<ThemeEditorPreviewProps, ThemeEditorPreviewEvents, ThemeEditorPreviewSlots> {
16
16
  }
17
17
  export {};
@@ -1,17 +1,19 @@
1
- <script>import ThemeVariableEditor from "./ThemeVariableEditor.svelte";
1
+ <script>import PageHeader from './PageHeader.svelte';
2
+ import Rows from './Rows.svelte';
3
+ import ThemeVariableEditor from './ThemeVariableEditor.svelte';
2
4
  export let header;
3
5
  export let group;
4
- export let theme;
5
- $: set = theme[group];
6
+ export let properties;
6
7
  </script>
7
8
 
8
- <h2>{header}</h2>
9
- <div class="bookish-table">
10
- <table>
11
- <tbody>
12
- {#each Object.keys(set).sort() as name }
13
- <ThemeVariableEditor group={group} name={name} value={set[name]} />
14
- {/each}
15
- </tbody>
16
- </table>
17
- </div>
9
+ <PageHeader>{header}</PageHeader>
10
+
11
+ <Rows>
12
+ {#each Object.keys(properties).sort() as property}
13
+ <ThemeVariableEditor
14
+ {group}
15
+ name={property}
16
+ value={properties[property]}
17
+ />
18
+ {/each}
19
+ </Rows>
@@ -3,16 +3,16 @@ declare const __propDef: {
3
3
  props: {
4
4
  header: string;
5
5
  group: string;
6
- theme: Record<string, Record<string, string>>;
6
+ properties: Record<string, string>;
7
7
  };
8
8
  events: {
9
9
  [evt: string]: CustomEvent<any>;
10
10
  };
11
11
  slots: {};
12
12
  };
13
- export declare type ThemeSetEditorProps = typeof __propDef.props;
14
- export declare type ThemeSetEditorEvents = typeof __propDef.events;
15
- export declare type ThemeSetEditorSlots = typeof __propDef.slots;
13
+ export type ThemeSetEditorProps = typeof __propDef.props;
14
+ export type ThemeSetEditorEvents = typeof __propDef.events;
15
+ export type ThemeSetEditorSlots = typeof __propDef.slots;
16
16
  export default class ThemeSetEditor extends SvelteComponentTyped<ThemeSetEditorProps, ThemeSetEditorEvents, ThemeSetEditorSlots> {
17
17
  }
18
18
  export {};
@@ -1,12 +1,12 @@
1
- <script>import TextEditor from "../editor/TextEditor.svelte";
2
- import { getEdition } from "./Contexts";
1
+ <script>import TextEditor from '../editor/TextEditor.svelte';
2
+ import { getEdition } from './Contexts';
3
3
  const placeholders = {
4
- light: "CSS color",
5
- dark: "CSS color",
6
- fonts: "CSS font name",
7
- sizes: "CSS font size",
8
- weights: "CSS font weights",
9
- spacing: "CSS length"
4
+ light: 'CSS color',
5
+ dark: 'CSS color',
6
+ fonts: 'CSS font name',
7
+ sizes: 'CSS font size',
8
+ weights: 'CSS font weights',
9
+ spacing: 'CSS length',
10
10
  };
11
11
  export let group;
12
12
  export let name;
@@ -15,14 +15,23 @@ let edition = getEdition();
15
15
  </script>
16
16
 
17
17
  <tr>
18
- <td>{name.replace(/([a-z])([A-Z])/g, "$1 $2").split(" ").map(s => s.charAt(0).toUpperCase() + s.substring(1)).join(" ")}</td>
18
+ <td
19
+ >{name
20
+ .replace(/([a-z])([A-Z])/g, '$1 $2')
21
+ .split(' ')
22
+ .map((s) => s.charAt(0).toUpperCase() + s.substring(1))
23
+ .join(' ')}</td
24
+ >
19
25
  <td style="text-align: right">
20
- <TextEditor
21
- startText={value}
26
+ <TextEditor
27
+ text={value}
22
28
  label={`${name} editor`}
23
- placeholder={group in placeholders ? placeholders[group] : "value"}
24
- valid={ () => undefined }
25
- save={text => $edition.setThemeValue(group, name, text)}
29
+ placeholder={group in placeholders ? placeholders[group] : 'value'}
30
+ valid={() => undefined}
31
+ save={(text) =>
32
+ $edition
33
+ ? edition.set($edition.withThemeValue(group, name, text))
34
+ : undefined}
26
35
  />
27
36
  </td>
28
- </tr>
37
+ </tr>
@@ -10,9 +10,9 @@ declare const __propDef: {
10
10
  };
11
11
  slots: {};
12
12
  };
13
- export declare type ThemeVariableEditorProps = typeof __propDef.props;
14
- export declare type ThemeVariableEditorEvents = typeof __propDef.events;
15
- export declare type ThemeVariableEditorSlots = typeof __propDef.slots;
13
+ export type ThemeVariableEditorProps = typeof __propDef.props;
14
+ export type ThemeVariableEditorEvents = typeof __propDef.events;
15
+ export type ThemeVariableEditorSlots = typeof __propDef.slots;
16
16
  export default class ThemeVariableEditor extends SvelteComponentTyped<ThemeVariableEditorProps, ThemeVariableEditorEvents, ThemeVariableEditorSlots> {
17
17
  }
18
18
  export {};
@@ -0,0 +1,12 @@
1
+ <h1><slot /></h1>
2
+
3
+ <style>
4
+ h1 {
5
+ margin-top: 0;
6
+ margin-bottom: 0;
7
+ font-size: var(--bookish-title-font-size);
8
+ font-family: var(--bookish-header-font-family);
9
+ font-weight: var(--bookish-header-font-weight);
10
+ line-height: var(--bookish-header-line-height);
11
+ }
12
+ </style>