@multiplatform.one/forms 7.42.0 → 7.44.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 (327) 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.cjs +5 -2
  6. package/dist/cjs/Chip/index.native.js +2 -1
  7. package/dist/cjs/Chip/index.native.js.map +1 -1
  8. package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js +1 -1
  9. package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
  10. package/dist/cjs/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
  11. package/dist/cjs/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
  12. package/dist/cjs/ContextualSaveBar/index.native.js +3 -3
  13. package/dist/cjs/ContextualSaveBar/index.native.js.map +1 -1
  14. package/dist/cjs/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
  15. package/dist/cjs/ControlGroup/index.native.js +1 -1
  16. package/dist/cjs/ControlGroup/index.native.js.map +1 -1
  17. package/dist/cjs/DescriptionList/index.native.js +2 -2
  18. package/dist/cjs/DescriptionList/index.native.js.map +1 -1
  19. package/dist/cjs/ErrorSummary.native.js.map +1 -1
  20. package/dist/cjs/FieldDisplay/editMode.native.js.map +1 -1
  21. package/dist/cjs/FieldDisplay/formatters.native.js.map +1 -1
  22. package/dist/cjs/FieldDisplay/index.native.js +1 -1
  23. package/dist/cjs/FieldDisplay/index.native.js.map +1 -1
  24. package/dist/cjs/FieldGroup.native.js.map +1 -1
  25. package/dist/cjs/FloatingPanel/nestedAction.native.js.map +1 -1
  26. package/dist/cjs/FloatingPanel/pointAnchor.native.js.map +1 -1
  27. package/dist/cjs/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  28. package/dist/cjs/Form/index.native.js +1 -1
  29. package/dist/cjs/Form/index.native.js.map +1 -1
  30. package/dist/cjs/Form/submissionController.native.js.map +1 -1
  31. package/dist/cjs/Form/validateOn.native.js.map +1 -1
  32. package/dist/cjs/FormGrid.native.js.map +1 -1
  33. package/dist/cjs/FormSection.native.js.map +1 -1
  34. package/dist/cjs/InputParts/index.cjs +22 -116
  35. package/dist/cjs/InputParts/index.native.js +25 -121
  36. package/dist/cjs/InputParts/index.native.js.map +1 -1
  37. package/dist/cjs/Label/index.native.js.map +1 -1
  38. package/dist/cjs/MediaPicker/base64.native.js.map +1 -1
  39. package/dist/cjs/MediaPicker/payload.native.js.map +1 -1
  40. package/dist/cjs/MediaPicker/types.native.js.map +1 -1
  41. package/dist/cjs/MediaPicker/useMediaPicker.native.js.map +1 -1
  42. package/dist/cjs/Skeleton/index.native.js.map +1 -1
  43. package/dist/cjs/Spinner/SpinnerGlyph.native.js.map +1 -1
  44. package/dist/cjs/Spinner/spinnerSize.native.js.map +1 -1
  45. package/dist/cjs/Table/index.native.js.map +1 -1
  46. package/dist/cjs/Wheel/haptic.native.js.map +1 -1
  47. package/dist/cjs/Wheel/index.native.js.map +1 -1
  48. package/dist/cjs/Wheel/wheelShared.native.js.map +1 -1
  49. package/dist/cjs/actionLabel.native.js.map +1 -1
  50. package/dist/cjs/fieldDefaults.native.js.map +1 -1
  51. package/dist/cjs/fieldLayout.native.js +1 -1
  52. package/dist/cjs/fieldLayout.native.js.map +1 -1
  53. package/dist/cjs/fields/Barcode/BarcodePreview.native.js.map +1 -1
  54. package/dist/cjs/fields/Barcode/BarcodeScanner.native.js +1 -1
  55. package/dist/cjs/fields/Barcode/code128.native.js.map +1 -1
  56. package/dist/cjs/fields/Barcode/index.native.js +2 -2
  57. package/dist/cjs/fields/Barcode/index.native.js.map +1 -1
  58. package/dist/cjs/fields/Barcode/qr.native.js.map +1 -1
  59. package/dist/cjs/fields/Barcode/scannerTypes.native.js.map +1 -1
  60. package/dist/cjs/fields/Checkbox/Checkbox.native.js +1 -1
  61. package/dist/cjs/fields/Checkbox/Checkbox.native.js.map +1 -1
  62. package/dist/cjs/fields/Checkbox/CheckboxBox.native.js.map +1 -1
  63. package/dist/cjs/fields/Checkbox/CheckboxCard.native.js.map +1 -1
  64. package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
  65. package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js +1 -1
  66. package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
  67. package/dist/cjs/fields/Checkbox/checkboxGroupContext.native.js.map +1 -1
  68. package/dist/cjs/fields/Checkbox/index.native.js.map +1 -1
  69. package/dist/cjs/fields/ColorPicker/index.native.js +3 -3
  70. package/dist/cjs/fields/ColorPicker/index.native.js.map +1 -1
  71. package/dist/cjs/fields/ColorPicker/parts.native.js +2 -2
  72. package/dist/cjs/fields/ColorPicker/parts.native.js.map +1 -1
  73. package/dist/cjs/fields/Combobox/authorOptions.native.js.map +1 -1
  74. package/dist/cjs/fields/Combobox/index.native.js +6 -6
  75. package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
  76. package/dist/cjs/fields/DatePicker/Calendar.native.js.map +1 -1
  77. package/dist/cjs/fields/DatePicker/DateRangePicker.native.js +2 -2
  78. package/dist/cjs/fields/DatePicker/DateRangePicker.native.js.map +1 -1
  79. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js +3 -3
  80. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
  81. package/dist/cjs/fields/DatePicker/DatetimePicker.native.js +2 -2
  82. package/dist/cjs/fields/DatePicker/MonthPicker.native.js +2 -2
  83. package/dist/cjs/fields/DatePicker/MonthPicker.native.js.map +1 -1
  84. package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js +2 -2
  85. package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
  86. package/dist/cjs/fields/DatePicker/catalog.native.js +2 -2
  87. package/dist/cjs/fields/DatePicker/catalog.native.js.map +1 -1
  88. package/dist/cjs/fields/DatePicker/fieldValueSync.native.js.map +1 -1
  89. package/dist/cjs/fields/DatePicker/index.native.js +2 -2
  90. package/dist/cjs/fields/DatePicker/parts.native.js +2 -2
  91. package/dist/cjs/fields/DatePicker/parts.native.js.map +1 -1
  92. package/dist/cjs/fields/DatePicker/utils.native.js.map +1 -1
  93. package/dist/cjs/fields/Duration/durationMath.native.js.map +1 -1
  94. package/dist/cjs/fields/Duration/index.native.js +3 -3
  95. package/dist/cjs/fields/Duration/index.native.js.map +1 -1
  96. package/dist/cjs/fields/FileUpload/filePickerTypes.native.js.map +1 -1
  97. package/dist/cjs/fields/FileUpload/index.native.js +2 -2
  98. package/dist/cjs/fields/FileUpload/index.native.js.map +1 -1
  99. package/dist/cjs/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
  100. package/dist/cjs/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
  101. package/dist/cjs/fields/Geolocation/geoValue.native.js.map +1 -1
  102. package/dist/cjs/fields/Geolocation/geocoder.native.js.map +1 -1
  103. package/dist/cjs/fields/Geolocation/geocoderContext.native.js.map +1 -1
  104. package/dist/cjs/fields/Geolocation/index.native.js +5 -5
  105. package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
  106. package/dist/cjs/fields/Geolocation/mapMath.native.js.map +1 -1
  107. package/dist/cjs/fields/Geolocation/mapTypes.native.js.map +1 -1
  108. package/dist/cjs/fields/Geolocation/nativeSearchFocus.native.js.map +1 -1
  109. package/dist/cjs/fields/Geolocation/photonGeocoder.native.js.map +1 -1
  110. package/dist/cjs/fields/Icon/drawnSet.native.js.map +1 -1
  111. package/dist/cjs/fields/Icon/index.native.js +3 -3
  112. package/dist/cjs/fields/Icon/index.native.js.map +1 -1
  113. package/dist/cjs/fields/ImageField/index.native.js +2 -2
  114. package/dist/cjs/fields/ImageField/index.native.js.map +1 -1
  115. package/dist/cjs/fields/Input/index.cjs +1 -18
  116. package/dist/cjs/fields/Input/index.native.js +4 -21
  117. package/dist/cjs/fields/Input/index.native.js.map +1 -1
  118. package/dist/cjs/fields/MentionInput/index.native.js +3 -3
  119. package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
  120. package/dist/cjs/fields/OTPInput/index.cjs +65 -82
  121. package/dist/cjs/fields/OTPInput/index.native.js +70 -87
  122. package/dist/cjs/fields/OTPInput/index.native.js.map +1 -1
  123. package/dist/cjs/fields/OTPInput/otpCellCss.cjs +1 -3
  124. package/dist/cjs/fields/OTPInput/otpCellCss.native.js +1 -3
  125. package/dist/cjs/fields/OTPInput/otpCellCss.native.js.map +1 -1
  126. package/dist/cjs/fields/PhoneInput/dialCodes.native.js.map +1 -1
  127. package/dist/cjs/fields/PhoneInput/index.cjs +1 -1
  128. package/dist/cjs/fields/PhoneInput/index.native.js +4 -4
  129. package/dist/cjs/fields/PhoneInput/index.native.js.map +1 -1
  130. package/dist/cjs/fields/PhoneInput/phone.native.js.map +1 -1
  131. package/dist/cjs/fields/PhoneInput/regionNames.native.js.map +1 -1
  132. package/dist/cjs/fields/Progress/index.native.js +1 -1
  133. package/dist/cjs/fields/Progress/index.native.js.map +1 -1
  134. package/dist/cjs/fields/RadioGroup/index.native.js +1 -1
  135. package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
  136. package/dist/cjs/fields/Rating/index.native.js +1 -1
  137. package/dist/cjs/fields/Rating/index.native.js.map +1 -1
  138. package/dist/cjs/fields/Rating/ratingMath.native.js.map +1 -1
  139. package/dist/cjs/fields/Rating/types.native.js.map +1 -1
  140. package/dist/cjs/fields/SearchInput/index.cjs +5 -2
  141. package/dist/cjs/fields/SearchInput/index.native.js +4 -3
  142. package/dist/cjs/fields/SearchInput/index.native.js.map +1 -1
  143. package/dist/cjs/fields/Select/index.native.js +4 -4
  144. package/dist/cjs/fields/Select/index.native.js.map +1 -1
  145. package/dist/cjs/fields/Signature/index.cjs +3 -11
  146. package/dist/cjs/fields/Signature/index.native.js +5 -13
  147. package/dist/cjs/fields/Signature/index.native.js.map +1 -1
  148. package/dist/cjs/fields/Slider/index.native.js +1 -1
  149. package/dist/cjs/fields/Slider/index.native.js.map +1 -1
  150. package/dist/cjs/fields/Slider/jumpMotion.native.js.map +1 -1
  151. package/dist/cjs/fields/Stepper/index.native.js +2 -2
  152. package/dist/cjs/fields/Stepper/index.native.js.map +1 -1
  153. package/dist/cjs/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
  154. package/dist/cjs/fields/Switch/footprint.native.js.map +1 -1
  155. package/dist/cjs/fields/Switch/index.native.js +2 -2
  156. package/dist/cjs/fields/Switch/index.native.js.map +1 -1
  157. package/dist/cjs/fields/TextArea/index.native.js +2 -2
  158. package/dist/cjs/fields/TextArea/index.native.js.map +1 -1
  159. package/dist/cjs/fields/TimePicker/catalog.native.js +3 -3
  160. package/dist/cjs/fields/TimePicker/catalog.native.js.map +1 -1
  161. package/dist/cjs/fields/TimePicker/index.native.js +2 -2
  162. package/dist/cjs/fields/TimePicker/parts.native.js +1 -1
  163. package/dist/cjs/fields/TimePicker/parts.native.js.map +1 -1
  164. package/dist/cjs/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
  165. package/dist/cjs/fields/TimeRangeScrubber/index.native.js +2 -2
  166. package/dist/cjs/fields/TimeRangeScrubber/index.native.js.map +1 -1
  167. package/dist/cjs/fields/ToggleGroup/index.native.js +1 -1
  168. package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
  169. package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
  170. package/dist/cjs/fields/nativeDateTime/dateTimePickerLoader.native.js.map +1 -1
  171. package/dist/cjs/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -1
  172. package/dist/cjs/fields/nativeSelect.native.js.map +1 -1
  173. package/dist/cjs/fields/selectedOrder.native.js.map +1 -1
  174. package/dist/cjs/formSpacing.native.js.map +1 -1
  175. package/dist/cjs/hooks/useFocusManagement.native.js.map +1 -1
  176. package/dist/cjs/index.native.js +44 -44
  177. package/dist/cjs/index.native.js.map +1 -1
  178. package/dist/cjs/keyboard/KeyboardDoneBar.native.js +1 -1
  179. package/dist/cjs/keyboard/chain.native.js.map +1 -1
  180. package/dist/cjs/keyboard/index.native.js.map +1 -1
  181. package/dist/cjs/keyboard/types.native.js.map +1 -1
  182. package/dist/cjs/requiredMarking.native.js.map +1 -1
  183. package/dist/cjs/shared/TimeColumn.native.js +1 -1
  184. package/dist/cjs/shared/TimeColumn.native.js.map +1 -1
  185. package/dist/cjs/shared/capabilityPreflight.native.js.map +1 -1
  186. package/dist/cjs/shared/colorRamps.native.js.map +1 -1
  187. package/dist/cjs/shared/devWarn.native.js.map +1 -1
  188. package/dist/cjs/shared/floatingList.native.js +1 -1
  189. package/dist/cjs/shared/floatingList.native.js.map +1 -1
  190. package/dist/cjs/shared/focusManagement.native.js.map +1 -1
  191. package/dist/cjs/shared/groupContext.native.js.map +1 -1
  192. package/dist/cjs/shared/i18n.native.js.map +1 -1
  193. package/dist/cjs/shared/instantMotion.native.js.map +1 -1
  194. package/dist/cjs/shared/nativeA11y.native.js.map +1 -1
  195. package/dist/cjs/shared/nativeAutoFocus.cjs +37 -0
  196. package/dist/cjs/shared/nativeAutoFocus.native.js +41 -0
  197. package/dist/cjs/shared/nativeAutoFocus.native.js.map +1 -0
  198. package/dist/cjs/shared/panelPortal.native.js.map +1 -1
  199. package/dist/cjs/shared/pickerTriggerContract.native.js.map +1 -1
  200. package/dist/cjs/shared/pressSlopProps.native.js.map +1 -1
  201. package/dist/cjs/shared/t.native.js.map +1 -1
  202. package/dist/cjs/shared/tableCellContext.native.js.map +1 -1
  203. package/dist/cjs/shared/useDragScroll.native.js.map +1 -1
  204. package/dist/cjs/shared/useKeyboardInset.native.js.map +1 -1
  205. package/dist/cjs/shared/useSheetEscapeDismiss.native.js.map +1 -1
  206. package/dist/cjs/shared/useWheelIncrement.native.js.map +1 -1
  207. package/dist/cjs/shared/utils.native.js +1 -1
  208. package/dist/cjs/shared/utils.native.js.map +1 -1
  209. package/dist/cjs/shared/zIndex.native.js.map +1 -1
  210. package/dist/cjs/themedPrimitives.cjs +2 -0
  211. package/dist/cjs/themedPrimitives.native.js +2 -0
  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/Chip/index.mjs +5 -2
  216. package/dist/esm/Chip/index.mjs.map +1 -1
  217. package/dist/esm/Chip/index.native.js +2 -1
  218. package/dist/esm/Chip/index.native.js.map +1 -1
  219. package/dist/esm/InputParts/index.mjs +24 -116
  220. package/dist/esm/InputParts/index.mjs.map +1 -1
  221. package/dist/esm/InputParts/index.native.js +27 -121
  222. package/dist/esm/InputParts/index.native.js.map +1 -1
  223. package/dist/esm/fields/Input/index.mjs +2 -18
  224. package/dist/esm/fields/Input/index.mjs.map +1 -1
  225. package/dist/esm/fields/Input/index.native.js +2 -18
  226. package/dist/esm/fields/Input/index.native.js.map +1 -1
  227. package/dist/esm/fields/OTPInput/index.mjs +67 -84
  228. package/dist/esm/fields/OTPInput/index.mjs.map +1 -1
  229. package/dist/esm/fields/OTPInput/index.native.js +69 -86
  230. package/dist/esm/fields/OTPInput/index.native.js.map +1 -1
  231. package/dist/esm/fields/OTPInput/otpCellCss.mjs +1 -3
  232. package/dist/esm/fields/OTPInput/otpCellCss.mjs.map +1 -1
  233. package/dist/esm/fields/OTPInput/otpCellCss.native.js +1 -3
  234. package/dist/esm/fields/OTPInput/otpCellCss.native.js.map +1 -1
  235. package/dist/esm/fields/PhoneInput/index.mjs +1 -1
  236. package/dist/esm/fields/PhoneInput/index.native.js +1 -1
  237. package/dist/esm/fields/SearchInput/index.mjs +5 -2
  238. package/dist/esm/fields/SearchInput/index.mjs.map +1 -1
  239. package/dist/esm/fields/SearchInput/index.native.js +2 -1
  240. package/dist/esm/fields/SearchInput/index.native.js.map +1 -1
  241. package/dist/esm/fields/Signature/index.mjs +4 -12
  242. package/dist/esm/fields/Signature/index.mjs.map +1 -1
  243. package/dist/esm/fields/Signature/index.native.js +4 -12
  244. package/dist/esm/fields/Signature/index.native.js.map +1 -1
  245. package/dist/esm/shared/nativeAutoFocus.mjs +12 -0
  246. package/dist/esm/shared/nativeAutoFocus.mjs.map +1 -0
  247. package/dist/esm/shared/nativeAutoFocus.native.js +13 -0
  248. package/dist/esm/shared/nativeAutoFocus.native.js.map +1 -0
  249. package/dist/esm/themedPrimitives.mjs +2 -0
  250. package/dist/esm/themedPrimitives.mjs.map +1 -1
  251. package/dist/esm/themedPrimitives.native.js +2 -0
  252. package/dist/esm/themedPrimitives.native.js.map +1 -1
  253. package/dist/jsx/Chip/index.mjs +5 -2
  254. package/dist/jsx/Chip/index.mjs.map +1 -1
  255. package/dist/jsx/Chip/index.native.js +2 -1
  256. package/dist/jsx/Chip/index.native.js.map +1 -1
  257. package/dist/jsx/InputParts/index.mjs +24 -116
  258. package/dist/jsx/InputParts/index.mjs.map +1 -1
  259. package/dist/jsx/InputParts/index.native.js +25 -121
  260. package/dist/jsx/InputParts/index.native.js.map +1 -1
  261. package/dist/jsx/fields/Input/index.mjs +2 -18
  262. package/dist/jsx/fields/Input/index.mjs.map +1 -1
  263. package/dist/jsx/fields/Input/index.native.js +1 -18
  264. package/dist/jsx/fields/Input/index.native.js.map +1 -1
  265. package/dist/jsx/fields/OTPInput/index.mjs +67 -84
  266. package/dist/jsx/fields/OTPInput/index.mjs.map +1 -1
  267. package/dist/jsx/fields/OTPInput/index.native.js +67 -84
  268. package/dist/jsx/fields/OTPInput/index.native.js.map +1 -1
  269. package/dist/jsx/fields/OTPInput/otpCellCss.mjs +1 -3
  270. package/dist/jsx/fields/OTPInput/otpCellCss.mjs.map +1 -1
  271. package/dist/jsx/fields/OTPInput/otpCellCss.native.js +1 -3
  272. package/dist/jsx/fields/OTPInput/otpCellCss.native.js.map +1 -1
  273. package/dist/jsx/fields/PhoneInput/index.mjs +1 -1
  274. package/dist/jsx/fields/PhoneInput/index.native.js +1 -1
  275. package/dist/jsx/fields/SearchInput/index.mjs +5 -2
  276. package/dist/jsx/fields/SearchInput/index.mjs.map +1 -1
  277. package/dist/jsx/fields/SearchInput/index.native.js +2 -1
  278. package/dist/jsx/fields/SearchInput/index.native.js.map +1 -1
  279. package/dist/jsx/fields/Signature/index.mjs +4 -12
  280. package/dist/jsx/fields/Signature/index.mjs.map +1 -1
  281. package/dist/jsx/fields/Signature/index.native.js +3 -11
  282. package/dist/jsx/fields/Signature/index.native.js.map +1 -1
  283. package/dist/jsx/shared/nativeAutoFocus.mjs +12 -0
  284. package/dist/jsx/shared/nativeAutoFocus.mjs.map +1 -0
  285. package/dist/jsx/shared/nativeAutoFocus.native.js +41 -0
  286. package/dist/jsx/shared/nativeAutoFocus.native.js.map +1 -0
  287. package/dist/jsx/themedPrimitives.mjs +2 -0
  288. package/dist/jsx/themedPrimitives.mjs.map +1 -1
  289. package/dist/jsx/themedPrimitives.native.js +2 -0
  290. package/dist/jsx/themedPrimitives.native.js.map +1 -1
  291. package/package.json +8 -8
  292. package/src/Button/Button.disabledReasonInk.spec.tsx +7 -1
  293. package/src/Chip/index.tsx +2 -1
  294. package/src/InputParts/index.spec.tsx +11 -17
  295. package/src/InputParts/index.tsx +27 -147
  296. package/src/fieldFocus.spec.ts +44 -0
  297. package/src/fields/DatePicker/DatePicker.spec.tsx +1 -1
  298. package/src/fields/DatePicker/DateRangePicker.spec.tsx +1 -1
  299. package/src/fields/DatePicker/MultiDatePicker.spec.tsx +1 -1
  300. package/src/fields/Duration/Duration.spec.tsx +2 -2
  301. package/src/fields/Input/Input.copy.spec.tsx +1 -1
  302. package/src/fields/Input/Input.spec.tsx +7 -8
  303. package/src/fields/Input/index.tsx +1 -20
  304. package/src/fields/OTPInput/index.tsx +79 -98
  305. package/src/fields/OTPInput/otpCellCss.ts +4 -8
  306. package/src/fields/PhoneInput/PhoneInput.spec.tsx +3 -3
  307. package/src/fields/PhoneInput/index.tsx +1 -1
  308. package/src/fields/SearchInput/SearchInput.focusHold.native.spec.tsx +81 -0
  309. package/src/fields/SearchInput/SearchInput.spec.tsx +1 -1
  310. package/src/fields/SearchInput/index.tsx +2 -1
  311. package/src/fields/Signature/index.tsx +4 -10
  312. package/src/fields/TextArea/TextArea.spec.tsx +3 -3
  313. package/src/fields/TimePicker/TimePicker.spec.tsx +1 -1
  314. package/src/shared/nativeAutoFocus.ts +20 -0
  315. package/src/themedPrimitives.tsx +9 -1
  316. package/types/Chip/index.d.ts.map +1 -1
  317. package/types/InputParts/index.d.ts +29 -32
  318. package/types/InputParts/index.d.ts.map +1 -1
  319. package/types/fields/Input/index.d.ts +0 -1
  320. package/types/fields/Input/index.d.ts.map +1 -1
  321. package/types/fields/OTPInput/index.d.ts.map +1 -1
  322. package/types/fields/OTPInput/otpCellCss.d.ts.map +1 -1
  323. package/types/fields/SearchInput/index.d.ts.map +1 -1
  324. package/types/fields/Signature/index.d.ts.map +1 -1
  325. package/types/shared/nativeAutoFocus.d.ts +13 -0
  326. package/types/shared/nativeAutoFocus.d.ts.map +1 -0
  327. package/types/themedPrimitives.d.ts.map +1 -1
@@ -2,7 +2,7 @@ import { useTouchSurface } from "@multiplatform.one/theme";
2
2
  import type { Validator } from "../../types";
3
3
 
4
4
  import type { DeepKeys, DeepValue } from "@tanstack/form-core";
5
- import { ensureFocusVisibleRing, useResolvedKnobs } from "@multiplatform.one/theme";
5
+ import { useResolvedKnobs } from "@multiplatform.one/theme";
6
6
  import {
7
7
  type ClipboardEvent,
8
8
  type ComponentProps,
@@ -28,7 +28,7 @@ import {
28
28
  useResolvedValidators,
29
29
  } from "../../shared/utils";
30
30
  import type { FormFieldProps } from "../../fieldLayout";
31
- import { FocusContext, Input as InputParts, InputContext } from "../../InputParts";
31
+ import { Input as InputParts, InputContext } from "../../InputParts";
32
32
  import { Skeleton } from "../../Skeleton";
33
33
  import { formCommonColors, formControlColors, formInputColors } from "../../shared/colorRamps";
34
34
  import { t } from "../../shared/t";
@@ -151,15 +151,6 @@ export function otpCellHeightPx(cellSize: string | number | undefined, touch?: b
151
151
  return getFieldHeight(token, 1, touch);
152
152
  }
153
153
 
154
- /**
155
- * Digit cells own their focus ring (DG-A11Y-01): the ring must be CSS-driven
156
- * on the focused input itself — Input.Box's state-driven ring paints on the
157
- * wrapper a frame later, which forced-focus a11y probes (interact sweep)
158
- * never see. The Box ring is therefore suppressed for OTP cells (see the
159
- * no-op FocusContext below) so the cell shows exactly one ring.
160
- */
161
- const suppressBoxFocusRing = { focused: false, setFocused: (_val: boolean) => {} };
162
-
163
154
  interface OTPDigitInputProps {
164
155
  value: string;
165
156
  type: OTPType;
@@ -220,17 +211,12 @@ const OTPDigitInput = memo(function OTPDigitInput({
220
211
  }: OTPDigitInputProps) {
221
212
  const didFinishSSR = useDidFinishSSR();
222
213
  const hydrationTouch = useTouchSurface();
223
- const { knobProps, control } = useResolvedKnobs();
214
+ const { knobProps } = useResolvedKnobs();
224
215
  // Honor the size the field was given (InputParts root receives
225
216
  // `fieldProps.size || knobProps.sizeToken`): table cells pass a compact
226
217
  // token, and default-size 44pt digit squares overflow the ~$8-wide cell.
227
218
  const { size: contextSize } = InputContext.useStyledContext();
228
219
  const cellSize = contextSize ?? knobProps.sizeToken;
229
- // LC-71 carve-out: inset (−2) on the focused cell so neighbors don't clip it.
230
- const cellFocusRing = ensureFocusVisibleRing({
231
- ...control.focusVisibleKnobProps,
232
- outlineOffset: -2,
233
- });
234
220
  if (isWeb) ensureOtpCellCss();
235
221
 
236
222
  useEffect(() => {
@@ -272,7 +258,6 @@ const OTPDigitInput = memo(function OTPDigitInput({
272
258
  shadowOpacity={0}
273
259
  borderColor={cellBorder}
274
260
  hoverStyle={{ borderColor: hasError ? formCommonColors.error : formInputColors.border.hover }}
275
- focusStyle={{ borderColor: hasError ? formCommonColors.error : formInputColors.border.focus }}
276
261
  // LC-40: forward `disabled` so each cell renders the washed chrome.
277
262
  disabled={disabled}
278
263
  // Web only: keep the Box out of the tab order. The focus handlers live
@@ -287,89 +272,85 @@ const OTPDigitInput = memo(function OTPDigitInput({
287
272
  }
288
273
  : {})}
289
274
  >
290
- <FocusContext.Provider {...suppressBoxFocusRing}>
291
- <InputParts.Area
292
- ref={attachRef}
293
- value={value}
294
- focusStyle={cellFocusRing}
295
- focusVisibleStyle={cellFocusRing}
296
- keyboardType={isNumeric ? "number-pad" : "default"}
297
- textContentType={firstCell ? "oneTimeCode" : "none"}
298
- autoComplete={firstCell ? "one-time-code" : "off"}
299
- autoCorrect={false}
300
- secureTextEntry={secureTextEntry}
301
- textAlign="center"
302
- padding={0}
303
- fontWeight="600"
304
- fontSize={digitFontSize(cellSize)}
305
- disabled={disabled}
306
- readOnly={!!readOnly}
307
- id={firstCell ? fieldId : undefined}
308
- aria-label={
309
- hasLabel
310
- ? `Digit ${digitIndex + 1} of ${digitCount}`
311
- : `One-time code digit ${digitIndex + 1} of ${digitCount}`
275
+ <InputParts.Area
276
+ ref={attachRef}
277
+ value={value}
278
+ keyboardType={isNumeric ? "number-pad" : "default"}
279
+ textContentType={firstCell ? "oneTimeCode" : "none"}
280
+ autoComplete={firstCell ? "one-time-code" : "off"}
281
+ autoCorrect={false}
282
+ secureTextEntry={secureTextEntry}
283
+ textAlign="center"
284
+ padding={0}
285
+ fontWeight="600"
286
+ fontSize={digitFontSize(cellSize)}
287
+ disabled={disabled}
288
+ readOnly={!!readOnly}
289
+ id={firstCell ? fieldId : undefined}
290
+ aria-label={
291
+ hasLabel
292
+ ? `Digit ${digitIndex + 1} of ${digitCount}`
293
+ : `One-time code digit ${digitIndex + 1} of ${digitCount}`
294
+ }
295
+ aria-required={required || undefined}
296
+ aria-invalid={hasError || undefined}
297
+ aria-readonly={readOnly || undefined}
298
+ placeholder=" "
299
+ onFocus={() => {
300
+ onFocus();
301
+ if (isWeb && inputRef.current) {
302
+ requestAnimationFrame(() => {
303
+ (inputRef.current as unknown as HTMLInputElement)?.select();
304
+ });
312
305
  }
313
- aria-required={required || undefined}
314
- aria-invalid={hasError || undefined}
315
- aria-readonly={readOnly || undefined}
316
- placeholder=" "
317
- onFocus={() => {
318
- onFocus();
319
- if (isWeb && inputRef.current) {
320
- requestAnimationFrame(() => {
321
- (inputRef.current as unknown as HTMLInputElement)?.select();
322
- });
323
- }
324
- }}
325
- onBlur={onBlur}
326
- onChangeText={(text) => {
327
- const pattern = getValidationPattern(type);
328
- const filtered = text.replace(pattern, "");
329
- if (!filtered) return;
330
- // SMS AutoFill / OS paste often dumps the whole code into one cell.
331
- if (filtered.length > 1) {
332
- onPaste(filtered);
333
- return;
334
- }
335
- onChange(filtered[0]);
336
- }}
337
- onKeyPress={
338
- isWeb
339
- ? undefined
340
- : (e) => {
341
- const event = e.nativeEvent;
342
- onKeyPress(event.key);
343
- }
306
+ }}
307
+ onBlur={onBlur}
308
+ onChangeText={(text) => {
309
+ const pattern = getValidationPattern(type);
310
+ const filtered = text.replace(pattern, "");
311
+ if (!filtered) return;
312
+ // SMS AutoFill / OS paste often dumps the whole code into one cell.
313
+ if (filtered.length > 1) {
314
+ onPaste(filtered);
315
+ return;
344
316
  }
345
- {...(isWeb
346
- ? {
347
- className: "mp-otp-area",
348
- inputMode: isNumeric ? "numeric" : "text",
349
- pattern: isNumeric ? "[0-9]*" : undefined,
350
- autoCapitalize: isNumeric ? "none" : "characters",
351
- spellCheck: false,
352
- enterKeyHint: digitIndex === digitCount - 1 ? "done" : "next",
353
- // react-native-web never fires onKeyPress reliably, so drive
354
- // navigation/deletion from the DOM keydown event instead
355
- onKeyDown: (e: KeyboardEvent<HTMLInputElement>) => {
356
- if (navigationKeys.includes(e.key)) {
357
- e.preventDefault();
358
- onKeyPress(e.key);
359
- }
360
- },
361
- onPaste: (e: ClipboardEvent<HTMLInputElement>) => {
362
- e.preventDefault();
363
- const pastedData = e.clipboardData?.getData("text") || "";
364
- if (pastedData) {
365
- onPaste(pastedData);
366
- }
367
- },
317
+ onChange(filtered[0]);
318
+ }}
319
+ onKeyPress={
320
+ isWeb
321
+ ? undefined
322
+ : (e) => {
323
+ const event = e.nativeEvent;
324
+ onKeyPress(event.key);
368
325
  }
369
- : {})}
370
- {...(inputProps as Record<string, unknown>)}
371
- />
372
- </FocusContext.Provider>
326
+ }
327
+ {...(isWeb
328
+ ? {
329
+ className: "mp-otp-area",
330
+ inputMode: isNumeric ? "numeric" : "text",
331
+ pattern: isNumeric ? "[0-9]*" : undefined,
332
+ autoCapitalize: isNumeric ? "none" : "characters",
333
+ spellCheck: false,
334
+ enterKeyHint: digitIndex === digitCount - 1 ? "done" : "next",
335
+ // react-native-web never fires onKeyPress reliably, so drive
336
+ // navigation/deletion from the DOM keydown event instead
337
+ onKeyDown: (e: KeyboardEvent<HTMLInputElement>) => {
338
+ if (navigationKeys.includes(e.key)) {
339
+ e.preventDefault();
340
+ onKeyPress(e.key);
341
+ }
342
+ },
343
+ onPaste: (e: ClipboardEvent<HTMLInputElement>) => {
344
+ e.preventDefault();
345
+ const pastedData = e.clipboardData?.getData("text") || "";
346
+ if (pastedData) {
347
+ onPaste(pastedData);
348
+ }
349
+ },
350
+ }
351
+ : {})}
352
+ {...(inputProps as Record<string, unknown>)}
353
+ />
373
354
  </InputParts.Box>
374
355
  );
375
356
  });
@@ -1,17 +1,13 @@
1
1
  import { isWeb } from "tamagui";
2
2
 
3
3
  /**
4
- * LC-71 carve-out: OTP rings the focused *cell*, inset, never the row.
5
- * InputParts paints a Box composite ring (`mp-composite-ring`); that would
6
- * double-paint next to the per-cell Area ring, so the Box ring is killed
7
- * here and the Area keeps the ≥2px inset outline (neighbors clip an outer
8
- * ring). Caret is hidden — Stripe/Apple slots use a fake bar when empty.
4
+ * The focused *cell* takes the shared field focus look (FZ-7717) from its
5
+ * Input.Box, never the row; the inner Area never outlines. Caret is hidden —
6
+ * Stripe/Apple slots use a fake bar when empty.
9
7
  */
10
8
  const OTP_CELL_STYLE_ID = "mp-otp-cell-ring";
11
9
 
12
- const otpCellCss = `/* LC-71 OTP carve-out: each cell Box is the perceived control (not the row).
13
- InputParts already paints an inset composite ring on .mp-composite-ring;
14
- do not also outline the inner Area. */
10
+ const otpCellCss = `/* Each cell Box is the perceived control (not the row); the Area never outlines. */
15
11
  .mp-otp-cell {
16
12
  position: relative;
17
13
  }
@@ -329,8 +329,8 @@ describe("PhoneInput", () => {
329
329
  it("puts the LC-71 ring on the box that includes the flag", () => {
330
330
  const result = renderWithProviders(<PhoneInput label="Ring Phone" />);
331
331
  const box = result.container.querySelector('[data-testid="phone-box"]');
332
- expect(box?.className).toContain("mp-composite-ring");
333
- expect(box?.className).toContain("mp-composite-ring-deep");
332
+ expect(box?.getAttribute("data-mp-field-focus")).toBe("true");
333
+ expect(box?.className).toContain("mp-field-focus-deep");
334
334
  expect(box?.className).toContain("mp-phone-input");
335
335
  const flag = result.container.querySelector('[data-testid="combobox-trigger"]');
336
336
  expect(box?.contains(flag)).toBe(true);
@@ -446,7 +446,7 @@ describe("PhoneInput", () => {
446
446
  const flag = result.container.querySelector('[data-testid="combobox-trigger"]');
447
447
  const input = result.container.querySelector("input");
448
448
  expect(box).toBeTruthy();
449
- expect(box.className).toMatch(/mp-composite-ring/);
449
+ expect(box.getAttribute("data-mp-field-focus")).toBe("true");
450
450
  expect(box.contains(flag)).toBe(true);
451
451
  expect(box.contains(input)).toBe(true);
452
452
  });
@@ -315,7 +315,7 @@ export function PhoneInput<
315
315
  data-testid="phone-box"
316
316
  {...(isWeb
317
317
  ? {
318
- className: inTableCell ? "mp-phone-input" : "mp-phone-input mp-composite-ring-deep",
318
+ className: inTableCell ? "mp-phone-input" : "mp-phone-input mp-field-focus-deep",
319
319
  }
320
320
  : undefined)}
321
321
  >
@@ -0,0 +1,81 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { renderWithProviders } from "@multiplatform.one/test-utils";
4
+ import { act, fireEvent } from "@testing-library/react";
5
+ import { createRef, useState } from "react";
6
+ import { describe, expect, it, vi } from "vitest";
7
+ import { nativeAutoFocus } from "../../shared/nativeAutoFocus";
8
+ import { SearchInput, type SearchInputHandle } from "./index";
9
+
10
+ vi.mock("tamagui", async (importOriginal) => ({
11
+ ...(await importOriginal<typeof import("tamagui")>()),
12
+ isWeb: false,
13
+ }));
14
+
15
+ const src = join(process.cwd(), "src");
16
+
17
+ function searchbox(container: HTMLElement) {
18
+ return container.querySelector('[role="searchbox"]') as HTMLInputElement;
19
+ }
20
+
21
+ describe("FZ-7785: SearchInput autoFocus reaches the native TextInput", () => {
22
+ it("carries autoFocus to tamagui's native autoFocusNative", () => {
23
+ expect(nativeAutoFocus({ autoFocus: true })).toEqual({ autoFocusNative: true });
24
+ expect(nativeAutoFocus({ autoFocus: false })).toEqual({ autoFocusNative: false });
25
+ expect(nativeAutoFocus({})).toBeUndefined();
26
+ expect(nativeAutoFocus({ autoFocus: true, autoFocusNative: false })).toBeUndefined();
27
+ });
28
+
29
+ it("every MPO text field base forwards it: Input.Area and ThemedTextArea", () => {
30
+ const area = readFileSync(join(src, "InputParts", "index.tsx"), "utf8");
31
+ const textArea = readFileSync(join(src, "themedPrimitives.tsx"), "utf8");
32
+ expect(area).toMatch(/\{\.\.\.props\}\s*\{\.\.\.nativeAutoFocus\(props/);
33
+ expect(textArea).toMatch(/\{\.\.\.props\}\s*\{\.\.\.nativeAutoFocus\(props/);
34
+ });
35
+
36
+ it("autoFocus reaches the field and the field keeps focus", () => {
37
+ const { container } = renderWithProviders(<SearchInput aria-label="Find" autoFocus />);
38
+ const input = searchbox(container);
39
+ expect(input.autofocus || document.activeElement === input).toBe(true);
40
+ act(() => input.focus());
41
+ expect(document.activeElement).toBe(input);
42
+ });
43
+ });
44
+
45
+ describe("FZ-7785: SearchInput holds a programmatic focus on native", () => {
46
+ it("ref.focus() keeps the same field focused through a parent re-render at onFocus", () => {
47
+ const ref = createRef<SearchInputHandle>();
48
+ function Parent() {
49
+ const [focusCount, setFocusCount] = useState(0);
50
+ return (
51
+ <SearchInput
52
+ ref={ref}
53
+ aria-label={`Find ${focusCount}`}
54
+ inputProps={{ onFocus: () => setFocusCount((n) => n + 1) }}
55
+ />
56
+ );
57
+ }
58
+ const { container } = renderWithProviders(<Parent />);
59
+ const input = searchbox(container);
60
+ act(() => ref.current!.focus());
61
+ expect(searchbox(container)).toBe(input);
62
+ expect(document.activeElement).toBe(input);
63
+ });
64
+ });
65
+
66
+ describe("FZ-7785: SearchInput's clear X on native", () => {
67
+ it("empties the field, fires onChange('') and onClear, and keeps focus", () => {
68
+ const onChange = vi.fn();
69
+ const onClear = vi.fn();
70
+ const { container, getByRole } = renderWithProviders(
71
+ <SearchInput aria-label="Find" defaultValue="query" onChange={onChange} onClear={onClear} />,
72
+ );
73
+ const input = searchbox(container);
74
+ act(() => input.focus());
75
+ fireEvent.click(getByRole("button", { name: "Clear search" }));
76
+ expect(onChange).toHaveBeenLastCalledWith("");
77
+ expect(onClear).toHaveBeenCalledTimes(1);
78
+ expect(searchbox(container).value).toBe("");
79
+ expect(document.activeElement).toBe(searchbox(container));
80
+ });
81
+ });
@@ -154,7 +154,7 @@ describe("SearchInput", () => {
154
154
  const result = renderWithProviders(<SearchInput defaultValue="abc" />);
155
155
  const input = result.container.querySelector("input");
156
156
  if (!input) throw new Error("input not found");
157
- expect(result.container.querySelector(".mp-composite-ring")).toBeTruthy();
157
+ expect(result.container.querySelector("[data-mp-field-focus]")).toBeTruthy();
158
158
  expect(input.className).toMatch(/mp-input-area/);
159
159
  expect(input.className).toMatch(/mp-search-input/);
160
160
  expect(input.getAttribute("type")).toBe("search");
@@ -365,6 +365,7 @@ function SearchInputImpl(
365
365
  />
366
366
  {showClear ? (
367
367
  <View
368
+ group={"searchClear" as unknown as undefined}
368
369
  role="button"
369
370
  tabIndex={0}
370
371
  aria-label={t("Clear search")}
@@ -396,7 +397,7 @@ function SearchInputImpl(
396
397
  alignItems="center"
397
398
  justifyContent="center"
398
399
  hoverStyle={{ backgroundColor: "$color4" }}
399
- pressStyle={{ backgroundColor: "$color5" }}
400
+ {...{ "$group-searchClear-press": { backgroundColor: "$color5" } }}
400
401
  >
401
402
  <InputParts.Icon aria-hidden color={formCommonColors.muted}>
402
403
  <XIcon size={resolvedIconSize} />
@@ -1,7 +1,7 @@
1
1
  import { useTouchSurface } from "@multiplatform.one/theme";
2
2
  import type { KnobProps } from "@multiplatform.one/theme";
3
3
  import {
4
- ensureFocusVisibleRing,
4
+ FIELD_FOCUS_STYLE,
5
5
  ensureKeyboardModalityTracking,
6
6
  wasKeyboardFocus,
7
7
  transitionProps,
@@ -510,7 +510,7 @@ function SignatureCanvasImpl({
510
510
  style: { backgroundColor: "transparent" },
511
511
  };
512
512
 
513
- const frameRing = kbFocus ? ensureFocusVisibleRing({ outlineOffset: -2 }) : undefined;
513
+ const frameRing = kbFocus ? FIELD_FOCUS_STYLE : undefined;
514
514
 
515
515
  return (
516
516
  <SignaturePadFrame
@@ -531,14 +531,8 @@ function SignatureCanvasImpl({
531
531
  ? undefined
532
532
  : { borderColor: error ? formCommonColors.error : formInputColors.border.hover }
533
533
  }
534
- focusStyle={{
535
- outlineWidth: 0,
536
- borderColor: error ? formCommonColors.error : formInputColors.border.focus,
537
- }}
538
- focusVisibleStyle={ensureFocusVisibleRing({
539
- outlineOffset: -2,
540
- borderColor: error ? formCommonColors.error : formInputColors.border.focus,
541
- })}
534
+ focusStyle={FIELD_FOCUS_STYLE}
535
+ focusVisibleStyle={FIELD_FOCUS_STYLE}
542
536
  {...frameRing}
543
537
  {...transitionProps(knobProps.motion.control)}
544
538
  focusable={canFocus}
@@ -11,7 +11,7 @@ import { TextArea } from "./index";
11
11
  /** Tamagui atomic top-left radius class on the LC-71 ring box. */
12
12
  function boxRadiusClasses(container: HTMLElement): string[] {
13
13
  const textarea = container.querySelector("textarea");
14
- const box = textarea?.closest(".mp-composite-ring");
14
+ const box = textarea?.closest("[data-mp-input-box]");
15
15
  return String(box?.className || "")
16
16
  .split(" ")
17
17
  .filter((c) => c.startsWith("_btlr-"));
@@ -264,7 +264,7 @@ describe("TextArea", () => {
264
264
  const result = renderWithProviders(<TextArea label="Notes" defaultValue="hello" />);
265
265
  const textarea = result.getTextArea() as HTMLTextAreaElement;
266
266
  expect(textarea?.className).toMatch(/mp-input-area/);
267
- expect(textarea?.closest(".mp-composite-ring")).toBeTruthy();
267
+ expect(textarea?.closest("[data-mp-input-box]")).toBeTruthy();
268
268
  expect(textarea?.getAttribute("aria-multiline")).toBe("true");
269
269
  });
270
270
 
@@ -412,7 +412,7 @@ describe("TextArea", () => {
412
412
  <TextArea label="Notes" defaultValue="x" />
413
413
  </Preset>,
414
414
  );
415
- const box = result.container.querySelector("textarea")?.closest(".mp-composite-ring");
415
+ const box = result.container.querySelector("textarea")?.closest("[data-mp-input-box]");
416
416
  expect(box?.getAttribute("data-constraint-container")).toBe("TextArea");
417
417
  expect(box?.getAttribute("data-radius-knob")).toBe("full");
418
418
  expect(box?.hasAttribute("data-space-knob")).toBe(false);
@@ -89,7 +89,7 @@ describe("TimePicker", () => {
89
89
  );
90
90
  const input = result.container.querySelector("input");
91
91
  expect(input?.className).toContain("mp-input-area");
92
- const box = result.container.querySelector(".mp-composite-ring");
92
+ const box = result.container.querySelector("[data-mp-field-focus]");
93
93
  expect(box).toBeTruthy();
94
94
  expect(box?.contains(input)).toBe(true);
95
95
  });
@@ -0,0 +1,20 @@
1
+ import { isWeb } from "tamagui";
2
+
3
+ interface AutoFocusProps {
4
+ autoFocus?: boolean;
5
+ autoFocusNative?: boolean;
6
+ }
7
+
8
+ /**
9
+ * FZ-7785: tamagui 2's native Input and TextArea spread their props and then
10
+ * set the TextInput's `autoFocus` from `autoFocusNative`, so a plain
11
+ * `autoFocus` is overwritten with undefined on iOS and Android. MPO fields
12
+ * take the one web prop name; this carries it to the native one.
13
+ */
14
+ export function nativeAutoFocus({
15
+ autoFocus,
16
+ autoFocusNative,
17
+ }: AutoFocusProps): AutoFocusProps | undefined {
18
+ if (isWeb || autoFocusNative !== undefined || autoFocus === undefined) return undefined;
19
+ return { autoFocusNative: autoFocus };
20
+ }
@@ -6,6 +6,7 @@ import {
6
6
  textFieldInset,
7
7
  } from "@multiplatform.one/theme";
8
8
  import { TextArea as TamaguiTextArea, isWeb, styled } from "tamagui";
9
+ import { nativeAutoFocus } from "./shared/nativeAutoFocus";
9
10
 
10
11
  /**
11
12
  * Tamagui's built-in TextArea has a `size` variant that sets `borderRadius`
@@ -60,5 +61,12 @@ const ThemedTextAreaFrame = styled(TamaguiTextArea, {
60
61
 
61
62
  export const ThemedTextArea = ThemedTextAreaFrame.styleable((props, ref) => {
62
63
  const touch = useTouchSurface();
63
- return <ThemedTextAreaFrame {...props} touch={touch} ref={ref} />;
64
+ return (
65
+ <ThemedTextAreaFrame
66
+ {...props}
67
+ {...nativeAutoFocus(props as { autoFocus?: boolean; autoFocusNative?: boolean })}
68
+ touch={touch}
69
+ ref={ref}
70
+ />
71
+ );
64
72
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Chip/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,EAYL,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAA+B,QAAQ,EAAE,MAAM,SAAS,CAAC;AAMrE,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AACzD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC3F,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD,gFAAgF;AAChF,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAE5E,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oEAAoE;IACpE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAwID;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;6CA+BpB,CAAC;AAEH,eAAO,MAAM,QAAQ;;;6CAgBnB,CAAC;AAiBH,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEnD;AAED;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D;AA2GD,wBAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,IAAI,EACJ,OAAO,EAAE,WAAsB,EAC/B,KAAc,EACd,SAAS,EACT,QAAQ,EACR,QAAgB,EAChB,OAAO,EACP,IAAI,EACJ,aAAa,EACb,gBAA+B,GAChC,EAAE,SAAS,2CA4NX;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Chip/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,EAYL,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAA+B,QAAQ,EAAE,MAAM,SAAS,CAAC;AAMrE,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AACzD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC3F,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD,gFAAgF;AAChF,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAE5E,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oEAAoE;IACpE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAwID;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;6CA+BpB,CAAC;AAEH,eAAO,MAAM,QAAQ;;;6CAgBnB,CAAC;AAiBH,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEnD;AAED;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D;AA2GD,wBAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,IAAI,EACJ,OAAO,EAAE,WAAsB,EAC/B,KAAc,EACd,SAAS,EACT,QAAQ,EACR,QAAgB,EAChB,OAAO,EACP,IAAI,EACJ,aAAa,EACb,gBAA+B,GAChC,EAAE,SAAS,2CA6NX;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,SAAS,CAAC,CAAC"}
@@ -19,28 +19,27 @@ export declare const useForwardFocus: (target: RefObject<TamaguiElement | null>)
19
19
  onBlur: () => void;
20
20
  focusable: boolean;
21
21
  };
22
- type BoxOverflow = "hidden" | "visible";
23
- export declare function boxRingMode(overflow: BoxOverflow, paintsRing: boolean): "inset" | "outset" | undefined;
24
- export declare function boxRingOffset(mode: "inset" | "outset" | undefined): number;
25
- export declare const inputPartsRingCss = "/* LC-71: ring on Box (adornments inside); Area never outlines.\n Inset iff the Box clips (overflow:hidden). Do not :has(:focus-visible) on\n every descendant \u2014 SearchInput clear \u2715 is a second focusable. */\n[data-mp-input-box][data-mp-ring=\"inset\"]:has(input:focus),\n[data-mp-input-box][data-mp-ring=\"inset\"]:has(textarea:focus),\n[data-mp-input-box][data-mp-ring=\"inset\"]:has([data-mp-input-area]:focus),\n[data-mp-input-box][data-mp-ring=\"inset\"]:focus-visible {\n outline: 2px solid var(--outlineColor, var(--c-outlineColor, CanvasText)) !important;\n outline-offset: -2px !important;\n}\n[data-mp-input-box][data-mp-ring=\"outset\"]:has(input:focus),\n[data-mp-input-box][data-mp-ring=\"outset\"]:has(textarea:focus),\n[data-mp-input-box][data-mp-ring=\"outset\"]:has([data-mp-input-area]:focus),\n[data-mp-input-box][data-mp-ring=\"outset\"]:focus-visible {\n outline: 2px solid var(--outlineColor, var(--c-outlineColor, CanvasText)) !important;\n outline-offset: 2px !important;\n}\n[data-mp-input-area],\n[data-mp-input-area]:focus,\n[data-mp-input-area]:focus-visible,\n[data-mp-input-box] input,\n[data-mp-input-box] textarea,\n[data-mp-input-box] [contenteditable] {\n outline: none !important;\n box-shadow: none !important;\n}\n/* LC-84: Area is chromeless. Zero UA pad on the single-line input only \u2014\n textarea keeps ThemedTextArea's equal padX/padY inset. */\ninput[data-mp-input-area] {\n padding: 0 !important;\n}";
22
+ export declare const inputPartsRingCss: string;
26
23
  export declare function ensureInputPartsFocusRing(): void;
27
24
  export declare const defaultInputGroupStyles: {
28
25
  readonly hoverStyle: {
29
26
  readonly borderColor: "$borderColorHover";
30
27
  };
31
28
  readonly focusStyle: {
32
- readonly borderColor: "$borderColorFocus";
29
+ borderColor: string;
30
+ outlineWidth: number;
31
+ outlineStyle: "solid";
32
+ outlineColor: string;
33
33
  };
34
34
  readonly focusVisibleStyle: {
35
- readonly outlineColor: "$outlineColor";
36
- readonly outlineWidth: 2;
37
- readonly outlineStyle: any;
38
- readonly outlineOffset: -2;
39
- readonly borderColor: "$borderColorFocus";
35
+ borderColor: string;
36
+ outlineWidth: number;
37
+ outlineStyle: "solid";
38
+ outlineColor: string;
40
39
  };
41
- readonly outlineWidth: 0;
42
- readonly outlineColor: "transparent";
43
- readonly outlineStyle: any;
40
+ readonly outlineWidth: number;
41
+ readonly outlineStyle: "solid";
42
+ readonly outlineColor: string;
44
43
  readonly borderColor: "$borderColor";
45
44
  readonly backgroundColor: "$background";
46
45
  readonly minWidth: 0;
@@ -54,18 +53,20 @@ export declare const defaultInputGroupStyles: {
54
53
  readonly borderColor: "$borderColorHover";
55
54
  };
56
55
  readonly focusStyle: {
57
- readonly borderColor: "$borderColorFocus";
56
+ borderColor: string;
57
+ outlineWidth: number;
58
+ outlineStyle: "solid";
59
+ outlineColor: string;
58
60
  };
59
61
  readonly focusVisibleStyle: {
60
- readonly outlineColor: "$outlineColor";
61
- readonly outlineWidth: 2;
62
- readonly outlineStyle: any;
63
- readonly outlineOffset: -2;
64
- readonly borderColor: "$borderColorFocus";
62
+ borderColor: string;
63
+ outlineWidth: number;
64
+ outlineStyle: "solid";
65
+ outlineColor: string;
65
66
  };
66
- readonly outlineWidth: 0;
67
- readonly outlineColor: "transparent";
68
- readonly outlineStyle: any;
67
+ readonly outlineWidth: number;
68
+ readonly outlineStyle: "solid";
69
+ readonly outlineColor: string;
69
70
  readonly borderColor: "$borderColor";
70
71
  readonly backgroundColor: "$background";
71
72
  readonly minWidth: 0;
@@ -210,11 +211,9 @@ export declare const Input: import("react").ForwardRefExoticComponent<Omit<impor
210
211
  scaleIcon?: number | undefined;
211
212
  }>, "sizeRecipeEscape" | "recipeFamily" | "suppressFocusRing"> & {
212
213
  /**
213
- * OVERLAY_ANCHOR_GAP rule (theme/layoutTokens) — one surface owner per
214
- * overlay: while a floating panel intentionally covers this box (Select's
215
- * macOS-style listbox), the box must not paint its focus ring. The ring
216
- * sits outside the border box (outline + offset), so a covering panel can
217
- * never hide it — it ghosts around the panel's corners as a doubled edge.
214
+ * Kept for callers. Since FZ-7717 the field focus look is the Box's own
215
+ * accent border, which a covering panel hides, so there is no ring left to
216
+ * suppress.
218
217
  */
219
218
  suppressFocusRing?: boolean;
220
219
  /**
@@ -232,11 +231,9 @@ export declare const Input: import("react").ForwardRefExoticComponent<Omit<impor
232
231
  __scopeGroup?: import("tamagui").Scope;
233
232
  } & {
234
233
  /**
235
- * OVERLAY_ANCHOR_GAP rule (theme/layoutTokens) — one surface owner per
236
- * overlay: while a floating panel intentionally covers this box (Select's
237
- * macOS-style listbox), the box must not paint its focus ring. The ring
238
- * sits outside the border box (outline + offset), so a covering panel can
239
- * never hide it — it ghosts around the panel's corners as a doubled edge.
234
+ * Kept for callers. Since FZ-7717 the field focus look is the Box's own
235
+ * accent border, which a covering panel hides, so there is no ring left to
236
+ * suppress.
240
237
  */
241
238
  suppressFocusRing?: boolean;
242
239
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/InputParts/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/InputParts/index.tsx"],"names":[],"mappings":"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"}
@@ -3,7 +3,6 @@ import type { InputKeyboardType, InputTextContentType, LabelProps, SizeTokens, T
3
3
  import { Input as InputParts } from "../../InputParts";
4
4
  import type { AnyFormApi, LinkResolver } from "../../types";
5
5
  type InputAreaProps = ComponentProps<typeof InputParts.Area>;
6
- export declare function ensureInputFieldRingOffset(): void;
7
6
  export interface InputProps {
8
7
  name?: string;
9
8
  form?: AnyFormApi;