@prosekit/web 0.7.3 → 0.7.5

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 (172) hide show
  1. package/dist/{get-default-state-CIEy7xrl.js → get-default-state-BzBimBWi.js} +2 -1
  2. package/dist/get-default-state-BzBimBWi.js.map +1 -0
  3. package/dist/{get-safe-editor-view-DENm4avv.js → get-safe-editor-view-Dt9Amrcn.js} +2 -1
  4. package/dist/get-safe-editor-view-Dt9Amrcn.js.map +1 -0
  5. package/dist/{inject-style-D5jj7cme.js → inject-style-Dm6W58W3.js} +6 -9
  6. package/dist/inject-style-Dm6W58W3.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 +9 -13
  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 +31 -31
  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 +6 -6
  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 +8 -12
  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 +5 -7
  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 +39 -72
  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.js +1 -0
  40. package/dist/{use-editor-extension-Cc7ZG7uj.js → use-editor-extension-B2WuUfnd.js} +2 -1
  41. package/dist/use-editor-extension-B2WuUfnd.js.map +1 -0
  42. package/dist/{use-scrolling-BNfsQs3S.js → use-scrolling-BOvyjDvH.js} +2 -1
  43. package/dist/use-scrolling-BOvyjDvH.js.map +1 -0
  44. package/package.json +21 -21
  45. package/src/components/autocomplete/autocomplete-empty/element.gen.ts +18 -0
  46. package/src/components/autocomplete/autocomplete-empty/setup.ts +6 -0
  47. package/src/components/autocomplete/autocomplete-empty/types.ts +16 -0
  48. package/src/components/autocomplete/autocomplete-item/element.gen.ts +18 -0
  49. package/src/components/autocomplete/autocomplete-item/setup.ts +38 -0
  50. package/src/components/autocomplete/autocomplete-item/types.ts +31 -0
  51. package/src/components/autocomplete/autocomplete-list/element.gen.ts +18 -0
  52. package/src/components/autocomplete/autocomplete-list/setup.ts +140 -0
  53. package/src/components/autocomplete/autocomplete-list/types.ts +30 -0
  54. package/src/components/autocomplete/autocomplete-popover/element.gen.ts +18 -0
  55. package/src/components/autocomplete/autocomplete-popover/helpers.spec.ts +21 -0
  56. package/src/components/autocomplete/autocomplete-popover/helpers.ts +7 -0
  57. package/src/components/autocomplete/autocomplete-popover/setup.ts +185 -0
  58. package/src/components/autocomplete/autocomplete-popover/types.ts +103 -0
  59. package/src/components/autocomplete/context.ts +19 -0
  60. package/src/components/autocomplete/index.gen.ts +17 -0
  61. package/src/components/block-handle/block-handle-add/element.gen.ts +18 -0
  62. package/src/components/block-handle/block-handle-add/setup.ts +37 -0
  63. package/src/components/block-handle/block-handle-add/types.ts +26 -0
  64. package/src/components/block-handle/block-handle-draggable/element.gen.ts +18 -0
  65. package/src/components/block-handle/block-handle-draggable/set-drag-preview.ts +88 -0
  66. package/src/components/block-handle/block-handle-draggable/setup.ts +133 -0
  67. package/src/components/block-handle/block-handle-draggable/types.ts +26 -0
  68. package/src/components/block-handle/block-handle-popover/element.gen.ts +18 -0
  69. package/src/components/block-handle/block-handle-popover/pointer-move.ts +262 -0
  70. package/src/components/block-handle/block-handle-popover/setup.ts +88 -0
  71. package/src/components/block-handle/block-handle-popover/types.ts +84 -0
  72. package/src/components/block-handle/context.ts +34 -0
  73. package/src/components/block-handle/index.gen.ts +13 -0
  74. package/src/components/drop-indicator/drop-indicator/element.gen.ts +18 -0
  75. package/src/components/drop-indicator/drop-indicator/setup.ts +87 -0
  76. package/src/components/drop-indicator/drop-indicator/types.ts +34 -0
  77. package/src/components/drop-indicator/index.gen.ts +5 -0
  78. package/src/components/inline-popover/index.gen.ts +5 -0
  79. package/src/components/inline-popover/inline-popover/element.gen.ts +18 -0
  80. package/src/components/inline-popover/inline-popover/setup.ts +97 -0
  81. package/src/components/inline-popover/inline-popover/types.ts +115 -0
  82. package/src/components/inline-popover/inline-popover/virtual-selection-element.ts +75 -0
  83. package/src/components/popover/index.gen.ts +13 -0
  84. package/src/components/popover/popover-content/element.gen.ts +18 -0
  85. package/src/components/popover/popover-content/setup.ts +1 -0
  86. package/src/components/popover/popover-content/types.ts +12 -0
  87. package/src/components/popover/popover-root/element.gen.ts +18 -0
  88. package/src/components/popover/popover-root/setup.ts +1 -0
  89. package/src/components/popover/popover-root/types.ts +12 -0
  90. package/src/components/popover/popover-trigger/element.gen.ts +18 -0
  91. package/src/components/popover/popover-trigger/setup.ts +1 -0
  92. package/src/components/popover/popover-trigger/types.ts +12 -0
  93. package/src/components/resizable/context.ts +45 -0
  94. package/src/components/resizable/index.gen.ts +9 -0
  95. package/src/components/resizable/resizable-handle/calc-resize.spec.ts +280 -0
  96. package/src/components/resizable/resizable-handle/calc-resize.ts +121 -0
  97. package/src/components/resizable/resizable-handle/element.gen.ts +18 -0
  98. package/src/components/resizable/resizable-handle/setup.ts +112 -0
  99. package/src/components/resizable/resizable-handle/types.ts +32 -0
  100. package/src/components/resizable/resizable-root/element.gen.ts +18 -0
  101. package/src/components/resizable/resizable-root/setup.ts +93 -0
  102. package/src/components/resizable/resizable-root/types.ts +28 -0
  103. package/src/components/table-handle/context.ts +49 -0
  104. package/src/components/table-handle/dnd.ts +135 -0
  105. package/src/components/table-handle/hooks/use-drop.ts +94 -0
  106. package/src/components/table-handle/hooks/use-empty-image.ts +30 -0
  107. package/src/components/table-handle/index.gen.ts +37 -0
  108. package/src/components/table-handle/table-handle-column-root/element.gen.ts +18 -0
  109. package/src/components/table-handle/table-handle-column-root/setup.ts +71 -0
  110. package/src/components/table-handle/table-handle-column-root/types.ts +76 -0
  111. package/src/components/table-handle/table-handle-column-trigger/element.gen.ts +18 -0
  112. package/src/components/table-handle/table-handle-column-trigger/setup.ts +75 -0
  113. package/src/components/table-handle/table-handle-column-trigger/types.ts +23 -0
  114. package/src/components/table-handle/table-handle-drag-preview/element.gen.ts +18 -0
  115. package/src/components/table-handle/table-handle-drag-preview/render-preview.ts +80 -0
  116. package/src/components/table-handle/table-handle-drag-preview/setup.ts +67 -0
  117. package/src/components/table-handle/table-handle-drag-preview/types.ts +17 -0
  118. package/src/components/table-handle/table-handle-drag-preview/updater.ts +101 -0
  119. package/src/components/table-handle/table-handle-drop-indicator/calc-drag-over.ts +44 -0
  120. package/src/components/table-handle/table-handle-drop-indicator/element.gen.ts +18 -0
  121. package/src/components/table-handle/table-handle-drop-indicator/setup.ts +56 -0
  122. package/src/components/table-handle/table-handle-drop-indicator/types.ts +18 -0
  123. package/src/components/table-handle/table-handle-drop-indicator/updater.ts +110 -0
  124. package/src/components/table-handle/table-handle-popover-content/element.gen.ts +18 -0
  125. package/src/components/table-handle/table-handle-popover-content/setup.ts +90 -0
  126. package/src/components/table-handle/table-handle-popover-content/types.ts +40 -0
  127. package/src/components/table-handle/table-handle-popover-item/element.gen.ts +18 -0
  128. package/src/components/table-handle/table-handle-popover-item/setup.ts +23 -0
  129. package/src/components/table-handle/table-handle-popover-item/types.ts +24 -0
  130. package/src/components/table-handle/table-handle-root/element.gen.ts +18 -0
  131. package/src/components/table-handle/table-handle-root/setup.ts +93 -0
  132. package/src/components/table-handle/table-handle-root/types.ts +26 -0
  133. package/src/components/table-handle/table-handle-row-root/element.gen.ts +18 -0
  134. package/src/components/table-handle/table-handle-row-root/setup.ts +77 -0
  135. package/src/components/table-handle/table-handle-row-root/types.ts +75 -0
  136. package/src/components/table-handle/table-handle-row-trigger/element.gen.ts +18 -0
  137. package/src/components/table-handle/table-handle-row-trigger/setup.ts +74 -0
  138. package/src/components/table-handle/table-handle-row-trigger/types.ts +26 -0
  139. package/src/components/table-handle/utils.ts +107 -0
  140. package/src/components/tooltip/index.gen.ts +13 -0
  141. package/src/components/tooltip/tooltip-content/element.gen.ts +18 -0
  142. package/src/components/tooltip/tooltip-content/setup.ts +1 -0
  143. package/src/components/tooltip/tooltip-content/types.ts +12 -0
  144. package/src/components/tooltip/tooltip-root/element.gen.ts +18 -0
  145. package/src/components/tooltip/tooltip-root/setup.ts +1 -0
  146. package/src/components/tooltip/tooltip-root/types.ts +12 -0
  147. package/src/components/tooltip/tooltip-trigger/element.gen.ts +18 -0
  148. package/src/components/tooltip/tooltip-trigger/setup.ts +1 -0
  149. package/src/components/tooltip/tooltip-trigger/types.ts +12 -0
  150. package/src/hooks/use-editor-extension.ts +19 -0
  151. package/src/hooks/use-editor-focus-event.ts +23 -0
  152. package/src/hooks/use-editor-typing.ts +36 -0
  153. package/src/hooks/use-editor-update-event.ts +23 -0
  154. package/src/hooks/use-first-rendering.ts +20 -0
  155. package/src/hooks/use-keymap.ts +20 -0
  156. package/src/hooks/use-scrolling.ts +33 -0
  157. package/src/hooks/use-selecting.ts +63 -0
  158. package/src/index.ts +1 -0
  159. package/src/utils/assign-styles.ts +14 -0
  160. package/src/utils/clone-element.ts +110 -0
  161. package/src/utils/css-feature-detection.ts +9 -0
  162. package/src/utils/fade-color.ts +15 -0
  163. package/src/utils/get-box-element.ts +20 -0
  164. package/src/utils/get-client-rect.ts +35 -0
  165. package/src/utils/get-default-state.spec.ts +50 -0
  166. package/src/utils/get-default-state.ts +22 -0
  167. package/src/utils/get-effective-background-color.ts +21 -0
  168. package/src/utils/get-safe-editor-view.ts +10 -0
  169. package/src/utils/inject-style.ts +11 -0
  170. package/src/utils/is-finite-positive-number.ts +3 -0
  171. package/src/utils/max-z-index.ts +3 -0
  172. package/src/utils/throttle.ts +17 -0
@@ -1,4 +1,4 @@
1
- import { useEditorExtension } from "./use-editor-extension-Cc7ZG7uj.js";
1
+ import { t as useEditorExtension } from "./use-editor-extension-B2WuUfnd.js";
2
2
  import { createComputed, createSignal, defineCustomElement, registerCustomElement, useAttribute, useEffect } from "@aria-ui/core";
3
3
  import { containsInlineNode, defineFocusChangeHandler, defineKeymap, defineUpdateHandler, isInCodeBlock, isTextSelection } from "@prosekit/core";
4
4
  import { useOverlayPositionerState } from "@aria-ui/overlay/elements";
@@ -10,8 +10,7 @@ import { overlayPositionerEvents as overlayPositionerEvents$1, overlayPositioner
10
10
  * @internal
11
11
  */
12
12
  function useEditorFocusChangeEvent(host, editor, handler) {
13
- const extension = defineFocusChangeHandler(handler);
14
- useEditorExtension(host, editor, extension);
13
+ useEditorExtension(host, editor, defineFocusChangeHandler(handler));
15
14
  }
16
15
 
17
16
  //#endregion
@@ -20,15 +19,13 @@ function useEditorFocusChangeEvent(host, editor, handler) {
20
19
  * @internal
21
20
  */
22
21
  function useEditorUpdateEvent(host, editor, handler) {
23
- const extension = defineUpdateHandler(handler);
24
- useEditorExtension(host, editor, extension);
22
+ useEditorExtension(host, editor, defineUpdateHandler(handler));
25
23
  }
26
24
 
27
25
  //#endregion
28
26
  //#region src/hooks/use-keymap.ts
29
27
  function useKeymap(host, editor, keymap) {
30
- const extension = defineKeymap(keymap);
31
- useEditorExtension(host, editor, extension);
28
+ useEditorExtension(host, editor, defineKeymap(keymap));
32
29
  }
33
30
 
34
31
  //#endregion
@@ -47,8 +44,7 @@ function getDomDecoration(view) {
47
44
  };
48
45
  }
49
46
  function getDomRange(view) {
50
- const win = view.dom.ownerDocument.defaultView;
51
- const selection = win?.getSelection();
47
+ const selection = view.dom.ownerDocument.defaultView?.getSelection();
52
48
  if (!selection || selection.isCollapsed) return;
53
49
  const range = typeof selection.rangeCount === "number" && selection.rangeCount > 0 && selection.getRangeAt(0);
54
50
  if (!range) return;
@@ -104,8 +100,7 @@ function useInlinePopoverReference(host, editor) {
104
100
  editorFocused = focus;
105
101
  });
106
102
  useEditorUpdateEvent(host, editor, (view) => {
107
- const isPopoverFocused = !editorFocused && host.contains(host.ownerDocument.activeElement);
108
- if (isPopoverFocused) return;
103
+ if (!editorFocused && host.contains(host.ownerDocument.activeElement)) return;
109
104
  reference.set(getVirtualSelectionElement(view) || null);
110
105
  });
111
106
  return reference;
@@ -144,4 +139,5 @@ var InlinePopoverElement = class extends InlinePopoverElementBase {};
144
139
  registerCustomElement("prosekit-inline-popover", InlinePopoverElement);
145
140
 
146
141
  //#endregion
147
- export { InlinePopoverElement, inlinePopoverEvents, inlinePopoverProps, useInlinePopover };
142
+ export { InlinePopoverElement, inlinePopoverEvents, inlinePopoverProps, useInlinePopover };
143
+ //# sourceMappingURL=prosekit-web-inline-popover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prosekit-web-inline-popover.js","names":["inlinePopoverProps: PropDeclarations<InlinePopoverProps>","overlayPositionerProps","inlinePopoverEvents: EventDeclarations<InlinePopoverEvents>","overlayPositionerEvents","InlinePopoverElementBase: BaseElementConstructor<InlinePopoverProps>"],"sources":["../src/hooks/use-editor-focus-event.ts","../src/hooks/use-editor-update-event.ts","../src/hooks/use-keymap.ts","../src/components/inline-popover/inline-popover/virtual-selection-element.ts","../src/components/inline-popover/inline-popover/setup.ts","../src/components/inline-popover/inline-popover/types.ts","../src/components/inline-popover/inline-popover/element.gen.ts"],"sourcesContent":["import type {\n ConnectableElement,\n ReadonlySignal,\n} from '@aria-ui/core'\nimport {\n defineFocusChangeHandler,\n type Editor,\n type FocusChangeHandler,\n} from '@prosekit/core'\n\nimport { useEditorExtension } from './use-editor-extension'\n\n/**\n * @internal\n */\nexport function useEditorFocusChangeEvent(\n host: ConnectableElement,\n editor: ReadonlySignal<Editor | null>,\n handler: FocusChangeHandler,\n): void {\n const extension = defineFocusChangeHandler(handler)\n useEditorExtension(host, editor, extension)\n}\n","import type {\n ConnectableElement,\n ReadonlySignal,\n} from '@aria-ui/core'\nimport {\n defineUpdateHandler,\n type Editor,\n type UpdateHandler,\n} from '@prosekit/core'\n\nimport { useEditorExtension } from './use-editor-extension'\n\n/**\n * @internal\n */\nexport function useEditorUpdateEvent(\n host: ConnectableElement,\n editor: ReadonlySignal<Editor | null>,\n handler: UpdateHandler,\n): void {\n const extension = defineUpdateHandler(handler)\n useEditorExtension(host, editor, extension)\n}\n","import type {\n ConnectableElement,\n ReadonlySignal,\n} from '@aria-ui/core'\nimport {\n defineKeymap,\n type Editor,\n type Keymap,\n} from '@prosekit/core'\n\nimport { useEditorExtension } from './use-editor-extension'\n\nexport function useKeymap(\n host: ConnectableElement,\n editor: ReadonlySignal<Editor | null>,\n keymap: Keymap,\n): void {\n const extension = defineKeymap(keymap)\n useEditorExtension(host, editor, extension)\n}\n","import type { ReferenceElement } from '@floating-ui/dom'\nimport {\n containsInlineNode,\n isInCodeBlock,\n isTextSelection,\n} from '@prosekit/core'\nimport type { EditorView } from '@prosekit/pm/view'\n\nexport function getVirtualSelectionElement(\n view: EditorView,\n): ReferenceElement | undefined {\n if (typeof window === 'undefined' || view.isDestroyed) {\n return\n }\n\n const selection = view.state.selection\n\n if (\n !selection.empty\n && !isInCodeBlock(selection)\n && isTextSelection(selection)\n && containsInlineNode(view.state.doc, selection.from, selection.to)\n ) {\n return getDomDecoration(view) || getInlineDecoration(view)\n }\n}\n\nfunction getDomDecoration(view: EditorView): ReferenceElement | undefined {\n const range = getDomRange(view)\n if (range) {\n // To get it work properly in Safari, we cannot return the range directly.\n // We have to return a contextElement.\n return {\n contextElement: view.dom,\n getBoundingClientRect: () => range.getBoundingClientRect(),\n getClientRects: () => range.getClientRects(),\n }\n }\n}\n\nfunction getDomRange(view: EditorView): Range | undefined {\n const win = view.dom.ownerDocument.defaultView\n const selection = win?.getSelection()\n if (!selection || selection.isCollapsed) {\n return\n }\n\n const range = typeof selection.rangeCount === 'number'\n && selection.rangeCount > 0\n && selection.getRangeAt(0)\n\n if (!range) {\n return\n }\n\n return range\n}\n\nfunction getInlineDecoration(view: EditorView): ReferenceElement | undefined {\n const match = view.dom.querySelectorAll('.prosekit-virtual-selection')\n\n if (match.length === 0) {\n return\n }\n if (match.length === 1) {\n return match[0]\n }\n\n const items = Array.from(match)\n return {\n contextElement: items[0],\n getBoundingClientRect: () => items[0].getBoundingClientRect(),\n getClientRects: () => items.map((item) => item.getBoundingClientRect()),\n }\n}\n","import {\n createComputed,\n createSignal,\n useAttribute,\n useEffect,\n type ConnectableElement,\n type ReadonlySignal,\n type SetupOptions,\n} from '@aria-ui/core'\nimport { useOverlayPositionerState } from '@aria-ui/overlay/elements'\nimport { usePresence } from '@aria-ui/presence'\nimport type { ReferenceElement } from '@floating-ui/dom'\nimport type { Editor } from '@prosekit/core'\n\nimport { useEditorFocusChangeEvent } from '../../../hooks/use-editor-focus-event'\nimport { useEditorUpdateEvent } from '../../../hooks/use-editor-update-event'\nimport { useKeymap } from '../../../hooks/use-keymap'\n\nimport type {\n InlinePopoverEvents,\n InlinePopoverProps,\n} from './types'\nimport { getVirtualSelectionElement } from './virtual-selection-element'\n\n/**\n * @internal\n */\nexport function useInlinePopover(\n host: ConnectableElement,\n { state, emit }: SetupOptions<InlinePopoverProps, InlinePopoverEvents>,\n): void {\n const { editor, defaultOpen, open, ...overlayState } = state\n\n const reference = useInlinePopoverReference(host, editor)\n const hasReference = createComputed(() => !!reference.get())\n\n useEffect(host, () => {\n const hasReferenceValue = hasReference.get()\n const defaultOpenValue = defaultOpen.peek()\n const openValue = open.peek()\n\n if (defaultOpenValue || openValue) {\n emit('openChange', hasReferenceValue)\n }\n })\n\n useEffect(host, () => {\n const hasReferenceValue = hasReference.get()\n const defaultOpenValue = defaultOpen.peek()\n\n if (hasReferenceValue && defaultOpenValue) {\n open.set(true)\n } else if (!hasReferenceValue) {\n open.set(false)\n }\n })\n\n useKeymap(host, editor, {\n Escape: () => {\n if (!state.dismissOnEscape.peek() || !open.peek()) {\n return false\n }\n open.set(false)\n emit('openChange', false)\n return true\n },\n })\n\n useOverlayPositionerState(host, overlayState, { reference })\n\n useAttribute(host, 'data-state', () => (open.get() ? 'open' : 'closed'))\n usePresence(host, open)\n}\n\nfunction useInlinePopoverReference(\n host: ConnectableElement,\n editor: ReadonlySignal<Editor | null>,\n) {\n const reference = createSignal<ReferenceElement | null>(null)\n let editorFocused = false\n\n useEditorFocusChangeEvent(host, editor, (focus) => {\n editorFocused = focus\n })\n\n useEditorUpdateEvent(host, editor, (view) => {\n const isPopoverFocused = !editorFocused && host.contains(host.ownerDocument.activeElement)\n\n if (isPopoverFocused) {\n return\n }\n\n reference.set(getVirtualSelectionElement(view) || null)\n })\n\n return reference\n}\n","import type {\n EventDeclarations,\n PropDeclarations,\n} from '@aria-ui/core'\nimport {\n overlayPositionerEvents,\n overlayPositionerProps,\n type OverlayPositionerEvents,\n type OverlayPositionerProps,\n} from '@aria-ui/overlay'\nimport type { Editor } from '@prosekit/core'\n\nexport interface InlinePopoverProps extends\n Omit<\n OverlayPositionerProps,\n 'placement' | 'offset' | 'hide' | 'overlap' | 'inline' | 'overflowPadding'\n >\n{\n /**\n * The ProseKit editor instance.\n *\n * @default null\n * @hidden\n */\n editor: Editor | null\n\n /**\n * Whether the popover is open by default when some inline content is\n * selected.\n *\n * When `defaultOpen` is true, the popover will open or close based on the\n * inline selection. When `defaultOpen` is false, the popover will never be\n * opened unless the `open` prop is true.\n *\n * @default true\n */\n defaultOpen: boolean\n\n /**\n * Whether the popover is open.\n *\n * Notice that the popover will be always hidden if the inline selection is\n * empty.\n *\n * @default false\n */\n open: boolean\n\n /**\n * Whether the inline popover should be dismissed when the editor receives an\n * Escape key press.\n *\n * @default true\n */\n dismissOnEscape: boolean\n\n /**\n * @default \"top\"\n */\n placement: OverlayPositionerProps['placement']\n\n /**\n * @default 12\n */\n offset: OverlayPositionerProps['offset']\n\n /**\n * @default true\n */\n hide: OverlayPositionerProps['hide']\n\n /**\n * @default true\n */\n overlap: OverlayPositionerProps['overlap']\n\n /**\n * @default true\n */\n inline: OverlayPositionerProps['inline']\n\n /**\n * @default 8\n */\n overflowPadding: OverlayPositionerProps['overflowPadding']\n}\n\n/** @internal */\nexport const inlinePopoverProps: PropDeclarations<InlinePopoverProps> = Object.freeze({\n ...overlayPositionerProps,\n editor: { default: null },\n defaultOpen: { default: true },\n open: { default: false },\n dismissOnEscape: { default: true },\n\n placement: { default: 'top' },\n offset: { default: 12 },\n hide: { default: true },\n overlap: { default: true },\n inline: { default: true },\n overflowPadding: { default: 8 },\n})\n\nexport interface InlinePopoverEvents extends OverlayPositionerEvents {\n /**\n * Fired when the open state changes.\n */\n openChange: CustomEvent<boolean>\n}\n\n/** @internal */\nexport const inlinePopoverEvents: EventDeclarations<InlinePopoverEvents> = {\n ...overlayPositionerEvents,\n openChange: {},\n}\n","import { defineCustomElement, registerCustomElement, type BaseElementConstructor } from \"@aria-ui/core\"\n\nimport { useInlinePopover } from \"./setup\"\nimport { inlinePopoverEvents, inlinePopoverProps, type InlinePopoverEvents, type InlinePopoverProps } from \"./types\"\n\nconst InlinePopoverElementBase: BaseElementConstructor<InlinePopoverProps> = defineCustomElement<\n InlinePopoverProps,\n InlinePopoverEvents\n>({\n props: inlinePopoverProps,\n events: inlinePopoverEvents,\n setup: useInlinePopover,\n})\nclass InlinePopoverElement extends InlinePopoverElementBase {}\n\nregisterCustomElement('prosekit-inline-popover', InlinePopoverElement)\n \nexport { InlinePopoverElement }\n"],"mappings":"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"}
@@ -25,4 +25,5 @@ interface PopoverTriggerEvents extends PopoverTriggerEvents$1 {}
25
25
  declare const PopoverTriggerElementBase: BaseElementConstructor<PopoverTriggerProps>;
26
26
  declare class PopoverTriggerElement extends PopoverTriggerElementBase {}
27
27
  //#endregion
28
- export { PopoverContentElement, type PopoverContentEvents, type PopoverContentProps, PopoverRootElement, type PopoverRootEvents, type PopoverRootProps, PopoverTriggerElement, type PopoverTriggerEvents, type PopoverTriggerProps, popoverContentEvents, popoverContentProps, popoverRootEvents, popoverRootProps, popoverTriggerEvents, popoverTriggerProps, usePopoverContent, usePopoverRoot, usePopoverTrigger };
28
+ export { PopoverContentElement, type PopoverContentEvents, type PopoverContentProps, PopoverRootElement, type PopoverRootEvents, type PopoverRootProps, PopoverTriggerElement, type PopoverTriggerEvents, type PopoverTriggerProps, popoverContentEvents, popoverContentProps, popoverRootEvents, popoverRootProps, popoverTriggerEvents, popoverTriggerProps, usePopoverContent, usePopoverRoot, usePopoverTrigger };
29
+ //# sourceMappingURL=prosekit-web-popover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prosekit-web-popover.d.ts","names":[],"sources":["../src/components/popover/popover-content/types.ts","../src/components/popover/popover-content/element.gen.ts","../src/components/popover/popover-root/types.ts","../src/components/popover/popover-root/element.gen.ts","../src/components/popover/popover-trigger/types.ts","../src/components/popover/popover-trigger/element.gen.ts"],"sourcesContent":[],"mappings":";;;;UAUiB,mBAAA,SAA4B;AAA5B,UACA,oBAAA,SAA6B,sBADD,CAAA,CAC7C;;;cCNM,2BAA2B,uBAAuB;cAQlD,qBAAA,SAA8B,yBAAA;;;UCHnB,gBAAA,SAAyB;AFAzB,UECA,iBAAA,SAA0B,mBFDE,CAAA,CAC7C;;;cGNM,wBAAwB,uBAAuB;cAQ/C,kBAAA,SAA2B,sBAAA;;;UCHhB,mBAAA,SAA4B;AJA5B,UICA,oBAAA,SAA6B,sBJDD,CAAA,CAC7C;;;cKNM,2BAA2B,uBAAuB;cAQlD,qBAAA,SAA8B,yBAAA"}
@@ -31,4 +31,5 @@ var PopoverTriggerElement = class extends PopoverTriggerElementBase {};
31
31
  registerCustomElement("prosekit-popover-trigger", PopoverTriggerElement);
32
32
 
33
33
  //#endregion
34
- export { PopoverContentElement, PopoverRootElement, PopoverTriggerElement, popoverContentEvents, popoverContentProps, popoverRootEvents, popoverRootProps, popoverTriggerEvents, popoverTriggerProps, usePopoverContent, usePopoverRoot, usePopoverTrigger };
34
+ export { PopoverContentElement, PopoverRootElement, PopoverTriggerElement, popoverContentEvents, popoverContentProps, popoverRootEvents, popoverRootProps, popoverTriggerEvents, popoverTriggerProps, usePopoverContent, usePopoverRoot, usePopoverTrigger };
35
+ //# sourceMappingURL=prosekit-web-popover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prosekit-web-popover.js","names":["PopoverContentElementBase: BaseElementConstructor<PopoverContentProps>","PopoverRootElementBase: BaseElementConstructor<PopoverRootProps>","PopoverTriggerElementBase: BaseElementConstructor<PopoverTriggerProps>"],"sources":["../src/components/popover/popover-content/element.gen.ts","../src/components/popover/popover-root/element.gen.ts","../src/components/popover/popover-trigger/element.gen.ts"],"sourcesContent":["import { defineCustomElement, registerCustomElement, type BaseElementConstructor } from \"@aria-ui/core\"\n\nimport { usePopoverContent } from \"./setup\"\nimport { popoverContentEvents, popoverContentProps, type PopoverContentEvents, type PopoverContentProps } from \"./types\"\n\nconst PopoverContentElementBase: BaseElementConstructor<PopoverContentProps> = defineCustomElement<\n PopoverContentProps,\n PopoverContentEvents\n>({\n props: popoverContentProps,\n events: popoverContentEvents,\n setup: usePopoverContent,\n})\nclass PopoverContentElement extends PopoverContentElementBase {}\n\nregisterCustomElement('prosekit-popover-content', PopoverContentElement)\n \nexport { PopoverContentElement }\n","import { defineCustomElement, registerCustomElement, type BaseElementConstructor } from \"@aria-ui/core\"\n\nimport { usePopoverRoot } from \"./setup\"\nimport { popoverRootEvents, popoverRootProps, type PopoverRootEvents, type PopoverRootProps } from \"./types\"\n\nconst PopoverRootElementBase: BaseElementConstructor<PopoverRootProps> = defineCustomElement<\n PopoverRootProps,\n PopoverRootEvents\n>({\n props: popoverRootProps,\n events: popoverRootEvents,\n setup: usePopoverRoot,\n})\nclass PopoverRootElement extends PopoverRootElementBase {}\n\nregisterCustomElement('prosekit-popover-root', PopoverRootElement)\n \nexport { PopoverRootElement }\n","import { defineCustomElement, registerCustomElement, type BaseElementConstructor } from \"@aria-ui/core\"\n\nimport { usePopoverTrigger } from \"./setup\"\nimport { popoverTriggerEvents, popoverTriggerProps, type PopoverTriggerEvents, type PopoverTriggerProps } from \"./types\"\n\nconst PopoverTriggerElementBase: BaseElementConstructor<PopoverTriggerProps> = defineCustomElement<\n PopoverTriggerProps,\n PopoverTriggerEvents\n>({\n props: popoverTriggerProps,\n events: popoverTriggerEvents,\n setup: usePopoverTrigger,\n})\nclass PopoverTriggerElement extends PopoverTriggerElementBase {}\n\nregisterCustomElement('prosekit-popover-trigger', PopoverTriggerElement)\n \nexport { PopoverTriggerElement }\n"],"mappings":";;;;AAKA,MAAMA,4BAAyE,oBAG7E;CACA,OAAO;CACP,QAAQ;CACR,OAAO;CACR,CAAC;AACF,IAAM,wBAAN,cAAoC,0BAA0B;AAE9D,sBAAsB,4BAA4B,sBAAsB;;;;ACVxE,MAAMC,yBAAmE,oBAGvE;CACA,OAAO;CACP,QAAQ;CACR,OAAO;CACR,CAAC;AACF,IAAM,qBAAN,cAAiC,uBAAuB;AAExD,sBAAsB,yBAAyB,mBAAmB;;;;ACVlE,MAAMC,4BAAyE,oBAG7E;CACA,OAAO;CACP,QAAQ;CACR,OAAO;CACR,CAAC;AACF,IAAM,wBAAN,cAAoC,0BAA0B;AAE9D,sBAAsB,4BAA4B,sBAAsB"}
@@ -64,4 +64,5 @@ declare function useResizableRoot(host: ConnectableElement, {
64
64
  emit
65
65
  }: SetupOptions<ResizableRootProps, ResizableRootEvents>): void;
66
66
  //#endregion
67
- export { ResizableHandleElement, type ResizableHandleEvents, type ResizableHandleProps, ResizableRootElement, type ResizableRootEvents, type ResizableRootProps, resizableHandleEvents, resizableHandleProps, resizableRootEvents, resizableRootProps, useResizableHandle, useResizableRoot };
67
+ export { ResizableHandleElement, type ResizableHandleEvents, type ResizableHandleProps, ResizableRootElement, type ResizableRootEvents, type ResizableRootProps, resizableHandleEvents, resizableHandleProps, resizableRootEvents, resizableRootProps, useResizableHandle, useResizableRoot };
68
+ //# sourceMappingURL=prosekit-web-resizable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prosekit-web-resizable.d.ts","names":[],"sources":["../src/components/resizable/resizable-handle/types.ts","../src/components/resizable/resizable-handle/element.gen.ts","../src/components/resizable/resizable-handle/setup.ts","../src/components/resizable/resizable-root/types.ts","../src/components/resizable/resizable-root/element.gen.ts","../src/components/resizable/resizable-root/setup.ts"],"sourcesContent":[],"mappings":";;;UAKiB,oBAAA;;AAAjB;AAkBA;AAKA;AAGA;;;;AC1BM,cDkBO,oBCXX,EDWiC,gBClBsB,CDkBL,oBClBlB,CAAA;AAAsB;UDuBvC,qBAAA;;AEJD,cFOH,qBEPqB,EFOE,iBEPF,CFOoB,qBEPpB,CAAA;;;cDnB5B,4BAA4B,uBAAuB;ADAzD,cCQM,sBAAA,SAA+B,0BAAA,CDRA;;;;AAArC;AAkBA;AAKiB,iBEJD,kBAAA,CFIsB,IAAA,EEH9B,kBFG8B,EAAA;EAAA;CAAA,EAAA;EAGzB,KAAA,EELS,WFKT,CELqB,oBFKoB,CAAA;;;;UG1BrC,kBAAA;;EHAA,MAAA,EAAA,MAAA,GAAA,IAAA;EAkBJ,WAAA,EAAA,MAAA,GAAA,IAEZ;AAGD;AAGA;cGnBa,oBAAoB,iBAAiB;UAMjC,mBAAA;eACF;IFdT,KAAA,EAAA,MAAA;IAQA,MAAA,EAAA,MAAA;;aEOO;;IDIG,MAAA,EAAA,MAAA;EACR,CAAA,CAAA;;;AACc,cCFT,mBDES,ECFY,iBDEZ,CCF8B,mBDE9B,CAAA;;;cErBhB,0BAA0B,uBAAuB;AJAvD,cIQM,oBAAA,SAA6B,wBAAA,CJRE;;;;AAArC;AAkBA;AAKiB,iBKFD,gBAAA,CLEsB,IAAA,EKD9B,kBLC8B,EAAA;EAAA,KAAA;EAAA;AAAA,CAAA,EKAnB,YLAmB,CKAN,kBLAM,EKAc,mBLAd,CAAA,CAAA,EAAA,IAAA"}
@@ -100,13 +100,10 @@ function clamp([w, h]) {
100
100
  * @internal
101
101
  */
102
102
  function useResizableHandle(host, { state }) {
103
- const onResize = onResizeContext.consume(host);
104
- const onResizeStart = onResizeStartContext.consume(host);
105
- const onResizeEnd = onResizeEndContext.consume(host);
106
103
  useResizableHandleState(host, state, {
107
- onResize,
108
- onResizeStart,
109
- onResizeEnd
104
+ onResize: onResizeContext.consume(host),
105
+ onResizeStart: onResizeStartContext.consume(host),
106
+ onResizeEnd: onResizeEndContext.consume(host)
110
107
  });
111
108
  }
112
109
  function useResizableHandleState(host, state, context) {
@@ -248,4 +245,5 @@ var ResizableRootElement = class extends ResizableRootElementBase {};
248
245
  registerCustomElement("prosekit-resizable-root", ResizableRootElement);
249
246
 
250
247
  //#endregion
251
- export { ResizableHandleElement, ResizableRootElement, resizableHandleEvents, resizableHandleProps, resizableRootEvents, resizableRootProps, useResizableHandle, useResizableRoot };
248
+ export { ResizableHandleElement, ResizableRootElement, resizableHandleEvents, resizableHandleProps, resizableRootEvents, resizableRootProps, useResizableHandle, useResizableRoot };
249
+ //# sourceMappingURL=prosekit-web-resizable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prosekit-web-resizable.js","names":["onResizeContext: Context<OnResize>","onResizeStartContext: Context<OnResizeStart>","onResizeEndContext: Context<OnResizeEnd>","calcBottomRightResize: CalcResize","calcBottomLeftResize: CalcResize","calcTopRightResize: CalcResize","calcTopLeftResize: CalcResize","calcTopResize: CalcResize","calcRightResize: CalcResize","calcBottomResize: CalcResize","calcLeftResize: CalcResize","resizableHandleProps: PropDeclarations<ResizableHandleProps>","resizableHandleEvents: EventDeclarations<ResizableHandleEvents>","ResizableHandleElementBase: BaseElementConstructor<ResizableHandleProps>","onResizeStart: OnResizeStart","aspectRatio: number","onResize: OnResize","onResizeEnd: OnResizeEnd","resizableRootProps: PropDeclarations<ResizableRootProps>","resizableRootEvents: EventDeclarations<ResizableRootEvents>","ResizableRootElementBase: BaseElementConstructor<ResizableRootProps>"],"sources":["../src/components/resizable/context.ts","../src/utils/is-finite-positive-number.ts","../src/components/resizable/resizable-handle/calc-resize.ts","../src/components/resizable/resizable-handle/setup.ts","../src/components/resizable/resizable-handle/types.ts","../src/components/resizable/resizable-handle/element.gen.ts","../src/components/resizable/resizable-root/setup.ts","../src/components/resizable/resizable-root/types.ts","../src/components/resizable/resizable-root/element.gen.ts"],"sourcesContent":["import {\n createContext,\n type Context,\n} from '@aria-ui/core'\n\n/**\n * @internal\n */\nexport const onResizeContext: Context<OnResize> = createContext(\n 'prosekit/resizable/onResize',\n null,\n)\n\n/**\n * @internal\n */\nexport const onResizeStartContext: Context<OnResizeStart> = createContext(\n 'prosekit/resizable/onResizeStart',\n null,\n)\n\n/**\n * @internal\n */\nexport const onResizeEndContext: Context<OnResizeEnd> = createContext(\n 'prosekit/resizable/onResizeEnd',\n null,\n)\n\n/**\n * @internal\n */\nexport type OnResize = ((width: number, height: number) => void) | null\n\n/**\n * @internal\n */\nexport type OnResizeStart =\n | (() => readonly [width: number, height: number, aspectRatio: number])\n | null\n\n/**\n * @internal\n */\nexport type OnResizeEnd = (() => void) | null\n","export function isFinitePositiveNumber(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value) && value > 0\n}\n","import { isFinitePositiveNumber } from '../../../utils/is-finite-positive-number'\n\nexport function calcResize(\n position:\n | 'top'\n | 'right'\n | 'bottom'\n | 'left'\n | 'top-left'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-right',\n w: number,\n h: number,\n dx: number,\n dy: number,\n aspectRatio: number | null | undefined,\n): [w: number, h: number] {\n aspectRatio = aspectRatio ? aspectRatio : w / h\n aspectRatio = isFinitePositiveNumber(aspectRatio) ? aspectRatio : 1\n\n switch (position) {\n case 'bottom-right':\n return clamp(calcBottomRightResize(w, h, dx, dy, aspectRatio))\n case 'bottom-left':\n return clamp(calcBottomLeftResize(w, h, dx, dy, aspectRatio))\n case 'top-right':\n return clamp(calcTopRightResize(w, h, dx, dy, aspectRatio))\n case 'top-left':\n return clamp(calcTopLeftResize(w, h, dx, dy, aspectRatio))\n case 'top':\n return clamp(calcTopResize(w, h, dx, dy, aspectRatio))\n case 'right':\n return clamp(calcRightResize(w, h, dx, dy, aspectRatio))\n case 'bottom':\n return clamp(calcBottomResize(w, h, dx, dy, aspectRatio))\n case 'left':\n return clamp(calcLeftResize(w, h, dx, dy, aspectRatio))\n default:\n throw new RangeError(`Invalid position: ${position}`)\n }\n}\n\ntype CalcResize = (\n w: number,\n h: number,\n dx: number,\n dy: number,\n aspectRatio: number,\n) => [w: number, h: number]\n\nconst calcBottomRightResize: CalcResize = (w, h, dx, dy, r) => {\n w += dx\n h += dy\n\n const sum = w + h\n h = sum / (r + 1)\n w = sum - h\n return [w, h]\n}\n\nconst calcBottomLeftResize: CalcResize = (w, h, dx, dy, r) => {\n w -= dx\n h += dy\n\n const sum = w + h\n h = sum / (r + 1)\n w = sum - h\n return [w, h]\n}\n\nconst calcTopRightResize: CalcResize = (w, h, dx, dy, r) => {\n w += dx\n h -= dy\n\n const sum = w + h\n h = sum / (r + 1)\n w = sum - h\n return [w, h]\n}\n\nconst calcTopLeftResize: CalcResize = (w, h, dx, dy, r) => {\n w -= dx\n h -= dy\n\n const sum = w + h\n h = sum / (r + 1)\n w = sum - h\n return [w, h]\n}\n\nconst calcTopResize: CalcResize = (w, h, dx, dy, r) => {\n h -= dy\n w = h * r\n return [w, h]\n}\n\nconst calcRightResize: CalcResize = (w, h, dx, dy, r) => {\n w += dx\n h = w / r\n return [w, h]\n}\n\nconst calcBottomResize: CalcResize = (w, h, dx, dy, r) => {\n h += dy\n w = h * r\n return [w, h]\n}\n\nconst calcLeftResize: CalcResize = (w, h, dx, dy, r) => {\n w -= dx\n h = w / r\n return [w, h]\n}\n\nfunction clamp([w, h]: [number, number]): [number, number] {\n return [\n Math.max(w, 1),\n Math.max(h, 1),\n ]\n}\n","import {\n createSignal,\n useEffect,\n type ConnectableElement,\n type ReadonlySignal,\n type SignalState,\n} from '@aria-ui/core'\nimport { getWindow } from '@ocavue/utils'\n\nimport {\n onResizeContext,\n onResizeEndContext,\n onResizeStartContext,\n type OnResize,\n type OnResizeEnd,\n type OnResizeStart,\n} from '../context'\n\nimport { calcResize } from './calc-resize'\nimport type { ResizableHandleProps } from './types'\n\n/**\n * @internal\n */\nexport function useResizableHandle(\n host: ConnectableElement,\n { state }: { state: SignalState<ResizableHandleProps> },\n): void {\n const onResize = onResizeContext.consume(host)\n const onResizeStart = onResizeStartContext.consume(host)\n const onResizeEnd = onResizeEndContext.consume(host)\n\n useResizableHandleState(host, state, { onResize, onResizeStart, onResizeEnd })\n}\n\nfunction useResizableHandleState(\n host: ConnectableElement,\n state: SignalState<ResizableHandleProps>,\n context: {\n onResizeStart: ReadonlySignal<OnResizeStart>\n onResize: ReadonlySignal<OnResize>\n onResizeEnd: ReadonlySignal<OnResizeEnd>\n },\n) {\n let startX = 0\n let startY = 0\n let width = 0\n let height = 0\n let aspectRatio = 1\n\n const pointerPressing = createSignal(false)\n\n const handlePointerDown = (event: PointerEvent) => {\n event.preventDefault()\n pointerPressing.set(true)\n\n startX = event.x\n startY = event.y\n\n const size = context.onResizeStart.get()?.()\n if (size) {\n ;[width, height, aspectRatio] = size\n }\n }\n\n const handlePointerMove = (event: PointerEvent) => {\n event.preventDefault()\n\n const dx = event.x - startX\n const dy = event.y - startY\n\n const [w, h] = calcResize(\n state.position.peek(),\n width,\n height,\n dx,\n dy,\n aspectRatio,\n )\n\n context.onResize.get()?.(w, h)\n }\n\n const handlePointerUp = (event: PointerEvent) => {\n event.preventDefault()\n pointerPressing.set(false)\n\n context.onResizeEnd.get()?.()\n }\n\n useEffect(host, () => {\n host.addEventListener('pointerdown', handlePointerDown)\n return () => {\n host.removeEventListener('pointerdown', handlePointerDown)\n }\n })\n\n useEffect(host, () => {\n if (!pointerPressing.get()) {\n return\n }\n\n const win = getWindow(host)\n\n win.addEventListener('pointermove', handlePointerMove)\n win.addEventListener('pointerup', handlePointerUp)\n return () => {\n win.removeEventListener('pointermove', handlePointerMove)\n win.removeEventListener('pointerup', handlePointerUp)\n }\n })\n}\n","import type {\n EventDeclarations,\n PropDeclarations,\n} from '@aria-ui/core'\n\nexport interface ResizableHandleProps {\n /**\n * The position of the handle.\n *\n * @default \"bottom-right\"\n */\n position:\n | 'top'\n | 'right'\n | 'bottom'\n | 'left'\n | 'top-left'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-right'\n}\n\n/** @internal */\nexport const resizableHandleProps: PropDeclarations<ResizableHandleProps> = {\n position: { default: 'bottom-right' },\n}\n\n/** @internal */\nexport interface ResizableHandleEvents {}\n\n/** @internal */\nexport const resizableHandleEvents: EventDeclarations<ResizableHandleEvents> = {}\n","import { defineCustomElement, registerCustomElement, type BaseElementConstructor } from \"@aria-ui/core\"\n\nimport { useResizableHandle } from \"./setup\"\nimport { resizableHandleEvents, resizableHandleProps, type ResizableHandleEvents, type ResizableHandleProps } from \"./types\"\n\nconst ResizableHandleElementBase: BaseElementConstructor<ResizableHandleProps> = defineCustomElement<\n ResizableHandleProps,\n ResizableHandleEvents\n>({\n props: resizableHandleProps,\n events: resizableHandleEvents,\n setup: useResizableHandle,\n})\nclass ResizableHandleElement extends ResizableHandleElementBase {}\n\nregisterCustomElement('prosekit-resizable-handle', ResizableHandleElement)\n \nexport { ResizableHandleElement }\n","import {\n createSignal,\n useAttribute,\n useEffect,\n type ConnectableElement,\n type SetupOptions,\n} from '@aria-ui/core'\n\nimport { isFinitePositiveNumber } from '../../../utils/is-finite-positive-number'\nimport {\n onResizeContext,\n onResizeEndContext,\n onResizeStartContext,\n type OnResize,\n type OnResizeEnd,\n type OnResizeStart,\n} from '../context'\n\nimport type {\n ResizableRootEvents,\n ResizableRootProps,\n} from './types'\n\n/**\n * @internal\n */\nexport function useResizableRoot(\n host: ConnectableElement,\n { state, emit }: SetupOptions<ResizableRootProps, ResizableRootEvents>,\n): void {\n const resizing = createSignal(false)\n\n const onResizeStart: OnResizeStart = () => {\n const { width, height } = host.getBoundingClientRect()\n\n let aspectRatio: number = state.aspectRatio.peek() ?? width / height\n\n if (!isFinitePositiveNumber(aspectRatio)) {\n aspectRatio = 0\n }\n\n emit('resizeStart', { width, height })\n resizing.set(true)\n return [width, height, aspectRatio]\n }\n\n const onResize: OnResize = (width, height) => {\n state.width.set(width)\n state.height.set(height)\n }\n\n const onResizeEnd: OnResizeEnd = () => {\n const { width, height } = host.getBoundingClientRect()\n emit('resizeEnd', { width, height })\n resizing.set(false)\n }\n\n onResizeStartContext.provide(host, createSignal(onResizeStart))\n onResizeContext.provide(host, createSignal(onResize))\n onResizeEndContext.provide(host, createSignal(onResizeEnd))\n\n useEffect(host, () => {\n updateResizableRootStyles(\n host,\n Math.max(state.width.get() || 0, 1),\n Math.max(state.height.get() || 0, 1),\n state.aspectRatio.get(),\n )\n })\n\n useAttribute(host, 'data-resizing', () => (resizing.get() ? '' : undefined))\n}\n\nfunction updateResizableRootStyles(\n host: ConnectableElement,\n width: number,\n height: number,\n aspectRatio: number | null,\n) {\n host.style.width = isFinitePositiveNumber(width) ? `${width}px` : ''\n\n host.style.height = isFinitePositiveNumber(height) ? `${height}px` : ''\n\n if (isFinitePositiveNumber(aspectRatio)) {\n host.style.aspectRatio = `${aspectRatio}`\n\n if (width && width > 0 && aspectRatio >= 1) {\n host.style.height = 'auto'\n } else if (height && height > 0 && aspectRatio <= 1) {\n host.style.width = 'min-content'\n }\n }\n}\n","import type {\n EventDeclarations,\n PropDeclarations,\n} from '@aria-ui/core'\n\nexport interface ResizableRootProps {\n width: number | null\n height: number | null\n aspectRatio: number | null\n}\n\n/** @internal */\nexport const resizableRootProps: PropDeclarations<ResizableRootProps> = {\n width: { default: null },\n height: { default: null },\n aspectRatio: { default: null },\n}\n\nexport interface ResizableRootEvents {\n resizeStart: CustomEvent<{ width: number; height: number }>\n resizeEnd: CustomEvent<{ width: number; height: number }>\n}\n\n/** @internal */\nexport const resizableRootEvents: EventDeclarations<ResizableRootEvents> = {\n resizeStart: {},\n resizeEnd: {},\n}\n","import { defineCustomElement, registerCustomElement, type BaseElementConstructor } from \"@aria-ui/core\"\n\nimport { useResizableRoot } from \"./setup\"\nimport { resizableRootEvents, resizableRootProps, type ResizableRootEvents, type ResizableRootProps } from \"./types\"\n\nconst ResizableRootElementBase: BaseElementConstructor<ResizableRootProps> = defineCustomElement<\n ResizableRootProps,\n ResizableRootEvents\n>({\n props: resizableRootProps,\n events: resizableRootEvents,\n setup: useResizableRoot,\n})\nclass ResizableRootElement extends ResizableRootElementBase {}\n\nregisterCustomElement('prosekit-resizable-root', ResizableRootElement)\n \nexport { ResizableRootElement }\n"],"mappings":";;;;;;;AAQA,MAAaA,kBAAqC,cAChD,+BACA,KACD;;;;AAKD,MAAaC,uBAA+C,cAC1D,oCACA,KACD;;;;AAKD,MAAaC,qBAA2C,cACtD,kCACA,KACD;;;;AC3BD,SAAgB,uBAAuB,OAAiC;AACtE,QAAO,OAAO,UAAU,YAAY,OAAO,SAAS,MAAM,IAAI,QAAQ;;;;;ACCxE,SAAgB,WACd,UASA,GACA,GACA,IACA,IACA,aACwB;AACxB,eAAc,cAAc,cAAc,IAAI;AAC9C,eAAc,uBAAuB,YAAY,GAAG,cAAc;AAElE,SAAQ,UAAR;EACE,KAAK,eACH,QAAO,MAAM,sBAAsB,GAAG,GAAG,IAAI,IAAI,YAAY,CAAC;EAChE,KAAK,cACH,QAAO,MAAM,qBAAqB,GAAG,GAAG,IAAI,IAAI,YAAY,CAAC;EAC/D,KAAK,YACH,QAAO,MAAM,mBAAmB,GAAG,GAAG,IAAI,IAAI,YAAY,CAAC;EAC7D,KAAK,WACH,QAAO,MAAM,kBAAkB,GAAG,GAAG,IAAI,IAAI,YAAY,CAAC;EAC5D,KAAK,MACH,QAAO,MAAM,cAAc,GAAG,GAAG,IAAI,IAAI,YAAY,CAAC;EACxD,KAAK,QACH,QAAO,MAAM,gBAAgB,GAAG,GAAG,IAAI,IAAI,YAAY,CAAC;EAC1D,KAAK,SACH,QAAO,MAAM,iBAAiB,GAAG,GAAG,IAAI,IAAI,YAAY,CAAC;EAC3D,KAAK,OACH,QAAO,MAAM,eAAe,GAAG,GAAG,IAAI,IAAI,YAAY,CAAC;EACzD,QACE,OAAM,IAAI,WAAW,qBAAqB,WAAW;;;AAY3D,MAAMC,yBAAqC,GAAG,GAAG,IAAI,IAAI,MAAM;AAC7D,MAAK;AACL,MAAK;CAEL,MAAM,MAAM,IAAI;AAChB,KAAI,OAAO,IAAI;AACf,KAAI,MAAM;AACV,QAAO,CAAC,GAAG,EAAE;;AAGf,MAAMC,wBAAoC,GAAG,GAAG,IAAI,IAAI,MAAM;AAC5D,MAAK;AACL,MAAK;CAEL,MAAM,MAAM,IAAI;AAChB,KAAI,OAAO,IAAI;AACf,KAAI,MAAM;AACV,QAAO,CAAC,GAAG,EAAE;;AAGf,MAAMC,sBAAkC,GAAG,GAAG,IAAI,IAAI,MAAM;AAC1D,MAAK;AACL,MAAK;CAEL,MAAM,MAAM,IAAI;AAChB,KAAI,OAAO,IAAI;AACf,KAAI,MAAM;AACV,QAAO,CAAC,GAAG,EAAE;;AAGf,MAAMC,qBAAiC,GAAG,GAAG,IAAI,IAAI,MAAM;AACzD,MAAK;AACL,MAAK;CAEL,MAAM,MAAM,IAAI;AAChB,KAAI,OAAO,IAAI;AACf,KAAI,MAAM;AACV,QAAO,CAAC,GAAG,EAAE;;AAGf,MAAMC,iBAA6B,GAAG,GAAG,IAAI,IAAI,MAAM;AACrD,MAAK;AACL,KAAI,IAAI;AACR,QAAO,CAAC,GAAG,EAAE;;AAGf,MAAMC,mBAA+B,GAAG,GAAG,IAAI,IAAI,MAAM;AACvD,MAAK;AACL,KAAI,IAAI;AACR,QAAO,CAAC,GAAG,EAAE;;AAGf,MAAMC,oBAAgC,GAAG,GAAG,IAAI,IAAI,MAAM;AACxD,MAAK;AACL,KAAI,IAAI;AACR,QAAO,CAAC,GAAG,EAAE;;AAGf,MAAMC,kBAA8B,GAAG,GAAG,IAAI,IAAI,MAAM;AACtD,MAAK;AACL,KAAI,IAAI;AACR,QAAO,CAAC,GAAG,EAAE;;AAGf,SAAS,MAAM,CAAC,GAAG,IAAwC;AACzD,QAAO,CACL,KAAK,IAAI,GAAG,EAAE,EACd,KAAK,IAAI,GAAG,EAAE,CACf;;;;;;;;AC/FH,SAAgB,mBACd,MACA,EAAE,SACI;AAKN,yBAAwB,MAAM,OAAO;EAAE,UAJtB,gBAAgB,QAAQ,KAAK;EAIG,eAH3B,qBAAqB,QAAQ,KAAK;EAGQ,aAF5C,mBAAmB,QAAQ,KAAK;EAEyB,CAAC;;AAGhF,SAAS,wBACP,MACA,OACA,SAKA;CACA,IAAI,SAAS;CACb,IAAI,SAAS;CACb,IAAI,QAAQ;CACZ,IAAI,SAAS;CACb,IAAI,cAAc;CAElB,MAAM,kBAAkB,aAAa,MAAM;CAE3C,MAAM,qBAAqB,UAAwB;AACjD,QAAM,gBAAgB;AACtB,kBAAgB,IAAI,KAAK;AAEzB,WAAS,MAAM;AACf,WAAS,MAAM;EAEf,MAAM,OAAO,QAAQ,cAAc,KAAK,IAAI;AAC5C,MAAI,KACD,EAAC,OAAO,QAAQ,eAAe;;CAIpC,MAAM,qBAAqB,UAAwB;AACjD,QAAM,gBAAgB;EAEtB,MAAM,KAAK,MAAM,IAAI;EACrB,MAAM,KAAK,MAAM,IAAI;EAErB,MAAM,CAAC,GAAG,KAAK,WACb,MAAM,SAAS,MAAM,EACrB,OACA,QACA,IACA,IACA,YACD;AAED,UAAQ,SAAS,KAAK,GAAG,GAAG,EAAE;;CAGhC,MAAM,mBAAmB,UAAwB;AAC/C,QAAM,gBAAgB;AACtB,kBAAgB,IAAI,MAAM;AAE1B,UAAQ,YAAY,KAAK,IAAI;;AAG/B,WAAU,YAAY;AACpB,OAAK,iBAAiB,eAAe,kBAAkB;AACvD,eAAa;AACX,QAAK,oBAAoB,eAAe,kBAAkB;;GAE5D;AAEF,WAAU,YAAY;AACpB,MAAI,CAAC,gBAAgB,KAAK,CACxB;EAGF,MAAM,MAAM,UAAU,KAAK;AAE3B,MAAI,iBAAiB,eAAe,kBAAkB;AACtD,MAAI,iBAAiB,aAAa,gBAAgB;AAClD,eAAa;AACX,OAAI,oBAAoB,eAAe,kBAAkB;AACzD,OAAI,oBAAoB,aAAa,gBAAgB;;GAEvD;;;;;;ACvFJ,MAAaC,uBAA+D,EAC1E,UAAU,EAAE,SAAS,gBAAgB,EACtC;;AAMD,MAAaC,wBAAkE,EAAE;;;;AC1BjF,MAAMC,6BAA2E,oBAG/E;CACA,OAAO;CACP,QAAQ;CACR,OAAO;CACR,CAAC;AACF,IAAM,yBAAN,cAAqC,2BAA2B;AAEhE,sBAAsB,6BAA6B,uBAAuB;;;;;;;ACW1E,SAAgB,iBACd,MACA,EAAE,OAAO,QACH;CACN,MAAM,WAAW,aAAa,MAAM;CAEpC,MAAMC,sBAAqC;EACzC,MAAM,EAAE,OAAO,WAAW,KAAK,uBAAuB;EAEtD,IAAIC,cAAsB,MAAM,YAAY,MAAM,IAAI,QAAQ;AAE9D,MAAI,CAAC,uBAAuB,YAAY,CACtC,eAAc;AAGhB,OAAK,eAAe;GAAE;GAAO;GAAQ,CAAC;AACtC,WAAS,IAAI,KAAK;AAClB,SAAO;GAAC;GAAO;GAAQ;GAAY;;CAGrC,MAAMC,YAAsB,OAAO,WAAW;AAC5C,QAAM,MAAM,IAAI,MAAM;AACtB,QAAM,OAAO,IAAI,OAAO;;CAG1B,MAAMC,oBAAiC;EACrC,MAAM,EAAE,OAAO,WAAW,KAAK,uBAAuB;AACtD,OAAK,aAAa;GAAE;GAAO;GAAQ,CAAC;AACpC,WAAS,IAAI,MAAM;;AAGrB,sBAAqB,QAAQ,MAAM,aAAa,cAAc,CAAC;AAC/D,iBAAgB,QAAQ,MAAM,aAAa,SAAS,CAAC;AACrD,oBAAmB,QAAQ,MAAM,aAAa,YAAY,CAAC;AAE3D,WAAU,YAAY;AACpB,4BACE,MACA,KAAK,IAAI,MAAM,MAAM,KAAK,IAAI,GAAG,EAAE,EACnC,KAAK,IAAI,MAAM,OAAO,KAAK,IAAI,GAAG,EAAE,EACpC,MAAM,YAAY,KAAK,CACxB;GACD;AAEF,cAAa,MAAM,uBAAwB,SAAS,KAAK,GAAG,KAAK,OAAW;;AAG9E,SAAS,0BACP,MACA,OACA,QACA,aACA;AACA,MAAK,MAAM,QAAQ,uBAAuB,MAAM,GAAG,GAAG,MAAM,MAAM;AAElE,MAAK,MAAM,SAAS,uBAAuB,OAAO,GAAG,GAAG,OAAO,MAAM;AAErE,KAAI,uBAAuB,YAAY,EAAE;AACvC,OAAK,MAAM,cAAc,GAAG;AAE5B,MAAI,SAAS,QAAQ,KAAK,eAAe,EACvC,MAAK,MAAM,SAAS;WACX,UAAU,SAAS,KAAK,eAAe,EAChD,MAAK,MAAM,QAAQ;;;;;;;AC7EzB,MAAaC,qBAA2D;CACtE,OAAO,EAAE,SAAS,MAAM;CACxB,QAAQ,EAAE,SAAS,MAAM;CACzB,aAAa,EAAE,SAAS,MAAM;CAC/B;;AAQD,MAAaC,sBAA8D;CACzE,aAAa,EAAE;CACf,WAAW,EAAE;CACd;;;;ACtBD,MAAMC,2BAAuE,oBAG3E;CACA,OAAO;CACP,QAAQ;CACR,OAAO;CACR,CAAC;AACF,IAAM,uBAAN,cAAmC,yBAAyB;AAE5D,sBAAsB,2BAA2B,qBAAqB"}
@@ -298,4 +298,5 @@ declare function useTableHandleRowTrigger(host: ConnectableElement, {
298
298
  state
299
299
  }: SetupOptions<TableHandleRowTriggerProps, TableHandleRowTriggerEvents>): void;
300
300
  //#endregion
301
- export { TableHandleColumnRootElement, type TableHandleColumnRootEvents, type TableHandleColumnRootProps, TableHandleColumnTriggerElement, type TableHandleColumnTriggerEvents, type TableHandleColumnTriggerProps, TableHandleDragPreviewElement, type TableHandleDragPreviewEvents, type TableHandleDragPreviewProps, TableHandleDropIndicatorElement, type TableHandleDropIndicatorEvents, type TableHandleDropIndicatorProps, TableHandlePopoverContentElement, type TableHandlePopoverContentEvents, type TableHandlePopoverContentProps, TableHandlePopoverItemElement, type TableHandlePopoverItemEvents, type TableHandlePopoverItemProps, TableHandleRootElement, type TableHandleRootEvents, type TableHandleRootProps, TableHandleRowRootElement, type TableHandleRowRootEvents, type TableHandleRowRootProps, TableHandleRowTriggerElement, type TableHandleRowTriggerEvents, type TableHandleRowTriggerProps, tableHandleColumnRootEvents, tableHandleColumnRootProps, tableHandleColumnTriggerEvents, tableHandleColumnTriggerProps, tableHandleDragPreviewEvents, tableHandleDragPreviewProps, tableHandleDropIndicatorEvents, tableHandleDropIndicatorProps, tableHandlePopoverContentEvents, tableHandlePopoverContentProps, tableHandlePopoverItemEvents, tableHandlePopoverItemProps, tableHandleRootEvents, tableHandleRootProps, tableHandleRowRootEvents, tableHandleRowRootProps, tableHandleRowTriggerEvents, tableHandleRowTriggerProps, useTableHandleColumnRoot, useTableHandleColumnTrigger, useTableHandleDragPreview, useTableHandleDropIndicator, useTableHandlePopoverContent, useTableHandlePopoverItem, useTableHandleRoot, useTableHandleRowRoot, useTableHandleRowTrigger };
301
+ export { TableHandleColumnRootElement, type TableHandleColumnRootEvents, type TableHandleColumnRootProps, TableHandleColumnTriggerElement, type TableHandleColumnTriggerEvents, type TableHandleColumnTriggerProps, TableHandleDragPreviewElement, type TableHandleDragPreviewEvents, type TableHandleDragPreviewProps, TableHandleDropIndicatorElement, type TableHandleDropIndicatorEvents, type TableHandleDropIndicatorProps, TableHandlePopoverContentElement, type TableHandlePopoverContentEvents, type TableHandlePopoverContentProps, TableHandlePopoverItemElement, type TableHandlePopoverItemEvents, type TableHandlePopoverItemProps, TableHandleRootElement, type TableHandleRootEvents, type TableHandleRootProps, TableHandleRowRootElement, type TableHandleRowRootEvents, type TableHandleRowRootProps, TableHandleRowTriggerElement, type TableHandleRowTriggerEvents, type TableHandleRowTriggerProps, tableHandleColumnRootEvents, tableHandleColumnRootProps, tableHandleColumnTriggerEvents, tableHandleColumnTriggerProps, tableHandleDragPreviewEvents, tableHandleDragPreviewProps, tableHandleDropIndicatorEvents, tableHandleDropIndicatorProps, tableHandlePopoverContentEvents, tableHandlePopoverContentProps, tableHandlePopoverItemEvents, tableHandlePopoverItemProps, tableHandleRootEvents, tableHandleRootProps, tableHandleRowRootEvents, tableHandleRowRootProps, tableHandleRowTriggerEvents, tableHandleRowTriggerProps, useTableHandleColumnRoot, useTableHandleColumnTrigger, useTableHandleDragPreview, useTableHandleDropIndicator, useTableHandlePopoverContent, useTableHandlePopoverItem, useTableHandleRoot, useTableHandleRowRoot, useTableHandleRowTrigger };
302
+ //# sourceMappingURL=prosekit-web-table-handle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prosekit-web-table-handle.d.ts","names":[],"sources":["../src/components/table-handle/table-handle-column-root/types.ts","../src/components/table-handle/table-handle-column-root/element.gen.ts","../src/components/table-handle/table-handle-column-root/setup.ts","../src/components/table-handle/table-handle-column-trigger/types.ts","../src/components/table-handle/table-handle-column-trigger/element.gen.ts","../src/components/table-handle/table-handle-column-trigger/setup.ts","../src/components/table-handle/table-handle-drag-preview/types.ts","../src/components/table-handle/table-handle-drag-preview/element.gen.ts","../src/components/table-handle/table-handle-drag-preview/setup.ts","../src/components/table-handle/table-handle-drop-indicator/types.ts","../src/components/table-handle/table-handle-drop-indicator/element.gen.ts","../src/components/table-handle/table-handle-drop-indicator/setup.ts","../src/components/table-handle/table-handle-popover-content/types.ts","../src/components/table-handle/table-handle-popover-content/element.gen.ts","../src/components/table-handle/table-handle-popover-content/setup.ts","../src/components/table-handle/table-handle-popover-item/types.ts","../src/components/table-handle/table-handle-popover-item/element.gen.ts","../src/components/table-handle/table-handle-popover-item/setup.ts","../src/components/table-handle/table-handle-root/types.ts","../src/components/table-handle/table-handle-root/element.gen.ts","../src/components/table-handle/table-handle-root/setup.ts","../src/components/table-handle/table-handle-row-root/types.ts","../src/components/table-handle/table-handle-row-root/element.gen.ts","../src/components/table-handle/table-handle-row-root/setup.ts","../src/components/table-handle/table-handle-row-trigger/types.ts","../src/components/table-handle/table-handle-row-trigger/element.gen.ts","../src/components/table-handle/table-handle-row-trigger/setup.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { getStateWithDefaults } from "./get-default-state-CIEy7xrl.js";
2
- import { useEditorExtension } from "./use-editor-extension-Cc7ZG7uj.js";
3
- import { getSafeEditorView } from "./get-safe-editor-view-DENm4avv.js";
4
- import { assignStyles, useScrolling } from "./use-scrolling-BNfsQs3S.js";
5
- import { cloneElement, deepCloneElement, injectStyle } from "./inject-style-D5jj7cme.js";
1
+ import { t as getStateWithDefaults } from "./get-default-state-BzBimBWi.js";
2
+ import { t as useEditorExtension } from "./use-editor-extension-B2WuUfnd.js";
3
+ import { t as getSafeEditorView } from "./get-safe-editor-view-Dt9Amrcn.js";
4
+ import { n as assignStyles, t as useScrolling } from "./use-scrolling-BOvyjDvH.js";
5
+ import { n as cloneElement, r as deepCloneElement, t as injectStyle } from "./inject-style-Dm6W58W3.js";
6
6
  import { createComputed, createContext, createSignal, defineCustomElement, defineEmit, registerCustomElement, useAttribute, useEffect, useEventListener } from "@aria-ui/core";
7
7
  import { defineDOMEventHandler, union } from "@prosekit/core";
8
8
  import { useOverlayPositionerState } from "@aria-ui/overlay/elements";
@@ -64,9 +64,8 @@ function useTableHandleColumnRoot(host, { state }) {
64
64
  const presence = createComputed(() => !!referenceCell.get());
65
65
  useAttribute(host, "data-state", () => presence.get() ? "open" : "closed");
66
66
  usePresence(host, presence);
67
- const menuRootState = getStateWithDefaults({ open: contentOpen }, menuRootProps);
68
67
  useMenuRoot(host, {
69
- state: menuRootState,
68
+ state: getStateWithDefaults({ open: contentOpen }, menuRootProps),
70
69
  emit: () => void 0
71
70
  });
72
71
  }
@@ -189,16 +188,13 @@ function useInitDndPosition(host, editor, onInit) {
189
188
  const dndContext = tableHandleDndContext.consume(host);
190
189
  const rootContext = tableHandleRootContext.consume(host);
191
190
  const draggingSignal = createComputed(() => {
192
- const context = dndContext.get();
193
- return context.dragging;
191
+ return dndContext.get().dragging;
194
192
  });
195
193
  const directionSignal = createComputed(() => {
196
- const context = dndContext.get();
197
- return context.direction;
194
+ return dndContext.get().direction;
198
195
  });
199
196
  const draggingIndexSignal = createComputed(() => {
200
- const context = dndContext.get();
201
- return context.draggingIndex;
197
+ return dndContext.get().draggingIndex;
202
198
  });
203
199
  useEffect(host, () => {
204
200
  const view = getSafeEditorView(editor.get());
@@ -242,20 +238,11 @@ function useInitDndPosition(host, editor, onInit) {
242
238
  function getTableDOMByPos(view, pos) {
243
239
  const dom = view.domAtPos(pos).node;
244
240
  if (!dom) return;
245
- const element = isHTMLElement(dom) ? dom : dom.parentElement;
246
- const table = element?.closest("table");
247
- return table ?? void 0;
241
+ return (isHTMLElement(dom) ? dom : dom.parentElement)?.closest("table") ?? void 0;
248
242
  }
249
243
  function getTargetFirstCellDOM(table, index, direction) {
250
- if (direction === "row") {
251
- const row = table.querySelectorAll("tr")[index];
252
- const cell = row?.querySelector("td");
253
- return cell ?? void 0;
254
- } else {
255
- const row = table.querySelector("tr");
256
- const cell = row?.querySelectorAll("td")[index];
257
- return cell ?? void 0;
258
- }
244
+ if (direction === "row") return table.querySelectorAll("tr")[index]?.querySelector("td") ?? void 0;
245
+ else return table.querySelector("tr")?.querySelectorAll("td")[index] ?? void 0;
259
246
  }
260
247
  function getDndRelatedDOMs(view, cellPos, draggingIndex, direction) {
261
248
  if (cellPos == null) return;
@@ -290,8 +277,7 @@ const isColorMixSupported = once(() => {
290
277
  function fadeColor(color, opacity) {
291
278
  if (isColorMixSupported()) {
292
279
  const transparentWeight = (1 - opacity) * 100;
293
- const colorWeight = opacity * 100;
294
- return `color-mix(in srgb, ${color} ${colorWeight}%, transparent ${transparentWeight}%)`;
280
+ return `color-mix(in srgb, ${color} ${opacity * 100}%, transparent ${transparentWeight}%)`;
295
281
  }
296
282
  }
297
283
 
@@ -300,12 +286,10 @@ function fadeColor(color, opacity) {
300
286
  function getEffectiveBackgroundColor(element) {
301
287
  let current = element;
302
288
  while (current) {
303
- const style = current.ownerDocument.defaultView?.getComputedStyle(current);
304
- const backgroundColor = style?.backgroundColor;
289
+ const backgroundColor = (current.ownerDocument.defaultView?.getComputedStyle(current))?.backgroundColor;
305
290
  if (backgroundColor && backgroundColor !== "transparent" && backgroundColor !== "rgba(0, 0, 0, 0)") return backgroundColor;
306
291
  current = current.parentElement;
307
292
  }
308
- return void 0;
309
293
  }
310
294
 
311
295
  //#endregion
@@ -339,8 +323,7 @@ function createPreviewDOM(table, previewRoot, index, direction) {
339
323
  const [previewRow, previewRowStyle] = cloneElement(row);
340
324
  injectStyle(previewRoot, previewRowStyle);
341
325
  unsetSize(previewRow);
342
- const cells = row.querySelectorAll("td");
343
- const cell = cells[index];
326
+ const cell = row.querySelectorAll("td")[index];
344
327
  if (cell) {
345
328
  const [previewCell, previewCellStyle] = deepCloneElement(cell);
346
329
  injectStyle(previewRoot, previewCellStyle);
@@ -366,16 +349,13 @@ function useUpdatePreviewPosition(host, editor) {
366
349
  const dndContext = tableHandleDndContext.consume(host);
367
350
  const rootContext = tableHandleRootContext.consume(host);
368
351
  const draggingSignal = createComputed(() => {
369
- const context = dndContext.get();
370
- return context.dragging;
352
+ return dndContext.get().dragging;
371
353
  });
372
354
  const clientXSignal = createComputed(() => {
373
- const context = dndContext.get();
374
- return context.x;
355
+ return dndContext.get().x;
375
356
  });
376
357
  const clientYSignal = createComputed(() => {
377
- const context = dndContext.get();
378
- return context.y;
358
+ return dndContext.get().y;
379
359
  });
380
360
  useEffect(host, () => {
381
361
  const view = getSafeEditorView(editor.get());
@@ -493,12 +473,10 @@ function findDragOverElement(elements, pointer, axis) {
493
473
  function getDragOverColumn(table, pointerX) {
494
474
  const firstRow = table.querySelector("tr");
495
475
  if (!firstRow) return;
496
- const cells = Array.from(firstRow.children);
497
- return findDragOverElement(cells, pointerX, "x");
476
+ return findDragOverElement(Array.from(firstRow.children), pointerX, "x");
498
477
  }
499
478
  function getDragOverRow(table, pointerY) {
500
- const rows = Array.from(table.querySelectorAll("tr"));
501
- return findDragOverElement(rows, pointerY, "y");
479
+ return findDragOverElement(Array.from(table.querySelectorAll("tr")), pointerY, "y");
502
480
  }
503
481
 
504
482
  //#endregion
@@ -507,16 +485,13 @@ function useUpdateIndicatorPosition(host, editor, handleWidth) {
507
485
  const dndContext = tableHandleDndContext.consume(host);
508
486
  const rootContext = tableHandleRootContext.consume(host);
509
487
  const draggingSignal = createComputed(() => {
510
- const context = dndContext.get();
511
- return context.dragging;
488
+ return dndContext.get().dragging;
512
489
  });
513
490
  const clientXSignal = createComputed(() => {
514
- const context = dndContext.get();
515
- return context.x;
491
+ return dndContext.get().x;
516
492
  });
517
493
  const clientYSignal = createComputed(() => {
518
- const context = dndContext.get();
519
- return context.y;
494
+ return dndContext.get().y;
520
495
  });
521
496
  const startXSignal = createComputed(() => {
522
497
  return dndContext.get().startX;
@@ -631,15 +606,13 @@ registerCustomElement("prosekit-table-handle-drop-indicator", TableHandleDropInd
631
606
  */
632
607
  function useTableHandlePopoverContent(host, { state, emit }) {
633
608
  const rootContext = tableHandleRootContext.consume(host);
634
- const open = createComputed(() => !!rootContext.get());
635
- const keyDownTarget = useKeyDownTarget(host, open);
636
- const menuContentState = getStateWithDefaults({
637
- placement: state.placement,
638
- offset: state.offset,
639
- eventTarget: createSignal(keyDownTarget)
640
- }, menuContentProps);
609
+ const keyDownTarget = useKeyDownTarget(host, createComputed(() => !!rootContext.get()));
641
610
  useMenuContent(host, {
642
- state: menuContentState,
611
+ state: getStateWithDefaults({
612
+ placement: state.placement,
613
+ offset: state.offset,
614
+ eventTarget: createSignal(keyDownTarget)
615
+ }, menuContentProps),
643
616
  emit
644
617
  });
645
618
  }
@@ -732,8 +705,7 @@ function useEditorTyping(host, editor) {
732
705
  const handlePointerMove = () => {
733
706
  typing.set(false);
734
707
  };
735
- const extension = union(defineDOMEventHandler("keypress", handleKeypress), defineDOMEventHandler("pointermove", handlePointerMove));
736
- useEditorExtension(host, editor, extension);
708
+ useEditorExtension(host, editor, union(defineDOMEventHandler("keypress", handleKeypress), defineDOMEventHandler("pointermove", handlePointerMove)));
737
709
  return typing;
738
710
  }
739
711
 
@@ -882,8 +854,7 @@ function getHoveringCell(view, event) {
882
854
  }
883
855
  function getCellPos(map, tableStart, rowIndex, colIndex) {
884
856
  const cellIndex = getCellIndex(map, rowIndex, colIndex);
885
- const posInTable = map.map[cellIndex];
886
- return tableStart + posInTable;
857
+ return tableStart + map.map[cellIndex];
887
858
  }
888
859
  function getCellIndex(map, rowIndex, colIndex) {
889
860
  return map.width * rowIndex + colIndex;
@@ -900,8 +871,7 @@ function useTableHandleRoot(host, { state }) {
900
871
  const dndContext = createSignal(defaultTableHandleDndContext);
901
872
  const hoveringCell = useHoveringCell(host, editor);
902
873
  const typing = useEditorTyping(host, editor);
903
- const isInTable = createComputed(() => !!hoveringCell.get());
904
- const selecting = useSelecting(host, editor, isInTable);
874
+ const selecting = useSelecting(host, editor, createComputed(() => !!hoveringCell.get()));
905
875
  const scrolling = useScrolling(host);
906
876
  const canShow = createComputed(() => {
907
877
  return !typing.get() && !selecting.get() && !scrolling.get();
@@ -915,17 +885,14 @@ function useTableHandleRoot(host, { state }) {
915
885
  }
916
886
  function useHoveringCell(host, editor) {
917
887
  const hoveringCell = createSignal(null);
918
- const extension = defineCellHoverHandler((curr) => {
919
- const prev = hoveringCell.peek();
920
- if (!isHoveringCellInfoEqual(prev, curr)) hoveringCell.set(curr);
921
- });
922
- useEditorExtension(host, editor, extension);
888
+ useEditorExtension(host, editor, defineCellHoverHandler((curr) => {
889
+ if (!isHoveringCellInfoEqual(hoveringCell.peek(), curr)) hoveringCell.set(curr);
890
+ }));
923
891
  return hoveringCell;
924
892
  }
925
893
  function defineCellHoverHandler(handler) {
926
894
  const pointerHandler = (view, event) => {
927
- const hoveringCell = getHoveringCell(view, event);
928
- return handler(hoveringCell ?? null);
895
+ return handler(getHoveringCell(view, event) ?? null);
929
896
  };
930
897
  return defineDOMEventHandler("pointerover", pointerHandler);
931
898
  }
@@ -973,9 +940,8 @@ function useTableHandleRowRoot(host, { state }) {
973
940
  const presence = createComputed(() => !!referenceCell.get());
974
941
  useAttribute(host, "data-state", () => presence.get() ? "open" : "closed");
975
942
  usePresence(host, presence);
976
- const menuRootState = getStateWithDefaults({ open: contentOpen }, menuRootProps);
977
943
  useMenuRoot(host, {
978
- state: menuRootState,
944
+ state: getStateWithDefaults({ open: contentOpen }, menuRootProps),
979
945
  emit: defineEmit(host, menuRootEvents)
980
946
  });
981
947
  }
@@ -1067,4 +1033,5 @@ var TableHandleRowTriggerElement = class extends TableHandleRowTriggerElementBas
1067
1033
  registerCustomElement("prosekit-table-handle-row-trigger", TableHandleRowTriggerElement);
1068
1034
 
1069
1035
  //#endregion
1070
- export { TableHandleColumnRootElement, TableHandleColumnTriggerElement, TableHandleDragPreviewElement, TableHandleDropIndicatorElement, TableHandlePopoverContentElement, TableHandlePopoverItemElement, TableHandleRootElement, TableHandleRowRootElement, TableHandleRowTriggerElement, tableHandleColumnRootEvents, tableHandleColumnRootProps, tableHandleColumnTriggerEvents, tableHandleColumnTriggerProps, tableHandleDragPreviewEvents, tableHandleDragPreviewProps, tableHandleDropIndicatorEvents, tableHandleDropIndicatorProps, tableHandlePopoverContentEvents, tableHandlePopoverContentProps, tableHandlePopoverItemEvents, tableHandlePopoverItemProps, tableHandleRootEvents, tableHandleRootProps, tableHandleRowRootEvents, tableHandleRowRootProps, tableHandleRowTriggerEvents, tableHandleRowTriggerProps, useTableHandleColumnRoot, useTableHandleColumnTrigger, useTableHandleDragPreview, useTableHandleDropIndicator, useTableHandlePopoverContent, useTableHandlePopoverItem, useTableHandleRoot, useTableHandleRowRoot, useTableHandleRowTrigger };
1036
+ export { TableHandleColumnRootElement, TableHandleColumnTriggerElement, TableHandleDragPreviewElement, TableHandleDropIndicatorElement, TableHandlePopoverContentElement, TableHandlePopoverItemElement, TableHandleRootElement, TableHandleRowRootElement, TableHandleRowTriggerElement, tableHandleColumnRootEvents, tableHandleColumnRootProps, tableHandleColumnTriggerEvents, tableHandleColumnTriggerProps, tableHandleDragPreviewEvents, tableHandleDragPreviewProps, tableHandleDropIndicatorEvents, tableHandleDropIndicatorProps, tableHandlePopoverContentEvents, tableHandlePopoverContentProps, tableHandlePopoverItemEvents, tableHandlePopoverItemProps, tableHandleRootEvents, tableHandleRootProps, tableHandleRowRootEvents, tableHandleRowRootProps, tableHandleRowTriggerEvents, tableHandleRowTriggerProps, useTableHandleColumnRoot, useTableHandleColumnTrigger, useTableHandleDragPreview, useTableHandleDropIndicator, useTableHandlePopoverContent, useTableHandlePopoverItem, useTableHandleRoot, useTableHandleRowRoot, useTableHandleRowTrigger };
1037
+ //# sourceMappingURL=prosekit-web-table-handle.js.map