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