one 1.21.6 → 1.21.8

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 (209) hide show
  1. package/dist/cjs/cli/dev.native.js.map +1 -1
  2. package/dist/cjs/cli.cjs +0 -3
  3. package/dist/cjs/cli.native.js +0 -3
  4. package/dist/cjs/cli.native.js.map +1 -1
  5. package/dist/cjs/image/getImageData.cjs +1 -1
  6. package/dist/cjs/image/getImageData.native.js +1 -1
  7. package/dist/cjs/image/getImageData.native.js.map +1 -1
  8. package/dist/cjs/index.native.js.map +1 -1
  9. package/dist/cjs/layouts/Stack.cjs +5 -5
  10. package/dist/cjs/layouts/Stack.native.js +5 -5
  11. package/dist/cjs/layouts/Stack.native.js.map +1 -1
  12. package/dist/cjs/layouts/stack-utils/StackScreen.cjs +3 -0
  13. package/dist/cjs/layouts/stack-utils/StackScreen.native.js +3 -0
  14. package/dist/cjs/layouts/stack-utils/StackScreen.native.js.map +1 -1
  15. package/dist/cjs/layouts/stack-utils/StackToolbar.cjs +419 -0
  16. package/dist/cjs/layouts/stack-utils/StackToolbar.native.js +453 -0
  17. package/dist/cjs/layouts/stack-utils/StackToolbar.native.js.map +1 -0
  18. package/dist/cjs/layouts/stack-utils/StackToolbar.types.cjs +18 -0
  19. package/dist/cjs/layouts/stack-utils/StackToolbar.types.native.js +21 -0
  20. package/dist/cjs/layouts/stack-utils/StackToolbar.types.native.js.map +1 -0
  21. package/dist/cjs/layouts/stack-utils/__tests__/StackToolbar.runtime.test.cjs +63 -0
  22. package/dist/cjs/layouts/stack-utils/__tests__/StackToolbar.runtime.test.native.js +73 -0
  23. package/dist/cjs/layouts/stack-utils/__tests__/StackToolbar.runtime.test.native.js.map +1 -0
  24. package/dist/cjs/layouts/stack-utils/__tests__/composition.test.cjs +205 -0
  25. package/dist/cjs/layouts/stack-utils/__tests__/composition.test.native.js +220 -0
  26. package/dist/cjs/layouts/stack-utils/__tests__/composition.test.native.js.map +1 -1
  27. package/dist/cjs/layouts/stack-utils/index.cjs +2 -0
  28. package/dist/cjs/layouts/stack-utils/index.native.js +2 -0
  29. package/dist/cjs/layouts/stack-utils/index.native.js.map +1 -1
  30. package/dist/cjs/layouts/withLayoutContext.cjs +39 -8
  31. package/dist/cjs/layouts/withLayoutContext.native.js +43 -8
  32. package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
  33. package/dist/cjs/layouts/withLayoutContext.test.cjs +96 -0
  34. package/dist/cjs/layouts/withLayoutContext.test.native.js +100 -0
  35. package/dist/cjs/layouts/withLayoutContext.test.native.js.map +1 -0
  36. package/dist/cjs/router/Route.cjs +3 -0
  37. package/dist/cjs/router/Route.native.js +3 -0
  38. package/dist/cjs/router/Route.native.js.map +1 -1
  39. package/dist/cjs/router/protectedRoutes.test.cjs +22 -0
  40. package/dist/cjs/router/protectedRoutes.test.native.js +25 -0
  41. package/dist/cjs/router/protectedRoutes.test.native.js.map +1 -0
  42. package/dist/cjs/router/router.cjs +26 -8
  43. package/dist/cjs/router/router.native.js +26 -8
  44. package/dist/cjs/router/router.native.js.map +1 -1
  45. package/dist/cjs/router/useScreens.cjs +38 -11
  46. package/dist/cjs/router/useScreens.native.js +39 -11
  47. package/dist/cjs/router/useScreens.native.js.map +1 -1
  48. package/dist/cjs/router/useScreens.test.cjs +134 -0
  49. package/dist/cjs/router/useScreens.test.native.js +163 -0
  50. package/dist/cjs/router/useScreens.test.native.js.map +1 -0
  51. package/dist/cjs/views/Navigator.cjs +14 -6
  52. package/dist/cjs/views/Navigator.native.js +14 -6
  53. package/dist/cjs/views/Navigator.native.js.map +1 -1
  54. package/dist/cjs/views/Protected.native.js.map +1 -1
  55. package/dist/cjs/views/SuspenseFallback.cjs +18 -0
  56. package/dist/cjs/views/SuspenseFallback.native.js +21 -0
  57. package/dist/cjs/views/SuspenseFallback.native.js.map +1 -0
  58. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +47 -7
  59. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +47 -7
  60. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  61. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.cjs +15 -6
  62. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js +15 -6
  63. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -1
  64. package/dist/esm/cli/dev.mjs.map +1 -1
  65. package/dist/esm/cli/dev.native.js.map +1 -1
  66. package/dist/esm/cli.mjs +0 -3
  67. package/dist/esm/cli.mjs.map +1 -1
  68. package/dist/esm/cli.native.js +0 -3
  69. package/dist/esm/cli.native.js.map +1 -1
  70. package/dist/esm/image/getImageData.mjs +1 -1
  71. package/dist/esm/image/getImageData.mjs.map +1 -1
  72. package/dist/esm/image/getImageData.native.js +1 -1
  73. package/dist/esm/image/getImageData.native.js.map +1 -1
  74. package/dist/esm/index.js.map +1 -1
  75. package/dist/esm/index.mjs.map +1 -1
  76. package/dist/esm/index.native.js.map +1 -1
  77. package/dist/esm/layouts/Stack.mjs +6 -6
  78. package/dist/esm/layouts/Stack.mjs.map +1 -1
  79. package/dist/esm/layouts/Stack.native.js +6 -6
  80. package/dist/esm/layouts/Stack.native.js.map +1 -1
  81. package/dist/esm/layouts/stack-utils/StackScreen.mjs +3 -0
  82. package/dist/esm/layouts/stack-utils/StackScreen.mjs.map +1 -1
  83. package/dist/esm/layouts/stack-utils/StackScreen.native.js +3 -0
  84. package/dist/esm/layouts/stack-utils/StackScreen.native.js.map +1 -1
  85. package/dist/esm/layouts/stack-utils/StackToolbar.mjs +384 -0
  86. package/dist/esm/layouts/stack-utils/StackToolbar.mjs.map +1 -0
  87. package/dist/esm/layouts/stack-utils/StackToolbar.native.js +416 -0
  88. package/dist/esm/layouts/stack-utils/StackToolbar.native.js.map +1 -0
  89. package/dist/esm/layouts/stack-utils/StackToolbar.types.mjs +2 -0
  90. package/dist/esm/layouts/stack-utils/StackToolbar.types.mjs.map +1 -0
  91. package/dist/esm/layouts/stack-utils/StackToolbar.types.native.js +2 -0
  92. package/dist/esm/layouts/stack-utils/StackToolbar.types.native.js.map +1 -0
  93. package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.runtime.test.mjs +40 -0
  94. package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.runtime.test.mjs.map +1 -0
  95. package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.runtime.test.native.js +47 -0
  96. package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.runtime.test.native.js.map +1 -0
  97. package/dist/esm/layouts/stack-utils/__tests__/composition.test.mjs +205 -0
  98. package/dist/esm/layouts/stack-utils/__tests__/composition.test.mjs.map +1 -1
  99. package/dist/esm/layouts/stack-utils/__tests__/composition.test.native.js +220 -0
  100. package/dist/esm/layouts/stack-utils/__tests__/composition.test.native.js.map +1 -1
  101. package/dist/esm/layouts/stack-utils/index.mjs +2 -1
  102. package/dist/esm/layouts/stack-utils/index.mjs.map +1 -1
  103. package/dist/esm/layouts/stack-utils/index.native.js +2 -1
  104. package/dist/esm/layouts/stack-utils/index.native.js.map +1 -1
  105. package/dist/esm/layouts/withLayoutContext.mjs +41 -11
  106. package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
  107. package/dist/esm/layouts/withLayoutContext.native.js +45 -11
  108. package/dist/esm/layouts/withLayoutContext.native.js.map +1 -1
  109. package/dist/esm/layouts/withLayoutContext.test.mjs +73 -0
  110. package/dist/esm/layouts/withLayoutContext.test.mjs.map +1 -0
  111. package/dist/esm/layouts/withLayoutContext.test.native.js +74 -0
  112. package/dist/esm/layouts/withLayoutContext.test.native.js.map +1 -0
  113. package/dist/esm/router/Route.mjs +3 -1
  114. package/dist/esm/router/Route.mjs.map +1 -1
  115. package/dist/esm/router/Route.native.js +3 -1
  116. package/dist/esm/router/Route.native.js.map +1 -1
  117. package/dist/esm/router/protectedRoutes.test.mjs +23 -0
  118. package/dist/esm/router/protectedRoutes.test.mjs.map +1 -0
  119. package/dist/esm/router/protectedRoutes.test.native.js +23 -0
  120. package/dist/esm/router/protectedRoutes.test.native.js.map +1 -0
  121. package/dist/esm/router/router.mjs +26 -9
  122. package/dist/esm/router/router.mjs.map +1 -1
  123. package/dist/esm/router/router.native.js +26 -9
  124. package/dist/esm/router/router.native.js.map +1 -1
  125. package/dist/esm/router/useScreens.mjs +39 -11
  126. package/dist/esm/router/useScreens.mjs.map +1 -1
  127. package/dist/esm/router/useScreens.native.js +40 -11
  128. package/dist/esm/router/useScreens.native.js.map +1 -1
  129. package/dist/esm/router/useScreens.test.mjs +105 -0
  130. package/dist/esm/router/useScreens.test.mjs.map +1 -0
  131. package/dist/esm/router/useScreens.test.native.js +130 -0
  132. package/dist/esm/router/useScreens.test.native.js.map +1 -0
  133. package/dist/esm/views/Navigator.mjs +15 -7
  134. package/dist/esm/views/Navigator.mjs.map +1 -1
  135. package/dist/esm/views/Navigator.native.js +15 -7
  136. package/dist/esm/views/Navigator.native.js.map +1 -1
  137. package/dist/esm/views/Protected.mjs.map +1 -1
  138. package/dist/esm/views/Protected.native.js.map +1 -1
  139. package/dist/esm/views/SuspenseFallback.mjs +2 -0
  140. package/dist/esm/views/SuspenseFallback.mjs.map +1 -0
  141. package/dist/esm/views/SuspenseFallback.native.js +2 -0
  142. package/dist/esm/views/SuspenseFallback.native.js.map +1 -0
  143. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +47 -7
  144. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
  145. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +47 -7
  146. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  147. package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.mjs +15 -6
  148. package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.mjs.map +1 -1
  149. package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.native.js +15 -6
  150. package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -1
  151. package/package.json +12 -11
  152. package/src/cli/dev.ts +0 -1
  153. package/src/cli.ts +0 -3
  154. package/src/image/getImageData.ts +2 -2
  155. package/src/index.ts +12 -0
  156. package/src/layouts/Stack.tsx +6 -4
  157. package/src/layouts/stack-utils/README.md +1 -0
  158. package/src/layouts/stack-utils/StackScreen.tsx +7 -0
  159. package/src/layouts/stack-utils/StackToolbar.tsx +550 -0
  160. package/src/layouts/stack-utils/StackToolbar.types.ts +98 -0
  161. package/src/layouts/stack-utils/__tests__/StackToolbar.runtime.test.tsx +46 -0
  162. package/src/layouts/stack-utils/__tests__/composition.test.tsx +176 -0
  163. package/src/layouts/stack-utils/index.tsx +16 -0
  164. package/src/layouts/withLayoutContext.test.tsx +74 -0
  165. package/src/layouts/withLayoutContext.tsx +71 -12
  166. package/src/router/Route.tsx +8 -0
  167. package/src/router/protectedRoutes.test.ts +35 -0
  168. package/src/router/router.ts +48 -20
  169. package/src/router/useScreens.test.tsx +139 -0
  170. package/src/router/useScreens.tsx +59 -13
  171. package/src/views/Navigator.tsx +25 -5
  172. package/src/views/Protected.tsx +3 -0
  173. package/src/views/SuspenseFallback.ts +7 -0
  174. package/src/vite/plugins/fileSystemRouterPlugin.test.ts +15 -6
  175. package/src/vite/plugins/fileSystemRouterPlugin.tsx +52 -7
  176. package/types/cli/dev.d.ts +0 -1
  177. package/types/cli/dev.d.ts.map +1 -1
  178. package/types/image/getImageData.d.ts +1 -1
  179. package/types/image/getImageData.d.ts.map +1 -1
  180. package/types/index.d.ts +2 -1
  181. package/types/index.d.ts.map +1 -1
  182. package/types/layouts/Stack.d.ts +11 -0
  183. package/types/layouts/Stack.d.ts.map +1 -1
  184. package/types/layouts/stack-utils/StackScreen.d.ts.map +1 -1
  185. package/types/layouts/stack-utils/StackToolbar.d.ts +26 -0
  186. package/types/layouts/stack-utils/StackToolbar.d.ts.map +1 -0
  187. package/types/layouts/stack-utils/StackToolbar.types.d.ts +82 -0
  188. package/types/layouts/stack-utils/StackToolbar.types.d.ts.map +1 -0
  189. package/types/layouts/stack-utils/index.d.ts +3 -1
  190. package/types/layouts/stack-utils/index.d.ts.map +1 -1
  191. package/types/layouts/withLayoutContext.d.ts +7 -0
  192. package/types/layouts/withLayoutContext.d.ts.map +1 -1
  193. package/types/layouts/withLayoutContext.test.d.ts +2 -0
  194. package/types/layouts/withLayoutContext.test.d.ts.map +1 -0
  195. package/types/router/Route.d.ts +4 -0
  196. package/types/router/Route.d.ts.map +1 -1
  197. package/types/router/protectedRoutes.test.d.ts +2 -0
  198. package/types/router/protectedRoutes.test.d.ts.map +1 -0
  199. package/types/router/router.d.ts +4 -6
  200. package/types/router/router.d.ts.map +1 -1
  201. package/types/router/useScreens.d.ts.map +1 -1
  202. package/types/router/useScreens.test.d.ts +2 -0
  203. package/types/router/useScreens.test.d.ts.map +1 -0
  204. package/types/views/Navigator.d.ts.map +1 -1
  205. package/types/views/Protected.d.ts +3 -0
  206. package/types/views/Protected.d.ts.map +1 -1
  207. package/types/views/SuspenseFallback.d.ts +8 -0
  208. package/types/views/SuspenseFallback.d.ts.map +1 -0
  209. package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
@@ -0,0 +1,384 @@
1
+ "use client";
2
+
3
+ import { MenuAction, ToolbarHost, ToolbarItem } from "@vxrn/native";
4
+ import { Children, createContext, Fragment, useContext, useId, useMemo } from "react";
5
+ import { Platform, StyleSheet } from "react-native-web";
6
+ import { useIsomorphicLayoutEffect } from "@vxrn/use-isomorphic-layout-effect";
7
+ import { useNavigation } from "../../router/useNavigation.mjs";
8
+ import { isChildOfType } from "../../utils/children.mjs";
9
+ import { jsx } from "react/jsx-runtime";
10
+ const StackToolbarPlacementContext = createContext(null);
11
+ function StackToolbarLabel(_props) {
12
+ return null;
13
+ }
14
+ function StackToolbarIcon(_props) {
15
+ return null;
16
+ }
17
+ function StackToolbarBadge(_props) {
18
+ return null;
19
+ }
20
+ function getToolbarContent(children, icon, iconRenderingMode) {
21
+ let label = "";
22
+ let iconProps = typeof icon === "string" ? {
23
+ sf: icon
24
+ } : icon ? {
25
+ src: icon,
26
+ renderingMode: iconRenderingMode
27
+ } : void 0;
28
+ let badge;
29
+ Children.forEach(children, child => {
30
+ if (typeof child === "string" || typeof child === "number") {
31
+ label += String(child);
32
+ } else if (isChildOfType(child, StackToolbarLabel)) {
33
+ label = child.props.children ?? "";
34
+ } else if (isChildOfType(child, StackToolbarIcon)) {
35
+ iconProps = child.props;
36
+ } else if (isChildOfType(child, StackToolbarBadge)) {
37
+ badge = child.props;
38
+ }
39
+ });
40
+ return {
41
+ label,
42
+ icon: iconProps,
43
+ badge
44
+ };
45
+ }
46
+ function getHeaderIcon(content, tintColor) {
47
+ if (content.icon?.sf) {
48
+ return {
49
+ type: "sfSymbol",
50
+ name: content.icon.sf
51
+ };
52
+ }
53
+ if (content.icon?.src) {
54
+ return {
55
+ type: "image",
56
+ source: content.icon.src,
57
+ tinted: (content.icon.renderingMode ?? (tintColor ? "template" : "original")) === "template"
58
+ };
59
+ }
60
+ if (content.icon?.xcasset) {
61
+ return {
62
+ type: "image",
63
+ source: {
64
+ uri: content.icon.xcasset
65
+ },
66
+ tinted: (content.icon.renderingMode ?? (tintColor ? "template" : "original")) === "template"
67
+ };
68
+ }
69
+ return void 0;
70
+ }
71
+ function getHeaderItemSharedProps(props, content) {
72
+ const labelStyle = StyleSheet.flatten(props.style);
73
+ const badgeStyle = StyleSheet.flatten(content.badge?.style);
74
+ return {
75
+ label: content.label,
76
+ labelStyle,
77
+ icon: getHeaderIcon(content, props.tintColor),
78
+ variant: props.variant,
79
+ tintColor: props.tintColor,
80
+ disabled: props.disabled,
81
+ hidesSharedBackground: props.hidesSharedBackground,
82
+ sharesBackground: !props.separateBackground,
83
+ accessibilityLabel: props.accessibilityLabel ?? content.label,
84
+ accessibilityHint: props.accessibilityHint,
85
+ badge: content.badge ? {
86
+ value: content.badge.children ?? "",
87
+ style: badgeStyle
88
+ } : void 0
89
+ };
90
+ }
91
+ function getMenuItems(children) {
92
+ return Children.toArray(children).map(child => {
93
+ if (isChildOfType(child, StackToolbarMenuAction)) {
94
+ const content = getToolbarContent(child.props.children, child.props.icon, child.props.iconRenderingMode);
95
+ return {
96
+ type: "action",
97
+ label: content.label,
98
+ description: child.props.subtitle,
99
+ icon: getHeaderIcon(content, child.props.tintColor),
100
+ onPress: child.props.onPress ?? (() => {}),
101
+ state: child.props.isOn ? "on" : "off",
102
+ disabled: child.props.disabled,
103
+ destructive: child.props.destructive,
104
+ hidden: child.props.hidden,
105
+ keepsMenuPresented: child.props.unstable_keepPresented,
106
+ discoverabilityLabel: child.props.discoverabilityLabel
107
+ };
108
+ }
109
+ if (isChildOfType(child, StackToolbarMenu)) {
110
+ const content = getToolbarContent(child.props.children, child.props.icon, child.props.iconRenderingMode);
111
+ return {
112
+ type: "submenu",
113
+ label: content.label || child.props.title || "",
114
+ icon: getHeaderIcon(content, child.props.tintColor),
115
+ inline: child.props.inline,
116
+ layout: child.props.palette ? "palette" : "default",
117
+ destructive: child.props.destructive,
118
+ multiselectable: child.props.singleSelection === false,
119
+ items: getMenuItems(child.props.children)
120
+ };
121
+ }
122
+ return null;
123
+ }).filter(item => Boolean(item));
124
+ }
125
+ function convertToolbarChildToHeaderItem(child) {
126
+ if (isChildOfType(child, StackToolbarButton)) {
127
+ if (child.props.hidden) return null;
128
+ const content = getToolbarContent(child.props.children, child.props.icon, child.props.iconRenderingMode);
129
+ return {
130
+ ...getHeaderItemSharedProps(child.props, content),
131
+ type: "button",
132
+ onPress: child.props.onPress ?? (() => {}),
133
+ selected: child.props.selected
134
+ };
135
+ }
136
+ if (isChildOfType(child, StackToolbarMenu)) {
137
+ if (child.props.hidden) return null;
138
+ const content = getToolbarContent(child.props.children, child.props.icon, child.props.iconRenderingMode);
139
+ const contentWithTitle = {
140
+ ...content,
141
+ label: content.label || child.props.title || ""
142
+ };
143
+ return {
144
+ ...getHeaderItemSharedProps(child.props, contentWithTitle),
145
+ type: "menu",
146
+ menu: {
147
+ title: child.props.title,
148
+ multiselectable: child.props.singleSelection === false,
149
+ layout: child.props.palette ? "palette" : "default",
150
+ items: getMenuItems(child.props.children)
151
+ }
152
+ };
153
+ }
154
+ if (isChildOfType(child, StackToolbarSpacer)) {
155
+ if (child.props.hidden) return null;
156
+ if (child.props.width === void 0) {
157
+ if (process.env.NODE_ENV !== "production") {
158
+ console.warn("Stack.Toolbar.Spacer requires a width in header placements.");
159
+ }
160
+ return null;
161
+ }
162
+ return {
163
+ type: "spacing",
164
+ spacing: child.props.width
165
+ };
166
+ }
167
+ if (isChildOfType(child, StackToolbarView)) {
168
+ if (child.props.hidden) return null;
169
+ return {
170
+ type: "custom",
171
+ element: /* @__PURE__ */jsx(Fragment, {
172
+ children: child.props.children
173
+ }),
174
+ hidesSharedBackground: child.props.hidesSharedBackground
175
+ };
176
+ }
177
+ return null;
178
+ }
179
+ function appendStackToolbarPropsToOptions(options, props) {
180
+ if (Platform.OS !== "ios") return options;
181
+ const placement = props.placement ?? "bottom";
182
+ if (placement === "bottom") {
183
+ if (process.env.NODE_ENV !== "production") {
184
+ console.warn("Stack.Toolbar with bottom placement must be rendered in a page component, not inside Stack.Screen.");
185
+ }
186
+ return options;
187
+ }
188
+ if (placement !== "left" && placement !== "right") {
189
+ throw new Error(`Invalid placement "${placement}" for Stack.Toolbar. Expected "left", "right", or "bottom".`);
190
+ }
191
+ if (props.asChild) {
192
+ return placement === "left" ? {
193
+ ...options,
194
+ headerShown: true,
195
+ headerLeft: () => props.children
196
+ } : {
197
+ ...options,
198
+ headerShown: true,
199
+ headerRight: () => props.children
200
+ };
201
+ }
202
+ const allChildren = Children.toArray(props.children);
203
+ const items = allChildren.map(convertToolbarChildToHeaderItem).filter(item => Boolean(item));
204
+ if (process.env.NODE_ENV !== "production" && items.length !== allChildren.length) {
205
+ const invalidChildren = allChildren.filter(child => !isChildOfType(child, StackToolbarButton) && !isChildOfType(child, StackToolbarMenu) && !isChildOfType(child, StackToolbarSpacer) && !isChildOfType(child, StackToolbarView));
206
+ if (invalidChildren.length) {
207
+ console.warn(`Stack.Toolbar with placement="${placement}" only accepts Stack.Toolbar.Button, Menu, Spacer, and View children.`);
208
+ }
209
+ }
210
+ const getItems = () => items;
211
+ return placement === "left" ? {
212
+ ...options,
213
+ headerShown: true,
214
+ unstable_headerLeftItems: getItems
215
+ } : {
216
+ ...options,
217
+ headerShown: true,
218
+ unstable_headerRightItems: getItems
219
+ };
220
+ }
221
+ function StackToolbarComponent(props) {
222
+ const parentPlacement = useContext(StackToolbarPlacementContext);
223
+ const navigation = useNavigation();
224
+ const placement = props.placement ?? "bottom";
225
+ const options = useMemo(() => placement === "bottom" ? {} : appendStackToolbarPropsToOptions({}, props), [placement, props.asChild, props.children]);
226
+ if (parentPlacement) {
227
+ throw new Error("Stack.Toolbar cannot be nested inside another Stack.Toolbar.");
228
+ }
229
+ useIsomorphicLayoutEffect(() => {
230
+ if (Platform.OS !== "ios" || placement === "bottom") return;
231
+ navigation.setOptions(options);
232
+ }, [navigation, options, placement]);
233
+ if (Platform.OS !== "ios" || placement !== "bottom") return null;
234
+ return /* @__PURE__ */jsx(StackToolbarPlacementContext.Provider, {
235
+ value: "bottom",
236
+ children: /* @__PURE__ */jsx(ToolbarHost, {
237
+ children: props.children
238
+ })
239
+ });
240
+ }
241
+ function StackToolbarButton(props) {
242
+ const placement = useContext(StackToolbarPlacementContext);
243
+ const identifier = useId();
244
+ if (Platform.OS !== "ios") return null;
245
+ if (!placement) throw new Error("Stack.Toolbar.Button must be used inside Stack.Toolbar.");
246
+ const content = getToolbarContent(props.children, props.icon, props.iconRenderingMode);
247
+ const badgeStyle = StyleSheet.flatten(content.badge?.style);
248
+ return /* @__PURE__ */jsx(ToolbarItem, {
249
+ identifier,
250
+ title: content.label,
251
+ systemImageName: content.icon?.sf,
252
+ xcassetName: content.icon?.xcasset,
253
+ image: props.image ?? content.icon?.src,
254
+ imageRenderingMode: content.icon?.renderingMode ?? props.iconRenderingMode ?? (props.tintColor ? "template" : "original"),
255
+ tintColor: props.tintColor,
256
+ hidesSharedBackground: props.hidesSharedBackground,
257
+ sharesBackground: !props.separateBackground,
258
+ barButtonItemStyle: props.variant === "done" ? "prominent" : props.variant,
259
+ hidden: props.hidden,
260
+ selected: props.selected,
261
+ badgeConfiguration: content.badge ? {
262
+ value: content.badge.children,
263
+ backgroundColor: badgeStyle?.backgroundColor,
264
+ color: badgeStyle?.color,
265
+ fontFamily: badgeStyle?.fontFamily,
266
+ fontSize: badgeStyle?.fontSize,
267
+ fontWeight: badgeStyle?.fontWeight
268
+ } : void 0,
269
+ titleStyle: StyleSheet.flatten(props.style),
270
+ accessibilityLabel: props.accessibilityLabel ?? content.label,
271
+ accessibilityHint: props.accessibilityHint,
272
+ disabled: props.disabled,
273
+ onSelected: props.onPress
274
+ });
275
+ }
276
+ function StackToolbarMenu(props) {
277
+ const placement = useContext(StackToolbarPlacementContext);
278
+ const identifier = useId();
279
+ if (Platform.OS !== "ios") return null;
280
+ if (!placement) throw new Error("Stack.Toolbar.Menu must be used inside Stack.Toolbar.");
281
+ const content = getToolbarContent(props.children, props.icon, props.iconRenderingMode);
282
+ const actions = Children.toArray(props.children).filter(child => isChildOfType(child, StackToolbarMenu) || isChildOfType(child, StackToolbarMenuAction));
283
+ return /* @__PURE__ */jsx(MenuAction, {
284
+ identifier,
285
+ title: props.title ?? "",
286
+ label: content.label || props.title,
287
+ icon: content.icon?.sf,
288
+ xcassetName: content.icon?.xcasset,
289
+ image: props.image ?? content.icon?.src,
290
+ imageRenderingMode: content.icon?.renderingMode ?? props.iconRenderingMode ?? (props.tintColor ? "template" : "original"),
291
+ disabled: props.disabled,
292
+ destructive: props.destructive,
293
+ hidden: props.hidden,
294
+ accessibilityLabel: props.accessibilityLabel ?? (content.label || props.title),
295
+ accessibilityHint: props.accessibilityHint,
296
+ displayInline: props.inline,
297
+ displayAsPalette: props.palette,
298
+ singleSelection: props.singleSelection,
299
+ preferredElementSize: props.elementSize,
300
+ tintColor: props.tintColor,
301
+ barButtonItemStyle: props.variant === "done" ? "prominent" : props.variant,
302
+ sharesBackground: !props.separateBackground,
303
+ hidesSharedBackground: props.hidesSharedBackground,
304
+ titleStyle: StyleSheet.flatten(props.style),
305
+ children: actions
306
+ });
307
+ }
308
+ function StackToolbarMenuAction(props) {
309
+ const placement = useContext(StackToolbarPlacementContext);
310
+ const identifier = useId();
311
+ if (Platform.OS !== "ios") return null;
312
+ if (!placement) throw new Error("Stack.Toolbar.MenuAction must be used inside Stack.Toolbar.Menu.");
313
+ const content = getToolbarContent(props.children, props.icon, props.iconRenderingMode);
314
+ return /* @__PURE__ */jsx(MenuAction, {
315
+ identifier,
316
+ title: content.label,
317
+ icon: content.icon?.sf,
318
+ xcassetName: content.icon?.xcasset,
319
+ image: props.image ?? content.icon?.src,
320
+ imageRenderingMode: content.icon?.renderingMode ?? props.iconRenderingMode ?? (props.tintColor ? "template" : "original"),
321
+ disabled: props.disabled,
322
+ destructive: props.destructive,
323
+ discoverabilityLabel: props.discoverabilityLabel,
324
+ subtitle: props.subtitle,
325
+ accessibilityLabel: props.accessibilityLabel ?? content.label,
326
+ accessibilityHint: props.accessibilityHint,
327
+ isOn: props.isOn,
328
+ keepPresented: props.unstable_keepPresented,
329
+ hidden: props.hidden,
330
+ onSelected: props.onPress
331
+ });
332
+ }
333
+ function StackToolbarSpacer(props) {
334
+ const placement = useContext(StackToolbarPlacementContext);
335
+ const identifier = useId();
336
+ if (Platform.OS !== "ios") return null;
337
+ if (!placement) throw new Error("Stack.Toolbar.Spacer must be used inside Stack.Toolbar.");
338
+ return /* @__PURE__ */jsx(ToolbarItem, {
339
+ identifier,
340
+ type: props.width === void 0 ? "fluidSpacer" : "fixedSpacer",
341
+ width: props.width,
342
+ hidden: props.hidden,
343
+ sharesBackground: props.sharesBackground
344
+ });
345
+ }
346
+ function StackToolbarSearchBarSlot(props) {
347
+ const placement = useContext(StackToolbarPlacementContext);
348
+ const identifier = useId();
349
+ if (Platform.OS !== "ios") return null;
350
+ if (!placement) throw new Error("Stack.Toolbar.SearchBarSlot must be used inside Stack.Toolbar.");
351
+ return /* @__PURE__ */jsx(ToolbarItem, {
352
+ identifier,
353
+ type: "searchBar",
354
+ hidden: props.hidden,
355
+ hidesSharedBackground: props.hidesSharedBackground,
356
+ sharesBackground: !props.separateBackground
357
+ });
358
+ }
359
+ function StackToolbarView(props) {
360
+ const placement = useContext(StackToolbarPlacementContext);
361
+ const identifier = useId();
362
+ if (Platform.OS !== "ios") return null;
363
+ if (!placement) throw new Error("Stack.Toolbar.View must be used inside Stack.Toolbar.");
364
+ if (props.hidden) return null;
365
+ return /* @__PURE__ */jsx(ToolbarItem, {
366
+ identifier,
367
+ hidesSharedBackground: props.hidesSharedBackground,
368
+ sharesBackground: !props.separateBackground,
369
+ children: props.children
370
+ });
371
+ }
372
+ const StackToolbar = Object.assign(StackToolbarComponent, {
373
+ Button: StackToolbarButton,
374
+ Menu: StackToolbarMenu,
375
+ MenuAction: StackToolbarMenuAction,
376
+ Spacer: StackToolbarSpacer,
377
+ SearchBarSlot: StackToolbarSearchBarSlot,
378
+ View: StackToolbarView,
379
+ Label: StackToolbarLabel,
380
+ Icon: StackToolbarIcon,
381
+ Badge: StackToolbarBadge
382
+ });
383
+ export { StackToolbar, StackToolbarBadge, StackToolbarButton, StackToolbarIcon, StackToolbarLabel, StackToolbarMenu, StackToolbarMenuAction, StackToolbarSearchBarSlot, StackToolbarSpacer, StackToolbarView, appendStackToolbarPropsToOptions };
384
+ //# sourceMappingURL=StackToolbar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MenuAction","ToolbarHost","ToolbarItem","Children","createContext","Fragment","useContext","useId","useMemo","Platform","StyleSheet","useIsomorphicLayoutEffect","useNavigation","isChildOfType","jsx","StackToolbarPlacementContext","StackToolbarLabel","_props","StackToolbarIcon","StackToolbarBadge","getToolbarContent","children","icon","iconRenderingMode","label","iconProps","sf","src","renderingMode","badge","forEach","child","String","props","getHeaderIcon","content","tintColor","type","name","source","tinted","xcasset","uri","getHeaderItemSharedProps","labelStyle","flatten","style","badgeStyle","variant","disabled","hidesSharedBackground","sharesBackground","separateBackground","accessibilityLabel","accessibilityHint","value","getMenuItems","toArray","map","StackToolbarMenuAction","description","subtitle","onPress","state","isOn","destructive","hidden","keepsMenuPresented","unstable_keepPresented","discoverabilityLabel","StackToolbarMenu","title","inline","layout","palette","multiselectable","singleSelection","items","filter","item","Boolean","convertToolbarChildToHeaderItem","StackToolbarButton","selected","contentWithTitle","menu","StackToolbarSpacer","width","process","env","NODE_ENV","console","warn","spacing","StackToolbarView","element","appendStackToolbarPropsToOptions","options","OS","placement","Error","asChild","headerShown","headerLeft","headerRight","allChildren","length","invalidChildren","getItems","unstable_headerLeftItems","unstable_headerRightItems","StackToolbarComponent","parentPlacement","navigation","setOptions","Provider","identifier","systemImageName","xcassetName","image","imageRenderingMode","barButtonItemStyle","badgeConfiguration","backgroundColor","color","fontFamily","fontSize","fontWeight","titleStyle","onSelected","actions","displayInline","displayAsPalette","preferredElementSize","elementSize","keepPresented","StackToolbarSearchBarSlot","StackToolbar","Object","assign","Button","Menu","Spacer","SearchBarSlot","View","Label","Icon","Badge"],"sources":["../../../../src/layouts/stack-utils/StackToolbar.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}