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
@@ -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, isEditionEditable, 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;
@@ -10,48 +13,108 @@ export let number = undefined;
10
13
  export let forthcoming = false;
11
14
  let edition = getEdition();
12
15
  let base = getBase();
13
- let editable = isEditable();
14
- function moveUp() { chapter?.move(-1); }
15
- function moveDown() { chapter?.move(1); }
16
+ let editable = isEditionEditable();
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 {title} up"
67
+ disabled={$edition.getChapterPosition(chapter.getID()) ===
68
+ 0}
69
+ command={moveUp}>{'↑'}</Button
70
+ >
71
+ <Button
72
+ tooltip="move chapter {title} 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,190 @@
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, isEditionEditable } 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
+ };
23
+ let editable = isEditionEditable();
11
24
  let edition = getEdition();
12
- $: theme = $edition.getTheme();
25
+ $: theme = $edition ? $edition.getTheme() : null;
26
+ $: isDefault =
27
+ theme === null || Object.values(themes).includes(theme);
28
+ function getEmptyGroup(group) {
29
+ const empty = {};
30
+ for (const key in Object.keys(group))
31
+ empty[key] = '';
32
+ return empty;
33
+ }
13
34
  </script>
14
35
 
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>
36
+ {#if theme && $edition}
37
+ <Page title={`${$edition?.getTitle()} - Theme`}>
38
+ <Header
39
+ editable={isEditionEditable()}
40
+ label="Theme"
41
+ id="theme"
42
+ getImage={() => null}
43
+ setImage={() => undefined}
44
+ header="Theme"
45
+ >
46
+ <Outline slot="outline" previous={null} next={null} />
47
+ </Header>
28
48
 
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>
49
+ <Instructions {editable}>
50
+ This is the theme editor. You can use it to choose from existing
51
+ themes or create a custom theme for your book's appearance. To use
52
+ it, you'll need to know a bit about how to format CSS <Link
53
+ to="https://developer.mozilla.org/en-US/docs/Web/CSS/color"
54
+ >colors</Link
55
+ >, <Link
56
+ to="https://developer.mozilla.org/en-US/docs/Web/CSS/font-size"
57
+ >fonts</Link
58
+ >, and <Link
59
+ to="https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units"
60
+ >sizes</Link
61
+ >.
62
+ </Instructions>
34
63
 
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)}
64
+ <Switch
65
+ options={Object.keys(themes)}
66
+ edit={(name) =>
67
+ $edition
68
+ ? edition.set($edition.withTheme(themes[name]))
69
+ : undefined}
70
+ value={Object.keys(themes).find((key) => themes[key] === theme) ??
71
+ ''}
42
72
  />
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
73
 
52
- </Page>
74
+ <!-- If it's not one of the -->
75
+ {#if isDefault}
76
+ <Button
77
+ tooltip="customize theme"
78
+ command={() =>
79
+ $edition
80
+ ? edition.set(
81
+ $edition.withTheme({
82
+ ...(theme === null ? BookishTheme : theme),
83
+ })
84
+ )
85
+ : undefined}>customize</Button
86
+ >
87
+ {:else}
88
+ <ConfirmButton
89
+ tooltip="change theme to the default"
90
+ commandLabel="- theme"
91
+ confirmLabel="delete your theme?"
92
+ command={() =>
93
+ $edition
94
+ ? edition.set($edition.withTheme(null))
95
+ : undefined}
96
+ />
97
+ {/if}
98
+
99
+ <ThemeEditorPreview {theme} />
100
+
101
+ {#if !isDefault && theme !== null}
102
+ <ThemeSetEditor
103
+ header={'Light mode colors'}
104
+ group="light"
105
+ properties={theme.light ?? getEmptyGroup(BookishTheme.light)}
106
+ />
107
+ <ThemeSetEditor
108
+ header={'Dark mode colors'}
109
+ group="dark"
110
+ properties={theme.dark ?? getEmptyGroup(BookishTheme.dark)}
111
+ />
112
+ <ThemeSetEditor
113
+ header={'Fonts'}
114
+ group="fonts"
115
+ properties={theme.fonts ?? getEmptyGroup(BookishTheme.fonts)}
116
+ />
117
+ <ThemeSetEditor
118
+ header={'Font sizes'}
119
+ group="sizes"
120
+ properties={theme.sizes ?? getEmptyGroup(BookishTheme.sizes)}
121
+ />
122
+ <ThemeSetEditor
123
+ header={'Font weights'}
124
+ group="weights"
125
+ properties={theme.weights ??
126
+ getEmptyGroup(BookishTheme.weights)}
127
+ />
128
+ <ThemeSetEditor
129
+ header={'Spacing'}
130
+ group="spacing"
131
+ properties={theme.spacing ??
132
+ getEmptyGroup(BookishTheme.spacing)}
133
+ />
134
+
135
+ <Rows>
136
+ <tr>
137
+ <td>
138
+ <em
139
+ >Add URLs to your own CSS to customize fonts and
140
+ styles further.</em
141
+ >
142
+ </td>
143
+ <td style="text-align:right;">
144
+ <Button
145
+ tooltip="add CSS URL import"
146
+ command={() => {
147
+ if (theme === null) return;
148
+ if (theme.imports === undefined)
149
+ theme.imports = [];
150
+ theme.imports.push('');
151
+ if ($edition)
152
+ edition.set($edition.withTheme(theme));
153
+ }}>+</Button
154
+ >
155
+ </td>
156
+ </tr>
157
+ {#each theme.imports ?? [] as url, index}
158
+ <tr>
159
+ <td>
160
+ <TextEditor
161
+ text={url}
162
+ label={`CSS url`}
163
+ placeholder={'CSS url'}
164
+ valid={() => undefined}
165
+ save={(text) => {
166
+ const newTheme = { ...theme };
167
+ if (newTheme.imports === undefined)
168
+ newTheme.imports = [];
169
+ newTheme.imports[index] = text;
170
+ if ($edition)
171
+ edition.set($edition.withTheme(theme));
172
+ }}
173
+ />
174
+ </td>
175
+ <td style="text-align: right">
176
+ <Button
177
+ tooltip="Remove CSS URL import"
178
+ command={() => {
179
+ theme?.imports?.splice(index, 1);
180
+ if ($edition)
181
+ edition.set($edition.withTheme(theme));
182
+ }}>–</Button
183
+ >
184
+ </td>
185
+ </tr>
186
+ {/each}
187
+ </Rows>
188
+ {/if}
189
+ </Page>
190
+ {/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>