@prosekit/vue 0.7.0-beta.0 → 0.7.0-beta.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 (116) hide show
  1. package/dist/prosekit-vue-autocomplete.d.ts +216 -25
  2. package/dist/prosekit-vue-autocomplete.d.ts.map +1 -1
  3. package/dist/prosekit-vue-autocomplete.js +270 -9
  4. package/dist/prosekit-vue-autocomplete.js.map +1 -1
  5. package/dist/prosekit-vue-block-handle.d.ts +202 -19
  6. package/dist/prosekit-vue-block-handle.d.ts.map +1 -1
  7. package/dist/prosekit-vue-block-handle.js +211 -7
  8. package/dist/prosekit-vue-block-handle.js.map +1 -1
  9. package/dist/prosekit-vue-drop-indicator.d.ts +24 -8
  10. package/dist/prosekit-vue-drop-indicator.d.ts.map +1 -1
  11. package/dist/prosekit-vue-drop-indicator.js +36 -3
  12. package/dist/prosekit-vue-drop-indicator.js.map +1 -1
  13. package/dist/prosekit-vue-inline-popover.d.ts +200 -9
  14. package/dist/prosekit-vue-inline-popover.d.ts.map +1 -1
  15. package/dist/prosekit-vue-inline-popover.js +171 -5
  16. package/dist/prosekit-vue-inline-popover.js.map +1 -1
  17. package/dist/prosekit-vue-menu.d.ts +287 -0
  18. package/dist/prosekit-vue-menu.d.ts.map +1 -0
  19. package/dist/prosekit-vue-menu.js +313 -0
  20. package/dist/prosekit-vue-menu.js.map +1 -0
  21. package/dist/prosekit-vue-popover.d.ts +219 -19
  22. package/dist/prosekit-vue-popover.d.ts.map +1 -1
  23. package/dist/prosekit-vue-popover.js +222 -7
  24. package/dist/prosekit-vue-popover.js.map +1 -1
  25. package/dist/prosekit-vue-resizable.d.ts +50 -15
  26. package/dist/prosekit-vue-resizable.d.ts.map +1 -1
  27. package/dist/prosekit-vue-resizable.js +92 -7
  28. package/dist/prosekit-vue-resizable.js.map +1 -1
  29. package/dist/prosekit-vue-table-handle.d.ts +427 -55
  30. package/dist/prosekit-vue-table-handle.d.ts.map +1 -1
  31. package/dist/prosekit-vue-table-handle.js +455 -19
  32. package/dist/prosekit-vue-table-handle.js.map +1 -1
  33. package/dist/prosekit-vue-tooltip.d.ts +203 -19
  34. package/dist/prosekit-vue-tooltip.d.ts.map +1 -1
  35. package/dist/prosekit-vue-tooltip.js +202 -7
  36. package/dist/prosekit-vue-tooltip.js.map +1 -1
  37. package/package.json +27 -17
  38. package/src/components/autocomplete/autocomplete-empty.gen.ts +21 -25
  39. package/src/components/autocomplete/autocomplete-item.gen.ts +80 -26
  40. package/src/components/autocomplete/autocomplete-popup.gen.ts +80 -0
  41. package/src/components/autocomplete/autocomplete-positioner.gen.ts +149 -0
  42. package/src/components/autocomplete/autocomplete-root.gen.ts +112 -0
  43. package/src/components/autocomplete/index.gen.ts +12 -4
  44. package/src/components/autocomplete/index.ts +27 -0
  45. package/src/components/block-handle/block-handle-add.gen.ts +51 -26
  46. package/src/components/block-handle/block-handle-draggable.gen.ts +51 -26
  47. package/src/components/block-handle/block-handle-popup.gen.ts +29 -0
  48. package/src/components/block-handle/block-handle-positioner.gen.ts +167 -0
  49. package/src/components/block-handle/block-handle-root.gen.ts +84 -0
  50. package/src/components/block-handle/index.gen.ts +13 -3
  51. package/src/components/block-handle/index.ts +27 -0
  52. package/src/components/drop-indicator/drop-indicator.gen.ts +57 -26
  53. package/src/components/drop-indicator/index.gen.ts +5 -1
  54. package/src/components/drop-indicator/index.ts +14 -0
  55. package/src/components/inline-popover/index.gen.ts +11 -1
  56. package/src/components/inline-popover/index.ts +22 -0
  57. package/src/components/inline-popover/inline-popover-popup.gen.ts +29 -0
  58. package/src/components/inline-popover/inline-popover-positioner.gen.ts +173 -0
  59. package/src/components/inline-popover/inline-popover-root.gen.ts +108 -0
  60. package/src/components/menu/index.gen.ts +19 -0
  61. package/src/components/menu/index.ts +37 -0
  62. package/src/components/menu/menu-item.gen.ts +91 -0
  63. package/src/components/menu/menu-popup.gen.ts +54 -0
  64. package/src/components/menu/menu-positioner.gen.ts +174 -0
  65. package/src/components/menu/menu-root.gen.ts +88 -0
  66. package/src/components/menu/menu-submenu-root.gen.ts +29 -0
  67. package/src/components/menu/menu-submenu-trigger.gen.ts +29 -0
  68. package/src/components/menu/menu-trigger.gen.ts +79 -0
  69. package/src/components/popover/index.gen.ts +11 -3
  70. package/src/components/popover/index.ts +24 -0
  71. package/src/components/popover/popover-popup.gen.ts +29 -0
  72. package/src/components/popover/popover-positioner.gen.ts +174 -0
  73. package/src/components/popover/popover-root.gen.ts +88 -26
  74. package/src/components/popover/popover-trigger.gen.ts +88 -26
  75. package/src/components/resizable/index.gen.ts +8 -2
  76. package/src/components/resizable/index.ts +20 -0
  77. package/src/components/resizable/resizable-handle.gen.ts +46 -26
  78. package/src/components/resizable/resizable-root.gen.ts +87 -26
  79. package/src/components/table-handle/index.gen.ts +17 -9
  80. package/src/components/table-handle/index.ts +58 -0
  81. package/src/components/table-handle/table-handle-column-menu-root.gen.ts +62 -0
  82. package/src/components/table-handle/table-handle-column-menu-trigger.gen.ts +56 -0
  83. package/src/components/table-handle/table-handle-column-popup.gen.ts +29 -0
  84. package/src/components/table-handle/table-handle-column-positioner.gen.ts +197 -0
  85. package/src/components/table-handle/table-handle-drag-preview.gen.ts +49 -26
  86. package/src/components/table-handle/table-handle-drop-indicator.gen.ts +49 -26
  87. package/src/components/table-handle/table-handle-root.gen.ts +51 -26
  88. package/src/components/table-handle/table-handle-row-menu-root.gen.ts +62 -0
  89. package/src/components/table-handle/table-handle-row-menu-trigger.gen.ts +56 -0
  90. package/src/components/table-handle/table-handle-row-popup.gen.ts +29 -0
  91. package/src/components/table-handle/table-handle-row-positioner.gen.ts +197 -0
  92. package/src/components/tooltip/index.gen.ts +11 -3
  93. package/src/components/tooltip/index.ts +24 -0
  94. package/src/components/tooltip/tooltip-popup.gen.ts +29 -0
  95. package/src/components/tooltip/tooltip-positioner.gen.ts +174 -0
  96. package/src/components/tooltip/tooltip-root.gen.ts +81 -26
  97. package/src/components/tooltip/tooltip-trigger.gen.ts +55 -26
  98. package/src/extensions/vue-node-view.spec.ts +156 -0
  99. package/dist/create-component.js +0 -45
  100. package/dist/create-component.js.map +0 -1
  101. package/dist/create-emits.d.ts +0 -5
  102. package/dist/create-emits.d.ts.map +0 -1
  103. package/src/components/autocomplete/autocomplete-list.gen.ts +0 -33
  104. package/src/components/autocomplete/autocomplete-popover.gen.ts +0 -33
  105. package/src/components/block-handle/block-handle-popover.gen.ts +0 -33
  106. package/src/components/create-component.ts +0 -84
  107. package/src/components/create-emits.ts +0 -8
  108. package/src/components/inline-popover/inline-popover.gen.ts +0 -33
  109. package/src/components/popover/popover-content.gen.ts +0 -33
  110. package/src/components/table-handle/table-handle-column-root.gen.ts +0 -33
  111. package/src/components/table-handle/table-handle-column-trigger.gen.ts +0 -33
  112. package/src/components/table-handle/table-handle-popover-content.gen.ts +0 -33
  113. package/src/components/table-handle/table-handle-popover-item.gen.ts +0 -33
  114. package/src/components/table-handle/table-handle-row-root.gen.ts +0 -33
  115. package/src/components/table-handle/table-handle-row-trigger.gen.ts +0 -33
  116. package/src/components/tooltip/tooltip-content.gen.ts +0 -33
@@ -1,33 +1,94 @@
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'
1
+ /**
2
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
+ */
8
4
 
9
- import { createComponent } from '../create-component.ts'
10
- import type { CreateEmits } from '../create-emits.ts'
5
+ import { registerResizableRootElement, type ResizableRootEvents, type ResizableRootProps as ResizableRootElementProps } from '@prosekit/web/resizable';
6
+ import { defineComponent, h, type DefineSetupFnComponent, type HTMLAttributes, shallowRef, computed, watchEffect } from 'vue';
11
7
 
12
8
  /**
13
- * Props for the {@link ResizableRoot} component.
9
+ * Props for the {@link ResizableRoot} Vue component.
10
+ *
11
+ * @public
14
12
  */
15
- export interface ResizableRootProps extends Partial<Props> {}
13
+ export interface ResizableRootProps {
14
+ /**
15
+ * The width of the resizable element.
16
+ *
17
+ * @default null
18
+ */
19
+ width?: ResizableRootElementProps['width'];
20
+ /**
21
+ * The height of the resizable element.
22
+ *
23
+ * @default null
24
+ */
25
+ height?: ResizableRootElementProps['height'];
26
+ /**
27
+ * The aspect ratio of the resizable element.
28
+ *
29
+ * @default null
30
+ */
31
+ aspectRatio?: ResizableRootElementProps['aspectRatio'];
32
+ /** Emitted when a resize operation starts. */
33
+ onResizeStart?: (event: ResizableRootEvents['resizeStart']) => void;
34
+ /** Emitted when a resize operation ends. */
35
+ onResizeEnd?: (event: ResizableRootEvents['resizeEnd']) => void;
36
+ }
16
37
 
17
38
  /**
18
- * Emits for the {@link ResizableRoot} component.
39
+ * A Vue component that renders an `prosekit-resizable-root` custom element.
40
+ *
41
+ * @public
19
42
  */
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
- )
43
+ export const ResizableRoot: DefineSetupFnComponent<ResizableRootProps & HTMLAttributes> = /* @__PURE__ */ defineComponent<ResizableRootProps & HTMLAttributes>(
44
+ (props, { slots }) => {
45
+ registerResizableRootElement();
46
+
47
+ const elementRef = shallowRef<HTMLElement | null>(null);
48
+
49
+ const splittedProps = computed(() => {
50
+ const { aspectRatio: p0, height: p1, width: p2, onResizeEnd: e0, onResizeStart: e1, ...restProps } = props;
51
+ return [[p0, p1, p2, e0, e1], restProps] as const;
52
+ });
53
+
54
+ const handlers: Array<((event: any) => void) | undefined> = [];
55
+
56
+ watchEffect(() => {
57
+ const element = elementRef.value;
58
+ if (!element) return;
59
+
60
+ const [p0, p1, p2, e0, e1] = splittedProps.value[0];
61
+
62
+ Object.assign(element, { aspectRatio: p0, height: p1, width: p2 });
63
+
64
+ handlers.length = 0;
65
+ handlers.push(e0);
66
+ handlers.push(e1);
67
+ });
68
+
69
+ watchEffect(() => {
70
+ const element = elementRef.value;
71
+ if (!element) return;
72
+
73
+ const ac = new AbortController();
74
+ for (const [index, eventName] of ['resizeEnd', 'resizeStart'].entries()) {
75
+ element.addEventListener(
76
+ eventName,
77
+ (event: Event) => {
78
+ handlers[index]?.(event);
79
+ },
80
+ { signal: ac.signal },
81
+ );
82
+ }
83
+ return () => ac.abort();
84
+ });
85
+
86
+ return () => {
87
+ const restProps = splittedProps.value[1];
88
+ return h('prosekit-resizable-root', { ...restProps, ref: elementRef }, slots.default?.());
89
+ };
90
+ },
91
+ { props: ['aspectRatio', 'height', 'width', 'onResizeEnd', 'onResizeStart'] },
92
+ );
93
+
94
+ export type { ResizableRootEvents };
@@ -1,17 +1,25 @@
1
- export { TableHandleColumnRoot, type TableHandleColumnRootProps, type TableHandleColumnRootEmits } from './table-handle-column-root.gen.ts'
1
+ /**
2
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
+ */
2
4
 
3
- export { TableHandleColumnTrigger, type TableHandleColumnTriggerProps, type TableHandleColumnTriggerEmits } from './table-handle-column-trigger.gen.ts'
5
+ export { TableHandleColumnPopup, type TableHandleColumnPopupProps } from './table-handle-column-popup.gen.ts';
4
6
 
5
- export { TableHandleDragPreview, type TableHandleDragPreviewProps, type TableHandleDragPreviewEmits } from './table-handle-drag-preview.gen.ts'
7
+ export { TableHandleColumnPositioner, type TableHandleColumnPositionerProps } from './table-handle-column-positioner.gen.ts';
6
8
 
7
- export { TableHandleDropIndicator, type TableHandleDropIndicatorProps, type TableHandleDropIndicatorEmits } from './table-handle-drop-indicator.gen.ts'
9
+ export { TableHandleColumnMenuRoot, type TableHandleColumnMenuRootProps } from './table-handle-column-menu-root.gen.ts';
8
10
 
9
- export { TableHandlePopoverContent, type TableHandlePopoverContentProps, type TableHandlePopoverContentEmits } from './table-handle-popover-content.gen.ts'
11
+ export { TableHandleColumnMenuTrigger, type TableHandleColumnMenuTriggerProps } from './table-handle-column-menu-trigger.gen.ts';
10
12
 
11
- export { TableHandlePopoverItem, type TableHandlePopoverItemProps, type TableHandlePopoverItemEmits } from './table-handle-popover-item.gen.ts'
13
+ export { TableHandleDragPreview, type TableHandleDragPreviewProps } from './table-handle-drag-preview.gen.ts';
12
14
 
13
- export { TableHandleRoot, type TableHandleRootProps, type TableHandleRootEmits } from './table-handle-root.gen.ts'
15
+ export { TableHandleDropIndicator, type TableHandleDropIndicatorProps } from './table-handle-drop-indicator.gen.ts';
14
16
 
15
- export { TableHandleRowRoot, type TableHandleRowRootProps, type TableHandleRowRootEmits } from './table-handle-row-root.gen.ts'
17
+ export { TableHandleRoot, type TableHandleRootProps } from './table-handle-root.gen.ts';
16
18
 
17
- export { TableHandleRowTrigger, type TableHandleRowTriggerProps, type TableHandleRowTriggerEmits } from './table-handle-row-trigger.gen.ts'
19
+ export { TableHandleRowPopup, type TableHandleRowPopupProps } from './table-handle-row-popup.gen.ts';
20
+
21
+ export { TableHandleRowPositioner, type TableHandleRowPositionerProps } from './table-handle-row-positioner.gen.ts';
22
+
23
+ export { TableHandleRowMenuRoot, type TableHandleRowMenuRootProps } from './table-handle-row-menu-root.gen.ts';
24
+
25
+ export { TableHandleRowMenuTrigger, type TableHandleRowMenuTriggerProps } from './table-handle-row-menu-trigger.gen.ts';
@@ -0,0 +1,58 @@
1
+ /**
2
+
3
+ @module
4
+
5
+ ## Anatomy
6
+
7
+ ```jsx
8
+ import {
9
+ TableHandleColumnMenuRoot,
10
+ TableHandleColumnMenuTrigger,
11
+ TableHandleColumnPopup,
12
+ TableHandleColumnPositioner,
13
+ TableHandleDragPreview,
14
+ TableHandleDropIndicator,
15
+ TableHandleRoot,
16
+ TableHandleRowMenuRoot,
17
+ TableHandleRowMenuTrigger,
18
+ TableHandleRowPopup,
19
+ TableHandleRowPositioner,
20
+ } from 'prosekit/vue/table-handle'
21
+ import {
22
+ MenuItem,
23
+ MenuPopup,
24
+ MenuPositioner,
25
+ } from 'prosekit/vue/menu'
26
+
27
+ <TableHandleRoot>
28
+ <TableHandleDragPreview />
29
+ <TableHandleDropIndicator />
30
+ <TableHandleColumnPositioner>
31
+ <TableHandleColumnPopup>
32
+ <TableHandleColumnMenuRoot>
33
+ <TableHandleColumnMenuTrigger>...</TableHandleColumnMenuTrigger>
34
+ <MenuPositioner>
35
+ <MenuPopup>
36
+ <MenuItem>...</MenuItem>
37
+ </MenuPopup>
38
+ </MenuPositioner>
39
+ </TableHandleColumnMenuRoot>
40
+ </TableHandleColumnPopup>
41
+ </TableHandleColumnPositioner>
42
+ <TableHandleRowPositioner>
43
+ <TableHandleRowPopup>
44
+ <TableHandleRowMenuRoot>
45
+ <TableHandleRowMenuTrigger>...</TableHandleRowMenuTrigger>
46
+ <MenuPositioner>
47
+ <MenuPopup>
48
+ <MenuItem>...</MenuItem>
49
+ </MenuPopup>
50
+ </MenuPositioner>
51
+ </TableHandleRowMenuRoot>
52
+ </TableHandleRowPopup>
53
+ </TableHandleRowPositioner>
54
+ </TableHandleRoot>
55
+ ```
56
+ */
57
+
58
+ export * from './index.gen.ts'
@@ -0,0 +1,62 @@
1
+ /**
2
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
+ */
4
+
5
+ import { registerTableHandleColumnMenuRootElement, type TableHandleColumnMenuRootProps as TableHandleColumnMenuRootElementProps } from '@prosekit/web/table-handle';
6
+ import { defineComponent, h, type DefineSetupFnComponent, type HTMLAttributes, shallowRef, computed, watchEffect } from 'vue';
7
+
8
+ /**
9
+ * Props for the {@link TableHandleColumnMenuRoot} Vue component.
10
+ *
11
+ * @public
12
+ */
13
+ export interface TableHandleColumnMenuRootProps {
14
+ /**
15
+ * Whether the overlay is initially open.
16
+ * @default false
17
+ */
18
+ defaultOpen?: TableHandleColumnMenuRootElementProps['defaultOpen'];
19
+ /**
20
+ * Whether the overlay is currently open.
21
+ * @default null
22
+ */
23
+ open?: TableHandleColumnMenuRootElementProps['open'];
24
+ /**
25
+ * Whether the component should ignore user interaction.
26
+ * @default false
27
+ */
28
+ disabled?: TableHandleColumnMenuRootElementProps['disabled'];
29
+ }
30
+
31
+ /**
32
+ * A Vue component that renders an `prosekit-table-handle-column-menu-root` custom element.
33
+ *
34
+ * @public
35
+ */
36
+ export const TableHandleColumnMenuRoot: DefineSetupFnComponent<TableHandleColumnMenuRootProps & HTMLAttributes> = /* @__PURE__ */ defineComponent<TableHandleColumnMenuRootProps & HTMLAttributes>(
37
+ (props, { slots }) => {
38
+ registerTableHandleColumnMenuRootElement();
39
+
40
+ const elementRef = shallowRef<HTMLElement | null>(null);
41
+
42
+ const splittedProps = computed(() => {
43
+ const { defaultOpen: p0, disabled: p1, open: p2, ...restProps } = props;
44
+ return [[p0, p1, p2], restProps] as const;
45
+ });
46
+
47
+ watchEffect(() => {
48
+ const element = elementRef.value;
49
+ if (!element) return;
50
+
51
+ const [p0, p1, p2] = splittedProps.value[0];
52
+
53
+ Object.assign(element, { defaultOpen: p0, disabled: p1, open: p2 });
54
+ });
55
+
56
+ return () => {
57
+ const restProps = splittedProps.value[1];
58
+ return h('prosekit-table-handle-column-menu-root', { ...restProps, ref: elementRef }, slots.default?.());
59
+ };
60
+ },
61
+ { props: ['defaultOpen', 'disabled', 'open'] },
62
+ );
@@ -0,0 +1,56 @@
1
+ /**
2
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
+ */
4
+
5
+ import { registerTableHandleColumnMenuTriggerElement, type TableHandleColumnMenuTriggerProps as TableHandleColumnMenuTriggerElementProps } from '@prosekit/web/table-handle';
6
+ import { defineComponent, h, type DefineSetupFnComponent, type HTMLAttributes, shallowRef, computed, watchEffect } from 'vue';
7
+
8
+ import { useEditorContext } from '../../injection/editor-context.ts';
9
+
10
+ /**
11
+ * Props for the {@link TableHandleColumnMenuTrigger} Vue component.
12
+ *
13
+ * @public
14
+ */
15
+ export interface TableHandleColumnMenuTriggerProps {
16
+ /**
17
+ * @default null
18
+ * @hidden
19
+ */
20
+ editor?: TableHandleColumnMenuTriggerElementProps['editor'];
21
+ }
22
+
23
+ /**
24
+ * A Vue component that renders an `prosekit-table-handle-column-menu-trigger` custom element.
25
+ *
26
+ * @public
27
+ */
28
+ export const TableHandleColumnMenuTrigger: DefineSetupFnComponent<TableHandleColumnMenuTriggerProps & HTMLAttributes> = /* @__PURE__ */ defineComponent<TableHandleColumnMenuTriggerProps & HTMLAttributes>(
29
+ (props, { slots }) => {
30
+ registerTableHandleColumnMenuTriggerElement();
31
+
32
+ const elementRef = shallowRef<HTMLElement | null>(null);
33
+
34
+ const p0Fallback = useEditorContext();
35
+
36
+ const splittedProps = computed(() => {
37
+ const { editor: p0, ...restProps } = props;
38
+ return [[p0], restProps] as const;
39
+ });
40
+
41
+ watchEffect(() => {
42
+ const element = elementRef.value;
43
+ if (!element) return;
44
+
45
+ const [p0] = splittedProps.value[0];
46
+
47
+ Object.assign(element, { editor: p0 ?? p0Fallback });
48
+ });
49
+
50
+ return () => {
51
+ const restProps = splittedProps.value[1];
52
+ return h('prosekit-table-handle-column-menu-trigger', { ...restProps, ref: elementRef }, slots.default?.());
53
+ };
54
+ },
55
+ { props: ['editor'] },
56
+ );
@@ -0,0 +1,29 @@
1
+ /**
2
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
+ */
4
+
5
+ import { registerTableHandleColumnPopupElement } from '@prosekit/web/table-handle';
6
+ import { defineComponent, h, type DefineSetupFnComponent, type HTMLAttributes } from 'vue';
7
+
8
+ /**
9
+ * Props for the {@link TableHandleColumnPopup} Vue component.
10
+ *
11
+ * @public
12
+ */
13
+ export interface TableHandleColumnPopupProps {}
14
+
15
+ /**
16
+ * A Vue component that renders an `prosekit-table-handle-column-popup` custom element.
17
+ *
18
+ * @public
19
+ */
20
+ export const TableHandleColumnPopup: DefineSetupFnComponent<TableHandleColumnPopupProps & HTMLAttributes> = /* @__PURE__ */ defineComponent<TableHandleColumnPopupProps & HTMLAttributes>(
21
+ (props, { slots }) => {
22
+ registerTableHandleColumnPopupElement();
23
+
24
+ return () => {
25
+ return h('prosekit-table-handle-column-popup', props, slots.default?.());
26
+ };
27
+ },
28
+ { props: [] },
29
+ );
@@ -0,0 +1,197 @@
1
+ /**
2
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
+ */
4
+
5
+ import { registerTableHandleColumnPositionerElement, type TableHandleColumnPositionerProps as TableHandleColumnPositionerElementProps } from '@prosekit/web/table-handle';
6
+ import { defineComponent, h, type DefineSetupFnComponent, type HTMLAttributes, shallowRef, computed, watchEffect } from 'vue';
7
+
8
+ import { useEditorContext } from '../../injection/editor-context.ts';
9
+
10
+ /**
11
+ * Props for the {@link TableHandleColumnPositioner} Vue component.
12
+ *
13
+ * @public
14
+ */
15
+ export interface TableHandleColumnPositionerProps {
16
+ /**
17
+ * The placement of the popover, relative to the hovered table cell.
18
+ *
19
+ * @default "top"
20
+ */
21
+ placement?: TableHandleColumnPositionerElementProps['placement'];
22
+ /**
23
+ * The strategy to use for positioning
24
+ *
25
+ * @default "absolute"
26
+ */
27
+ strategy?: TableHandleColumnPositionerElementProps['strategy'];
28
+ /**
29
+ * Options to activate auto-update listeners
30
+ *
31
+ * @see https://floating-ui.com/docs/autoUpdate
32
+ *
33
+ * @default true
34
+ */
35
+ autoUpdate?: TableHandleColumnPositionerElementProps['autoUpdate'];
36
+ /**
37
+ * Whether to use the browser [Popover API](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API)
38
+ * to place the floating element on top of other page content.
39
+ *
40
+ * @default false
41
+ */
42
+ hoist?: TableHandleColumnPositionerElementProps['hoist'];
43
+ /**
44
+ * @default 0
45
+ * @hidden
46
+ */
47
+ offset?: TableHandleColumnPositionerElementProps['offset'];
48
+ /**
49
+ * @default false
50
+ * @hidden
51
+ */
52
+ flip?: TableHandleColumnPositionerElementProps['flip'];
53
+ /**
54
+ * @default false
55
+ * @hidden
56
+ */
57
+ shift?: TableHandleColumnPositionerElementProps['shift'];
58
+ /**
59
+ * Whether the floating element can overlap the reference element to keep it
60
+ * in view.
61
+ *
62
+ * @default false
63
+ */
64
+ overlap?: TableHandleColumnPositionerElementProps['overlap'];
65
+ /**
66
+ * Whether to constrain the floating element's width and height to not exceed
67
+ * the viewport.
68
+ *
69
+ * @default false
70
+ */
71
+ fitViewport?: TableHandleColumnPositionerElementProps['fitViewport'];
72
+ /**
73
+ * Whether to constrain the floating element's width so that it matches the
74
+ * reference element.
75
+ *
76
+ * @default false
77
+ */
78
+ sameWidth?: TableHandleColumnPositionerElementProps['sameWidth'];
79
+ /**
80
+ * Whether to constrain the floating element's height so that it matches the
81
+ * reference element.
82
+ *
83
+ * @default false
84
+ */
85
+ sameHeight?: TableHandleColumnPositionerElementProps['sameHeight'];
86
+ /**
87
+ * Whether to improve positioning for inline reference elements that span over
88
+ * multiple lines.
89
+ *
90
+ * @default false
91
+ */
92
+ inline?: TableHandleColumnPositionerElementProps['inline'];
93
+ /**
94
+ * @default true
95
+ * @hidden
96
+ */
97
+ hide?: TableHandleColumnPositionerElementProps['hide'];
98
+ /**
99
+ * Describes the clipping element(s) or area that overflow will be checked relative to.
100
+ * Please see https://floating-ui.com/docs/detectoverflow#boundary for more information.
101
+ *
102
+ * @default 'clippingAncestors'
103
+ */
104
+ boundary?: TableHandleColumnPositionerElementProps['boundary'];
105
+ /**
106
+ * Describes the root boundary that the element will be checked for overflow relative to.
107
+ * Please see https://floating-ui.com/docs/detectoverflow#rootboundary for more information.
108
+ *
109
+ * @default 'viewport'
110
+ */
111
+ rootBoundary?: TableHandleColumnPositionerElementProps['rootBoundary'];
112
+ /**
113
+ * Describes the virtual padding around the boundary to check for overflow.
114
+ * Please see https://floating-ui.com/docs/detectoverflow#padding for more information.
115
+ *
116
+ * @default 4
117
+ */
118
+ overflowPadding?: TableHandleColumnPositionerElementProps['overflowPadding'];
119
+ /**
120
+ * The element that will be used to check for overflow. Please see
121
+ * https://floating-ui.com/docs/detectoverflow#elementcontext for more
122
+ * information.
123
+ *
124
+ * @default 'floating'
125
+ */
126
+ elementContext?: TableHandleColumnPositionerElementProps['elementContext'];
127
+ /**
128
+ * Whether to check the alternate elementContext's boundary. Please see
129
+ * https://floating-ui.com/docs/detectoverflow#altboundary for more
130
+ * information.
131
+ *
132
+ * @default false
133
+ */
134
+ altBoundary?: TableHandleColumnPositionerElementProps['altBoundary'];
135
+ /**
136
+ * The ProseKit editor instance.
137
+ *
138
+ * @default null
139
+ * @hidden
140
+ */
141
+ editor?: TableHandleColumnPositionerElementProps['editor'];
142
+ }
143
+
144
+ /**
145
+ * A Vue component that renders an `prosekit-table-handle-column-positioner` custom element.
146
+ *
147
+ * @public
148
+ */
149
+ export const TableHandleColumnPositioner: DefineSetupFnComponent<TableHandleColumnPositionerProps & HTMLAttributes> = /* @__PURE__ */ defineComponent<TableHandleColumnPositionerProps & HTMLAttributes>(
150
+ (props, { slots }) => {
151
+ registerTableHandleColumnPositionerElement();
152
+
153
+ const elementRef = shallowRef<HTMLElement | null>(null);
154
+
155
+ const p3Fallback = useEditorContext();
156
+
157
+ const splittedProps = computed(() => {
158
+ const { altBoundary: p0, autoUpdate: p1, boundary: p2, editor: p3, elementContext: p4, fitViewport: p5, flip: p6, hide: p7, hoist: p8, inline: p9, offset: p10, overflowPadding: p11, overlap: p12, placement: p13, rootBoundary: p14, sameHeight: p15, sameWidth: p16, shift: p17, strategy: p18, ...restProps } = props;
159
+ return [[p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18], restProps] as const;
160
+ });
161
+
162
+ watchEffect(() => {
163
+ const element = elementRef.value;
164
+ if (!element) return;
165
+
166
+ const [p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18] = splittedProps.value[0];
167
+
168
+ Object.assign(element, {
169
+ altBoundary: p0,
170
+ autoUpdate: p1,
171
+ boundary: p2,
172
+ editor: p3 ?? p3Fallback,
173
+ elementContext: p4,
174
+ fitViewport: p5,
175
+ flip: p6,
176
+ hide: p7,
177
+ hoist: p8,
178
+ inline: p9,
179
+ offset: p10,
180
+ overflowPadding: p11,
181
+ overlap: p12,
182
+ placement: p13,
183
+ rootBoundary: p14,
184
+ sameHeight: p15,
185
+ sameWidth: p16,
186
+ shift: p17,
187
+ strategy: p18,
188
+ });
189
+ });
190
+
191
+ return () => {
192
+ const restProps = splittedProps.value[1];
193
+ return h('prosekit-table-handle-column-positioner', { ...restProps, ref: elementRef }, slots.default?.());
194
+ };
195
+ },
196
+ { props: ['altBoundary', 'autoUpdate', 'boundary', 'editor', 'elementContext', 'fitViewport', 'flip', 'hide', 'hoist', 'inline', 'offset', 'overflowPadding', 'overlap', 'placement', 'rootBoundary', 'sameHeight', 'sameWidth', 'shift', 'strategy'] },
197
+ );
@@ -1,33 +1,56 @@
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'
1
+ /**
2
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
+ */
4
+
5
+ import { registerTableHandleDragPreviewElement, type TableHandleDragPreviewProps as TableHandleDragPreviewElementProps } from '@prosekit/web/table-handle';
6
+ import { defineComponent, h, type DefineSetupFnComponent, type HTMLAttributes, shallowRef, computed, watchEffect } from 'vue';
8
7
 
9
- import { createComponent } from '../create-component.ts'
10
- import type { CreateEmits } from '../create-emits.ts'
8
+ import { useEditorContext } from '../../injection/editor-context.ts';
11
9
 
12
10
  /**
13
- * Props for the {@link TableHandleDragPreview} component.
11
+ * Props for the {@link TableHandleDragPreview} Vue component.
12
+ *
13
+ * @public
14
14
  */
15
- export interface TableHandleDragPreviewProps extends Partial<Props> {}
15
+ export interface TableHandleDragPreviewProps {
16
+ /**
17
+ * @default null
18
+ * @hidden
19
+ */
20
+ editor?: TableHandleDragPreviewElementProps['editor'];
21
+ }
16
22
 
17
23
  /**
18
- * Emits for the {@link TableHandleDragPreview} component.
24
+ * A Vue component that renders an `prosekit-table-handle-drag-preview` custom element.
25
+ *
26
+ * @public
19
27
  */
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
- )
28
+ export const TableHandleDragPreview: DefineSetupFnComponent<TableHandleDragPreviewProps & HTMLAttributes> = /* @__PURE__ */ defineComponent<TableHandleDragPreviewProps & HTMLAttributes>(
29
+ (props, { slots }) => {
30
+ registerTableHandleDragPreviewElement();
31
+
32
+ const elementRef = shallowRef<HTMLElement | null>(null);
33
+
34
+ const p0Fallback = useEditorContext();
35
+
36
+ const splittedProps = computed(() => {
37
+ const { editor: p0, ...restProps } = props;
38
+ return [[p0], restProps] as const;
39
+ });
40
+
41
+ watchEffect(() => {
42
+ const element = elementRef.value;
43
+ if (!element) return;
44
+
45
+ const [p0] = splittedProps.value[0];
46
+
47
+ Object.assign(element, { editor: p0 ?? p0Fallback });
48
+ });
49
+
50
+ return () => {
51
+ const restProps = splittedProps.value[1];
52
+ return h('prosekit-table-handle-drag-preview', { ...restProps, ref: elementRef }, slots.default?.());
53
+ };
54
+ },
55
+ { props: ['editor'] },
56
+ );