@estiva-app/ui 0.52.0 → 0.53.1
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/ComposerTriggers.d.ts +24 -2
- package/dist/ComposerTriggers.d.ts.map +1 -1
- package/dist/SuggestionMenu.d.ts.map +1 -1
- package/dist/editor.js +32 -5
- package/dist/editor.js.map +2 -2
- package/dist/gates/{chunk-FIBZLYQI.js → chunk-SNYYAFZS.js} +8 -1
- package/dist/gates/chunk-SNYYAFZS.js.map +7 -0
- package/dist/gates/create-app.d.ts.map +1 -1
- package/dist/gates/create-app.js +1 -1
- package/dist/gates/index.js +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +3 -3
- package/dist/suggestionPopup.d.ts +9 -0
- package/dist/suggestionPopup.d.ts.map +1 -1
- package/package.json +1 -1
- package/registry.json +14 -2
- package/src/ComposerTriggers.mdx +7 -0
- package/src/ComposerTriggers.stories.tsx +21 -1
- package/src/ComposerTriggers.test.tsx +61 -0
- package/src/ComposerTriggers.tsx +46 -6
- package/src/SuggestionMenu.tsx +13 -3
- package/src/gates/create-app.test.ts +8 -0
- package/src/gates/create-app.ts +7 -0
- package/src/suggestionPopup.tsx +29 -1
- package/dist/gates/chunk-FIBZLYQI.js.map +0 -7
|
@@ -72,6 +72,13 @@ export interface CaptionedItem {
|
|
|
72
72
|
uri: string;
|
|
73
73
|
/** What the query is matched against beside `label`. Default: `snippet`. */
|
|
74
74
|
search?: string;
|
|
75
|
+
/** The row's second line, e.g. where the thing sits. The chip does not wear it. */
|
|
76
|
+
description?: string;
|
|
77
|
+
}
|
|
78
|
+
/** One labelled group of `[`'s rows, in the order the list draws them. */
|
|
79
|
+
export interface ReferenceSection {
|
|
80
|
+
label: string;
|
|
81
|
+
items: readonly CaptionedItem[];
|
|
75
82
|
}
|
|
76
83
|
/** How many references the list shows. */
|
|
77
84
|
export declare const REFERENCE_LIMIT = 6;
|
|
@@ -100,11 +107,26 @@ export interface ReferenceMenuOptions {
|
|
|
100
107
|
/** At each row's start: a 16px icon. */
|
|
101
108
|
icon: ReactNode;
|
|
102
109
|
}
|
|
103
|
-
/**
|
|
110
|
+
/**
|
|
111
|
+
* The list `[` opens: `label: snippet` rows, the same box as the people list.
|
|
112
|
+
* One section headed `sectionLabel`, or — when the rows say which section they
|
|
113
|
+
* are in — a heading for each, in the order the rows arrive.
|
|
114
|
+
*/
|
|
104
115
|
export declare function referenceMenu({ ariaLabel, sectionLabel, icon }: ReferenceMenuOptions): SuggestionPopupOptions<CaptionedItem>;
|
|
105
116
|
export interface ReferenceTriggerOptions extends ReferenceMenuOptions {
|
|
106
|
-
/** Everything `[` can offer, asked each time the query changes. */
|
|
117
|
+
/** Everything `[` can offer, asked each time the query changes. Narrowed by {@link filterReferences}. */
|
|
107
118
|
items: () => readonly CaptionedItem[];
|
|
119
|
+
/**
|
|
120
|
+
* In place of `items`: the sections to draw for what was typed, already
|
|
121
|
+
* narrowed and ordered by the app. Empty sections are not drawn.
|
|
122
|
+
*/
|
|
123
|
+
sections?: (query: string) => readonly ReferenceSection[];
|
|
124
|
+
/**
|
|
125
|
+
* Called with a listener while the list is open; the app calls it when what
|
|
126
|
+
* `sections` would answer has changed — a search landing — and the open list
|
|
127
|
+
* is drawn again for the same query. Returns the unsubscribe.
|
|
128
|
+
*/
|
|
129
|
+
subscribe?: (listener: () => void) => () => void;
|
|
108
130
|
/** The node a pick inserts. Default `captionedReference`. */
|
|
109
131
|
nodeName: string;
|
|
110
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComposerTriggers.d.ts","sourceRoot":"","sources":["../src/ComposerTriggers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAA;AAErD,OAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAMxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAmB,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAiBhF,mCAAmC;AACnC,MAAM,WAAW,aAAa;IAC5B,4EAA4E;IAC5E,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB;AAED,sCAAsC;AACtC,eAAO,MAAM,YAAY,IAAI,CAAA;AAE7B,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAG7F;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAiBjF;AAED,MAAM,WAAW,oBAAoB;IACnC,sEAAsE;IACtE,MAAM,EAAE,MAAM,SAAS,aAAa,EAAE,CAAA;CACvC;AAED,KAAK,GAAG,GAAG;IAAE,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,OAAO,GAAG,IAAI,KAAK,IAAI,CAAA;CAAE,CAAA;AAgE9H;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,uGAaxB,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,uGAgB9B,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE;QAAE,GAAG,EAAE,GAAG,CAAA;KAAE,CAAA;CAAE,GAAG,MAAM,EAAE,GAAG,SAAS,CAMnF;AAID,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAA;IACV,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,gFAAgF;IAChF,OAAO,EAAE,MAAM,CAAA;IACf,yEAAyE;IACzE,GAAG,EAAE,MAAM,CAAA;IACX,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"ComposerTriggers.d.ts","sourceRoot":"","sources":["../src/ComposerTriggers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAA;AAErD,OAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAMxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAmB,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAiBhF,mCAAmC;AACnC,MAAM,WAAW,aAAa;IAC5B,4EAA4E;IAC5E,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB;AAED,sCAAsC;AACtC,eAAO,MAAM,YAAY,IAAI,CAAA;AAE7B,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAG7F;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAiBjF;AAED,MAAM,WAAW,oBAAoB;IACnC,sEAAsE;IACtE,MAAM,EAAE,MAAM,SAAS,aAAa,EAAE,CAAA;CACvC;AAED,KAAK,GAAG,GAAG;IAAE,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,OAAO,GAAG,IAAI,KAAK,IAAI,CAAA;CAAE,CAAA;AAgE9H;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,uGAaxB,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,uGAgB9B,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE;QAAE,GAAG,EAAE,GAAG,CAAA;KAAE,CAAA;CAAE,GAAG,MAAM,EAAE,GAAG,SAAS,CAMnF;AAID,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAA;IACV,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,gFAAgF;IAChF,OAAO,EAAE,MAAM,CAAA;IACf,yEAAyE;IACzE,GAAG,EAAE,MAAM,CAAA;IACX,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,0EAA0E;AAC1E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,SAAS,aAAa,EAAE,CAAA;CAChC;AAED,0CAA0C;AAC1C,eAAO,MAAM,eAAe,IAAI,CAAA;AAEhC;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAIhG;AAID,MAAM,WAAW,yBAAyB;IACxC,6CAA6C;IAC7C,IAAI,EAAE,SAAS,CAAA;CAChB;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,yIAsC7B,CAAA;AAEF,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAA;IACjB,6BAA6B;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,wCAAwC;IACxC,IAAI,EAAE,SAAS,CAAA;CAChB;AAKD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,oBAAoB,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAkB5H;AAED,MAAM,WAAW,uBAAwB,SAAQ,oBAAoB;IACnE,yGAAyG;IACzG,KAAK,EAAE,MAAM,SAAS,aAAa,EAAE,CAAA;IACrC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,gBAAgB,EAAE,CAAA;IACzD;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAA;IAChD,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAA;CACjB;AAOD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,yCAgC3B,CAAA;AAIF,wDAAwD;AACxD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,iBAAiB,CAAA;IACtB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,sEAAsE;IACtE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAA;CAClC;AAED,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,OAAO,GAAG,YAAY,GAAG,aAAa,GAAG,MAAM,CAAA;AAE/G,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,QAAQ,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,kGAAkG;IAClG,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;GAIG;AACH,eAAO,MAAM,OAAO,EAAE,SAAS,SAAS,EAQvC,CAAA;AAED,gEAAgE;AAChE,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE3C;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAE,UAAqB,GAAG,OAAO,CA8B9F;AAED,qDAAqD;AACrD,wBAAgB,aAAa,CAAC,IAAI,GAAE,UAAqB,GAAG,YAAY,CAYvE;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAM9D;AAMD,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,CAGpG;AAED,MAAM,WAAW,oBAAoB;IACnC,+EAA+E;IAC/E,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAA;CAClC;AAID;;;;GAIG;AACH,eAAO,MAAM,aAAa,sCA6BxB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SuggestionMenu.d.ts","sourceRoot":"","sources":["../src/SuggestionMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"SuggestionMenu.d.ts","sourceRoot":"","sources":["../src/SuggestionMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiF,KAAK,SAAS,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAA;AAC/H,OAAO,EAAwC,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAA;AAGjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAC7B;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,SAAS,CAAC,EAAE,CAAA;IACnB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,oDAAoD;AACpD,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAA;CAC7C;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,gEAAgE;IAChE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAClC,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAA;IACjB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAA;IACb,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,SAAS,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7C,8BAA8B;IAC9B,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAA;IAC5B,wBAAwB;IACxB,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,iBAAiB,CAAA;IACnC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;IAC3B,MAAM,CAAC,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAA;CACnC;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC,sCAuHvJ"}
|
package/dist/editor.js
CHANGED
|
@@ -317,7 +317,12 @@ function suggestionPopup(options) {
|
|
|
317
317
|
return () => {
|
|
318
318
|
let component = null;
|
|
319
319
|
let container = null;
|
|
320
|
+
let last = null;
|
|
321
|
+
let unsubscribe;
|
|
320
322
|
const exit = () => {
|
|
323
|
+
unsubscribe?.();
|
|
324
|
+
unsubscribe = void 0;
|
|
325
|
+
last = null;
|
|
321
326
|
if (!component) return;
|
|
322
327
|
openCount = Math.max(0, openCount - 1);
|
|
323
328
|
lastClose = Date.now();
|
|
@@ -333,8 +338,20 @@ function suggestionPopup(options) {
|
|
|
333
338
|
container = document.createElement("div");
|
|
334
339
|
document.body.appendChild(container);
|
|
335
340
|
container.appendChild(component.element);
|
|
341
|
+
last = props;
|
|
342
|
+
const { subscribe, refresh } = options;
|
|
343
|
+
if (subscribe && refresh) {
|
|
344
|
+
unsubscribe = subscribe(() => {
|
|
345
|
+
if (!last || !component) return;
|
|
346
|
+
last = { ...last, items: refresh(last.query) };
|
|
347
|
+
component.updateProps({ ...last, options });
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
},
|
|
351
|
+
onUpdate: (props) => {
|
|
352
|
+
last = props;
|
|
353
|
+
component?.updateProps({ ...props, options });
|
|
336
354
|
},
|
|
337
|
-
onUpdate: (props) => component?.updateProps({ ...props, options }),
|
|
338
355
|
onKeyDown: ({ event }) => {
|
|
339
356
|
if (event.key === "Escape") {
|
|
340
357
|
exit();
|
|
@@ -509,11 +526,21 @@ function referenceMenu({ ariaLabel, sectionLabel, icon }) {
|
|
|
509
526
|
ariaLabel,
|
|
510
527
|
width: "w-[658px]",
|
|
511
528
|
maxHeight: "max-h-[360px]",
|
|
512
|
-
sections: (items) =>
|
|
529
|
+
sections: (items) => {
|
|
530
|
+
const groups = [];
|
|
531
|
+
for (const item of items) {
|
|
532
|
+
const label = item.section ?? sectionLabel;
|
|
533
|
+
const last = groups[groups.length - 1];
|
|
534
|
+
if (last?.label === label) last.items.push(item);
|
|
535
|
+
else groups.push({ label, items: [item], className: "px-2" });
|
|
536
|
+
}
|
|
537
|
+
return groups;
|
|
538
|
+
},
|
|
513
539
|
itemKey: (item) => `reference-${item.id}`,
|
|
514
|
-
row: (item) => ({ leading: icon, label: captionOf(item.label, item.snippet), hint: /* @__PURE__ */ jsx3(EnterHint, {}) })
|
|
540
|
+
row: (item) => ({ leading: icon, label: captionOf(item.label, item.snippet), description: item.description, hint: /* @__PURE__ */ jsx3(EnterHint, {}) })
|
|
515
541
|
};
|
|
516
542
|
}
|
|
543
|
+
var listed = (options, query) => options.sections ? options.sections(query).flatMap((section) => section.items.map((item) => ({ ...item, section: section.label }))) : filterReferences(options.items(), query);
|
|
517
544
|
var ReferenceTrigger = Extension2.create({
|
|
518
545
|
name: "referenceTrigger",
|
|
519
546
|
addOptions() {
|
|
@@ -531,8 +558,8 @@ var ReferenceTrigger = Extension2.create({
|
|
|
531
558
|
const type = state.schema.nodes[options.nodeName];
|
|
532
559
|
return !!type && !!state.doc.resolve(range.from).parent.type.contentMatch.matchType(type);
|
|
533
560
|
},
|
|
534
|
-
items: ({ query }) =>
|
|
535
|
-
render: suggestionPopup(referenceMenu(options)),
|
|
561
|
+
items: ({ query }) => listed(options, query),
|
|
562
|
+
render: suggestionPopup({ ...referenceMenu(options), subscribe: options.subscribe, refresh: (query) => listed(options, query) }),
|
|
536
563
|
command: ({ editor, range, props: item }) => {
|
|
537
564
|
editor.chain().focus().insertContentAt(range, [
|
|
538
565
|
{ type: options.nodeName, attrs: { id: item.id, label: item.label, snippet: item.snippet, uri: item.uri } },
|