@prosekit/web 0.7.2 → 0.7.4

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 (173) hide show
  1. package/dist/get-default-state-CIEy7xrl.js +2 -1
  2. package/dist/get-default-state-CIEy7xrl.js.map +1 -0
  3. package/dist/get-safe-editor-view-DENm4avv.js +2 -1
  4. package/dist/get-safe-editor-view-DENm4avv.js.map +1 -0
  5. package/dist/{inject-style-RwRNoINh.js → inject-style-BJQNFufI.js} +12 -13
  6. package/dist/inject-style-BJQNFufI.js.map +1 -0
  7. package/dist/prosekit-web-autocomplete.d.ts +2 -1
  8. package/dist/prosekit-web-autocomplete.d.ts.map +1 -0
  9. package/dist/prosekit-web-autocomplete.js +5 -7
  10. package/dist/prosekit-web-autocomplete.js.map +1 -0
  11. package/dist/prosekit-web-block-handle.d.ts +2 -1
  12. package/dist/prosekit-web-block-handle.d.ts.map +1 -0
  13. package/dist/prosekit-web-block-handle.js +33 -20
  14. package/dist/prosekit-web-block-handle.js.map +1 -0
  15. package/dist/prosekit-web-drop-indicator.d.ts +2 -1
  16. package/dist/prosekit-web-drop-indicator.d.ts.map +1 -0
  17. package/dist/prosekit-web-drop-indicator.js +2 -1
  18. package/dist/prosekit-web-drop-indicator.js.map +1 -0
  19. package/dist/prosekit-web-inline-popover.d.ts +2 -1
  20. package/dist/prosekit-web-inline-popover.d.ts.map +1 -0
  21. package/dist/prosekit-web-inline-popover.js +4 -5
  22. package/dist/prosekit-web-inline-popover.js.map +1 -0
  23. package/dist/prosekit-web-popover.d.ts +2 -1
  24. package/dist/prosekit-web-popover.d.ts.map +1 -0
  25. package/dist/prosekit-web-popover.js +2 -1
  26. package/dist/prosekit-web-popover.js.map +1 -0
  27. package/dist/prosekit-web-resizable.d.ts +2 -1
  28. package/dist/prosekit-web-resizable.d.ts.map +1 -0
  29. package/dist/prosekit-web-resizable.js +2 -1
  30. package/dist/prosekit-web-resizable.js.map +1 -0
  31. package/dist/prosekit-web-table-handle.d.ts +2 -1
  32. package/dist/prosekit-web-table-handle.d.ts.map +1 -0
  33. package/dist/prosekit-web-table-handle.js +38 -75
  34. package/dist/prosekit-web-table-handle.js.map +1 -0
  35. package/dist/prosekit-web-tooltip.d.ts +2 -1
  36. package/dist/prosekit-web-tooltip.d.ts.map +1 -0
  37. package/dist/prosekit-web-tooltip.js +2 -1
  38. package/dist/prosekit-web-tooltip.js.map +1 -0
  39. package/dist/prosekit-web.d.ts +1 -1
  40. package/dist/prosekit-web.js +1 -0
  41. package/dist/use-editor-extension-Cc7ZG7uj.js +2 -1
  42. package/dist/use-editor-extension-Cc7ZG7uj.js.map +1 -0
  43. package/dist/use-scrolling-BNfsQs3S.js +2 -1
  44. package/dist/use-scrolling-BNfsQs3S.js.map +1 -0
  45. package/package.json +21 -20
  46. package/src/components/autocomplete/autocomplete-empty/element.gen.ts +18 -0
  47. package/src/components/autocomplete/autocomplete-empty/setup.ts +6 -0
  48. package/src/components/autocomplete/autocomplete-empty/types.ts +16 -0
  49. package/src/components/autocomplete/autocomplete-item/element.gen.ts +18 -0
  50. package/src/components/autocomplete/autocomplete-item/setup.ts +38 -0
  51. package/src/components/autocomplete/autocomplete-item/types.ts +31 -0
  52. package/src/components/autocomplete/autocomplete-list/element.gen.ts +18 -0
  53. package/src/components/autocomplete/autocomplete-list/setup.ts +140 -0
  54. package/src/components/autocomplete/autocomplete-list/types.ts +30 -0
  55. package/src/components/autocomplete/autocomplete-popover/element.gen.ts +18 -0
  56. package/src/components/autocomplete/autocomplete-popover/helpers.spec.ts +21 -0
  57. package/src/components/autocomplete/autocomplete-popover/helpers.ts +7 -0
  58. package/src/components/autocomplete/autocomplete-popover/setup.ts +185 -0
  59. package/src/components/autocomplete/autocomplete-popover/types.ts +103 -0
  60. package/src/components/autocomplete/context.ts +19 -0
  61. package/src/components/autocomplete/index.gen.ts +17 -0
  62. package/src/components/block-handle/block-handle-add/element.gen.ts +18 -0
  63. package/src/components/block-handle/block-handle-add/setup.ts +37 -0
  64. package/src/components/block-handle/block-handle-add/types.ts +26 -0
  65. package/src/components/block-handle/block-handle-draggable/element.gen.ts +18 -0
  66. package/src/components/block-handle/block-handle-draggable/set-drag-preview.ts +88 -0
  67. package/src/components/block-handle/block-handle-draggable/setup.ts +133 -0
  68. package/src/components/block-handle/block-handle-draggable/types.ts +26 -0
  69. package/src/components/block-handle/block-handle-popover/element.gen.ts +18 -0
  70. package/src/components/block-handle/block-handle-popover/pointer-move.ts +243 -0
  71. package/src/components/block-handle/block-handle-popover/setup.ts +88 -0
  72. package/src/components/block-handle/block-handle-popover/types.ts +84 -0
  73. package/src/components/block-handle/context.ts +34 -0
  74. package/src/components/block-handle/index.gen.ts +13 -0
  75. package/src/components/drop-indicator/drop-indicator/element.gen.ts +18 -0
  76. package/src/components/drop-indicator/drop-indicator/setup.ts +87 -0
  77. package/src/components/drop-indicator/drop-indicator/types.ts +34 -0
  78. package/src/components/drop-indicator/index.gen.ts +5 -0
  79. package/src/components/inline-popover/index.gen.ts +5 -0
  80. package/src/components/inline-popover/inline-popover/element.gen.ts +18 -0
  81. package/src/components/inline-popover/inline-popover/setup.ts +97 -0
  82. package/src/components/inline-popover/inline-popover/types.ts +115 -0
  83. package/src/components/inline-popover/inline-popover/virtual-selection-element.ts +75 -0
  84. package/src/components/popover/index.gen.ts +13 -0
  85. package/src/components/popover/popover-content/element.gen.ts +18 -0
  86. package/src/components/popover/popover-content/setup.ts +1 -0
  87. package/src/components/popover/popover-content/types.ts +12 -0
  88. package/src/components/popover/popover-root/element.gen.ts +18 -0
  89. package/src/components/popover/popover-root/setup.ts +1 -0
  90. package/src/components/popover/popover-root/types.ts +12 -0
  91. package/src/components/popover/popover-trigger/element.gen.ts +18 -0
  92. package/src/components/popover/popover-trigger/setup.ts +1 -0
  93. package/src/components/popover/popover-trigger/types.ts +12 -0
  94. package/src/components/resizable/context.ts +45 -0
  95. package/src/components/resizable/index.gen.ts +9 -0
  96. package/src/components/resizable/resizable-handle/calc-resize.spec.ts +280 -0
  97. package/src/components/resizable/resizable-handle/calc-resize.ts +121 -0
  98. package/src/components/resizable/resizable-handle/element.gen.ts +18 -0
  99. package/src/components/resizable/resizable-handle/setup.ts +112 -0
  100. package/src/components/resizable/resizable-handle/types.ts +32 -0
  101. package/src/components/resizable/resizable-root/element.gen.ts +18 -0
  102. package/src/components/resizable/resizable-root/setup.ts +93 -0
  103. package/src/components/resizable/resizable-root/types.ts +28 -0
  104. package/src/components/table-handle/context.ts +49 -0
  105. package/src/components/table-handle/dnd.ts +135 -0
  106. package/src/components/table-handle/hooks/use-drop.ts +94 -0
  107. package/src/components/table-handle/hooks/use-empty-image.ts +30 -0
  108. package/src/components/table-handle/index.gen.ts +37 -0
  109. package/src/components/table-handle/table-handle-column-root/element.gen.ts +18 -0
  110. package/src/components/table-handle/table-handle-column-root/setup.ts +71 -0
  111. package/src/components/table-handle/table-handle-column-root/types.ts +76 -0
  112. package/src/components/table-handle/table-handle-column-trigger/element.gen.ts +18 -0
  113. package/src/components/table-handle/table-handle-column-trigger/setup.ts +75 -0
  114. package/src/components/table-handle/table-handle-column-trigger/types.ts +23 -0
  115. package/src/components/table-handle/table-handle-drag-preview/element.gen.ts +18 -0
  116. package/src/components/table-handle/table-handle-drag-preview/render-preview.ts +80 -0
  117. package/src/components/table-handle/table-handle-drag-preview/setup.ts +67 -0
  118. package/src/components/table-handle/table-handle-drag-preview/types.ts +17 -0
  119. package/src/components/table-handle/table-handle-drag-preview/updater.ts +101 -0
  120. package/src/components/table-handle/table-handle-drop-indicator/calc-drag-over.ts +44 -0
  121. package/src/components/table-handle/table-handle-drop-indicator/element.gen.ts +18 -0
  122. package/src/components/table-handle/table-handle-drop-indicator/setup.ts +56 -0
  123. package/src/components/table-handle/table-handle-drop-indicator/types.ts +18 -0
  124. package/src/components/table-handle/table-handle-drop-indicator/updater.ts +110 -0
  125. package/src/components/table-handle/table-handle-popover-content/element.gen.ts +18 -0
  126. package/src/components/table-handle/table-handle-popover-content/setup.ts +90 -0
  127. package/src/components/table-handle/table-handle-popover-content/types.ts +40 -0
  128. package/src/components/table-handle/table-handle-popover-item/element.gen.ts +18 -0
  129. package/src/components/table-handle/table-handle-popover-item/setup.ts +23 -0
  130. package/src/components/table-handle/table-handle-popover-item/types.ts +24 -0
  131. package/src/components/table-handle/table-handle-root/element.gen.ts +18 -0
  132. package/src/components/table-handle/table-handle-root/setup.ts +93 -0
  133. package/src/components/table-handle/table-handle-root/types.ts +26 -0
  134. package/src/components/table-handle/table-handle-row-root/element.gen.ts +18 -0
  135. package/src/components/table-handle/table-handle-row-root/setup.ts +77 -0
  136. package/src/components/table-handle/table-handle-row-root/types.ts +75 -0
  137. package/src/components/table-handle/table-handle-row-trigger/element.gen.ts +18 -0
  138. package/src/components/table-handle/table-handle-row-trigger/setup.ts +74 -0
  139. package/src/components/table-handle/table-handle-row-trigger/types.ts +26 -0
  140. package/src/components/table-handle/utils.ts +107 -0
  141. package/src/components/tooltip/index.gen.ts +13 -0
  142. package/src/components/tooltip/tooltip-content/element.gen.ts +18 -0
  143. package/src/components/tooltip/tooltip-content/setup.ts +1 -0
  144. package/src/components/tooltip/tooltip-content/types.ts +12 -0
  145. package/src/components/tooltip/tooltip-root/element.gen.ts +18 -0
  146. package/src/components/tooltip/tooltip-root/setup.ts +1 -0
  147. package/src/components/tooltip/tooltip-root/types.ts +12 -0
  148. package/src/components/tooltip/tooltip-trigger/element.gen.ts +18 -0
  149. package/src/components/tooltip/tooltip-trigger/setup.ts +1 -0
  150. package/src/components/tooltip/tooltip-trigger/types.ts +12 -0
  151. package/src/hooks/use-editor-extension.ts +19 -0
  152. package/src/hooks/use-editor-focus-event.ts +23 -0
  153. package/src/hooks/use-editor-typing.ts +36 -0
  154. package/src/hooks/use-editor-update-event.ts +23 -0
  155. package/src/hooks/use-first-rendering.ts +20 -0
  156. package/src/hooks/use-keymap.ts +20 -0
  157. package/src/hooks/use-scrolling.ts +33 -0
  158. package/src/hooks/use-selecting.ts +63 -0
  159. package/src/index.ts +1 -0
  160. package/src/utils/assign-styles.ts +14 -0
  161. package/src/utils/clone-element.ts +110 -0
  162. package/src/utils/css-feature-detection.ts +9 -0
  163. package/src/utils/fade-color.ts +15 -0
  164. package/src/utils/get-box-element.ts +20 -0
  165. package/src/utils/get-client-rect.ts +35 -0
  166. package/src/utils/get-default-state.spec.ts +50 -0
  167. package/src/utils/get-default-state.ts +22 -0
  168. package/src/utils/get-effective-background-color.ts +21 -0
  169. package/src/utils/get-safe-editor-view.ts +10 -0
  170. package/src/utils/inject-style.ts +11 -0
  171. package/src/utils/is-finite-positive-number.ts +3 -0
  172. package/src/utils/max-z-index.ts +3 -0
  173. package/src/utils/throttle.ts +17 -0
@@ -0,0 +1,97 @@
1
+ import {
2
+ createComputed,
3
+ createSignal,
4
+ useAttribute,
5
+ useEffect,
6
+ type ConnectableElement,
7
+ type ReadonlySignal,
8
+ type SetupOptions,
9
+ } from '@aria-ui/core'
10
+ import { useOverlayPositionerState } from '@aria-ui/overlay/elements'
11
+ import { usePresence } from '@aria-ui/presence'
12
+ import type { ReferenceElement } from '@floating-ui/dom'
13
+ import type { Editor } from '@prosekit/core'
14
+
15
+ import { useEditorFocusChangeEvent } from '../../../hooks/use-editor-focus-event'
16
+ import { useEditorUpdateEvent } from '../../../hooks/use-editor-update-event'
17
+ import { useKeymap } from '../../../hooks/use-keymap'
18
+
19
+ import type {
20
+ InlinePopoverEvents,
21
+ InlinePopoverProps,
22
+ } from './types'
23
+ import { getVirtualSelectionElement } from './virtual-selection-element'
24
+
25
+ /**
26
+ * @internal
27
+ */
28
+ export function useInlinePopover(
29
+ host: ConnectableElement,
30
+ { state, emit }: SetupOptions<InlinePopoverProps, InlinePopoverEvents>,
31
+ ): void {
32
+ const { editor, defaultOpen, open, ...overlayState } = state
33
+
34
+ const reference = useInlinePopoverReference(host, editor)
35
+ const hasReference = createComputed(() => !!reference.get())
36
+
37
+ useEffect(host, () => {
38
+ const hasReferenceValue = hasReference.get()
39
+ const defaultOpenValue = defaultOpen.peek()
40
+ const openValue = open.peek()
41
+
42
+ if (defaultOpenValue || openValue) {
43
+ emit('openChange', hasReferenceValue)
44
+ }
45
+ })
46
+
47
+ useEffect(host, () => {
48
+ const hasReferenceValue = hasReference.get()
49
+ const defaultOpenValue = defaultOpen.peek()
50
+
51
+ if (hasReferenceValue && defaultOpenValue) {
52
+ open.set(true)
53
+ } else if (!hasReferenceValue) {
54
+ open.set(false)
55
+ }
56
+ })
57
+
58
+ useKeymap(host, editor, {
59
+ Escape: () => {
60
+ if (!state.dismissOnEscape.peek() || !open.peek()) {
61
+ return false
62
+ }
63
+ open.set(false)
64
+ emit('openChange', false)
65
+ return true
66
+ },
67
+ })
68
+
69
+ useOverlayPositionerState(host, overlayState, { reference })
70
+
71
+ useAttribute(host, 'data-state', () => (open.get() ? 'open' : 'closed'))
72
+ usePresence(host, open)
73
+ }
74
+
75
+ function useInlinePopoverReference(
76
+ host: ConnectableElement,
77
+ editor: ReadonlySignal<Editor | null>,
78
+ ) {
79
+ const reference = createSignal<ReferenceElement | null>(null)
80
+ let editorFocused = false
81
+
82
+ useEditorFocusChangeEvent(host, editor, (focus) => {
83
+ editorFocused = focus
84
+ })
85
+
86
+ useEditorUpdateEvent(host, editor, (view) => {
87
+ const isPopoverFocused = !editorFocused && host.contains(host.ownerDocument.activeElement)
88
+
89
+ if (isPopoverFocused) {
90
+ return
91
+ }
92
+
93
+ reference.set(getVirtualSelectionElement(view) || null)
94
+ })
95
+
96
+ return reference
97
+ }
@@ -0,0 +1,115 @@
1
+ import type {
2
+ EventDeclarations,
3
+ PropDeclarations,
4
+ } from '@aria-ui/core'
5
+ import {
6
+ overlayPositionerEvents,
7
+ overlayPositionerProps,
8
+ type OverlayPositionerEvents,
9
+ type OverlayPositionerProps,
10
+ } from '@aria-ui/overlay'
11
+ import type { Editor } from '@prosekit/core'
12
+
13
+ export interface InlinePopoverProps extends
14
+ Omit<
15
+ OverlayPositionerProps,
16
+ 'placement' | 'offset' | 'hide' | 'overlap' | 'inline' | 'overflowPadding'
17
+ >
18
+ {
19
+ /**
20
+ * The ProseKit editor instance.
21
+ *
22
+ * @default null
23
+ * @hidden
24
+ */
25
+ editor: Editor | null
26
+
27
+ /**
28
+ * Whether the popover is open by default when some inline content is
29
+ * selected.
30
+ *
31
+ * When `defaultOpen` is true, the popover will open or close based on the
32
+ * inline selection. When `defaultOpen` is false, the popover will never be
33
+ * opened unless the `open` prop is true.
34
+ *
35
+ * @default true
36
+ */
37
+ defaultOpen: boolean
38
+
39
+ /**
40
+ * Whether the popover is open.
41
+ *
42
+ * Notice that the popover will be always hidden if the inline selection is
43
+ * empty.
44
+ *
45
+ * @default false
46
+ */
47
+ open: boolean
48
+
49
+ /**
50
+ * Whether the inline popover should be dismissed when the editor receives an
51
+ * Escape key press.
52
+ *
53
+ * @default true
54
+ */
55
+ dismissOnEscape: boolean
56
+
57
+ /**
58
+ * @default "top"
59
+ */
60
+ placement: OverlayPositionerProps['placement']
61
+
62
+ /**
63
+ * @default 12
64
+ */
65
+ offset: OverlayPositionerProps['offset']
66
+
67
+ /**
68
+ * @default true
69
+ */
70
+ hide: OverlayPositionerProps['hide']
71
+
72
+ /**
73
+ * @default true
74
+ */
75
+ overlap: OverlayPositionerProps['overlap']
76
+
77
+ /**
78
+ * @default true
79
+ */
80
+ inline: OverlayPositionerProps['inline']
81
+
82
+ /**
83
+ * @default 8
84
+ */
85
+ overflowPadding: OverlayPositionerProps['overflowPadding']
86
+ }
87
+
88
+ /** @internal */
89
+ export const inlinePopoverProps: PropDeclarations<InlinePopoverProps> = Object.freeze({
90
+ ...overlayPositionerProps,
91
+ editor: { default: null },
92
+ defaultOpen: { default: true },
93
+ open: { default: false },
94
+ dismissOnEscape: { default: true },
95
+
96
+ placement: { default: 'top' },
97
+ offset: { default: 12 },
98
+ hide: { default: true },
99
+ overlap: { default: true },
100
+ inline: { default: true },
101
+ overflowPadding: { default: 8 },
102
+ })
103
+
104
+ export interface InlinePopoverEvents extends OverlayPositionerEvents {
105
+ /**
106
+ * Fired when the open state changes.
107
+ */
108
+ openChange: CustomEvent<boolean>
109
+ }
110
+
111
+ /** @internal */
112
+ export const inlinePopoverEvents: EventDeclarations<InlinePopoverEvents> = {
113
+ ...overlayPositionerEvents,
114
+ openChange: {},
115
+ }
@@ -0,0 +1,75 @@
1
+ import type { ReferenceElement } from '@floating-ui/dom'
2
+ import {
3
+ containsInlineNode,
4
+ isInCodeBlock,
5
+ isTextSelection,
6
+ } from '@prosekit/core'
7
+ import type { EditorView } from '@prosekit/pm/view'
8
+
9
+ export function getVirtualSelectionElement(
10
+ view: EditorView,
11
+ ): ReferenceElement | undefined {
12
+ if (typeof window === 'undefined' || view.isDestroyed) {
13
+ return
14
+ }
15
+
16
+ const selection = view.state.selection
17
+
18
+ if (
19
+ !selection.empty
20
+ && !isInCodeBlock(selection)
21
+ && isTextSelection(selection)
22
+ && containsInlineNode(view.state.doc, selection.from, selection.to)
23
+ ) {
24
+ return getDomDecoration(view) || getInlineDecoration(view)
25
+ }
26
+ }
27
+
28
+ function getDomDecoration(view: EditorView): ReferenceElement | undefined {
29
+ const range = getDomRange(view)
30
+ if (range) {
31
+ // To get it work properly in Safari, we cannot return the range directly.
32
+ // We have to return a contextElement.
33
+ return {
34
+ contextElement: view.dom,
35
+ getBoundingClientRect: () => range.getBoundingClientRect(),
36
+ getClientRects: () => range.getClientRects(),
37
+ }
38
+ }
39
+ }
40
+
41
+ function getDomRange(view: EditorView): Range | undefined {
42
+ const win = view.dom.ownerDocument.defaultView
43
+ const selection = win?.getSelection()
44
+ if (!selection || selection.isCollapsed) {
45
+ return
46
+ }
47
+
48
+ const range = typeof selection.rangeCount === 'number'
49
+ && selection.rangeCount > 0
50
+ && selection.getRangeAt(0)
51
+
52
+ if (!range) {
53
+ return
54
+ }
55
+
56
+ return range
57
+ }
58
+
59
+ function getInlineDecoration(view: EditorView): ReferenceElement | undefined {
60
+ const match = view.dom.querySelectorAll('.prosekit-virtual-selection')
61
+
62
+ if (match.length === 0) {
63
+ return
64
+ }
65
+ if (match.length === 1) {
66
+ return match[0]
67
+ }
68
+
69
+ const items = Array.from(match)
70
+ return {
71
+ contextElement: items[0],
72
+ getBoundingClientRect: () => items[0].getBoundingClientRect(),
73
+ getClientRects: () => items.map((item) => item.getBoundingClientRect()),
74
+ }
75
+ }
@@ -0,0 +1,13 @@
1
+ // This file is generated by packages/dev/src/gen-components.ts
2
+
3
+ export { PopoverContentElement } from './popover-content/element.gen'
4
+ export { popoverContentEvents, popoverContentProps, type PopoverContentEvents, type PopoverContentProps } from './popover-content/types'
5
+ export { usePopoverContent } from './popover-content/setup'
6
+
7
+ export { PopoverRootElement } from './popover-root/element.gen'
8
+ export { popoverRootEvents, popoverRootProps, type PopoverRootEvents, type PopoverRootProps } from './popover-root/types'
9
+ export { usePopoverRoot } from './popover-root/setup'
10
+
11
+ export { PopoverTriggerElement } from './popover-trigger/element.gen'
12
+ export { popoverTriggerEvents, popoverTriggerProps, type PopoverTriggerEvents, type PopoverTriggerProps } from './popover-trigger/types'
13
+ export { usePopoverTrigger } from './popover-trigger/setup'
@@ -0,0 +1,18 @@
1
+ import { defineCustomElement, registerCustomElement, type BaseElementConstructor } from "@aria-ui/core"
2
+
3
+ import { usePopoverContent } from "./setup"
4
+ import { popoverContentEvents, popoverContentProps, type PopoverContentEvents, type PopoverContentProps } from "./types"
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 }
@@ -0,0 +1 @@
1
+ export { usePopoverContent } from '@aria-ui/popover/elements'
@@ -0,0 +1,12 @@
1
+ import type {
2
+ PopoverContentEvents as Events,
3
+ PopoverContentProps as Props,
4
+ } from '@aria-ui/popover/elements'
5
+
6
+ export {
7
+ popoverContentEvents,
8
+ popoverContentProps,
9
+ } from '@aria-ui/popover/elements'
10
+
11
+ export interface PopoverContentProps extends Props {}
12
+ export interface PopoverContentEvents extends Events {}
@@ -0,0 +1,18 @@
1
+ import { defineCustomElement, registerCustomElement, type BaseElementConstructor } from "@aria-ui/core"
2
+
3
+ import { usePopoverRoot } from "./setup"
4
+ import { popoverRootEvents, popoverRootProps, type PopoverRootEvents, type PopoverRootProps } from "./types"
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 }
@@ -0,0 +1 @@
1
+ export { usePopoverRoot } from '@aria-ui/popover/elements'
@@ -0,0 +1,12 @@
1
+ import type {
2
+ PopoverRootEvents as Events,
3
+ PopoverRootProps as Props,
4
+ } from '@aria-ui/popover/elements'
5
+
6
+ export {
7
+ popoverRootEvents,
8
+ popoverRootProps,
9
+ } from '@aria-ui/popover/elements'
10
+
11
+ export interface PopoverRootProps extends Props {}
12
+ export interface PopoverRootEvents extends Events {}
@@ -0,0 +1,18 @@
1
+ import { defineCustomElement, registerCustomElement, type BaseElementConstructor } from "@aria-ui/core"
2
+
3
+ import { usePopoverTrigger } from "./setup"
4
+ import { popoverTriggerEvents, popoverTriggerProps, type PopoverTriggerEvents, type PopoverTriggerProps } from "./types"
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 }
@@ -0,0 +1 @@
1
+ export { usePopoverTrigger } from '@aria-ui/popover/elements'
@@ -0,0 +1,12 @@
1
+ import type {
2
+ PopoverTriggerEvents as Events,
3
+ PopoverTriggerProps as Props,
4
+ } from '@aria-ui/popover/elements'
5
+
6
+ export {
7
+ popoverTriggerEvents,
8
+ popoverTriggerProps,
9
+ } from '@aria-ui/popover/elements'
10
+
11
+ export interface PopoverTriggerProps extends Props {}
12
+ export interface PopoverTriggerEvents extends Events {}
@@ -0,0 +1,45 @@
1
+ import {
2
+ createContext,
3
+ type Context,
4
+ } from '@aria-ui/core'
5
+
6
+ /**
7
+ * @internal
8
+ */
9
+ export const onResizeContext: Context<OnResize> = createContext(
10
+ 'prosekit/resizable/onResize',
11
+ null,
12
+ )
13
+
14
+ /**
15
+ * @internal
16
+ */
17
+ export const onResizeStartContext: Context<OnResizeStart> = createContext(
18
+ 'prosekit/resizable/onResizeStart',
19
+ null,
20
+ )
21
+
22
+ /**
23
+ * @internal
24
+ */
25
+ export const onResizeEndContext: Context<OnResizeEnd> = createContext(
26
+ 'prosekit/resizable/onResizeEnd',
27
+ null,
28
+ )
29
+
30
+ /**
31
+ * @internal
32
+ */
33
+ export type OnResize = ((width: number, height: number) => void) | null
34
+
35
+ /**
36
+ * @internal
37
+ */
38
+ export type OnResizeStart =
39
+ | (() => readonly [width: number, height: number, aspectRatio: number])
40
+ | null
41
+
42
+ /**
43
+ * @internal
44
+ */
45
+ export type OnResizeEnd = (() => void) | null
@@ -0,0 +1,9 @@
1
+ // This file is generated by packages/dev/src/gen-components.ts
2
+
3
+ export { ResizableHandleElement } from './resizable-handle/element.gen'
4
+ export { resizableHandleEvents, resizableHandleProps, type ResizableHandleEvents, type ResizableHandleProps } from './resizable-handle/types'
5
+ export { useResizableHandle } from './resizable-handle/setup'
6
+
7
+ export { ResizableRootElement } from './resizable-root/element.gen'
8
+ export { resizableRootEvents, resizableRootProps, type ResizableRootEvents, type ResizableRootProps } from './resizable-root/types'
9
+ export { useResizableRoot } from './resizable-root/setup'