@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.
Files changed (58) hide show
  1. package/dist/lib/browser/index.mjs +82 -190
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/browser/testing/index.mjs +71 -1
  5. package/dist/lib/browser/testing/index.mjs.map +4 -4
  6. package/dist/lib/node-esm/index.mjs +82 -190
  7. package/dist/lib/node-esm/index.mjs.map +4 -4
  8. package/dist/lib/node-esm/meta.json +1 -1
  9. package/dist/lib/node-esm/testing/index.mjs +71 -1
  10. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  11. package/dist/types/src/components/{Popover → CommandMenu}/CommandMenu.d.ts +10 -6
  12. package/dist/types/src/components/CommandMenu/CommandMenu.d.ts.map +1 -0
  13. package/dist/types/src/components/CommandMenu/index.d.ts +2 -0
  14. package/dist/types/src/components/CommandMenu/index.d.ts.map +1 -0
  15. package/dist/types/src/components/index.d.ts +1 -1
  16. package/dist/types/src/components/index.d.ts.map +1 -1
  17. package/dist/types/src/extensions/autoscroll.d.ts.map +1 -1
  18. package/dist/types/src/extensions/command/action.d.ts.map +1 -1
  19. package/dist/types/src/extensions/command/floating-menu.d.ts.map +1 -1
  20. package/dist/types/src/extensions/command/useCommandMenu.d.ts +1 -2
  21. package/dist/types/src/extensions/command/useCommandMenu.d.ts.map +1 -1
  22. package/dist/types/src/extensions/markdown/link.d.ts.map +1 -1
  23. package/dist/types/src/extensions/preview/preview.d.ts +0 -1
  24. package/dist/types/src/extensions/preview/preview.d.ts.map +1 -1
  25. package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
  26. package/dist/types/src/stories/CommandMenu.stories.d.ts.map +1 -1
  27. package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -1
  28. package/dist/types/src/testing/PreviewPopover.d.ts +20 -0
  29. package/dist/types/src/testing/PreviewPopover.d.ts.map +1 -0
  30. package/dist/types/src/testing/index.d.ts +1 -0
  31. package/dist/types/src/testing/index.d.ts.map +1 -1
  32. package/dist/types/tsconfig.tsbuildinfo +1 -1
  33. package/package.json +33 -33
  34. package/src/components/{Popover → CommandMenu}/CommandMenu.tsx +93 -26
  35. package/src/components/{Popover → CommandMenu}/index.ts +0 -2
  36. package/src/components/index.ts +1 -1
  37. package/src/extensions/autoscroll.ts +14 -8
  38. package/src/extensions/command/action.ts +0 -1
  39. package/src/extensions/command/command-menu.ts +1 -1
  40. package/src/extensions/command/floating-menu.ts +9 -14
  41. package/src/extensions/command/useCommandMenu.ts +3 -7
  42. package/src/extensions/markdown/link.ts +3 -0
  43. package/src/extensions/outliner/outliner.ts +1 -1
  44. package/src/extensions/preview/preview.ts +0 -3
  45. package/src/hooks/useTextEditor.ts +0 -12
  46. package/src/stories/CommandMenu.stories.tsx +5 -7
  47. package/src/stories/Outliner.stories.tsx +28 -19
  48. package/src/stories/Preview.stories.tsx +4 -4
  49. package/src/{components/Popover/RefDropdownMenu.tsx → testing/PreviewPopover.tsx} +19 -30
  50. package/src/testing/index.ts +1 -0
  51. package/dist/types/src/components/Popover/CommandMenu.d.ts.map +0 -1
  52. package/dist/types/src/components/Popover/RefDropdownMenu.d.ts +0 -14
  53. package/dist/types/src/components/Popover/RefDropdownMenu.d.ts.map +0 -1
  54. package/dist/types/src/components/Popover/RefPopover.d.ts +0 -37
  55. package/dist/types/src/components/Popover/RefPopover.d.ts.map +0 -1
  56. package/dist/types/src/components/Popover/index.d.ts +0 -4
  57. package/dist/types/src/components/Popover/index.d.ts.map +0 -1
  58. 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 > overscroll) {
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
- } else if (scroller.scrollTop < lastScrollTop) {
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-ref-tag",
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 = "block";
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 = "block";
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-ref-tag");
2229
- this.tag.appendChild(button);
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-ref-tag": {
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
- alignItems: "center",
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 _commandMenu = useMemo(() => {
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: _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
- "[data-has-focus] & .cm-list-item-selected": {
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: 134,
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: 143,
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/Popover/CommandMenu.tsx
8384
+ // src/components/CommandMenu/CommandMenu.tsx
8384
8385
  import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
8385
- import React5, { Fragment, useCallback as useCallback4, useEffect as useEffect3, useRef as useRef3 } from "react";
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 CommandMenu = ({ groups, currentItem, onSelect }) => {
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
- return /* @__PURE__ */ React5.createElement(Popover.Portal, null, /* @__PURE__ */ React5.createElement(Popover.Content, {
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-h-[300px] overflow-y-auto"
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
- CommandMenu,
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,