@prosekit/preact 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 (117) hide show
  1. package/dist/prosekit-preact-autocomplete.d.ts +226 -18
  2. package/dist/prosekit-preact-autocomplete.d.ts.map +1 -1
  3. package/dist/prosekit-preact-autocomplete.js +218 -9
  4. package/dist/prosekit-preact-autocomplete.js.map +1 -1
  5. package/dist/prosekit-preact-block-handle.d.ts +210 -14
  6. package/dist/prosekit-preact-block-handle.d.ts.map +1 -1
  7. package/dist/prosekit-preact-block-handle.js +184 -7
  8. package/dist/prosekit-preact-block-handle.js.map +1 -1
  9. package/dist/prosekit-preact-drop-indicator.d.ts +27 -6
  10. package/dist/prosekit-preact-drop-indicator.d.ts.map +1 -1
  11. package/dist/prosekit-preact-drop-indicator.js +38 -3
  12. package/dist/prosekit-preact-drop-indicator.js.map +1 -1
  13. package/dist/prosekit-preact-inline-popover.d.ts +204 -8
  14. package/dist/prosekit-preact-inline-popover.d.ts.map +1 -1
  15. package/dist/prosekit-preact-inline-popover.js +130 -5
  16. package/dist/prosekit-preact-inline-popover.js.map +1 -1
  17. package/dist/prosekit-preact-menu.d.ts +288 -0
  18. package/dist/prosekit-preact-menu.d.ts.map +1 -0
  19. package/dist/prosekit-preact-menu.js +274 -0
  20. package/dist/prosekit-preact-menu.js.map +1 -0
  21. package/dist/prosekit-preact-popover.d.ts +227 -14
  22. package/dist/prosekit-preact-popover.d.ts.map +1 -1
  23. package/dist/prosekit-preact-popover.js +170 -7
  24. package/dist/prosekit-preact-popover.js.map +1 -1
  25. package/dist/prosekit-preact-resizable.d.ts +56 -12
  26. package/dist/prosekit-preact-resizable.d.ts.map +1 -1
  27. package/dist/prosekit-preact-resizable.js +80 -7
  28. package/dist/prosekit-preact-resizable.js.map +1 -1
  29. package/dist/prosekit-preact-table-handle.d.ts +447 -38
  30. package/dist/prosekit-preact-table-handle.d.ts.map +1 -1
  31. package/dist/prosekit-preact-table-handle.js +381 -19
  32. package/dist/prosekit-preact-table-handle.js.map +1 -1
  33. package/dist/prosekit-preact-tooltip.d.ts +211 -14
  34. package/dist/prosekit-preact-tooltip.d.ts.map +1 -1
  35. package/dist/prosekit-preact-tooltip.js +157 -7
  36. package/dist/prosekit-preact-tooltip.js.map +1 -1
  37. package/package.json +27 -16
  38. package/src/components/autocomplete/autocomplete-empty.gen.ts +41 -31
  39. package/src/components/autocomplete/autocomplete-item.gen.ts +84 -31
  40. package/src/components/autocomplete/autocomplete-popup.gen.ts +80 -0
  41. package/src/components/autocomplete/autocomplete-positioner.gen.ts +153 -0
  42. package/src/components/autocomplete/autocomplete-root.gen.ts +109 -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 +59 -31
  46. package/src/components/block-handle/block-handle-draggable.gen.ts +59 -31
  47. package/src/components/block-handle/block-handle-popup.gen.ts +44 -0
  48. package/src/components/block-handle/block-handle-positioner.gen.ts +171 -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 +65 -31
  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 +44 -0
  58. package/src/components/inline-popover/inline-popover-positioner.gen.ts +177 -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 +58 -0
  64. package/src/components/menu/menu-positioner.gen.ts +178 -0
  65. package/src/components/menu/menu-root.gen.ts +88 -0
  66. package/src/components/menu/menu-submenu-root.gen.ts +44 -0
  67. package/src/components/menu/menu-submenu-trigger.gen.ts +44 -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 +44 -0
  72. package/src/components/popover/popover-positioner.gen.ts +178 -0
  73. package/src/components/popover/popover-root.gen.ts +92 -31
  74. package/src/components/popover/popover-trigger.gen.ts +92 -31
  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 +54 -31
  78. package/src/components/resizable/resizable-root.gen.ts +90 -31
  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 +66 -0
  82. package/src/components/table-handle/table-handle-column-menu-trigger.gen.ts +60 -0
  83. package/src/components/table-handle/table-handle-column-popup.gen.ts +44 -0
  84. package/src/components/table-handle/table-handle-column-positioner.gen.ts +201 -0
  85. package/src/components/table-handle/table-handle-drag-preview.gen.ts +57 -31
  86. package/src/components/table-handle/table-handle-drop-indicator.gen.ts +57 -31
  87. package/src/components/table-handle/table-handle-root.gen.ts +59 -31
  88. package/src/components/table-handle/table-handle-row-menu-root.gen.ts +66 -0
  89. package/src/components/table-handle/table-handle-row-menu-trigger.gen.ts +60 -0
  90. package/src/components/table-handle/table-handle-row-popup.gen.ts +44 -0
  91. package/src/components/table-handle/table-handle-row-positioner.gen.ts +201 -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 +44 -0
  95. package/src/components/tooltip/tooltip-positioner.gen.ts +178 -0
  96. package/src/components/tooltip/tooltip-root.gen.ts +85 -31
  97. package/src/components/tooltip/tooltip-trigger.gen.ts +63 -31
  98. package/src/extensions/preact-node-view.spec.ts +151 -0
  99. package/dist/create-component.js +0 -95
  100. package/dist/create-component.js.map +0 -1
  101. package/dist/create-props.d.ts +0 -6
  102. package/dist/create-props.d.ts.map +0 -1
  103. package/src/components/autocomplete/autocomplete-list.gen.ts +0 -34
  104. package/src/components/autocomplete/autocomplete-popover.gen.ts +0 -34
  105. package/src/components/block-handle/block-handle-popover.gen.ts +0 -34
  106. package/src/components/create-component.ts +0 -123
  107. package/src/components/create-props.ts +0 -13
  108. package/src/components/inline-popover/inline-popover.gen.ts +0 -34
  109. package/src/components/merge-refs.ts +0 -35
  110. package/src/components/popover/popover-content.gen.ts +0 -34
  111. package/src/components/table-handle/table-handle-column-root.gen.ts +0 -34
  112. package/src/components/table-handle/table-handle-column-trigger.gen.ts +0 -34
  113. package/src/components/table-handle/table-handle-popover-content.gen.ts +0 -34
  114. package/src/components/table-handle/table-handle-popover-item.gen.ts +0 -34
  115. package/src/components/table-handle/table-handle-row-root.gen.ts +0 -34
  116. package/src/components/table-handle/table-handle-row-trigger.gen.ts +0 -34
  117. package/src/components/tooltip/tooltip-content.gen.ts +0 -34
@@ -1,34 +1,95 @@
1
- import {
2
- type PopoverTriggerElement,
3
- type PopoverTriggerProps as Props,
4
- type PopoverTriggerEvents as Events,
5
- popoverTriggerProps,
6
- popoverTriggerEvents,
7
- } from '@prosekit/web/popover'
8
- import type {
9
- ForwardRefExoticComponent,
10
- HTMLAttributes,
11
- RefAttributes,
12
- } from 'preact/compat'
13
-
14
- import { createComponent } from '../create-component.ts'
15
- import type { CreateProps } from '../create-props.ts'
1
+ /**
2
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
+ */
4
+
5
+ import { registerPopoverTriggerElement, type PopoverTriggerElement, type PopoverTriggerProps as PopoverTriggerElementProps, type PopoverTriggerEvents } from '@prosekit/web/popover';
6
+ import { createElement, type HTMLAttributes, type Ref } from 'preact';
7
+ import { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';
8
+ import { useCallback, useRef, useLayoutEffect } from 'preact/hooks';
9
+
10
+ /**
11
+ * Props for the {@link PopoverTrigger} Preact component.
12
+ *
13
+ * @public
14
+ */
15
+ export interface PopoverTriggerProps extends HTMLAttributes<PopoverTriggerElement> {
16
+ /**
17
+ * Whether the component should ignore user interaction.
18
+ * @default false
19
+ */
20
+ disabled?: PopoverTriggerElementProps['disabled'];
21
+ /**
22
+ * Whether the popover should also open when the trigger is hovered.
23
+ * @default false
24
+ */
25
+ openOnHover?: PopoverTriggerElementProps['openOnHover'];
26
+ /**
27
+ * The delay in milliseconds before opening the popover when hovering.
28
+ * Only applies when `openOnHover` is true.
29
+ * @default 300
30
+ */
31
+ delay?: PopoverTriggerElementProps['delay'];
32
+ /**
33
+ * The delay in milliseconds before closing the popover when hover ends.
34
+ * Only applies when `openOnHover` is true.
35
+ * @default 0
36
+ */
37
+ closeDelay?: PopoverTriggerElementProps['closeDelay'];
38
+ /** Emitted when the popover is opened or closed. */
39
+ onOpenChange?: (event: PopoverTriggerEvents['openChange']) => void;
40
+ }
41
+
42
+ function PopoverTriggerComponent(props: PopoverTriggerProps, forwardedRef: Ref<PopoverTriggerElement>) {
43
+ registerPopoverTriggerElement();
44
+
45
+ const elementRef = useRef<PopoverTriggerElement>(null);
46
+ const handlersRef = useRef<Array<((event: Event) => void) | undefined>>([]);
47
+
48
+ const { closeDelay: p0, delay: p1, disabled: p2, openOnHover: p3, onOpenChange: e0, ...restProps } = props;
49
+
50
+ useLayoutEffect(() => {
51
+ const element = elementRef.current as Record<string, unknown> | null;
52
+ if (!element) return;
53
+ Object.assign(element, { closeDelay: p0, delay: p1, disabled: p2, openOnHover: p3 });
54
+ handlersRef.current = [e0] as Array<((event: Event) => void) | undefined>;
55
+ });
56
+
57
+ useLayoutEffect(() => {
58
+ const element = elementRef.current;
59
+ if (!element) return;
60
+ const ac = new AbortController();
61
+ for (const [index, eventName] of ['openChange'].entries()) {
62
+ element.addEventListener(
63
+ eventName,
64
+ (event: Event) => {
65
+ handlersRef.current[index]?.(event);
66
+ },
67
+ { signal: ac.signal },
68
+ );
69
+ }
70
+ return () => ac.abort();
71
+ }, []);
72
+
73
+ const mergedRef = useCallback(
74
+ (element: PopoverTriggerElement | null) => {
75
+ elementRef.current = element;
76
+ if (typeof forwardedRef === 'function') {
77
+ forwardedRef(element);
78
+ } else if (forwardedRef) {
79
+ forwardedRef.current = element;
80
+ }
81
+ },
82
+ [forwardedRef],
83
+ );
84
+
85
+ return createElement('prosekit-popover-trigger', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });
86
+ }
16
87
 
17
88
  /**
18
- * Props for the {@link PopoverTrigger} component.
89
+ * A Preact component that renders an `prosekit-popover-trigger` custom element.
90
+ *
91
+ * @public
19
92
  */
20
- export interface PopoverTriggerProps extends Partial<CreateProps<Props, Events>> {}
21
-
22
- export const PopoverTrigger: ForwardRefExoticComponent<
23
- Partial<PopoverTriggerProps> &
24
- RefAttributes<PopoverTriggerElement> &
25
- HTMLAttributes<PopoverTriggerElement>
26
- > = createComponent<
27
- PopoverTriggerProps,
28
- PopoverTriggerElement
29
- >(
30
- 'prosekit-popover-trigger',
31
- 'PopoverTrigger',
32
- Object.keys(popoverTriggerProps),
33
- Object.keys(popoverTriggerEvents),
34
- )
93
+ export const PopoverTrigger: ForwardRefExoticComponent<PopoverTriggerProps & RefAttributes<PopoverTriggerElement>> = /* @__PURE__ */ forwardRef(PopoverTriggerComponent);
94
+
95
+ export type { PopoverTriggerEvents };
@@ -1,3 +1,9 @@
1
- export { ResizableHandle, type ResizableHandleProps } from './resizable-handle.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 { ResizableRoot, type ResizableRootProps } from './resizable-root.gen.ts'
5
+ export { ResizableRoot, type ResizableRootProps, type ResizableRootEvents } from './resizable-root.gen.ts';
6
+
7
+ export { ResizableHandle, type ResizableHandleProps } from './resizable-handle.gen.ts';
8
+
9
+ export { ResizeEndEvent, ResizeStartEvent } from '@prosekit/web/resizable';
@@ -0,0 +1,20 @@
1
+ /**
2
+
3
+ @module
4
+
5
+ ## Anatomy
6
+
7
+ ```jsx
8
+ import {
9
+ ResizableHandle,
10
+ ResizableRoot,
11
+ } from 'prosekit/preact/resizable'
12
+
13
+ <ResizableRoot>
14
+ <img src="..." />
15
+ <ResizableHandle>...</ResizableHandle>
16
+ </ResizableRoot>
17
+ ```
18
+ */
19
+
20
+ export * from './index.gen.ts'
@@ -1,34 +1,57 @@
1
- import {
2
- type ResizableHandleElement,
3
- type ResizableHandleProps as Props,
4
- type ResizableHandleEvents as Events,
5
- resizableHandleProps,
6
- resizableHandleEvents,
7
- } from '@prosekit/web/resizable'
8
- import type {
9
- ForwardRefExoticComponent,
10
- HTMLAttributes,
11
- RefAttributes,
12
- } from 'preact/compat'
13
-
14
- import { createComponent } from '../create-component.ts'
15
- import type { CreateProps } from '../create-props.ts'
1
+ /**
2
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
+ */
4
+
5
+ import { registerResizableHandleElement, type ResizableHandleElement, type ResizableHandleProps as ResizableHandleElementProps } from '@prosekit/web/resizable';
6
+ import { createElement, type HTMLAttributes, type Ref } from 'preact';
7
+ import { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';
8
+ import { useCallback, useRef, useLayoutEffect } from 'preact/hooks';
9
+
10
+ /**
11
+ * Props for the {@link ResizableHandle} Preact component.
12
+ *
13
+ * @public
14
+ */
15
+ export interface ResizableHandleProps extends HTMLAttributes<ResizableHandleElement> {
16
+ /**
17
+ * The position of the handle.
18
+ *
19
+ * @default "bottom-right"
20
+ */
21
+ position?: ResizableHandleElementProps['position'];
22
+ }
23
+
24
+ function ResizableHandleComponent(props: ResizableHandleProps, forwardedRef: Ref<ResizableHandleElement>) {
25
+ registerResizableHandleElement();
26
+
27
+ const elementRef = useRef<ResizableHandleElement>(null);
28
+
29
+ const { position: p0, ...restProps } = props;
30
+
31
+ useLayoutEffect(() => {
32
+ const element = elementRef.current as Record<string, unknown> | null;
33
+ if (!element) return;
34
+ Object.assign(element, { position: p0 });
35
+ });
36
+
37
+ const mergedRef = useCallback(
38
+ (element: ResizableHandleElement | null) => {
39
+ elementRef.current = element;
40
+ if (typeof forwardedRef === 'function') {
41
+ forwardedRef(element);
42
+ } else if (forwardedRef) {
43
+ forwardedRef.current = element;
44
+ }
45
+ },
46
+ [forwardedRef],
47
+ );
48
+
49
+ return createElement('prosekit-resizable-handle', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });
50
+ }
16
51
 
17
52
  /**
18
- * Props for the {@link ResizableHandle} component.
53
+ * A Preact component that renders an `prosekit-resizable-handle` custom element.
54
+ *
55
+ * @public
19
56
  */
20
- export interface ResizableHandleProps extends Partial<CreateProps<Props, Events>> {}
21
-
22
- export const ResizableHandle: ForwardRefExoticComponent<
23
- Partial<ResizableHandleProps> &
24
- RefAttributes<ResizableHandleElement> &
25
- HTMLAttributes<ResizableHandleElement>
26
- > = createComponent<
27
- ResizableHandleProps,
28
- ResizableHandleElement
29
- >(
30
- 'prosekit-resizable-handle',
31
- 'ResizableHandle',
32
- Object.keys(resizableHandleProps),
33
- Object.keys(resizableHandleEvents),
34
- )
57
+ export const ResizableHandle: ForwardRefExoticComponent<ResizableHandleProps & RefAttributes<ResizableHandleElement>> = /* @__PURE__ */ forwardRef(ResizableHandleComponent);
@@ -1,34 +1,93 @@
1
- import {
2
- type ResizableRootElement,
3
- type ResizableRootProps as Props,
4
- type ResizableRootEvents as Events,
5
- resizableRootProps,
6
- resizableRootEvents,
7
- } from '@prosekit/web/resizable'
8
- import type {
9
- ForwardRefExoticComponent,
10
- HTMLAttributes,
11
- RefAttributes,
12
- } from 'preact/compat'
13
-
14
- import { createComponent } from '../create-component.ts'
15
- import type { CreateProps } from '../create-props.ts'
1
+ /**
2
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
+ */
4
+
5
+ import { registerResizableRootElement, type ResizableRootElement, type ResizableRootProps as ResizableRootElementProps, type ResizableRootEvents } from '@prosekit/web/resizable';
6
+ import { createElement, type HTMLAttributes, type Ref } from 'preact';
7
+ import { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';
8
+ import { useCallback, useRef, useLayoutEffect } from 'preact/hooks';
9
+
10
+ /**
11
+ * Props for the {@link ResizableRoot} Preact component.
12
+ *
13
+ * @public
14
+ */
15
+ export interface ResizableRootProps extends HTMLAttributes<ResizableRootElement> {
16
+ /**
17
+ * The width of the resizable element.
18
+ *
19
+ * @default null
20
+ */
21
+ width?: ResizableRootElementProps['width'];
22
+ /**
23
+ * The height of the resizable element.
24
+ *
25
+ * @default null
26
+ */
27
+ height?: ResizableRootElementProps['height'];
28
+ /**
29
+ * The aspect ratio of the resizable element.
30
+ *
31
+ * @default null
32
+ */
33
+ aspectRatio?: ResizableRootElementProps['aspectRatio'];
34
+ /** Emitted when a resize operation starts. */
35
+ onResizeStart?: (event: ResizableRootEvents['resizeStart']) => void;
36
+ /** Emitted when a resize operation ends. */
37
+ onResizeEnd?: (event: ResizableRootEvents['resizeEnd']) => void;
38
+ }
39
+
40
+ function ResizableRootComponent(props: ResizableRootProps, forwardedRef: Ref<ResizableRootElement>) {
41
+ registerResizableRootElement();
42
+
43
+ const elementRef = useRef<ResizableRootElement>(null);
44
+ const handlersRef = useRef<Array<((event: Event) => void) | undefined>>([]);
45
+
46
+ const { aspectRatio: p0, height: p1, width: p2, onResizeEnd: e0, onResizeStart: e1, ...restProps } = props;
47
+
48
+ useLayoutEffect(() => {
49
+ const element = elementRef.current as Record<string, unknown> | null;
50
+ if (!element) return;
51
+ Object.assign(element, { aspectRatio: p0, height: p1, width: p2 });
52
+ handlersRef.current = [e0, e1] as Array<((event: Event) => void) | undefined>;
53
+ });
54
+
55
+ useLayoutEffect(() => {
56
+ const element = elementRef.current;
57
+ if (!element) return;
58
+ const ac = new AbortController();
59
+ for (const [index, eventName] of ['resizeEnd', 'resizeStart'].entries()) {
60
+ element.addEventListener(
61
+ eventName,
62
+ (event: Event) => {
63
+ handlersRef.current[index]?.(event);
64
+ },
65
+ { signal: ac.signal },
66
+ );
67
+ }
68
+ return () => ac.abort();
69
+ }, []);
70
+
71
+ const mergedRef = useCallback(
72
+ (element: ResizableRootElement | null) => {
73
+ elementRef.current = element;
74
+ if (typeof forwardedRef === 'function') {
75
+ forwardedRef(element);
76
+ } else if (forwardedRef) {
77
+ forwardedRef.current = element;
78
+ }
79
+ },
80
+ [forwardedRef],
81
+ );
82
+
83
+ return createElement('prosekit-resizable-root', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });
84
+ }
16
85
 
17
86
  /**
18
- * Props for the {@link ResizableRoot} component.
87
+ * A Preact component that renders an `prosekit-resizable-root` custom element.
88
+ *
89
+ * @public
19
90
  */
20
- export interface ResizableRootProps extends Partial<CreateProps<Props, Events>> {}
21
-
22
- export const ResizableRoot: ForwardRefExoticComponent<
23
- Partial<ResizableRootProps> &
24
- RefAttributes<ResizableRootElement> &
25
- HTMLAttributes<ResizableRootElement>
26
- > = createComponent<
27
- ResizableRootProps,
28
- ResizableRootElement
29
- >(
30
- 'prosekit-resizable-root',
31
- 'ResizableRoot',
32
- Object.keys(resizableRootProps),
33
- Object.keys(resizableRootEvents),
34
- )
91
+ export const ResizableRoot: ForwardRefExoticComponent<ResizableRootProps & RefAttributes<ResizableRootElement>> = /* @__PURE__ */ forwardRef(ResizableRootComponent);
92
+
93
+ export type { ResizableRootEvents };
@@ -1,17 +1,25 @@
1
- export { TableHandleColumnRoot, type TableHandleColumnRootProps } 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 } 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 } 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 } 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 } 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 } 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 } 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 } 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 } 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/preact/table-handle'
21
+ import {
22
+ MenuItem,
23
+ MenuPopup,
24
+ MenuPositioner,
25
+ } from 'prosekit/preact/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,66 @@
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 TableHandleColumnMenuRootElement, type TableHandleColumnMenuRootProps as TableHandleColumnMenuRootElementProps } from '@prosekit/web/table-handle';
6
+ import { createElement, type HTMLAttributes, type Ref } from 'preact';
7
+ import { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';
8
+ import { useCallback, useRef, useLayoutEffect } from 'preact/hooks';
9
+
10
+ /**
11
+ * Props for the {@link TableHandleColumnMenuRoot} Preact component.
12
+ *
13
+ * @public
14
+ */
15
+ export interface TableHandleColumnMenuRootProps extends HTMLAttributes<TableHandleColumnMenuRootElement> {
16
+ /**
17
+ * Whether the overlay is initially open.
18
+ * @default false
19
+ */
20
+ defaultOpen?: TableHandleColumnMenuRootElementProps['defaultOpen'];
21
+ /**
22
+ * Whether the overlay is currently open.
23
+ * @default null
24
+ */
25
+ open?: TableHandleColumnMenuRootElementProps['open'];
26
+ /**
27
+ * Whether the component should ignore user interaction.
28
+ * @default false
29
+ */
30
+ disabled?: TableHandleColumnMenuRootElementProps['disabled'];
31
+ }
32
+
33
+ function TableHandleColumnMenuRootComponent(props: TableHandleColumnMenuRootProps, forwardedRef: Ref<TableHandleColumnMenuRootElement>) {
34
+ registerTableHandleColumnMenuRootElement();
35
+
36
+ const elementRef = useRef<TableHandleColumnMenuRootElement>(null);
37
+
38
+ const { defaultOpen: p0, disabled: p1, open: p2, ...restProps } = props;
39
+
40
+ useLayoutEffect(() => {
41
+ const element = elementRef.current as Record<string, unknown> | null;
42
+ if (!element) return;
43
+ Object.assign(element, { defaultOpen: p0, disabled: p1, open: p2 });
44
+ });
45
+
46
+ const mergedRef = useCallback(
47
+ (element: TableHandleColumnMenuRootElement | null) => {
48
+ elementRef.current = element;
49
+ if (typeof forwardedRef === 'function') {
50
+ forwardedRef(element);
51
+ } else if (forwardedRef) {
52
+ forwardedRef.current = element;
53
+ }
54
+ },
55
+ [forwardedRef],
56
+ );
57
+
58
+ return createElement('prosekit-table-handle-column-menu-root', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });
59
+ }
60
+
61
+ /**
62
+ * A Preact component that renders an `prosekit-table-handle-column-menu-root` custom element.
63
+ *
64
+ * @public
65
+ */
66
+ export const TableHandleColumnMenuRoot: ForwardRefExoticComponent<TableHandleColumnMenuRootProps & RefAttributes<TableHandleColumnMenuRootElement>> = /* @__PURE__ */ forwardRef(TableHandleColumnMenuRootComponent);
@@ -0,0 +1,60 @@
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 TableHandleColumnMenuTriggerElement, type TableHandleColumnMenuTriggerProps as TableHandleColumnMenuTriggerElementProps } from '@prosekit/web/table-handle';
6
+ import { createElement, type HTMLAttributes, type Ref } from 'preact';
7
+ import { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';
8
+ import { useCallback, useRef, useLayoutEffect } from 'preact/hooks';
9
+
10
+ import { useEditorContext } from '../../contexts/editor-context.ts';
11
+
12
+ /**
13
+ * Props for the {@link TableHandleColumnMenuTrigger} Preact component.
14
+ *
15
+ * @public
16
+ */
17
+ export interface TableHandleColumnMenuTriggerProps extends HTMLAttributes<TableHandleColumnMenuTriggerElement> {
18
+ /**
19
+ * @default null
20
+ * @hidden
21
+ */
22
+ editor?: TableHandleColumnMenuTriggerElementProps['editor'];
23
+ }
24
+
25
+ function TableHandleColumnMenuTriggerComponent(props: TableHandleColumnMenuTriggerProps, forwardedRef: Ref<TableHandleColumnMenuTriggerElement>) {
26
+ registerTableHandleColumnMenuTriggerElement();
27
+
28
+ const elementRef = useRef<TableHandleColumnMenuTriggerElement>(null);
29
+
30
+ const p0Fallback = useEditorContext();
31
+
32
+ const { editor: p0, ...restProps } = props;
33
+
34
+ useLayoutEffect(() => {
35
+ const element = elementRef.current as Record<string, unknown> | null;
36
+ if (!element) return;
37
+ Object.assign(element, { editor: p0 ?? p0Fallback });
38
+ });
39
+
40
+ const mergedRef = useCallback(
41
+ (element: TableHandleColumnMenuTriggerElement | null) => {
42
+ elementRef.current = element;
43
+ if (typeof forwardedRef === 'function') {
44
+ forwardedRef(element);
45
+ } else if (forwardedRef) {
46
+ forwardedRef.current = element;
47
+ }
48
+ },
49
+ [forwardedRef],
50
+ );
51
+
52
+ return createElement('prosekit-table-handle-column-menu-trigger', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });
53
+ }
54
+
55
+ /**
56
+ * A Preact component that renders an `prosekit-table-handle-column-menu-trigger` custom element.
57
+ *
58
+ * @public
59
+ */
60
+ export const TableHandleColumnMenuTrigger: ForwardRefExoticComponent<TableHandleColumnMenuTriggerProps & RefAttributes<TableHandleColumnMenuTriggerElement>> = /* @__PURE__ */ forwardRef(TableHandleColumnMenuTriggerComponent);
@@ -0,0 +1,44 @@
1
+ /**
2
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
+ */
4
+
5
+ import { registerTableHandleColumnPopupElement, type TableHandleColumnPopupElement } from '@prosekit/web/table-handle';
6
+ import { createElement, type HTMLAttributes, type Ref } from 'preact';
7
+ import { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';
8
+ import { useCallback, useRef } from 'preact/hooks';
9
+
10
+ /**
11
+ * Props for the {@link TableHandleColumnPopup} Preact component.
12
+ *
13
+ * @public
14
+ */
15
+ export interface TableHandleColumnPopupProps extends HTMLAttributes<TableHandleColumnPopupElement> {}
16
+
17
+ function TableHandleColumnPopupComponent(props: TableHandleColumnPopupProps, forwardedRef: Ref<TableHandleColumnPopupElement>) {
18
+ registerTableHandleColumnPopupElement();
19
+
20
+ const elementRef = useRef<TableHandleColumnPopupElement>(null);
21
+
22
+ const { ...restProps } = props;
23
+
24
+ const mergedRef = useCallback(
25
+ (element: TableHandleColumnPopupElement | null) => {
26
+ elementRef.current = element;
27
+ if (typeof forwardedRef === 'function') {
28
+ forwardedRef(element);
29
+ } else if (forwardedRef) {
30
+ forwardedRef.current = element;
31
+ }
32
+ },
33
+ [forwardedRef],
34
+ );
35
+
36
+ return createElement('prosekit-table-handle-column-popup', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });
37
+ }
38
+
39
+ /**
40
+ * A Preact component that renders an `prosekit-table-handle-column-popup` custom element.
41
+ *
42
+ * @public
43
+ */
44
+ export const TableHandleColumnPopup: ForwardRefExoticComponent<TableHandleColumnPopupProps & RefAttributes<TableHandleColumnPopupElement>> = /* @__PURE__ */ forwardRef(TableHandleColumnPopupComponent);