@prosekit/web 0.1.9 → 0.2.0

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.
@@ -29,6 +29,7 @@ import { UpdateHandler } from '@prosekit/core';
29
29
  import { usePopoverContent } from '@aria-ui/popover';
30
30
  import { usePopoverRoot } from '@aria-ui/popover';
31
31
  import { usePopoverTrigger } from '@aria-ui/popover';
32
+ import { useTooltipContent } from '@aria-ui/tooltip';
32
33
  import { useTooltipRoot } from '@aria-ui/tooltip';
33
34
  import { useTooltipTrigger } from '@aria-ui/tooltip';
34
35
  import type { VirtualElement } from '@floating-ui/dom';
@@ -320,7 +321,8 @@ export { defaultBlockPopoverProps as defaultBlockPopoverProps_alias_1 }
320
321
 
321
322
  declare const defaultInlinePopoverProps: Readonly<{
322
323
  editor: null;
323
- open: true;
324
+ defaultOpen: true;
325
+ open: false;
324
326
  onOpenChange: null;
325
327
  placement: "top";
326
328
  offset: 12;
@@ -434,16 +436,27 @@ declare interface InlinePopoverProps extends Omit<OverlayPositionerProps, 'place
434
436
  * @default null
435
437
  */
436
438
  editor: Editor | null;
439
+ /**
440
+ * Whether the popover is open by default when some inline content is
441
+ * selected.
442
+ *
443
+ * When `defaultOpen` is true, the popover will open or close based on the
444
+ * inline selection. When `defaultOpen` is false, the popover will never be
445
+ * opened unless the `open` prop is true.
446
+ *
447
+ * @default true
448
+ */
449
+ defaultOpen: boolean;
437
450
  /**
438
451
  * Whether the popover is open.
439
452
  *
440
453
  * Notice that the popover will be always hidden if the inline selection is empty.
441
454
  *
442
- * @default `true`
455
+ * @default false
443
456
  */
444
457
  open: boolean;
445
458
  /**
446
- * A callback that is called when the popover's open state changes.
459
+ * Event handler called when the open state changed caused by user interaction (i.e. select or unselect inline content).
447
460
  *
448
461
  * @default null
449
462
  */
@@ -486,6 +499,8 @@ export declare function isFinitePositiveNumber(value: unknown): value is number;
486
499
 
487
500
  export declare function isInCodeBlock(selection: Selection_2): boolean | undefined;
488
501
 
502
+ export declare function omit<T extends Record<string, unknown>, K extends keyof T>(object: T, keys: K[]): Omit<T, K>;
503
+
489
504
  /**
490
505
  * @internal
491
506
  */
@@ -656,17 +671,17 @@ declare const TooltipTriggerElement_base: {
656
671
  export { TooltipTriggerProps }
657
672
  export { TooltipTriggerProps as TooltipTriggerProps_alias_1 }
658
673
 
659
- export declare function useAutocompleteEmpty(element: ConnectableElement, _props?: Partial<AutocompleteEmptyProps>): SignalState<AutocompleteEmptyProps>;
674
+ export declare function useAutocompleteEmpty(element: ConnectableElement): void;
660
675
 
661
- export declare function useAutocompleteItem(element: ConnectableElement, props?: Partial<AutocompleteItemProps>): SignalState<AutocompleteItemProps>;
676
+ export declare function useAutocompleteItem(element: ConnectableElement, state: SignalState<AutocompleteItemProps>): void;
662
677
 
663
- export declare function useAutocompleteList(element: ConnectableElement, props?: Partial<AutocompleteListProps>): SignalState<AutocompleteListProps>;
678
+ export declare function useAutocompleteList(element: ConnectableElement, state: SignalState<AutocompleteListProps>): void;
664
679
 
665
- export declare function useAutocompletePopover(host: ConnectableElement, props?: Partial<AutocompletePopoverProps>): SignalState<Readonly<AutocompletePopoverProps>>;
680
+ export declare function useAutocompletePopover(host: ConnectableElement, state: SignalState<AutocompletePopoverProps>): void;
666
681
 
667
- export declare function useBlockDragHandle(host: ConnectableElement, props?: Partial<BlockDragHandleProps>): SignalState<BlockDragHandleProps>;
682
+ export declare function useBlockDragHandle(host: ConnectableElement, state: SignalState<BlockDragHandleProps>): void;
668
683
 
669
- export declare function useBlockPopover(host: ConnectableElement, props?: Partial<BlockPopoverProps>): SignalState<BlockPopoverProps>;
684
+ export declare function useBlockPopover(host: ConnectableElement, state: SignalState<BlockPopoverProps>): void;
670
685
 
671
686
  export declare function useEditorExtension(host: ConnectableElement, editor: ReadonlySignal<Editor | null>, extension: Extension): void;
672
687
 
@@ -682,7 +697,7 @@ export declare function useEditorUpdateEvent(host: ConnectableElement, editor: R
682
697
 
683
698
  export declare function useFirstRendering(host: ConnectableElement): ReadonlySignal<boolean>;
684
699
 
685
- export declare function useInlinePopover(host: ConnectableElement, props?: Partial<InlinePopoverProps>): SignalState<Readonly<InlinePopoverProps>>;
700
+ export declare function useInlinePopover(host: ConnectableElement, state: SignalState<InlinePopoverProps>): void;
686
701
 
687
702
  export { usePopoverContent }
688
703
 
@@ -690,11 +705,11 @@ export { usePopoverRoot }
690
705
 
691
706
  export { usePopoverTrigger }
692
707
 
693
- export declare function useResizableHandle(host: ConnectableElement, props?: Partial<ResizableHandleProps>): SignalState<Readonly<ResizableHandleProps>>;
708
+ export declare function useResizableHandle(host: ConnectableElement, state: SignalState<ResizableHandleProps>): void;
694
709
 
695
- export declare function useResizableRoot(host: ConnectableElement, props?: Partial<ResizableRootProps>): SignalState<Readonly<ResizableRootProps>>;
710
+ export declare function useResizableRoot(host: ConnectableElement, state: SignalState<ResizableRootProps>): void;
696
711
 
697
- export declare function useTooltipContent(element: ConnectableElement, props?: Partial<TooltipContentProps>): SignalState<TooltipContentProps>;
712
+ export { useTooltipContent }
698
713
 
699
714
  export { useTooltipRoot }
700
715
 
@@ -5,7 +5,7 @@ import {
5
5
  function useEditorExtension(host, editor, extension) {
6
6
  useEffect(host, () => {
7
7
  var _a;
8
- return (_a = editor.value) == null ? void 0 : _a.use(extension);
8
+ return (_a = editor.get()) == null ? void 0 : _a.use(extension);
9
9
  });
10
10
  }
11
11
 
@@ -1,9 +1,6 @@
1
1
  // src/utils/define-custom-element.ts
2
2
  function defineCustomElement(name, constructor, options) {
3
- if (typeof customElements === "undefined") {
4
- return;
5
- }
6
- customElements.define(name, constructor, options);
3
+ typeof customElements != "undefined" && customElements.define(name, constructor, options);
7
4
  }
8
5
 
9
6
  export {
@@ -1,30 +1,29 @@
1
1
  import {
2
2
  useEditorExtension
3
- } from "./chunk-VJEVDINM.js";
3
+ } from "./chunk-MZSYOTZT.js";
4
4
  import {
5
5
  defineCustomElement
6
- } from "./chunk-LCDA7GFP.js";
6
+ } from "./chunk-Y2CJYXR5.js";
7
7
 
8
8
  // src/components/autocomplete/autocomplete-empty/element.gen.ts
9
- import { ElementMixin } from "@aria-ui/core";
9
+ import { ElementBuilder } from "@aria-ui/core";
10
10
 
11
11
  // src/components/autocomplete/autocomplete-empty/props.ts
12
12
  var defaultAutocompleteEmptyProps = {};
13
13
 
14
14
  // src/components/autocomplete/autocomplete-empty/state.ts
15
15
  import { useListboxEmpty } from "@aria-ui/listbox";
16
- function useAutocompleteEmpty(element, _props) {
16
+ function useAutocompleteEmpty(element) {
17
17
  useListboxEmpty(element);
18
- return {};
19
18
  }
20
19
 
21
20
  // src/components/autocomplete/autocomplete-empty/element.gen.ts
22
- var AutocompleteEmptyElement = class extends ElementMixin(useAutocompleteEmpty, defaultAutocompleteEmptyProps) {
21
+ var AutocompleteEmptyElement = class extends ElementBuilder(useAutocompleteEmpty, defaultAutocompleteEmptyProps) {
23
22
  };
24
23
  defineCustomElement("prosekit-autocomplete-empty", AutocompleteEmptyElement);
25
24
 
26
25
  // src/components/autocomplete/autocomplete-item/element.gen.ts
27
- import { ElementMixin as ElementMixin2 } from "@aria-ui/core";
26
+ import { ElementBuilder as ElementBuilder2 } from "@aria-ui/core";
28
27
 
29
28
  // src/components/autocomplete/autocomplete-item/props.ts
30
29
  var defaultAutocompleteItemProps = {
@@ -43,157 +42,125 @@ import { createContext } from "@aria-ui/core";
43
42
  var queryContext = createContext(
44
43
  "prosekit/autocomplete-popover/query",
45
44
  ""
46
- );
47
- var onSubmitContext = createContext(
45
+ ), onSubmitContext = createContext(
48
46
  "prosekit/autocomplete-popover/onSubmit",
49
47
  null
50
- );
51
- var openContext = createContext(
48
+ ), openContext = createContext(
52
49
  "prosekit/autocomplete-popover/open",
53
- false
50
+ !1
54
51
  );
55
52
 
56
53
  // src/components/autocomplete/autocomplete-item/state.ts
57
- function useAutocompleteItem(element, props) {
58
- const { onSelect, value } = useListboxItem(element, props);
59
- const open = openContext.consume(element);
54
+ function useAutocompleteItem(element, state) {
55
+ useListboxItem(element, state);
56
+ let open = openContext.consume(element);
60
57
  useEffect(element, () => {
61
58
  var _a;
62
- if (!value.peek() && open.value) {
63
- value.value = (_a = element.textContent) != null ? _a : "";
64
- }
59
+ !state.value.peek() && open.get() && state.value.set((_a = element.textContent) != null ? _a : "");
65
60
  });
66
- return { onSelect, value };
67
61
  }
68
62
 
69
63
  // src/components/autocomplete/autocomplete-item/element.gen.ts
70
- var AutocompleteItemElement = class extends ElementMixin2(useAutocompleteItem, defaultAutocompleteItemProps) {
64
+ var AutocompleteItemElement = class extends ElementBuilder2(useAutocompleteItem, defaultAutocompleteItemProps) {
71
65
  };
72
66
  defineCustomElement("prosekit-autocomplete-item", AutocompleteItemElement);
73
67
 
74
68
  // src/components/autocomplete/autocomplete-list/element.gen.ts
75
- import { ElementMixin as ElementMixin3 } from "@aria-ui/core";
69
+ import { ElementBuilder as ElementBuilder3 } from "@aria-ui/core";
76
70
 
77
71
  // src/components/autocomplete/autocomplete-list/props.ts
78
72
  import { defaultListboxProps } from "@aria-ui/listbox";
79
- var defaultFilter = defaultListboxProps.filter;
80
- var defaultAutocompleteListProps = {
73
+ var defaultFilter = defaultListboxProps.filter, defaultAutocompleteListProps = {
81
74
  filter: defaultFilter,
82
75
  editor: null
83
76
  };
84
77
 
85
78
  // src/components/autocomplete/autocomplete-list/state.ts
86
79
  import {
87
- assignProps,
88
80
  createSignal,
81
+ mapSignals,
89
82
  useEffect as useEffect2
90
83
  } from "@aria-ui/core";
91
- import { useListbox } from "@aria-ui/listbox";
84
+ import {
85
+ defaultListboxProps as defaultListboxProps2,
86
+ useListbox
87
+ } from "@aria-ui/listbox";
92
88
  import {
93
89
  Priority,
94
90
  defineDOMEventHandler,
95
91
  withPriority
96
92
  } from "@prosekit/core";
97
- function useAutocompleteList(element, props) {
98
- const fullProps = assignProps(defaultAutocompleteListProps, props);
99
- const editor = createSignal(fullProps.editor);
100
- const open = openContext.consume(element);
101
- const query = queryContext.consume(element);
102
- const onSubmit = onSubmitContext.consume(element);
103
- const onKeydownHandlerAdd = useKeyboardHandler(element, open, editor);
104
- const onValueChange = (value) => {
93
+
94
+ // src/utils/omit.ts
95
+ function omit(object, keys) {
96
+ return Object.fromEntries(
97
+ Object.entries(object).filter(([key]) => !keys.includes(key))
98
+ );
99
+ }
100
+
101
+ // src/components/autocomplete/autocomplete-list/state.ts
102
+ function useAutocompleteList(element, state) {
103
+ let open = openContext.consume(element), query = queryContext.consume(element), onSubmit = onSubmitContext.consume(element), onKeydownHandlerAdd = useKeyboardHandler(element, open, state.editor), onValueChange = (value) => {
105
104
  var _a;
106
- if (value) {
107
- (_a = onSubmit.peek()) == null ? void 0 : _a();
108
- }
105
+ value && ((_a = onSubmit.peek()) == null || _a());
106
+ }, listboxState = {
107
+ ...mapSignals({
108
+ ...omit(defaultListboxProps2, ["filter"]),
109
+ onKeydownHandlerAdd,
110
+ onValueChange
111
+ }),
112
+ filter: state.filter
109
113
  };
110
- const {
111
- query: listboxQuery,
112
- value: listboxValue,
113
- filter,
114
- autoFocus
115
- } = useListbox(element, {
116
- onKeydownHandlerAdd,
117
- onValueChange,
118
- filter: fullProps.filter
119
- });
120
- useEffect2(element, () => {
121
- listboxQuery.value = query.value;
122
- });
123
- useEffect2(element, () => {
124
- if (!open.value) {
125
- listboxValue.value = "";
126
- query.value = "";
127
- }
128
- });
129
- useEffect2(element, () => {
130
- if (!open.value) {
131
- autoFocus.value = false;
132
- } else {
133
- let canceled = false;
134
- requestAnimationFrame(() => {
135
- if (canceled)
136
- return;
137
- autoFocus.value = true;
138
- });
139
- return () => {
140
- canceled = true;
114
+ useListbox(element, listboxState), useEffect2(element, () => {
115
+ listboxState.query.set(query.get());
116
+ }), useEffect2(element, () => {
117
+ open.get() || (listboxState.value.set(""), query.set(""));
118
+ }), useEffect2(element, () => {
119
+ if (!open.get())
120
+ listboxState.autoFocus.set(!1);
121
+ else {
122
+ let canceled = !1;
123
+ return requestAnimationFrame(() => {
124
+ canceled || listboxState.autoFocus.set(!0);
125
+ }), () => {
126
+ canceled = !0;
141
127
  };
142
128
  }
143
- });
144
- useEffect2(element, () => {
129
+ }), useEffect2(element, () => {
145
130
  element.tabIndex = -1;
146
131
  });
147
- return { editor, filter };
148
132
  }
149
133
  function useKeyboardHandler(element, open, editor) {
150
- const keydownHandler = createSignal(
134
+ let keydownHandler = createSignal(
151
135
  null
152
- );
153
- let disposeKeydownHandler = null;
154
- useEffect2(element, () => {
155
- const editorValue = editor.value;
156
- const keydownHandlerValue = keydownHandler.value;
157
- if (!editorValue || !keydownHandlerValue) {
136
+ ), disposeKeydownHandler = null;
137
+ return useEffect2(element, () => {
138
+ let editorValue = editor.get(), keydownHandlerValue = keydownHandler.get();
139
+ if (!editorValue || !keydownHandlerValue)
158
140
  return;
159
- }
160
- const extension = defineDOMEventHandler(
141
+ let extension = defineDOMEventHandler(
161
142
  "keydown",
162
- (view, event) => {
163
- if (view.composing || event.defaultPrevented || !open.value) {
164
- return false;
165
- }
166
- keydownHandlerValue(event);
167
- return event.defaultPrevented;
168
- }
143
+ (view, event) => view.composing || event.defaultPrevented || !open.get() ? !1 : (keydownHandlerValue(event), event.defaultPrevented)
169
144
  );
170
- disposeKeydownHandler == null ? void 0 : disposeKeydownHandler();
171
- disposeKeydownHandler = editorValue.use(
145
+ disposeKeydownHandler == null || disposeKeydownHandler(), disposeKeydownHandler = editorValue.use(
172
146
  withPriority(extension, Priority.highest)
173
147
  );
148
+ }), (keydownHandlerValue) => (keydownHandler.set(keydownHandlerValue), () => {
149
+ disposeKeydownHandler == null || disposeKeydownHandler(), disposeKeydownHandler = null;
174
150
  });
175
- return (keydownHandlerValue) => {
176
- keydownHandler.value = keydownHandlerValue;
177
- return () => {
178
- disposeKeydownHandler == null ? void 0 : disposeKeydownHandler();
179
- disposeKeydownHandler = null;
180
- };
181
- };
182
151
  }
183
152
 
184
153
  // src/components/autocomplete/autocomplete-list/element.gen.ts
185
- var AutocompleteListElement = class extends ElementMixin3(useAutocompleteList, defaultAutocompleteListProps) {
154
+ var AutocompleteListElement = class extends ElementBuilder3(useAutocompleteList, defaultAutocompleteListProps) {
186
155
  };
187
156
  defineCustomElement("prosekit-autocomplete-list", AutocompleteListElement);
188
157
 
189
158
  // src/components/autocomplete/autocomplete-popover/element.gen.ts
190
- import { ElementMixin as ElementMixin4 } from "@aria-ui/core";
159
+ import { ElementBuilder as ElementBuilder4 } from "@aria-ui/core";
191
160
 
192
161
  // src/components/autocomplete/autocomplete-popover/props.ts
193
162
  import { defaultOverlayPositionerProps } from "@aria-ui/overlay";
194
- var body = typeof document !== "undefined" && document.querySelector("body");
195
- var defaultBoundary = body || "clippingAncestors";
196
- var defaultAutocompletePopoverProps = Object.freeze({
163
+ var body = typeof document != "undefined" && document.querySelector("body"), defaultBoundary = body || "clippingAncestors", defaultAutocompletePopoverProps = Object.freeze({
197
164
  ...defaultOverlayPositionerProps,
198
165
  editor: null,
199
166
  regex: null,
@@ -201,19 +168,17 @@ var defaultAutocompletePopoverProps = Object.freeze({
201
168
  onOpenChange: null,
202
169
  placement: "bottom-start",
203
170
  offset: 4,
204
- inline: true,
205
- hoist: true,
206
- fitViewport: true,
171
+ inline: !0,
172
+ hoist: !0,
173
+ fitViewport: !0,
207
174
  boundary: defaultBoundary,
208
175
  overflowPadding: 8
209
176
  });
210
177
 
211
178
  // src/components/autocomplete/autocomplete-popover/state.ts
212
179
  import {
213
- assignProps as assignProps2,
214
180
  createComputed,
215
181
  createSignal as createSignal3,
216
- mapSignals,
217
182
  useAnimationFrame,
218
183
  useEffect as useEffect4
219
184
  } from "@aria-ui/core";
@@ -235,13 +200,12 @@ import {
235
200
  useEffect as useEffect3
236
201
  } from "@aria-ui/core";
237
202
  function useFirstRendering(host) {
238
- const firstRendering = createSignal2(true);
239
- useEffect3(host, () => {
203
+ let firstRendering = createSignal2(!0);
204
+ return useEffect3(host, () => {
240
205
  requestAnimationFrame(() => {
241
- firstRendering.value = false;
206
+ firstRendering.set(!1);
242
207
  });
243
- });
244
- return firstRendering;
208
+ }), firstRendering;
245
209
  }
246
210
 
247
211
  // src/components/autocomplete/autocomplete-popover/helpers.ts
@@ -250,23 +214,9 @@ function defaultQueryBuilder(match) {
250
214
  }
251
215
 
252
216
  // src/components/autocomplete/autocomplete-popover/state.ts
253
- function useAutocompletePopover(host, props) {
254
- const state = mapSignals(assignProps2(defaultAutocompletePopoverProps, props));
255
- useAutocompletePopoverState(host, state);
256
- return state;
257
- }
258
- function useAutocompletePopoverState(host, state) {
259
- const { editor, regex, ...overlayState } = state;
260
- const reference = createSignal3(null);
261
- const query = createSignal3("");
262
- const onDismiss = createSignal3(null);
263
- const onSubmit = createSignal3(null);
264
- const presence = createComputed(() => !!reference.value);
265
- queryContext.provide(host, query);
266
- onSubmitContext.provide(host, onSubmit);
267
- openContext.provide(host, presence);
268
- useEscapeKeydown(host, editor, createKeymapHandler(onDismiss, presence));
269
- useAutocompleteExtension(
217
+ function useAutocompletePopover(host, state) {
218
+ let { editor, regex, ...overlayState } = state, reference = createSignal3(null), query = createSignal3(""), onDismiss = createSignal3(null), onSubmit = createSignal3(null), presence = createComputed(() => !!reference.get());
219
+ queryContext.provide(host, query), onSubmitContext.provide(host, onSubmit), openContext.provide(host, presence), useEscapeKeydown(host, editor, createKeymapHandler(onDismiss, presence)), useAutocompleteExtension(
270
220
  host,
271
221
  editor,
272
222
  regex,
@@ -274,89 +224,62 @@ function useAutocompletePopoverState(host, state) {
274
224
  query,
275
225
  onDismiss,
276
226
  onSubmit
277
- );
278
- useOverlayPositionerState(host, overlayState, { reference });
279
- usePresence(host, presence);
280
- const firstRendering = useFirstRendering(host);
227
+ ), useOverlayPositionerState(host, overlayState, { reference }), usePresence(host, presence);
228
+ let firstRendering = useFirstRendering(host);
281
229
  useEffect4(host, () => {
282
230
  var _a;
283
- const queryValue = query.value;
284
- if (!firstRendering.peek()) {
285
- (_a = state.onQueryChange.peek()) == null ? void 0 : _a(queryValue);
286
- }
287
- });
288
- useAnimationFrame(host, () => {
289
- const presenceValue = presence.value;
290
- const onOpenChangeValue = state.onOpenChange.peek();
291
- if (!onOpenChangeValue) {
292
- return;
293
- }
294
- return () => {
295
- onOpenChangeValue(presenceValue);
296
- };
231
+ let queryValue = query.get();
232
+ firstRendering.peek() || (_a = state.onQueryChange.peek()) == null || _a(queryValue);
233
+ }), useAnimationFrame(host, () => {
234
+ let presenceValue = presence.get(), onOpenChangeValue = state.onOpenChange.peek();
235
+ if (onOpenChangeValue)
236
+ return () => {
237
+ onOpenChangeValue(presenceValue);
238
+ };
297
239
  });
298
240
  }
299
241
  function useAutocompleteExtension(host, editor, regex, reference, query, onDismiss, onSubmit) {
300
242
  useEffect4(host, () => {
301
- const editorValue = editor.value;
302
- const regexValue = regex.value;
303
- if (!editorValue || !regexValue) {
304
- return;
305
- }
306
- return addAutocompleteExtension(
307
- editorValue,
308
- regexValue,
309
- reference,
310
- query,
311
- onDismiss,
312
- onSubmit
313
- );
243
+ let editorValue = editor.get(), regexValue = regex.get();
244
+ if (!(!editorValue || !regexValue))
245
+ return addAutocompleteExtension(
246
+ editorValue,
247
+ regexValue,
248
+ reference,
249
+ query,
250
+ onDismiss,
251
+ onSubmit
252
+ );
314
253
  });
315
254
  }
316
255
  function addAutocompleteExtension(editor, regex, reference, query, onDismiss, onSubmit) {
317
- const handleEnter = (options) => {
318
- const span = editor.view.dom.querySelector(".prosemirror-prediction-match");
319
- if (span) {
320
- reference.value = span;
321
- }
322
- query.value = defaultQueryBuilder(options.match);
323
- onDismiss.value = options.ignoreMatch;
324
- onSubmit.value = options.deleteMatch;
325
- };
326
- const handleLeave = () => {
327
- reference.value = null;
328
- query.value = "";
329
- onDismiss.value = null;
330
- onSubmit.value = null;
331
- };
332
- const rule = new AutocompleteRule({
256
+ let handleEnter = (options) => {
257
+ let span = editor.view.dom.querySelector(".prosemirror-prediction-match");
258
+ span && reference.set(span), query.set(defaultQueryBuilder(options.match)), onDismiss.set(options.ignoreMatch), onSubmit.set(options.deleteMatch);
259
+ }, handleLeave = () => {
260
+ reference.set(null), query.set(""), onDismiss.set(null), onSubmit.set(null);
261
+ }, rule = new AutocompleteRule({
333
262
  regex,
334
263
  onEnter: handleEnter,
335
264
  onLeave: handleLeave
336
- });
337
- const extension = defineAutocomplete(rule);
265
+ }), extension = defineAutocomplete(rule);
338
266
  return editor.use(extension);
339
267
  }
340
268
  function createKeymapHandler(handler, enabled) {
341
269
  return () => {
342
- if (!enabled.value) {
343
- return false;
344
- }
345
- const fn = handler.peek();
346
- if (!fn)
347
- return false;
348
- fn();
349
- return true;
270
+ if (!enabled.get())
271
+ return !1;
272
+ let fn = handler.peek();
273
+ return fn ? (fn(), !0) : !1;
350
274
  };
351
275
  }
352
276
  function useEscapeKeydown(host, editor, handler) {
353
- const keymap = { Escape: handler };
354
- const extension = withPriority2(defineKeymap(keymap), Priority2.highest);
277
+ let extension = withPriority2(defineKeymap({ Escape: handler }), Priority2.highest);
355
278
  return useEditorExtension(host, editor, extension);
356
279
  }
357
280
 
358
281
  // src/components/autocomplete/autocomplete-popover/element.gen.ts
359
- var AutocompletePopoverElement = class extends ElementMixin4(useAutocompletePopover, defaultAutocompletePopoverProps) {
282
+ var AutocompletePopoverElement = class extends ElementBuilder4(useAutocompletePopover, defaultAutocompletePopoverProps) {
360
283
  };
361
284
  defineCustomElement("prosekit-autocomplete-popover", AutocompletePopoverElement);
362
285
  export {