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