@liveblocks/react-lexical 2.18.3 → 2.18.4-uns2

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 (135) hide show
  1. package/dist/{classnames.mjs → classnames.cjs} +4 -2
  2. package/dist/{classnames.mjs.map → classnames.cjs.map} +1 -1
  3. package/dist/classnames.js +1 -3
  4. package/dist/classnames.js.map +1 -1
  5. package/dist/comments/{anchored-threads.mjs → anchored-threads.cjs} +44 -41
  6. package/dist/comments/{anchored-threads.mjs.map → anchored-threads.cjs.map} +1 -1
  7. package/dist/comments/anchored-threads.js +40 -43
  8. package/dist/comments/anchored-threads.js.map +1 -1
  9. package/dist/comments/{comment-plugin-provider.mjs → comment-plugin-provider.cjs} +62 -55
  10. package/dist/comments/{comment-plugin-provider.mjs.map → comment-plugin-provider.cjs.map} +1 -1
  11. package/dist/comments/comment-plugin-provider.js +54 -61
  12. package/dist/comments/comment-plugin-provider.js.map +1 -1
  13. package/dist/comments/{floating-composer.mjs → floating-composer.cjs} +68 -64
  14. package/dist/comments/{floating-composer.mjs.map → floating-composer.cjs.map} +1 -1
  15. package/dist/comments/floating-composer.js +63 -67
  16. package/dist/comments/floating-composer.js.map +1 -1
  17. package/dist/comments/{floating-threads.mjs → floating-threads.cjs} +51 -48
  18. package/dist/comments/{floating-threads.mjs.map → floating-threads.cjs.map} +1 -1
  19. package/dist/comments/floating-threads.js +47 -50
  20. package/dist/comments/floating-threads.js.map +1 -1
  21. package/dist/comments/get-thread-mark-ids.cjs +23 -0
  22. package/dist/comments/{get-thread-mark-ids.mjs.map → get-thread-mark-ids.cjs.map} +1 -1
  23. package/dist/comments/get-thread-mark-ids.js +6 -8
  24. package/dist/comments/get-thread-mark-ids.js.map +1 -1
  25. package/dist/comments/{thread-mark-node.mjs → thread-mark-node.cjs} +10 -6
  26. package/dist/comments/{thread-mark-node.mjs.map → thread-mark-node.cjs.map} +1 -1
  27. package/dist/comments/thread-mark-node.js +5 -9
  28. package/dist/comments/thread-mark-node.js.map +1 -1
  29. package/dist/comments/{unwrap-thread-mark-node.mjs → unwrap-thread-mark-node.cjs} +4 -2
  30. package/dist/comments/unwrap-thread-mark-node.cjs.map +1 -0
  31. package/dist/comments/unwrap-thread-mark-node.js +1 -3
  32. package/dist/comments/unwrap-thread-mark-node.js.map +1 -1
  33. package/dist/comments/{wrap-selection-in-thread-mark-node.mjs → wrap-selection-in-thread-mark-node.cjs} +12 -10
  34. package/dist/comments/{wrap-selection-in-thread-mark-node.mjs.map → wrap-selection-in-thread-mark-node.cjs.map} +1 -1
  35. package/dist/comments/wrap-selection-in-thread-mark-node.js +9 -11
  36. package/dist/comments/wrap-selection-in-thread-mark-node.js.map +1 -1
  37. package/dist/{create-dom-range.mjs → create-dom-range.cjs} +7 -5
  38. package/dist/{create-dom-range.mjs.map → create-dom-range.cjs.map} +1 -1
  39. package/dist/create-dom-range.js +4 -6
  40. package/dist/create-dom-range.js.map +1 -1
  41. package/dist/{create-rects-from-dom-range.mjs → create-rects-from-dom-range.cjs} +4 -2
  42. package/dist/{create-rects-from-dom-range.mjs.map → create-rects-from-dom-range.cjs.map} +1 -1
  43. package/dist/create-rects-from-dom-range.js +1 -3
  44. package/dist/create-rects-from-dom-range.js.map +1 -1
  45. package/dist/index.cjs +33 -0
  46. package/dist/{index.mjs.map → index.cjs.map} +1 -1
  47. package/dist/index.js +14 -31
  48. package/dist/index.js.map +1 -1
  49. package/dist/{is-block-node-active.mjs → is-block-node-active.cjs} +12 -10
  50. package/dist/{is-block-node-active.mjs.map → is-block-node-active.cjs.map} +1 -1
  51. package/dist/is-block-node-active.js +9 -11
  52. package/dist/is-block-node-active.js.map +1 -1
  53. package/dist/is-command-registered.cjs +11 -0
  54. package/dist/{is-command-registered.mjs.map → is-command-registered.cjs.map} +1 -1
  55. package/dist/is-command-registered.js +3 -5
  56. package/dist/is-command-registered.js.map +1 -1
  57. package/dist/is-text-format-active.cjs +16 -0
  58. package/dist/{is-text-format-active.mjs.map → is-text-format-active.cjs.map} +1 -1
  59. package/dist/is-text-format-active.js +4 -6
  60. package/dist/is-text-format-active.js.map +1 -1
  61. package/dist/liveblocks-config.cjs +17 -0
  62. package/dist/{liveblocks-config.mjs.map → liveblocks-config.cjs.map} +1 -1
  63. package/dist/liveblocks-config.js +4 -6
  64. package/dist/liveblocks-config.js.map +1 -1
  65. package/dist/liveblocks-plugin-provider.cjs +151 -0
  66. package/dist/liveblocks-plugin-provider.cjs.map +1 -0
  67. package/dist/liveblocks-plugin-provider.js +43 -47
  68. package/dist/liveblocks-plugin-provider.js.map +1 -1
  69. package/dist/mentions/{avatar.mjs → avatar.cjs} +16 -14
  70. package/dist/mentions/avatar.cjs.map +1 -0
  71. package/dist/mentions/avatar.js +13 -15
  72. package/dist/mentions/avatar.js.map +1 -1
  73. package/dist/mentions/mention-component.cjs +51 -0
  74. package/dist/mentions/{mention-component.mjs.map → mention-component.cjs.map} +1 -1
  75. package/dist/mentions/mention-component.js +14 -16
  76. package/dist/mentions/mention-component.js.map +1 -1
  77. package/dist/mentions/{mention-node.mjs → mention-node.cjs} +16 -12
  78. package/dist/mentions/{mention-node.mjs.map → mention-node.cjs.map} +1 -1
  79. package/dist/mentions/mention-node.js +11 -15
  80. package/dist/mentions/mention-node.js.map +1 -1
  81. package/dist/mentions/{mention-plugin.mjs → mention-plugin.cjs} +81 -78
  82. package/dist/mentions/{mention-plugin.mjs.map → mention-plugin.cjs.map} +1 -1
  83. package/dist/mentions/mention-plugin.js +77 -80
  84. package/dist/mentions/mention-plugin.js.map +1 -1
  85. package/dist/mentions/{suggestions.mjs → suggestions.cjs} +43 -37
  86. package/dist/mentions/{suggestions.mjs.map → suggestions.cjs.map} +1 -1
  87. package/dist/mentions/suggestions.js +36 -42
  88. package/dist/mentions/suggestions.js.map +1 -1
  89. package/dist/mentions/user.cjs +26 -0
  90. package/dist/mentions/{user.mjs.map → user.cjs.map} +1 -1
  91. package/dist/mentions/user.js +11 -13
  92. package/dist/mentions/user.js.map +1 -1
  93. package/dist/toolbar/{floating-toolbar.mjs → floating-toolbar.cjs} +73 -70
  94. package/dist/toolbar/{floating-toolbar.mjs.map → floating-toolbar.cjs.map} +1 -1
  95. package/dist/toolbar/floating-toolbar.js +69 -72
  96. package/dist/toolbar/floating-toolbar.js.map +1 -1
  97. package/dist/toolbar/shared.cjs +36 -0
  98. package/dist/toolbar/{shared.mjs.map → shared.cjs.map} +1 -1
  99. package/dist/toolbar/shared.js +12 -15
  100. package/dist/toolbar/shared.js.map +1 -1
  101. package/dist/toolbar/toolbar.cjs +433 -0
  102. package/dist/toolbar/{toolbar.mjs.map → toolbar.cjs.map} +1 -1
  103. package/dist/toolbar/toolbar.js +131 -156
  104. package/dist/toolbar/toolbar.js.map +1 -1
  105. package/dist/use-root-element.cjs +21 -0
  106. package/dist/use-root-element.cjs.map +1 -0
  107. package/dist/use-root-element.js +7 -9
  108. package/dist/use-root-element.js.map +1 -1
  109. package/dist/version-history/{history-version-preview.mjs → history-version-preview.cjs} +52 -50
  110. package/dist/version-history/{history-version-preview.mjs.map → history-version-preview.cjs.map} +1 -1
  111. package/dist/version-history/history-version-preview.js +49 -51
  112. package/dist/version-history/history-version-preview.js.map +1 -1
  113. package/dist/version.cjs +10 -0
  114. package/dist/{version.mjs.map → version.cjs.map} +1 -1
  115. package/dist/version.js +3 -7
  116. package/dist/version.js.map +1 -1
  117. package/package.json +18 -17
  118. package/styles.css.d.cts +1 -0
  119. package/dist/comments/get-thread-mark-ids.mjs +0 -21
  120. package/dist/comments/unwrap-thread-mark-node.mjs.map +0 -1
  121. package/dist/index.mjs +0 -16
  122. package/dist/is-command-registered.mjs +0 -9
  123. package/dist/is-text-format-active.mjs +0 -14
  124. package/dist/liveblocks-config.mjs +0 -15
  125. package/dist/liveblocks-plugin-provider.mjs +0 -147
  126. package/dist/liveblocks-plugin-provider.mjs.map +0 -1
  127. package/dist/mentions/avatar.mjs.map +0 -1
  128. package/dist/mentions/mention-component.mjs +0 -49
  129. package/dist/mentions/user.mjs +0 -24
  130. package/dist/toolbar/shared.mjs +0 -33
  131. package/dist/toolbar/toolbar.mjs +0 -408
  132. package/dist/use-root-element.mjs +0 -19
  133. package/dist/use-root-element.mjs.map +0 -1
  134. package/dist/version.mjs +0 -6
  135. /package/dist/{index.d.mts → index.d.cts} +0 -0
@@ -1,58 +1,36 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var LexicalComposerContext = require('@lexical/react/LexicalComposerContext');
5
- var richText = require('@lexical/rich-text');
6
- var selection = require('@lexical/selection');
7
- var utils = require('@lexical/utils');
8
- var _private = require('@liveblocks/react-ui/_private');
9
- var SelectPrimitive = require('@radix-ui/react-select');
10
- var TogglePrimitive = require('@radix-ui/react-toggle');
11
- var lexical = require('lexical');
12
- var react = require('react');
13
- var classnames = require('../classnames.js');
14
- var floatingComposer = require('../comments/floating-composer.js');
15
- var isBlockNodeActive = require('../is-block-node-active.js');
16
- var isCommandRegistered = require('../is-command-registered.js');
17
- var isTextFormatActive = require('../is-text-format-active.js');
18
- var shared = require('./shared.js');
19
-
20
- function _interopNamespaceDefault(e) {
21
- var n = Object.create(null);
22
- if (e) {
23
- Object.keys(e).forEach(function (k) {
24
- if (k !== 'default') {
25
- var d = Object.getOwnPropertyDescriptor(e, k);
26
- Object.defineProperty(n, k, d.get ? d : {
27
- enumerable: true,
28
- get: function () { return e[k]; }
29
- });
30
- }
31
- });
32
- }
33
- n.default = e;
34
- return Object.freeze(n);
35
- }
36
-
37
- var SelectPrimitive__namespace = /*#__PURE__*/_interopNamespaceDefault(SelectPrimitive);
38
- var TogglePrimitive__namespace = /*#__PURE__*/_interopNamespaceDefault(TogglePrimitive);
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
3
+ import { $isHeadingNode, $createHeadingNode, $createQuoteNode } from '@lexical/rich-text';
4
+ import { $setBlocksType } from '@lexical/selection';
5
+ import { mergeRegister } from '@lexical/utils';
6
+ import { ShortcutTooltip, Button, UndoIcon, RedoIcon, BoldIcon, ItalicIcon, UnderlineIcon, StrikethroughIcon, CodeIcon, CommentIcon, TextIcon, H1Icon, H2Icon, H3Icon, BlockquoteIcon, SelectButton, CheckIcon, TooltipProvider } from '@liveblocks/react-ui/_private';
7
+ import * as SelectPrimitive from '@radix-ui/react-select';
8
+ import * as TogglePrimitive from '@radix-ui/react-toggle';
9
+ import { CAN_UNDO_COMMAND, COMMAND_PRIORITY_CRITICAL, CAN_REDO_COMMAND, UNDO_COMMAND, REDO_COMMAND, FORMAT_TEXT_COMMAND, createCommand, $getSelection, $createParagraphNode, COMMAND_PRIORITY_LOW } from 'lexical';
10
+ import { forwardRef, useContext, useCallback, useState, useEffect, useMemo } from 'react';
11
+ import { classNames } from '../classnames.js';
12
+ import { OPEN_FLOATING_COMPOSER_COMMAND } from '../comments/floating-composer.js';
13
+ import { isBlockNodeActive } from '../is-block-node-active.js';
14
+ import { useIsCommandRegistered } from '../is-command-registered.js';
15
+ import { isTextFormatActive } from '../is-text-format-active.js';
16
+ import { FloatingToolbarContext, FloatingToolbarExternal } from './shared.js';
39
17
 
40
18
  const BLOCK_SELECT_SIDE_OFFSET = 10;
41
19
  const FLOATING_ELEMENT_COLLISION_PADDING = 10;
42
20
  function applyToolbarSlot(slot, props) {
43
21
  if (typeof slot === "function") {
44
22
  const Component = slot;
45
- return /* @__PURE__ */ jsxRuntime.jsx(Component, {
23
+ return /* @__PURE__ */ jsx(Component, {
46
24
  ...props
47
25
  });
48
26
  }
49
27
  return slot;
50
28
  }
51
- const ToolbarButton = react.forwardRef(
29
+ const ToolbarButton = forwardRef(
52
30
  ({ icon, children, name, shortcut, onKeyDown, ...props }, forwardedRef) => {
53
- const floatingToolbarContext = react.useContext(shared.FloatingToolbarContext);
31
+ const floatingToolbarContext = useContext(FloatingToolbarContext);
54
32
  const closeFloatingToolbar = floatingToolbarContext?.close;
55
- const handleKeyDown = react.useCallback(
33
+ const handleKeyDown = useCallback(
56
34
  (event) => {
57
35
  onKeyDown?.(event);
58
36
  if (!event.isDefaultPrevented() && closeFloatingToolbar && event.key === "Escape") {
@@ -63,10 +41,10 @@ const ToolbarButton = react.forwardRef(
63
41
  },
64
42
  [onKeyDown, closeFloatingToolbar]
65
43
  );
66
- return /* @__PURE__ */ jsxRuntime.jsx(_private.ShortcutTooltip, {
44
+ return /* @__PURE__ */ jsx(ShortcutTooltip, {
67
45
  content: name,
68
46
  shortcut,
69
- children: /* @__PURE__ */ jsxRuntime.jsx(_private.Button, {
47
+ children: /* @__PURE__ */ jsx(Button, {
70
48
  type: "button",
71
49
  variant: "toolbar",
72
50
  ref: forwardedRef,
@@ -79,154 +57,154 @@ const ToolbarButton = react.forwardRef(
79
57
  });
80
58
  }
81
59
  );
82
- const ToolbarToggle = react.forwardRef(
60
+ const ToolbarToggle = forwardRef(
83
61
  ({ active, ...props }, forwardedRef) => {
84
- return /* @__PURE__ */ jsxRuntime.jsx(TogglePrimitive__namespace.Root, {
62
+ return /* @__PURE__ */ jsx(TogglePrimitive.Root, {
85
63
  asChild: true,
86
64
  pressed: active,
87
- children: /* @__PURE__ */ jsxRuntime.jsx(ToolbarButton, {
65
+ children: /* @__PURE__ */ jsx(ToolbarButton, {
88
66
  ref: forwardedRef,
89
67
  ...props
90
68
  })
91
69
  });
92
70
  }
93
71
  );
94
- const ToolbarSeparator = react.forwardRef(
72
+ const ToolbarSeparator = forwardRef(
95
73
  ({ className, ...props }, forwardedRef) => {
96
- return /* @__PURE__ */ jsxRuntime.jsx("div", {
74
+ return /* @__PURE__ */ jsx("div", {
97
75
  ref: forwardedRef,
98
76
  role: "separator",
99
77
  "aria-orientation": "vertical",
100
- className: classnames.classNames("lb-lexical-toolbar-separator", className),
78
+ className: classNames("lb-lexical-toolbar-separator", className),
101
79
  ...props
102
80
  });
103
81
  }
104
82
  );
105
83
  function ToolbarSectionHistory() {
106
- const [editor] = LexicalComposerContext.useLexicalComposerContext();
107
- const [canUndo, setCanUndo] = react.useState(false);
108
- const [canRedo, setCanRedo] = react.useState(false);
109
- react.useEffect(() => {
110
- const unregister = utils.mergeRegister(
84
+ const [editor] = useLexicalComposerContext();
85
+ const [canUndo, setCanUndo] = useState(false);
86
+ const [canRedo, setCanRedo] = useState(false);
87
+ useEffect(() => {
88
+ const unregister = mergeRegister(
111
89
  editor.registerCommand(
112
- lexical.CAN_UNDO_COMMAND,
90
+ CAN_UNDO_COMMAND,
113
91
  (payload) => {
114
92
  setCanUndo(payload);
115
93
  return false;
116
94
  },
117
- lexical.COMMAND_PRIORITY_CRITICAL
95
+ COMMAND_PRIORITY_CRITICAL
118
96
  ),
119
97
  editor.registerCommand(
120
- lexical.CAN_REDO_COMMAND,
98
+ CAN_REDO_COMMAND,
121
99
  (payload) => {
122
100
  setCanRedo(payload);
123
101
  return false;
124
102
  },
125
- lexical.COMMAND_PRIORITY_CRITICAL
103
+ COMMAND_PRIORITY_CRITICAL
126
104
  )
127
105
  );
128
106
  return unregister;
129
107
  }, [editor]);
130
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
108
+ return /* @__PURE__ */ jsxs(Fragment, {
131
109
  children: [
132
- /* @__PURE__ */ jsxRuntime.jsx(ToolbarButton, {
110
+ /* @__PURE__ */ jsx(ToolbarButton, {
133
111
  name: "Undo",
134
- icon: /* @__PURE__ */ jsxRuntime.jsx(_private.UndoIcon, {}),
112
+ icon: /* @__PURE__ */ jsx(UndoIcon, {}),
135
113
  shortcut: "Mod-Z",
136
- onClick: () => editor.dispatchCommand(lexical.UNDO_COMMAND, void 0),
114
+ onClick: () => editor.dispatchCommand(UNDO_COMMAND, void 0),
137
115
  disabled: !canUndo
138
116
  }),
139
- /* @__PURE__ */ jsxRuntime.jsx(ToolbarButton, {
117
+ /* @__PURE__ */ jsx(ToolbarButton, {
140
118
  name: "Redo",
141
- icon: /* @__PURE__ */ jsxRuntime.jsx(_private.RedoIcon, {}),
119
+ icon: /* @__PURE__ */ jsx(RedoIcon, {}),
142
120
  shortcut: "Mod-Shift-Z",
143
- onClick: () => editor.dispatchCommand(lexical.REDO_COMMAND, void 0),
121
+ onClick: () => editor.dispatchCommand(REDO_COMMAND, void 0),
144
122
  disabled: !canRedo
145
123
  })
146
124
  ]
147
125
  });
148
126
  }
149
127
  function ToolbarSectionInline() {
150
- const [editor] = LexicalComposerContext.useLexicalComposerContext();
151
- const supportsTextFormat = isCommandRegistered.useIsCommandRegistered(lexical.FORMAT_TEXT_COMMAND);
152
- return supportsTextFormat ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
128
+ const [editor] = useLexicalComposerContext();
129
+ const supportsTextFormat = useIsCommandRegistered(FORMAT_TEXT_COMMAND);
130
+ return supportsTextFormat ? /* @__PURE__ */ jsxs(Fragment, {
153
131
  children: [
154
- /* @__PURE__ */ jsxRuntime.jsx(ToolbarToggle, {
132
+ /* @__PURE__ */ jsx(ToolbarToggle, {
155
133
  name: "Bold",
156
- icon: /* @__PURE__ */ jsxRuntime.jsx(_private.BoldIcon, {}),
134
+ icon: /* @__PURE__ */ jsx(BoldIcon, {}),
157
135
  shortcut: "Mod-B",
158
- onClick: () => editor.dispatchCommand(lexical.FORMAT_TEXT_COMMAND, "bold"),
159
- active: isTextFormatActive.isTextFormatActive(editor, "bold")
136
+ onClick: () => editor.dispatchCommand(FORMAT_TEXT_COMMAND, "bold"),
137
+ active: isTextFormatActive(editor, "bold")
160
138
  }),
161
- /* @__PURE__ */ jsxRuntime.jsx(ToolbarToggle, {
139
+ /* @__PURE__ */ jsx(ToolbarToggle, {
162
140
  name: "Italic",
163
- icon: /* @__PURE__ */ jsxRuntime.jsx(_private.ItalicIcon, {}),
141
+ icon: /* @__PURE__ */ jsx(ItalicIcon, {}),
164
142
  shortcut: "Mod-I",
165
- onClick: () => editor.dispatchCommand(lexical.FORMAT_TEXT_COMMAND, "italic"),
166
- active: isTextFormatActive.isTextFormatActive(editor, "italic")
143
+ onClick: () => editor.dispatchCommand(FORMAT_TEXT_COMMAND, "italic"),
144
+ active: isTextFormatActive(editor, "italic")
167
145
  }),
168
- /* @__PURE__ */ jsxRuntime.jsx(ToolbarToggle, {
146
+ /* @__PURE__ */ jsx(ToolbarToggle, {
169
147
  name: "Underline",
170
- icon: /* @__PURE__ */ jsxRuntime.jsx(_private.UnderlineIcon, {}),
148
+ icon: /* @__PURE__ */ jsx(UnderlineIcon, {}),
171
149
  shortcut: "Mod-U",
172
- onClick: () => editor.dispatchCommand(lexical.FORMAT_TEXT_COMMAND, "underline"),
173
- active: isTextFormatActive.isTextFormatActive(editor, "underline")
150
+ onClick: () => editor.dispatchCommand(FORMAT_TEXT_COMMAND, "underline"),
151
+ active: isTextFormatActive(editor, "underline")
174
152
  }),
175
- /* @__PURE__ */ jsxRuntime.jsx(ToolbarToggle, {
153
+ /* @__PURE__ */ jsx(ToolbarToggle, {
176
154
  name: "Strikethrough",
177
- icon: /* @__PURE__ */ jsxRuntime.jsx(_private.StrikethroughIcon, {}),
178
- onClick: () => editor.dispatchCommand(lexical.FORMAT_TEXT_COMMAND, "strikethrough"),
179
- active: isTextFormatActive.isTextFormatActive(editor, "strikethrough")
155
+ icon: /* @__PURE__ */ jsx(StrikethroughIcon, {}),
156
+ onClick: () => editor.dispatchCommand(FORMAT_TEXT_COMMAND, "strikethrough"),
157
+ active: isTextFormatActive(editor, "strikethrough")
180
158
  }),
181
- /* @__PURE__ */ jsxRuntime.jsx(ToolbarToggle, {
159
+ /* @__PURE__ */ jsx(ToolbarToggle, {
182
160
  name: "Inline code",
183
- icon: /* @__PURE__ */ jsxRuntime.jsx(_private.CodeIcon, {}),
184
- onClick: () => editor.dispatchCommand(lexical.FORMAT_TEXT_COMMAND, "code"),
185
- active: isTextFormatActive.isTextFormatActive(editor, "code")
161
+ icon: /* @__PURE__ */ jsx(CodeIcon, {}),
162
+ onClick: () => editor.dispatchCommand(FORMAT_TEXT_COMMAND, "code"),
163
+ active: isTextFormatActive(editor, "code")
186
164
  })
187
165
  ]
188
166
  }) : null;
189
167
  }
190
168
  function ToolbarSectionCollaboration() {
191
- const [editor] = LexicalComposerContext.useLexicalComposerContext();
192
- const supportsThread = isCommandRegistered.useIsCommandRegistered(floatingComposer.OPEN_FLOATING_COMPOSER_COMMAND);
193
- return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {
194
- children: supportsThread ? /* @__PURE__ */ jsxRuntime.jsx(ToolbarButton, {
169
+ const [editor] = useLexicalComposerContext();
170
+ const supportsThread = useIsCommandRegistered(OPEN_FLOATING_COMPOSER_COMMAND);
171
+ return /* @__PURE__ */ jsx(Fragment, {
172
+ children: supportsThread ? /* @__PURE__ */ jsx(ToolbarButton, {
195
173
  name: "Add a comment",
196
- icon: /* @__PURE__ */ jsxRuntime.jsx(_private.CommentIcon, {}),
197
- onClick: () => editor.dispatchCommand(floatingComposer.OPEN_FLOATING_COMPOSER_COMMAND, void 0),
174
+ icon: /* @__PURE__ */ jsx(CommentIcon, {}),
175
+ onClick: () => editor.dispatchCommand(OPEN_FLOATING_COMPOSER_COMMAND, void 0),
198
176
  children: "Comment"
199
177
  }) : null
200
178
  });
201
179
  }
202
180
  function DefaultToolbarContent() {
203
- const supportsTextFormat = isCommandRegistered.useIsCommandRegistered(lexical.FORMAT_TEXT_COMMAND);
204
- const supportsThread = isCommandRegistered.useIsCommandRegistered(floatingComposer.OPEN_FLOATING_COMPOSER_COMMAND);
205
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
181
+ const supportsTextFormat = useIsCommandRegistered(FORMAT_TEXT_COMMAND);
182
+ const supportsThread = useIsCommandRegistered(OPEN_FLOATING_COMPOSER_COMMAND);
183
+ return /* @__PURE__ */ jsxs(Fragment, {
206
184
  children: [
207
- /* @__PURE__ */ jsxRuntime.jsx(ToolbarSectionHistory, {}),
208
- supportsTextFormat ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
185
+ /* @__PURE__ */ jsx(ToolbarSectionHistory, {}),
186
+ supportsTextFormat ? /* @__PURE__ */ jsxs(Fragment, {
209
187
  children: [
210
- /* @__PURE__ */ jsxRuntime.jsx(ToolbarSeparator, {}),
211
- /* @__PURE__ */ jsxRuntime.jsx(ToolbarBlockSelector, {}),
212
- /* @__PURE__ */ jsxRuntime.jsx(ToolbarSectionInline, {})
188
+ /* @__PURE__ */ jsx(ToolbarSeparator, {}),
189
+ /* @__PURE__ */ jsx(ToolbarBlockSelector, {}),
190
+ /* @__PURE__ */ jsx(ToolbarSectionInline, {})
213
191
  ]
214
192
  }) : null,
215
- supportsThread ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
193
+ supportsThread ? /* @__PURE__ */ jsxs(Fragment, {
216
194
  children: [
217
- /* @__PURE__ */ jsxRuntime.jsx(ToolbarSeparator, {}),
218
- /* @__PURE__ */ jsxRuntime.jsx(ToolbarSectionCollaboration, {})
195
+ /* @__PURE__ */ jsx(ToolbarSeparator, {}),
196
+ /* @__PURE__ */ jsx(ToolbarSectionCollaboration, {})
219
197
  ]
220
198
  }) : null
221
199
  ]
222
200
  });
223
201
  }
224
- const INITIAL_COMMANDS_REGISTERED_COMMAND = lexical.createCommand(
202
+ const INITIAL_COMMANDS_REGISTERED_COMMAND = createCommand(
225
203
  "INITIAL_COMMANDS_REGISTERED_COMMAND"
226
204
  );
227
205
  function useRerender() {
228
- const [, setRerender] = react.useState(false);
229
- return react.useCallback(() => {
206
+ const [, setRerender] = useState(false);
207
+ return useCallback(() => {
230
208
  setRerender((toggle) => !toggle);
231
209
  }, [setRerender]);
232
210
  }
@@ -234,53 +212,53 @@ function createDefaultBlockSelectorItems() {
234
212
  const items = [
235
213
  {
236
214
  name: "Text",
237
- icon: /* @__PURE__ */ jsxRuntime.jsx(_private.TextIcon, {}),
215
+ icon: /* @__PURE__ */ jsx(TextIcon, {}),
238
216
  isActive: "default",
239
- setActive: () => selection.$setBlocksType(lexical.$getSelection(), () => lexical.$createParagraphNode())
217
+ setActive: () => $setBlocksType($getSelection(), () => $createParagraphNode())
240
218
  },
241
219
  {
242
220
  name: "Heading 1",
243
- icon: /* @__PURE__ */ jsxRuntime.jsx(_private.H1Icon, {}),
221
+ icon: /* @__PURE__ */ jsx(H1Icon, {}),
244
222
  isActive: (editor) => {
245
- return isBlockNodeActive.isBlockNodeActive(
223
+ return isBlockNodeActive(
246
224
  editor,
247
- (node) => richText.$isHeadingNode(node) ? node.getTag() === "h1" : false
225
+ (node) => $isHeadingNode(node) ? node.getTag() === "h1" : false
248
226
  );
249
227
  },
250
- setActive: () => selection.$setBlocksType(lexical.$getSelection(), () => richText.$createHeadingNode("h1"))
228
+ setActive: () => $setBlocksType($getSelection(), () => $createHeadingNode("h1"))
251
229
  },
252
230
  {
253
231
  name: "Heading 2",
254
- icon: /* @__PURE__ */ jsxRuntime.jsx(_private.H2Icon, {}),
255
- isActive: (editor) => isBlockNodeActive.isBlockNodeActive(
232
+ icon: /* @__PURE__ */ jsx(H2Icon, {}),
233
+ isActive: (editor) => isBlockNodeActive(
256
234
  editor,
257
- (node) => richText.$isHeadingNode(node) ? node.getTag() === "h2" : false
235
+ (node) => $isHeadingNode(node) ? node.getTag() === "h2" : false
258
236
  ),
259
- setActive: () => selection.$setBlocksType(lexical.$getSelection(), () => richText.$createHeadingNode("h2"))
237
+ setActive: () => $setBlocksType($getSelection(), () => $createHeadingNode("h2"))
260
238
  },
261
239
  {
262
240
  name: "Heading 3",
263
- icon: /* @__PURE__ */ jsxRuntime.jsx(_private.H3Icon, {}),
264
- isActive: (editor) => isBlockNodeActive.isBlockNodeActive(
241
+ icon: /* @__PURE__ */ jsx(H3Icon, {}),
242
+ isActive: (editor) => isBlockNodeActive(
265
243
  editor,
266
- (node) => richText.$isHeadingNode(node) ? node.getTag() === "h3" : false
244
+ (node) => $isHeadingNode(node) ? node.getTag() === "h3" : false
267
245
  ),
268
- setActive: () => selection.$setBlocksType(lexical.$getSelection(), () => richText.$createHeadingNode("h3"))
246
+ setActive: () => $setBlocksType($getSelection(), () => $createHeadingNode("h3"))
269
247
  },
270
248
  {
271
249
  name: "Blockquote",
272
- icon: /* @__PURE__ */ jsxRuntime.jsx(_private.BlockquoteIcon, {}),
273
- isActive: (editor) => isBlockNodeActive.isBlockNodeActive(editor, (node) => node.getType() === "quote"),
274
- setActive: () => selection.$setBlocksType(lexical.$getSelection(), () => richText.$createQuoteNode())
250
+ icon: /* @__PURE__ */ jsx(BlockquoteIcon, {}),
251
+ isActive: (editor) => isBlockNodeActive(editor, (node) => node.getType() === "quote"),
252
+ setActive: () => $setBlocksType($getSelection(), () => $createQuoteNode())
275
253
  }
276
254
  ];
277
255
  return items.filter(Boolean);
278
256
  }
279
- const ToolbarBlockSelector = react.forwardRef(({ items, onKeyDown, ...props }, forwardedRef) => {
280
- const floatingToolbarContext = react.useContext(shared.FloatingToolbarContext);
257
+ const ToolbarBlockSelector = forwardRef(({ items, onKeyDown, ...props }, forwardedRef) => {
258
+ const floatingToolbarContext = useContext(FloatingToolbarContext);
281
259
  const closeFloatingToolbar = floatingToolbarContext?.close;
282
- const [editor] = LexicalComposerContext.useLexicalComposerContext();
283
- const resolvedItems = react.useMemo(() => {
260
+ const [editor] = useLexicalComposerContext();
261
+ const resolvedItems = useMemo(() => {
284
262
  if (Array.isArray(items)) {
285
263
  return items;
286
264
  }
@@ -305,7 +283,7 @@ const ToolbarBlockSelector = react.forwardRef(({ items, onKeyDown, ...props }, f
305
283
  floatingToolbarContext?.close();
306
284
  }
307
285
  };
308
- const handleKeyDown = react.useCallback(
286
+ const handleKeyDown = useCallback(
309
287
  (event) => {
310
288
  onKeyDown?.(event);
311
289
  if (!event.isDefaultPrevented() && closeFloatingToolbar && event.key === "Escape") {
@@ -316,47 +294,47 @@ const ToolbarBlockSelector = react.forwardRef(({ items, onKeyDown, ...props }, f
316
294
  },
317
295
  [onKeyDown, closeFloatingToolbar]
318
296
  );
319
- return /* @__PURE__ */ jsxRuntime.jsxs(SelectPrimitive__namespace.Root, {
297
+ return /* @__PURE__ */ jsxs(SelectPrimitive.Root, {
320
298
  value: activeItem?.name,
321
299
  onValueChange: handleItemChange,
322
300
  children: [
323
- /* @__PURE__ */ jsxRuntime.jsx(_private.ShortcutTooltip, {
301
+ /* @__PURE__ */ jsx(ShortcutTooltip, {
324
302
  content: "Turn into\u2026",
325
- children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Trigger, {
303
+ children: /* @__PURE__ */ jsx(SelectPrimitive.Trigger, {
326
304
  asChild: true,
327
305
  ...props,
328
306
  ref: forwardedRef,
329
307
  onKeyDown: handleKeyDown,
330
308
  disabled: resolvedItems.length === 0,
331
- children: /* @__PURE__ */ jsxRuntime.jsx(_private.SelectButton, {
309
+ children: /* @__PURE__ */ jsx(SelectButton, {
332
310
  variant: "toolbar",
333
311
  children: activeItem?.name ?? "Turn into\u2026"
334
312
  })
335
313
  })
336
314
  }),
337
- /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, {
338
- children: /* @__PURE__ */ jsxRuntime.jsx(shared.FloatingToolbarExternal, {
339
- children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Content, {
315
+ /* @__PURE__ */ jsx(SelectPrimitive.Portal, {
316
+ children: /* @__PURE__ */ jsx(FloatingToolbarExternal, {
317
+ children: /* @__PURE__ */ jsx(SelectPrimitive.Content, {
340
318
  position: "popper",
341
319
  sideOffset: BLOCK_SELECT_SIDE_OFFSET,
342
320
  collisionPadding: FLOATING_ELEMENT_COLLISION_PADDING,
343
321
  className: "lb-root lb-portal lb-elevation lb-dropdown lb-select-dropdown lb-lexical-block-selector-dropdown",
344
- children: resolvedItems.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(SelectPrimitive__namespace.Item, {
322
+ children: resolvedItems.map((item) => /* @__PURE__ */ jsxs(SelectPrimitive.Item, {
345
323
  value: item.name,
346
324
  className: "lb-dropdown-item",
347
325
  "data-name": item.name,
348
326
  children: [
349
- item.icon ? /* @__PURE__ */ jsxRuntime.jsx("span", {
327
+ item.icon ? /* @__PURE__ */ jsx("span", {
350
328
  className: "lb-dropdown-item-icon lb-icon-container",
351
329
  children: item.icon
352
330
  }) : null,
353
- /* @__PURE__ */ jsxRuntime.jsx("span", {
331
+ /* @__PURE__ */ jsx("span", {
354
332
  className: "lb-dropdown-item-label",
355
333
  children: item.label ?? item.name
356
334
  }),
357
- item.name === activeItem?.name ? /* @__PURE__ */ jsxRuntime.jsx("span", {
335
+ item.name === activeItem?.name ? /* @__PURE__ */ jsx("span", {
358
336
  className: "lb-dropdown-item-accessory lb-icon-container",
359
- children: /* @__PURE__ */ jsxRuntime.jsx(_private.CheckIcon, {})
337
+ children: /* @__PURE__ */ jsx(CheckIcon, {})
360
338
  }) : null
361
339
  ]
362
340
  }, item.name))
@@ -367,13 +345,13 @@ const ToolbarBlockSelector = react.forwardRef(({ items, onKeyDown, ...props }, f
367
345
  });
368
346
  });
369
347
  const Toolbar = Object.assign(
370
- react.forwardRef(
348
+ forwardRef(
371
349
  ({ before, after, children = DefaultToolbarContent, className, ...props }, forwardedRef) => {
372
- const [editor] = LexicalComposerContext.useLexicalComposerContext();
373
- const [commandsRegistered, setCommandsRegistered] = react.useState(false);
350
+ const [editor] = useLexicalComposerContext();
351
+ const [commandsRegistered, setCommandsRegistered] = useState(false);
374
352
  const rerender = useRerender();
375
353
  const slotProps = { editor };
376
- react.useEffect(() => {
354
+ useEffect(() => {
377
355
  if (commandsRegistered) {
378
356
  return;
379
357
  }
@@ -383,12 +361,12 @@ const Toolbar = Object.assign(
383
361
  setCommandsRegistered(true);
384
362
  return true;
385
363
  },
386
- lexical.COMMAND_PRIORITY_LOW
364
+ COMMAND_PRIORITY_LOW
387
365
  );
388
366
  editor.dispatchCommand(INITIAL_COMMANDS_REGISTERED_COMMAND, void 0);
389
367
  return unregister;
390
368
  }, [editor, commandsRegistered]);
391
- react.useEffect(() => {
369
+ useEffect(() => {
392
370
  const unregister = editor.registerUpdateListener(({ tags }) => {
393
371
  return editor.getEditorState().read(() => {
394
372
  if (tags.has("collaboration"))
@@ -398,13 +376,13 @@ const Toolbar = Object.assign(
398
376
  });
399
377
  return unregister;
400
378
  }, [editor, rerender]);
401
- return /* @__PURE__ */ jsxRuntime.jsx(_private.TooltipProvider, {
402
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", {
379
+ return /* @__PURE__ */ jsx(TooltipProvider, {
380
+ children: /* @__PURE__ */ jsxs("div", {
403
381
  ref: forwardedRef,
404
382
  role: "toolbar",
405
383
  "aria-label": "Toolbar",
406
384
  "aria-orientation": "horizontal",
407
- className: classnames.classNames("lb-root lb-lexical-toolbar", className),
385
+ className: classNames("lb-root lb-lexical-toolbar", className),
408
386
  ...props,
409
387
  children: [
410
388
  applyToolbarSlot(before, slotProps),
@@ -426,8 +404,5 @@ const Toolbar = Object.assign(
426
404
  }
427
405
  );
428
406
 
429
- exports.BLOCK_SELECT_SIDE_OFFSET = BLOCK_SELECT_SIDE_OFFSET;
430
- exports.FLOATING_ELEMENT_COLLISION_PADDING = FLOATING_ELEMENT_COLLISION_PADDING;
431
- exports.Toolbar = Toolbar;
432
- exports.applyToolbarSlot = applyToolbarSlot;
407
+ export { BLOCK_SELECT_SIDE_OFFSET, FLOATING_ELEMENT_COLLISION_PADDING, Toolbar, applyToolbarSlot };
433
408
  //# sourceMappingURL=toolbar.js.map