@studio-piot/native-ui 0.2.5 → 0.17.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 +10 -0
  19. package/dist/components/Choice/Choice.d.ts.map +1 -0
  20. package/dist/components/Choice/Choice.js +66 -0
  21. package/dist/components/Choice/Choice.js.map +1 -0
  22. package/dist/components/Choice/choiceLayout.d.ts +23 -0
  23. package/dist/components/Choice/choiceLayout.d.ts.map +1 -0
  24. package/dist/components/Choice/choiceLayout.js +32 -0
  25. package/dist/components/Choice/choiceLayout.js.map +1 -0
  26. package/dist/components/Choice/choiceThemeRoles.d.ts +9 -0
  27. package/dist/components/Choice/choiceThemeRoles.d.ts.map +1 -0
  28. package/dist/components/Choice/choiceThemeRoles.js +11 -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 +33 -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 +111 -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 +120 -0
  266. package/src/components/Choice/choiceLayout.test.ts +49 -0
  267. package/src/components/Choice/choiceLayout.ts +34 -0
  268. package/src/components/Choice/choiceThemeRoles.test.ts +15 -0
  269. package/src/components/Choice/choiceThemeRoles.ts +9 -0
  270. package/src/components/Choice/index.ts +4 -0
  271. package/src/components/Choice/types.ts +33 -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
@@ -1 +1 @@
1
- {"version":3,"file":"Form.js","sourceRoot":"","sources":["../../../src/components/Form/Form.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Form.js","sourceRoot":"","sources":["../../../src/components/Form/Form.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- export declare function FormCloseButton({ onPress }: {
1
+ export declare function FormCloseButton({ onPress, color: colorProp, }: {
2
2
  onPress: () => void;
3
+ /** Defaults to theme role `formClose`. */
4
+ color?: string;
3
5
  }): import("react").JSX.Element;
4
6
  //# sourceMappingURL=FormCloseButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormCloseButton.d.ts","sourceRoot":"","sources":["../../../src/components/Form/FormCloseButton.tsx"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,+BAQnE"}
1
+ {"version":3,"file":"FormCloseButton.d.ts","sourceRoot":"","sources":["../../../src/components/Form/FormCloseButton.tsx"],"names":[],"mappings":"AAIA,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,KAAK,EAAE,SAAS,GACjB,EAAE;IACD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,+BAQA"}
@@ -3,10 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FormCloseButton = FormCloseButton;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_native_1 = require("react-native");
6
- const useThemeColor_1 = require("../../theme/useThemeColor");
7
- function FormCloseButton({ onPress }) {
8
- const text = (0, useThemeColor_1.useThemeColor)("text");
9
- return ((0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", hitSlop: 8, onPress: onPress, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.label, { color: text }], children: "Cancel" }) }));
6
+ const useResolvedFieldColor_1 = require("../Field/useResolvedFieldColor");
7
+ const formThemeRoles_1 = require("./formThemeRoles");
8
+ function FormCloseButton({ onPress, color: colorProp, }) {
9
+ const color = (0, useResolvedFieldColor_1.useResolvedFieldColor)(colorProp, formThemeRoles_1.FORM_THEME_ROLES.closeColor);
10
+ return ((0, jsx_runtime_1.jsx)(react_native_1.Pressable, { accessibilityRole: "button", hitSlop: 8, onPress: onPress, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.label, { color }], children: "Cancel" }) }));
10
11
  }
11
12
  const styles = react_native_1.StyleSheet.create({
12
13
  label: {
@@ -1 +1 @@
1
- {"version":3,"file":"FormCloseButton.js","sourceRoot":"","sources":["../../../src/components/Form/FormCloseButton.tsx"],"names":[],"mappings":";;AAGA,0CAQC;;AAXD,+CAA2D;AAC3D,6DAA0D;AAE1D,SAAgB,eAAe,CAAC,EAAE,OAAO,EAA2B;IAClE,MAAM,IAAI,GAAG,IAAA,6BAAa,EAAC,MAAM,CAAC,CAAC;IAEnC,OAAO,CACL,uBAAC,wBAAS,IAAC,iBAAiB,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,YAChE,uBAAC,mBAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,uBAAe,GACjD,CACb,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;KAClB;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"FormCloseButton.js","sourceRoot":"","sources":["../../../src/components/Form/FormCloseButton.tsx"],"names":[],"mappings":";;AAIA,0CAeC;;AAnBD,+CAA2D;AAC3D,0EAAuE;AACvE,qDAAoD;AAEpD,SAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,KAAK,EAAE,SAAS,GAKjB;IACC,MAAM,KAAK,GAAG,IAAA,6CAAqB,EAAC,SAAS,EAAE,iCAAgB,CAAC,UAAU,CAAC,CAAC;IAE5E,OAAO,CACL,uBAAC,wBAAS,IAAC,iBAAiB,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,YAChE,uBAAC,mBAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,uBAAe,GAC3C,CACb,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;KAClB;CACF,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { type FieldError } from "../ErrorBanner";
2
+ /**
3
+ * The screen banner wired to the nearest `ErrorBannerProvider`. Shared by
4
+ * `Form` and `FormSheet`. On iOS it renders in a native overlay window so it
5
+ * covers the native header. Android native headers do not overlap the
6
+ * screen, so there it sits `androidTop` below the screen top, under the header.
7
+ */
8
+ export declare function FormErrorBanner({ open, errors, onDismiss, onHeightChange, androidTop, }: {
9
+ open: boolean;
10
+ errors: readonly FieldError[];
11
+ onDismiss: () => void;
12
+ onHeightChange: (height: number) => void;
13
+ androidTop?: number;
14
+ }): import("react").JSX.Element;
15
+ //# sourceMappingURL=FormErrorBanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormErrorBanner.d.ts","sourceRoot":"","sources":["../../../src/components/Form/FormErrorBanner.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAExB;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,MAAM,EACN,SAAS,EACT,cAAc,EACd,UAAc,GACf,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,+BAqBA"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormErrorBanner = FormErrorBanner;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_native_1 = require("react-native");
6
+ const react_native_screens_1 = require("react-native-screens");
7
+ const ErrorBanner_1 = require("../ErrorBanner");
8
+ /**
9
+ * The screen banner wired to the nearest `ErrorBannerProvider`. Shared by
10
+ * `Form` and `FormSheet`. On iOS it renders in a native overlay window so it
11
+ * covers the native header. Android native headers do not overlap the
12
+ * screen, so there it sits `androidTop` below the screen top, under the header.
13
+ */
14
+ function FormErrorBanner({ open, errors, onDismiss, onHeightChange, androidTop = 0, }) {
15
+ const ctx = (0, ErrorBanner_1.useErrorBannerContext)();
16
+ const banner = ((0, jsx_runtime_1.jsx)(ErrorBanner_1.ErrorBanner, { errors: errors, onDismiss: onDismiss, onHeightChange: onHeightChange, onJump: (field) => ctx?.jump(field), open: open, safeAreaTop: react_native_1.Platform.OS === "ios" ? undefined : 0 }));
17
+ if (react_native_1.Platform.OS === "ios") {
18
+ return (0, jsx_runtime_1.jsx)(react_native_screens_1.FullWindowOverlay, { children: banner });
19
+ }
20
+ return ((0, jsx_runtime_1.jsx)(react_native_1.View, { pointerEvents: "box-none", style: [styles.below, { top: androidTop }], children: banner }));
21
+ }
22
+ const styles = react_native_1.StyleSheet.create({
23
+ below: {
24
+ position: "absolute",
25
+ left: 0,
26
+ right: 0,
27
+ bottom: 0,
28
+ },
29
+ });
30
+ //# sourceMappingURL=FormErrorBanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormErrorBanner.js","sourceRoot":"","sources":["../../../src/components/Form/FormErrorBanner.tsx"],"names":[],"mappings":";;AAcA,0CAiCC;;AA/CD,+CAA0D;AAC1D,+DAAyD;AACzD,gDAIwB;AAExB;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,MAAM,EACN,SAAS,EACT,cAAc,EACd,UAAU,GAAG,CAAC,GAOf;IACC,MAAM,GAAG,GAAG,IAAA,mCAAqB,GAAE,CAAC;IACpC,MAAM,MAAM,GAAG,CACb,uBAAC,yBAAW,IACV,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EACnC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,uBAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAClD,CACH,CAAC;IAEF,IAAI,uBAAQ,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO,uBAAC,wCAAiB,cAAE,MAAM,GAAqB,CAAC;IACzD,CAAC;IACD,OAAO,CACL,uBAAC,mBAAI,IAAC,aAAa,EAAC,UAAU,EAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,YACtE,MAAM,GACF,CACR,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE;QACL,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;KACV;CACF,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { type LayoutChangeEvent } from "react-native";
2
+ import type { ButtonRadius } from "../Button/buttonRadius";
3
+ /** Sticky submit footer shared by `Form` and `FormSheet`. */
4
+ export declare function FormSubmitFooter({ label, onPress, submitting, disabled, radius, paddingHorizontal, backgroundColor, buttonBackgroundColor, buttonLabelColor, onLayout, }: {
5
+ label: string;
6
+ onPress: () => void;
7
+ submitting: boolean;
8
+ disabled: boolean;
9
+ radius: ButtonRadius;
10
+ paddingHorizontal: number;
11
+ backgroundColor: string;
12
+ buttonBackgroundColor?: string;
13
+ buttonLabelColor?: string;
14
+ /** Height of the bar above the home indicator, for scroll clearance. */
15
+ onLayout?: (event: LayoutChangeEvent) => void;
16
+ }): import("react").JSX.Element;
17
+ //# sourceMappingURL=FormSubmitFooter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormSubmitFooter.d.ts","sourceRoot":"","sources":["../../../src/components/Form/FormSubmitFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAIxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,6DAA6D;AAC7D,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,OAAO,EACP,UAAU,EACV,QAAQ,EACR,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC/C,+BAwBA"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormSubmitFooter = FormSubmitFooter;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_native_1 = require("react-native");
6
+ const react_native_keyboard_controller_1 = require("react-native-keyboard-controller");
7
+ const react_native_safe_area_context_1 = require("react-native-safe-area-context");
8
+ const Button_1 = require("../Button");
9
+ /** Sticky submit footer shared by `Form` and `FormSheet`. */
10
+ function FormSubmitFooter({ label, onPress, submitting, disabled, radius, paddingHorizontal, backgroundColor, buttonBackgroundColor, buttonLabelColor, onLayout, }) {
11
+ const insets = (0, react_native_safe_area_context_1.useSafeAreaInsets)();
12
+ return (
13
+ // The spacer is the home-indicator clearance. `opened` equals that
14
+ // spacer, so once the keyboard is up the spacer sits inside the
15
+ // keyboard and the button rests on whatever height the keyboard is.
16
+ (0, jsx_runtime_1.jsx)(react_native_keyboard_controller_1.KeyboardStickyView, { offset: { closed: 0, opened: insets.bottom }, children: (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.shell, { backgroundColor }], children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { onLayout: onLayout, style: [styles.bar, { paddingHorizontal }], children: (0, jsx_runtime_1.jsx)(Button_1.Button, { backgroundColor: buttonBackgroundColor, disabled: disabled, label: label, labelColor: buttonLabelColor, loading: submitting, onPress: onPress, radius: radius }) }), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: { height: insets.bottom } })] }) }));
17
+ }
18
+ const styles = react_native_1.StyleSheet.create({
19
+ shell: {
20
+ zIndex: 2,
21
+ // Cast upward so the sticky footer separates from the scroll body.
22
+ shadowColor: "#000",
23
+ shadowOffset: { width: 0, height: -4 },
24
+ shadowOpacity: 0.08,
25
+ shadowRadius: 12,
26
+ elevation: 8,
27
+ },
28
+ bar: {
29
+ paddingVertical: 12,
30
+ },
31
+ });
32
+ //# sourceMappingURL=FormSubmitFooter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormSubmitFooter.js","sourceRoot":"","sources":["../../../src/components/Form/FormSubmitFooter.tsx"],"names":[],"mappings":";;AAOA,4CA+CC;;AAtDD,+CAAwE;AACxE,uFAAsE;AACtE,mFAAmE;AACnE,sCAAmC;AAGnC,6DAA6D;AAC7D,SAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,OAAO,EACP,UAAU,EACV,QAAQ,EACR,MAAM,EACN,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,QAAQ,GAaT;IACC,MAAM,MAAM,GAAG,IAAA,kDAAiB,GAAE,CAAC;IAEnC,OAAO;IACL,mEAAmE;IACnE,gEAAgE;IAChE,oEAAoE;IACpE,uBAAC,qDAAkB,IAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAC9D,wBAAC,mBAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,eAAe,EAAE,CAAC,aAC9C,uBAAC,mBAAI,IAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,iBAAiB,EAAE,CAAC,YAClE,uBAAC,eAAM,IACL,eAAe,EAAE,qBAAqB,EACtC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,gBAAgB,EAC5B,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GACd,GACG,EACP,uBAAC,mBAAI,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAI,IACrC,GACY,CACtB,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE;QACL,MAAM,EAAE,CAAC;QACT,mEAAmE;QACnE,WAAW,EAAE,MAAM;QACnB,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE;QACtC,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,CAAC;KACb;IACD,GAAG,EAAE;QACH,eAAe,EAAE,EAAE;KACpB;CACF,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const FORM_THEME_ROLES: {
2
+ readonly backgroundColor: "formBackground";
3
+ readonly footerBackgroundColor: "formFooterBackground";
4
+ readonly closeColor: "formClose";
5
+ };
6
+ export type FormThemeColorProp = keyof typeof FORM_THEME_ROLES;
7
+ //# sourceMappingURL=formThemeRoles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formThemeRoles.d.ts","sourceRoot":"","sources":["../../../src/components/Form/formThemeRoles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,gBAAgB,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FORM_THEME_ROLES = void 0;
4
+ exports.FORM_THEME_ROLES = {
5
+ backgroundColor: "formBackground",
6
+ footerBackgroundColor: "formFooterBackground",
7
+ closeColor: "formClose",
8
+ };
9
+ //# sourceMappingURL=formThemeRoles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formThemeRoles.js","sourceRoot":"","sources":["../../../src/components/Form/formThemeRoles.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG;IAC9B,eAAe,EAAE,gBAAgB;IACjC,qBAAqB,EAAE,sBAAsB;IAC7C,UAAU,EAAE,WAAW;CACf,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export { Form } from "./Form";
2
2
  export { FormCloseButton } from "./FormCloseButton";
3
+ export { FORM_THEME_ROLES, type FormThemeColorProp } from "./formThemeRoles";
3
4
  export type { FormProps } from "./types";
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Form/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Form/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FormCloseButton = exports.Form = void 0;
3
+ exports.FORM_THEME_ROLES = exports.FormCloseButton = exports.Form = void 0;
4
4
  var Form_1 = require("./Form");
5
5
  Object.defineProperty(exports, "Form", { enumerable: true, get: function () { return Form_1.Form; } });
6
6
  var FormCloseButton_1 = require("./FormCloseButton");
7
7
  Object.defineProperty(exports, "FormCloseButton", { enumerable: true, get: function () { return FormCloseButton_1.FormCloseButton; } });
8
+ var formThemeRoles_1 = require("./formThemeRoles");
9
+ Object.defineProperty(exports, "FORM_THEME_ROLES", { enumerable: true, get: function () { return formThemeRoles_1.FORM_THEME_ROLES; } });
8
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Form/index.ts"],"names":[],"mappings":";;;AAAA,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,qDAAoD;AAA3C,kHAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Form/index.ts"],"names":[],"mappings":";;;AAAA,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,mDAA6E;AAApE,kHAAA,gBAAgB,OAAA"}
@@ -1,10 +1,12 @@
1
1
  import type { ReactNode } from "react";
2
2
  import type { ButtonRadius } from "../Button/buttonRadius";
3
3
  import type { FieldError } from "../ErrorBanner/types";
4
+ /**
5
+ * Set the title and close button in the screen's stack options
6
+ * (`title`, `headerLeft`), not here.
7
+ */
4
8
  export type FormProps = {
5
- title: string;
6
9
  children: ReactNode;
7
- onClose: () => void;
8
10
  onSubmit: () => void;
9
11
  /**
10
12
  * Field errors for the screen banner. Empty hides it.
@@ -15,19 +17,21 @@ export type FormProps = {
15
17
  submitLabel?: string;
16
18
  submitting?: boolean;
17
19
  submitDisabled?: boolean;
18
- /** App-specific Cancel control. Defaults to a plain text Cancel. */
19
- closeButton?: ReactNode;
20
20
  submitRadius?: ButtonRadius;
21
21
  /**
22
- * Horizontal inset for header, scroll content, and footer.
23
- * Defaults to 16. Pass a value to override.
22
+ * Native header height, from `useHeaderHeight()` in
23
+ * `expo-router/react-navigation`. Used to scroll an error's field clear of
24
+ * the header. Defaults to the status bar plus a standard bar.
25
+ */
26
+ headerHeight?: number;
27
+ /**
28
+ * Horizontal inset for the scroll content and footer.
29
+ * Defaults to theme `spacing.screen`. Pass a value to override.
24
30
  */
25
31
  paddingHorizontal?: number;
26
- /** Defaults to theme role `background`. */
32
+ /** Defaults to theme role `formBackground`. */
27
33
  backgroundColor?: string;
28
- /** Defaults to theme role `text`. */
29
- titleColor?: string;
30
- /** Defaults to theme role `surface`. Footer ground. */
34
+ /** Defaults to theme role `formFooterBackground`. Footer ground. */
31
35
  footerBackgroundColor?: string;
32
36
  /** Defaults to theme role `buttonBackground`. */
33
37
  buttonBackgroundColor?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Form/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,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,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,oEAAoE;IACpE,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iDAAiD;IACjD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Form/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;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,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;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oEAAoE;IACpE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iDAAiD;IACjD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { FormSheetProps } from "./types";
2
+ /**
3
+ * A form in a draggable sheet over a full-screen background, usually a map.
4
+ * Three stops: the handle and title, half the screen, and up to the native
5
+ * header. The submit button stays above the keyboard. Set the close button
6
+ * in the screen's stack options, with `headerTransparent: true` so the
7
+ * background shows behind the header.
8
+ */
9
+ export declare function FormSheet({ title, children, background, onSubmit, errors, submitLabel, submitting, submitDisabled, submitRadius, initialIndex, headerHeight: headerHeightProp, paddingHorizontal: paddingHorizontalProp, backgroundColor: backgroundColorProp, titleColor: titleColorProp, footerBackgroundColor: footerBackgroundColorProp, handleColor: handleColorProp, buttonBackgroundColor, buttonLabelColor, }: FormSheetProps): import("react").JSX.Element;
10
+ //# sourceMappingURL=FormSheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormSheet.d.ts","sourceRoot":"","sources":["../../../src/components/FormSheet/FormSheet.tsx"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAkB,cAAc,EAAsB,MAAM,SAAS,CAAC;AAalF;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,MAAW,EACX,WAAoB,EACpB,UAAkB,EAClB,cAAsB,EACtB,YAAmB,EACnB,YAAgB,EAChB,YAAY,EAAE,gBAAgB,EAC9B,iBAAiB,EAAE,qBAAqB,EACxC,eAAe,EAAE,mBAAmB,EACpC,UAAU,EAAE,cAAc,EAC1B,qBAAqB,EAAE,yBAAyB,EAChD,WAAW,EAAE,eAAe,EAC5B,qBAAqB,EACrB,gBAAgB,GACjB,EAAE,cAAc,+BAgLhB"}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.FormSheet = FormSheet;
37
+ const jsx_runtime_1 = require("react/jsx-runtime");
38
+ const bottom_sheet_1 = __importStar(require("@gorhom/bottom-sheet"));
39
+ const react_1 = require("react");
40
+ const react_native_1 = require("react-native");
41
+ const react_native_keyboard_controller_1 = require("react-native-keyboard-controller");
42
+ const react_native_safe_area_context_1 = require("react-native-safe-area-context");
43
+ const headerInset_1 = require("../../layout/headerInset");
44
+ const sheet_1 = require("../../layout/sheet");
45
+ const useThemeSpacing_1 = require("../../theme/useThemeSpacing");
46
+ const ErrorBanner_1 = require("../ErrorBanner");
47
+ const useResolvedFieldColor_1 = require("../Field/useResolvedFieldColor");
48
+ const FormErrorBanner_1 = require("../Form/FormErrorBanner");
49
+ const FormSubmitFooter_1 = require("../Form/FormSubmitFooter");
50
+ const formSheetLayout_1 = require("./formSheetLayout");
51
+ const formSheetThemeRoles_1 = require("./formSheetThemeRoles");
52
+ const EXPANDED = 2;
53
+ function useMeasuredHeight(initial = 0) {
54
+ const [height, setHeight] = (0, react_1.useState)(initial);
55
+ const onLayout = (0, react_1.useCallback)((event) => {
56
+ const next = Math.round(event.nativeEvent.layout.height);
57
+ setHeight((current) => (current === next ? current : next));
58
+ }, []);
59
+ return [height, onLayout];
60
+ }
61
+ /**
62
+ * A form in a draggable sheet over a full-screen background, usually a map.
63
+ * Three stops: the handle and title, half the screen, and up to the native
64
+ * header. The submit button stays above the keyboard. Set the close button
65
+ * in the screen's stack options, with `headerTransparent: true` so the
66
+ * background shows behind the header.
67
+ */
68
+ function FormSheet({ title, children, background, onSubmit, errors = [], submitLabel = "Save", submitting = false, submitDisabled = false, submitRadius = "lg", initialIndex = 0, headerHeight: headerHeightProp, paddingHorizontal: paddingHorizontalProp, backgroundColor: backgroundColorProp, titleColor: titleColorProp, footerBackgroundColor: footerBackgroundColorProp, handleColor: handleColorProp, buttonBackgroundColor, buttonLabelColor, }) {
69
+ const insets = (0, react_native_safe_area_context_1.useSafeAreaInsets)();
70
+ const spacing = (0, useThemeSpacing_1.useThemeSpacing)();
71
+ const paddingHorizontal = paddingHorizontalProp ?? spacing.screen;
72
+ const { height: windowHeight } = (0, react_native_1.useWindowDimensions)();
73
+ const backgroundColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(backgroundColorProp, formSheetThemeRoles_1.FORM_SHEET_THEME_ROLES.backgroundColor);
74
+ const titleColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(titleColorProp, formSheetThemeRoles_1.FORM_SHEET_THEME_ROLES.titleColor);
75
+ const footerBackground = (0, useResolvedFieldColor_1.useResolvedFieldColor)(footerBackgroundColorProp, formSheetThemeRoles_1.FORM_SHEET_THEME_ROLES.footerBackgroundColor);
76
+ const handleColor = (0, useResolvedFieldColor_1.useResolvedFieldColor)(handleColorProp, formSheetThemeRoles_1.FORM_SHEET_THEME_ROLES.handleColor);
77
+ const keyboardHeight = (0, react_native_keyboard_controller_1.useKeyboardState)((state) => state.height);
78
+ const keyboardLift = Math.max(0, keyboardHeight - insets.bottom);
79
+ const [footerHeight, onFooterLayout] = useMeasuredHeight();
80
+ const [handleHeight, onHandleLayout] = useMeasuredHeight((0, formSheetLayout_1.formSheetHandleFallback)(Boolean(title)));
81
+ const [sheetAreaHeight, onSheetAreaLayout] = useMeasuredHeight();
82
+ const [snapIndex, setSnapIndex] = (0, react_1.useState)(initialIndex);
83
+ // Estimates until the first layout pass reports real sizes.
84
+ const resolvedHeader = headerHeightProp ?? (0, headerInset_1.estimateHeaderHeight)(react_native_1.Platform.OS, insets.top);
85
+ const resolvedFooter = footerHeight || insets.bottom + 76;
86
+ const resolvedArea = sheetAreaHeight || Math.max(0, windowHeight - resolvedFooter - keyboardLift);
87
+ const snapPoints = (0, react_1.useMemo)(() => (0, formSheetLayout_1.formSheetSnapPoints)({
88
+ windowHeight,
89
+ sheetAreaHeight: resolvedArea,
90
+ headerHeight: resolvedHeader,
91
+ handleHeight,
92
+ }), [handleHeight, resolvedArea, resolvedHeader, windowHeight]);
93
+ const sheetRef = (0, react_1.useRef)(null);
94
+ const scrollRef = (0, react_1.useRef)(null);
95
+ const contentRef = (0, react_1.useRef)(null);
96
+ const bannerRawHeightRef = (0, react_1.useRef)(0);
97
+ const bannerOverlapRef = (0, react_1.useRef)(0);
98
+ const scrollTopRef = (0, react_1.useRef)(0);
99
+ scrollTopRef.current = resolvedHeader + handleHeight;
100
+ const banner = (0, ErrorBanner_1.useErrorBanner)(errors);
101
+ // A banner row expands the sheet first, so the field has room to show.
102
+ const expandForJump = (0, react_1.useCallback)(() => {
103
+ sheetRef.current?.snapToIndex(EXPANDED);
104
+ bannerOverlapRef.current = (0, formSheetLayout_1.sheetBannerOverlap)(bannerRawHeightRef.current, scrollTopRef.current);
105
+ }, []);
106
+ const renderHandle = (0, react_1.useCallback)((props) => ((0, jsx_runtime_1.jsxs)(react_native_1.View, { onLayout: onHandleLayout, style: [styles.handle, { backgroundColor, paddingHorizontal }], children: [(0, jsx_runtime_1.jsx)(bottom_sheet_1.BottomSheetHandle, { ...props, indicatorStyle: { backgroundColor: handleColor } }), title ? ((0, jsx_runtime_1.jsx)(react_native_1.Text, { accessibilityRole: "header", numberOfLines: 1, style: [styles.title, { color: titleColor }], children: title })) : null] })), [backgroundColor, handleColor, onHandleLayout, paddingHorizontal, title, titleColor]);
107
+ const inset = {
108
+ top: resolvedHeader,
109
+ bottom: resolvedFooter + snapPoints[snapIndex],
110
+ bottomAtHalf: resolvedFooter + snapPoints[1],
111
+ };
112
+ return ((0, jsx_runtime_1.jsx)(ErrorBanner_1.ErrorBannerProvider, { bannerHeightRef: bannerOverlapRef, errors: errors, measureRef: contentRef, onBeforeJump: expandForJump, onDismiss: banner.dismiss, scrollRef: scrollRef, children: (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.screen, { backgroundColor }], children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { pointerEvents: "box-none", style: react_native_1.StyleSheet.absoluteFill, children: background(inset) }), (0, jsx_runtime_1.jsx)(react_native_1.View, { onLayout: onSheetAreaLayout, pointerEvents: "box-none", style: [styles.sheetArea, { marginBottom: keyboardLift }], children: (0, jsx_runtime_1.jsx)(bottom_sheet_1.default, { ref: sheetRef, animateOnMount: false, index: initialIndex, backgroundStyle: [styles.sheet, { backgroundColor }], enableContentPanningGesture: true, enableDynamicSizing: false, keyboardBehavior: "extend", enablePanDownToClose: false, handleComponent: renderHandle, onChange: (next) => {
113
+ // -1 is closed; the sheet only has three stops.
114
+ if (next === 0 || next === 1 || next === 2) {
115
+ setSnapIndex(next);
116
+ }
117
+ }, snapPoints: snapPoints, children: (0, jsx_runtime_1.jsx)(bottom_sheet_1.BottomSheetScrollView, { ref: scrollRef, contentContainerStyle: [styles.content, { paddingHorizontal }], keyboardShouldPersistTaps: "handled", children: (0, jsx_runtime_1.jsx)(react_native_1.View, { ref: contentRef, collapsable: false, style: styles.contentTop, children: children }) }) }) }), (0, jsx_runtime_1.jsx)(FormSubmitFooter_1.FormSubmitFooter, { backgroundColor: footerBackground, buttonBackgroundColor: buttonBackgroundColor, buttonLabelColor: buttonLabelColor, disabled: submitDisabled, label: submitLabel, onLayout: onFooterLayout, onPress: () => {
118
+ banner.present();
119
+ onSubmit();
120
+ }, paddingHorizontal: paddingHorizontal, radius: submitRadius, submitting: submitting }), (0, jsx_runtime_1.jsx)(FormErrorBanner_1.FormErrorBanner, { androidTop: resolvedHeader, errors: errors, onDismiss: banner.dismiss, onHeightChange: (height) => {
121
+ bannerRawHeightRef.current = height;
122
+ }, open: banner.open })] }) }));
123
+ }
124
+ const styles = react_native_1.StyleSheet.create({
125
+ screen: {
126
+ flex: 1,
127
+ },
128
+ sheetArea: {
129
+ flex: 1,
130
+ },
131
+ sheet: {
132
+ borderTopLeftRadius: sheet_1.SHEET_TOP_RADIUS,
133
+ borderTopRightRadius: sheet_1.SHEET_TOP_RADIUS,
134
+ },
135
+ handle: {
136
+ alignItems: "center",
137
+ paddingBottom: 12,
138
+ borderTopLeftRadius: sheet_1.SHEET_TOP_RADIUS,
139
+ borderTopRightRadius: sheet_1.SHEET_TOP_RADIUS,
140
+ },
141
+ title: {
142
+ fontSize: 17,
143
+ fontWeight: "600",
144
+ textAlign: "center",
145
+ },
146
+ content: {
147
+ paddingBottom: 24,
148
+ },
149
+ contentTop: {
150
+ paddingTop: 8,
151
+ },
152
+ });
153
+ //# sourceMappingURL=FormSheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormSheet.js","sourceRoot":"","sources":["../../../src/components/FormSheet/FormSheet.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export type FormSheetSnapInput = {
2
+ /** Full window height, used to place the middle stop at half the screen. */
3
+ windowHeight: number;
4
+ /** Height of the sheet's parent: the screen above the footer and keyboard. */
5
+ sheetAreaHeight: number;
6
+ /** Header block the expanded sheet stops beneath. */
7
+ headerHeight: number;
8
+ /** Collapsed sheet: drag handle plus title. */
9
+ handleHeight: number;
10
+ };
11
+ /**
12
+ * Three sheet heights, shortest first. Minimum is the handle. Middle puts the
13
+ * sheet top at half the screen. Maximum stops at the bottom of the header.
14
+ * Pure so it can be unit-tested.
15
+ */
16
+ export declare function formSheetSnapPoints({ windowHeight, sheetAreaHeight, headerHeight, handleHeight, }: FormSheetSnapInput): [number, number, number];
17
+ /**
18
+ * How far the error banner reaches into the expanded sheet's scroll area,
19
+ * whose top sits `scrollTop` below the screen top (header plus handle).
20
+ * A banner row scrolls its field this much further so it is not hidden.
21
+ */
22
+ export declare function sheetBannerOverlap(bannerHeight: number, scrollTop: number): number;
23
+ /** Handle heights before the first layout pass measures the real one. */
24
+ export declare const FORM_SHEET_HANDLE_FALLBACK: {
25
+ /** Drag indicator and padding. */
26
+ readonly indicatorOnly: 36;
27
+ /** Indicator plus one title line. */
28
+ readonly withTitle: 64;
29
+ };
30
+ /** The collapsed stop is the handle, so it must fit the title when there is one. */
31
+ export declare function formSheetHandleFallback(hasTitle: boolean): number;
32
+ //# sourceMappingURL=formSheetLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formSheetLayout.d.ts","sourceRoot":"","sources":["../../../src/components/FormSheet/formSheetLayout.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,4EAA4E;IAC5E,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,eAAe,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,YAAY,GACb,EAAE,kBAAkB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAS/C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAElF;AAED,yEAAyE;AACzE,eAAO,MAAM,0BAA0B;IACrC,kCAAkC;;IAElC,qCAAqC;;CAE7B,CAAC;AAEX,oFAAoF;AACpF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAIjE"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FORM_SHEET_HANDLE_FALLBACK = void 0;
4
+ exports.formSheetSnapPoints = formSheetSnapPoints;
5
+ exports.sheetBannerOverlap = sheetBannerOverlap;
6
+ exports.formSheetHandleFallback = formSheetHandleFallback;
7
+ /**
8
+ * Three sheet heights, shortest first. Minimum is the handle. Middle puts the
9
+ * sheet top at half the screen. Maximum stops at the bottom of the header.
10
+ * Pure so it can be unit-tested.
11
+ */
12
+ function formSheetSnapPoints({ windowHeight, sheetAreaHeight, headerHeight, handleHeight, }) {
13
+ const collapsed = Math.max(1, Math.round(handleHeight));
14
+ const full = Math.max(collapsed, Math.round(sheetAreaHeight - headerHeight));
15
+ const halfRaw = Math.round(sheetAreaHeight - windowHeight / 2);
16
+ // The sheet needs three distinct, increasing stops even when there is
17
+ // almost no room, so nudge each one above the last.
18
+ const half = Math.max(collapsed + 1, Math.min(full, halfRaw));
19
+ const top = Math.max(half + 1, full);
20
+ return [collapsed, half, top];
21
+ }
22
+ /**
23
+ * How far the error banner reaches into the expanded sheet's scroll area,
24
+ * whose top sits `scrollTop` below the screen top (header plus handle).
25
+ * A banner row scrolls its field this much further so it is not hidden.
26
+ */
27
+ function sheetBannerOverlap(bannerHeight, scrollTop) {
28
+ return Math.max(0, bannerHeight - scrollTop);
29
+ }
30
+ /** Handle heights before the first layout pass measures the real one. */
31
+ exports.FORM_SHEET_HANDLE_FALLBACK = {
32
+ /** Drag indicator and padding. */
33
+ indicatorOnly: 36,
34
+ /** Indicator plus one title line. */
35
+ withTitle: 64,
36
+ };
37
+ /** The collapsed stop is the handle, so it must fit the title when there is one. */
38
+ function formSheetHandleFallback(hasTitle) {
39
+ return hasTitle
40
+ ? exports.FORM_SHEET_HANDLE_FALLBACK.withTitle
41
+ : exports.FORM_SHEET_HANDLE_FALLBACK.indicatorOnly;
42
+ }
43
+ //# sourceMappingURL=formSheetLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formSheetLayout.js","sourceRoot":"","sources":["../../../src/components/FormSheet/formSheetLayout.ts"],"names":[],"mappings":";;;AAgBA,kDAcC;AAOD,gDAEC;AAWD,0DAIC;AA3CD;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,EAClC,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,YAAY,GACO;IACnB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;IAC/D,sEAAsE;IACtE,oDAAoD;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,YAAoB,EAAE,SAAiB;IACxE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,yEAAyE;AAC5D,QAAA,0BAA0B,GAAG;IACxC,kCAAkC;IAClC,aAAa,EAAE,EAAE;IACjB,qCAAqC;IACrC,SAAS,EAAE,EAAE;CACL,CAAC;AAEX,oFAAoF;AACpF,SAAgB,uBAAuB,CAAC,QAAiB;IACvD,OAAO,QAAQ;QACb,CAAC,CAAC,kCAA0B,CAAC,SAAS;QACtC,CAAC,CAAC,kCAA0B,CAAC,aAAa,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare const FORM_SHEET_THEME_ROLES: {
2
+ readonly backgroundColor: "formSheetBackground";
3
+ readonly titleColor: "formSheetTitle";
4
+ readonly footerBackgroundColor: "formSheetFooterBackground";
5
+ readonly handleColor: "formSheetHandle";
6
+ };
7
+ export type FormSheetThemeColorProp = keyof typeof FORM_SHEET_THEME_ROLES;
8
+ //# sourceMappingURL=formSheetThemeRoles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formSheetThemeRoles.d.ts","sourceRoot":"","sources":["../../../src/components/FormSheet/formSheetThemeRoles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB;;;;;CAKzB,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,MAAM,OAAO,sBAAsB,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FORM_SHEET_THEME_ROLES = void 0;
4
+ exports.FORM_SHEET_THEME_ROLES = {
5
+ backgroundColor: "formSheetBackground",
6
+ titleColor: "formSheetTitle",
7
+ footerBackgroundColor: "formSheetFooterBackground",
8
+ handleColor: "formSheetHandle",
9
+ };
10
+ //# sourceMappingURL=formSheetThemeRoles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formSheetThemeRoles.js","sourceRoot":"","sources":["../../../src/components/FormSheet/formSheetThemeRoles.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG;IACpC,eAAe,EAAE,qBAAqB;IACtC,UAAU,EAAE,gBAAgB;IAC5B,qBAAqB,EAAE,2BAA2B;IAClD,WAAW,EAAE,iBAAiB;CACtB,CAAC"}