@sprawlify/react 0.0.8 → 0.0.10

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 (203) hide show
  1. package/dist/{collapsible-Nbt3Sequ.mjs → collapsible-DCBcxJA8.mjs} +7 -7
  2. package/dist/{collection-DQWWySNV.mjs → collection-XVYHjcEl.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 +17 -17
  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 +21 -21
  34. package/dist/components/combobox/index.d.mts +23 -23
  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 +16 -16
  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 +14 -14
  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 +10 -10
  53. package/dist/components/fieldset/index.mjs +9 -9
  54. package/dist/components/file-upload/index.d.cts +18 -18
  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/progress/index.cjs +222 -0
  128. package/dist/components/progress/index.d.cts +79 -0
  129. package/dist/components/progress/index.d.mts +79 -0
  130. package/dist/components/progress/index.mjs +197 -0
  131. package/dist/components/qr-code/index.cjs +166 -0
  132. package/dist/components/qr-code/index.d.cts +59 -0
  133. package/dist/components/qr-code/index.d.mts +59 -0
  134. package/dist/components/qr-code/index.mjs +145 -0
  135. package/dist/components/radio-group/index.cjs +240 -0
  136. package/dist/components/radio-group/index.d.cts +78 -0
  137. package/dist/components/radio-group/index.d.mts +78 -0
  138. package/dist/components/radio-group/index.mjs +215 -0
  139. package/dist/components/rating-group/index.cjs +202 -0
  140. package/dist/components/rating-group/index.d.cts +68 -0
  141. package/dist/components/rating-group/index.d.mts +68 -0
  142. package/dist/components/rating-group/index.mjs +179 -0
  143. package/dist/components/scroll-area/index.cjs +180 -0
  144. package/dist/components/scroll-area/index.d.cts +68 -0
  145. package/dist/components/scroll-area/index.d.mts +68 -0
  146. package/dist/components/scroll-area/index.mjs +158 -0
  147. package/dist/components/segment-group/index.cjs +233 -0
  148. package/dist/components/segment-group/index.d.cts +82 -0
  149. package/dist/components/segment-group/index.d.mts +82 -0
  150. package/dist/components/segment-group/index.mjs +213 -0
  151. package/dist/components/select/index.d.cts +21 -21
  152. package/dist/components/select/index.d.mts +22 -22
  153. package/dist/components/select/index.mjs +15 -15
  154. package/dist/components/tree-view/index.cjs +51 -0
  155. package/dist/components/tree-view/index.d.cts +3 -0
  156. package/dist/components/tree-view/index.d.mts +6 -0
  157. package/dist/components/tree-view/index.mjs +13 -0
  158. package/dist/{environment-Ded7DkGr.mjs → environment-Cnx9ZBbN.mjs} +1 -1
  159. package/dist/{factory-Bi8oEg8i.mjs → factory-BwIiMV5g.mjs} +1 -1
  160. package/dist/{field-B-6qoKdn.mjs → field-BuPxh7ZO.mjs} +9 -9
  161. package/dist/{fieldset-gaVneDYh.mjs → fieldset-UIFriN0i.mjs} +8 -8
  162. package/dist/index-BoKwZUuR.d.mts +150 -0
  163. package/dist/{index-BhGgEHWc.d.cts → index-C-uklBbh.d.cts} +7 -7
  164. package/dist/index-CQrt31Vz.d.mts +40 -0
  165. package/dist/index-IQMPWCzE.d.cts +150 -0
  166. package/dist/index-YjtX6_Hn.d.cts +52 -0
  167. package/dist/{index-Cp1i1zbg.d.mts → index-tmg3Dc0S.d.mts} +7 -7
  168. package/dist/index.d.cts +6 -56
  169. package/dist/index.d.mts +6 -44
  170. package/dist/index.mjs +7 -7
  171. package/dist/{locale-Coin-d7R.mjs → locale-BheNIyu4.mjs} +1 -1
  172. package/dist/portal-Cf1DNJ7L.mjs +29 -0
  173. package/dist/portal-DRyJqgA1.cjs +35 -0
  174. package/dist/{presence-Bc6Bxe5i.mjs → presence-D-rmmMDm.mjs} +6 -6
  175. package/dist/{render-strategy-FiPgAp1U.mjs → render-strategy-D2htg_Zz.mjs} +2 -2
  176. package/dist/tree-view-Br67rmuK.mjs +365 -0
  177. package/dist/tree-view-DsOPEocd.cjs +509 -0
  178. package/dist/{use-fieldset-context-LwveT1OS.mjs → use-fieldset-context-DPgRcctn.mjs} +1 -1
  179. package/dist/utils/index.d.cts +1 -1
  180. package/dist/utils/index.d.mts +1 -1
  181. package/dist/utils/index.mjs +2 -2
  182. package/package.json +192 -2
  183. /package/dist/{chunk-BXPHTOwk.mjs → chunk-tPcuhsU6.mjs} +0 -0
  184. /package/dist/{compose-refs-BEptPEkE.mjs → compose-refs-ymQahgeo.mjs} +0 -0
  185. /package/dist/{core-Ba4IEjhK.mjs → core-BrQa5x6H.mjs} +0 -0
  186. /package/dist/{create-context-CCXzjEv8.mjs → create-context-aizX7yAt.mjs} +0 -0
  187. /package/dist/{create-split-props-CBL0m-GX.mjs → create-split-props-BHHQqbKs.mjs} +0 -0
  188. /package/dist/{factory-C-EBNsCW.d.mts → factory-Bv0JsGLd.d.cts} +0 -0
  189. /package/dist/{factory-C4cfTHs7.d.cts → factory-DcDjbYQq.d.mts} +0 -0
  190. /package/dist/{index-ByIsf4E7.d.mts → index-BH0zbKp3.d.mts} +0 -0
  191. /package/dist/{index-CumJbg8V.d.cts → index-CsVbgeF4.d.cts} +0 -0
  192. /package/dist/{index-dbTyAXLy.d.cts → index-D2T5b4fK.d.cts} +0 -0
  193. /package/dist/{index-BJvW7OpY.d.mts → index-DJx_8PSR.d.mts} +0 -0
  194. /package/dist/{index-CureNJdc.d.mts → index-WJ-tNaCp.d.mts} +0 -0
  195. /package/dist/{normalize-props-skGwa8Dk.d.cts → normalize-props-EzaAUPva.d.cts} +0 -0
  196. /package/dist/{providers-Dm2P3F2_.mjs → providers-B1DbplwV.mjs} +0 -0
  197. /package/dist/{render-strategy-C8IyLw0O.d.mts → render-strategy-C5J78Qs-.d.mts} +0 -0
  198. /package/dist/{render-strategy-rA4C5NUX.d.cts → render-strategy-DEUBHfUP.d.cts} +0 -0
  199. /package/dist/{types-B4tvWlDb.d.cts → types-C2LNTNCl.d.cts} +0 -0
  200. /package/dist/{types-BmBABPZb.d.mts → types-CdhepaRC.d.mts} +0 -0
  201. /package/dist/{use-event-4J5QFFqK.mjs → use-event-qKb6UUEI.mjs} +0 -0
  202. /package/dist/{use-safe-layout-effect-CLjnuJFb.mjs → use-safe-layout-effect-BHE-Ll-k.mjs} +0 -0
  203. /package/dist/{utils-C-m3mZWI.mjs → utils-Bx4WJ5W9.mjs} +0 -0
@@ -0,0 +1,512 @@
1
+ import { t as __export } from "../../chunk-tPcuhsU6.mjs";
2
+ import { i as useMachine, r as normalizeProps, t as mergeProps } from "../../core-BrQa5x6H.mjs";
3
+ import { t as createContext$1 } from "../../create-context-aizX7yAt.mjs";
4
+ import { n as useEnvironmentContext } from "../../environment-Cnx9ZBbN.mjs";
5
+ import { i as useLocaleContext } from "../../locale-BheNIyu4.mjs";
6
+ import "../../providers-B1DbplwV.mjs";
7
+ import { t as composeRefs } from "../../compose-refs-ymQahgeo.mjs";
8
+ import { n as sprawlify } from "../../factory-BwIiMV5g.mjs";
9
+ import { t as createSplitProps } from "../../create-split-props-BHHQqbKs.mjs";
10
+ import { a as splitPresenceProps, i as usePresence, n as usePresenceContext, t as PresenceProvider } from "../../presence-D-rmmMDm.mjs";
11
+ import "../../use-event-qKb6UUEI.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 };