@dxos/react-ui-editor 0.8.4-main.dedc0f3 → 0.8.4-main.e098934
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/lib/browser/index.mjs +82 -190
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +71 -1
- package/dist/lib/browser/testing/index.mjs.map +4 -4
- package/dist/lib/node-esm/index.mjs +82 -190
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +71 -1
- package/dist/lib/node-esm/testing/index.mjs.map +4 -4
- package/dist/types/src/components/{Popover → CommandMenu}/CommandMenu.d.ts +10 -6
- package/dist/types/src/components/CommandMenu/CommandMenu.d.ts.map +1 -0
- package/dist/types/src/components/CommandMenu/index.d.ts +2 -0
- package/dist/types/src/components/CommandMenu/index.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +1 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/extensions/autoscroll.d.ts.map +1 -1
- package/dist/types/src/extensions/command/action.d.ts.map +1 -1
- package/dist/types/src/extensions/command/floating-menu.d.ts.map +1 -1
- package/dist/types/src/extensions/command/useCommandMenu.d.ts +1 -2
- package/dist/types/src/extensions/command/useCommandMenu.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/link.d.ts.map +1 -1
- package/dist/types/src/extensions/preview/preview.d.ts +0 -1
- package/dist/types/src/extensions/preview/preview.d.ts.map +1 -1
- package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
- package/dist/types/src/stories/CommandMenu.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
- package/dist/types/src/testing/PreviewPopover.d.ts +20 -0
- package/dist/types/src/testing/PreviewPopover.d.ts.map +1 -0
- package/dist/types/src/testing/index.d.ts +1 -0
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +33 -33
- package/src/components/{Popover → CommandMenu}/CommandMenu.tsx +93 -26
- package/src/components/{Popover → CommandMenu}/index.ts +0 -2
- package/src/components/index.ts +1 -1
- package/src/extensions/autoscroll.ts +14 -8
- package/src/extensions/command/action.ts +0 -1
- package/src/extensions/command/command-menu.ts +1 -1
- package/src/extensions/command/floating-menu.ts +9 -14
- package/src/extensions/command/useCommandMenu.ts +3 -7
- package/src/extensions/markdown/link.ts +3 -0
- package/src/extensions/outliner/outliner.ts +1 -1
- package/src/extensions/preview/preview.ts +0 -3
- package/src/hooks/useTextEditor.ts +0 -12
- package/src/stories/CommandMenu.stories.tsx +5 -7
- package/src/stories/Outliner.stories.tsx +28 -19
- package/src/stories/Preview.stories.tsx +4 -4
- package/src/{components/Popover/RefDropdownMenu.tsx → testing/PreviewPopover.tsx} +19 -30
- package/src/testing/index.ts +1 -0
- package/dist/types/src/components/Popover/CommandMenu.d.ts.map +0 -1
- package/dist/types/src/components/Popover/RefDropdownMenu.d.ts +0 -14
- package/dist/types/src/components/Popover/RefDropdownMenu.d.ts.map +0 -1
- package/dist/types/src/components/Popover/RefPopover.d.ts +0 -37
- package/dist/types/src/components/Popover/RefPopover.d.ts.map +0 -1
- package/dist/types/src/components/Popover/index.d.ts +0 -4
- package/dist/types/src/components/Popover/index.d.ts.map +0 -1
- package/src/components/Popover/RefPopover.tsx +0 -117
@@ -520,9 +520,10 @@ var scrollToBottomEffect = StateEffect.define();
|
|
520
520
|
var autoScroll = ({ overscroll = 4 * lineHeight, throttle: throttle2 = 2e3 } = {}) => {
|
521
521
|
let isThrottled = false;
|
522
522
|
let isPinned = true;
|
523
|
-
let lastScrollTop = 0;
|
524
523
|
let timeout;
|
525
524
|
let buttonContainer;
|
525
|
+
let lastScrollTop = 0;
|
526
|
+
let scrollCounter = 0;
|
526
527
|
const hideScrollbar = (view) => {
|
527
528
|
view.scrollDOM.classList.add("cm-hide-scrollbar");
|
528
529
|
clearTimeout(timeout);
|
@@ -532,6 +533,7 @@ var autoScroll = ({ overscroll = 4 * lineHeight, throttle: throttle2 = 2e3 } = {
|
|
532
533
|
};
|
533
534
|
const scrollToBottom = (view) => {
|
534
535
|
isPinned = true;
|
536
|
+
scrollCounter = 0;
|
535
537
|
buttonContainer?.classList.add("opacity-0");
|
536
538
|
requestAnimationFrame(() => {
|
537
539
|
hideScrollbar(view);
|
@@ -563,7 +565,7 @@ var autoScroll = ({ overscroll = 4 * lineHeight, throttle: throttle2 = 2e3 } = {
|
|
563
565
|
});
|
564
566
|
if (update2.docChanged && isPinned && !isThrottled) {
|
565
567
|
const distanceFromBottom = calcDistance(update2.view.scrollDOM);
|
566
|
-
if (distanceFromBottom
|
568
|
+
if (distanceFromBottom >= overscroll) {
|
567
569
|
isThrottled = true;
|
568
570
|
requestAnimationFrame(() => {
|
569
571
|
scrollToBottom(update2.view);
|
@@ -574,18 +576,24 @@ var autoScroll = ({ overscroll = 4 * lineHeight, throttle: throttle2 = 2e3 } = {
|
|
574
576
|
}
|
575
577
|
}
|
576
578
|
}),
|
579
|
+
// Detect user scroll.
|
580
|
+
// NOTE: Multiple scroll events are triggered during programmatic smooth scrolling.
|
577
581
|
EditorView3.domEventHandlers({
|
578
582
|
scroll: (event, view) => {
|
579
583
|
const scroller = view.scrollDOM;
|
584
|
+
if (lastScrollTop > scroller.scrollTop) {
|
585
|
+
scrollCounter++;
|
586
|
+
}
|
587
|
+
lastScrollTop = scroller.scrollTop;
|
580
588
|
const distanceFromBottom = calcDistance(scroller);
|
581
589
|
if (distanceFromBottom === 0) {
|
582
590
|
isPinned = true;
|
583
591
|
buttonContainer?.classList.add("opacity-0");
|
584
|
-
|
592
|
+
scrollCounter = 0;
|
593
|
+
} else if (scrollCounter > 3) {
|
585
594
|
isPinned = false;
|
586
595
|
buttonContainer?.classList.remove("opacity-0");
|
587
596
|
}
|
588
|
-
lastScrollTop = scroller.scrollTop;
|
589
597
|
}
|
590
598
|
}),
|
591
599
|
EditorView3.theme({
|
@@ -1748,7 +1756,6 @@ var closeCommand = (view) => {
|
|
1748
1756
|
var commandKeyBindings = [
|
1749
1757
|
{
|
1750
1758
|
key: "/",
|
1751
|
-
preventDefault: true,
|
1752
1759
|
run: openCommand
|
1753
1760
|
},
|
1754
1761
|
{
|
@@ -2001,7 +2008,7 @@ var commandMenu = (options) => {
|
|
2001
2008
|
if (shouldShowWidget) {
|
2002
2009
|
builder.add(activeRange.from, activeRange.to, Decoration6.mark({
|
2003
2010
|
tagName: "dx-anchor",
|
2004
|
-
class: "cm-
|
2011
|
+
class: "cm-floating-menu-trigger",
|
2005
2012
|
attributes: {
|
2006
2013
|
"data-auto-trigger": "true",
|
2007
2014
|
"data-trigger": trigger
|
@@ -2182,7 +2189,7 @@ var floatingMenu = (options = {}) => [
|
|
2182
2189
|
this.tag.style.display = "none";
|
2183
2190
|
this.tag.classList.add("opacity-10");
|
2184
2191
|
} else if (update2.transactions.some((tr) => tr.effects.some((effect) => effect.is(closeEffect)))) {
|
2185
|
-
this.tag.style.display = "
|
2192
|
+
this.tag.style.display = "";
|
2186
2193
|
} else if (update2.docChanged || update2.focusChanged || update2.geometryChanged || update2.selectionSet || update2.viewportChanged) {
|
2187
2194
|
this.scheduleUpdate();
|
2188
2195
|
}
|
@@ -2201,7 +2208,7 @@ var floatingMenu = (options = {}) => [
|
|
2201
2208
|
const offsetLeft = x + width + (options.padding ?? 8);
|
2202
2209
|
this.tag.style.top = `${offsetTop}px`;
|
2203
2210
|
this.tag.style.left = `${offsetLeft}px`;
|
2204
|
-
this.tag.style.display = "
|
2211
|
+
this.tag.style.display = "";
|
2205
2212
|
}
|
2206
2213
|
scheduleUpdate() {
|
2207
2214
|
if (this.rafId != null) {
|
@@ -2222,11 +2229,9 @@ var floatingMenu = (options = {}) => [
|
|
2222
2229
|
{
|
2223
2230
|
const icon = document.createElement("dx-icon");
|
2224
2231
|
icon.setAttribute("icon", options.icon ?? "ph--dots-three-vertical--regular");
|
2225
|
-
const button = document.createElement("button");
|
2226
|
-
button.appendChild(icon);
|
2227
2232
|
this.tag = document.createElement("dx-anchor");
|
2228
|
-
this.tag.classList.add("cm-
|
2229
|
-
this.tag.appendChild(
|
2233
|
+
this.tag.classList.add("cm-floating-menu-trigger");
|
2234
|
+
this.tag.appendChild(icon);
|
2230
2235
|
}
|
2231
2236
|
container.appendChild(this.tag);
|
2232
2237
|
const handler = () => this.scheduleUpdate();
|
@@ -2235,21 +2240,18 @@ var floatingMenu = (options = {}) => [
|
|
2235
2240
|
}
|
2236
2241
|
}),
|
2237
2242
|
EditorView11.theme({
|
2238
|
-
".cm-
|
2243
|
+
".cm-floating-menu-trigger": {
|
2239
2244
|
position: "fixed",
|
2240
2245
|
padding: "0",
|
2241
2246
|
border: "none",
|
2242
|
-
opacity: "0"
|
2243
|
-
},
|
2244
|
-
"[data-has-focus] & .cm-ref-tag": {
|
2245
|
-
opacity: "1"
|
2246
|
-
},
|
2247
|
-
".cm-ref-tag button": {
|
2247
|
+
opacity: "0",
|
2248
2248
|
display: "grid",
|
2249
|
-
|
2250
|
-
justifyContent: "center",
|
2249
|
+
placeContent: "center",
|
2251
2250
|
width: "2rem",
|
2252
2251
|
height: "2rem"
|
2252
|
+
},
|
2253
|
+
"&:focus-within .cm-floating-menu-trigger": {
|
2254
|
+
opacity: "1"
|
2253
2255
|
}
|
2254
2256
|
})
|
2255
2257
|
];
|
@@ -2355,7 +2357,6 @@ var matchCompletion = (completion, str, minLength = 0) => {
|
|
2355
2357
|
// src/extensions/command/useCommandMenu.ts
|
2356
2358
|
import { useCallback, useMemo, useRef, useState } from "react";
|
2357
2359
|
var useCommandMenu = ({ viewRef, trigger, placeholder: placeholder3, getMenu }) => {
|
2358
|
-
const triggerRef = useRef(null);
|
2359
2360
|
const currentRef = useRef(null);
|
2360
2361
|
const groupsRef = useRef([]);
|
2361
2362
|
const [currentItem, setCurrentItem] = useState();
|
@@ -2367,7 +2368,6 @@ var useCommandMenu = ({ viewRef, trigger, placeholder: placeholder3, getMenu })
|
|
2367
2368
|
}
|
2368
2369
|
setOpen(open2);
|
2369
2370
|
if (!open2) {
|
2370
|
-
triggerRef.current = null;
|
2371
2371
|
setCurrentItem(void 0);
|
2372
2372
|
viewRef.current?.dispatch({
|
2373
2373
|
effects: [
|
@@ -2383,7 +2383,6 @@ var useCommandMenu = ({ viewRef, trigger, placeholder: placeholder3, getMenu })
|
|
2383
2383
|
if (item) {
|
2384
2384
|
currentRef.current = item;
|
2385
2385
|
}
|
2386
|
-
triggerRef.current = event.trigger;
|
2387
2386
|
const triggerKey = event.trigger.getAttribute("data-trigger");
|
2388
2387
|
if (!open && triggerKey) {
|
2389
2388
|
await handleOpenChange(true, triggerKey);
|
@@ -2401,7 +2400,7 @@ var useCommandMenu = ({ viewRef, trigger, placeholder: placeholder3, getMenu })
|
|
2401
2400
|
void item.onSelect?.(view, selection.head);
|
2402
2401
|
}, []);
|
2403
2402
|
const serializedTrigger = Array.isArray(trigger) ? trigger.join(",") : trigger;
|
2404
|
-
const
|
2403
|
+
const memoizedCommandMenu = useMemo(() => {
|
2405
2404
|
return commandMenu({
|
2406
2405
|
trigger,
|
2407
2406
|
placeholder: placeholder3,
|
@@ -2442,10 +2441,9 @@ var useCommandMenu = ({ viewRef, trigger, placeholder: placeholder3, getMenu })
|
|
2442
2441
|
placeholder3
|
2443
2442
|
]);
|
2444
2443
|
return {
|
2445
|
-
commandMenu:
|
2444
|
+
commandMenu: memoizedCommandMenu,
|
2446
2445
|
currentItem,
|
2447
2446
|
groupsRef,
|
2448
|
-
ref: triggerRef,
|
2449
2447
|
open,
|
2450
2448
|
onActivate: handleActivate,
|
2451
2449
|
onOpenChange: setOpen,
|
@@ -6045,6 +6043,9 @@ var linkTooltip = (renderTooltip) => {
|
|
6045
6043
|
return null;
|
6046
6044
|
}
|
6047
6045
|
const urlText = view.state.sliceDoc(url.from, url.to);
|
6046
|
+
if (urlText.startsWith("dxn")) {
|
6047
|
+
return null;
|
6048
|
+
}
|
6048
6049
|
return {
|
6049
6050
|
pos: link.from,
|
6050
6051
|
end: link.to,
|
@@ -7023,7 +7024,7 @@ var decorations = () => [
|
|
7023
7024
|
".cm-list-item-focused": {
|
7024
7025
|
borderColor: "var(--dx-accentFocusIndicator)"
|
7025
7026
|
},
|
7026
|
-
"
|
7027
|
+
"&:focus-within .cm-list-item-selected": {
|
7027
7028
|
borderColor: "var(--dx-separator)"
|
7028
7029
|
}
|
7029
7030
|
}))
|
@@ -7843,7 +7844,7 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
7843
7844
|
id
|
7844
7845
|
}, {
|
7845
7846
|
F: __dxlog_file15,
|
7846
|
-
L:
|
7847
|
+
L: 122,
|
7847
7848
|
S: void 0,
|
7848
7849
|
C: (f, a) => f(...a)
|
7849
7850
|
});
|
@@ -7860,7 +7861,7 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
7860
7861
|
selection
|
7861
7862
|
}, {
|
7862
7863
|
F: __dxlog_file15,
|
7863
|
-
L:
|
7864
|
+
L: 131,
|
7864
7865
|
S: void 0,
|
7865
7866
|
C: (f, a) => f(...a)
|
7866
7867
|
});
|
@@ -8380,22 +8381,60 @@ var EditorToolbar = /* @__PURE__ */ memo(({ classNames, attendableId, role, ...p
|
|
8380
8381
|
}
|
8381
8382
|
});
|
8382
8383
|
|
8383
|
-
// src/components/
|
8384
|
+
// src/components/CommandMenu/CommandMenu.tsx
|
8384
8385
|
import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
|
8385
|
-
import
|
8386
|
+
import { useControllableState } from "@radix-ui/react-use-controllable-state";
|
8387
|
+
import React5, { Fragment, useCallback as useCallback4, useEffect as useEffect3, useRef as useRef3, useState as useState3 } from "react";
|
8388
|
+
import { addEventListener as addEventListener2 } from "@dxos/async";
|
8386
8389
|
import { Icon as Icon2, Popover, toLocalizedString, useThemeContext as useThemeContext2, useTranslation } from "@dxos/react-ui";
|
8387
|
-
var
|
8390
|
+
var CommandMenuProvider = ({ groups, onSelect, onActivate, currentItem, children, open: propsOpen, onOpenChange, defaultOpen }) => {
|
8388
8391
|
var _effect = _useSignals3();
|
8389
8392
|
try {
|
8390
8393
|
const { tx } = useThemeContext2();
|
8391
8394
|
const groupsWithItems = groups.filter((group) => group.items.length > 0);
|
8392
|
-
|
8395
|
+
const trigger = useRef3(null);
|
8396
|
+
const [open, setOpen] = useControllableState({
|
8397
|
+
prop: propsOpen,
|
8398
|
+
onChange: onOpenChange,
|
8399
|
+
defaultProp: defaultOpen
|
8400
|
+
});
|
8401
|
+
const handleDxAnchorActivate = useCallback4((event) => {
|
8402
|
+
const { trigger: dxTrigger, refId } = event;
|
8403
|
+
if (!refId) {
|
8404
|
+
trigger.current = dxTrigger;
|
8405
|
+
if (onActivate) {
|
8406
|
+
onActivate(event);
|
8407
|
+
} else {
|
8408
|
+
queueMicrotask(() => setOpen(true));
|
8409
|
+
}
|
8410
|
+
}
|
8411
|
+
}, [
|
8412
|
+
onActivate
|
8413
|
+
]);
|
8414
|
+
const [rootRef, setRootRef] = useState3(null);
|
8415
|
+
useEffect3(() => {
|
8416
|
+
if (!rootRef || !handleDxAnchorActivate) {
|
8417
|
+
return;
|
8418
|
+
}
|
8419
|
+
return addEventListener2(rootRef, "dx-anchor-activate", handleDxAnchorActivate, {
|
8420
|
+
capture: true,
|
8421
|
+
passive: false
|
8422
|
+
});
|
8423
|
+
}, [
|
8424
|
+
rootRef,
|
8425
|
+
handleDxAnchorActivate
|
8426
|
+
]);
|
8427
|
+
return /* @__PURE__ */ React5.createElement(Popover.Root, {
|
8428
|
+
modal: false,
|
8429
|
+
open,
|
8430
|
+
onOpenChange: setOpen
|
8431
|
+
}, /* @__PURE__ */ React5.createElement(Popover.Portal, null, /* @__PURE__ */ React5.createElement(Popover.Content, {
|
8393
8432
|
align: "start",
|
8394
8433
|
onOpenAutoFocus: (event) => event.preventDefault(),
|
8395
8434
|
classNames: tx("menu.content", "menu--exotic-unfocusable", {
|
8396
8435
|
elevation: "positioned"
|
8397
8436
|
}, [
|
8398
|
-
"max-
|
8437
|
+
"max-bs-80 overflow-y-auto"
|
8399
8438
|
])
|
8400
8439
|
}, /* @__PURE__ */ React5.createElement(Popover.Viewport, {
|
8401
8440
|
classNames: tx("menu.viewport", "menu__viewport--exotic-unfocusable", {})
|
@@ -8407,7 +8446,13 @@ var CommandMenu = ({ groups, currentItem, onSelect }) => {
|
|
8407
8446
|
onSelect
|
8408
8447
|
}), index < groupsWithItems.length - 1 && /* @__PURE__ */ React5.createElement("div", {
|
8409
8448
|
className: tx("menu.separator", "menu__item", {})
|
8410
|
-
})))))))
|
8449
|
+
}))))), /* @__PURE__ */ React5.createElement(Popover.Arrow, null))), /* @__PURE__ */ React5.createElement(Popover.VirtualTrigger, {
|
8450
|
+
virtualRef: trigger
|
8451
|
+
}), /* @__PURE__ */ React5.createElement("div", {
|
8452
|
+
role: "none",
|
8453
|
+
className: "contents",
|
8454
|
+
ref: setRootRef
|
8455
|
+
}, children));
|
8411
8456
|
} finally {
|
8412
8457
|
_effect.f();
|
8413
8458
|
}
|
@@ -8644,157 +8689,8 @@ var linkSlashCommands = {
|
|
8644
8689
|
}
|
8645
8690
|
]
|
8646
8691
|
};
|
8647
|
-
|
8648
|
-
// src/components/Popover/RefPopover.tsx
|
8649
|
-
import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
|
8650
|
-
import { createContext } from "@radix-ui/react-context";
|
8651
|
-
import React6, { forwardRef as forwardRef2, useCallback as useCallback5, useEffect as useEffect4, useRef as useRef4, useState as useState3 } from "react";
|
8652
|
-
import { addEventListener as addEventListener2 } from "@dxos/async";
|
8653
|
-
import { Popover as Popover2 } from "@dxos/react-ui";
|
8654
|
-
var [RefPopoverContextProvider, useRefPopover] = createContext("RefPopover", {});
|
8655
|
-
var PreviewProvider = ({ children, onLookup }) => {
|
8656
|
-
var _effect = _useSignals4();
|
8657
|
-
try {
|
8658
|
-
const trigger = useRef4(null);
|
8659
|
-
const [value, setValue] = useState3({});
|
8660
|
-
const [open, setOpen] = useState3(false);
|
8661
|
-
const handleDxAnchorActivate = useCallback5((event) => {
|
8662
|
-
const { refId, label, trigger: dxTrigger } = event;
|
8663
|
-
setValue((value2) => ({
|
8664
|
-
...value2,
|
8665
|
-
link: {
|
8666
|
-
label,
|
8667
|
-
ref: refId
|
8668
|
-
},
|
8669
|
-
pending: true
|
8670
|
-
}));
|
8671
|
-
trigger.current = dxTrigger;
|
8672
|
-
queueMicrotask(() => setOpen(true));
|
8673
|
-
void onLookup?.({
|
8674
|
-
label,
|
8675
|
-
ref: refId
|
8676
|
-
}).then((target) => setValue((value2) => ({
|
8677
|
-
...value2,
|
8678
|
-
target: target ?? void 0,
|
8679
|
-
pending: false
|
8680
|
-
})));
|
8681
|
-
}, [
|
8682
|
-
onLookup
|
8683
|
-
]);
|
8684
|
-
return /* @__PURE__ */ React6.createElement(RefPopoverContextProvider, {
|
8685
|
-
pending: value.pending,
|
8686
|
-
link: value.link,
|
8687
|
-
target: value.target
|
8688
|
-
}, /* @__PURE__ */ React6.createElement(RefPopover, {
|
8689
|
-
ref: trigger,
|
8690
|
-
open,
|
8691
|
-
onOpenChange: setOpen,
|
8692
|
-
onActivate: handleDxAnchorActivate
|
8693
|
-
}, children));
|
8694
|
-
} finally {
|
8695
|
-
_effect.f();
|
8696
|
-
}
|
8697
|
-
};
|
8698
|
-
var RefPopover = /* @__PURE__ */ forwardRef2(({ children, open, onOpenChange, modal, onActivate }, ref) => {
|
8699
|
-
var _effect = _useSignals4();
|
8700
|
-
try {
|
8701
|
-
const [rootRef, setRootRef] = useState3(null);
|
8702
|
-
useEffect4(() => {
|
8703
|
-
if (!rootRef || !onActivate) {
|
8704
|
-
return;
|
8705
|
-
}
|
8706
|
-
return addEventListener2(rootRef, "dx-anchor-activate", onActivate, {
|
8707
|
-
capture: true,
|
8708
|
-
passive: false
|
8709
|
-
});
|
8710
|
-
}, [
|
8711
|
-
rootRef,
|
8712
|
-
onActivate
|
8713
|
-
]);
|
8714
|
-
return /* @__PURE__ */ React6.createElement(Popover2.Root, {
|
8715
|
-
open,
|
8716
|
-
onOpenChange,
|
8717
|
-
modal
|
8718
|
-
}, /* @__PURE__ */ React6.createElement(Popover2.VirtualTrigger, {
|
8719
|
-
virtualRef: ref
|
8720
|
-
}), /* @__PURE__ */ React6.createElement("div", {
|
8721
|
-
role: "none",
|
8722
|
-
className: "contents",
|
8723
|
-
ref: setRootRef
|
8724
|
-
}, children));
|
8725
|
-
} finally {
|
8726
|
-
_effect.f();
|
8727
|
-
}
|
8728
|
-
});
|
8729
|
-
|
8730
|
-
// src/components/Popover/RefDropdownMenu.tsx
|
8731
|
-
import { useSignals as _useSignals5 } from "@preact-signals/safe-react/tracking";
|
8732
|
-
import { createContext as createContext2 } from "@radix-ui/react-context";
|
8733
|
-
import React7, { useCallback as useCallback6, useEffect as useEffect5, useRef as useRef5, useState as useState4 } from "react";
|
8734
|
-
import { addEventListener as addEventListener3 } from "@dxos/async";
|
8735
|
-
import { DropdownMenu } from "@dxos/react-ui";
|
8736
|
-
var [RefDropdownMenuContextProvider, useRefDropdownMenu] = createContext2("RefDropdownMenu", {});
|
8737
|
-
var RefDropdownMenuProvider = ({ children, onLookup }) => {
|
8738
|
-
var _effect = _useSignals5();
|
8739
|
-
try {
|
8740
|
-
const trigger = useRef5(null);
|
8741
|
-
const [value, setValue] = useState4({});
|
8742
|
-
const [rootRef, setRootRef] = useState4(null);
|
8743
|
-
const [open, setOpen] = useState4(false);
|
8744
|
-
const handleDxAnchorActivate = useCallback6((event) => {
|
8745
|
-
const { refId, label, trigger: dxTrigger } = event;
|
8746
|
-
setValue((value2) => ({
|
8747
|
-
...value2,
|
8748
|
-
link: {
|
8749
|
-
label,
|
8750
|
-
ref: refId
|
8751
|
-
},
|
8752
|
-
pending: true
|
8753
|
-
}));
|
8754
|
-
trigger.current = dxTrigger;
|
8755
|
-
queueMicrotask(() => setOpen(true));
|
8756
|
-
void onLookup?.({
|
8757
|
-
label,
|
8758
|
-
ref: refId
|
8759
|
-
}).then((target) => setValue((value2) => ({
|
8760
|
-
...value2,
|
8761
|
-
target: target ?? void 0,
|
8762
|
-
pending: false
|
8763
|
-
})));
|
8764
|
-
}, [
|
8765
|
-
onLookup
|
8766
|
-
]);
|
8767
|
-
useEffect5(() => {
|
8768
|
-
if (!rootRef) {
|
8769
|
-
return;
|
8770
|
-
}
|
8771
|
-
return addEventListener3(rootRef, "dx-anchor-activate", handleDxAnchorActivate, {
|
8772
|
-
capture: true,
|
8773
|
-
passive: false
|
8774
|
-
});
|
8775
|
-
}, [
|
8776
|
-
rootRef
|
8777
|
-
]);
|
8778
|
-
return /* @__PURE__ */ React7.createElement(RefDropdownMenuContextProvider, {
|
8779
|
-
pending: value.pending,
|
8780
|
-
link: value.link,
|
8781
|
-
target: value.target
|
8782
|
-
}, /* @__PURE__ */ React7.createElement(DropdownMenu.Root, {
|
8783
|
-
open,
|
8784
|
-
onOpenChange: setOpen
|
8785
|
-
}, /* @__PURE__ */ React7.createElement(DropdownMenu.VirtualTrigger, {
|
8786
|
-
virtualRef: trigger
|
8787
|
-
}), /* @__PURE__ */ React7.createElement("div", {
|
8788
|
-
role: "none",
|
8789
|
-
className: "contents",
|
8790
|
-
ref: setRootRef
|
8791
|
-
}, children)));
|
8792
|
-
} finally {
|
8793
|
-
_effect.f();
|
8794
|
-
}
|
8795
|
-
};
|
8796
8692
|
export {
|
8797
|
-
|
8693
|
+
CommandMenuProvider,
|
8798
8694
|
Cursor,
|
8799
8695
|
Domino,
|
8800
8696
|
Editor,
|
@@ -8808,9 +8704,6 @@ export {
|
|
8808
8704
|
Inline,
|
8809
8705
|
InputModeExtensions,
|
8810
8706
|
List,
|
8811
|
-
PreviewProvider,
|
8812
|
-
RefDropdownMenuProvider,
|
8813
|
-
RefPopover,
|
8814
8707
|
RemoteSelectionsDecorator,
|
8815
8708
|
SpaceAwarenessProvider,
|
8816
8709
|
TextKind,
|
@@ -8956,7 +8849,6 @@ export {
|
|
8956
8849
|
useComments,
|
8957
8850
|
useEditorToolbarState,
|
8958
8851
|
useFormattingState,
|
8959
|
-
useRefPopover,
|
8960
8852
|
useTextEditor,
|
8961
8853
|
wrapWithCatch,
|
8962
8854
|
xmlTagContextEffect,
|