@prosekit/preact 0.7.0-beta.0 → 0.7.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/prosekit-preact-autocomplete.d.ts +226 -18
  2. package/dist/prosekit-preact-autocomplete.d.ts.map +1 -1
  3. package/dist/prosekit-preact-autocomplete.js +218 -9
  4. package/dist/prosekit-preact-autocomplete.js.map +1 -1
  5. package/dist/prosekit-preact-block-handle.d.ts +210 -14
  6. package/dist/prosekit-preact-block-handle.d.ts.map +1 -1
  7. package/dist/prosekit-preact-block-handle.js +184 -7
  8. package/dist/prosekit-preact-block-handle.js.map +1 -1
  9. package/dist/prosekit-preact-drop-indicator.d.ts +27 -6
  10. package/dist/prosekit-preact-drop-indicator.d.ts.map +1 -1
  11. package/dist/prosekit-preact-drop-indicator.js +38 -3
  12. package/dist/prosekit-preact-drop-indicator.js.map +1 -1
  13. package/dist/prosekit-preact-inline-popover.d.ts +204 -8
  14. package/dist/prosekit-preact-inline-popover.d.ts.map +1 -1
  15. package/dist/prosekit-preact-inline-popover.js +130 -5
  16. package/dist/prosekit-preact-inline-popover.js.map +1 -1
  17. package/dist/prosekit-preact-menu.d.ts +288 -0
  18. package/dist/prosekit-preact-menu.d.ts.map +1 -0
  19. package/dist/prosekit-preact-menu.js +274 -0
  20. package/dist/prosekit-preact-menu.js.map +1 -0
  21. package/dist/prosekit-preact-popover.d.ts +227 -14
  22. package/dist/prosekit-preact-popover.d.ts.map +1 -1
  23. package/dist/prosekit-preact-popover.js +170 -7
  24. package/dist/prosekit-preact-popover.js.map +1 -1
  25. package/dist/prosekit-preact-resizable.d.ts +56 -12
  26. package/dist/prosekit-preact-resizable.d.ts.map +1 -1
  27. package/dist/prosekit-preact-resizable.js +80 -7
  28. package/dist/prosekit-preact-resizable.js.map +1 -1
  29. package/dist/prosekit-preact-table-handle.d.ts +447 -38
  30. package/dist/prosekit-preact-table-handle.d.ts.map +1 -1
  31. package/dist/prosekit-preact-table-handle.js +381 -19
  32. package/dist/prosekit-preact-table-handle.js.map +1 -1
  33. package/dist/prosekit-preact-tooltip.d.ts +211 -14
  34. package/dist/prosekit-preact-tooltip.d.ts.map +1 -1
  35. package/dist/prosekit-preact-tooltip.js +157 -7
  36. package/dist/prosekit-preact-tooltip.js.map +1 -1
  37. package/package.json +27 -16
  38. package/src/components/autocomplete/autocomplete-empty.gen.ts +41 -31
  39. package/src/components/autocomplete/autocomplete-item.gen.ts +84 -31
  40. package/src/components/autocomplete/autocomplete-popup.gen.ts +80 -0
  41. package/src/components/autocomplete/autocomplete-positioner.gen.ts +153 -0
  42. package/src/components/autocomplete/autocomplete-root.gen.ts +109 -0
  43. package/src/components/autocomplete/index.gen.ts +12 -4
  44. package/src/components/autocomplete/index.ts +27 -0
  45. package/src/components/block-handle/block-handle-add.gen.ts +59 -31
  46. package/src/components/block-handle/block-handle-draggable.gen.ts +59 -31
  47. package/src/components/block-handle/block-handle-popup.gen.ts +44 -0
  48. package/src/components/block-handle/block-handle-positioner.gen.ts +171 -0
  49. package/src/components/block-handle/block-handle-root.gen.ts +84 -0
  50. package/src/components/block-handle/index.gen.ts +13 -3
  51. package/src/components/block-handle/index.ts +27 -0
  52. package/src/components/drop-indicator/drop-indicator.gen.ts +65 -31
  53. package/src/components/drop-indicator/index.gen.ts +5 -1
  54. package/src/components/drop-indicator/index.ts +14 -0
  55. package/src/components/inline-popover/index.gen.ts +11 -1
  56. package/src/components/inline-popover/index.ts +22 -0
  57. package/src/components/inline-popover/inline-popover-popup.gen.ts +44 -0
  58. package/src/components/inline-popover/inline-popover-positioner.gen.ts +177 -0
  59. package/src/components/inline-popover/inline-popover-root.gen.ts +108 -0
  60. package/src/components/menu/index.gen.ts +19 -0
  61. package/src/components/menu/index.ts +37 -0
  62. package/src/components/menu/menu-item.gen.ts +91 -0
  63. package/src/components/menu/menu-popup.gen.ts +58 -0
  64. package/src/components/menu/menu-positioner.gen.ts +178 -0
  65. package/src/components/menu/menu-root.gen.ts +88 -0
  66. package/src/components/menu/menu-submenu-root.gen.ts +44 -0
  67. package/src/components/menu/menu-submenu-trigger.gen.ts +44 -0
  68. package/src/components/menu/menu-trigger.gen.ts +79 -0
  69. package/src/components/popover/index.gen.ts +11 -3
  70. package/src/components/popover/index.ts +24 -0
  71. package/src/components/popover/popover-popup.gen.ts +44 -0
  72. package/src/components/popover/popover-positioner.gen.ts +178 -0
  73. package/src/components/popover/popover-root.gen.ts +92 -31
  74. package/src/components/popover/popover-trigger.gen.ts +92 -31
  75. package/src/components/resizable/index.gen.ts +8 -2
  76. package/src/components/resizable/index.ts +20 -0
  77. package/src/components/resizable/resizable-handle.gen.ts +54 -31
  78. package/src/components/resizable/resizable-root.gen.ts +90 -31
  79. package/src/components/table-handle/index.gen.ts +17 -9
  80. package/src/components/table-handle/index.ts +58 -0
  81. package/src/components/table-handle/table-handle-column-menu-root.gen.ts +66 -0
  82. package/src/components/table-handle/table-handle-column-menu-trigger.gen.ts +60 -0
  83. package/src/components/table-handle/table-handle-column-popup.gen.ts +44 -0
  84. package/src/components/table-handle/table-handle-column-positioner.gen.ts +201 -0
  85. package/src/components/table-handle/table-handle-drag-preview.gen.ts +57 -31
  86. package/src/components/table-handle/table-handle-drop-indicator.gen.ts +57 -31
  87. package/src/components/table-handle/table-handle-root.gen.ts +59 -31
  88. package/src/components/table-handle/table-handle-row-menu-root.gen.ts +66 -0
  89. package/src/components/table-handle/table-handle-row-menu-trigger.gen.ts +60 -0
  90. package/src/components/table-handle/table-handle-row-popup.gen.ts +44 -0
  91. package/src/components/table-handle/table-handle-row-positioner.gen.ts +201 -0
  92. package/src/components/tooltip/index.gen.ts +11 -3
  93. package/src/components/tooltip/index.ts +24 -0
  94. package/src/components/tooltip/tooltip-popup.gen.ts +44 -0
  95. package/src/components/tooltip/tooltip-positioner.gen.ts +178 -0
  96. package/src/components/tooltip/tooltip-root.gen.ts +85 -31
  97. package/src/components/tooltip/tooltip-trigger.gen.ts +63 -31
  98. package/src/extensions/preact-node-view.spec.ts +151 -0
  99. package/dist/create-component.js +0 -95
  100. package/dist/create-component.js.map +0 -1
  101. package/dist/create-props.d.ts +0 -6
  102. package/dist/create-props.d.ts.map +0 -1
  103. package/src/components/autocomplete/autocomplete-list.gen.ts +0 -34
  104. package/src/components/autocomplete/autocomplete-popover.gen.ts +0 -34
  105. package/src/components/block-handle/block-handle-popover.gen.ts +0 -34
  106. package/src/components/create-component.ts +0 -123
  107. package/src/components/create-props.ts +0 -13
  108. package/src/components/inline-popover/inline-popover.gen.ts +0 -34
  109. package/src/components/merge-refs.ts +0 -35
  110. package/src/components/popover/popover-content.gen.ts +0 -34
  111. package/src/components/table-handle/table-handle-column-root.gen.ts +0 -34
  112. package/src/components/table-handle/table-handle-column-trigger.gen.ts +0 -34
  113. package/src/components/table-handle/table-handle-popover-content.gen.ts +0 -34
  114. package/src/components/table-handle/table-handle-popover-item.gen.ts +0 -34
  115. package/src/components/table-handle/table-handle-row-root.gen.ts +0 -34
  116. package/src/components/table-handle/table-handle-row-trigger.gen.ts +0 -34
  117. package/src/components/tooltip/tooltip-content.gen.ts +0 -34
@@ -0,0 +1,288 @@
1
+ import { HTMLAttributes } from "preact";
2
+ import { ForwardRefExoticComponent, RefAttributes } from "preact/compat";
3
+ import { MenuItemElement, MenuItemEvents, MenuItemProps as MenuItemProps$1, MenuPopupElement, MenuPopupProps as MenuPopupProps$1, MenuPositionerElement, MenuPositionerProps as MenuPositionerProps$1, MenuRootElement, MenuRootEvents, MenuRootProps as MenuRootProps$1, MenuSubmenuRootElement, MenuSubmenuTriggerElement, MenuTriggerElement, MenuTriggerEvents, MenuTriggerProps as MenuTriggerProps$1, OpenChangeEvent, SelectEvent } from "@prosekit/web/menu";
4
+
5
+ //#region src/components/menu/menu-item.gen.d.ts
6
+ /**
7
+ * Props for the {@link MenuItem} Preact component.
8
+ *
9
+ * @public
10
+ */
11
+ interface MenuItemProps extends Omit<HTMLAttributes<MenuItemElement>, 'onSelect'> {
12
+ /**
13
+ * The unique value for this menu item.
14
+ *
15
+ * @default ""
16
+ */
17
+ value?: MenuItemProps$1['value'];
18
+ /**
19
+ * Whether this menu item is disabled.
20
+ *
21
+ * @default false
22
+ */
23
+ disabled?: MenuItemProps$1['disabled'];
24
+ /**
25
+ * Whether to close the menu when the item is pressed.
26
+ *
27
+ * @default true
28
+ */
29
+ closeOnSelect?: MenuItemProps$1['closeOnSelect'];
30
+ /** Emitted when the the item is selected. */
31
+ onSelect?: (event: MenuItemEvents['select']) => void;
32
+ }
33
+ /**
34
+ * A Preact component that renders an `prosekit-menu-item` custom element.
35
+ *
36
+ * @public
37
+ */
38
+ declare const MenuItem: ForwardRefExoticComponent<MenuItemProps & RefAttributes<MenuItemElement>>;
39
+ //#endregion
40
+ //#region src/components/menu/menu-popup.gen.d.ts
41
+ /**
42
+ * Props for the {@link MenuPopup} Preact component.
43
+ *
44
+ * @public
45
+ */
46
+ interface MenuPopupProps extends HTMLAttributes<MenuPopupElement> {
47
+ /**
48
+ * By default, the MenuPopup element will listen for keydown events.
49
+ * You can pass a different element to listen for keydown events.
50
+ *
51
+ * @default null
52
+ */
53
+ eventTarget?: MenuPopupProps$1['eventTarget'];
54
+ }
55
+ /**
56
+ * A Preact component that renders an `prosekit-menu-popup` custom element.
57
+ *
58
+ * @public
59
+ */
60
+ declare const MenuPopup: ForwardRefExoticComponent<MenuPopupProps & RefAttributes<MenuPopupElement>>;
61
+ //#endregion
62
+ //#region src/components/menu/menu-positioner.gen.d.ts
63
+ /**
64
+ * Props for the {@link MenuPositioner} Preact component.
65
+ *
66
+ * @public
67
+ */
68
+ interface MenuPositionerProps extends HTMLAttributes<MenuPositionerElement> {
69
+ /**
70
+ * The initial placement of the floating element
71
+ *
72
+ * @default "bottom-start"
73
+ */
74
+ placement?: MenuPositionerProps$1['placement'];
75
+ /**
76
+ * The strategy to use for positioning
77
+ *
78
+ * @default "absolute"
79
+ */
80
+ strategy?: MenuPositionerProps$1['strategy'];
81
+ /**
82
+ * Options to activate auto-update listeners
83
+ *
84
+ * @see https://floating-ui.com/docs/autoUpdate
85
+ *
86
+ * @default true
87
+ */
88
+ autoUpdate?: MenuPositionerProps$1['autoUpdate'];
89
+ /**
90
+ * Whether to use the browser Popover API to place the floating element on
91
+ * top of other page content.
92
+ *
93
+ * @default true
94
+ */
95
+ hoist?: MenuPositionerProps$1['hoist'];
96
+ /**
97
+ * The distance between the reference and floating element.
98
+ *
99
+ * @default 6
100
+ */
101
+ offset?: MenuPositionerProps$1['offset'];
102
+ /**
103
+ * Whether to flip the `placement` in order to keep it in view when the
104
+ * preferred placement(s) will overflow the clipping boundary. You can also
105
+ * provide an array of placements to try sequentially if the preferred
106
+ * `placement` does not fit.
107
+ *
108
+ * @default true
109
+ */
110
+ flip?: MenuPositionerProps$1['flip'];
111
+ /**
112
+ * Whether the floating element should shift to keep it in view.
113
+ *
114
+ * @default true
115
+ */
116
+ shift?: MenuPositionerProps$1['shift'];
117
+ /**
118
+ * Whether the floating element can overlap the reference element to keep it
119
+ * in view.
120
+ *
121
+ * @default false
122
+ */
123
+ overlap?: MenuPositionerProps$1['overlap'];
124
+ /**
125
+ * Whether to constrain the floating element's width and height to not exceed
126
+ * the viewport.
127
+ *
128
+ * @default false
129
+ */
130
+ fitViewport?: MenuPositionerProps$1['fitViewport'];
131
+ /**
132
+ * Whether to constrain the floating element's width so that it matches the
133
+ * reference element.
134
+ *
135
+ * @default false
136
+ */
137
+ sameWidth?: MenuPositionerProps$1['sameWidth'];
138
+ /**
139
+ * Whether to constrain the floating element's height so that it matches the
140
+ * reference element.
141
+ *
142
+ * @default false
143
+ */
144
+ sameHeight?: MenuPositionerProps$1['sameHeight'];
145
+ /**
146
+ * Whether to improve positioning for inline reference elements that span over
147
+ * multiple lines.
148
+ *
149
+ * @default false
150
+ */
151
+ inline?: MenuPositionerProps$1['inline'];
152
+ /**
153
+ * Whether to hide the floating element when the reference element or the
154
+ * floating element is fully clipped.
155
+ *
156
+ * @default false
157
+ */
158
+ hide?: MenuPositionerProps$1['hide'];
159
+ /**
160
+ * Describes the clipping element(s) or area that overflow will be checked relative to.
161
+ * Please see https://floating-ui.com/docs/detectoverflow#boundary for more information.
162
+ *
163
+ * @default 'clippingAncestors'
164
+ */
165
+ boundary?: MenuPositionerProps$1['boundary'];
166
+ /**
167
+ * Describes the root boundary that the element will be checked for overflow relative to.
168
+ * Please see https://floating-ui.com/docs/detectoverflow#rootboundary for more information.
169
+ *
170
+ * @default 'viewport'
171
+ */
172
+ rootBoundary?: MenuPositionerProps$1['rootBoundary'];
173
+ /**
174
+ * Describes the virtual padding around the boundary to check for overflow.
175
+ * Please see https://floating-ui.com/docs/detectoverflow#padding for more information.
176
+ *
177
+ * @default 4
178
+ */
179
+ overflowPadding?: MenuPositionerProps$1['overflowPadding'];
180
+ /**
181
+ * The element that will be used to check for overflow. Please see
182
+ * https://floating-ui.com/docs/detectoverflow#elementcontext for more
183
+ * information.
184
+ *
185
+ * @default 'floating'
186
+ */
187
+ elementContext?: MenuPositionerProps$1['elementContext'];
188
+ /**
189
+ * Whether to check the alternate elementContext's boundary. Please see
190
+ * https://floating-ui.com/docs/detectoverflow#altboundary for more
191
+ * information.
192
+ *
193
+ * @default false
194
+ */
195
+ altBoundary?: MenuPositionerProps$1['altBoundary'];
196
+ }
197
+ /**
198
+ * A Preact component that renders an `prosekit-menu-positioner` custom element.
199
+ *
200
+ * @public
201
+ */
202
+ declare const MenuPositioner: ForwardRefExoticComponent<MenuPositionerProps & RefAttributes<MenuPositionerElement>>;
203
+ //#endregion
204
+ //#region src/components/menu/menu-root.gen.d.ts
205
+ /**
206
+ * Props for the {@link MenuRoot} Preact component.
207
+ *
208
+ * @public
209
+ */
210
+ interface MenuRootProps extends HTMLAttributes<MenuRootElement> {
211
+ /**
212
+ * Whether the overlay is initially open.
213
+ * @default false
214
+ */
215
+ defaultOpen?: MenuRootProps$1['defaultOpen'];
216
+ /**
217
+ * Whether the overlay is currently open.
218
+ * @default null
219
+ */
220
+ open?: MenuRootProps$1['open'];
221
+ /**
222
+ * Whether the component should ignore user interaction.
223
+ * @default false
224
+ */
225
+ disabled?: MenuRootProps$1['disabled'];
226
+ /** Emitted when the menu is opened or closed. */
227
+ onOpenChange?: (event: MenuRootEvents['openChange']) => void;
228
+ }
229
+ /**
230
+ * A Preact component that renders an `prosekit-menu-root` custom element.
231
+ *
232
+ * @public
233
+ */
234
+ declare const MenuRoot: ForwardRefExoticComponent<MenuRootProps & RefAttributes<MenuRootElement>>;
235
+ //#endregion
236
+ //#region src/components/menu/menu-submenu-root.gen.d.ts
237
+ /**
238
+ * Props for the {@link MenuSubmenuRoot} Preact component.
239
+ *
240
+ * @public
241
+ */
242
+ interface MenuSubmenuRootProps extends HTMLAttributes<MenuSubmenuRootElement> {}
243
+ /**
244
+ * A Preact component that renders an `prosekit-menu-submenu-root` custom element.
245
+ *
246
+ * @public
247
+ */
248
+ declare const MenuSubmenuRoot: ForwardRefExoticComponent<MenuSubmenuRootProps & RefAttributes<MenuSubmenuRootElement>>;
249
+ //#endregion
250
+ //#region src/components/menu/menu-submenu-trigger.gen.d.ts
251
+ /**
252
+ * Props for the {@link MenuSubmenuTrigger} Preact component.
253
+ *
254
+ * @public
255
+ */
256
+ interface MenuSubmenuTriggerProps extends HTMLAttributes<MenuSubmenuTriggerElement> {}
257
+ /**
258
+ * A Preact component that renders an `prosekit-menu-submenu-trigger` custom element.
259
+ *
260
+ * @public
261
+ */
262
+ declare const MenuSubmenuTrigger: ForwardRefExoticComponent<MenuSubmenuTriggerProps & RefAttributes<MenuSubmenuTriggerElement>>;
263
+ //#endregion
264
+ //#region src/components/menu/menu-trigger.gen.d.ts
265
+ /**
266
+ * Props for the {@link MenuTrigger} Preact component.
267
+ *
268
+ * @public
269
+ */
270
+ interface MenuTriggerProps extends HTMLAttributes<MenuTriggerElement> {
271
+ /**
272
+ * Whether the component should ignore user interaction.
273
+ *
274
+ * @default false
275
+ */
276
+ disabled?: MenuTriggerProps$1['disabled'];
277
+ /** Emitted when the menu is opened or closed. */
278
+ onOpenChange?: (event: MenuTriggerEvents['openChange']) => void;
279
+ }
280
+ /**
281
+ * A Preact component that renders an `prosekit-menu-trigger` custom element.
282
+ *
283
+ * @public
284
+ */
285
+ declare const MenuTrigger: ForwardRefExoticComponent<MenuTriggerProps & RefAttributes<MenuTriggerElement>>;
286
+ //#endregion
287
+ export { MenuItem, type MenuItemEvents, type MenuItemProps, MenuPopup, type MenuPopupProps, MenuPositioner, type MenuPositionerProps, MenuRoot, type MenuRootEvents, type MenuRootProps, MenuSubmenuRoot, type MenuSubmenuRootProps, MenuSubmenuTrigger, type MenuSubmenuTriggerProps, MenuTrigger, type MenuTriggerEvents, type MenuTriggerProps, OpenChangeEvent, SelectEvent };
288
+ //# sourceMappingURL=prosekit-preact-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prosekit-preact-menu.d.ts","names":[],"sources":["../src/components/menu/menu-item.gen.ts","../src/components/menu/menu-popup.gen.ts","../src/components/menu/menu-positioner.gen.ts","../src/components/menu/menu-root.gen.ts","../src/components/menu/menu-submenu-root.gen.ts","../src/components/menu/menu-submenu-trigger.gen.ts","../src/components/menu/menu-trigger.gen.ts"],"mappings":";;;;;;;;;;UAciB,aAAA,SAAsB,IAAA,CAAK,cAAA,CAAe,eAAA;EAkBzC;;;;;EAZhB,KAAA,GAAQ,eAAA;EANkC;;;;;EAY1C,QAAA,GAAW,eAAA;EAMX;;;;;EAAA,aAAA,GAAgB,eAAA;EAE2B;EAA3C,QAAA,IAAY,KAAA,EAAO,cAAA;AAAA;;;;;;cAsDR,QAAA,EAAU,yBAAA,CAA0B,aAAA,GAAgB,aAAA,CAAc,eAAA;;;;;;;;UC1E9D,cAAA,SAAuB,cAAA,CAAe,gBAAA;EDkBrC;;;;;;ECXhB,WAAA,GAAc,gBAAA;AAAA;;;;;;cAoCH,SAAA,EAAW,yBAAA,CAA0B,cAAA,GAAiB,aAAA,CAAc,gBAAA;;;;;;;;UC3ChE,mBAAA,SAA4B,cAAA,CAAe,qBAAA;EFkB1C;;;;;EEZhB,SAAA,GAAY,qBAAA;EFN8B;;;;;EEY1C,QAAA,GAAW,qBAAA;EFMX;;;;;;;EEEA,UAAA,GAAa,qBAAA;EFsDiI;;;;;;EE/C9I,KAAA,GAAQ,qBAAA;EF+CsC;;;;;EEzC9C,MAAA,GAAS,qBAAA;EFyCmF;;;;AC1E9F;;;;EC0CE,IAAA,GAAO,qBAAA;ED1C+B;;;;;ECgDtC,KAAA,GAAQ,qBAAA;EDzCM;;;AAoChB;;;ECYE,OAAA,GAAU,qBAAA;EDZqE;;;;;;ECmB/E,WAAA,GAAc,qBAAA;EDnBmD;;;;;;EC0BjE,SAAA,GAAY,qBAAA;EArEG;;;;;;EA4Ef,UAAA,GAAa,qBAAA;EAjDL;;;;;;EAwDR,MAAA,GAAS,qBAAA;EAPI;;;;;;EAcb,IAAA,GAAO,qBAAA;EAqCO;;;;;;EA9Bd,QAAA,GAAW,qBAAA;EA3FC;;;;;;EAkGZ,YAAA,GAAe,qBAAA;EAvEf;;;;;;EA8EA,eAAA,GAAkB,qBAAA;EAxDR;;;;;;;EAgEV,cAAA,GAAiB,qBAAA;EApCR;;;;;;;EA4CT,WAAA,GAAc,qBAAA;AAAA;;;;;;cAoCH,cAAA,EAAgB,yBAAA,CAA0B,mBAAA,GAAsB,aAAA,CAAc,qBAAA;;;;;;;;UCnK1E,aAAA,SAAsB,cAAA,CAAe,eAAA;EHkBpC;;;;EGbhB,WAAA,GAAc,eAAA;EHLuB;;;;EGUrC,IAAA,GAAO,eAAA;EHEP;;;;EGGA,QAAA,GAAW,eAAA;EHKQ;EGHnB,YAAA,IAAgB,KAAA,EAAO,cAAA;AAAA;;AHyDzB;;;;cGHa,QAAA,EAAU,yBAAA,CAA0B,aAAA,GAAgB,aAAA,CAAc,eAAA;;;;;;;;UCvE9D,oBAAA,SAA6B,cAAA,CAAe,sBAAA;;;;;;cA6BhD,eAAA,EAAiB,yBAAA,CAA0B,oBAAA,GAAuB,aAAA,CAAc,sBAAA;;;;;;;;UC7B5E,uBAAA,SAAgC,cAAA,CAAe,yBAAA;;;;;;cA6BnD,kBAAA,EAAoB,yBAAA,CAA0B,uBAAA,GAA0B,aAAA,CAAc,yBAAA;;;;;;;;UC7BlF,gBAAA,SAAyB,cAAA,CAAe,kBAAA;ENkBvC;;;;;EMZhB,QAAA,GAAW,kBAAA;ENN+B;EMQ1C,YAAA,IAAgB,KAAA,EAAO,iBAAA;AAAA;;;;;;cAsDZ,WAAA,EAAa,yBAAA,CAA0B,gBAAA,GAAmB,aAAA,CAAc,kBAAA"}
@@ -0,0 +1,274 @@
1
+ import { createElement } from "preact";
2
+ import { useCallback, useLayoutEffect, useRef } from "preact/hooks";
3
+ import { forwardRef } from "preact/compat";
4
+ import { OpenChangeEvent, SelectEvent, registerMenuItemElement, registerMenuPopupElement, registerMenuPositionerElement, registerMenuRootElement, registerMenuSubmenuRootElement, registerMenuSubmenuTriggerElement, registerMenuTriggerElement } from "@prosekit/web/menu";
5
+ //#region src/components/menu/menu-item.gen.ts
6
+ /**
7
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
8
+ */
9
+ function MenuItemComponent(props, forwardedRef) {
10
+ registerMenuItemElement();
11
+ const elementRef = useRef(null);
12
+ const handlersRef = useRef([]);
13
+ const { closeOnSelect: p0, disabled: p1, value: p2, onSelect: e0, ...restProps } = props;
14
+ useLayoutEffect(() => {
15
+ const element = elementRef.current;
16
+ if (!element) return;
17
+ Object.assign(element, {
18
+ closeOnSelect: p0,
19
+ disabled: p1,
20
+ value: p2
21
+ });
22
+ handlersRef.current = [e0];
23
+ });
24
+ useLayoutEffect(() => {
25
+ const element = elementRef.current;
26
+ if (!element) return;
27
+ const ac = new AbortController();
28
+ for (const [index, eventName] of ["select"].entries()) element.addEventListener(eventName, (event) => {
29
+ handlersRef.current[index]?.(event);
30
+ }, { signal: ac.signal });
31
+ return () => ac.abort();
32
+ }, []);
33
+ const mergedRef = useCallback((element) => {
34
+ elementRef.current = element;
35
+ if (typeof forwardedRef === "function") forwardedRef(element);
36
+ else if (forwardedRef) forwardedRef.current = element;
37
+ }, [forwardedRef]);
38
+ return createElement("prosekit-menu-item", {
39
+ ...restProps,
40
+ ref: mergedRef,
41
+ suppressHydrationWarning: true
42
+ });
43
+ }
44
+ /**
45
+ * A Preact component that renders an `prosekit-menu-item` custom element.
46
+ *
47
+ * @public
48
+ */
49
+ const MenuItem = /* @__PURE__ */ forwardRef(MenuItemComponent);
50
+ //#endregion
51
+ //#region src/components/menu/menu-popup.gen.ts
52
+ /**
53
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
54
+ */
55
+ function MenuPopupComponent(props, forwardedRef) {
56
+ registerMenuPopupElement();
57
+ const elementRef = useRef(null);
58
+ const { eventTarget: p0, ...restProps } = props;
59
+ useLayoutEffect(() => {
60
+ const element = elementRef.current;
61
+ if (!element) return;
62
+ Object.assign(element, { eventTarget: p0 });
63
+ });
64
+ const mergedRef = useCallback((element) => {
65
+ elementRef.current = element;
66
+ if (typeof forwardedRef === "function") forwardedRef(element);
67
+ else if (forwardedRef) forwardedRef.current = element;
68
+ }, [forwardedRef]);
69
+ return createElement("prosekit-menu-popup", {
70
+ ...restProps,
71
+ ref: mergedRef,
72
+ suppressHydrationWarning: true
73
+ });
74
+ }
75
+ /**
76
+ * A Preact component that renders an `prosekit-menu-popup` custom element.
77
+ *
78
+ * @public
79
+ */
80
+ const MenuPopup = /* @__PURE__ */ forwardRef(MenuPopupComponent);
81
+ //#endregion
82
+ //#region src/components/menu/menu-positioner.gen.ts
83
+ /**
84
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
85
+ */
86
+ function MenuPositionerComponent(props, forwardedRef) {
87
+ registerMenuPositionerElement();
88
+ const elementRef = useRef(null);
89
+ const { altBoundary: p0, autoUpdate: p1, boundary: p2, elementContext: p3, fitViewport: p4, flip: p5, hide: p6, hoist: p7, inline: p8, offset: p9, overflowPadding: p10, overlap: p11, placement: p12, rootBoundary: p13, sameHeight: p14, sameWidth: p15, shift: p16, strategy: p17, ...restProps } = props;
90
+ useLayoutEffect(() => {
91
+ const element = elementRef.current;
92
+ if (!element) return;
93
+ Object.assign(element, {
94
+ altBoundary: p0,
95
+ autoUpdate: p1,
96
+ boundary: p2,
97
+ elementContext: p3,
98
+ fitViewport: p4,
99
+ flip: p5,
100
+ hide: p6,
101
+ hoist: p7,
102
+ inline: p8,
103
+ offset: p9,
104
+ overflowPadding: p10,
105
+ overlap: p11,
106
+ placement: p12,
107
+ rootBoundary: p13,
108
+ sameHeight: p14,
109
+ sameWidth: p15,
110
+ shift: p16,
111
+ strategy: p17
112
+ });
113
+ });
114
+ const mergedRef = useCallback((element) => {
115
+ elementRef.current = element;
116
+ if (typeof forwardedRef === "function") forwardedRef(element);
117
+ else if (forwardedRef) forwardedRef.current = element;
118
+ }, [forwardedRef]);
119
+ return createElement("prosekit-menu-positioner", {
120
+ ...restProps,
121
+ ref: mergedRef,
122
+ suppressHydrationWarning: true
123
+ });
124
+ }
125
+ /**
126
+ * A Preact component that renders an `prosekit-menu-positioner` custom element.
127
+ *
128
+ * @public
129
+ */
130
+ const MenuPositioner = /* @__PURE__ */ forwardRef(MenuPositionerComponent);
131
+ //#endregion
132
+ //#region src/components/menu/menu-root.gen.ts
133
+ /**
134
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
135
+ */
136
+ function MenuRootComponent(props, forwardedRef) {
137
+ registerMenuRootElement();
138
+ const elementRef = useRef(null);
139
+ const handlersRef = useRef([]);
140
+ const { defaultOpen: p0, disabled: p1, open: p2, onOpenChange: e0, ...restProps } = props;
141
+ useLayoutEffect(() => {
142
+ const element = elementRef.current;
143
+ if (!element) return;
144
+ Object.assign(element, {
145
+ defaultOpen: p0,
146
+ disabled: p1,
147
+ open: p2
148
+ });
149
+ handlersRef.current = [e0];
150
+ });
151
+ useLayoutEffect(() => {
152
+ const element = elementRef.current;
153
+ if (!element) return;
154
+ const ac = new AbortController();
155
+ for (const [index, eventName] of ["openChange"].entries()) element.addEventListener(eventName, (event) => {
156
+ handlersRef.current[index]?.(event);
157
+ }, { signal: ac.signal });
158
+ return () => ac.abort();
159
+ }, []);
160
+ const mergedRef = useCallback((element) => {
161
+ elementRef.current = element;
162
+ if (typeof forwardedRef === "function") forwardedRef(element);
163
+ else if (forwardedRef) forwardedRef.current = element;
164
+ }, [forwardedRef]);
165
+ return createElement("prosekit-menu-root", {
166
+ ...restProps,
167
+ ref: mergedRef,
168
+ suppressHydrationWarning: true
169
+ });
170
+ }
171
+ /**
172
+ * A Preact component that renders an `prosekit-menu-root` custom element.
173
+ *
174
+ * @public
175
+ */
176
+ const MenuRoot = /* @__PURE__ */ forwardRef(MenuRootComponent);
177
+ //#endregion
178
+ //#region src/components/menu/menu-submenu-root.gen.ts
179
+ /**
180
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
181
+ */
182
+ function MenuSubmenuRootComponent(props, forwardedRef) {
183
+ registerMenuSubmenuRootElement();
184
+ const elementRef = useRef(null);
185
+ const { ...restProps } = props;
186
+ const mergedRef = useCallback((element) => {
187
+ elementRef.current = element;
188
+ if (typeof forwardedRef === "function") forwardedRef(element);
189
+ else if (forwardedRef) forwardedRef.current = element;
190
+ }, [forwardedRef]);
191
+ return createElement("prosekit-menu-submenu-root", {
192
+ ...restProps,
193
+ ref: mergedRef,
194
+ suppressHydrationWarning: true
195
+ });
196
+ }
197
+ /**
198
+ * A Preact component that renders an `prosekit-menu-submenu-root` custom element.
199
+ *
200
+ * @public
201
+ */
202
+ const MenuSubmenuRoot = /* @__PURE__ */ forwardRef(MenuSubmenuRootComponent);
203
+ //#endregion
204
+ //#region src/components/menu/menu-submenu-trigger.gen.ts
205
+ /**
206
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
207
+ */
208
+ function MenuSubmenuTriggerComponent(props, forwardedRef) {
209
+ registerMenuSubmenuTriggerElement();
210
+ const elementRef = useRef(null);
211
+ const { ...restProps } = props;
212
+ const mergedRef = useCallback((element) => {
213
+ elementRef.current = element;
214
+ if (typeof forwardedRef === "function") forwardedRef(element);
215
+ else if (forwardedRef) forwardedRef.current = element;
216
+ }, [forwardedRef]);
217
+ return createElement("prosekit-menu-submenu-trigger", {
218
+ ...restProps,
219
+ ref: mergedRef,
220
+ suppressHydrationWarning: true
221
+ });
222
+ }
223
+ /**
224
+ * A Preact component that renders an `prosekit-menu-submenu-trigger` custom element.
225
+ *
226
+ * @public
227
+ */
228
+ const MenuSubmenuTrigger = /* @__PURE__ */ forwardRef(MenuSubmenuTriggerComponent);
229
+ //#endregion
230
+ //#region src/components/menu/menu-trigger.gen.ts
231
+ /**
232
+ * This file is auto-generated by the "@aria-ui/cli" tool. Do not edit this file directly.
233
+ */
234
+ function MenuTriggerComponent(props, forwardedRef) {
235
+ registerMenuTriggerElement();
236
+ const elementRef = useRef(null);
237
+ const handlersRef = useRef([]);
238
+ const { disabled: p0, onOpenChange: e0, ...restProps } = props;
239
+ useLayoutEffect(() => {
240
+ const element = elementRef.current;
241
+ if (!element) return;
242
+ Object.assign(element, { disabled: p0 });
243
+ handlersRef.current = [e0];
244
+ });
245
+ useLayoutEffect(() => {
246
+ const element = elementRef.current;
247
+ if (!element) return;
248
+ const ac = new AbortController();
249
+ for (const [index, eventName] of ["openChange"].entries()) element.addEventListener(eventName, (event) => {
250
+ handlersRef.current[index]?.(event);
251
+ }, { signal: ac.signal });
252
+ return () => ac.abort();
253
+ }, []);
254
+ const mergedRef = useCallback((element) => {
255
+ elementRef.current = element;
256
+ if (typeof forwardedRef === "function") forwardedRef(element);
257
+ else if (forwardedRef) forwardedRef.current = element;
258
+ }, [forwardedRef]);
259
+ return createElement("prosekit-menu-trigger", {
260
+ ...restProps,
261
+ ref: mergedRef,
262
+ suppressHydrationWarning: true
263
+ });
264
+ }
265
+ /**
266
+ * A Preact component that renders an `prosekit-menu-trigger` custom element.
267
+ *
268
+ * @public
269
+ */
270
+ const MenuTrigger = /* @__PURE__ */ forwardRef(MenuTriggerComponent);
271
+ //#endregion
272
+ export { MenuItem, MenuPopup, MenuPositioner, MenuRoot, MenuSubmenuRoot, MenuSubmenuTrigger, MenuTrigger, OpenChangeEvent, SelectEvent };
273
+
274
+ //# sourceMappingURL=prosekit-preact-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prosekit-preact-menu.js","names":[],"sources":["../src/components/menu/menu-item.gen.ts","../src/components/menu/menu-popup.gen.ts","../src/components/menu/menu-positioner.gen.ts","../src/components/menu/menu-root.gen.ts","../src/components/menu/menu-submenu-root.gen.ts","../src/components/menu/menu-submenu-trigger.gen.ts","../src/components/menu/menu-trigger.gen.ts"],"sourcesContent":["/**\n * This file is auto-generated by the \"@aria-ui/cli\" tool. Do not edit this file directly.\n */\n\nimport { registerMenuItemElement, type MenuItemElement, type MenuItemProps as MenuItemElementProps, type MenuItemEvents } from '@prosekit/web/menu';\nimport { createElement, type HTMLAttributes, type Ref } from 'preact';\nimport { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';\nimport { useCallback, useRef, useLayoutEffect } from 'preact/hooks';\n\n/**\n * Props for the {@link MenuItem} Preact component.\n *\n * @public\n */\nexport interface MenuItemProps extends Omit<HTMLAttributes<MenuItemElement>, 'onSelect'> {\n /**\n * The unique value for this menu item.\n *\n * @default \"\"\n */\n value?: MenuItemElementProps['value'];\n /**\n * Whether this menu item is disabled.\n *\n * @default false\n */\n disabled?: MenuItemElementProps['disabled'];\n /**\n * Whether to close the menu when the item is pressed.\n *\n * @default true\n */\n closeOnSelect?: MenuItemElementProps['closeOnSelect'];\n /** Emitted when the the item is selected. */\n onSelect?: (event: MenuItemEvents['select']) => void;\n}\n\nfunction MenuItemComponent(props: MenuItemProps, forwardedRef: Ref<MenuItemElement>) {\n registerMenuItemElement();\n\n const elementRef = useRef<MenuItemElement>(null);\n const handlersRef = useRef<Array<((event: Event) => void) | undefined>>([]);\n\n const { closeOnSelect: p0, disabled: p1, value: p2, onSelect: e0, ...restProps } = props;\n\n useLayoutEffect(() => {\n const element = elementRef.current as Record<string, unknown> | null;\n if (!element) return;\n Object.assign(element, { closeOnSelect: p0, disabled: p1, value: p2 });\n handlersRef.current = [e0] as Array<((event: Event) => void) | undefined>;\n });\n\n useLayoutEffect(() => {\n const element = elementRef.current;\n if (!element) return;\n const ac = new AbortController();\n for (const [index, eventName] of ['select'].entries()) {\n element.addEventListener(\n eventName,\n (event: Event) => {\n handlersRef.current[index]?.(event);\n },\n { signal: ac.signal },\n );\n }\n return () => ac.abort();\n }, []);\n\n const mergedRef = useCallback(\n (element: MenuItemElement | null) => {\n elementRef.current = element;\n if (typeof forwardedRef === 'function') {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n [forwardedRef],\n );\n\n return createElement('prosekit-menu-item', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });\n}\n\n/**\n * A Preact component that renders an `prosekit-menu-item` custom element.\n *\n * @public\n */\nexport const MenuItem: ForwardRefExoticComponent<MenuItemProps & RefAttributes<MenuItemElement>> = /* @__PURE__ */ forwardRef(MenuItemComponent);\n\nexport type { MenuItemEvents };\n","/**\n * This file is auto-generated by the \"@aria-ui/cli\" tool. Do not edit this file directly.\n */\n\nimport { registerMenuPopupElement, type MenuPopupElement, type MenuPopupProps as MenuPopupElementProps } from '@prosekit/web/menu';\nimport { createElement, type HTMLAttributes, type Ref } from 'preact';\nimport { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';\nimport { useCallback, useRef, useLayoutEffect } from 'preact/hooks';\n\n/**\n * Props for the {@link MenuPopup} Preact component.\n *\n * @public\n */\nexport interface MenuPopupProps extends HTMLAttributes<MenuPopupElement> {\n /**\n * By default, the MenuPopup element will listen for keydown events.\n * You can pass a different element to listen for keydown events.\n *\n * @default null\n */\n eventTarget?: MenuPopupElementProps['eventTarget'];\n}\n\nfunction MenuPopupComponent(props: MenuPopupProps, forwardedRef: Ref<MenuPopupElement>) {\n registerMenuPopupElement();\n\n const elementRef = useRef<MenuPopupElement>(null);\n\n const { eventTarget: p0, ...restProps } = props;\n\n useLayoutEffect(() => {\n const element = elementRef.current as Record<string, unknown> | null;\n if (!element) return;\n Object.assign(element, { eventTarget: p0 });\n });\n\n const mergedRef = useCallback(\n (element: MenuPopupElement | null) => {\n elementRef.current = element;\n if (typeof forwardedRef === 'function') {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n [forwardedRef],\n );\n\n return createElement('prosekit-menu-popup', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });\n}\n\n/**\n * A Preact component that renders an `prosekit-menu-popup` custom element.\n *\n * @public\n */\nexport const MenuPopup: ForwardRefExoticComponent<MenuPopupProps & RefAttributes<MenuPopupElement>> = /* @__PURE__ */ forwardRef(MenuPopupComponent);\n","/**\n * This file is auto-generated by the \"@aria-ui/cli\" tool. Do not edit this file directly.\n */\n\nimport { registerMenuPositionerElement, type MenuPositionerElement, type MenuPositionerProps as MenuPositionerElementProps } from '@prosekit/web/menu';\nimport { createElement, type HTMLAttributes, type Ref } from 'preact';\nimport { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';\nimport { useCallback, useRef, useLayoutEffect } from 'preact/hooks';\n\n/**\n * Props for the {@link MenuPositioner} Preact component.\n *\n * @public\n */\nexport interface MenuPositionerProps extends HTMLAttributes<MenuPositionerElement> {\n /**\n * The initial placement of the floating element\n *\n * @default \"bottom-start\"\n */\n placement?: MenuPositionerElementProps['placement'];\n /**\n * The strategy to use for positioning\n *\n * @default \"absolute\"\n */\n strategy?: MenuPositionerElementProps['strategy'];\n /**\n * Options to activate auto-update listeners\n *\n * @see https://floating-ui.com/docs/autoUpdate\n *\n * @default true\n */\n autoUpdate?: MenuPositionerElementProps['autoUpdate'];\n /**\n * Whether to use the browser Popover API to place the floating element on\n * top of other page content.\n *\n * @default true\n */\n hoist?: MenuPositionerElementProps['hoist'];\n /**\n * The distance between the reference and floating element.\n *\n * @default 6\n */\n offset?: MenuPositionerElementProps['offset'];\n /**\n * Whether to flip the `placement` in order to keep it in view when the\n * preferred placement(s) will overflow the clipping boundary. You can also\n * provide an array of placements to try sequentially if the preferred\n * `placement` does not fit.\n *\n * @default true\n */\n flip?: MenuPositionerElementProps['flip'];\n /**\n * Whether the floating element should shift to keep it in view.\n *\n * @default true\n */\n shift?: MenuPositionerElementProps['shift'];\n /**\n * Whether the floating element can overlap the reference element to keep it\n * in view.\n *\n * @default false\n */\n overlap?: MenuPositionerElementProps['overlap'];\n /**\n * Whether to constrain the floating element's width and height to not exceed\n * the viewport.\n *\n * @default false\n */\n fitViewport?: MenuPositionerElementProps['fitViewport'];\n /**\n * Whether to constrain the floating element's width so that it matches the\n * reference element.\n *\n * @default false\n */\n sameWidth?: MenuPositionerElementProps['sameWidth'];\n /**\n * Whether to constrain the floating element's height so that it matches the\n * reference element.\n *\n * @default false\n */\n sameHeight?: MenuPositionerElementProps['sameHeight'];\n /**\n * Whether to improve positioning for inline reference elements that span over\n * multiple lines.\n *\n * @default false\n */\n inline?: MenuPositionerElementProps['inline'];\n /**\n * Whether to hide the floating element when the reference element or the\n * floating element is fully clipped.\n *\n * @default false\n */\n hide?: MenuPositionerElementProps['hide'];\n /**\n * Describes the clipping element(s) or area that overflow will be checked relative to.\n * Please see https://floating-ui.com/docs/detectoverflow#boundary for more information.\n *\n * @default 'clippingAncestors'\n */\n boundary?: MenuPositionerElementProps['boundary'];\n /**\n * Describes the root boundary that the element will be checked for overflow relative to.\n * Please see https://floating-ui.com/docs/detectoverflow#rootboundary for more information.\n *\n * @default 'viewport'\n */\n rootBoundary?: MenuPositionerElementProps['rootBoundary'];\n /**\n * Describes the virtual padding around the boundary to check for overflow.\n * Please see https://floating-ui.com/docs/detectoverflow#padding for more information.\n *\n * @default 4\n */\n overflowPadding?: MenuPositionerElementProps['overflowPadding'];\n /**\n * The element that will be used to check for overflow. Please see\n * https://floating-ui.com/docs/detectoverflow#elementcontext for more\n * information.\n *\n * @default 'floating'\n */\n elementContext?: MenuPositionerElementProps['elementContext'];\n /**\n * Whether to check the alternate elementContext's boundary. Please see\n * https://floating-ui.com/docs/detectoverflow#altboundary for more\n * information.\n *\n * @default false\n */\n altBoundary?: MenuPositionerElementProps['altBoundary'];\n}\n\nfunction MenuPositionerComponent(props: MenuPositionerProps, forwardedRef: Ref<MenuPositionerElement>) {\n registerMenuPositionerElement();\n\n const elementRef = useRef<MenuPositionerElement>(null);\n\n const { altBoundary: p0, autoUpdate: p1, boundary: p2, elementContext: p3, fitViewport: p4, flip: p5, hide: p6, hoist: p7, inline: p8, offset: p9, overflowPadding: p10, overlap: p11, placement: p12, rootBoundary: p13, sameHeight: p14, sameWidth: p15, shift: p16, strategy: p17, ...restProps } = props;\n\n useLayoutEffect(() => {\n const element = elementRef.current as Record<string, unknown> | null;\n if (!element) return;\n Object.assign(element, { altBoundary: p0, autoUpdate: p1, boundary: p2, elementContext: p3, fitViewport: p4, flip: p5, hide: p6, hoist: p7, inline: p8, offset: p9, overflowPadding: p10, overlap: p11, placement: p12, rootBoundary: p13, sameHeight: p14, sameWidth: p15, shift: p16, strategy: p17 });\n });\n\n const mergedRef = useCallback(\n (element: MenuPositionerElement | null) => {\n elementRef.current = element;\n if (typeof forwardedRef === 'function') {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n [forwardedRef],\n );\n\n return createElement('prosekit-menu-positioner', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });\n}\n\n/**\n * A Preact component that renders an `prosekit-menu-positioner` custom element.\n *\n * @public\n */\nexport const MenuPositioner: ForwardRefExoticComponent<MenuPositionerProps & RefAttributes<MenuPositionerElement>> = /* @__PURE__ */ forwardRef(MenuPositionerComponent);\n","/**\n * This file is auto-generated by the \"@aria-ui/cli\" tool. Do not edit this file directly.\n */\n\nimport { registerMenuRootElement, type MenuRootElement, type MenuRootProps as MenuRootElementProps, type MenuRootEvents } from '@prosekit/web/menu';\nimport { createElement, type HTMLAttributes, type Ref } from 'preact';\nimport { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';\nimport { useCallback, useRef, useLayoutEffect } from 'preact/hooks';\n\n/**\n * Props for the {@link MenuRoot} Preact component.\n *\n * @public\n */\nexport interface MenuRootProps extends HTMLAttributes<MenuRootElement> {\n /**\n * Whether the overlay is initially open.\n * @default false\n */\n defaultOpen?: MenuRootElementProps['defaultOpen'];\n /**\n * Whether the overlay is currently open.\n * @default null\n */\n open?: MenuRootElementProps['open'];\n /**\n * Whether the component should ignore user interaction.\n * @default false\n */\n disabled?: MenuRootElementProps['disabled'];\n /** Emitted when the menu is opened or closed. */\n onOpenChange?: (event: MenuRootEvents['openChange']) => void;\n}\n\nfunction MenuRootComponent(props: MenuRootProps, forwardedRef: Ref<MenuRootElement>) {\n registerMenuRootElement();\n\n const elementRef = useRef<MenuRootElement>(null);\n const handlersRef = useRef<Array<((event: Event) => void) | undefined>>([]);\n\n const { defaultOpen: p0, disabled: p1, open: p2, onOpenChange: e0, ...restProps } = props;\n\n useLayoutEffect(() => {\n const element = elementRef.current as Record<string, unknown> | null;\n if (!element) return;\n Object.assign(element, { defaultOpen: p0, disabled: p1, open: p2 });\n handlersRef.current = [e0] as Array<((event: Event) => void) | undefined>;\n });\n\n useLayoutEffect(() => {\n const element = elementRef.current;\n if (!element) return;\n const ac = new AbortController();\n for (const [index, eventName] of ['openChange'].entries()) {\n element.addEventListener(\n eventName,\n (event: Event) => {\n handlersRef.current[index]?.(event);\n },\n { signal: ac.signal },\n );\n }\n return () => ac.abort();\n }, []);\n\n const mergedRef = useCallback(\n (element: MenuRootElement | null) => {\n elementRef.current = element;\n if (typeof forwardedRef === 'function') {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n [forwardedRef],\n );\n\n return createElement('prosekit-menu-root', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });\n}\n\n/**\n * A Preact component that renders an `prosekit-menu-root` custom element.\n *\n * @public\n */\nexport const MenuRoot: ForwardRefExoticComponent<MenuRootProps & RefAttributes<MenuRootElement>> = /* @__PURE__ */ forwardRef(MenuRootComponent);\n\nexport type { MenuRootEvents };\n","/**\n * This file is auto-generated by the \"@aria-ui/cli\" tool. Do not edit this file directly.\n */\n\nimport { registerMenuSubmenuRootElement, type MenuSubmenuRootElement } from '@prosekit/web/menu';\nimport { createElement, type HTMLAttributes, type Ref } from 'preact';\nimport { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';\nimport { useCallback, useRef } from 'preact/hooks';\n\n/**\n * Props for the {@link MenuSubmenuRoot} Preact component.\n *\n * @public\n */\nexport interface MenuSubmenuRootProps extends HTMLAttributes<MenuSubmenuRootElement> {}\n\nfunction MenuSubmenuRootComponent(props: MenuSubmenuRootProps, forwardedRef: Ref<MenuSubmenuRootElement>) {\n registerMenuSubmenuRootElement();\n\n const elementRef = useRef<MenuSubmenuRootElement>(null);\n\n const { ...restProps } = props;\n\n const mergedRef = useCallback(\n (element: MenuSubmenuRootElement | null) => {\n elementRef.current = element;\n if (typeof forwardedRef === 'function') {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n [forwardedRef],\n );\n\n return createElement('prosekit-menu-submenu-root', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });\n}\n\n/**\n * A Preact component that renders an `prosekit-menu-submenu-root` custom element.\n *\n * @public\n */\nexport const MenuSubmenuRoot: ForwardRefExoticComponent<MenuSubmenuRootProps & RefAttributes<MenuSubmenuRootElement>> = /* @__PURE__ */ forwardRef(MenuSubmenuRootComponent);\n","/**\n * This file is auto-generated by the \"@aria-ui/cli\" tool. Do not edit this file directly.\n */\n\nimport { registerMenuSubmenuTriggerElement, type MenuSubmenuTriggerElement } from '@prosekit/web/menu';\nimport { createElement, type HTMLAttributes, type Ref } from 'preact';\nimport { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';\nimport { useCallback, useRef } from 'preact/hooks';\n\n/**\n * Props for the {@link MenuSubmenuTrigger} Preact component.\n *\n * @public\n */\nexport interface MenuSubmenuTriggerProps extends HTMLAttributes<MenuSubmenuTriggerElement> {}\n\nfunction MenuSubmenuTriggerComponent(props: MenuSubmenuTriggerProps, forwardedRef: Ref<MenuSubmenuTriggerElement>) {\n registerMenuSubmenuTriggerElement();\n\n const elementRef = useRef<MenuSubmenuTriggerElement>(null);\n\n const { ...restProps } = props;\n\n const mergedRef = useCallback(\n (element: MenuSubmenuTriggerElement | null) => {\n elementRef.current = element;\n if (typeof forwardedRef === 'function') {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n [forwardedRef],\n );\n\n return createElement('prosekit-menu-submenu-trigger', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });\n}\n\n/**\n * A Preact component that renders an `prosekit-menu-submenu-trigger` custom element.\n *\n * @public\n */\nexport const MenuSubmenuTrigger: ForwardRefExoticComponent<MenuSubmenuTriggerProps & RefAttributes<MenuSubmenuTriggerElement>> = /* @__PURE__ */ forwardRef(MenuSubmenuTriggerComponent);\n","/**\n * This file is auto-generated by the \"@aria-ui/cli\" tool. Do not edit this file directly.\n */\n\nimport { registerMenuTriggerElement, type MenuTriggerElement, type MenuTriggerProps as MenuTriggerElementProps, type MenuTriggerEvents } from '@prosekit/web/menu';\nimport { createElement, type HTMLAttributes, type Ref } from 'preact';\nimport { forwardRef, type ForwardRefExoticComponent, type RefAttributes } from 'preact/compat';\nimport { useCallback, useRef, useLayoutEffect } from 'preact/hooks';\n\n/**\n * Props for the {@link MenuTrigger} Preact component.\n *\n * @public\n */\nexport interface MenuTriggerProps extends HTMLAttributes<MenuTriggerElement> {\n /**\n * Whether the component should ignore user interaction.\n *\n * @default false\n */\n disabled?: MenuTriggerElementProps['disabled'];\n /** Emitted when the menu is opened or closed. */\n onOpenChange?: (event: MenuTriggerEvents['openChange']) => void;\n}\n\nfunction MenuTriggerComponent(props: MenuTriggerProps, forwardedRef: Ref<MenuTriggerElement>) {\n registerMenuTriggerElement();\n\n const elementRef = useRef<MenuTriggerElement>(null);\n const handlersRef = useRef<Array<((event: Event) => void) | undefined>>([]);\n\n const { disabled: p0, onOpenChange: e0, ...restProps } = props;\n\n useLayoutEffect(() => {\n const element = elementRef.current as Record<string, unknown> | null;\n if (!element) return;\n Object.assign(element, { disabled: p0 });\n handlersRef.current = [e0] as Array<((event: Event) => void) | undefined>;\n });\n\n useLayoutEffect(() => {\n const element = elementRef.current;\n if (!element) return;\n const ac = new AbortController();\n for (const [index, eventName] of ['openChange'].entries()) {\n element.addEventListener(\n eventName,\n (event: Event) => {\n handlersRef.current[index]?.(event);\n },\n { signal: ac.signal },\n );\n }\n return () => ac.abort();\n }, []);\n\n const mergedRef = useCallback(\n (element: MenuTriggerElement | null) => {\n elementRef.current = element;\n if (typeof forwardedRef === 'function') {\n forwardedRef(element);\n } else if (forwardedRef) {\n forwardedRef.current = element;\n }\n },\n [forwardedRef],\n );\n\n return createElement('prosekit-menu-trigger', { ...restProps, ref: mergedRef, suppressHydrationWarning: true });\n}\n\n/**\n * A Preact component that renders an `prosekit-menu-trigger` custom element.\n *\n * @public\n */\nexport const MenuTrigger: ForwardRefExoticComponent<MenuTriggerProps & RefAttributes<MenuTriggerElement>> = /* @__PURE__ */ forwardRef(MenuTriggerComponent);\n\nexport type { MenuTriggerEvents };\n"],"mappings":"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"}