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,416 @@
1
+ "use client";
2
+
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ import { MenuAction, ToolbarHost, ToolbarItem } from "@vxrn/native";
5
+ import { Children, createContext, Fragment, useContext, useId, useMemo } from "react";
6
+ import { Platform, StyleSheet } from "react-native";
7
+ import { useIsomorphicLayoutEffect } from "@vxrn/use-isomorphic-layout-effect";
8
+ import { useNavigation } from "../../router/useNavigation.native.js";
9
+ import { isChildOfType } from "../../utils/children.native.js";
10
+ var StackToolbarPlacementContext = /* @__PURE__ */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
+ var label = "";
22
+ var iconProps = typeof icon === "string" ? {
23
+ sf: icon
24
+ } : icon ? {
25
+ src: icon,
26
+ renderingMode: iconRenderingMode
27
+ } : void 0;
28
+ var badge;
29
+ Children.forEach(children, function (child) {
30
+ if (typeof child === "string" || typeof child === "number") {
31
+ label += String(child);
32
+ } else if (isChildOfType(child, StackToolbarLabel)) {
33
+ var _child_props_children;
34
+ label = (_child_props_children = child.props.children) !== null && _child_props_children !== void 0 ? _child_props_children : "";
35
+ } else if (isChildOfType(child, StackToolbarIcon)) {
36
+ iconProps = child.props;
37
+ } else if (isChildOfType(child, StackToolbarBadge)) {
38
+ badge = child.props;
39
+ }
40
+ });
41
+ return {
42
+ label,
43
+ icon: iconProps,
44
+ badge
45
+ };
46
+ }
47
+ function getHeaderIcon(content, tintColor) {
48
+ var _content_icon, _content_icon1, _content_icon2;
49
+ if ((_content_icon = content.icon) === null || _content_icon === void 0 ? void 0 : _content_icon.sf) {
50
+ return {
51
+ type: "sfSymbol",
52
+ name: content.icon.sf
53
+ };
54
+ }
55
+ if ((_content_icon1 = content.icon) === null || _content_icon1 === void 0 ? void 0 : _content_icon1.src) {
56
+ var _content_icon_renderingMode;
57
+ return {
58
+ type: "image",
59
+ source: content.icon.src,
60
+ tinted: ((_content_icon_renderingMode = content.icon.renderingMode) !== null && _content_icon_renderingMode !== void 0 ? _content_icon_renderingMode : tintColor ? "template" : "original") === "template"
61
+ };
62
+ }
63
+ if ((_content_icon2 = content.icon) === null || _content_icon2 === void 0 ? void 0 : _content_icon2.xcasset) {
64
+ var _content_icon_renderingMode1;
65
+ return {
66
+ type: "image",
67
+ source: {
68
+ uri: content.icon.xcasset
69
+ },
70
+ tinted: ((_content_icon_renderingMode1 = content.icon.renderingMode) !== null && _content_icon_renderingMode1 !== void 0 ? _content_icon_renderingMode1 : tintColor ? "template" : "original") === "template"
71
+ };
72
+ }
73
+ return void 0;
74
+ }
75
+ function getHeaderItemSharedProps(props, content) {
76
+ var _props_accessibilityLabel, _content_badge_children;
77
+ var _content_badge;
78
+ var labelStyle = StyleSheet.flatten(props.style);
79
+ var badgeStyle = StyleSheet.flatten((_content_badge = content.badge) === null || _content_badge === void 0 ? void 0 : _content_badge.style);
80
+ return {
81
+ label: content.label,
82
+ labelStyle,
83
+ icon: getHeaderIcon(content, props.tintColor),
84
+ variant: props.variant,
85
+ tintColor: props.tintColor,
86
+ disabled: props.disabled,
87
+ hidesSharedBackground: props.hidesSharedBackground,
88
+ sharesBackground: !props.separateBackground,
89
+ accessibilityLabel: (_props_accessibilityLabel = props.accessibilityLabel) !== null && _props_accessibilityLabel !== void 0 ? _props_accessibilityLabel : content.label,
90
+ accessibilityHint: props.accessibilityHint,
91
+ badge: content.badge ? {
92
+ value: (_content_badge_children = content.badge.children) !== null && _content_badge_children !== void 0 ? _content_badge_children : "",
93
+ style: badgeStyle
94
+ } : void 0
95
+ };
96
+ }
97
+ function getMenuItems(children) {
98
+ return Children.toArray(children).map(function (child) {
99
+ if (isChildOfType(child, StackToolbarMenuAction)) {
100
+ var _child_props_onPress;
101
+ var content = getToolbarContent(child.props.children, child.props.icon, child.props.iconRenderingMode);
102
+ return {
103
+ type: "action",
104
+ label: content.label,
105
+ description: child.props.subtitle,
106
+ icon: getHeaderIcon(content, child.props.tintColor),
107
+ onPress: (_child_props_onPress = child.props.onPress) !== null && _child_props_onPress !== void 0 ? _child_props_onPress : function () {},
108
+ state: child.props.isOn ? "on" : "off",
109
+ disabled: child.props.disabled,
110
+ destructive: child.props.destructive,
111
+ hidden: child.props.hidden,
112
+ keepsMenuPresented: child.props.unstable_keepPresented,
113
+ discoverabilityLabel: child.props.discoverabilityLabel
114
+ };
115
+ }
116
+ if (isChildOfType(child, StackToolbarMenu)) {
117
+ var content1 = getToolbarContent(child.props.children, child.props.icon, child.props.iconRenderingMode);
118
+ return {
119
+ type: "submenu",
120
+ label: content1.label || child.props.title || "",
121
+ icon: getHeaderIcon(content1, child.props.tintColor),
122
+ inline: child.props.inline,
123
+ layout: child.props.palette ? "palette" : "default",
124
+ destructive: child.props.destructive,
125
+ multiselectable: child.props.singleSelection === false,
126
+ items: getMenuItems(child.props.children)
127
+ };
128
+ }
129
+ return null;
130
+ }).filter(function (item) {
131
+ return Boolean(item);
132
+ });
133
+ }
134
+ function convertToolbarChildToHeaderItem(child) {
135
+ if (isChildOfType(child, StackToolbarButton)) {
136
+ var _child_props_onPress;
137
+ if (child.props.hidden) return null;
138
+ var content = getToolbarContent(child.props.children, child.props.icon, child.props.iconRenderingMode);
139
+ return {
140
+ ...getHeaderItemSharedProps(child.props, content),
141
+ type: "button",
142
+ onPress: (_child_props_onPress = child.props.onPress) !== null && _child_props_onPress !== void 0 ? _child_props_onPress : function () {},
143
+ selected: child.props.selected
144
+ };
145
+ }
146
+ if (isChildOfType(child, StackToolbarMenu)) {
147
+ if (child.props.hidden) return null;
148
+ var content1 = getToolbarContent(child.props.children, child.props.icon, child.props.iconRenderingMode);
149
+ var contentWithTitle = {
150
+ ...content1,
151
+ label: content1.label || child.props.title || ""
152
+ };
153
+ return {
154
+ ...getHeaderItemSharedProps(child.props, contentWithTitle),
155
+ type: "menu",
156
+ menu: {
157
+ title: child.props.title,
158
+ multiselectable: child.props.singleSelection === false,
159
+ layout: child.props.palette ? "palette" : "default",
160
+ items: getMenuItems(child.props.children)
161
+ }
162
+ };
163
+ }
164
+ if (isChildOfType(child, StackToolbarSpacer)) {
165
+ if (child.props.hidden) return null;
166
+ if (child.props.width === void 0) {
167
+ if (process.env.NODE_ENV !== "production") {
168
+ console.warn("Stack.Toolbar.Spacer requires a width in header placements.");
169
+ }
170
+ return null;
171
+ }
172
+ return {
173
+ type: "spacing",
174
+ spacing: child.props.width
175
+ };
176
+ }
177
+ if (isChildOfType(child, StackToolbarView)) {
178
+ if (child.props.hidden) return null;
179
+ return {
180
+ type: "custom",
181
+ element: /* @__PURE__ */_jsx(Fragment, {
182
+ children: child.props.children
183
+ }),
184
+ hidesSharedBackground: child.props.hidesSharedBackground
185
+ };
186
+ }
187
+ return null;
188
+ }
189
+ function appendStackToolbarPropsToOptions(options, props) {
190
+ var _props_placement;
191
+ if (Platform.OS !== "ios") return options;
192
+ var placement = (_props_placement = props.placement) !== null && _props_placement !== void 0 ? _props_placement : "bottom";
193
+ if (placement === "bottom") {
194
+ if (process.env.NODE_ENV !== "production") {
195
+ console.warn("Stack.Toolbar with bottom placement must be rendered in a page component, not inside Stack.Screen.");
196
+ }
197
+ return options;
198
+ }
199
+ if (placement !== "left" && placement !== "right") {
200
+ throw new Error(`Invalid placement "${placement}" for Stack.Toolbar. Expected "left", "right", or "bottom".`);
201
+ }
202
+ if (props.asChild) {
203
+ return placement === "left" ? {
204
+ ...options,
205
+ headerShown: true,
206
+ headerLeft: function () {
207
+ return props.children;
208
+ }
209
+ } : {
210
+ ...options,
211
+ headerShown: true,
212
+ headerRight: function () {
213
+ return props.children;
214
+ }
215
+ };
216
+ }
217
+ var allChildren = Children.toArray(props.children);
218
+ var items = allChildren.map(convertToolbarChildToHeaderItem).filter(function (item) {
219
+ return Boolean(item);
220
+ });
221
+ if (process.env.NODE_ENV !== "production" && items.length !== allChildren.length) {
222
+ var invalidChildren = allChildren.filter(function (child) {
223
+ return !isChildOfType(child, StackToolbarButton) && !isChildOfType(child, StackToolbarMenu) && !isChildOfType(child, StackToolbarSpacer) && !isChildOfType(child, StackToolbarView);
224
+ });
225
+ if (invalidChildren.length) {
226
+ console.warn(`Stack.Toolbar with placement="${placement}" only accepts Stack.Toolbar.Button, Menu, Spacer, and View children.`);
227
+ }
228
+ }
229
+ var getItems = function () {
230
+ return items;
231
+ };
232
+ return placement === "left" ? {
233
+ ...options,
234
+ headerShown: true,
235
+ unstable_headerLeftItems: getItems
236
+ } : {
237
+ ...options,
238
+ headerShown: true,
239
+ unstable_headerRightItems: getItems
240
+ };
241
+ }
242
+ function StackToolbarComponent(props) {
243
+ var _props_placement;
244
+ var parentPlacement = useContext(StackToolbarPlacementContext);
245
+ var navigation = useNavigation();
246
+ var placement = (_props_placement = props.placement) !== null && _props_placement !== void 0 ? _props_placement : "bottom";
247
+ var options = useMemo(function () {
248
+ return placement === "bottom" ? {} : appendStackToolbarPropsToOptions({}, props);
249
+ }, [placement, props.asChild, props.children]);
250
+ if (parentPlacement) {
251
+ throw new Error("Stack.Toolbar cannot be nested inside another Stack.Toolbar.");
252
+ }
253
+ useIsomorphicLayoutEffect(function () {
254
+ if (Platform.OS !== "ios" || placement === "bottom") return;
255
+ navigation.setOptions(options);
256
+ }, [navigation, options, placement]);
257
+ if (Platform.OS !== "ios" || placement !== "bottom") return null;
258
+ return /* @__PURE__ */_jsx(StackToolbarPlacementContext.Provider, {
259
+ value: "bottom",
260
+ children: /* @__PURE__ */_jsx(ToolbarHost, {
261
+ children: props.children
262
+ })
263
+ });
264
+ }
265
+ function StackToolbarButton(props) {
266
+ var _props_image, _ref, _ref1, _props_accessibilityLabel;
267
+ var _content_badge, _content_icon, _content_icon1, _content_icon2, _content_icon3;
268
+ var placement = useContext(StackToolbarPlacementContext);
269
+ var identifier = useId();
270
+ if (Platform.OS !== "ios") return null;
271
+ if (!placement) throw new Error("Stack.Toolbar.Button must be used inside Stack.Toolbar.");
272
+ var content = getToolbarContent(props.children, props.icon, props.iconRenderingMode);
273
+ var badgeStyle = StyleSheet.flatten((_content_badge = content.badge) === null || _content_badge === void 0 ? void 0 : _content_badge.style);
274
+ return /* @__PURE__ */_jsx(ToolbarItem, {
275
+ identifier,
276
+ title: content.label,
277
+ systemImageName: (_content_icon = content.icon) === null || _content_icon === void 0 ? void 0 : _content_icon.sf,
278
+ xcassetName: (_content_icon1 = content.icon) === null || _content_icon1 === void 0 ? void 0 : _content_icon1.xcasset,
279
+ image: (_props_image = props.image) !== null && _props_image !== void 0 ? _props_image : (_content_icon2 = content.icon) === null || _content_icon2 === void 0 ? void 0 : _content_icon2.src,
280
+ imageRenderingMode: (_ref = (_ref1 = (_content_icon3 = content.icon) === null || _content_icon3 === void 0 ? void 0 : _content_icon3.renderingMode) !== null && _ref1 !== void 0 ? _ref1 : props.iconRenderingMode) !== null && _ref !== void 0 ? _ref : props.tintColor ? "template" : "original",
281
+ tintColor: props.tintColor,
282
+ hidesSharedBackground: props.hidesSharedBackground,
283
+ sharesBackground: !props.separateBackground,
284
+ barButtonItemStyle: props.variant === "done" ? "prominent" : props.variant,
285
+ hidden: props.hidden,
286
+ selected: props.selected,
287
+ badgeConfiguration: content.badge ? {
288
+ value: content.badge.children,
289
+ backgroundColor: badgeStyle === null || badgeStyle === void 0 ? void 0 : badgeStyle.backgroundColor,
290
+ color: badgeStyle === null || badgeStyle === void 0 ? void 0 : badgeStyle.color,
291
+ fontFamily: badgeStyle === null || badgeStyle === void 0 ? void 0 : badgeStyle.fontFamily,
292
+ fontSize: badgeStyle === null || badgeStyle === void 0 ? void 0 : badgeStyle.fontSize,
293
+ fontWeight: badgeStyle === null || badgeStyle === void 0 ? void 0 : badgeStyle.fontWeight
294
+ } : void 0,
295
+ titleStyle: StyleSheet.flatten(props.style),
296
+ accessibilityLabel: (_props_accessibilityLabel = props.accessibilityLabel) !== null && _props_accessibilityLabel !== void 0 ? _props_accessibilityLabel : content.label,
297
+ accessibilityHint: props.accessibilityHint,
298
+ disabled: props.disabled,
299
+ onSelected: props.onPress
300
+ });
301
+ }
302
+ function StackToolbarMenu(props) {
303
+ var _props_title, _props_image, _ref, _ref1, _props_accessibilityLabel;
304
+ var _content_icon, _content_icon1, _content_icon2, _content_icon3;
305
+ var placement = useContext(StackToolbarPlacementContext);
306
+ var identifier = useId();
307
+ if (Platform.OS !== "ios") return null;
308
+ if (!placement) throw new Error("Stack.Toolbar.Menu must be used inside Stack.Toolbar.");
309
+ var content = getToolbarContent(props.children, props.icon, props.iconRenderingMode);
310
+ var actions = Children.toArray(props.children).filter(function (child) {
311
+ return isChildOfType(child, StackToolbarMenu) || isChildOfType(child, StackToolbarMenuAction);
312
+ });
313
+ return /* @__PURE__ */_jsx(MenuAction, {
314
+ identifier,
315
+ title: (_props_title = props.title) !== null && _props_title !== void 0 ? _props_title : "",
316
+ label: content.label || props.title,
317
+ icon: (_content_icon = content.icon) === null || _content_icon === void 0 ? void 0 : _content_icon.sf,
318
+ xcassetName: (_content_icon1 = content.icon) === null || _content_icon1 === void 0 ? void 0 : _content_icon1.xcasset,
319
+ image: (_props_image = props.image) !== null && _props_image !== void 0 ? _props_image : (_content_icon2 = content.icon) === null || _content_icon2 === void 0 ? void 0 : _content_icon2.src,
320
+ imageRenderingMode: (_ref = (_ref1 = (_content_icon3 = content.icon) === null || _content_icon3 === void 0 ? void 0 : _content_icon3.renderingMode) !== null && _ref1 !== void 0 ? _ref1 : props.iconRenderingMode) !== null && _ref !== void 0 ? _ref : props.tintColor ? "template" : "original",
321
+ disabled: props.disabled,
322
+ destructive: props.destructive,
323
+ hidden: props.hidden,
324
+ accessibilityLabel: (_props_accessibilityLabel = props.accessibilityLabel) !== null && _props_accessibilityLabel !== void 0 ? _props_accessibilityLabel : content.label || props.title,
325
+ accessibilityHint: props.accessibilityHint,
326
+ displayInline: props.inline,
327
+ displayAsPalette: props.palette,
328
+ singleSelection: props.singleSelection,
329
+ preferredElementSize: props.elementSize,
330
+ tintColor: props.tintColor,
331
+ barButtonItemStyle: props.variant === "done" ? "prominent" : props.variant,
332
+ sharesBackground: !props.separateBackground,
333
+ hidesSharedBackground: props.hidesSharedBackground,
334
+ titleStyle: StyleSheet.flatten(props.style),
335
+ children: actions
336
+ });
337
+ }
338
+ function StackToolbarMenuAction(props) {
339
+ var _props_image, _ref, _ref1, _props_accessibilityLabel;
340
+ var _content_icon, _content_icon1, _content_icon2, _content_icon3;
341
+ var placement = useContext(StackToolbarPlacementContext);
342
+ var identifier = useId();
343
+ if (Platform.OS !== "ios") return null;
344
+ if (!placement) throw new Error("Stack.Toolbar.MenuAction must be used inside Stack.Toolbar.Menu.");
345
+ var content = getToolbarContent(props.children, props.icon, props.iconRenderingMode);
346
+ return /* @__PURE__ */_jsx(MenuAction, {
347
+ identifier,
348
+ title: content.label,
349
+ icon: (_content_icon = content.icon) === null || _content_icon === void 0 ? void 0 : _content_icon.sf,
350
+ xcassetName: (_content_icon1 = content.icon) === null || _content_icon1 === void 0 ? void 0 : _content_icon1.xcasset,
351
+ image: (_props_image = props.image) !== null && _props_image !== void 0 ? _props_image : (_content_icon2 = content.icon) === null || _content_icon2 === void 0 ? void 0 : _content_icon2.src,
352
+ imageRenderingMode: (_ref = (_ref1 = (_content_icon3 = content.icon) === null || _content_icon3 === void 0 ? void 0 : _content_icon3.renderingMode) !== null && _ref1 !== void 0 ? _ref1 : props.iconRenderingMode) !== null && _ref !== void 0 ? _ref : props.tintColor ? "template" : "original",
353
+ disabled: props.disabled,
354
+ destructive: props.destructive,
355
+ discoverabilityLabel: props.discoverabilityLabel,
356
+ subtitle: props.subtitle,
357
+ accessibilityLabel: (_props_accessibilityLabel = props.accessibilityLabel) !== null && _props_accessibilityLabel !== void 0 ? _props_accessibilityLabel : content.label,
358
+ accessibilityHint: props.accessibilityHint,
359
+ isOn: props.isOn,
360
+ keepPresented: props.unstable_keepPresented,
361
+ hidden: props.hidden,
362
+ onSelected: props.onPress
363
+ });
364
+ }
365
+ function StackToolbarSpacer(props) {
366
+ var placement = useContext(StackToolbarPlacementContext);
367
+ var identifier = useId();
368
+ if (Platform.OS !== "ios") return null;
369
+ if (!placement) throw new Error("Stack.Toolbar.Spacer must be used inside Stack.Toolbar.");
370
+ return /* @__PURE__ */_jsx(ToolbarItem, {
371
+ identifier,
372
+ type: props.width === void 0 ? "fluidSpacer" : "fixedSpacer",
373
+ width: props.width,
374
+ hidden: props.hidden,
375
+ sharesBackground: props.sharesBackground
376
+ });
377
+ }
378
+ function StackToolbarSearchBarSlot(props) {
379
+ var placement = useContext(StackToolbarPlacementContext);
380
+ var identifier = useId();
381
+ if (Platform.OS !== "ios") return null;
382
+ if (!placement) throw new Error("Stack.Toolbar.SearchBarSlot must be used inside Stack.Toolbar.");
383
+ return /* @__PURE__ */_jsx(ToolbarItem, {
384
+ identifier,
385
+ type: "searchBar",
386
+ hidden: props.hidden,
387
+ hidesSharedBackground: props.hidesSharedBackground,
388
+ sharesBackground: !props.separateBackground
389
+ });
390
+ }
391
+ function StackToolbarView(props) {
392
+ var placement = useContext(StackToolbarPlacementContext);
393
+ var identifier = useId();
394
+ if (Platform.OS !== "ios") return null;
395
+ if (!placement) throw new Error("Stack.Toolbar.View must be used inside Stack.Toolbar.");
396
+ if (props.hidden) return null;
397
+ return /* @__PURE__ */_jsx(ToolbarItem, {
398
+ identifier,
399
+ hidesSharedBackground: props.hidesSharedBackground,
400
+ sharesBackground: !props.separateBackground,
401
+ children: props.children
402
+ });
403
+ }
404
+ var StackToolbar = Object.assign(StackToolbarComponent, {
405
+ Button: StackToolbarButton,
406
+ Menu: StackToolbarMenu,
407
+ MenuAction: StackToolbarMenuAction,
408
+ Spacer: StackToolbarSpacer,
409
+ SearchBarSlot: StackToolbarSearchBarSlot,
410
+ View: StackToolbarView,
411
+ Label: StackToolbarLabel,
412
+ Icon: StackToolbarIcon,
413
+ Badge: StackToolbarBadge
414
+ });
415
+ export { StackToolbar, StackToolbarBadge, StackToolbarButton, StackToolbarIcon, StackToolbarLabel, StackToolbarMenu, StackToolbarMenuAction, StackToolbarSearchBarSlot, StackToolbarSpacer, StackToolbarView, appendStackToolbarPropsToOptions };
416
+ //# sourceMappingURL=StackToolbar.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","MenuAction","ToolbarHost","ToolbarItem","Children","createContext","Fragment","useContext","useId","useMemo","Platform","StyleSheet","useIsomorphicLayoutEffect","useNavigation","isChildOfType","StackToolbarPlacementContext","StackToolbarLabel","_props","StackToolbarIcon","StackToolbarBadge","getToolbarContent","children","icon","iconRenderingMode","label","iconProps","sf","src","renderingMode","badge","forEach","child","String","_child_props_children","props","getHeaderIcon","content","tintColor","_content_icon","_content_icon1","_content_icon2","type","name","_content_icon_renderingMode","source","tinted","xcasset","_content_icon_renderingMode1","uri","getHeaderItemSharedProps","_props_accessibilityLabel","_content_badge_children","_content_badge","labelStyle","flatten","style","badgeStyle","variant","disabled","hidesSharedBackground","sharesBackground","separateBackground","accessibilityLabel","accessibilityHint","value","getMenuItems","toArray","map","StackToolbarMenuAction","_child_props_onPress","description","subtitle","onPress","state","isOn","destructive","hidden","keepsMenuPresented","unstable_keepPresented","discoverabilityLabel","StackToolbarMenu","content1","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","_props_placement","OS","placement","Error","asChild","headerShown","headerLeft","headerRight","allChildren","length","invalidChildren","getItems","unstable_headerLeftItems","unstable_headerRightItems","StackToolbarComponent","parentPlacement","navigation","setOptions","Provider","_props_image","_ref","_ref1","_content_icon3","identifier","systemImageName","xcassetName","image","imageRenderingMode","barButtonItemStyle","badgeConfiguration","backgroundColor","color","fontFamily","fontSize","fontWeight","titleStyle","onSelected","_props_title","actions","displayInline","displayAsPalette","preferredElementSize","elementSize","keepPresented","StackToolbarSearchBarSlot"],"sources":["../../../../src/layouts/stack-utils/StackToolbar.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=StackToolbar.types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=StackToolbar.types.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ import TestRenderer, { act } from "react-test-renderer";
2
+ import { Platform } from "react-native-web";
3
+ import { afterEach, describe, expect, it, vi } from "vitest";
4
+ import { StackToolbar } from "../StackToolbar.mjs";
5
+ import { jsx } from "react/jsx-runtime";
6
+ const setOptions = vi.fn();
7
+ vi.mock("../../../router/useNavigation", () => ({
8
+ useNavigation: () => ({
9
+ setOptions
10
+ })
11
+ }));
12
+ describe("StackToolbar runtime options", () => {
13
+ const originalOS = Platform.OS;
14
+ afterEach(() => {
15
+ ;
16
+ Platform.OS = originalOS;
17
+ setOptions.mockClear();
18
+ });
19
+ it("does not write undefined header overrides when the toolbar unmounts", () => {
20
+ ;
21
+ Platform.OS = "ios";
22
+ let renderer;
23
+ act(() => {
24
+ renderer = TestRenderer.create(/* @__PURE__ */jsx(StackToolbar, {
25
+ placement: "right",
26
+ children: /* @__PURE__ */jsx(StackToolbar.Button, {
27
+ icon: "bell"
28
+ })
29
+ }));
30
+ });
31
+ expect(setOptions).toHaveBeenCalledTimes(1);
32
+ expect(setOptions).toHaveBeenLastCalledWith(expect.objectContaining({
33
+ headerShown: true,
34
+ unstable_headerRightItems: expect.any(Function)
35
+ }));
36
+ act(() => renderer.unmount());
37
+ expect(setOptions).toHaveBeenCalledTimes(1);
38
+ });
39
+ });
40
+ //# sourceMappingURL=StackToolbar.runtime.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TestRenderer","act","Platform","afterEach","describe","expect","it","vi","StackToolbar","jsx","setOptions","fn","mock","useNavigation","originalOS","OS","mockClear","renderer","create","placement","children","Button","icon","toHaveBeenCalledTimes","toHaveBeenLastCalledWith","objectContaining","headerShown","unstable_headerRightItems","any","Function","unmount"],"sources":["../../../../../src/layouts/stack-utils/__tests__/StackToolbar.runtime.test.tsx"],"sourcesContent":[null],"mappings":"AACA,OAAOA,YAAA,IAAgBC,GAAA,QAAW;AAClC,SAASC,QAAA,QAAgB;AACzB,SAASC,SAAA,EAAWC,QAAA,EAAUC,MAAA,EAAQC,EAAA,EAAIC,EAAA,QAAU;AAQpD,SAASC,YAAA,QAAoB;AAiBnB,SAAAC,GAAA;AAvBV,MAAMC,UAAA,GAAaH,EAAA,CAAGI,EAAA,CAAG;AAEzBJ,EAAA,CAAGK,IAAA,CAAK,iCAAiC,OAAO;EAC9CC,aAAA,EAAeA,CAAA,MAAO;IAAEH;EAAW;AACrC,EAAE;AAIFN,QAAA,CAAS,gCAAgC,MAAM;EAC7C,MAAMU,UAAA,GAAaZ,QAAA,CAASa,EAAA;EAE5BZ,SAAA,CAAU,MAAM;IACd;IAAED,QAAA,CAAiBa,EAAA,GAAKD,UAAA;IACxBJ,UAAA,CAAWM,SAAA,CAAU;EACvB,CAAC;EAEDV,EAAA,CAAG,uEAAuE,MAAM;IAC9E;IAAEJ,QAAA,CAAiBa,EAAA,GAAK;IACxB,IAAIE,QAAA;IAEJhB,GAAA,CAAI,MAAM;MACRgB,QAAA,GAAWjB,YAAA,CAAakB,MAAA,CACtB,eAAAT,GAAA,CAACD,YAAA;QAAaW,SAAA,EAAU;QACtBC,QAAA,iBAAAX,GAAA,CAACD,YAAA,CAAaa,MAAA,EAAb;UAAoBC,IAAA,EAAK;QAAA,CAAO;MAAA,CACnC,CACF;IACF,CAAC;IAEDjB,MAAA,CAAOK,UAAU,EAAEa,qBAAA,CAAsB,CAAC;IAC1ClB,MAAA,CAAOK,UAAU,EAAEc,wBAAA,CACjBnB,MAAA,CAAOoB,gBAAA,CAAiB;MACtBC,WAAA,EAAa;MACbC,yBAAA,EAA2BtB,MAAA,CAAOuB,GAAA,CAAIC,QAAQ;IAChD,CAAC,CACH;IAEA5B,GAAA,CAAI,MAAMgB,QAAA,CAAUa,OAAA,CAAQ,CAAC;IAE7BzB,MAAA,CAAOK,UAAU,EAAEa,qBAAA,CAAsB,CAAC;EAC5C,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,47 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import TestRenderer, { act } from "react-test-renderer";
4
+ import { Platform } from "react-native";
5
+ import { afterEach, describe, expect, it, vi } from "vitest";
6
+ import { StackToolbar } from "../StackToolbar.native.js";
7
+ var setOptions = vi.fn();
8
+ vi.mock("../../../router/useNavigation", function () {
9
+ return {
10
+ useNavigation: function () {
11
+ return {
12
+ setOptions
13
+ };
14
+ }
15
+ };
16
+ });
17
+ describe("StackToolbar runtime options", function () {
18
+ var originalOS = Platform.OS;
19
+ afterEach(function () {
20
+ ;
21
+ Platform.OS = originalOS;
22
+ setOptions.mockClear();
23
+ });
24
+ it("does not write undefined header overrides when the toolbar unmounts", function () {
25
+ ;
26
+ Platform.OS = "ios";
27
+ var renderer;
28
+ act(function () {
29
+ renderer = TestRenderer.create(/* @__PURE__ */_jsx(StackToolbar, {
30
+ placement: "right",
31
+ children: /* @__PURE__ */_jsx(StackToolbar.Button, {
32
+ icon: "bell"
33
+ })
34
+ }));
35
+ });
36
+ expect(setOptions).toHaveBeenCalledTimes(1);
37
+ expect(setOptions).toHaveBeenLastCalledWith(expect.objectContaining({
38
+ headerShown: true,
39
+ unstable_headerRightItems: expect.any(Function)
40
+ }));
41
+ act(function () {
42
+ return renderer.unmount();
43
+ });
44
+ expect(setOptions).toHaveBeenCalledTimes(1);
45
+ });
46
+ });
47
+ //# sourceMappingURL=StackToolbar.runtime.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","React","TestRenderer","act","Platform","afterEach","describe","expect","it","vi","StackToolbar","setOptions","fn","mock","useNavigation","originalOS","OS","mockClear","renderer","create","placement","children","Button","icon","toHaveBeenCalledTimes"],"sources":["../../../../../src/layouts/stack-utils/__tests__/StackToolbar.runtime.test.tsx"],"sourcesContent":[null],"mappings":"AACA,SAAOA,GAAA,IAAAC,IAAA,QAAgB,mBAAW;AAClC,OAAAC,KAAS,aAAgB;AACzB,OAAAC,YAAS,IAAWC,GAAA,QAAU,qBAAsB;AAQpD,SAASC,QAAA,sBAAoB;AAiBnB,SAAAC,SAAA,EAAAC,QAAA,EAAAC,MAAA,EAAAC,EAAA,EAAAC,EAAA;AAvBV,SAAMC,YAAa,QAAM;AAEzB,IAAGC,UAAK,GAAAF,EAAA,CAAAG,EAAA;AAAwCH,EAC9C,CAAAI,IAAA,gCAAmC;EACnC;IAIFC,aAAS,WAAAA,CAAA;MACP,OAAM;QAENH;MACE;IAAE;EACF;AAAqB,EACvB;AAEAL,QAAG;EACD,IAAAS,UAAA,GAAAX,QAAA,CAAAY,EAAA;EAACX,SAAC,aAAsB;IACxB;IAEAD,QAAI,CAAAY,EAAM,GAAAD,UAAA;IACRJ,UAAA,CAAAM,SAAW;EAAa;EAGtBT,EAAA,sEACF;IACF;IAEAJ,QAAO,CAAAY,EAAA,QAAY;IACnB,IAAAE,QAAO;IAAYf,GACjB,aAAO;MAAiBe,QACtB,GAAAhB,YAAa,CAAAiB,MAAA,gBAAAnB,IAAA,CAAAU,YAAA;QACbU,SAAA;QACDC,QAAA,iBAAArB,IAAA,CAAAU,YAAA,CAAAY,MAAA;UACHC,IAAA;QAEI;MAEJ;IACD;IACFhB,MAAA,CAAAI,UAAA,EAAAa,qBAAA","ignoreList":[]}