@prosekit/solid 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 (124) hide show
  1. package/dist/prosekit-solid-autocomplete.d.ts +225 -19
  2. package/dist/prosekit-solid-autocomplete.d.ts.map +1 -1
  3. package/dist/prosekit-solid-autocomplete.js +204 -9
  4. package/dist/prosekit-solid-autocomplete.js.map +1 -1
  5. package/dist/prosekit-solid-block-handle.d.ts +209 -15
  6. package/dist/prosekit-solid-block-handle.d.ts.map +1 -1
  7. package/dist/prosekit-solid-block-handle.js +160 -7
  8. package/dist/prosekit-solid-block-handle.js.map +1 -1
  9. package/dist/prosekit-solid-drop-indicator.d.ts +26 -7
  10. package/dist/prosekit-solid-drop-indicator.d.ts.map +1 -1
  11. package/dist/prosekit-solid-drop-indicator.js +29 -3
  12. package/dist/prosekit-solid-drop-indicator.js.map +1 -1
  13. package/dist/prosekit-solid-inline-popover.d.ts +203 -9
  14. package/dist/prosekit-solid-inline-popover.d.ts.map +1 -1
  15. package/dist/prosekit-solid-inline-popover.js +128 -5
  16. package/dist/prosekit-solid-inline-popover.js.map +1 -1
  17. package/dist/prosekit-solid-menu.d.ts +287 -0
  18. package/dist/prosekit-solid-menu.d.ts.map +1 -0
  19. package/dist/prosekit-solid-menu.js +241 -0
  20. package/dist/prosekit-solid-menu.js.map +1 -0
  21. package/dist/prosekit-solid-popover.d.ts +226 -15
  22. package/dist/prosekit-solid-popover.d.ts.map +1 -1
  23. package/dist/prosekit-solid-popover.js +165 -7
  24. package/dist/prosekit-solid-popover.js.map +1 -1
  25. package/dist/prosekit-solid-resizable.d.ts +55 -13
  26. package/dist/prosekit-solid-resizable.d.ts.map +1 -1
  27. package/dist/prosekit-solid-resizable.js +69 -7
  28. package/dist/prosekit-solid-resizable.js.map +1 -1
  29. package/dist/prosekit-solid-table-handle.d.ts +446 -39
  30. package/dist/prosekit-solid-table-handle.d.ts.map +1 -1
  31. package/dist/prosekit-solid-table-handle.js +334 -19
  32. package/dist/prosekit-solid-table-handle.js.map +1 -1
  33. package/dist/prosekit-solid-tooltip.d.ts +210 -15
  34. package/dist/prosekit-solid-tooltip.d.ts.map +1 -1
  35. package/dist/prosekit-solid-tooltip.js +149 -7
  36. package/dist/prosekit-solid-tooltip.js.map +1 -1
  37. package/dist/prosekit-solid.d.ts +23 -2
  38. package/dist/prosekit-solid.d.ts.map +1 -1
  39. package/dist/prosekit-solid.js +37 -6
  40. package/dist/prosekit-solid.js.map +1 -1
  41. package/package.json +28 -16
  42. package/src/components/autocomplete/autocomplete-empty.gen.ts +22 -24
  43. package/src/components/autocomplete/autocomplete-item.gen.ts +82 -26
  44. package/src/components/autocomplete/autocomplete-popup.gen.ts +78 -0
  45. package/src/components/autocomplete/autocomplete-positioner.gen.ts +167 -0
  46. package/src/components/autocomplete/autocomplete-root.gen.ts +110 -0
  47. package/src/components/autocomplete/index.gen.ts +12 -4
  48. package/src/components/autocomplete/index.ts +27 -0
  49. package/src/components/block-handle/block-handle-add.gen.ts +54 -26
  50. package/src/components/block-handle/block-handle-draggable.gen.ts +54 -26
  51. package/src/components/block-handle/block-handle-popup.gen.ts +27 -0
  52. package/src/components/block-handle/block-handle-positioner.gen.ts +185 -0
  53. package/src/components/block-handle/block-handle-root.gen.ts +82 -0
  54. package/src/components/block-handle/index.gen.ts +13 -3
  55. package/src/components/block-handle/index.ts +27 -0
  56. package/src/components/drop-indicator/drop-indicator.gen.ts +60 -26
  57. package/src/components/drop-indicator/index.gen.ts +5 -1
  58. package/src/components/drop-indicator/index.ts +14 -0
  59. package/src/components/inline-popover/index.gen.ts +11 -1
  60. package/src/components/inline-popover/index.ts +22 -0
  61. package/src/components/inline-popover/inline-popover-popup.gen.ts +27 -0
  62. package/src/components/inline-popover/inline-popover-positioner.gen.ts +191 -0
  63. package/src/components/inline-popover/inline-popover-root.gen.ts +106 -0
  64. package/src/components/menu/index.gen.ts +19 -0
  65. package/src/components/menu/index.ts +37 -0
  66. package/src/components/menu/menu-item.gen.ts +89 -0
  67. package/src/components/menu/menu-popup.gen.ts +53 -0
  68. package/src/components/menu/menu-positioner.gen.ts +192 -0
  69. package/src/components/menu/menu-root.gen.ts +86 -0
  70. package/src/components/menu/menu-submenu-root.gen.ts +27 -0
  71. package/src/components/menu/menu-submenu-trigger.gen.ts +27 -0
  72. package/src/components/menu/menu-trigger.gen.ts +77 -0
  73. package/src/components/popover/index.gen.ts +11 -3
  74. package/src/components/popover/index.ts +24 -0
  75. package/src/components/popover/popover-popup.gen.ts +27 -0
  76. package/src/components/popover/popover-positioner.gen.ts +192 -0
  77. package/src/components/popover/popover-root.gen.ts +90 -26
  78. package/src/components/popover/popover-trigger.gen.ts +90 -26
  79. package/src/components/resizable/index.gen.ts +8 -2
  80. package/src/components/resizable/index.ts +20 -0
  81. package/src/components/resizable/resizable-handle.gen.ts +49 -26
  82. package/src/components/resizable/resizable-root.gen.ts +89 -26
  83. package/src/components/table-handle/index.gen.ts +17 -9
  84. package/src/components/table-handle/index.ts +58 -0
  85. package/src/components/table-handle/table-handle-column-menu-root.gen.ts +61 -0
  86. package/src/components/table-handle/table-handle-column-menu-trigger.gen.ts +55 -0
  87. package/src/components/table-handle/table-handle-column-popup.gen.ts +27 -0
  88. package/src/components/table-handle/table-handle-column-positioner.gen.ts +196 -0
  89. package/src/components/table-handle/table-handle-drag-preview.gen.ts +52 -26
  90. package/src/components/table-handle/table-handle-drop-indicator.gen.ts +52 -26
  91. package/src/components/table-handle/table-handle-root.gen.ts +54 -26
  92. package/src/components/table-handle/table-handle-row-menu-root.gen.ts +61 -0
  93. package/src/components/table-handle/table-handle-row-menu-trigger.gen.ts +55 -0
  94. package/src/components/table-handle/table-handle-row-popup.gen.ts +27 -0
  95. package/src/components/table-handle/table-handle-row-positioner.gen.ts +196 -0
  96. package/src/components/tooltip/index.gen.ts +11 -3
  97. package/src/components/tooltip/index.ts +24 -0
  98. package/src/components/tooltip/tooltip-popup.gen.ts +27 -0
  99. package/src/components/tooltip/tooltip-positioner.gen.ts +192 -0
  100. package/src/components/tooltip/tooltip-root.gen.ts +83 -26
  101. package/src/components/tooltip/tooltip-trigger.gen.ts +58 -26
  102. package/src/extensions/solid-mark-view.ts +13 -5
  103. package/src/extensions/solid-node-view.spec.tsx +141 -0
  104. package/src/extensions/solid-node-view.ts +28 -5
  105. package/dist/create-component.js +0 -41
  106. package/dist/create-component.js.map +0 -1
  107. package/dist/create-props.d.ts +0 -6
  108. package/dist/create-props.d.ts.map +0 -1
  109. package/dist/types.d.ts +0 -26
  110. package/dist/types.d.ts.map +0 -1
  111. package/src/components/autocomplete/autocomplete-list.gen.ts +0 -29
  112. package/src/components/autocomplete/autocomplete-popover.gen.ts +0 -29
  113. package/src/components/block-handle/block-handle-popover.gen.ts +0 -29
  114. package/src/components/create-component.ts +0 -60
  115. package/src/components/create-props.ts +0 -13
  116. package/src/components/inline-popover/inline-popover.gen.ts +0 -29
  117. package/src/components/popover/popover-content.gen.ts +0 -29
  118. package/src/components/table-handle/table-handle-column-root.gen.ts +0 -29
  119. package/src/components/table-handle/table-handle-column-trigger.gen.ts +0 -29
  120. package/src/components/table-handle/table-handle-popover-content.gen.ts +0 -29
  121. package/src/components/table-handle/table-handle-popover-item.gen.ts +0 -29
  122. package/src/components/table-handle/table-handle-row-root.gen.ts +0 -29
  123. package/src/components/table-handle/table-handle-row-trigger.gen.ts +0 -29
  124. package/src/components/tooltip/tooltip-content.gen.ts +0 -29
@@ -1,29 +1,93 @@
1
- import {
2
- type PopoverRootElement,
3
- type PopoverRootProps as Props,
4
- type PopoverRootEvents as Events,
5
- popoverRootProps,
6
- popoverRootEvents,
7
- } from '@prosekit/web/popover'
8
- import type { Component } from 'solid-js'
9
-
10
- import type { PropsWithElement } from '../../types.ts'
11
- import { createComponent } from '../create-component.ts'
12
- 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 { registerPopoverRootElement, type PopoverRootElement, type PopoverRootEvents, type PopoverRootProps as PopoverRootElementProps } from '@prosekit/web/popover';
6
+ import { createEffect, createSignal, mergeProps, splitProps } from 'solid-js';
7
+ import type { Component, JSX } from 'solid-js';
8
+ import h from 'solid-js/h';
9
+
10
+ /**
11
+ * Props for the {@link PopoverRoot} Solid component.
12
+ *
13
+ * @public
14
+ */
15
+ export interface PopoverRootProps extends JSX.HTMLAttributes<PopoverRootElement> {
16
+ /**
17
+ * Whether the popover should be modal.
18
+ * When true, the popover will trap focus and prevent interaction with the rest of the page.
19
+ *
20
+ * @default false
21
+ */
22
+ modal?: PopoverRootElementProps['modal'];
23
+ /**
24
+ * Whether the overlay is initially open.
25
+ * @default false
26
+ */
27
+ defaultOpen?: PopoverRootElementProps['defaultOpen'];
28
+ /**
29
+ * Whether the overlay is currently open.
30
+ * @default null
31
+ */
32
+ open?: PopoverRootElementProps['open'];
33
+ /**
34
+ * Whether the component should ignore user interaction.
35
+ * @default false
36
+ */
37
+ disabled?: PopoverRootElementProps['disabled'];
38
+ /** Emitted when the popover is opened or closed. */
39
+ onOpenChange?: (event: PopoverRootEvents['openChange']) => void;
40
+ }
13
41
 
14
42
  /**
15
- * Props for the {@link PopoverRoot} component.
43
+ * A Solid component that renders an `prosekit-popover-root` custom element.
44
+ *
45
+ * @public
16
46
  */
17
- export interface PopoverRootProps extends Partial<CreateProps<Props, Events>> {}
18
-
19
- export const PopoverRoot: Component<PropsWithElement<
20
- PopoverRootProps,
21
- PopoverRootElement
22
- >> = createComponent<
23
- PopoverRootProps,
24
- PopoverRootElement
25
- >(
26
- 'prosekit-popover-root',
27
- Object.keys(popoverRootProps),
28
- Object.keys(popoverRootEvents),
29
- )
47
+ export const PopoverRoot: Component<PopoverRootProps> = (props): any => {
48
+ registerPopoverRootElement();
49
+
50
+ const [getElement, setElement] = createSignal<PopoverRootElement | null>(null);
51
+ const handlers: Array<((event: any) => void) | undefined> = [];
52
+
53
+ const [elementProps, eventHandlers, restProps] = splitProps(props, ['defaultOpen', 'disabled', 'modal', 'open'], ['onOpenChange']);
54
+
55
+ createEffect(() => {
56
+ const element = getElement();
57
+ if (!element) return;
58
+
59
+ Object.assign(element, { defaultOpen: elementProps.defaultOpen, disabled: elementProps.disabled, modal: elementProps.modal, open: elementProps.open });
60
+
61
+ handlers.length = 0;
62
+ handlers.push(eventHandlers.onOpenChange);
63
+ });
64
+
65
+ createEffect(() => {
66
+ const element = getElement();
67
+ if (!element) return;
68
+
69
+ const ac = new AbortController();
70
+ for (const [index, eventName] of ['openChange'].entries()) {
71
+ element.addEventListener(
72
+ eventName,
73
+ (event) => {
74
+ handlers[index]?.(event);
75
+ },
76
+ { signal: ac.signal },
77
+ );
78
+ }
79
+ return () => ac.abort();
80
+ });
81
+
82
+ return () =>
83
+ h(
84
+ 'prosekit-popover-root',
85
+ mergeProps(restProps, {
86
+ ref: (el: PopoverRootElement | null) => {
87
+ setElement(el);
88
+ },
89
+ }),
90
+ );
91
+ };
92
+
93
+ export type { PopoverRootEvents };
@@ -1,29 +1,93 @@
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 { Component } from 'solid-js'
9
-
10
- import type { PropsWithElement } from '../../types.ts'
11
- import { createComponent } from '../create-component.ts'
12
- 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 PopoverTriggerEvents, type PopoverTriggerProps as PopoverTriggerElementProps } from '@prosekit/web/popover';
6
+ import { createEffect, createSignal, mergeProps, splitProps } from 'solid-js';
7
+ import type { Component, JSX } from 'solid-js';
8
+ import h from 'solid-js/h';
9
+
10
+ /**
11
+ * Props for the {@link PopoverTrigger} Solid component.
12
+ *
13
+ * @public
14
+ */
15
+ export interface PopoverTriggerProps extends JSX.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
+ }
13
41
 
14
42
  /**
15
- * Props for the {@link PopoverTrigger} component.
43
+ * A Solid component that renders an `prosekit-popover-trigger` custom element.
44
+ *
45
+ * @public
16
46
  */
17
- export interface PopoverTriggerProps extends Partial<CreateProps<Props, Events>> {}
18
-
19
- export const PopoverTrigger: Component<PropsWithElement<
20
- PopoverTriggerProps,
21
- PopoverTriggerElement
22
- >> = createComponent<
23
- PopoverTriggerProps,
24
- PopoverTriggerElement
25
- >(
26
- 'prosekit-popover-trigger',
27
- Object.keys(popoverTriggerProps),
28
- Object.keys(popoverTriggerEvents),
29
- )
47
+ export const PopoverTrigger: Component<PopoverTriggerProps> = (props): any => {
48
+ registerPopoverTriggerElement();
49
+
50
+ const [getElement, setElement] = createSignal<PopoverTriggerElement | null>(null);
51
+ const handlers: Array<((event: any) => void) | undefined> = [];
52
+
53
+ const [elementProps, eventHandlers, restProps] = splitProps(props, ['closeDelay', 'delay', 'disabled', 'openOnHover'], ['onOpenChange']);
54
+
55
+ createEffect(() => {
56
+ const element = getElement();
57
+ if (!element) return;
58
+
59
+ Object.assign(element, { closeDelay: elementProps.closeDelay, delay: elementProps.delay, disabled: elementProps.disabled, openOnHover: elementProps.openOnHover });
60
+
61
+ handlers.length = 0;
62
+ handlers.push(eventHandlers.onOpenChange);
63
+ });
64
+
65
+ createEffect(() => {
66
+ const element = getElement();
67
+ if (!element) return;
68
+
69
+ const ac = new AbortController();
70
+ for (const [index, eventName] of ['openChange'].entries()) {
71
+ element.addEventListener(
72
+ eventName,
73
+ (event) => {
74
+ handlers[index]?.(event);
75
+ },
76
+ { signal: ac.signal },
77
+ );
78
+ }
79
+ return () => ac.abort();
80
+ });
81
+
82
+ return () =>
83
+ h(
84
+ 'prosekit-popover-trigger',
85
+ mergeProps(restProps, {
86
+ ref: (el: PopoverTriggerElement | null) => {
87
+ setElement(el);
88
+ },
89
+ }),
90
+ );
91
+ };
92
+
93
+ 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/solid/resizable'
12
+
13
+ <ResizableRoot>
14
+ <img src="..." />
15
+ <ResizableHandle>...</ResizableHandle>
16
+ </ResizableRoot>
17
+ ```
18
+ */
19
+
20
+ export * from './index.gen.ts'
@@ -1,29 +1,52 @@
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 { Component } from 'solid-js'
9
-
10
- import type { PropsWithElement } from '../../types.ts'
11
- import { createComponent } from '../create-component.ts'
12
- 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 { createEffect, createSignal, mergeProps, splitProps } from 'solid-js';
7
+ import type { Component, JSX } from 'solid-js';
8
+ import h from 'solid-js/h';
9
+
10
+ /**
11
+ * Props for the {@link ResizableHandle} Solid component.
12
+ *
13
+ * @public
14
+ */
15
+ export interface ResizableHandleProps extends JSX.HTMLAttributes<ResizableHandleElement> {
16
+ /**
17
+ * The position of the handle.
18
+ *
19
+ * @default "bottom-right"
20
+ */
21
+ position?: ResizableHandleElementProps['position'];
22
+ }
13
23
 
14
24
  /**
15
- * Props for the {@link ResizableHandle} component.
25
+ * A Solid component that renders an `prosekit-resizable-handle` custom element.
26
+ *
27
+ * @public
16
28
  */
17
- export interface ResizableHandleProps extends Partial<CreateProps<Props, Events>> {}
18
-
19
- export const ResizableHandle: Component<PropsWithElement<
20
- ResizableHandleProps,
21
- ResizableHandleElement
22
- >> = createComponent<
23
- ResizableHandleProps,
24
- ResizableHandleElement
25
- >(
26
- 'prosekit-resizable-handle',
27
- Object.keys(resizableHandleProps),
28
- Object.keys(resizableHandleEvents),
29
- )
29
+ export const ResizableHandle: Component<ResizableHandleProps> = (props): any => {
30
+ registerResizableHandleElement();
31
+
32
+ const [getElement, setElement] = createSignal<ResizableHandleElement | null>(null);
33
+
34
+ const [elementProps, restProps] = splitProps(props, ['position']);
35
+
36
+ createEffect(() => {
37
+ const element = getElement();
38
+ if (!element) return;
39
+
40
+ Object.assign(element, { position: elementProps.position });
41
+ });
42
+
43
+ return () =>
44
+ h(
45
+ 'prosekit-resizable-handle',
46
+ mergeProps(restProps, {
47
+ ref: (el: ResizableHandleElement | null) => {
48
+ setElement(el);
49
+ },
50
+ }),
51
+ );
52
+ };
@@ -1,29 +1,92 @@
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 { Component } from 'solid-js'
9
-
10
- import type { PropsWithElement } from '../../types.ts'
11
- import { createComponent } from '../create-component.ts'
12
- 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 ResizableRootEvents, type ResizableRootProps as ResizableRootElementProps } from '@prosekit/web/resizable';
6
+ import { createEffect, createSignal, mergeProps, splitProps } from 'solid-js';
7
+ import type { Component, JSX } from 'solid-js';
8
+ import h from 'solid-js/h';
9
+
10
+ /**
11
+ * Props for the {@link ResizableRoot} Solid component.
12
+ *
13
+ * @public
14
+ */
15
+ export interface ResizableRootProps extends JSX.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
+ }
13
39
 
14
40
  /**
15
- * Props for the {@link ResizableRoot} component.
41
+ * A Solid component that renders an `prosekit-resizable-root` custom element.
42
+ *
43
+ * @public
16
44
  */
17
- export interface ResizableRootProps extends Partial<CreateProps<Props, Events>> {}
18
-
19
- export const ResizableRoot: Component<PropsWithElement<
20
- ResizableRootProps,
21
- ResizableRootElement
22
- >> = createComponent<
23
- ResizableRootProps,
24
- ResizableRootElement
25
- >(
26
- 'prosekit-resizable-root',
27
- Object.keys(resizableRootProps),
28
- Object.keys(resizableRootEvents),
29
- )
45
+ export const ResizableRoot: Component<ResizableRootProps> = (props): any => {
46
+ registerResizableRootElement();
47
+
48
+ const [getElement, setElement] = createSignal<ResizableRootElement | null>(null);
49
+ const handlers: Array<((event: any) => void) | undefined> = [];
50
+
51
+ const [elementProps, eventHandlers, restProps] = splitProps(props, ['aspectRatio', 'height', 'width'], ['onResizeEnd', 'onResizeStart']);
52
+
53
+ createEffect(() => {
54
+ const element = getElement();
55
+ if (!element) return;
56
+
57
+ Object.assign(element, { aspectRatio: elementProps.aspectRatio, height: elementProps.height, width: elementProps.width });
58
+
59
+ handlers.length = 0;
60
+ handlers.push(eventHandlers.onResizeEnd);
61
+ handlers.push(eventHandlers.onResizeStart);
62
+ });
63
+
64
+ createEffect(() => {
65
+ const element = getElement();
66
+ if (!element) return;
67
+
68
+ const ac = new AbortController();
69
+ for (const [index, eventName] of ['resizeEnd', 'resizeStart'].entries()) {
70
+ element.addEventListener(
71
+ eventName,
72
+ (event) => {
73
+ handlers[index]?.(event);
74
+ },
75
+ { signal: ac.signal },
76
+ );
77
+ }
78
+ return () => ac.abort();
79
+ });
80
+
81
+ return () =>
82
+ h(
83
+ 'prosekit-resizable-root',
84
+ mergeProps(restProps, {
85
+ ref: (el: ResizableRootElement | null) => {
86
+ setElement(el);
87
+ },
88
+ }),
89
+ );
90
+ };
91
+
92
+ 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/solid/table-handle'
21
+ import {
22
+ MenuItem,
23
+ MenuPopup,
24
+ MenuPositioner,
25
+ } from 'prosekit/solid/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,61 @@
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 { createEffect, createSignal, mergeProps, splitProps } from 'solid-js';
7
+ import type { Component, JSX } from 'solid-js';
8
+ import h from 'solid-js/h';
9
+
10
+ /**
11
+ * Props for the {@link TableHandleColumnMenuRoot} Solid component.
12
+ *
13
+ * @public
14
+ */
15
+ export interface TableHandleColumnMenuRootProps extends JSX.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
+ /**
34
+ * A Solid component that renders an `prosekit-table-handle-column-menu-root` custom element.
35
+ *
36
+ * @public
37
+ */
38
+ export const TableHandleColumnMenuRoot: Component<TableHandleColumnMenuRootProps> = (props): any => {
39
+ registerTableHandleColumnMenuRootElement();
40
+
41
+ const [getElement, setElement] = createSignal<TableHandleColumnMenuRootElement | null>(null);
42
+
43
+ const [elementProps, restProps] = splitProps(props, ['defaultOpen', 'disabled', 'open']);
44
+
45
+ createEffect(() => {
46
+ const element = getElement();
47
+ if (!element) return;
48
+
49
+ Object.assign(element, { defaultOpen: elementProps.defaultOpen, disabled: elementProps.disabled, open: elementProps.open });
50
+ });
51
+
52
+ return () =>
53
+ h(
54
+ 'prosekit-table-handle-column-menu-root',
55
+ mergeProps(restProps, {
56
+ ref: (el: TableHandleColumnMenuRootElement | null) => {
57
+ setElement(el);
58
+ },
59
+ }),
60
+ );
61
+ };