bookish-press 0.7.4 → 0.9.2

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 (276) hide show
  1. package/README.md +56 -9
  2. package/dist/components/Auth.svelte +29 -39
  3. package/dist/components/Auth.svelte.d.ts +5 -17
  4. package/dist/components/BookPreview.svelte +14 -20
  5. package/dist/components/BookPreview.svelte.d.ts +6 -18
  6. package/dist/components/Link.svelte +19 -30
  7. package/dist/components/Link.svelte.d.ts +7 -20
  8. package/dist/components/app/BookList.svelte +2 -3
  9. package/dist/components/app/BookList.svelte.d.ts +6 -18
  10. package/dist/components/app/Button.svelte +12 -8
  11. package/dist/components/app/Button.svelte.d.ts +10 -23
  12. package/dist/components/app/Feedback.svelte +4 -4
  13. package/dist/components/app/Feedback.svelte.d.ts +6 -19
  14. package/dist/components/app/Head.svelte +2 -2
  15. package/dist/components/app/Head.svelte.d.ts +6 -19
  16. package/dist/components/app/Large.svelte +4 -1
  17. package/dist/components/app/Large.svelte.d.ts +5 -28
  18. package/dist/components/app/Lead.svelte +4 -1
  19. package/dist/components/app/Lead.svelte.d.ts +5 -28
  20. package/dist/components/app/Link.svelte +12 -9
  21. package/dist/components/app/Link.svelte.d.ts +9 -22
  22. package/dist/components/app/Options.svelte +8 -6
  23. package/dist/components/app/Options.svelte.d.ts +8 -20
  24. package/dist/components/app/Paragraph.svelte +2 -2
  25. package/dist/components/app/Paragraph.svelte.d.ts +6 -19
  26. package/dist/components/app/Section.svelte +4 -1
  27. package/dist/components/app/Section.svelte.d.ts +5 -28
  28. package/dist/components/app/Table.svelte +4 -1
  29. package/dist/components/app/Table.svelte.d.ts +5 -28
  30. package/dist/components/app/TextInput.svelte +10 -8
  31. package/dist/components/app/TextInput.svelte.d.ts +12 -23
  32. package/dist/components/chapter/Atom.svelte +4 -7
  33. package/dist/components/chapter/Atom.svelte.d.ts +6 -19
  34. package/dist/components/chapter/Block.svelte +21 -23
  35. package/dist/components/chapter/Block.svelte.d.ts +5 -17
  36. package/dist/components/chapter/Callout.svelte +3 -5
  37. package/dist/components/chapter/Callout.svelte.d.ts +5 -17
  38. package/dist/components/chapter/CaptionedCode.svelte +12 -14
  39. package/dist/components/chapter/CaptionedCode.svelte.d.ts +5 -17
  40. package/dist/components/chapter/ChapterBody.svelte +14 -17
  41. package/dist/components/chapter/ChapterBody.svelte.d.ts +7 -19
  42. package/dist/components/chapter/ChapterBody.test.d.ts +1 -0
  43. package/dist/components/chapter/ChapterBody.test.js +85 -0
  44. package/dist/components/chapter/Citations.svelte +39 -45
  45. package/dist/components/chapter/Citations.svelte.d.ts +5 -17
  46. package/dist/components/chapter/Code.svelte +158 -155
  47. package/dist/components/chapter/Code.svelte.d.ts +10 -23
  48. package/dist/components/chapter/Comment.svelte +30 -23
  49. package/dist/components/chapter/Comment.svelte.d.ts +5 -17
  50. package/dist/components/chapter/Definition.svelte +36 -34
  51. package/dist/components/chapter/Definition.svelte.d.ts +5 -17
  52. package/dist/components/chapter/Embed.svelte +78 -72
  53. package/dist/components/chapter/Embed.svelte.d.ts +8 -20
  54. package/dist/components/chapter/ErrorMessage.svelte +2 -4
  55. package/dist/components/chapter/ErrorMessage.svelte.d.ts +5 -17
  56. package/dist/components/chapter/Figure.svelte +22 -29
  57. package/dist/components/chapter/Figure.svelte.d.ts +9 -22
  58. package/dist/components/chapter/Footnote.svelte +40 -32
  59. package/dist/components/chapter/Footnote.svelte.d.ts +5 -17
  60. package/dist/components/chapter/Format.svelte +26 -41
  61. package/dist/components/chapter/Format.svelte.d.ts +7 -18
  62. package/dist/components/chapter/InlineCode.svelte +7 -8
  63. package/dist/components/chapter/InlineCode.svelte.d.ts +5 -17
  64. package/dist/components/chapter/Label.svelte +5 -11
  65. package/dist/components/chapter/Label.svelte.d.ts +5 -17
  66. package/dist/components/chapter/LineBreak.svelte +1 -3
  67. package/dist/components/chapter/LineBreak.svelte.d.ts +5 -17
  68. package/dist/components/chapter/Link.svelte +17 -23
  69. package/dist/components/chapter/Link.svelte.d.ts +5 -17
  70. package/dist/components/chapter/List.svelte +9 -9
  71. package/dist/components/chapter/List.svelte.d.ts +6 -17
  72. package/dist/components/chapter/Marginal.svelte +59 -60
  73. package/dist/components/chapter/Marginal.svelte.d.ts +10 -22
  74. package/dist/components/chapter/Paragraph.svelte +8 -23
  75. package/dist/components/chapter/Paragraph.svelte.d.ts +6 -18
  76. package/dist/components/chapter/Positioned.svelte +2 -4
  77. package/dist/components/chapter/Positioned.svelte.d.ts +6 -19
  78. package/dist/components/chapter/Problem.svelte +3 -2
  79. package/dist/components/chapter/Problem.svelte.d.ts +5 -28
  80. package/dist/components/chapter/Python.svelte +45 -58
  81. package/dist/components/chapter/Python.svelte.d.ts +6 -18
  82. package/dist/components/chapter/Quote.svelte +5 -7
  83. package/dist/components/chapter/Quote.svelte.d.ts +5 -17
  84. package/dist/components/chapter/Rule.svelte +1 -3
  85. package/dist/components/chapter/Rule.svelte.d.ts +5 -17
  86. package/dist/components/chapter/Table.svelte +6 -8
  87. package/dist/components/chapter/Table.svelte.d.ts +5 -17
  88. package/dist/components/chapter/Text.svelte +54 -69
  89. package/dist/components/chapter/Text.svelte.d.ts +6 -18
  90. package/dist/components/controls/DarkToggle.svelte +7 -8
  91. package/dist/components/controls/DarkToggle.svelte.d.ts +6 -18
  92. package/dist/components/editor/BookishEditor.svelte +583 -761
  93. package/dist/components/editor/BookishEditor.svelte.d.ts +14 -26
  94. package/dist/components/editor/CalloutEditor.svelte +3 -3
  95. package/dist/components/editor/CalloutEditor.svelte.d.ts +5 -17
  96. package/dist/components/editor/CaptionedCodeEditor.svelte +5 -5
  97. package/dist/components/editor/CaptionedCodeEditor.svelte.d.ts +5 -17
  98. package/dist/components/editor/CaretView.svelte +23 -25
  99. package/dist/components/editor/CaretView.svelte.d.ts +15 -27
  100. package/dist/components/editor/CitationsEditor.svelte +25 -28
  101. package/dist/components/editor/CitationsEditor.svelte.d.ts +5 -17
  102. package/dist/components/editor/ConfirmButton.svelte +9 -6
  103. package/dist/components/editor/ConfirmButton.svelte.d.ts +8 -21
  104. package/dist/components/editor/DefinitionEditor.svelte +11 -15
  105. package/dist/components/editor/DefinitionEditor.svelte.d.ts +5 -17
  106. package/dist/components/editor/EmbedEditor.svelte +44 -45
  107. package/dist/components/editor/EmbedEditor.svelte.d.ts +5 -17
  108. package/dist/components/editor/Icon.svelte +1 -1
  109. package/dist/components/editor/Icon.svelte.d.ts +5 -17
  110. package/dist/components/editor/ImageChooser.svelte +15 -18
  111. package/dist/components/editor/ImageChooser.svelte.d.ts +6 -18
  112. package/dist/components/editor/ImageThumbnail.svelte +29 -24
  113. package/dist/components/editor/ImageThumbnail.svelte.d.ts +7 -19
  114. package/dist/components/editor/InlineCodeEditor.svelte +3 -3
  115. package/dist/components/editor/InlineCodeEditor.svelte.d.ts +5 -17
  116. package/dist/components/editor/LabelEditor.svelte +5 -6
  117. package/dist/components/editor/LabelEditor.svelte.d.ts +5 -17
  118. package/dist/components/editor/LanguageEditor.svelte +4 -5
  119. package/dist/components/editor/LanguageEditor.svelte.d.ts +6 -18
  120. package/dist/components/editor/LinkEditor.svelte +52 -68
  121. package/dist/components/editor/LinkEditor.svelte.d.ts +5 -17
  122. package/dist/components/editor/Note.svelte +4 -1
  123. package/dist/components/editor/Note.svelte.d.ts +5 -28
  124. package/dist/components/editor/Permissions.svelte +36 -34
  125. package/dist/components/editor/Permissions.svelte.d.ts +9 -21
  126. package/dist/components/editor/PositionEditor.svelte +6 -7
  127. package/dist/components/editor/PositionEditor.svelte.d.ts +6 -18
  128. package/dist/components/editor/QuoteEditor.svelte +3 -3
  129. package/dist/components/editor/QuoteEditor.svelte.d.ts +5 -17
  130. package/dist/components/editor/Switch.svelte +16 -11
  131. package/dist/components/editor/Switch.svelte.d.ts +9 -21
  132. package/dist/components/editor/TableEditor.svelte +3 -3
  133. package/dist/components/editor/TableEditor.svelte.d.ts +5 -17
  134. package/dist/components/editor/TextEditor.svelte +74 -87
  135. package/dist/components/editor/TextEditor.svelte.d.ts +13 -25
  136. package/dist/components/editor/Toggle.svelte +18 -21
  137. package/dist/components/editor/Toggle.svelte.d.ts +7 -20
  138. package/dist/components/editor/Toolbar.svelte +140 -145
  139. package/dist/components/editor/Toolbar.svelte.d.ts +5 -17
  140. package/dist/components/editor/ToolbarGroup.svelte +4 -4
  141. package/dist/components/editor/ToolbarGroup.svelte.d.ts +6 -19
  142. package/dist/components/editor/ToolbarSpacer.svelte +1 -1
  143. package/dist/components/editor/ToolbarSpacer.svelte.d.ts +22 -21
  144. package/dist/components/editor/URLEditor.svelte +3 -5
  145. package/dist/components/editor/URLEditor.svelte.d.ts +7 -19
  146. package/dist/components/page/Acknowledgements.svelte +14 -8
  147. package/dist/components/page/Acknowledgements.svelte.d.ts +3 -16
  148. package/dist/components/page/Analytics.svelte +2 -3
  149. package/dist/components/page/Analytics.svelte.d.ts +6 -17
  150. package/dist/components/page/Authors.svelte +29 -29
  151. package/dist/components/page/Authors.svelte.d.ts +11 -23
  152. package/dist/components/page/BookLoader.svelte +47 -43
  153. package/dist/components/page/BookLoader.svelte.d.ts +5 -17
  154. package/dist/components/page/BulkReferenceEditor.svelte +43 -26
  155. package/dist/components/page/BulkReferenceEditor.svelte.d.ts +3 -16
  156. package/dist/components/page/Chapter.svelte +224 -249
  157. package/dist/components/page/Chapter.svelte.d.ts +6 -18
  158. package/dist/components/page/ChapterContext.d.ts +3 -1
  159. package/dist/components/page/ChapterNumber.svelte +4 -1
  160. package/dist/components/page/ChapterNumber.svelte.d.ts +5 -28
  161. package/dist/components/page/ChapterTitle.svelte +4 -4
  162. package/dist/components/page/ChapterTitle.svelte.d.ts +6 -19
  163. package/dist/components/page/Contexts.js +2 -2
  164. package/dist/components/page/DefinitionView.svelte +51 -44
  165. package/dist/components/page/DefinitionView.svelte.d.ts +6 -18
  166. package/dist/components/page/Description.svelte +10 -4
  167. package/dist/components/page/Description.svelte.d.ts +16 -14
  168. package/dist/components/page/DownloadEPUB.svelte +234 -0
  169. package/dist/components/page/DownloadEPUB.svelte.d.ts +3 -0
  170. package/dist/components/page/EditableHeader.svelte +4 -6
  171. package/dist/components/page/EditableHeader.svelte.d.ts +7 -18
  172. package/dist/components/page/Edition.svelte +57 -71
  173. package/dist/components/page/Edition.svelte.d.ts +7 -20
  174. package/dist/components/page/EditionLoader.svelte +119 -82
  175. package/dist/components/page/EditionLoader.svelte.d.ts +6 -19
  176. package/dist/components/page/Editions.svelte +26 -31
  177. package/dist/components/page/Editions.svelte.d.ts +5 -17
  178. package/dist/components/page/Glossary.svelte +31 -35
  179. package/dist/components/page/Glossary.svelte.d.ts +3 -16
  180. package/dist/components/page/Header.svelte +43 -49
  181. package/dist/components/page/Header.svelte.d.ts +19 -30
  182. package/dist/components/page/Index.svelte +46 -46
  183. package/dist/components/page/Index.svelte.d.ts +3 -16
  184. package/dist/components/page/Instructions.svelte +2 -2
  185. package/dist/components/page/Instructions.svelte.d.ts +6 -19
  186. package/dist/components/page/License.svelte +13 -7
  187. package/dist/components/page/License.svelte.d.ts +16 -14
  188. package/dist/components/page/Loading.svelte +9 -9
  189. package/dist/components/page/Loading.svelte.d.ts +22 -21
  190. package/dist/components/page/Media.svelte +36 -27
  191. package/dist/components/page/Media.svelte.d.ts +3 -16
  192. package/dist/components/page/MediaPreview.svelte +22 -19
  193. package/dist/components/page/MediaPreview.svelte.d.ts +8 -21
  194. package/dist/components/page/Muted.svelte +4 -1
  195. package/dist/components/page/Muted.svelte.d.ts +5 -28
  196. package/dist/components/page/Outline.svelte +75 -97
  197. package/dist/components/page/Outline.svelte.d.ts +8 -20
  198. package/dist/components/page/Page.svelte +23 -33
  199. package/dist/components/page/Page.svelte.d.ts +7 -20
  200. package/dist/components/page/PageHeader.svelte +2 -2
  201. package/dist/components/page/PageHeader.svelte.d.ts +6 -19
  202. package/dist/components/page/PageParagraph.svelte +4 -1
  203. package/dist/components/page/PageParagraph.svelte.d.ts +5 -28
  204. package/dist/components/page/PossibleChapter.svelte +7 -7
  205. package/dist/components/page/PossibleChapter.svelte.d.ts +3 -16
  206. package/dist/components/page/PossibleReference.svelte +4 -5
  207. package/dist/components/page/PossibleReference.svelte.d.ts +6 -18
  208. package/dist/components/page/Print.svelte +11 -12
  209. package/dist/components/page/Print.svelte.d.ts +3 -16
  210. package/dist/components/page/Publish.svelte +47 -47
  211. package/dist/components/page/Publish.svelte.d.ts +3 -16
  212. package/dist/components/page/Reference.svelte +24 -35
  213. package/dist/components/page/Reference.svelte.d.ts +6 -18
  214. package/dist/components/page/References.svelte +21 -22
  215. package/dist/components/page/References.svelte.d.ts +3 -16
  216. package/dist/components/page/Rows.svelte +5 -2
  217. package/dist/components/page/Rows.svelte.d.ts +5 -28
  218. package/dist/components/page/Search.svelte +59 -61
  219. package/dist/components/page/Search.svelte.d.ts +3 -16
  220. package/dist/components/page/Status.svelte +2 -2
  221. package/dist/components/page/Status.svelte.d.ts +16 -14
  222. package/dist/components/page/SubdomainEditor.svelte +11 -11
  223. package/dist/components/page/SubdomainEditor.svelte.d.ts +16 -14
  224. package/dist/components/page/TableOfContents.svelte +157 -124
  225. package/dist/components/page/TableOfContents.svelte.d.ts +3 -16
  226. package/dist/components/page/TableOfContentsImage.svelte +6 -7
  227. package/dist/components/page/TableOfContentsImage.svelte.d.ts +6 -18
  228. package/dist/components/page/TableOfContentsRow.svelte +32 -32
  229. package/dist/components/page/TableOfContentsRow.svelte.d.ts +10 -22
  230. package/dist/components/page/ThemeEditor.svelte +35 -28
  231. package/dist/components/page/ThemeEditor.svelte.d.ts +3 -16
  232. package/dist/components/page/ThemeEditorPreview.svelte +11 -13
  233. package/dist/components/page/ThemeEditorPreview.svelte.d.ts +5 -17
  234. package/dist/components/page/ThemeSetEditor.svelte +4 -6
  235. package/dist/components/page/ThemeSetEditor.svelte.d.ts +7 -19
  236. package/dist/components/page/ThemeVariableEditor.svelte +9 -11
  237. package/dist/components/page/ThemeVariableEditor.svelte.d.ts +7 -19
  238. package/dist/components/page/Title.svelte +4 -1
  239. package/dist/components/page/Title.svelte.d.ts +5 -28
  240. package/dist/components/page/Unknown.svelte +11 -8
  241. package/dist/components/page/Unknown.svelte.d.ts +5 -17
  242. package/dist/epub/build.d.ts +39 -0
  243. package/dist/epub/build.js +143 -0
  244. package/dist/epub/build.test.d.ts +1 -0
  245. package/dist/epub/build.test.js +411 -0
  246. package/dist/epub/images.d.ts +79 -0
  247. package/dist/epub/images.js +260 -0
  248. package/dist/epub/images.test.d.ts +1 -0
  249. package/dist/epub/images.test.js +129 -0
  250. package/dist/epub/package.d.ts +75 -0
  251. package/dist/epub/package.js +392 -0
  252. package/dist/epub/stylesheet.test.d.ts +1 -0
  253. package/dist/epub/stylesheet.test.js +243 -0
  254. package/dist/epub/xhtml.d.ts +69 -0
  255. package/dist/epub/xhtml.js +367 -0
  256. package/dist/epub/xhtml.test.d.ts +1 -0
  257. package/dist/epub/xhtml.test.js +283 -0
  258. package/dist/epub/zip.d.ts +35 -0
  259. package/dist/epub/zip.js +202 -0
  260. package/dist/epub/zip.test.d.ts +1 -0
  261. package/dist/epub/zip.test.js +171 -0
  262. package/dist/index.d.ts +1 -0
  263. package/dist/index.js +1 -0
  264. package/dist/models/Firebase.js +18 -4
  265. package/dist/models/book/Book.js +2 -1
  266. package/dist/models/book/BookMedia.js +1 -2
  267. package/dist/models/book/Chapter.js +3 -2
  268. package/dist/models/book/ChapterID.d.ts +1 -1
  269. package/dist/models/book/Edition.d.ts +1 -1
  270. package/dist/models/book/Edition.js +6 -1
  271. package/dist/models/chapter/BlocksNode.js +3 -1
  272. package/dist/models/chapter/BlocksNode.test.js +5 -1
  273. package/dist/models/chapter/Node.test.js +2 -2
  274. package/dist/models/chapter/TextNode.js +8 -5
  275. package/dist/models/chapter/TextNode.test.js +8 -0
  276. package/package.json +36 -22
@@ -1,153 +1,146 @@
1
- <script>import commands from './Commands';
2
- import TextNode from '../../models/chapter/TextNode';
3
- import AtomNode from '../../models/chapter/AtomNode';
4
- import LinkNode from '../../models/chapter/LinkNode';
5
- import LabelNode from '../../models/chapter/LabelNode';
6
- import InlineCodeNode from '../../models/chapter/InlineCodeNode';
7
- import CitationsNode from '../../models/chapter/CitationsNode';
8
- import DefinitionNode from '../../models/chapter/DefinitionNode';
9
- import CodeNode from '../../models/chapter/CodeNode';
10
- import CalloutNode from '../../models/chapter/CalloutNode';
11
- import EmbedNode from '../../models/chapter/EmbedNode';
12
- import QuoteNode from '../../models/chapter/QuoteNode';
13
- import LabelEditor from './LabelEditor.svelte';
14
- import InlineCodeEditor from './InlineCodeEditor.svelte';
15
- import CitationsEditor from './CitationsEditor.svelte';
16
- import LinkEditor from './LinkEditor.svelte';
17
- import DefinitionEditor from './DefinitionEditor.svelte';
18
- import CaptionedCodeEditor from './CaptionedCodeEditor.svelte';
19
- import CalloutEditor from './CalloutEditor.svelte';
20
- import QuoteEditor from './QuoteEditor.svelte';
21
- import EmbedEditor from './EmbedEditor.svelte';
22
- import TableEditor from './TableEditor.svelte';
23
- import ToolbarGroup from './ToolbarGroup.svelte';
24
- import Icon from './Icon.svelte';
25
- import Button from '../app/Button.svelte';
26
- import AnnotateIcon from './icons/annotate.svg?raw';
27
- import BlockIcon from './icons/block.svg?raw';
28
- import ClipboardIcon from './icons/clipboard.svg?raw';
29
- import LevelIcon from './icons/level.svg?raw';
30
- import ListIcon from './icons/list.svg?raw';
31
- import TextIcon from './icons/text.svg?raw';
32
- import TimeIcon from './icons/time.svg?raw';
33
- import TableIcon from './icons/table.svg?raw';
34
- import LinkIcon from './icons/link.svg?raw';
35
- import LabelIcon from './icons/label.svg?raw';
36
- import CitationIcon from './icons/citation.svg?raw';
37
- import DefineIcon from './icons/define.svg?raw';
38
- import CodeIcon from './icons/code.svg?raw';
39
- import CalloutIcon from './icons/callout.svg?raw';
40
- import QuoteIcon from './icons/quote.svg?raw';
41
- import MediaIcon from './icons/media.svg?raw';
42
- import TableNode from '../../models/chapter/TableNode';
43
- import { slide } from 'svelte/transition';
44
- import Note from './Note.svelte';
1
+ <script lang="ts">import commands from "./Commands";
2
+ import TextNode from "../../models/chapter/TextNode";
3
+ import AtomNode from "../../models/chapter/AtomNode";
4
+ import LinkNode from "../../models/chapter/LinkNode";
5
+ import LabelNode from "../../models/chapter/LabelNode";
6
+ import InlineCodeNode from "../../models/chapter/InlineCodeNode";
7
+ import CitationsNode from "../../models/chapter/CitationsNode";
8
+ import DefinitionNode from "../../models/chapter/DefinitionNode";
9
+ import CodeNode from "../../models/chapter/CodeNode";
10
+ import CalloutNode from "../../models/chapter/CalloutNode";
11
+ import EmbedNode from "../../models/chapter/EmbedNode";
12
+ import QuoteNode from "../../models/chapter/QuoteNode";
13
+ import LabelEditor from "./LabelEditor.svelte";
14
+ import InlineCodeEditor from "./InlineCodeEditor.svelte";
15
+ import CitationsEditor from "./CitationsEditor.svelte";
16
+ import LinkEditor from "./LinkEditor.svelte";
17
+ import DefinitionEditor from "./DefinitionEditor.svelte";
18
+ import CaptionedCodeEditor from "./CaptionedCodeEditor.svelte";
19
+ import CalloutEditor from "./CalloutEditor.svelte";
20
+ import QuoteEditor from "./QuoteEditor.svelte";
21
+ import EmbedEditor from "./EmbedEditor.svelte";
22
+ import TableEditor from "./TableEditor.svelte";
23
+ import ToolbarGroup from "./ToolbarGroup.svelte";
24
+ import Icon from "./Icon.svelte";
25
+ import Button from "../app/Button.svelte";
26
+ import AnnotateIcon from "./icons/annotate.svg?raw";
27
+ import BlockIcon from "./icons/block.svg?raw";
28
+ import ClipboardIcon from "./icons/clipboard.svg?raw";
29
+ import LevelIcon from "./icons/level.svg?raw";
30
+ import ListIcon from "./icons/list.svg?raw";
31
+ import TextIcon from "./icons/text.svg?raw";
32
+ import TimeIcon from "./icons/time.svg?raw";
33
+ import TableIcon from "./icons/table.svg?raw";
34
+ import LinkIcon from "./icons/link.svg?raw";
35
+ import LabelIcon from "./icons/label.svg?raw";
36
+ import CitationIcon from "./icons/citation.svg?raw";
37
+ import DefineIcon from "./icons/define.svg?raw";
38
+ import CodeIcon from "./icons/code.svg?raw";
39
+ import CalloutIcon from "./icons/callout.svg?raw";
40
+ import QuoteIcon from "./icons/quote.svg?raw";
41
+ import MediaIcon from "./icons/media.svg?raw";
42
+ import TableNode from "../../models/chapter/TableNode";
43
+ import { slide } from "svelte/transition";
44
+ import Note from "./Note.svelte";
45
45
  const keyLabels = {
46
- Digit0: '0',
47
- Digit1: '1',
48
- Digit2: '2',
49
- Digit3: '3',
50
- ArrowDown: '↓',
51
- ArrowUp: '↑',
52
- ArrowLeft: '←',
53
- ArrowRight: '→',
54
- Backspace: '\u232B',
46
+ Digit0: "0",
47
+ Digit1: "1",
48
+ Digit2: "2",
49
+ Digit3: "3",
50
+ ArrowDown: "\u2193",
51
+ ArrowUp: "\u2191",
52
+ ArrowLeft: "\u2190",
53
+ ArrowRight: "\u2192",
54
+ Backspace: "\u232B"
55
55
  };
56
56
  const categoryOrder = {
57
- navigation: 1,
58
- selection: 2,
59
- text: 3,
60
- history: 4,
61
- clipboard: 5,
62
- annotation: 6,
63
- level: 8,
64
- list: 9,
65
- table: 10,
66
- block: 11,
57
+ navigation: 1,
58
+ selection: 2,
59
+ text: 3,
60
+ history: 4,
61
+ clipboard: 5,
62
+ annotation: 6,
63
+ level: 8,
64
+ list: 9,
65
+ table: 10,
66
+ block: 11
67
67
  };
68
68
  const categoryIcons = {
69
- text: TextIcon,
70
- clipboard: ClipboardIcon,
71
- annotation: AnnotateIcon,
72
- level: LevelIcon,
73
- block: BlockIcon,
74
- list: ListIcon,
75
- table: TableIcon,
76
- history: TimeIcon,
69
+ text: TextIcon,
70
+ clipboard: ClipboardIcon,
71
+ annotation: AnnotateIcon,
72
+ level: LevelIcon,
73
+ block: BlockIcon,
74
+ list: ListIcon,
75
+ table: TableIcon,
76
+ history: TimeIcon
77
77
  };
78
- export let caret;
79
- $: context = caret?.context;
80
- $: root = context?.root;
81
- let element = null;
82
- let categories = undefined;
83
- let commandsByCategory = {};
84
- let metaNode = undefined;
85
- let calloutNode = undefined;
86
- let quoteNode = undefined;
87
- let embedNode = undefined;
88
- let tableNode = undefined;
78
+ let { caret } = $props();
79
+ let context = $derived(caret?.context);
80
+ let root = $derived(context?.root);
81
+ let element = $state(null);
82
+ let categories = $state(void 0);
83
+ let commandsByCategory = $state({});
84
+ let metaNode = $state(void 0);
85
+ let calloutNode = $state(void 0);
86
+ let quoteNode = $state(void 0);
87
+ let embedNode = $state(void 0);
88
+ let tableNode = $state(void 0);
89
89
  function getShortcutDescription(command) {
90
- const macOS = navigator.userAgent.indexOf('Mac') >= 0;
91
- const controlSymbol = macOS ? '\u2318' : 'Ctrl+';
92
- const altSymbol = macOS ? '\u2325' : 'Alt+';
93
- const key = command.key
94
- ? Array.isArray(command.key)
95
- ? command.key.join('/')
96
- : command.key
97
- : command.code
98
- ? command.code
99
- : 'any';
100
- const keyLabel = (typeof key === 'string'
101
- ? key in keyLabels
102
- ? keyLabels[key]
103
- : key
104
- : '—').toLocaleUpperCase();
105
- return `${command.control ? controlSymbol : ''}${command.alt ? altSymbol : ''}${command.shift ? '\u21E7' : ''}${keyLabel}`;
106
- }
107
- // Update the above when the dependencies below change.
108
- $: {
109
- if (context !== undefined && root) {
110
- // Filter the commands by those interactive with a mouse and active.
111
- const visible = commands.filter((command) => command.visible === true ||
112
- (context &&
113
- command.visible instanceof Function &&
114
- command.visible(context)));
115
- // Extract the active categories and sort them
116
- categories = Array.from(new Set(commands.map((command) => command.category))).sort((a, b) => a in categoryOrder && b in categoryOrder
117
- ? categoryOrder[a] - categoryOrder[b]
118
- : 0);
119
- // Make a list for each category of commands
120
- commandsByCategory = {};
121
- categories.forEach((cat) => {
122
- if (commandsByCategory)
123
- commandsByCategory[cat] = visible.filter((command) => command.category === cat);
124
- });
125
- const caretNode = context.start.node;
126
- metaNode =
127
- caretNode instanceof AtomNode
128
- ? caretNode
129
- : caretNode instanceof TextNode
130
- ? caretNode.getParent(root)
131
- : undefined;
132
- calloutNode = caretNode.getClosestParentMatching(root, (p) => p instanceof CalloutNode);
133
- quoteNode = caretNode.getClosestParentMatching(root, (p) => p instanceof QuoteNode);
134
- embedNode =
135
- caretNode instanceof EmbedNode
136
- ? caretNode
137
- : caretNode.getClosestParentMatching(root, (p) => p instanceof EmbedNode);
138
- tableNode = caretNode.getClosestParentMatching(root, (p) => p instanceof TableNode);
139
- }
90
+ const macOS = navigator.userAgent.indexOf("Mac") >= 0;
91
+ const controlSymbol = macOS ? "\u2318" : "Ctrl+";
92
+ const altSymbol = macOS ? "\u2325" : "Alt+";
93
+ const key = command.key ? Array.isArray(command.key) ? command.key.join("/") : command.key : command.code ? command.code : "any";
94
+ const keyLabel = (typeof key === "string" ? key in keyLabels ? keyLabels[key] : key : "\u2014").toLocaleUpperCase();
95
+ return `${command.control ? controlSymbol : ""}${command.alt ? altSymbol : ""}${command.shift ? "\u21E7" : ""}${keyLabel}`;
140
96
  }
97
+ $effect.pre(() => {
98
+ if (context !== void 0 && root) {
99
+ const visible = commands.filter(
100
+ (command) => command.visible === true || context && command.visible instanceof Function && command.visible(context)
101
+ );
102
+ const newCategories = Array.from(
103
+ new Set(commands.map((command) => command.category))
104
+ ).sort(
105
+ (a, b) => a in categoryOrder && b in categoryOrder ? categoryOrder[a] - categoryOrder[b] : 0
106
+ );
107
+ const byCategory = {};
108
+ newCategories.forEach((cat) => {
109
+ byCategory[cat] = visible.filter(
110
+ (command) => command.category === cat
111
+ );
112
+ });
113
+ const caretNode = context.start.node;
114
+ categories = newCategories;
115
+ commandsByCategory = byCategory;
116
+ metaNode = caretNode instanceof AtomNode ? caretNode : caretNode instanceof TextNode ? caretNode.getParent(root) : void 0;
117
+ calloutNode = caretNode.getClosestParentMatching(
118
+ root,
119
+ (p) => p instanceof CalloutNode
120
+ );
121
+ quoteNode = caretNode.getClosestParentMatching(
122
+ root,
123
+ (p) => p instanceof QuoteNode
124
+ );
125
+ embedNode = caretNode instanceof EmbedNode ? caretNode : caretNode.getClosestParentMatching(
126
+ root,
127
+ (p) => p instanceof EmbedNode
128
+ );
129
+ tableNode = caretNode.getClosestParentMatching(
130
+ root,
131
+ (p) => p instanceof TableNode
132
+ );
133
+ }
134
+ });
141
135
  function handleKeyPress(event) {
142
- // Return focus to the editor if someone presses an unhandled enter
143
- if ((event.key === 'Escape' || event.key === 'Enter') && element) {
144
- const editor = element.closest('.bookish-editor');
145
- if (editor instanceof HTMLElement) {
146
- event.stopPropagation();
147
- editor.focus();
148
- }
149
- return true;
136
+ if ((event.key === "Escape" || event.key === "Enter") && element) {
137
+ const editor = element.closest(".bookish-editor");
138
+ if (editor instanceof HTMLElement) {
139
+ event.stopPropagation();
140
+ editor.focus();
150
141
  }
142
+ return true;
143
+ }
151
144
  }
152
145
  </script>
153
146
 
@@ -155,9 +148,12 @@ function handleKeyPress(event) {
155
148
  class="bookish-editor-toolbar"
156
149
  bind:this={element}
157
150
  role="button"
158
- on:keypress={handleKeyPress}
159
- on:keydown={handleKeyPress}
160
- on:pointerdown|stopPropagation={() => element?.focus()}
151
+ onkeypress={handleKeyPress}
152
+ onkeydown={handleKeyPress}
153
+ onpointerdown={(event) => {
154
+ event.stopPropagation();
155
+ element?.focus();
156
+ }}
161
157
  tabindex="0"
162
158
  transition:slide={{ duration: 200 }}
163
159
  >
@@ -185,7 +181,6 @@ function handleKeyPress(event) {
185
181
  tooltip={command.description +
186
182
  ' ' +
187
183
  getShortcutDescription(command)}
188
- tabIndex="0"
189
184
  command={() => caret?.executor(command, '', '')}
190
185
  >
191
186
  <Icon icon={command.icon} />
@@ -226,7 +221,7 @@ function handleKeyPress(event) {
226
221
  {:else if quoteNode}<ToolbarGroup icon={QuoteIcon}
227
222
  ><QuoteEditor quote={quoteNode} /></ToolbarGroup
228
223
  >
229
- {:else if embedNode}<div class="break" />
224
+ {:else if embedNode}<div class="break"></div>
230
225
  <ToolbarGroup icon={MediaIcon}>
231
226
  <EmbedEditor embed={embedNode} />
232
227
  </ToolbarGroup>
@@ -1,19 +1,7 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type CaretState from './CaretState';
3
- declare const __propDef: {
4
- props: {
5
- caret: CaretState | undefined;
6
- };
7
- events: {
8
- [evt: string]: CustomEvent<any>;
9
- };
10
- slots: {};
11
- exports?: {} | undefined;
12
- bindings?: string | undefined;
13
- };
14
- export type ToolbarProps = typeof __propDef.props;
15
- export type ToolbarEvents = typeof __propDef.events;
16
- export type ToolbarSlots = typeof __propDef.slots;
17
- export default class Toolbar extends SvelteComponent<ToolbarProps, ToolbarEvents, ToolbarSlots> {
2
+ interface Props {
3
+ caret: CaretState | undefined;
18
4
  }
19
- export {};
5
+ declare const Toolbar: import("svelte").Component<Props, {}, "">;
6
+ type Toolbar = ReturnType<typeof Toolbar>;
7
+ export default Toolbar;
@@ -1,10 +1,10 @@
1
- <script>import Icon from './Icon.svelte';
2
- import ToolbarSpacer from './ToolbarSpacer.svelte';
3
- export let icon;
1
+ <script lang="ts">import Icon from "./Icon.svelte";
2
+ import ToolbarSpacer from "./ToolbarSpacer.svelte";
3
+ let { icon, children } = $props();
4
4
  </script>
5
5
 
6
6
  <div class="toolbar-group">
7
- <Icon {icon} /><ToolbarSpacer /><slot />
7
+ <Icon {icon} /><ToolbarSpacer />{@render children?.()}
8
8
  </div>
9
9
 
10
10
  <style>
@@ -1,20 +1,7 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- icon: string;
5
- };
6
- events: {
7
- [evt: string]: CustomEvent<any>;
8
- };
9
- slots: {
10
- default: {};
11
- };
12
- exports?: {} | undefined;
13
- bindings?: string | undefined;
14
- };
15
- export type ToolbarGroupProps = typeof __propDef.props;
16
- export type ToolbarGroupEvents = typeof __propDef.events;
17
- export type ToolbarGroupSlots = typeof __propDef.slots;
18
- export default class ToolbarGroup extends SvelteComponent<ToolbarGroupProps, ToolbarGroupEvents, ToolbarGroupSlots> {
1
+ interface Props {
2
+ icon: string;
3
+ children?: import('svelte').Snippet;
19
4
  }
20
- export {};
5
+ declare const ToolbarGroup: import("svelte").Component<Props, {}, "">;
6
+ type ToolbarGroup = ReturnType<typeof ToolbarGroup>;
7
+ export default ToolbarGroup;
@@ -1,4 +1,4 @@
1
- <span />
1
+ <span></span>
2
2
 
3
3
  <style>
4
4
  span {
@@ -1,25 +1,26 @@
1
- /** @typedef {typeof __propDef.props} ToolbarSpacerProps */
2
- /** @typedef {typeof __propDef.events} ToolbarSpacerEvents */
3
- /** @typedef {typeof __propDef.slots} ToolbarSpacerSlots */
4
- export default class ToolbarSpacer extends SvelteComponent<{
1
+ export default ToolbarSpacer;
2
+ type ToolbarSpacer = SvelteComponent<{
5
3
  [x: string]: never;
6
4
  }, {
7
5
  [evt: string]: CustomEvent<any>;
8
- }, {}> {
9
- }
10
- export type ToolbarSpacerProps = typeof __propDef.props;
11
- export type ToolbarSpacerEvents = typeof __propDef.events;
12
- export type ToolbarSpacerSlots = typeof __propDef.slots;
13
- import { SvelteComponent } from "svelte";
14
- declare const __propDef: {
15
- props: {
16
- [x: string]: never;
17
- };
18
- events: {
19
- [evt: string]: CustomEvent<any>;
20
- };
21
- slots: {};
22
- exports?: undefined;
23
- bindings?: undefined;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
24
8
  };
25
- export {};
9
+ declare const ToolbarSpacer: $$__sveltets_2_IsomorphicComponent<{
10
+ [x: string]: never;
11
+ }, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}, {}, string>;
14
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
15
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
16
+ $$bindings?: Bindings;
17
+ } & Exports;
18
+ (internal: unknown, props: {
19
+ $$events?: Events;
20
+ $$slots?: Slots;
21
+ }): Exports & {
22
+ $set?: any;
23
+ $on?: any;
24
+ };
25
+ z_$$bindings?: Bindings;
26
+ }
@@ -1,8 +1,6 @@
1
- <script>import TextEditor from './TextEditor.svelte';
2
- import Link from '../app/Link.svelte';
3
- export let url;
4
- export let validator;
5
- export let edit;
1
+ <script lang="ts">import TextEditor from "./TextEditor.svelte";
2
+ import Link from "../app/Link.svelte";
3
+ let { url, validator, edit } = $props();
6
4
  </script>
7
5
 
8
6
  <TextEditor
@@ -1,20 +1,8 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- url: string;
5
- validator: (text: string) => undefined | string;
6
- edit: (newURL: string) => string | undefined;
7
- };
8
- events: {
9
- [evt: string]: CustomEvent<any>;
10
- };
11
- slots: {};
12
- exports?: {} | undefined;
13
- bindings?: string | undefined;
14
- };
15
- export type UrlEditorProps = typeof __propDef.props;
16
- export type UrlEditorEvents = typeof __propDef.events;
17
- export type UrlEditorSlots = typeof __propDef.slots;
18
- export default class UrlEditor extends SvelteComponent<UrlEditorProps, UrlEditorEvents, UrlEditorSlots> {
1
+ interface Props {
2
+ url: string;
3
+ validator: (text: string) => undefined | string;
4
+ edit: (newURL: string) => string | undefined;
19
5
  }
20
- export {};
6
+ declare const URLEditor: import("svelte").Component<Props, {}, "">;
7
+ type URLEditor = ReturnType<typeof URLEditor>;
8
+ export default URLEditor;
@@ -1,14 +1,20 @@
1
- <script>import Parser from '../../models/chapter/Parser';
2
- import ChapterBody from '../chapter/ChapterBody.svelte';
3
- import BookishEditor from '../editor/BookishEditor.svelte';
4
- import Instructions from './Instructions.svelte';
5
- import { getUser, getEdition, getLeasee, isEditionEditable, lease, } from './Contexts';
6
- import PageHeader from './PageHeader.svelte';
7
- import EditableHeader from './EditableHeader.svelte';
1
+ <script lang="ts">import Parser from "../../models/chapter/Parser";
2
+ import ChapterBody from "../chapter/ChapterBody.svelte";
3
+ import BookishEditor from "../editor/BookishEditor.svelte";
4
+ import Instructions from "./Instructions.svelte";
5
+ import {
6
+ getUser,
7
+ getEdition,
8
+ getLeasee,
9
+ isEditionEditable,
10
+ lease
11
+ } from "./Contexts";
12
+ import PageHeader from "./PageHeader.svelte";
13
+ import EditableHeader from "./EditableHeader.svelte";
8
14
  let auth = getUser();
9
15
  let edition = getEdition();
10
16
  let editable = isEditionEditable();
11
- $: acknowledgements = $edition?.getAcknowledgements();
17
+ let acknowledgements = $derived($edition?.getAcknowledgements());
12
18
  </script>
13
19
 
14
20
  <Instructions {editable}>
@@ -1,16 +1,3 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: Record<string, never>;
4
- events: {
5
- [evt: string]: CustomEvent<any>;
6
- };
7
- slots: {};
8
- exports?: {} | undefined;
9
- bindings?: string | undefined;
10
- };
11
- export type AcknowledgementsProps = typeof __propDef.props;
12
- export type AcknowledgementsEvents = typeof __propDef.events;
13
- export type AcknowledgementsSlots = typeof __propDef.slots;
14
- export default class Acknowledgements extends SvelteComponent<AcknowledgementsProps, AcknowledgementsEvents, AcknowledgementsSlots> {
15
- }
16
- export {};
1
+ declare const Acknowledgements: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type Acknowledgements = ReturnType<typeof Acknowledgements>;
3
+ export default Acknowledgements;
@@ -1,6 +1,5 @@
1
- <script>/** By default, we use the Bookish.press Google Analytics tag */
2
- export let gtagid = null;
3
- $: id = gtagid ?? 'G-BGFDV229BN';
1
+ <script lang="ts">let { gtagid = null } = $props();
2
+ let id = $derived(gtagid ?? "G-BGFDV229BN");
4
3
  </script>
5
4
 
6
5
  <svelte:head>
@@ -1,18 +1,7 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- /** By default, we use the Bookish.press Google Analytics tag */ gtagid?: string | null;
5
- };
6
- events: {
7
- [evt: string]: CustomEvent<any>;
8
- };
9
- slots: {};
10
- exports?: {} | undefined;
11
- bindings?: string | undefined;
12
- };
13
- export type AnalyticsProps = typeof __propDef.props;
14
- export type AnalyticsEvents = typeof __propDef.events;
15
- export type AnalyticsSlots = typeof __propDef.slots;
16
- export default class Analytics extends SvelteComponent<AnalyticsProps, AnalyticsEvents, AnalyticsSlots> {
1
+ interface Props {
2
+ /** By default, we use the Bookish.press Google Analytics tag */
3
+ gtagid?: string | null;
17
4
  }
18
- export {};
5
+ declare const Analytics: import("svelte").Component<Props, {}, "">;
6
+ type Analytics = ReturnType<typeof Analytics>;
7
+ export default Analytics;
@@ -1,35 +1,35 @@
1
- <script>import Parser from '../../models/chapter/Parser';
2
- import TextEditor from '../editor/TextEditor.svelte';
3
- import Format from '../chapter/Format.svelte';
4
- import { afterUpdate } from 'svelte';
5
- import { getEdition, getLeasee, getUser, lease } from './Contexts';
6
- import Note from '../editor/Note.svelte';
7
- import Button from '../app/Button.svelte';
8
- import { tick } from 'svelte';
9
- import BookishEditor from '../editor/BookishEditor.svelte';
10
- import { auth } from '../../models/Firebase';
11
- export let editable;
12
- export let authors;
13
- export let inheritedAuthors = undefined;
14
- export let add;
15
- export let edit;
16
- export let remove;
17
- export let editors = false;
1
+ <script lang="ts">import Parser from "../../models/chapter/Parser";
2
+ import TextEditor from "../editor/TextEditor.svelte";
3
+ import Format from "../chapter/Format.svelte";
4
+ import { getEdition, getLeasee, getUser, lease } from "./Contexts";
5
+ import Note from "../editor/Note.svelte";
6
+ import Button from "../app/Button.svelte";
7
+ import { tick } from "svelte";
8
+ import BookishEditor from "../editor/BookishEditor.svelte";
9
+ import { auth } from "../../models/Firebase";
10
+ let {
11
+ editable,
12
+ authors,
13
+ inheritedAuthors = void 0,
14
+ add,
15
+ edit,
16
+ remove,
17
+ editors = false
18
+ } = $props();
18
19
  let edition = getEdition();
19
- let authorList = null;
20
- $: showInherited = authors.length === 0 && inheritedAuthors !== undefined;
21
- $: authorsToShow = showInherited ? inheritedAuthors : authors;
20
+ let authorList = $state(null);
21
+ let showInherited = $derived(authors.length === 0 && inheritedAuthors !== void 0);
22
+ let authorsToShow = $derived(showInherited ? inheritedAuthors : authors);
22
23
  async function addAuthor() {
23
- add();
24
- await tick();
25
- if (authors.length > 0 && authorList) {
26
- const editors = authorList.querySelectorAll('input');
27
- if (editors.length > 0) {
28
- const lastAuthor = editors[editors.length - 1];
29
- if (lastAuthor instanceof HTMLElement)
30
- lastAuthor.focus();
31
- }
24
+ add();
25
+ await tick();
26
+ if (authors.length > 0 && authorList) {
27
+ const editors2 = authorList.querySelectorAll("input");
28
+ if (editors2.length > 0) {
29
+ const lastAuthor = editors2[editors2.length - 1];
30
+ if (lastAuthor instanceof HTMLElement) lastAuthor.focus();
32
31
  }
32
+ }
33
33
  }
34
34
  </script>
35
35