@prosekit/web 0.3.12 → 0.3.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_tsup-dts-rollup.d.ts +426 -6
- package/dist/prosekit-web-autocomplete.js +16 -20
- package/dist/prosekit-web-block-handle.d.ts +9 -0
- package/dist/prosekit-web-block-handle.js +139 -45
- package/dist/prosekit-web-table-handle.d.ts +21 -0
- package/dist/prosekit-web-table-handle.js +440 -0
- package/package.json +14 -4
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useEditorExtension
|
|
3
|
+
} from "./chunk-MZSYOTZT.js";
|
|
4
|
+
import {
|
|
5
|
+
defineCustomElement
|
|
6
|
+
} from "./chunk-LCDA7GFP.js";
|
|
7
|
+
|
|
8
|
+
// src/components/table-handle/table-handle-column-root/element.gen.ts
|
|
9
|
+
import { ElementBuilder } from "@aria-ui/core";
|
|
10
|
+
|
|
11
|
+
// src/components/table-handle/table-handle-column-root/props.ts
|
|
12
|
+
import {
|
|
13
|
+
defaultOverlayPositionerProps
|
|
14
|
+
} from "@aria-ui/overlay";
|
|
15
|
+
var defaultTableHandleColumnRootProps = Object.freeze({
|
|
16
|
+
...defaultOverlayPositionerProps,
|
|
17
|
+
editor: null,
|
|
18
|
+
placement: "top"
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// src/components/table-handle/table-handle-column-root/state.ts
|
|
22
|
+
import {
|
|
23
|
+
createComputed,
|
|
24
|
+
createSignal,
|
|
25
|
+
mapSignals,
|
|
26
|
+
useAttribute,
|
|
27
|
+
useEffect
|
|
28
|
+
} from "@aria-ui/core";
|
|
29
|
+
import { defaultMenuRootProps, useMenuRoot } from "@aria-ui/menu";
|
|
30
|
+
import { useOverlayPositionerState } from "@aria-ui/overlay";
|
|
31
|
+
import { usePresence } from "@aria-ui/presence";
|
|
32
|
+
|
|
33
|
+
// src/components/table-handle/context.ts
|
|
34
|
+
import { createContext } from "@aria-ui/core";
|
|
35
|
+
var tableHandleRootContext = createContext(
|
|
36
|
+
"prosekit-table-handle-root-context",
|
|
37
|
+
null
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
// src/components/table-handle/table-handle-column-root/state.ts
|
|
41
|
+
function useTableHandleColumnRoot(host, state) {
|
|
42
|
+
const { editor, ...overlayState } = state;
|
|
43
|
+
const rootContext = tableHandleRootContext.consume(host);
|
|
44
|
+
const colFirstCellPos = createComputed(() => {
|
|
45
|
+
var _a;
|
|
46
|
+
return (_a = rootContext.get()) == null ? void 0 : _a.colFirstCellPos;
|
|
47
|
+
});
|
|
48
|
+
const referenceCell = createComputed(() => {
|
|
49
|
+
var _a;
|
|
50
|
+
const pos = colFirstCellPos.get();
|
|
51
|
+
const view = (_a = editor.get()) == null ? void 0 : _a.view;
|
|
52
|
+
if (!pos || !view) return null;
|
|
53
|
+
return view.nodeDOM(pos);
|
|
54
|
+
});
|
|
55
|
+
const contentOpen = createSignal(false);
|
|
56
|
+
useEffect(host, () => {
|
|
57
|
+
colFirstCellPos.get();
|
|
58
|
+
contentOpen.set(false);
|
|
59
|
+
});
|
|
60
|
+
useOverlayPositionerState(host, overlayState, {
|
|
61
|
+
reference: referenceCell
|
|
62
|
+
});
|
|
63
|
+
const presence = createComputed(() => !!referenceCell.get());
|
|
64
|
+
useAttribute(host, "data-state", () => presence.get() ? "open" : "closed");
|
|
65
|
+
usePresence(host, presence);
|
|
66
|
+
useMenuRoot(host, {
|
|
67
|
+
...mapSignals(defaultMenuRootProps),
|
|
68
|
+
open: contentOpen
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// src/components/table-handle/table-handle-column-root/element.gen.ts
|
|
73
|
+
var TableHandleColumnRootElement = class extends ElementBuilder(useTableHandleColumnRoot, defaultTableHandleColumnRootProps) {
|
|
74
|
+
};
|
|
75
|
+
defineCustomElement("prosekit-table-handle-column-root", TableHandleColumnRootElement);
|
|
76
|
+
|
|
77
|
+
// src/components/table-handle/table-handle-column-trigger/element.gen.ts
|
|
78
|
+
import { ElementBuilder as ElementBuilder2 } from "@aria-ui/core";
|
|
79
|
+
|
|
80
|
+
// src/components/table-handle/table-handle-column-trigger/props.ts
|
|
81
|
+
var defaultTableHandleColumnTriggerProps = Object.freeze({
|
|
82
|
+
editor: null
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
// src/components/table-handle/table-handle-column-trigger/state.ts
|
|
86
|
+
import {
|
|
87
|
+
useEventListener
|
|
88
|
+
} from "@aria-ui/core";
|
|
89
|
+
import { useMenuTrigger } from "@aria-ui/menu";
|
|
90
|
+
import { selectTableColumn } from "@prosekit/extensions/table";
|
|
91
|
+
function useTableHandleColumnTrigger(host, state) {
|
|
92
|
+
useMenuTrigger(host);
|
|
93
|
+
const context = tableHandleRootContext.consume(host);
|
|
94
|
+
useEventListener(host, "pointerdown", () => {
|
|
95
|
+
var _a;
|
|
96
|
+
const editor = state.editor.peek();
|
|
97
|
+
const cellPos = (_a = context.peek()) == null ? void 0 : _a.cellPos;
|
|
98
|
+
if (!editor || !cellPos) return;
|
|
99
|
+
editor.exec(selectTableColumn({ head: cellPos }));
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// src/components/table-handle/table-handle-column-trigger/element.gen.ts
|
|
104
|
+
var TableHandleColumnTriggerElement = class extends ElementBuilder2(useTableHandleColumnTrigger, defaultTableHandleColumnTriggerProps) {
|
|
105
|
+
};
|
|
106
|
+
defineCustomElement("prosekit-table-handle-column-trigger", TableHandleColumnTriggerElement);
|
|
107
|
+
|
|
108
|
+
// src/components/table-handle/table-handle-popover-content/element.gen.ts
|
|
109
|
+
import { ElementBuilder as ElementBuilder3 } from "@aria-ui/core";
|
|
110
|
+
|
|
111
|
+
// src/components/table-handle/table-handle-popover-content/props.ts
|
|
112
|
+
import { defaultMenuContentProps } from "@aria-ui/menu";
|
|
113
|
+
var defaultTableHandlePopoverContentProps = Object.freeze({
|
|
114
|
+
...defaultMenuContentProps,
|
|
115
|
+
placement: "right-start",
|
|
116
|
+
offset: { mainAxis: -4, crossAxis: 4 },
|
|
117
|
+
editor: null
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
// src/components/table-handle/table-handle-popover-content/state.ts
|
|
121
|
+
import {
|
|
122
|
+
createComputed as createComputed2,
|
|
123
|
+
createSignal as createSignal2,
|
|
124
|
+
mapSignals as mapSignals2,
|
|
125
|
+
useEffect as useEffect2
|
|
126
|
+
} from "@aria-ui/core";
|
|
127
|
+
import {
|
|
128
|
+
defaultMenuContentProps as defaultMenuContentProps2,
|
|
129
|
+
useMenuContent
|
|
130
|
+
} from "@aria-ui/menu";
|
|
131
|
+
function useTableHandlePopoverContent(host, state) {
|
|
132
|
+
const rootContext = tableHandleRootContext.consume(host);
|
|
133
|
+
const open = createComputed2(() => !!rootContext.get());
|
|
134
|
+
const onKeydownHandlerAdd = useKeyboardHandler(host, open);
|
|
135
|
+
const menuContentProps = {
|
|
136
|
+
...mapSignals2({
|
|
137
|
+
...defaultMenuContentProps2,
|
|
138
|
+
onKeydownHandlerAdd
|
|
139
|
+
}),
|
|
140
|
+
placement: state.placement,
|
|
141
|
+
offset: state.offset
|
|
142
|
+
};
|
|
143
|
+
useMenuContent(host, menuContentProps);
|
|
144
|
+
}
|
|
145
|
+
function useKeyboardHandler(element, open) {
|
|
146
|
+
const keydownHandler = createSignal2(
|
|
147
|
+
null
|
|
148
|
+
);
|
|
149
|
+
let disposeKeydownHandler;
|
|
150
|
+
useEffect2(element, () => {
|
|
151
|
+
const keydownHandlerValue = keydownHandler.get();
|
|
152
|
+
if (!keydownHandlerValue) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
const handleKeydown = (event) => {
|
|
156
|
+
if (event.isComposing || event.defaultPrevented || !open.get()) {
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
keydownHandlerValue(event);
|
|
160
|
+
};
|
|
161
|
+
document.addEventListener("keydown", handleKeydown);
|
|
162
|
+
disposeKeydownHandler = () => {
|
|
163
|
+
document.removeEventListener("keydown", handleKeydown);
|
|
164
|
+
};
|
|
165
|
+
});
|
|
166
|
+
return (keydownHandlerValue) => {
|
|
167
|
+
keydownHandler.set(keydownHandlerValue);
|
|
168
|
+
return () => {
|
|
169
|
+
disposeKeydownHandler == null ? void 0 : disposeKeydownHandler();
|
|
170
|
+
disposeKeydownHandler = void 0;
|
|
171
|
+
};
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// src/components/table-handle/table-handle-popover-content/element.gen.ts
|
|
176
|
+
var TableHandlePopoverContentElement = class extends ElementBuilder3(useTableHandlePopoverContent, defaultTableHandlePopoverContentProps) {
|
|
177
|
+
};
|
|
178
|
+
defineCustomElement("prosekit-table-handle-popover-content", TableHandlePopoverContentElement);
|
|
179
|
+
|
|
180
|
+
// src/components/table-handle/table-handle-popover-item/element.gen.ts
|
|
181
|
+
import { ElementBuilder as ElementBuilder4 } from "@aria-ui/core";
|
|
182
|
+
|
|
183
|
+
// src/components/table-handle/table-handle-popover-item/props.ts
|
|
184
|
+
import { defaultMenuItemProps } from "@aria-ui/menu";
|
|
185
|
+
var defaultTableHandlePopoverItemProps = Object.freeze({
|
|
186
|
+
...defaultMenuItemProps,
|
|
187
|
+
disabled: false
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
// src/components/table-handle/table-handle-popover-item/state.ts
|
|
191
|
+
import {
|
|
192
|
+
useAttribute as useAttribute2
|
|
193
|
+
} from "@aria-ui/core";
|
|
194
|
+
import { useMenuItem } from "@aria-ui/menu";
|
|
195
|
+
function useTableHandlePopoverItem(element, state) {
|
|
196
|
+
useAttribute2(
|
|
197
|
+
element,
|
|
198
|
+
"data-disabled",
|
|
199
|
+
() => {
|
|
200
|
+
var _a;
|
|
201
|
+
return ((_a = state.disabled) == null ? void 0 : _a.get()) ? "true" : "false";
|
|
202
|
+
}
|
|
203
|
+
);
|
|
204
|
+
useMenuItem(element, state);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// src/components/table-handle/table-handle-popover-item/element.gen.ts
|
|
208
|
+
var TableHandlePopoverItemElement = class extends ElementBuilder4(useTableHandlePopoverItem, defaultTableHandlePopoverItemProps) {
|
|
209
|
+
};
|
|
210
|
+
defineCustomElement("prosekit-table-handle-popover-item", TableHandlePopoverItemElement);
|
|
211
|
+
|
|
212
|
+
// src/components/table-handle/table-handle-root/element.gen.ts
|
|
213
|
+
import { ElementBuilder as ElementBuilder5 } from "@aria-ui/core";
|
|
214
|
+
|
|
215
|
+
// src/components/table-handle/table-handle-root/props.ts
|
|
216
|
+
var defaultTableHandleRootProps = Object.freeze({
|
|
217
|
+
editor: null
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
// src/components/table-handle/table-handle-root/state.ts
|
|
221
|
+
import {
|
|
222
|
+
createSignal as createSignal4,
|
|
223
|
+
useEffect as useEffect3
|
|
224
|
+
} from "@aria-ui/core";
|
|
225
|
+
import { defineDOMEventHandler as defineDOMEventHandler2 } from "@prosekit/core";
|
|
226
|
+
|
|
227
|
+
// src/hooks/use-editor-typing.ts
|
|
228
|
+
import {
|
|
229
|
+
createSignal as createSignal3
|
|
230
|
+
} from "@aria-ui/core";
|
|
231
|
+
import { defineDOMEventHandler, union } from "@prosekit/core";
|
|
232
|
+
function useEditorTyping(host, editor) {
|
|
233
|
+
const typing = createSignal3(false);
|
|
234
|
+
const handleKeypress = () => {
|
|
235
|
+
typing.set(true);
|
|
236
|
+
};
|
|
237
|
+
const handlePointerMove = () => {
|
|
238
|
+
typing.set(false);
|
|
239
|
+
};
|
|
240
|
+
const extension = union(
|
|
241
|
+
defineDOMEventHandler("keypress", handleKeypress),
|
|
242
|
+
defineDOMEventHandler("pointermove", handlePointerMove)
|
|
243
|
+
);
|
|
244
|
+
useEditorExtension(host, editor, extension);
|
|
245
|
+
return typing;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// src/components/table-handle/utils.ts
|
|
249
|
+
import { cellAround, TableMap } from "prosemirror-tables";
|
|
250
|
+
function isHoveringCellInfoEqual(a, b) {
|
|
251
|
+
if (!a && !b) return true;
|
|
252
|
+
if (!a || !b) return false;
|
|
253
|
+
return a.rowIndex === b.rowIndex && a.colIndex === b.colIndex && a.cellPos === b.cellPos && a.rowFirstCellPos === b.rowFirstCellPos && a.colFirstCellPos === b.colFirstCellPos;
|
|
254
|
+
}
|
|
255
|
+
function domCellAround(target) {
|
|
256
|
+
var _a;
|
|
257
|
+
while (target && target.nodeName != "TD" && target.nodeName != "TH") {
|
|
258
|
+
target = ((_a = target.classList) == null ? void 0 : _a.contains("ProseMirror")) ? null : target.parentNode;
|
|
259
|
+
}
|
|
260
|
+
return target;
|
|
261
|
+
}
|
|
262
|
+
function getHoveringCell(view, event) {
|
|
263
|
+
const domCell = domCellAround(event.target);
|
|
264
|
+
if (!domCell) return;
|
|
265
|
+
const { left, top, width, height } = domCell.getBoundingClientRect();
|
|
266
|
+
const eventPos = view.posAtCoords({
|
|
267
|
+
// Use the center coordinates of the cell to ensure we're within the
|
|
268
|
+
// selected cell. This prevents potential issues when the mouse is on the
|
|
269
|
+
// border of two cells.
|
|
270
|
+
left: left + width / 2,
|
|
271
|
+
top: top + height / 2
|
|
272
|
+
});
|
|
273
|
+
if (!eventPos) return;
|
|
274
|
+
const $cellPos = cellAround(view.state.doc.resolve(eventPos.pos));
|
|
275
|
+
if (!$cellPos) return;
|
|
276
|
+
const map = TableMap.get($cellPos.node(-1));
|
|
277
|
+
const tableStart = $cellPos.start(-1);
|
|
278
|
+
const cellRect = map.findCell($cellPos.pos - tableStart);
|
|
279
|
+
const rowIndex = cellRect.top;
|
|
280
|
+
const colIndex = cellRect.left;
|
|
281
|
+
return {
|
|
282
|
+
rowIndex,
|
|
283
|
+
colIndex,
|
|
284
|
+
cellPos: $cellPos.pos,
|
|
285
|
+
rowFirstCellPos: getCellPos(map, tableStart, rowIndex, 0),
|
|
286
|
+
colFirstCellPos: getCellPos(map, tableStart, 0, colIndex)
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
function getCellPos(map, tableStart, rowIndex, colIndex) {
|
|
290
|
+
const cellIndex = getCellIndex(map, rowIndex, colIndex);
|
|
291
|
+
const posInTable = map.map[cellIndex];
|
|
292
|
+
return tableStart + posInTable;
|
|
293
|
+
}
|
|
294
|
+
function getCellIndex(map, rowIndex, colIndex) {
|
|
295
|
+
return map.width * rowIndex + colIndex;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
// src/components/table-handle/table-handle-root/state.ts
|
|
299
|
+
function useTableHandleRoot(host, state) {
|
|
300
|
+
const { editor } = state;
|
|
301
|
+
const context = createSignal4(null);
|
|
302
|
+
const hoveringCell = useHoveringCell(host, editor);
|
|
303
|
+
const typing = useEditorTyping(host, editor);
|
|
304
|
+
useEffect3(host, () => {
|
|
305
|
+
const typingValue = typing.get();
|
|
306
|
+
const hoveringCellValue = hoveringCell.get();
|
|
307
|
+
context.set(typingValue ? null : hoveringCellValue);
|
|
308
|
+
});
|
|
309
|
+
tableHandleRootContext.provide(host, context);
|
|
310
|
+
}
|
|
311
|
+
function useHoveringCell(host, editor) {
|
|
312
|
+
const hoveringCell = createSignal4(null);
|
|
313
|
+
const extension = defineCellHoverHandler((curr) => {
|
|
314
|
+
const prev = hoveringCell.peek();
|
|
315
|
+
if (!isHoveringCellInfoEqual(prev, curr)) {
|
|
316
|
+
hoveringCell.set(curr);
|
|
317
|
+
}
|
|
318
|
+
});
|
|
319
|
+
useEditorExtension(host, editor, extension);
|
|
320
|
+
return hoveringCell;
|
|
321
|
+
}
|
|
322
|
+
function defineCellHoverHandler(handler) {
|
|
323
|
+
const pointerHandler = (view, event) => {
|
|
324
|
+
const hoveringCell = getHoveringCell(view, event);
|
|
325
|
+
return handler(hoveringCell != null ? hoveringCell : null);
|
|
326
|
+
};
|
|
327
|
+
return defineDOMEventHandler2("pointerover", pointerHandler);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
// src/components/table-handle/table-handle-root/element.gen.ts
|
|
331
|
+
var TableHandleRootElement = class extends ElementBuilder5(useTableHandleRoot, defaultTableHandleRootProps) {
|
|
332
|
+
};
|
|
333
|
+
defineCustomElement("prosekit-table-handle-root", TableHandleRootElement);
|
|
334
|
+
|
|
335
|
+
// src/components/table-handle/table-handle-row-root/element.gen.ts
|
|
336
|
+
import { ElementBuilder as ElementBuilder6 } from "@aria-ui/core";
|
|
337
|
+
|
|
338
|
+
// src/components/table-handle/table-handle-row-root/props.ts
|
|
339
|
+
import {
|
|
340
|
+
defaultOverlayPositionerProps as defaultOverlayPositionerProps2
|
|
341
|
+
} from "@aria-ui/overlay";
|
|
342
|
+
var defaultTableHandleRowRootProps = Object.freeze({
|
|
343
|
+
...defaultOverlayPositionerProps2,
|
|
344
|
+
editor: null,
|
|
345
|
+
placement: "left"
|
|
346
|
+
});
|
|
347
|
+
|
|
348
|
+
// src/components/table-handle/table-handle-row-root/state.ts
|
|
349
|
+
import {
|
|
350
|
+
createComputed as createComputed3,
|
|
351
|
+
createSignal as createSignal5,
|
|
352
|
+
mapSignals as mapSignals3,
|
|
353
|
+
useAttribute as useAttribute3,
|
|
354
|
+
useEffect as useEffect4
|
|
355
|
+
} from "@aria-ui/core";
|
|
356
|
+
import { defaultMenuRootProps as defaultMenuRootProps2, useMenuRoot as useMenuRoot2 } from "@aria-ui/menu";
|
|
357
|
+
import { useOverlayPositionerState as useOverlayPositionerState2 } from "@aria-ui/overlay";
|
|
358
|
+
import { usePresence as usePresence2 } from "@aria-ui/presence";
|
|
359
|
+
function useTableHandleRowRoot(host, state) {
|
|
360
|
+
const { editor, ...overlayState } = state;
|
|
361
|
+
const rootContext = tableHandleRootContext.consume(host);
|
|
362
|
+
const rowFirstCellPos = createComputed3(() => {
|
|
363
|
+
var _a;
|
|
364
|
+
return (_a = rootContext.get()) == null ? void 0 : _a.rowFirstCellPos;
|
|
365
|
+
});
|
|
366
|
+
const referenceCell = createComputed3(() => {
|
|
367
|
+
var _a;
|
|
368
|
+
const pos = rowFirstCellPos.get();
|
|
369
|
+
const view = (_a = editor.get()) == null ? void 0 : _a.view;
|
|
370
|
+
if (!pos || !view) return null;
|
|
371
|
+
return view.nodeDOM(pos);
|
|
372
|
+
});
|
|
373
|
+
const contentOpen = createSignal5(false);
|
|
374
|
+
useEffect4(host, () => {
|
|
375
|
+
rowFirstCellPos.get();
|
|
376
|
+
contentOpen.set(false);
|
|
377
|
+
});
|
|
378
|
+
useOverlayPositionerState2(host, overlayState, {
|
|
379
|
+
reference: referenceCell
|
|
380
|
+
});
|
|
381
|
+
const presence = createComputed3(() => !!referenceCell.get());
|
|
382
|
+
useAttribute3(host, "data-state", () => presence.get() ? "open" : "closed");
|
|
383
|
+
usePresence2(host, presence);
|
|
384
|
+
useMenuRoot2(host, {
|
|
385
|
+
...mapSignals3(defaultMenuRootProps2),
|
|
386
|
+
open: contentOpen
|
|
387
|
+
});
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
// src/components/table-handle/table-handle-row-root/element.gen.ts
|
|
391
|
+
var TableHandleRowRootElement = class extends ElementBuilder6(useTableHandleRowRoot, defaultTableHandleRowRootProps) {
|
|
392
|
+
};
|
|
393
|
+
defineCustomElement("prosekit-table-handle-row-root", TableHandleRowRootElement);
|
|
394
|
+
|
|
395
|
+
// src/components/table-handle/table-handle-row-trigger/element.gen.ts
|
|
396
|
+
import { ElementBuilder as ElementBuilder7 } from "@aria-ui/core";
|
|
397
|
+
|
|
398
|
+
// src/components/table-handle/table-handle-row-trigger/props.ts
|
|
399
|
+
var defaultTableHandleRowTriggerProps = Object.freeze({
|
|
400
|
+
editor: null
|
|
401
|
+
});
|
|
402
|
+
|
|
403
|
+
// src/components/table-handle/table-handle-row-trigger/state.ts
|
|
404
|
+
import {
|
|
405
|
+
useEventListener as useEventListener2
|
|
406
|
+
} from "@aria-ui/core";
|
|
407
|
+
import { useMenuTrigger as useMenuTrigger2 } from "@aria-ui/menu";
|
|
408
|
+
import { selectTableRow } from "@prosekit/extensions/table";
|
|
409
|
+
function useTableHandleRowTrigger(host, state) {
|
|
410
|
+
useMenuTrigger2(host);
|
|
411
|
+
const context = tableHandleRootContext.consume(host);
|
|
412
|
+
useEventListener2(host, "pointerdown", () => {
|
|
413
|
+
var _a;
|
|
414
|
+
const editor = state.editor.peek();
|
|
415
|
+
const cellPos = (_a = context.peek()) == null ? void 0 : _a.cellPos;
|
|
416
|
+
if (!editor || !cellPos) return;
|
|
417
|
+
editor.exec(selectTableRow({ head: cellPos }));
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
// src/components/table-handle/table-handle-row-trigger/element.gen.ts
|
|
422
|
+
var TableHandleRowTriggerElement = class extends ElementBuilder7(useTableHandleRowTrigger, defaultTableHandleRowTriggerProps) {
|
|
423
|
+
};
|
|
424
|
+
defineCustomElement("prosekit-table-handle-row-trigger", TableHandleRowTriggerElement);
|
|
425
|
+
export {
|
|
426
|
+
TableHandleColumnRootElement,
|
|
427
|
+
TableHandleColumnTriggerElement,
|
|
428
|
+
TableHandlePopoverContentElement,
|
|
429
|
+
TableHandlePopoverItemElement,
|
|
430
|
+
TableHandleRootElement,
|
|
431
|
+
TableHandleRowRootElement,
|
|
432
|
+
TableHandleRowTriggerElement,
|
|
433
|
+
defaultTableHandleColumnRootProps,
|
|
434
|
+
defaultTableHandleColumnTriggerProps,
|
|
435
|
+
defaultTableHandlePopoverContentProps,
|
|
436
|
+
defaultTableHandlePopoverItemProps,
|
|
437
|
+
defaultTableHandleRootProps,
|
|
438
|
+
defaultTableHandleRowRootProps,
|
|
439
|
+
defaultTableHandleRowTriggerProps
|
|
440
|
+
};
|
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.14",
|
|
5
5
|
"private": false,
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "ocavue",
|
|
@@ -55,6 +55,11 @@
|
|
|
55
55
|
"import": "./dist/prosekit-web-resizable.js",
|
|
56
56
|
"default": "./dist/prosekit-web-resizable.js"
|
|
57
57
|
},
|
|
58
|
+
"./table-handle": {
|
|
59
|
+
"types": "./dist/prosekit-web-table-handle.d.ts",
|
|
60
|
+
"import": "./dist/prosekit-web-table-handle.js",
|
|
61
|
+
"default": "./dist/prosekit-web-table-handle.js"
|
|
62
|
+
},
|
|
58
63
|
"./tooltip": {
|
|
59
64
|
"types": "./dist/prosekit-web-tooltip.d.ts",
|
|
60
65
|
"import": "./dist/prosekit-web-tooltip.js",
|
|
@@ -68,16 +73,18 @@
|
|
|
68
73
|
"@aria-ui/collection": "^0.0.3",
|
|
69
74
|
"@aria-ui/core": "^0.0.18",
|
|
70
75
|
"@aria-ui/listbox": "^0.0.18",
|
|
76
|
+
"@aria-ui/menu": "^0.0.12",
|
|
71
77
|
"@aria-ui/overlay": "^0.0.19",
|
|
72
78
|
"@aria-ui/popover": "^0.0.20",
|
|
73
79
|
"@aria-ui/presence": "^0.0.14",
|
|
74
80
|
"@aria-ui/tooltip": "^0.0.22",
|
|
75
81
|
"@floating-ui/dom": "^1.6.10",
|
|
76
|
-
"@zag-js/dom-query": "^0.65.
|
|
82
|
+
"@zag-js/dom-query": "^0.65.1",
|
|
77
83
|
"just-omit": "^2.2.0",
|
|
78
|
-
"
|
|
84
|
+
"prosemirror-tables": "^1.5.0",
|
|
85
|
+
"@prosekit/extensions": "^0.7.14",
|
|
79
86
|
"@prosekit/pm": "^0.1.8",
|
|
80
|
-
"@prosekit/core": "^0.7.
|
|
87
|
+
"@prosekit/core": "^0.7.10"
|
|
81
88
|
},
|
|
82
89
|
"devDependencies": {
|
|
83
90
|
"tsup": "^8.2.4",
|
|
@@ -110,6 +117,9 @@
|
|
|
110
117
|
"resizable": [
|
|
111
118
|
"./dist/prosekit-web-resizable.d.ts"
|
|
112
119
|
],
|
|
120
|
+
"table-handle": [
|
|
121
|
+
"./dist/prosekit-web-table-handle.d.ts"
|
|
122
|
+
],
|
|
113
123
|
"tooltip": [
|
|
114
124
|
"./dist/prosekit-web-tooltip.d.ts"
|
|
115
125
|
]
|