@prosekit/vue 0.5.0 → 0.6.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 (93) hide show
  1. package/dist/{create-component-wOxhYs6n.js → create-component-BREKWlWW.js} +4 -4
  2. package/dist/create-component-BREKWlWW.js.map +1 -0
  3. package/dist/{create-emits-QdHrV9Ip.d.ts → create-emits-B8725q2G.d.ts} +3 -2
  4. package/dist/create-emits-B8725q2G.d.ts.map +1 -0
  5. package/dist/{editor-context-DKYvJpUt.js → editor-context-BfHHplRP.js} +2 -1
  6. package/dist/editor-context-BfHHplRP.js.map +1 -0
  7. package/dist/prosekit-vue-autocomplete.d.ts +19 -18
  8. package/dist/prosekit-vue-autocomplete.d.ts.map +1 -0
  9. package/dist/prosekit-vue-autocomplete.js +4 -3
  10. package/dist/prosekit-vue-autocomplete.js.map +1 -0
  11. package/dist/prosekit-vue-block-handle.d.ts +15 -14
  12. package/dist/prosekit-vue-block-handle.d.ts.map +1 -0
  13. package/dist/prosekit-vue-block-handle.js +4 -3
  14. package/dist/prosekit-vue-block-handle.js.map +1 -0
  15. package/dist/prosekit-vue-drop-indicator.d.ts +7 -6
  16. package/dist/prosekit-vue-drop-indicator.d.ts.map +1 -0
  17. package/dist/prosekit-vue-drop-indicator.js +4 -3
  18. package/dist/prosekit-vue-drop-indicator.js.map +1 -0
  19. package/dist/prosekit-vue-inline-popover.d.ts +7 -6
  20. package/dist/prosekit-vue-inline-popover.d.ts.map +1 -0
  21. package/dist/prosekit-vue-inline-popover.js +4 -3
  22. package/dist/prosekit-vue-inline-popover.js.map +1 -0
  23. package/dist/prosekit-vue-popover.d.ts +15 -14
  24. package/dist/prosekit-vue-popover.d.ts.map +1 -0
  25. package/dist/prosekit-vue-popover.js +4 -3
  26. package/dist/prosekit-vue-popover.js.map +1 -0
  27. package/dist/prosekit-vue-resizable.d.ts +11 -10
  28. package/dist/prosekit-vue-resizable.d.ts.map +1 -0
  29. package/dist/prosekit-vue-resizable.js +4 -3
  30. package/dist/prosekit-vue-resizable.js.map +1 -0
  31. package/dist/prosekit-vue-table-handle.d.ts +39 -38
  32. package/dist/prosekit-vue-table-handle.d.ts.map +1 -0
  33. package/dist/prosekit-vue-table-handle.js +4 -3
  34. package/dist/prosekit-vue-table-handle.js.map +1 -0
  35. package/dist/prosekit-vue-tooltip.d.ts +15 -14
  36. package/dist/prosekit-vue-tooltip.d.ts.map +1 -0
  37. package/dist/prosekit-vue-tooltip.js +4 -3
  38. package/dist/prosekit-vue-tooltip.js.map +1 -0
  39. package/dist/prosekit-vue.d.ts +95 -68
  40. package/dist/prosekit-vue.d.ts.map +1 -0
  41. package/dist/prosekit-vue.js +39 -26
  42. package/dist/prosekit-vue.js.map +1 -0
  43. package/package.json +18 -17
  44. package/src/components/autocomplete/autocomplete-empty.gen.ts +33 -0
  45. package/src/components/autocomplete/autocomplete-item.gen.ts +33 -0
  46. package/src/components/autocomplete/autocomplete-list.gen.ts +33 -0
  47. package/src/components/autocomplete/autocomplete-popover.gen.ts +33 -0
  48. package/src/components/autocomplete/index.gen.ts +7 -0
  49. package/src/components/block-handle/block-handle-add.gen.ts +33 -0
  50. package/src/components/block-handle/block-handle-draggable.gen.ts +33 -0
  51. package/src/components/block-handle/block-handle-popover.gen.ts +33 -0
  52. package/src/components/block-handle/index.gen.ts +5 -0
  53. package/src/components/create-component.ts +93 -0
  54. package/src/components/create-emits.ts +8 -0
  55. package/src/components/drop-indicator/drop-indicator.gen.ts +33 -0
  56. package/src/components/drop-indicator/index.gen.ts +1 -0
  57. package/src/components/inline-popover/index.gen.ts +1 -0
  58. package/src/components/inline-popover/inline-popover.gen.ts +33 -0
  59. package/src/components/popover/index.gen.ts +5 -0
  60. package/src/components/popover/popover-content.gen.ts +33 -0
  61. package/src/components/popover/popover-root.gen.ts +33 -0
  62. package/src/components/popover/popover-trigger.gen.ts +33 -0
  63. package/src/components/prosekit.ts +36 -0
  64. package/src/components/resizable/index.gen.ts +3 -0
  65. package/src/components/resizable/resizable-handle.gen.ts +33 -0
  66. package/src/components/resizable/resizable-root.gen.ts +33 -0
  67. package/src/components/table-handle/index.gen.ts +17 -0
  68. package/src/components/table-handle/table-handle-column-root.gen.ts +33 -0
  69. package/src/components/table-handle/table-handle-column-trigger.gen.ts +33 -0
  70. package/src/components/table-handle/table-handle-drag-preview.gen.ts +33 -0
  71. package/src/components/table-handle/table-handle-drop-indicator.gen.ts +33 -0
  72. package/src/components/table-handle/table-handle-popover-content.gen.ts +33 -0
  73. package/src/components/table-handle/table-handle-popover-item.gen.ts +33 -0
  74. package/src/components/table-handle/table-handle-root.gen.ts +33 -0
  75. package/src/components/table-handle/table-handle-row-root.gen.ts +33 -0
  76. package/src/components/table-handle/table-handle-row-trigger.gen.ts +33 -0
  77. package/src/components/tooltip/index.gen.ts +5 -0
  78. package/src/components/tooltip/tooltip-content.gen.ts +33 -0
  79. package/src/components/tooltip/tooltip-root.gen.ts +33 -0
  80. package/src/components/tooltip/tooltip-trigger.gen.ts +33 -0
  81. package/src/extensions/vue-mark-view.ts +98 -0
  82. package/src/extensions/vue-node-view.ts +98 -0
  83. package/src/hooks/use-doc-change.ts +20 -0
  84. package/src/hooks/use-editor-derived-value.ts +51 -0
  85. package/src/hooks/use-editor-extension.ts +34 -0
  86. package/src/hooks/use-editor.ts +57 -0
  87. package/src/hooks/use-extension.spec.ts +90 -0
  88. package/src/hooks/use-extension.ts +41 -0
  89. package/src/hooks/use-keymap.ts +22 -0
  90. package/src/hooks/use-priority-extension.ts +24 -0
  91. package/src/hooks/use-state-update.ts +20 -0
  92. package/src/index.ts +28 -0
  93. package/src/injection/editor-context.ts +25 -0
@@ -0,0 +1,36 @@
1
+ import type { Editor } from '@prosekit/core'
2
+ import { ProsemirrorAdapterProvider } from '@prosemirror-adapter/vue'
3
+ import {
4
+ defineComponent,
5
+ h,
6
+ type DefineSetupFnComponent,
7
+ type PropType,
8
+ } from 'vue'
9
+
10
+ import { VueMarkViewsConsumer } from '../extensions/vue-mark-view'
11
+ import { VueNodeViewsConsumer } from '../extensions/vue-node-view'
12
+ import { provideEditor } from '../injection/editor-context'
13
+
14
+ export interface ProseKitProps {
15
+ editor: Editor
16
+ }
17
+
18
+ /**
19
+ * The root component for a ProseKit editor.
20
+ *
21
+ * @public
22
+ */
23
+ export const ProseKit: DefineSetupFnComponent<ProseKitProps> = defineComponent<ProseKitProps>({
24
+ name: 'ProseKit',
25
+ props: { editor: { type: Object as PropType<Editor>, required: true } },
26
+ setup: (props, { slots }) => {
27
+ provideEditor(props.editor)
28
+ return () => {
29
+ return h(ProsemirrorAdapterProvider, null, () => [
30
+ h(VueNodeViewsConsumer),
31
+ h(VueMarkViewsConsumer),
32
+ slots.default?.(),
33
+ ])
34
+ }
35
+ },
36
+ })
@@ -0,0 +1,3 @@
1
+ export { ResizableHandle, type ResizableHandleProps, type ResizableHandleEmits } from './resizable-handle.gen'
2
+
3
+ export { ResizableRoot, type ResizableRootProps, type ResizableRootEmits } from './resizable-root.gen'
@@ -0,0 +1,33 @@
1
+ import {
2
+ resizableHandleProps,
3
+ resizableHandleEvents,
4
+ type ResizableHandleProps as Props,
5
+ type ResizableHandleEvents as Events,
6
+ } from '@prosekit/web/resizable'
7
+ import type { DefineSetupFnComponent, HTMLAttributes } from 'vue'
8
+
9
+ import { createComponent } from '../create-component'
10
+ import type { CreateEmits } from '../create-emits'
11
+
12
+ /**
13
+ * Props for the {@link ResizableHandle} component.
14
+ */
15
+ export interface ResizableHandleProps extends Partial<Props> {}
16
+
17
+ /**
18
+ * Emits for the {@link ResizableHandle} component.
19
+ */
20
+ export interface ResizableHandleEmits extends CreateEmits<Events> {}
21
+
22
+ export const ResizableHandle: DefineSetupFnComponent<
23
+ ResizableHandleProps & HTMLAttributes,
24
+ ResizableHandleEmits
25
+ > = createComponent<
26
+ ResizableHandleProps,
27
+ ResizableHandleEmits
28
+ >(
29
+ 'prosekit-resizable-handle',
30
+ 'ResizableHandle',
31
+ Object.keys(resizableHandleProps),
32
+ Object.keys(resizableHandleEvents),
33
+ )
@@ -0,0 +1,33 @@
1
+ import {
2
+ resizableRootProps,
3
+ resizableRootEvents,
4
+ type ResizableRootProps as Props,
5
+ type ResizableRootEvents as Events,
6
+ } from '@prosekit/web/resizable'
7
+ import type { DefineSetupFnComponent, HTMLAttributes } from 'vue'
8
+
9
+ import { createComponent } from '../create-component'
10
+ import type { CreateEmits } from '../create-emits'
11
+
12
+ /**
13
+ * Props for the {@link ResizableRoot} component.
14
+ */
15
+ export interface ResizableRootProps extends Partial<Props> {}
16
+
17
+ /**
18
+ * Emits for the {@link ResizableRoot} component.
19
+ */
20
+ export interface ResizableRootEmits extends CreateEmits<Events> {}
21
+
22
+ export const ResizableRoot: DefineSetupFnComponent<
23
+ ResizableRootProps & HTMLAttributes,
24
+ ResizableRootEmits
25
+ > = createComponent<
26
+ ResizableRootProps,
27
+ ResizableRootEmits
28
+ >(
29
+ 'prosekit-resizable-root',
30
+ 'ResizableRoot',
31
+ Object.keys(resizableRootProps),
32
+ Object.keys(resizableRootEvents),
33
+ )
@@ -0,0 +1,17 @@
1
+ export { TableHandleColumnRoot, type TableHandleColumnRootProps, type TableHandleColumnRootEmits } from './table-handle-column-root.gen'
2
+
3
+ export { TableHandleColumnTrigger, type TableHandleColumnTriggerProps, type TableHandleColumnTriggerEmits } from './table-handle-column-trigger.gen'
4
+
5
+ export { TableHandleDragPreview, type TableHandleDragPreviewProps, type TableHandleDragPreviewEmits } from './table-handle-drag-preview.gen'
6
+
7
+ export { TableHandleDropIndicator, type TableHandleDropIndicatorProps, type TableHandleDropIndicatorEmits } from './table-handle-drop-indicator.gen'
8
+
9
+ export { TableHandlePopoverContent, type TableHandlePopoverContentProps, type TableHandlePopoverContentEmits } from './table-handle-popover-content.gen'
10
+
11
+ export { TableHandlePopoverItem, type TableHandlePopoverItemProps, type TableHandlePopoverItemEmits } from './table-handle-popover-item.gen'
12
+
13
+ export { TableHandleRoot, type TableHandleRootProps, type TableHandleRootEmits } from './table-handle-root.gen'
14
+
15
+ export { TableHandleRowRoot, type TableHandleRowRootProps, type TableHandleRowRootEmits } from './table-handle-row-root.gen'
16
+
17
+ export { TableHandleRowTrigger, type TableHandleRowTriggerProps, type TableHandleRowTriggerEmits } from './table-handle-row-trigger.gen'
@@ -0,0 +1,33 @@
1
+ import {
2
+ tableHandleColumnRootProps,
3
+ tableHandleColumnRootEvents,
4
+ type TableHandleColumnRootProps as Props,
5
+ type TableHandleColumnRootEvents as Events,
6
+ } from '@prosekit/web/table-handle'
7
+ import type { DefineSetupFnComponent, HTMLAttributes } from 'vue'
8
+
9
+ import { createComponent } from '../create-component'
10
+ import type { CreateEmits } from '../create-emits'
11
+
12
+ /**
13
+ * Props for the {@link TableHandleColumnRoot} component.
14
+ */
15
+ export interface TableHandleColumnRootProps extends Partial<Props> {}
16
+
17
+ /**
18
+ * Emits for the {@link TableHandleColumnRoot} component.
19
+ */
20
+ export interface TableHandleColumnRootEmits extends CreateEmits<Events> {}
21
+
22
+ export const TableHandleColumnRoot: DefineSetupFnComponent<
23
+ TableHandleColumnRootProps & HTMLAttributes,
24
+ TableHandleColumnRootEmits
25
+ > = createComponent<
26
+ TableHandleColumnRootProps,
27
+ TableHandleColumnRootEmits
28
+ >(
29
+ 'prosekit-table-handle-column-root',
30
+ 'TableHandleColumnRoot',
31
+ Object.keys(tableHandleColumnRootProps),
32
+ Object.keys(tableHandleColumnRootEvents),
33
+ )
@@ -0,0 +1,33 @@
1
+ import {
2
+ tableHandleColumnTriggerProps,
3
+ tableHandleColumnTriggerEvents,
4
+ type TableHandleColumnTriggerProps as Props,
5
+ type TableHandleColumnTriggerEvents as Events,
6
+ } from '@prosekit/web/table-handle'
7
+ import type { DefineSetupFnComponent, HTMLAttributes } from 'vue'
8
+
9
+ import { createComponent } from '../create-component'
10
+ import type { CreateEmits } from '../create-emits'
11
+
12
+ /**
13
+ * Props for the {@link TableHandleColumnTrigger} component.
14
+ */
15
+ export interface TableHandleColumnTriggerProps extends Partial<Props> {}
16
+
17
+ /**
18
+ * Emits for the {@link TableHandleColumnTrigger} component.
19
+ */
20
+ export interface TableHandleColumnTriggerEmits extends CreateEmits<Events> {}
21
+
22
+ export const TableHandleColumnTrigger: DefineSetupFnComponent<
23
+ TableHandleColumnTriggerProps & HTMLAttributes,
24
+ TableHandleColumnTriggerEmits
25
+ > = createComponent<
26
+ TableHandleColumnTriggerProps,
27
+ TableHandleColumnTriggerEmits
28
+ >(
29
+ 'prosekit-table-handle-column-trigger',
30
+ 'TableHandleColumnTrigger',
31
+ Object.keys(tableHandleColumnTriggerProps),
32
+ Object.keys(tableHandleColumnTriggerEvents),
33
+ )
@@ -0,0 +1,33 @@
1
+ import {
2
+ tableHandleDragPreviewProps,
3
+ tableHandleDragPreviewEvents,
4
+ type TableHandleDragPreviewProps as Props,
5
+ type TableHandleDragPreviewEvents as Events,
6
+ } from '@prosekit/web/table-handle'
7
+ import type { DefineSetupFnComponent, HTMLAttributes } from 'vue'
8
+
9
+ import { createComponent } from '../create-component'
10
+ import type { CreateEmits } from '../create-emits'
11
+
12
+ /**
13
+ * Props for the {@link TableHandleDragPreview} component.
14
+ */
15
+ export interface TableHandleDragPreviewProps extends Partial<Props> {}
16
+
17
+ /**
18
+ * Emits for the {@link TableHandleDragPreview} component.
19
+ */
20
+ export interface TableHandleDragPreviewEmits extends CreateEmits<Events> {}
21
+
22
+ export const TableHandleDragPreview: DefineSetupFnComponent<
23
+ TableHandleDragPreviewProps & HTMLAttributes,
24
+ TableHandleDragPreviewEmits
25
+ > = createComponent<
26
+ TableHandleDragPreviewProps,
27
+ TableHandleDragPreviewEmits
28
+ >(
29
+ 'prosekit-table-handle-drag-preview',
30
+ 'TableHandleDragPreview',
31
+ Object.keys(tableHandleDragPreviewProps),
32
+ Object.keys(tableHandleDragPreviewEvents),
33
+ )
@@ -0,0 +1,33 @@
1
+ import {
2
+ tableHandleDropIndicatorProps,
3
+ tableHandleDropIndicatorEvents,
4
+ type TableHandleDropIndicatorProps as Props,
5
+ type TableHandleDropIndicatorEvents as Events,
6
+ } from '@prosekit/web/table-handle'
7
+ import type { DefineSetupFnComponent, HTMLAttributes } from 'vue'
8
+
9
+ import { createComponent } from '../create-component'
10
+ import type { CreateEmits } from '../create-emits'
11
+
12
+ /**
13
+ * Props for the {@link TableHandleDropIndicator} component.
14
+ */
15
+ export interface TableHandleDropIndicatorProps extends Partial<Props> {}
16
+
17
+ /**
18
+ * Emits for the {@link TableHandleDropIndicator} component.
19
+ */
20
+ export interface TableHandleDropIndicatorEmits extends CreateEmits<Events> {}
21
+
22
+ export const TableHandleDropIndicator: DefineSetupFnComponent<
23
+ TableHandleDropIndicatorProps & HTMLAttributes,
24
+ TableHandleDropIndicatorEmits
25
+ > = createComponent<
26
+ TableHandleDropIndicatorProps,
27
+ TableHandleDropIndicatorEmits
28
+ >(
29
+ 'prosekit-table-handle-drop-indicator',
30
+ 'TableHandleDropIndicator',
31
+ Object.keys(tableHandleDropIndicatorProps),
32
+ Object.keys(tableHandleDropIndicatorEvents),
33
+ )
@@ -0,0 +1,33 @@
1
+ import {
2
+ tableHandlePopoverContentProps,
3
+ tableHandlePopoverContentEvents,
4
+ type TableHandlePopoverContentProps as Props,
5
+ type TableHandlePopoverContentEvents as Events,
6
+ } from '@prosekit/web/table-handle'
7
+ import type { DefineSetupFnComponent, HTMLAttributes } from 'vue'
8
+
9
+ import { createComponent } from '../create-component'
10
+ import type { CreateEmits } from '../create-emits'
11
+
12
+ /**
13
+ * Props for the {@link TableHandlePopoverContent} component.
14
+ */
15
+ export interface TableHandlePopoverContentProps extends Partial<Props> {}
16
+
17
+ /**
18
+ * Emits for the {@link TableHandlePopoverContent} component.
19
+ */
20
+ export interface TableHandlePopoverContentEmits extends CreateEmits<Events> {}
21
+
22
+ export const TableHandlePopoverContent: DefineSetupFnComponent<
23
+ TableHandlePopoverContentProps & HTMLAttributes,
24
+ TableHandlePopoverContentEmits
25
+ > = createComponent<
26
+ TableHandlePopoverContentProps,
27
+ TableHandlePopoverContentEmits
28
+ >(
29
+ 'prosekit-table-handle-popover-content',
30
+ 'TableHandlePopoverContent',
31
+ Object.keys(tableHandlePopoverContentProps),
32
+ Object.keys(tableHandlePopoverContentEvents),
33
+ )
@@ -0,0 +1,33 @@
1
+ import {
2
+ tableHandlePopoverItemProps,
3
+ tableHandlePopoverItemEvents,
4
+ type TableHandlePopoverItemProps as Props,
5
+ type TableHandlePopoverItemEvents as Events,
6
+ } from '@prosekit/web/table-handle'
7
+ import type { DefineSetupFnComponent, HTMLAttributes } from 'vue'
8
+
9
+ import { createComponent } from '../create-component'
10
+ import type { CreateEmits } from '../create-emits'
11
+
12
+ /**
13
+ * Props for the {@link TableHandlePopoverItem} component.
14
+ */
15
+ export interface TableHandlePopoverItemProps extends Partial<Props> {}
16
+
17
+ /**
18
+ * Emits for the {@link TableHandlePopoverItem} component.
19
+ */
20
+ export interface TableHandlePopoverItemEmits extends CreateEmits<Events> {}
21
+
22
+ export const TableHandlePopoverItem: DefineSetupFnComponent<
23
+ TableHandlePopoverItemProps & HTMLAttributes,
24
+ TableHandlePopoverItemEmits
25
+ > = createComponent<
26
+ TableHandlePopoverItemProps,
27
+ TableHandlePopoverItemEmits
28
+ >(
29
+ 'prosekit-table-handle-popover-item',
30
+ 'TableHandlePopoverItem',
31
+ Object.keys(tableHandlePopoverItemProps),
32
+ Object.keys(tableHandlePopoverItemEvents),
33
+ )
@@ -0,0 +1,33 @@
1
+ import {
2
+ tableHandleRootProps,
3
+ tableHandleRootEvents,
4
+ type TableHandleRootProps as Props,
5
+ type TableHandleRootEvents as Events,
6
+ } from '@prosekit/web/table-handle'
7
+ import type { DefineSetupFnComponent, HTMLAttributes } from 'vue'
8
+
9
+ import { createComponent } from '../create-component'
10
+ import type { CreateEmits } from '../create-emits'
11
+
12
+ /**
13
+ * Props for the {@link TableHandleRoot} component.
14
+ */
15
+ export interface TableHandleRootProps extends Partial<Props> {}
16
+
17
+ /**
18
+ * Emits for the {@link TableHandleRoot} component.
19
+ */
20
+ export interface TableHandleRootEmits extends CreateEmits<Events> {}
21
+
22
+ export const TableHandleRoot: DefineSetupFnComponent<
23
+ TableHandleRootProps & HTMLAttributes,
24
+ TableHandleRootEmits
25
+ > = createComponent<
26
+ TableHandleRootProps,
27
+ TableHandleRootEmits
28
+ >(
29
+ 'prosekit-table-handle-root',
30
+ 'TableHandleRoot',
31
+ Object.keys(tableHandleRootProps),
32
+ Object.keys(tableHandleRootEvents),
33
+ )
@@ -0,0 +1,33 @@
1
+ import {
2
+ tableHandleRowRootProps,
3
+ tableHandleRowRootEvents,
4
+ type TableHandleRowRootProps as Props,
5
+ type TableHandleRowRootEvents as Events,
6
+ } from '@prosekit/web/table-handle'
7
+ import type { DefineSetupFnComponent, HTMLAttributes } from 'vue'
8
+
9
+ import { createComponent } from '../create-component'
10
+ import type { CreateEmits } from '../create-emits'
11
+
12
+ /**
13
+ * Props for the {@link TableHandleRowRoot} component.
14
+ */
15
+ export interface TableHandleRowRootProps extends Partial<Props> {}
16
+
17
+ /**
18
+ * Emits for the {@link TableHandleRowRoot} component.
19
+ */
20
+ export interface TableHandleRowRootEmits extends CreateEmits<Events> {}
21
+
22
+ export const TableHandleRowRoot: DefineSetupFnComponent<
23
+ TableHandleRowRootProps & HTMLAttributes,
24
+ TableHandleRowRootEmits
25
+ > = createComponent<
26
+ TableHandleRowRootProps,
27
+ TableHandleRowRootEmits
28
+ >(
29
+ 'prosekit-table-handle-row-root',
30
+ 'TableHandleRowRoot',
31
+ Object.keys(tableHandleRowRootProps),
32
+ Object.keys(tableHandleRowRootEvents),
33
+ )
@@ -0,0 +1,33 @@
1
+ import {
2
+ tableHandleRowTriggerProps,
3
+ tableHandleRowTriggerEvents,
4
+ type TableHandleRowTriggerProps as Props,
5
+ type TableHandleRowTriggerEvents as Events,
6
+ } from '@prosekit/web/table-handle'
7
+ import type { DefineSetupFnComponent, HTMLAttributes } from 'vue'
8
+
9
+ import { createComponent } from '../create-component'
10
+ import type { CreateEmits } from '../create-emits'
11
+
12
+ /**
13
+ * Props for the {@link TableHandleRowTrigger} component.
14
+ */
15
+ export interface TableHandleRowTriggerProps extends Partial<Props> {}
16
+
17
+ /**
18
+ * Emits for the {@link TableHandleRowTrigger} component.
19
+ */
20
+ export interface TableHandleRowTriggerEmits extends CreateEmits<Events> {}
21
+
22
+ export const TableHandleRowTrigger: DefineSetupFnComponent<
23
+ TableHandleRowTriggerProps & HTMLAttributes,
24
+ TableHandleRowTriggerEmits
25
+ > = createComponent<
26
+ TableHandleRowTriggerProps,
27
+ TableHandleRowTriggerEmits
28
+ >(
29
+ 'prosekit-table-handle-row-trigger',
30
+ 'TableHandleRowTrigger',
31
+ Object.keys(tableHandleRowTriggerProps),
32
+ Object.keys(tableHandleRowTriggerEvents),
33
+ )
@@ -0,0 +1,5 @@
1
+ export { TooltipContent, type TooltipContentProps, type TooltipContentEmits } from './tooltip-content.gen'
2
+
3
+ export { TooltipRoot, type TooltipRootProps, type TooltipRootEmits } from './tooltip-root.gen'
4
+
5
+ export { TooltipTrigger, type TooltipTriggerProps, type TooltipTriggerEmits } from './tooltip-trigger.gen'
@@ -0,0 +1,33 @@
1
+ import {
2
+ tooltipContentProps,
3
+ tooltipContentEvents,
4
+ type TooltipContentProps as Props,
5
+ type TooltipContentEvents as Events,
6
+ } from '@prosekit/web/tooltip'
7
+ import type { DefineSetupFnComponent, HTMLAttributes } from 'vue'
8
+
9
+ import { createComponent } from '../create-component'
10
+ import type { CreateEmits } from '../create-emits'
11
+
12
+ /**
13
+ * Props for the {@link TooltipContent} component.
14
+ */
15
+ export interface TooltipContentProps extends Partial<Props> {}
16
+
17
+ /**
18
+ * Emits for the {@link TooltipContent} component.
19
+ */
20
+ export interface TooltipContentEmits extends CreateEmits<Events> {}
21
+
22
+ export const TooltipContent: DefineSetupFnComponent<
23
+ TooltipContentProps & HTMLAttributes,
24
+ TooltipContentEmits
25
+ > = createComponent<
26
+ TooltipContentProps,
27
+ TooltipContentEmits
28
+ >(
29
+ 'prosekit-tooltip-content',
30
+ 'TooltipContent',
31
+ Object.keys(tooltipContentProps),
32
+ Object.keys(tooltipContentEvents),
33
+ )
@@ -0,0 +1,33 @@
1
+ import {
2
+ tooltipRootProps,
3
+ tooltipRootEvents,
4
+ type TooltipRootProps as Props,
5
+ type TooltipRootEvents as Events,
6
+ } from '@prosekit/web/tooltip'
7
+ import type { DefineSetupFnComponent, HTMLAttributes } from 'vue'
8
+
9
+ import { createComponent } from '../create-component'
10
+ import type { CreateEmits } from '../create-emits'
11
+
12
+ /**
13
+ * Props for the {@link TooltipRoot} component.
14
+ */
15
+ export interface TooltipRootProps extends Partial<Props> {}
16
+
17
+ /**
18
+ * Emits for the {@link TooltipRoot} component.
19
+ */
20
+ export interface TooltipRootEmits extends CreateEmits<Events> {}
21
+
22
+ export const TooltipRoot: DefineSetupFnComponent<
23
+ TooltipRootProps & HTMLAttributes,
24
+ TooltipRootEmits
25
+ > = createComponent<
26
+ TooltipRootProps,
27
+ TooltipRootEmits
28
+ >(
29
+ 'prosekit-tooltip-root',
30
+ 'TooltipRoot',
31
+ Object.keys(tooltipRootProps),
32
+ Object.keys(tooltipRootEvents),
33
+ )
@@ -0,0 +1,33 @@
1
+ import {
2
+ tooltipTriggerProps,
3
+ tooltipTriggerEvents,
4
+ type TooltipTriggerProps as Props,
5
+ type TooltipTriggerEvents as Events,
6
+ } from '@prosekit/web/tooltip'
7
+ import type { DefineSetupFnComponent, HTMLAttributes } from 'vue'
8
+
9
+ import { createComponent } from '../create-component'
10
+ import type { CreateEmits } from '../create-emits'
11
+
12
+ /**
13
+ * Props for the {@link TooltipTrigger} component.
14
+ */
15
+ export interface TooltipTriggerProps extends Partial<Props> {}
16
+
17
+ /**
18
+ * Emits for the {@link TooltipTrigger} component.
19
+ */
20
+ export interface TooltipTriggerEmits extends CreateEmits<Events> {}
21
+
22
+ export const TooltipTrigger: DefineSetupFnComponent<
23
+ TooltipTriggerProps & HTMLAttributes,
24
+ TooltipTriggerEmits
25
+ > = createComponent<
26
+ TooltipTriggerProps,
27
+ TooltipTriggerEmits
28
+ >(
29
+ 'prosekit-tooltip-trigger',
30
+ 'TooltipTrigger',
31
+ Object.keys(tooltipTriggerProps),
32
+ Object.keys(tooltipTriggerEvents),
33
+ )
@@ -0,0 +1,98 @@
1
+ import {
2
+ defineMarkViewComponent,
3
+ defineMarkViewFactory,
4
+ type Extension,
5
+ } from '@prosekit/core'
6
+ import type { MarkViewConstructor } from '@prosekit/pm/view'
7
+ import type { CoreMarkViewUserOptions } from '@prosemirror-adapter/core'
8
+ import {
9
+ useMarkViewContext,
10
+ useMarkViewFactory,
11
+ type MarkViewContext,
12
+ type MarkViewFactory,
13
+ type VueMarkViewUserOptions,
14
+ } from '@prosemirror-adapter/vue'
15
+ import {
16
+ computed,
17
+ defineComponent,
18
+ h,
19
+ type DefineComponent,
20
+ } from 'vue'
21
+
22
+ import { useExtension } from '../hooks/use-extension'
23
+
24
+ /**
25
+ * @public
26
+ */
27
+ export interface VueMarkViewProps extends MarkViewContext {}
28
+
29
+ /**
30
+ * @public
31
+ */
32
+ export type VueMarkViewComponent = DefineComponent<VueMarkViewProps, any, any>
33
+
34
+ /**
35
+ * Options for {@link defineVueMarkView}.
36
+ *
37
+ * @public
38
+ */
39
+ export interface VueMarkViewOptions extends CoreMarkViewUserOptions<VueMarkViewComponent> {
40
+ /**
41
+ * The name of the mark type.
42
+ */
43
+ name: string
44
+ }
45
+
46
+ function withMarkViewProps(component: VueMarkViewComponent) {
47
+ return defineComponent({
48
+ name: 'MarkViewPropsWrapper',
49
+ setup: () => {
50
+ const props: Readonly<VueMarkViewProps> = useMarkViewContext()
51
+ return () => h(component, props)
52
+ },
53
+ })
54
+ }
55
+
56
+ /**
57
+ * @internal
58
+ */
59
+ export const VueMarkViewsConsumer: DefineComponent = /* @__PURE__ */ defineComponent({
60
+ name: 'VueMarkViewsConsumer',
61
+ setup: () => {
62
+ const markViewFactory: MarkViewFactory = useMarkViewFactory()
63
+ const extension = computed(() => {
64
+ return defineVueMarkViewFactory(markViewFactory)
65
+ })
66
+ useExtension(extension)
67
+ return (): null => null
68
+ },
69
+ })
70
+
71
+ /**
72
+ * Defines a mark view using a Vue component.
73
+ *
74
+ * @public
75
+ */
76
+ export function defineVueMarkView(options: VueMarkViewOptions): Extension {
77
+ const { name, component, ...userOptions } = options
78
+
79
+ const args: VueMarkViewUserOptions = {
80
+ ...userOptions,
81
+ component: withMarkViewProps(component),
82
+ }
83
+
84
+ return defineMarkViewComponent<VueMarkViewUserOptions>({
85
+ group: 'vue',
86
+ name,
87
+ args,
88
+ })
89
+ }
90
+
91
+ function defineVueMarkViewFactory(
92
+ factory: (options: VueMarkViewUserOptions) => MarkViewConstructor,
93
+ ) {
94
+ return defineMarkViewFactory<VueMarkViewUserOptions>({
95
+ group: 'vue',
96
+ factory,
97
+ })
98
+ }