@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
@@ -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 > overscroll) {
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
- } else if (scroller.scrollTop < lastScrollTop) {
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-ref-tag",
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 = "block";
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 = "block";
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-ref-tag");
2228
- this.tag.appendChild(button);
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-ref-tag": {
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
- alignItems: "center",
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 _commandMenu = useMemo(() => {
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: _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
- "[data-has-focus] & .cm-list-item-selected": {
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: 134,
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: 143,
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/Popover/CommandMenu.tsx
8383
+ // src/components/CommandMenu/CommandMenu.tsx
8383
8384
  import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
8384
- import React5, { Fragment, useCallback as useCallback4, useEffect as useEffect3, useRef as useRef3 } from "react";
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 CommandMenu = ({ groups, currentItem, onSelect }) => {
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
- return /* @__PURE__ */ React5.createElement(Popover.Portal, null, /* @__PURE__ */ React5.createElement(Popover.Content, {
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-h-[300px] overflow-y-auto"
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
- CommandMenu,
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,