@sprawlify/react 0.0.8 → 0.0.9

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 (179) hide show
  1. package/dist/{collapsible-Nbt3Sequ.mjs → collapsible-vqmKK3px.mjs} +7 -7
  2. package/dist/{collection-DQWWySNV.mjs → collection-BYYMj_V8.mjs} +2 -2
  3. package/dist/components/accordion/index.d.cts +11 -11
  4. package/dist/components/accordion/index.d.mts +11 -11
  5. package/dist/components/accordion/index.mjs +10 -10
  6. package/dist/components/angle-slider/index.d.cts +13 -13
  7. package/dist/components/angle-slider/index.d.mts +13 -13
  8. package/dist/components/angle-slider/index.mjs +8 -8
  9. package/dist/components/avatar/index.d.cts +8 -8
  10. package/dist/components/avatar/index.d.mts +8 -8
  11. package/dist/components/avatar/index.mjs +8 -8
  12. package/dist/components/bottom-sheet/index.d.cts +15 -15
  13. package/dist/components/bottom-sheet/index.d.mts +16 -16
  14. package/dist/components/bottom-sheet/index.mjs +12 -12
  15. package/dist/components/carousel/index.d.cts +18 -18
  16. package/dist/components/carousel/index.d.mts +18 -18
  17. package/dist/components/carousel/index.mjs +8 -8
  18. package/dist/components/checkbox/index.d.cts +14 -14
  19. package/dist/components/checkbox/index.d.mts +14 -14
  20. package/dist/components/checkbox/index.mjs +13 -13
  21. package/dist/components/clipboard/index.d.cts +12 -12
  22. package/dist/components/clipboard/index.d.mts +12 -12
  23. package/dist/components/clipboard/index.mjs +6 -6
  24. package/dist/components/collapsible/index.d.cts +10 -10
  25. package/dist/components/collapsible/index.d.mts +10 -10
  26. package/dist/components/collapsible/index.mjs +7 -7
  27. package/dist/components/collection/index.d.cts +1 -1
  28. package/dist/components/collection/index.d.mts +1 -1
  29. package/dist/components/collection/index.mjs +3 -3
  30. package/dist/components/color-picker/index.d.cts +35 -35
  31. package/dist/components/color-picker/index.d.mts +36 -36
  32. package/dist/components/color-picker/index.mjs +14 -14
  33. package/dist/components/combobox/index.d.cts +22 -22
  34. package/dist/components/combobox/index.d.mts +22 -22
  35. package/dist/components/combobox/index.mjs +15 -15
  36. package/dist/components/date-picker/index.d.cts +32 -32
  37. package/dist/components/date-picker/index.d.mts +33 -33
  38. package/dist/components/date-picker/index.mjs +11 -11
  39. package/dist/components/dialog/index.d.cts +15 -15
  40. package/dist/components/dialog/index.d.mts +13 -13
  41. package/dist/components/dialog/index.mjs +11 -11
  42. package/dist/components/download-trigger/index.d.cts +4 -4
  43. package/dist/components/download-trigger/index.d.mts +4 -4
  44. package/dist/components/download-trigger/index.mjs +5 -5
  45. package/dist/components/editable/index.d.cts +13 -13
  46. package/dist/components/editable/index.d.mts +13 -13
  47. package/dist/components/editable/index.mjs +11 -11
  48. package/dist/components/field/index.d.cts +14 -14
  49. package/dist/components/field/index.d.mts +12 -12
  50. package/dist/components/field/index.mjs +9 -9
  51. package/dist/components/fieldset/index.d.cts +10 -10
  52. package/dist/components/fieldset/index.d.mts +8 -8
  53. package/dist/components/fieldset/index.mjs +9 -9
  54. package/dist/components/file-upload/index.d.cts +3 -3
  55. package/dist/components/file-upload/index.d.mts +18 -18
  56. package/dist/components/file-upload/index.mjs +11 -11
  57. package/dist/components/floating-panel/index.d.cts +19 -19
  58. package/dist/components/floating-panel/index.d.mts +20 -20
  59. package/dist/components/floating-panel/index.mjs +11 -11
  60. package/dist/components/focus-trap/index.d.cts +4 -4
  61. package/dist/components/focus-trap/index.d.mts +4 -4
  62. package/dist/components/focus-trap/index.mjs +4 -4
  63. package/dist/components/format/index.d.cts +4 -4
  64. package/dist/components/format/index.d.mts +4 -4
  65. package/dist/components/format/index.mjs +3 -3
  66. package/dist/components/frame/index.d.cts +3 -3
  67. package/dist/components/frame/index.d.mts +3 -3
  68. package/dist/components/frame/index.mjs +6 -6
  69. package/dist/components/highlight/index.d.cts +3 -3
  70. package/dist/components/highlight/index.d.mts +3 -3
  71. package/dist/components/highlight/index.mjs +1 -1
  72. package/dist/components/hover-card/index.cjs +165 -0
  73. package/dist/components/hover-card/index.d.cts +70 -0
  74. package/dist/components/hover-card/index.d.mts +71 -0
  75. package/dist/components/hover-card/index.mjs +143 -0
  76. package/dist/components/image-cropper/index.cjs +197 -0
  77. package/dist/components/image-cropper/index.d.cts +64 -0
  78. package/dist/components/image-cropper/index.d.mts +64 -0
  79. package/dist/components/image-cropper/index.mjs +175 -0
  80. package/dist/components/json-tree-view/index.cjs +246 -0
  81. package/dist/components/json-tree-view/index.d.cts +43 -0
  82. package/dist/components/json-tree-view/index.d.mts +48 -0
  83. package/dist/components/json-tree-view/index.mjs +237 -0
  84. package/dist/components/listbox/index.cjs +314 -0
  85. package/dist/components/listbox/index.d.cts +110 -0
  86. package/dist/components/listbox/index.d.mts +110 -0
  87. package/dist/components/listbox/index.mjs +289 -0
  88. package/dist/components/marquee/index.cjs +176 -0
  89. package/dist/components/marquee/index.d.cts +61 -0
  90. package/dist/components/marquee/index.d.mts +61 -0
  91. package/dist/components/marquee/index.mjs +155 -0
  92. package/dist/components/menu/index.cjs +548 -0
  93. package/dist/components/menu/index.d.cts +159 -0
  94. package/dist/components/menu/index.d.mts +162 -0
  95. package/dist/components/menu/index.mjs +512 -0
  96. package/dist/components/navigation-menu/index.cjs +339 -0
  97. package/dist/components/navigation-menu/index.d.cts +90 -0
  98. package/dist/components/navigation-menu/index.d.mts +90 -0
  99. package/dist/components/navigation-menu/index.mjs +312 -0
  100. package/dist/components/number-input/index.cjs +237 -0
  101. package/dist/components/number-input/index.d.cts +74 -0
  102. package/dist/components/number-input/index.d.mts +74 -0
  103. package/dist/components/number-input/index.mjs +213 -0
  104. package/dist/components/pagination/index.cjs +197 -0
  105. package/dist/components/pagination/index.d.cts +69 -0
  106. package/dist/components/pagination/index.d.mts +69 -0
  107. package/dist/components/pagination/index.mjs +174 -0
  108. package/dist/components/password-input/index.cjs +193 -0
  109. package/dist/components/password-input/index.d.cts +66 -0
  110. package/dist/components/password-input/index.d.mts +66 -0
  111. package/dist/components/password-input/index.mjs +171 -0
  112. package/dist/components/pin-input/index.cjs +192 -0
  113. package/dist/components/pin-input/index.d.cts +59 -0
  114. package/dist/components/pin-input/index.d.mts +59 -0
  115. package/dist/components/pin-input/index.mjs +171 -0
  116. package/dist/components/popover/index.cjs +237 -0
  117. package/dist/components/popover/index.d.cts +95 -0
  118. package/dist/components/popover/index.d.mts +96 -0
  119. package/dist/components/popover/index.mjs +210 -0
  120. package/dist/components/portal/index.cjs +3 -29
  121. package/dist/components/portal/index.d.cts +2 -2
  122. package/dist/components/portal/index.d.mts +2 -2
  123. package/dist/components/portal/index.mjs +5 -30
  124. package/dist/components/presence/index.d.cts +1 -1
  125. package/dist/components/presence/index.d.mts +3 -3
  126. package/dist/components/presence/index.mjs +5 -5
  127. package/dist/components/select/index.d.cts +21 -21
  128. package/dist/components/select/index.d.mts +22 -22
  129. package/dist/components/select/index.mjs +15 -15
  130. package/dist/components/tree-view/index.cjs +51 -0
  131. package/dist/components/tree-view/index.d.cts +3 -0
  132. package/dist/components/tree-view/index.d.mts +6 -0
  133. package/dist/components/tree-view/index.mjs +13 -0
  134. package/dist/{environment-Ded7DkGr.mjs → environment-Cc02I6aF.mjs} +1 -1
  135. package/dist/{factory-Bi8oEg8i.mjs → factory-7ydMApfi.mjs} +1 -1
  136. package/dist/{field-B-6qoKdn.mjs → field-BXY6su53.mjs} +9 -9
  137. package/dist/{fieldset-gaVneDYh.mjs → fieldset-BeHm9oxe.mjs} +8 -8
  138. package/dist/index-BcXWsxRa.d.mts +40 -0
  139. package/dist/{index-BhGgEHWc.d.cts → index-Bkxp7VrU.d.mts} +7 -7
  140. package/dist/index-Cquz7y70.d.cts +52 -0
  141. package/dist/index-DTzLUoop.d.cts +150 -0
  142. package/dist/{index-Cp1i1zbg.d.mts → index-aYGfRRLA.d.cts} +7 -7
  143. package/dist/index-wlpTZGhs.d.mts +150 -0
  144. package/dist/index.d.cts +6 -56
  145. package/dist/index.d.mts +6 -44
  146. package/dist/index.mjs +7 -7
  147. package/dist/{locale-Coin-d7R.mjs → locale-D4LX0eEq.mjs} +1 -1
  148. package/dist/portal-BOhFScBS.mjs +29 -0
  149. package/dist/portal-DRyJqgA1.cjs +35 -0
  150. package/dist/{presence-Bc6Bxe5i.mjs → presence-C9BcvdTf.mjs} +6 -6
  151. package/dist/{render-strategy-FiPgAp1U.mjs → render-strategy-BgIBKraZ.mjs} +2 -2
  152. package/dist/tree-view-CzJvwlYQ.mjs +365 -0
  153. package/dist/tree-view-DsOPEocd.cjs +509 -0
  154. package/dist/{use-fieldset-context-LwveT1OS.mjs → use-fieldset-context-6GRSrrlt.mjs} +1 -1
  155. package/dist/utils/index.d.cts +1 -1
  156. package/dist/utils/index.d.mts +1 -1
  157. package/dist/utils/index.mjs +2 -2
  158. package/package.json +132 -2
  159. /package/dist/{chunk-BXPHTOwk.mjs → chunk-BU8PiJgx.mjs} +0 -0
  160. /package/dist/{compose-refs-BEptPEkE.mjs → compose-refs-Cl5LpASY.mjs} +0 -0
  161. /package/dist/{core-Ba4IEjhK.mjs → core-79NSyZp-.mjs} +0 -0
  162. /package/dist/{create-context-CCXzjEv8.mjs → create-context-DbhrVE2B.mjs} +0 -0
  163. /package/dist/{create-split-props-CBL0m-GX.mjs → create-split-props-BJdRM9I_.mjs} +0 -0
  164. /package/dist/{factory-C-EBNsCW.d.mts → factory-DaVlp4Ba.d.mts} +0 -0
  165. /package/dist/{factory-C4cfTHs7.d.cts → factory-fcFI3pbG.d.cts} +0 -0
  166. /package/dist/{index-BJvW7OpY.d.mts → index-BLd57Y0z.d.mts} +0 -0
  167. /package/dist/{index-CureNJdc.d.mts → index-BoLg0FWF.d.mts} +0 -0
  168. /package/dist/{index-CumJbg8V.d.cts → index-CReeoTjv.d.cts} +0 -0
  169. /package/dist/{index-ByIsf4E7.d.mts → index-DPoOdvOg.d.mts} +0 -0
  170. /package/dist/{index-dbTyAXLy.d.cts → index-r8rv70-L.d.cts} +0 -0
  171. /package/dist/{normalize-props-skGwa8Dk.d.cts → normalize-props-Dw0EepzR.d.cts} +0 -0
  172. /package/dist/{providers-Dm2P3F2_.mjs → providers-CoJceYkV.mjs} +0 -0
  173. /package/dist/{render-strategy-C8IyLw0O.d.mts → render-strategy-CRwPcG33.d.mts} +0 -0
  174. /package/dist/{render-strategy-rA4C5NUX.d.cts → render-strategy-M8NkD01w.d.cts} +0 -0
  175. /package/dist/{types-B4tvWlDb.d.cts → types-CrwpJrFp.d.mts} +0 -0
  176. /package/dist/{types-BmBABPZb.d.mts → types-DcUAwTQC.d.cts} +0 -0
  177. /package/dist/{use-event-4J5QFFqK.mjs → use-event-B4e6iJDK.mjs} +0 -0
  178. /package/dist/{use-safe-layout-effect-CLjnuJFb.mjs → use-safe-layout-effect-DPn_9-dD.mjs} +0 -0
  179. /package/dist/{utils-C-m3mZWI.mjs → utils-BQJFlkDE.mjs} +0 -0
@@ -0,0 +1,512 @@
1
+ import { t as __export } from "../../chunk-BU8PiJgx.mjs";
2
+ import { i as useMachine, r as normalizeProps, t as mergeProps } from "../../core-79NSyZp-.mjs";
3
+ import { t as createContext$1 } from "../../create-context-DbhrVE2B.mjs";
4
+ import { n as useEnvironmentContext } from "../../environment-Cc02I6aF.mjs";
5
+ import { i as useLocaleContext } from "../../locale-D4LX0eEq.mjs";
6
+ import "../../providers-CoJceYkV.mjs";
7
+ import { t as composeRefs } from "../../compose-refs-Cl5LpASY.mjs";
8
+ import { n as sprawlify } from "../../factory-7ydMApfi.mjs";
9
+ import { t as createSplitProps } from "../../create-split-props-BJdRM9I_.mjs";
10
+ import { a as splitPresenceProps, i as usePresence, n as usePresenceContext, t as PresenceProvider } from "../../presence-C9BcvdTf.mjs";
11
+ import "../../use-event-B4e6iJDK.mjs";
12
+ import { forwardRef, useCallback, useEffect, useId, useRef } from "react";
13
+ import { jsx } from "react/jsx-runtime";
14
+ import * as menu from "@sprawlify/primitives/machines/menu";
15
+ import { anatomy as menuAnatomy } from "@sprawlify/primitives/machines/menu";
16
+
17
+ //#region src/components/menu/use-menu-context.ts
18
+ const [MenuProvider, useMenuContext] = createContext$1({
19
+ name: "MenuContext",
20
+ hookName: "useMenuContext",
21
+ providerName: "<MenuProvider />",
22
+ strict: false
23
+ });
24
+
25
+ //#endregion
26
+ //#region src/components/menu/menu-arrow.tsx
27
+ const MenuArrow = forwardRef((props, ref) => {
28
+ const mergedProps = mergeProps(useMenuContext().getArrowProps(), props);
29
+ return /* @__PURE__ */ jsx(sprawlify.div, {
30
+ ...mergedProps,
31
+ ref
32
+ });
33
+ });
34
+ MenuArrow.displayName = "MenuArrow";
35
+
36
+ //#endregion
37
+ //#region src/components/menu/menu-arrow-tip.tsx
38
+ const MenuArrowTip = forwardRef((props, ref) => {
39
+ const mergedProps = mergeProps(useMenuContext().getArrowTipProps(), props);
40
+ return /* @__PURE__ */ jsx(sprawlify.div, {
41
+ ...mergedProps,
42
+ ref
43
+ });
44
+ });
45
+ MenuArrowTip.displayName = "MenuArrowTip";
46
+
47
+ //#endregion
48
+ //#region src/components/menu/use-menu-item-context.ts
49
+ const [MenuItemProvider, useMenuItemContext] = createContext$1({
50
+ name: "MenuItemContext",
51
+ hookName: "useMenuItemContext",
52
+ providerName: "<MenuItemProvider />"
53
+ });
54
+
55
+ //#endregion
56
+ //#region src/components/menu/use-menu-option-item-props-context.ts
57
+ const [MenuItemPropsProvider, useMenuItemPropsContext] = createContext$1({
58
+ name: "MenuItemPropsContext",
59
+ hookName: "useMenuItemPropsContext",
60
+ providerName: "<MenuItemPropsProvider />"
61
+ });
62
+
63
+ //#endregion
64
+ //#region src/components/menu/menu-checkbox-item.tsx
65
+ const splitOptionItemProps$1 = createSplitProps();
66
+ const MenuCheckboxItem = forwardRef((props, ref) => {
67
+ const [partialOptionItemProps, localProps] = splitOptionItemProps$1(props, [
68
+ "checked",
69
+ "closeOnSelect",
70
+ "disabled",
71
+ "onCheckedChange",
72
+ "value",
73
+ "valueText"
74
+ ]);
75
+ const optionItemProps = {
76
+ ...partialOptionItemProps,
77
+ type: "checkbox"
78
+ };
79
+ const menu$1 = useMenuContext();
80
+ const mergedProps = mergeProps(menu$1.getOptionItemProps(optionItemProps), localProps);
81
+ return /* @__PURE__ */ jsx(MenuItemPropsProvider, {
82
+ value: optionItemProps,
83
+ children: /* @__PURE__ */ jsx(MenuItemProvider, {
84
+ value: menu$1.getOptionItemState(optionItemProps),
85
+ children: /* @__PURE__ */ jsx(sprawlify.div, {
86
+ ...mergedProps,
87
+ ref
88
+ })
89
+ })
90
+ });
91
+ });
92
+ MenuCheckboxItem.displayName = "MenuCheckboxItem";
93
+
94
+ //#endregion
95
+ //#region src/components/menu/menu-content.tsx
96
+ const MenuContent = forwardRef((props, ref) => {
97
+ const menu$1 = useMenuContext();
98
+ const presence = usePresenceContext();
99
+ const mergedProps = mergeProps(menu$1.getContentProps(), presence.getPresenceProps(), props);
100
+ if (presence.unmounted) return null;
101
+ return /* @__PURE__ */ jsx(sprawlify.div, {
102
+ ...mergedProps,
103
+ ref: composeRefs(presence.ref, ref)
104
+ });
105
+ });
106
+ MenuContent.displayName = "MenuContent";
107
+
108
+ //#endregion
109
+ //#region src/components/menu/menu-context.tsx
110
+ const MenuContext = (props) => props.children(useMenuContext());
111
+
112
+ //#endregion
113
+ //#region src/components/menu/menu-context-trigger.tsx
114
+ const MenuContextTrigger = forwardRef((props, ref) => {
115
+ const mergedProps = mergeProps(useMenuContext().getContextTriggerProps(), props);
116
+ return /* @__PURE__ */ jsx(sprawlify.button, {
117
+ ...mergedProps,
118
+ ref
119
+ });
120
+ });
121
+ MenuContextTrigger.displayName = "MenuContextTrigger";
122
+
123
+ //#endregion
124
+ //#region src/components/menu/menu-indicator.tsx
125
+ const MenuIndicator = forwardRef((props, ref) => {
126
+ const mergedProps = mergeProps(useMenuContext().getIndicatorProps(), props);
127
+ return /* @__PURE__ */ jsx(sprawlify.div, {
128
+ ...mergedProps,
129
+ ref
130
+ });
131
+ });
132
+ MenuIndicator.displayName = "MenuIndicator";
133
+
134
+ //#endregion
135
+ //#region src/components/menu/menu-item.tsx
136
+ const splitItemBaseProps = createSplitProps();
137
+ const MenuItem = forwardRef((props, ref) => {
138
+ const [itemProps, localProps] = splitItemBaseProps(props, [
139
+ "closeOnSelect",
140
+ "disabled",
141
+ "value",
142
+ "valueText",
143
+ "onSelect"
144
+ ]);
145
+ const menu$1 = useMenuContext();
146
+ const mergedProps = mergeProps(menu$1.getItemProps(itemProps), localProps);
147
+ const itemState = menu$1.getItemState(itemProps);
148
+ useEffect(() => {
149
+ return menu$1.addItemListener({
150
+ id: itemState.id,
151
+ onSelect: itemProps.onSelect
152
+ });
153
+ }, [itemState.id, itemProps.onSelect]);
154
+ return /* @__PURE__ */ jsx(MenuItemPropsProvider, {
155
+ value: itemProps,
156
+ children: /* @__PURE__ */ jsx(MenuItemProvider, {
157
+ value: itemState,
158
+ children: /* @__PURE__ */ jsx(sprawlify.div, {
159
+ ...mergedProps,
160
+ ref
161
+ })
162
+ })
163
+ });
164
+ });
165
+ MenuItem.displayName = "MenuItem";
166
+
167
+ //#endregion
168
+ //#region src/components/menu/menu-item-context.tsx
169
+ const MenuItemContext = (props) => props.children(useMenuItemContext());
170
+
171
+ //#endregion
172
+ //#region src/components/menu/use-menu-item-group-context.ts
173
+ const [MenuItemGroupProvider, useMenuItemGroupContext] = createContext$1({
174
+ name: "MenuItemGroupContext",
175
+ hookName: "useMenuItemGroupContext",
176
+ providerName: "<MenuItemGroupProvider />"
177
+ });
178
+
179
+ //#endregion
180
+ //#region src/components/menu/menu-item-group.tsx
181
+ const splitItemGroupProps$1 = createSplitProps();
182
+ const MenuItemGroup = forwardRef((props, ref) => {
183
+ const [optionalItemGroupProps, localProps] = splitItemGroupProps$1(props, ["id"]);
184
+ const menu$1 = useMenuContext();
185
+ const itemGroupProps = {
186
+ id: useId(),
187
+ ...optionalItemGroupProps
188
+ };
189
+ const mergedProps = mergeProps(menu$1.getItemGroupProps(itemGroupProps), localProps);
190
+ return /* @__PURE__ */ jsx(MenuItemGroupProvider, {
191
+ value: itemGroupProps,
192
+ children: /* @__PURE__ */ jsx(sprawlify.div, {
193
+ ...mergedProps,
194
+ ref
195
+ })
196
+ });
197
+ });
198
+ MenuItemGroup.displayName = "MenuItemGroup";
199
+
200
+ //#endregion
201
+ //#region src/components/menu/menu-item-group-label.tsx
202
+ const MenuItemGroupLabel = forwardRef((props, ref) => {
203
+ const menu$1 = useMenuContext();
204
+ const itemGroup = useMenuItemGroupContext();
205
+ const mergedProps = mergeProps(menu$1.getItemGroupLabelProps({ htmlFor: itemGroup.id }), props);
206
+ return /* @__PURE__ */ jsx(sprawlify.div, {
207
+ ...mergedProps,
208
+ ref
209
+ });
210
+ });
211
+ MenuItemGroupLabel.displayName = "MenuItemGroupLabel";
212
+
213
+ //#endregion
214
+ //#region src/components/menu/menu-item-indicator.tsx
215
+ const MenuItemIndicator = forwardRef((props, ref) => {
216
+ const menu$1 = useMenuContext();
217
+ const itemProps = useMenuItemPropsContext();
218
+ const mergedProps = mergeProps(menu$1.getItemIndicatorProps(itemProps), props);
219
+ return /* @__PURE__ */ jsx(sprawlify.div, {
220
+ ...mergedProps,
221
+ ref
222
+ });
223
+ });
224
+ MenuItemIndicator.displayName = "MenuItemIndicator";
225
+
226
+ //#endregion
227
+ //#region src/components/menu/menu-item-text.tsx
228
+ const MenuItemText = forwardRef((props, ref) => {
229
+ const menu$1 = useMenuContext();
230
+ const itemProps = useMenuItemPropsContext();
231
+ const mergedProps = mergeProps(menu$1.getItemTextProps(itemProps), props);
232
+ return /* @__PURE__ */ jsx(sprawlify.div, {
233
+ ...mergedProps,
234
+ ref
235
+ });
236
+ });
237
+ MenuItemText.displayName = "MenuItemText";
238
+
239
+ //#endregion
240
+ //#region src/components/menu/menu-positioner.tsx
241
+ const MenuPositioner = forwardRef((props, ref) => {
242
+ const mergedProps = mergeProps(useMenuContext().getPositionerProps(), props);
243
+ if (usePresenceContext().unmounted) return null;
244
+ return /* @__PURE__ */ jsx(sprawlify.div, {
245
+ ...mergedProps,
246
+ ref
247
+ });
248
+ });
249
+ MenuPositioner.displayName = "MenuPositioner";
250
+
251
+ //#endregion
252
+ //#region src/components/menu/menu-radio-item.tsx
253
+ const splitOptionItemProps = createSplitProps();
254
+ const MenuRadioItem = forwardRef((props, ref) => {
255
+ const [partialItemProps, localProps] = splitOptionItemProps(props, [
256
+ "closeOnSelect",
257
+ "disabled",
258
+ "value",
259
+ "valueText"
260
+ ]);
261
+ const menu$1 = useMenuContext();
262
+ const itemGroup = useMenuItemGroupContext();
263
+ const optionItemProps = {
264
+ ...partialItemProps,
265
+ checked: itemGroup.value === partialItemProps.value,
266
+ type: "radio",
267
+ onCheckedChange: () => itemGroup.onValueChange?.({ value: partialItemProps.value })
268
+ };
269
+ const mergedProps = mergeProps(menu$1.getOptionItemProps(optionItemProps), localProps);
270
+ return /* @__PURE__ */ jsx(MenuItemPropsProvider, {
271
+ value: optionItemProps,
272
+ children: /* @__PURE__ */ jsx(MenuItemProvider, {
273
+ value: menu$1.getOptionItemState(optionItemProps),
274
+ children: /* @__PURE__ */ jsx(sprawlify.div, {
275
+ ...mergedProps,
276
+ ref
277
+ })
278
+ })
279
+ });
280
+ });
281
+ MenuRadioItem.displayName = "MenuRadioItem";
282
+
283
+ //#endregion
284
+ //#region src/components/menu/menu-radio-item-group.tsx
285
+ const splitItemGroupProps = createSplitProps();
286
+ const MenuRadioItemGroup = forwardRef((props, ref) => {
287
+ const [optionalItemGroupProps, localProps] = splitItemGroupProps(props, [
288
+ "id",
289
+ "onValueChange",
290
+ "value"
291
+ ]);
292
+ const menu$1 = useMenuContext();
293
+ const itemGroupProps = {
294
+ id: useId(),
295
+ ...optionalItemGroupProps
296
+ };
297
+ const mergedProps = mergeProps(menu$1.getItemGroupProps({ id: itemGroupProps.id }), localProps);
298
+ return /* @__PURE__ */ jsx(MenuItemGroupProvider, {
299
+ value: itemGroupProps,
300
+ children: /* @__PURE__ */ jsx(sprawlify.div, {
301
+ ...mergedProps,
302
+ ref
303
+ })
304
+ });
305
+ });
306
+ MenuRadioItemGroup.displayName = "MenuRadioItemGroup";
307
+
308
+ //#endregion
309
+ //#region src/utils/use-effect-once.ts
310
+ const useEffectOnce = (cb) => {
311
+ const savedCallback = useRef(cb);
312
+ const effectGuard = useRef(false);
313
+ useEffect(() => {
314
+ savedCallback.current = cb;
315
+ });
316
+ useEffect(() => {
317
+ if (effectGuard.current !== true) {
318
+ effectGuard.current = true;
319
+ savedCallback.current();
320
+ }
321
+ }, []);
322
+ };
323
+
324
+ //#endregion
325
+ //#region src/components/menu/use-menu.ts
326
+ const useMenu = (props) => {
327
+ const id = useId();
328
+ const { getRootNode } = useEnvironmentContext();
329
+ const { dir } = useLocaleContext();
330
+ const machineProps = {
331
+ id,
332
+ dir,
333
+ getRootNode,
334
+ ...props
335
+ };
336
+ const service = useMachine(menu.machine, machineProps);
337
+ return {
338
+ api: menu.connect(service, normalizeProps),
339
+ service
340
+ };
341
+ };
342
+
343
+ //#endregion
344
+ //#region src/components/menu/use-menu-machine-context.ts
345
+ const [MenuMachineProvider, useMenuMachineContext] = createContext$1({
346
+ name: "MenuMachineContext",
347
+ hookName: "useMenuMachineContext",
348
+ providerName: "<MenuMachineProvider />",
349
+ strict: false
350
+ });
351
+
352
+ //#endregion
353
+ //#region src/components/menu/use-menu-trigger-item-context.ts
354
+ const [MenuTriggerItemProvider, useMenuTriggerItemContext] = createContext$1({
355
+ name: "MenuMachineContext",
356
+ hookName: "useMenuMachineContext",
357
+ providerName: "<MenuMachineProvider />",
358
+ strict: false
359
+ });
360
+
361
+ //#endregion
362
+ //#region src/components/menu/menu-root.tsx
363
+ const splitRootProps = createSplitProps();
364
+ const MenuRoot = (props) => {
365
+ const [presenceProps, menuProps] = splitPresenceProps(props);
366
+ const [useMenuProps, localProps] = splitRootProps(menuProps, [
367
+ "anchorPoint",
368
+ "aria-label",
369
+ "closeOnSelect",
370
+ "composite",
371
+ "defaultHighlightedValue",
372
+ "defaultOpen",
373
+ "highlightedValue",
374
+ "id",
375
+ "ids",
376
+ "loopFocus",
377
+ "navigate",
378
+ "onEscapeKeyDown",
379
+ "onFocusOutside",
380
+ "onHighlightChange",
381
+ "onInteractOutside",
382
+ "onOpenChange",
383
+ "onPointerDownOutside",
384
+ "onRequestDismiss",
385
+ "onSelect",
386
+ "open",
387
+ "positioning",
388
+ "typeahead"
389
+ ]);
390
+ const parentApi = useMenuContext();
391
+ const parentMachine = useMenuMachineContext();
392
+ const { api, service } = useMenu(useMenuProps);
393
+ const presence = usePresence(mergeProps({ present: api.open }, presenceProps));
394
+ useEffectOnce(() => {
395
+ if (!parentMachine) return;
396
+ if (!parentApi) return;
397
+ parentApi.setChild(service);
398
+ api.setParent(parentMachine);
399
+ });
400
+ return /* @__PURE__ */ jsx(MenuTriggerItemProvider, {
401
+ value: useCallback(() => parentApi?.getTriggerItemProps(api), [api, parentApi]),
402
+ children: /* @__PURE__ */ jsx(MenuMachineProvider, {
403
+ value: service,
404
+ children: /* @__PURE__ */ jsx(MenuProvider, {
405
+ value: api,
406
+ children: /* @__PURE__ */ jsx(PresenceProvider, {
407
+ value: presence,
408
+ ...localProps
409
+ })
410
+ })
411
+ })
412
+ });
413
+ };
414
+
415
+ //#endregion
416
+ //#region src/components/menu/menu-root-provider.tsx
417
+ const MenuRootProvider = (props) => {
418
+ const parentApi = useMenuContext();
419
+ const parentMachine = useMenuMachineContext();
420
+ const [presenceProps, { value: menu$1, children }] = splitPresenceProps(props);
421
+ const { api, service } = menu$1;
422
+ const presence = usePresence(mergeProps({ present: api.open }, presenceProps));
423
+ useEffectOnce(() => {
424
+ if (!parentMachine) return;
425
+ if (!parentApi) return;
426
+ parentApi.setChild(service);
427
+ api.setParent(parentMachine);
428
+ });
429
+ return /* @__PURE__ */ jsx(MenuTriggerItemProvider, {
430
+ value: useCallback(() => parentApi?.getTriggerItemProps(api), [api, parentApi]),
431
+ children: /* @__PURE__ */ jsx(MenuMachineProvider, {
432
+ value: service,
433
+ children: /* @__PURE__ */ jsx(MenuProvider, {
434
+ value: api,
435
+ children: /* @__PURE__ */ jsx(PresenceProvider, {
436
+ value: presence,
437
+ children
438
+ })
439
+ })
440
+ })
441
+ });
442
+ };
443
+
444
+ //#endregion
445
+ //#region src/components/menu/menu-separator.tsx
446
+ const MenuSeparator = forwardRef((props, ref) => {
447
+ const mergedProps = mergeProps(useMenuContext().getSeparatorProps(), props);
448
+ return /* @__PURE__ */ jsx(sprawlify.hr, {
449
+ ...mergedProps,
450
+ ref
451
+ });
452
+ });
453
+ MenuSeparator.displayName = "MenuSeparator";
454
+
455
+ //#endregion
456
+ //#region src/components/menu/menu-trigger.tsx
457
+ const MenuTrigger = forwardRef((props, ref) => {
458
+ const menu$1 = useMenuContext();
459
+ const presence = usePresenceContext();
460
+ const mergedProps = mergeProps({
461
+ ...menu$1.getTriggerProps(),
462
+ "aria-controls": presence.unmounted ? void 0 : menu$1.getTriggerProps()["aria-controls"]
463
+ }, props);
464
+ return /* @__PURE__ */ jsx(sprawlify.button, {
465
+ ...mergedProps,
466
+ ref
467
+ });
468
+ });
469
+ MenuTrigger.displayName = "MenuTrigger";
470
+
471
+ //#endregion
472
+ //#region src/components/menu/menu-trigger-item.tsx
473
+ const MenuTriggerItem = forwardRef((props, ref) => {
474
+ const mergedProps = mergeProps(useMenuTriggerItemContext()?.() ?? {}, props);
475
+ return /* @__PURE__ */ jsx(MenuItemPropsProvider, {
476
+ value: { value: mergedProps["data-value"] },
477
+ children: /* @__PURE__ */ jsx(sprawlify.div, {
478
+ ...mergedProps,
479
+ ref
480
+ })
481
+ });
482
+ });
483
+ MenuTriggerItem.displayName = "MenuTriggerItem";
484
+
485
+ //#endregion
486
+ //#region src/components/menu/menu.ts
487
+ var menu_exports = /* @__PURE__ */ __export({
488
+ Arrow: () => MenuArrow,
489
+ ArrowTip: () => MenuArrowTip,
490
+ CheckboxItem: () => MenuCheckboxItem,
491
+ Content: () => MenuContent,
492
+ Context: () => MenuContext,
493
+ ContextTrigger: () => MenuContextTrigger,
494
+ Indicator: () => MenuIndicator,
495
+ Item: () => MenuItem,
496
+ ItemContext: () => MenuItemContext,
497
+ ItemGroup: () => MenuItemGroup,
498
+ ItemGroupLabel: () => MenuItemGroupLabel,
499
+ ItemIndicator: () => MenuItemIndicator,
500
+ ItemText: () => MenuItemText,
501
+ Positioner: () => MenuPositioner,
502
+ RadioItem: () => MenuRadioItem,
503
+ RadioItemGroup: () => MenuRadioItemGroup,
504
+ Root: () => MenuRoot,
505
+ RootProvider: () => MenuRootProvider,
506
+ Separator: () => MenuSeparator,
507
+ Trigger: () => MenuTrigger,
508
+ TriggerItem: () => MenuTriggerItem
509
+ });
510
+
511
+ //#endregion
512
+ 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 };