bookish-press 0.7.1 → 0.8.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 (251) hide show
  1. package/README.md +8 -0
  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 +43 -44
  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 +55 -51
  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 +226 -250
  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/EditableHeader.svelte +4 -6
  169. package/dist/components/page/EditableHeader.svelte.d.ts +7 -18
  170. package/dist/components/page/Edition.svelte +57 -71
  171. package/dist/components/page/Edition.svelte.d.ts +7 -20
  172. package/dist/components/page/EditionLoader.svelte +119 -82
  173. package/dist/components/page/EditionLoader.svelte.d.ts +6 -19
  174. package/dist/components/page/Editions.svelte +61 -41
  175. package/dist/components/page/Editions.svelte.d.ts +5 -17
  176. package/dist/components/page/Glossary.svelte +31 -35
  177. package/dist/components/page/Glossary.svelte.d.ts +3 -16
  178. package/dist/components/page/Header.svelte +43 -49
  179. package/dist/components/page/Header.svelte.d.ts +19 -30
  180. package/dist/components/page/Index.svelte +46 -46
  181. package/dist/components/page/Index.svelte.d.ts +3 -16
  182. package/dist/components/page/Instructions.svelte +2 -2
  183. package/dist/components/page/Instructions.svelte.d.ts +6 -19
  184. package/dist/components/page/License.svelte +13 -7
  185. package/dist/components/page/License.svelte.d.ts +16 -14
  186. package/dist/components/page/Loading.svelte +9 -9
  187. package/dist/components/page/Loading.svelte.d.ts +22 -21
  188. package/dist/components/page/Media.svelte +36 -27
  189. package/dist/components/page/Media.svelte.d.ts +3 -16
  190. package/dist/components/page/MediaPreview.svelte +22 -19
  191. package/dist/components/page/MediaPreview.svelte.d.ts +8 -21
  192. package/dist/components/page/Muted.svelte +4 -1
  193. package/dist/components/page/Muted.svelte.d.ts +5 -28
  194. package/dist/components/page/Outline.svelte +76 -97
  195. package/dist/components/page/Outline.svelte.d.ts +8 -20
  196. package/dist/components/page/Page.svelte +27 -35
  197. package/dist/components/page/Page.svelte.d.ts +7 -20
  198. package/dist/components/page/PageHeader.svelte +2 -2
  199. package/dist/components/page/PageHeader.svelte.d.ts +6 -19
  200. package/dist/components/page/PageParagraph.svelte +4 -1
  201. package/dist/components/page/PageParagraph.svelte.d.ts +5 -28
  202. package/dist/components/page/PossibleChapter.svelte +7 -7
  203. package/dist/components/page/PossibleChapter.svelte.d.ts +3 -16
  204. package/dist/components/page/PossibleReference.svelte +4 -5
  205. package/dist/components/page/PossibleReference.svelte.d.ts +6 -18
  206. package/dist/components/page/Print.svelte +18 -2
  207. package/dist/components/page/Print.svelte.d.ts +3 -16
  208. package/dist/components/page/Publish.svelte +47 -47
  209. package/dist/components/page/Publish.svelte.d.ts +3 -16
  210. package/dist/components/page/Reference.svelte +24 -35
  211. package/dist/components/page/Reference.svelte.d.ts +6 -18
  212. package/dist/components/page/References.svelte +21 -22
  213. package/dist/components/page/References.svelte.d.ts +3 -16
  214. package/dist/components/page/Rows.svelte +4 -1
  215. package/dist/components/page/Rows.svelte.d.ts +5 -28
  216. package/dist/components/page/Search.svelte +58 -60
  217. package/dist/components/page/Search.svelte.d.ts +3 -16
  218. package/dist/components/page/Status.svelte +2 -2
  219. package/dist/components/page/Status.svelte.d.ts +16 -14
  220. package/dist/components/page/SubdomainEditor.svelte +11 -11
  221. package/dist/components/page/SubdomainEditor.svelte.d.ts +16 -14
  222. package/dist/components/page/TableOfContents.svelte +143 -125
  223. package/dist/components/page/TableOfContents.svelte.d.ts +3 -16
  224. package/dist/components/page/TableOfContentsImage.svelte +6 -7
  225. package/dist/components/page/TableOfContentsImage.svelte.d.ts +6 -18
  226. package/dist/components/page/TableOfContentsRow.svelte +32 -32
  227. package/dist/components/page/TableOfContentsRow.svelte.d.ts +10 -22
  228. package/dist/components/page/ThemeEditor.svelte +35 -28
  229. package/dist/components/page/ThemeEditor.svelte.d.ts +3 -16
  230. package/dist/components/page/ThemeEditorPreview.svelte +11 -13
  231. package/dist/components/page/ThemeEditorPreview.svelte.d.ts +5 -17
  232. package/dist/components/page/ThemeSetEditor.svelte +4 -6
  233. package/dist/components/page/ThemeSetEditor.svelte.d.ts +7 -19
  234. package/dist/components/page/ThemeVariableEditor.svelte +9 -11
  235. package/dist/components/page/ThemeVariableEditor.svelte.d.ts +7 -19
  236. package/dist/components/page/Title.svelte +4 -1
  237. package/dist/components/page/Title.svelte.d.ts +5 -28
  238. package/dist/components/page/Unknown.svelte +11 -8
  239. package/dist/components/page/Unknown.svelte.d.ts +5 -17
  240. package/dist/models/CRUD.js +23 -4
  241. package/dist/models/Firebase.js +18 -4
  242. package/dist/models/book/Book.d.ts +1 -1
  243. package/dist/models/book/Book.js +4 -3
  244. package/dist/models/book/BookMedia.js +1 -2
  245. package/dist/models/book/Chapter.js +3 -2
  246. package/dist/models/book/Edition.d.ts +1 -1
  247. package/dist/models/book/Edition.js +5 -1
  248. package/dist/models/chapter/BlocksNode.js +3 -1
  249. package/dist/models/chapter/BlocksNode.test.js +5 -1
  250. package/dist/models/chapter/Node.test.js +2 -2
  251. package/package.json +36 -25
@@ -1,20 +1,8 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type Position from '../../models/chapter/Position';
3
- declare const __propDef: {
4
- props: {
5
- value: string;
6
- edit: (newValue: Position) => void;
7
- };
8
- events: {
9
- [evt: string]: CustomEvent<any>;
10
- };
11
- slots: {};
12
- exports?: {} | undefined;
13
- bindings?: string | undefined;
14
- };
15
- export type PositionEditorProps = typeof __propDef.props;
16
- export type PositionEditorEvents = typeof __propDef.events;
17
- export type PositionEditorSlots = typeof __propDef.slots;
18
- export default class PositionEditor extends SvelteComponent<PositionEditorProps, PositionEditorEvents, PositionEditorSlots> {
2
+ interface Props {
3
+ value: string;
4
+ edit: (newValue: Position) => void;
19
5
  }
20
- export {};
6
+ declare const PositionEditor: import("svelte").Component<Props, {}, "">;
7
+ type PositionEditor = ReturnType<typeof PositionEditor>;
8
+ export default PositionEditor;
@@ -1,6 +1,6 @@
1
- <script>import { getCaret } from '../page/Contexts';
2
- import PositionEditor from './PositionEditor.svelte';
3
- export let quote;
1
+ <script lang="ts">import { getCaret } from "../page/Contexts";
2
+ import PositionEditor from "./PositionEditor.svelte";
3
+ let { quote } = $props();
4
4
  let caret = getCaret();
5
5
  </script>
6
6
 
@@ -1,19 +1,7 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type QuoteNode from '../../models/chapter/QuoteNode';
3
- declare const __propDef: {
4
- props: {
5
- quote: QuoteNode;
6
- };
7
- events: {
8
- [evt: string]: CustomEvent<any>;
9
- };
10
- slots: {};
11
- exports?: {} | undefined;
12
- bindings?: string | undefined;
13
- };
14
- export type QuoteEditorProps = typeof __propDef.props;
15
- export type QuoteEditorEvents = typeof __propDef.events;
16
- export type QuoteEditorSlots = typeof __propDef.slots;
17
- export default class QuoteEditor extends SvelteComponent<QuoteEditorProps, QuoteEditorEvents, QuoteEditorSlots> {
2
+ interface Props {
3
+ quote: QuoteNode;
18
4
  }
19
- export {};
5
+ declare const QuoteEditor: import("svelte").Component<Props, {}, "">;
6
+ type QuoteEditor = ReturnType<typeof QuoteEditor>;
7
+ export default QuoteEditor;
@@ -1,14 +1,16 @@
1
- <script>import Icon from './Icon.svelte';
2
- export let options;
3
- export let icons = undefined;
4
- export let value;
5
- export let enabled = undefined;
6
- export let edit;
1
+ <script lang="ts">import Icon from "./Icon.svelte";
2
+ let {
3
+ options,
4
+ icons = void 0,
5
+ value,
6
+ enabled = void 0,
7
+ edit
8
+ } = $props();
7
9
  function handleClick(event) {
8
- const newValue = event.currentTarget.dataset.value;
9
- if (newValue && options.includes(newValue)) {
10
- edit(newValue);
11
- }
10
+ const newValue = event.currentTarget.dataset.value;
11
+ if (newValue && options.includes(newValue)) {
12
+ edit(newValue);
13
+ }
12
14
  }
13
15
  </script>
14
16
 
@@ -18,7 +20,10 @@ function handleClick(event) {
18
20
  class={`option ${value === option ? 'selected' : ''}`}
19
21
  data-value={option}
20
22
  disabled={enabled === false}
21
- on:click|stopPropagation={handleClick}
23
+ onclick={(event) => {
24
+ event.stopPropagation();
25
+ handleClick(event);
26
+ }}
22
27
  >
23
28
  {#if icons && option in icons}
24
29
  <Icon icon={icons[option]} />
@@ -1,22 +1,10 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- options: string[];
5
- icons?: Record<string, string> | undefined;
6
- value: string;
7
- enabled?: boolean | undefined;
8
- edit: (newValue: string) => void;
9
- };
10
- events: {
11
- [evt: string]: CustomEvent<any>;
12
- };
13
- slots: {};
14
- exports?: {} | undefined;
15
- bindings?: string | undefined;
16
- };
17
- export type SwitchProps = typeof __propDef.props;
18
- export type SwitchEvents = typeof __propDef.events;
19
- export type SwitchSlots = typeof __propDef.slots;
20
- export default class Switch extends SvelteComponent<SwitchProps, SwitchEvents, SwitchSlots> {
1
+ interface Props {
2
+ options: string[];
3
+ icons?: Record<string, string> | undefined;
4
+ value: string;
5
+ enabled?: boolean | undefined;
6
+ edit: (newValue: string) => void;
21
7
  }
22
- export {};
8
+ declare const Switch: import("svelte").Component<Props, {}, "">;
9
+ type Switch = ReturnType<typeof Switch>;
10
+ export default Switch;
@@ -1,6 +1,6 @@
1
- <script>import { getCaret } from '../page/Contexts';
2
- import PositionEditor from './PositionEditor.svelte';
3
- export let table;
1
+ <script lang="ts">import { getCaret } from "../page/Contexts";
2
+ import PositionEditor from "./PositionEditor.svelte";
3
+ let { table } = $props();
4
4
  let caret = getCaret();
5
5
  </script>
6
6
 
@@ -1,19 +1,7 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type TableNode from '../../models/chapter/TableNode';
3
- declare const __propDef: {
4
- props: {
5
- table: TableNode;
6
- };
7
- events: {
8
- [evt: string]: CustomEvent<any>;
9
- };
10
- slots: {};
11
- exports?: {} | undefined;
12
- bindings?: string | undefined;
13
- };
14
- export type TableEditorProps = typeof __propDef.props;
15
- export type TableEditorEvents = typeof __propDef.events;
16
- export type TableEditorSlots = typeof __propDef.slots;
17
- export default class TableEditor extends SvelteComponent<TableEditorProps, TableEditorEvents, TableEditorSlots> {
2
+ interface Props {
3
+ table: TableNode;
18
4
  }
19
- export {};
5
+ declare const TableEditor: import("svelte").Component<Props, {}, "">;
6
+ type TableEditor = ReturnType<typeof TableEditor>;
7
+ export default TableEditor;
@@ -1,98 +1,85 @@
1
- <script>var Status;
2
- (function (Status) {
3
- Status[Status["Viewing"] = 0] = "Viewing";
4
- Status[Status["Editing"] = 1] = "Editing";
5
- })(Status || (Status = {}));
6
- export let text;
7
- export let label;
8
- export let placeholder;
9
- export let valid;
10
- export let save;
11
- export let saveOnExit = false;
12
- export let width = undefined;
13
- export let clip = false;
14
- export let move = undefined;
15
- let status = Status.Viewing;
16
- let field = null;
17
- let sizer = null;
18
- $: error = valid(text);
19
- // Grow the sizer when text or status changes.
20
- $: {
21
- if (sizer) {
22
- // Set the invisible sizer to the text to set the container's width.
23
- // The browser strips trailing spaces, causing jitter after a space, so we replace
24
- // them with non-breaking spaces.
25
- const sizedText = showPlaceholder()
26
- ? placeholder
27
- : text.replace(/\s$/g, '\u00a0');
28
- // Clip the text to prevent this editor from getting too long when editing. If it goes past one line,
29
- // the measurements and layout are way off.
30
- const trimmedText = width !== undefined &&
31
- (clip === true || status === Status.Editing)
32
- ? sizedText.substring(0, width) + '…'
33
- : sizedText;
34
- sizer.innerHTML = trimmedText;
35
- }
36
- }
37
- // When status changes, focus or blur.
38
- $: {
39
- if (field) {
40
- if (status === Status.Editing) {
41
- field.focus();
42
- }
43
- else {
44
- field.blur();
45
- }
46
- }
47
- }
48
- // When text changes, save, unless we only save on exit.
49
- $: {
50
- if (!saveOnExit)
51
- saveText(text);
52
- }
1
+ <script lang="ts">import { untrack } from "svelte";
2
+ var Status = /* @__PURE__ */ ((Status2) => {
3
+ Status2[Status2["Viewing"] = 0] = "Viewing";
4
+ Status2[Status2["Editing"] = 1] = "Editing";
5
+ return Status2;
6
+ })(Status || {});
7
+ let {
8
+ text = $bindable(),
9
+ label,
10
+ placeholder,
11
+ valid,
12
+ save,
13
+ saveOnExit = false,
14
+ width = void 0,
15
+ clip = false,
16
+ move = void 0
17
+ } = $props();
18
+ let status = $state(0 /* Viewing */);
19
+ let field = $state(null);
20
+ let sizer = $state(null);
53
21
  function showPlaceholder() {
54
- return text === '';
22
+ return text === "";
55
23
  }
56
24
  function startEditing() {
57
- status = Status.Editing;
25
+ status = 1 /* Editing */;
58
26
  }
59
27
  function stopEditing() {
60
- status = Status.Viewing;
61
- if (saveOnExit)
62
- saveText(text);
28
+ status = 0 /* Viewing */;
29
+ if (saveOnExit) saveText(text);
63
30
  }
64
31
  function edit() {
65
- if (field) {
66
- text = field.value;
67
- if (saveOnExit === false)
68
- saveText(text);
69
- }
32
+ if (field) {
33
+ text = field.value;
34
+ if (saveOnExit === false) saveText(text);
35
+ }
70
36
  }
71
37
  function saveText(newText) {
72
- if (validate(newText) === undefined) {
73
- const revisedText = save(newText);
74
- if (typeof revisedText === 'string') {
75
- text = revisedText;
76
- }
77
- if (revisedText instanceof Promise)
78
- revisedText.catch((err) => (error = err.message));
79
- }
38
+ if (validate(newText) === void 0) {
39
+ const revisedText = save(newText);
40
+ if (typeof revisedText === "string") {
41
+ text = revisedText;
42
+ }
43
+ if (revisedText instanceof Promise)
44
+ revisedText.catch((err) => error = err.message);
45
+ }
80
46
  }
81
47
  function validate(value) {
82
- return valid(value);
48
+ return valid(value);
83
49
  }
84
50
  function handleKeyPress(event) {
85
- if (event.key === 'Enter')
86
- status = Status.Viewing;
87
- else if (event.key === 'ArrowUp' && move && field) {
88
- event.preventDefault();
89
- move(field, -1);
90
- }
91
- else if (event.key === 'ArrowDown' && move && field) {
92
- event.preventDefault();
93
- move(field, 1);
94
- }
51
+ if (event.key === "Enter") status = 0 /* Viewing */;
52
+ else if (event.key === "ArrowUp" && move && field) {
53
+ event.preventDefault();
54
+ move(field, -1);
55
+ } else if (event.key === "ArrowDown" && move && field) {
56
+ event.preventDefault();
57
+ move(field, 1);
58
+ }
95
59
  }
60
+ let error = $derived(valid(text));
61
+ $effect(() => {
62
+ if (sizer) {
63
+ const sizedText = showPlaceholder() ? placeholder : text.replace(/\s$/g, "\xA0");
64
+ const trimmedText = width !== void 0 && (clip === true || status === 1 /* Editing */) ? sizedText.substring(0, width) + "\u2026" : sizedText;
65
+ sizer.innerHTML = trimmedText;
66
+ }
67
+ });
68
+ $effect(() => {
69
+ if (field) {
70
+ if (status === 1 /* Editing */) {
71
+ field.focus();
72
+ } else {
73
+ field.blur();
74
+ }
75
+ }
76
+ });
77
+ $effect(() => {
78
+ void text;
79
+ untrack(() => {
80
+ if (!saveOnExit) saveText(text);
81
+ });
82
+ });
96
83
  </script>
97
84
 
98
85
  <span
@@ -104,8 +91,8 @@ function handleKeyPress(event) {
104
91
  class={`sizer ${error ? 'error' : ''}`}
105
92
  aria-hidden={true}
106
93
  bind:this={sizer}
107
- on:click={startEditing}
108
- />
94
+ onclick={startEditing}
95
+ ></span>
109
96
  <input
110
97
  type="text"
111
98
  bind:this={field}
@@ -115,10 +102,10 @@ function handleKeyPress(event) {
115
102
  aria-label={label}
116
103
  aria-placeholder={label}
117
104
  {placeholder}
118
- on:change={edit}
119
- on:keydown={handleKeyPress}
120
- on:blur={stopEditing}
121
- on:focus={startEditing}
105
+ onchange={edit}
106
+ onkeydown={handleKeyPress}
107
+ onblur={stopEditing}
108
+ onfocus={startEditing}
122
109
  />
123
110
  {#if error && status === Status.Editing}
124
111
  <span
@@ -1,26 +1,14 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- text: string;
5
- label: string;
6
- placeholder: string;
7
- valid: (text: string) => string | undefined;
8
- save: (text: string) => Promise<void> | undefined | void | string;
9
- saveOnExit?: boolean;
10
- width?: number | undefined;
11
- clip?: boolean;
12
- move?: ((el: HTMLElement, direction: -1 | 1) => void) | undefined;
13
- };
14
- events: {
15
- [evt: string]: CustomEvent<any>;
16
- };
17
- slots: {};
18
- exports?: {} | undefined;
19
- bindings?: string | undefined;
20
- };
21
- export type TextEditorProps = typeof __propDef.props;
22
- export type TextEditorEvents = typeof __propDef.events;
23
- export type TextEditorSlots = typeof __propDef.slots;
24
- export default class TextEditor extends SvelteComponent<TextEditorProps, TextEditorEvents, TextEditorSlots> {
1
+ interface Props {
2
+ text: string;
3
+ label: string;
4
+ placeholder: string;
5
+ valid: (text: string) => string | undefined;
6
+ save: (text: string) => Promise<void> | undefined | void | string;
7
+ saveOnExit?: boolean;
8
+ width?: number | undefined;
9
+ clip?: boolean;
10
+ move?: ((el: HTMLElement, direction: -1 | 1) => void) | undefined;
25
11
  }
26
- export {};
12
+ declare const TextEditor: import("svelte").Component<Props, {}, "text">;
13
+ type TextEditor = ReturnType<typeof TextEditor>;
14
+ export default TextEditor;
@@ -1,22 +1,19 @@
1
- <script>var Status;
2
- (function (Status) {
3
- Status[Status["Viewing"] = 0] = "Viewing";
4
- Status[Status["Saving"] = 1] = "Saving";
5
- Status[Status["Error"] = 2] = "Error";
6
- })(Status || (Status = {}));
7
- export let on;
8
- export let save;
9
- let saving = Status.Viewing;
1
+ <script lang="ts">var Status = /* @__PURE__ */ ((Status2) => {
2
+ Status2[Status2["Viewing"] = 0] = "Viewing";
3
+ Status2[Status2["Saving"] = 1] = "Saving";
4
+ Status2[Status2["Error"] = 2] = "Error";
5
+ return Status2;
6
+ })(Status || {});
7
+ let { on, save, children } = $props();
8
+ let saving = $state(0 /* Viewing */);
10
9
  function toggle() {
11
- saving = Status.Saving;
12
- const promise = save(!on);
13
- if (promise === undefined) {
14
- saving = Status.Viewing;
15
- return;
16
- }
17
- promise
18
- .then(() => (saving = Status.Viewing))
19
- .catch(() => (saving = Status.Error));
10
+ saving = 1 /* Saving */;
11
+ const promise = save(!on);
12
+ if (promise === void 0) {
13
+ saving = 0 /* Viewing */;
14
+ return;
15
+ }
16
+ promise.then(() => saving = 0 /* Viewing */).catch(() => saving = 2 /* Error */);
20
17
  }
21
18
  </script>
22
19
 
@@ -27,11 +24,11 @@ function toggle() {
27
24
  tabindex="0"
28
25
  role="switch"
29
26
  aria-checked={on}
30
- on:keydown={(event) =>
27
+ onkeydown={(event) =>
31
28
  event.key === 'Enter' || event.key === 'Space' ? toggle() : undefined}
32
- on:click={toggle}
29
+ onclick={toggle}
33
30
  >
34
- <slot />
31
+ {@render children?.()}
35
32
  </div>
36
33
 
37
34
  <style>
@@ -1,21 +1,8 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- on: boolean;
5
- save: (set: boolean) => Promise<void> | void;
6
- };
7
- events: {
8
- [evt: string]: CustomEvent<any>;
9
- };
10
- slots: {
11
- default: {};
12
- };
13
- exports?: {} | undefined;
14
- bindings?: string | undefined;
15
- };
16
- export type ToggleProps = typeof __propDef.props;
17
- export type ToggleEvents = typeof __propDef.events;
18
- export type ToggleSlots = typeof __propDef.slots;
19
- export default class Toggle extends SvelteComponent<ToggleProps, ToggleEvents, ToggleSlots> {
1
+ interface Props {
2
+ on: boolean;
3
+ save: (set: boolean) => Promise<void> | void;
4
+ children?: import('svelte').Snippet;
20
5
  }
21
- export {};
6
+ declare const Toggle: import("svelte").Component<Props, {}, "">;
7
+ type Toggle = ReturnType<typeof Toggle>;
8
+ export default Toggle;