@prosekit/web 0.8.0-beta.0 → 0.8.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.
- package/dist/prosekit-web-autocomplete.d.ts +112 -90
- package/dist/prosekit-web-autocomplete.d.ts.map +1 -1
- package/dist/prosekit-web-autocomplete.js +292 -217
- package/dist/prosekit-web-autocomplete.js.map +1 -1
- package/dist/prosekit-web-block-handle.d.ts +95 -62
- package/dist/prosekit-web-block-handle.d.ts.map +1 -1
- package/dist/prosekit-web-block-handle.js +219 -114
- package/dist/prosekit-web-block-handle.js.map +1 -1
- package/dist/prosekit-web-drop-indicator.d.ts +13 -15
- package/dist/prosekit-web-drop-indicator.d.ts.map +1 -1
- package/dist/prosekit-web-drop-indicator.js +34 -30
- package/dist/prosekit-web-drop-indicator.js.map +1 -1
- package/dist/prosekit-web-inline-popover.d.ts +94 -53
- package/dist/prosekit-web-inline-popover.d.ts.map +1 -1
- package/dist/prosekit-web-inline-popover.js +134 -79
- package/dist/prosekit-web-inline-popover.js.map +1 -1
- package/dist/prosekit-web-menu.d.ts +13 -0
- package/dist/prosekit-web-menu.d.ts.map +1 -0
- package/dist/prosekit-web-menu.js +53 -0
- package/dist/prosekit-web-menu.js.map +1 -0
- package/dist/prosekit-web-popover.d.ts +7 -26
- package/dist/prosekit-web-popover.d.ts.map +1 -1
- package/dist/prosekit-web-popover.js +31 -29
- package/dist/prosekit-web-popover.js.map +1 -1
- package/dist/prosekit-web-resizable.d.ts +92 -51
- package/dist/prosekit-web-resizable.d.ts.map +1 -1
- package/dist/prosekit-web-resizable.js +139 -131
- package/dist/prosekit-web-resizable.js.map +1 -1
- package/dist/prosekit-web-table-handle.d.ts +166 -199
- package/dist/prosekit-web-table-handle.d.ts.map +1 -1
- package/dist/prosekit-web-table-handle.js +495 -496
- package/dist/prosekit-web-table-handle.js.map +1 -1
- package/dist/prosekit-web-tooltip.d.ts +7 -26
- package/dist/prosekit-web-tooltip.d.ts.map +1 -1
- package/dist/prosekit-web-tooltip.js +31 -29
- package/dist/prosekit-web-tooltip.js.map +1 -1
- package/dist/use-editor-extension.js +2 -2
- package/dist/use-editor-extension.js.map +1 -1
- package/dist/use-scrolling.js +17 -8
- package/dist/use-scrolling.js.map +1 -1
- package/package.json +26 -21
- package/src/components/autocomplete/autocomplete-empty.ts +45 -0
- package/src/components/autocomplete/autocomplete-item.ts +65 -0
- package/src/components/autocomplete/autocomplete-popup.ts +95 -0
- package/src/components/autocomplete/autocomplete-positioner.ts +98 -0
- package/src/components/autocomplete/autocomplete-root.ts +280 -0
- package/src/components/autocomplete/context.ts +16 -14
- package/src/components/autocomplete/index.ts +65 -0
- package/src/components/block-handle/block-handle-add.ts +71 -0
- package/src/components/block-handle/block-handle-draggable.ts +158 -0
- package/src/components/block-handle/block-handle-popup.ts +43 -0
- package/src/components/block-handle/block-handle-positioner.ts +89 -0
- package/src/components/block-handle/block-handle-root.ts +116 -0
- package/src/components/block-handle/context.ts +9 -18
- package/src/components/block-handle/hover-state.ts +16 -0
- package/src/components/block-handle/index.ts +59 -0
- package/src/components/block-handle/{block-handle-popover/pointer-move.ts → pointer-move.ts} +8 -7
- package/src/components/block-handle/{block-handle-draggable/set-drag-preview.ts → set-drag-preview.ts} +4 -4
- package/src/components/block-handle/use-hover-extension.ts +65 -0
- package/src/components/drop-indicator/drop-indicator.ts +128 -0
- package/src/components/drop-indicator/index.ts +18 -0
- package/src/components/inline-popover/index.ts +41 -0
- package/src/components/inline-popover/inline-popover-popup.ts +52 -0
- package/src/components/inline-popover/inline-popover-positioner.ts +118 -0
- package/src/components/inline-popover/inline-popover-root.ts +122 -0
- package/src/components/inline-popover/store.ts +6 -0
- package/src/components/menu/index.ts +92 -0
- package/src/components/popover/index.ts +53 -0
- package/src/components/resizable/{resizable-handle/calc-resize.ts → calc-resize.ts} +1 -1
- package/src/components/resizable/context.ts +3 -6
- package/src/components/resizable/index.ts +32 -0
- package/src/components/resizable/resizable-handle.ts +134 -0
- package/src/components/resizable/resizable-root.ts +184 -0
- package/src/components/table-handle/dnd.ts +16 -27
- package/src/components/table-handle/index.ts +125 -0
- package/src/components/table-handle/{table-handle-drag-preview/render-preview.ts → render-preview.ts} +5 -5
- package/src/components/table-handle/shared.ts +61 -0
- package/src/components/table-handle/store.ts +117 -0
- package/src/components/table-handle/table-handle-column-menu-root.ts +51 -0
- package/src/components/table-handle/table-handle-column-menu-trigger.ts +107 -0
- package/src/components/table-handle/table-handle-column-popup.ts +44 -0
- package/src/components/table-handle/table-handle-column-positioner.ts +67 -0
- package/src/components/table-handle/table-handle-drag-preview.ts +169 -0
- package/src/components/table-handle/table-handle-drop-indicator.ts +166 -0
- package/src/components/table-handle/table-handle-root.ts +103 -0
- package/src/components/table-handle/table-handle-row-menu-root.ts +51 -0
- package/src/components/table-handle/table-handle-row-menu-trigger.ts +107 -0
- package/src/components/table-handle/table-handle-row-popup.ts +42 -0
- package/src/components/table-handle/table-handle-row-positioner.ts +67 -0
- package/src/components/table-handle/use-drop.ts +74 -0
- package/src/components/table-handle/{hooks/use-empty-image.ts → use-empty-image.ts} +2 -3
- package/src/components/table-handle/utils.ts +0 -11
- package/src/components/tooltip/index.ts +52 -0
- package/src/hooks/use-editor-extension.ts +4 -4
- package/src/hooks/use-editor-focus-event.ts +4 -4
- package/src/hooks/use-editor-typing.ts +12 -16
- package/src/hooks/use-editor-update-event.ts +4 -4
- package/src/hooks/use-keymap.ts +4 -4
- package/src/hooks/use-scrolling.ts +11 -10
- package/src/hooks/use-selecting.ts +8 -15
- package/src/utils/event.ts +28 -0
- package/src/utils/lazy-signal.spec.ts +68 -0
- package/src/utils/lazy-signal.ts +17 -0
- package/src/utils/prefers-reduced-motion.ts +6 -0
- package/src/utils/prevent-default.ts +3 -0
- package/src/utils/use-html-element-at.ts +17 -0
- package/src/utils/use-no-focus.ts +7 -0
- package/dist/get-default-state.js +0 -11
- package/dist/get-default-state.js.map +0 -1
- package/src/components/autocomplete/autocomplete-empty/element.gen.ts +0 -18
- package/src/components/autocomplete/autocomplete-empty/setup.ts +0 -6
- package/src/components/autocomplete/autocomplete-empty/types.ts +0 -13
- package/src/components/autocomplete/autocomplete-item/element.gen.ts +0 -18
- package/src/components/autocomplete/autocomplete-item/setup.ts +0 -30
- package/src/components/autocomplete/autocomplete-item/types.ts +0 -25
- package/src/components/autocomplete/autocomplete-list/element.gen.ts +0 -18
- package/src/components/autocomplete/autocomplete-list/setup.ts +0 -125
- package/src/components/autocomplete/autocomplete-list/types.ts +0 -22
- package/src/components/autocomplete/autocomplete-popover/element.gen.ts +0 -18
- package/src/components/autocomplete/autocomplete-popover/setup.ts +0 -169
- package/src/components/autocomplete/autocomplete-popover/types.ts +0 -100
- package/src/components/autocomplete/index.gen.ts +0 -17
- package/src/components/block-handle/block-handle-add/element.gen.ts +0 -18
- package/src/components/block-handle/block-handle-add/setup.ts +0 -33
- package/src/components/block-handle/block-handle-add/types.ts +0 -23
- package/src/components/block-handle/block-handle-draggable/element.gen.ts +0 -18
- package/src/components/block-handle/block-handle-draggable/setup.ts +0 -113
- package/src/components/block-handle/block-handle-draggable/types.ts +0 -23
- package/src/components/block-handle/block-handle-popover/element.gen.ts +0 -18
- package/src/components/block-handle/block-handle-popover/setup.ts +0 -68
- package/src/components/block-handle/block-handle-popover/types.ts +0 -81
- package/src/components/block-handle/index.gen.ts +0 -13
- package/src/components/drop-indicator/drop-indicator/element.gen.ts +0 -18
- package/src/components/drop-indicator/drop-indicator/setup.ts +0 -75
- package/src/components/drop-indicator/drop-indicator/types.ts +0 -31
- package/src/components/drop-indicator/index.gen.ts +0 -5
- package/src/components/inline-popover/index.gen.ts +0 -5
- package/src/components/inline-popover/inline-popover/element.gen.ts +0 -18
- package/src/components/inline-popover/inline-popover/setup.ts +0 -111
- package/src/components/inline-popover/inline-popover/types.ts +0 -112
- package/src/components/popover/index.gen.ts +0 -13
- package/src/components/popover/popover-content/element.gen.ts +0 -18
- package/src/components/popover/popover-content/setup.ts +0 -1
- package/src/components/popover/popover-content/types.ts +0 -6
- package/src/components/popover/popover-root/element.gen.ts +0 -18
- package/src/components/popover/popover-root/setup.ts +0 -1
- package/src/components/popover/popover-root/types.ts +0 -6
- package/src/components/popover/popover-trigger/element.gen.ts +0 -18
- package/src/components/popover/popover-trigger/setup.ts +0 -1
- package/src/components/popover/popover-trigger/types.ts +0 -6
- package/src/components/resizable/index.gen.ts +0 -9
- package/src/components/resizable/resizable-handle/element.gen.ts +0 -18
- package/src/components/resizable/resizable-handle/setup.ts +0 -106
- package/src/components/resizable/resizable-handle/types.ts +0 -29
- package/src/components/resizable/resizable-root/element.gen.ts +0 -18
- package/src/components/resizable/resizable-root/setup.ts +0 -84
- package/src/components/resizable/resizable-root/types.ts +0 -59
- package/src/components/table-handle/context.ts +0 -43
- package/src/components/table-handle/hooks/use-drop.ts +0 -85
- package/src/components/table-handle/index.gen.ts +0 -37
- package/src/components/table-handle/table-handle-column-root/element.gen.ts +0 -18
- package/src/components/table-handle/table-handle-column-root/setup.ts +0 -60
- package/src/components/table-handle/table-handle-column-root/types.ts +0 -73
- package/src/components/table-handle/table-handle-column-trigger/element.gen.ts +0 -18
- package/src/components/table-handle/table-handle-column-trigger/setup.ts +0 -64
- package/src/components/table-handle/table-handle-column-trigger/types.ts +0 -20
- package/src/components/table-handle/table-handle-drag-preview/element.gen.ts +0 -18
- package/src/components/table-handle/table-handle-drag-preview/setup.ts +0 -57
- package/src/components/table-handle/table-handle-drag-preview/types.ts +0 -14
- package/src/components/table-handle/table-handle-drag-preview/updater.ts +0 -90
- package/src/components/table-handle/table-handle-drop-indicator/element.gen.ts +0 -18
- package/src/components/table-handle/table-handle-drop-indicator/setup.ts +0 -52
- package/src/components/table-handle/table-handle-drop-indicator/types.ts +0 -15
- package/src/components/table-handle/table-handle-drop-indicator/updater.ts +0 -96
- package/src/components/table-handle/table-handle-popover-content/element.gen.ts +0 -18
- package/src/components/table-handle/table-handle-popover-content/setup.ts +0 -83
- package/src/components/table-handle/table-handle-popover-content/types.ts +0 -32
- package/src/components/table-handle/table-handle-popover-item/element.gen.ts +0 -18
- package/src/components/table-handle/table-handle-popover-item/setup.ts +0 -17
- package/src/components/table-handle/table-handle-popover-item/types.ts +0 -16
- package/src/components/table-handle/table-handle-root/element.gen.ts +0 -18
- package/src/components/table-handle/table-handle-root/setup.ts +0 -86
- package/src/components/table-handle/table-handle-root/types.ts +0 -23
- package/src/components/table-handle/table-handle-row-root/element.gen.ts +0 -18
- package/src/components/table-handle/table-handle-row-root/setup.ts +0 -70
- package/src/components/table-handle/table-handle-row-root/types.ts +0 -68
- package/src/components/table-handle/table-handle-row-trigger/element.gen.ts +0 -18
- package/src/components/table-handle/table-handle-row-trigger/setup.ts +0 -63
- package/src/components/table-handle/table-handle-row-trigger/types.ts +0 -23
- package/src/components/tooltip/index.gen.ts +0 -13
- package/src/components/tooltip/tooltip-content/element.gen.ts +0 -18
- package/src/components/tooltip/tooltip-content/setup.ts +0 -1
- package/src/components/tooltip/tooltip-content/types.ts +0 -6
- package/src/components/tooltip/tooltip-root/element.gen.ts +0 -18
- package/src/components/tooltip/tooltip-root/setup.ts +0 -1
- package/src/components/tooltip/tooltip-root/types.ts +0 -6
- package/src/components/tooltip/tooltip-trigger/element.gen.ts +0 -18
- package/src/components/tooltip/tooltip-trigger/setup.ts +0 -1
- package/src/components/tooltip/tooltip-trigger/types.ts +0 -6
- package/src/hooks/use-first-rendering.ts +0 -15
- package/src/utils/get-default-state.spec.ts +0 -42
- package/src/utils/get-default-state.ts +0 -18
- /package/src/components/autocomplete/{autocomplete-popover/helpers.spec.ts → helpers.spec.ts} +0 -0
- /package/src/components/autocomplete/{autocomplete-popover/helpers.ts → helpers.ts} +0 -0
- /package/src/components/inline-popover/{inline-popover/virtual-selection-element.ts → virtual-selection-element.ts} +0 -0
- /package/src/components/resizable/{resizable-handle/calc-resize.spec.ts → calc-resize.spec.ts} +0 -0
- /package/src/components/table-handle/{table-handle-drop-indicator/calc-drag-over.ts → calc-drag-over.ts} +0 -0
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import type { EventDeclarations, PropDeclarations } from '@aria-ui/core'
|
|
2
|
-
import {
|
|
3
|
-
overlayPositionerEvents,
|
|
4
|
-
overlayPositionerProps,
|
|
5
|
-
type OverlayPositionerEvents,
|
|
6
|
-
type OverlayPositionerProps,
|
|
7
|
-
} from '@aria-ui/overlay'
|
|
8
|
-
import type { Editor } from '@prosekit/core'
|
|
9
|
-
|
|
10
|
-
export interface InlinePopoverProps extends
|
|
11
|
-
Omit<
|
|
12
|
-
OverlayPositionerProps,
|
|
13
|
-
'placement' | 'offset' | 'hide' | 'overlap' | 'inline' | 'overflowPadding'
|
|
14
|
-
>
|
|
15
|
-
{
|
|
16
|
-
/**
|
|
17
|
-
* The ProseKit editor instance.
|
|
18
|
-
*
|
|
19
|
-
* @default null
|
|
20
|
-
* @hidden
|
|
21
|
-
*/
|
|
22
|
-
editor: Editor | null
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Whether the popover is open by default when some inline content is
|
|
26
|
-
* selected.
|
|
27
|
-
*
|
|
28
|
-
* When `defaultOpen` is true, the popover will open or close based on the
|
|
29
|
-
* inline selection. When `defaultOpen` is false, the popover will never be
|
|
30
|
-
* opened unless the `open` prop is true.
|
|
31
|
-
*
|
|
32
|
-
* @default true
|
|
33
|
-
*/
|
|
34
|
-
defaultOpen: boolean
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Whether the popover is open.
|
|
38
|
-
*
|
|
39
|
-
* Notice that the popover will be always hidden if the inline selection is
|
|
40
|
-
* empty.
|
|
41
|
-
*
|
|
42
|
-
* @default false
|
|
43
|
-
*/
|
|
44
|
-
open: boolean
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Whether the inline popover should be dismissed when the editor receives an
|
|
48
|
-
* Escape key press.
|
|
49
|
-
*
|
|
50
|
-
* @default true
|
|
51
|
-
*/
|
|
52
|
-
dismissOnEscape: boolean
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* @default "top"
|
|
56
|
-
*/
|
|
57
|
-
placement: OverlayPositionerProps['placement']
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* @default 12
|
|
61
|
-
*/
|
|
62
|
-
offset: OverlayPositionerProps['offset']
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* @default true
|
|
66
|
-
*/
|
|
67
|
-
hide: OverlayPositionerProps['hide']
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* @default true
|
|
71
|
-
*/
|
|
72
|
-
overlap: OverlayPositionerProps['overlap']
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* @default true
|
|
76
|
-
*/
|
|
77
|
-
inline: OverlayPositionerProps['inline']
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* @default 8
|
|
81
|
-
*/
|
|
82
|
-
overflowPadding: OverlayPositionerProps['overflowPadding']
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/** @internal */
|
|
86
|
-
export const inlinePopoverProps: PropDeclarations<InlinePopoverProps> = Object.freeze({
|
|
87
|
-
...overlayPositionerProps,
|
|
88
|
-
editor: { default: null },
|
|
89
|
-
defaultOpen: { default: true },
|
|
90
|
-
open: { default: false },
|
|
91
|
-
dismissOnEscape: { default: true },
|
|
92
|
-
|
|
93
|
-
placement: { default: 'top' },
|
|
94
|
-
offset: { default: 12 },
|
|
95
|
-
hide: { default: true },
|
|
96
|
-
overlap: { default: true },
|
|
97
|
-
inline: { default: true },
|
|
98
|
-
overflowPadding: { default: 8 },
|
|
99
|
-
})
|
|
100
|
-
|
|
101
|
-
export interface InlinePopoverEvents extends OverlayPositionerEvents {
|
|
102
|
-
/**
|
|
103
|
-
* Fired when the open state changes.
|
|
104
|
-
*/
|
|
105
|
-
openChange: CustomEvent<boolean>
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/** @internal */
|
|
109
|
-
export const inlinePopoverEvents: EventDeclarations<InlinePopoverEvents> = {
|
|
110
|
-
...overlayPositionerEvents,
|
|
111
|
-
openChange: {},
|
|
112
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// This file is generated by packages/dev/src/gen-components.ts
|
|
2
|
-
|
|
3
|
-
export { PopoverContentElement } from './popover-content/element.gen.ts'
|
|
4
|
-
export { popoverContentEvents, popoverContentProps, type PopoverContentEvents, type PopoverContentProps } from './popover-content/types.ts'
|
|
5
|
-
export { usePopoverContent } from './popover-content/setup.ts'
|
|
6
|
-
|
|
7
|
-
export { PopoverRootElement } from './popover-root/element.gen.ts'
|
|
8
|
-
export { popoverRootEvents, popoverRootProps, type PopoverRootEvents, type PopoverRootProps } from './popover-root/types.ts'
|
|
9
|
-
export { usePopoverRoot } from './popover-root/setup.ts'
|
|
10
|
-
|
|
11
|
-
export { PopoverTriggerElement } from './popover-trigger/element.gen.ts'
|
|
12
|
-
export { popoverTriggerEvents, popoverTriggerProps, type PopoverTriggerEvents, type PopoverTriggerProps } from './popover-trigger/types.ts'
|
|
13
|
-
export { usePopoverTrigger } from './popover-trigger/setup.ts'
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { defineCustomElement, registerCustomElement, type BaseElementConstructor } from "@aria-ui/core"
|
|
2
|
-
|
|
3
|
-
import { usePopoverContent } from "./setup.ts"
|
|
4
|
-
import { popoverContentEvents, popoverContentProps, type PopoverContentEvents, type PopoverContentProps } from "./types.ts"
|
|
5
|
-
|
|
6
|
-
const PopoverContentElementBase: BaseElementConstructor<PopoverContentProps> = defineCustomElement<
|
|
7
|
-
PopoverContentProps,
|
|
8
|
-
PopoverContentEvents
|
|
9
|
-
>({
|
|
10
|
-
props: popoverContentProps,
|
|
11
|
-
events: popoverContentEvents,
|
|
12
|
-
setup: usePopoverContent,
|
|
13
|
-
})
|
|
14
|
-
class PopoverContentElement extends PopoverContentElementBase {}
|
|
15
|
-
|
|
16
|
-
registerCustomElement('prosekit-popover-content', PopoverContentElement)
|
|
17
|
-
|
|
18
|
-
export { PopoverContentElement }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { usePopoverContent } from '@aria-ui/popover/elements'
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { PopoverContentEvents as Events, PopoverContentProps as Props } from '@aria-ui/popover/elements'
|
|
2
|
-
|
|
3
|
-
export { popoverContentEvents, popoverContentProps } from '@aria-ui/popover/elements'
|
|
4
|
-
|
|
5
|
-
export interface PopoverContentProps extends Props {}
|
|
6
|
-
export interface PopoverContentEvents extends Events {}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { defineCustomElement, registerCustomElement, type BaseElementConstructor } from "@aria-ui/core"
|
|
2
|
-
|
|
3
|
-
import { usePopoverRoot } from "./setup.ts"
|
|
4
|
-
import { popoverRootEvents, popoverRootProps, type PopoverRootEvents, type PopoverRootProps } from "./types.ts"
|
|
5
|
-
|
|
6
|
-
const PopoverRootElementBase: BaseElementConstructor<PopoverRootProps> = defineCustomElement<
|
|
7
|
-
PopoverRootProps,
|
|
8
|
-
PopoverRootEvents
|
|
9
|
-
>({
|
|
10
|
-
props: popoverRootProps,
|
|
11
|
-
events: popoverRootEvents,
|
|
12
|
-
setup: usePopoverRoot,
|
|
13
|
-
})
|
|
14
|
-
class PopoverRootElement extends PopoverRootElementBase {}
|
|
15
|
-
|
|
16
|
-
registerCustomElement('prosekit-popover-root', PopoverRootElement)
|
|
17
|
-
|
|
18
|
-
export { PopoverRootElement }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { usePopoverRoot } from '@aria-ui/popover/elements'
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { PopoverRootEvents as Events, PopoverRootProps as Props } from '@aria-ui/popover/elements'
|
|
2
|
-
|
|
3
|
-
export { popoverRootEvents, popoverRootProps } from '@aria-ui/popover/elements'
|
|
4
|
-
|
|
5
|
-
export interface PopoverRootProps extends Props {}
|
|
6
|
-
export interface PopoverRootEvents extends Events {}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { defineCustomElement, registerCustomElement, type BaseElementConstructor } from "@aria-ui/core"
|
|
2
|
-
|
|
3
|
-
import { usePopoverTrigger } from "./setup.ts"
|
|
4
|
-
import { popoverTriggerEvents, popoverTriggerProps, type PopoverTriggerEvents, type PopoverTriggerProps } from "./types.ts"
|
|
5
|
-
|
|
6
|
-
const PopoverTriggerElementBase: BaseElementConstructor<PopoverTriggerProps> = defineCustomElement<
|
|
7
|
-
PopoverTriggerProps,
|
|
8
|
-
PopoverTriggerEvents
|
|
9
|
-
>({
|
|
10
|
-
props: popoverTriggerProps,
|
|
11
|
-
events: popoverTriggerEvents,
|
|
12
|
-
setup: usePopoverTrigger,
|
|
13
|
-
})
|
|
14
|
-
class PopoverTriggerElement extends PopoverTriggerElementBase {}
|
|
15
|
-
|
|
16
|
-
registerCustomElement('prosekit-popover-trigger', PopoverTriggerElement)
|
|
17
|
-
|
|
18
|
-
export { PopoverTriggerElement }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { usePopoverTrigger } from '@aria-ui/popover/elements'
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { PopoverTriggerEvents as Events, PopoverTriggerProps as Props } from '@aria-ui/popover/elements'
|
|
2
|
-
|
|
3
|
-
export { popoverTriggerEvents, popoverTriggerProps } from '@aria-ui/popover/elements'
|
|
4
|
-
|
|
5
|
-
export interface PopoverTriggerProps extends Props {}
|
|
6
|
-
export interface PopoverTriggerEvents extends Events {}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
// This file is generated by packages/dev/src/gen-components.ts
|
|
2
|
-
|
|
3
|
-
export { ResizableHandleElement } from './resizable-handle/element.gen.ts'
|
|
4
|
-
export { resizableHandleEvents, resizableHandleProps, type ResizableHandleEvents, type ResizableHandleProps } from './resizable-handle/types.ts'
|
|
5
|
-
export { useResizableHandle } from './resizable-handle/setup.ts'
|
|
6
|
-
|
|
7
|
-
export { ResizableRootElement } from './resizable-root/element.gen.ts'
|
|
8
|
-
export { resizableRootEvents, resizableRootProps, type ResizableRootEvents, type ResizableRootProps } from './resizable-root/types.ts'
|
|
9
|
-
export { useResizableRoot } from './resizable-root/setup.ts'
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { defineCustomElement, registerCustomElement, type BaseElementConstructor } from "@aria-ui/core"
|
|
2
|
-
|
|
3
|
-
import { useResizableHandle } from "./setup.ts"
|
|
4
|
-
import { resizableHandleEvents, resizableHandleProps, type ResizableHandleEvents, type ResizableHandleProps } from "./types.ts"
|
|
5
|
-
|
|
6
|
-
const ResizableHandleElementBase: BaseElementConstructor<ResizableHandleProps> = defineCustomElement<
|
|
7
|
-
ResizableHandleProps,
|
|
8
|
-
ResizableHandleEvents
|
|
9
|
-
>({
|
|
10
|
-
props: resizableHandleProps,
|
|
11
|
-
events: resizableHandleEvents,
|
|
12
|
-
setup: useResizableHandle,
|
|
13
|
-
})
|
|
14
|
-
class ResizableHandleElement extends ResizableHandleElementBase {}
|
|
15
|
-
|
|
16
|
-
registerCustomElement('prosekit-resizable-handle', ResizableHandleElement)
|
|
17
|
-
|
|
18
|
-
export { ResizableHandleElement }
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { createSignal, useEffect, type ConnectableElement, type ReadonlySignal, type SignalState } from '@aria-ui/core'
|
|
2
|
-
import { getWindow } from '@ocavue/utils'
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
onResizeContext,
|
|
6
|
-
onResizeEndContext,
|
|
7
|
-
onResizeStartContext,
|
|
8
|
-
type OnResize,
|
|
9
|
-
type OnResizeEnd,
|
|
10
|
-
type OnResizeStart,
|
|
11
|
-
} from '../context.ts'
|
|
12
|
-
|
|
13
|
-
import { calcResize } from './calc-resize.ts'
|
|
14
|
-
import type { ResizableHandleProps } from './types.ts'
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @internal
|
|
18
|
-
*/
|
|
19
|
-
export function useResizableHandle(
|
|
20
|
-
host: ConnectableElement,
|
|
21
|
-
{ state }: { state: SignalState<ResizableHandleProps> },
|
|
22
|
-
): void {
|
|
23
|
-
const onResize = onResizeContext.consume(host)
|
|
24
|
-
const onResizeStart = onResizeStartContext.consume(host)
|
|
25
|
-
const onResizeEnd = onResizeEndContext.consume(host)
|
|
26
|
-
|
|
27
|
-
useResizableHandleState(host, state, { onResize, onResizeStart, onResizeEnd })
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
function useResizableHandleState(
|
|
31
|
-
host: ConnectableElement,
|
|
32
|
-
state: SignalState<ResizableHandleProps>,
|
|
33
|
-
context: {
|
|
34
|
-
onResizeStart: ReadonlySignal<OnResizeStart>
|
|
35
|
-
onResize: ReadonlySignal<OnResize>
|
|
36
|
-
onResizeEnd: ReadonlySignal<OnResizeEnd>
|
|
37
|
-
},
|
|
38
|
-
) {
|
|
39
|
-
let startX = 0
|
|
40
|
-
let startY = 0
|
|
41
|
-
let width = 0
|
|
42
|
-
let height = 0
|
|
43
|
-
let aspectRatio = 1
|
|
44
|
-
|
|
45
|
-
const pointerPressing = createSignal(false)
|
|
46
|
-
|
|
47
|
-
const handlePointerDown = (event: PointerEvent) => {
|
|
48
|
-
event.preventDefault()
|
|
49
|
-
pointerPressing.set(true)
|
|
50
|
-
|
|
51
|
-
startX = event.x
|
|
52
|
-
startY = event.y
|
|
53
|
-
|
|
54
|
-
const size = context.onResizeStart.get()?.()
|
|
55
|
-
if (size) {
|
|
56
|
-
;[width, height, aspectRatio] = size
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const handlePointerMove = (event: PointerEvent) => {
|
|
61
|
-
event.preventDefault()
|
|
62
|
-
|
|
63
|
-
const dx = event.x - startX
|
|
64
|
-
const dy = event.y - startY
|
|
65
|
-
|
|
66
|
-
const [w, h] = calcResize(
|
|
67
|
-
state.position.peek(),
|
|
68
|
-
width,
|
|
69
|
-
height,
|
|
70
|
-
dx,
|
|
71
|
-
dy,
|
|
72
|
-
aspectRatio,
|
|
73
|
-
)
|
|
74
|
-
|
|
75
|
-
context.onResize.get()?.(w, h)
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
const handlePointerUp = (event: PointerEvent) => {
|
|
79
|
-
event.preventDefault()
|
|
80
|
-
pointerPressing.set(false)
|
|
81
|
-
|
|
82
|
-
context.onResizeEnd.get()?.()
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
useEffect(host, () => {
|
|
86
|
-
host.addEventListener('pointerdown', handlePointerDown)
|
|
87
|
-
return () => {
|
|
88
|
-
host.removeEventListener('pointerdown', handlePointerDown)
|
|
89
|
-
}
|
|
90
|
-
})
|
|
91
|
-
|
|
92
|
-
useEffect(host, () => {
|
|
93
|
-
if (!pointerPressing.get()) {
|
|
94
|
-
return
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
const win = getWindow(host)
|
|
98
|
-
|
|
99
|
-
win.addEventListener('pointermove', handlePointerMove)
|
|
100
|
-
win.addEventListener('pointerup', handlePointerUp)
|
|
101
|
-
return () => {
|
|
102
|
-
win.removeEventListener('pointermove', handlePointerMove)
|
|
103
|
-
win.removeEventListener('pointerup', handlePointerUp)
|
|
104
|
-
}
|
|
105
|
-
})
|
|
106
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { EventDeclarations, PropDeclarations } from '@aria-ui/core'
|
|
2
|
-
|
|
3
|
-
export interface ResizableHandleProps {
|
|
4
|
-
/**
|
|
5
|
-
* The position of the handle.
|
|
6
|
-
*
|
|
7
|
-
* @default "bottom-right"
|
|
8
|
-
*/
|
|
9
|
-
position:
|
|
10
|
-
| 'top'
|
|
11
|
-
| 'right'
|
|
12
|
-
| 'bottom'
|
|
13
|
-
| 'left'
|
|
14
|
-
| 'top-left'
|
|
15
|
-
| 'top-right'
|
|
16
|
-
| 'bottom-left'
|
|
17
|
-
| 'bottom-right'
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/** @internal */
|
|
21
|
-
export const resizableHandleProps: PropDeclarations<ResizableHandleProps> = {
|
|
22
|
-
position: { default: 'bottom-right' },
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/** @internal */
|
|
26
|
-
export interface ResizableHandleEvents {}
|
|
27
|
-
|
|
28
|
-
/** @internal */
|
|
29
|
-
export const resizableHandleEvents: EventDeclarations<ResizableHandleEvents> = {}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { defineCustomElement, registerCustomElement, type BaseElementConstructor } from "@aria-ui/core"
|
|
2
|
-
|
|
3
|
-
import { useResizableRoot } from "./setup.ts"
|
|
4
|
-
import { resizableRootEvents, resizableRootProps, type ResizableRootEvents, type ResizableRootProps } from "./types.ts"
|
|
5
|
-
|
|
6
|
-
const ResizableRootElementBase: BaseElementConstructor<ResizableRootProps> = defineCustomElement<
|
|
7
|
-
ResizableRootProps,
|
|
8
|
-
ResizableRootEvents
|
|
9
|
-
>({
|
|
10
|
-
props: resizableRootProps,
|
|
11
|
-
events: resizableRootEvents,
|
|
12
|
-
setup: useResizableRoot,
|
|
13
|
-
})
|
|
14
|
-
class ResizableRootElement extends ResizableRootElementBase {}
|
|
15
|
-
|
|
16
|
-
registerCustomElement('prosekit-resizable-root', ResizableRootElement)
|
|
17
|
-
|
|
18
|
-
export { ResizableRootElement }
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { createSignal, useAttribute, useEffect, type ConnectableElement, type SetupOptions } from '@aria-ui/core'
|
|
2
|
-
|
|
3
|
-
import { isFinitePositiveNumber } from '../../../utils/is-finite-positive-number.ts'
|
|
4
|
-
import {
|
|
5
|
-
onResizeContext,
|
|
6
|
-
onResizeEndContext,
|
|
7
|
-
onResizeStartContext,
|
|
8
|
-
type OnResize,
|
|
9
|
-
type OnResizeEnd,
|
|
10
|
-
type OnResizeStart,
|
|
11
|
-
} from '../context.ts'
|
|
12
|
-
|
|
13
|
-
import type { ResizableRootEvents, ResizableRootProps } from './types.ts'
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* @internal
|
|
17
|
-
*/
|
|
18
|
-
export function useResizableRoot(
|
|
19
|
-
host: ConnectableElement,
|
|
20
|
-
{ state, emit }: SetupOptions<ResizableRootProps, ResizableRootEvents>,
|
|
21
|
-
): void {
|
|
22
|
-
const resizing = createSignal(false)
|
|
23
|
-
|
|
24
|
-
const onResizeStart: OnResizeStart = () => {
|
|
25
|
-
const { width, height } = host.getBoundingClientRect()
|
|
26
|
-
|
|
27
|
-
let aspectRatio: number = state.aspectRatio.peek() ?? width / height
|
|
28
|
-
|
|
29
|
-
if (!isFinitePositiveNumber(aspectRatio)) {
|
|
30
|
-
aspectRatio = 0
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
emit('resizeStart', { width, height })
|
|
34
|
-
resizing.set(true)
|
|
35
|
-
return [width, height, aspectRatio]
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const onResize: OnResize = (width, height) => {
|
|
39
|
-
state.width.set(width)
|
|
40
|
-
state.height.set(height)
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const onResizeEnd: OnResizeEnd = () => {
|
|
44
|
-
const { width, height } = host.getBoundingClientRect()
|
|
45
|
-
emit('resizeEnd', { width, height })
|
|
46
|
-
resizing.set(false)
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
onResizeStartContext.provide(host, createSignal(onResizeStart))
|
|
50
|
-
onResizeContext.provide(host, createSignal(onResize))
|
|
51
|
-
onResizeEndContext.provide(host, createSignal(onResizeEnd))
|
|
52
|
-
|
|
53
|
-
useEffect(host, () => {
|
|
54
|
-
updateResizableRootStyles(
|
|
55
|
-
host,
|
|
56
|
-
Math.max(state.width.get() || 0, 1),
|
|
57
|
-
Math.max(state.height.get() || 0, 1),
|
|
58
|
-
state.aspectRatio.get(),
|
|
59
|
-
)
|
|
60
|
-
})
|
|
61
|
-
|
|
62
|
-
useAttribute(host, 'data-resizing', () => (resizing.get() ? '' : undefined))
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
function updateResizableRootStyles(
|
|
66
|
-
host: ConnectableElement,
|
|
67
|
-
width: number,
|
|
68
|
-
height: number,
|
|
69
|
-
aspectRatio: number | null,
|
|
70
|
-
) {
|
|
71
|
-
host.style.width = isFinitePositiveNumber(width) ? `${width}px` : ''
|
|
72
|
-
|
|
73
|
-
host.style.height = isFinitePositiveNumber(height) ? `${height}px` : ''
|
|
74
|
-
|
|
75
|
-
if (isFinitePositiveNumber(aspectRatio)) {
|
|
76
|
-
host.style.aspectRatio = `${aspectRatio}`
|
|
77
|
-
|
|
78
|
-
if (width && width > 0 && aspectRatio >= 1) {
|
|
79
|
-
host.style.height = 'auto'
|
|
80
|
-
} else if (height && height > 0 && aspectRatio <= 1) {
|
|
81
|
-
host.style.width = 'min-content'
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import type { EventDeclarations, PropDeclarations } from '@aria-ui/core'
|
|
2
|
-
|
|
3
|
-
import { isFinitePositiveNumber } from '../../../utils/is-finite-positive-number.ts'
|
|
4
|
-
|
|
5
|
-
export interface ResizableRootProps {
|
|
6
|
-
width: number | null
|
|
7
|
-
height: number | null
|
|
8
|
-
aspectRatio: number | null
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
function fromNumberAttribute(value: string | null): number | null {
|
|
12
|
-
if (typeof value === 'string') {
|
|
13
|
-
const number = Number.parseFloat(value)
|
|
14
|
-
if (isFinitePositiveNumber(number)) {
|
|
15
|
-
return number
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
return null
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function toNumberAttribute(value: number | null): string | null {
|
|
22
|
-
if (typeof value === 'number') {
|
|
23
|
-
return `${value}`
|
|
24
|
-
}
|
|
25
|
-
return null
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/** @internal */
|
|
29
|
-
export const resizableRootProps: PropDeclarations<ResizableRootProps> = {
|
|
30
|
-
width: {
|
|
31
|
-
default: null,
|
|
32
|
-
attribute: 'data-width',
|
|
33
|
-
fromAttribute: fromNumberAttribute,
|
|
34
|
-
toAttribute: toNumberAttribute,
|
|
35
|
-
},
|
|
36
|
-
height: {
|
|
37
|
-
default: null,
|
|
38
|
-
attribute: 'data-height',
|
|
39
|
-
fromAttribute: fromNumberAttribute,
|
|
40
|
-
toAttribute: toNumberAttribute,
|
|
41
|
-
},
|
|
42
|
-
aspectRatio: {
|
|
43
|
-
default: null,
|
|
44
|
-
attribute: 'data-aspect-ratio',
|
|
45
|
-
fromAttribute: fromNumberAttribute,
|
|
46
|
-
toAttribute: toNumberAttribute,
|
|
47
|
-
},
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export interface ResizableRootEvents {
|
|
51
|
-
resizeStart: CustomEvent<{ width: number; height: number }>
|
|
52
|
-
resizeEnd: CustomEvent<{ width: number; height: number }>
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/** @internal */
|
|
56
|
-
export const resizableRootEvents: EventDeclarations<ResizableRootEvents> = {
|
|
57
|
-
resizeStart: {},
|
|
58
|
-
resizeEnd: {},
|
|
59
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { createContext, type Context } from '@aria-ui/core'
|
|
2
|
-
|
|
3
|
-
import type { DndInfo, HoveringCellInfo } from './utils.ts'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* @internal
|
|
7
|
-
*/
|
|
8
|
-
export type TableHandleRootContext = HoveringCellInfo | null
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* @internal
|
|
12
|
-
*/
|
|
13
|
-
export const tableHandleRootContext: Context<TableHandleRootContext> = createContext(
|
|
14
|
-
'prosekit-table-handle-root-context',
|
|
15
|
-
null,
|
|
16
|
-
)
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* @internal
|
|
20
|
-
*/
|
|
21
|
-
export type TableHandleDndContext = DndInfo
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* @internal
|
|
25
|
-
*/
|
|
26
|
-
export const defaultTableHandleDndContext: TableHandleDndContext = {
|
|
27
|
-
dragging: false,
|
|
28
|
-
direction: 'row',
|
|
29
|
-
draggingIndex: -1,
|
|
30
|
-
droppingIndex: -1,
|
|
31
|
-
x: -1,
|
|
32
|
-
y: -1,
|
|
33
|
-
startX: -1,
|
|
34
|
-
startY: -1,
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* @internal
|
|
39
|
-
*/
|
|
40
|
-
export const tableHandleDndContext: Context<TableHandleDndContext> = createContext(
|
|
41
|
-
'prosekit-table-handle-dnd-context',
|
|
42
|
-
defaultTableHandleDndContext,
|
|
43
|
-
)
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { createComputed, useEffect, type ConnectableElement, type ReadonlySignal, type Signal } from '@aria-ui/core'
|
|
2
|
-
import type { Editor } from '@prosekit/core'
|
|
3
|
-
import { moveTableColumn, moveTableRow } from '@prosekit/extensions/table'
|
|
4
|
-
|
|
5
|
-
import { getSafeEditorView } from '../../../utils/get-safe-editor-view.ts'
|
|
6
|
-
import type { TableHandleDndContext } from '../context.ts'
|
|
7
|
-
|
|
8
|
-
export function useDrop(
|
|
9
|
-
host: ConnectableElement,
|
|
10
|
-
editor: ReadonlySignal<Editor | null>,
|
|
11
|
-
dndContext: Signal<TableHandleDndContext>,
|
|
12
|
-
): void {
|
|
13
|
-
const dragging = createComputed(() => dndContext.get().dragging)
|
|
14
|
-
|
|
15
|
-
useEffect(host, () => {
|
|
16
|
-
const view = getSafeEditorView(editor.get())
|
|
17
|
-
if (!view || !view.editable) return
|
|
18
|
-
|
|
19
|
-
const ownerDocument = view.dom?.ownerDocument
|
|
20
|
-
if (!ownerDocument) return
|
|
21
|
-
|
|
22
|
-
const handleDrop = () => {
|
|
23
|
-
if (!dragging.peek()) return
|
|
24
|
-
const editorValue = editor.peek()
|
|
25
|
-
if (!editorValue) return
|
|
26
|
-
const { droppingIndex, draggingIndex, direction } = dndContext.peek()
|
|
27
|
-
|
|
28
|
-
// Validate indices
|
|
29
|
-
if (draggingIndex < 0 || droppingIndex < 0) {
|
|
30
|
-
console.warn('[prosekit] Invalid drag indices:', { draggingIndex, droppingIndex })
|
|
31
|
-
return
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
if (direction === 'row') {
|
|
35
|
-
editorValue.exec(moveTableRow({
|
|
36
|
-
from: draggingIndex,
|
|
37
|
-
to: droppingIndex,
|
|
38
|
-
}))
|
|
39
|
-
return
|
|
40
|
-
}
|
|
41
|
-
if (direction === 'col') {
|
|
42
|
-
editorValue.exec(moveTableColumn({
|
|
43
|
-
from: draggingIndex,
|
|
44
|
-
to: droppingIndex,
|
|
45
|
-
}))
|
|
46
|
-
return
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// To make `drop` event work, we need to prevent the default behavior of the
|
|
51
|
-
// `dragover` event for drop zone. Here we set the whole document as the
|
|
52
|
-
// drop zone so that even the mouse moves outside the editor, the `drop`
|
|
53
|
-
// event will still be triggered.
|
|
54
|
-
const handleDragOver = (event: DragEvent) => {
|
|
55
|
-
if (!dragging.peek()) return
|
|
56
|
-
event.preventDefault()
|
|
57
|
-
const prev = dndContext.peek()
|
|
58
|
-
|
|
59
|
-
dndContext.set({
|
|
60
|
-
...prev,
|
|
61
|
-
dragging: true,
|
|
62
|
-
x: event.clientX,
|
|
63
|
-
y: event.clientY,
|
|
64
|
-
})
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
const handleDragEnd = () => {
|
|
68
|
-
if (!dragging.peek()) return
|
|
69
|
-
const prev = dndContext.peek()
|
|
70
|
-
dndContext.set({
|
|
71
|
-
...prev,
|
|
72
|
-
dragging: false,
|
|
73
|
-
})
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
ownerDocument.addEventListener('dragover', handleDragOver)
|
|
77
|
-
ownerDocument.addEventListener('drop', handleDrop)
|
|
78
|
-
ownerDocument.addEventListener('dragend', handleDragEnd)
|
|
79
|
-
return () => {
|
|
80
|
-
ownerDocument.removeEventListener('dragover', handleDragOver)
|
|
81
|
-
ownerDocument.removeEventListener('drop', handleDrop)
|
|
82
|
-
ownerDocument.removeEventListener('dragend', handleDragEnd)
|
|
83
|
-
}
|
|
84
|
-
})
|
|
85
|
-
}
|