@studio-piot/native-ui 0.2.5 → 0.16.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 (338) hide show
  1. package/README.md +22 -18
  2. package/dist/components/Button/Button.d.ts +20 -4
  3. package/dist/components/Button/Button.d.ts.map +1 -1
  4. package/dist/components/Button/Button.js +34 -21
  5. package/dist/components/Button/Button.js.map +1 -1
  6. package/dist/components/Button/buttonAppearance.d.ts +20 -0
  7. package/dist/components/Button/buttonAppearance.d.ts.map +1 -0
  8. package/dist/components/Button/buttonAppearance.js +28 -0
  9. package/dist/components/Button/buttonAppearance.js.map +1 -0
  10. package/dist/components/Button/buttonThemeRoles.d.ts +6 -0
  11. package/dist/components/Button/buttonThemeRoles.d.ts.map +1 -0
  12. package/dist/components/Button/buttonThemeRoles.js +8 -0
  13. package/dist/components/Button/buttonThemeRoles.js.map +1 -0
  14. package/dist/components/Button/index.d.ts +3 -1
  15. package/dist/components/Button/index.d.ts.map +1 -1
  16. package/dist/components/Button/index.js +4 -1
  17. package/dist/components/Button/index.js.map +1 -1
  18. package/dist/components/Choice/Choice.d.ts +8 -0
  19. package/dist/components/Choice/Choice.d.ts.map +1 -0
  20. package/dist/components/Choice/Choice.js +60 -0
  21. package/dist/components/Choice/Choice.js.map +1 -0
  22. package/dist/components/Choice/choiceLayout.d.ts +7 -0
  23. package/dist/components/Choice/choiceLayout.d.ts.map +1 -0
  24. package/dist/components/Choice/choiceLayout.js +13 -0
  25. package/dist/components/Choice/choiceLayout.js.map +1 -0
  26. package/dist/components/Choice/choiceThemeRoles.d.ts +8 -0
  27. package/dist/components/Choice/choiceThemeRoles.d.ts.map +1 -0
  28. package/dist/components/Choice/choiceThemeRoles.js +10 -0
  29. package/dist/components/Choice/choiceThemeRoles.js.map +1 -0
  30. package/dist/components/Choice/index.d.ts +5 -0
  31. package/dist/components/Choice/index.d.ts.map +1 -0
  32. package/dist/components/Choice/index.js +10 -0
  33. package/dist/components/Choice/index.js.map +1 -0
  34. package/dist/components/Choice/types.d.ts +26 -0
  35. package/dist/components/Choice/types.d.ts.map +1 -0
  36. package/dist/components/Choice/types.js +3 -0
  37. package/dist/components/Choice/types.js.map +1 -0
  38. package/dist/components/ErrorBanner/ErrorBanner.d.ts +1 -1
  39. package/dist/components/ErrorBanner/ErrorBanner.d.ts.map +1 -1
  40. package/dist/components/ErrorBanner/ErrorBanner.js +19 -19
  41. package/dist/components/ErrorBanner/ErrorBanner.js.map +1 -1
  42. package/dist/components/ErrorBanner/errorBannerContext.d.ts +23 -3
  43. package/dist/components/ErrorBanner/errorBannerContext.d.ts.map +1 -1
  44. package/dist/components/ErrorBanner/errorBannerContext.js +9 -5
  45. package/dist/components/ErrorBanner/errorBannerContext.js.map +1 -1
  46. package/dist/components/ErrorBanner/errorBannerLayout.d.ts +18 -0
  47. package/dist/components/ErrorBanner/errorBannerLayout.d.ts.map +1 -0
  48. package/dist/components/ErrorBanner/errorBannerLayout.js +54 -0
  49. package/dist/components/ErrorBanner/errorBannerLayout.js.map +1 -0
  50. package/dist/components/ErrorBanner/icons.d.ts +7 -5
  51. package/dist/components/ErrorBanner/icons.d.ts.map +1 -1
  52. package/dist/components/ErrorBanner/icons.js +8 -4
  53. package/dist/components/ErrorBanner/icons.js.map +1 -1
  54. package/dist/components/ErrorBanner/index.d.ts +1 -1
  55. package/dist/components/ErrorBanner/index.d.ts.map +1 -1
  56. package/dist/components/ErrorBanner/index.js.map +1 -1
  57. package/dist/components/Form/Form.d.ts +9 -1
  58. package/dist/components/Form/Form.d.ts.map +1 -1
  59. package/dist/components/Form/Form.js +56 -78
  60. package/dist/components/Form/Form.js.map +1 -1
  61. package/dist/components/Form/FormCloseButton.d.ts +3 -1
  62. package/dist/components/Form/FormCloseButton.d.ts.map +1 -1
  63. package/dist/components/Form/FormCloseButton.js +5 -4
  64. package/dist/components/Form/FormCloseButton.js.map +1 -1
  65. package/dist/components/Form/FormErrorBanner.d.ts +15 -0
  66. package/dist/components/Form/FormErrorBanner.d.ts.map +1 -0
  67. package/dist/components/Form/FormErrorBanner.js +30 -0
  68. package/dist/components/Form/FormErrorBanner.js.map +1 -0
  69. package/dist/components/Form/FormSubmitFooter.d.ts +17 -0
  70. package/dist/components/Form/FormSubmitFooter.d.ts.map +1 -0
  71. package/dist/components/Form/FormSubmitFooter.js +32 -0
  72. package/dist/components/Form/FormSubmitFooter.js.map +1 -0
  73. package/dist/components/Form/formThemeRoles.d.ts +7 -0
  74. package/dist/components/Form/formThemeRoles.d.ts.map +1 -0
  75. package/dist/components/Form/formThemeRoles.js +9 -0
  76. package/dist/components/Form/formThemeRoles.js.map +1 -0
  77. package/dist/components/Form/index.d.ts +1 -0
  78. package/dist/components/Form/index.d.ts.map +1 -1
  79. package/dist/components/Form/index.js +3 -1
  80. package/dist/components/Form/index.js.map +1 -1
  81. package/dist/components/Form/types.d.ts +14 -10
  82. package/dist/components/Form/types.d.ts.map +1 -1
  83. package/dist/components/FormSheet/FormSheet.d.ts +10 -0
  84. package/dist/components/FormSheet/FormSheet.d.ts.map +1 -0
  85. package/dist/components/FormSheet/FormSheet.js +153 -0
  86. package/dist/components/FormSheet/FormSheet.js.map +1 -0
  87. package/dist/components/FormSheet/formSheetLayout.d.ts +32 -0
  88. package/dist/components/FormSheet/formSheetLayout.d.ts.map +1 -0
  89. package/dist/components/FormSheet/formSheetLayout.js +43 -0
  90. package/dist/components/FormSheet/formSheetLayout.js.map +1 -0
  91. package/dist/components/FormSheet/formSheetThemeRoles.d.ts +8 -0
  92. package/dist/components/FormSheet/formSheetThemeRoles.d.ts.map +1 -0
  93. package/dist/components/FormSheet/formSheetThemeRoles.js +10 -0
  94. package/dist/components/FormSheet/formSheetThemeRoles.js.map +1 -0
  95. package/dist/components/FormSheet/index.d.ts +5 -0
  96. package/dist/components/FormSheet/index.d.ts.map +1 -0
  97. package/dist/components/FormSheet/index.js +10 -0
  98. package/dist/components/FormSheet/index.js.map +1 -0
  99. package/dist/components/FormSheet/types.d.ts +64 -0
  100. package/dist/components/FormSheet/types.d.ts.map +1 -0
  101. package/dist/components/FormSheet/types.js +3 -0
  102. package/dist/components/FormSheet/types.js.map +1 -0
  103. package/dist/components/HeaderButton/HeaderCapsule.d.ts +4 -0
  104. package/dist/components/HeaderButton/HeaderCapsule.d.ts.map +1 -0
  105. package/dist/components/HeaderButton/HeaderCapsule.js +32 -0
  106. package/dist/components/HeaderButton/HeaderCapsule.js.map +1 -0
  107. package/dist/components/HeaderButton/HeaderGroup.d.ts +4 -0
  108. package/dist/components/HeaderButton/HeaderGroup.d.ts.map +1 -0
  109. package/dist/components/HeaderButton/HeaderGroup.js +23 -0
  110. package/dist/components/HeaderButton/HeaderGroup.js.map +1 -0
  111. package/dist/components/HeaderButton/HeaderIcon.d.ts +4 -0
  112. package/dist/components/HeaderButton/HeaderIcon.d.ts.map +1 -0
  113. package/dist/components/HeaderButton/HeaderIcon.js +28 -0
  114. package/dist/components/HeaderButton/HeaderIcon.js.map +1 -0
  115. package/dist/components/HeaderButton/headerButtonLayout.d.ts +21 -0
  116. package/dist/components/HeaderButton/headerButtonLayout.d.ts.map +1 -0
  117. package/dist/components/HeaderButton/headerButtonLayout.js +34 -0
  118. package/dist/components/HeaderButton/headerButtonLayout.js.map +1 -0
  119. package/dist/components/HeaderButton/headerButtonThemeRoles.d.ts +5 -0
  120. package/dist/components/HeaderButton/headerButtonThemeRoles.d.ts.map +1 -0
  121. package/dist/components/HeaderButton/headerButtonThemeRoles.js +7 -0
  122. package/dist/components/HeaderButton/headerButtonThemeRoles.js.map +1 -0
  123. package/dist/components/HeaderButton/index.d.ts +7 -0
  124. package/dist/components/HeaderButton/index.d.ts.map +1 -0
  125. package/dist/components/HeaderButton/index.js +14 -0
  126. package/dist/components/HeaderButton/index.js.map +1 -0
  127. package/dist/components/HeaderButton/types.d.ts +40 -0
  128. package/dist/components/HeaderButton/types.d.ts.map +1 -0
  129. package/dist/components/HeaderButton/types.js +3 -0
  130. package/dist/components/HeaderButton/types.js.map +1 -0
  131. package/dist/components/HeaderWash/HeaderWash.d.ts +10 -0
  132. package/dist/components/HeaderWash/HeaderWash.d.ts.map +1 -0
  133. package/dist/components/HeaderWash/HeaderWash.js +19 -0
  134. package/dist/components/HeaderWash/HeaderWash.js.map +1 -0
  135. package/dist/components/HeaderWash/headerWashGradient.d.ts +8 -0
  136. package/dist/components/HeaderWash/headerWashGradient.d.ts.map +1 -0
  137. package/dist/components/HeaderWash/headerWashGradient.js +21 -0
  138. package/dist/components/HeaderWash/headerWashGradient.js.map +1 -0
  139. package/dist/components/HeaderWash/index.d.ts +2 -0
  140. package/dist/components/HeaderWash/index.d.ts.map +1 -0
  141. package/dist/components/HeaderWash/index.js +6 -0
  142. package/dist/components/HeaderWash/index.js.map +1 -0
  143. package/dist/components/Page/Page.d.ts +13 -0
  144. package/dist/components/Page/Page.d.ts.map +1 -0
  145. package/dist/components/Page/Page.js +49 -0
  146. package/dist/components/Page/Page.js.map +1 -0
  147. package/dist/components/Page/PageBleed.d.ts +9 -0
  148. package/dist/components/Page/PageBleed.d.ts.map +1 -0
  149. package/dist/components/Page/PageBleed.js +12 -0
  150. package/dist/components/Page/PageBleed.js.map +1 -0
  151. package/dist/components/Page/index.d.ts +5 -0
  152. package/dist/components/Page/index.d.ts.map +1 -0
  153. package/dist/components/Page/index.js +10 -0
  154. package/dist/components/Page/index.js.map +1 -0
  155. package/dist/components/Page/pageContext.d.ts +4 -0
  156. package/dist/components/Page/pageContext.d.ts.map +1 -0
  157. package/dist/components/Page/pageContext.js +11 -0
  158. package/dist/components/Page/pageContext.js.map +1 -0
  159. package/dist/components/Page/pageInsets.d.ts +26 -0
  160. package/dist/components/Page/pageInsets.d.ts.map +1 -0
  161. package/dist/components/Page/pageInsets.js +37 -0
  162. package/dist/components/Page/pageInsets.js.map +1 -0
  163. package/dist/components/Page/pageLayout.d.ts +5 -0
  164. package/dist/components/Page/pageLayout.d.ts.map +1 -0
  165. package/dist/components/Page/pageLayout.js +8 -0
  166. package/dist/components/Page/pageLayout.js.map +1 -0
  167. package/dist/components/Page/pageThemeRoles.d.ts +5 -0
  168. package/dist/components/Page/pageThemeRoles.d.ts.map +1 -0
  169. package/dist/components/Page/pageThemeRoles.js +7 -0
  170. package/dist/components/Page/pageThemeRoles.js.map +1 -0
  171. package/dist/components/Page/types.d.ts +22 -0
  172. package/dist/components/Page/types.d.ts.map +1 -0
  173. package/dist/components/Page/types.js +3 -0
  174. package/dist/components/Page/types.js.map +1 -0
  175. package/dist/components/Select/Select.d.ts +1 -1
  176. package/dist/components/Select/Select.d.ts.map +1 -1
  177. package/dist/components/Select/Select.js +8 -9
  178. package/dist/components/Select/Select.js.map +1 -1
  179. package/dist/components/Select/selectThemeRoles.d.ts +2 -0
  180. package/dist/components/Select/selectThemeRoles.d.ts.map +1 -1
  181. package/dist/components/Select/selectThemeRoles.js +2 -0
  182. package/dist/components/Select/selectThemeRoles.js.map +1 -1
  183. package/dist/components/Select/types.d.ts +4 -0
  184. package/dist/components/Select/types.d.ts.map +1 -1
  185. package/dist/components/TabAccessoryButton/TabAccessoryButton.d.ts +8 -0
  186. package/dist/components/TabAccessoryButton/TabAccessoryButton.d.ts.map +1 -0
  187. package/dist/components/TabAccessoryButton/TabAccessoryButton.js +77 -0
  188. package/dist/components/TabAccessoryButton/TabAccessoryButton.js.map +1 -0
  189. package/dist/components/TabAccessoryButton/index.d.ts +5 -0
  190. package/dist/components/TabAccessoryButton/index.d.ts.map +1 -0
  191. package/dist/components/TabAccessoryButton/index.js +11 -0
  192. package/dist/components/TabAccessoryButton/index.js.map +1 -0
  193. package/dist/components/TabAccessoryButton/tabAccessoryLayout.d.ts +27 -0
  194. package/dist/components/TabAccessoryButton/tabAccessoryLayout.d.ts.map +1 -0
  195. package/dist/components/TabAccessoryButton/tabAccessoryLayout.js +38 -0
  196. package/dist/components/TabAccessoryButton/tabAccessoryLayout.js.map +1 -0
  197. package/dist/components/TabAccessoryButton/tabAccessoryThemeRoles.d.ts +14 -0
  198. package/dist/components/TabAccessoryButton/tabAccessoryThemeRoles.d.ts.map +1 -0
  199. package/dist/components/TabAccessoryButton/tabAccessoryThemeRoles.js +19 -0
  200. package/dist/components/TabAccessoryButton/tabAccessoryThemeRoles.js.map +1 -0
  201. package/dist/components/TabAccessoryButton/types.d.ts +27 -0
  202. package/dist/components/TabAccessoryButton/types.d.ts.map +1 -0
  203. package/dist/components/TabAccessoryButton/types.js +3 -0
  204. package/dist/components/TabAccessoryButton/types.js.map +1 -0
  205. package/dist/components/index.d.ts +9 -3
  206. package/dist/components/index.d.ts.map +1 -1
  207. package/dist/components/index.js +30 -1
  208. package/dist/components/index.js.map +1 -1
  209. package/dist/index.d.ts +11 -4
  210. package/dist/index.d.ts.map +1 -1
  211. package/dist/index.js +34 -2
  212. package/dist/index.js.map +1 -1
  213. package/dist/layout/HeaderInsetProbe.d.ts +15 -0
  214. package/dist/layout/HeaderInsetProbe.d.ts.map +1 -0
  215. package/dist/layout/HeaderInsetProbe.js +28 -0
  216. package/dist/layout/HeaderInsetProbe.js.map +1 -0
  217. package/dist/layout/headerInset.d.ts +26 -0
  218. package/dist/layout/headerInset.d.ts.map +1 -0
  219. package/dist/layout/headerInset.js +29 -0
  220. package/dist/layout/headerInset.js.map +1 -0
  221. package/dist/layout/index.d.ts +1 -0
  222. package/dist/layout/index.d.ts.map +1 -1
  223. package/dist/layout/index.js +3 -1
  224. package/dist/layout/index.js.map +1 -1
  225. package/dist/layout/sheet.d.ts +3 -0
  226. package/dist/layout/sheet.d.ts.map +1 -0
  227. package/dist/layout/sheet.js +6 -0
  228. package/dist/layout/sheet.js.map +1 -0
  229. package/dist/theme/ThemeProvider.d.ts +4 -1
  230. package/dist/theme/ThemeProvider.d.ts.map +1 -1
  231. package/dist/theme/ThemeProvider.js +5 -2
  232. package/dist/theme/ThemeProvider.js.map +1 -1
  233. package/dist/theme/index.d.ts +2 -0
  234. package/dist/theme/index.d.ts.map +1 -1
  235. package/dist/theme/index.js +6 -1
  236. package/dist/theme/index.js.map +1 -1
  237. package/dist/theme/resolveThemeSpacing.d.ts +12 -0
  238. package/dist/theme/resolveThemeSpacing.d.ts.map +1 -0
  239. package/dist/theme/resolveThemeSpacing.js +14 -0
  240. package/dist/theme/resolveThemeSpacing.js.map +1 -0
  241. package/dist/theme/types.d.ts +2 -0
  242. package/dist/theme/types.d.ts.map +1 -1
  243. package/dist/theme/useThemeSpacing.d.ts +4 -0
  244. package/dist/theme/useThemeSpacing.d.ts.map +1 -0
  245. package/dist/theme/useThemeSpacing.js +11 -0
  246. package/dist/theme/useThemeSpacing.js.map +1 -0
  247. package/docs/components/button.md +92 -38
  248. package/docs/components/choice.md +88 -0
  249. package/docs/components/error-banner.md +46 -3
  250. package/docs/components/form-sheet.md +140 -0
  251. package/docs/components/form.md +80 -45
  252. package/docs/components/header-button.md +310 -0
  253. package/docs/components/header-wash.md +40 -0
  254. package/docs/components/page.md +183 -0
  255. package/docs/components/select.md +2 -2
  256. package/docs/components/tab-accessory-button.md +146 -0
  257. package/docs/specifications/Liquid Glass header buttons in Expo Router.md +327 -0
  258. package/package.json +1 -1
  259. package/src/components/Button/Button.tsx +82 -38
  260. package/src/components/Button/buttonAppearance.test.ts +44 -0
  261. package/src/components/Button/buttonAppearance.ts +38 -0
  262. package/src/components/Button/buttonThemeRoles.test.ts +10 -0
  263. package/src/components/Button/buttonThemeRoles.ts +6 -0
  264. package/src/components/Button/index.ts +12 -1
  265. package/src/components/Choice/Choice.tsx +109 -0
  266. package/src/components/Choice/choiceLayout.test.ts +14 -0
  267. package/src/components/Choice/choiceLayout.ts +9 -0
  268. package/src/components/Choice/choiceThemeRoles.test.ts +14 -0
  269. package/src/components/Choice/choiceThemeRoles.ts +8 -0
  270. package/src/components/Choice/index.ts +4 -0
  271. package/src/components/Choice/types.ts +26 -0
  272. package/src/components/ErrorBanner/ErrorBanner.tsx +32 -22
  273. package/src/components/ErrorBanner/errorBannerContext.tsx +31 -6
  274. package/src/components/ErrorBanner/errorBannerLayout.test.ts +49 -0
  275. package/src/components/ErrorBanner/errorBannerLayout.ts +59 -0
  276. package/src/components/ErrorBanner/icons.tsx +25 -6
  277. package/src/components/ErrorBanner/index.ts +1 -0
  278. package/src/components/Form/Form.tsx +77 -173
  279. package/src/components/Form/FormCloseButton.tsx +12 -4
  280. package/src/components/Form/FormErrorBanner.tsx +57 -0
  281. package/src/components/Form/FormSubmitFooter.tsx +70 -0
  282. package/src/components/Form/formThemeRoles.test.ts +13 -0
  283. package/src/components/Form/formThemeRoles.ts +7 -0
  284. package/src/components/Form/index.ts +1 -0
  285. package/src/components/Form/types.ts +14 -10
  286. package/src/components/FormSheet/FormSheet.tsx +279 -0
  287. package/src/components/FormSheet/formSheetLayout.test.ts +66 -0
  288. package/src/components/FormSheet/formSheetLayout.ts +55 -0
  289. package/src/components/FormSheet/formSheetThemeRoles.test.ts +14 -0
  290. package/src/components/FormSheet/formSheetThemeRoles.ts +8 -0
  291. package/src/components/FormSheet/index.ts +7 -0
  292. package/src/components/FormSheet/types.ts +66 -0
  293. package/src/components/HeaderButton/HeaderCapsule.tsx +63 -0
  294. package/src/components/HeaderButton/HeaderGroup.tsx +36 -0
  295. package/src/components/HeaderButton/HeaderIcon.tsx +56 -0
  296. package/src/components/HeaderButton/headerButtonLayout.test.ts +47 -0
  297. package/src/components/HeaderButton/headerButtonLayout.ts +36 -0
  298. package/src/components/HeaderButton/headerButtonThemeRoles.test.ts +9 -0
  299. package/src/components/HeaderButton/headerButtonThemeRoles.ts +5 -0
  300. package/src/components/HeaderButton/index.ts +14 -0
  301. package/src/components/HeaderButton/types.ts +40 -0
  302. package/src/components/HeaderWash/HeaderWash.tsx +20 -0
  303. package/src/components/HeaderWash/headerWashGradient.test.ts +22 -0
  304. package/src/components/{Form/withAlpha.ts → HeaderWash/headerWashGradient.ts} +9 -0
  305. package/src/components/HeaderWash/index.ts +1 -0
  306. package/src/components/Page/Page.tsx +80 -0
  307. package/src/components/Page/PageBleed.tsx +14 -0
  308. package/src/components/Page/index.ts +4 -0
  309. package/src/components/Page/pageContext.ts +8 -0
  310. package/src/components/Page/pageInsets.test.ts +73 -0
  311. package/src/components/Page/pageInsets.ts +52 -0
  312. package/src/components/Page/pageThemeRoles.test.ts +9 -0
  313. package/src/components/Page/pageThemeRoles.ts +5 -0
  314. package/src/components/Page/types.ts +26 -0
  315. package/src/components/Select/Select.tsx +11 -4
  316. package/src/components/Select/selectThemeRoles.test.ts +5 -0
  317. package/src/components/Select/selectThemeRoles.ts +2 -0
  318. package/src/components/Select/types.ts +4 -0
  319. package/src/components/TabAccessoryButton/TabAccessoryButton.tsx +150 -0
  320. package/src/components/TabAccessoryButton/index.ts +12 -0
  321. package/src/components/TabAccessoryButton/tabAccessoryLayout.test.ts +42 -0
  322. package/src/components/TabAccessoryButton/tabAccessoryLayout.ts +43 -0
  323. package/src/components/TabAccessoryButton/tabAccessoryThemeRoles.test.ts +28 -0
  324. package/src/components/TabAccessoryButton/tabAccessoryThemeRoles.ts +22 -0
  325. package/src/components/TabAccessoryButton/types.ts +27 -0
  326. package/src/components/index.ts +64 -2
  327. package/src/index.ts +61 -2
  328. package/src/layout/headerInset.test.ts +60 -0
  329. package/src/layout/headerInset.ts +41 -0
  330. package/src/layout/index.ts +1 -0
  331. package/src/layout/sheet.ts +2 -0
  332. package/src/theme/ThemeProvider.tsx +9 -1
  333. package/src/theme/index.ts +6 -0
  334. package/src/theme/resolveThemeSpacing.test.ts +29 -0
  335. package/src/theme/resolveThemeSpacing.ts +21 -0
  336. package/src/theme/types.ts +3 -0
  337. package/src/theme/useThemeSpacing.ts +8 -0
  338. package/src/components/Form/withAlpha.test.ts +0 -13
@@ -0,0 +1,5 @@
1
+ export { FormSheet } from "./FormSheet";
2
+ export { formSheetSnapPoints, type FormSheetSnapInput } from "./formSheetLayout";
3
+ export { FORM_SHEET_THEME_ROLES, type FormSheetThemeColorProp, } from "./formSheetThemeRoles";
4
+ export type { FormSheetInset, FormSheetProps, FormSheetSnapIndex } from "./types";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/FormSheet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EACL,sBAAsB,EACtB,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FORM_SHEET_THEME_ROLES = exports.formSheetSnapPoints = exports.FormSheet = void 0;
4
+ var FormSheet_1 = require("./FormSheet");
5
+ Object.defineProperty(exports, "FormSheet", { enumerable: true, get: function () { return FormSheet_1.FormSheet; } });
6
+ var formSheetLayout_1 = require("./formSheetLayout");
7
+ Object.defineProperty(exports, "formSheetSnapPoints", { enumerable: true, get: function () { return formSheetLayout_1.formSheetSnapPoints; } });
8
+ var formSheetThemeRoles_1 = require("./formSheetThemeRoles");
9
+ Object.defineProperty(exports, "FORM_SHEET_THEME_ROLES", { enumerable: true, get: function () { return formSheetThemeRoles_1.FORM_SHEET_THEME_ROLES; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/FormSheet/index.ts"],"names":[],"mappings":";;;AAAA,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,qDAAiF;AAAxE,sHAAA,mBAAmB,OAAA;AAC5B,6DAG+B;AAF7B,6HAAA,sBAAsB,OAAA"}
@@ -0,0 +1,64 @@
1
+ import type { ReactNode } from "react";
2
+ import type { ButtonRadius } from "../Button/buttonRadius";
3
+ import type { FieldError } from "../ErrorBanner/types";
4
+ /** Where the chrome sits over the background layer, in points from the screen edges. */
5
+ export type FormSheetInset = {
6
+ /** Bottom of the native header. */
7
+ top: number;
8
+ /** Top of the sheet at its current stop, measured from the screen bottom. */
9
+ bottom: number;
10
+ /** Top of the sheet at its middle stop. Steady while dragging, e.g. for map camera padding. */
11
+ bottomAtHalf: number;
12
+ };
13
+ export type FormSheetSnapIndex = 0 | 1 | 2;
14
+ /**
15
+ * Set the close button in the screen's stack options (`headerLeft`), with
16
+ * `headerTransparent: true`. The form's title lives on the sheet (`title`).
17
+ */
18
+ export type FormSheetProps = {
19
+ /**
20
+ * Shown at the top of the sheet, under the drag indicator. The lowest stop
21
+ * always shows it.
22
+ */
23
+ title?: string;
24
+ children: ReactNode;
25
+ /**
26
+ * Full-screen layer behind the sheet, usually a map. Receives the chrome
27
+ * insets so it can keep its own controls clear of the header and sheet.
28
+ */
29
+ background: (inset: FormSheetInset) => ReactNode;
30
+ onSubmit: () => void;
31
+ /**
32
+ * Field errors for the screen banner. Empty hides it. A banner row
33
+ * expands the sheet and scrolls to the field. Editing a field dismisses
34
+ * the banner; the next submit shows it again.
35
+ */
36
+ errors?: readonly FieldError[];
37
+ submitLabel?: string;
38
+ submitting?: boolean;
39
+ submitDisabled?: boolean;
40
+ submitRadius?: ButtonRadius;
41
+ /** Stop on first paint: `0` the handle and title, `1` half the screen, `2` up to the header. Default `0`. */
42
+ initialIndex?: FormSheetSnapIndex;
43
+ /**
44
+ * Native header height, from `useHeaderHeight()` in
45
+ * `expo-router/react-navigation`. The top stop ends here. Defaults to the
46
+ * status bar plus a standard bar.
47
+ */
48
+ headerHeight?: number;
49
+ /** Side inset for the sheet content and footer. Defaults to theme `spacing.screen`. */
50
+ paddingHorizontal?: number;
51
+ /** Sheet fill. Defaults to theme role `formSheetBackground`. */
52
+ backgroundColor?: string;
53
+ /** Sheet title. Defaults to theme role `formSheetTitle`. */
54
+ titleColor?: string;
55
+ /** Footer ground. Defaults to theme role `formSheetFooterBackground`. */
56
+ footerBackgroundColor?: string;
57
+ /** Drag indicator. Defaults to theme role `formSheetHandle`. */
58
+ handleColor?: string;
59
+ /** Defaults to theme role `buttonBackground`. */
60
+ buttonBackgroundColor?: string;
61
+ /** Defaults to theme role `buttonLabel`. */
62
+ buttonLabelColor?: string;
63
+ };
64
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/FormSheet/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,wFAAwF;AACxF,MAAM,MAAM,cAAc,GAAG;IAC3B,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,+FAA+F;IAC/F,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE3C;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,UAAU,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,SAAS,CAAC;IACjD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,6GAA6G;IAC7G,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/FormSheet/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { HeaderCapsuleProps } from "./types";
2
+ /** Header button with a label (and optional icon). Wider than tall, so iOS 26+ draws a glass pill. */
3
+ export declare function HeaderCapsule({ icon, label, onPress, iconSize, fontSize, disabled, color: colorProp, fallbackBackgroundColor, hitSlop, style, }: HeaderCapsuleProps): import("react").JSX.Element;
4
+ //# sourceMappingURL=HeaderCapsule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderCapsule.d.ts","sourceRoot":"","sources":["../../../src/components/HeaderButton/HeaderCapsule.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAIlD,sGAAsG;AACtG,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAmC,EACnC,QAAmC,EACnC,QAAgB,EAChB,KAAK,EAAE,SAAS,EAChB,uBAAuB,EACvB,OAAyB,EACzB,KAAK,GACN,EAAE,kBAAkB,+BAsBpB"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HeaderCapsule = HeaderCapsule;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_native_1 = require("react-native");
6
+ const useResolvedFieldColor_1 = require("../Field/useResolvedFieldColor");
7
+ const headerButtonLayout_1 = require("./headerButtonLayout");
8
+ const headerButtonThemeRoles_1 = require("./headerButtonThemeRoles");
9
+ const GLASS = (0, headerButtonLayout_1.supportsLiquidGlass)(react_native_1.Platform.OS, react_native_1.Platform.Version);
10
+ /** Header button with a label (and optional icon). Wider than tall, so iOS 26+ draws a glass pill. */
11
+ function HeaderCapsule({ icon, label, onPress, iconSize = headerButtonLayout_1.HEADER_CAPSULE_ICON_SIZE, fontSize = headerButtonLayout_1.HEADER_CAPSULE_FONT_SIZE, disabled = false, color: colorProp, fallbackBackgroundColor, hitSlop = headerButtonLayout_1.HEADER_HIT_SLOP, style, }) {
12
+ const color = (0, useResolvedFieldColor_1.useResolvedFieldColor)(colorProp, headerButtonThemeRoles_1.HEADER_BUTTON_THEME_ROLES.color);
13
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.Pressable, { onPress: onPress, disabled: disabled, hitSlop: hitSlop, accessibilityRole: "button", accessibilityLabel: label, accessibilityState: { disabled }, style: ({ pressed }) => [
14
+ styles.capsule,
15
+ (0, headerButtonLayout_1.headerFallbackStyle)(GLASS, fallbackBackgroundColor),
16
+ { opacity: disabled ? 0.4 : pressed ? 0.5 : 1 },
17
+ style,
18
+ ], children: [icon?.({ color, size: iconSize }), (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.label, { color, fontSize }], children: label })] }));
19
+ }
20
+ const styles = react_native_1.StyleSheet.create({
21
+ capsule: {
22
+ flexDirection: "row",
23
+ alignItems: "center",
24
+ gap: 6,
25
+ height: headerButtonLayout_1.HEADER_BUTTON_SIZE,
26
+ paddingHorizontal: 12,
27
+ },
28
+ label: {
29
+ fontWeight: "600",
30
+ },
31
+ });
32
+ //# sourceMappingURL=HeaderCapsule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderCapsule.js","sourceRoot":"","sources":["../../../src/components/HeaderButton/HeaderCapsule.tsx"],"names":[],"mappings":";;AAgBA,sCAiCC;;AAjDD,+CAAqE;AACrE,0EAAuE;AACvE,6DAO8B;AAC9B,qEAAqE;AAGrE,MAAM,KAAK,GAAG,IAAA,wCAAmB,EAAC,uBAAQ,CAAC,EAAE,EAAE,uBAAQ,CAAC,OAAO,CAAC,CAAC;AAEjE,sGAAsG;AACtG,SAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,GAAG,6CAAwB,EACnC,QAAQ,GAAG,6CAAwB,EACnC,QAAQ,GAAG,KAAK,EAChB,KAAK,EAAE,SAAS,EAChB,uBAAuB,EACvB,OAAO,GAAG,oCAAe,EACzB,KAAK,GACc;IACnB,MAAM,KAAK,GAAG,IAAA,6CAAqB,EAAC,SAAS,EAAE,kDAAyB,CAAC,KAAK,CAAC,CAAC;IAEhF,OAAO,CACL,wBAAC,wBAAS,IACR,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAC,QAAQ,EAC1B,kBAAkB,EAAE,KAAK,EACzB,kBAAkB,EAAE,EAAE,QAAQ,EAAE,EAChC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACtB,MAAM,CAAC,OAAO;YACd,IAAA,wCAAmB,EAAC,KAAK,EAAE,uBAAuB,CAAC;YACnD,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;YAC/C,KAAK;SACN,aAEA,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAClC,uBAAC,mBAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,YAAG,KAAK,GAAQ,IACtD,CACb,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,OAAO,EAAE;QACP,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,GAAG,EAAE,CAAC;QACN,MAAM,EAAE,uCAAkB;QAC1B,iBAAiB,EAAE,EAAE;KACtB;IACD,KAAK,EAAE;QACL,UAAU,EAAE,KAAK;KAClB;CACF,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { HeaderGroupProps } from "./types";
2
+ /** Row of header buttons that share one glass capsule on iOS 26+. */
3
+ export declare function HeaderGroup({ children, fallbackBackgroundColor, style, }: HeaderGroupProps): import("react").JSX.Element;
4
+ //# sourceMappingURL=HeaderGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderGroup.d.ts","sourceRoot":"","sources":["../../../src/components/HeaderButton/HeaderGroup.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAIhD,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,uBAAuB,EACvB,KAAK,GACN,EAAE,gBAAgB,+BAYlB"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HeaderGroup = HeaderGroup;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_native_1 = require("react-native");
6
+ const headerButtonLayout_1 = require("./headerButtonLayout");
7
+ const GLASS = (0, headerButtonLayout_1.supportsLiquidGlass)(react_native_1.Platform.OS, react_native_1.Platform.Version);
8
+ /** Row of header buttons that share one glass capsule on iOS 26+. */
9
+ function HeaderGroup({ children, fallbackBackgroundColor, style, }) {
10
+ return ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: [
11
+ styles.row,
12
+ (0, headerButtonLayout_1.headerFallbackStyle)(GLASS, fallbackBackgroundColor),
13
+ style,
14
+ ], children: children }));
15
+ }
16
+ const styles = react_native_1.StyleSheet.create({
17
+ row: {
18
+ flexDirection: "row",
19
+ alignItems: "center",
20
+ gap: headerButtonLayout_1.HEADER_GROUP_GAP,
21
+ },
22
+ });
23
+ //# sourceMappingURL=HeaderGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderGroup.js","sourceRoot":"","sources":["../../../src/components/HeaderButton/HeaderGroup.tsx"],"names":[],"mappings":";;AAWA,kCAgBC;;AA3BD,+CAA0D;AAC1D,6DAI8B;AAG9B,MAAM,KAAK,GAAG,IAAA,wCAAmB,EAAC,uBAAQ,CAAC,EAAE,EAAE,uBAAQ,CAAC,OAAO,CAAC,CAAC;AAEjE,qEAAqE;AACrE,SAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,uBAAuB,EACvB,KAAK,GACY;IACjB,OAAO,CACL,uBAAC,mBAAI,IACH,KAAK,EAAE;YACL,MAAM,CAAC,GAAG;YACV,IAAA,wCAAmB,EAAC,KAAK,EAAE,uBAAuB,CAAC;YACnD,KAAK;SACN,YAEA,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,GAAG,EAAE;QACH,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,GAAG,EAAE,qCAAgB;KACtB;CACF,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { HeaderIconProps } from "./types";
2
+ /** Icon-only header button. A 36×36 box becomes a glass circle on iOS 26+. */
3
+ export declare function HeaderIcon({ icon, label, onPress, size, disabled, color: colorProp, fallbackBackgroundColor, hitSlop, style, }: HeaderIconProps): import("react").JSX.Element;
4
+ //# sourceMappingURL=HeaderIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderIcon.d.ts","sourceRoot":"","sources":["../../../src/components/HeaderButton/HeaderIcon.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI/C,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,KAAK,EACL,OAAO,EACP,IAAuB,EACvB,QAAgB,EAChB,KAAK,EAAE,SAAS,EAChB,uBAAuB,EACvB,OAAyB,EACzB,KAAK,GACN,EAAE,eAAe,+BAqBjB"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HeaderIcon = HeaderIcon;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_native_1 = require("react-native");
6
+ const useResolvedFieldColor_1 = require("../Field/useResolvedFieldColor");
7
+ const headerButtonLayout_1 = require("./headerButtonLayout");
8
+ const headerButtonThemeRoles_1 = require("./headerButtonThemeRoles");
9
+ const GLASS = (0, headerButtonLayout_1.supportsLiquidGlass)(react_native_1.Platform.OS, react_native_1.Platform.Version);
10
+ /** Icon-only header button. A 36×36 box becomes a glass circle on iOS 26+. */
11
+ function HeaderIcon({ icon, label, onPress, size = headerButtonLayout_1.HEADER_ICON_SIZE, disabled = false, color: colorProp, fallbackBackgroundColor, hitSlop = headerButtonLayout_1.HEADER_HIT_SLOP, style, }) {
12
+ const color = (0, useResolvedFieldColor_1.useResolvedFieldColor)(colorProp, headerButtonThemeRoles_1.HEADER_BUTTON_THEME_ROLES.color);
13
+ return ((0, jsx_runtime_1.jsx)(react_native_1.Pressable, { onPress: onPress, disabled: disabled, hitSlop: hitSlop, accessibilityRole: "button", accessibilityLabel: label, accessibilityState: { disabled }, style: ({ pressed }) => [
14
+ styles.box,
15
+ (0, headerButtonLayout_1.headerFallbackStyle)(GLASS, fallbackBackgroundColor),
16
+ { opacity: disabled ? 0.4 : pressed ? 0.5 : 1 },
17
+ style,
18
+ ], children: icon({ color, size }) }));
19
+ }
20
+ const styles = react_native_1.StyleSheet.create({
21
+ box: {
22
+ width: headerButtonLayout_1.HEADER_BUTTON_SIZE,
23
+ height: headerButtonLayout_1.HEADER_BUTTON_SIZE,
24
+ alignItems: "center",
25
+ justifyContent: "center",
26
+ },
27
+ });
28
+ //# sourceMappingURL=HeaderIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderIcon.js","sourceRoot":"","sources":["../../../src/components/HeaderButton/HeaderIcon.tsx"],"names":[],"mappings":";;AAeA,gCA+BC;;AA9CD,+CAA+D;AAC/D,0EAAuE;AACvE,6DAM8B;AAC9B,qEAAqE;AAGrE,MAAM,KAAK,GAAG,IAAA,wCAAmB,EAAC,uBAAQ,CAAC,EAAE,EAAE,uBAAQ,CAAC,OAAO,CAAC,CAAC;AAEjE,8EAA8E;AAC9E,SAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,KAAK,EACL,OAAO,EACP,IAAI,GAAG,qCAAgB,EACvB,QAAQ,GAAG,KAAK,EAChB,KAAK,EAAE,SAAS,EAChB,uBAAuB,EACvB,OAAO,GAAG,oCAAe,EACzB,KAAK,GACW;IAChB,MAAM,KAAK,GAAG,IAAA,6CAAqB,EAAC,SAAS,EAAE,kDAAyB,CAAC,KAAK,CAAC,CAAC;IAEhF,OAAO,CACL,uBAAC,wBAAS,IACR,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAC,QAAQ,EAC1B,kBAAkB,EAAE,KAAK,EACzB,kBAAkB,EAAE,EAAE,QAAQ,EAAE,EAChC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG;YACV,IAAA,wCAAmB,EAAC,KAAK,EAAE,uBAAuB,CAAC;YACnD,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;YAC/C,KAAK;SACN,YAEA,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,GACZ,CACb,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,GAAG,EAAE;QACH,KAAK,EAAE,uCAAkB;QACzB,MAAM,EAAE,uCAAkB;QAC1B,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;KACzB;CACF,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /** Height of every header button; a square of this size becomes a glass circle. */
2
+ export declare const HEADER_BUTTON_SIZE = 36;
3
+ export declare const HEADER_ICON_SIZE = 17;
4
+ export declare const HEADER_CAPSULE_ICON_SIZE = 15;
5
+ export declare const HEADER_CAPSULE_FONT_SIZE = 16;
6
+ export declare const HEADER_GROUP_GAP = 4;
7
+ export declare const HEADER_HIT_SLOP = 6;
8
+ /**
9
+ * Liquid Glass bar button backgrounds exist on iOS 26 and later only.
10
+ * Pass `Platform.OS` and `Platform.Version`. Pure so it can be unit-tested.
11
+ */
12
+ export declare function supportsLiquidGlass(os: string, version: string | number): boolean;
13
+ /**
14
+ * Background drawn on platforms without glass. On iOS 26+ the system draws
15
+ * the glass, so a background there would give two shapes, one inside the other.
16
+ */
17
+ export declare function headerFallbackStyle(glass: boolean, backgroundColor: string | undefined): {
18
+ backgroundColor: string;
19
+ borderRadius: number;
20
+ } | undefined;
21
+ //# sourceMappingURL=headerButtonLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headerButtonLayout.d.ts","sourceRoot":"","sources":["../../../src/components/HeaderButton/headerButtonLayout.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,GAAG,MAAM,GACvB,OAAO,CAMT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,eAAe,EAAE,MAAM,GAAG,SAAS,GAClC;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAK/D"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HEADER_HIT_SLOP = exports.HEADER_GROUP_GAP = exports.HEADER_CAPSULE_FONT_SIZE = exports.HEADER_CAPSULE_ICON_SIZE = exports.HEADER_ICON_SIZE = exports.HEADER_BUTTON_SIZE = void 0;
4
+ exports.supportsLiquidGlass = supportsLiquidGlass;
5
+ exports.headerFallbackStyle = headerFallbackStyle;
6
+ /** Height of every header button; a square of this size becomes a glass circle. */
7
+ exports.HEADER_BUTTON_SIZE = 36;
8
+ exports.HEADER_ICON_SIZE = 17;
9
+ exports.HEADER_CAPSULE_ICON_SIZE = 15;
10
+ exports.HEADER_CAPSULE_FONT_SIZE = 16;
11
+ exports.HEADER_GROUP_GAP = 4;
12
+ exports.HEADER_HIT_SLOP = 6;
13
+ /**
14
+ * Liquid Glass bar button backgrounds exist on iOS 26 and later only.
15
+ * Pass `Platform.OS` and `Platform.Version`. Pure so it can be unit-tested.
16
+ */
17
+ function supportsLiquidGlass(os, version) {
18
+ if (os !== "ios") {
19
+ return false;
20
+ }
21
+ const major = Number.parseInt(String(version), 10);
22
+ return Number.isFinite(major) && major >= 26;
23
+ }
24
+ /**
25
+ * Background drawn on platforms without glass. On iOS 26+ the system draws
26
+ * the glass, so a background there would give two shapes, one inside the other.
27
+ */
28
+ function headerFallbackStyle(glass, backgroundColor) {
29
+ if (glass || backgroundColor == null) {
30
+ return undefined;
31
+ }
32
+ return { backgroundColor, borderRadius: exports.HEADER_BUTTON_SIZE / 2 };
33
+ }
34
+ //# sourceMappingURL=headerButtonLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headerButtonLayout.js","sourceRoot":"","sources":["../../../src/components/HeaderButton/headerButtonLayout.ts"],"names":[],"mappings":";;;AAYA,kDASC;AAMD,kDAQC;AAnCD,mFAAmF;AACtE,QAAA,kBAAkB,GAAG,EAAE,CAAC;AACxB,QAAA,gBAAgB,GAAG,EAAE,CAAC;AACtB,QAAA,wBAAwB,GAAG,EAAE,CAAC;AAC9B,QAAA,wBAAwB,GAAG,EAAE,CAAC;AAC9B,QAAA,gBAAgB,GAAG,CAAC,CAAC;AACrB,QAAA,eAAe,GAAG,CAAC,CAAC;AAEjC;;;GAGG;AACH,SAAgB,mBAAmB,CACjC,EAAU,EACV,OAAwB;IAExB,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CACjC,KAAc,EACd,eAAmC;IAEnC,IAAI,KAAK,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,0BAAkB,GAAG,CAAC,EAAE,CAAC;AACnE,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const HEADER_BUTTON_THEME_ROLES: {
2
+ readonly color: "headerButton";
3
+ };
4
+ export type HeaderButtonThemeColorProp = keyof typeof HEADER_BUTTON_THEME_ROLES;
5
+ //# sourceMappingURL=headerButtonThemeRoles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headerButtonThemeRoles.d.ts","sourceRoot":"","sources":["../../../src/components/HeaderButton/headerButtonThemeRoles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB;;CAE5B,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAAG,MAAM,OAAO,yBAAyB,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HEADER_BUTTON_THEME_ROLES = void 0;
4
+ exports.HEADER_BUTTON_THEME_ROLES = {
5
+ color: "headerButton",
6
+ };
7
+ //# sourceMappingURL=headerButtonThemeRoles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headerButtonThemeRoles.js","sourceRoot":"","sources":["../../../src/components/HeaderButton/headerButtonThemeRoles.ts"],"names":[],"mappings":";;;AAAa,QAAA,yBAAyB,GAAG;IACvC,KAAK,EAAE,cAAc;CACb,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { HeaderCapsule } from "./HeaderCapsule";
2
+ export { HeaderGroup } from "./HeaderGroup";
3
+ export { HeaderIcon } from "./HeaderIcon";
4
+ export { supportsLiquidGlass } from "./headerButtonLayout";
5
+ export { HEADER_BUTTON_THEME_ROLES, type HeaderButtonThemeColorProp, } from "./headerButtonThemeRoles";
6
+ export type { HeaderButtonIcon, HeaderCapsuleProps, HeaderGroupProps, HeaderIconProps, } from "./types";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/HeaderButton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACL,yBAAyB,EACzB,KAAK,0BAA0B,GAChC,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,GAChB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HEADER_BUTTON_THEME_ROLES = exports.supportsLiquidGlass = exports.HeaderIcon = exports.HeaderGroup = exports.HeaderCapsule = void 0;
4
+ var HeaderCapsule_1 = require("./HeaderCapsule");
5
+ Object.defineProperty(exports, "HeaderCapsule", { enumerable: true, get: function () { return HeaderCapsule_1.HeaderCapsule; } });
6
+ var HeaderGroup_1 = require("./HeaderGroup");
7
+ Object.defineProperty(exports, "HeaderGroup", { enumerable: true, get: function () { return HeaderGroup_1.HeaderGroup; } });
8
+ var HeaderIcon_1 = require("./HeaderIcon");
9
+ Object.defineProperty(exports, "HeaderIcon", { enumerable: true, get: function () { return HeaderIcon_1.HeaderIcon; } });
10
+ var headerButtonLayout_1 = require("./headerButtonLayout");
11
+ Object.defineProperty(exports, "supportsLiquidGlass", { enumerable: true, get: function () { return headerButtonLayout_1.supportsLiquidGlass; } });
12
+ var headerButtonThemeRoles_1 = require("./headerButtonThemeRoles");
13
+ Object.defineProperty(exports, "HEADER_BUTTON_THEME_ROLES", { enumerable: true, get: function () { return headerButtonThemeRoles_1.HEADER_BUTTON_THEME_ROLES; } });
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/HeaderButton/index.ts"],"names":[],"mappings":";;;AAAA,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,2DAA2D;AAAlD,yHAAA,mBAAmB,OAAA;AAC5B,mEAGkC;AAFhC,mIAAA,yBAAyB,OAAA"}
@@ -0,0 +1,40 @@
1
+ import type { ReactNode } from "react";
2
+ import type { StyleProp, ViewStyle } from "react-native";
3
+ /** Renders the icon with the resolved tint colour and size, e.g. an expo-symbols `SymbolView`. */
4
+ export type HeaderButtonIcon = (props: {
5
+ color: string;
6
+ size: number;
7
+ }) => ReactNode;
8
+ type HeaderButtonSharedProps = {
9
+ onPress: () => void;
10
+ disabled?: boolean;
11
+ /** Icon and label colour. Defaults to the `headerButton` theme role. */
12
+ color?: string;
13
+ /** Background on Android and iOS 18 and earlier only. iOS 26+ draws glass instead. */
14
+ fallbackBackgroundColor?: string;
15
+ hitSlop?: number;
16
+ style?: StyleProp<ViewStyle>;
17
+ };
18
+ export type HeaderIconProps = HeaderButtonSharedProps & {
19
+ icon: HeaderButtonIcon;
20
+ /** Accessibility label. Required: icon-only buttons have no text for VoiceOver. */
21
+ label: string;
22
+ /** Icon box size. Default 17 (range 15–20). */
23
+ size?: number;
24
+ };
25
+ export type HeaderCapsuleProps = HeaderButtonSharedProps & {
26
+ icon?: HeaderButtonIcon;
27
+ label: string;
28
+ /** Default 15, close to the height of the 16pt label. */
29
+ iconSize?: number;
30
+ /** Default 16. */
31
+ fontSize?: number;
32
+ };
33
+ export type HeaderGroupProps = {
34
+ children: ReactNode;
35
+ /** Shared background on Android and iOS 18 and earlier only. */
36
+ fallbackBackgroundColor?: string;
37
+ style?: StyleProp<ViewStyle>;
38
+ };
39
+ export {};
40
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/HeaderButton/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,kGAAkG;AAClG,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAK,SAAS,CAAC;AAErF,KAAK,uBAAuB,GAAG;IAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,uBAAuB,GAAG;IACtD,IAAI,EAAE,gBAAgB,CAAC;IACvB,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,uBAAuB,GAAG;IACzD,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,gEAAgE;IAChE,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/HeaderButton/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Background for a transparent native header: a wash from `color` to clear.
3
+ * Use it as the stack's `headerBackground` with `headerTransparent: true`.
4
+ * The stack sizes it to the header and draws it above the screen content,
5
+ * so content fades as it scrolls under the bar.
6
+ */
7
+ export declare function HeaderWash({ color: colorProp }: {
8
+ color?: string;
9
+ }): import("react").JSX.Element;
10
+ //# sourceMappingURL=HeaderWash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderWash.d.ts","sourceRoot":"","sources":["../../../src/components/HeaderWash/HeaderWash.tsx"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,+BAQlE"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HeaderWash = HeaderWash;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_native_1 = require("react-native");
6
+ const useResolvedFieldColor_1 = require("../Field/useResolvedFieldColor");
7
+ const formThemeRoles_1 = require("../Form/formThemeRoles");
8
+ const headerWashGradient_1 = require("./headerWashGradient");
9
+ /**
10
+ * Background for a transparent native header: a wash from `color` to clear.
11
+ * Use it as the stack's `headerBackground` with `headerTransparent: true`.
12
+ * The stack sizes it to the header and draws it above the screen content,
13
+ * so content fades as it scrolls under the bar.
14
+ */
15
+ function HeaderWash({ color: colorProp }) {
16
+ const color = (0, useResolvedFieldColor_1.useResolvedFieldColor)(colorProp, formThemeRoles_1.FORM_THEME_ROLES.backgroundColor);
17
+ return ((0, jsx_runtime_1.jsx)(react_native_1.View, { pointerEvents: "none", style: [react_native_1.StyleSheet.absoluteFill, { experimental_backgroundImage: (0, headerWashGradient_1.headerWashGradient)(color) }] }));
18
+ }
19
+ //# sourceMappingURL=HeaderWash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderWash.js","sourceRoot":"","sources":["../../../src/components/HeaderWash/HeaderWash.tsx"],"names":[],"mappings":";;AAWA,gCAQC;;AAnBD,+CAAgD;AAChD,0EAAuE;AACvE,2DAA0D;AAC1D,6DAA0D;AAE1D;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAsB;IACjE,MAAM,KAAK,GAAG,IAAA,6CAAqB,EAAC,SAAS,EAAE,iCAAgB,CAAC,eAAe,CAAC,CAAC;IACjF,OAAO,CACL,uBAAC,mBAAI,IACH,aAAa,EAAC,MAAM,EACpB,KAAK,EAAE,CAAC,yBAAU,CAAC,YAAY,EAAE,EAAE,4BAA4B,EAAE,IAAA,uCAAkB,EAAC,KAAK,CAAC,EAAE,CAAC,GAC7F,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare function withAlpha(hex: string, alpha: number): string;
2
+ /**
3
+ * The header wash: `color` nearly opaque at the top of the header, fading to
4
+ * clear at its bottom, so content fades out as it scrolls under the bar.
5
+ * Pure so it can be unit-tested.
6
+ */
7
+ export declare function headerWashGradient(color: string): string;
8
+ //# sourceMappingURL=headerWashGradient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headerWashGradient.d.ts","sourceRoot":"","sources":["../../../src/components/HeaderWash/headerWashGradient.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ5D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withAlpha = withAlpha;
4
+ exports.headerWashGradient = headerWashGradient;
5
+ function withAlpha(hex, alpha) {
6
+ const raw = hex.replace("#", "");
7
+ const full = raw.length === 3 ? raw.split("").map((c) => `${c}${c}`).join("") : raw;
8
+ const r = Number.parseInt(full.slice(0, 2), 16);
9
+ const g = Number.parseInt(full.slice(2, 4), 16);
10
+ const b = Number.parseInt(full.slice(4, 6), 16);
11
+ return `rgba(${r}, ${g}, ${b}, ${alpha})`;
12
+ }
13
+ /**
14
+ * The header wash: `color` nearly opaque at the top of the header, fading to
15
+ * clear at its bottom, so content fades out as it scrolls under the bar.
16
+ * Pure so it can be unit-tested.
17
+ */
18
+ function headerWashGradient(color) {
19
+ return `linear-gradient(to bottom, ${withAlpha(color, 0.98)} 0%, ${withAlpha(color, 0.92)} 55%, ${withAlpha(color, 0)} 100%)`;
20
+ }
21
+ //# sourceMappingURL=headerWashGradient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headerWashGradient.js","sourceRoot":"","sources":["../../../src/components/HeaderWash/headerWashGradient.ts"],"names":[],"mappings":";;AAAA,8BAQC;AAOD,gDAEC;AAjBD,SAAgB,SAAS,CAAC,GAAW,EAAE,KAAa;IAClD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACjC,MAAM,IAAI,GACR,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACzE,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,GAAG,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,OAAO,8BAA8B,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC;AAChI,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { HeaderWash } from "./HeaderWash";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/HeaderWash/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HeaderWash = void 0;
4
+ var HeaderWash_1 = require("./HeaderWash");
5
+ Object.defineProperty(exports, "HeaderWash", { enumerable: true, get: function () { return HeaderWash_1.HeaderWash; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/HeaderWash/index.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAAjC,wGAAA,UAAU,OAAA"}
@@ -0,0 +1,13 @@
1
+ import type { PageProps } from "./types";
2
+ /**
3
+ * Scrolling screen body for a native stack inside native tabs. iOS insets
4
+ * the content for the header (including the large title) and the tab bar,
5
+ * so it starts just below the header, scrolls behind it, and clears the
6
+ * tabs. The title belongs to the header: set it in the stack options.
7
+ *
8
+ * The ScrollView must be a direct child of the screen: react-native-screens
9
+ * only links the header (large title, insets) to a direct child, so there is
10
+ * no wrapper view. Render `Page` as the screen's root element.
11
+ */
12
+ export declare function Page({ children, tabAccessory, backgroundColor: backgroundColorProp, padded, contentUnderHeader, contentInset, contentContainerStyle, style, ...scrollProps }: PageProps): import("react").JSX.Element;
13
+ //# sourceMappingURL=Page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../src/components/Page/Page.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIzC;;;;;;;;;GASG;AACH,wBAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,YAAY,EACZ,eAAe,EAAE,mBAAmB,EACpC,MAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,KAAK,EACL,GAAG,WAAW,EACf,EAAE,SAAS,+BAwCX"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Page = Page;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_native_1 = require("react-native");
6
+ const useResolvedFieldColor_1 = require("../Field/useResolvedFieldColor");
7
+ const headerButtonLayout_1 = require("../HeaderButton/headerButtonLayout");
8
+ const TabAccessoryButton_1 = require("../TabAccessoryButton");
9
+ const tabAccessoryLayout_1 = require("../TabAccessoryButton/tabAccessoryLayout");
10
+ const useThemeSpacing_1 = require("../../theme/useThemeSpacing");
11
+ const pageContext_1 = require("./pageContext");
12
+ const pageInsets_1 = require("./pageInsets");
13
+ const pageThemeRoles_1 = require("./pageThemeRoles");
14
+ const GLASS = (0, headerButtonLayout_1.supportsLiquidGlass)(react_native_1.Platform.OS, react_native_1.Platform.Version);
15
+ /**
16
+ * Scrolling screen body for a native stack inside native tabs. iOS insets
17
+ * the content for the header (including the large title) and the tab bar,
18
+ * so it starts just below the header, scrolls behind it, and clears the
19
+ * tabs. The title belongs to the header: set it in the stack options.
20
+ *
21
+ * The ScrollView must be a direct child of the screen: react-native-screens
22
+ * only links the header (large title, insets) to a direct child, so there is
23
+ * no wrapper view. Render `Page` as the screen's root element.
24
+ */
25
+ function Page({ children, tabAccessory, backgroundColor: backgroundColorProp, padded = true, contentUnderHeader, contentInset, contentContainerStyle, style, ...scrollProps }) {
26
+ const backgroundColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(backgroundColorProp, pageThemeRoles_1.PAGE_THEME_ROLES.backgroundColor);
27
+ const spacing = (0, useThemeSpacing_1.useThemeSpacing)();
28
+ const sideInset = (0, pageInsets_1.pageSideInset)(padded, spacing.screen);
29
+ const paddingBottom = (padded ? spacing.pageBottom : 0) +
30
+ (tabAccessory ? (0, tabAccessoryLayout_1.tabAccessoryScreenClearance)(GLASS, spacing.screen) : 0);
31
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_native_1.ScrollView, { ...scrollProps, contentInsetAdjustmentBehavior: "automatic", contentInset: (0, pageInsets_1.pageContentInset)(react_native_1.Platform.OS, contentUnderHeader, contentInset), style: [styles.screen, { backgroundColor }, style], contentContainerStyle: [
32
+ { paddingHorizontal: sideInset },
33
+ {
34
+ paddingTop: (0, pageInsets_1.pagePaddingTop)({
35
+ padded,
36
+ underHeader: contentUnderHeader != null,
37
+ pageTop: spacing.pageTop,
38
+ }),
39
+ },
40
+ { paddingBottom },
41
+ contentContainerStyle,
42
+ ], children: (0, jsx_runtime_1.jsx)(pageContext_1.PageInsetContext.Provider, { value: sideInset, children: children }) }), tabAccessory ? ((0, jsx_runtime_1.jsx)(TabAccessoryButton_1.TabAccessoryButton, { placement: "screen", ...tabAccessory })) : null] }));
43
+ }
44
+ const styles = react_native_1.StyleSheet.create({
45
+ screen: {
46
+ flex: 1,
47
+ },
48
+ });
49
+ //# sourceMappingURL=Page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Page.js","sourceRoot":"","sources":["../../../src/components/Page/Page.tsx"],"names":[],"mappings":";;AAuBA,oBAkDC;;AAzED,+CAAgE;AAChE,0EAAuE;AACvE,2EAAyE;AACzE,8DAA2D;AAC3D,iFAAuF;AACvF,iEAA8D;AAC9D,+CAAiD;AACjD,6CAA+E;AAC/E,qDAAoD;AAGpD,MAAM,KAAK,GAAG,IAAA,wCAAmB,EAAC,uBAAQ,CAAC,EAAE,EAAE,uBAAQ,CAAC,OAAO,CAAC,CAAC;AAEjE;;;;;;;;;GASG;AACH,SAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,YAAY,EACZ,eAAe,EAAE,mBAAmB,EACpC,MAAM,GAAG,IAAI,EACb,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,KAAK,EACL,GAAG,WAAW,EACJ;IACV,MAAM,eAAe,GAAG,IAAA,6CAAqB,EAC3C,mBAAmB,EACnB,iCAAgB,CAAC,eAAe,CACjC,CAAC;IACF,MAAM,OAAO,GAAG,IAAA,iCAAe,GAAE,CAAC;IAClC,MAAM,SAAS,GAAG,IAAA,0BAAa,EAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,aAAa,GACjB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAA,gDAA2B,EAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1E,OAAO,CACL,6DACE,uBAAC,yBAAU,OACL,WAAW,EACf,8BAA8B,EAAC,WAAW,EAC1C,YAAY,EAAE,IAAA,6BAAgB,EAAC,uBAAQ,CAAC,EAAE,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAC7E,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,EAAE,KAAK,CAAC,EAClD,qBAAqB,EAAE;oBACrB,EAAE,iBAAiB,EAAE,SAAS,EAAE;oBAChC;wBACE,UAAU,EAAE,IAAA,2BAAc,EAAC;4BACzB,MAAM;4BACN,WAAW,EAAE,kBAAkB,IAAI,IAAI;4BACvC,OAAO,EAAE,OAAO,CAAC,OAAO;yBACzB,CAAC;qBACH;oBACD,EAAE,aAAa,EAAE;oBACjB,qBAAqB;iBACtB,YAED,uBAAC,8BAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,SAAS,YACxC,QAAQ,GACiB,GACjB,EACZ,YAAY,CAAC,CAAC,CAAC,CACd,uBAAC,uCAAkB,IAAC,SAAS,EAAC,QAAQ,KAAK,YAAY,GAAI,CAC5D,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE;QACN,IAAI,EAAE,CAAC;KACR;CACF,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type StyleProp, type ViewStyle } from "react-native";
2
+ import type { ReactNode } from "react";
3
+ export type PageBleedProps = {
4
+ children?: ReactNode;
5
+ style?: StyleProp<ViewStyle>;
6
+ };
7
+ /** Takes one section of a `Page` out to the screen edges, e.g. a full-width image or map. */
8
+ export declare function PageBleed({ children, style }: PageBleedProps): import("react").JSX.Element;
9
+ //# sourceMappingURL=PageBleed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageBleed.d.ts","sourceRoot":"","sources":["../../../src/components/Page/PageBleed.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAEF,6FAA6F;AAC7F,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,cAAc,+BAE5D"}