one 1.23.0 → 1.24.0

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 (164) hide show
  1. package/dist/cjs/headless/__tests__/useStack.test.cjs +79 -0
  2. package/dist/cjs/headless/__tests__/useStack.test.native.js +85 -0
  3. package/dist/cjs/headless/__tests__/useStack.test.native.js.map +1 -0
  4. package/dist/cjs/headless/useStack.cjs +2 -1
  5. package/dist/cjs/headless/useStack.native.js +2 -1
  6. package/dist/cjs/headless/useStack.native.js.map +1 -1
  7. package/dist/cjs/index.native.js.map +1 -1
  8. package/dist/cjs/layouts/Stack.cjs +12 -9
  9. package/dist/cjs/layouts/Stack.native.js +13 -10
  10. package/dist/cjs/layouts/Stack.native.js.map +1 -1
  11. package/dist/cjs/layouts/stack-utils/StackScreen.cjs +6 -3
  12. package/dist/cjs/layouts/stack-utils/StackScreen.native.js +7 -4
  13. package/dist/cjs/layouts/stack-utils/StackScreen.native.js.map +1 -1
  14. package/dist/cjs/layouts/stack-utils/StackToolbar.cjs +124 -0
  15. package/dist/cjs/layouts/stack-utils/StackToolbar.native.js +129 -0
  16. package/dist/cjs/layouts/stack-utils/StackToolbar.native.js.map +1 -0
  17. package/dist/cjs/layouts/stack-utils/StackToolbar.shared.cjs +57 -0
  18. package/dist/cjs/layouts/stack-utils/StackToolbar.shared.native.js +61 -0
  19. package/dist/cjs/layouts/stack-utils/StackToolbar.shared.native.js.map +1 -0
  20. package/dist/cjs/layouts/stack-utils/StackToolbar.types.cjs +18 -0
  21. package/dist/cjs/layouts/stack-utils/StackToolbar.types.native.js +21 -0
  22. package/dist/cjs/layouts/stack-utils/StackToolbar.types.native.js.map +1 -0
  23. package/dist/cjs/layouts/stack-utils/StackToolbarImplementation.cjs +39 -0
  24. package/dist/cjs/layouts/stack-utils/StackToolbarImplementation.native.js +41 -0
  25. package/dist/cjs/layouts/stack-utils/StackToolbarImplementation.native.js.map +1 -0
  26. package/dist/cjs/layouts/stack-utils/__tests__/StackToolbar.test.cjs +66 -0
  27. package/dist/cjs/layouts/stack-utils/__tests__/StackToolbar.test.native.js +99 -0
  28. package/dist/cjs/layouts/stack-utils/__tests__/StackToolbar.test.native.js.map +1 -0
  29. package/dist/cjs/layouts/stack-utils/index.cjs +2 -0
  30. package/dist/cjs/layouts/stack-utils/index.native.js +2 -0
  31. package/dist/cjs/layouts/stack-utils/index.native.js.map +1 -1
  32. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.cjs +9 -3
  33. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.native.js +9 -4
  34. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.native.js.map +1 -1
  35. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.test.cjs +84 -0
  36. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.test.native.js +91 -0
  37. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.test.native.js.map +1 -0
  38. package/dist/cjs/router/router.native.js.map +1 -1
  39. package/dist/cjs/router/useInitializeOneRouter.cjs +2 -2
  40. package/dist/cjs/router/useInitializeOneRouter.native.js +2 -2
  41. package/dist/cjs/router/useInitializeOneRouter.native.js.map +1 -1
  42. package/dist/cjs/router/useInitializeOneRouter.preview-lifecycle.test.cjs +1 -1
  43. package/dist/cjs/router/useInitializeOneRouter.preview-lifecycle.test.native.js +1 -1
  44. package/dist/cjs/router/useInitializeOneRouter.preview-lifecycle.test.native.js.map +1 -1
  45. package/dist/cjs/stack-toolbar-implementation.cjs +30 -0
  46. package/dist/cjs/stack-toolbar-implementation.native.js +33 -0
  47. package/dist/cjs/stack-toolbar-implementation.native.js.map +1 -0
  48. package/dist/esm/headless/__tests__/useStack.test.mjs +56 -0
  49. package/dist/esm/headless/__tests__/useStack.test.mjs.map +1 -0
  50. package/dist/esm/headless/__tests__/useStack.test.native.js +59 -0
  51. package/dist/esm/headless/__tests__/useStack.test.native.js.map +1 -0
  52. package/dist/esm/headless/useStack.mjs +2 -1
  53. package/dist/esm/headless/useStack.mjs.map +1 -1
  54. package/dist/esm/headless/useStack.native.js +2 -1
  55. package/dist/esm/headless/useStack.native.js.map +1 -1
  56. package/dist/esm/index.js.map +1 -1
  57. package/dist/esm/index.mjs.map +1 -1
  58. package/dist/esm/index.native.js.map +1 -1
  59. package/dist/esm/layouts/Stack.mjs +13 -10
  60. package/dist/esm/layouts/Stack.mjs.map +1 -1
  61. package/dist/esm/layouts/Stack.native.js +14 -11
  62. package/dist/esm/layouts/Stack.native.js.map +1 -1
  63. package/dist/esm/layouts/stack-utils/StackScreen.mjs +6 -3
  64. package/dist/esm/layouts/stack-utils/StackScreen.mjs.map +1 -1
  65. package/dist/esm/layouts/stack-utils/StackScreen.native.js +7 -4
  66. package/dist/esm/layouts/stack-utils/StackScreen.native.js.map +1 -1
  67. package/dist/esm/layouts/stack-utils/StackToolbar.mjs +89 -0
  68. package/dist/esm/layouts/stack-utils/StackToolbar.mjs.map +1 -0
  69. package/dist/esm/layouts/stack-utils/StackToolbar.native.js +92 -0
  70. package/dist/esm/layouts/stack-utils/StackToolbar.native.js.map +1 -0
  71. package/dist/esm/layouts/stack-utils/StackToolbar.shared.mjs +31 -0
  72. package/dist/esm/layouts/stack-utils/StackToolbar.shared.mjs.map +1 -0
  73. package/dist/esm/layouts/stack-utils/StackToolbar.shared.native.js +32 -0
  74. package/dist/esm/layouts/stack-utils/StackToolbar.shared.native.js.map +1 -0
  75. package/dist/esm/layouts/stack-utils/StackToolbar.types.mjs +2 -0
  76. package/dist/esm/layouts/stack-utils/StackToolbar.types.mjs.map +1 -0
  77. package/dist/esm/layouts/stack-utils/StackToolbar.types.native.js +2 -0
  78. package/dist/esm/layouts/stack-utils/StackToolbar.types.native.js.map +1 -0
  79. package/dist/esm/layouts/stack-utils/StackToolbarImplementation.mjs +12 -0
  80. package/dist/esm/layouts/stack-utils/StackToolbarImplementation.mjs.map +1 -0
  81. package/dist/esm/layouts/stack-utils/StackToolbarImplementation.native.js +12 -0
  82. package/dist/esm/layouts/stack-utils/StackToolbarImplementation.native.js.map +1 -0
  83. package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.test.mjs +67 -0
  84. package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.test.mjs.map +1 -0
  85. package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.test.native.js +73 -0
  86. package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.test.native.js.map +1 -0
  87. package/dist/esm/layouts/stack-utils/index.mjs +2 -1
  88. package/dist/esm/layouts/stack-utils/index.mjs.map +1 -1
  89. package/dist/esm/layouts/stack-utils/index.native.js +2 -1
  90. package/dist/esm/layouts/stack-utils/index.native.js.map +1 -1
  91. package/dist/esm/metro-config/buildOneMetroResolverOverrides.mjs +9 -3
  92. package/dist/esm/metro-config/buildOneMetroResolverOverrides.mjs.map +1 -1
  93. package/dist/esm/metro-config/buildOneMetroResolverOverrides.native.js +9 -4
  94. package/dist/esm/metro-config/buildOneMetroResolverOverrides.native.js.map +1 -1
  95. package/dist/esm/metro-config/buildOneMetroResolverOverrides.test.mjs +61 -0
  96. package/dist/esm/metro-config/buildOneMetroResolverOverrides.test.mjs.map +1 -0
  97. package/dist/esm/metro-config/buildOneMetroResolverOverrides.test.native.js +65 -0
  98. package/dist/esm/metro-config/buildOneMetroResolverOverrides.test.native.js.map +1 -0
  99. package/dist/esm/router/useInitializeOneRouter.mjs +1 -1
  100. package/dist/esm/router/useInitializeOneRouter.mjs.map +1 -1
  101. package/dist/esm/router/useInitializeOneRouter.native.js +1 -1
  102. package/dist/esm/router/useInitializeOneRouter.preview-lifecycle.test.mjs +1 -1
  103. package/dist/esm/router/useInitializeOneRouter.preview-lifecycle.test.mjs.map +1 -1
  104. package/dist/esm/router/useInitializeOneRouter.preview-lifecycle.test.native.js +1 -1
  105. package/dist/esm/router/useInitializeOneRouter.preview-lifecycle.test.native.js.map +1 -1
  106. package/dist/esm/stack-toolbar-implementation.mjs +3 -0
  107. package/dist/esm/stack-toolbar-implementation.mjs.map +1 -0
  108. package/dist/esm/stack-toolbar-implementation.native.js +3 -0
  109. package/dist/esm/stack-toolbar-implementation.native.js.map +1 -0
  110. package/package.json +26 -20
  111. package/src/headless/__tests__/useStack.test.tsx +54 -0
  112. package/src/headless/types.ts +2 -1
  113. package/src/headless/useStack.ts +2 -1
  114. package/src/index.ts +12 -0
  115. package/src/layouts/Stack.tsx +33 -8
  116. package/src/layouts/stack-utils/README.md +1 -0
  117. package/src/layouts/stack-utils/StackScreen.tsx +26 -5
  118. package/src/layouts/stack-utils/StackToolbar.shared.ts +44 -0
  119. package/src/layouts/stack-utils/StackToolbar.tsx +134 -0
  120. package/src/layouts/stack-utils/StackToolbar.types.ts +100 -0
  121. package/src/layouts/stack-utils/StackToolbarImplementation.tsx +39 -0
  122. package/src/layouts/stack-utils/__tests__/StackToolbar.test.tsx +70 -0
  123. package/src/layouts/stack-utils/index.tsx +17 -0
  124. package/src/metro-config/buildOneMetroResolverOverrides.test.ts +88 -0
  125. package/src/metro-config/buildOneMetroResolverOverrides.ts +20 -8
  126. package/src/router/router.ts +5 -5
  127. package/src/router/useInitializeOneRouter.preview-lifecycle.test.ts +1 -1
  128. package/src/router/useInitializeOneRouter.ts +2 -2
  129. package/src/stack-toolbar-implementation.ts +8 -0
  130. package/types/fork/useLinking.native.d.ts +4 -4
  131. package/types/headless/types.d.ts +4 -1
  132. package/types/headless/types.d.ts.map +1 -1
  133. package/types/headless/useStack.d.ts.map +1 -1
  134. package/types/index.d.ts +1 -1
  135. package/types/index.d.ts.map +1 -1
  136. package/types/layouts/Drawer.d.ts +54 -54
  137. package/types/layouts/Stack.d.ts +58 -46
  138. package/types/layouts/Stack.d.ts.map +1 -1
  139. package/types/layouts/Tabs.d.ts +46 -46
  140. package/types/layouts/stack-utils/StackScreen.d.ts +2 -1
  141. package/types/layouts/stack-utils/StackScreen.d.ts.map +1 -1
  142. package/types/layouts/stack-utils/StackToolbar.d.ts +28 -0
  143. package/types/layouts/stack-utils/StackToolbar.d.ts.map +1 -0
  144. package/types/layouts/stack-utils/StackToolbar.shared.d.ts +5 -0
  145. package/types/layouts/stack-utils/StackToolbar.shared.d.ts.map +1 -0
  146. package/types/layouts/stack-utils/StackToolbar.types.d.ts +83 -0
  147. package/types/layouts/stack-utils/StackToolbar.types.d.ts.map +1 -0
  148. package/types/layouts/stack-utils/StackToolbarImplementation.d.ts +12 -0
  149. package/types/layouts/stack-utils/StackToolbarImplementation.d.ts.map +1 -0
  150. package/types/layouts/stack-utils/index.d.ts +3 -1
  151. package/types/layouts/stack-utils/index.d.ts.map +1 -1
  152. package/types/metro-config/buildOneMetroResolverOverrides.d.ts +2 -1
  153. package/types/metro-config/buildOneMetroResolverOverrides.d.ts.map +1 -1
  154. package/types/metro-config/buildOneMetroResolverOverrides.test.d.ts +2 -0
  155. package/types/metro-config/buildOneMetroResolverOverrides.test.d.ts.map +1 -0
  156. package/types/router/router.d.ts +1 -1
  157. package/types/router/router.d.ts.map +1 -1
  158. package/types/stack-toolbar-implementation.d.ts +3 -0
  159. package/types/stack-toolbar-implementation.d.ts.map +1 -0
  160. package/types/ui/TabContext.d.ts +15 -23
  161. package/types/ui/TabContext.d.ts.map +1 -1
  162. package/types/ui/TabRouter.d.ts +5 -5
  163. package/types/ui/Tabs.shared.d.ts +22 -22
  164. package/types/ui/Tabs.shared.d.ts.map +1 -1
@@ -3,6 +3,8 @@
3
3
  import { Children, isValidElement, useMemo } from "react";
4
4
  import { NAVIGATOR_CONFIG } from "../../headless/children.mjs";
5
5
  import { StackHeaderComponent, appendStackHeaderPropsToOptions } from "./StackHeaderComponent.mjs";
6
+ import { StackToolbar, appendStackToolbarPropsToOptions } from "./StackToolbar.mjs";
7
+ import { getStackToolbarImplementation } from "./StackToolbarImplementation.mjs";
6
8
  import { Screen } from "../../views/Screen.mjs";
7
9
  import { jsx } from "react/jsx-runtime";
8
10
  function StackScreen({
@@ -10,9 +12,10 @@ function StackScreen({
10
12
  options,
11
13
  ...rest
12
14
  }) {
15
+ const toolbarImplementation = getStackToolbarImplementation();
13
16
  const updatedOptions = useMemo(() => appendScreenStackPropsToOptions(options ?? {}, {
14
17
  children
15
- }), [options, children]);
18
+ }, toolbarImplementation), [options, children, toolbarImplementation]);
16
19
  return /* @__PURE__ */jsx(Screen, {
17
20
  ...rest,
18
21
  options: updatedOptions
@@ -27,14 +30,14 @@ function validateStackPresentation(options) {
27
30
  };
28
31
  return options;
29
32
  }
30
- function appendScreenStackPropsToOptions(options, props) {
33
+ function appendScreenStackPropsToOptions(options, props, toolbarImplementation) {
31
34
  let updatedOptions = {
32
35
  ...options,
33
36
  ...props.options
34
37
  };
35
38
  updatedOptions = validateStackPresentation(updatedOptions);
36
39
  function appendChildOptions(child, options2) {
37
- if (child.type === StackHeaderComponent) return appendStackHeaderPropsToOptions(options2, child.props);else console.warn(`Warning: Unknown child element passed to Stack.Screen: ${child.type.name ?? child.type}`);
40
+ if (child.type === StackHeaderComponent) return appendStackHeaderPropsToOptions(options2, child.props);else if (child.type === StackToolbar) return appendStackToolbarPropsToOptions(options2, child.props, toolbarImplementation);else console.warn(`Warning: Unknown child element passed to Stack.Screen: ${child.type.name ?? child.type}`);
38
41
  return options2;
39
42
  }
40
43
  Children.forEach(props.children, child => {
@@ -1 +1 @@
1
- {"version":3,"names":["Children","isValidElement","useMemo","NAVIGATOR_CONFIG","StackHeaderComponent","appendStackHeaderPropsToOptions","Screen","jsx","StackScreen","children","options","rest","updatedOptions","appendScreenStackPropsToOptions","Object","assign","validateStackPresentation","args","props","appendChildOptions","child","options2","type","console","warn","name","forEach"],"sources":["StackScreen.mjs"],"sourcesContent":["\"use client\";\n\nimport { Children, isValidElement, useMemo } from \"react\";\nimport { NAVIGATOR_CONFIG } from \"../../headless/children\";\nimport { StackHeaderComponent, appendStackHeaderPropsToOptions } from \"./StackHeaderComponent\";\nimport { Screen } from \"../../views/Screen\";\nimport { jsx } from \"react/jsx-runtime\";\n\nfunction StackScreen({ children, options, ...rest }) {\n\tconst updatedOptions = useMemo(() => appendScreenStackPropsToOptions(options ?? {}, { children }), [options, children]);\n\treturn /* @__PURE__ */ jsx(Screen, {\n\t\t...rest,\n\t\toptions: updatedOptions\n\t});\n}\nObject.assign(StackScreen, { [NAVIGATOR_CONFIG]: true });\nfunction validateStackPresentation(options) {\n\tif (typeof options === \"function\") return (...args) => {\n\t\treturn validateStackPresentation(options(...args));\n\t};\n\treturn options;\n}\nfunction appendScreenStackPropsToOptions(options, props) {\n\tlet updatedOptions = {\n\t\t...options,\n\t\t...props.options\n\t};\n\tupdatedOptions = validateStackPresentation(updatedOptions);\n\tfunction appendChildOptions(child, options2) {\n\t\tif (child.type === StackHeaderComponent) return appendStackHeaderPropsToOptions(options2, child.props);\n\t\telse console.warn(`Warning: Unknown child element passed to Stack.Screen: ${child.type.name ?? child.type}`);\n\t\treturn options2;\n\t}\n\tChildren.forEach(props.children, (child) => {\n\t\tif (isValidElement(child)) updatedOptions = appendChildOptions(child, updatedOptions);\n\t});\n\treturn updatedOptions;\n}\n\nexport { StackScreen, appendScreenStackPropsToOptions, validateStackPresentation };"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,QAAQ,EAAEC,cAAc,EAAEC,OAAO,QAAQ,OAAO;AACzD,SAASC,gBAAgB,QAAQ,6BAAyB;AAC1D,SAASC,oBAAoB,EAAEC,+BAA+B,QAAQ,4BAAwB;AAC9F,SAASC,MAAM,QAAQ,wBAAoB;AAC3C,SAASC,GAAG,QAAQ,mBAAmB;AAEvC,SAASC,WAAWA,CAAC;EAAEC,QAAQ;EAAEC,OAAO;EAAE,GAAGC;AAAK,CAAC,EAAE;EACpD,MAAMC,cAAc,GAAGV,OAAO,CAAC,MAAMW,+BAA+B,CAACH,OAAO,IAAI,CAAC,CAAC,EAAE;IAAED;EAAS,CAAC,CAAC,EAAE,CAACC,OAAO,EAAED,QAAQ,CAAC,CAAC;EACvH,OAAO,eAAgBF,GAAG,CAACD,MAAM,EAAE;IAClC,GAAGK,IAAI;IACPD,OAAO,EAAEE;EACV,CAAC,CAAC;AACH;AACAE,MAAM,CAACC,MAAM,CAACP,WAAW,EAAE;EAAE,CAACL,gBAAgB,GAAG;AAAK,CAAC,CAAC;AACxD,SAASa,yBAAyBA,CAACN,OAAO,EAAE;EAC3C,IAAI,OAAOA,OAAO,KAAK,UAAU,EAAE,OAAO,CAAC,GAAGO,IAAI,KAAK;IACtD,OAAOD,yBAAyB,CAACN,OAAO,CAAC,GAAGO,IAAI,CAAC,CAAC;EACnD,CAAC;EACD,OAAOP,OAAO;AACf;AACA,SAASG,+BAA+BA,CAACH,OAAO,EAAEQ,KAAK,EAAE;EACxD,IAAIN,cAAc,GAAG;IACpB,GAAGF,OAAO;IACV,GAAGQ,KAAK,CAACR;EACV,CAAC;EACDE,cAAc,GAAGI,yBAAyB,CAACJ,cAAc,CAAC;EAC1D,SAASO,kBAAkBA,CAACC,KAAK,EAAEC,QAAQ,EAAE;IAC5C,IAAID,KAAK,CAACE,IAAI,KAAKlB,oBAAoB,EAAE,OAAOC,+BAA+B,CAACgB,QAAQ,EAAED,KAAK,CAACF,KAAK,CAAC,CAAC,KAClGK,OAAO,CAACC,IAAI,CAAC,0DAA0DJ,KAAK,CAACE,IAAI,CAACG,IAAI,IAAIL,KAAK,CAACE,IAAI,EAAE,CAAC;IAC5G,OAAOD,QAAQ;EAChB;EACArB,QAAQ,CAAC0B,OAAO,CAACR,KAAK,CAACT,QAAQ,EAAGW,KAAK,IAAK;IAC3C,IAAInB,cAAc,CAACmB,KAAK,CAAC,EAAER,cAAc,GAAGO,kBAAkB,CAACC,KAAK,EAAER,cAAc,CAAC;EACtF,CAAC,CAAC;EACF,OAAOA,cAAc;AACtB;AAEA,SAASJ,WAAW,EAAEK,+BAA+B,EAAEG,yBAAyB","ignoreList":[]}
1
+ {"version":3,"names":["Children","isValidElement","useMemo","NAVIGATOR_CONFIG","StackHeaderComponent","appendStackHeaderPropsToOptions","StackToolbar","appendStackToolbarPropsToOptions","getStackToolbarImplementation","Screen","jsx","StackScreen","children","options","rest","toolbarImplementation","updatedOptions","appendScreenStackPropsToOptions","Object","assign","validateStackPresentation","args","props","appendChildOptions","child","options2","type","console","warn","name","forEach"],"sources":["StackScreen.mjs"],"sourcesContent":["\"use client\";\n\nimport { Children, isValidElement, useMemo } from \"react\";\nimport { NAVIGATOR_CONFIG } from \"../../headless/children\";\nimport { StackHeaderComponent, appendStackHeaderPropsToOptions } from \"./StackHeaderComponent\";\nimport { StackToolbar, appendStackToolbarPropsToOptions } from \"./StackToolbar\";\nimport { getStackToolbarImplementation } from \"./StackToolbarImplementation\";\nimport { Screen } from \"../../views/Screen\";\nimport { jsx } from \"react/jsx-runtime\";\n\nfunction StackScreen({ children, options, ...rest }) {\n\tconst toolbarImplementation = getStackToolbarImplementation();\n\tconst updatedOptions = useMemo(() => appendScreenStackPropsToOptions(options ?? {}, { children }, toolbarImplementation), [\n\t\toptions,\n\t\tchildren,\n\t\ttoolbarImplementation\n\t]);\n\treturn /* @__PURE__ */ jsx(Screen, {\n\t\t...rest,\n\t\toptions: updatedOptions\n\t});\n}\nObject.assign(StackScreen, { [NAVIGATOR_CONFIG]: true });\nfunction validateStackPresentation(options) {\n\tif (typeof options === \"function\") return (...args) => {\n\t\treturn validateStackPresentation(options(...args));\n\t};\n\treturn options;\n}\nfunction appendScreenStackPropsToOptions(options, props, toolbarImplementation) {\n\tlet updatedOptions = {\n\t\t...options,\n\t\t...props.options\n\t};\n\tupdatedOptions = validateStackPresentation(updatedOptions);\n\tfunction appendChildOptions(child, options2) {\n\t\tif (child.type === StackHeaderComponent) return appendStackHeaderPropsToOptions(options2, child.props);\n\t\telse if (child.type === StackToolbar) return appendStackToolbarPropsToOptions(options2, child.props, toolbarImplementation);\n\t\telse console.warn(`Warning: Unknown child element passed to Stack.Screen: ${child.type.name ?? child.type}`);\n\t\treturn options2;\n\t}\n\tChildren.forEach(props.children, (child) => {\n\t\tif (isValidElement(child)) updatedOptions = appendChildOptions(child, updatedOptions);\n\t});\n\treturn updatedOptions;\n}\n\nexport { StackScreen, appendScreenStackPropsToOptions, validateStackPresentation };"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,QAAQ,EAAEC,cAAc,EAAEC,OAAO,QAAQ,OAAO;AACzD,SAASC,gBAAgB,QAAQ,6BAAyB;AAC1D,SAASC,oBAAoB,EAAEC,+BAA+B,QAAQ,4BAAwB;AAC9F,SAASC,YAAY,EAAEC,gCAAgC,QAAQ,oBAAgB;AAC/E,SAASC,6BAA6B,QAAQ,kCAA8B;AAC5E,SAASC,MAAM,QAAQ,wBAAoB;AAC3C,SAASC,GAAG,QAAQ,mBAAmB;AAEvC,SAASC,WAAWA,CAAC;EAAEC,QAAQ;EAAEC,OAAO;EAAE,GAAGC;AAAK,CAAC,EAAE;EACpD,MAAMC,qBAAqB,GAAGP,6BAA6B,CAAC,CAAC;EAC7D,MAAMQ,cAAc,GAAGd,OAAO,CAAC,MAAMe,+BAA+B,CAACJ,OAAO,IAAI,CAAC,CAAC,EAAE;IAAED;EAAS,CAAC,EAAEG,qBAAqB,CAAC,EAAE,CACzHF,OAAO,EACPD,QAAQ,EACRG,qBAAqB,CACrB,CAAC;EACF,OAAO,eAAgBL,GAAG,CAACD,MAAM,EAAE;IAClC,GAAGK,IAAI;IACPD,OAAO,EAAEG;EACV,CAAC,CAAC;AACH;AACAE,MAAM,CAACC,MAAM,CAACR,WAAW,EAAE;EAAE,CAACR,gBAAgB,GAAG;AAAK,CAAC,CAAC;AACxD,SAASiB,yBAAyBA,CAACP,OAAO,EAAE;EAC3C,IAAI,OAAOA,OAAO,KAAK,UAAU,EAAE,OAAO,CAAC,GAAGQ,IAAI,KAAK;IACtD,OAAOD,yBAAyB,CAACP,OAAO,CAAC,GAAGQ,IAAI,CAAC,CAAC;EACnD,CAAC;EACD,OAAOR,OAAO;AACf;AACA,SAASI,+BAA+BA,CAACJ,OAAO,EAAES,KAAK,EAAEP,qBAAqB,EAAE;EAC/E,IAAIC,cAAc,GAAG;IACpB,GAAGH,OAAO;IACV,GAAGS,KAAK,CAACT;EACV,CAAC;EACDG,cAAc,GAAGI,yBAAyB,CAACJ,cAAc,CAAC;EAC1D,SAASO,kBAAkBA,CAACC,KAAK,EAAEC,QAAQ,EAAE;IAC5C,IAAID,KAAK,CAACE,IAAI,KAAKtB,oBAAoB,EAAE,OAAOC,+BAA+B,CAACoB,QAAQ,EAAED,KAAK,CAACF,KAAK,CAAC,CAAC,KAClG,IAAIE,KAAK,CAACE,IAAI,KAAKpB,YAAY,EAAE,OAAOC,gCAAgC,CAACkB,QAAQ,EAAED,KAAK,CAACF,KAAK,EAAEP,qBAAqB,CAAC,CAAC,KACvHY,OAAO,CAACC,IAAI,CAAC,0DAA0DJ,KAAK,CAACE,IAAI,CAACG,IAAI,IAAIL,KAAK,CAACE,IAAI,EAAE,CAAC;IAC5G,OAAOD,QAAQ;EAChB;EACAzB,QAAQ,CAAC8B,OAAO,CAACR,KAAK,CAACV,QAAQ,EAAGY,KAAK,IAAK;IAC3C,IAAIvB,cAAc,CAACuB,KAAK,CAAC,EAAER,cAAc,GAAGO,kBAAkB,CAACC,KAAK,EAAER,cAAc,CAAC;EACtF,CAAC,CAAC;EACF,OAAOA,cAAc;AACtB;AAEA,SAASL,WAAW,EAAEM,+BAA+B,EAAEG,yBAAyB","ignoreList":[]}
@@ -4,6 +4,8 @@ import { jsx } from "react/jsx-runtime";
4
4
  import { Children, isValidElement, useMemo } from "react";
5
5
  import { NAVIGATOR_CONFIG } from "../../headless/children.native.js";
6
6
  import { StackHeaderComponent, appendStackHeaderPropsToOptions } from "./StackHeaderComponent.native.js";
7
+ import { StackToolbar, appendStackToolbarPropsToOptions } from "./StackToolbar.native.js";
8
+ import { getStackToolbarImplementation } from "./StackToolbarImplementation.native.js";
7
9
  import { Screen } from "../../views/Screen.native.js";
8
10
  function StackScreen(param) {
9
11
  var {
@@ -11,11 +13,12 @@ function StackScreen(param) {
11
13
  options,
12
14
  ...rest
13
15
  } = param;
16
+ var toolbarImplementation = getStackToolbarImplementation();
14
17
  var updatedOptions = useMemo(function () {
15
18
  return appendScreenStackPropsToOptions(options !== null && options !== void 0 ? options : {}, {
16
19
  children
17
- });
18
- }, [options, children]);
20
+ }, toolbarImplementation);
21
+ }, [options, children, toolbarImplementation]);
19
22
  return /* @__PURE__ */jsx(Screen, {
20
23
  ...rest,
21
24
  options: updatedOptions
@@ -40,14 +43,14 @@ function validateStackPresentation(options) {
40
43
  presentation: "modal"
41
44
  };
42
45
  }
43
- function appendScreenStackPropsToOptions(options, props) {
46
+ function appendScreenStackPropsToOptions(options, props, toolbarImplementation) {
44
47
  var updatedOptions = {
45
48
  ...options,
46
49
  ...props.options
47
50
  };
48
51
  updatedOptions = validateStackPresentation(updatedOptions);
49
52
  function appendChildOptions(child, options2) {
50
- if (child.type === StackHeaderComponent) return appendStackHeaderPropsToOptions(options2, child.props);else {
53
+ if (child.type === StackHeaderComponent) return appendStackHeaderPropsToOptions(options2, child.props);else if (child.type === StackToolbar) return appendStackToolbarPropsToOptions(options2, child.props, toolbarImplementation);else {
51
54
  var _child_type_name;
52
55
  console.warn(`Warning: Unknown child element passed to Stack.Screen: ${(_child_type_name = child.type.name) !== null && _child_type_name !== void 0 ? _child_type_name : child.type}`);
53
56
  }
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","Children","isValidElement","useMemo","NAVIGATOR_CONFIG","StackHeaderComponent","appendStackHeaderPropsToOptions","Screen","StackScreen","param","children","options","rest","updatedOptions","appendScreenStackPropsToOptions","Object","assign","NATIVE_PRESENTATIONS","validateStackPresentation","_len","arguments","length","args","Array","_key","presentation","includes","props","appendChildOptions","child","options2","type","_child_type_name","console","warn","name","forEach"],"sources":["StackScreen.native.js"],"sourcesContent":["\"use client\";\n\nimport { jsx } from \"react/jsx-runtime\";\nimport { Children, isValidElement, useMemo } from \"react\";\nimport { NAVIGATOR_CONFIG } from \"../../headless/children\";\nimport { StackHeaderComponent, appendStackHeaderPropsToOptions } from \"./StackHeaderComponent\";\nimport { Screen } from \"../../views/Screen\";\n\nfunction StackScreen(param) {\n\tvar { children, options, ...rest } = param;\n\tvar updatedOptions = useMemo(function() {\n\t\treturn appendScreenStackPropsToOptions(options !== null && options !== void 0 ? options : {}, { children });\n\t}, [options, children]);\n\treturn /* @__PURE__ */ jsx(Screen, {\n\t\t...rest,\n\t\toptions: updatedOptions\n\t});\n}\nObject.assign(StackScreen, { [NAVIGATOR_CONFIG]: true });\nvar NATIVE_PRESENTATIONS = [\n\t\"card\",\n\t\"modal\",\n\t\"transparentModal\",\n\t\"containedModal\",\n\t\"containedTransparentModal\",\n\t\"fullScreenModal\",\n\t\"formSheet\",\n\t\"pageSheet\"\n];\nfunction validateStackPresentation(options) {\n\tif (typeof options === \"function\") return function() {\n\t\tfor (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n\t\treturn validateStackPresentation(options(...args));\n\t};\n\tif (!options.presentation) return options;\n\tif (options.presentation === \"sheet\") return {\n\t\t...options,\n\t\tpresentation: \"formSheet\"\n\t};\n\treturn NATIVE_PRESENTATIONS.includes(options.presentation) ? options : {\n\t\t...options,\n\t\tpresentation: \"modal\"\n\t};\n}\nfunction appendScreenStackPropsToOptions(options, props) {\n\tvar updatedOptions = {\n\t\t...options,\n\t\t...props.options\n\t};\n\tupdatedOptions = validateStackPresentation(updatedOptions);\n\tfunction appendChildOptions(child, options2) {\n\t\tif (child.type === StackHeaderComponent) return appendStackHeaderPropsToOptions(options2, child.props);\n\t\telse {\n\t\t\tvar _child_type_name;\n\t\t\tconsole.warn(`Warning: Unknown child element passed to Stack.Screen: ${(_child_type_name = child.type.name) !== null && _child_type_name !== void 0 ? _child_type_name : child.type}`);\n\t\t}\n\t\treturn options2;\n\t}\n\tChildren.forEach(props.children, function(child) {\n\t\tif (/* @__PURE__ */ isValidElement(child)) updatedOptions = appendChildOptions(child, updatedOptions);\n\t});\n\treturn updatedOptions;\n}\n\nexport { StackScreen, appendScreenStackPropsToOptions, validateStackPresentation };"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["jsx","Children","isValidElement","useMemo","NAVIGATOR_CONFIG","StackHeaderComponent","appendStackHeaderPropsToOptions","StackToolbar","appendStackToolbarPropsToOptions","getStackToolbarImplementation","Screen","StackScreen","param","children","options","rest","toolbarImplementation","updatedOptions","appendScreenStackPropsToOptions","Object","assign","NATIVE_PRESENTATIONS","validateStackPresentation","_len","arguments","length","args","Array","_key","presentation","includes","props","appendChildOptions","child","options2","type","_child_type_name","console","warn","name","forEach"],"sources":["StackScreen.native.js"],"sourcesContent":["\"use client\";\n\nimport { jsx } from \"react/jsx-runtime\";\nimport { Children, isValidElement, useMemo } from \"react\";\nimport { NAVIGATOR_CONFIG } from \"../../headless/children\";\nimport { StackHeaderComponent, appendStackHeaderPropsToOptions } from \"./StackHeaderComponent\";\nimport { StackToolbar, appendStackToolbarPropsToOptions } from \"./StackToolbar\";\nimport { getStackToolbarImplementation } from \"./StackToolbarImplementation\";\nimport { Screen } from \"../../views/Screen\";\n\nfunction StackScreen(param) {\n\tvar { children, options, ...rest } = param;\n\tvar toolbarImplementation = getStackToolbarImplementation();\n\tvar updatedOptions = useMemo(function() {\n\t\treturn appendScreenStackPropsToOptions(options !== null && options !== void 0 ? options : {}, { children }, toolbarImplementation);\n\t}, [\n\t\toptions,\n\t\tchildren,\n\t\ttoolbarImplementation\n\t]);\n\treturn /* @__PURE__ */ jsx(Screen, {\n\t\t...rest,\n\t\toptions: updatedOptions\n\t});\n}\nObject.assign(StackScreen, { [NAVIGATOR_CONFIG]: true });\nvar NATIVE_PRESENTATIONS = [\n\t\"card\",\n\t\"modal\",\n\t\"transparentModal\",\n\t\"containedModal\",\n\t\"containedTransparentModal\",\n\t\"fullScreenModal\",\n\t\"formSheet\",\n\t\"pageSheet\"\n];\nfunction validateStackPresentation(options) {\n\tif (typeof options === \"function\") return function() {\n\t\tfor (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n\t\treturn validateStackPresentation(options(...args));\n\t};\n\tif (!options.presentation) return options;\n\tif (options.presentation === \"sheet\") return {\n\t\t...options,\n\t\tpresentation: \"formSheet\"\n\t};\n\treturn NATIVE_PRESENTATIONS.includes(options.presentation) ? options : {\n\t\t...options,\n\t\tpresentation: \"modal\"\n\t};\n}\nfunction appendScreenStackPropsToOptions(options, props, toolbarImplementation) {\n\tvar updatedOptions = {\n\t\t...options,\n\t\t...props.options\n\t};\n\tupdatedOptions = validateStackPresentation(updatedOptions);\n\tfunction appendChildOptions(child, options2) {\n\t\tif (child.type === StackHeaderComponent) return appendStackHeaderPropsToOptions(options2, child.props);\n\t\telse if (child.type === StackToolbar) return appendStackToolbarPropsToOptions(options2, child.props, toolbarImplementation);\n\t\telse {\n\t\t\tvar _child_type_name;\n\t\t\tconsole.warn(`Warning: Unknown child element passed to Stack.Screen: ${(_child_type_name = child.type.name) !== null && _child_type_name !== void 0 ? _child_type_name : child.type}`);\n\t\t}\n\t\treturn options2;\n\t}\n\tChildren.forEach(props.children, function(child) {\n\t\tif (/* @__PURE__ */ isValidElement(child)) updatedOptions = appendChildOptions(child, updatedOptions);\n\t});\n\treturn updatedOptions;\n}\n\nexport { StackScreen, appendScreenStackPropsToOptions, validateStackPresentation };"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,89 @@
1
+ "use client";
2
+
3
+ import { useMemo } from "react";
4
+ import { useIsomorphicLayoutEffect } from "@vxrn/use-isomorphic-layout-effect";
5
+ import { NAVIGATOR_CONFIG } from "../../headless/children.mjs";
6
+ import { useNavigation } from "../../router/useNavigation.mjs";
7
+ import { STACK_TOOLBAR_CHILD, getStackToolbarImplementation } from "./StackToolbarImplementation.mjs";
8
+ import { appendStackToolbarConfig } from "./StackToolbar.shared.mjs";
9
+ function appendStackToolbarPropsToOptions(options, props, implementation) {
10
+ const optionsWithConfig = appendStackToolbarConfig(options, props);
11
+ return implementation ? implementation.appendPropsToOptions(optionsWithConfig, props) : optionsWithConfig;
12
+ }
13
+ function StackToolbarComponent(props) {
14
+ const navigation = useNavigation();
15
+ const implementation = getStackToolbarImplementation();
16
+ const options = useMemo(() => appendStackToolbarPropsToOptions({}, props, implementation), [implementation, props.placement, props.asChild, props.children, props.disableImePadding, props.tintColor, props.backgroundColor]);
17
+ useIsomorphicLayoutEffect(() => {
18
+ navigation.setOptions(options);
19
+ }, [navigation, options]);
20
+ return implementation?.render(props) ?? null;
21
+ }
22
+ function StackToolbarButton(_props) {
23
+ return null;
24
+ }
25
+ function StackToolbarMenu(_props) {
26
+ return null;
27
+ }
28
+ function StackToolbarMenuAction(_props) {
29
+ return null;
30
+ }
31
+ function StackToolbarSpacer(_props) {
32
+ return null;
33
+ }
34
+ function StackToolbarSearchBarSlot(_props) {
35
+ return null;
36
+ }
37
+ function StackToolbarView(_props) {
38
+ return null;
39
+ }
40
+ function StackToolbarLabel(_props) {
41
+ return null;
42
+ }
43
+ function StackToolbarIcon(_props) {
44
+ return null;
45
+ }
46
+ function StackToolbarBadge(_props) {
47
+ return null;
48
+ }
49
+ Object.assign(StackToolbarButton, {
50
+ [STACK_TOOLBAR_CHILD]: "button"
51
+ });
52
+ Object.assign(StackToolbarMenu, {
53
+ [STACK_TOOLBAR_CHILD]: "menu"
54
+ });
55
+ Object.assign(StackToolbarMenuAction, {
56
+ [STACK_TOOLBAR_CHILD]: "menuAction"
57
+ });
58
+ Object.assign(StackToolbarSpacer, {
59
+ [STACK_TOOLBAR_CHILD]: "spacer"
60
+ });
61
+ Object.assign(StackToolbarSearchBarSlot, {
62
+ [STACK_TOOLBAR_CHILD]: "searchBarSlot"
63
+ });
64
+ Object.assign(StackToolbarView, {
65
+ [STACK_TOOLBAR_CHILD]: "view"
66
+ });
67
+ Object.assign(StackToolbarLabel, {
68
+ [STACK_TOOLBAR_CHILD]: "label"
69
+ });
70
+ Object.assign(StackToolbarIcon, {
71
+ [STACK_TOOLBAR_CHILD]: "icon"
72
+ });
73
+ Object.assign(StackToolbarBadge, {
74
+ [STACK_TOOLBAR_CHILD]: "badge"
75
+ });
76
+ const StackToolbar = Object.assign(StackToolbarComponent, {
77
+ [NAVIGATOR_CONFIG]: true,
78
+ Button: StackToolbarButton,
79
+ Menu: StackToolbarMenu,
80
+ MenuAction: StackToolbarMenuAction,
81
+ Spacer: StackToolbarSpacer,
82
+ SearchBarSlot: StackToolbarSearchBarSlot,
83
+ View: StackToolbarView,
84
+ Label: StackToolbarLabel,
85
+ Icon: StackToolbarIcon,
86
+ Badge: StackToolbarBadge
87
+ });
88
+ export { StackToolbar, StackToolbarBadge, StackToolbarButton, StackToolbarIcon, StackToolbarLabel, StackToolbarMenu, StackToolbarMenuAction, StackToolbarSearchBarSlot, StackToolbarSpacer, StackToolbarView, appendStackToolbarPropsToOptions };
89
+ //# sourceMappingURL=StackToolbar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","useIsomorphicLayoutEffect","NAVIGATOR_CONFIG","useNavigation","STACK_TOOLBAR_CHILD","getStackToolbarImplementation","appendStackToolbarConfig","appendStackToolbarPropsToOptions","options","props","implementation","optionsWithConfig","appendPropsToOptions","StackToolbarComponent","navigation","placement","asChild","children","disableImePadding","tintColor","backgroundColor","setOptions","render","StackToolbarButton","_props","StackToolbarMenu","StackToolbarMenuAction","StackToolbarSpacer","StackToolbarSearchBarSlot","StackToolbarView","StackToolbarLabel","StackToolbarIcon","StackToolbarBadge","Object","assign","StackToolbar","Button","Menu","MenuAction","Spacer","SearchBarSlot","View","Label","Icon","Badge"],"sources":["../../../../src/layouts/stack-utils/StackToolbar.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,92 @@
1
+ "use client";
2
+
3
+ import { useMemo } from "react";
4
+ import { useIsomorphicLayoutEffect } from "@vxrn/use-isomorphic-layout-effect";
5
+ import { NAVIGATOR_CONFIG } from "../../headless/children.native.js";
6
+ import { useNavigation } from "../../router/useNavigation.native.js";
7
+ import { STACK_TOOLBAR_CHILD, getStackToolbarImplementation } from "./StackToolbarImplementation.native.js";
8
+ import { appendStackToolbarConfig } from "./StackToolbar.shared.native.js";
9
+ function appendStackToolbarPropsToOptions(options, props, implementation) {
10
+ var optionsWithConfig = appendStackToolbarConfig(options, props);
11
+ return implementation ? implementation.appendPropsToOptions(optionsWithConfig, props) : optionsWithConfig;
12
+ }
13
+ function StackToolbarComponent(props) {
14
+ var _ref;
15
+ var navigation = useNavigation();
16
+ var implementation = getStackToolbarImplementation();
17
+ var options = useMemo(function () {
18
+ return appendStackToolbarPropsToOptions({}, props, implementation);
19
+ }, [implementation, props.placement, props.asChild, props.children, props.disableImePadding, props.tintColor, props.backgroundColor]);
20
+ useIsomorphicLayoutEffect(function () {
21
+ navigation.setOptions(options);
22
+ }, [navigation, options]);
23
+ return (_ref = implementation === null || implementation === void 0 ? void 0 : implementation.render(props)) !== null && _ref !== void 0 ? _ref : null;
24
+ }
25
+ function StackToolbarButton(_props) {
26
+ return null;
27
+ }
28
+ function StackToolbarMenu(_props) {
29
+ return null;
30
+ }
31
+ function StackToolbarMenuAction(_props) {
32
+ return null;
33
+ }
34
+ function StackToolbarSpacer(_props) {
35
+ return null;
36
+ }
37
+ function StackToolbarSearchBarSlot(_props) {
38
+ return null;
39
+ }
40
+ function StackToolbarView(_props) {
41
+ return null;
42
+ }
43
+ function StackToolbarLabel(_props) {
44
+ return null;
45
+ }
46
+ function StackToolbarIcon(_props) {
47
+ return null;
48
+ }
49
+ function StackToolbarBadge(_props) {
50
+ return null;
51
+ }
52
+ Object.assign(StackToolbarButton, {
53
+ [STACK_TOOLBAR_CHILD]: "button"
54
+ });
55
+ Object.assign(StackToolbarMenu, {
56
+ [STACK_TOOLBAR_CHILD]: "menu"
57
+ });
58
+ Object.assign(StackToolbarMenuAction, {
59
+ [STACK_TOOLBAR_CHILD]: "menuAction"
60
+ });
61
+ Object.assign(StackToolbarSpacer, {
62
+ [STACK_TOOLBAR_CHILD]: "spacer"
63
+ });
64
+ Object.assign(StackToolbarSearchBarSlot, {
65
+ [STACK_TOOLBAR_CHILD]: "searchBarSlot"
66
+ });
67
+ Object.assign(StackToolbarView, {
68
+ [STACK_TOOLBAR_CHILD]: "view"
69
+ });
70
+ Object.assign(StackToolbarLabel, {
71
+ [STACK_TOOLBAR_CHILD]: "label"
72
+ });
73
+ Object.assign(StackToolbarIcon, {
74
+ [STACK_TOOLBAR_CHILD]: "icon"
75
+ });
76
+ Object.assign(StackToolbarBadge, {
77
+ [STACK_TOOLBAR_CHILD]: "badge"
78
+ });
79
+ var StackToolbar = Object.assign(StackToolbarComponent, {
80
+ [NAVIGATOR_CONFIG]: true,
81
+ Button: StackToolbarButton,
82
+ Menu: StackToolbarMenu,
83
+ MenuAction: StackToolbarMenuAction,
84
+ Spacer: StackToolbarSpacer,
85
+ SearchBarSlot: StackToolbarSearchBarSlot,
86
+ View: StackToolbarView,
87
+ Label: StackToolbarLabel,
88
+ Icon: StackToolbarIcon,
89
+ Badge: StackToolbarBadge
90
+ });
91
+ export { StackToolbar, StackToolbarBadge, StackToolbarButton, StackToolbarIcon, StackToolbarLabel, StackToolbarMenu, StackToolbarMenuAction, StackToolbarSearchBarSlot, StackToolbarSpacer, StackToolbarView, appendStackToolbarPropsToOptions };
92
+ //# sourceMappingURL=StackToolbar.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","useIsomorphicLayoutEffect","NAVIGATOR_CONFIG","useNavigation","STACK_TOOLBAR_CHILD","getStackToolbarImplementation","appendStackToolbarConfig","appendStackToolbarPropsToOptions","options","props","implementation","optionsWithConfig","appendPropsToOptions","StackToolbarComponent","_ref","navigation","placement","asChild","children","disableImePadding","tintColor","backgroundColor","setOptions","render","StackToolbarButton","_props","StackToolbarMenu","StackToolbarMenuAction","StackToolbarSpacer","StackToolbarSearchBarSlot","StackToolbarView","StackToolbarLabel","StackToolbarIcon","StackToolbarBadge","Object","assign"],"sources":["../../../../src/layouts/stack-utils/StackToolbar.tsx"],"sourcesContent":[null],"mappings":";;AAGA,SAASA,OAAA,QAAe;AAExB,SAASC,yBAAA,QAAiC;AAC1C,SAASC,gBAAA,QAAwB;AACjC,SAASC,aAAA,QAAqB;AAC9B,SAAAC,mBAAA,EAAAC,6BAAA;AAAA,SACEC,wBAAA;AAAA,SACAC,iCAAAC,OAAA,EAAAC,KAAA,EAAAC,cAAA;EAAA,IAAAC,iBAEK,GAAAL,wBAAA,CAAAE,OAAA,EAAAC,KAAA;EACP,OAASC,cAAA,GAAAA,cAAA,CAAgCE,oBAAA,CAAAD,iBAAA,EAAAF,KAAA,IAAAE,iBAAA;AAclC;AAKL,SAAME,qBAAoBA,CAAAJ,KAAA;EAC1B,IAAAK,IAAO;EAGT,IAAAC,UAAA,GAAAZ,aAAA;EAEA,IAAAO,cAAS,GAAAL,6BAAgD;EACvD,IAAAG,OAAM,GAAAR,OAAa,aAAc;IACjC,OAAMO,gCAAiB,KAAAE,KAAA,EAA8BC,cAAA;EACrD,IACEA,cAAM,EACND,KAAA,CAAAO,SAAA,EAAAP,KACE,CAAAQ,OAAA,EAAAR,KACA,CAAAS,QAAM,EAAAT,KACN,CAAAU,iBAAM,EAAAV,KACN,CAAAW,SAAM,EAAAX,KACN,CAAAY,eAAM;EACApB,yBACA;IACRc,UAAA,CAAAO,UAAA,CAAAd,OAAA;EACF,IAEAO,UAAA,EACEP,OAAA,CACF;EAEA,OAAO,CAAAM,IAAA,GAAAJ,cAAgB,KAAO,IAAK,IAAKA,cAAA,uBAAAA,cAAA,CAAAa,MAAA,CAAAd,KAAA,eAAAK,IAAA,cAAAA,IAAA;AAC1C;AAEO,SAASU,mBAAmBC,MAAA,EAAiC;EAClE,OAAO;AACT;AAEO,SAASC,iBAAiBD,MAAA,EAA+B;EAC9D,OAAO;AACT;AAEO,SAASE,uBAAuBF,MAAA,EAAqC;EAC1E,OAAO;AACT;AAEO,SAASG,mBAAmBH,MAAA,EAAiC;EAClE,OAAO;AACT;AAEO,SAASI,0BAA0BJ,MAAA,EAAwC;EAChF,OAAO;AACT;AAEO,SAASK,iBAAiBL,MAAA,EAA+B;EAC9D,OAAO;AACT;AAEO,SAASM,kBAAkBN,MAAA,EAAgC;EAChE,OAAO;AACT;AAEO,SAASO,iBAAiBP,MAAA,EAA+B;EAC9D,OAAO;AACT;AAEO,SAASQ,kBAAkBR,MAAA,EAAgC;EAChE,OAAO;AACT;AAEAS,MAAA,CAAOC,MAAA,CAAOX,kBAAA,EAAoB;EAClC,CAAApB,mBAAc;AACd;AACA8B,MAAA,CAAOC,MAAA,CAAOT,gBAAA;EACd,CAAAtB,mBAAc;AACd;AACA8B,MAAA,CAAOC,MAAA,CAAOR,sBAAsB;EACpC,CAAAvB,mBAAc;AACd;AAEO8B,MAAM,CAAAC,MAAA,CAAAP,kBAAsB;EACjC,CAACxB,mBAAmB;AAAA,EACpB;AAAQ8B,MACR,CAAAC,MAAM,CAAAN,yBAAA;EACN,CAAAzB,mBAAY;AAAA,EACZ;AAAQ8B,MACR,CAAAC,MAAA,CAAAL,gBAAe;EACf,CAAA1B,mBAAM;AAAA,EACN;AAAO8B,MACP,CAAAC,MAAM,CAAAJ,iBAAA;EACN,CAAA3B,mBAAO;AACT,CAAC","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ const optionKeys = {
2
+ left: "__oneStackToolbarLeft",
3
+ right: "__oneStackToolbarRight",
4
+ bottom: "__oneStackToolbarBottom"
5
+ };
6
+ function appendStackToolbarConfig(options, props) {
7
+ return {
8
+ ...options,
9
+ [optionKeys[props.placement ?? "bottom"]]: props
10
+ };
11
+ }
12
+ function exposeStackToolbarConfig(options) {
13
+ const toolbar = {
14
+ left: options[optionKeys.left],
15
+ right: options[optionKeys.right],
16
+ bottom: options[optionKeys.bottom]
17
+ };
18
+ if (!toolbar.left && !toolbar.right && !toolbar.bottom) return options;
19
+ const {
20
+ [optionKeys.left]: _left,
21
+ [optionKeys.right]: _right,
22
+ [optionKeys.bottom]: _bottom,
23
+ ...publicOptions
24
+ } = options;
25
+ return {
26
+ ...publicOptions,
27
+ toolbar
28
+ };
29
+ }
30
+ export { appendStackToolbarConfig, exposeStackToolbarConfig };
31
+ //# sourceMappingURL=StackToolbar.shared.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["optionKeys","left","right","bottom","appendStackToolbarConfig","options","props","placement","exposeStackToolbarConfig","toolbar","_left","_right","_bottom","publicOptions"],"sources":["../../../../src/layouts/stack-utils/StackToolbar.shared.ts"],"sourcesContent":[null],"mappings":"AAQA,MAAMA,UAAA,GAAa;EACjBC,IAAA,EAAM;EACNC,KAAA,EAAO;EACPC,MAAA,EAAQ;AACV;AAEO,SAASC,yBACdC,OAAA,EACAC,KAAA,EAC8B;EAC9B,OAAO;IACL,GAAGD,OAAA;IACH,CAACL,UAAA,CAAWM,KAAA,CAAMC,SAAA,IAAa,QAAQ,CAAC,GAAGD;EAC7C;AACF;AAEO,SAASE,yBACdH,OAAA,EACqB;EACrB,MAAMI,OAAA,GAA8B;IAClCR,IAAA,EAAMI,OAAA,CAAQL,UAAA,CAAWC,IAAI;IAC7BC,KAAA,EAAOG,OAAA,CAAQL,UAAA,CAAWE,KAAK;IAC/BC,MAAA,EAAQE,OAAA,CAAQL,UAAA,CAAWG,MAAM;EACnC;EAEA,IAAI,CAACM,OAAA,CAAQR,IAAA,IAAQ,CAACQ,OAAA,CAAQP,KAAA,IAAS,CAACO,OAAA,CAAQN,MAAA,EAAQ,OAAOE,OAAA;EAE/D,MAAM;IACJ,CAACL,UAAA,CAAWC,IAAI,GAAGS,KAAA;IACnB,CAACV,UAAA,CAAWE,KAAK,GAAGS,MAAA;IACpB,CAACX,UAAA,CAAWG,MAAM,GAAGS,OAAA;IACrB,GAAGC;EACL,IAAIR,OAAA;EAEJ,OAAO;IAAE,GAAGQ,aAAA;IAAeJ;EAAQ;AACrC","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ var optionKeys = {
2
+ left: "__oneStackToolbarLeft",
3
+ right: "__oneStackToolbarRight",
4
+ bottom: "__oneStackToolbarBottom"
5
+ };
6
+ function appendStackToolbarConfig(options, props) {
7
+ var _props_placement;
8
+ return {
9
+ ...options,
10
+ [optionKeys[(_props_placement = props.placement) !== null && _props_placement !== void 0 ? _props_placement : "bottom"]]: props
11
+ };
12
+ }
13
+ function exposeStackToolbarConfig(options) {
14
+ var toolbar = {
15
+ left: options[optionKeys.left],
16
+ right: options[optionKeys.right],
17
+ bottom: options[optionKeys.bottom]
18
+ };
19
+ if (!toolbar.left && !toolbar.right && !toolbar.bottom) return options;
20
+ var {
21
+ [optionKeys.left]: _left,
22
+ [optionKeys.right]: _right,
23
+ [optionKeys.bottom]: _bottom,
24
+ ...publicOptions
25
+ } = options;
26
+ return {
27
+ ...publicOptions,
28
+ toolbar
29
+ };
30
+ }
31
+ export { appendStackToolbarConfig, exposeStackToolbarConfig };
32
+ //# sourceMappingURL=StackToolbar.shared.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["optionKeys","left","right","bottom","appendStackToolbarConfig","options","props","_props_placement","placement","exposeStackToolbarConfig","toolbar","_left","_right","_bottom","publicOptions"],"sources":["../../../../src/layouts/stack-utils/StackToolbar.shared.ts"],"sourcesContent":[null],"mappings":"AAQA,IAAAA,UAAM;EACJC,IAAA,EAAM;EACNC,KAAA,EAAO;EACPC,MAAA,EAAQ;AACV;AAEO,SAASC,yBACdC,OAAA,EACAC,KAAA,EAC8B;EAC9B,IAAAC,gBAAO;EAAA,OACF;IACH,GAACF,OAAA;IACH,CAAAL,UAAA,EAAAO,gBAAA,GAAAD,KAAA,CAAAE,SAAA,cAAAD,gBAAA,cAAAA,gBAAA,eAAAD;EACF;AAEO;AAGL,SAAMG,wBAA8BA,CAAAJ,OAAA;EAAA,IAClCK,OAAM;IACNT,IAAA,EAAAI,OAAO,CAAAL,UAAQ,CAAAC,IAAW;IAC1BC,KAAA,EAAAG,OAAQ,CAAAL,UAAQ,CAAAE,KAAW;IAC7BC,MAAA,EAAAE,OAAA,CAAAL,UAAA,CAAAG,MAAA;EAEA;EAEA,KAAAO,OAAM,CAAAT,IAAA,KAAAS,OAAA,CAAAR,KAAA,KAAAQ,OAAA,CAAAP,MAAA,SAAAE,OAAA;EAAA,IACH;IAAA,CAAAL,UAAW,CAAIC,IAAG,GAAAU,KAAA;IAAA,CAAAX,UAAA,CAAAE,KAAA,GAAAU,MAAA;IAAA,CAAAZ,UAAA,CAAAG,MAAA,GAAAU,OAAA;IAAA,GAAAC;EAAA,IAAAT,OAAA;EAAA,OAClB;IACD,GAACS,aAAW;IACZJ;EACF;AAEA;AACF,S","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,12 @@
1
+ "use client";
2
+
3
+ const STACK_TOOLBAR_CHILD = /* @__PURE__ */Symbol.for("one.stack-toolbar.child");
4
+ let stackToolbarImplementation = null;
5
+ function registerStackToolbarImplementation(implementation) {
6
+ stackToolbarImplementation = implementation;
7
+ }
8
+ function getStackToolbarImplementation() {
9
+ return stackToolbarImplementation;
10
+ }
11
+ export { STACK_TOOLBAR_CHILD, getStackToolbarImplementation, registerStackToolbarImplementation };
12
+ //# sourceMappingURL=StackToolbarImplementation.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["STACK_TOOLBAR_CHILD","Symbol","for","stackToolbarImplementation","registerStackToolbarImplementation","implementation","getStackToolbarImplementation"],"sources":["../../../../src/layouts/stack-utils/StackToolbarImplementation.tsx"],"sourcesContent":[null],"mappings":";;AAOO,MAAMA,mBAAA,GAAsB,eAAAC,MAAA,CAAOC,GAAA,CAAI,yBAAyB;AAqBvE,IAAIC,0BAAA,GAAgE;AAE7D,SAASC,mCACdC,cAAA,EACA;EACAF,0BAAA,GAA6BE,cAAA;AAC/B;AAEO,SAASC,8BAAA,EAAgC;EAC9C,OAAOH,0BAAA;AACT","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use client";
2
+
3
+ var STACK_TOOLBAR_CHILD = /* @__PURE__ */Symbol.for("one.stack-toolbar.child");
4
+ var stackToolbarImplementation = null;
5
+ function registerStackToolbarImplementation(implementation) {
6
+ stackToolbarImplementation = implementation;
7
+ }
8
+ function getStackToolbarImplementation() {
9
+ return stackToolbarImplementation;
10
+ }
11
+ export { STACK_TOOLBAR_CHILD, getStackToolbarImplementation, registerStackToolbarImplementation };
12
+ //# sourceMappingURL=StackToolbarImplementation.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["STACK_TOOLBAR_CHILD","Symbol","for","stackToolbarImplementation","registerStackToolbarImplementation","implementation","getStackToolbarImplementation"],"sources":["../../../../src/layouts/stack-utils/StackToolbarImplementation.tsx"],"sourcesContent":[null],"mappings":";;AAOO,IAAAA,mBAAM,kBAAsBC,MAAA,CAAAC,GAAO,0BAAI;AAqB9C,IAAIC,0BAAA,GAAgE;AAE7D,SAASC,mCACdC,cAAA,EACA;EACAF,0BAAA,GAA6BE,cAAA;AAC/B;AAEO,SAASC,8BAAA,EAAgC;EAC9C,OAAOH,0BAAA;AACT","ignoreList":[]}
@@ -0,0 +1,67 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { StackToolbar } from "../StackToolbar.mjs";
3
+ import { STACK_TOOLBAR_CHILD } from "../StackToolbarImplementation.mjs";
4
+ import { exposeStackToolbarConfig } from "../StackToolbar.shared.mjs";
5
+ import { appendScreenStackPropsToOptions } from "../StackScreen.mjs";
6
+ import { jsx } from "react/jsx-runtime";
7
+ describe("Stack.Toolbar headless config", () => {
8
+ it("marks declaration children for installed implementations", () => {
9
+ expect(StackToolbar.Button[STACK_TOOLBAR_CHILD]).toBe("button");
10
+ expect(StackToolbar.MenuAction[STACK_TOOLBAR_CHILD]).toBe("menuAction");
11
+ });
12
+ it("preserves every placement for the headless stack implementation", () => {
13
+ const options = appendScreenStackPropsToOptions({
14
+ title: "Inbox"
15
+ }, {
16
+ children: [/* @__PURE__ */jsx(StackToolbar, {
17
+ placement: "left",
18
+ children: /* @__PURE__ */jsx(StackToolbar.Button, {
19
+ icon: "sidebar.left"
20
+ })
21
+ }, "left"), /* @__PURE__ */jsx(StackToolbar, {
22
+ placement: "right",
23
+ children: /* @__PURE__ */jsx(StackToolbar.Button, {
24
+ icon: "square.and.arrow.up"
25
+ })
26
+ }, "right")]
27
+ });
28
+ expect(exposeStackToolbarConfig(options)).toMatchObject({
29
+ title: "Inbox",
30
+ toolbar: {
31
+ left: {
32
+ placement: "left"
33
+ },
34
+ right: {
35
+ placement: "right"
36
+ }
37
+ }
38
+ });
39
+ });
40
+ it("hands toolbar declarations to an installed implementation", () => {
41
+ const appendPropsToOptions = vi.fn(options2 => ({
42
+ ...options2,
43
+ headerShown: true
44
+ }));
45
+ const implementation = {
46
+ appendPropsToOptions,
47
+ render: () => null
48
+ };
49
+ const toolbar = /* @__PURE__ */jsx(StackToolbar, {
50
+ placement: "right",
51
+ children: /* @__PURE__ */jsx(StackToolbar.Button, {
52
+ icon: "square.and.arrow.up",
53
+ children: "Share"
54
+ })
55
+ });
56
+ const options = appendScreenStackPropsToOptions({
57
+ title: "Inbox"
58
+ }, {
59
+ children: toolbar
60
+ }, implementation);
61
+ expect(options.headerShown).toBe(true);
62
+ expect(appendPropsToOptions).toHaveBeenCalledOnce();
63
+ expect(appendPropsToOptions.mock.calls[0]?.[1]).toBe(toolbar.props);
64
+ expect(exposeStackToolbarConfig(options).toolbar.right).toBe(toolbar.props);
65
+ });
66
+ });
67
+ //# sourceMappingURL=StackToolbar.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","it","vi","StackToolbar","STACK_TOOLBAR_CHILD","exposeStackToolbarConfig","appendScreenStackPropsToOptions","jsx","Button","toBe","MenuAction","options","title","children","placement","icon","toMatchObject","toolbar","left","right","appendPropsToOptions","fn","headerShown","implementation","render","toHaveBeenCalledOnce","mock","calls","props"],"sources":["../../../../../src/layouts/stack-utils/__tests__/StackToolbar.test.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,EAAIC,EAAA,QAAU;AAGzC,SAASC,YAAA,QAAoB;AAC7B,SAASC,mBAAA,QAA2B;AACpC,SAASC,wBAAA,QAAgC;AACzC,SAASC,+BAAA,QAAuC;AAkBpC,SAAAC,GAAA;AAhBZR,QAAA,CAAS,iCAAiC,MAAM;EAC9CE,EAAA,CAAG,4DAA4D,MAAM;IACnED,MAAA,CACGG,YAAA,CAAaK,MAAA,CAA6CJ,mBAAmB,CAChF,EAAEK,IAAA,CAAK,QAAQ;IACfT,MAAA,CACGG,YAAA,CAAaO,UAAA,CAAiDN,mBAAmB,CACpF,EAAEK,IAAA,CAAK,YAAY;EACrB,CAAC;EAEDR,EAAA,CAAG,mEAAmE,MAAM;IAC1E,MAAMU,OAAA,GAAUL,+BAAA,CACd;MAAEM,KAAA,EAAO;IAAQ,GACjB;MACEC,QAAA,EAAU,CACR,eAAAN,GAAA,CAACJ,YAAA;QAAwBW,SAAA,EAAU;QACjCD,QAAA,iBAAAN,GAAA,CAACJ,YAAA,CAAaK,MAAA,EAAb;UAAoBO,IAAA,EAAK;QAAA,CAAe;MAAA,GADzB,MAElB,GACA,eAAAR,GAAA,CAACJ,YAAA;QAAyBW,SAAA,EAAU;QAClCD,QAAA,iBAAAN,GAAA,CAACJ,YAAA,CAAaK,MAAA,EAAb;UAAoBO,IAAA,EAAK;QAAA,CAAsB;MAAA,GADhC,OAElB;IAEJ,CACF;IAEAf,MAAA,CAAOK,wBAAA,CAAyBM,OAAO,CAAC,EAAEK,aAAA,CAAc;MACtDJ,KAAA,EAAO;MACPK,OAAA,EAAS;QACPC,IAAA,EAAM;UAAEJ,SAAA,EAAW;QAAO;QAC1BK,KAAA,EAAO;UAAEL,SAAA,EAAW;QAAQ;MAC9B;IACF,CAAC;EACH,CAAC;EAEDb,EAAA,CAAG,6DAA6D,MAAM;IACpE,MAAMmB,oBAAA,GAAuBlB,EAAA,CAAGmB,EAAA,CAAIV,QAAA,KAAa;MAC/C,GAAGA,QAAA;MACHW,WAAA,EAAa;IACf,EAAE;IACF,MAAMC,cAAA,GAA6C;MACjDH,oBAAA;MACAI,MAAA,EAAQA,CAAA,KAAM;IAChB;IACA,MAAMP,OAAA,GACJ,eAAAV,GAAA,CAACJ,YAAA;MAAaW,SAAA,EAAU;MACtBD,QAAA,iBAAAN,GAAA,CAACJ,YAAA,CAAaK,MAAA,EAAb;QAAoBO,IAAA,EAAK;QAAsBF,QAAA;MAAA,CAAK;IAAA,CACvD;IAGF,MAAMF,OAAA,GAAUL,+BAAA,CACd;MAAEM,KAAA,EAAO;IAAQ,GACjB;MAAEC,QAAA,EAAUI;IAAQ,GACpBM,cACF;IAEAvB,MAAA,CAAOW,OAAA,CAAQW,WAAW,EAAEb,IAAA,CAAK,IAAI;IACrCT,MAAA,CAAOoB,oBAAoB,EAAEK,oBAAA,CAAqB;IAClDzB,MAAA,CAAOoB,oBAAA,CAAqBM,IAAA,CAAKC,KAAA,CAAM,CAAC,IAAI,CAAC,CAAC,EAAElB,IAAA,CAAKQ,OAAA,CAAQW,KAAK;IAClE5B,MAAA,CAAOK,wBAAA,CAAyBM,OAAO,EAAEM,OAAA,CAAQE,KAAK,EAAEV,IAAA,CAAKQ,OAAA,CAAQW,KAAK;EAC5E,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,73 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { describe, expect, it, vi } from "vitest";
4
+ import { StackToolbar } from "../StackToolbar.native.js";
5
+ import { STACK_TOOLBAR_CHILD } from "../StackToolbarImplementation.native.js";
6
+ import { exposeStackToolbarConfig } from "../StackToolbar.shared.native.js";
7
+ import { appendScreenStackPropsToOptions } from "../StackScreen.native.js";
8
+ describe("Stack.Toolbar headless config", function () {
9
+ it("marks declaration children for installed implementations", function () {
10
+ expect(StackToolbar.Button[STACK_TOOLBAR_CHILD]).toBe("button");
11
+ expect(StackToolbar.MenuAction[STACK_TOOLBAR_CHILD]).toBe("menuAction");
12
+ });
13
+ it("preserves every placement for the headless stack implementation", function () {
14
+ var options = appendScreenStackPropsToOptions({
15
+ title: "Inbox"
16
+ }, {
17
+ children: [/* @__PURE__ */_jsx(StackToolbar, {
18
+ placement: "left",
19
+ children: /* @__PURE__ */_jsx(StackToolbar.Button, {
20
+ icon: "sidebar.left"
21
+ })
22
+ }, "left"), /* @__PURE__ */_jsx(StackToolbar, {
23
+ placement: "right",
24
+ children: /* @__PURE__ */_jsx(StackToolbar.Button, {
25
+ icon: "square.and.arrow.up"
26
+ })
27
+ }, "right")]
28
+ });
29
+ expect(exposeStackToolbarConfig(options)).toMatchObject({
30
+ title: "Inbox",
31
+ toolbar: {
32
+ left: {
33
+ placement: "left"
34
+ },
35
+ right: {
36
+ placement: "right"
37
+ }
38
+ }
39
+ });
40
+ });
41
+ it("hands toolbar declarations to an installed implementation", function () {
42
+ var _appendPropsToOptions_mock_calls_;
43
+ var appendPropsToOptions = vi.fn(function (options2) {
44
+ return {
45
+ ...options2,
46
+ headerShown: true
47
+ };
48
+ });
49
+ var implementation = {
50
+ appendPropsToOptions,
51
+ render: function () {
52
+ return null;
53
+ }
54
+ };
55
+ var toolbar = /* @__PURE__ */_jsx(StackToolbar, {
56
+ placement: "right",
57
+ children: /* @__PURE__ */_jsx(StackToolbar.Button, {
58
+ icon: "square.and.arrow.up",
59
+ children: "Share"
60
+ })
61
+ });
62
+ var options = appendScreenStackPropsToOptions({
63
+ title: "Inbox"
64
+ }, {
65
+ children: toolbar
66
+ }, implementation);
67
+ expect(options.headerShown).toBe(true);
68
+ expect(appendPropsToOptions).toHaveBeenCalledOnce();
69
+ expect((_appendPropsToOptions_mock_calls_ = appendPropsToOptions.mock.calls[0]) === null || _appendPropsToOptions_mock_calls_ === void 0 ? void 0 : _appendPropsToOptions_mock_calls_[1]).toBe(toolbar.props);
70
+ expect(exposeStackToolbarConfig(options).toolbar.right).toBe(toolbar.props);
71
+ });
72
+ });
73
+ //# sourceMappingURL=StackToolbar.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","React","describe","expect","it","vi","StackToolbar","STACK_TOOLBAR_CHILD","exposeStackToolbarConfig","appendScreenStackPropsToOptions","Button","toBe","MenuAction","options","title","children","placement","icon","toMatchObject","toolbar","left","right","_appendPropsToOptions_mock_calls_","appendPropsToOptions","fn","options2","headerShown","implementation","render"],"sources":["../../../../../src/layouts/stack-utils/__tests__/StackToolbar.test.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,GAAA,IAAAC,IAAU,QAAQ,mBAAc;AAGzC,OAAAC,KAAS;AACT,SAASC,QAAA,EAAAC,MAAA,EAAAC,EAAA,EAAAC,EAAA,QAA2B;AACpC,SAASC,YAAA,mCAAgC;AACzC,SAASC,mBAAA,iDAAuC;AAkBpC,SAAAC,wBAAA;AAhBZ,SAASC,+BAAA,QAAuC;AAC9CP,QAAG;EACDE,EAAA;IAAAD,MACG,CAAAG,YAAa,CAAAI,MAA6C,CAAAH,mBAAmB,GAAAI,IAAA;IAChFR,MAAE,CAAKG,YAAQ,CAAAM,UAAA,CAAAL,mBAAA,GAAAI,IAAA;EACf;EAAAP,EAAA,kEACoF;IACpF,IAAES,OAAK,GAAAJ,+BAAY;MACpBK,KAAA;IAED,CAAG;MACDC,QAAM,GACF,eAAef,IAAA,CAAAM,YAAA;QACjBU,SAAA;QACED,QAAU,iBAAAf,IAAA,CAAAM,YAAA,CAAAI,MAAA;UACRO,IAAA;QAGA;MAGF,YACF,eAAAjB,IAAA,CAAAM,YAAA;QACFU,SAAA;QAEAD,QAAO,iBAAyBf,IAAA,CAAAM,YAAU,CAAAI,MAAc;UACtDO,IAAO;QACP;MACE,UAAQ;IACoB,EAC9B;IACFd,MAAC,CAAAK,wBAAA,CAAAK,OAAA,GAAAK,aAAA;MACFJ,KAAA;MAEEK,OAAA;QACDC,IAAM;UACDJ,SAAA;QACH;QACAK,KAAA;UACIL,SAAA;QACJ;MACA;IACF;EACA;EAMAZ,EAAA,4DAAgB;IAAA,IACZkB,iCAAe;IAAA,IACfC,oBAAkB,GAAAlB,EAAA,CAAAmB,EAAA,WAAAC,QAAA;MACpB;QACF,GAAAA,QAAA;QAEAC,WAAe;MACf;IACA;IACA,IAAAC,cAAO;MACRJ,oBAAA;MACFK,MAAA,WAAAA,CAAA","ignoreList":[]}
@@ -4,6 +4,7 @@ import { StackHeaderLeft } from "./StackHeaderLeft.mjs";
4
4
  import { StackHeaderRight } from "./StackHeaderRight.mjs";
5
5
  import { StackHeaderSearchBar } from "./StackHeaderSearchBar.mjs";
6
6
  import { StackHeaderTitle } from "./StackHeaderTitle.mjs";
7
+ import { StackToolbar } from "./StackToolbar.mjs";
7
8
  import { NAVIGATOR_CONFIG } from "../../headless/children.mjs";
8
9
  import { StackScreen, appendScreenStackPropsToOptions, validateStackPresentation } from "./StackScreen.mjs";
9
10
  const StackHeader = Object.assign(StackHeaderComponent, {
@@ -14,5 +15,5 @@ const StackHeader = Object.assign(StackHeaderComponent, {
14
15
  Title: StackHeaderTitle,
15
16
  SearchBar: StackHeaderSearchBar
16
17
  });
17
- export { StackHeader, StackHeaderBackButton, StackHeaderComponent, StackHeaderLeft, StackHeaderRight, StackHeaderSearchBar, StackHeaderTitle, StackScreen, appendScreenStackPropsToOptions, validateStackPresentation };
18
+ export { StackHeader, StackHeaderBackButton, StackHeaderComponent, StackHeaderLeft, StackHeaderRight, StackHeaderSearchBar, StackHeaderTitle, StackScreen, StackToolbar, appendScreenStackPropsToOptions, validateStackPresentation };
18
19
  //# sourceMappingURL=index.mjs.map