@prosekit/react 0.7.0-beta.0 → 0.7.0-beta.1

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-react-autocomplete.d.ts +224 -17
  2. package/dist/prosekit-react-autocomplete.d.ts.map +1 -1
  3. package/dist/prosekit-react-autocomplete.js +216 -9
  4. package/dist/prosekit-react-autocomplete.js.map +1 -1
  5. package/dist/prosekit-react-block-handle.d.ts +208 -13
  6. package/dist/prosekit-react-block-handle.d.ts.map +1 -1
  7. package/dist/prosekit-react-block-handle.js +182 -7
  8. package/dist/prosekit-react-block-handle.js.map +1 -1
  9. package/dist/prosekit-react-drop-indicator.d.ts +25 -5
  10. package/dist/prosekit-react-drop-indicator.d.ts.map +1 -1
  11. package/dist/prosekit-react-drop-indicator.js +36 -3
  12. package/dist/prosekit-react-drop-indicator.js.map +1 -1
  13. package/dist/prosekit-react-inline-popover.d.ts +202 -7
  14. package/dist/prosekit-react-inline-popover.d.ts.map +1 -1
  15. package/dist/prosekit-react-inline-popover.js +128 -5
  16. package/dist/prosekit-react-inline-popover.js.map +1 -1
  17. package/dist/prosekit-react-menu.d.ts +287 -0
  18. package/dist/prosekit-react-menu.d.ts.map +1 -0
  19. package/dist/prosekit-react-menu.js +272 -0
  20. package/dist/prosekit-react-menu.js.map +1 -0
  21. package/dist/prosekit-react-popover.d.ts +225 -13
  22. package/dist/prosekit-react-popover.d.ts.map +1 -1
  23. package/dist/prosekit-react-popover.js +168 -7
  24. package/dist/prosekit-react-popover.js.map +1 -1
  25. package/dist/prosekit-react-resizable.d.ts +54 -11
  26. package/dist/prosekit-react-resizable.d.ts.map +1 -1
  27. package/dist/prosekit-react-resizable.js +78 -7
  28. package/dist/prosekit-react-resizable.js.map +1 -1
  29. package/dist/prosekit-react-table-handle.d.ts +445 -37
  30. package/dist/prosekit-react-table-handle.d.ts.map +1 -1
  31. package/dist/prosekit-react-table-handle.js +379 -19
  32. package/dist/prosekit-react-table-handle.js.map +1 -1
  33. package/dist/prosekit-react-tooltip.d.ts +209 -13
  34. package/dist/prosekit-react-tooltip.d.ts.map +1 -1
  35. package/dist/prosekit-react-tooltip.js +155 -7
  36. package/dist/prosekit-react-tooltip.js.map +1 -1
  37. package/package.json +28 -17
  38. package/src/components/autocomplete/autocomplete-empty.gen.ts +39 -31
  39. package/src/components/autocomplete/autocomplete-item.gen.ts +82 -31
  40. package/src/components/autocomplete/autocomplete-popup.gen.ts +78 -0
  41. package/src/components/autocomplete/autocomplete-positioner.gen.ts +151 -0
  42. package/src/components/autocomplete/autocomplete-root.gen.ts +107 -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 +57 -31
  46. package/src/components/block-handle/block-handle-draggable.gen.ts +57 -31
  47. package/src/components/block-handle/block-handle-popup.gen.ts +42 -0
  48. package/src/components/block-handle/block-handle-positioner.gen.ts +169 -0
  49. package/src/components/block-handle/block-handle-root.gen.ts +82 -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 +63 -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 +42 -0
  58. package/src/components/inline-popover/inline-popover-positioner.gen.ts +175 -0
  59. package/src/components/inline-popover/inline-popover-root.gen.ts +106 -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 +89 -0
  63. package/src/components/menu/menu-popup.gen.ts +56 -0
  64. package/src/components/menu/menu-positioner.gen.ts +176 -0
  65. package/src/components/menu/menu-root.gen.ts +86 -0
  66. package/src/components/menu/menu-submenu-root.gen.ts +42 -0
  67. package/src/components/menu/menu-submenu-trigger.gen.ts +42 -0
  68. package/src/components/menu/menu-trigger.gen.ts +77 -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 +42 -0
  72. package/src/components/popover/popover-positioner.gen.ts +176 -0
  73. package/src/components/popover/popover-root.gen.ts +90 -31
  74. package/src/components/popover/popover-trigger.gen.ts +90 -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 +52 -31
  78. package/src/components/resizable/resizable-root.gen.ts +88 -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 +64 -0
  82. package/src/components/table-handle/table-handle-column-menu-trigger.gen.ts +58 -0
  83. package/src/components/table-handle/table-handle-column-popup.gen.ts +42 -0
  84. package/src/components/table-handle/table-handle-column-positioner.gen.ts +199 -0
  85. package/src/components/table-handle/table-handle-drag-preview.gen.ts +55 -31
  86. package/src/components/table-handle/table-handle-drop-indicator.gen.ts +55 -31
  87. package/src/components/table-handle/table-handle-root.gen.ts +57 -31
  88. package/src/components/table-handle/table-handle-row-menu-root.gen.ts +64 -0
  89. package/src/components/table-handle/table-handle-row-menu-trigger.gen.ts +58 -0
  90. package/src/components/table-handle/table-handle-row-popup.gen.ts +42 -0
  91. package/src/components/table-handle/table-handle-row-positioner.gen.ts +199 -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 +42 -0
  95. package/src/components/tooltip/tooltip-positioner.gen.ts +176 -0
  96. package/src/components/tooltip/tooltip-root.gen.ts +83 -31
  97. package/src/components/tooltip/tooltip-trigger.gen.ts +61 -31
  98. package/src/extensions/react-node-view.spec.ts +150 -0
  99. package/dist/create-component.js +0 -94
  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 -137
  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,60 @@
1
- import {
2
- type BlockHandleDraggableElement,
3
- type BlockHandleDraggableProps as Props,
4
- type BlockHandleDraggableEvents as Events,
5
- blockHandleDraggableProps,
6
- blockHandleDraggableEvents,
7
- } from '@prosekit/web/block-handle'
8
- import type {
9
- ForwardRefExoticComponent,
10
- HTMLAttributes,
11
- RefAttributes,
12
- } from 'react'
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 { registerBlockHandleDraggableElement, type BlockHandleDraggableElement, type BlockHandleDraggableProps as BlockHandleDraggableElementProps } from '@prosekit/web/block-handle';
6
+ import { createElement, forwardRef, useCallback, useRef, type ForwardedRef, type ForwardRefExoticComponent, type HTMLAttributes, type RefAttributes, useLayoutEffect } from 'react';
7
+
8
+ import { useEditorContext } from '../../contexts/editor-context.ts';
9
+
10
+ /**
11
+ * Props for the {@link BlockHandleDraggable} React component.
12
+ *
13
+ * @public
14
+ */
15
+ export interface BlockHandleDraggableProps extends HTMLAttributes<BlockHandleDraggableElement> {
16
+ /**
17
+ * The ProseKit editor instance.
18
+ *
19
+ * @default null
20
+ * @hidden
21
+ */
22
+ editor?: BlockHandleDraggableElementProps['editor'];
23
+ }
24
+
25
+ function BlockHandleDraggableComponent(props: BlockHandleDraggableProps, forwardedRef: ForwardedRef<BlockHandleDraggableElement>) {
26
+ registerBlockHandleDraggableElement();
27
+
28
+ const elementRef = useRef<BlockHandleDraggableElement>(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: BlockHandleDraggableElement | 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-block-handle-draggable', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });
53
+ }
16
54
 
17
55
  /**
18
- * Props for the {@link BlockHandleDraggable} component.
56
+ * A React component that renders an `prosekit-block-handle-draggable` custom element.
57
+ *
58
+ * @public
19
59
  */
20
- export interface BlockHandleDraggableProps extends Partial<CreateProps<Props, Events>> {}
21
-
22
- export const BlockHandleDraggable: ForwardRefExoticComponent<
23
- BlockHandleDraggableProps &
24
- RefAttributes<BlockHandleDraggableElement> &
25
- HTMLAttributes<BlockHandleDraggableElement>
26
- > = createComponent<
27
- BlockHandleDraggableProps,
28
- BlockHandleDraggableElement
29
- >(
30
- 'prosekit-block-handle-draggable',
31
- 'BlockHandleDraggable',
32
- Object.keys(blockHandleDraggableProps),
33
- Object.keys(blockHandleDraggableEvents),
34
- )
60
+ export const BlockHandleDraggable: ForwardRefExoticComponent<BlockHandleDraggableProps & RefAttributes<BlockHandleDraggableElement>> = /* @__PURE__ */ forwardRef(BlockHandleDraggableComponent);
@@ -0,0 +1,42 @@
1
+ /**
2
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
+ */
4
+
5
+ import { registerBlockHandlePopupElement, type BlockHandlePopupElement } from '@prosekit/web/block-handle';
6
+ import { createElement, forwardRef, useCallback, useRef, type ForwardedRef, type ForwardRefExoticComponent, type HTMLAttributes, type RefAttributes } from 'react';
7
+
8
+ /**
9
+ * Props for the {@link BlockHandlePopup} React component.
10
+ *
11
+ * @public
12
+ */
13
+ export interface BlockHandlePopupProps extends HTMLAttributes<BlockHandlePopupElement> {}
14
+
15
+ function BlockHandlePopupComponent(props: BlockHandlePopupProps, forwardedRef: ForwardedRef<BlockHandlePopupElement>) {
16
+ registerBlockHandlePopupElement();
17
+
18
+ const elementRef = useRef<BlockHandlePopupElement>(null);
19
+
20
+ const { ...restProps } = props;
21
+
22
+ const mergedRef = useCallback(
23
+ (element: BlockHandlePopupElement | null) => {
24
+ elementRef.current = element;
25
+ if (typeof forwardedRef === 'function') {
26
+ forwardedRef(element);
27
+ } else if (forwardedRef) {
28
+ forwardedRef.current = element;
29
+ }
30
+ },
31
+ [forwardedRef],
32
+ );
33
+
34
+ return createElement('prosekit-block-handle-popup', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });
35
+ }
36
+
37
+ /**
38
+ * A React component that renders an `prosekit-block-handle-popup` custom element.
39
+ *
40
+ * @public
41
+ */
42
+ export const BlockHandlePopup: ForwardRefExoticComponent<BlockHandlePopupProps & RefAttributes<BlockHandlePopupElement>> = /* @__PURE__ */ forwardRef(BlockHandlePopupComponent);
@@ -0,0 +1,169 @@
1
+ /**
2
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
+ */
4
+
5
+ import { registerBlockHandlePositionerElement, type BlockHandlePositionerElement, type BlockHandlePositionerProps as BlockHandlePositionerElementProps } from '@prosekit/web/block-handle';
6
+ import { createElement, forwardRef, useCallback, useRef, type ForwardedRef, type ForwardRefExoticComponent, type HTMLAttributes, type RefAttributes, useLayoutEffect } from 'react';
7
+
8
+ /**
9
+ * Props for the {@link BlockHandlePositioner} React component.
10
+ *
11
+ * @public
12
+ */
13
+ export interface BlockHandlePositionerProps extends HTMLAttributes<BlockHandlePositionerElement> {
14
+ /**
15
+ * The placement of the popover, relative to the hovered block.
16
+ *
17
+ * @default "left"
18
+ */
19
+ placement?: BlockHandlePositionerElementProps['placement'];
20
+ /**
21
+ * Whether to use the browser [Popover API](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API)
22
+ * to place the floating element on top of other page content.
23
+ *
24
+ * @default false
25
+ */
26
+ hoist?: BlockHandlePositionerElementProps['hoist'];
27
+ /**
28
+ * @default false
29
+ * @hidden
30
+ */
31
+ flip?: BlockHandlePositionerElementProps['flip'];
32
+ /**
33
+ * @default false
34
+ * @hidden
35
+ */
36
+ shift?: BlockHandlePositionerElementProps['shift'];
37
+ /**
38
+ * @default true
39
+ * @hidden
40
+ */
41
+ hide?: BlockHandlePositionerElementProps['hide'];
42
+ /**
43
+ * The strategy to use for positioning
44
+ *
45
+ * @default "absolute"
46
+ */
47
+ strategy?: BlockHandlePositionerElementProps['strategy'];
48
+ /**
49
+ * Options to activate auto-update listeners
50
+ *
51
+ * @see https://floating-ui.com/docs/autoUpdate
52
+ *
53
+ * @default true
54
+ */
55
+ autoUpdate?: BlockHandlePositionerElementProps['autoUpdate'];
56
+ /**
57
+ * The distance between the reference and floating element.
58
+ *
59
+ * @default 6
60
+ */
61
+ offset?: BlockHandlePositionerElementProps['offset'];
62
+ /**
63
+ * Whether the floating element can overlap the reference element to keep it
64
+ * in view.
65
+ *
66
+ * @default false
67
+ */
68
+ overlap?: BlockHandlePositionerElementProps['overlap'];
69
+ /**
70
+ * Whether to constrain the floating element's width and height to not exceed
71
+ * the viewport.
72
+ *
73
+ * @default false
74
+ */
75
+ fitViewport?: BlockHandlePositionerElementProps['fitViewport'];
76
+ /**
77
+ * Whether to constrain the floating element's width so that it matches the
78
+ * reference element.
79
+ *
80
+ * @default false
81
+ */
82
+ sameWidth?: BlockHandlePositionerElementProps['sameWidth'];
83
+ /**
84
+ * Whether to constrain the floating element's height so that it matches the
85
+ * reference element.
86
+ *
87
+ * @default false
88
+ */
89
+ sameHeight?: BlockHandlePositionerElementProps['sameHeight'];
90
+ /**
91
+ * Whether to improve positioning for inline reference elements that span over
92
+ * multiple lines.
93
+ *
94
+ * @default false
95
+ */
96
+ inline?: BlockHandlePositionerElementProps['inline'];
97
+ /**
98
+ * Describes the clipping element(s) or area that overflow will be checked relative to.
99
+ * Please see https://floating-ui.com/docs/detectoverflow#boundary for more information.
100
+ *
101
+ * @default 'clippingAncestors'
102
+ */
103
+ boundary?: BlockHandlePositionerElementProps['boundary'];
104
+ /**
105
+ * Describes the root boundary that the element will be checked for overflow relative to.
106
+ * Please see https://floating-ui.com/docs/detectoverflow#rootboundary for more information.
107
+ *
108
+ * @default 'viewport'
109
+ */
110
+ rootBoundary?: BlockHandlePositionerElementProps['rootBoundary'];
111
+ /**
112
+ * Describes the virtual padding around the boundary to check for overflow.
113
+ * Please see https://floating-ui.com/docs/detectoverflow#padding for more information.
114
+ *
115
+ * @default 4
116
+ */
117
+ overflowPadding?: BlockHandlePositionerElementProps['overflowPadding'];
118
+ /**
119
+ * The element that will be used to check for overflow. Please see
120
+ * https://floating-ui.com/docs/detectoverflow#elementcontext for more
121
+ * information.
122
+ *
123
+ * @default 'floating'
124
+ */
125
+ elementContext?: BlockHandlePositionerElementProps['elementContext'];
126
+ /**
127
+ * Whether to check the alternate elementContext's boundary. Please see
128
+ * https://floating-ui.com/docs/detectoverflow#altboundary for more
129
+ * information.
130
+ *
131
+ * @default false
132
+ */
133
+ altBoundary?: BlockHandlePositionerElementProps['altBoundary'];
134
+ }
135
+
136
+ function BlockHandlePositionerComponent(props: BlockHandlePositionerProps, forwardedRef: ForwardedRef<BlockHandlePositionerElement>) {
137
+ registerBlockHandlePositionerElement();
138
+
139
+ const elementRef = useRef<BlockHandlePositionerElement>(null);
140
+
141
+ const { altBoundary: p0, autoUpdate: p1, boundary: p2, elementContext: p3, fitViewport: p4, flip: p5, hide: p6, hoist: p7, inline: p8, offset: p9, overflowPadding: p10, overlap: p11, placement: p12, rootBoundary: p13, sameHeight: p14, sameWidth: p15, shift: p16, strategy: p17, ...restProps } = props;
142
+
143
+ useLayoutEffect(() => {
144
+ const element = elementRef.current as Record<string, unknown> | null;
145
+ if (!element) return;
146
+ Object.assign(element, { altBoundary: p0, autoUpdate: p1, boundary: p2, elementContext: p3, fitViewport: p4, flip: p5, hide: p6, hoist: p7, inline: p8, offset: p9, overflowPadding: p10, overlap: p11, placement: p12, rootBoundary: p13, sameHeight: p14, sameWidth: p15, shift: p16, strategy: p17 });
147
+ });
148
+
149
+ const mergedRef = useCallback(
150
+ (element: BlockHandlePositionerElement | null) => {
151
+ elementRef.current = element;
152
+ if (typeof forwardedRef === 'function') {
153
+ forwardedRef(element);
154
+ } else if (forwardedRef) {
155
+ forwardedRef.current = element;
156
+ }
157
+ },
158
+ [forwardedRef],
159
+ );
160
+
161
+ return createElement('prosekit-block-handle-positioner', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });
162
+ }
163
+
164
+ /**
165
+ * A React component that renders an `prosekit-block-handle-positioner` custom element.
166
+ *
167
+ * @public
168
+ */
169
+ export const BlockHandlePositioner: ForwardRefExoticComponent<BlockHandlePositionerProps & RefAttributes<BlockHandlePositionerElement>> = /* @__PURE__ */ forwardRef(BlockHandlePositionerComponent);
@@ -0,0 +1,82 @@
1
+ /**
2
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
+ */
4
+
5
+ import { registerBlockHandleRootElement, type BlockHandleRootElement, type BlockHandleRootProps as BlockHandleRootElementProps, type BlockHandleRootEvents } from '@prosekit/web/block-handle';
6
+ import { createElement, forwardRef, useCallback, useRef, type ForwardedRef, type ForwardRefExoticComponent, type HTMLAttributes, type RefAttributes, useLayoutEffect } from 'react';
7
+
8
+ import { useEditorContext } from '../../contexts/editor-context.ts';
9
+
10
+ /**
11
+ * Props for the {@link BlockHandleRoot} React component.
12
+ *
13
+ * @public
14
+ */
15
+ export interface BlockHandleRootProps extends HTMLAttributes<BlockHandleRootElement> {
16
+ /**
17
+ * The ProseKit editor instance.
18
+ *
19
+ * @default null
20
+ * @hidden
21
+ */
22
+ editor?: BlockHandleRootElementProps['editor'];
23
+ /** Fired when the hovered block changes. */
24
+ onStateChange?: (event: BlockHandleRootEvents['stateChange']) => void;
25
+ }
26
+
27
+ function BlockHandleRootComponent(props: BlockHandleRootProps, forwardedRef: ForwardedRef<BlockHandleRootElement>) {
28
+ registerBlockHandleRootElement();
29
+
30
+ const elementRef = useRef<BlockHandleRootElement>(null);
31
+ const handlersRef = useRef<Array<((event: Event) => void) | undefined>>([]);
32
+
33
+ const p0Fallback = useEditorContext();
34
+
35
+ const { editor: p0, onStateChange: e0, ...restProps } = props;
36
+
37
+ useLayoutEffect(() => {
38
+ const element = elementRef.current as Record<string, unknown> | null;
39
+ if (!element) return;
40
+ Object.assign(element, { editor: p0 ?? p0Fallback });
41
+ handlersRef.current = [e0] as Array<((event: Event) => void) | undefined>;
42
+ });
43
+
44
+ useLayoutEffect(() => {
45
+ const element = elementRef.current;
46
+ if (!element) return;
47
+ const ac = new AbortController();
48
+ for (const [index, eventName] of ['stateChange'].entries()) {
49
+ element.addEventListener(
50
+ eventName,
51
+ (event: Event) => {
52
+ handlersRef.current[index]?.(event);
53
+ },
54
+ { signal: ac.signal },
55
+ );
56
+ }
57
+ return () => ac.abort();
58
+ }, []);
59
+
60
+ const mergedRef = useCallback(
61
+ (element: BlockHandleRootElement | null) => {
62
+ elementRef.current = element;
63
+ if (typeof forwardedRef === 'function') {
64
+ forwardedRef(element);
65
+ } else if (forwardedRef) {
66
+ forwardedRef.current = element;
67
+ }
68
+ },
69
+ [forwardedRef],
70
+ );
71
+
72
+ return createElement('prosekit-block-handle-root', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });
73
+ }
74
+
75
+ /**
76
+ * A React component that renders an `prosekit-block-handle-root` custom element.
77
+ *
78
+ * @public
79
+ */
80
+ export const BlockHandleRoot: ForwardRefExoticComponent<BlockHandleRootProps & RefAttributes<BlockHandleRootElement>> = /* @__PURE__ */ forwardRef(BlockHandleRootComponent);
81
+
82
+ export type { BlockHandleRootEvents };
@@ -1,5 +1,15 @@
1
- export { BlockHandleAdd, type BlockHandleAddProps } from './block-handle-add.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 { BlockHandleDraggable, type BlockHandleDraggableProps } from './block-handle-draggable.gen.ts'
5
+ export { BlockHandleAdd, type BlockHandleAddProps } from './block-handle-add.gen.ts';
4
6
 
5
- export { BlockHandlePopover, type BlockHandlePopoverProps } from './block-handle-popover.gen.ts'
7
+ export { BlockHandleDraggable, type BlockHandleDraggableProps } from './block-handle-draggable.gen.ts';
8
+
9
+ export { BlockHandlePopup, type BlockHandlePopupProps } from './block-handle-popup.gen.ts';
10
+
11
+ export { BlockHandlePositioner, type BlockHandlePositionerProps } from './block-handle-positioner.gen.ts';
12
+
13
+ export { BlockHandleRoot, type BlockHandleRootProps, type BlockHandleRootEvents } from './block-handle-root.gen.ts';
14
+
15
+ export { BlockHandleStateChangeEvent } from '@prosekit/web/block-handle';
@@ -0,0 +1,27 @@
1
+ /**
2
+
3
+ @module
4
+
5
+ ## Anatomy
6
+
7
+ ```jsx
8
+ import {
9
+ BlockHandleAdd,
10
+ BlockHandleDraggable,
11
+ BlockHandlePopup,
12
+ BlockHandlePositioner,
13
+ BlockHandleRoot,
14
+ } from 'prosekit/react/block-handle'
15
+
16
+ <BlockHandleRoot>
17
+ <BlockHandlePositioner>
18
+ <BlockHandlePopup>
19
+ <BlockHandleAdd>...</BlockHandleAdd>
20
+ <BlockHandleDraggable>...</BlockHandleDraggable>
21
+ </BlockHandlePopup>
22
+ </BlockHandlePositioner>
23
+ </BlockHandleRoot>
24
+ ```
25
+ */
26
+
27
+ export * from './index.gen.ts'
@@ -1,34 +1,66 @@
1
- import {
2
- type DropIndicatorElement,
3
- type DropIndicatorProps as Props,
4
- type DropIndicatorEvents as Events,
5
- dropIndicatorProps,
6
- dropIndicatorEvents,
7
- } from '@prosekit/web/drop-indicator'
8
- import type {
9
- ForwardRefExoticComponent,
10
- HTMLAttributes,
11
- RefAttributes,
12
- } from 'react'
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 { registerDropIndicatorElement, type DropIndicatorElement, type DropIndicatorProps as DropIndicatorElementProps } from '@prosekit/web/drop-indicator';
6
+ import { createElement, forwardRef, useCallback, useRef, type ForwardedRef, type ForwardRefExoticComponent, type HTMLAttributes, type RefAttributes, useLayoutEffect } from 'react';
7
+
8
+ import { useEditorContext } from '../../contexts/editor-context.ts';
9
+
10
+ /**
11
+ * Props for the {@link DropIndicator} React component.
12
+ *
13
+ * @public
14
+ */
15
+ export interface DropIndicatorProps extends HTMLAttributes<DropIndicatorElement> {
16
+ /**
17
+ * The ProseKit editor instance.
18
+ *
19
+ * @default null
20
+ * @hidden
21
+ */
22
+ editor?: DropIndicatorElementProps['editor'];
23
+ /**
24
+ * The line width in pixels.
25
+ *
26
+ * @default 2
27
+ */
28
+ width?: DropIndicatorElementProps['width'];
29
+ }
30
+
31
+ function DropIndicatorComponent(props: DropIndicatorProps, forwardedRef: ForwardedRef<DropIndicatorElement>) {
32
+ registerDropIndicatorElement();
33
+
34
+ const elementRef = useRef<DropIndicatorElement>(null);
35
+
36
+ const p0Fallback = useEditorContext();
37
+
38
+ const { editor: p0, width: p1, ...restProps } = props;
39
+
40
+ useLayoutEffect(() => {
41
+ const element = elementRef.current as Record<string, unknown> | null;
42
+ if (!element) return;
43
+ Object.assign(element, { editor: p0 ?? p0Fallback, width: p1 });
44
+ });
45
+
46
+ const mergedRef = useCallback(
47
+ (element: DropIndicatorElement | 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-drop-indicator', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });
59
+ }
16
60
 
17
61
  /**
18
- * Props for the {@link DropIndicator} component.
62
+ * A React component that renders an `prosekit-drop-indicator` custom element.
63
+ *
64
+ * @public
19
65
  */
20
- export interface DropIndicatorProps extends Partial<CreateProps<Props, Events>> {}
21
-
22
- export const DropIndicator: ForwardRefExoticComponent<
23
- DropIndicatorProps &
24
- RefAttributes<DropIndicatorElement> &
25
- HTMLAttributes<DropIndicatorElement>
26
- > = createComponent<
27
- DropIndicatorProps,
28
- DropIndicatorElement
29
- >(
30
- 'prosekit-drop-indicator',
31
- 'DropIndicator',
32
- Object.keys(dropIndicatorProps),
33
- Object.keys(dropIndicatorEvents),
34
- )
66
+ export const DropIndicator: ForwardRefExoticComponent<DropIndicatorProps & RefAttributes<DropIndicatorElement>> = /* @__PURE__ */ forwardRef(DropIndicatorComponent);
@@ -1 +1,5 @@
1
- export { DropIndicator, type DropIndicatorProps } from './drop-indicator.gen.ts'
1
+ /**
2
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
+ */
4
+
5
+ export { DropIndicator, type DropIndicatorProps } from './drop-indicator.gen.ts';
@@ -0,0 +1,14 @@
1
+ /**
2
+
3
+ @module
4
+
5
+ ## Anatomy
6
+
7
+ ```jsx
8
+ import { DropIndicator } from 'prosekit/react/drop-indicator'
9
+
10
+ <DropIndicator />
11
+ ```
12
+ */
13
+
14
+ export * from './index.gen.ts'
@@ -1 +1,11 @@
1
- export { InlinePopover, type InlinePopoverProps } from './inline-popover.gen.ts'
1
+ /**
2
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
+ */
4
+
5
+ export { InlinePopoverPopup, type InlinePopoverPopupProps } from './inline-popover-popup.gen.ts';
6
+
7
+ export { InlinePopoverPositioner, type InlinePopoverPositionerProps } from './inline-popover-positioner.gen.ts';
8
+
9
+ export { InlinePopoverRoot, type InlinePopoverRootProps, type InlinePopoverRootEvents } from './inline-popover-root.gen.ts';
10
+
11
+ export { OpenChangeEvent } from '@prosekit/web/inline-popover';
@@ -0,0 +1,22 @@
1
+ /**
2
+
3
+ @module
4
+
5
+ ## Anatomy
6
+
7
+ ```jsx
8
+ import {
9
+ InlinePopoverPopup,
10
+ InlinePopoverPositioner,
11
+ InlinePopoverRoot,
12
+ } from 'prosekit/react/inline-popover'
13
+
14
+ <InlinePopoverRoot>
15
+ <InlinePopoverPositioner>
16
+ <InlinePopoverPopup>...</InlinePopoverPopup>
17
+ </InlinePopoverPositioner>
18
+ </InlinePopoverRoot>
19
+ ```
20
+ */
21
+
22
+ export * from './index.gen.ts'
@@ -0,0 +1,42 @@
1
+ /**
2
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
3
+ */
4
+
5
+ import { registerInlinePopoverPopupElement, type InlinePopoverPopupElement } from '@prosekit/web/inline-popover';
6
+ import { createElement, forwardRef, useCallback, useRef, type ForwardedRef, type ForwardRefExoticComponent, type HTMLAttributes, type RefAttributes } from 'react';
7
+
8
+ /**
9
+ * Props for the {@link InlinePopoverPopup} React component.
10
+ *
11
+ * @public
12
+ */
13
+ export interface InlinePopoverPopupProps extends HTMLAttributes<InlinePopoverPopupElement> {}
14
+
15
+ function InlinePopoverPopupComponent(props: InlinePopoverPopupProps, forwardedRef: ForwardedRef<InlinePopoverPopupElement>) {
16
+ registerInlinePopoverPopupElement();
17
+
18
+ const elementRef = useRef<InlinePopoverPopupElement>(null);
19
+
20
+ const { ...restProps } = props;
21
+
22
+ const mergedRef = useCallback(
23
+ (element: InlinePopoverPopupElement | null) => {
24
+ elementRef.current = element;
25
+ if (typeof forwardedRef === 'function') {
26
+ forwardedRef(element);
27
+ } else if (forwardedRef) {
28
+ forwardedRef.current = element;
29
+ }
30
+ },
31
+ [forwardedRef],
32
+ );
33
+
34
+ return createElement('prosekit-inline-popover-popup', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });
35
+ }
36
+
37
+ /**
38
+ * A React component that renders an `prosekit-inline-popover-popup` custom element.
39
+ *
40
+ * @public
41
+ */
42
+ export const InlinePopoverPopup: ForwardRefExoticComponent<InlinePopoverPopupProps & RefAttributes<InlinePopoverPopupElement>> = /* @__PURE__ */ forwardRef(InlinePopoverPopupComponent);