@prosekit/web 0.3.17 → 0.3.18
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.
|
@@ -11,8 +11,7 @@ import type { defineTableCommands } from '@prosekit/extensions/table';
|
|
|
11
11
|
import { Editor } from '@prosekit/core';
|
|
12
12
|
import type { EditorView } from '@prosekit/pm/view';
|
|
13
13
|
import type { EmptyObject } from '@aria-ui/core';
|
|
14
|
-
import { Extension } from '@prosekit/core';
|
|
15
|
-
import { ExtensionTyping } from '@prosekit/core';
|
|
14
|
+
import type { Extension } from '@prosekit/core';
|
|
16
15
|
import { FocusChangeHandler } from '@prosekit/core';
|
|
17
16
|
import { ItemFilter } from '@aria-ui/collection';
|
|
18
17
|
import { Keymap } from '@prosekit/core';
|
|
@@ -22,6 +21,7 @@ import { MenuItemProps } from '@aria-ui/menu';
|
|
|
22
21
|
import { Options } from 'tsup';
|
|
23
22
|
import { OverlayPositionerProps } from '@aria-ui/overlay';
|
|
24
23
|
import type { Placement } from '@floating-ui/dom';
|
|
24
|
+
import { PlainExtension } from '@prosekit/core';
|
|
25
25
|
import { PopoverContentProps } from '@aria-ui/popover';
|
|
26
26
|
import { PopoverRootProps } from '@aria-ui/popover';
|
|
27
27
|
import { PopoverTriggerProps } from '@aria-ui/popover';
|
|
@@ -614,11 +614,9 @@ export { defaultTooltipRootProps as defaultTooltipRootProps_alias_1 }
|
|
|
614
614
|
export { defaultTooltipTriggerProps }
|
|
615
615
|
export { defaultTooltipTriggerProps as defaultTooltipTriggerProps_alias_1 }
|
|
616
616
|
|
|
617
|
-
export declare function defineCellHoverHandler(handler: (hoveringCell: HoveringCellInfo | null) => void): Extension<ExtensionTyping<any, any, any>>;
|
|
618
|
-
|
|
619
617
|
export declare function defineCustomElement(name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions): void;
|
|
620
618
|
|
|
621
|
-
export declare function defineElementHoverHandler(handler: ElementHoverHandler): Union<readonly [
|
|
619
|
+
export declare function defineElementHoverHandler(handler: ElementHoverHandler): Union<readonly [PlainExtension, PlainExtension, PlainExtension]>;
|
|
622
620
|
|
|
623
621
|
export declare type ElementHoverHandler = (reference: VirtualElement | null, hoverState: HoverState | null) => void;
|
|
624
622
|
|
|
@@ -219,6 +219,7 @@ var defaultTableHandleRootProps = Object.freeze({
|
|
|
219
219
|
|
|
220
220
|
// src/components/table-handle/table-handle-root/state.ts
|
|
221
221
|
import {
|
|
222
|
+
createComputed as createComputed3,
|
|
222
223
|
createSignal as createSignal4,
|
|
223
224
|
useEffect as useEffect3
|
|
224
225
|
} from "@aria-ui/core";
|
|
@@ -301,10 +302,13 @@ function useTableHandleRoot(host, state) {
|
|
|
301
302
|
const context = createSignal4(null);
|
|
302
303
|
const hoveringCell = useHoveringCell(host, editor);
|
|
303
304
|
const typing = useEditorTyping(host, editor);
|
|
305
|
+
const isInTable = createComputed3(() => !!hoveringCell.get());
|
|
306
|
+
const selecting = useSelecting(host, editor, isInTable);
|
|
304
307
|
useEffect3(host, () => {
|
|
305
308
|
const typingValue = typing.get();
|
|
309
|
+
const selectingValue = selecting.get();
|
|
306
310
|
const hoveringCellValue = hoveringCell.get();
|
|
307
|
-
context.set(typingValue ? null : hoveringCellValue);
|
|
311
|
+
context.set(typingValue || selectingValue ? null : hoveringCellValue);
|
|
308
312
|
});
|
|
309
313
|
tableHandleRootContext.provide(host, context);
|
|
310
314
|
}
|
|
@@ -326,6 +330,36 @@ function defineCellHoverHandler(handler) {
|
|
|
326
330
|
};
|
|
327
331
|
return defineDOMEventHandler2("pointerover", pointerHandler);
|
|
328
332
|
}
|
|
333
|
+
function useSelecting(host, editor, isInTable) {
|
|
334
|
+
const selecting = createSignal4(false);
|
|
335
|
+
useEffect3(host, () => {
|
|
336
|
+
var _a;
|
|
337
|
+
if (!isInTable.get()) {
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
340
|
+
const root = (_a = editor.peek()) == null ? void 0 : _a.view.root;
|
|
341
|
+
if (!root) {
|
|
342
|
+
return;
|
|
343
|
+
}
|
|
344
|
+
const pointerDownHandler = (event) => {
|
|
345
|
+
const target = event.target;
|
|
346
|
+
if (!target || host.contains(event.target)) {
|
|
347
|
+
return;
|
|
348
|
+
}
|
|
349
|
+
selecting.set(true);
|
|
350
|
+
};
|
|
351
|
+
const pointerUpHandler = () => {
|
|
352
|
+
selecting.set(false);
|
|
353
|
+
};
|
|
354
|
+
root.addEventListener("pointerdown", pointerDownHandler);
|
|
355
|
+
root.addEventListener("pointerup", pointerUpHandler);
|
|
356
|
+
return () => {
|
|
357
|
+
root.removeEventListener("pointerdown", pointerDownHandler);
|
|
358
|
+
root.removeEventListener("pointerup", pointerUpHandler);
|
|
359
|
+
};
|
|
360
|
+
});
|
|
361
|
+
return selecting;
|
|
362
|
+
}
|
|
329
363
|
|
|
330
364
|
// src/components/table-handle/table-handle-root/element.gen.ts
|
|
331
365
|
var TableHandleRootElement = class extends ElementBuilder5(useTableHandleRoot, defaultTableHandleRootProps) {
|
|
@@ -347,7 +381,7 @@ var defaultTableHandleRowRootProps = Object.freeze({
|
|
|
347
381
|
|
|
348
382
|
// src/components/table-handle/table-handle-row-root/state.ts
|
|
349
383
|
import {
|
|
350
|
-
createComputed as
|
|
384
|
+
createComputed as createComputed4,
|
|
351
385
|
createSignal as createSignal5,
|
|
352
386
|
mapSignals as mapSignals3,
|
|
353
387
|
useAttribute as useAttribute3,
|
|
@@ -359,11 +393,11 @@ import { usePresence as usePresence2 } from "@aria-ui/presence";
|
|
|
359
393
|
function useTableHandleRowRoot(host, state) {
|
|
360
394
|
const { editor, ...overlayState } = state;
|
|
361
395
|
const rootContext = tableHandleRootContext.consume(host);
|
|
362
|
-
const rowFirstCellPos =
|
|
396
|
+
const rowFirstCellPos = createComputed4(() => {
|
|
363
397
|
var _a;
|
|
364
398
|
return (_a = rootContext.get()) == null ? void 0 : _a.rowFirstCellPos;
|
|
365
399
|
});
|
|
366
|
-
const referenceCell =
|
|
400
|
+
const referenceCell = createComputed4(() => {
|
|
367
401
|
var _a;
|
|
368
402
|
const pos = rowFirstCellPos.get();
|
|
369
403
|
const view = (_a = editor.get()) == null ? void 0 : _a.view;
|
|
@@ -378,7 +412,7 @@ function useTableHandleRowRoot(host, state) {
|
|
|
378
412
|
useOverlayPositionerState2(host, overlayState, {
|
|
379
413
|
reference: referenceCell
|
|
380
414
|
});
|
|
381
|
-
const presence =
|
|
415
|
+
const presence = createComputed4(() => !!referenceCell.get());
|
|
382
416
|
useAttribute3(host, "data-state", () => presence.get() ? "open" : "closed");
|
|
383
417
|
usePresence2(host, presence);
|
|
384
418
|
useMenuRoot2(host, {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prosekit/web",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.18",
|
|
5
5
|
"private": false,
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "ocavue",
|
|
@@ -78,8 +78,8 @@
|
|
|
78
78
|
"@aria-ui/popover": "^0.0.20",
|
|
79
79
|
"@aria-ui/presence": "^0.0.14",
|
|
80
80
|
"@aria-ui/tooltip": "^0.0.22",
|
|
81
|
-
"@floating-ui/dom": "^1.6.
|
|
82
|
-
"@zag-js/dom-query": "^0.
|
|
81
|
+
"@floating-ui/dom": "^1.6.11",
|
|
82
|
+
"@zag-js/dom-query": "^0.68.1",
|
|
83
83
|
"just-omit": "^2.2.0",
|
|
84
84
|
"prosemirror-tables": "^1.5.0",
|
|
85
85
|
"@prosekit/core": "^0.7.11",
|
|
@@ -87,9 +87,9 @@
|
|
|
87
87
|
"@prosekit/pm": "^0.1.8"
|
|
88
88
|
},
|
|
89
89
|
"devDependencies": {
|
|
90
|
-
"tsup": "^8.
|
|
91
|
-
"typescript": "^5.
|
|
92
|
-
"vitest": "^2.
|
|
90
|
+
"tsup": "^8.3.0",
|
|
91
|
+
"typescript": "^5.6.2",
|
|
92
|
+
"vitest": "^2.1.1",
|
|
93
93
|
"@prosekit/dev": "0.0.0"
|
|
94
94
|
},
|
|
95
95
|
"scripts": {
|