bookish-press 0.4.231 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (433) hide show
  1. package/{components → package/components}/Auth.svelte +11 -13
  2. package/{components → package/components}/Auth.svelte.d.ts +0 -0
  3. package/{components → package/components}/Authentication.d.ts +0 -0
  4. package/{components → package/components}/Authentication.js +0 -0
  5. package/{components → package/components}/BookPreview.svelte +13 -17
  6. package/{components → package/components}/BookPreview.svelte.d.ts +0 -0
  7. package/{components → package/components}/Link.svelte +2 -1
  8. package/{components → package/components}/Link.svelte.d.ts +1 -0
  9. package/{components → package/components}/app/BookList.svelte +0 -0
  10. package/{components → package/components}/app/BookList.svelte.d.ts +0 -0
  11. package/{components → package/components}/app/Button.svelte +5 -2
  12. package/{components → package/components}/app/Button.svelte.d.ts +0 -0
  13. package/{components → package/components}/app/Feedback.svelte +4 -9
  14. package/{components → package/components}/app/Feedback.svelte.d.ts +0 -0
  15. package/{components → package/components}/app/Head.svelte +4 -1
  16. package/{components → package/components}/app/Head.svelte.d.ts +6 -15
  17. package/{components → package/components}/app/Large.svelte +0 -0
  18. package/{components → package/components}/app/Large.svelte.d.ts +0 -0
  19. package/{components → package/components}/app/Lead.svelte +0 -0
  20. package/{components → package/components}/app/Lead.svelte.d.ts +0 -0
  21. package/package/components/app/Link.svelte +36 -0
  22. package/{components → package/components}/app/Link.svelte.d.ts +1 -0
  23. package/{components → package/components}/app/Options.svelte +0 -0
  24. package/{components → package/components}/app/Options.svelte.d.ts +0 -0
  25. package/{components → package/components}/app/Paragraph.svelte +1 -0
  26. package/{components → package/components}/app/Paragraph.svelte.d.ts +0 -0
  27. package/{components/app/Writing.svelte → package/components/app/Section.svelte} +0 -1
  28. package/package/components/app/Section.svelte.d.ts +27 -0
  29. package/{components → package/components}/app/Table.svelte +0 -0
  30. package/{components → package/components}/app/Table.svelte.d.ts +0 -0
  31. package/{components → package/components}/app/TextInput.svelte +2 -0
  32. package/{components → package/components}/app/TextInput.svelte.d.ts +0 -0
  33. package/{components → package/components}/chapter/Atom.svelte +1 -8
  34. package/{components → package/components}/chapter/Atom.svelte.d.ts +0 -0
  35. package/{components → package/components}/chapter/Block.svelte +3 -1
  36. package/{components → package/components}/chapter/Block.svelte.d.ts +0 -0
  37. package/{components → package/components}/chapter/Callout.svelte +0 -0
  38. package/{components → package/components}/chapter/Callout.svelte.d.ts +0 -0
  39. package/{components → package/components}/chapter/CaptionedCode.svelte +2 -2
  40. package/{components → package/components}/chapter/CaptionedCode.svelte.d.ts +0 -0
  41. package/{components → package/components}/chapter/ChapterBody.svelte +9 -16
  42. package/{components → package/components}/chapter/ChapterBody.svelte.d.ts +1 -0
  43. package/{components → package/components}/chapter/Citations.svelte +13 -11
  44. package/{components → package/components}/chapter/Citations.svelte.d.ts +0 -0
  45. package/{components → package/components}/chapter/Code.svelte +3 -2
  46. package/{components → package/components}/chapter/Code.svelte.d.ts +0 -0
  47. package/{components → package/components}/chapter/Comment.svelte +7 -13
  48. package/{components → package/components}/chapter/Comment.svelte.d.ts +0 -0
  49. package/{components → package/components}/chapter/Definition.svelte +8 -3
  50. package/{components → package/components}/chapter/Definition.svelte.d.ts +0 -0
  51. package/{components → package/components}/chapter/Embed.svelte +6 -5
  52. package/{components → package/components}/chapter/Embed.svelte.d.ts +1 -0
  53. package/{components → package/components}/chapter/ErrorMessage.svelte +0 -0
  54. package/{components → package/components}/chapter/ErrorMessage.svelte.d.ts +0 -0
  55. package/{components → package/components}/chapter/ExtendedPrism.d.ts +0 -0
  56. package/{components → package/components}/chapter/ExtendedPrism.js +0 -0
  57. package/{components → package/components}/chapter/Figure.svelte +8 -8
  58. package/{components → package/components}/chapter/Figure.svelte.d.ts +0 -0
  59. package/{components → package/components}/chapter/Footnote.svelte +13 -24
  60. package/{components → package/components}/chapter/Footnote.svelte.d.ts +0 -2
  61. package/{components → package/components}/chapter/Format.svelte +5 -4
  62. package/{components → package/components}/chapter/Format.svelte.d.ts +0 -0
  63. package/{components → package/components}/chapter/InlineCode.svelte +2 -2
  64. package/{components → package/components}/chapter/InlineCode.svelte.d.ts +0 -0
  65. package/{components → package/components}/chapter/Label.svelte +5 -7
  66. package/{components → package/components}/chapter/Label.svelte.d.ts +0 -0
  67. package/{components → package/components}/chapter/Link.svelte +8 -6
  68. package/{components → package/components}/chapter/Link.svelte.d.ts +0 -0
  69. package/{components → package/components}/chapter/List.svelte +5 -0
  70. package/{components → package/components}/chapter/List.svelte.d.ts +0 -0
  71. package/{components → package/components}/chapter/Marginal.svelte +30 -12
  72. package/{components → package/components}/chapter/Marginal.svelte.d.ts +0 -0
  73. package/{components → package/components}/chapter/Paragraph.svelte +23 -10
  74. package/{components → package/components}/chapter/Paragraph.svelte.d.ts +0 -0
  75. package/{components → package/components}/chapter/Positioned.svelte +0 -0
  76. package/{components → package/components}/chapter/Positioned.svelte.d.ts +0 -0
  77. package/{components → package/components}/chapter/Problem.svelte +0 -0
  78. package/{components → package/components}/chapter/Problem.svelte.d.ts +0 -0
  79. package/{components → package/components}/chapter/Python.svelte +0 -0
  80. package/{components → package/components}/chapter/Python.svelte.d.ts +0 -0
  81. package/{components → package/components}/chapter/Quote.svelte +20 -10
  82. package/{components → package/components}/chapter/Quote.svelte.d.ts +0 -0
  83. package/{components → package/components}/chapter/Rule.svelte +0 -0
  84. package/{components → package/components}/chapter/Rule.svelte.d.ts +0 -0
  85. package/{components → package/components}/chapter/Table.svelte +2 -2
  86. package/{components → package/components}/chapter/Table.svelte.d.ts +0 -0
  87. package/{components → package/components}/chapter/Text.svelte +2 -2
  88. package/{components → package/components}/chapter/Text.svelte.d.ts +0 -0
  89. package/package/components/controls/DarkToggle.svelte +38 -0
  90. package/package/components/controls/DarkToggle.svelte.d.ts +17 -0
  91. package/{components → package/components}/editor/BookishEditor.svelte +57 -32
  92. package/{components → package/components}/editor/BookishEditor.svelte.d.ts +4 -1
  93. package/{components → package/components}/editor/CalloutEditor.svelte +0 -0
  94. package/{components → package/components}/editor/CalloutEditor.svelte.d.ts +0 -0
  95. package/{components → package/components}/editor/CaptionedCodeEditor.svelte +0 -0
  96. package/{components → package/components}/editor/CaptionedCodeEditor.svelte.d.ts +0 -0
  97. package/{components → package/components}/editor/CaretContext.d.ts +0 -0
  98. package/{components → package/components}/editor/CaretContext.js +0 -0
  99. package/{components → package/components}/editor/CaretState.d.ts +0 -0
  100. package/{components → package/components}/editor/CaretState.js +0 -0
  101. package/{components → package/components}/editor/CaretUtilities.d.ts +0 -0
  102. package/{components → package/components}/editor/CaretUtilities.js +0 -0
  103. package/{components → package/components}/editor/CaretView.svelte +4 -2
  104. package/{components → package/components}/editor/CaretView.svelte.d.ts +1 -0
  105. package/{components → package/components}/editor/CitationsEditor.svelte +0 -0
  106. package/{components → package/components}/editor/CitationsEditor.svelte.d.ts +0 -0
  107. package/{components → package/components}/editor/Clipboard.d.ts +0 -0
  108. package/{components → package/components}/editor/Clipboard.js +0 -0
  109. package/{components → package/components}/editor/Command.d.ts +0 -0
  110. package/{components → package/components}/editor/Command.js +0 -0
  111. package/{components → package/components}/editor/Commands.d.ts +0 -0
  112. package/{components → package/components}/editor/Commands.js +0 -0
  113. package/package/components/editor/ConfirmButton.svelte +23 -0
  114. package/{components → package/components}/editor/ConfirmButton.svelte.d.ts +4 -3
  115. package/{components → package/components}/editor/DefinitionEditor.svelte +0 -0
  116. package/{components → package/components}/editor/DefinitionEditor.svelte.d.ts +0 -0
  117. package/{components → package/components}/editor/EmbedEditor.svelte +1 -1
  118. package/{components → package/components}/editor/EmbedEditor.svelte.d.ts +0 -0
  119. package/{components → package/components}/editor/Icon.svelte +0 -0
  120. package/{components → package/components}/editor/Icon.svelte.d.ts +0 -0
  121. package/{components → package/components}/editor/ImageChooser.svelte +0 -0
  122. package/{components → package/components}/editor/ImageChooser.svelte.d.ts +0 -0
  123. package/{components → package/components}/editor/InlineCodeEditor.svelte +0 -0
  124. package/{components → package/components}/editor/InlineCodeEditor.svelte.d.ts +0 -0
  125. package/{components → package/components}/editor/LabelEditor.svelte +0 -0
  126. package/{components → package/components}/editor/LabelEditor.svelte.d.ts +0 -0
  127. package/{components → package/components}/editor/LanguageEditor.svelte +0 -0
  128. package/{components → package/components}/editor/LanguageEditor.svelte.d.ts +0 -0
  129. package/{components → package/components}/editor/LinkEditor.svelte +4 -3
  130. package/{components → package/components}/editor/LinkEditor.svelte.d.ts +0 -0
  131. package/{components → package/components}/editor/Note.svelte +1 -0
  132. package/{components → package/components}/editor/Note.svelte.d.ts +0 -0
  133. package/package/components/editor/Permissions.svelte +93 -0
  134. package/package/components/editor/Permissions.svelte.d.ts +20 -0
  135. package/{components → package/components}/editor/PositionEditor.svelte +0 -0
  136. package/{components → package/components}/editor/PositionEditor.svelte.d.ts +0 -0
  137. package/{components → package/components}/editor/QuoteEditor.svelte +0 -0
  138. package/{components → package/components}/editor/QuoteEditor.svelte.d.ts +0 -0
  139. package/{components → package/components}/editor/Switch.svelte +0 -0
  140. package/{components → package/components}/editor/Switch.svelte.d.ts +0 -0
  141. package/{components → package/components}/editor/TableEditor.svelte +0 -0
  142. package/{components → package/components}/editor/TableEditor.svelte.d.ts +0 -0
  143. package/{components → package/components}/editor/TextEditor.svelte +2 -3
  144. package/{components → package/components}/editor/TextEditor.svelte.d.ts +0 -0
  145. package/{components → package/components}/editor/Toggle.svelte +0 -0
  146. package/{components → package/components}/editor/Toggle.svelte.d.ts +0 -0
  147. package/{components → package/components}/editor/Toolbar.svelte +8 -3
  148. package/{components → package/components}/editor/Toolbar.svelte.d.ts +0 -0
  149. package/{components → package/components}/editor/ToolbarGroup.svelte +0 -1
  150. package/{components → package/components}/editor/ToolbarGroup.svelte.d.ts +0 -0
  151. package/{components → package/components}/editor/ToolbarSpacer.svelte +0 -0
  152. package/{components → package/components}/editor/ToolbarSpacer.svelte.d.ts +0 -0
  153. package/{components → package/components}/editor/URLEditor.svelte +2 -0
  154. package/{components → package/components}/editor/URLEditor.svelte.d.ts +0 -0
  155. package/{components → package/components}/editor/UndoState.d.ts +0 -0
  156. package/{components → package/components}/editor/UndoState.js +0 -0
  157. package/{components → package/components}/editor/icons/annotate.svg +0 -0
  158. package/{components → package/components}/editor/icons/block.svg +0 -0
  159. package/{components → package/components}/editor/icons/bold.svg +0 -0
  160. package/{components → package/components}/editor/icons/bullets.svg +0 -0
  161. package/{components → package/components}/editor/icons/callout.svg +0 -0
  162. package/{components → package/components}/editor/icons/citation.svg +0 -0
  163. package/{components → package/components}/editor/icons/clear.svg +0 -0
  164. package/{components → package/components}/editor/icons/clipboard.svg +0 -0
  165. package/{components → package/components}/editor/icons/code.svg +0 -0
  166. package/{components → package/components}/editor/icons/columnafter.svg +0 -0
  167. package/{components → package/components}/editor/icons/columnbefore.svg +0 -0
  168. package/{components → package/components}/editor/icons/comment.svg +0 -0
  169. package/{components → package/components}/editor/icons/copy.svg +0 -0
  170. package/{components → package/components}/editor/icons/cut.svg +0 -0
  171. package/{components → package/components}/editor/icons/define.svg +0 -0
  172. package/{components → package/components}/editor/icons/deletecolumn.svg +0 -0
  173. package/{components → package/components}/editor/icons/deleterow.svg +0 -0
  174. package/{components → package/components}/editor/icons/footnote.svg +0 -0
  175. package/{components → package/components}/editor/icons/header1.svg +0 -0
  176. package/{components → package/components}/editor/icons/header2.svg +0 -0
  177. package/{components → package/components}/editor/icons/header3.svg +0 -0
  178. package/{components → package/components}/editor/icons/home.svg +0 -0
  179. package/{components → package/components}/editor/icons/indent.svg +0 -0
  180. package/{components → package/components}/editor/icons/italic.svg +0 -0
  181. package/{components → package/components}/editor/icons/label.svg +0 -0
  182. package/{components → package/components}/editor/icons/left.svg +0 -0
  183. package/{components → package/components}/editor/icons/level.svg +0 -0
  184. package/{components → package/components}/editor/icons/link.svg +0 -0
  185. package/{components → package/components}/editor/icons/list.svg +0 -0
  186. package/{components → package/components}/editor/icons/media.svg +0 -0
  187. package/{components → package/components}/editor/icons/middle.svg +0 -0
  188. package/{components → package/components}/editor/icons/numbers.svg +0 -0
  189. package/{components → package/components}/editor/icons/paragraph.svg +0 -0
  190. package/{components → package/components}/editor/icons/paste.svg +0 -0
  191. package/{components → package/components}/editor/icons/quote.svg +0 -0
  192. package/{components → package/components}/editor/icons/redo.svg +0 -0
  193. package/{components → package/components}/editor/icons/right.svg +0 -0
  194. package/{components → package/components}/editor/icons/rowabove.svg +0 -0
  195. package/{components → package/components}/editor/icons/rowbelow.svg +0 -0
  196. package/{components → package/components}/editor/icons/rule.svg +0 -0
  197. package/{components → package/components}/editor/icons/sub.svg +0 -0
  198. package/{components → package/components}/editor/icons/super.svg +0 -0
  199. package/{components → package/components}/editor/icons/table.svg +0 -0
  200. package/{components → package/components}/editor/icons/text.svg +0 -0
  201. package/{components → package/components}/editor/icons/time.svg +0 -0
  202. package/{components → package/components}/editor/icons/undo.svg +0 -0
  203. package/{components → package/components}/editor/icons/unindent.svg +0 -0
  204. package/{components → package/components}/editor/icons/unlink.svg +0 -0
  205. package/{components → package/components}/page/Acknowledgements.svelte +13 -11
  206. package/{components → package/components}/page/Acknowledgements.svelte.d.ts +0 -0
  207. package/package/components/page/Authors.svelte +86 -0
  208. package/{components → package/components}/page/Authors.svelte.d.ts +1 -0
  209. package/package/components/page/BookLoader.svelte +59 -0
  210. package/package/components/page/BookLoader.svelte.d.ts +16 -0
  211. package/{components → package/components}/page/BulkReferenceEditor.svelte +8 -8
  212. package/{components → package/components}/page/BulkReferenceEditor.svelte.d.ts +0 -0
  213. package/{components → package/components}/page/Chapter.svelte +69 -30
  214. package/{components → package/components}/page/Chapter.svelte.d.ts +0 -0
  215. package/{components → package/components}/page/ChapterContext.d.ts +0 -0
  216. package/{components → package/components}/page/ChapterContext.js +0 -0
  217. package/{components → package/components}/page/ChapterNumber.svelte +0 -0
  218. package/{components → package/components}/page/ChapterNumber.svelte.d.ts +0 -0
  219. package/{components → package/components}/page/ChapterTitle.svelte +0 -0
  220. package/{components → package/components}/page/ChapterTitle.svelte.d.ts +0 -0
  221. package/{components → package/components}/page/Contexts.d.ts +21 -5
  222. package/package/components/page/Contexts.js +144 -0
  223. package/{components → package/components}/page/DefinitionView.svelte +23 -14
  224. package/{components → package/components}/page/DefinitionView.svelte.d.ts +0 -0
  225. package/{components → package/components}/page/Description.svelte +12 -9
  226. package/{components → package/components}/page/Description.svelte.d.ts +0 -0
  227. package/{components → package/components}/page/Edition.svelte +13 -23
  228. package/{components → package/components}/page/Edition.svelte.d.ts +1 -2
  229. package/package/components/page/EditionLoader.svelte +99 -0
  230. package/package/components/page/EditionLoader.svelte.d.ts +18 -0
  231. package/package/components/page/Editions.svelte +109 -0
  232. package/{components → package/components}/page/Editions.svelte.d.ts +3 -1
  233. package/{components → package/components}/page/Glossary.svelte +13 -6
  234. package/{components → package/components}/page/Glossary.svelte.d.ts +0 -0
  235. package/{components → package/components}/page/Header.svelte +26 -21
  236. package/{components → package/components}/page/Header.svelte.d.ts +2 -0
  237. package/{components → package/components}/page/Index.svelte +14 -8
  238. package/{components → package/components}/page/Index.svelte.d.ts +0 -0
  239. package/{components → package/components}/page/Instructions.svelte +1 -2
  240. package/{components → package/components}/page/Instructions.svelte.d.ts +3 -1
  241. package/package/components/page/License.svelte +45 -0
  242. package/{components → package/components}/page/License.svelte.d.ts +0 -0
  243. package/{components → package/components}/page/Loading.svelte +0 -0
  244. package/{components → package/components}/page/Loading.svelte.d.ts +0 -0
  245. package/{components → package/components}/page/Media.svelte +40 -36
  246. package/{components → package/components}/page/Media.svelte.d.ts +0 -0
  247. package/package/components/page/MediaPreview.svelte +55 -0
  248. package/{components → package/components}/page/MediaPreview.svelte.d.ts +0 -0
  249. package/{components → package/components}/page/Muted.svelte +0 -0
  250. package/{components → package/components}/page/Muted.svelte.d.ts +0 -0
  251. package/{components → package/components}/page/Outline.svelte +69 -96
  252. package/{components → package/components}/page/Outline.svelte.d.ts +0 -0
  253. package/{components → package/components}/page/Page.svelte +4 -4
  254. package/{components → package/components}/page/Page.svelte.d.ts +0 -0
  255. package/{components → package/components}/page/PageHeader.svelte +5 -0
  256. package/{components → package/components}/page/PageHeader.svelte.d.ts +0 -0
  257. package/{components → package/components}/page/PageParagraph.svelte +0 -0
  258. package/{components → package/components}/page/PageParagraph.svelte.d.ts +0 -0
  259. package/{components → package/components}/page/PossibleChapter.svelte +0 -0
  260. package/{components → package/components}/page/PossibleChapter.svelte.d.ts +0 -0
  261. package/{components → package/components}/page/PossibleReference.svelte +2 -1
  262. package/{components → package/components}/page/PossibleReference.svelte.d.ts +1 -0
  263. package/{components → package/components}/page/Print.svelte +0 -0
  264. package/{components → package/components}/page/Print.svelte.d.ts +0 -0
  265. package/package/components/page/Publish.svelte +135 -0
  266. package/package/components/page/Publish.svelte.d.ts +14 -0
  267. package/{components → package/components}/page/Reference.svelte +54 -51
  268. package/{components → package/components}/page/Reference.svelte.d.ts +1 -0
  269. package/{components → package/components}/page/References.svelte +9 -4
  270. package/{components → package/components}/page/References.svelte.d.ts +0 -0
  271. package/{components → package/components}/page/Rows.svelte +0 -0
  272. package/{components → package/components}/page/Rows.svelte.d.ts +0 -0
  273. package/{components → package/components}/page/Search.svelte +27 -10
  274. package/{components → package/components}/page/Search.svelte.d.ts +0 -0
  275. package/package/components/page/Status.svelte +58 -0
  276. package/{components → package/components}/page/Status.svelte.d.ts +0 -0
  277. package/{components → package/components}/page/SubdomainEditor.svelte +5 -3
  278. package/{components → package/components}/page/SubdomainEditor.svelte.d.ts +0 -0
  279. package/{components → package/components}/page/TableOfContents.svelte +83 -37
  280. package/{components → package/components}/page/TableOfContents.svelte.d.ts +0 -0
  281. package/package/components/page/TableOfContentsImage.svelte +27 -0
  282. package/{components → package/components}/page/TableOfContentsImage.svelte.d.ts +1 -0
  283. package/{components → package/components}/page/TableOfContentsRow.svelte +11 -12
  284. package/{components → package/components}/page/TableOfContentsRow.svelte.d.ts +0 -0
  285. package/{components → package/components}/page/ThemeEditor.svelte +12 -10
  286. package/{components → package/components}/page/ThemeEditor.svelte.d.ts +0 -0
  287. package/{components → package/components}/page/ThemeEditorPreview.svelte +0 -0
  288. package/{components → package/components}/page/ThemeEditorPreview.svelte.d.ts +0 -0
  289. package/{components → package/components}/page/ThemeSetEditor.svelte +0 -0
  290. package/{components → package/components}/page/ThemeSetEditor.svelte.d.ts +0 -0
  291. package/{components → package/components}/page/ThemeVariableEditor.svelte +0 -0
  292. package/{components → package/components}/page/ThemeVariableEditor.svelte.d.ts +0 -0
  293. package/{components → package/components}/page/Title.svelte +0 -0
  294. package/{components → package/components}/page/Title.svelte.d.ts +0 -0
  295. package/{components → package/components}/page/Unknown.svelte +5 -2
  296. package/{components → package/components}/page/Unknown.svelte.d.ts +0 -0
  297. package/{components → package/components}/page/margins.d.ts +0 -0
  298. package/{components → package/components}/page/margins.js +0 -0
  299. package/{index.d.ts → package/index.d.ts} +3 -1
  300. package/{index.js → package/index.js} +3 -1
  301. package/package/models/CRUD.d.ts +28 -0
  302. package/package/models/CRUD.js +263 -0
  303. package/{models → package/models}/Firebase.d.ts +0 -0
  304. package/package/models/Firebase.js +36 -0
  305. package/{models → package/models}/book/Book.d.ts +23 -18
  306. package/package/models/book/Book.js +135 -0
  307. package/{models → package/models}/book/BookMedia.d.ts +1 -1
  308. package/{models → package/models}/book/BookMedia.js +9 -10
  309. package/{models → package/models}/book/BookSaveStatus.d.ts +0 -0
  310. package/{models → package/models}/book/BookSaveStatus.js +0 -0
  311. package/{models → package/models}/book/Chapter.d.ts +5 -1
  312. package/{models → package/models}/book/Chapter.js +24 -15
  313. package/{models → package/models}/book/ChapterID.d.ts +0 -0
  314. package/{models → package/models}/book/ChapterID.js +0 -0
  315. package/{models → package/models}/book/Definition.d.ts +0 -0
  316. package/{models → package/models}/book/Definition.js +0 -0
  317. package/{models → package/models}/book/Edition.d.ts +33 -7
  318. package/{models → package/models}/book/Edition.js +104 -32
  319. package/{models → package/models}/book/Reference.d.ts +0 -0
  320. package/{models → package/models}/book/Reference.js +0 -0
  321. package/{models → package/models}/book/Schema.d.ts +20 -15
  322. package/{models → package/models}/book/Schema.js +17 -16
  323. package/{models → package/models}/book/Theme.d.ts +0 -0
  324. package/{models → package/models}/book/Theme.js +7 -6
  325. package/{models → package/models}/book/ThemeColors.d.ts +0 -0
  326. package/{models → package/models}/book/ThemeColors.js +0 -0
  327. package/{models → package/models}/book/Words.d.ts +0 -0
  328. package/{models → package/models}/book/Words.js +0 -0
  329. package/{models → package/models}/chapter/AtomNode.d.ts +0 -0
  330. package/{models → package/models}/chapter/AtomNode.js +0 -0
  331. package/{models → package/models}/chapter/BlockNode.d.ts +0 -0
  332. package/{models → package/models}/chapter/BlockNode.js +0 -0
  333. package/{models → package/models}/chapter/BlocksNode.d.ts +0 -0
  334. package/{models → package/models}/chapter/BlocksNode.js +0 -0
  335. package/{models → package/models}/chapter/BlocksNode.test.d.ts +0 -0
  336. package/{models → package/models}/chapter/BlocksNode.test.js +0 -0
  337. package/{models → package/models}/chapter/Bookkeeping.d.ts +0 -0
  338. package/{models → package/models}/chapter/Bookkeeping.js +0 -0
  339. package/{models → package/models}/chapter/CalloutNode.d.ts +0 -0
  340. package/{models → package/models}/chapter/CalloutNode.js +0 -0
  341. package/{models → package/models}/chapter/Caret.d.ts +0 -0
  342. package/{models → package/models}/chapter/Caret.js +0 -0
  343. package/{models → package/models}/chapter/ChapterNode.d.ts +0 -0
  344. package/{models → package/models}/chapter/ChapterNode.js +0 -0
  345. package/{models → package/models}/chapter/CitationsNode.d.ts +0 -0
  346. package/{models → package/models}/chapter/CitationsNode.js +0 -0
  347. package/{models → package/models}/chapter/CodeNode.d.ts +0 -0
  348. package/{models → package/models}/chapter/CodeNode.js +0 -0
  349. package/{models → package/models}/chapter/CommentNode.d.ts +0 -0
  350. package/{models → package/models}/chapter/CommentNode.js +13 -3
  351. package/{models → package/models}/chapter/DefinitionNode.d.ts +0 -0
  352. package/{models → package/models}/chapter/DefinitionNode.js +0 -0
  353. package/{models → package/models}/chapter/Edit.d.ts +0 -0
  354. package/{models → package/models}/chapter/Edit.js +0 -0
  355. package/{models → package/models}/chapter/EmbedNode.d.ts +1 -0
  356. package/{models → package/models}/chapter/EmbedNode.js +6 -0
  357. package/{models → package/models}/chapter/ErrorNode.d.ts +0 -0
  358. package/{models → package/models}/chapter/ErrorNode.js +0 -0
  359. package/{models → package/models}/chapter/FootnoteNode.d.ts +0 -0
  360. package/{models → package/models}/chapter/FootnoteNode.js +0 -0
  361. package/{models → package/models}/chapter/FormatNode.d.ts +0 -0
  362. package/{models → package/models}/chapter/FormatNode.js +1 -6
  363. package/{models → package/models}/chapter/FormatNode.test.d.ts +0 -0
  364. package/{models → package/models}/chapter/FormatNode.test.js +0 -0
  365. package/{models → package/models}/chapter/InlineCodeNode.d.ts +0 -0
  366. package/{models → package/models}/chapter/InlineCodeNode.js +0 -0
  367. package/{models → package/models}/chapter/LabelNode.d.ts +0 -0
  368. package/{models → package/models}/chapter/LabelNode.js +0 -0
  369. package/{models → package/models}/chapter/LinkNode.d.ts +0 -0
  370. package/{models → package/models}/chapter/LinkNode.js +0 -0
  371. package/{models → package/models}/chapter/ListNode.d.ts +0 -0
  372. package/{models → package/models}/chapter/ListNode.js +0 -0
  373. package/{models → package/models}/chapter/ListNode.test.d.ts +0 -0
  374. package/{models → package/models}/chapter/ListNode.test.js +0 -0
  375. package/{models → package/models}/chapter/MetadataNode.d.ts +0 -0
  376. package/{models → package/models}/chapter/MetadataNode.js +0 -0
  377. package/{models → package/models}/chapter/Node.d.ts +0 -0
  378. package/{models → package/models}/chapter/Node.js +0 -0
  379. package/{models → package/models}/chapter/Node.test.d.ts +0 -0
  380. package/{models → package/models}/chapter/Node.test.js +0 -0
  381. package/{models → package/models}/chapter/ParagraphNode.d.ts +0 -0
  382. package/{models → package/models}/chapter/ParagraphNode.js +0 -0
  383. package/{models → package/models}/chapter/ParagraphNode.test.d.ts +0 -0
  384. package/{models → package/models}/chapter/ParagraphNode.test.js +0 -0
  385. package/{models → package/models}/chapter/Parser.d.ts +2 -2
  386. package/{models → package/models}/chapter/Parser.js +26 -24
  387. package/{models → package/models}/chapter/Parser.test.d.ts +0 -0
  388. package/{models → package/models}/chapter/Parser.test.js +0 -0
  389. package/{models → package/models}/chapter/Position.d.ts +0 -0
  390. package/{models → package/models}/chapter/Position.js +0 -0
  391. package/{models → package/models}/chapter/QuoteNode.d.ts +0 -0
  392. package/{models → package/models}/chapter/QuoteNode.js +0 -0
  393. package/{models → package/models}/chapter/RootNode.d.ts +0 -0
  394. package/{models → package/models}/chapter/RootNode.js +0 -0
  395. package/{models → package/models}/chapter/RuleNode.d.ts +0 -0
  396. package/{models → package/models}/chapter/RuleNode.js +0 -0
  397. package/{models → package/models}/chapter/TableNode.d.ts +0 -0
  398. package/{models → package/models}/chapter/TableNode.js +0 -0
  399. package/{models → package/models}/chapter/TableNode.test.d.ts +0 -0
  400. package/{models → package/models}/chapter/TableNode.test.js +0 -0
  401. package/{models → package/models}/chapter/TextNode.d.ts +0 -0
  402. package/{models → package/models}/chapter/TextNode.js +0 -0
  403. package/{models → package/models}/chapter/TextNode.test.d.ts +0 -0
  404. package/{models → package/models}/chapter/TextNode.test.js +0 -0
  405. package/package/util/dark.d.ts +2 -0
  406. package/package/util/dark.js +16 -0
  407. package/{util → package/util}/getSubdomain.d.ts +0 -0
  408. package/{util → package/util}/getSubdomain.js +0 -0
  409. package/{util → package/util}/isMobile.d.ts +0 -0
  410. package/{util → package/util}/isMobile.js +0 -0
  411. package/{util → package/util}/mineReference.d.ts +0 -0
  412. package/{util → package/util}/mineReference.js +0 -0
  413. package/{util → package/util}/scrollToEyeLevel.d.ts +0 -0
  414. package/{util → package/util}/scrollToEyeLevel.js +0 -0
  415. package/package.json +955 -267
  416. package/components/External.svelte +0 -4
  417. package/components/External.svelte.d.ts +0 -18
  418. package/components/app/Link.svelte +0 -24
  419. package/components/app/Writing.svelte.d.ts +0 -27
  420. package/components/editor/ConfirmButton.svelte +0 -49
  421. package/components/page/Authors.svelte +0 -82
  422. package/components/page/Contexts.js +0 -51
  423. package/components/page/Editions.svelte +0 -158
  424. package/components/page/License.svelte +0 -37
  425. package/components/page/MediaPreview.svelte +0 -29
  426. package/components/page/Status.svelte +0 -57
  427. package/components/page/TableOfContentsImage.svelte +0 -15
  428. package/models/CRUD.d.ts +0 -17
  429. package/models/CRUD.js +0 -207
  430. package/models/Firebase.js +0 -32
  431. package/models/book/Book.js +0 -142
  432. package/models/loadEdition.d.ts +0 -5
  433. package/models/loadEdition.js +0 -20
@@ -0,0 +1,93 @@
1
+ <script>import { createUser } from '../../models/CRUD';
2
+ import Button from '../app/Button.svelte';
3
+ import TextInput from '../app/TextInput.svelte';
4
+ import { getEditors } from '../page/Contexts';
5
+ import Note from './Note.svelte';
6
+ export let uids;
7
+ export let inheriteduids;
8
+ export let writable;
9
+ export let atleastone;
10
+ export let change;
11
+ let emails = getEditors();
12
+ let newEditor = '';
13
+ let newEditorError = null;
14
+ let loading = undefined;
15
+ async function addEditor() {
16
+ const email = newEditor;
17
+ newEditor = '';
18
+ loading = email;
19
+ try {
20
+ const uid = await createUser(email);
21
+ if (uid === null)
22
+ newEditorError = "couldn't add editor";
23
+ else
24
+ change([...uids, uid]);
25
+ }
26
+ finally {
27
+ loading = undefined;
28
+ }
29
+ }
30
+ function hasEditor(email) {
31
+ const match = Array.from($emails.entries()).find(([, e]) => e === email);
32
+ if (match === undefined)
33
+ return false;
34
+ const uid = match[0];
35
+ return uids.includes(uid) || inheriteduids.includes(uid);
36
+ }
37
+ </script>
38
+
39
+ {#if emails === null}
40
+ Loading editors...
41
+ {:else}
42
+ <section class="emails">
43
+ {#if writable}
44
+ <form on:submit|preventDefault={addEditor}>
45
+ <TextInput
46
+ type="email"
47
+ placeholder="email"
48
+ bind:text={newEditor}
49
+ disabled={false}
50
+ />
51
+ <Button
52
+ tooltip="give {newEditor} editing rights"
53
+ disabled={newEditor.length === 0 || hasEditor(newEditor)}
54
+ command={addEditor}>+ editor</Button
55
+ >
56
+ {#if hasEditor(newEditor)}<Note>already added</Note>{/if}
57
+ {#if newEditorError !== null}{newEditorError}{/if}
58
+ </form>
59
+ {/if}
60
+
61
+ {#each uids as uid, index (uid)}
62
+ {@const email = $emails.get(uid)}
63
+ <p>
64
+ {#if email}{email}{:else}<em>missing email</em>{/if}
65
+ {#if writable}
66
+ <Button
67
+ tooltip="remove {email} editing rights"
68
+ command={() =>
69
+ change([
70
+ ...uids.slice(0, index),
71
+ ...uids.slice(index + 1),
72
+ ])}
73
+ disabled={atleastone && uids.length <= 1}>⨉</Button
74
+ >
75
+ {/if}
76
+ </p>
77
+ {/each}
78
+ {#each inheriteduids as uid}
79
+ <p><em>{$emails.get(uid)}</em> <Note>book editor</Note></p>
80
+ {/each}
81
+ {#if loading}
82
+ <p>
83
+ adding {loading}
84
+ </p>
85
+ {/if}
86
+ </section>
87
+ {/if}
88
+
89
+ <style>
90
+ p {
91
+ font-family: var(--app-font);
92
+ }
93
+ </style>
@@ -0,0 +1,20 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: {
4
+ uids: string[];
5
+ inheriteduids: string[];
6
+ writable: boolean;
7
+ atleastone: boolean;
8
+ change: (uids: string[]) => void;
9
+ };
10
+ events: {
11
+ [evt: string]: CustomEvent<any>;
12
+ };
13
+ slots: {};
14
+ };
15
+ export type PermissionsProps = typeof __propDef.props;
16
+ export type PermissionsEvents = typeof __propDef.events;
17
+ export type PermissionsSlots = typeof __propDef.slots;
18
+ export default class Permissions extends SvelteComponentTyped<PermissionsProps, PermissionsEvents, PermissionsSlots> {
19
+ }
20
+ export {};
@@ -25,7 +25,7 @@ $: {
25
25
  const sizedText = showPlaceholder()
26
26
  ? placeholder
27
27
  : text.replace(/\s/g, '\u00a0');
28
- // Clip the text to prevent this editor from getting too long when editing or when asked to.. If it goes past one line,
28
+ // Clip the text to prevent this editor from getting too long when editing. If it goes past one line,
29
29
  // the measurements and layout are way off.
30
30
  const trimmedText = width !== undefined &&
31
31
  (clip === true || status === Status.Editing)
@@ -220,12 +220,11 @@ function handleKeyPress(event) {
220
220
  margin-left: -0.5em;
221
221
  padding: 0.5em 0.5em;
222
222
  font-family: var(--app-font);
223
- font-size: 80%;
223
+ font-size: small;
224
224
  font-weight: normal;
225
225
  font-style: normal;
226
226
  color: var(--app-error-color);
227
227
  border-radius: var(--app-chrome-roundedness);
228
228
  background: var(--app-chrome-background);
229
- animation: failure 100ms 10;
230
229
  }
231
230
  </style>
@@ -225,7 +225,7 @@ function handleKeyPress(event) {
225
225
  {:else if quoteNode}<ToolbarGroup icon={QuoteIcon}
226
226
  ><QuoteEditor quote={quoteNode} /></ToolbarGroup
227
227
  >
228
- {:else if embedNode}<ToolbarGroup icon={MediaIcon}
228
+ {:else if embedNode}<span class="break" /><ToolbarGroup icon={MediaIcon}
229
229
  ><EmbedEditor embed={embedNode} /></ToolbarGroup
230
230
  >
231
231
  {/if}
@@ -238,10 +238,15 @@ function handleKeyPress(event) {
238
238
  flex-direction: row;
239
239
  flex-wrap: wrap;
240
240
  align-items: baseline;
241
- background: var(--bookish-background-color);
242
- padding: var(--app-chrome-padding);
243
241
  font-family: var(--app-font);
244
242
  font-size: var(--app-chrome-font-size);
243
+ row-gap: var(--app-chrome-padding);
244
+ justify-content: left;
245
+ }
246
+
247
+ .break {
248
+ flex-basis: 100%;
249
+ height: 0;
245
250
  }
246
251
 
247
252
  .bookish-editor-toolbar:focus {
@@ -10,7 +10,6 @@ export let icon;
10
10
  <style>
11
11
  .toolbar-group {
12
12
  display: inline-block;
13
- padding-bottom: var(--app-chrome-padding);
14
13
  margin-right: calc(2 * var(--app-chrome-padding));
15
14
  }
16
15
 
@@ -9,5 +9,7 @@ export let edit;
9
9
  text={url}
10
10
  label="URL editor"
11
11
  valid={(url) => validator(url)}
12
+ width={20}
13
+ clip
12
14
  save={(url) => edit(url)}
13
15
  />
@@ -2,37 +2,39 @@
2
2
  import ChapterBody from '../chapter/ChapterBody.svelte';
3
3
  import BookishEditor from '../editor/BookishEditor.svelte';
4
4
  import Instructions from './Instructions.svelte';
5
- import { getEdition, isEditable } from './Contexts';
5
+ import { getUser, getEdition, getLeasee, isEditionEditable, lease, } from './Contexts';
6
6
  import PageHeader from './PageHeader.svelte';
7
+ let auth = getUser();
7
8
  let edition = getEdition();
8
- let editable = isEditable();
9
+ let editable = isEditionEditable();
9
10
  $: acknowledgements = $edition?.getAcknowledgements();
10
- $: acksNode = acknowledgements
11
- ? Parser.parseChapter($edition, acknowledgements)
12
- : undefined;
13
11
  </script>
14
12
 
15
- <Instructions>
16
- This section is not shown if empty. But surely you have someone to thank!
13
+ <Instructions {editable}>
14
+ Do you have people, communities, or institutions to thank? Do it here. This
15
+ section is not shown if empty.
17
16
  </Instructions>
18
17
 
19
18
  <!-- If editable, show acknowledgements even if they're empty, otherwise hide -->
20
- {#if $edition && acknowledgements && acksNode}
19
+ {#if $edition && acknowledgements}
21
20
  {#if editable}
22
21
  <BookishEditor
23
- ast={acksNode}
22
+ text={acknowledgements}
23
+ parser={(text) => Parser.parseChapter($edition, text)}
24
24
  chapter={false}
25
25
  component={ChapterBody}
26
26
  placeholder="Who would you like to thank?"
27
27
  save={(node) =>
28
28
  $edition
29
29
  ? edition.set(
30
- $edition.setAcknowledgements(node.toBookdown())
30
+ $edition.withAcknowledgements(node.toBookdown())
31
31
  )
32
32
  : undefined}
33
+ leasee={getLeasee(auth, edition, `acks`)}
34
+ lease={(lock) => lease(auth, edition, `acks`, lock)}
33
35
  />
34
36
  {:else if acknowledgements.length > 0}
35
37
  <PageHeader id="acknowledgements">Acknowledgements</PageHeader>
36
- <ChapterBody node={acksNode} />
38
+ <ChapterBody node={Parser.parseChapter($edition, acknowledgements)} />
37
39
  {/if}
38
40
  {/if}
@@ -0,0 +1,86 @@
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 } from './Contexts';
6
+ import Note from '../editor/Note.svelte';
7
+ import Button from '../app/Button.svelte';
8
+ import { tick } from 'svelte';
9
+ export let editable;
10
+ export let authors;
11
+ export let inheritedAuthors = undefined;
12
+ export let add;
13
+ export let edit;
14
+ export let remove;
15
+ let edition = getEdition();
16
+ let authorList = null;
17
+ $: showInherited = authors.length === 0 && inheritedAuthors !== undefined;
18
+ $: authorsToShow = showInherited ? inheritedAuthors : authors;
19
+ async function addAuthor() {
20
+ add();
21
+ await tick();
22
+ if (authors.length > 0 && authorList) {
23
+ const editors = authorList.querySelectorAll('input');
24
+ if (editors.length > 0) {
25
+ const lastAuthor = editors[editors.length - 1];
26
+ if (lastAuthor instanceof HTMLElement)
27
+ lastAuthor.focus();
28
+ }
29
+ }
30
+ }
31
+ // When there's a new author, focus on it.
32
+ afterUpdate(() => { });
33
+ </script>
34
+
35
+ <p class="bookish-authors" bind:this={authorList}>
36
+ <!-- Editing and inherited authors? Say they're -->
37
+ {#if authorsToShow === undefined}
38
+ No authors
39
+ {:else}
40
+ <em>by </em>
41
+ {#each authorsToShow as author, index}
42
+ {#if editable && !showInherited}
43
+ <span class="author-editor">
44
+ <TextEditor
45
+ text={author}
46
+ label={'Author name editor'}
47
+ placeholder="author"
48
+ valid={() => undefined}
49
+ save={(text) =>
50
+ /* If text is already empty, remove */ author.length >
51
+ 0 && text === ''
52
+ ? remove(index)
53
+ : edit(index, text)}
54
+ />
55
+ <Button
56
+ tooltip="remove this author"
57
+ command={() => remove(index)}>⨉</Button
58
+ >
59
+ </span>
60
+ {:else}
61
+ <span
62
+ ><Format
63
+ node={Parser.parseFormat($edition, author)}
64
+ /></span
65
+ >{/if}{#if index < authorsToShow.length - 1},&nbsp{/if}
66
+ {/each}
67
+ {/if}
68
+ {#if editable}
69
+ <Button tooltip="add author" command={addAuthor}>+ author</Button>
70
+ {#if inheritedAuthors !== undefined && authors.length === 0}<Note
71
+ >(showing book authors)&nbsp;</Note
72
+ >{/if}
73
+ {/if}
74
+ </p>
75
+
76
+ <style>
77
+ .bookish-authors {
78
+ font-family: var(--bookish-header-font-family);
79
+ font-style: italic;
80
+ margin: 0;
81
+ }
82
+
83
+ .author-editor {
84
+ display: inline-block;
85
+ }
86
+ </style>
@@ -1,6 +1,7 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
+ editable: boolean;
4
5
  authors: string[];
5
6
  inheritedAuthors?: string[] | undefined;
6
7
  add: () => Promise<void> | void;
@@ -0,0 +1,59 @@
1
+ <script>import Loading from './Loading.svelte';
2
+ import Feedback from '../app/Feedback.svelte';
3
+ import { onDestroy } from 'svelte';
4
+ import { page } from '$app/stores';
5
+ import { getBook, getUser } from './Contexts';
6
+ import { listenToBookWithID as listenToBooksWithID, listenToBooksByName as listenToBooksWithName, } from '../../models/CRUD';
7
+ let auth = getUser();
8
+ let book = getBook();
9
+ // Keep track of the query updates
10
+ let booksByName = undefined;
11
+ let bookByID = undefined;
12
+ // Mege them together here
13
+ $: currentBook =
14
+ // Neither loaded? Current book isn't loaded.
15
+ booksByName === undefined && bookByID === undefined
16
+ ? undefined
17
+ : booksByName !== undefined && booksByName.length > 0
18
+ ? booksByName[0]
19
+ : bookByID ?? null;
20
+ // Whenever the merge changes, update the book store (updating the whole UI)
21
+ $: book.set(currentBook ?? undefined);
22
+ // Keep track of listeners to unsubscribe to on page changes.
23
+ let nameUnsub = undefined;
24
+ let idUnsub = undefined;
25
+ function unsub() {
26
+ if (nameUnsub)
27
+ nameUnsub();
28
+ if (idUnsub)
29
+ idUnsub();
30
+ }
31
+ // Keep track of any errors.
32
+ let error;
33
+ function listen() {
34
+ unsub();
35
+ try {
36
+ nameUnsub = listenToBooksWithName($page.params.bookid, (books) => (booksByName = books));
37
+ idUnsub = listenToBooksWithID($page.params.bookid, (book) => (bookByID = book));
38
+ }
39
+ catch (err) {
40
+ error = '' + err;
41
+ }
42
+ }
43
+ // When page or auth changes and there's a user, update the listener.
44
+ $: if ($page && $auth && $auth.user !== null)
45
+ listen();
46
+ // When this is unmounted, unset them.
47
+ onDestroy(() => {
48
+ book.set(undefined);
49
+ unsub();
50
+ });
51
+ </script>
52
+
53
+ {#if error || currentBook === null}
54
+ <Feedback error>Unable to load book.</Feedback>
55
+ {:else if currentBook === undefined}
56
+ <Loading />
57
+ {:else}
58
+ <slot />
59
+ {/if}
@@ -0,0 +1,16 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ declare const __propDef: {
3
+ props: Record<string, never>;
4
+ events: {
5
+ [evt: string]: CustomEvent<any>;
6
+ };
7
+ slots: {
8
+ default: {};
9
+ };
10
+ };
11
+ export type BookLoaderProps = typeof __propDef.props;
12
+ export type BookLoaderEvents = typeof __propDef.events;
13
+ export type BookLoaderSlots = typeof __propDef.slots;
14
+ export default class BookLoader extends SvelteComponentTyped<BookLoaderProps, BookLoaderEvents, BookLoaderSlots> {
15
+ }
16
+ export {};
@@ -1,10 +1,11 @@
1
1
  <script>import Instructions from './Instructions.svelte';
2
2
  import { getUniqueReferenceID, mineReference, } from '../../util/mineReference';
3
3
  import Reference from '../../models/book/Reference';
4
- import { getEdition } from './Contexts';
4
+ import { getEdition, isEditionEditable, isEditionPartiallyEditable, } from './Contexts';
5
5
  import Button from '../app/Button.svelte';
6
6
  let edition = getEdition();
7
7
  let text = '';
8
+ let editable = isEditionEditable() || isEditionPartiallyEditable();
8
9
  function handleBulkAdd() {
9
10
  // Split by lines, skipping empty lines.
10
11
  const references = text
@@ -24,17 +25,16 @@ function handleEmptyAdd() {
24
25
  }
25
26
  </script>
26
27
 
27
- <Instructions>
28
- To cite references in a chapter, add them here. You can add one at a time,
29
- or try pasting them in bulk, and we'll do our best to pull out the relevant
30
- parts, looking for things that look like author lists, years, sources, and
31
- URLs. Be sure to verify it though &mdash; it's likely to get some things
32
- wrong!
28
+ <Instructions {editable}>
29
+ To add references to a chapter, add them here first. You can add one at a
30
+ time, or try pasting them in bulk, and this page will try to pull out author
31
+ lists, years, sources, and URLs. Be sure to verify it though &mdash; it's
32
+ likely to get some things wrong.
33
33
  </Instructions>
34
34
 
35
35
  <textarea rows={5} bind:value={text} style="width: 100%" />
36
36
  <Button
37
- tooltip="convert text to references"
37
+ tooltip="convert to references"
38
38
  disabled={text.length === 0}
39
39
  command={handleBulkAdd}>+ bulk references</Button
40
40
  >