@dxos/react-ui-editor 0.8.3-main.7f5a14c → 0.8.3-staging.0fa589b
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 +371 -375
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +502 -511
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +371 -375
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
- package/dist/types/src/components/Popover/RefDropdownMenu.d.ts.map +1 -1
- package/dist/types/src/components/Popover/RefPopover.d.ts.map +1 -1
- package/dist/types/src/defaults.d.ts +0 -1
- package/dist/types/src/defaults.d.ts.map +1 -1
- package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +1 -1
- package/dist/types/src/extensions/command/action.d.ts.map +1 -1
- package/dist/types/src/extensions/command/command-menu.d.ts +20 -0
- package/dist/types/src/extensions/command/command-menu.d.ts.map +1 -0
- package/dist/types/src/extensions/command/command.d.ts.map +1 -1
- package/dist/types/src/extensions/command/floating-menu.d.ts +7 -0
- package/dist/types/src/extensions/command/floating-menu.d.ts.map +1 -0
- package/dist/types/src/extensions/command/hint.d.ts +5 -2
- package/dist/types/src/extensions/command/hint.d.ts.map +1 -1
- package/dist/types/src/extensions/command/index.d.ts +3 -1
- package/dist/types/src/extensions/command/index.d.ts.map +1 -1
- package/dist/types/src/extensions/command/placeholder.d.ts +10 -0
- package/dist/types/src/extensions/command/placeholder.d.ts.map +1 -0
- package/dist/types/src/extensions/command/state.d.ts +1 -1
- package/dist/types/src/extensions/command/state.d.ts.map +1 -1
- package/dist/types/src/extensions/command/useCommandMenu.d.ts +26 -0
- package/dist/types/src/extensions/command/useCommandMenu.d.ts.map +1 -0
- package/dist/types/src/extensions/index.d.ts +0 -1
- package/dist/types/src/extensions/index.d.ts.map +1 -1
- package/dist/types/src/extensions/markdown/bundle.d.ts.map +1 -1
- package/dist/types/src/extensions/outliner/tree.d.ts.map +1 -1
- package/dist/types/src/extensions/preview/preview.d.ts +12 -19
- package/dist/types/src/extensions/preview/preview.d.ts.map +1 -1
- package/dist/types/src/stories/CommandMenu.stories.d.ts +5 -4
- package/dist/types/src/stories/CommandMenu.stories.d.ts.map +1 -1
- package/dist/types/src/stories/Preview.stories.d.ts.map +1 -1
- package/dist/types/src/util/dom.d.ts +5 -0
- package/dist/types/src/util/dom.d.ts.map +1 -1
- package/dist/types/src/util/react.d.ts +2 -4
- package/dist/types/src/util/react.d.ts.map +1 -1
- package/package.json +31 -31
- package/src/components/EditorToolbar/EditorToolbar.tsx +5 -9
- package/src/components/Popover/RefDropdownMenu.tsx +5 -3
- package/src/components/Popover/RefPopover.tsx +5 -3
- package/src/defaults.ts +0 -6
- package/src/extensions/automerge/automerge.stories.tsx +5 -5
- package/src/extensions/command/action.ts +9 -2
- package/src/extensions/command/command-menu.ts +210 -0
- package/src/extensions/command/command.ts +8 -8
- package/src/extensions/command/floating-menu.ts +133 -0
- package/src/extensions/command/hint.ts +29 -9
- package/src/extensions/command/index.ts +3 -1
- package/src/extensions/command/placeholder.ts +113 -0
- package/src/extensions/command/state.ts +1 -2
- package/src/extensions/command/useCommandMenu.ts +118 -0
- package/src/extensions/index.ts +0 -1
- package/src/extensions/markdown/bundle.ts +0 -2
- package/src/extensions/outliner/tree.test.ts +13 -10
- package/src/extensions/outliner/tree.ts +5 -3
- package/src/extensions/preview/preview.ts +11 -86
- package/src/stories/Command.stories.tsx +1 -1
- package/src/stories/CommandMenu.stories.tsx +35 -19
- package/src/stories/Preview.stories.tsx +134 -57
- package/src/stories/components/util.tsx +2 -2
- package/src/util/dom.ts +20 -0
- package/src/util/react.tsx +3 -20
- package/dist/types/src/extensions/command/menu.d.ts +0 -47
- package/dist/types/src/extensions/command/menu.d.ts.map +0 -1
- package/dist/types/src/extensions/placeholder.d.ts +0 -4
- package/dist/types/src/extensions/placeholder.d.ts.map +0 -1
- package/src/extensions/command/menu.ts +0 -439
- package/src/extensions/placeholder.ts +0 -82
package/dist/lib/node/index.cjs
CHANGED
@@ -109,6 +109,7 @@ __export(node_exports, {
|
|
109
109
|
formattingKeymap: () => formattingKeymap,
|
110
110
|
getFormatting: () => getFormatting,
|
111
111
|
getItem: () => getItem,
|
112
|
+
getLinkRef: () => getLinkRef,
|
112
113
|
getListItemContent: () => getListItemContent,
|
113
114
|
getNextItem: () => getNextItem,
|
114
115
|
getPreviousItem: () => getPreviousItem,
|
@@ -134,7 +135,6 @@ __export(node_exports, {
|
|
134
135
|
mention: () => mention,
|
135
136
|
moveItemDown: () => moveItemDown,
|
136
137
|
moveItemUp: () => moveItemUp,
|
137
|
-
multilinePlaceholder: () => multilinePlaceholder,
|
138
138
|
openCommand: () => openCommand,
|
139
139
|
openEffect: () => openEffect,
|
140
140
|
outliner: () => outliner,
|
@@ -158,7 +158,6 @@ __export(node_exports, {
|
|
158
158
|
setStyle: () => setStyle,
|
159
159
|
singleValueFacet: () => singleValueFacet,
|
160
160
|
stackItemContentEditorClassNames: () => stackItemContentEditorClassNames,
|
161
|
-
stackItemContentToolbarClassNames: () => stackItemContentToolbarClassNames,
|
162
161
|
staticCompletion: () => staticCompletion,
|
163
162
|
table: () => table,
|
164
163
|
tags: () => import_highlight.tags,
|
@@ -197,7 +196,6 @@ var import_react = __toESM(require("react"));
|
|
197
196
|
var import_app_graph = require("@dxos/app-graph");
|
198
197
|
var import_react_ui = require("@dxos/react-ui");
|
199
198
|
var import_react_ui_menu = require("@dxos/react-ui-menu");
|
200
|
-
var import_react_ui_theme = require("@dxos/react-ui-theme");
|
201
199
|
var import_react2 = require("react");
|
202
200
|
var import_live_object = require("@dxos/live-object");
|
203
201
|
var import_react_ui_menu2 = require("@dxos/react-ui-menu");
|
@@ -220,7 +218,7 @@ var import_log2 = require("@dxos/log");
|
|
220
218
|
var import_react3 = __toESM(require("react"));
|
221
219
|
var import_client = require("react-dom/client");
|
222
220
|
var import_react_ui2 = require("@dxos/react-ui");
|
223
|
-
var
|
221
|
+
var import_react_ui_theme = require("@dxos/react-ui-theme");
|
224
222
|
var import_state7 = require("@codemirror/state");
|
225
223
|
var import_view5 = require("@codemirror/view");
|
226
224
|
var import_async = require("@dxos/async");
|
@@ -235,124 +233,126 @@ var import_invariant2 = require("@dxos/invariant");
|
|
235
233
|
var import_state8 = require("@codemirror/state");
|
236
234
|
var import_state9 = require("@codemirror/state");
|
237
235
|
var import_view7 = require("@codemirror/view");
|
238
|
-
var import_view8 = require("@codemirror/view");
|
239
236
|
var import_state10 = require("@codemirror/state");
|
240
|
-
var
|
237
|
+
var import_view8 = require("@codemirror/view");
|
238
|
+
var import_util = require("@dxos/util");
|
241
239
|
var import_state11 = require("@codemirror/state");
|
240
|
+
var import_view9 = require("@codemirror/view");
|
241
|
+
var import_state12 = require("@codemirror/state");
|
242
242
|
var import_view10 = require("@codemirror/view");
|
243
|
-
var import_react4 = require("react");
|
244
|
-
var import_async3 = require("@dxos/async");
|
245
243
|
var import_view11 = require("@codemirror/view");
|
246
|
-
var import_state12 = require("@codemirror/state");
|
247
244
|
var import_view12 = require("@codemirror/view");
|
248
|
-
var
|
245
|
+
var import_async3 = require("@dxos/async");
|
246
|
+
var import_react4 = require("react");
|
249
247
|
var import_state13 = require("@codemirror/state");
|
250
248
|
var import_view13 = require("@codemirror/view");
|
249
|
+
var import_commands = require("@codemirror/commands");
|
250
|
+
var import_state14 = require("@codemirror/state");
|
251
|
+
var import_view14 = require("@codemirror/view");
|
251
252
|
var import_lodash2 = __toESM(require("lodash.sortby"));
|
252
253
|
var import_react5 = require("react");
|
253
254
|
var import_async4 = require("@dxos/async");
|
254
255
|
var import_log4 = require("@dxos/log");
|
255
|
-
var import_util = require("@dxos/util");
|
256
|
-
var import_state14 = require("@codemirror/state");
|
257
|
-
var import_view14 = require("@codemirror/view");
|
258
|
-
var import_async5 = require("@dxos/async");
|
259
|
-
var import_invariant3 = require("@dxos/invariant");
|
260
256
|
var import_util2 = require("@dxos/util");
|
261
|
-
var import_language = require("@codemirror/language");
|
262
257
|
var import_state15 = require("@codemirror/state");
|
263
258
|
var import_view15 = require("@codemirror/view");
|
259
|
+
var import_async5 = require("@dxos/async");
|
260
|
+
var import_invariant3 = require("@dxos/invariant");
|
261
|
+
var import_util3 = require("@dxos/util");
|
262
|
+
var import_language = require("@codemirror/language");
|
263
|
+
var import_state16 = require("@codemirror/state");
|
264
|
+
var import_view16 = require("@codemirror/view");
|
264
265
|
var import_autocomplete2 = require("@codemirror/autocomplete");
|
265
266
|
var import_commands2 = require("@codemirror/commands");
|
266
267
|
var import_language2 = require("@codemirror/language");
|
267
268
|
var import_search = require("@codemirror/search");
|
268
|
-
var
|
269
|
+
var import_state17 = require("@codemirror/state");
|
269
270
|
var import_theme_one_dark = require("@codemirror/theme-one-dark");
|
270
|
-
var
|
271
|
+
var import_view17 = require("@codemirror/view");
|
271
272
|
var import_lodash3 = __toESM(require("lodash.defaultsdeep"));
|
272
273
|
var import_lodash4 = __toESM(require("lodash.merge"));
|
273
274
|
var import_display_name = require("@dxos/display-name");
|
274
275
|
var import_log5 = require("@dxos/log");
|
275
|
-
var
|
276
|
-
var
|
277
|
-
var import_view17 = require("@codemirror/view");
|
276
|
+
var import_util4 = require("@dxos/util");
|
277
|
+
var import_state18 = require("@codemirror/state");
|
278
278
|
var import_view18 = require("@codemirror/view");
|
279
|
+
var import_view19 = require("@codemirror/view");
|
280
|
+
var import_react_ui_theme2 = require("@dxos/react-ui-theme");
|
279
281
|
var import_react_ui_theme3 = require("@dxos/react-ui-theme");
|
280
282
|
var import_react_ui_theme4 = require("@dxos/react-ui-theme");
|
281
|
-
var
|
282
|
-
var import_util4 = require("@dxos/util");
|
283
|
+
var import_util5 = require("@dxos/util");
|
283
284
|
var import_language3 = require("@codemirror/language");
|
284
|
-
var
|
285
|
+
var import_view20 = require("@codemirror/view");
|
285
286
|
var import_react6 = __toESM(require("react"));
|
286
287
|
var import_react_ui3 = require("@dxos/react-ui");
|
287
|
-
var
|
288
|
-
var
|
288
|
+
var import_view21 = require("@codemirror/view");
|
289
|
+
var import_react_ui_theme5 = require("@dxos/react-ui-theme");
|
289
290
|
var import_lang_json = require("@codemirror/lang-json");
|
290
291
|
var import_lint = require("@codemirror/lint");
|
291
292
|
var import_ajv = __toESM(require("ajv"));
|
292
|
-
var
|
293
|
+
var import_view22 = require("@codemirror/view");
|
293
294
|
var import_autocomplete3 = require("@codemirror/autocomplete");
|
294
295
|
var import_language4 = require("@codemirror/language");
|
295
|
-
var
|
296
|
-
var
|
296
|
+
var import_state19 = require("@codemirror/state");
|
297
|
+
var import_view23 = require("@codemirror/view");
|
297
298
|
var import_react7 = require("react");
|
298
299
|
var import_autocomplete4 = require("@codemirror/autocomplete");
|
299
300
|
var import_commands3 = require("@codemirror/commands");
|
300
301
|
var import_lang_markdown2 = require("@codemirror/lang-markdown");
|
301
302
|
var import_language5 = require("@codemirror/language");
|
302
303
|
var import_language_data = require("@codemirror/language-data");
|
303
|
-
var
|
304
|
-
var
|
305
|
-
var import_util5 = require("@dxos/util");
|
304
|
+
var import_view24 = require("@codemirror/view");
|
305
|
+
var import_util6 = require("@dxos/util");
|
306
306
|
var import_lang_markdown3 = require("@codemirror/lang-markdown");
|
307
307
|
var import_language6 = require("@codemirror/language");
|
308
308
|
var import_highlight2 = require("@lezer/highlight");
|
309
309
|
var import_markdown = require("@lezer/markdown");
|
310
310
|
var import_language7 = require("@codemirror/language");
|
311
|
-
var import_state19 = require("@codemirror/state");
|
312
|
-
var import_language8 = require("@codemirror/language");
|
313
311
|
var import_state20 = require("@codemirror/state");
|
314
|
-
var
|
315
|
-
var import_invariant4 = require("@dxos/invariant");
|
316
|
-
var import_react_ui_theme7 = require("@dxos/react-ui-theme");
|
317
|
-
var import_language9 = require("@codemirror/language");
|
312
|
+
var import_language8 = require("@codemirror/language");
|
318
313
|
var import_state21 = require("@codemirror/state");
|
319
314
|
var import_view25 = require("@codemirror/view");
|
320
|
-
var
|
315
|
+
var import_invariant4 = require("@dxos/invariant");
|
316
|
+
var import_react_ui_theme6 = require("@dxos/react-ui-theme");
|
317
|
+
var import_language9 = require("@codemirror/language");
|
321
318
|
var import_state22 = require("@codemirror/state");
|
322
319
|
var import_view26 = require("@codemirror/view");
|
323
|
-
var
|
324
|
-
var import_language11 = require("@codemirror/language");
|
320
|
+
var import_language10 = require("@codemirror/language");
|
325
321
|
var import_state23 = require("@codemirror/state");
|
322
|
+
var import_view27 = require("@codemirror/view");
|
326
323
|
var import_view28 = require("@codemirror/view");
|
327
|
-
var
|
324
|
+
var import_language11 = require("@codemirror/language");
|
325
|
+
var import_state24 = require("@codemirror/state");
|
328
326
|
var import_view29 = require("@codemirror/view");
|
329
|
-
var
|
327
|
+
var import_language12 = require("@codemirror/language");
|
328
|
+
var import_view30 = require("@codemirror/view");
|
329
|
+
var import_react_ui_theme7 = require("@dxos/react-ui-theme");
|
330
330
|
var import_autocomplete5 = require("@codemirror/autocomplete");
|
331
331
|
var import_log6 = require("@dxos/log");
|
332
|
-
var
|
332
|
+
var import_view31 = require("@codemirror/view");
|
333
333
|
var import_codemirror_vim = require("@replit/codemirror-vim");
|
334
334
|
var import_codemirror_vscode_keymap = require("@replit/codemirror-vscode-keymap");
|
335
335
|
var import_effect = require("effect");
|
336
336
|
var import_commands4 = require("@codemirror/commands");
|
337
337
|
var import_language13 = require("@codemirror/language");
|
338
|
-
var import_state24 = require("@codemirror/state");
|
339
|
-
var import_view31 = require("@codemirror/view");
|
340
338
|
var import_state25 = require("@codemirror/state");
|
341
|
-
var
|
339
|
+
var import_view32 = require("@codemirror/view");
|
342
340
|
var import_state26 = require("@codemirror/state");
|
341
|
+
var import_language14 = require("@codemirror/language");
|
343
342
|
var import_state27 = require("@codemirror/state");
|
344
|
-
var import_invariant5 = require("@dxos/invariant");
|
345
343
|
var import_state28 = require("@codemirror/state");
|
346
|
-
var
|
347
|
-
var import_react_ui_theme9 = require("@dxos/react-ui-theme");
|
344
|
+
var import_invariant5 = require("@dxos/invariant");
|
348
345
|
var import_state29 = require("@codemirror/state");
|
349
346
|
var import_view33 = require("@codemirror/view");
|
347
|
+
var import_react_ui_theme8 = require("@dxos/react-ui-theme");
|
348
|
+
var import_state30 = require("@codemirror/state");
|
349
|
+
var import_view34 = require("@codemirror/view");
|
350
350
|
var import_log7 = require("@dxos/log");
|
351
351
|
var import_dx_ref_tag = require("@dxos/lit-ui/dx-ref-tag.pcss");
|
352
352
|
var import_language15 = require("@codemirror/language");
|
353
|
-
var
|
354
|
-
var import_view34 = require("@codemirror/view");
|
353
|
+
var import_state31 = require("@codemirror/state");
|
355
354
|
var import_view35 = require("@codemirror/view");
|
355
|
+
var import_view36 = require("@codemirror/view");
|
356
356
|
var import_search2 = require("@codemirror/search");
|
357
357
|
var import_tracking2 = require("@preact-signals/safe-react/tracking");
|
358
358
|
var import_react8 = __toESM(require("react"));
|
@@ -367,12 +367,12 @@ var import_react_context2 = require("@radix-ui/react-context");
|
|
367
367
|
var import_react10 = __toESM(require("react"));
|
368
368
|
var import_async7 = require("@dxos/async");
|
369
369
|
var import_react_ui6 = require("@dxos/react-ui");
|
370
|
-
var
|
371
|
-
var
|
370
|
+
var import_state32 = require("@codemirror/state");
|
371
|
+
var import_view37 = require("@codemirror/view");
|
372
372
|
var import_react_tabster = require("@fluentui/react-tabster");
|
373
373
|
var import_react11 = require("react");
|
374
374
|
var import_log8 = require("@dxos/log");
|
375
|
-
var
|
375
|
+
var import_util7 = require("@dxos/util");
|
376
376
|
var translationKey = "react-ui-editor";
|
377
377
|
var translations_default = [
|
378
378
|
{
|
@@ -834,6 +834,9 @@ var createElement = (tag, options, children) => {
|
|
834
834
|
if (options?.className) {
|
835
835
|
el.className = options.className;
|
836
836
|
}
|
837
|
+
if (options?.text) {
|
838
|
+
el.textContent = options.text;
|
839
|
+
}
|
837
840
|
if (children) {
|
838
841
|
el.append(...Array.isArray(children) ? children : [
|
839
842
|
children
|
@@ -843,13 +846,13 @@ var createElement = (tag, options, children) => {
|
|
843
846
|
};
|
844
847
|
var renderRoot = (root, node) => {
|
845
848
|
(0, import_client.createRoot)(root).render(/* @__PURE__ */ import_react3.default.createElement(import_react_ui2.ThemeProvider, {
|
846
|
-
tx:
|
849
|
+
tx: import_react_ui_theme.defaultTx
|
847
850
|
}, node));
|
848
851
|
return root;
|
849
852
|
};
|
850
853
|
var createRenderer = (Component) => (el, props) => {
|
851
854
|
renderRoot(el, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.ThemeProvider, {
|
852
|
-
tx:
|
855
|
+
tx: import_react_ui_theme.defaultTx
|
853
856
|
}, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Tooltip.Provider, null, /* @__PURE__ */ import_react3.default.createElement(Component, props))));
|
854
857
|
};
|
855
858
|
var automerge = (accessor) => {
|
@@ -1636,6 +1639,7 @@ var closeCommand = (view) => {
|
|
1636
1639
|
var commandKeyBindings = [
|
1637
1640
|
{
|
1638
1641
|
key: "/",
|
1642
|
+
preventDefault: true,
|
1639
1643
|
run: openCommand
|
1640
1644
|
},
|
1641
1645
|
{
|
@@ -1643,32 +1647,48 @@ var commandKeyBindings = [
|
|
1643
1647
|
run: closeCommand
|
1644
1648
|
}
|
1645
1649
|
];
|
1646
|
-
var
|
1647
|
-
|
1648
|
-
|
1649
|
-
|
1650
|
-
|
1651
|
-
|
1652
|
-
|
1653
|
-
|
1654
|
-
|
1655
|
-
|
1656
|
-
|
1657
|
-
|
1658
|
-
|
1659
|
-
|
1660
|
-
|
1661
|
-
|
1650
|
+
var hint = ({ delay = 3e3, onHint }) => {
|
1651
|
+
return import_view9.ViewPlugin.fromClass(class {
|
1652
|
+
constructor() {
|
1653
|
+
this.decorations = import_view9.Decoration.none;
|
1654
|
+
}
|
1655
|
+
update(update2) {
|
1656
|
+
if (this.timeout) {
|
1657
|
+
clearTimeout(this.timeout);
|
1658
|
+
this.timeout = void 0;
|
1659
|
+
}
|
1660
|
+
const builder = new import_state11.RangeSetBuilder();
|
1661
|
+
const cState = update2.view.state.field(commandState, false);
|
1662
|
+
if (!cState?.tooltip) {
|
1663
|
+
const selection = update2.view.state.selection.main;
|
1664
|
+
const line = update2.view.state.doc.lineAt(selection.from);
|
1665
|
+
if (selection.from === selection.to && line.from === line.to) {
|
1666
|
+
this.timeout = setTimeout(() => {
|
1667
|
+
const hint2 = onHint?.();
|
1668
|
+
if (hint2) {
|
1669
|
+
const builder2 = new import_state11.RangeSetBuilder();
|
1670
|
+
builder2.add(selection.from, selection.to, import_view9.Decoration.widget({
|
1671
|
+
widget: new Hint(hint2)
|
1672
|
+
}));
|
1673
|
+
this.decorations = builder2.finish();
|
1674
|
+
update2.view.update([]);
|
1675
|
+
}
|
1676
|
+
}, delay);
|
1662
1677
|
}
|
1663
1678
|
}
|
1679
|
+
this.decorations = builder.finish();
|
1680
|
+
}
|
1681
|
+
destroy() {
|
1682
|
+
if (this.timeout) {
|
1683
|
+
clearTimeout(this.timeout);
|
1684
|
+
}
|
1664
1685
|
}
|
1665
|
-
|
1666
|
-
|
1667
|
-
|
1668
|
-
|
1669
|
-
|
1670
|
-
|
1671
|
-
});
|
1686
|
+
}, {
|
1687
|
+
provide: (plugin) => [
|
1688
|
+
import_view9.EditorView.decorations.of((view) => view.plugin(plugin)?.decorations ?? import_view9.Decoration.none)
|
1689
|
+
]
|
1690
|
+
});
|
1691
|
+
};
|
1672
1692
|
var Hint = class extends import_view9.WidgetType {
|
1673
1693
|
constructor(content) {
|
1674
1694
|
super(), this.content = content;
|
@@ -1709,21 +1729,62 @@ var Hint = class extends import_view9.WidgetType {
|
|
1709
1729
|
};
|
1710
1730
|
var command = (options = {}) => {
|
1711
1731
|
return [
|
1712
|
-
import_view8.keymap.of(commandKeyBindings),
|
1732
|
+
import_state10.Prec.highest(import_view8.keymap.of(commandKeyBindings)),
|
1713
1733
|
commandConfig.of(options),
|
1714
1734
|
commandState,
|
1715
|
-
options.onHint
|
1716
|
-
|
1717
|
-
}) : [],
|
1718
|
-
import_view8.EditorView.focusChangeEffect.of((_, focusing) => {
|
1719
|
-
return focusing ? closeEffect.of(null) : null;
|
1720
|
-
}),
|
1735
|
+
options.onHint && hint(options),
|
1736
|
+
import_view8.EditorView.focusChangeEffect.of((_, focusing) => focusing ? closeEffect.of(null) : null),
|
1721
1737
|
import_view8.EditorView.theme({
|
1722
1738
|
".cm-tooltip": {
|
1723
1739
|
background: "transparent"
|
1724
1740
|
}
|
1725
1741
|
})
|
1726
|
-
];
|
1742
|
+
].filter(import_util.isNonNullable);
|
1743
|
+
};
|
1744
|
+
var placeholder = ({ delay = 3e3, content }) => {
|
1745
|
+
const plugin = import_view11.ViewPlugin.fromClass(class {
|
1746
|
+
constructor() {
|
1747
|
+
this.decorations = import_view11.Decoration.none;
|
1748
|
+
}
|
1749
|
+
update(update2) {
|
1750
|
+
if (this.timeout) {
|
1751
|
+
window.clearTimeout(this.timeout);
|
1752
|
+
this.timeout = void 0;
|
1753
|
+
}
|
1754
|
+
const activeLine = update2.view.state.doc.lineAt(update2.view.state.selection.main.head);
|
1755
|
+
const isEmpty = activeLine.text.trim() === "";
|
1756
|
+
if (isEmpty) {
|
1757
|
+
const lineStart = activeLine.from;
|
1758
|
+
this.timeout = setTimeout(() => {
|
1759
|
+
this.decorations = import_view11.Decoration.set([
|
1760
|
+
import_view11.Decoration.widget({
|
1761
|
+
widget: new Placeholder(content),
|
1762
|
+
side: 1
|
1763
|
+
}).range(lineStart)
|
1764
|
+
]);
|
1765
|
+
update2.view.update([]);
|
1766
|
+
}, delay);
|
1767
|
+
}
|
1768
|
+
this.decorations = import_view11.Decoration.none;
|
1769
|
+
}
|
1770
|
+
destroy() {
|
1771
|
+
if (this.timeout) {
|
1772
|
+
clearTimeout(this.timeout);
|
1773
|
+
}
|
1774
|
+
}
|
1775
|
+
}, {
|
1776
|
+
provide: (plugin2) => {
|
1777
|
+
return [
|
1778
|
+
import_view11.EditorView.decorations.of((view) => view.plugin(plugin2)?.decorations ?? import_view11.Decoration.none)
|
1779
|
+
];
|
1780
|
+
}
|
1781
|
+
});
|
1782
|
+
return typeof content === "string" ? [
|
1783
|
+
plugin,
|
1784
|
+
import_view11.EditorView.contentAttributes.of({
|
1785
|
+
"aria-placeholder": content
|
1786
|
+
})
|
1787
|
+
] : plugin;
|
1727
1788
|
};
|
1728
1789
|
var Placeholder = class extends import_view11.WidgetType {
|
1729
1790
|
constructor(content) {
|
@@ -1759,133 +1820,6 @@ var Placeholder = class extends import_view11.WidgetType {
|
|
1759
1820
|
return false;
|
1760
1821
|
}
|
1761
1822
|
};
|
1762
|
-
function multilinePlaceholder(content) {
|
1763
|
-
const plugin = import_view11.ViewPlugin.fromClass(class {
|
1764
|
-
constructor(view) {
|
1765
|
-
this.view = view;
|
1766
|
-
}
|
1767
|
-
get decorations() {
|
1768
|
-
const activeLine = this.view.state.doc.lineAt(this.view.state.selection.main.head);
|
1769
|
-
const isEmpty = activeLine.text.trim() === "";
|
1770
|
-
if (!isEmpty || !content) {
|
1771
|
-
return import_view11.Decoration.none;
|
1772
|
-
}
|
1773
|
-
const lineStart = activeLine.from;
|
1774
|
-
return import_view11.Decoration.set([
|
1775
|
-
import_view11.Decoration.widget({
|
1776
|
-
widget: new Placeholder(content),
|
1777
|
-
side: 1
|
1778
|
-
}).range(lineStart)
|
1779
|
-
]);
|
1780
|
-
}
|
1781
|
-
}, {
|
1782
|
-
decorations: (v) => v.decorations
|
1783
|
-
});
|
1784
|
-
return typeof content === "string" ? [
|
1785
|
-
plugin,
|
1786
|
-
import_view11.EditorView.contentAttributes.of({
|
1787
|
-
"aria-placeholder": content
|
1788
|
-
})
|
1789
|
-
] : plugin;
|
1790
|
-
}
|
1791
|
-
var floatingMenu = (options = {}) => [
|
1792
|
-
import_view10.ViewPlugin.fromClass(class {
|
1793
|
-
constructor(view) {
|
1794
|
-
this.view = view;
|
1795
|
-
const container = view.scrollDOM;
|
1796
|
-
if (getComputedStyle(container).position === "static") {
|
1797
|
-
container.style.position = "relative";
|
1798
|
-
}
|
1799
|
-
{
|
1800
|
-
const icon = document.createElement("dx-icon");
|
1801
|
-
icon.setAttribute("icon", options.icon ?? "ph--dots-three-vertical--regular");
|
1802
|
-
const button = document.createElement("button");
|
1803
|
-
button.appendChild(icon);
|
1804
|
-
this.tag = document.createElement("dx-ref-tag");
|
1805
|
-
this.tag.classList.add("cm-ref-tag");
|
1806
|
-
this.tag.appendChild(button);
|
1807
|
-
}
|
1808
|
-
container.appendChild(this.tag);
|
1809
|
-
const handler = () => this.scheduleUpdate();
|
1810
|
-
this.cleanup = (0, import_async3.addEventListener)(container, "scroll", handler);
|
1811
|
-
this.scheduleUpdate();
|
1812
|
-
}
|
1813
|
-
destroy() {
|
1814
|
-
this.cleanup?.();
|
1815
|
-
this.tag.remove();
|
1816
|
-
if (this.rafId != null) {
|
1817
|
-
cancelAnimationFrame(this.rafId);
|
1818
|
-
}
|
1819
|
-
}
|
1820
|
-
update(update2) {
|
1821
|
-
this.tag.dataset.focused = update2.view.hasFocus ? "true" : "false";
|
1822
|
-
if (!update2.view.hasFocus) {
|
1823
|
-
return;
|
1824
|
-
}
|
1825
|
-
if (update2.transactions.some((tr) => tr.effects.some((effect) => effect.is(openEffect)))) {
|
1826
|
-
this.tag.style.display = "none";
|
1827
|
-
this.tag.classList.add("opacity-10");
|
1828
|
-
} else if (update2.transactions.some((tr) => tr.effects.some((effect) => effect.is(closeEffect)))) {
|
1829
|
-
this.tag.style.display = "block";
|
1830
|
-
} else if (update2.docChanged || update2.focusChanged || update2.geometryChanged || update2.selectionSet || update2.viewportChanged) {
|
1831
|
-
this.scheduleUpdate();
|
1832
|
-
}
|
1833
|
-
}
|
1834
|
-
updateButtonPosition() {
|
1835
|
-
const { x, width } = this.view.contentDOM.getBoundingClientRect();
|
1836
|
-
const pos = this.view.state.selection.main.head;
|
1837
|
-
const line = this.view.lineBlockAt(pos);
|
1838
|
-
const coords = this.view.coordsAtPos(line.from);
|
1839
|
-
if (!coords) {
|
1840
|
-
return;
|
1841
|
-
}
|
1842
|
-
const lineHeight = coords.bottom - coords.top;
|
1843
|
-
const dy = (lineHeight - (options.height ?? 32)) / 2;
|
1844
|
-
const offsetTop = coords.top + dy;
|
1845
|
-
const offsetLeft = x + width + (options.padding ?? 8);
|
1846
|
-
this.tag.style.top = `${offsetTop}px`;
|
1847
|
-
this.tag.style.left = `${offsetLeft}px`;
|
1848
|
-
this.tag.style.display = "block";
|
1849
|
-
}
|
1850
|
-
scheduleUpdate() {
|
1851
|
-
if (this.rafId != null) {
|
1852
|
-
cancelAnimationFrame(this.rafId);
|
1853
|
-
}
|
1854
|
-
this.rafId = requestAnimationFrame(this.updateButtonPosition.bind(this));
|
1855
|
-
}
|
1856
|
-
}),
|
1857
|
-
import_view10.EditorView.theme({
|
1858
|
-
".cm-ref-tag": {
|
1859
|
-
position: "fixed",
|
1860
|
-
padding: "0",
|
1861
|
-
border: "none",
|
1862
|
-
opacity: "0"
|
1863
|
-
},
|
1864
|
-
"[data-has-focus] & .cm-ref-tag": {
|
1865
|
-
opacity: "1"
|
1866
|
-
},
|
1867
|
-
".cm-ref-tag button": {
|
1868
|
-
display: "grid",
|
1869
|
-
alignItems: "center",
|
1870
|
-
justifyContent: "center",
|
1871
|
-
width: "2rem",
|
1872
|
-
height: "2rem"
|
1873
|
-
}
|
1874
|
-
})
|
1875
|
-
];
|
1876
|
-
var commandRangeEffect = import_state11.StateEffect.define();
|
1877
|
-
var commandMenuState = import_state11.StateField.define({
|
1878
|
-
create: () => null,
|
1879
|
-
update: (value, tr) => {
|
1880
|
-
let newValue = value;
|
1881
|
-
for (const effect of tr.effects) {
|
1882
|
-
if (effect.is(commandRangeEffect)) {
|
1883
|
-
newValue = effect.value;
|
1884
|
-
}
|
1885
|
-
}
|
1886
|
-
return newValue;
|
1887
|
-
}
|
1888
|
-
});
|
1889
1823
|
var commandMenu = (options) => {
|
1890
1824
|
const commandMenuPlugin = import_view10.ViewPlugin.fromClass(class {
|
1891
1825
|
constructor(view) {
|
@@ -1894,7 +1828,7 @@ var commandMenu = (options) => {
|
|
1894
1828
|
}
|
1895
1829
|
// TODO(wittjosiah): The decorations are repainted on every update, this occasionally causes menu to flicker.
|
1896
1830
|
update(update2) {
|
1897
|
-
const builder = new
|
1831
|
+
const builder = new import_state12.RangeSetBuilder();
|
1898
1832
|
const selection = update2.view.state.selection.main;
|
1899
1833
|
const { range: activeRange, trigger } = update2.view.state.field(commandMenuState) ?? {};
|
1900
1834
|
const shouldShowWidget = activeRange && selection.head >= activeRange.from && selection.head <= activeRange.to;
|
@@ -1924,11 +1858,11 @@ var commandMenu = (options) => {
|
|
1924
1858
|
const commandKeymap = import_view10.keymap.of([
|
1925
1859
|
...triggers.map((trigger) => ({
|
1926
1860
|
key: trigger,
|
1861
|
+
preventDefault: true,
|
1927
1862
|
run: (view) => {
|
1928
1863
|
const selection = view.state.selection.main;
|
1929
1864
|
const line = view.state.doc.lineAt(selection.head);
|
1930
|
-
|
1931
|
-
if (shouldTrigger) {
|
1865
|
+
if (line.text.trim() === "" || selection.head === line.from || selection.head > line.from && line.text[selection.head - line.from - 1] === " ") {
|
1932
1866
|
view.dispatch({
|
1933
1867
|
changes: {
|
1934
1868
|
from: selection.head,
|
@@ -2015,27 +1949,127 @@ var commandMenu = (options) => {
|
|
2015
1949
|
});
|
2016
1950
|
}
|
2017
1951
|
if (shouldRemove) {
|
2018
|
-
options.
|
1952
|
+
options.onClose?.();
|
2019
1953
|
}
|
2020
1954
|
});
|
2021
1955
|
return [
|
2022
|
-
|
2023
|
-
|
1956
|
+
import_state12.Prec.highest(commandKeymap),
|
1957
|
+
placeholder(Object.assign({
|
1958
|
+
content: `Press '${Array.isArray(options.trigger) ? options.trigger[0] : options.trigger}' for commands`
|
1959
|
+
}, options.placeholder)),
|
2024
1960
|
updateListener,
|
2025
1961
|
commandMenuState,
|
2026
1962
|
commandMenuPlugin
|
2027
1963
|
];
|
2028
1964
|
};
|
2029
|
-
var
|
1965
|
+
var commandRangeEffect = import_state12.StateEffect.define();
|
1966
|
+
var commandMenuState = import_state12.StateField.define({
|
1967
|
+
create: () => null,
|
1968
|
+
update: (value, tr) => {
|
1969
|
+
let newValue = value;
|
1970
|
+
for (const effect of tr.effects) {
|
1971
|
+
if (effect.is(commandRangeEffect)) {
|
1972
|
+
newValue = effect.value;
|
1973
|
+
}
|
1974
|
+
}
|
1975
|
+
return newValue;
|
1976
|
+
}
|
1977
|
+
});
|
1978
|
+
var floatingMenu = (options = {}) => [
|
1979
|
+
import_view12.ViewPlugin.fromClass(class {
|
1980
|
+
constructor(view) {
|
1981
|
+
this.view = view;
|
1982
|
+
const container = view.scrollDOM;
|
1983
|
+
if (getComputedStyle(container).position === "static") {
|
1984
|
+
container.style.position = "relative";
|
1985
|
+
}
|
1986
|
+
{
|
1987
|
+
const icon = document.createElement("dx-icon");
|
1988
|
+
icon.setAttribute("icon", options.icon ?? "ph--dots-three-vertical--regular");
|
1989
|
+
const button = document.createElement("button");
|
1990
|
+
button.appendChild(icon);
|
1991
|
+
this.tag = document.createElement("dx-ref-tag");
|
1992
|
+
this.tag.classList.add("cm-ref-tag");
|
1993
|
+
this.tag.appendChild(button);
|
1994
|
+
}
|
1995
|
+
container.appendChild(this.tag);
|
1996
|
+
const handler = () => this.scheduleUpdate();
|
1997
|
+
this.cleanup = (0, import_async3.addEventListener)(container, "scroll", handler);
|
1998
|
+
this.scheduleUpdate();
|
1999
|
+
}
|
2000
|
+
destroy() {
|
2001
|
+
this.cleanup?.();
|
2002
|
+
this.tag.remove();
|
2003
|
+
if (this.rafId != null) {
|
2004
|
+
cancelAnimationFrame(this.rafId);
|
2005
|
+
}
|
2006
|
+
}
|
2007
|
+
update(update2) {
|
2008
|
+
this.tag.dataset.focused = update2.view.hasFocus ? "true" : "false";
|
2009
|
+
if (!update2.view.hasFocus) {
|
2010
|
+
return;
|
2011
|
+
}
|
2012
|
+
if (update2.transactions.some((tr) => tr.effects.some((effect) => effect.is(openEffect)))) {
|
2013
|
+
this.tag.style.display = "none";
|
2014
|
+
this.tag.classList.add("opacity-10");
|
2015
|
+
} else if (update2.transactions.some((tr) => tr.effects.some((effect) => effect.is(closeEffect)))) {
|
2016
|
+
this.tag.style.display = "block";
|
2017
|
+
} else if (update2.docChanged || update2.focusChanged || update2.geometryChanged || update2.selectionSet || update2.viewportChanged) {
|
2018
|
+
this.scheduleUpdate();
|
2019
|
+
}
|
2020
|
+
}
|
2021
|
+
updateButtonPosition() {
|
2022
|
+
const { x, width } = this.view.contentDOM.getBoundingClientRect();
|
2023
|
+
const pos = this.view.state.selection.main.head;
|
2024
|
+
const line = this.view.lineBlockAt(pos);
|
2025
|
+
const coords = this.view.coordsAtPos(line.from);
|
2026
|
+
if (!coords) {
|
2027
|
+
return;
|
2028
|
+
}
|
2029
|
+
const lineHeight = coords.bottom - coords.top;
|
2030
|
+
const dy = (lineHeight - (options.height ?? 32)) / 2;
|
2031
|
+
const offsetTop = coords.top + dy;
|
2032
|
+
const offsetLeft = x + width + (options.padding ?? 8);
|
2033
|
+
this.tag.style.top = `${offsetTop}px`;
|
2034
|
+
this.tag.style.left = `${offsetLeft}px`;
|
2035
|
+
this.tag.style.display = "block";
|
2036
|
+
}
|
2037
|
+
scheduleUpdate() {
|
2038
|
+
if (this.rafId != null) {
|
2039
|
+
cancelAnimationFrame(this.rafId);
|
2040
|
+
}
|
2041
|
+
this.rafId = requestAnimationFrame(this.updateButtonPosition.bind(this));
|
2042
|
+
}
|
2043
|
+
}),
|
2044
|
+
import_view12.EditorView.theme({
|
2045
|
+
".cm-ref-tag": {
|
2046
|
+
position: "fixed",
|
2047
|
+
padding: "0",
|
2048
|
+
border: "none",
|
2049
|
+
opacity: "0"
|
2050
|
+
},
|
2051
|
+
"[data-has-focus] & .cm-ref-tag": {
|
2052
|
+
opacity: "1"
|
2053
|
+
},
|
2054
|
+
".cm-ref-tag button": {
|
2055
|
+
display: "grid",
|
2056
|
+
alignItems: "center",
|
2057
|
+
justifyContent: "center",
|
2058
|
+
width: "2rem",
|
2059
|
+
height: "2rem"
|
2060
|
+
}
|
2061
|
+
})
|
2062
|
+
];
|
2063
|
+
var useCommandMenu = ({ viewRef, trigger, placeholder: placeholder3, getMenu }) => {
|
2030
2064
|
const triggerRef = (0, import_react4.useRef)(null);
|
2031
2065
|
const currentRef = (0, import_react4.useRef)(null);
|
2032
2066
|
const groupsRef = (0, import_react4.useRef)([]);
|
2033
2067
|
const [currentItem, setCurrentItem] = (0, import_react4.useState)();
|
2034
2068
|
const [open, setOpen] = (0, import_react4.useState)(false);
|
2035
|
-
const [_,
|
2069
|
+
const [_, refresh] = (0, import_react4.useState)({});
|
2036
2070
|
const handleOpenChange = (0, import_react4.useCallback)(async (open2, trigger2) => {
|
2037
2071
|
if (open2 && trigger2) {
|
2038
|
-
groupsRef.current = await
|
2072
|
+
groupsRef.current = await getMenu(trigger2);
|
2039
2073
|
}
|
2040
2074
|
setOpen(open2);
|
2041
2075
|
if (!open2) {
|
@@ -2048,7 +2082,7 @@ var useCommandMenu = ({ viewRef, trigger, placeholder: placeholder2, getGroups }
|
|
2048
2082
|
});
|
2049
2083
|
}
|
2050
2084
|
}, [
|
2051
|
-
|
2085
|
+
getMenu
|
2052
2086
|
]);
|
2053
2087
|
const handleActivate = (0, import_react4.useCallback)(async (event) => {
|
2054
2088
|
const item = getItem(groupsRef.current, currentItem);
|
@@ -2073,43 +2107,45 @@ var useCommandMenu = ({ viewRef, trigger, placeholder: placeholder2, getGroups }
|
|
2073
2107
|
void item.onSelect?.(view, selection.head);
|
2074
2108
|
}, []);
|
2075
2109
|
const serializedTrigger = Array.isArray(trigger) ? trigger.join(",") : trigger;
|
2076
|
-
const _commandMenu = (0, import_react4.useMemo)(() =>
|
2077
|
-
|
2078
|
-
|
2079
|
-
|
2080
|
-
|
2081
|
-
|
2082
|
-
|
2083
|
-
|
2084
|
-
|
2085
|
-
|
2086
|
-
|
2087
|
-
|
2088
|
-
|
2089
|
-
|
2090
|
-
|
2091
|
-
|
2092
|
-
|
2093
|
-
|
2094
|
-
|
2095
|
-
|
2096
|
-
|
2097
|
-
|
2098
|
-
|
2099
|
-
|
2100
|
-
|
2101
|
-
|
2102
|
-
|
2103
|
-
|
2104
|
-
|
2110
|
+
const _commandMenu = (0, import_react4.useMemo)(() => {
|
2111
|
+
return commandMenu({
|
2112
|
+
trigger,
|
2113
|
+
placeholder: placeholder3,
|
2114
|
+
onClose: () => handleOpenChange(false),
|
2115
|
+
onArrowDown: () => {
|
2116
|
+
setCurrentItem((currentItem2) => {
|
2117
|
+
const next = getNextItem(groupsRef.current, currentItem2);
|
2118
|
+
currentRef.current = next;
|
2119
|
+
return next.id;
|
2120
|
+
});
|
2121
|
+
},
|
2122
|
+
onArrowUp: () => {
|
2123
|
+
setCurrentItem((currentItem2) => {
|
2124
|
+
const previous = getPreviousItem(groupsRef.current, currentItem2);
|
2125
|
+
currentRef.current = previous;
|
2126
|
+
return previous.id;
|
2127
|
+
});
|
2128
|
+
},
|
2129
|
+
onEnter: () => {
|
2130
|
+
if (currentRef.current) {
|
2131
|
+
handleSelect(currentRef.current);
|
2132
|
+
}
|
2133
|
+
},
|
2134
|
+
onTextChange: async (trigger2, text) => {
|
2135
|
+
groupsRef.current = await getMenu(trigger2, text);
|
2136
|
+
const firstItem = groupsRef.current.filter((group) => group.items.length > 0)[0]?.items[0];
|
2137
|
+
if (firstItem) {
|
2138
|
+
setCurrentItem(firstItem.id);
|
2139
|
+
currentRef.current = firstItem;
|
2140
|
+
}
|
2141
|
+
refresh({});
|
2105
2142
|
}
|
2106
|
-
|
2107
|
-
|
2108
|
-
}), [
|
2143
|
+
});
|
2144
|
+
}, [
|
2109
2145
|
handleOpenChange,
|
2110
|
-
|
2146
|
+
getMenu,
|
2111
2147
|
serializedTrigger,
|
2112
|
-
|
2148
|
+
placeholder3
|
2113
2149
|
]);
|
2114
2150
|
return {
|
2115
2151
|
commandMenu: _commandMenu,
|
@@ -2123,9 +2159,9 @@ var useCommandMenu = ({ viewRef, trigger, placeholder: placeholder2, getGroups }
|
|
2123
2159
|
};
|
2124
2160
|
};
|
2125
2161
|
var typeahead = ({ onComplete } = {}) => {
|
2126
|
-
let
|
2162
|
+
let hint2;
|
2127
2163
|
const complete = (view) => {
|
2128
|
-
if (!
|
2164
|
+
if (!hint2) {
|
2129
2165
|
return false;
|
2130
2166
|
}
|
2131
2167
|
const selection = view.state.selection.main;
|
@@ -2134,30 +2170,30 @@ var typeahead = ({ onComplete } = {}) => {
|
|
2134
2170
|
{
|
2135
2171
|
from: selection.from,
|
2136
2172
|
to: selection.to,
|
2137
|
-
insert:
|
2173
|
+
insert: hint2
|
2138
2174
|
}
|
2139
2175
|
],
|
2140
|
-
selection:
|
2176
|
+
selection: import_state13.EditorSelection.cursor(selection.from + hint2.length)
|
2141
2177
|
});
|
2142
2178
|
return true;
|
2143
2179
|
};
|
2144
2180
|
return [
|
2145
|
-
|
2181
|
+
import_view13.ViewPlugin.fromClass(class {
|
2146
2182
|
constructor() {
|
2147
|
-
this.decorations =
|
2183
|
+
this.decorations = import_view13.Decoration.none;
|
2148
2184
|
}
|
2149
2185
|
update(update2) {
|
2150
|
-
const builder = new
|
2186
|
+
const builder = new import_state13.RangeSetBuilder();
|
2151
2187
|
const selection = update2.view.state.selection.main;
|
2152
2188
|
const line = update2.view.state.doc.lineAt(selection.from);
|
2153
2189
|
if (selection.from === selection.to && selection.from === line.to) {
|
2154
2190
|
const str = update2.state.sliceDoc(line.from, selection.from);
|
2155
|
-
|
2191
|
+
hint2 = onComplete?.({
|
2156
2192
|
line: str
|
2157
2193
|
});
|
2158
|
-
if (
|
2159
|
-
builder.add(selection.from, selection.to,
|
2160
|
-
widget: new Hint(
|
2194
|
+
if (hint2) {
|
2195
|
+
builder.add(selection.from, selection.to, import_view13.Decoration.widget({
|
2196
|
+
widget: new Hint(hint2)
|
2161
2197
|
}));
|
2162
2198
|
}
|
2163
2199
|
}
|
@@ -2167,7 +2203,7 @@ var typeahead = ({ onComplete } = {}) => {
|
|
2167
2203
|
decorations: (v) => v.decorations
|
2168
2204
|
}),
|
2169
2205
|
// Keys.
|
2170
|
-
|
2206
|
+
import_state13.Prec.highest(import_view13.keymap.of([
|
2171
2207
|
{
|
2172
2208
|
key: "Tab",
|
2173
2209
|
preventDefault: true,
|
@@ -2208,10 +2244,10 @@ var createEditorStateTransaction = ({ scrollTo, selection }) => {
|
|
2208
2244
|
return {
|
2209
2245
|
selection,
|
2210
2246
|
scrollIntoView: !scrollTo,
|
2211
|
-
effects: scrollTo ?
|
2247
|
+
effects: scrollTo ? import_view15.EditorView.scrollIntoView(scrollTo, {
|
2212
2248
|
yMargin: 96
|
2213
2249
|
}) : void 0,
|
2214
|
-
annotations:
|
2250
|
+
annotations: import_state15.Transaction.userEvent.of(stateRestoreAnnotation)
|
2215
2251
|
};
|
2216
2252
|
};
|
2217
2253
|
var createEditorStateStore = (keyPrefix) => ({
|
@@ -2250,7 +2286,7 @@ var selectionState = ({ getState, setState } = {}) => {
|
|
2250
2286
|
// setStateDebounced(id, {});
|
2251
2287
|
// },
|
2252
2288
|
// }),
|
2253
|
-
|
2289
|
+
import_view15.EditorView.updateListener.of(({ view, transactions }) => {
|
2254
2290
|
const id = view.state.facet(documentId);
|
2255
2291
|
if (!id || transactions.some((tr) => tr.isUserEvent(stateRestoreAnnotation))) {
|
2256
2292
|
return;
|
@@ -2273,7 +2309,7 @@ var selectionState = ({ getState, setState } = {}) => {
|
|
2273
2309
|
}
|
2274
2310
|
}
|
2275
2311
|
}),
|
2276
|
-
getState &&
|
2312
|
+
getState && import_view15.keymap.of([
|
2277
2313
|
{
|
2278
2314
|
key: "ctrl-r",
|
2279
2315
|
run: (view) => {
|
@@ -2285,13 +2321,13 @@ var selectionState = ({ getState, setState } = {}) => {
|
|
2285
2321
|
}
|
2286
2322
|
}
|
2287
2323
|
])
|
2288
|
-
].filter(
|
2324
|
+
].filter(import_util3.isNotFalsy);
|
2289
2325
|
};
|
2290
2326
|
var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/comments.ts";
|
2291
|
-
var setComments =
|
2292
|
-
var setSelection =
|
2293
|
-
var setCommentState =
|
2294
|
-
var commentsState =
|
2327
|
+
var setComments = import_state14.StateEffect.define();
|
2328
|
+
var setSelection = import_state14.StateEffect.define();
|
2329
|
+
var setCommentState = import_state14.StateEffect.define();
|
2330
|
+
var commentsState = import_state14.StateField.define({
|
2295
2331
|
create: (state) => ({
|
2296
2332
|
id: state.facet(documentId),
|
2297
2333
|
comments: [],
|
@@ -2316,7 +2352,7 @@ var commentsState = import_state13.StateField.define({
|
|
2316
2352
|
comment,
|
2317
2353
|
range
|
2318
2354
|
};
|
2319
|
-
}).filter(
|
2355
|
+
}).filter(import_util2.isNonNullable);
|
2320
2356
|
return {
|
2321
2357
|
...value,
|
2322
2358
|
comments: commentStates
|
@@ -2329,7 +2365,7 @@ var commentsState = import_state13.StateField.define({
|
|
2329
2365
|
return value;
|
2330
2366
|
}
|
2331
2367
|
});
|
2332
|
-
var styles2 =
|
2368
|
+
var styles2 = import_view14.EditorView.theme({
|
2333
2369
|
".cm-comment, .cm-comment-current": {
|
2334
2370
|
margin: "0 -3px",
|
2335
2371
|
padding: "3px",
|
@@ -2342,14 +2378,14 @@ var styles2 = import_view13.EditorView.theme({
|
|
2342
2378
|
textDecoration: "underline"
|
2343
2379
|
}
|
2344
2380
|
});
|
2345
|
-
var createCommentMark = (id, isCurrent) =>
|
2381
|
+
var createCommentMark = (id, isCurrent) => import_view14.Decoration.mark({
|
2346
2382
|
class: isCurrent ? "cm-comment-current" : "cm-comment",
|
2347
2383
|
attributes: {
|
2348
2384
|
"data-testid": "cm-comment",
|
2349
2385
|
"data-comment-id": id
|
2350
2386
|
}
|
2351
2387
|
});
|
2352
|
-
var commentsDecorations =
|
2388
|
+
var commentsDecorations = import_view14.EditorView.decorations.compute([
|
2353
2389
|
commentsState
|
2354
2390
|
], (state) => {
|
2355
2391
|
const { selection: { current }, comments: comments2 } = state.field(commentsState);
|
@@ -2368,11 +2404,11 @@ var commentsDecorations = import_view13.EditorView.decorations.compute([
|
|
2368
2404
|
}
|
2369
2405
|
const mark = createCommentMark(comment.comment.id, comment.comment.id === current);
|
2370
2406
|
return mark.range(range.from, range.to);
|
2371
|
-
}).filter(
|
2372
|
-
return
|
2407
|
+
}).filter(import_util2.isNonNullable);
|
2408
|
+
return import_view14.Decoration.set(decorations2);
|
2373
2409
|
});
|
2374
|
-
var commentClickedEffect =
|
2375
|
-
var handleCommentClick =
|
2410
|
+
var commentClickedEffect = import_state14.StateEffect.define();
|
2411
|
+
var handleCommentClick = import_view14.EditorView.domEventHandlers({
|
2376
2412
|
click: (event, view) => {
|
2377
2413
|
let target = event.target;
|
2378
2414
|
const editorRoot = view.dom;
|
@@ -2411,7 +2447,7 @@ var trackPastedComments = (onUpdate) => {
|
|
2411
2447
|
}
|
2412
2448
|
};
|
2413
2449
|
return [
|
2414
|
-
|
2450
|
+
import_view14.EditorView.domEventHandlers({
|
2415
2451
|
cut: handleTrack,
|
2416
2452
|
copy: handleTrack
|
2417
2453
|
}),
|
@@ -2433,7 +2469,7 @@ var trackPastedComments = (onUpdate) => {
|
|
2433
2469
|
return effects;
|
2434
2470
|
}),
|
2435
2471
|
// Handle paste or the undo of comment deletion.
|
2436
|
-
|
2472
|
+
import_view14.EditorView.updateListener.of((update2) => {
|
2437
2473
|
const restore = [];
|
2438
2474
|
for (let i = 0; i < update2.transactions.length; i++) {
|
2439
2475
|
const tr = update2.transactions[i];
|
@@ -2489,7 +2525,7 @@ var mapTrackedComment = (comment, changes) => ({
|
|
2489
2525
|
from: changes.mapPos(comment.from, 1),
|
2490
2526
|
to: changes.mapPos(comment.to, 1)
|
2491
2527
|
});
|
2492
|
-
var restoreCommentEffect =
|
2528
|
+
var restoreCommentEffect = import_state14.StateEffect.define({
|
2493
2529
|
map: mapTrackedComment
|
2494
2530
|
});
|
2495
2531
|
var createComment = (view) => {
|
@@ -2534,7 +2570,7 @@ var comments = (options = {}) => {
|
|
2534
2570
|
//
|
2535
2571
|
// Keymap.
|
2536
2572
|
//
|
2537
|
-
options.onCreate &&
|
2573
|
+
options.onCreate && import_view14.keymap.of([
|
2538
2574
|
{
|
2539
2575
|
key: shortcut,
|
2540
2576
|
run: callbackWrapper(createComment)
|
@@ -2544,7 +2580,7 @@ var comments = (options = {}) => {
|
|
2544
2580
|
// Hover tooltip (for key shortcut hints, etc.)
|
2545
2581
|
// TODO(burdon): Factor out to generic hints extension for current selection/line.
|
2546
2582
|
//
|
2547
|
-
options.renderTooltip && (0,
|
2583
|
+
options.renderTooltip && (0, import_view14.hoverTooltip)((view, pos) => {
|
2548
2584
|
const selection = view.state.selection.main;
|
2549
2585
|
if (selection && pos >= selection.from && pos <= selection.to) {
|
2550
2586
|
return {
|
@@ -2575,7 +2611,7 @@ var comments = (options = {}) => {
|
|
2575
2611
|
//
|
2576
2612
|
// Track deleted ranges and update ranges for decorations.
|
2577
2613
|
//
|
2578
|
-
|
2614
|
+
import_view14.EditorView.updateListener.of(({ view, state, changes }) => {
|
2579
2615
|
let mod = false;
|
2580
2616
|
const { comments: comments2, ...value } = state.field(commentsState);
|
2581
2617
|
changes.iterChanges((from, to, from2, to2) => {
|
@@ -2607,7 +2643,7 @@ var comments = (options = {}) => {
|
|
2607
2643
|
//
|
2608
2644
|
// Track selection/proximity.
|
2609
2645
|
//
|
2610
|
-
|
2646
|
+
import_view14.EditorView.updateListener.of(({ view, state }) => {
|
2611
2647
|
let min = Infinity;
|
2612
2648
|
const { selection: { current, closest }, comments: comments2 } = state.field(commentsState);
|
2613
2649
|
const { head } = state.selection.main;
|
@@ -2641,7 +2677,7 @@ var comments = (options = {}) => {
|
|
2641
2677
|
}
|
2642
2678
|
}),
|
2643
2679
|
options.onUpdate && trackPastedComments(options.onUpdate)
|
2644
|
-
].filter(
|
2680
|
+
].filter(import_util2.isNonNullable);
|
2645
2681
|
};
|
2646
2682
|
var scrollThreadIntoView = (view, id, center = true) => {
|
2647
2683
|
const comment = view.state.field(commentsState).comments.find((range2) => range2.comment.id === id);
|
@@ -2661,7 +2697,7 @@ var scrollThreadIntoView = (view, id, center = true) => {
|
|
2661
2697
|
anchor: range.from
|
2662
2698
|
} : void 0,
|
2663
2699
|
effects: [
|
2664
|
-
needsScroll ?
|
2700
|
+
needsScroll ? import_view14.EditorView.scrollIntoView(range.from, center ? {
|
2665
2701
|
y: "center"
|
2666
2702
|
} : void 0) : [],
|
2667
2703
|
needsSelectionUpdate ? setSelection.of({
|
@@ -2691,7 +2727,7 @@ var ExternalCommentSync = class {
|
|
2691
2727
|
this.unsubscribe = subscribe(updateComments);
|
2692
2728
|
}
|
2693
2729
|
};
|
2694
|
-
var createExternalCommentSync = (id, subscribe, getComments) =>
|
2730
|
+
var createExternalCommentSync = (id, subscribe, getComments) => import_view14.ViewPlugin.fromClass(class {
|
2695
2731
|
constructor(view) {
|
2696
2732
|
return new ExternalCommentSync(view, id, subscribe, getComments);
|
2697
2733
|
}
|
@@ -2714,12 +2750,12 @@ var debugNodeLogger = (log9 = console.log) => {
|
|
2714
2750
|
const logTokens = (state) => (0, import_language.syntaxTree)(state).iterate({
|
2715
2751
|
enter: (node) => log9(node.type)
|
2716
2752
|
});
|
2717
|
-
return
|
2753
|
+
return import_state16.StateField.define({
|
2718
2754
|
create: (state) => logTokens(state),
|
2719
2755
|
update: (_, tr) => logTokens(tr.state)
|
2720
2756
|
});
|
2721
2757
|
};
|
2722
|
-
var styles3 =
|
2758
|
+
var styles3 = import_view16.EditorView.theme({
|
2723
2759
|
".cm-dropCursor": {
|
2724
2760
|
borderLeft: "2px solid var(--dx-accentText)",
|
2725
2761
|
color: "var(--dx-accentText)",
|
@@ -2732,8 +2768,8 @@ var styles3 = import_view15.EditorView.theme({
|
|
2732
2768
|
var dropFile = (options = {}) => {
|
2733
2769
|
return [
|
2734
2770
|
styles3,
|
2735
|
-
(0,
|
2736
|
-
|
2771
|
+
(0, import_view16.dropCursor)(),
|
2772
|
+
import_view16.EditorView.domEventHandlers({
|
2737
2773
|
drop: (event, view) => {
|
2738
2774
|
event.preventDefault();
|
2739
2775
|
const files = event.dataTransfer?.files;
|
@@ -2752,8 +2788,8 @@ var dropFile = (options = {}) => {
|
|
2752
2788
|
})
|
2753
2789
|
];
|
2754
2790
|
};
|
2755
|
-
var focusEffect =
|
2756
|
-
var focusField =
|
2791
|
+
var focusEffect = import_state18.StateEffect.define();
|
2792
|
+
var focusField = import_state18.StateField.define({
|
2757
2793
|
create: () => false,
|
2758
2794
|
update: (value, tr) => {
|
2759
2795
|
for (const effect of tr.effects) {
|
@@ -2766,7 +2802,7 @@ var focusField = import_state17.StateField.define({
|
|
2766
2802
|
});
|
2767
2803
|
var focus = [
|
2768
2804
|
focusField,
|
2769
|
-
|
2805
|
+
import_view18.EditorView.domEventHandlers({
|
2770
2806
|
focus: (event, view) => {
|
2771
2807
|
setTimeout(() => view.dispatch({
|
2772
2808
|
effects: focusEffect.of(true)
|
@@ -2792,11 +2828,11 @@ var theme = {
|
|
2792
2828
|
codeMark: "font-mono text-primary-500",
|
2793
2829
|
mark: "opacity-50",
|
2794
2830
|
heading: (level) => {
|
2795
|
-
return (0,
|
2831
|
+
return (0, import_react_ui_theme3.mx)(headings[level], "dark:text-primary-400");
|
2796
2832
|
}
|
2797
2833
|
};
|
2798
2834
|
var getToken = (path, defaultValue) => {
|
2799
|
-
const value = (0,
|
2835
|
+
const value = (0, import_util5.get)(import_react_ui_theme4.tokens, path, defaultValue);
|
2800
2836
|
return value?.toString() ?? "";
|
2801
2837
|
};
|
2802
2838
|
var fontBody = getToken("fontFamily.body");
|
@@ -3020,22 +3056,21 @@ var editorSlots = {
|
|
3020
3056
|
className: editorWidth
|
3021
3057
|
}
|
3022
3058
|
};
|
3023
|
-
var editorGutter =
|
3059
|
+
var editorGutter = import_view19.EditorView.theme({
|
3024
3060
|
".cm-gutters": {
|
3025
3061
|
background: "var(--dx-baseSurface)",
|
3026
3062
|
paddingRight: "1rem"
|
3027
3063
|
}
|
3028
3064
|
});
|
3029
|
-
var editorMonospace =
|
3065
|
+
var editorMonospace = import_view19.EditorView.theme({
|
3030
3066
|
".cm-content": {
|
3031
3067
|
fontFamily: fontMono
|
3032
3068
|
}
|
3033
3069
|
});
|
3034
3070
|
var editorWithToolbarLayout = "grid grid-cols-1 grid-rows-[min-content_1fr] data-[toolbar=disabled]:grid-rows-[1fr] justify-center content-start overflow-hidden";
|
3035
|
-
var stackItemContentEditorClassNames = (role) => (0,
|
3036
|
-
var stackItemContentToolbarClassNames = (role) => (0, import_react_ui_theme3.mx)("relative z-[1] flex is-full bg-toolbarSurface border-be border-subduedSeparator", role === "section" && "sticky block-start-0 -mbe-px min-is-0");
|
3071
|
+
var stackItemContentEditorClassNames = (role) => (0, import_react_ui_theme2.mx)("attention-surface dx-focus-ring-inset data-[toolbar=disabled]:pbs-2", role === "section" ? "[&_.cm-scroller]:overflow-hidden [&_.cm-scroller]:min-bs-24" : "min-bs-0");
|
3037
3072
|
var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/factories.ts";
|
3038
|
-
var preventNewline =
|
3073
|
+
var preventNewline = import_state17.EditorState.transactionFilter.of((tr) => tr.newDoc.lines > 1 ? [] : tr);
|
3039
3074
|
var defaultBasicOptions = {
|
3040
3075
|
allowMultipleSelections: true,
|
3041
3076
|
bracketMatching: true,
|
@@ -3057,7 +3092,7 @@ var createBasicExtensions = (_props) => {
|
|
3057
3092
|
const props = (0, import_lodash3.default)({}, _props, defaultBasicOptions);
|
3058
3093
|
return [
|
3059
3094
|
// NOTE: Doesn't catch errors in keymap functions.
|
3060
|
-
|
3095
|
+
import_view17.EditorView.exceptionSink.of((err) => {
|
3061
3096
|
import_log5.log.catch(err, void 0, {
|
3062
3097
|
F: __dxlog_file8,
|
3063
3098
|
L: 100,
|
@@ -3065,29 +3100,29 @@ var createBasicExtensions = (_props) => {
|
|
3065
3100
|
C: (f, a) => f(...a)
|
3066
3101
|
});
|
3067
3102
|
}),
|
3068
|
-
props.allowMultipleSelections &&
|
3103
|
+
props.allowMultipleSelections && import_state17.EditorState.allowMultipleSelections.of(true),
|
3069
3104
|
props.bracketMatching && (0, import_language2.bracketMatching)(),
|
3070
3105
|
props.closeBrackets && (0, import_autocomplete2.closeBrackets)(),
|
3071
|
-
props.dropCursor && (0,
|
3072
|
-
props.drawSelection && (0,
|
3106
|
+
props.dropCursor && (0, import_view17.dropCursor)(),
|
3107
|
+
props.drawSelection && (0, import_view17.drawSelection)({
|
3073
3108
|
cursorBlinkRate: 1200
|
3074
3109
|
}),
|
3075
|
-
props.editable !== void 0 &&
|
3110
|
+
props.editable !== void 0 && import_view17.EditorView.editable.of(props.editable),
|
3076
3111
|
props.focus && focus,
|
3077
|
-
props.highlightActiveLine && (0,
|
3112
|
+
props.highlightActiveLine && (0, import_view17.highlightActiveLine)(),
|
3078
3113
|
props.history && (0, import_commands2.history)(),
|
3079
3114
|
props.lineNumbers && [
|
3080
|
-
(0,
|
3115
|
+
(0, import_view17.lineNumbers)(),
|
3081
3116
|
editorGutter
|
3082
3117
|
],
|
3083
|
-
props.lineWrapping &&
|
3118
|
+
props.lineWrapping && import_view17.EditorView.lineWrapping,
|
3084
3119
|
props.monospace && editorMonospace,
|
3085
|
-
props.placeholder && (0,
|
3086
|
-
props.readOnly !== void 0 &&
|
3087
|
-
props.scrollPastEnd && (0,
|
3088
|
-
props.tabSize &&
|
3120
|
+
props.placeholder && (0, import_view17.placeholder)(props.placeholder),
|
3121
|
+
props.readOnly !== void 0 && import_state17.EditorState.readOnly.of(props.readOnly),
|
3122
|
+
props.scrollPastEnd && (0, import_view17.scrollPastEnd)(),
|
3123
|
+
props.tabSize && import_state17.EditorState.tabSize.of(props.tabSize),
|
3089
3124
|
// https://codemirror.net/docs/ref/#view.KeyBinding
|
3090
|
-
|
3125
|
+
import_view17.keymap.of([
|
3091
3126
|
...(props.keymap && keymaps[props.keymap]) ?? [],
|
3092
3127
|
// NOTE: Tabs are also configured by markdown extension.
|
3093
3128
|
// https://codemirror.net/docs/ref/#commands.indentWithTab
|
@@ -3107,8 +3142,8 @@ var createBasicExtensions = (_props) => {
|
|
3107
3142
|
preventDefault: true,
|
3108
3143
|
run: () => true
|
3109
3144
|
}
|
3110
|
-
].filter(
|
3111
|
-
].filter(
|
3145
|
+
].filter(import_util4.isNotFalsy))
|
3146
|
+
].filter(import_util4.isNotFalsy);
|
3112
3147
|
};
|
3113
3148
|
var defaultThemeSlots = {
|
3114
3149
|
editor: {
|
@@ -3118,22 +3153,22 @@ var defaultThemeSlots = {
|
|
3118
3153
|
var createThemeExtensions = ({ themeMode, styles: styles4, syntaxHighlighting: _syntaxHighlighting, slots: _slots } = {}) => {
|
3119
3154
|
const slots = (0, import_lodash3.default)({}, _slots, defaultThemeSlots);
|
3120
3155
|
return [
|
3121
|
-
|
3122
|
-
|
3156
|
+
import_view17.EditorView.darkTheme.of(themeMode === "dark"),
|
3157
|
+
import_view17.EditorView.baseTheme(styles4 ? (0, import_lodash4.default)({}, defaultTheme, styles4) : defaultTheme),
|
3123
3158
|
// https://github.com/codemirror/theme-one-dark
|
3124
3159
|
_syntaxHighlighting && (themeMode === "dark" ? (0, import_language2.syntaxHighlighting)(import_theme_one_dark.oneDarkHighlightStyle) : (0, import_language2.syntaxHighlighting)(import_language2.defaultHighlightStyle)),
|
3125
|
-
slots.editor?.className &&
|
3160
|
+
slots.editor?.className && import_view17.EditorView.editorAttributes.of({
|
3126
3161
|
class: slots.editor.className
|
3127
3162
|
}),
|
3128
|
-
slots.content?.className &&
|
3163
|
+
slots.content?.className && import_view17.EditorView.contentAttributes.of({
|
3129
3164
|
class: slots.content.className
|
3130
3165
|
}),
|
3131
|
-
slots.scroll?.className &&
|
3166
|
+
slots.scroll?.className && import_view17.ViewPlugin.fromClass(class {
|
3132
3167
|
constructor(view) {
|
3133
3168
|
view.scrollDOM.classList.add(slots.scroll.className);
|
3134
3169
|
}
|
3135
3170
|
})
|
3136
|
-
].filter(
|
3171
|
+
].filter(import_util4.isNotFalsy);
|
3137
3172
|
};
|
3138
3173
|
var createDataExtensions = ({ id, text, space, identity }) => {
|
3139
3174
|
const extensions = [];
|
@@ -3142,7 +3177,7 @@ var createDataExtensions = ({ id, text, space, identity }) => {
|
|
3142
3177
|
}
|
3143
3178
|
if (space && identity) {
|
3144
3179
|
const peerId = identity?.identityKey.toHex();
|
3145
|
-
const hue = identity?.profile?.data?.hue ?? (0,
|
3180
|
+
const hue = identity?.profile?.data?.hue ?? (0, import_util4.hexToHue)(peerId ?? "0");
|
3146
3181
|
extensions.push(awareness(new SpaceAwarenessProvider({
|
3147
3182
|
space,
|
3148
3183
|
channel: `awareness.${id}`,
|
@@ -3177,7 +3212,7 @@ var folding = (_props = {}) => [
|
|
3177
3212
|
}));
|
3178
3213
|
}
|
3179
3214
|
}),
|
3180
|
-
|
3215
|
+
import_view20.EditorView.theme({
|
3181
3216
|
".cm-foldGutter": {
|
3182
3217
|
opacity: 0.3,
|
3183
3218
|
transition: "opacity 0.3s",
|
@@ -3188,25 +3223,25 @@ var folding = (_props = {}) => [
|
|
3188
3223
|
}
|
3189
3224
|
})
|
3190
3225
|
];
|
3191
|
-
var TagWidget = class extends
|
3226
|
+
var TagWidget = class extends import_view21.WidgetType {
|
3192
3227
|
constructor(_text) {
|
3193
3228
|
super(), this._text = _text;
|
3194
3229
|
}
|
3195
3230
|
toDOM() {
|
3196
3231
|
const span = document.createElement("span");
|
3197
|
-
span.className = (0,
|
3232
|
+
span.className = (0, import_react_ui_theme5.mx)("cm-tag", (0, import_react_ui_theme5.getHashColor)(this._text).tag);
|
3198
3233
|
span.textContent = this._text;
|
3199
3234
|
return span;
|
3200
3235
|
}
|
3201
3236
|
};
|
3202
|
-
var tagMatcher = new
|
3237
|
+
var tagMatcher = new import_view21.MatchDecorator({
|
3203
3238
|
regexp: /#(\w+)\W/g,
|
3204
|
-
decoration: (match) =>
|
3239
|
+
decoration: (match) => import_view21.Decoration.replace({
|
3205
3240
|
widget: new TagWidget(match[1])
|
3206
3241
|
})
|
3207
3242
|
});
|
3208
3243
|
var hashtag = () => [
|
3209
|
-
|
3244
|
+
import_view21.ViewPlugin.fromClass(class {
|
3210
3245
|
constructor(view) {
|
3211
3246
|
this.tags = tagMatcher.createDeco(view);
|
3212
3247
|
}
|
@@ -3215,11 +3250,11 @@ var hashtag = () => [
|
|
3215
3250
|
}
|
3216
3251
|
}, {
|
3217
3252
|
decorations: (instance) => instance.tags,
|
3218
|
-
provide: (plugin) =>
|
3219
|
-
return view.plugin(plugin)?.tags ||
|
3253
|
+
provide: (plugin) => import_view21.EditorView.atomicRanges.of((view) => {
|
3254
|
+
return view.plugin(plugin)?.tags || import_view21.Decoration.none;
|
3220
3255
|
})
|
3221
3256
|
}),
|
3222
|
-
|
3257
|
+
import_view21.EditorView.theme({
|
3223
3258
|
".cm-tag": {
|
3224
3259
|
borderRadius: "4px",
|
3225
3260
|
marginRight: "6px",
|
@@ -3269,11 +3304,11 @@ var schemaLinter = (validate) => (view) => {
|
|
3269
3304
|
};
|
3270
3305
|
var listener = ({ onFocus, onChange }) => {
|
3271
3306
|
const extensions = [];
|
3272
|
-
onFocus && extensions.push(
|
3307
|
+
onFocus && extensions.push(import_view22.EditorView.focusChangeEffect.of((_, focusing) => {
|
3273
3308
|
onFocus(focusing);
|
3274
3309
|
return null;
|
3275
3310
|
}));
|
3276
|
-
onChange && extensions.push(
|
3311
|
+
onChange && extensions.push(import_view22.EditorView.updateListener.of((update2) => {
|
3277
3312
|
onChange(update2.state.doc.toString(), update2.state.facet(documentId));
|
3278
3313
|
}));
|
3279
3314
|
return extensions;
|
@@ -3396,7 +3431,7 @@ var setStyle = (type, enable) => {
|
|
3396
3431
|
to: range.head + found + marker.length
|
3397
3432
|
}
|
3398
3433
|
],
|
3399
|
-
range:
|
3434
|
+
range: import_state19.EditorSelection.cursor(range.from - marker.length)
|
3400
3435
|
};
|
3401
3436
|
}
|
3402
3437
|
}
|
@@ -3524,13 +3559,13 @@ var setStyle = (type, enable) => {
|
|
3524
3559
|
from: range.head,
|
3525
3560
|
insert: marker + marker
|
3526
3561
|
},
|
3527
|
-
range:
|
3562
|
+
range: import_state19.EditorSelection.cursor(range.head + marker.length)
|
3528
3563
|
};
|
3529
3564
|
}
|
3530
3565
|
const changeSet = state.changes(changes2.concat(changesAtEnd));
|
3531
3566
|
return {
|
3532
3567
|
changes: changeSet,
|
3533
|
-
range: range.empty && !changeSet.empty ?
|
3568
|
+
range: range.empty && !changeSet.empty ? import_state19.EditorSelection.cursor(range.head + marker.length) : import_state19.EditorSelection.range(changeSet.mapPos(range.from, 1), changeSet.mapPos(range.to, -1))
|
3534
3569
|
};
|
3535
3570
|
});
|
3536
3571
|
dispatch(state.update(changes, {
|
@@ -3730,7 +3765,7 @@ var addLink = ({ url, image: image2 } = {}) => {
|
|
3730
3765
|
const changeSet = state.changes(changes2.concat(changesAfter));
|
3731
3766
|
return {
|
3732
3767
|
changes: changeSet,
|
3733
|
-
range:
|
3768
|
+
range: import_state19.EditorSelection.cursor(changeSet.mapPos(to, 1) - cursorOffset - (url ? url.length + 2 : 0))
|
3734
3769
|
};
|
3735
3770
|
});
|
3736
3771
|
if (changes.changes.empty) {
|
@@ -4164,7 +4199,7 @@ var toggleCodeblock = (target) => {
|
|
4164
4199
|
};
|
4165
4200
|
var formattingKeymap = (_options = {}) => {
|
4166
4201
|
return [
|
4167
|
-
|
4202
|
+
import_view23.keymap.of([
|
4168
4203
|
{
|
4169
4204
|
key: "meta-b",
|
4170
4205
|
run: toggleStrong
|
@@ -4365,7 +4400,7 @@ var getFormatting = (state) => {
|
|
4365
4400
|
};
|
4366
4401
|
};
|
4367
4402
|
var useFormattingState = (state) => {
|
4368
|
-
return (0, import_react7.useMemo)(() =>
|
4403
|
+
return (0, import_react7.useMemo)(() => import_view23.EditorView.updateListener.of((update2) => {
|
4369
4404
|
if (update2.docChanged || update2.selectionSet) {
|
4370
4405
|
Object.entries(getFormatting(update2.state)).forEach(([key, active]) => {
|
4371
4406
|
state[key] = active;
|
@@ -4617,17 +4652,16 @@ var createMarkdownExtensions = (options = {}) => {
|
|
4617
4652
|
}),
|
4618
4653
|
// Custom styles.
|
4619
4654
|
(0, import_language5.syntaxHighlighting)(markdownHighlightStyle()),
|
4620
|
-
|
4655
|
+
import_view24.keymap.of([
|
4621
4656
|
// https://codemirror.net/docs/ref/#commands.indentWithTab
|
4622
4657
|
options.indentWithTab !== false && import_commands3.indentWithTab,
|
4623
4658
|
// https://codemirror.net/docs/ref/#commands.defaultKeymap
|
4624
4659
|
...import_commands3.defaultKeymap,
|
4625
|
-
...import_autocomplete4.completionKeymap
|
4626
|
-
|
4627
|
-
].filter(import_util5.isNotFalsy))
|
4660
|
+
...import_autocomplete4.completionKeymap
|
4661
|
+
].filter(import_util6.isNotFalsy))
|
4628
4662
|
];
|
4629
4663
|
};
|
4630
|
-
var debugTree = (cb) =>
|
4664
|
+
var debugTree = (cb) => import_state20.StateField.define({
|
4631
4665
|
create: (state) => cb(convertTreeToJson(state)),
|
4632
4666
|
update: (value, tr) => cb(convertTreeToJson(tr.state))
|
4633
4667
|
});
|
@@ -4651,12 +4685,12 @@ var convertTreeToJson = (state) => {
|
|
4651
4685
|
return treeToJson((0, import_language7.syntaxTree)(state).cursor());
|
4652
4686
|
};
|
4653
4687
|
var adjustChanges = () => {
|
4654
|
-
return
|
4688
|
+
return import_view26.ViewPlugin.fromClass(class {
|
4655
4689
|
update(update2) {
|
4656
4690
|
const tree = (0, import_language9.syntaxTree)(update2.state);
|
4657
4691
|
const adjustments = [];
|
4658
4692
|
for (const tr of update2.transactions) {
|
4659
|
-
const event = tr.annotation(
|
4693
|
+
const event = tr.annotation(import_state22.Transaction.userEvent);
|
4660
4694
|
switch (event) {
|
4661
4695
|
//
|
4662
4696
|
// Enter
|
@@ -4791,9 +4825,9 @@ var getValidUrl = (str) => {
|
|
4791
4825
|
};
|
4792
4826
|
var image = (_options = {}) => {
|
4793
4827
|
return [
|
4794
|
-
|
4828
|
+
import_state23.StateField.define({
|
4795
4829
|
create: (state) => {
|
4796
|
-
return
|
4830
|
+
return import_view27.Decoration.set(buildDecorations(0, state.doc.length, state));
|
4797
4831
|
},
|
4798
4832
|
update: (value, tr) => {
|
4799
4833
|
if (!tr.docChanged && !tr.selection) {
|
@@ -4816,7 +4850,7 @@ var image = (_options = {}) => {
|
|
4816
4850
|
add: buildDecorations(from, to, tr.state)
|
4817
4851
|
});
|
4818
4852
|
},
|
4819
|
-
provide: (field) =>
|
4853
|
+
provide: (field) => import_view27.EditorView.decorations.from(field)
|
4820
4854
|
})
|
4821
4855
|
];
|
4822
4856
|
};
|
@@ -4834,7 +4868,7 @@ var buildDecorations = (from, to, state) => {
|
|
4834
4868
|
return;
|
4835
4869
|
}
|
4836
4870
|
preloadImage(url);
|
4837
|
-
decorations2.push(
|
4871
|
+
decorations2.push(import_view27.Decoration.replace({
|
4838
4872
|
block: true,
|
4839
4873
|
widget: new ImageWidget(url)
|
4840
4874
|
}).range(hide2 ? node.from : node.to, node.to));
|
@@ -4854,7 +4888,7 @@ var preloadImage = (url) => {
|
|
4854
4888
|
preloaded.add(url);
|
4855
4889
|
}
|
4856
4890
|
};
|
4857
|
-
var ImageWidget = class extends
|
4891
|
+
var ImageWidget = class extends import_view27.WidgetType {
|
4858
4892
|
constructor(_url) {
|
4859
4893
|
super(), this._url = _url;
|
4860
4894
|
}
|
@@ -4875,7 +4909,7 @@ var ImageWidget = class extends import_view26.WidgetType {
|
|
4875
4909
|
};
|
4876
4910
|
var bulletListIndentationWidth = 24;
|
4877
4911
|
var orderedListIndentationWidth = 36;
|
4878
|
-
var formattingStyles =
|
4912
|
+
var formattingStyles = import_view28.EditorView.theme({
|
4879
4913
|
/**
|
4880
4914
|
* Horizontal rule.
|
4881
4915
|
*/
|
@@ -4994,14 +5028,14 @@ var formattingStyles = import_view27.EditorView.theme({
|
|
4994
5028
|
}
|
4995
5029
|
});
|
4996
5030
|
var table = (options = {}) => {
|
4997
|
-
return
|
5031
|
+
return import_state24.StateField.define({
|
4998
5032
|
create: (state) => update(state, options),
|
4999
5033
|
update: (_, tr) => update(tr.state, options),
|
5000
|
-
provide: (field) =>
|
5034
|
+
provide: (field) => import_view29.EditorView.decorations.from(field)
|
5001
5035
|
});
|
5002
5036
|
};
|
5003
5037
|
var update = (state, _options) => {
|
5004
|
-
const builder = new
|
5038
|
+
const builder = new import_state24.RangeSetBuilder();
|
5005
5039
|
const cursor = state.selection.main.head;
|
5006
5040
|
const tables = [];
|
5007
5041
|
const getTable = () => tables[tables.length - 1];
|
@@ -5042,19 +5076,19 @@ var update = (state, _options) => {
|
|
5042
5076
|
tables.forEach((table2) => {
|
5043
5077
|
const replace = state.readOnly || cursor < table2.from || cursor > table2.to;
|
5044
5078
|
if (replace) {
|
5045
|
-
builder.add(table2.from, table2.to,
|
5079
|
+
builder.add(table2.from, table2.to, import_view29.Decoration.replace({
|
5046
5080
|
block: true,
|
5047
5081
|
widget: new TableWidget(table2)
|
5048
5082
|
}));
|
5049
5083
|
} else {
|
5050
|
-
builder.add(table2.from, table2.to,
|
5084
|
+
builder.add(table2.from, table2.to, import_view29.Decoration.mark({
|
5051
5085
|
class: "cm-table"
|
5052
5086
|
}));
|
5053
5087
|
}
|
5054
5088
|
});
|
5055
5089
|
return builder.finish();
|
5056
5090
|
};
|
5057
|
-
var TableWidget = class extends
|
5091
|
+
var TableWidget = class extends import_view29.WidgetType {
|
5058
5092
|
constructor(_table) {
|
5059
5093
|
super(), this._table = _table;
|
5060
5094
|
}
|
@@ -5093,14 +5127,14 @@ var Unicode = {
|
|
5093
5127
|
bulletSmall: "\u2219",
|
5094
5128
|
bulletSquare: "\u2B1D"
|
5095
5129
|
};
|
5096
|
-
var HorizontalRuleWidget = class extends
|
5130
|
+
var HorizontalRuleWidget = class extends import_view25.WidgetType {
|
5097
5131
|
toDOM() {
|
5098
5132
|
const el = document.createElement("span");
|
5099
5133
|
el.className = "cm-hr";
|
5100
5134
|
return el;
|
5101
5135
|
}
|
5102
5136
|
};
|
5103
|
-
var LinkButton = class extends
|
5137
|
+
var LinkButton = class extends import_view25.WidgetType {
|
5104
5138
|
constructor(url, render) {
|
5105
5139
|
super(), this.url = url, this.render = render;
|
5106
5140
|
}
|
@@ -5116,7 +5150,7 @@ var LinkButton = class extends import_view24.WidgetType {
|
|
5116
5150
|
return el;
|
5117
5151
|
}
|
5118
5152
|
};
|
5119
|
-
var CheckboxWidget = class extends
|
5153
|
+
var CheckboxWidget = class extends import_view25.WidgetType {
|
5120
5154
|
constructor(_checked) {
|
5121
5155
|
super(), this._checked = _checked;
|
5122
5156
|
}
|
@@ -5160,7 +5194,7 @@ var CheckboxWidget = class extends import_view24.WidgetType {
|
|
5160
5194
|
return false;
|
5161
5195
|
}
|
5162
5196
|
};
|
5163
|
-
var TextWidget = class extends
|
5197
|
+
var TextWidget = class extends import_view25.WidgetType {
|
5164
5198
|
constructor(text, className) {
|
5165
5199
|
super(), this.text = text, this.className = className;
|
5166
5200
|
}
|
@@ -5173,29 +5207,29 @@ var TextWidget = class extends import_view24.WidgetType {
|
|
5173
5207
|
return el;
|
5174
5208
|
}
|
5175
5209
|
};
|
5176
|
-
var hide =
|
5177
|
-
var blockQuote =
|
5210
|
+
var hide = import_view25.Decoration.replace({});
|
5211
|
+
var blockQuote = import_view25.Decoration.line({
|
5178
5212
|
class: "cm-blockquote"
|
5179
5213
|
});
|
5180
|
-
var fencedCodeLine =
|
5214
|
+
var fencedCodeLine = import_view25.Decoration.line({
|
5181
5215
|
class: "cm-code cm-codeblock-line"
|
5182
5216
|
});
|
5183
|
-
var fencedCodeLineFirst =
|
5184
|
-
class: (0,
|
5217
|
+
var fencedCodeLineFirst = import_view25.Decoration.line({
|
5218
|
+
class: (0, import_react_ui_theme6.mx)("cm-code cm-codeblock-line", "cm-codeblock-start")
|
5185
5219
|
});
|
5186
|
-
var fencedCodeLineLast =
|
5187
|
-
class: (0,
|
5220
|
+
var fencedCodeLineLast = import_view25.Decoration.line({
|
5221
|
+
class: (0, import_react_ui_theme6.mx)("cm-code cm-codeblock-line", "cm-codeblock-end")
|
5188
5222
|
});
|
5189
5223
|
var commentBlockLine = fencedCodeLine;
|
5190
5224
|
var commentBlockLineFirst = fencedCodeLineFirst;
|
5191
5225
|
var commentBlockLineLast = fencedCodeLineLast;
|
5192
|
-
var horizontalRule =
|
5226
|
+
var horizontalRule = import_view25.Decoration.replace({
|
5193
5227
|
widget: new HorizontalRuleWidget()
|
5194
5228
|
});
|
5195
|
-
var checkedTask =
|
5229
|
+
var checkedTask = import_view25.Decoration.replace({
|
5196
5230
|
widget: new CheckboxWidget(true)
|
5197
5231
|
});
|
5198
|
-
var uncheckedTask =
|
5232
|
+
var uncheckedTask = import_view25.Decoration.replace({
|
5199
5233
|
widget: new CheckboxWidget(false)
|
5200
5234
|
});
|
5201
5235
|
var editingRange = (state, range, focus2) => {
|
@@ -5211,8 +5245,8 @@ var autoHideTags = /* @__PURE__ */ new Set([
|
|
5211
5245
|
"SuperscriptMark"
|
5212
5246
|
]);
|
5213
5247
|
var buildDecorations2 = (view, options, focus2) => {
|
5214
|
-
const deco = new
|
5215
|
-
const atomicDeco = new
|
5248
|
+
const deco = new import_state21.RangeSetBuilder();
|
5249
|
+
const atomicDeco = new import_state21.RangeSetBuilder();
|
5216
5250
|
const { state } = view;
|
5217
5251
|
const headerLevels = [];
|
5218
5252
|
const getHeaderLevels = (node, level) => {
|
@@ -5299,7 +5333,7 @@ var buildDecorations2 = (view, options, focus2) => {
|
|
5299
5333
|
} else {
|
5300
5334
|
const num = headers.slice(from - 1).map((level2) => level2?.number ?? 0).join(".") + " ";
|
5301
5335
|
if (num.length) {
|
5302
|
-
atomicDeco.add(mark.from, mark.from + len,
|
5336
|
+
atomicDeco.add(mark.from, mark.from + len, import_view25.Decoration.replace({
|
5303
5337
|
widget: new TextWidget(num, theme.heading(level))
|
5304
5338
|
}));
|
5305
5339
|
}
|
@@ -5324,7 +5358,7 @@ var buildDecorations2 = (view, options, focus2) => {
|
|
5324
5358
|
if (node.from === line.to - 1) {
|
5325
5359
|
return false;
|
5326
5360
|
}
|
5327
|
-
deco.add(line.from, line.from,
|
5361
|
+
deco.add(line.from, line.from, import_view25.Decoration.line({
|
5328
5362
|
class: "cm-list-item",
|
5329
5363
|
attributes: {
|
5330
5364
|
style: `padding-left: ${offset}px; text-indent: -${width}px;`
|
@@ -5341,7 +5375,7 @@ var buildDecorations2 = (view, options, focus2) => {
|
|
5341
5375
|
const label = list.type === "OrderedList" ? `${++list.number}.` : Unicode.bulletSmall;
|
5342
5376
|
const line = state.doc.lineAt(node.from);
|
5343
5377
|
const to = state.doc.sliceString(node.to, node.to + 1) === " " ? node.to + 1 : node.to;
|
5344
|
-
atomicDeco.add(line.from, to,
|
5378
|
+
atomicDeco.add(line.from, to, import_view25.Decoration.replace({
|
5345
5379
|
widget: new TextWidget(label, list.type === "OrderedList" ? "cm-list-mark cm-list-mark-ordered" : "cm-list-mark cm-list-mark-bullet")
|
5346
5380
|
}));
|
5347
5381
|
break;
|
@@ -5428,7 +5462,7 @@ var buildDecorations2 = (view, options, focus2) => {
|
|
5428
5462
|
if (!editing) {
|
5429
5463
|
atomicDeco.add(node.from, marks[0].to, hide);
|
5430
5464
|
}
|
5431
|
-
deco.add(marks[0].to, marks[1].from,
|
5465
|
+
deco.add(marks[0].to, marks[1].from, import_view25.Decoration.mark({
|
5432
5466
|
tagName: "a",
|
5433
5467
|
attributes: {
|
5434
5468
|
class: "cm-link",
|
@@ -5438,7 +5472,7 @@ var buildDecorations2 = (view, options, focus2) => {
|
|
5438
5472
|
}
|
5439
5473
|
}));
|
5440
5474
|
if (!editing) {
|
5441
|
-
atomicDeco.add(marks[1].from, node.to, options.renderLinkButton ?
|
5475
|
+
atomicDeco.add(marks[1].from, node.to, options.renderLinkButton ? import_view25.Decoration.replace({
|
5442
5476
|
widget: new LinkButton(url, options.renderLinkButton)
|
5443
5477
|
}) : hide);
|
5444
5478
|
}
|
@@ -5493,10 +5527,10 @@ var buildDecorations2 = (view, options, focus2) => {
|
|
5493
5527
|
atomicDeco: atomicDeco.finish()
|
5494
5528
|
};
|
5495
5529
|
};
|
5496
|
-
var forceUpdate =
|
5530
|
+
var forceUpdate = import_state21.StateEffect.define();
|
5497
5531
|
var decorateMarkdown = (options = {}) => {
|
5498
5532
|
return [
|
5499
|
-
|
5533
|
+
import_view25.ViewPlugin.fromClass(class {
|
5500
5534
|
constructor(view) {
|
5501
5535
|
({ deco: this.deco, atomicDeco: this.atomicDeco } = buildDecorations2(view, options, view.hasFocus));
|
5502
5536
|
}
|
@@ -5528,9 +5562,9 @@ var decorateMarkdown = (options = {}) => {
|
|
5528
5562
|
}
|
5529
5563
|
}, {
|
5530
5564
|
provide: (plugin) => [
|
5531
|
-
|
5532
|
-
|
5533
|
-
|
5565
|
+
import_view25.EditorView.atomicRanges.of((view) => view.plugin(plugin)?.atomicDeco ?? import_view25.Decoration.none),
|
5566
|
+
import_view25.EditorView.decorations.of((view) => view.plugin(plugin)?.atomicDeco ?? import_view25.Decoration.none),
|
5567
|
+
import_view25.EditorView.decorations.of((view) => view.plugin(plugin)?.deco ?? import_view25.Decoration.none)
|
5534
5568
|
]
|
5535
5569
|
}),
|
5536
5570
|
image(),
|
@@ -5540,7 +5574,7 @@ var decorateMarkdown = (options = {}) => {
|
|
5540
5574
|
];
|
5541
5575
|
};
|
5542
5576
|
var linkTooltip = (renderTooltip) => {
|
5543
|
-
return (0,
|
5577
|
+
return (0, import_view30.hoverTooltip)((view, pos, side) => {
|
5544
5578
|
const syntax = (0, import_language12.syntaxTree)(view.state).resolveInner(pos, side);
|
5545
5579
|
let link = null;
|
5546
5580
|
for (let i = 0, node = syntax; !link && node && i < 5; node = node.parent, i++) {
|
@@ -5558,7 +5592,7 @@ var linkTooltip = (renderTooltip) => {
|
|
5558
5592
|
// above: true,
|
5559
5593
|
create: () => {
|
5560
5594
|
const el = document.createElement("div");
|
5561
|
-
el.className = (0,
|
5595
|
+
el.className = (0, import_react_ui_theme7.tooltipContent)({});
|
5562
5596
|
renderTooltip(el, {
|
5563
5597
|
url: urlText
|
5564
5598
|
}, view);
|
@@ -5630,7 +5664,7 @@ var InputModeExtensions = {
|
|
5630
5664
|
editorInputMode.of({
|
5631
5665
|
type: "vscode"
|
5632
5666
|
}),
|
5633
|
-
|
5667
|
+
import_view31.keymap.of(import_codemirror_vscode_keymap.vscodeKeymap)
|
5634
5668
|
],
|
5635
5669
|
vim: [
|
5636
5670
|
// https://github.com/replit/codemirror-vim
|
@@ -5639,7 +5673,7 @@ var InputModeExtensions = {
|
|
5639
5673
|
type: "vim",
|
5640
5674
|
noTabster: true
|
5641
5675
|
}),
|
5642
|
-
|
5676
|
+
import_view31.keymap.of([
|
5643
5677
|
{
|
5644
5678
|
key: "Alt-Escape",
|
5645
5679
|
run: (view) => {
|
@@ -5745,6 +5779,7 @@ var traverse = (root, cb) => {
|
|
5745
5779
|
return value;
|
5746
5780
|
}
|
5747
5781
|
}
|
5782
|
+
return void 0;
|
5748
5783
|
};
|
5749
5784
|
return t(root, root.type === "root" ? -1 : 0);
|
5750
5785
|
};
|
@@ -5779,7 +5814,7 @@ var format = (value) => JSON.stringify(value, (key, value2) => {
|
|
5779
5814
|
}
|
5780
5815
|
return value2;
|
5781
5816
|
}).replaceAll('"', "");
|
5782
|
-
var treeFacet =
|
5817
|
+
var treeFacet = import_state28.Facet.define({
|
5783
5818
|
combine: (values) => values[0]
|
5784
5819
|
});
|
5785
5820
|
var outlinerTree = (options = {}) => {
|
@@ -5802,7 +5837,7 @@ var outlinerTree = (options = {}) => {
|
|
5802
5837
|
case "BulletList": {
|
5803
5838
|
(0, import_invariant5.invariant)(current, void 0, {
|
5804
5839
|
F: __dxlog_file11,
|
5805
|
-
L:
|
5840
|
+
L: 219,
|
5806
5841
|
S: void 0,
|
5807
5842
|
A: [
|
5808
5843
|
"current",
|
@@ -5819,7 +5854,7 @@ var outlinerTree = (options = {}) => {
|
|
5819
5854
|
case "ListItem": {
|
5820
5855
|
(0, import_invariant5.invariant)(parent, void 0, {
|
5821
5856
|
F: __dxlog_file11,
|
5822
|
-
L:
|
5857
|
+
L: 228,
|
5823
5858
|
S: void 0,
|
5824
5859
|
A: [
|
5825
5860
|
"parent",
|
@@ -5861,7 +5896,7 @@ var outlinerTree = (options = {}) => {
|
|
5861
5896
|
case "ListMark": {
|
5862
5897
|
(0, import_invariant5.invariant)(current, void 0, {
|
5863
5898
|
F: __dxlog_file11,
|
5864
|
-
L:
|
5899
|
+
L: 272,
|
5865
5900
|
S: void 0,
|
5866
5901
|
A: [
|
5867
5902
|
"current",
|
@@ -5875,7 +5910,7 @@ var outlinerTree = (options = {}) => {
|
|
5875
5910
|
case "Task": {
|
5876
5911
|
(0, import_invariant5.invariant)(current, void 0, {
|
5877
5912
|
F: __dxlog_file11,
|
5878
|
-
L:
|
5913
|
+
L: 278,
|
5879
5914
|
S: void 0,
|
5880
5915
|
A: [
|
5881
5916
|
"current",
|
@@ -5888,7 +5923,7 @@ var outlinerTree = (options = {}) => {
|
|
5888
5923
|
case "TaskMarker": {
|
5889
5924
|
(0, import_invariant5.invariant)(current, void 0, {
|
5890
5925
|
F: __dxlog_file11,
|
5891
|
-
L:
|
5926
|
+
L: 283,
|
5892
5927
|
S: void 0,
|
5893
5928
|
A: [
|
5894
5929
|
"current",
|
@@ -5904,7 +5939,7 @@ var outlinerTree = (options = {}) => {
|
|
5904
5939
|
if (node.name === "BulletList") {
|
5905
5940
|
(0, import_invariant5.invariant)(parent, void 0, {
|
5906
5941
|
F: __dxlog_file11,
|
5907
|
-
L:
|
5942
|
+
L: 291,
|
5908
5943
|
S: void 0,
|
5909
5944
|
A: [
|
5910
5945
|
"parent",
|
@@ -5918,7 +5953,7 @@ var outlinerTree = (options = {}) => {
|
|
5918
5953
|
});
|
5919
5954
|
(0, import_invariant5.invariant)(tree, void 0, {
|
5920
5955
|
F: __dxlog_file11,
|
5921
|
-
L:
|
5956
|
+
L: 298,
|
5922
5957
|
S: void 0,
|
5923
5958
|
A: [
|
5924
5959
|
"tree",
|
@@ -5928,7 +5963,7 @@ var outlinerTree = (options = {}) => {
|
|
5928
5963
|
return tree;
|
5929
5964
|
};
|
5930
5965
|
return [
|
5931
|
-
|
5966
|
+
import_state27.StateField.define({
|
5932
5967
|
create: (state) => {
|
5933
5968
|
return buildTree(state);
|
5934
5969
|
},
|
@@ -5944,10 +5979,10 @@ var outlinerTree = (options = {}) => {
|
|
5944
5979
|
};
|
5945
5980
|
var getSelection = (state) => state.selection.main;
|
5946
5981
|
var selectionEquals = (a, b) => a.length === b.length && a.every((i) => b.includes(i));
|
5947
|
-
var selectionFacet =
|
5982
|
+
var selectionFacet = import_state26.Facet.define({
|
5948
5983
|
combine: (values) => values[0]
|
5949
5984
|
});
|
5950
|
-
var selectionCompartment = new
|
5985
|
+
var selectionCompartment = new import_state26.Compartment();
|
5951
5986
|
var selectNone = (view) => {
|
5952
5987
|
view.dispatch({
|
5953
5988
|
effects: selectionCompartment.reconfigure(selectionFacet.of([]))
|
@@ -6028,7 +6063,7 @@ var moveItemDown = (view) => {
|
|
6028
6063
|
];
|
6029
6064
|
view.dispatch({
|
6030
6065
|
changes,
|
6031
|
-
selection:
|
6066
|
+
selection: import_state25.EditorSelection.cursor(pos + nextContent.length + 1),
|
6032
6067
|
scrollIntoView: true
|
6033
6068
|
});
|
6034
6069
|
}
|
@@ -6056,7 +6091,7 @@ var moveItemUp = (view) => {
|
|
6056
6091
|
];
|
6057
6092
|
view.dispatch({
|
6058
6093
|
changes,
|
6059
|
-
selection:
|
6094
|
+
selection: import_state25.EditorSelection.cursor(pos - prevContent.length - 1),
|
6060
6095
|
scrollIntoView: true
|
6061
6096
|
});
|
6062
6097
|
}
|
@@ -6068,7 +6103,7 @@ var deleteItem = (view) => {
|
|
6068
6103
|
const current = tree.find(pos);
|
6069
6104
|
if (current) {
|
6070
6105
|
view.dispatch({
|
6071
|
-
selection:
|
6106
|
+
selection: import_state25.EditorSelection.cursor(current.lineRange.from),
|
6072
6107
|
changes: [
|
6073
6108
|
{
|
6074
6109
|
from: current.lineRange.from,
|
@@ -6098,7 +6133,7 @@ var toggleTask = (view) => {
|
|
6098
6133
|
}
|
6099
6134
|
return true;
|
6100
6135
|
};
|
6101
|
-
var commands = () =>
|
6136
|
+
var commands = () => import_view32.keymap.of([
|
6102
6137
|
//
|
6103
6138
|
// Indentation.
|
6104
6139
|
//
|
@@ -6124,7 +6159,7 @@ var commands = () => import_view31.keymap.of([
|
|
6124
6159
|
insert
|
6125
6160
|
}
|
6126
6161
|
],
|
6127
|
-
selection:
|
6162
|
+
selection: import_state25.EditorSelection.cursor(pos + insert.length)
|
6128
6163
|
});
|
6129
6164
|
return true;
|
6130
6165
|
}
|
@@ -6142,7 +6177,7 @@ var commands = () => import_view31.keymap.of([
|
|
6142
6177
|
const next = tree.next(item);
|
6143
6178
|
if (next) {
|
6144
6179
|
view.dispatch({
|
6145
|
-
selection:
|
6180
|
+
selection: import_state25.EditorSelection.cursor(next.contentRange.from)
|
6146
6181
|
});
|
6147
6182
|
return true;
|
6148
6183
|
}
|
@@ -6205,7 +6240,7 @@ var commands = () => import_view31.keymap.of([
|
|
6205
6240
|
var __dxlog_file12 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/extensions/outliner/editor.ts";
|
6206
6241
|
var LIST_ITEM_REGEX = /^\s*- (\[ \]|\[x\])? /;
|
6207
6242
|
var initialize = () => {
|
6208
|
-
return
|
6243
|
+
return import_view34.ViewPlugin.fromClass(class {
|
6209
6244
|
constructor(view) {
|
6210
6245
|
const first = view.state.doc.lineAt(0);
|
6211
6246
|
const text = view.state.sliceDoc(first.from, first.to);
|
@@ -6221,7 +6256,7 @@ var initialize = () => {
|
|
6221
6256
|
insert
|
6222
6257
|
}
|
6223
6258
|
],
|
6224
|
-
selection:
|
6259
|
+
selection: import_state30.EditorSelection.cursor(insert.length)
|
6225
6260
|
});
|
6226
6261
|
});
|
6227
6262
|
}
|
@@ -6230,7 +6265,7 @@ var initialize = () => {
|
|
6230
6265
|
};
|
6231
6266
|
var editor = () => [
|
6232
6267
|
initialize(),
|
6233
|
-
|
6268
|
+
import_state30.EditorState.transactionFilter.of((tr) => {
|
6234
6269
|
const tree = tr.state.facet(treeFacet);
|
6235
6270
|
if (!tr.docChanged) {
|
6236
6271
|
const current = getSelection(tr.state).from;
|
@@ -6245,20 +6280,20 @@ var editor = () => [
|
|
6245
6280
|
if (!prevItem) {
|
6246
6281
|
return [
|
6247
6282
|
{
|
6248
|
-
selection:
|
6283
|
+
selection: import_state30.EditorSelection.cursor(currentItem.contentRange.from)
|
6249
6284
|
}
|
6250
6285
|
];
|
6251
6286
|
} else {
|
6252
6287
|
if (currentItem.index < prevItem.index) {
|
6253
6288
|
return [
|
6254
6289
|
{
|
6255
|
-
selection:
|
6290
|
+
selection: import_state30.EditorSelection.cursor(currentItem.contentRange.to)
|
6256
6291
|
}
|
6257
6292
|
];
|
6258
6293
|
} else if (currentItem.index > prevItem.index) {
|
6259
6294
|
return [
|
6260
6295
|
{
|
6261
|
-
selection:
|
6296
|
+
selection: import_state30.EditorSelection.cursor(currentItem.contentRange.from)
|
6262
6297
|
}
|
6263
6298
|
];
|
6264
6299
|
} else {
|
@@ -6268,14 +6303,14 @@ var editor = () => [
|
|
6268
6303
|
} else {
|
6269
6304
|
return [
|
6270
6305
|
{
|
6271
|
-
selection:
|
6306
|
+
selection: import_state30.EditorSelection.cursor(currentItem.lineRange.from - 1)
|
6272
6307
|
}
|
6273
6308
|
];
|
6274
6309
|
}
|
6275
6310
|
} else {
|
6276
6311
|
return [
|
6277
6312
|
{
|
6278
|
-
selection:
|
6313
|
+
selection: import_state30.EditorSelection.cursor(currentItem.contentRange.to)
|
6279
6314
|
}
|
6280
6315
|
];
|
6281
6316
|
}
|
@@ -6388,7 +6423,7 @@ var editor = () => [
|
|
6388
6423
|
];
|
6389
6424
|
var outliner = (options = {}) => [
|
6390
6425
|
// Commands.
|
6391
|
-
|
6426
|
+
import_state29.Prec.highest(commands()),
|
6392
6427
|
// Selection.
|
6393
6428
|
selectionCompartment.of(selectionFacet.of([])),
|
6394
6429
|
// State.
|
@@ -6404,14 +6439,14 @@ var outliner = (options = {}) => [
|
|
6404
6439
|
listPaddingLeft: 8
|
6405
6440
|
}),
|
6406
6441
|
// Researve space for menu.
|
6407
|
-
|
6442
|
+
import_view33.EditorView.contentAttributes.of({
|
6408
6443
|
class: "is-full !mr-[3rem]"
|
6409
6444
|
})
|
6410
6445
|
];
|
6411
6446
|
var decorations = () => [
|
6412
|
-
|
6447
|
+
import_view33.ViewPlugin.fromClass(class {
|
6413
6448
|
constructor(view) {
|
6414
|
-
this.decorations =
|
6449
|
+
this.decorations = import_view33.Decoration.none;
|
6415
6450
|
this.updateDecorations(view.state, view);
|
6416
6451
|
}
|
6417
6452
|
update(update2) {
|
@@ -6433,18 +6468,18 @@ var decorations = () => [
|
|
6433
6468
|
const lineFrom = doc.lineAt(item.contentRange.from);
|
6434
6469
|
const lineTo = doc.lineAt(item.contentRange.to);
|
6435
6470
|
const isSelected = selection.includes(item.index) || item === current;
|
6436
|
-
decorations2.push(
|
6437
|
-
class: (0,
|
6471
|
+
decorations2.push(import_view33.Decoration.line({
|
6472
|
+
class: (0, import_react_ui_theme8.mx)("cm-list-item", lineFrom.number === line.number && "cm-list-item-start", lineTo.number === line.number && "cm-list-item-end", isSelected && (hasFocus ? "cm-list-item-focused" : "cm-list-item-selected"))
|
6438
6473
|
}).range(line.from, line.from));
|
6439
6474
|
}
|
6440
6475
|
}
|
6441
|
-
this.decorations =
|
6476
|
+
this.decorations = import_view33.Decoration.set(decorations2);
|
6442
6477
|
}
|
6443
6478
|
}, {
|
6444
6479
|
decorations: (v) => v.decorations
|
6445
6480
|
}),
|
6446
6481
|
// Theme.
|
6447
|
-
|
6482
|
+
import_view33.EditorView.theme(Object.assign({
|
6448
6483
|
".cm-list-item": {
|
6449
6484
|
borderLeftWidth: "1px",
|
6450
6485
|
borderRightWidth: "1px",
|
@@ -6480,20 +6515,13 @@ var preview = (options = {}) => {
|
|
6480
6515
|
return [
|
6481
6516
|
// NOTE: Atomic block decorations must be created from a state field, now a widget, otherwise it results in the following error:
|
6482
6517
|
// "Block decorations may not be specified via plugins"
|
6483
|
-
|
6518
|
+
import_state31.StateField.define({
|
6484
6519
|
create: (state) => buildDecorations3(state, options),
|
6485
6520
|
update: (_, tr) => buildDecorations3(tr.state, options),
|
6486
6521
|
provide: (field) => [
|
6487
|
-
|
6488
|
-
|
6522
|
+
import_view35.EditorView.decorations.from(field),
|
6523
|
+
import_view35.EditorView.atomicRanges.of((view) => view.state.field(field))
|
6489
6524
|
]
|
6490
|
-
}),
|
6491
|
-
import_view34.EditorView.theme({
|
6492
|
-
".cm-preview-block": {
|
6493
|
-
"--dx-card-spacing-inline": "var(--dx-trimMd)",
|
6494
|
-
"--dx-card-spacing-block": "var(--dx-trimMd)",
|
6495
|
-
marginInline: "calc(-1*var(--dx-trimMd))"
|
6496
|
-
}
|
6497
6525
|
})
|
6498
6526
|
];
|
6499
6527
|
};
|
@@ -6511,7 +6539,7 @@ var getLinkRef = (state, node) => {
|
|
6511
6539
|
}
|
6512
6540
|
};
|
6513
6541
|
var buildDecorations3 = (state, options) => {
|
6514
|
-
const builder = new
|
6542
|
+
const builder = new import_state31.RangeSetBuilder();
|
6515
6543
|
(0, import_language15.syntaxTree)(state).iterate({
|
6516
6544
|
enter: (node) => {
|
6517
6545
|
switch (node.name) {
|
@@ -6522,7 +6550,7 @@ var buildDecorations3 = (state, options) => {
|
|
6522
6550
|
case "Link": {
|
6523
6551
|
const link = getLinkRef(state, node.node);
|
6524
6552
|
if (link) {
|
6525
|
-
builder.add(node.from, node.to,
|
6553
|
+
builder.add(node.from, node.to, import_view35.Decoration.replace({
|
6526
6554
|
widget: new PreviewInlineWidget(options, link)
|
6527
6555
|
}));
|
6528
6556
|
}
|
@@ -6534,8 +6562,8 @@ var buildDecorations3 = (state, options) => {
|
|
6534
6562
|
//
|
6535
6563
|
case "Image": {
|
6536
6564
|
const link = getLinkRef(state, node.node);
|
6537
|
-
if (options.
|
6538
|
-
builder.add(node.from, node.to,
|
6565
|
+
if (options.addBlockContainer && options.removeBlockContainer && link) {
|
6566
|
+
builder.add(node.from, node.to, import_view35.Decoration.replace({
|
6539
6567
|
block: true,
|
6540
6568
|
// atomic: true,
|
6541
6569
|
widget: new PreviewBlockWidget(options, link)
|
@@ -6548,7 +6576,7 @@ var buildDecorations3 = (state, options) => {
|
|
6548
6576
|
});
|
6549
6577
|
return builder.finish();
|
6550
6578
|
};
|
6551
|
-
var PreviewInlineWidget = class extends
|
6579
|
+
var PreviewInlineWidget = class extends import_view35.WidgetType {
|
6552
6580
|
constructor(_options, _link) {
|
6553
6581
|
super(), this._options = _options, this._link = _link;
|
6554
6582
|
}
|
@@ -6565,7 +6593,7 @@ var PreviewInlineWidget = class extends import_view34.WidgetType {
|
|
6565
6593
|
return root;
|
6566
6594
|
}
|
6567
6595
|
};
|
6568
|
-
var PreviewBlockWidget = class extends
|
6596
|
+
var PreviewBlockWidget = class extends import_view35.WidgetType {
|
6569
6597
|
constructor(_options, _link) {
|
6570
6598
|
super(), this._options = _options, this._link = _link;
|
6571
6599
|
}
|
@@ -6577,50 +6605,13 @@ var PreviewBlockWidget = class extends import_view34.WidgetType {
|
|
6577
6605
|
}
|
6578
6606
|
toDOM(view) {
|
6579
6607
|
const root = document.createElement("div");
|
6580
|
-
root.classList.add("cm-preview-block");
|
6581
|
-
|
6582
|
-
const pos = view.posAtDOM(root);
|
6583
|
-
const node = (0, import_language15.syntaxTree)(view.state).resolve(pos + 1).node.parent;
|
6584
|
-
if (!node) {
|
6585
|
-
return;
|
6586
|
-
}
|
6587
|
-
const link = getLinkRef(view.state, node);
|
6588
|
-
if (link?.ref !== action.link.ref) {
|
6589
|
-
return;
|
6590
|
-
}
|
6591
|
-
switch (action.type) {
|
6592
|
-
// TODO(burdon): Should we dispatch to the view or mutate the document? (i.e., handle externally?)
|
6593
|
-
// Insert ref text.
|
6594
|
-
case "insert": {
|
6595
|
-
view.dispatch({
|
6596
|
-
changes: {
|
6597
|
-
from: node.from,
|
6598
|
-
to: node.to,
|
6599
|
-
insert: action.target.text
|
6600
|
-
}
|
6601
|
-
});
|
6602
|
-
break;
|
6603
|
-
}
|
6604
|
-
// Remove ref.
|
6605
|
-
case "delete": {
|
6606
|
-
view.dispatch({
|
6607
|
-
changes: {
|
6608
|
-
from: node.from,
|
6609
|
-
to: node.to
|
6610
|
-
}
|
6611
|
-
});
|
6612
|
-
break;
|
6613
|
-
}
|
6614
|
-
}
|
6615
|
-
};
|
6616
|
-
this._options.renderBlock(root, {
|
6617
|
-
readonly: view.state.readOnly,
|
6618
|
-
link: this._link,
|
6619
|
-
onAction: handleAction,
|
6620
|
-
onLookup: this._options.onLookup
|
6621
|
-
}, view);
|
6608
|
+
root.classList.add("cm-preview-block", "density-coarse");
|
6609
|
+
this._options.addBlockContainer?.(this._link, root);
|
6622
6610
|
return root;
|
6623
6611
|
}
|
6612
|
+
destroy() {
|
6613
|
+
this._options.removeBlockContainer?.(this._link);
|
6614
|
+
}
|
6624
6615
|
};
|
6625
6616
|
var defaultItems = [
|
6626
6617
|
"hello world!",
|
@@ -6631,7 +6622,7 @@ var typewriter = ({ delay = 75, items = defaultItems } = {}) => {
|
|
6631
6622
|
let t;
|
6632
6623
|
let idx = 0;
|
6633
6624
|
return [
|
6634
|
-
|
6625
|
+
import_view36.keymap.of([
|
6635
6626
|
{
|
6636
6627
|
// Reset.
|
6637
6628
|
key: "alt-meta-'",
|
@@ -7041,20 +7032,15 @@ var EditorToolbar = /* @__PURE__ */ (0, import_react.memo)(({ classNames, attend
|
|
7041
7032
|
var _effect = (0, import_tracking.useSignals)();
|
7042
7033
|
try {
|
7043
7034
|
const menuProps = useEditorToolbarActionGraph(props);
|
7044
|
-
return /* @__PURE__ */ import_react.default.createElement(
|
7045
|
-
role: "none",
|
7046
|
-
className: stackItemContentToolbarClassNames(role)
|
7047
|
-
}, /* @__PURE__ */ import_react.default.createElement(import_react_ui.ElevationProvider, {
|
7035
|
+
return /* @__PURE__ */ import_react.default.createElement(import_react_ui.ElevationProvider, {
|
7048
7036
|
elevation: role === "section" ? "positioned" : "base"
|
7049
7037
|
}, /* @__PURE__ */ import_react.default.createElement(import_react_ui_menu.MenuProvider, {
|
7050
7038
|
...menuProps,
|
7051
7039
|
attendableId
|
7052
7040
|
}, /* @__PURE__ */ import_react.default.createElement(import_react_ui_menu.ToolbarMenu, {
|
7053
|
-
classNames
|
7054
|
-
|
7055
|
-
|
7056
|
-
]
|
7057
|
-
}))));
|
7041
|
+
classNames,
|
7042
|
+
textBlockWidth: true
|
7043
|
+
})));
|
7058
7044
|
} finally {
|
7059
7045
|
_effect.f();
|
7060
7046
|
}
|
@@ -7328,7 +7314,10 @@ var RefPopover = /* @__PURE__ */ (0, import_react9.forwardRef)(({ children, open
|
|
7328
7314
|
try {
|
7329
7315
|
const [rootRef, setRootRef] = (0, import_react9.useState)(null);
|
7330
7316
|
(0, import_react9.useEffect)(() => {
|
7331
|
-
|
7317
|
+
if (!rootRef || !onActivate) {
|
7318
|
+
return;
|
7319
|
+
}
|
7320
|
+
return (0, import_async6.addEventListener)(rootRef, "dx-ref-tag-activate", onActivate, customEventOptions);
|
7332
7321
|
}, [
|
7333
7322
|
rootRef,
|
7334
7323
|
onActivate
|
@@ -7430,7 +7419,10 @@ var RefDropdownMenuProvider = ({ children, onLookup }) => {
|
|
7430
7419
|
onLookup
|
7431
7420
|
]);
|
7432
7421
|
(0, import_react10.useEffect)(() => {
|
7433
|
-
|
7422
|
+
if (!rootRef) {
|
7423
|
+
return;
|
7424
|
+
}
|
7425
|
+
return (0, import_async7.addEventListener)(rootRef, "dx-ref-tag-activate", handleDxRefTagActivate, customEventOptions2);
|
7434
7426
|
}, [
|
7435
7427
|
rootRef
|
7436
7428
|
]);
|
@@ -7458,7 +7450,7 @@ var RefDropdownMenu = {
|
|
7458
7450
|
var __dxlog_file13 = "/home/runner/work/dxos/dxos/packages/ui/react-ui-editor/src/hooks/useTextEditor.ts";
|
7459
7451
|
var instanceCount = 0;
|
7460
7452
|
var useTextEditor = (props = {}, deps = []) => {
|
7461
|
-
const { id, doc, initialValue, extensions, autoFocus, scrollTo, selection, moveToEndOfLine, debug } = (0, import_react11.useMemo)(() => (0,
|
7453
|
+
const { id, doc, initialValue, extensions, autoFocus, scrollTo, selection, moveToEndOfLine, debug } = (0, import_react11.useMemo)(() => (0, import_util7.getProviderValue)(props), deps ?? []);
|
7462
7454
|
const [instanceId] = (0, import_react11.useState)(() => `text-editor-${++instanceCount}`);
|
7463
7455
|
const [view, setView] = (0, import_react11.useState)();
|
7464
7456
|
const parentRef = (0, import_react11.useRef)(null);
|
@@ -7487,14 +7479,14 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
7487
7479
|
anchor
|
7488
7480
|
};
|
7489
7481
|
}
|
7490
|
-
const state =
|
7482
|
+
const state = import_state32.EditorState.create({
|
7491
7483
|
doc: doc ?? initialValue,
|
7492
7484
|
// selection: initialSelection,
|
7493
7485
|
extensions: [
|
7494
7486
|
id && documentId.of(id),
|
7495
7487
|
extensions,
|
7496
7488
|
// NOTE: This doesn't catch errors in keymap functions.
|
7497
|
-
|
7489
|
+
import_view37.EditorView.exceptionSink.of((err) => {
|
7498
7490
|
import_log8.log.catch(err, void 0, {
|
7499
7491
|
F: __dxlog_file13,
|
7500
7492
|
L: 97,
|
@@ -7502,12 +7494,12 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
7502
7494
|
C: (f, a) => f(...a)
|
7503
7495
|
});
|
7504
7496
|
})
|
7505
|
-
].filter(
|
7497
|
+
].filter(import_util7.isNotFalsy)
|
7506
7498
|
});
|
7507
|
-
view2 = new
|
7499
|
+
view2 = new import_view37.EditorView({
|
7508
7500
|
parent: parentRef.current,
|
7509
7501
|
state,
|
7510
|
-
scrollTo: scrollTo ?
|
7502
|
+
scrollTo: scrollTo ? import_view37.EditorView.scrollIntoView(scrollTo, {
|
7511
7503
|
yMargin: 96
|
7512
7504
|
}) : void 0,
|
7513
7505
|
dispatchTransactions: debug ? debugDispatcher : void 0
|
@@ -7683,6 +7675,7 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
7683
7675
|
formattingKeymap,
|
7684
7676
|
getFormatting,
|
7685
7677
|
getItem,
|
7678
|
+
getLinkRef,
|
7686
7679
|
getListItemContent,
|
7687
7680
|
getNextItem,
|
7688
7681
|
getPreviousItem,
|
@@ -7708,7 +7701,6 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
7708
7701
|
mention,
|
7709
7702
|
moveItemDown,
|
7710
7703
|
moveItemUp,
|
7711
|
-
multilinePlaceholder,
|
7712
7704
|
openCommand,
|
7713
7705
|
openEffect,
|
7714
7706
|
outliner,
|
@@ -7732,7 +7724,6 @@ var useTextEditor = (props = {}, deps = []) => {
|
|
7732
7724
|
setStyle,
|
7733
7725
|
singleValueFacet,
|
7734
7726
|
stackItemContentEditorClassNames,
|
7735
|
-
stackItemContentToolbarClassNames,
|
7736
7727
|
staticCompletion,
|
7737
7728
|
table,
|
7738
7729
|
tags,
|