@multiplatform.one/forms 7.11.0 → 7.15.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 (724) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/AdaptivePopup/index.cjs +0 -10
  3. package/dist/cjs/AdaptivePopup/index.native.js +0 -10
  4. package/dist/cjs/AdaptivePopup/index.native.js.map +1 -1
  5. package/dist/cjs/Button/index.cjs +6 -3
  6. package/dist/cjs/Button/index.native.js +6 -3
  7. package/dist/cjs/Button/index.native.js.map +1 -1
  8. package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.cjs +2 -11
  9. package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js +2 -11
  10. package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
  11. package/dist/cjs/ContextualSaveBar/index.cjs +12 -10
  12. package/dist/cjs/ContextualSaveBar/index.native.js +12 -19
  13. package/dist/cjs/ContextualSaveBar/index.native.js.map +1 -1
  14. package/dist/cjs/FieldDisplay/index.cjs +24 -12
  15. package/dist/cjs/FieldDisplay/index.native.js +25 -13
  16. package/dist/cjs/FieldDisplay/index.native.js.map +1 -1
  17. package/dist/cjs/FloatingPanel/PanelPortal.cjs +145 -0
  18. package/dist/cjs/FloatingPanel/PanelPortal.native.js +43 -0
  19. package/dist/cjs/FloatingPanel/PanelPortal.native.js.map +1 -0
  20. package/dist/cjs/FloatingPanel/index.cjs +115 -67
  21. package/dist/cjs/FloatingPanel/index.native.js +67 -12
  22. package/dist/cjs/FloatingPanel/index.native.js.map +1 -1
  23. package/dist/cjs/FloatingPanel/useFloatingPanel.cjs +4 -2
  24. package/dist/cjs/FloatingPanel/useFloatingPanel.native.js +4 -2
  25. package/dist/cjs/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  26. package/dist/cjs/Form/index.cjs +2 -1
  27. package/dist/cjs/Form/index.native.js +2 -1
  28. package/dist/cjs/Form/index.native.js.map +1 -1
  29. package/dist/cjs/Form/submissionController.cjs +74 -0
  30. package/dist/cjs/Form/submissionController.native.js +99 -0
  31. package/dist/cjs/Form/submissionController.native.js.map +1 -0
  32. package/dist/cjs/InputParts/index.cjs +66 -12
  33. package/dist/cjs/InputParts/index.native.js +72 -12
  34. package/dist/cjs/InputParts/index.native.js.map +1 -1
  35. package/dist/cjs/Wheel/index.cjs +0 -2
  36. package/dist/cjs/Wheel/index.native.js +0 -2
  37. package/dist/cjs/Wheel/index.native.js.map +1 -1
  38. package/dist/cjs/fields/Barcode/BarcodePreview.cjs +18 -15
  39. package/dist/cjs/fields/Barcode/BarcodePreview.native.js +21 -18
  40. package/dist/cjs/fields/Barcode/BarcodePreview.native.js.map +1 -1
  41. package/dist/cjs/fields/Barcode/qr.native.js +34 -34
  42. package/dist/cjs/fields/Checkbox/Checkbox.cjs +1 -3
  43. package/dist/cjs/fields/Checkbox/Checkbox.native.js +1 -3
  44. package/dist/cjs/fields/Checkbox/Checkbox.native.js.map +1 -1
  45. package/dist/cjs/fields/Checkbox/CheckboxBox.cjs +2 -3
  46. package/dist/cjs/fields/Checkbox/CheckboxBox.native.js +2 -3
  47. package/dist/cjs/fields/Checkbox/CheckboxBox.native.js.map +1 -1
  48. package/dist/cjs/fields/ColorPicker/index.cjs +2 -0
  49. package/dist/cjs/fields/ColorPicker/index.native.js +2 -0
  50. package/dist/cjs/fields/ColorPicker/index.native.js.map +1 -1
  51. package/dist/cjs/fields/ColorPicker/parts.cjs +1 -0
  52. package/dist/cjs/fields/ColorPicker/parts.native.js +1 -0
  53. package/dist/cjs/fields/ColorPicker/parts.native.js.map +1 -1
  54. package/dist/cjs/fields/Combobox/index.cjs +206 -200
  55. package/dist/cjs/fields/Combobox/index.native.js +214 -208
  56. package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
  57. package/dist/cjs/fields/DatePicker/DateRangePicker.cjs +7 -7
  58. package/dist/cjs/fields/DatePicker/DateRangePicker.native.js +7 -7
  59. package/dist/cjs/fields/DatePicker/DateRangePicker.native.js.map +1 -1
  60. package/dist/cjs/fields/DatePicker/MultiDatePicker.cjs +6 -4
  61. package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js +6 -4
  62. package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
  63. package/dist/cjs/fields/Duration/index.cjs +5 -3
  64. package/dist/cjs/fields/Duration/index.native.js +5 -3
  65. package/dist/cjs/fields/Duration/index.native.js.map +1 -1
  66. package/dist/cjs/fields/FileUpload/index.cjs +10 -8
  67. package/dist/cjs/fields/FileUpload/index.native.js +10 -8
  68. package/dist/cjs/fields/FileUpload/index.native.js.map +1 -1
  69. package/dist/cjs/fields/FileUpload/nativePickerLoader.cjs +7 -2
  70. package/dist/cjs/fields/FileUpload/nativePickerLoader.native.js +7 -2
  71. package/dist/cjs/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
  72. package/dist/cjs/fields/Geolocation/GeolocationMap.cjs +3 -0
  73. package/dist/cjs/fields/Geolocation/geocoderContext.cjs +71 -0
  74. package/dist/cjs/fields/Geolocation/geocoderContext.native.js +75 -0
  75. package/dist/cjs/fields/Geolocation/geocoderContext.native.js.map +1 -0
  76. package/dist/cjs/fields/Geolocation/index.cjs +72 -82
  77. package/dist/cjs/fields/Geolocation/index.native.js +72 -82
  78. package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
  79. package/dist/cjs/fields/Geolocation/photonGeocoder.cjs +138 -0
  80. package/dist/cjs/fields/Geolocation/photonGeocoder.native.js +179 -0
  81. package/dist/cjs/fields/Geolocation/photonGeocoder.native.js.map +1 -0
  82. package/dist/cjs/fields/Input/index.cjs +7 -5
  83. package/dist/cjs/fields/Input/index.native.js +7 -5
  84. package/dist/cjs/fields/Input/index.native.js.map +1 -1
  85. package/dist/cjs/fields/MentionInput/index.cjs +118 -112
  86. package/dist/cjs/fields/MentionInput/index.native.js +130 -124
  87. package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
  88. package/dist/cjs/fields/OTPInput/index.cjs +11 -8
  89. package/dist/cjs/fields/OTPInput/index.native.js +11 -8
  90. package/dist/cjs/fields/OTPInput/index.native.js.map +1 -1
  91. package/dist/cjs/fields/PhoneInput/index.cjs +9 -6
  92. package/dist/cjs/fields/PhoneInput/index.native.js +9 -6
  93. package/dist/cjs/fields/PhoneInput/index.native.js.map +1 -1
  94. package/dist/cjs/fields/PhoneInput/phone.cjs +6 -5
  95. package/dist/cjs/fields/PhoneInput/phone.native.js +7 -6
  96. package/dist/cjs/fields/PhoneInput/phone.native.js.map +1 -1
  97. package/dist/cjs/fields/PhoneInput/regionNames.cjs +274 -0
  98. package/dist/cjs/fields/PhoneInput/regionNames.native.js +277 -0
  99. package/dist/cjs/fields/PhoneInput/regionNames.native.js.map +1 -0
  100. package/dist/cjs/fields/RadioGroup/index.cjs +2 -6
  101. package/dist/cjs/fields/RadioGroup/index.native.js +2 -6
  102. package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
  103. package/dist/cjs/fields/SearchInput/index.cjs +10 -8
  104. package/dist/cjs/fields/SearchInput/index.native.js +10 -8
  105. package/dist/cjs/fields/SearchInput/index.native.js.map +1 -1
  106. package/dist/cjs/fields/Select/index.cjs +20 -17
  107. package/dist/cjs/fields/Select/index.native.js +20 -17
  108. package/dist/cjs/fields/Select/index.native.js.map +1 -1
  109. package/dist/cjs/fields/Signature/index.cjs +10 -9
  110. package/dist/cjs/fields/Signature/index.native.js +10 -9
  111. package/dist/cjs/fields/Signature/index.native.js.map +1 -1
  112. package/dist/cjs/fields/Slider/index.cjs +21 -15
  113. package/dist/cjs/fields/Slider/index.native.js +21 -17
  114. package/dist/cjs/fields/Slider/index.native.js.map +1 -1
  115. package/dist/cjs/fields/Slider/jumpMotion.cjs +2 -2
  116. package/dist/cjs/fields/Slider/jumpMotion.native.js +2 -1
  117. package/dist/cjs/fields/Slider/jumpMotion.native.js.map +1 -1
  118. package/dist/cjs/fields/Stepper/index.cjs +25 -6
  119. package/dist/cjs/fields/Stepper/index.native.js +25 -6
  120. package/dist/cjs/fields/Stepper/index.native.js.map +1 -1
  121. package/dist/cjs/fields/Switch/footprint.cjs +54 -0
  122. package/dist/cjs/fields/Switch/footprint.native.js +57 -0
  123. package/dist/cjs/fields/Switch/footprint.native.js.map +1 -0
  124. package/dist/cjs/fields/Switch/index.cjs +60 -43
  125. package/dist/cjs/fields/Switch/index.native.js +60 -50
  126. package/dist/cjs/fields/Switch/index.native.js.map +1 -1
  127. package/dist/cjs/fields/TextArea/index.cjs +6 -3
  128. package/dist/cjs/fields/TextArea/index.native.js +6 -3
  129. package/dist/cjs/fields/TextArea/index.native.js.map +1 -1
  130. package/dist/cjs/fields/TimePicker/catalog.cjs +1 -0
  131. package/dist/cjs/fields/TimePicker/catalog.native.js +1 -0
  132. package/dist/cjs/fields/TimePicker/catalog.native.js.map +1 -1
  133. package/dist/cjs/fields/TimePicker/parts.cjs +5 -0
  134. package/dist/cjs/fields/TimePicker/parts.native.js +7 -0
  135. package/dist/cjs/fields/TimePicker/parts.native.js.map +1 -1
  136. package/dist/cjs/index.cjs +12 -0
  137. package/dist/cjs/index.native.js +12 -0
  138. package/dist/cjs/index.native.js.map +1 -1
  139. package/dist/cjs/shared/panelPortal.cjs +52 -0
  140. package/dist/cjs/shared/panelPortal.native.js +65 -0
  141. package/dist/cjs/shared/panelPortal.native.js.map +1 -0
  142. package/dist/cjs/shared/pressSlopProps.cjs +16 -11
  143. package/dist/cjs/shared/pressSlopProps.native.js +18 -12
  144. package/dist/cjs/shared/pressSlopProps.native.js.map +1 -1
  145. package/dist/cjs/shared/utils.cjs +2 -2
  146. package/dist/cjs/shared/utils.native.js +3 -2
  147. package/dist/cjs/shared/utils.native.js.map +1 -1
  148. package/dist/cjs/themedPrimitives.cjs +15 -2
  149. package/dist/cjs/themedPrimitives.native.js +16 -3
  150. package/dist/cjs/themedPrimitives.native.js.map +1 -1
  151. package/dist/esm/AdaptivePopup/index.mjs +0 -10
  152. package/dist/esm/AdaptivePopup/index.mjs.map +1 -1
  153. package/dist/esm/AdaptivePopup/index.native.js +0 -10
  154. package/dist/esm/AdaptivePopup/index.native.js.map +1 -1
  155. package/dist/esm/Button/index.mjs +6 -3
  156. package/dist/esm/Button/index.mjs.map +1 -1
  157. package/dist/esm/Button/index.native.js +6 -3
  158. package/dist/esm/Button/index.native.js.map +1 -1
  159. package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.mjs +3 -12
  160. package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.mjs.map +1 -1
  161. package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.native.js +3 -12
  162. package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
  163. package/dist/esm/ContextualSaveBar/index.mjs +13 -11
  164. package/dist/esm/ContextualSaveBar/index.mjs.map +1 -1
  165. package/dist/esm/ContextualSaveBar/index.native.js +13 -20
  166. package/dist/esm/ContextualSaveBar/index.native.js.map +1 -1
  167. package/dist/esm/FieldDisplay/index.mjs +24 -12
  168. package/dist/esm/FieldDisplay/index.mjs.map +1 -1
  169. package/dist/esm/FieldDisplay/index.native.js +25 -13
  170. package/dist/esm/FieldDisplay/index.native.js.map +1 -1
  171. package/dist/esm/FloatingPanel/PanelPortal.mjs +119 -0
  172. package/dist/esm/FloatingPanel/PanelPortal.mjs.map +1 -0
  173. package/dist/esm/FloatingPanel/PanelPortal.native.js +14 -0
  174. package/dist/esm/FloatingPanel/PanelPortal.native.js.map +1 -0
  175. package/dist/esm/FloatingPanel/index.mjs +117 -69
  176. package/dist/esm/FloatingPanel/index.mjs.map +1 -1
  177. package/dist/esm/FloatingPanel/index.native.js +68 -13
  178. package/dist/esm/FloatingPanel/index.native.js.map +1 -1
  179. package/dist/esm/FloatingPanel/useFloatingPanel.mjs +4 -2
  180. package/dist/esm/FloatingPanel/useFloatingPanel.mjs.map +1 -1
  181. package/dist/esm/FloatingPanel/useFloatingPanel.native.js +4 -2
  182. package/dist/esm/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  183. package/dist/esm/Form/index.mjs +2 -1
  184. package/dist/esm/Form/index.mjs.map +1 -1
  185. package/dist/esm/Form/index.native.js +2 -1
  186. package/dist/esm/Form/index.native.js.map +1 -1
  187. package/dist/esm/Form/submissionController.mjs +49 -0
  188. package/dist/esm/Form/submissionController.mjs.map +1 -0
  189. package/dist/esm/Form/submissionController.native.js +71 -0
  190. package/dist/esm/Form/submissionController.native.js.map +1 -0
  191. package/dist/esm/InputParts/index.mjs +67 -13
  192. package/dist/esm/InputParts/index.mjs.map +1 -1
  193. package/dist/esm/InputParts/index.native.js +73 -13
  194. package/dist/esm/InputParts/index.native.js.map +1 -1
  195. package/dist/esm/Wheel/index.mjs +0 -2
  196. package/dist/esm/Wheel/index.mjs.map +1 -1
  197. package/dist/esm/Wheel/index.native.js +0 -2
  198. package/dist/esm/Wheel/index.native.js.map +1 -1
  199. package/dist/esm/fields/Barcode/BarcodePreview.mjs +19 -16
  200. package/dist/esm/fields/Barcode/BarcodePreview.mjs.map +1 -1
  201. package/dist/esm/fields/Barcode/BarcodePreview.native.js +22 -19
  202. package/dist/esm/fields/Barcode/BarcodePreview.native.js.map +1 -1
  203. package/dist/esm/fields/Barcode/qr.native.js +34 -34
  204. package/dist/esm/fields/Checkbox/Checkbox.mjs +2 -4
  205. package/dist/esm/fields/Checkbox/Checkbox.mjs.map +1 -1
  206. package/dist/esm/fields/Checkbox/Checkbox.native.js +2 -4
  207. package/dist/esm/fields/Checkbox/Checkbox.native.js.map +1 -1
  208. package/dist/esm/fields/Checkbox/CheckboxBox.mjs +3 -4
  209. package/dist/esm/fields/Checkbox/CheckboxBox.mjs.map +1 -1
  210. package/dist/esm/fields/Checkbox/CheckboxBox.native.js +3 -4
  211. package/dist/esm/fields/Checkbox/CheckboxBox.native.js.map +1 -1
  212. package/dist/esm/fields/ColorPicker/index.mjs +2 -0
  213. package/dist/esm/fields/ColorPicker/index.mjs.map +1 -1
  214. package/dist/esm/fields/ColorPicker/index.native.js +2 -0
  215. package/dist/esm/fields/ColorPicker/index.native.js.map +1 -1
  216. package/dist/esm/fields/ColorPicker/parts.mjs +1 -0
  217. package/dist/esm/fields/ColorPicker/parts.mjs.map +1 -1
  218. package/dist/esm/fields/ColorPicker/parts.native.js +1 -0
  219. package/dist/esm/fields/ColorPicker/parts.native.js.map +1 -1
  220. package/dist/esm/fields/Combobox/index.mjs +197 -191
  221. package/dist/esm/fields/Combobox/index.mjs.map +1 -1
  222. package/dist/esm/fields/Combobox/index.native.js +205 -199
  223. package/dist/esm/fields/Combobox/index.native.js.map +1 -1
  224. package/dist/esm/fields/DatePicker/DateRangePicker.mjs +5 -5
  225. package/dist/esm/fields/DatePicker/DateRangePicker.mjs.map +1 -1
  226. package/dist/esm/fields/DatePicker/DateRangePicker.native.js +5 -5
  227. package/dist/esm/fields/DatePicker/DateRangePicker.native.js.map +1 -1
  228. package/dist/esm/fields/DatePicker/MultiDatePicker.mjs +3 -1
  229. package/dist/esm/fields/DatePicker/MultiDatePicker.mjs.map +1 -1
  230. package/dist/esm/fields/DatePicker/MultiDatePicker.native.js +3 -1
  231. package/dist/esm/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
  232. package/dist/esm/fields/Duration/index.mjs +3 -1
  233. package/dist/esm/fields/Duration/index.mjs.map +1 -1
  234. package/dist/esm/fields/Duration/index.native.js +3 -1
  235. package/dist/esm/fields/Duration/index.native.js.map +1 -1
  236. package/dist/esm/fields/FileUpload/index.mjs +5 -3
  237. package/dist/esm/fields/FileUpload/index.mjs.map +1 -1
  238. package/dist/esm/fields/FileUpload/index.native.js +5 -3
  239. package/dist/esm/fields/FileUpload/index.native.js.map +1 -1
  240. package/dist/esm/fields/FileUpload/nativePickerLoader.mjs +7 -3
  241. package/dist/esm/fields/FileUpload/nativePickerLoader.mjs.map +1 -1
  242. package/dist/esm/fields/FileUpload/nativePickerLoader.native.js +7 -3
  243. package/dist/esm/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
  244. package/dist/esm/fields/Geolocation/GeolocationMap.mjs +3 -0
  245. package/dist/esm/fields/Geolocation/GeolocationMap.mjs.map +1 -1
  246. package/dist/esm/fields/Geolocation/geocoderContext.mjs +44 -0
  247. package/dist/esm/fields/Geolocation/geocoderContext.mjs.map +1 -0
  248. package/dist/esm/fields/Geolocation/geocoderContext.native.js +45 -0
  249. package/dist/esm/fields/Geolocation/geocoderContext.native.js.map +1 -0
  250. package/dist/esm/fields/Geolocation/index.mjs +73 -83
  251. package/dist/esm/fields/Geolocation/index.mjs.map +1 -1
  252. package/dist/esm/fields/Geolocation/index.native.js +73 -83
  253. package/dist/esm/fields/Geolocation/index.native.js.map +1 -1
  254. package/dist/esm/fields/Geolocation/photonGeocoder.mjs +112 -0
  255. package/dist/esm/fields/Geolocation/photonGeocoder.mjs.map +1 -0
  256. package/dist/esm/fields/Geolocation/photonGeocoder.native.js +150 -0
  257. package/dist/esm/fields/Geolocation/photonGeocoder.native.js.map +1 -0
  258. package/dist/esm/fields/Input/index.mjs +3 -1
  259. package/dist/esm/fields/Input/index.mjs.map +1 -1
  260. package/dist/esm/fields/Input/index.native.js +3 -1
  261. package/dist/esm/fields/Input/index.native.js.map +1 -1
  262. package/dist/esm/fields/MentionInput/index.mjs +115 -109
  263. package/dist/esm/fields/MentionInput/index.mjs.map +1 -1
  264. package/dist/esm/fields/MentionInput/index.native.js +127 -121
  265. package/dist/esm/fields/MentionInput/index.native.js.map +1 -1
  266. package/dist/esm/fields/OTPInput/index.mjs +7 -4
  267. package/dist/esm/fields/OTPInput/index.mjs.map +1 -1
  268. package/dist/esm/fields/OTPInput/index.native.js +7 -4
  269. package/dist/esm/fields/OTPInput/index.native.js.map +1 -1
  270. package/dist/esm/fields/PhoneInput/index.mjs +6 -3
  271. package/dist/esm/fields/PhoneInput/index.mjs.map +1 -1
  272. package/dist/esm/fields/PhoneInput/index.native.js +6 -3
  273. package/dist/esm/fields/PhoneInput/index.native.js.map +1 -1
  274. package/dist/esm/fields/PhoneInput/phone.mjs +6 -5
  275. package/dist/esm/fields/PhoneInput/phone.mjs.map +1 -1
  276. package/dist/esm/fields/PhoneInput/phone.native.js +7 -6
  277. package/dist/esm/fields/PhoneInput/phone.native.js.map +1 -1
  278. package/dist/esm/fields/PhoneInput/regionNames.mjs +249 -0
  279. package/dist/esm/fields/PhoneInput/regionNames.mjs.map +1 -0
  280. package/dist/esm/fields/PhoneInput/regionNames.native.js +249 -0
  281. package/dist/esm/fields/PhoneInput/regionNames.native.js.map +1 -0
  282. package/dist/esm/fields/RadioGroup/index.mjs +3 -7
  283. package/dist/esm/fields/RadioGroup/index.mjs.map +1 -1
  284. package/dist/esm/fields/RadioGroup/index.native.js +3 -7
  285. package/dist/esm/fields/RadioGroup/index.native.js.map +1 -1
  286. package/dist/esm/fields/SearchInput/index.mjs +5 -3
  287. package/dist/esm/fields/SearchInput/index.mjs.map +1 -1
  288. package/dist/esm/fields/SearchInput/index.native.js +5 -3
  289. package/dist/esm/fields/SearchInput/index.native.js.map +1 -1
  290. package/dist/esm/fields/Select/index.mjs +10 -7
  291. package/dist/esm/fields/Select/index.mjs.map +1 -1
  292. package/dist/esm/fields/Select/index.native.js +10 -7
  293. package/dist/esm/fields/Select/index.native.js.map +1 -1
  294. package/dist/esm/fields/Signature/index.mjs +7 -6
  295. package/dist/esm/fields/Signature/index.mjs.map +1 -1
  296. package/dist/esm/fields/Signature/index.native.js +7 -6
  297. package/dist/esm/fields/Signature/index.native.js.map +1 -1
  298. package/dist/esm/fields/Slider/index.mjs +10 -4
  299. package/dist/esm/fields/Slider/index.mjs.map +1 -1
  300. package/dist/esm/fields/Slider/index.native.js +10 -6
  301. package/dist/esm/fields/Slider/index.native.js.map +1 -1
  302. package/dist/esm/fields/Slider/jumpMotion.mjs +2 -2
  303. package/dist/esm/fields/Slider/jumpMotion.mjs.map +1 -1
  304. package/dist/esm/fields/Slider/jumpMotion.native.js +2 -1
  305. package/dist/esm/fields/Slider/jumpMotion.native.js.map +1 -1
  306. package/dist/esm/fields/Stepper/index.mjs +24 -5
  307. package/dist/esm/fields/Stepper/index.mjs.map +1 -1
  308. package/dist/esm/fields/Stepper/index.native.js +24 -5
  309. package/dist/esm/fields/Stepper/index.native.js.map +1 -1
  310. package/dist/esm/fields/Switch/footprint.mjs +29 -0
  311. package/dist/esm/fields/Switch/footprint.mjs.map +1 -0
  312. package/dist/esm/fields/Switch/footprint.native.js +29 -0
  313. package/dist/esm/fields/Switch/footprint.native.js.map +1 -0
  314. package/dist/esm/fields/Switch/index.mjs +44 -27
  315. package/dist/esm/fields/Switch/index.mjs.map +1 -1
  316. package/dist/esm/fields/Switch/index.native.js +44 -34
  317. package/dist/esm/fields/Switch/index.native.js.map +1 -1
  318. package/dist/esm/fields/TextArea/index.mjs +6 -3
  319. package/dist/esm/fields/TextArea/index.mjs.map +1 -1
  320. package/dist/esm/fields/TextArea/index.native.js +6 -3
  321. package/dist/esm/fields/TextArea/index.native.js.map +1 -1
  322. package/dist/esm/fields/TimePicker/catalog.mjs +1 -0
  323. package/dist/esm/fields/TimePicker/catalog.mjs.map +1 -1
  324. package/dist/esm/fields/TimePicker/catalog.native.js +1 -0
  325. package/dist/esm/fields/TimePicker/catalog.native.js.map +1 -1
  326. package/dist/esm/fields/TimePicker/parts.mjs +5 -0
  327. package/dist/esm/fields/TimePicker/parts.mjs.map +1 -1
  328. package/dist/esm/fields/TimePicker/parts.native.js +7 -0
  329. package/dist/esm/fields/TimePicker/parts.native.js.map +1 -1
  330. package/dist/esm/index.mjs +6 -1
  331. package/dist/esm/index.mjs.map +1 -1
  332. package/dist/esm/index.native.js +6 -1
  333. package/dist/esm/index.native.js.map +1 -1
  334. package/dist/esm/shared/panelPortal.mjs +24 -0
  335. package/dist/esm/shared/panelPortal.mjs.map +1 -0
  336. package/dist/esm/shared/panelPortal.native.js +34 -0
  337. package/dist/esm/shared/panelPortal.native.js.map +1 -0
  338. package/dist/esm/shared/pressSlopProps.mjs +16 -12
  339. package/dist/esm/shared/pressSlopProps.mjs.map +1 -1
  340. package/dist/esm/shared/pressSlopProps.native.js +18 -13
  341. package/dist/esm/shared/pressSlopProps.native.js.map +1 -1
  342. package/dist/esm/shared/utils.mjs +2 -2
  343. package/dist/esm/shared/utils.mjs.map +1 -1
  344. package/dist/esm/shared/utils.native.js +3 -2
  345. package/dist/esm/shared/utils.native.js.map +1 -1
  346. package/dist/esm/themedPrimitives.mjs +16 -3
  347. package/dist/esm/themedPrimitives.mjs.map +1 -1
  348. package/dist/esm/themedPrimitives.native.js +17 -4
  349. package/dist/esm/themedPrimitives.native.js.map +1 -1
  350. package/dist/jsx/AdaptivePopup/index.mjs +0 -10
  351. package/dist/jsx/AdaptivePopup/index.mjs.map +1 -1
  352. package/dist/jsx/AdaptivePopup/index.native.js +0 -10
  353. package/dist/jsx/AdaptivePopup/index.native.js.map +1 -1
  354. package/dist/jsx/Button/index.mjs +6 -3
  355. package/dist/jsx/Button/index.mjs.map +1 -1
  356. package/dist/jsx/Button/index.native.js +6 -3
  357. package/dist/jsx/Button/index.native.js.map +1 -1
  358. package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.mjs +3 -12
  359. package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.mjs.map +1 -1
  360. package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.native.js +2 -11
  361. package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
  362. package/dist/jsx/ContextualSaveBar/index.mjs +13 -11
  363. package/dist/jsx/ContextualSaveBar/index.mjs.map +1 -1
  364. package/dist/jsx/ContextualSaveBar/index.native.js +12 -19
  365. package/dist/jsx/ContextualSaveBar/index.native.js.map +1 -1
  366. package/dist/jsx/FieldDisplay/index.mjs +24 -12
  367. package/dist/jsx/FieldDisplay/index.mjs.map +1 -1
  368. package/dist/jsx/FieldDisplay/index.native.js +25 -13
  369. package/dist/jsx/FieldDisplay/index.native.js.map +1 -1
  370. package/dist/jsx/FloatingPanel/PanelPortal.mjs +119 -0
  371. package/dist/jsx/FloatingPanel/PanelPortal.mjs.map +1 -0
  372. package/dist/jsx/FloatingPanel/PanelPortal.native.js +43 -0
  373. package/dist/jsx/FloatingPanel/PanelPortal.native.js.map +1 -0
  374. package/dist/jsx/FloatingPanel/index.mjs +117 -69
  375. package/dist/jsx/FloatingPanel/index.mjs.map +1 -1
  376. package/dist/jsx/FloatingPanel/index.native.js +67 -12
  377. package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
  378. package/dist/jsx/FloatingPanel/useFloatingPanel.mjs +4 -2
  379. package/dist/jsx/FloatingPanel/useFloatingPanel.mjs.map +1 -1
  380. package/dist/jsx/FloatingPanel/useFloatingPanel.native.js +4 -2
  381. package/dist/jsx/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  382. package/dist/jsx/Form/index.mjs +2 -1
  383. package/dist/jsx/Form/index.mjs.map +1 -1
  384. package/dist/jsx/Form/index.native.js +2 -1
  385. package/dist/jsx/Form/index.native.js.map +1 -1
  386. package/dist/jsx/Form/submissionController.mjs +49 -0
  387. package/dist/jsx/Form/submissionController.mjs.map +1 -0
  388. package/dist/jsx/Form/submissionController.native.js +99 -0
  389. package/dist/jsx/Form/submissionController.native.js.map +1 -0
  390. package/dist/jsx/InputParts/index.mjs +67 -13
  391. package/dist/jsx/InputParts/index.mjs.map +1 -1
  392. package/dist/jsx/InputParts/index.native.js +72 -12
  393. package/dist/jsx/InputParts/index.native.js.map +1 -1
  394. package/dist/jsx/Wheel/index.mjs +0 -2
  395. package/dist/jsx/Wheel/index.mjs.map +1 -1
  396. package/dist/jsx/Wheel/index.native.js +0 -2
  397. package/dist/jsx/Wheel/index.native.js.map +1 -1
  398. package/dist/jsx/fields/Barcode/BarcodePreview.mjs +19 -16
  399. package/dist/jsx/fields/Barcode/BarcodePreview.mjs.map +1 -1
  400. package/dist/jsx/fields/Barcode/BarcodePreview.native.js +21 -18
  401. package/dist/jsx/fields/Barcode/BarcodePreview.native.js.map +1 -1
  402. package/dist/jsx/fields/Barcode/qr.native.js +34 -34
  403. package/dist/jsx/fields/Checkbox/Checkbox.mjs +2 -4
  404. package/dist/jsx/fields/Checkbox/Checkbox.mjs.map +1 -1
  405. package/dist/jsx/fields/Checkbox/Checkbox.native.js +1 -3
  406. package/dist/jsx/fields/Checkbox/Checkbox.native.js.map +1 -1
  407. package/dist/jsx/fields/Checkbox/CheckboxBox.mjs +3 -4
  408. package/dist/jsx/fields/Checkbox/CheckboxBox.mjs.map +1 -1
  409. package/dist/jsx/fields/Checkbox/CheckboxBox.native.js +2 -3
  410. package/dist/jsx/fields/Checkbox/CheckboxBox.native.js.map +1 -1
  411. package/dist/jsx/fields/ColorPicker/index.mjs +2 -0
  412. package/dist/jsx/fields/ColorPicker/index.mjs.map +1 -1
  413. package/dist/jsx/fields/ColorPicker/index.native.js +2 -0
  414. package/dist/jsx/fields/ColorPicker/index.native.js.map +1 -1
  415. package/dist/jsx/fields/ColorPicker/parts.mjs +1 -0
  416. package/dist/jsx/fields/ColorPicker/parts.mjs.map +1 -1
  417. package/dist/jsx/fields/ColorPicker/parts.native.js +1 -0
  418. package/dist/jsx/fields/ColorPicker/parts.native.js.map +1 -1
  419. package/dist/jsx/fields/Combobox/index.mjs +197 -191
  420. package/dist/jsx/fields/Combobox/index.mjs.map +1 -1
  421. package/dist/jsx/fields/Combobox/index.native.js +214 -208
  422. package/dist/jsx/fields/Combobox/index.native.js.map +1 -1
  423. package/dist/jsx/fields/DatePicker/DateRangePicker.mjs +5 -5
  424. package/dist/jsx/fields/DatePicker/DateRangePicker.mjs.map +1 -1
  425. package/dist/jsx/fields/DatePicker/DateRangePicker.native.js +7 -7
  426. package/dist/jsx/fields/DatePicker/DateRangePicker.native.js.map +1 -1
  427. package/dist/jsx/fields/DatePicker/MultiDatePicker.mjs +3 -1
  428. package/dist/jsx/fields/DatePicker/MultiDatePicker.mjs.map +1 -1
  429. package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js +6 -4
  430. package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
  431. package/dist/jsx/fields/Duration/index.mjs +3 -1
  432. package/dist/jsx/fields/Duration/index.mjs.map +1 -1
  433. package/dist/jsx/fields/Duration/index.native.js +5 -3
  434. package/dist/jsx/fields/Duration/index.native.js.map +1 -1
  435. package/dist/jsx/fields/FileUpload/index.mjs +5 -3
  436. package/dist/jsx/fields/FileUpload/index.mjs.map +1 -1
  437. package/dist/jsx/fields/FileUpload/index.native.js +10 -8
  438. package/dist/jsx/fields/FileUpload/index.native.js.map +1 -1
  439. package/dist/jsx/fields/FileUpload/nativePickerLoader.mjs +7 -3
  440. package/dist/jsx/fields/FileUpload/nativePickerLoader.mjs.map +1 -1
  441. package/dist/jsx/fields/FileUpload/nativePickerLoader.native.js +7 -2
  442. package/dist/jsx/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
  443. package/dist/jsx/fields/Geolocation/GeolocationMap.mjs +3 -0
  444. package/dist/jsx/fields/Geolocation/GeolocationMap.mjs.map +1 -1
  445. package/dist/jsx/fields/Geolocation/geocoderContext.mjs +44 -0
  446. package/dist/jsx/fields/Geolocation/geocoderContext.mjs.map +1 -0
  447. package/dist/jsx/fields/Geolocation/geocoderContext.native.js +75 -0
  448. package/dist/jsx/fields/Geolocation/geocoderContext.native.js.map +1 -0
  449. package/dist/jsx/fields/Geolocation/index.mjs +73 -83
  450. package/dist/jsx/fields/Geolocation/index.mjs.map +1 -1
  451. package/dist/jsx/fields/Geolocation/index.native.js +72 -82
  452. package/dist/jsx/fields/Geolocation/index.native.js.map +1 -1
  453. package/dist/jsx/fields/Geolocation/photonGeocoder.mjs +112 -0
  454. package/dist/jsx/fields/Geolocation/photonGeocoder.mjs.map +1 -0
  455. package/dist/jsx/fields/Geolocation/photonGeocoder.native.js +179 -0
  456. package/dist/jsx/fields/Geolocation/photonGeocoder.native.js.map +1 -0
  457. package/dist/jsx/fields/Input/index.mjs +3 -1
  458. package/dist/jsx/fields/Input/index.mjs.map +1 -1
  459. package/dist/jsx/fields/Input/index.native.js +7 -5
  460. package/dist/jsx/fields/Input/index.native.js.map +1 -1
  461. package/dist/jsx/fields/MentionInput/index.mjs +115 -109
  462. package/dist/jsx/fields/MentionInput/index.mjs.map +1 -1
  463. package/dist/jsx/fields/MentionInput/index.native.js +130 -124
  464. package/dist/jsx/fields/MentionInput/index.native.js.map +1 -1
  465. package/dist/jsx/fields/OTPInput/index.mjs +7 -4
  466. package/dist/jsx/fields/OTPInput/index.mjs.map +1 -1
  467. package/dist/jsx/fields/OTPInput/index.native.js +11 -8
  468. package/dist/jsx/fields/OTPInput/index.native.js.map +1 -1
  469. package/dist/jsx/fields/PhoneInput/index.mjs +6 -3
  470. package/dist/jsx/fields/PhoneInput/index.mjs.map +1 -1
  471. package/dist/jsx/fields/PhoneInput/index.native.js +9 -6
  472. package/dist/jsx/fields/PhoneInput/index.native.js.map +1 -1
  473. package/dist/jsx/fields/PhoneInput/phone.mjs +6 -5
  474. package/dist/jsx/fields/PhoneInput/phone.mjs.map +1 -1
  475. package/dist/jsx/fields/PhoneInput/phone.native.js +7 -6
  476. package/dist/jsx/fields/PhoneInput/phone.native.js.map +1 -1
  477. package/dist/jsx/fields/PhoneInput/regionNames.mjs +249 -0
  478. package/dist/jsx/fields/PhoneInput/regionNames.mjs.map +1 -0
  479. package/dist/jsx/fields/PhoneInput/regionNames.native.js +277 -0
  480. package/dist/jsx/fields/PhoneInput/regionNames.native.js.map +1 -0
  481. package/dist/jsx/fields/RadioGroup/index.mjs +3 -7
  482. package/dist/jsx/fields/RadioGroup/index.mjs.map +1 -1
  483. package/dist/jsx/fields/RadioGroup/index.native.js +2 -6
  484. package/dist/jsx/fields/RadioGroup/index.native.js.map +1 -1
  485. package/dist/jsx/fields/SearchInput/index.mjs +5 -3
  486. package/dist/jsx/fields/SearchInput/index.mjs.map +1 -1
  487. package/dist/jsx/fields/SearchInput/index.native.js +10 -8
  488. package/dist/jsx/fields/SearchInput/index.native.js.map +1 -1
  489. package/dist/jsx/fields/Select/index.mjs +10 -7
  490. package/dist/jsx/fields/Select/index.mjs.map +1 -1
  491. package/dist/jsx/fields/Select/index.native.js +20 -17
  492. package/dist/jsx/fields/Select/index.native.js.map +1 -1
  493. package/dist/jsx/fields/Signature/index.mjs +7 -6
  494. package/dist/jsx/fields/Signature/index.mjs.map +1 -1
  495. package/dist/jsx/fields/Signature/index.native.js +10 -9
  496. package/dist/jsx/fields/Signature/index.native.js.map +1 -1
  497. package/dist/jsx/fields/Slider/index.mjs +10 -4
  498. package/dist/jsx/fields/Slider/index.mjs.map +1 -1
  499. package/dist/jsx/fields/Slider/index.native.js +21 -17
  500. package/dist/jsx/fields/Slider/index.native.js.map +1 -1
  501. package/dist/jsx/fields/Slider/jumpMotion.mjs +2 -2
  502. package/dist/jsx/fields/Slider/jumpMotion.mjs.map +1 -1
  503. package/dist/jsx/fields/Slider/jumpMotion.native.js +2 -1
  504. package/dist/jsx/fields/Slider/jumpMotion.native.js.map +1 -1
  505. package/dist/jsx/fields/Stepper/index.mjs +24 -5
  506. package/dist/jsx/fields/Stepper/index.mjs.map +1 -1
  507. package/dist/jsx/fields/Stepper/index.native.js +25 -6
  508. package/dist/jsx/fields/Stepper/index.native.js.map +1 -1
  509. package/dist/jsx/fields/Switch/footprint.mjs +29 -0
  510. package/dist/jsx/fields/Switch/footprint.mjs.map +1 -0
  511. package/dist/jsx/fields/Switch/footprint.native.js +57 -0
  512. package/dist/jsx/fields/Switch/footprint.native.js.map +1 -0
  513. package/dist/jsx/fields/Switch/index.mjs +44 -27
  514. package/dist/jsx/fields/Switch/index.mjs.map +1 -1
  515. package/dist/jsx/fields/Switch/index.native.js +60 -50
  516. package/dist/jsx/fields/Switch/index.native.js.map +1 -1
  517. package/dist/jsx/fields/TextArea/index.mjs +6 -3
  518. package/dist/jsx/fields/TextArea/index.mjs.map +1 -1
  519. package/dist/jsx/fields/TextArea/index.native.js +6 -3
  520. package/dist/jsx/fields/TextArea/index.native.js.map +1 -1
  521. package/dist/jsx/fields/TimePicker/catalog.mjs +1 -0
  522. package/dist/jsx/fields/TimePicker/catalog.mjs.map +1 -1
  523. package/dist/jsx/fields/TimePicker/catalog.native.js +1 -0
  524. package/dist/jsx/fields/TimePicker/catalog.native.js.map +1 -1
  525. package/dist/jsx/fields/TimePicker/parts.mjs +5 -0
  526. package/dist/jsx/fields/TimePicker/parts.mjs.map +1 -1
  527. package/dist/jsx/fields/TimePicker/parts.native.js +7 -0
  528. package/dist/jsx/fields/TimePicker/parts.native.js.map +1 -1
  529. package/dist/jsx/index.js +6 -1
  530. package/dist/jsx/index.js.map +1 -1
  531. package/dist/jsx/index.mjs +6 -1
  532. package/dist/jsx/index.mjs.map +1 -1
  533. package/dist/jsx/index.native.js +12 -0
  534. package/dist/jsx/index.native.js.map +1 -1
  535. package/dist/jsx/shared/panelPortal.mjs +24 -0
  536. package/dist/jsx/shared/panelPortal.mjs.map +1 -0
  537. package/dist/jsx/shared/panelPortal.native.js +65 -0
  538. package/dist/jsx/shared/panelPortal.native.js.map +1 -0
  539. package/dist/jsx/shared/pressSlopProps.mjs +16 -12
  540. package/dist/jsx/shared/pressSlopProps.mjs.map +1 -1
  541. package/dist/jsx/shared/pressSlopProps.native.js +18 -12
  542. package/dist/jsx/shared/pressSlopProps.native.js.map +1 -1
  543. package/dist/jsx/shared/utils.mjs +2 -2
  544. package/dist/jsx/shared/utils.mjs.map +1 -1
  545. package/dist/jsx/shared/utils.native.js +3 -2
  546. package/dist/jsx/shared/utils.native.js.map +1 -1
  547. package/dist/jsx/themedPrimitives.mjs +16 -3
  548. package/dist/jsx/themedPrimitives.mjs.map +1 -1
  549. package/dist/jsx/themedPrimitives.native.js +16 -3
  550. package/dist/jsx/themedPrimitives.native.js.map +1 -1
  551. package/package.json +15 -11
  552. package/src/AdaptivePopup/AdaptivePopup.spec.tsx +2 -3
  553. package/src/AdaptivePopup/index.tsx +11 -10
  554. package/src/Button/Button.borderLadder.spec.tsx +82 -0
  555. package/src/Button/Button.labelInk.spec.tsx +4 -1
  556. package/src/Button/Button.radiusLaw.spec.tsx +153 -0
  557. package/src/Button/index.tsx +6 -3
  558. package/src/ContextualSaveBar/ContextualSaveBar.spec.tsx +24 -0
  559. package/src/ContextualSaveBar/ContextualSaveBar.stories.tsx +37 -1
  560. package/src/ContextualSaveBar/UnsavedChangesDialog.tsx +3 -11
  561. package/src/ContextualSaveBar/index.tsx +17 -11
  562. package/src/ErrorSummary.stories.tsx +20 -11
  563. package/src/FieldDisplay/FieldDisplay.spec.tsx +47 -2
  564. package/src/FieldDisplay/index.tsx +21 -13
  565. package/src/FloatingPanel/FloatingPanel.detentLayout.spec.tsx +148 -0
  566. package/src/FloatingPanel/FloatingPanel.spec.tsx +140 -1
  567. package/src/FloatingPanel/FloatingPanel.stories.tsx +86 -1
  568. package/src/FloatingPanel/PanelPortal.native.tsx +15 -0
  569. package/src/FloatingPanel/PanelPortal.tsx +149 -0
  570. package/src/FloatingPanel/index.native.tsx +96 -19
  571. package/src/FloatingPanel/index.tsx +172 -86
  572. package/src/FloatingPanel/panelPortal.spec.tsx +142 -0
  573. package/src/FloatingPanel/panelWidthContract.spec.ts +17 -5
  574. package/src/FloatingPanel/touchRecipeHydration.spec.tsx +82 -0
  575. package/src/FloatingPanel/useFloatingPanel.ts +5 -2
  576. package/src/FloatingPanel/viewportHydration.spec.tsx +118 -0
  577. package/src/Form/index.tsx +2 -1
  578. package/src/Form/submission.spec.tsx +148 -0
  579. package/src/Form/submissionController.spec.ts +73 -0
  580. package/src/Form/submissionController.ts +59 -0
  581. package/src/Form/submissionDiscard.spec.tsx +41 -0
  582. package/src/Form/submissionPaths.spec.tsx +214 -0
  583. package/src/InputParts/index.tsx +48 -12
  584. package/src/Label/Label.stories.tsx +27 -11
  585. package/src/Wheel/Wheel.spec.tsx +9 -2
  586. package/src/Wheel/index.tsx +0 -2
  587. package/src/fieldFamilyStories.radius.spec.tsx +48 -0
  588. package/src/fields/Barcode/BarcodePreview.spec.tsx +32 -12
  589. package/src/fields/Barcode/BarcodePreview.stories.tsx +5 -4
  590. package/src/fields/Barcode/BarcodePreview.tsx +31 -25
  591. package/src/fields/Checkbox/Checkbox.native.spec.tsx +92 -0
  592. package/src/fields/Checkbox/Checkbox.stories.tsx +1 -0
  593. package/src/fields/Checkbox/Checkbox.tsx +2 -2
  594. package/src/fields/Checkbox/CheckboxBox.spec.tsx +13 -13
  595. package/src/fields/Checkbox/CheckboxBox.tsx +7 -1
  596. package/src/fields/ColorPicker/index.tsx +6 -1
  597. package/src/fields/ColorPicker/parts.tsx +1 -0
  598. package/src/fields/Combobox/Combobox.spec.tsx +85 -55
  599. package/src/fields/Combobox/index.tsx +259 -240
  600. package/src/fields/DatePicker/DateRangePicker.tsx +5 -3
  601. package/src/fields/DatePicker/MultiDatePicker.tsx +3 -1
  602. package/src/fields/Duration/index.tsx +3 -1
  603. package/src/fields/FileUpload/index.tsx +13 -3
  604. package/src/fields/FileUpload/nativePickerLoader.spec.ts +34 -0
  605. package/src/fields/FileUpload/nativePickerLoader.ts +11 -2
  606. package/src/fields/Geolocation/Geolocation.spec.tsx +165 -4
  607. package/src/fields/Geolocation/Geolocation.stories.tsx +110 -26
  608. package/src/fields/Geolocation/GeolocationMap.tsx +3 -0
  609. package/src/fields/Geolocation/geocoderContext.tsx +56 -0
  610. package/src/fields/Geolocation/index.tsx +75 -80
  611. package/src/fields/Geolocation/photonGeocoder.spec.ts +214 -0
  612. package/src/fields/Geolocation/photonGeocoder.ts +150 -0
  613. package/src/fields/Input/index.tsx +3 -1
  614. package/src/fields/MentionInput/MentionInput.spec.tsx +41 -30
  615. package/src/fields/MentionInput/index.tsx +128 -119
  616. package/src/fields/OTPInput/index.tsx +7 -4
  617. package/src/fields/PhoneInput/PhoneInput.spec.tsx +63 -0
  618. package/src/fields/PhoneInput/index.tsx +13 -8
  619. package/src/fields/PhoneInput/phone.native.spec.ts +32 -0
  620. package/src/fields/PhoneInput/phone.ts +5 -2
  621. package/src/fields/PhoneInput/regionNames.ts +250 -0
  622. package/src/fields/RadioGroup/RadioGroup.stories.tsx +4 -3
  623. package/src/fields/RadioGroup/index.tsx +3 -2
  624. package/src/fields/Rating/StarInk.native.spec.tsx +1 -1
  625. package/src/fields/SearchInput/index.tsx +4 -3
  626. package/src/fields/Select/Select.spec.tsx +36 -29
  627. package/src/fields/Select/index.tsx +14 -5
  628. package/src/fields/Signature/index.tsx +7 -3
  629. package/src/fields/Slider/index.tsx +14 -4
  630. package/src/fields/Slider/jumpMotion.ts +6 -2
  631. package/src/fields/Stepper/Stepper.spec.tsx +30 -0
  632. package/src/fields/Stepper/index.tsx +34 -4
  633. package/src/fields/Switch/Switch.footprint.native.spec.tsx +58 -0
  634. package/src/fields/Switch/Switch.footprint.spec.tsx +79 -0
  635. package/src/fields/Switch/Switch.radius.spec.tsx +37 -6
  636. package/src/fields/Switch/footprint.ts +45 -0
  637. package/src/fields/Switch/index.tsx +46 -49
  638. package/src/fields/TextArea/TextArea.spec.tsx +30 -1
  639. package/src/fields/TextArea/index.tsx +6 -3
  640. package/src/fields/TimePicker/TimePicker.native.spec.tsx +48 -0
  641. package/src/fields/TimePicker/catalog.tsx +1 -0
  642. package/src/fields/TimePicker/parts.tsx +4 -0
  643. package/src/fields/ToggleGroup/ToggleGroup.spec.tsx +17 -8
  644. package/src/fields/pickerShellPadding.spec.tsx +54 -0
  645. package/src/index.ts +8 -0
  646. package/src/shared/panelPortal.ts +36 -0
  647. package/src/shared/pressSlopProps.spec.ts +27 -1
  648. package/src/shared/pressSlopProps.ts +26 -17
  649. package/src/shared/utils.ts +2 -2
  650. package/src/themedPrimitives.tsx +16 -3
  651. package/types/AdaptivePopup/index.d.ts.map +1 -1
  652. package/types/Button/index.d.ts.map +1 -1
  653. package/types/ContextualSaveBar/UnsavedChangesDialog.d.ts.map +1 -1
  654. package/types/ContextualSaveBar/index.d.ts.map +1 -1
  655. package/types/FieldDisplay/index.d.ts.map +1 -1
  656. package/types/FloatingPanel/PanelPortal.d.ts +24 -0
  657. package/types/FloatingPanel/PanelPortal.d.ts.map +1 -0
  658. package/types/FloatingPanel/PanelPortal.native.d.ts +9 -0
  659. package/types/FloatingPanel/PanelPortal.native.d.ts.map +1 -0
  660. package/types/FloatingPanel/index.d.ts +0 -5
  661. package/types/FloatingPanel/index.d.ts.map +1 -1
  662. package/types/FloatingPanel/index.native.d.ts.map +1 -1
  663. package/types/FloatingPanel/useFloatingPanel.d.ts.map +1 -1
  664. package/types/Form/index.d.ts.map +1 -1
  665. package/types/Form/submissionController.d.ts +21 -0
  666. package/types/Form/submissionController.d.ts.map +1 -0
  667. package/types/InputParts/index.d.ts +34 -2
  668. package/types/InputParts/index.d.ts.map +1 -1
  669. package/types/Wheel/index.d.ts.map +1 -1
  670. package/types/fields/Barcode/BarcodePreview.d.ts +7 -3
  671. package/types/fields/Barcode/BarcodePreview.d.ts.map +1 -1
  672. package/types/fields/Checkbox/CheckboxBox.d.ts +5 -0
  673. package/types/fields/Checkbox/CheckboxBox.d.ts.map +1 -1
  674. package/types/fields/ColorPicker/index.d.ts.map +1 -1
  675. package/types/fields/ColorPicker/parts.d.ts +2 -0
  676. package/types/fields/ColorPicker/parts.d.ts.map +1 -1
  677. package/types/fields/Combobox/index.d.ts.map +1 -1
  678. package/types/fields/DatePicker/DateRangePicker.d.ts.map +1 -1
  679. package/types/fields/DatePicker/MultiDatePicker.d.ts.map +1 -1
  680. package/types/fields/Duration/index.d.ts.map +1 -1
  681. package/types/fields/FileUpload/index.d.ts.map +1 -1
  682. package/types/fields/FileUpload/nativePickerLoader.d.ts +8 -0
  683. package/types/fields/FileUpload/nativePickerLoader.d.ts.map +1 -1
  684. package/types/fields/Geolocation/GeolocationMap.d.ts.map +1 -1
  685. package/types/fields/Geolocation/geocoderContext.d.ts +24 -0
  686. package/types/fields/Geolocation/geocoderContext.d.ts.map +1 -0
  687. package/types/fields/Geolocation/index.d.ts +2 -1
  688. package/types/fields/Geolocation/index.d.ts.map +1 -1
  689. package/types/fields/Geolocation/photonGeocoder.d.ts +46 -0
  690. package/types/fields/Geolocation/photonGeocoder.d.ts.map +1 -0
  691. package/types/fields/Input/index.d.ts +19 -1
  692. package/types/fields/Input/index.d.ts.map +1 -1
  693. package/types/fields/MentionInput/index.d.ts.map +1 -1
  694. package/types/fields/OTPInput/index.d.ts +1 -1
  695. package/types/fields/OTPInput/index.d.ts.map +1 -1
  696. package/types/fields/PhoneInput/index.d.ts.map +1 -1
  697. package/types/fields/PhoneInput/phone.d.ts.map +1 -1
  698. package/types/fields/PhoneInput/regionNames.d.ts +2 -0
  699. package/types/fields/PhoneInput/regionNames.d.ts.map +1 -0
  700. package/types/fields/RadioGroup/index.d.ts.map +1 -1
  701. package/types/fields/SearchInput/index.d.ts.map +1 -1
  702. package/types/fields/Select/index.d.ts.map +1 -1
  703. package/types/fields/Signature/index.d.ts.map +1 -1
  704. package/types/fields/Slider/index.d.ts.map +1 -1
  705. package/types/fields/Slider/jumpMotion.d.ts +1 -1
  706. package/types/fields/Slider/jumpMotion.d.ts.map +1 -1
  707. package/types/fields/Stepper/index.d.ts +6 -0
  708. package/types/fields/Stepper/index.d.ts.map +1 -1
  709. package/types/fields/Switch/footprint.d.ts +12 -0
  710. package/types/fields/Switch/footprint.d.ts.map +1 -0
  711. package/types/fields/Switch/index.d.ts.map +1 -1
  712. package/types/fields/TextArea/index.d.ts.map +1 -1
  713. package/types/fields/TimePicker/catalog.d.ts.map +1 -1
  714. package/types/fields/TimePicker/parts.d.ts.map +1 -1
  715. package/types/index.d.ts +8 -0
  716. package/types/index.d.ts.map +1 -1
  717. package/types/shared/panelPortal.d.ts +13 -0
  718. package/types/shared/panelPortal.d.ts.map +1 -0
  719. package/types/shared/pressSlopProps.d.ts +9 -2
  720. package/types/shared/pressSlopProps.d.ts.map +1 -1
  721. package/types/shared/utils.d.ts +1 -1
  722. package/types/shared/utils.d.ts.map +1 -1
  723. package/types/themedPrimitives.d.ts +48 -1
  724. package/types/themedPrimitives.d.ts.map +1 -1
@@ -1,3 +1,4 @@
1
+ import { useTouchSurface } from "@multiplatform.one/theme";
1
2
  import { CaretDownIcon, GlobeIcon } from "@phosphor-icons/react";
2
3
  import { ensureCompositeFocusRing, useGlyphColor } from "@multiplatform.one/theme";
3
4
  import type { DeepKeys, DeepValue } from "@tanstack/form-core";
@@ -181,6 +182,7 @@ export function PhoneInput<
181
182
  TFormValidator extends Validator<TParentData, unknown> | undefined = undefined,
182
183
  TData extends DeepValue<TParentData, TName> = DeepValue<TParentData, TName>,
183
184
  >(props: PhoneInputProps<TParentData, TName, TFieldValidator, TFormValidator, TData>) {
185
+ const hydrationTouch = useTouchSurface();
184
186
  const {
185
187
  defaultValue,
186
188
  form,
@@ -377,17 +379,20 @@ export function PhoneInput<
377
379
  >
378
380
  +{dialOf(code)}
379
381
  </Text>
380
- <CaretDownIcon size={caretSize} color={glyphColor} />
382
+ {inTableCell ? null : <CaretDownIcon size={caretSize} color={glyphColor} />}
381
383
  </XStack>
382
384
  );
383
385
  }}
384
386
  />
385
- <View
386
- width={1}
387
- alignSelf="stretch"
388
- marginVertical="$1.5"
389
- backgroundColor={formCommonColors.divider}
390
- />
387
+ {inTableCell ? null : (
388
+ <View
389
+ data-testid="phone-divider"
390
+ width={1}
391
+ alignSelf="stretch"
392
+ marginVertical="$1.5"
393
+ backgroundColor={formCommonColors.divider}
394
+ />
395
+ )}
391
396
  </View>
392
397
  </InputParts.Section>
393
398
  <InputParts.Section>
@@ -415,7 +420,7 @@ export function PhoneInput<
415
420
  );
416
421
 
417
422
  if (skeleton) {
418
- const controlH = getFieldHeight(sizeToken as any);
423
+ const controlH = getFieldHeight(sizeToken as any, 1, hydrationTouch);
419
424
  return (
420
425
  <FieldLayout
421
426
  id={id}
@@ -0,0 +1,32 @@
1
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
2
+
3
+ // Hermes ships Intl without DisplayNames. Without a fallback every native
4
+ // country row read "flag DE +49" and a search for "Germ" found nothing
5
+ // (MPO-263).
6
+ beforeEach(() => {
7
+ vi.resetModules();
8
+ vi.stubGlobal("Intl", { ...Intl, DisplayNames: undefined });
9
+ });
10
+ afterEach(() => {
11
+ vi.unstubAllGlobals();
12
+ });
13
+
14
+ describe("phone country options without Intl.DisplayNames", () => {
15
+ it("still names every country", async () => {
16
+ const { getCountryOptions } = await import("./phone");
17
+ const options = getCountryOptions();
18
+ const unnamed = options.filter((option) => option.label.split(" ")[1] === option.value);
19
+ expect(unnamed.map((option) => option.value)).toEqual([]);
20
+ expect(options.find((option) => option.value === "DE")?.label).toContain("Germany");
21
+ });
22
+
23
+ it("finds Germany by a partial name, as the Combobox filter matches", async () => {
24
+ const { getCountryOptions } = await import("./phone");
25
+ const query = "germ";
26
+ const hits = getCountryOptions().filter(
27
+ (option) =>
28
+ option.label.toLowerCase().includes(query) || option.keywords.toLowerCase().includes(query),
29
+ );
30
+ expect(hits.map((option) => option.value)).toEqual(["DE"]);
31
+ });
32
+ });
@@ -1,5 +1,6 @@
1
1
  import { sizeRecipeForToken } from "@multiplatform.one/theme";
2
2
  import { dialCodes, regionCodes } from "./dialCodes";
3
+ import { regionNames } from "./regionNames";
3
4
 
4
5
  /** Countries pinned to the top of the picker (intl-tel preferredCountries). */
5
6
  export const PREFERRED_REGIONS = [
@@ -133,10 +134,12 @@ export function dialOf(region: string): string {
133
134
 
134
135
  function regionName(code: string): string {
135
136
  try {
136
- return new Intl.DisplayNames(["en"], { type: "region" }).of(code) ?? code;
137
+ const name = new Intl.DisplayNames(["en"], { type: "region" }).of(code);
138
+ if (name && name !== code) return name;
137
139
  } catch {
138
- return code;
140
+ // Hermes: no Intl.DisplayNames.
139
141
  }
142
+ return regionNames[code] ?? code;
140
143
  }
141
144
 
142
145
  export function detectRegion(raw: string, hint = "US"): string {
@@ -0,0 +1,250 @@
1
+ // English region names for the phone country list. Hermes has no
2
+ // Intl.DisplayNames, so without this table native rows read "DE" and a search
3
+ // for "Germany" finds nothing (MPO-263). Generated from Intl.DisplayNames("en").
4
+ export const regionNames: Record<string, string> = {
5
+ AC: "Ascension Island",
6
+ AD: "Andorra",
7
+ AE: "United Arab Emirates",
8
+ AF: "Afghanistan",
9
+ AG: "Antigua & Barbuda",
10
+ AI: "Anguilla",
11
+ AL: "Albania",
12
+ AM: "Armenia",
13
+ AO: "Angola",
14
+ AR: "Argentina",
15
+ AS: "American Samoa",
16
+ AT: "Austria",
17
+ AU: "Australia",
18
+ AW: "Aruba",
19
+ AX: "Åland Islands",
20
+ AZ: "Azerbaijan",
21
+ BA: "Bosnia & Herzegovina",
22
+ BB: "Barbados",
23
+ BD: "Bangladesh",
24
+ BE: "Belgium",
25
+ BF: "Burkina Faso",
26
+ BG: "Bulgaria",
27
+ BH: "Bahrain",
28
+ BI: "Burundi",
29
+ BJ: "Benin",
30
+ BL: "St. Barthélemy",
31
+ BM: "Bermuda",
32
+ BN: "Brunei",
33
+ BO: "Bolivia",
34
+ BQ: "Caribbean Netherlands",
35
+ BR: "Brazil",
36
+ BS: "Bahamas",
37
+ BT: "Bhutan",
38
+ BW: "Botswana",
39
+ BY: "Belarus",
40
+ BZ: "Belize",
41
+ CA: "Canada",
42
+ CC: "Cocos (Keeling) Islands",
43
+ CD: "Congo - Kinshasa",
44
+ CF: "Central African Republic",
45
+ CG: "Congo - Brazzaville",
46
+ CH: "Switzerland",
47
+ CI: "Côte d’Ivoire",
48
+ CK: "Cook Islands",
49
+ CL: "Chile",
50
+ CM: "Cameroon",
51
+ CN: "China",
52
+ CO: "Colombia",
53
+ CR: "Costa Rica",
54
+ CU: "Cuba",
55
+ CV: "Cape Verde",
56
+ CW: "Curaçao",
57
+ CX: "Christmas Island",
58
+ CY: "Cyprus",
59
+ CZ: "Czechia",
60
+ DE: "Germany",
61
+ DJ: "Djibouti",
62
+ DK: "Denmark",
63
+ DM: "Dominica",
64
+ DO: "Dominican Republic",
65
+ DZ: "Algeria",
66
+ EC: "Ecuador",
67
+ EE: "Estonia",
68
+ EG: "Egypt",
69
+ EH: "Western Sahara",
70
+ ER: "Eritrea",
71
+ ES: "Spain",
72
+ ET: "Ethiopia",
73
+ FI: "Finland",
74
+ FJ: "Fiji",
75
+ FK: "Falkland Islands",
76
+ FM: "Micronesia",
77
+ FO: "Faroe Islands",
78
+ FR: "France",
79
+ GA: "Gabon",
80
+ GB: "United Kingdom",
81
+ GD: "Grenada",
82
+ GE: "Georgia",
83
+ GF: "French Guiana",
84
+ GG: "Guernsey",
85
+ GH: "Ghana",
86
+ GI: "Gibraltar",
87
+ GL: "Greenland",
88
+ GM: "Gambia",
89
+ GN: "Guinea",
90
+ GP: "Guadeloupe",
91
+ GQ: "Equatorial Guinea",
92
+ GR: "Greece",
93
+ GT: "Guatemala",
94
+ GU: "Guam",
95
+ GW: "Guinea-Bissau",
96
+ GY: "Guyana",
97
+ HK: "Hong Kong SAR China",
98
+ HN: "Honduras",
99
+ HR: "Croatia",
100
+ HT: "Haiti",
101
+ HU: "Hungary",
102
+ ID: "Indonesia",
103
+ IE: "Ireland",
104
+ IL: "Israel",
105
+ IM: "Isle of Man",
106
+ IN: "India",
107
+ IO: "British Indian Ocean Territory",
108
+ IQ: "Iraq",
109
+ IR: "Iran",
110
+ IS: "Iceland",
111
+ IT: "Italy",
112
+ JE: "Jersey",
113
+ JM: "Jamaica",
114
+ JO: "Jordan",
115
+ JP: "Japan",
116
+ KE: "Kenya",
117
+ KG: "Kyrgyzstan",
118
+ KH: "Cambodia",
119
+ KI: "Kiribati",
120
+ KM: "Comoros",
121
+ KN: "St. Kitts & Nevis",
122
+ KP: "North Korea",
123
+ KR: "South Korea",
124
+ KW: "Kuwait",
125
+ KY: "Cayman Islands",
126
+ KZ: "Kazakhstan",
127
+ LA: "Laos",
128
+ LB: "Lebanon",
129
+ LC: "St. Lucia",
130
+ LI: "Liechtenstein",
131
+ LK: "Sri Lanka",
132
+ LR: "Liberia",
133
+ LS: "Lesotho",
134
+ LT: "Lithuania",
135
+ LU: "Luxembourg",
136
+ LV: "Latvia",
137
+ LY: "Libya",
138
+ MA: "Morocco",
139
+ MC: "Monaco",
140
+ MD: "Moldova",
141
+ ME: "Montenegro",
142
+ MF: "St. Martin",
143
+ MG: "Madagascar",
144
+ MH: "Marshall Islands",
145
+ MK: "North Macedonia",
146
+ ML: "Mali",
147
+ MM: "Myanmar (Burma)",
148
+ MN: "Mongolia",
149
+ MO: "Macao SAR China",
150
+ MP: "Northern Mariana Islands",
151
+ MQ: "Martinique",
152
+ MR: "Mauritania",
153
+ MS: "Montserrat",
154
+ MT: "Malta",
155
+ MU: "Mauritius",
156
+ MV: "Maldives",
157
+ MW: "Malawi",
158
+ MX: "Mexico",
159
+ MY: "Malaysia",
160
+ MZ: "Mozambique",
161
+ NA: "Namibia",
162
+ NC: "New Caledonia",
163
+ NE: "Niger",
164
+ NF: "Norfolk Island",
165
+ NG: "Nigeria",
166
+ NI: "Nicaragua",
167
+ NL: "Netherlands",
168
+ NO: "Norway",
169
+ NP: "Nepal",
170
+ NR: "Nauru",
171
+ NU: "Niue",
172
+ NZ: "New Zealand",
173
+ OM: "Oman",
174
+ PA: "Panama",
175
+ PE: "Peru",
176
+ PF: "French Polynesia",
177
+ PG: "Papua New Guinea",
178
+ PH: "Philippines",
179
+ PK: "Pakistan",
180
+ PL: "Poland",
181
+ PM: "St. Pierre & Miquelon",
182
+ PR: "Puerto Rico",
183
+ PS: "Palestinian Territories",
184
+ PT: "Portugal",
185
+ PW: "Palau",
186
+ PY: "Paraguay",
187
+ QA: "Qatar",
188
+ RE: "Réunion",
189
+ RO: "Romania",
190
+ RS: "Serbia",
191
+ RU: "Russia",
192
+ RW: "Rwanda",
193
+ SA: "Saudi Arabia",
194
+ SB: "Solomon Islands",
195
+ SC: "Seychelles",
196
+ SD: "Sudan",
197
+ SE: "Sweden",
198
+ SG: "Singapore",
199
+ SH: "St. Helena",
200
+ SI: "Slovenia",
201
+ SJ: "Svalbard & Jan Mayen",
202
+ SK: "Slovakia",
203
+ SL: "Sierra Leone",
204
+ SM: "San Marino",
205
+ SN: "Senegal",
206
+ SO: "Somalia",
207
+ SR: "Suriname",
208
+ SS: "South Sudan",
209
+ ST: "São Tomé & Príncipe",
210
+ SV: "El Salvador",
211
+ SX: "Sint Maarten",
212
+ SY: "Syria",
213
+ SZ: "Eswatini",
214
+ TA: "Tristan da Cunha",
215
+ TC: "Turks & Caicos Islands",
216
+ TD: "Chad",
217
+ TG: "Togo",
218
+ TH: "Thailand",
219
+ TJ: "Tajikistan",
220
+ TK: "Tokelau",
221
+ TL: "Timor-Leste",
222
+ TM: "Turkmenistan",
223
+ TN: "Tunisia",
224
+ TO: "Tonga",
225
+ TR: "Türkiye",
226
+ TT: "Trinidad & Tobago",
227
+ TV: "Tuvalu",
228
+ TW: "Taiwan",
229
+ TZ: "Tanzania",
230
+ UA: "Ukraine",
231
+ UG: "Uganda",
232
+ US: "United States",
233
+ UY: "Uruguay",
234
+ UZ: "Uzbekistan",
235
+ VA: "Vatican City",
236
+ VC: "St. Vincent & Grenadines",
237
+ VE: "Venezuela",
238
+ VG: "British Virgin Islands",
239
+ VI: "U.S. Virgin Islands",
240
+ VN: "Vietnam",
241
+ VU: "Vanuatu",
242
+ WF: "Wallis & Futuna",
243
+ WS: "Samoa",
244
+ XK: "Kosovo",
245
+ YE: "Yemen",
246
+ YT: "Mayotte",
247
+ ZA: "South Africa",
248
+ ZM: "Zambia",
249
+ ZW: "Zimbabwe",
250
+ };
@@ -206,9 +206,9 @@ export const WithChildren: Story = {
206
206
  <YStack gap="$2">
207
207
  {sampleOptions.map((option) => (
208
208
  <XStack key={option.value} gap="$2" alignItems="center">
209
- <TamaguiRadioGroup.Item value={option.value} id={option.value}>
210
- <TamaguiRadioGroup.Indicator />
211
- </TamaguiRadioGroup.Item>
209
+ <RadioGroup.Item value={option.value} id={option.value}>
210
+ <RadioGroup.Indicator />
211
+ </RadioGroup.Item>
212
212
  <Label htmlFor={option.value}>{option.label}</Label>
213
213
  </XStack>
214
214
  ))}
@@ -291,6 +291,7 @@ export const Interactive: Story = {
291
291
  };
292
292
 
293
293
  export const Comparison: Story = {
294
+ parameters: { foreignContrastSpecimen: true },
294
295
  render: () => {
295
296
  const ComparisonExample = () => {
296
297
  const [customVal, setCustomVal] = useState("option1");
@@ -10,6 +10,7 @@ import {
10
10
  type DisabledChromeProps,
11
11
  type KnobProps,
12
12
  type KnobRecipe,
13
+ transitionProps,
13
14
  } from "@multiplatform.one/theme";
14
15
  import type { AnyFormApi } from "../../types";
15
16
  import type { FontSizeTokens, LabelProps, SizeTokens, TamaguiElement } from "tamagui";
@@ -283,12 +284,12 @@ function RadioOptionItem({
283
284
  borderColor={selected ? formSelectedColors.mark : formControlColors.boundary}
284
285
  {...(kbFocus ? ensureFocusVisibleRing() : { outlineWidth: 0 as const })}
285
286
  data-radio-kb-focus={kbFocus ? "true" : "false"}
286
- {...(knobProps.transition ? { transition: knobProps.transition } : undefined)}
287
+ {...transitionProps(knobProps.transition)}
287
288
  >
288
289
  <RadioIndicatorFrame
289
290
  borderRadius={radioDiscRadius}
290
291
  backgroundColor={onMark ?? "$color1"}
291
- {...(knobProps.transition ? { transition: knobProps.transition } : undefined)}
292
+ {...transitionProps(knobProps.transition)}
292
293
  />
293
294
  </RadioGlyph>
294
295
  );
@@ -8,7 +8,7 @@ import type { StarIconType } from "./types";
8
8
  * Native ink layer (LC-25). The device arm is BLOCKED — see
9
9
  * `p-results/fix-rating-native-ink.md` — so this is the native evidence:
10
10
  * `.native` specs are the standing substitute for a simulator capture
11
- * (`agent-os/standards/testing/falsifiability.md`, "Record the verdict
11
+ * (`docs/standards/testing/falsifiability.md`, "Record the verdict
12
12
  * against the code that ran").
13
13
  *
14
14
  * It cannot prove the RN driver's frame output. What it CAN prove is the
@@ -1,3 +1,4 @@
1
+ import { useTouchSurface } from "@multiplatform.one/theme";
1
2
  /**
2
3
  * SearchInput — the ONE search box (census item 6).
3
4
  *
@@ -17,7 +18,6 @@ import { MagnifyingGlassIcon, XIcon } from "@phosphor-icons/react";
17
18
  import {
18
19
  MIN_PRESS_TARGET,
19
20
  ensureCompositeFocusRing,
20
- isTouchSurface,
21
21
  pressTargetHitSlop,
22
22
  sizeRecipeForToken,
23
23
  } from "@multiplatform.one/theme";
@@ -148,6 +148,7 @@ export function SearchInput({
148
148
  iconSize,
149
149
  inputProps,
150
150
  }: SearchInputProps) {
151
+ const hydrationTouch = useTouchSurface();
151
152
  const { resolvedForm, knobProps, control, id } = useFormField({
152
153
  form: formProp,
153
154
  id: idProp,
@@ -155,8 +156,8 @@ export function SearchInput({
155
156
  });
156
157
  const resolvedValidators = useResolvedValidators(required, validators, label, name);
157
158
  const resolvedSize = (size ?? knobProps.sizeToken) as SizeTokens;
158
- const recipe = sizeRecipeForToken(String(resolvedSize), { touch: isTouchSurface() });
159
- const visualHeight = getFieldHeight(resolvedSize);
159
+ const recipe = sizeRecipeForToken(String(resolvedSize), { touch: hydrationTouch });
160
+ const visualHeight = getFieldHeight(resolvedSize, 1, hydrationTouch);
160
161
  const belowFloor = visualHeight < MIN_PRESS_TARGET;
161
162
  const isControlled = value !== undefined;
162
163
  const [internalText, setInternalText] = useState(defaultValue ?? "");
@@ -1,5 +1,5 @@
1
1
  import { useForm } from "@tanstack/react-form";
2
- import { act, fireEvent, waitFor } from "@testing-library/react";
2
+ import { act, fireEvent, waitFor, within } from "@testing-library/react";
3
3
  import { YStack } from "tamagui";
4
4
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
5
5
  import { renderWithProviders } from "@multiplatform.one/test-utils";
@@ -8,6 +8,17 @@ import { Form } from "../../Form";
8
8
  import { __resetDevWarnSeen } from "../../shared/devWarn";
9
9
  import { Select, type SelectOption } from "./index";
10
10
 
11
+ /** Web panels portal out to the page (MPO-335, LC-90), so panel text is read from the page. */
12
+ function findInPage(text: string): Element | undefined {
13
+ try {
14
+ return within(document.body).queryByText(text, { exact: false }) ?? undefined;
15
+ } catch {
16
+ return Array.from(document.body.querySelectorAll("*")).find((el) =>
17
+ el.textContent?.includes(text),
18
+ );
19
+ }
20
+ }
21
+
11
22
  const mockOptions: SelectOption[] = [
12
23
  { value: "option1", label: "Option 1" },
13
24
  { value: "option2", label: "Option 2" },
@@ -32,42 +43,38 @@ afterEach(() => {
32
43
  describe("Select Components", () => {
33
44
  describe("Select", () => {
34
45
  it("should display placeholder when no value is selected", () => {
35
- const result = renderWithProviders(
36
- <Select options={mockOptions} placeholder="Choose an option" />,
37
- );
46
+ renderWithProviders(<Select options={mockOptions} placeholder="Choose an option" />);
38
47
 
39
48
  // Placeholder should be visible
40
- expect(result.findTextElement("Choose an option")).toBeDefined();
49
+ expect(findInPage("Choose an option")).toBeDefined();
41
50
  });
42
51
 
43
52
  it("should display selected value", () => {
44
- const result = renderWithProviders(
53
+ renderWithProviders(
45
54
  <Select options={mockOptions} value="option1" placeholder="Choose an option" />,
46
55
  );
47
56
 
48
57
  // Should show the selected option label
49
- expect(result.findTextElement("Option 1")).toBeDefined();
58
+ expect(findInPage("Option 1")).toBeDefined();
50
59
  });
51
60
 
52
61
  it("should handle empty options array", () => {
53
- const result = renderWithProviders(<Select options={[]} placeholder="No options" />);
62
+ renderWithProviders(<Select options={[]} placeholder="No options" />);
54
63
 
55
- expect(result.findTextElement("No options")).toBeDefined();
64
+ expect(findInPage("No options")).toBeDefined();
56
65
  });
57
66
 
58
67
  it("should support custom placeholder", () => {
59
- const result = renderWithProviders(
60
- <Select options={mockOptions} placeholder="Custom placeholder text" />,
61
- );
68
+ renderWithProviders(<Select options={mockOptions} placeholder="Custom placeholder text" />);
62
69
 
63
- expect(result.findTextElement("Custom placeholder text")).toBeDefined();
70
+ expect(findInPage("Custom placeholder text")).toBeDefined();
64
71
  });
65
72
  });
66
73
 
67
74
  describe("Select", () => {
68
75
  describe("without form context", () => {
69
76
  it("should render with label and helper text", () => {
70
- const result = renderWithProviders(
77
+ renderWithProviders(
71
78
  <Select
72
79
  label="Choose Option"
73
80
  helperText="Select an option from the list"
@@ -76,12 +83,12 @@ describe("Select Components", () => {
76
83
  />,
77
84
  );
78
85
 
79
- expect(result.findTextElement("Choose Option")).toBeDefined();
80
- expect(result.findTextElement("Select an option from the list")).toBeDefined();
86
+ expect(findInPage("Choose Option")).toBeDefined();
87
+ expect(findInPage("Select an option from the list")).toBeDefined();
81
88
  });
82
89
 
83
90
  it("should display error message", () => {
84
- const result = renderWithProviders(
91
+ renderWithProviders(
85
92
  <Select
86
93
  label="Choose Option"
87
94
  name="option"
@@ -90,7 +97,7 @@ describe("Select Components", () => {
90
97
  />,
91
98
  );
92
99
 
93
- expect(result.findTextElement("This field is required")).toBeDefined();
100
+ expect(findInPage("This field is required")).toBeDefined();
94
101
  });
95
102
 
96
103
  it("should render required label with asterisk", () => {
@@ -98,7 +105,7 @@ describe("Select Components", () => {
98
105
  <Select label="Required Select" name="option" options={mockOptions} required />,
99
106
  );
100
107
 
101
- const label = result.container.querySelector("label");
108
+ const label = result.baseElement.querySelector("label");
102
109
  expect(label).toBeDefined();
103
110
  expect(label?.textContent).toContain("Required Select");
104
111
  expect(label?.textContent).toContain("*");
@@ -120,7 +127,7 @@ describe("Select Components", () => {
120
127
  />,
121
128
  );
122
129
  // Labels are differentiated per chip now — "Remove {label}".
123
- const dismiss = result.container.querySelector('[aria-label^="Remove"]');
130
+ const dismiss = result.baseElement.querySelector('[aria-label^="Remove"]');
124
131
  expect(dismiss).toBeTruthy();
125
132
  await act(async () => {
126
133
  if (dismiss) fireEvent.click(dismiss);
@@ -239,17 +246,17 @@ describe("Select Components", () => {
239
246
  ]}
240
247
  />,
241
248
  );
242
- expect(result.findTextElement("Dynamic Select")).toBeDefined();
249
+ expect(findInPage("Dynamic Select")).toBeDefined();
243
250
  });
244
251
  });
245
252
 
246
253
  describe("accessibility", () => {
247
254
  it("should announce selected value to screen readers", () => {
248
- const result = renderWithProviders(
255
+ renderWithProviders(
249
256
  <Select options={mockOptions} value="option1" aria-label="Test select" />,
250
257
  );
251
258
 
252
- expect(result.findTextElement("Option 1")).toBeDefined();
259
+ expect(findInPage("Option 1")).toBeDefined();
253
260
  });
254
261
  });
255
262
 
@@ -297,7 +304,7 @@ describe("Select Components", () => {
297
304
 
298
305
  it("does not ring the trigger or a row on mouse open", async () => {
299
306
  const result = renderWithProviders(<Select options={many} placeholder="Pick" />);
300
- const trigger = result.container.querySelector(
307
+ const trigger = result.baseElement.querySelector(
301
308
  '[data-testid="select-trigger"]',
302
309
  ) as HTMLElement;
303
310
  expect(trigger).toBeTruthy();
@@ -305,26 +312,26 @@ describe("Select Components", () => {
305
312
  fireEvent.mouseDown(trigger);
306
313
  fireEvent.click(trigger);
307
314
  await waitFor(() => {
308
- expect(result.container.querySelector('[role="option"]')).toBeTruthy();
315
+ expect(result.baseElement.querySelector('[role="option"]')).toBeTruthy();
309
316
  });
310
317
  expect(trigger.getAttribute("data-kb-ring")).not.toBe("true");
311
- for (const opt of result.container.querySelectorAll('[role="option"]')) {
318
+ for (const opt of result.baseElement.querySelectorAll('[role="option"]')) {
312
319
  expect(opt.getAttribute("data-kb-ring")).not.toBe("true");
313
320
  }
314
321
  });
315
322
 
316
323
  it("paints an inset ring on the keyboard-active row; rows stay square", async () => {
317
324
  const result = renderWithProviders(<Select options={many} placeholder="Pick" />);
318
- const trigger = result.container.querySelector(
325
+ const trigger = result.baseElement.querySelector(
319
326
  '[data-testid="select-trigger"]',
320
327
  ) as HTMLElement;
321
328
  fireEvent.keyDown(document, { key: "ArrowDown" });
322
329
  fireEvent.keyDown(trigger, { key: "ArrowDown" });
323
330
  await waitFor(() => {
324
- expect(result.container.querySelector('[role="option"]')).toBeTruthy();
331
+ expect(result.baseElement.querySelector('[role="option"]')).toBeTruthy();
325
332
  });
326
333
  expect(trigger.getAttribute("data-kb-ring")).not.toBe("true");
327
- const options = [...result.container.querySelectorAll('[role="option"]')];
334
+ const options = [...result.baseElement.querySelectorAll('[role="option"]')];
328
335
  const ringed = options.filter((el) => el.getAttribute("data-kb-ring") === "true");
329
336
  expect(ringed.length).toBe(1);
330
337
  for (const opt of options) {