@wirekyt/solid 0.0.1 → 0.0.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 (207) hide show
  1. package/dist/accordion.d.ts +68 -0
  2. package/dist/accordion.js +168 -0
  3. package/dist/accordion.jsx +143 -0
  4. package/dist/angle-slider.d.ts +72 -0
  5. package/dist/angle-slider.js +141 -0
  6. package/dist/angle-slider.jsx +130 -0
  7. package/dist/avatar.d.ts +47 -0
  8. package/dist/avatar.js +86 -0
  9. package/dist/avatar.jsx +79 -0
  10. package/dist/carousel.d.ts +92 -0
  11. package/dist/carousel.js +189 -0
  12. package/dist/carousel.jsx +174 -0
  13. package/dist/checkbox.d.ts +140 -0
  14. package/dist/checkbox.js +252 -0
  15. package/dist/checkbox.jsx +234 -0
  16. package/dist/client-only.d.ts +9 -0
  17. package/dist/client-only.js +22 -0
  18. package/dist/client-only.jsx +13 -0
  19. package/dist/clipboard.d.ts +70 -0
  20. package/dist/clipboard.js +137 -0
  21. package/dist/clipboard.jsx +120 -0
  22. package/dist/collapsible-BwNoH1At.jsx +106 -0
  23. package/dist/collapsible-Dp8aqjtN.js +118 -0
  24. package/dist/collapsible.d.ts +58 -0
  25. package/dist/collapsible.js +2 -0
  26. package/dist/collapsible.jsx +2 -0
  27. package/dist/collection-By8qgqkx.js +213 -0
  28. package/dist/collection-Mkvw6TyT.jsx +213 -0
  29. package/dist/collection.d.ts +2 -0
  30. package/dist/collection.js +2 -0
  31. package/dist/collection.jsx +2 -0
  32. package/dist/color-picker.d.ts +179 -0
  33. package/dist/color-picker.js +457 -0
  34. package/dist/color-picker.jsx +395 -0
  35. package/dist/combobox.d.ts +128 -0
  36. package/dist/combobox.js +326 -0
  37. package/dist/combobox.jsx +284 -0
  38. package/dist/core-7QKBNp9p.js +485 -0
  39. package/dist/core-7QKBNp9p.jsx +485 -0
  40. package/dist/date-input.d.ts +68 -0
  41. package/dist/date-input.js +178 -0
  42. package/dist/date-input.jsx +163 -0
  43. package/dist/date-picker.d.ts +191 -0
  44. package/dist/date-picker.js +506 -0
  45. package/dist/date-picker.jsx +430 -0
  46. package/dist/dialog.d.ts +77 -0
  47. package/dist/dialog.js +205 -0
  48. package/dist/dialog.jsx +159 -0
  49. package/dist/download-trigger.d.ts +22 -0
  50. package/dist/download-trigger.js +55 -0
  51. package/dist/download-trigger.jsx +51 -0
  52. package/dist/drawer.d.ts +114 -0
  53. package/dist/drawer.js +291 -0
  54. package/dist/drawer.jsx +237 -0
  55. package/dist/editable.d.ts +77 -0
  56. package/dist/editable.js +171 -0
  57. package/dist/editable.jsx +162 -0
  58. package/dist/factory-D2A7xdtl.js +34 -0
  59. package/dist/factory-DRw_slzE.jsx +34 -0
  60. package/dist/factory-wuwfJqbU.d.ts +15 -0
  61. package/dist/field-CQr_Dibp.js +317 -0
  62. package/dist/field-R5jVNdtK.jsx +282 -0
  63. package/dist/field.d.ts +194 -0
  64. package/dist/field.js +2 -0
  65. package/dist/field.jsx +2 -0
  66. package/dist/fieldset-5shfE0Z5.jsx +155 -0
  67. package/dist/fieldset-D5teGLZ9.js +170 -0
  68. package/dist/fieldset.d.ts +98 -0
  69. package/dist/fieldset.js +2 -0
  70. package/dist/fieldset.jsx +2 -0
  71. package/dist/file-upload.d.ts +100 -0
  72. package/dist/file-upload.js +254 -0
  73. package/dist/file-upload.jsx +232 -0
  74. package/dist/floating-panel.d.ts +97 -0
  75. package/dist/floating-panel.js +231 -0
  76. package/dist/floating-panel.jsx +199 -0
  77. package/dist/focus-trap.d.ts +12 -0
  78. package/dist/focus-trap.js +30 -0
  79. package/dist/focus-trap.jsx +26 -0
  80. package/dist/format.d.ts +32 -0
  81. package/dist/format.js +50 -0
  82. package/dist/format.jsx +53 -0
  83. package/dist/frame.d.ts +12 -0
  84. package/dist/frame.js +119 -0
  85. package/dist/frame.jsx +83 -0
  86. package/dist/image-cropper.d.ts +62 -0
  87. package/dist/image-cropper.js +137 -0
  88. package/dist/image-cropper.jsx +130 -0
  89. package/dist/index-B17eqq14.d.ts +32 -0
  90. package/dist/index-BZHmHI7d.d.ts +142 -0
  91. package/dist/index-CANuc1X0.d.ts +81 -0
  92. package/dist/index-CJwZCGOS.d.ts +75 -0
  93. package/dist/index-ClU-Lb8Z.d.ts +23 -0
  94. package/dist/index-J9N2CBHP.d.ts +21 -0
  95. package/dist/index.d.ts +5 -0
  96. package/dist/index.js +5 -0
  97. package/dist/index.jsx +5 -0
  98. package/dist/json-tree-view.d.ts +50 -0
  99. package/dist/json-tree-view.js +330 -0
  100. package/dist/json-tree-view.jsx +201 -0
  101. package/dist/listbox.d.ts +109 -0
  102. package/dist/listbox.js +237 -0
  103. package/dist/listbox.jsx +212 -0
  104. package/dist/marquee.d.ts +57 -0
  105. package/dist/marquee.js +125 -0
  106. package/dist/marquee.jsx +113 -0
  107. package/dist/menu.d.ts +158 -0
  108. package/dist/menu.js +441 -0
  109. package/dist/menu.jsx +362 -0
  110. package/dist/navigation-menu.d.ts +88 -0
  111. package/dist/navigation-menu.js +289 -0
  112. package/dist/navigation-menu.jsx +228 -0
  113. package/dist/number-input.d.ts +72 -0
  114. package/dist/number-input.js +166 -0
  115. package/dist/number-input.jsx +157 -0
  116. package/dist/pagination.d.ts +67 -0
  117. package/dist/pagination.js +131 -0
  118. package/dist/pagination.jsx +124 -0
  119. package/dist/password-input.d.ts +64 -0
  120. package/dist/password-input.js +144 -0
  121. package/dist/password-input.jsx +125 -0
  122. package/dist/pin-input.d.ts +57 -0
  123. package/dist/pin-input.js +138 -0
  124. package/dist/pin-input.jsx +129 -0
  125. package/dist/popover.d.ts +92 -0
  126. package/dist/popover.js +206 -0
  127. package/dist/popover.jsx +174 -0
  128. package/dist/presence-9UGkuyfn.jsx +59 -0
  129. package/dist/presence-CE6lXCu5.js +72 -0
  130. package/dist/presence.d.ts +2 -0
  131. package/dist/presence.js +2 -0
  132. package/dist/presence.jsx +2 -0
  133. package/dist/progress.d.ts +77 -0
  134. package/dist/progress.js +146 -0
  135. package/dist/progress.jsx +137 -0
  136. package/dist/providers-B-Vi5wQ7.js +124 -0
  137. package/dist/providers-CqNHqLpB.jsx +110 -0
  138. package/dist/qr-code.d.ts +57 -0
  139. package/dist/qr-code.js +111 -0
  140. package/dist/qr-code.jsx +104 -0
  141. package/dist/radio-group.d.ts +77 -0
  142. package/dist/radio-group.js +170 -0
  143. package/dist/radio-group.jsx +157 -0
  144. package/dist/rating-group.d.ts +67 -0
  145. package/dist/rating-group.js +142 -0
  146. package/dist/rating-group.jsx +131 -0
  147. package/dist/rolldown-runtime-D7D4PA-g.js +13 -0
  148. package/dist/rolldown-runtime-D7D4PA-g.jsx +13 -0
  149. package/dist/run-if-fn-CjvD7VzQ.js +5 -0
  150. package/dist/run-if-fn-CjvD7VzQ.jsx +5 -0
  151. package/dist/scroll-area.d.ts +61 -0
  152. package/dist/scroll-area.js +119 -0
  153. package/dist/scroll-area.jsx +109 -0
  154. package/dist/segment-group.d.ts +80 -0
  155. package/dist/segment-group.js +166 -0
  156. package/dist/segment-group.jsx +153 -0
  157. package/dist/select.d.ts +132 -0
  158. package/dist/select.js +337 -0
  159. package/dist/select.jsx +283 -0
  160. package/dist/signature-pad.d.ts +67 -0
  161. package/dist/signature-pad.js +159 -0
  162. package/dist/signature-pad.jsx +141 -0
  163. package/dist/slider.d.ts +87 -0
  164. package/dist/slider.js +191 -0
  165. package/dist/slider.jsx +179 -0
  166. package/dist/splitter.d.ts +57 -0
  167. package/dist/splitter.js +126 -0
  168. package/dist/splitter.jsx +116 -0
  169. package/dist/steps.d.ts +100 -0
  170. package/dist/steps.js +199 -0
  171. package/dist/steps.jsx +184 -0
  172. package/dist/swap.d.ts +51 -0
  173. package/dist/swap.js +123 -0
  174. package/dist/swap.jsx +106 -0
  175. package/dist/switch.d.ts +57 -0
  176. package/dist/switch.js +125 -0
  177. package/dist/switch.jsx +116 -0
  178. package/dist/tabs.d.ts +58 -0
  179. package/dist/tabs.js +146 -0
  180. package/dist/tabs.jsx +122 -0
  181. package/dist/tags-input.d.ts +97 -0
  182. package/dist/tags-input.js +228 -0
  183. package/dist/tags-input.jsx +213 -0
  184. package/dist/timer.d.ts +62 -0
  185. package/dist/timer.js +119 -0
  186. package/dist/timer.jsx +110 -0
  187. package/dist/toast.d.ts +60 -0
  188. package/dist/toast.js +120 -0
  189. package/dist/toast.jsx +106 -0
  190. package/dist/toggle-group.d.ts +42 -0
  191. package/dist/toggle-group.js +87 -0
  192. package/dist/toggle-group.jsx +80 -0
  193. package/dist/toggle.d.ts +38 -0
  194. package/dist/toggle.js +73 -0
  195. package/dist/toggle.jsx +61 -0
  196. package/dist/tooltip.d.ts +67 -0
  197. package/dist/tooltip.js +159 -0
  198. package/dist/tooltip.jsx +127 -0
  199. package/dist/tour.d.ts +112 -0
  200. package/dist/tour.js +256 -0
  201. package/dist/tour.jsx +192 -0
  202. package/dist/tree-view-ATyeBPXq.js +290 -0
  203. package/dist/tree-view-CoWx7osT.jsx +265 -0
  204. package/dist/tree-view.d.ts +3 -0
  205. package/dist/tree-view.js +3 -0
  206. package/dist/tree-view.jsx +3 -0
  207. package/package.json +324 -6
package/dist/menu.js ADDED
@@ -0,0 +1,441 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
+ import { a as mergeProps$2, d as createContext$1, i as useMachine, l as createSplitProps, r as normalizeProps, u as composeRefs } from "./core-7QKBNp9p.js";
3
+ import { t as runIfFn } from "./run-if-fn-CjvD7VzQ.js";
4
+ import { t as wire } from "./factory-D2A7xdtl.js";
5
+ import { a as useLocaleContext, l as useEnvironmentContext } from "./providers-B-Vi5wQ7.js";
6
+ import { a as splitPresenceProps, i as usePresence, n as usePresenceContext, t as PresenceProvider } from "./presence-CE6lXCu5.js";
7
+ import { Show, createEffect, createMemo, createUniqueId, onCleanup, onMount } from "solid-js";
8
+ import { createComponent, mergeProps as mergeProps$1 } from "solid-js/web";
9
+ import * as menu from "@wirekyt/dom/machines/menu";
10
+ import { anatomy as menuAnatomy } from "@wirekyt/dom/machines/menu";
11
+ //#region src/components/menu/use-context.ts
12
+ const [MenuProvider, useMenuContext] = createContext$1({
13
+ hookName: "useMenuContext",
14
+ providerName: "<MenuProvider />",
15
+ strict: false
16
+ });
17
+ //#endregion
18
+ //#region src/components/menu/arrow.tsx
19
+ const MenuArrow = (props) => {
20
+ const context = useMenuContext();
21
+ const mergedProps = mergeProps$2(() => context().getArrowProps(), props);
22
+ return createComponent(wire.div, mergedProps);
23
+ };
24
+ //#endregion
25
+ //#region src/components/menu/arrow-tip.tsx
26
+ const MenuArrowTip = (props) => {
27
+ const context = useMenuContext();
28
+ const mergedProps = mergeProps$2(() => context().getArrowTipProps(), props);
29
+ return createComponent(wire.div, mergedProps);
30
+ };
31
+ //#endregion
32
+ //#region src/components/menu/use-item-context.ts
33
+ const [MenuItemProvider, useMenuItemContext] = createContext$1({
34
+ hookName: "useMenuItemContext",
35
+ providerName: "<MenuItemProvider />"
36
+ });
37
+ //#endregion
38
+ //#region src/components/menu/use-option-item-props-context.ts
39
+ const [MenuItemPropsProvider, useMenuItemPropsContext] = createContext$1({
40
+ hookName: "useMenuItemPropsContext",
41
+ providerName: "<MenuItemPropsProvider />"
42
+ });
43
+ //#endregion
44
+ //#region src/components/menu/checkbox-item.tsx
45
+ const MenuCheckboxItem = (props) => {
46
+ const [partialOptionItemProps, localProps] = createSplitProps()(props, [
47
+ "checked",
48
+ "closeOnSelect",
49
+ "disabled",
50
+ "onCheckedChange",
51
+ "value",
52
+ "valueText"
53
+ ]);
54
+ const optionItemProps = mergeProps$2(partialOptionItemProps, { type: "checkbox" });
55
+ const context = useMenuContext();
56
+ const mergedProps = mergeProps$2(() => context().getOptionItemProps(optionItemProps), localProps);
57
+ const optionItemState = createMemo(() => context().getOptionItemState(optionItemProps));
58
+ return createComponent(MenuItemPropsProvider, {
59
+ value: optionItemProps,
60
+ get children() {
61
+ return createComponent(MenuItemProvider, {
62
+ value: optionItemState,
63
+ get children() {
64
+ return createComponent(wire.div, mergedProps);
65
+ }
66
+ });
67
+ }
68
+ });
69
+ };
70
+ //#endregion
71
+ //#region src/components/menu/content.tsx
72
+ const MenuContent = (props) => {
73
+ const context = useMenuContext();
74
+ const presenceContext = usePresenceContext();
75
+ const mergedProps = mergeProps$2(() => context().getContentProps(), () => presenceContext().presenceProps, props);
76
+ return createComponent(Show, {
77
+ get when() {
78
+ return !presenceContext().unmounted;
79
+ },
80
+ get children() {
81
+ return createComponent(wire.div, mergeProps$1(mergedProps, { ref(r$) {
82
+ var _ref$ = composeRefs(presenceContext().ref, props.ref);
83
+ typeof _ref$ === "function" && _ref$(r$);
84
+ } }));
85
+ }
86
+ });
87
+ };
88
+ //#endregion
89
+ //#region src/components/menu/context.tsx
90
+ const MenuContext = (props) => props.children(useMenuContext());
91
+ //#endregion
92
+ //#region src/components/menu/context-trigger.tsx
93
+ const MenuContextTrigger = (props) => {
94
+ const context = useMenuContext();
95
+ const mergedProps = mergeProps$2(() => context().getContextTriggerProps(), props);
96
+ return createComponent(wire.button, mergedProps);
97
+ };
98
+ //#endregion
99
+ //#region src/components/menu/indicator.tsx
100
+ const MenuIndicator = (props) => {
101
+ const context = useMenuContext();
102
+ const mergedProps = mergeProps$2(() => context().getIndicatorProps(), props);
103
+ return createComponent(wire.div, mergedProps);
104
+ };
105
+ //#endregion
106
+ //#region src/components/menu/item.tsx
107
+ const MenuItem = (props) => {
108
+ const [itemProps, localProps] = createSplitProps()(props, [
109
+ "closeOnSelect",
110
+ "disabled",
111
+ "value",
112
+ "valueText",
113
+ "onSelect"
114
+ ]);
115
+ const context = useMenuContext();
116
+ const mergedProps = mergeProps$2(() => context().getItemProps(itemProps), localProps);
117
+ const itemState = createMemo(() => context().getItemState(itemProps));
118
+ createEffect(() => {
119
+ const cleanup = context().addItemListener({
120
+ id: itemState().id,
121
+ onSelect: itemProps.onSelect
122
+ });
123
+ onCleanup(() => cleanup?.());
124
+ });
125
+ return createComponent(MenuItemPropsProvider, {
126
+ value: itemProps,
127
+ get children() {
128
+ return createComponent(MenuItemProvider, {
129
+ value: itemState,
130
+ get children() {
131
+ return createComponent(wire.div, mergedProps);
132
+ }
133
+ });
134
+ }
135
+ });
136
+ };
137
+ //#endregion
138
+ //#region src/components/menu/item-context.tsx
139
+ const MenuItemContext = (props) => props.children(useMenuItemContext());
140
+ //#endregion
141
+ //#region src/components/menu/use-item-group-context.ts
142
+ const [MenuItemGroupProvider, useMenuItemGroupContext] = createContext$1({
143
+ hookName: "useMenuItemGroupContext",
144
+ providerName: "<MenuItemGroupProvider />"
145
+ });
146
+ //#endregion
147
+ //#region src/components/menu/item-group.tsx
148
+ const MenuItemGroup = (props) => {
149
+ const [optionalItemGroupProps, localProps] = createSplitProps()(props, ["id"]);
150
+ const itemGroupProps = mergeProps$2({ id: createUniqueId() }, optionalItemGroupProps);
151
+ const menu = useMenuContext();
152
+ const mergedProps = mergeProps$2(() => menu().getItemGroupProps(itemGroupProps), localProps);
153
+ return createComponent(MenuItemGroupProvider, {
154
+ value: itemGroupProps,
155
+ get children() {
156
+ return createComponent(wire.div, mergedProps);
157
+ }
158
+ });
159
+ };
160
+ //#endregion
161
+ //#region src/components/menu/item-group-label.tsx
162
+ const MenuItemGroupLabel = (props) => {
163
+ const context = useMenuContext();
164
+ const itemGroupContext = useMenuItemGroupContext();
165
+ const mergedProps = mergeProps$2(context().getItemGroupLabelProps({ htmlFor: itemGroupContext.id }), props);
166
+ return createComponent(wire.div, mergedProps);
167
+ };
168
+ //#endregion
169
+ //#region src/components/menu/item-indicator.tsx
170
+ const MenuItemIndicator = (props) => {
171
+ const context = useMenuContext();
172
+ const itemProps = useMenuItemPropsContext();
173
+ const mergedProps = mergeProps$2(() => context().getItemIndicatorProps(itemProps), props);
174
+ return createComponent(wire.div, mergedProps);
175
+ };
176
+ //#endregion
177
+ //#region src/components/menu/item-text.tsx
178
+ const MenuItemText = (props) => {
179
+ const context = useMenuContext();
180
+ const itemProps = useMenuItemPropsContext();
181
+ const mergedProps = mergeProps$2(() => context().getItemTextProps(itemProps), props);
182
+ return createComponent(wire.div, mergedProps);
183
+ };
184
+ //#endregion
185
+ //#region src/components/menu/positioner.tsx
186
+ const MenuPositioner = (props) => {
187
+ const context = useMenuContext();
188
+ const presence = usePresenceContext();
189
+ const mergedProps = mergeProps$2(() => context().getPositionerProps(), props);
190
+ return createComponent(Show, {
191
+ get when() {
192
+ return !presence().unmounted;
193
+ },
194
+ get children() {
195
+ return createComponent(wire.div, mergedProps);
196
+ }
197
+ });
198
+ };
199
+ //#endregion
200
+ //#region src/components/menu/radio-item.tsx
201
+ const MenuRadioItem = (props) => {
202
+ const [partialItemProps, localProps] = createSplitProps()(props, [
203
+ "closeOnSelect",
204
+ "disabled",
205
+ "value",
206
+ "valueText"
207
+ ]);
208
+ const context = useMenuContext();
209
+ const itemGroup = useMenuItemGroupContext();
210
+ const optionItemProps = mergeProps$2(partialItemProps, () => ({
211
+ type: "radio",
212
+ checked: itemGroup.value === partialItemProps.value,
213
+ onCheckedChange: () => itemGroup.onValueChange?.({ value: partialItemProps.value })
214
+ }));
215
+ const mergedProps = mergeProps$2(() => context().getOptionItemProps(optionItemProps), localProps);
216
+ const optionItemState = createMemo(() => context().getOptionItemState(optionItemProps));
217
+ return createComponent(MenuItemPropsProvider, {
218
+ value: optionItemProps,
219
+ get children() {
220
+ return createComponent(MenuItemProvider, {
221
+ value: optionItemState,
222
+ get children() {
223
+ return createComponent(wire.div, mergedProps);
224
+ }
225
+ });
226
+ }
227
+ });
228
+ };
229
+ //#endregion
230
+ //#region src/components/menu/radio-item-group.tsx
231
+ const MenuRadioItemGroup = (props) => {
232
+ const [optionalItemGroupProps, localProps] = createSplitProps()(props, [
233
+ "id",
234
+ "onValueChange",
235
+ "value"
236
+ ]);
237
+ const context = useMenuContext();
238
+ const itemGroupProps = mergeProps$2({ id: createUniqueId() }, optionalItemGroupProps);
239
+ const mergedProps = mergeProps$2(() => context().getItemGroupProps(itemGroupProps), localProps);
240
+ return createComponent(MenuItemGroupProvider, {
241
+ value: itemGroupProps,
242
+ get children() {
243
+ return createComponent(wire.div, mergedProps);
244
+ }
245
+ });
246
+ };
247
+ //#endregion
248
+ //#region src/components/menu/use.ts
249
+ const useMenu = (props) => {
250
+ const id = createUniqueId();
251
+ const locale = useLocaleContext();
252
+ const environment = useEnvironmentContext();
253
+ const machineProps = createMemo(() => ({
254
+ id,
255
+ dir: locale().dir,
256
+ getRootNode: environment().getRootNode,
257
+ ...runIfFn(props)
258
+ }));
259
+ const service = useMachine(menu.machine, machineProps);
260
+ return {
261
+ api: createMemo(() => menu.connect(service, normalizeProps)),
262
+ service
263
+ };
264
+ };
265
+ //#endregion
266
+ //#region src/components/menu/use-machine-context.ts
267
+ const [MenuMachineProvider, useMenuMachineContext] = createContext$1({
268
+ hookName: "useMenuMachineContext",
269
+ providerName: "<MenuMachineProvider />",
270
+ strict: false
271
+ });
272
+ //#endregion
273
+ //#region src/components/menu/use-trigger-item-context.ts
274
+ const [MenuTriggerItemProvider, useMenuTriggerItemContext] = createContext$1({
275
+ hookName: "useMenuMachineContext",
276
+ providerName: "<MenuMachineProvider />",
277
+ strict: false
278
+ });
279
+ //#endregion
280
+ //#region src/components/menu/root.tsx
281
+ const MenuRoot = (props) => {
282
+ const [presenceProps, menuProps] = splitPresenceProps(props);
283
+ const [useMenuProps, localProps] = createSplitProps()(menuProps, [
284
+ "anchorPoint",
285
+ "aria-label",
286
+ "closeOnSelect",
287
+ "composite",
288
+ "defaultHighlightedValue",
289
+ "defaultOpen",
290
+ "highlightedValue",
291
+ "id",
292
+ "ids",
293
+ "loopFocus",
294
+ "navigate",
295
+ "onEscapeKeyDown",
296
+ "onFocusOutside",
297
+ "onHighlightChange",
298
+ "onInteractOutside",
299
+ "onOpenChange",
300
+ "onPointerDownOutside",
301
+ "onRequestDismiss",
302
+ "onSelect",
303
+ "open",
304
+ "positioning",
305
+ "typeahead",
306
+ "triggerValue",
307
+ "defaultTriggerValue",
308
+ "onTriggerValueChange"
309
+ ]);
310
+ const parentApi = useMenuContext();
311
+ const parentMachine = useMenuMachineContext();
312
+ const menu = useMenu(useMenuProps);
313
+ const presenceApi = usePresence(mergeProps$2(presenceProps, () => ({ present: menu.api().open })));
314
+ onMount(() => {
315
+ if (!parentMachine) return;
316
+ parentApi?.().setChild(menu.service);
317
+ menu.api().setParent(parentMachine);
318
+ });
319
+ const triggerItemContext = () => parentApi?.().getTriggerItemProps(menu.api());
320
+ return createComponent(MenuTriggerItemProvider, {
321
+ value: triggerItemContext,
322
+ get children() {
323
+ return createComponent(MenuMachineProvider, {
324
+ get value() {
325
+ return menu.service;
326
+ },
327
+ get children() {
328
+ return createComponent(MenuProvider, {
329
+ get value() {
330
+ return menu.api;
331
+ },
332
+ get children() {
333
+ return createComponent(PresenceProvider, {
334
+ value: presenceApi,
335
+ get children() {
336
+ return localProps.children;
337
+ }
338
+ });
339
+ }
340
+ });
341
+ }
342
+ });
343
+ }
344
+ });
345
+ };
346
+ //#endregion
347
+ //#region src/components/menu/root-provider.tsx
348
+ const MenuRootProvider = (props) => {
349
+ const parentApi = useMenuContext();
350
+ const parentMachine = useMenuMachineContext();
351
+ const [presenceProps, menuProps] = splitPresenceProps(props);
352
+ const presenceApi = usePresence(mergeProps$2(presenceProps, () => ({ present: menuProps.value.api().open })));
353
+ createEffect(() => {
354
+ if (!parentMachine) return;
355
+ parentApi?.().setChild(menuProps.value.service);
356
+ menuProps.value.api().setParent(parentMachine);
357
+ });
358
+ const triggerItemContext = () => parentApi?.().getTriggerItemProps(menuProps.value.api());
359
+ return createComponent(MenuTriggerItemProvider, {
360
+ value: triggerItemContext,
361
+ get children() {
362
+ return createComponent(MenuMachineProvider, {
363
+ get value() {
364
+ return menuProps.value.service;
365
+ },
366
+ get children() {
367
+ return createComponent(MenuProvider, {
368
+ get value() {
369
+ return menuProps.value.api;
370
+ },
371
+ get children() {
372
+ return createComponent(PresenceProvider, {
373
+ value: presenceApi,
374
+ get children() {
375
+ return menuProps.children;
376
+ }
377
+ });
378
+ }
379
+ });
380
+ }
381
+ });
382
+ }
383
+ });
384
+ };
385
+ //#endregion
386
+ //#region src/components/menu/separator.tsx
387
+ const MenuSeparator = (props) => {
388
+ const menu = useMenuContext();
389
+ const mergedProps = mergeProps$2(() => menu().getSeparatorProps(), props);
390
+ return createComponent(wire.hr, mergedProps);
391
+ };
392
+ //#endregion
393
+ //#region src/components/menu/trigger.tsx
394
+ const MenuTrigger = (props) => {
395
+ const [triggerProps, localProps] = createSplitProps()(props, ["value"]);
396
+ const api = useMenuContext();
397
+ const presenceApi = usePresenceContext();
398
+ const mergedProps = mergeProps$2(() => api().getTriggerProps(triggerProps), () => ({ "aria-controls": presenceApi().unmounted && null }), localProps);
399
+ return createComponent(wire.button, mergedProps);
400
+ };
401
+ //#endregion
402
+ //#region src/components/menu/trigger-item.tsx
403
+ const MenuTriggerItem = (props) => {
404
+ const getTriggerItemProps = useMenuTriggerItemContext();
405
+ const mergedProps = mergeProps$2(() => getTriggerItemProps?.(), props);
406
+ return createComponent(MenuItemPropsProvider, {
407
+ get value() {
408
+ return { value: mergedProps["data-value"] };
409
+ },
410
+ get children() {
411
+ return createComponent(wire.div, mergedProps);
412
+ }
413
+ });
414
+ };
415
+ //#endregion
416
+ //#region src/components/menu/menu.ts
417
+ var menu_exports = /* @__PURE__ */ __exportAll({
418
+ Arrow: () => MenuArrow,
419
+ ArrowTip: () => MenuArrowTip,
420
+ CheckboxItem: () => MenuCheckboxItem,
421
+ Content: () => MenuContent,
422
+ Context: () => MenuContext,
423
+ ContextTrigger: () => MenuContextTrigger,
424
+ Indicator: () => MenuIndicator,
425
+ Item: () => MenuItem,
426
+ ItemContext: () => MenuItemContext,
427
+ ItemGroup: () => MenuItemGroup,
428
+ ItemGroupLabel: () => MenuItemGroupLabel,
429
+ ItemIndicator: () => MenuItemIndicator,
430
+ ItemText: () => MenuItemText,
431
+ Positioner: () => MenuPositioner,
432
+ RadioItem: () => MenuRadioItem,
433
+ RadioItemGroup: () => MenuRadioItemGroup,
434
+ Root: () => MenuRoot,
435
+ RootProvider: () => MenuRootProvider,
436
+ Separator: () => MenuSeparator,
437
+ Trigger: () => MenuTrigger,
438
+ TriggerItem: () => MenuTriggerItem
439
+ });
440
+ //#endregion
441
+ export { menu_exports as Menu, MenuArrow, MenuArrowTip, MenuCheckboxItem, MenuContent, MenuContext, MenuContextTrigger, MenuIndicator, MenuItem, MenuItemContext, MenuItemGroup, MenuItemGroupLabel, MenuItemIndicator, MenuItemText, MenuPositioner, MenuRadioItem, MenuRadioItemGroup, MenuRoot, MenuRootProvider, MenuSeparator, MenuTrigger, MenuTriggerItem, menuAnatomy, useMenu, useMenuContext, useMenuItemContext };