@prosekit/svelte 0.0.0-next-20240421132240

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 (134) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +0 -0
  3. package/dist/build/components/autocomplete/autocomplete-empty.gen.d.ts +6 -0
  4. package/dist/build/components/autocomplete/autocomplete-empty.gen.d.ts.map +1 -0
  5. package/dist/build/components/autocomplete/autocomplete-empty.gen.js +2 -0
  6. package/dist/build/components/autocomplete/autocomplete-empty.gen.svelte +14 -0
  7. package/dist/build/components/autocomplete/autocomplete-item.gen.d.ts +6 -0
  8. package/dist/build/components/autocomplete/autocomplete-item.gen.d.ts.map +1 -0
  9. package/dist/build/components/autocomplete/autocomplete-item.gen.js +2 -0
  10. package/dist/build/components/autocomplete/autocomplete-item.gen.svelte +14 -0
  11. package/dist/build/components/autocomplete/autocomplete-list.gen.d.ts +6 -0
  12. package/dist/build/components/autocomplete/autocomplete-list.gen.d.ts.map +1 -0
  13. package/dist/build/components/autocomplete/autocomplete-list.gen.js +2 -0
  14. package/dist/build/components/autocomplete/autocomplete-list.gen.svelte +14 -0
  15. package/dist/build/components/autocomplete/autocomplete-popover.gen.d.ts +6 -0
  16. package/dist/build/components/autocomplete/autocomplete-popover.gen.d.ts.map +1 -0
  17. package/dist/build/components/autocomplete/autocomplete-popover.gen.js +2 -0
  18. package/dist/build/components/autocomplete/autocomplete-popover.gen.svelte +14 -0
  19. package/dist/build/components/autocomplete/index.d.ts +5 -0
  20. package/dist/build/components/autocomplete/index.d.ts.map +1 -0
  21. package/dist/build/components/autocomplete/index.js +4 -0
  22. package/dist/build/components/block-handle/block-drag-handle.gen.d.ts +6 -0
  23. package/dist/build/components/block-handle/block-drag-handle.gen.d.ts.map +1 -0
  24. package/dist/build/components/block-handle/block-drag-handle.gen.js +2 -0
  25. package/dist/build/components/block-handle/block-drag-handle.gen.svelte +14 -0
  26. package/dist/build/components/block-handle/block-popover.gen.d.ts +6 -0
  27. package/dist/build/components/block-handle/block-popover.gen.d.ts.map +1 -0
  28. package/dist/build/components/block-handle/block-popover.gen.js +2 -0
  29. package/dist/build/components/block-handle/block-popover.gen.svelte +14 -0
  30. package/dist/build/components/block-handle/index.d.ts +3 -0
  31. package/dist/build/components/block-handle/index.d.ts.map +1 -0
  32. package/dist/build/components/block-handle/index.js +2 -0
  33. package/dist/build/components/inline-popover/index.d.ts +2 -0
  34. package/dist/build/components/inline-popover/index.d.ts.map +1 -0
  35. package/dist/build/components/inline-popover/index.js +1 -0
  36. package/dist/build/components/inline-popover/inline-popover.gen.d.ts +6 -0
  37. package/dist/build/components/inline-popover/inline-popover.gen.d.ts.map +1 -0
  38. package/dist/build/components/inline-popover/inline-popover.gen.js +2 -0
  39. package/dist/build/components/inline-popover/inline-popover.gen.svelte +14 -0
  40. package/dist/build/components/popover/index.d.ts +4 -0
  41. package/dist/build/components/popover/index.d.ts.map +1 -0
  42. package/dist/build/components/popover/index.js +3 -0
  43. package/dist/build/components/popover/popover-content.gen.d.ts +6 -0
  44. package/dist/build/components/popover/popover-content.gen.d.ts.map +1 -0
  45. package/dist/build/components/popover/popover-content.gen.js +2 -0
  46. package/dist/build/components/popover/popover-content.gen.svelte +14 -0
  47. package/dist/build/components/popover/popover-root.gen.d.ts +6 -0
  48. package/dist/build/components/popover/popover-root.gen.d.ts.map +1 -0
  49. package/dist/build/components/popover/popover-root.gen.js +2 -0
  50. package/dist/build/components/popover/popover-root.gen.svelte +14 -0
  51. package/dist/build/components/popover/popover-trigger.gen.d.ts +6 -0
  52. package/dist/build/components/popover/popover-trigger.gen.d.ts.map +1 -0
  53. package/dist/build/components/popover/popover-trigger.gen.js +2 -0
  54. package/dist/build/components/popover/popover-trigger.gen.svelte +14 -0
  55. package/dist/build/components/prosekit.d.ts +12 -0
  56. package/dist/build/components/prosekit.d.ts.map +1 -0
  57. package/dist/build/components/prosekit.js +7 -0
  58. package/dist/build/components/prosekit.svelte +10 -0
  59. package/dist/build/components/prosekit.svelte.d.ts +20 -0
  60. package/dist/build/components/prosekit.svelte.d.ts.map +1 -0
  61. package/dist/build/components/resizable/index.d.ts +3 -0
  62. package/dist/build/components/resizable/index.d.ts.map +1 -0
  63. package/dist/build/components/resizable/index.js +2 -0
  64. package/dist/build/components/resizable/resizable-handle.gen.d.ts +6 -0
  65. package/dist/build/components/resizable/resizable-handle.gen.d.ts.map +1 -0
  66. package/dist/build/components/resizable/resizable-handle.gen.js +2 -0
  67. package/dist/build/components/resizable/resizable-handle.gen.svelte +14 -0
  68. package/dist/build/components/resizable/resizable-root.gen.d.ts +6 -0
  69. package/dist/build/components/resizable/resizable-root.gen.d.ts.map +1 -0
  70. package/dist/build/components/resizable/resizable-root.gen.js +2 -0
  71. package/dist/build/components/resizable/resizable-root.gen.svelte +14 -0
  72. package/dist/build/components/tooltip/index.d.ts +4 -0
  73. package/dist/build/components/tooltip/index.d.ts.map +1 -0
  74. package/dist/build/components/tooltip/index.js +3 -0
  75. package/dist/build/components/tooltip/tooltip-content.gen.d.ts +6 -0
  76. package/dist/build/components/tooltip/tooltip-content.gen.d.ts.map +1 -0
  77. package/dist/build/components/tooltip/tooltip-content.gen.js +2 -0
  78. package/dist/build/components/tooltip/tooltip-content.gen.svelte +14 -0
  79. package/dist/build/components/tooltip/tooltip-root.gen.d.ts +6 -0
  80. package/dist/build/components/tooltip/tooltip-root.gen.d.ts.map +1 -0
  81. package/dist/build/components/tooltip/tooltip-root.gen.js +2 -0
  82. package/dist/build/components/tooltip/tooltip-root.gen.svelte +14 -0
  83. package/dist/build/components/tooltip/tooltip-trigger.gen.d.ts +6 -0
  84. package/dist/build/components/tooltip/tooltip-trigger.gen.d.ts.map +1 -0
  85. package/dist/build/components/tooltip/tooltip-trigger.gen.js +2 -0
  86. package/dist/build/components/tooltip/tooltip-trigger.gen.svelte +14 -0
  87. package/dist/build/contexts/editor-context.d.ts +10 -0
  88. package/dist/build/contexts/editor-context.d.ts.map +1 -0
  89. package/dist/build/contexts/editor-context.js +21 -0
  90. package/dist/build/hooks/use-doc-change.d.ts +9 -0
  91. package/dist/build/hooks/use-doc-change.d.ts.map +1 -0
  92. package/dist/build/hooks/use-doc-change.js +12 -0
  93. package/dist/build/hooks/use-editor-extension.d.ts +8 -0
  94. package/dist/build/hooks/use-editor-extension.d.ts.map +1 -0
  95. package/dist/build/hooks/use-editor-extension.js +27 -0
  96. package/dist/build/hooks/use-editor.d.ts +18 -0
  97. package/dist/build/hooks/use-editor.d.ts.map +1 -0
  98. package/dist/build/hooks/use-editor.js +32 -0
  99. package/dist/build/hooks/use-extension.d.ts +24 -0
  100. package/dist/build/hooks/use-extension.d.ts.map +1 -0
  101. package/dist/build/hooks/use-extension.js +15 -0
  102. package/dist/build/hooks/use-keymap.d.ts +6 -0
  103. package/dist/build/hooks/use-keymap.d.ts.map +1 -0
  104. package/dist/build/hooks/use-keymap.js +7 -0
  105. package/dist/build/hooks/use-priority-extension.d.ts +8 -0
  106. package/dist/build/hooks/use-priority-extension.d.ts.map +1 -0
  107. package/dist/build/hooks/use-priority-extension.js +10 -0
  108. package/dist/build/hooks/use-state-update.d.ts +9 -0
  109. package/dist/build/hooks/use-state-update.d.ts.map +1 -0
  110. package/dist/build/hooks/use-state-update.js +12 -0
  111. package/dist/build/index.d.ts +8 -0
  112. package/dist/build/index.d.ts.map +1 -0
  113. package/dist/build/index.js +6 -0
  114. package/dist/build/types.d.ts +7 -0
  115. package/dist/build/types.d.ts.map +1 -0
  116. package/dist/build/types.js +1 -0
  117. package/dist/build/utils/remove-undefined.d.ts +2 -0
  118. package/dist/build/utils/remove-undefined.d.ts.map +1 -0
  119. package/dist/build/utils/remove-undefined.js +10 -0
  120. package/dist/prosekit-svelte-autocomplete.d.ts +1 -0
  121. package/dist/prosekit-svelte-autocomplete.js +1 -0
  122. package/dist/prosekit-svelte-block-handle.d.ts +1 -0
  123. package/dist/prosekit-svelte-block-handle.js +1 -0
  124. package/dist/prosekit-svelte-inline-popover.d.ts +1 -0
  125. package/dist/prosekit-svelte-inline-popover.js +1 -0
  126. package/dist/prosekit-svelte-popover.d.ts +1 -0
  127. package/dist/prosekit-svelte-popover.js +1 -0
  128. package/dist/prosekit-svelte-resizable.d.ts +1 -0
  129. package/dist/prosekit-svelte-resizable.js +1 -0
  130. package/dist/prosekit-svelte-tooltip.d.ts +1 -0
  131. package/dist/prosekit-svelte-tooltip.js +1 -0
  132. package/dist/prosekit-svelte.d.ts +1 -0
  133. package/dist/prosekit-svelte.js +1 -0
  134. package/package.json +126 -0
@@ -0,0 +1,2 @@
1
+ import Component from './tooltip-root.gen.svelte';
2
+ export const TooltipRoot = Component;
@@ -0,0 +1,14 @@
1
+ <script lang="ts">
2
+ import '@prosekit/web/tooltip'
3
+ import { defaultTooltipRootProps } from '@prosekit/web/tooltip'
4
+
5
+ import { useEditorContext } from '../../contexts/editor-context'
6
+
7
+ const hasEditor = Object.hasOwn(defaultTooltipRootProps, 'editor')
8
+ const editorContext = useEditorContext()
9
+ const editor = hasEditor ? editorContext : undefined
10
+ </script>
11
+
12
+ <prosekit-tooltip-root {editor} {...$$props}>
13
+ <slot />
14
+ </prosekit-tooltip-root>
@@ -0,0 +1,6 @@
1
+ import type { TooltipTriggerProps } from '@prosekit/web/tooltip';
2
+ import type { SvelteComponent } from 'svelte';
3
+ export declare const TooltipTrigger: typeof SvelteComponent<Partial<TooltipTriggerProps> & {
4
+ class?: string;
5
+ }>;
6
+ //# sourceMappingURL=tooltip-trigger.gen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip-trigger.gen.d.ts","sourceRoot":"","sources":["../../../../../src/components/tooltip/tooltip-trigger.gen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAI7C,eAAO,MAAM,cAAc,EAA+C,uBAAuB,QAAQ,mBAAmB,CAAC,GAAG;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import Component from './tooltip-trigger.gen.svelte';
2
+ export const TooltipTrigger = Component;
@@ -0,0 +1,14 @@
1
+ <script lang="ts">
2
+ import '@prosekit/web/tooltip'
3
+ import { defaultTooltipTriggerProps } from '@prosekit/web/tooltip'
4
+
5
+ import { useEditorContext } from '../../contexts/editor-context'
6
+
7
+ const hasEditor = Object.hasOwn(defaultTooltipTriggerProps, 'editor')
8
+ const editorContext = useEditorContext()
9
+ const editor = hasEditor ? editorContext : undefined
10
+ </script>
11
+
12
+ <prosekit-tooltip-trigger {editor} {...$$props}>
13
+ <slot />
14
+ </prosekit-tooltip-trigger>
@@ -0,0 +1,10 @@
1
+ import { type Editor, type Extension } from '@prosekit/core';
2
+ /**
3
+ * @internal
4
+ */
5
+ export declare function setEditorContext(editor: Editor): void;
6
+ /**
7
+ * @internal
8
+ */
9
+ export declare function useEditorContext<E extends Extension>(): Editor<E> | null;
10
+ //# sourceMappingURL=editor-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-context.d.ts","sourceRoot":"","sources":["../../../../src/contexts/editor-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAK3E;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAKrD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAKxE"}
@@ -0,0 +1,21 @@
1
+ import { ProseKitError } from '@prosekit/core';
2
+ import { getContext, hasContext, setContext } from 'svelte';
3
+ const key = 'prosekit-svelte-editor-context';
4
+ /**
5
+ * @internal
6
+ */
7
+ export function setEditorContext(editor) {
8
+ if (!editor) {
9
+ throw new ProseKitError('editor should not be empty');
10
+ }
11
+ setContext(key, editor);
12
+ }
13
+ /**
14
+ * @internal
15
+ */
16
+ export function useEditorContext() {
17
+ if (!hasContext(key)) {
18
+ return null;
19
+ }
20
+ return getContext(key);
21
+ }
@@ -0,0 +1,9 @@
1
+ import type { ProseMirrorNode } from '@prosekit/pm/model';
2
+ import { type UseExtensionOptions } from './use-extension';
3
+ /**
4
+ * Calls the given handler whenever the editor document changes.
5
+ *
6
+ * @public
7
+ */
8
+ export declare function useDocChange(handler: (doc: ProseMirrorNode) => void, options?: UseExtensionOptions): void;
9
+ //# sourceMappingURL=use-doc-change.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-doc-change.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-doc-change.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGzD,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAExE;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,EACvC,OAAO,CAAC,EAAE,mBAAmB,QAI9B"}
@@ -0,0 +1,12 @@
1
+ import { defineDocChangeHandler } from '@prosekit/core';
2
+ import { readable } from 'svelte/store';
3
+ import { useExtension } from './use-extension';
4
+ /**
5
+ * Calls the given handler whenever the editor document changes.
6
+ *
7
+ * @public
8
+ */
9
+ export function useDocChange(handler, options) {
10
+ const extension = defineDocChangeHandler((view) => handler(view.state.doc));
11
+ return useExtension(readable(extension), options);
12
+ }
@@ -0,0 +1,8 @@
1
+ /// <reference types="svelte" />
2
+ import { Editor, type Extension } from '@prosekit/core';
3
+ import { type Readable } from 'svelte/store';
4
+ /**
5
+ * @internal
6
+ */
7
+ export declare function useEditorExtension(maybeEditor: Editor | null | undefined, extensionStore: Readable<Extension | null>): void;
8
+ //# sourceMappingURL=use-editor-extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-editor-extension.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-editor-extension.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAuB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAA;AAI5C;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,cAAc,EAAE,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,QAyB3C"}
@@ -0,0 +1,27 @@
1
+ import { Editor, EditorNotFoundError } from '@prosekit/core';
2
+ import { onDestroy } from 'svelte';
3
+ import {} from 'svelte/store';
4
+ import { useEditorContext } from '../contexts/editor-context';
5
+ /**
6
+ * @internal
7
+ */
8
+ export function useEditorExtension(maybeEditor, extensionStore) {
9
+ const editorContext = useEditorContext();
10
+ let cleanup;
11
+ const unsubscribe = extensionStore.subscribe((extension) => {
12
+ cleanup === null || cleanup === void 0 ? void 0 : cleanup();
13
+ cleanup = undefined;
14
+ const editor = maybeEditor || editorContext;
15
+ if (!editor) {
16
+ throw new EditorNotFoundError();
17
+ }
18
+ if (extension) {
19
+ cleanup = editor.use(extension);
20
+ }
21
+ });
22
+ onDestroy(() => {
23
+ cleanup === null || cleanup === void 0 ? void 0 : cleanup();
24
+ cleanup = undefined;
25
+ unsubscribe();
26
+ });
27
+ }
@@ -0,0 +1,18 @@
1
+ /// <reference types="svelte" />
2
+ import { type Editor, type Extension } from '@prosekit/core';
3
+ import { type Readable } from 'svelte/store';
4
+ /**
5
+ * Retrieves the editor instance from the nearest ProseKit component.
6
+ *
7
+ * @public
8
+ */
9
+ export declare function useEditor<E extends Extension = any>(options?: {
10
+ /**
11
+ * Whether to update the component when the editor is mounted or editor state
12
+ * is updated.
13
+ *
14
+ * @default false
15
+ */
16
+ update?: boolean;
17
+ }): Readable<Editor<E>>;
18
+ //# sourceMappingURL=use-editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-editor.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-editor.ts"],"names":[],"mappings":";AAAA,OAAO,EAIL,KAAK,MAAM,EACX,KAAK,SAAS,EAEf,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAA;AAIhE;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,SAAS,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE;IAC7D;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CA2BtB"}
@@ -0,0 +1,32 @@
1
+ import { defineMountHandler, defineUpdateHandler, union, ProseKitError, } from '@prosekit/core';
2
+ import { onDestroy, onMount } from 'svelte';
3
+ import { readonly, writable } from 'svelte/store';
4
+ import { useEditorContext } from '../contexts/editor-context';
5
+ /**
6
+ * Retrieves the editor instance from the nearest ProseKit component.
7
+ *
8
+ * @public
9
+ */
10
+ export function useEditor(options) {
11
+ var _a;
12
+ const update = (_a = options === null || options === void 0 ? void 0 : options.update) !== null && _a !== void 0 ? _a : false;
13
+ const editor = useEditorContext();
14
+ if (!editor) {
15
+ throw new ProseKitError('useEditor must be used within the ProseKit component');
16
+ }
17
+ const editorStore = writable(editor);
18
+ if (update) {
19
+ onMount(() => {
20
+ const forceUpdate = () => {
21
+ editorStore.set(editor);
22
+ };
23
+ const extension = union([
24
+ defineMountHandler(forceUpdate),
25
+ defineUpdateHandler(forceUpdate),
26
+ ]);
27
+ const dispose = editor.use(extension);
28
+ onDestroy(dispose);
29
+ });
30
+ }
31
+ return readonly(editorStore);
32
+ }
@@ -0,0 +1,24 @@
1
+ /// <reference types="svelte" />
2
+ import { Editor, Priority, type Extension } from '@prosekit/core';
3
+ import { type Readable } from 'svelte/store';
4
+ export interface UseExtensionOptions {
5
+ /**
6
+ * The editor to add the extension to. If not provided, it will use the
7
+ * editor from the nearest `ProseKit` component.
8
+ */
9
+ editor?: Editor;
10
+ /**
11
+ * Optional priority to add the extension with.
12
+ */
13
+ priority?: Priority;
14
+ }
15
+ /**
16
+ * Add an extension to the editor.
17
+ */
18
+ export declare function useExtension<T extends Extension = Extension>(
19
+ /**
20
+ * The store to an extension to add to the editor. If it changes, the previous
21
+ * extension will be removed and the new one (if not null) will be added.
22
+ */
23
+ extension: Readable<T | null>, options?: UseExtensionOptions): void;
24
+ //# sourceMappingURL=use-extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-extension.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-extension.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAA;AAK5C,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;AAC1D;;;GAGG;AACH,SAAS,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,EAC7B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI,CAKN"}
@@ -0,0 +1,15 @@
1
+ import { Editor, Priority } from '@prosekit/core';
2
+ import {} from 'svelte/store';
3
+ import { useEditorExtension } from './use-editor-extension';
4
+ import { usePriorityExtension } from './use-priority-extension';
5
+ /**
6
+ * Add an extension to the editor.
7
+ */
8
+ export function useExtension(
9
+ /**
10
+ * The store to an extension to add to the editor. If it changes, the previous
11
+ * extension will be removed and the new one (if not null) will be added.
12
+ */
13
+ extension, options) {
14
+ useEditorExtension(options === null || options === void 0 ? void 0 : options.editor, usePriorityExtension(extension, options === null || options === void 0 ? void 0 : options.priority));
15
+ }
@@ -0,0 +1,6 @@
1
+ /// <reference types="svelte" />
2
+ import { type Keymap } from '@prosekit/core';
3
+ import { type Readable } from 'svelte/store';
4
+ import { type UseExtensionOptions } from './use-extension';
5
+ export declare function useKeymap(keymapStore: Readable<Keymap>, options?: UseExtensionOptions): void;
6
+ //# sourceMappingURL=use-keymap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-keymap.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-keymap.ts"],"names":[],"mappings":";AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAA;AAErD,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAExE,wBAAgB,SAAS,CACvB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC7B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI,CAGN"}
@@ -0,0 +1,7 @@
1
+ import { defineKeymap } from '@prosekit/core';
2
+ import { derived } from 'svelte/store';
3
+ import { useExtension } from './use-extension';
4
+ export function useKeymap(keymapStore, options) {
5
+ const extension = derived(keymapStore, (keymap) => defineKeymap(keymap));
6
+ return useExtension(extension, options);
7
+ }
@@ -0,0 +1,8 @@
1
+ /// <reference types="svelte" />
2
+ import { Priority, type Extension } from '@prosekit/core';
3
+ import { type Readable } from 'svelte/store';
4
+ /**
5
+ * @internal
6
+ */
7
+ export declare function usePriorityExtension<T extends Extension = Extension>(extensionStore: Readable<T | null>, priority?: Priority | null): Readable<T | null>;
8
+ //# sourceMappingURL=use-priority-extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-priority-extension.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-priority-extension.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAgB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACvE,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAA;AAErD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAClE,cAAc,EAAE,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,EAClC,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,GACzB,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAIpB"}
@@ -0,0 +1,10 @@
1
+ import { Priority, withPriority } from '@prosekit/core';
2
+ import { derived } from 'svelte/store';
3
+ /**
4
+ * @internal
5
+ */
6
+ export function usePriorityExtension(extensionStore, priority) {
7
+ return derived(extensionStore, (extension) => {
8
+ return extension && priority ? withPriority(extension, priority) : extension;
9
+ });
10
+ }
@@ -0,0 +1,9 @@
1
+ import type { EditorState } from '@prosekit/pm/state';
2
+ import { type UseExtensionOptions } from './use-extension';
3
+ /**
4
+ * Calls the given handler whenever the editor state changes.
5
+ *
6
+ * @public
7
+ */
8
+ export declare function useStateUpdate(handler: (state: EditorState) => void, options?: UseExtensionOptions): void;
9
+ //# sourceMappingURL=use-state-update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-state-update.d.ts","sourceRoot":"","sources":["../../../../src/hooks/use-state-update.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGrD,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAExE;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,EACrC,OAAO,CAAC,EAAE,mBAAmB,QAI9B"}
@@ -0,0 +1,12 @@
1
+ import { defineUpdateHandler } from '@prosekit/core';
2
+ import { readable } from 'svelte/store';
3
+ import { useExtension } from './use-extension';
4
+ /**
5
+ * Calls the given handler whenever the editor state changes.
6
+ *
7
+ * @public
8
+ */
9
+ export function useStateUpdate(handler, options) {
10
+ const extension = defineUpdateHandler((view) => handler(view.state));
11
+ return useExtension(readable(extension), options);
12
+ }
@@ -0,0 +1,8 @@
1
+ export { ProseKit } from './components/prosekit';
2
+ export { useEditor } from './hooks/use-editor';
3
+ export { useExtension, type UseExtensionOptions } from './hooks/use-extension';
4
+ export { useKeymap } from './hooks/use-keymap';
5
+ export { useStateUpdate } from './hooks/use-state-update';
6
+ export { useDocChange } from './hooks/use-doc-change';
7
+ export type { PropsWithClass } from './types';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA"}
@@ -0,0 +1,6 @@
1
+ export { ProseKit } from './components/prosekit';
2
+ export { useEditor } from './hooks/use-editor';
3
+ export { useExtension } from './hooks/use-extension';
4
+ export { useKeymap } from './hooks/use-keymap';
5
+ export { useStateUpdate } from './hooks/use-state-update';
6
+ export { useDocChange } from './hooks/use-doc-change';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @internal
3
+ */
4
+ export type PropsWithClass<P = unknown> = P & {
5
+ class?: string | undefined;
6
+ };
7
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,GAAG;IAC5C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC3B,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export declare function removeUndefined<T extends Record<string, unknown>>(obj: T): T;
2
+ //# sourceMappingURL=remove-undefined.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-undefined.d.ts","sourceRoot":"","sources":["../../../../src/utils/remove-undefined.ts"],"names":[],"mappings":"AACA,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAQ5E"}
@@ -0,0 +1,10 @@
1
+ // Return a new object with all undefined values removed
2
+ export function removeUndefined(obj) {
3
+ const result = {};
4
+ for (const [key, value] of Object.entries(obj)) {
5
+ if (value !== undefined) {
6
+ result[key] = value;
7
+ }
8
+ }
9
+ return result;
10
+ }
@@ -0,0 +1 @@
1
+ export * from './build/components/autocomplete/index'
@@ -0,0 +1 @@
1
+ export * from './build/components/autocomplete/index'
@@ -0,0 +1 @@
1
+ export * from './build/components/block-handle/index'
@@ -0,0 +1 @@
1
+ export * from './build/components/block-handle/index'
@@ -0,0 +1 @@
1
+ export * from './build/components/inline-popover/index'
@@ -0,0 +1 @@
1
+ export * from './build/components/inline-popover/index'
@@ -0,0 +1 @@
1
+ export * from './build/components/popover/index'
@@ -0,0 +1 @@
1
+ export * from './build/components/popover/index'
@@ -0,0 +1 @@
1
+ export * from './build/components/resizable/index'
@@ -0,0 +1 @@
1
+ export * from './build/components/resizable/index'
@@ -0,0 +1 @@
1
+ export * from './build/components/tooltip/index'
@@ -0,0 +1 @@
1
+ export * from './build/components/tooltip/index'
@@ -0,0 +1 @@
1
+ export * from './build/index'
@@ -0,0 +1 @@
1
+ export * from './build/index'
package/package.json ADDED
@@ -0,0 +1,126 @@
1
+ {
2
+ "name": "@prosekit/svelte",
3
+ "type": "module",
4
+ "version": "0.0.0-next-20240421132240",
5
+ "private": false,
6
+ "author": {
7
+ "name": "ocavue",
8
+ "email": "ocavue@gmail.com"
9
+ },
10
+ "license": "MIT",
11
+ "funding": "https://github.com/sponsors/ocavue",
12
+ "homepage": "https://github.com/ocavue/prosekit#readme",
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/ocavue/prosekit.git",
16
+ "directory": "packages/svelte"
17
+ },
18
+ "bugs": {
19
+ "url": "https://github.com/ocavue/prosekit/issues"
20
+ },
21
+ "keywords": [
22
+ "ProseMirror"
23
+ ],
24
+ "sideEffects": false,
25
+ "main": "./dist/prosekit-svelte.js",
26
+ "module": "./dist/prosekit-svelte.js",
27
+ "exports": {
28
+ ".": {
29
+ "types": "./dist/prosekit-svelte.d.ts",
30
+ "import": "./dist/prosekit-svelte.js",
31
+ "default": "./dist/prosekit-svelte.js"
32
+ },
33
+ "./autocomplete": {
34
+ "types": "./dist/prosekit-svelte-autocomplete.d.ts",
35
+ "svelte": "./dist/prosekit-svelte-autocomplete.js",
36
+ "import": "./dist/prosekit-svelte-autocomplete.js",
37
+ "default": "./dist/prosekit-svelte-autocomplete.js"
38
+ },
39
+ "./block-handle": {
40
+ "types": "./dist/prosekit-svelte-block-handle.d.ts",
41
+ "svelte": "./dist/prosekit-svelte-block-handle.js",
42
+ "import": "./dist/prosekit-svelte-block-handle.js",
43
+ "default": "./dist/prosekit-svelte-block-handle.js"
44
+ },
45
+ "./inline-popover": {
46
+ "types": "./dist/prosekit-svelte-inline-popover.d.ts",
47
+ "svelte": "./dist/prosekit-svelte-inline-popover.js",
48
+ "import": "./dist/prosekit-svelte-inline-popover.js",
49
+ "default": "./dist/prosekit-svelte-inline-popover.js"
50
+ },
51
+ "./popover": {
52
+ "types": "./dist/prosekit-svelte-popover.d.ts",
53
+ "svelte": "./dist/prosekit-svelte-popover.js",
54
+ "import": "./dist/prosekit-svelte-popover.js",
55
+ "default": "./dist/prosekit-svelte-popover.js"
56
+ },
57
+ "./resizable": {
58
+ "types": "./dist/prosekit-svelte-resizable.d.ts",
59
+ "svelte": "./dist/prosekit-svelte-resizable.js",
60
+ "import": "./dist/prosekit-svelte-resizable.js",
61
+ "default": "./dist/prosekit-svelte-resizable.js"
62
+ },
63
+ "./tooltip": {
64
+ "types": "./dist/prosekit-svelte-tooltip.d.ts",
65
+ "svelte": "./dist/prosekit-svelte-tooltip.js",
66
+ "import": "./dist/prosekit-svelte-tooltip.js",
67
+ "default": "./dist/prosekit-svelte-tooltip.js"
68
+ }
69
+ },
70
+ "files": [
71
+ "dist"
72
+ ],
73
+ "dependencies": {
74
+ "@prosekit/core": "0.0.0-next-20240421132240",
75
+ "@prosekit/pm": "0.0.0-next-20240421132240",
76
+ "@prosekit/web": "0.0.0-next-20240421132240"
77
+ },
78
+ "peerDependencies": {
79
+ "svelte": ">= 3.0.0"
80
+ },
81
+ "peerDependenciesMeta": {
82
+ "svelte": {
83
+ "optional": true
84
+ }
85
+ },
86
+ "devDependencies": {
87
+ "@prosekit/dev": "*",
88
+ "@sveltejs/package": "^2.3.1",
89
+ "@types/node": "^20.12.7",
90
+ "read-pkg": "^9.0.1",
91
+ "svelte": "^4.2.15",
92
+ "svelte-check": "^3.6.9",
93
+ "tsx": "^4.7.2",
94
+ "typescript": "^5.4.5",
95
+ "vitest": "^1.5.0"
96
+ },
97
+ "scripts": {
98
+ "build": "svelte-package -i src -o dist/build && tsx scripts/re-export.ts"
99
+ },
100
+ "types": "./dist/prosekit-svelte.d.ts",
101
+ "typesVersions": {
102
+ "*": {
103
+ ".": [
104
+ "./dist/prosekit-svelte.d.ts"
105
+ ],
106
+ "autocomplete": [
107
+ "./dist/prosekit-svelte-autocomplete.d.ts"
108
+ ],
109
+ "block-handle": [
110
+ "./dist/prosekit-svelte-block-handle.d.ts"
111
+ ],
112
+ "inline-popover": [
113
+ "./dist/prosekit-svelte-inline-popover.d.ts"
114
+ ],
115
+ "popover": [
116
+ "./dist/prosekit-svelte-popover.d.ts"
117
+ ],
118
+ "resizable": [
119
+ "./dist/prosekit-svelte-resizable.d.ts"
120
+ ],
121
+ "tooltip": [
122
+ "./dist/prosekit-svelte-tooltip.d.ts"
123
+ ]
124
+ }
125
+ }
126
+ }