@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,155 @@
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 { n as sprawlify } from "../../factory-7ydMApfi.mjs";
8
+ import { t as createSplitProps } from "../../create-split-props-BJdRM9I_.mjs";
9
+ import { forwardRef, useId } from "react";
10
+ import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
11
+ import * as marquee from "@sprawlify/primitives/machines/marquee";
12
+ import { anatomy as marqueeAnatomy } from "@sprawlify/primitives/machines/marquee";
13
+
14
+ //#region src/components/marquee/use-marquee-context.ts
15
+ const [MarqueeProvider, useMarqueeContext] = createContext$1({
16
+ name: "MarqueeContext",
17
+ hookName: "useMarqueeContext",
18
+ providerName: "<MarqueeProvider />"
19
+ });
20
+
21
+ //#endregion
22
+ //#region src/components/marquee/marquee-content.tsx
23
+ const MarqueeContent = forwardRef((props, ref) => {
24
+ const { children, ...localProps } = props;
25
+ const marquee$1 = useMarqueeContext();
26
+ return /* @__PURE__ */ jsx(Fragment$1, { children: Array.from({ length: marquee$1.contentCount }).map((_, index) => {
27
+ const mergedProps = mergeProps(marquee$1.getContentProps({ index }), localProps);
28
+ return /* @__PURE__ */ jsx(sprawlify.div, {
29
+ ...mergedProps,
30
+ ref: index === 0 ? ref : void 0,
31
+ children
32
+ }, index);
33
+ }) });
34
+ });
35
+ MarqueeContent.displayName = "MarqueeContent";
36
+
37
+ //#endregion
38
+ //#region src/components/marquee/marquee-context.tsx
39
+ const MarqueeContext = (props) => props.children(useMarqueeContext());
40
+
41
+ //#endregion
42
+ //#region src/components/marquee/marquee-edge.tsx
43
+ const splitEdgeProps = createSplitProps();
44
+ const MarqueeEdge = forwardRef((props, ref) => {
45
+ const [edgeProps, localProps] = splitEdgeProps(props, ["side"]);
46
+ const mergedProps = mergeProps(useMarqueeContext().getEdgeProps(edgeProps), localProps);
47
+ return /* @__PURE__ */ jsx(sprawlify.div, {
48
+ ...mergedProps,
49
+ ref
50
+ });
51
+ });
52
+ MarqueeEdge.displayName = "MarqueeEdge";
53
+
54
+ //#endregion
55
+ //#region src/components/marquee/marquee-item.tsx
56
+ const MarqueeItem = forwardRef((props, ref) => {
57
+ const mergedProps = mergeProps(useMarqueeContext().getItemProps(), props);
58
+ return /* @__PURE__ */ jsx(sprawlify.div, {
59
+ ...mergedProps,
60
+ ref
61
+ });
62
+ });
63
+ MarqueeItem.displayName = "MarqueeItem";
64
+
65
+ //#endregion
66
+ //#region src/components/marquee/use-marquee.ts
67
+ const useMarquee = (props) => {
68
+ const id = useId();
69
+ const { getRootNode } = useEnvironmentContext();
70
+ const { dir } = useLocaleContext();
71
+ const context = {
72
+ id,
73
+ dir,
74
+ getRootNode,
75
+ ...props
76
+ };
77
+ const service = useMachine(marquee.machine, context);
78
+ return marquee.connect(service, normalizeProps);
79
+ };
80
+
81
+ //#endregion
82
+ //#region src/components/marquee/marquee-root.tsx
83
+ const splitRootProps = createSplitProps();
84
+ const MarqueeRoot = forwardRef((props, ref) => {
85
+ const [useMarqueeProps, localProps] = splitRootProps(props, [
86
+ "autoFill",
87
+ "defaultPaused",
88
+ "delay",
89
+ "id",
90
+ "ids",
91
+ "loopCount",
92
+ "onComplete",
93
+ "onLoopComplete",
94
+ "onPauseChange",
95
+ "paused",
96
+ "pauseOnInteraction",
97
+ "reverse",
98
+ "side",
99
+ "spacing",
100
+ "speed",
101
+ "translations"
102
+ ]);
103
+ const marqueeApi = useMarquee(useMarqueeProps);
104
+ const mergedProps = mergeProps(marqueeApi.getRootProps(), localProps);
105
+ return /* @__PURE__ */ jsx(MarqueeProvider, {
106
+ value: marqueeApi,
107
+ children: /* @__PURE__ */ jsx(sprawlify.div, {
108
+ ...mergedProps,
109
+ ref
110
+ })
111
+ });
112
+ });
113
+ MarqueeRoot.displayName = "MarqueeRoot";
114
+
115
+ //#endregion
116
+ //#region src/components/marquee/marquee-root-provider.tsx
117
+ const splitRootProviderProps = createSplitProps();
118
+ const MarqueeRootProvider = forwardRef((props, ref) => {
119
+ const [{ value: marquee$1 }, localProps] = splitRootProviderProps(props, ["value"]);
120
+ const mergedProps = mergeProps(marquee$1.getRootProps(), localProps);
121
+ return /* @__PURE__ */ jsx(MarqueeProvider, {
122
+ value: marquee$1,
123
+ children: /* @__PURE__ */ jsx(sprawlify.div, {
124
+ ...mergedProps,
125
+ ref
126
+ })
127
+ });
128
+ });
129
+ MarqueeRootProvider.displayName = "MarqueeRootProvider";
130
+
131
+ //#endregion
132
+ //#region src/components/marquee/marquee-viewport.tsx
133
+ const MarqueeViewport = forwardRef((props, ref) => {
134
+ const mergedProps = mergeProps(useMarqueeContext().getViewportProps(), props);
135
+ return /* @__PURE__ */ jsx(sprawlify.div, {
136
+ ...mergedProps,
137
+ ref
138
+ });
139
+ });
140
+ MarqueeViewport.displayName = "MarqueeViewport";
141
+
142
+ //#endregion
143
+ //#region src/components/marquee/marquee.ts
144
+ var marquee_exports = /* @__PURE__ */ __export({
145
+ Content: () => MarqueeContent,
146
+ Context: () => MarqueeContext,
147
+ Edge: () => MarqueeEdge,
148
+ Item: () => MarqueeItem,
149
+ Root: () => MarqueeRoot,
150
+ RootProvider: () => MarqueeRootProvider,
151
+ Viewport: () => MarqueeViewport
152
+ });
153
+
154
+ //#endregion
155
+ export { marquee_exports as Marquee, MarqueeContent, MarqueeContext, MarqueeEdge, MarqueeItem, MarqueeRoot, MarqueeRootProvider, MarqueeViewport, marqueeAnatomy, useMarquee, useMarqueeContext };
@@ -0,0 +1,548 @@
1
+ const require_chunk = require('../../chunk-BYnRvbsk.cjs');
2
+ const require_core = require('../../core-DCWyxy9D.cjs');
3
+ const require_create_context = require('../../create-context-CQ4U0lLj.cjs');
4
+ const require_environment = require('../../environment-CvilmfQt.cjs');
5
+ const require_locale = require('../../locale-BcnWD1Hf.cjs');
6
+ require('../../providers-BNAArubQ.cjs');
7
+ const require_compose_refs = require('../../compose-refs-C5QNDywq.cjs');
8
+ const require_factory = require('../../factory-C166evrS.cjs');
9
+ const require_create_split_props = require('../../create-split-props-Dp4TWOyM.cjs');
10
+ const require_presence = require('../../presence-CPov8wyU.cjs');
11
+ require('../../use-event-CLH8zHoJ.cjs');
12
+ let react = require("react");
13
+ let react_jsx_runtime = require("react/jsx-runtime");
14
+ let __sprawlify_primitives_machines_menu = require("@sprawlify/primitives/machines/menu");
15
+ __sprawlify_primitives_machines_menu = require_chunk.__toESM(__sprawlify_primitives_machines_menu);
16
+ let __sprawlify_primitives_core = require("@sprawlify/primitives/core");
17
+
18
+ //#region src/components/menu/use-menu-context.ts
19
+ const [MenuProvider, useMenuContext] = require_create_context.createContext({
20
+ name: "MenuContext",
21
+ hookName: "useMenuContext",
22
+ providerName: "<MenuProvider />",
23
+ strict: false
24
+ });
25
+
26
+ //#endregion
27
+ //#region src/components/menu/menu-arrow.tsx
28
+ const MenuArrow = (0, react.forwardRef)((props, ref) => {
29
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(useMenuContext().getArrowProps(), props);
30
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
31
+ ...mergedProps,
32
+ ref
33
+ });
34
+ });
35
+ MenuArrow.displayName = "MenuArrow";
36
+
37
+ //#endregion
38
+ //#region src/components/menu/menu-arrow-tip.tsx
39
+ const MenuArrowTip = (0, react.forwardRef)((props, ref) => {
40
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(useMenuContext().getArrowTipProps(), props);
41
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
42
+ ...mergedProps,
43
+ ref
44
+ });
45
+ });
46
+ MenuArrowTip.displayName = "MenuArrowTip";
47
+
48
+ //#endregion
49
+ //#region src/components/menu/use-menu-item-context.ts
50
+ const [MenuItemProvider, useMenuItemContext] = require_create_context.createContext({
51
+ name: "MenuItemContext",
52
+ hookName: "useMenuItemContext",
53
+ providerName: "<MenuItemProvider />"
54
+ });
55
+
56
+ //#endregion
57
+ //#region src/components/menu/use-menu-option-item-props-context.ts
58
+ const [MenuItemPropsProvider, useMenuItemPropsContext] = require_create_context.createContext({
59
+ name: "MenuItemPropsContext",
60
+ hookName: "useMenuItemPropsContext",
61
+ providerName: "<MenuItemPropsProvider />"
62
+ });
63
+
64
+ //#endregion
65
+ //#region src/components/menu/menu-checkbox-item.tsx
66
+ const splitOptionItemProps$1 = require_create_split_props.createSplitProps();
67
+ const MenuCheckboxItem = (0, react.forwardRef)((props, ref) => {
68
+ const [partialOptionItemProps, localProps] = splitOptionItemProps$1(props, [
69
+ "checked",
70
+ "closeOnSelect",
71
+ "disabled",
72
+ "onCheckedChange",
73
+ "value",
74
+ "valueText"
75
+ ]);
76
+ const optionItemProps = {
77
+ ...partialOptionItemProps,
78
+ type: "checkbox"
79
+ };
80
+ const menu = useMenuContext();
81
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(menu.getOptionItemProps(optionItemProps), localProps);
82
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuItemPropsProvider, {
83
+ value: optionItemProps,
84
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuItemProvider, {
85
+ value: menu.getOptionItemState(optionItemProps),
86
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
87
+ ...mergedProps,
88
+ ref
89
+ })
90
+ })
91
+ });
92
+ });
93
+ MenuCheckboxItem.displayName = "MenuCheckboxItem";
94
+
95
+ //#endregion
96
+ //#region src/components/menu/menu-content.tsx
97
+ const MenuContent = (0, react.forwardRef)((props, ref) => {
98
+ const menu = useMenuContext();
99
+ const presence = require_presence.usePresenceContext();
100
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(menu.getContentProps(), presence.getPresenceProps(), props);
101
+ if (presence.unmounted) return null;
102
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
103
+ ...mergedProps,
104
+ ref: require_compose_refs.composeRefs(presence.ref, ref)
105
+ });
106
+ });
107
+ MenuContent.displayName = "MenuContent";
108
+
109
+ //#endregion
110
+ //#region src/components/menu/menu-context.tsx
111
+ const MenuContext = (props) => props.children(useMenuContext());
112
+
113
+ //#endregion
114
+ //#region src/components/menu/menu-context-trigger.tsx
115
+ const MenuContextTrigger = (0, react.forwardRef)((props, ref) => {
116
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(useMenuContext().getContextTriggerProps(), props);
117
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.button, {
118
+ ...mergedProps,
119
+ ref
120
+ });
121
+ });
122
+ MenuContextTrigger.displayName = "MenuContextTrigger";
123
+
124
+ //#endregion
125
+ //#region src/components/menu/menu-indicator.tsx
126
+ const MenuIndicator = (0, react.forwardRef)((props, ref) => {
127
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(useMenuContext().getIndicatorProps(), props);
128
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
129
+ ...mergedProps,
130
+ ref
131
+ });
132
+ });
133
+ MenuIndicator.displayName = "MenuIndicator";
134
+
135
+ //#endregion
136
+ //#region src/components/menu/menu-item.tsx
137
+ const splitItemBaseProps = require_create_split_props.createSplitProps();
138
+ const MenuItem = (0, react.forwardRef)((props, ref) => {
139
+ const [itemProps, localProps] = splitItemBaseProps(props, [
140
+ "closeOnSelect",
141
+ "disabled",
142
+ "value",
143
+ "valueText",
144
+ "onSelect"
145
+ ]);
146
+ const menu = useMenuContext();
147
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(menu.getItemProps(itemProps), localProps);
148
+ const itemState = menu.getItemState(itemProps);
149
+ (0, react.useEffect)(() => {
150
+ return menu.addItemListener({
151
+ id: itemState.id,
152
+ onSelect: itemProps.onSelect
153
+ });
154
+ }, [itemState.id, itemProps.onSelect]);
155
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuItemPropsProvider, {
156
+ value: itemProps,
157
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuItemProvider, {
158
+ value: itemState,
159
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
160
+ ...mergedProps,
161
+ ref
162
+ })
163
+ })
164
+ });
165
+ });
166
+ MenuItem.displayName = "MenuItem";
167
+
168
+ //#endregion
169
+ //#region src/components/menu/menu-item-context.tsx
170
+ const MenuItemContext = (props) => props.children(useMenuItemContext());
171
+
172
+ //#endregion
173
+ //#region src/components/menu/use-menu-item-group-context.ts
174
+ const [MenuItemGroupProvider, useMenuItemGroupContext] = require_create_context.createContext({
175
+ name: "MenuItemGroupContext",
176
+ hookName: "useMenuItemGroupContext",
177
+ providerName: "<MenuItemGroupProvider />"
178
+ });
179
+
180
+ //#endregion
181
+ //#region src/components/menu/menu-item-group.tsx
182
+ const splitItemGroupProps$1 = require_create_split_props.createSplitProps();
183
+ const MenuItemGroup = (0, react.forwardRef)((props, ref) => {
184
+ const [optionalItemGroupProps, localProps] = splitItemGroupProps$1(props, ["id"]);
185
+ const menu = useMenuContext();
186
+ const itemGroupProps = {
187
+ id: (0, react.useId)(),
188
+ ...optionalItemGroupProps
189
+ };
190
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(menu.getItemGroupProps(itemGroupProps), localProps);
191
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuItemGroupProvider, {
192
+ value: itemGroupProps,
193
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
194
+ ...mergedProps,
195
+ ref
196
+ })
197
+ });
198
+ });
199
+ MenuItemGroup.displayName = "MenuItemGroup";
200
+
201
+ //#endregion
202
+ //#region src/components/menu/menu-item-group-label.tsx
203
+ const MenuItemGroupLabel = (0, react.forwardRef)((props, ref) => {
204
+ const menu = useMenuContext();
205
+ const itemGroup = useMenuItemGroupContext();
206
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(menu.getItemGroupLabelProps({ htmlFor: itemGroup.id }), props);
207
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
208
+ ...mergedProps,
209
+ ref
210
+ });
211
+ });
212
+ MenuItemGroupLabel.displayName = "MenuItemGroupLabel";
213
+
214
+ //#endregion
215
+ //#region src/components/menu/menu-item-indicator.tsx
216
+ const MenuItemIndicator = (0, react.forwardRef)((props, ref) => {
217
+ const menu = useMenuContext();
218
+ const itemProps = useMenuItemPropsContext();
219
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(menu.getItemIndicatorProps(itemProps), props);
220
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
221
+ ...mergedProps,
222
+ ref
223
+ });
224
+ });
225
+ MenuItemIndicator.displayName = "MenuItemIndicator";
226
+
227
+ //#endregion
228
+ //#region src/components/menu/menu-item-text.tsx
229
+ const MenuItemText = (0, react.forwardRef)((props, ref) => {
230
+ const menu = useMenuContext();
231
+ const itemProps = useMenuItemPropsContext();
232
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(menu.getItemTextProps(itemProps), props);
233
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
234
+ ...mergedProps,
235
+ ref
236
+ });
237
+ });
238
+ MenuItemText.displayName = "MenuItemText";
239
+
240
+ //#endregion
241
+ //#region src/components/menu/menu-positioner.tsx
242
+ const MenuPositioner = (0, react.forwardRef)((props, ref) => {
243
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(useMenuContext().getPositionerProps(), props);
244
+ if (require_presence.usePresenceContext().unmounted) return null;
245
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
246
+ ...mergedProps,
247
+ ref
248
+ });
249
+ });
250
+ MenuPositioner.displayName = "MenuPositioner";
251
+
252
+ //#endregion
253
+ //#region src/components/menu/menu-radio-item.tsx
254
+ const splitOptionItemProps = require_create_split_props.createSplitProps();
255
+ const MenuRadioItem = (0, react.forwardRef)((props, ref) => {
256
+ const [partialItemProps, localProps] = splitOptionItemProps(props, [
257
+ "closeOnSelect",
258
+ "disabled",
259
+ "value",
260
+ "valueText"
261
+ ]);
262
+ const menu = useMenuContext();
263
+ const itemGroup = useMenuItemGroupContext();
264
+ const optionItemProps = {
265
+ ...partialItemProps,
266
+ checked: itemGroup.value === partialItemProps.value,
267
+ type: "radio",
268
+ onCheckedChange: () => itemGroup.onValueChange?.({ value: partialItemProps.value })
269
+ };
270
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(menu.getOptionItemProps(optionItemProps), localProps);
271
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuItemPropsProvider, {
272
+ value: optionItemProps,
273
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuItemProvider, {
274
+ value: menu.getOptionItemState(optionItemProps),
275
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
276
+ ...mergedProps,
277
+ ref
278
+ })
279
+ })
280
+ });
281
+ });
282
+ MenuRadioItem.displayName = "MenuRadioItem";
283
+
284
+ //#endregion
285
+ //#region src/components/menu/menu-radio-item-group.tsx
286
+ const splitItemGroupProps = require_create_split_props.createSplitProps();
287
+ const MenuRadioItemGroup = (0, react.forwardRef)((props, ref) => {
288
+ const [optionalItemGroupProps, localProps] = splitItemGroupProps(props, [
289
+ "id",
290
+ "onValueChange",
291
+ "value"
292
+ ]);
293
+ const menu = useMenuContext();
294
+ const itemGroupProps = {
295
+ id: (0, react.useId)(),
296
+ ...optionalItemGroupProps
297
+ };
298
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(menu.getItemGroupProps({ id: itemGroupProps.id }), localProps);
299
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuItemGroupProvider, {
300
+ value: itemGroupProps,
301
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
302
+ ...mergedProps,
303
+ ref
304
+ })
305
+ });
306
+ });
307
+ MenuRadioItemGroup.displayName = "MenuRadioItemGroup";
308
+
309
+ //#endregion
310
+ //#region src/utils/use-effect-once.ts
311
+ const useEffectOnce = (cb) => {
312
+ const savedCallback = (0, react.useRef)(cb);
313
+ const effectGuard = (0, react.useRef)(false);
314
+ (0, react.useEffect)(() => {
315
+ savedCallback.current = cb;
316
+ });
317
+ (0, react.useEffect)(() => {
318
+ if (effectGuard.current !== true) {
319
+ effectGuard.current = true;
320
+ savedCallback.current();
321
+ }
322
+ }, []);
323
+ };
324
+
325
+ //#endregion
326
+ //#region src/components/menu/use-menu.ts
327
+ const useMenu = (props) => {
328
+ const id = (0, react.useId)();
329
+ const { getRootNode } = require_environment.useEnvironmentContext();
330
+ const { dir } = require_locale.useLocaleContext();
331
+ const machineProps = {
332
+ id,
333
+ dir,
334
+ getRootNode,
335
+ ...props
336
+ };
337
+ const service = require_core.useMachine(__sprawlify_primitives_machines_menu.machine, machineProps);
338
+ return {
339
+ api: __sprawlify_primitives_machines_menu.connect(service, require_core.normalizeProps),
340
+ service
341
+ };
342
+ };
343
+
344
+ //#endregion
345
+ //#region src/components/menu/use-menu-machine-context.ts
346
+ const [MenuMachineProvider, useMenuMachineContext] = require_create_context.createContext({
347
+ name: "MenuMachineContext",
348
+ hookName: "useMenuMachineContext",
349
+ providerName: "<MenuMachineProvider />",
350
+ strict: false
351
+ });
352
+
353
+ //#endregion
354
+ //#region src/components/menu/use-menu-trigger-item-context.ts
355
+ const [MenuTriggerItemProvider, useMenuTriggerItemContext] = require_create_context.createContext({
356
+ name: "MenuMachineContext",
357
+ hookName: "useMenuMachineContext",
358
+ providerName: "<MenuMachineProvider />",
359
+ strict: false
360
+ });
361
+
362
+ //#endregion
363
+ //#region src/components/menu/menu-root.tsx
364
+ const splitRootProps = require_create_split_props.createSplitProps();
365
+ const MenuRoot = (props) => {
366
+ const [presenceProps, menuProps] = require_presence.splitPresenceProps(props);
367
+ const [useMenuProps, localProps] = splitRootProps(menuProps, [
368
+ "anchorPoint",
369
+ "aria-label",
370
+ "closeOnSelect",
371
+ "composite",
372
+ "defaultHighlightedValue",
373
+ "defaultOpen",
374
+ "highlightedValue",
375
+ "id",
376
+ "ids",
377
+ "loopFocus",
378
+ "navigate",
379
+ "onEscapeKeyDown",
380
+ "onFocusOutside",
381
+ "onHighlightChange",
382
+ "onInteractOutside",
383
+ "onOpenChange",
384
+ "onPointerDownOutside",
385
+ "onRequestDismiss",
386
+ "onSelect",
387
+ "open",
388
+ "positioning",
389
+ "typeahead"
390
+ ]);
391
+ const parentApi = useMenuContext();
392
+ const parentMachine = useMenuMachineContext();
393
+ const { api, service } = useMenu(useMenuProps);
394
+ const presence = require_presence.usePresence((0, __sprawlify_primitives_core.mergeProps)({ present: api.open }, presenceProps));
395
+ useEffectOnce(() => {
396
+ if (!parentMachine) return;
397
+ if (!parentApi) return;
398
+ parentApi.setChild(service);
399
+ api.setParent(parentMachine);
400
+ });
401
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuTriggerItemProvider, {
402
+ value: (0, react.useCallback)(() => parentApi?.getTriggerItemProps(api), [api, parentApi]),
403
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuMachineProvider, {
404
+ value: service,
405
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuProvider, {
406
+ value: api,
407
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_presence.PresenceProvider, {
408
+ value: presence,
409
+ ...localProps
410
+ })
411
+ })
412
+ })
413
+ });
414
+ };
415
+
416
+ //#endregion
417
+ //#region src/components/menu/menu-root-provider.tsx
418
+ const MenuRootProvider = (props) => {
419
+ const parentApi = useMenuContext();
420
+ const parentMachine = useMenuMachineContext();
421
+ const [presenceProps, { value: menu, children }] = require_presence.splitPresenceProps(props);
422
+ const { api, service } = menu;
423
+ const presence = require_presence.usePresence((0, __sprawlify_primitives_core.mergeProps)({ present: api.open }, presenceProps));
424
+ useEffectOnce(() => {
425
+ if (!parentMachine) return;
426
+ if (!parentApi) return;
427
+ parentApi.setChild(service);
428
+ api.setParent(parentMachine);
429
+ });
430
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuTriggerItemProvider, {
431
+ value: (0, react.useCallback)(() => parentApi?.getTriggerItemProps(api), [api, parentApi]),
432
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuMachineProvider, {
433
+ value: service,
434
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuProvider, {
435
+ value: api,
436
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_presence.PresenceProvider, {
437
+ value: presence,
438
+ children
439
+ })
440
+ })
441
+ })
442
+ });
443
+ };
444
+
445
+ //#endregion
446
+ //#region src/components/menu/menu-separator.tsx
447
+ const MenuSeparator = (0, react.forwardRef)((props, ref) => {
448
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(useMenuContext().getSeparatorProps(), props);
449
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.hr, {
450
+ ...mergedProps,
451
+ ref
452
+ });
453
+ });
454
+ MenuSeparator.displayName = "MenuSeparator";
455
+
456
+ //#endregion
457
+ //#region src/components/menu/menu-trigger.tsx
458
+ const MenuTrigger = (0, react.forwardRef)((props, ref) => {
459
+ const menu = useMenuContext();
460
+ const presence = require_presence.usePresenceContext();
461
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)({
462
+ ...menu.getTriggerProps(),
463
+ "aria-controls": presence.unmounted ? void 0 : menu.getTriggerProps()["aria-controls"]
464
+ }, props);
465
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.button, {
466
+ ...mergedProps,
467
+ ref
468
+ });
469
+ });
470
+ MenuTrigger.displayName = "MenuTrigger";
471
+
472
+ //#endregion
473
+ //#region src/components/menu/menu-trigger-item.tsx
474
+ const MenuTriggerItem = (0, react.forwardRef)((props, ref) => {
475
+ const mergedProps = (0, __sprawlify_primitives_core.mergeProps)(useMenuTriggerItemContext()?.() ?? {}, props);
476
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MenuItemPropsProvider, {
477
+ value: { value: mergedProps["data-value"] },
478
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_factory.sprawlify.div, {
479
+ ...mergedProps,
480
+ ref
481
+ })
482
+ });
483
+ });
484
+ MenuTriggerItem.displayName = "MenuTriggerItem";
485
+
486
+ //#endregion
487
+ //#region src/components/menu/menu.ts
488
+ var menu_exports = /* @__PURE__ */ require_chunk.__export({
489
+ Arrow: () => MenuArrow,
490
+ ArrowTip: () => MenuArrowTip,
491
+ CheckboxItem: () => MenuCheckboxItem,
492
+ Content: () => MenuContent,
493
+ Context: () => MenuContext,
494
+ ContextTrigger: () => MenuContextTrigger,
495
+ Indicator: () => MenuIndicator,
496
+ Item: () => MenuItem,
497
+ ItemContext: () => MenuItemContext,
498
+ ItemGroup: () => MenuItemGroup,
499
+ ItemGroupLabel: () => MenuItemGroupLabel,
500
+ ItemIndicator: () => MenuItemIndicator,
501
+ ItemText: () => MenuItemText,
502
+ Positioner: () => MenuPositioner,
503
+ RadioItem: () => MenuRadioItem,
504
+ RadioItemGroup: () => MenuRadioItemGroup,
505
+ Root: () => MenuRoot,
506
+ RootProvider: () => MenuRootProvider,
507
+ Separator: () => MenuSeparator,
508
+ Trigger: () => MenuTrigger,
509
+ TriggerItem: () => MenuTriggerItem
510
+ });
511
+
512
+ //#endregion
513
+ Object.defineProperty(exports, 'Menu', {
514
+ enumerable: true,
515
+ get: function () {
516
+ return menu_exports;
517
+ }
518
+ });
519
+ exports.MenuArrow = MenuArrow;
520
+ exports.MenuArrowTip = MenuArrowTip;
521
+ exports.MenuCheckboxItem = MenuCheckboxItem;
522
+ exports.MenuContent = MenuContent;
523
+ exports.MenuContext = MenuContext;
524
+ exports.MenuContextTrigger = MenuContextTrigger;
525
+ exports.MenuIndicator = MenuIndicator;
526
+ exports.MenuItem = MenuItem;
527
+ exports.MenuItemContext = MenuItemContext;
528
+ exports.MenuItemGroup = MenuItemGroup;
529
+ exports.MenuItemGroupLabel = MenuItemGroupLabel;
530
+ exports.MenuItemIndicator = MenuItemIndicator;
531
+ exports.MenuItemText = MenuItemText;
532
+ exports.MenuPositioner = MenuPositioner;
533
+ exports.MenuRadioItem = MenuRadioItem;
534
+ exports.MenuRadioItemGroup = MenuRadioItemGroup;
535
+ exports.MenuRoot = MenuRoot;
536
+ exports.MenuRootProvider = MenuRootProvider;
537
+ exports.MenuSeparator = MenuSeparator;
538
+ exports.MenuTrigger = MenuTrigger;
539
+ exports.MenuTriggerItem = MenuTriggerItem;
540
+ Object.defineProperty(exports, 'menuAnatomy', {
541
+ enumerable: true,
542
+ get: function () {
543
+ return __sprawlify_primitives_machines_menu.anatomy;
544
+ }
545
+ });
546
+ exports.useMenu = useMenu;
547
+ exports.useMenuContext = useMenuContext;
548
+ exports.useMenuItemContext = useMenuItemContext;