@multiplatform.one/forms 7.40.0 → 7.42.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 (320) hide show
  1. package/dist/cjs/AdaptivePopup/index.native.js +1 -1
  2. package/dist/cjs/AdaptivePopup/index.native.js.map +1 -1
  3. package/dist/cjs/Button/index.native.js +1 -1
  4. package/dist/cjs/Button/index.native.js.map +1 -1
  5. package/dist/cjs/Chip/index.native.js.map +1 -1
  6. package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js +1 -1
  7. package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
  8. package/dist/cjs/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
  9. package/dist/cjs/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
  10. package/dist/cjs/ContextualSaveBar/index.native.js +3 -3
  11. package/dist/cjs/ContextualSaveBar/index.native.js.map +1 -1
  12. package/dist/cjs/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
  13. package/dist/cjs/ControlGroup/index.native.js +1 -1
  14. package/dist/cjs/ControlGroup/index.native.js.map +1 -1
  15. package/dist/cjs/DescriptionList/index.native.js +2 -2
  16. package/dist/cjs/DescriptionList/index.native.js.map +1 -1
  17. package/dist/cjs/ErrorSummary.native.js.map +1 -1
  18. package/dist/cjs/FieldDisplay/editMode.native.js.map +1 -1
  19. package/dist/cjs/FieldDisplay/formatters.native.js.map +1 -1
  20. package/dist/cjs/FieldDisplay/index.native.js +1 -1
  21. package/dist/cjs/FieldDisplay/index.native.js.map +1 -1
  22. package/dist/cjs/FieldGroup.native.js.map +1 -1
  23. package/dist/cjs/FloatingPanel/nestedAction.native.js.map +1 -1
  24. package/dist/cjs/FloatingPanel/pointAnchor.native.js.map +1 -1
  25. package/dist/cjs/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  26. package/dist/cjs/Form/index.cjs +25 -22
  27. package/dist/cjs/Form/index.native.js +28 -25
  28. package/dist/cjs/Form/index.native.js.map +1 -1
  29. package/dist/cjs/Form/submissionController.native.js.map +1 -1
  30. package/dist/cjs/Form/validateOn.native.js.map +1 -1
  31. package/dist/cjs/FormGrid.native.js.map +1 -1
  32. package/dist/cjs/FormSection.native.js.map +1 -1
  33. package/dist/cjs/InputParts/index.cjs +16 -7
  34. package/dist/cjs/InputParts/index.native.js +16 -7
  35. package/dist/cjs/InputParts/index.native.js.map +1 -1
  36. package/dist/cjs/Label/index.native.js.map +1 -1
  37. package/dist/cjs/MediaPicker/base64.native.js.map +1 -1
  38. package/dist/cjs/MediaPicker/payload.native.js.map +1 -1
  39. package/dist/cjs/MediaPicker/types.native.js.map +1 -1
  40. package/dist/cjs/MediaPicker/useMediaPicker.native.js.map +1 -1
  41. package/dist/cjs/Skeleton/index.native.js.map +1 -1
  42. package/dist/cjs/Spinner/SpinnerGlyph.native.js.map +1 -1
  43. package/dist/cjs/Spinner/spinnerSize.native.js.map +1 -1
  44. package/dist/cjs/Table/index.native.js.map +1 -1
  45. package/dist/cjs/Wheel/haptic.native.js.map +1 -1
  46. package/dist/cjs/Wheel/index.native.js.map +1 -1
  47. package/dist/cjs/Wheel/wheelShared.native.js.map +1 -1
  48. package/dist/cjs/actionLabel.native.js.map +1 -1
  49. package/dist/cjs/fieldDefaults.native.js.map +1 -1
  50. package/dist/cjs/fieldLayout.native.js +1 -1
  51. package/dist/cjs/fieldLayout.native.js.map +1 -1
  52. package/dist/cjs/fields/Barcode/BarcodePreview.native.js.map +1 -1
  53. package/dist/cjs/fields/Barcode/BarcodeScanner.native.js +1 -1
  54. package/dist/cjs/fields/Barcode/code128.native.js.map +1 -1
  55. package/dist/cjs/fields/Barcode/index.native.js +2 -2
  56. package/dist/cjs/fields/Barcode/index.native.js.map +1 -1
  57. package/dist/cjs/fields/Barcode/qr.native.js.map +1 -1
  58. package/dist/cjs/fields/Barcode/scannerTypes.native.js.map +1 -1
  59. package/dist/cjs/fields/Checkbox/Checkbox.native.js +1 -1
  60. package/dist/cjs/fields/Checkbox/Checkbox.native.js.map +1 -1
  61. package/dist/cjs/fields/Checkbox/CheckboxBox.native.js.map +1 -1
  62. package/dist/cjs/fields/Checkbox/CheckboxCard.native.js.map +1 -1
  63. package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
  64. package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js +1 -1
  65. package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
  66. package/dist/cjs/fields/Checkbox/checkboxGroupContext.native.js.map +1 -1
  67. package/dist/cjs/fields/Checkbox/index.native.js.map +1 -1
  68. package/dist/cjs/fields/ColorPicker/index.native.js +3 -3
  69. package/dist/cjs/fields/ColorPicker/index.native.js.map +1 -1
  70. package/dist/cjs/fields/ColorPicker/parts.native.js +2 -2
  71. package/dist/cjs/fields/ColorPicker/parts.native.js.map +1 -1
  72. package/dist/cjs/fields/Combobox/authorOptions.native.js.map +1 -1
  73. package/dist/cjs/fields/Combobox/index.native.js +6 -6
  74. package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
  75. package/dist/cjs/fields/DatePicker/Calendar.native.js.map +1 -1
  76. package/dist/cjs/fields/DatePicker/DateRangePicker.native.js +2 -2
  77. package/dist/cjs/fields/DatePicker/DateRangePicker.native.js.map +1 -1
  78. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js +3 -3
  79. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
  80. package/dist/cjs/fields/DatePicker/DatetimePicker.native.js +2 -2
  81. package/dist/cjs/fields/DatePicker/MonthPicker.native.js +2 -2
  82. package/dist/cjs/fields/DatePicker/MonthPicker.native.js.map +1 -1
  83. package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js +2 -2
  84. package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
  85. package/dist/cjs/fields/DatePicker/catalog.native.js +2 -2
  86. package/dist/cjs/fields/DatePicker/catalog.native.js.map +1 -1
  87. package/dist/cjs/fields/DatePicker/fieldValueSync.native.js.map +1 -1
  88. package/dist/cjs/fields/DatePicker/index.native.js +2 -2
  89. package/dist/cjs/fields/DatePicker/parts.native.js +2 -2
  90. package/dist/cjs/fields/DatePicker/parts.native.js.map +1 -1
  91. package/dist/cjs/fields/DatePicker/utils.native.js.map +1 -1
  92. package/dist/cjs/fields/Duration/durationMath.native.js.map +1 -1
  93. package/dist/cjs/fields/Duration/index.native.js +3 -3
  94. package/dist/cjs/fields/Duration/index.native.js.map +1 -1
  95. package/dist/cjs/fields/FileUpload/filePickerTypes.native.js.map +1 -1
  96. package/dist/cjs/fields/FileUpload/index.native.js +2 -2
  97. package/dist/cjs/fields/FileUpload/index.native.js.map +1 -1
  98. package/dist/cjs/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
  99. package/dist/cjs/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
  100. package/dist/cjs/fields/Geolocation/geoValue.native.js.map +1 -1
  101. package/dist/cjs/fields/Geolocation/geocoder.native.js.map +1 -1
  102. package/dist/cjs/fields/Geolocation/geocoderContext.native.js.map +1 -1
  103. package/dist/cjs/fields/Geolocation/index.native.js +5 -5
  104. package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
  105. package/dist/cjs/fields/Geolocation/mapMath.native.js.map +1 -1
  106. package/dist/cjs/fields/Geolocation/mapTypes.native.js.map +1 -1
  107. package/dist/cjs/fields/Geolocation/nativeSearchFocus.native.js.map +1 -1
  108. package/dist/cjs/fields/Geolocation/photonGeocoder.native.js.map +1 -1
  109. package/dist/cjs/fields/Icon/drawnSet.native.js.map +1 -1
  110. package/dist/cjs/fields/Icon/index.native.js +3 -3
  111. package/dist/cjs/fields/Icon/index.native.js.map +1 -1
  112. package/dist/cjs/fields/ImageField/index.native.js +2 -2
  113. package/dist/cjs/fields/ImageField/index.native.js.map +1 -1
  114. package/dist/cjs/fields/Input/index.cjs +40 -23
  115. package/dist/cjs/fields/Input/index.native.js +44 -27
  116. package/dist/cjs/fields/Input/index.native.js.map +1 -1
  117. package/dist/cjs/fields/MentionInput/index.native.js +3 -3
  118. package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
  119. package/dist/cjs/fields/OTPInput/index.native.js +3 -3
  120. package/dist/cjs/fields/OTPInput/index.native.js.map +1 -1
  121. package/dist/cjs/fields/OTPInput/otpCellCss.native.js.map +1 -1
  122. package/dist/cjs/fields/PhoneInput/dialCodes.native.js.map +1 -1
  123. package/dist/cjs/fields/PhoneInput/index.native.js +3 -3
  124. package/dist/cjs/fields/PhoneInput/index.native.js.map +1 -1
  125. package/dist/cjs/fields/PhoneInput/phone.native.js.map +1 -1
  126. package/dist/cjs/fields/PhoneInput/regionNames.native.js.map +1 -1
  127. package/dist/cjs/fields/Progress/index.native.js +1 -1
  128. package/dist/cjs/fields/Progress/index.native.js.map +1 -1
  129. package/dist/cjs/fields/RadioGroup/index.native.js +1 -1
  130. package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
  131. package/dist/cjs/fields/Rating/index.native.js +1 -1
  132. package/dist/cjs/fields/Rating/index.native.js.map +1 -1
  133. package/dist/cjs/fields/Rating/ratingMath.native.js.map +1 -1
  134. package/dist/cjs/fields/Rating/types.native.js.map +1 -1
  135. package/dist/cjs/fields/SearchInput/index.native.js +2 -2
  136. package/dist/cjs/fields/SearchInput/index.native.js.map +1 -1
  137. package/dist/cjs/fields/Select/index.native.js +4 -4
  138. package/dist/cjs/fields/Select/index.native.js.map +1 -1
  139. package/dist/cjs/fields/Signature/index.native.js +2 -2
  140. package/dist/cjs/fields/Signature/index.native.js.map +1 -1
  141. package/dist/cjs/fields/Slider/index.native.js +1 -1
  142. package/dist/cjs/fields/Slider/index.native.js.map +1 -1
  143. package/dist/cjs/fields/Slider/jumpMotion.native.js.map +1 -1
  144. package/dist/cjs/fields/Stepper/index.native.js +2 -2
  145. package/dist/cjs/fields/Stepper/index.native.js.map +1 -1
  146. package/dist/cjs/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
  147. package/dist/cjs/fields/Switch/footprint.native.js.map +1 -1
  148. package/dist/cjs/fields/Switch/index.native.js +2 -2
  149. package/dist/cjs/fields/Switch/index.native.js.map +1 -1
  150. package/dist/cjs/fields/TextArea/index.native.js +2 -2
  151. package/dist/cjs/fields/TextArea/index.native.js.map +1 -1
  152. package/dist/cjs/fields/TimePicker/catalog.native.js +3 -3
  153. package/dist/cjs/fields/TimePicker/catalog.native.js.map +1 -1
  154. package/dist/cjs/fields/TimePicker/index.native.js +2 -2
  155. package/dist/cjs/fields/TimePicker/parts.native.js +1 -1
  156. package/dist/cjs/fields/TimePicker/parts.native.js.map +1 -1
  157. package/dist/cjs/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
  158. package/dist/cjs/fields/TimeRangeScrubber/index.native.js +2 -2
  159. package/dist/cjs/fields/TimeRangeScrubber/index.native.js.map +1 -1
  160. package/dist/cjs/fields/ToggleGroup/index.native.js +1 -1
  161. package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
  162. package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
  163. package/dist/cjs/fields/nativeDateTime/dateTimePickerLoader.native.js.map +1 -1
  164. package/dist/cjs/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -1
  165. package/dist/cjs/fields/nativeSelect.native.js.map +1 -1
  166. package/dist/cjs/fields/selectedOrder.native.js.map +1 -1
  167. package/dist/cjs/formSpacing.native.js.map +1 -1
  168. package/dist/cjs/hooks/useFocusManagement.native.js.map +1 -1
  169. package/dist/cjs/index.cjs +7 -0
  170. package/dist/cjs/index.native.js +50 -43
  171. package/dist/cjs/index.native.js.map +1 -1
  172. package/dist/cjs/keyboard/KeyboardDoneBar.cjs +30 -0
  173. package/dist/cjs/keyboard/KeyboardDoneBar.native.js +65 -0
  174. package/dist/cjs/keyboard/KeyboardDoneBar.native.js.map +1 -0
  175. package/dist/cjs/keyboard/chain.cjs +106 -0
  176. package/dist/cjs/keyboard/chain.native.js +203 -0
  177. package/dist/cjs/keyboard/chain.native.js.map +1 -0
  178. package/dist/cjs/keyboard/index.cjs +35 -0
  179. package/dist/cjs/keyboard/index.native.js +38 -0
  180. package/dist/cjs/keyboard/index.native.js.map +1 -0
  181. package/dist/cjs/keyboard/types.cjs +18 -0
  182. package/dist/cjs/keyboard/types.native.js +21 -0
  183. package/dist/cjs/keyboard/types.native.js.map +1 -0
  184. package/dist/cjs/keyboard/useKeyboardChain.cjs +33 -0
  185. package/dist/cjs/keyboard/useKeyboardChain.native.js +114 -0
  186. package/dist/cjs/keyboard/useKeyboardChain.native.js.map +1 -0
  187. package/dist/cjs/requiredMarking.native.js.map +1 -1
  188. package/dist/cjs/shared/TimeColumn.native.js +1 -1
  189. package/dist/cjs/shared/TimeColumn.native.js.map +1 -1
  190. package/dist/cjs/shared/capabilityPreflight.native.js.map +1 -1
  191. package/dist/cjs/shared/colorRamps.native.js.map +1 -1
  192. package/dist/cjs/shared/devWarn.native.js.map +1 -1
  193. package/dist/cjs/shared/floatingList.native.js +1 -1
  194. package/dist/cjs/shared/floatingList.native.js.map +1 -1
  195. package/dist/cjs/shared/focusManagement.native.js.map +1 -1
  196. package/dist/cjs/shared/groupContext.native.js.map +1 -1
  197. package/dist/cjs/shared/i18n.native.js.map +1 -1
  198. package/dist/cjs/shared/instantMotion.native.js.map +1 -1
  199. package/dist/cjs/shared/nativeA11y.native.js.map +1 -1
  200. package/dist/cjs/shared/panelPortal.native.js.map +1 -1
  201. package/dist/cjs/shared/pickerTriggerContract.native.js.map +1 -1
  202. package/dist/cjs/shared/pressSlopProps.native.js.map +1 -1
  203. package/dist/cjs/shared/t.native.js.map +1 -1
  204. package/dist/cjs/shared/tableCellContext.native.js.map +1 -1
  205. package/dist/cjs/shared/useDragScroll.native.js.map +1 -1
  206. package/dist/cjs/shared/useKeyboardInset.native.js.map +1 -1
  207. package/dist/cjs/shared/useSheetEscapeDismiss.native.js.map +1 -1
  208. package/dist/cjs/shared/useWheelIncrement.native.js.map +1 -1
  209. package/dist/cjs/shared/utils.native.js +1 -1
  210. package/dist/cjs/shared/utils.native.js.map +1 -1
  211. package/dist/cjs/shared/zIndex.native.js.map +1 -1
  212. package/dist/cjs/themedPrimitives.native.js.map +1 -1
  213. package/dist/cjs/types.native.js.map +1 -1
  214. package/dist/cjs/utils/LinkCell.native.js.map +1 -1
  215. package/dist/esm/Form/index.mjs +25 -22
  216. package/dist/esm/Form/index.mjs.map +1 -1
  217. package/dist/esm/Form/index.native.js +27 -24
  218. package/dist/esm/Form/index.native.js.map +1 -1
  219. package/dist/esm/InputParts/index.mjs +16 -7
  220. package/dist/esm/InputParts/index.mjs.map +1 -1
  221. package/dist/esm/InputParts/index.native.js +16 -7
  222. package/dist/esm/InputParts/index.native.js.map +1 -1
  223. package/dist/esm/fields/Input/index.mjs +41 -24
  224. package/dist/esm/fields/Input/index.mjs.map +1 -1
  225. package/dist/esm/fields/Input/index.native.js +43 -26
  226. package/dist/esm/fields/Input/index.native.js.map +1 -1
  227. package/dist/esm/index.mjs +2 -1
  228. package/dist/esm/index.mjs.map +1 -1
  229. package/dist/esm/index.native.js +2 -1
  230. package/dist/esm/index.native.js.map +1 -1
  231. package/dist/esm/keyboard/KeyboardDoneBar.mjs +5 -0
  232. package/dist/esm/keyboard/KeyboardDoneBar.mjs.map +1 -0
  233. package/dist/esm/keyboard/KeyboardDoneBar.native.js +37 -0
  234. package/dist/esm/keyboard/KeyboardDoneBar.native.js.map +1 -0
  235. package/dist/esm/keyboard/chain.mjs +78 -0
  236. package/dist/esm/keyboard/chain.mjs.map +1 -0
  237. package/dist/esm/keyboard/chain.native.js +172 -0
  238. package/dist/esm/keyboard/chain.native.js.map +1 -0
  239. package/dist/esm/keyboard/index.mjs +5 -0
  240. package/dist/esm/keyboard/index.mjs.map +1 -0
  241. package/dist/esm/keyboard/index.native.js +5 -0
  242. package/dist/esm/keyboard/index.native.js.map +1 -0
  243. package/dist/esm/keyboard/types.mjs +2 -0
  244. package/dist/esm/keyboard/types.mjs.map +1 -0
  245. package/dist/esm/keyboard/types.native.js +2 -0
  246. package/dist/esm/keyboard/types.native.js.map +1 -0
  247. package/dist/esm/keyboard/useKeyboardChain.mjs +8 -0
  248. package/dist/esm/keyboard/useKeyboardChain.mjs.map +1 -0
  249. package/dist/esm/keyboard/useKeyboardChain.native.js +86 -0
  250. package/dist/esm/keyboard/useKeyboardChain.native.js.map +1 -0
  251. package/dist/jsx/Form/index.mjs +25 -22
  252. package/dist/jsx/Form/index.mjs.map +1 -1
  253. package/dist/jsx/Form/index.native.js +27 -24
  254. package/dist/jsx/Form/index.native.js.map +1 -1
  255. package/dist/jsx/InputParts/index.mjs +16 -7
  256. package/dist/jsx/InputParts/index.mjs.map +1 -1
  257. package/dist/jsx/InputParts/index.native.js +16 -7
  258. package/dist/jsx/InputParts/index.native.js.map +1 -1
  259. package/dist/jsx/fields/Input/index.mjs +41 -24
  260. package/dist/jsx/fields/Input/index.mjs.map +1 -1
  261. package/dist/jsx/fields/Input/index.native.js +42 -25
  262. package/dist/jsx/fields/Input/index.native.js.map +1 -1
  263. package/dist/jsx/index.js +2 -1
  264. package/dist/jsx/index.js.map +1 -1
  265. package/dist/jsx/index.mjs +2 -1
  266. package/dist/jsx/index.mjs.map +1 -1
  267. package/dist/jsx/index.native.js +7 -0
  268. package/dist/jsx/index.native.js.map +1 -1
  269. package/dist/jsx/keyboard/KeyboardDoneBar.mjs +5 -0
  270. package/dist/jsx/keyboard/KeyboardDoneBar.mjs.map +1 -0
  271. package/dist/jsx/keyboard/KeyboardDoneBar.native.js +65 -0
  272. package/dist/jsx/keyboard/KeyboardDoneBar.native.js.map +1 -0
  273. package/dist/jsx/keyboard/chain.mjs +78 -0
  274. package/dist/jsx/keyboard/chain.mjs.map +1 -0
  275. package/dist/jsx/keyboard/chain.native.js +203 -0
  276. package/dist/jsx/keyboard/chain.native.js.map +1 -0
  277. package/dist/jsx/keyboard/index.mjs +5 -0
  278. package/dist/jsx/keyboard/index.mjs.map +1 -0
  279. package/dist/jsx/keyboard/index.native.js +38 -0
  280. package/dist/jsx/keyboard/index.native.js.map +1 -0
  281. package/dist/jsx/keyboard/types.mjs +2 -0
  282. package/dist/jsx/keyboard/types.mjs.map +1 -0
  283. package/dist/jsx/keyboard/types.native.js +21 -0
  284. package/dist/jsx/keyboard/types.native.js.map +1 -0
  285. package/dist/jsx/keyboard/useKeyboardChain.mjs +8 -0
  286. package/dist/jsx/keyboard/useKeyboardChain.mjs.map +1 -0
  287. package/dist/jsx/keyboard/useKeyboardChain.native.js +114 -0
  288. package/dist/jsx/keyboard/useKeyboardChain.native.js.map +1 -0
  289. package/package.json +8 -8
  290. package/src/Form/index.tsx +31 -26
  291. package/src/InputParts/index.tsx +20 -12
  292. package/src/fields/Input/index.tsx +53 -31
  293. package/src/index.ts +17 -0
  294. package/src/keyboard/KeyboardDoneBar.native.tsx +38 -0
  295. package/src/keyboard/KeyboardDoneBar.tsx +6 -0
  296. package/src/keyboard/chain.spec.ts +98 -0
  297. package/src/keyboard/chain.tsx +115 -0
  298. package/src/keyboard/index.ts +5 -0
  299. package/src/keyboard/types.ts +21 -0
  300. package/src/keyboard/useKeyboardChain.native.tsx +79 -0
  301. package/src/keyboard/useKeyboardChain.ts +6 -0
  302. package/types/Form/index.d.ts.map +1 -1
  303. package/types/InputParts/index.d.ts.map +1 -1
  304. package/types/fields/Input/index.d.ts.map +1 -1
  305. package/types/index.d.ts +2 -0
  306. package/types/index.d.ts.map +1 -1
  307. package/types/keyboard/KeyboardDoneBar.d.ts +4 -0
  308. package/types/keyboard/KeyboardDoneBar.d.ts.map +1 -0
  309. package/types/keyboard/KeyboardDoneBar.native.d.ts +8 -0
  310. package/types/keyboard/KeyboardDoneBar.native.d.ts.map +1 -0
  311. package/types/keyboard/chain.d.ts +48 -0
  312. package/types/keyboard/chain.d.ts.map +1 -0
  313. package/types/keyboard/index.d.ts +6 -0
  314. package/types/keyboard/index.d.ts.map +1 -0
  315. package/types/keyboard/types.d.ts +19 -0
  316. package/types/keyboard/types.d.ts.map +1 -0
  317. package/types/keyboard/useKeyboardChain.d.ts +4 -0
  318. package/types/keyboard/useKeyboardChain.d.ts.map +1 -0
  319. package/types/keyboard/useKeyboardChain.native.d.ts +3 -0
  320. package/types/keyboard/useKeyboardChain.native.d.ts.map +1 -0
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var chain_exports = {};
26
+ __export(chain_exports, {
27
+ KeyboardChain: () => KeyboardChain,
28
+ KeyboardChainContext: () => KeyboardChainContext,
29
+ KeyboardChainScope: () => KeyboardChainScope,
30
+ readingOrder: () => readingOrder
31
+ });
32
+ module.exports = __toCommonJS(chain_exports);
33
+ var import_jsx_runtime = require("react/jsx-runtime");
34
+ var import_react = require("react");
35
+ function _class_call_check(instance, Constructor) {
36
+ if (!(instance instanceof Constructor)) {
37
+ throw new TypeError("Cannot call a class as a function");
38
+ }
39
+ }
40
+ function _defineProperties(target, props) {
41
+ for (var i = 0; i < props.length; i++) {
42
+ var descriptor = props[i];
43
+ descriptor.enumerable = descriptor.enumerable || false;
44
+ descriptor.configurable = true;
45
+ if ("value" in descriptor) descriptor.writable = true;
46
+ Object.defineProperty(target, descriptor.key, descriptor);
47
+ }
48
+ }
49
+ function _create_class(Constructor, protoProps, staticProps) {
50
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
51
+ if (staticProps) _defineProperties(Constructor, staticProps);
52
+ return Constructor;
53
+ }
54
+ function _define_property(obj, key, value) {
55
+ if (key in obj) {
56
+ Object.defineProperty(obj, key, {
57
+ value,
58
+ enumerable: true,
59
+ configurable: true,
60
+ writable: true
61
+ });
62
+ } else {
63
+ obj[key] = value;
64
+ }
65
+ return obj;
66
+ }
67
+ function readingOrder(boxes) {
68
+ return boxes.filter(function (box) {
69
+ return box.width > 0 || box.height > 0;
70
+ }).sort(function (a, b) {
71
+ var sameRow = Math.abs(a.y - b.y) < Math.min(a.height, b.height) / 2;
72
+ return sameRow ? a.x - b.x : a.y - b.y;
73
+ }).map(function (box) {
74
+ return box.id;
75
+ });
76
+ }
77
+ var KeyboardChain = /* @__PURE__ */function () {
78
+ "use strict";
79
+
80
+ function KeyboardChain2() {
81
+ var _this = this;
82
+ _class_call_check(this, KeyboardChain2);
83
+ _define_property(this, "entries", /* @__PURE__ */new Map());
84
+ _define_property(this, "order", []);
85
+ _define_property(this, "listeners", /* @__PURE__ */new Set());
86
+ _define_property(this, "pending", false);
87
+ _define_property(this, "subscribe", function (listener) {
88
+ _this.listeners.add(listener);
89
+ return function () {
90
+ _this.listeners.delete(listener);
91
+ };
92
+ });
93
+ }
94
+ _create_class(KeyboardChain2, [{
95
+ key: "register",
96
+ value: function register(entry) {
97
+ var _this = this;
98
+ this.entries.set(entry.id, entry);
99
+ this.invalidate();
100
+ return function () {
101
+ _this.entries.delete(entry.id);
102
+ _this.invalidate();
103
+ };
104
+ }
105
+ }, {
106
+ /** A field that has not been measured yet reads as last, so it never claims "next" falsely. */
107
+ key: "isLast",
108
+ value: function isLast(id) {
109
+ var at = this.order.indexOf(id);
110
+ return at === -1 || at === this.order.length - 1;
111
+ }
112
+ }, {
113
+ key: "invalidate",
114
+ value: function invalidate() {
115
+ var _this = this;
116
+ if (this.pending) return;
117
+ this.pending = true;
118
+ void Promise.resolve().then(async function () {
119
+ _this.pending = false;
120
+ await _this.refresh();
121
+ });
122
+ }
123
+ }, {
124
+ /**
125
+ * Focus the field after `id`, or run onLast from the last one. Uses the
126
+ * order measured at layout, and measures first only for a field it has not
127
+ * placed yet.
128
+ */
129
+ key: "advance",
130
+ value: function advance(id, onLast) {
131
+ var _this = this;
132
+ if (!this.order.includes(id)) {
133
+ void this.refresh().then(function (order) {
134
+ return _this.step(order, id, onLast);
135
+ });
136
+ return;
137
+ }
138
+ this.step(this.order, id, onLast);
139
+ }
140
+ }, {
141
+ key: "step",
142
+ value: function step(order, id, onLast) {
143
+ var next = order[order.indexOf(id) + 1];
144
+ var entry = order.includes(id) && next ? this.entries.get(next) : void 0;
145
+ if (entry) entry.focus();else onLast();
146
+ }
147
+ }, {
148
+ key: "refresh",
149
+ value: async function refresh() {
150
+ var _this = this;
151
+ var boxes = await Promise.all([...this.entries.values()].map(function (entry) {
152
+ return new Promise(function (resolve) {
153
+ return entry.measure(resolve);
154
+ });
155
+ }));
156
+ var order = readingOrder(boxes.filter(function (box) {
157
+ return Boolean(box);
158
+ }));
159
+ var changed = order.length !== this.order.length || order.some(function (id, i) {
160
+ return id !== _this.order[i];
161
+ });
162
+ this.order = order;
163
+ var _iteratorNormalCompletion = true,
164
+ _didIteratorError = false,
165
+ _iteratorError = void 0;
166
+ if (changed) try {
167
+ for (var _iterator = this.listeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
168
+ var listener = _step.value;
169
+ listener();
170
+ }
171
+ } catch (err) {
172
+ _didIteratorError = true;
173
+ _iteratorError = err;
174
+ } finally {
175
+ try {
176
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
177
+ _iterator.return();
178
+ }
179
+ } finally {
180
+ if (_didIteratorError) {
181
+ throw _iteratorError;
182
+ }
183
+ }
184
+ }
185
+ return order;
186
+ }
187
+ }]);
188
+ return KeyboardChain2;
189
+ }();
190
+ var KeyboardChainContext = /* @__PURE__ */(0, import_react.createContext)(new KeyboardChain());
191
+ function KeyboardChainScope(param) {
192
+ var {
193
+ children
194
+ } = param;
195
+ var [chain] = (0, import_react.useState)(function () {
196
+ return new KeyboardChain();
197
+ });
198
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(KeyboardChainContext.Provider, {
199
+ value: chain,
200
+ children
201
+ });
202
+ }
203
+ //# sourceMappingURL=chain.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","chain_exports","KeyboardChain","KeyboardChainContext","KeyboardChainScope","readingOrder","module","exports","import_jsx_runtime","require","import_react","_class_call_check","instance","Constructor","TypeError","_defineProperties","props","i","length","descriptor","configurable","writable","_create_class","protoProps","staticProps","_define_property","obj","boxes","filter","box","width","height","sort","a","b","sameRow","Math","abs","y","min","x","map","id","KeyboardChain2","_this","Map"],"sources":["../../../src/keyboard/chain.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import { KeyboardChain, KeyboardChainContext, KeyboardChainScope, readingOrder } from "./chain.mjs";
2
+ import { KeyboardDoneBar } from "./KeyboardDoneBar.mjs";
3
+ import { useKeyboardChain } from "./useKeyboardChain.mjs";
4
+ export { KeyboardChain, KeyboardChainContext, KeyboardChainScope, KeyboardDoneBar, readingOrder, useKeyboardChain };
5
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["KeyboardChain","KeyboardChainContext","KeyboardChainScope","readingOrder","KeyboardDoneBar","useKeyboardChain"],"sources":["../../../src/keyboard/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,aAAA,EAAeC,oBAAA,EAAsBC,kBAAA,EAAoBC,YAAA,QAAoB;AAEtF,SAASC,eAAA,QAAuB;AAChC,SAASC,gBAAA,QAAwB","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var keyboard_exports = {};
26
+ __export(keyboard_exports, {
27
+ KeyboardChain: () => import_chain.KeyboardChain,
28
+ KeyboardChainContext: () => import_chain.KeyboardChainContext,
29
+ KeyboardChainScope: () => import_chain.KeyboardChainScope,
30
+ KeyboardDoneBar: () => import_KeyboardDoneBar.KeyboardDoneBar,
31
+ readingOrder: () => import_chain.readingOrder,
32
+ useKeyboardChain: () => import_useKeyboardChain.useKeyboardChain
33
+ });
34
+ module.exports = __toCommonJS(keyboard_exports);
35
+ var import_chain = require("./chain.native.js");
36
+ var import_KeyboardDoneBar = require("./KeyboardDoneBar.native.js");
37
+ var import_useKeyboardChain = require("./useKeyboardChain.native.js");
38
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor"],"sources":["../../../src/keyboard/index.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AAET,IAAAA,SAAS,GAAAC,MAAA,CAAAC,cAAuB;AAChC,IAAAC,gBAAS,GAAAF,MAAA,CAAAG,wBAAwB","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __copyProps = (to, from, except, desc) => {
8
+ if (from && typeof from === "object" || typeof from === "function") {
9
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
10
+ get: () => from[key],
11
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
12
+ });
13
+ }
14
+ return to;
15
+ };
16
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
17
+ value: true
18
+ }), mod);
19
+ var types_exports = {};
20
+ module.exports = __toCommonJS(types_exports);
21
+ //# sourceMappingURL=types.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ function useKeyboardChain(_options) {
2
+ return {
3
+ inputProps: {},
4
+ accessory: null
5
+ };
6
+ }
7
+ export { useKeyboardChain };
8
+ //# sourceMappingURL=useKeyboardChain.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useKeyboardChain","_options","inputProps","accessory"],"sources":["../../../src/keyboard/useKeyboardChain.ts"],"sourcesContent":[null],"mappings":"AAGO,SAASA,iBAAiBC,QAAA,EAAsD;EACrF,OAAO;IAAEC,UAAA,EAAY,CAAC;IAAGC,SAAA,EAAW;EAAK;AAC3C","ignoreList":[]}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var useKeyboardChain_native_exports = {};
26
+ __export(useKeyboardChain_native_exports, {
27
+ useKeyboardChain: () => useKeyboardChain
28
+ });
29
+ module.exports = __toCommonJS(useKeyboardChain_native_exports);
30
+ var import_jsx_runtime = require("react/jsx-runtime");
31
+ var import_react = require("react");
32
+ var import_react_native = require("react-native");
33
+ var import_chain = require("./chain.native.js");
34
+ var import_KeyboardDoneBar = require("./KeyboardDoneBar.native.js");
35
+ function useKeyboardChain(param) {
36
+ var {
37
+ inputRef,
38
+ enabled = true,
39
+ multiline,
40
+ onSubmitLast,
41
+ onSubmitEditing
42
+ } = param;
43
+ var chain = (0, import_react.useContext)(import_chain.KeyboardChainContext);
44
+ var id = (0, import_react.useId)();
45
+ var accessoryId = `mpo-keyboard-done${id}`;
46
+ var chained = enabled && !multiline;
47
+ var entry = (0, import_react.useMemo)(function () {
48
+ return {
49
+ id,
50
+ focus: function focus() {
51
+ var _inputRef_current_focus, _inputRef_current;
52
+ return (_inputRef_current = inputRef.current) === null || _inputRef_current === void 0 ? void 0 : (_inputRef_current_focus = _inputRef_current.focus) === null || _inputRef_current_focus === void 0 ? void 0 : _inputRef_current_focus.call(_inputRef_current);
53
+ },
54
+ measure: function measure(done) {
55
+ var input = inputRef.current;
56
+ if (!(input === null || input === void 0 ? void 0 : input.measureInWindow)) return done(void 0);
57
+ input.measureInWindow(function (x, y, width, height) {
58
+ return done({
59
+ id,
60
+ x,
61
+ y,
62
+ width,
63
+ height
64
+ });
65
+ });
66
+ }
67
+ };
68
+ }, [id, inputRef]);
69
+ (0, import_react.useEffect)(function () {
70
+ return chained ? chain.register(entry) : void 0;
71
+ }, [chain, chained, entry]);
72
+ var isLast = (0, import_react.useSyncExternalStore)(chain.subscribe, function () {
73
+ return chain.isLast(id);
74
+ }, function () {
75
+ return true;
76
+ });
77
+ var handleSubmitEditing = (0, import_react.useCallback)(function () {
78
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
79
+ args[_key] = arguments[_key];
80
+ }
81
+ onSubmitEditing === null || onSubmitEditing === void 0 ? void 0 : onSubmitEditing(...args);
82
+ chain.advance(id, function () {
83
+ import_react_native.Keyboard.dismiss();
84
+ onSubmitLast === null || onSubmitLast === void 0 ? void 0 : onSubmitLast();
85
+ });
86
+ }, [chain, id, onSubmitEditing, onSubmitLast]);
87
+ var relayout = (0, import_react.useCallback)(function () {
88
+ return chain.invalidate();
89
+ }, [chain]);
90
+ if (!enabled) return {
91
+ inputProps: {},
92
+ accessory: null
93
+ };
94
+ var ios = import_react_native.Platform.OS === "ios";
95
+ return {
96
+ inputProps: {
97
+ ...(ios ? {
98
+ inputAccessoryViewID: accessoryId
99
+ } : void 0),
100
+ ...(chained ? {
101
+ returnKeyType: isLast ? "done" : "next",
102
+ // "submit" keeps the keyboard up while focus moves on, so it does
103
+ // not drop and rise again between fields.
104
+ submitBehavior: isLast ? "blurAndSubmit" : "submit",
105
+ onSubmitEditing: handleSubmitEditing,
106
+ onLayout: relayout
107
+ } : void 0)
108
+ },
109
+ accessory: ios ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_KeyboardDoneBar.KeyboardDoneBar, {
110
+ nativeID: accessoryId
111
+ }) : null
112
+ };
113
+ }
114
+ //# sourceMappingURL=useKeyboardChain.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useKeyboardChain_native_exports","__export","useKeyboardChain","module","exports","__toCommonJS","import_jsx_runtime","require","import_react","import_react_native","import_chain","import_KeyboardDoneBar","param","inputRef","enabled","multiline","onSubmitLast","onSubmitEditing","chain","useContext","KeyboardChainContext","id","useId","accessoryId","chained","entry","useMemo","focus","_inputRef_current_focus","_inputRef_current","current","call","measure","done","input","measureInWindow","x","y","width","height","useEffect","register","isLast","useSyncExternalStore","subscribe","handleSubmitEditing","useCallback","_len","arguments","length","args","Array","_key","advance","Keyboard","dismiss","relayout","invalidate","inputProps","accessory","ios","Platform","OS","inputAccessoryViewID","returnKeyType","submitBehavior","onLayout","jsx","KeyboardDoneBar","nativeID"],"sources":["../../../src/keyboard/useKeyboardChain.native.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplatform.one/forms",
3
- "version": "7.40.0",
3
+ "version": "7.42.0",
4
4
  "description": "Cross-platform form components with URL state management",
5
5
  "keywords": [
6
6
  "cross-platform",
@@ -57,10 +57,10 @@
57
57
  },
58
58
  "dependencies": {
59
59
  "@floating-ui/react": "^0.27.20",
60
- "@multiplatform.one/platform": "^7.40.0",
61
- "@multiplatform.one/router": "^7.40.0",
62
- "@multiplatform.one/table-primitives": "^7.40.0",
63
- "@multiplatform.one/theme": "^7.40.0",
60
+ "@multiplatform.one/platform": "^7.42.0",
61
+ "@multiplatform.one/router": "^7.42.0",
62
+ "@multiplatform.one/table-primitives": "^7.42.0",
63
+ "@multiplatform.one/theme": "^7.42.0",
64
64
  "@phosphor-icons/react": "^2.1.10",
65
65
  "@tamagui/get-font-sized": "2.7.6",
66
66
  "@tamagui/get-token": "2.7.6",
@@ -79,9 +79,9 @@
79
79
  "tamagui": "2.7.6"
80
80
  },
81
81
  "devDependencies": {
82
- "@multiplatform.one/config": "7.40.0",
83
- "@multiplatform.one/storybook": "7.40.0",
84
- "@multiplatform.one/test-utils": "7.40.0",
82
+ "@multiplatform.one/config": "7.42.0",
83
+ "@multiplatform.one/storybook": "7.42.0",
84
+ "@multiplatform.one/test-utils": "7.42.0",
85
85
  "@tamagui/build": "2.7.6",
86
86
  "@tamagui/config": "2.7.6",
87
87
  "@tamagui/vite-plugin": "2.7.6",
@@ -21,6 +21,7 @@ import {
21
21
  import { ContextualSaveBar, type ContextualSaveBarProps } from "../ContextualSaveBar";
22
22
  import { ErrorSummary, collectFormFieldErrors, type ErrorSummaryItem } from "../ErrorSummary";
23
23
  import { RequiredMarkingContext, mapHouseRequiredMarking } from "../requiredMarking";
24
+ import { KeyboardChainScope } from "../keyboard/chain";
24
25
  import { getFormSubmission } from "./submissionController";
25
26
  import { type FormValidateOn, resolveEffectiveValidateOn } from "./validateOn";
26
27
 
@@ -320,32 +321,36 @@ export function Form<TFormData extends Record<string, any>, TFormValidator = any
320
321
  <FormSaveModeContext.Provider value={saveMode}>
321
322
  <RequiredMarkingContext.Provider value={{ mode: requiredMarkMode }}>
322
323
  <FormValidateProvider form={form} validateOn={validateOn}>
323
- <TamaguiForm ref={setFormRef} onSubmit={handleSubmit} {...tamaguiFormProps}>
324
- <YStack
325
- data-mpo-form-layout=""
326
- data-gap={knobProps.gap.gap}
327
- data-size-token={knobProps.sizeToken}
328
- width="100%"
329
- minWidth={0}
330
- // A readable column: fields and actions read as one group on a
331
- // wide screen. `maxWidth` on the Form ejects (e.g. "100%").
332
- maxWidth={(tamaguiFormProps.maxWidth as never) ?? FORM_READABLE_WIDTH}
333
- {...knobProps.gap}
334
- {...(tamaguiFormProps.flex != null ? { flex: tamaguiFormProps.flex as never } : {})}
335
- >
336
- {showErrorSummary ? (
337
- <AutoErrorSummary
338
- form={form}
339
- title={errorSummaryTitle}
340
- formElement={formElementRef.current}
341
- />
342
- ) : null}
343
- {children}
344
- {saveBar ? (
345
- <ContextualSaveBar {...(typeof saveBar === "object" ? saveBar : {})} />
346
- ) : null}
347
- </YStack>
348
- </TamaguiForm>
324
+ <KeyboardChainScope>
325
+ <TamaguiForm ref={setFormRef} onSubmit={handleSubmit} {...tamaguiFormProps}>
326
+ <YStack
327
+ data-mpo-form-layout=""
328
+ data-gap={knobProps.gap.gap}
329
+ data-size-token={knobProps.sizeToken}
330
+ width="100%"
331
+ minWidth={0}
332
+ // A readable column: fields and actions read as one group on a
333
+ // wide screen. `maxWidth` on the Form ejects (e.g. "100%").
334
+ maxWidth={(tamaguiFormProps.maxWidth as never) ?? FORM_READABLE_WIDTH}
335
+ {...knobProps.gap}
336
+ {...(tamaguiFormProps.flex != null
337
+ ? { flex: tamaguiFormProps.flex as never }
338
+ : {})}
339
+ >
340
+ {showErrorSummary ? (
341
+ <AutoErrorSummary
342
+ form={form}
343
+ title={errorSummaryTitle}
344
+ formElement={formElementRef.current}
345
+ />
346
+ ) : null}
347
+ {children}
348
+ {saveBar ? (
349
+ <ContextualSaveBar {...(typeof saveBar === "object" ? saveBar : {})} />
350
+ ) : null}
351
+ </YStack>
352
+ </TamaguiForm>
353
+ </KeyboardChainScope>
349
354
  </FormValidateProvider>
350
355
  </RequiredMarkingContext.Provider>
351
356
  </FormSaveModeContext.Provider>
@@ -593,6 +593,13 @@ const InputGroupImpl = InputGroupFrame.styleable<{
593
593
  }
594
594
  : undefined;
595
595
 
596
+ const focusRing = ensureFocusVisibleRing({
597
+ ...inputOutlineFocus,
598
+ ...control.focusKnobProps,
599
+ ...control.focusVisibleKnobProps,
600
+ outlineOffset: boxRingOffset(ringMode),
601
+ });
602
+
596
603
  return (
597
604
  <FocusContext.Provider focused={focused} setFocused={setFocused}>
598
605
  {wrapNativePressable(
@@ -640,19 +647,20 @@ const InputGroupImpl = InputGroupFrame.styleable<{
640
647
  // resolved backup (and the native path). Button-like Boxes
641
648
  // (Select) do not set `focused` (no Area onFocus).
642
649
  borderColor: formInputColors.border.focus,
643
- ...ensureFocusVisibleRing({
644
- ...inputOutlineFocus,
645
- ...control.focusKnobProps,
646
- ...control.focusVisibleKnobProps,
647
- outlineOffset: boxRingOffset(ringMode),
648
- }),
650
+ ...focusRing,
649
651
  }
650
- : {
651
- // Explicit rest — avoid leaving theme `$outlineColor` (near-white in
652
- // dark) as the computed outline-color while width settles.
653
- // Keep outline-transparent rest (border-flicker fix); do not warn.
654
- ...inputOutlineRest,
655
- })}
652
+ : isWeb
653
+ ? {
654
+ // Explicit rest — avoid leaving theme `$outlineColor` (near-white in
655
+ // dark) as the computed outline-color while width settles.
656
+ // Keep outline-transparent rest (border-flicker fix); do not warn.
657
+ ...inputOutlineRest,
658
+ }
659
+ : // FZ-7718: on iOS the outline's width and offset changing as
660
+ // the field takes focus makes it resign first responder, so a
661
+ // programmatic focus (Return to the next field) never sticks.
662
+ // Native keeps the ring's geometry at rest and fades its color.
663
+ { ...focusRing, outlineColor: "transparent" })}
656
664
  {...suppressedRingProps}
657
665
  // LC-40 DISABLED-VISIBLE: the input frame is text-bearing chrome —
658
666
  // keepLabel washes fill/border (value text keeps >= AA) and