@multiplatform.one/forms 7.81.0 → 7.81.2

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 (477) hide show
  1. package/dist/cjs/AdaptivePopup/index.cjs +1 -0
  2. package/dist/cjs/AdaptivePopup/index.native.js +3 -2
  3. package/dist/cjs/AdaptivePopup/index.native.js.map +1 -1
  4. package/dist/cjs/Button/IconButtonGroup.native.js.map +1 -1
  5. package/dist/cjs/Button/circleGlyph.native.js.map +1 -1
  6. package/dist/cjs/Button/iconButtonGroupContext.native.js.map +1 -1
  7. package/dist/cjs/Button/index.native.js +2 -2
  8. package/dist/cjs/Button/index.native.js.map +1 -1
  9. package/dist/cjs/Button/webGlass.native.js.map +1 -1
  10. package/dist/cjs/Chip/index.native.js.map +1 -1
  11. package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js +1 -1
  12. package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
  13. package/dist/cjs/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
  14. package/dist/cjs/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
  15. package/dist/cjs/ContextualSaveBar/index.native.js +3 -3
  16. package/dist/cjs/ContextualSaveBar/index.native.js.map +1 -1
  17. package/dist/cjs/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
  18. package/dist/cjs/ControlGroup/index.native.js +1 -1
  19. package/dist/cjs/ControlGroup/index.native.js.map +1 -1
  20. package/dist/cjs/DescriptionList/index.native.js +2 -2
  21. package/dist/cjs/DescriptionList/index.native.js.map +1 -1
  22. package/dist/cjs/ErrorSummary.native.js.map +1 -1
  23. package/dist/cjs/FieldDisplay/editMode.native.js.map +1 -1
  24. package/dist/cjs/FieldDisplay/formatters.native.js.map +1 -1
  25. package/dist/cjs/FieldDisplay/index.native.js +1 -1
  26. package/dist/cjs/FieldDisplay/index.native.js.map +1 -1
  27. package/dist/cjs/FieldGroup.native.js.map +1 -1
  28. package/dist/cjs/FloatingPanel/PanelHeader.native.js.map +1 -1
  29. package/dist/cjs/FloatingPanel/RegularPanel.native.js.map +1 -1
  30. package/dist/cjs/FloatingPanel/compactFace.native.js.map +1 -1
  31. package/dist/cjs/FloatingPanel/containingBlock.native.js.map +1 -1
  32. package/dist/cjs/FloatingPanel/coverRect.native.js.map +1 -1
  33. package/dist/cjs/FloatingPanel/echoContext.native.js.map +1 -1
  34. package/dist/cjs/FloatingPanel/index.native.js +212 -66
  35. package/dist/cjs/FloatingPanel/index.native.js.map +1 -1
  36. package/dist/cjs/FloatingPanel/nestedAction.native.js.map +1 -1
  37. package/dist/cjs/FloatingPanel/paintedBox.native.js.map +1 -1
  38. package/dist/cjs/FloatingPanel/panelWidth.native.js.map +1 -1
  39. package/dist/cjs/FloatingPanel/pointAnchor.native.js.map +1 -1
  40. package/dist/cjs/FloatingPanel/regularPlacement.native.js.map +1 -1
  41. package/dist/cjs/FloatingPanel/trailingAction.native.js +1 -1
  42. package/dist/cjs/FloatingPanel/trailingAction.native.js.map +1 -1
  43. package/dist/cjs/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  44. package/dist/cjs/Form/index.native.js +1 -1
  45. package/dist/cjs/Form/index.native.js.map +1 -1
  46. package/dist/cjs/Form/submissionController.native.js.map +1 -1
  47. package/dist/cjs/Form/validateOn.native.js.map +1 -1
  48. package/dist/cjs/FormGrid.native.js.map +1 -1
  49. package/dist/cjs/FormSection.native.js.map +1 -1
  50. package/dist/cjs/InputParts/PasswordReveal.native.js.map +1 -1
  51. package/dist/cjs/InputParts/index.native.js.map +1 -1
  52. package/dist/cjs/InputParts/keyboardAppearance.native.js.map +1 -1
  53. package/dist/cjs/Label/index.native.js.map +1 -1
  54. package/dist/cjs/MediaPicker/base64.native.js.map +1 -1
  55. package/dist/cjs/MediaPicker/payload.native.js.map +1 -1
  56. package/dist/cjs/MediaPicker/types.native.js.map +1 -1
  57. package/dist/cjs/MediaPicker/useMediaPicker.native.js.map +1 -1
  58. package/dist/cjs/Skeleton/index.native.js.map +1 -1
  59. package/dist/cjs/Spinner/SpinnerGlyph.native.js.map +1 -1
  60. package/dist/cjs/Spinner/spinnerSize.native.js.map +1 -1
  61. package/dist/cjs/Table/index.native.js.map +1 -1
  62. package/dist/cjs/Wheel/haptic.native.js.map +1 -1
  63. package/dist/cjs/Wheel/index.native.js.map +1 -1
  64. package/dist/cjs/Wheel/wheelShared.native.js.map +1 -1
  65. package/dist/cjs/actionLabel.native.js.map +1 -1
  66. package/dist/cjs/fieldDefaults.native.js.map +1 -1
  67. package/dist/cjs/fieldLayout.native.js +1 -1
  68. package/dist/cjs/fieldLayout.native.js.map +1 -1
  69. package/dist/cjs/fields/Barcode/BarcodePreview.native.js.map +1 -1
  70. package/dist/cjs/fields/Barcode/BarcodeScanner.native.js +1 -1
  71. package/dist/cjs/fields/Barcode/code128.native.js.map +1 -1
  72. package/dist/cjs/fields/Barcode/index.native.js +2 -2
  73. package/dist/cjs/fields/Barcode/index.native.js.map +1 -1
  74. package/dist/cjs/fields/Barcode/qr.native.js.map +1 -1
  75. package/dist/cjs/fields/Barcode/scannerTypes.native.js.map +1 -1
  76. package/dist/cjs/fields/Checkbox/Checkbox.native.js +1 -1
  77. package/dist/cjs/fields/Checkbox/Checkbox.native.js.map +1 -1
  78. package/dist/cjs/fields/Checkbox/CheckboxBox.native.js.map +1 -1
  79. package/dist/cjs/fields/Checkbox/CheckboxCard.native.js.map +1 -1
  80. package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
  81. package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js +1 -1
  82. package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
  83. package/dist/cjs/fields/Checkbox/checkboxGroupContext.native.js.map +1 -1
  84. package/dist/cjs/fields/Checkbox/index.native.js.map +1 -1
  85. package/dist/cjs/fields/ColorPicker/SystemColorField.native.js.map +1 -1
  86. package/dist/cjs/fields/ColorPicker/index.native.js +2 -2
  87. package/dist/cjs/fields/ColorPicker/index.native.js.map +1 -1
  88. package/dist/cjs/fields/ColorPicker/parts.native.js +2 -2
  89. package/dist/cjs/fields/ColorPicker/parts.native.js.map +1 -1
  90. package/dist/cjs/fields/ColorPicker/systemColorWell.gnome.native.js.map +1 -1
  91. package/dist/cjs/fields/Combobox/authorOptions.native.js.map +1 -1
  92. package/dist/cjs/fields/Combobox/index.native.js +5 -5
  93. package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
  94. package/dist/cjs/fields/DatePicker/Calendar.native.js.map +1 -1
  95. package/dist/cjs/fields/DatePicker/DateRangePicker.native.js +2 -2
  96. package/dist/cjs/fields/DatePicker/DateRangePicker.native.js.map +1 -1
  97. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js +3 -3
  98. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
  99. package/dist/cjs/fields/DatePicker/DatetimePicker.native.js +2 -2
  100. package/dist/cjs/fields/DatePicker/MonthPicker.native.js +2 -2
  101. package/dist/cjs/fields/DatePicker/MonthPicker.native.js.map +1 -1
  102. package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js +2 -2
  103. package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
  104. package/dist/cjs/fields/DatePicker/catalog.native.js +2 -2
  105. package/dist/cjs/fields/DatePicker/catalog.native.js.map +1 -1
  106. package/dist/cjs/fields/DatePicker/fieldValueSync.native.js.map +1 -1
  107. package/dist/cjs/fields/DatePicker/index.native.js +2 -2
  108. package/dist/cjs/fields/DatePicker/parts.native.js +2 -2
  109. package/dist/cjs/fields/DatePicker/parts.native.js.map +1 -1
  110. package/dist/cjs/fields/DatePicker/utils.native.js.map +1 -1
  111. package/dist/cjs/fields/Duration/DurationWheel.native.js +1 -1
  112. package/dist/cjs/fields/Duration/durationMath.native.js.map +1 -1
  113. package/dist/cjs/fields/Duration/durationWheelTypes.native.js.map +1 -1
  114. package/dist/cjs/fields/Duration/index.native.js +3 -3
  115. package/dist/cjs/fields/Duration/index.native.js.map +1 -1
  116. package/dist/cjs/fields/FileUpload/filePickerTypes.native.js.map +1 -1
  117. package/dist/cjs/fields/FileUpload/index.native.js +2 -2
  118. package/dist/cjs/fields/FileUpload/index.native.js.map +1 -1
  119. package/dist/cjs/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
  120. package/dist/cjs/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
  121. package/dist/cjs/fields/Geolocation/geoValue.native.js.map +1 -1
  122. package/dist/cjs/fields/Geolocation/geocoder.native.js.map +1 -1
  123. package/dist/cjs/fields/Geolocation/geocoderContext.native.js.map +1 -1
  124. package/dist/cjs/fields/Geolocation/index.native.js +5 -5
  125. package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
  126. package/dist/cjs/fields/Geolocation/mapMath.native.js.map +1 -1
  127. package/dist/cjs/fields/Geolocation/mapTypes.native.js.map +1 -1
  128. package/dist/cjs/fields/Geolocation/nativeSearchFocus.native.js.map +1 -1
  129. package/dist/cjs/fields/Geolocation/photonGeocoder.native.js.map +1 -1
  130. package/dist/cjs/fields/Icon/drawnSet.native.js.map +1 -1
  131. package/dist/cjs/fields/Icon/index.native.js +3 -3
  132. package/dist/cjs/fields/Icon/index.native.js.map +1 -1
  133. package/dist/cjs/fields/ImageField/index.native.js +2 -2
  134. package/dist/cjs/fields/ImageField/index.native.js.map +1 -1
  135. package/dist/cjs/fields/Input/index.native.js +3 -3
  136. package/dist/cjs/fields/Input/index.native.js.map +1 -1
  137. package/dist/cjs/fields/MentionInput/index.native.js +3 -3
  138. package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
  139. package/dist/cjs/fields/OTPInput/index.native.js +3 -3
  140. package/dist/cjs/fields/OTPInput/index.native.js.map +1 -1
  141. package/dist/cjs/fields/OTPInput/otpCellCss.native.js.map +1 -1
  142. package/dist/cjs/fields/PhoneInput/dialCodes.native.js.map +1 -1
  143. package/dist/cjs/fields/PhoneInput/index.native.js +3 -3
  144. package/dist/cjs/fields/PhoneInput/index.native.js.map +1 -1
  145. package/dist/cjs/fields/PhoneInput/phone.native.js.map +1 -1
  146. package/dist/cjs/fields/PhoneInput/regionNames.native.js.map +1 -1
  147. package/dist/cjs/fields/Progress/index.native.js +1 -1
  148. package/dist/cjs/fields/Progress/index.native.js.map +1 -1
  149. package/dist/cjs/fields/RadioGroup/index.native.js +1 -1
  150. package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
  151. package/dist/cjs/fields/Rating/index.native.js +1 -1
  152. package/dist/cjs/fields/Rating/index.native.js.map +1 -1
  153. package/dist/cjs/fields/Rating/ratingMath.native.js.map +1 -1
  154. package/dist/cjs/fields/Rating/types.native.js.map +1 -1
  155. package/dist/cjs/fields/SearchInput/index.native.js +2 -2
  156. package/dist/cjs/fields/SearchInput/index.native.js.map +1 -1
  157. package/dist/cjs/fields/Select/InlineChoices.native.js.map +1 -1
  158. package/dist/cjs/fields/Select/SheetPickerRow.native.js.map +1 -1
  159. package/dist/cjs/fields/Select/index.cjs +19 -2
  160. package/dist/cjs/fields/Select/index.native.js +26 -6
  161. package/dist/cjs/fields/Select/index.native.js.map +1 -1
  162. package/dist/cjs/fields/Select/shouldInlineChoices.native.js.map +1 -1
  163. package/dist/cjs/fields/Signature/index.native.js +2 -2
  164. package/dist/cjs/fields/Signature/index.native.js.map +1 -1
  165. package/dist/cjs/fields/Slider/index.native.js +1 -1
  166. package/dist/cjs/fields/Slider/index.native.js.map +1 -1
  167. package/dist/cjs/fields/Slider/jumpMotion.native.js.map +1 -1
  168. package/dist/cjs/fields/Stepper/index.native.js +2 -2
  169. package/dist/cjs/fields/Stepper/index.native.js.map +1 -1
  170. package/dist/cjs/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
  171. package/dist/cjs/fields/Switch/footprint.native.js.map +1 -1
  172. package/dist/cjs/fields/Switch/index.native.js +2 -2
  173. package/dist/cjs/fields/Switch/index.native.js.map +1 -1
  174. package/dist/cjs/fields/TextArea/index.native.js +2 -2
  175. package/dist/cjs/fields/TextArea/index.native.js.map +1 -1
  176. package/dist/cjs/fields/TimePicker/catalog.native.js +3 -3
  177. package/dist/cjs/fields/TimePicker/catalog.native.js.map +1 -1
  178. package/dist/cjs/fields/TimePicker/index.native.js +2 -2
  179. package/dist/cjs/fields/TimePicker/parts.native.js +1 -1
  180. package/dist/cjs/fields/TimePicker/parts.native.js.map +1 -1
  181. package/dist/cjs/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
  182. package/dist/cjs/fields/TimeRangeScrubber/index.native.js +2 -2
  183. package/dist/cjs/fields/TimeRangeScrubber/index.native.js.map +1 -1
  184. package/dist/cjs/fields/ToggleGroup/index.native.js +1 -1
  185. package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
  186. package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js +1 -1
  187. package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
  188. package/dist/cjs/fields/nativeDateTime/dateTimePickerLoader.native.js.map +1 -1
  189. package/dist/cjs/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -1
  190. package/dist/cjs/fields/nativeDateTime/sheetKeyboard.native.js.map +1 -1
  191. package/dist/cjs/fields/nativeSelect.native.js.map +1 -1
  192. package/dist/cjs/fields/selectedOrder.native.js.map +1 -1
  193. package/dist/cjs/formSpacing.native.js.map +1 -1
  194. package/dist/cjs/hooks/useFocusManagement.native.js.map +1 -1
  195. package/dist/cjs/index.native.js +45 -45
  196. package/dist/cjs/index.native.js.map +1 -1
  197. package/dist/cjs/keyboard/KeyboardDoneBar.native.js +1 -1
  198. package/dist/cjs/keyboard/chain.native.js.map +1 -1
  199. package/dist/cjs/keyboard/index.native.js.map +1 -1
  200. package/dist/cjs/keyboard/types.native.js.map +1 -1
  201. package/dist/cjs/requiredMarking.native.js.map +1 -1
  202. package/dist/cjs/shared/CheckGlyph.native.js.map +1 -1
  203. package/dist/cjs/shared/TimeColumn.native.js +1 -1
  204. package/dist/cjs/shared/TimeColumn.native.js.map +1 -1
  205. package/dist/cjs/shared/capabilityPreflight.native.js.map +1 -1
  206. package/dist/cjs/shared/checkedOnField.cjs +104 -0
  207. package/dist/cjs/shared/checkedOnField.native.js +117 -0
  208. package/dist/cjs/shared/checkedOnField.native.js.map +1 -0
  209. package/dist/cjs/shared/choiceRowPress.native.js.map +1 -1
  210. package/dist/cjs/shared/colorRamps.native.js.map +1 -1
  211. package/dist/cjs/shared/devWarn.native.js.map +1 -1
  212. package/dist/cjs/shared/fieldRowContext.native.js.map +1 -1
  213. package/dist/cjs/shared/floatingList.cjs +7 -79
  214. package/dist/cjs/shared/floatingList.native.js +8 -90
  215. package/dist/cjs/shared/floatingList.native.js.map +1 -1
  216. package/dist/cjs/shared/focusManagement.native.js.map +1 -1
  217. package/dist/cjs/shared/groupContext.native.js.map +1 -1
  218. package/dist/cjs/shared/i18n.native.js.map +1 -1
  219. package/dist/cjs/shared/instantMotion.native.js.map +1 -1
  220. package/dist/cjs/shared/nativeA11y.native.js.map +1 -1
  221. package/dist/cjs/shared/nativeAutoFocus.native.js.map +1 -1
  222. package/dist/cjs/shared/overlaySizeClass.native.js.map +1 -1
  223. package/dist/cjs/shared/overlayStack.native.js.map +1 -1
  224. package/dist/cjs/shared/panelPortal.native.js.map +1 -1
  225. package/dist/cjs/shared/pickerTriggerContract.native.js.map +1 -1
  226. package/dist/cjs/shared/pressSlopProps.native.js.map +1 -1
  227. package/dist/cjs/shared/restoreRetries.native.js.map +1 -1
  228. package/dist/cjs/shared/sheetNavigation.native.js.map +1 -1
  229. package/dist/cjs/shared/systemControlModules.gnome.native.js.map +1 -1
  230. package/dist/cjs/shared/systemControls.native.js.map +1 -1
  231. package/dist/cjs/shared/t.native.js.map +1 -1
  232. package/dist/cjs/shared/tableCellContext.native.js.map +1 -1
  233. package/dist/cjs/shared/useDragScroll.native.js.map +1 -1
  234. package/dist/cjs/shared/useKeyboardInset.native.js.map +1 -1
  235. package/dist/cjs/shared/useSheetEscapeDismiss.native.js.map +1 -1
  236. package/dist/cjs/shared/useWheelIncrement.native.js.map +1 -1
  237. package/dist/cjs/shared/utils.native.js +1 -1
  238. package/dist/cjs/shared/utils.native.js.map +1 -1
  239. package/dist/cjs/shared/zIndex.native.js.map +1 -1
  240. package/dist/cjs/standardActions.native.js.map +1 -1
  241. package/dist/cjs/themedPrimitives.native.js.map +1 -1
  242. package/dist/cjs/types.native.js.map +1 -1
  243. package/dist/cjs/utils/LinkCell.native.js.map +1 -1
  244. package/dist/esm/AdaptivePopup/index.mjs +2 -1
  245. package/dist/esm/AdaptivePopup/index.mjs.map +1 -1
  246. package/dist/esm/AdaptivePopup/index.native.js +2 -1
  247. package/dist/esm/AdaptivePopup/index.native.js.map +1 -1
  248. package/dist/esm/Button/IconButtonGroup.native.js.map +1 -1
  249. package/dist/esm/Button/circleGlyph.native.js.map +1 -1
  250. package/dist/esm/Button/iconButtonGroupContext.native.js.map +1 -1
  251. package/dist/esm/Button/index.native.js.map +1 -1
  252. package/dist/esm/Button/webGlass.native.js.map +1 -1
  253. package/dist/esm/Chip/index.native.js.map +1 -1
  254. package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
  255. package/dist/esm/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
  256. package/dist/esm/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
  257. package/dist/esm/ContextualSaveBar/index.native.js.map +1 -1
  258. package/dist/esm/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
  259. package/dist/esm/ControlGroup/index.native.js.map +1 -1
  260. package/dist/esm/DescriptionList/index.native.js.map +1 -1
  261. package/dist/esm/ErrorSummary.native.js.map +1 -1
  262. package/dist/esm/FieldDisplay/editMode.native.js.map +1 -1
  263. package/dist/esm/FieldDisplay/formatters.native.js.map +1 -1
  264. package/dist/esm/FieldDisplay/index.native.js.map +1 -1
  265. package/dist/esm/FieldGroup.native.js.map +1 -1
  266. package/dist/esm/FloatingPanel/PanelHeader.native.js.map +1 -1
  267. package/dist/esm/FloatingPanel/RegularPanel.native.js.map +1 -1
  268. package/dist/esm/FloatingPanel/compactFace.native.js.map +1 -1
  269. package/dist/esm/FloatingPanel/containingBlock.native.js.map +1 -1
  270. package/dist/esm/FloatingPanel/coverRect.native.js.map +1 -1
  271. package/dist/esm/FloatingPanel/echoContext.native.js.map +1 -1
  272. package/dist/esm/FloatingPanel/index.mjs.map +1 -1
  273. package/dist/esm/FloatingPanel/index.native.js +174 -28
  274. package/dist/esm/FloatingPanel/index.native.js.map +1 -1
  275. package/dist/esm/FloatingPanel/nestedAction.native.js.map +1 -1
  276. package/dist/esm/FloatingPanel/paintedBox.native.js.map +1 -1
  277. package/dist/esm/FloatingPanel/panelWidth.native.js.map +1 -1
  278. package/dist/esm/FloatingPanel/pointAnchor.native.js.map +1 -1
  279. package/dist/esm/FloatingPanel/regularPlacement.native.js.map +1 -1
  280. package/dist/esm/FloatingPanel/trailingAction.native.js.map +1 -1
  281. package/dist/esm/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  282. package/dist/esm/Form/index.native.js.map +1 -1
  283. package/dist/esm/Form/submissionController.native.js.map +1 -1
  284. package/dist/esm/Form/validateOn.native.js.map +1 -1
  285. package/dist/esm/FormGrid.native.js.map +1 -1
  286. package/dist/esm/FormSection.native.js.map +1 -1
  287. package/dist/esm/InputParts/PasswordReveal.native.js.map +1 -1
  288. package/dist/esm/InputParts/index.native.js.map +1 -1
  289. package/dist/esm/InputParts/keyboardAppearance.native.js.map +1 -1
  290. package/dist/esm/Label/index.native.js.map +1 -1
  291. package/dist/esm/MediaPicker/base64.native.js.map +1 -1
  292. package/dist/esm/MediaPicker/payload.native.js.map +1 -1
  293. package/dist/esm/MediaPicker/types.native.js.map +1 -1
  294. package/dist/esm/MediaPicker/useMediaPicker.native.js.map +1 -1
  295. package/dist/esm/Skeleton/index.native.js.map +1 -1
  296. package/dist/esm/Spinner/SpinnerGlyph.native.js.map +1 -1
  297. package/dist/esm/Spinner/spinnerSize.native.js.map +1 -1
  298. package/dist/esm/Table/index.native.js.map +1 -1
  299. package/dist/esm/Wheel/haptic.native.js.map +1 -1
  300. package/dist/esm/Wheel/index.native.js.map +1 -1
  301. package/dist/esm/Wheel/wheelShared.native.js.map +1 -1
  302. package/dist/esm/actionLabel.native.js.map +1 -1
  303. package/dist/esm/fieldDefaults.native.js.map +1 -1
  304. package/dist/esm/fieldLayout.native.js.map +1 -1
  305. package/dist/esm/fields/Barcode/BarcodePreview.native.js.map +1 -1
  306. package/dist/esm/fields/Barcode/code128.native.js.map +1 -1
  307. package/dist/esm/fields/Barcode/index.native.js.map +1 -1
  308. package/dist/esm/fields/Barcode/qr.native.js.map +1 -1
  309. package/dist/esm/fields/Barcode/scannerTypes.native.js.map +1 -1
  310. package/dist/esm/fields/Checkbox/Checkbox.native.js.map +1 -1
  311. package/dist/esm/fields/Checkbox/CheckboxBox.native.js.map +1 -1
  312. package/dist/esm/fields/Checkbox/CheckboxCard.native.js.map +1 -1
  313. package/dist/esm/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
  314. package/dist/esm/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
  315. package/dist/esm/fields/Checkbox/checkboxGroupContext.native.js.map +1 -1
  316. package/dist/esm/fields/Checkbox/index.native.js.map +1 -1
  317. package/dist/esm/fields/ColorPicker/SystemColorField.native.js.map +1 -1
  318. package/dist/esm/fields/ColorPicker/index.native.js.map +1 -1
  319. package/dist/esm/fields/ColorPicker/parts.native.js.map +1 -1
  320. package/dist/esm/fields/ColorPicker/systemColorWell.gnome.native.js.map +1 -1
  321. package/dist/esm/fields/Combobox/authorOptions.native.js.map +1 -1
  322. package/dist/esm/fields/Combobox/index.native.js.map +1 -1
  323. package/dist/esm/fields/DatePicker/Calendar.native.js.map +1 -1
  324. package/dist/esm/fields/DatePicker/DateRangePicker.native.js.map +1 -1
  325. package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
  326. package/dist/esm/fields/DatePicker/MonthPicker.native.js.map +1 -1
  327. package/dist/esm/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
  328. package/dist/esm/fields/DatePicker/catalog.native.js.map +1 -1
  329. package/dist/esm/fields/DatePicker/fieldValueSync.native.js.map +1 -1
  330. package/dist/esm/fields/DatePicker/parts.native.js.map +1 -1
  331. package/dist/esm/fields/DatePicker/utils.native.js.map +1 -1
  332. package/dist/esm/fields/Duration/durationMath.native.js.map +1 -1
  333. package/dist/esm/fields/Duration/durationWheelTypes.native.js.map +1 -1
  334. package/dist/esm/fields/Duration/index.native.js.map +1 -1
  335. package/dist/esm/fields/FileUpload/filePickerTypes.native.js.map +1 -1
  336. package/dist/esm/fields/FileUpload/index.native.js.map +1 -1
  337. package/dist/esm/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
  338. package/dist/esm/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
  339. package/dist/esm/fields/Geolocation/geoValue.native.js.map +1 -1
  340. package/dist/esm/fields/Geolocation/geocoder.native.js.map +1 -1
  341. package/dist/esm/fields/Geolocation/geocoderContext.native.js.map +1 -1
  342. package/dist/esm/fields/Geolocation/index.native.js.map +1 -1
  343. package/dist/esm/fields/Geolocation/mapMath.native.js.map +1 -1
  344. package/dist/esm/fields/Geolocation/mapTypes.native.js.map +1 -1
  345. package/dist/esm/fields/Geolocation/nativeSearchFocus.native.js.map +1 -1
  346. package/dist/esm/fields/Geolocation/photonGeocoder.native.js.map +1 -1
  347. package/dist/esm/fields/Icon/drawnSet.native.js.map +1 -1
  348. package/dist/esm/fields/Icon/index.native.js.map +1 -1
  349. package/dist/esm/fields/ImageField/index.native.js.map +1 -1
  350. package/dist/esm/fields/Input/index.native.js.map +1 -1
  351. package/dist/esm/fields/MentionInput/index.native.js.map +1 -1
  352. package/dist/esm/fields/OTPInput/index.native.js.map +1 -1
  353. package/dist/esm/fields/OTPInput/otpCellCss.native.js.map +1 -1
  354. package/dist/esm/fields/PhoneInput/dialCodes.native.js.map +1 -1
  355. package/dist/esm/fields/PhoneInput/index.native.js.map +1 -1
  356. package/dist/esm/fields/PhoneInput/phone.native.js.map +1 -1
  357. package/dist/esm/fields/PhoneInput/regionNames.native.js.map +1 -1
  358. package/dist/esm/fields/Progress/index.native.js.map +1 -1
  359. package/dist/esm/fields/RadioGroup/index.native.js.map +1 -1
  360. package/dist/esm/fields/Rating/index.native.js.map +1 -1
  361. package/dist/esm/fields/Rating/ratingMath.native.js.map +1 -1
  362. package/dist/esm/fields/Rating/types.native.js.map +1 -1
  363. package/dist/esm/fields/SearchInput/index.native.js.map +1 -1
  364. package/dist/esm/fields/Select/InlineChoices.native.js.map +1 -1
  365. package/dist/esm/fields/Select/SheetPickerRow.native.js.map +1 -1
  366. package/dist/esm/fields/Select/index.mjs +19 -2
  367. package/dist/esm/fields/Select/index.mjs.map +1 -1
  368. package/dist/esm/fields/Select/index.native.js +22 -2
  369. package/dist/esm/fields/Select/index.native.js.map +1 -1
  370. package/dist/esm/fields/Select/shouldInlineChoices.native.js.map +1 -1
  371. package/dist/esm/fields/Signature/index.native.js.map +1 -1
  372. package/dist/esm/fields/Slider/index.native.js.map +1 -1
  373. package/dist/esm/fields/Slider/jumpMotion.native.js.map +1 -1
  374. package/dist/esm/fields/Stepper/index.native.js.map +1 -1
  375. package/dist/esm/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
  376. package/dist/esm/fields/Switch/footprint.native.js.map +1 -1
  377. package/dist/esm/fields/Switch/index.native.js.map +1 -1
  378. package/dist/esm/fields/TextArea/index.native.js.map +1 -1
  379. package/dist/esm/fields/TimePicker/catalog.native.js.map +1 -1
  380. package/dist/esm/fields/TimePicker/parts.native.js.map +1 -1
  381. package/dist/esm/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
  382. package/dist/esm/fields/TimeRangeScrubber/index.native.js.map +1 -1
  383. package/dist/esm/fields/ToggleGroup/index.native.js.map +1 -1
  384. package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
  385. package/dist/esm/fields/nativeDateTime/dateTimePickerLoader.native.js.map +1 -1
  386. package/dist/esm/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -1
  387. package/dist/esm/fields/nativeDateTime/sheetKeyboard.native.js.map +1 -1
  388. package/dist/esm/fields/nativeSelect.native.js.map +1 -1
  389. package/dist/esm/fields/selectedOrder.native.js.map +1 -1
  390. package/dist/esm/formSpacing.native.js.map +1 -1
  391. package/dist/esm/hooks/useFocusManagement.native.js.map +1 -1
  392. package/dist/esm/index.native.js.map +1 -1
  393. package/dist/esm/keyboard/chain.native.js.map +1 -1
  394. package/dist/esm/keyboard/index.native.js.map +1 -1
  395. package/dist/esm/keyboard/types.native.js.map +1 -1
  396. package/dist/esm/requiredMarking.native.js.map +1 -1
  397. package/dist/esm/shared/CheckGlyph.native.js.map +1 -1
  398. package/dist/esm/shared/TimeColumn.native.js.map +1 -1
  399. package/dist/esm/shared/capabilityPreflight.native.js.map +1 -1
  400. package/dist/esm/shared/checkedOnField.mjs +76 -0
  401. package/dist/esm/shared/checkedOnField.mjs.map +1 -0
  402. package/dist/esm/shared/checkedOnField.native.js +86 -0
  403. package/dist/esm/shared/checkedOnField.native.js.map +1 -0
  404. package/dist/esm/shared/choiceRowPress.native.js.map +1 -1
  405. package/dist/esm/shared/colorRamps.native.js.map +1 -1
  406. package/dist/esm/shared/devWarn.native.js.map +1 -1
  407. package/dist/esm/shared/fieldRowContext.native.js.map +1 -1
  408. package/dist/esm/shared/floatingList.mjs +3 -75
  409. package/dist/esm/shared/floatingList.mjs.map +1 -1
  410. package/dist/esm/shared/floatingList.native.js +3 -85
  411. package/dist/esm/shared/floatingList.native.js.map +1 -1
  412. package/dist/esm/shared/focusManagement.native.js.map +1 -1
  413. package/dist/esm/shared/groupContext.native.js.map +1 -1
  414. package/dist/esm/shared/i18n.native.js.map +1 -1
  415. package/dist/esm/shared/instantMotion.native.js.map +1 -1
  416. package/dist/esm/shared/nativeA11y.native.js.map +1 -1
  417. package/dist/esm/shared/nativeAutoFocus.native.js.map +1 -1
  418. package/dist/esm/shared/overlaySizeClass.native.js.map +1 -1
  419. package/dist/esm/shared/overlayStack.native.js.map +1 -1
  420. package/dist/esm/shared/panelPortal.native.js.map +1 -1
  421. package/dist/esm/shared/pickerTriggerContract.native.js.map +1 -1
  422. package/dist/esm/shared/pressSlopProps.native.js.map +1 -1
  423. package/dist/esm/shared/restoreRetries.native.js.map +1 -1
  424. package/dist/esm/shared/sheetNavigation.native.js.map +1 -1
  425. package/dist/esm/shared/systemControlModules.gnome.native.js.map +1 -1
  426. package/dist/esm/shared/systemControls.native.js.map +1 -1
  427. package/dist/esm/shared/t.native.js.map +1 -1
  428. package/dist/esm/shared/tableCellContext.native.js.map +1 -1
  429. package/dist/esm/shared/useDragScroll.native.js.map +1 -1
  430. package/dist/esm/shared/useKeyboardInset.native.js.map +1 -1
  431. package/dist/esm/shared/useSheetEscapeDismiss.native.js.map +1 -1
  432. package/dist/esm/shared/useWheelIncrement.native.js.map +1 -1
  433. package/dist/esm/shared/utils.native.js.map +1 -1
  434. package/dist/esm/shared/zIndex.native.js.map +1 -1
  435. package/dist/esm/standardActions.native.js.map +1 -1
  436. package/dist/esm/themedPrimitives.native.js.map +1 -1
  437. package/dist/esm/types.native.js.map +1 -1
  438. package/dist/esm/utils/LinkCell.native.js.map +1 -1
  439. package/dist/jsx/AdaptivePopup/index.mjs +2 -1
  440. package/dist/jsx/AdaptivePopup/index.mjs.map +1 -1
  441. package/dist/jsx/AdaptivePopup/index.native.js +1 -0
  442. package/dist/jsx/AdaptivePopup/index.native.js.map +1 -1
  443. package/dist/jsx/FloatingPanel/index.mjs.map +1 -1
  444. package/dist/jsx/FloatingPanel/index.native.js +212 -66
  445. package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
  446. package/dist/jsx/fields/Select/index.mjs +19 -2
  447. package/dist/jsx/fields/Select/index.mjs.map +1 -1
  448. package/dist/jsx/fields/Select/index.native.js +22 -2
  449. package/dist/jsx/fields/Select/index.native.js.map +1 -1
  450. package/dist/jsx/shared/checkedOnField.mjs +76 -0
  451. package/dist/jsx/shared/checkedOnField.mjs.map +1 -0
  452. package/dist/jsx/shared/checkedOnField.native.js +117 -0
  453. package/dist/jsx/shared/checkedOnField.native.js.map +1 -0
  454. package/dist/jsx/shared/floatingList.mjs +3 -75
  455. package/dist/jsx/shared/floatingList.mjs.map +1 -1
  456. package/dist/jsx/shared/floatingList.native.js +7 -89
  457. package/dist/jsx/shared/floatingList.native.js.map +1 -1
  458. package/package.json +8 -8
  459. package/src/AdaptivePopup/index.tsx +5 -2
  460. package/src/FloatingPanel/index.native.tsx +194 -20
  461. package/src/FloatingPanel/index.tsx +10 -0
  462. package/src/FloatingPanel/sheetGrabber.spec.tsx +53 -0
  463. package/src/fields/Select/Select.popUp.native.spec.tsx +276 -0
  464. package/src/fields/Select/Select.stories.tsx +16 -0
  465. package/src/fields/Select/index.tsx +18 -2
  466. package/src/shared/checkedOnField.ts +116 -0
  467. package/src/shared/floatingList.tsx +8 -116
  468. package/types/AdaptivePopup/index.d.ts.map +1 -1
  469. package/types/FloatingPanel/index.d.ts +15 -0
  470. package/types/FloatingPanel/index.d.ts.map +1 -1
  471. package/types/FloatingPanel/index.native.d.ts +8 -1
  472. package/types/FloatingPanel/index.native.d.ts.map +1 -1
  473. package/types/fields/Select/index.d.ts.map +1 -1
  474. package/types/shared/checkedOnField.d.ts +54 -0
  475. package/types/shared/checkedOnField.d.ts.map +1 -0
  476. package/types/shared/floatingList.d.ts +2 -53
  477. package/types/shared/floatingList.d.ts.map +1 -1
@@ -27,10 +27,10 @@ __export(floatingList_exports, {
27
27
  ScrollArrow: () => ScrollArrow,
28
28
  SyncFocusToOpen: () => SyncFocusToOpen,
29
29
  clampDropdownRadius: () => clampDropdownRadius,
30
- growOnScroll: () => growOnScroll,
31
- placeCheckedOnField: () => placeCheckedOnField,
32
- scrollArrowBand: () => scrollArrowBand,
33
- scrollArrowThreshold: () => scrollArrowThreshold
30
+ growOnScroll: () => import_checkedOnField2.growOnScroll,
31
+ placeCheckedOnField: () => import_checkedOnField2.placeCheckedOnField,
32
+ scrollArrowBand: () => import_checkedOnField2.scrollArrowBand,
33
+ scrollArrowThreshold: () => import_checkedOnField2.scrollArrowThreshold
34
34
  });
35
35
  module.exports = __toCommonJS(floatingList_exports);
36
36
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -40,6 +40,8 @@ var import_react2 = require("@phosphor-icons/react");
40
40
  var import_theme2 = require("@multiplatform.one/theme");
41
41
  var import_tamagui = require("tamagui");
42
42
  var import_InputParts = require("../InputParts/index.native.js");
43
+ var import_checkedOnField = require("./checkedOnField.native.js");
44
+ var import_checkedOnField2 = require("./checkedOnField.native.js");
43
45
  var dropdownMaxRadiusTokenNum = 8;
44
46
  function clampDropdownRadius(fieldRadius) {
45
47
  if (fieldRadius === "$0") return 0;
@@ -61,90 +63,6 @@ function SyncFocusToOpen(param) {
61
63
  }, [open, setFocused]);
62
64
  return null;
63
65
  }
64
- var scrollArrowThreshold = 8;
65
- function scrollArrowBand(rowHeight) {
66
- return Math.round(rowHeight / 2);
67
- }
68
- var clamp = function clamp2(value, low, high) {
69
- return Math.max(low, Math.min(high, value));
70
- };
71
- function placeCheckedOnField(input) {
72
- var _input_threshold;
73
- var {
74
- fieldTop,
75
- fieldBottom,
76
- rowTop,
77
- rowHeight,
78
- contentHeight,
79
- boundsTop,
80
- boundsBottom,
81
- band
82
- } = input;
83
- var threshold = (_input_threshold = input.threshold) !== null && _input_threshold !== void 0 ? _input_threshold : scrollArrowThreshold;
84
- var target = clamp((fieldTop + fieldBottom) / 2 - rowHeight / 2, boundsTop, boundsBottom - rowHeight);
85
- if (contentHeight <= boundsBottom - boundsTop) {
86
- var top = clamp(target - rowTop, boundsTop, boundsBottom - contentHeight);
87
- return {
88
- top,
89
- height: contentHeight,
90
- scrollTop: 0
91
- };
92
- }
93
- var top1 = target - rowTop;
94
- var scrollTop = 0;
95
- if (top1 < boundsTop) {
96
- scrollTop = boundsTop - top1;
97
- top1 = boundsTop;
98
- }
99
- var end = function end2() {
100
- return top1 - scrollTop + contentHeight;
101
- };
102
- var bottom = function bottom2() {
103
- return Math.min(boundsBottom, end());
104
- };
105
- var checkedTop = function checkedTop2() {
106
- return top1 - scrollTop + rowTop;
107
- };
108
- if (end() - bottom() > threshold) {
109
- var short = checkedTop() + rowHeight - (bottom() - band);
110
- if (short > 0) {
111
- var lift = scrollTop > 0 ? 0 : Math.min(short, top1 - boundsTop);
112
- top1 -= lift;
113
- scrollTop += short - lift;
114
- }
115
- }
116
- if (scrollTop > threshold) {
117
- var short1 = top1 + band - checkedTop();
118
- if (short1 > 0) scrollTop = Math.max(0, scrollTop - short1);
119
- }
120
- if (scrollTop > 0 && scrollTop <= threshold) {
121
- top1 += scrollTop;
122
- scrollTop = 0;
123
- }
124
- return {
125
- top: top1,
126
- height: bottom() - top1,
127
- scrollTop
128
- };
129
- }
130
- function growOnScroll(param) {
131
- var {
132
- top,
133
- height,
134
- scrollTop,
135
- contentHeight,
136
- boundsTop,
137
- boundsBottom
138
- } = param;
139
- var origin = top - scrollTop;
140
- var nextTop = Math.min(top, Math.max(boundsTop, origin));
141
- var nextBottom = Math.max(top + height, Math.min(boundsBottom, origin + contentHeight));
142
- return {
143
- top: nextTop,
144
- height: nextBottom - nextTop,
145
- scrollTop: nextTop - origin
146
- };
147
- }
148
66
  function ScrollArrow(param) {
149
67
  var {
150
68
  direction,
@@ -256,7 +174,7 @@ function ScrollArrow(param) {
256
174
  knobProps
257
175
  } = (0, import_theme2.useResolvedKnobs)();
258
176
  var iconSize = knobProps.controlIcon.width;
259
- var band = bandProp !== null && bandProp !== void 0 ? bandProp : scrollArrowBand(knobProps.menuRow.minHeight);
177
+ var band = bandProp !== null && bandProp !== void 0 ? bandProp : (0, import_checkedOnField.scrollArrowBand)(knobProps.menuRow.minHeight);
260
178
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
261
179
  position: "sticky",
262
180
  top: isUp ? topOffset : void 0,
@@ -1 +1 @@
1
- {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","floatingList_exports","ScrollArrow","SyncFocusToOpen","clampDropdownRadius","growOnScroll","placeCheckedOnField","scrollArrowBand","scrollArrowThreshold","module","exports","import_jsx_runtime","require","import_theme","import_react","import_react2","import_theme2","import_tamagui","import_InputParts","dropdownMaxRadiusTokenNum","fieldRadius","startsWith","num","Number","parseInt","slice","param","open","setFocused","FocusContext","useStyledContext","useEffect","rowHeight","Math","round","clamp","clamp2","low","high","max","min","input","_input_threshold","fieldTop","fieldBottom","rowTop","contentHeight","boundsTop","boundsBottom","band","threshold","top","height","scrollTop","top1","end","end2","bottom","bottom2","checkedTop","checkedTop2","short","lift","short1","origin","nextTop","nextBottom","direction","scrollRef","visible","arrowScrollDirRef","topOffset","bandProp","isUp","animationFrameRef","useRef","lastTimeRef","resumeTimerRef","hoveringRef","activeRef","selfScrollingRef","resumeDelay","stopLoop","useCallback","current","cancelAnimationFrame","startLoop","performance","now","tick","tick1","el","elapsed","px","scrollHeight","clientHeight","requestAnimationFrame","openTimestampRef","handlePointerEnter","wasOverOnOpen","clearTimeout","setTimeout","handlePointerLeave","onScroll","onScroll2","addEventListener","passive","removeEventListener"],"sources":["../../../src/shared/floatingList.tsx"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AACT,IAAAA,SAAyB,GAAAC,MAAa,CAAAC,cAAW;AACjD,IAAAC,gBAAS,GAAAF,MAAe,CAAAG,wBAAmB;AAC3C,IAAAC,iBAAS,GAAAJ,MAAA,CAAAK,mBAAwB;AACjC,IAAAC,YAAS,GAAAN,MAAY,CAAAO,SAAA,CAAAC,cAAA;AACrB,IAAAC,QAAS,GAAAA,CAAAC,MAAA,EAAAC,GAAA,KAAoB;EA6SnB,SAAAC,IAAA,IAAAD,GAAA,EA3SVZ,SAAM,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAA4BF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAE3B;AACL,IAAAC,WAAI,GAAAA,CAAAC,EAAA,EAAgBC,IAAM,EAAAC,MAAO,EAAAC,IAAA;EACjC,IAAIF,IAAA,IAAO,OAAAA,IAAA,KAAgB,YAAY,OAAAA,IAAY,eAAc,EAAG;IAClE,SAAMG,GAAM,IAAAhB,iBAAgB,CAAAa,IAAA,GAC5B,KAAOX,YAAM,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAgCF,MAAA,EAC/CnB,SAAA,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EACA;EACF,OAAAE,EAAA;AAEO;AACL,IAAAM,YAAQ,GAAAC,GAAW,IAAIR,WAAa,CAAAhB,SAAA,iBAAiB;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AACrD,IAAAE,oBAAgB;AACdhB,QAAA,CAAAgB,oBAAe;EACjBC,WAAU,EAAAA,CAAA,KAAAA,WAAW;EACrBC,eAAO,EAAAA,CAAA,KAAAA,eAAA;EACTC,mBAAA,EAAAA,CAAA,KAAAA,mBAAA;EAEOC,YAAM,EAAAA,CAAA,KAAAA,YAAuB;EAO7BC,mBAAS,EAAAA,CAAA,KAAgBA,mBAA2B;EACzDC,eAAY,EAAAA,CAAA,KAAMA,eAAa;EACjCC,oBAAA,EAAAA,CAAA,KAAAA;AA0BA;AAcOC,MAAA,CAAAC,OAAS,GAAAZ,YAAoB,CAAAG,oBAA0C;AAC5E,IAAAU,kBAAkB,GAAAC,OAAA,CAAa,mBAAmB;AAElD,IAAAC,YAAM,GAAAD,OAAkB,2BAAa;AACrC,IAAAE,YAAM,GAASF,OAAA;AAAA,IAAAG,aACD,GAAAH,OAAA,wBAA+B;AAAA,IAC3CI,aAAA,GAAAJ,OAAA;AAAA,IACAK,cAAA,GAAeL,OAAA;AAAA,IACjBM,iBAAA,GAAAN,OAAA;AACA,IAAAO,yBAAqB;AACnB,SAAAf,mBAAkBA,CAAAgB,WAAiB;EACnC,IAAAA,WAAS,SAAK,SAAQ;EACxB,WAAAA,WAAA,iBAAAA,WAAA,CAAAC,UAAA;IACA,IAAIC,GAAA,GAAMC,MAAA,CAASC,QAAA,CAAAJ,WAAA,CAAAK,KAAA;IACnB,OAAIH,GAAA,GAAAH,yBAAY,OAAAA,yBAAA,KAAAC,WAAA;EAChB;EACE,OAAAA,WAAY;AACZ;AAAM,SACRjB,gBAAAuB,KAAA;EACA;IAAMC;EAAA,CAAM,GAAAD,KAAM;EAClB;IAAME;EAAS,IAAMV,iBAAS,CAAAW,YAAmB,CAAAC,gBAAA;EACjD,IAAAhB,YAAM,CAAAiB,SAAmB,cAAM;IAE/BH,UAAY,CAAAD,IAAA;EACV,IACAA,IAAI,EACFC,UAAM,CACN;EACA;AAAqB;AACvB,IACFpB,oBAAA;AAEA,SAAID,eAAYA,CAAAyB,SAAW;EACzB,OAAAC,IAAM,CAAAC,KAAQ,CAAAF,SAAM,GAAO;AAC3B;AAAwD,IAC1DG,KAAA,YAAAC,OAAApC,KAAA,EAAAqC,GAAA,EAAAC,IAAA;EAEA,OAAIL,IAAA,CAAAM,GAAA,CAAYF,GAAA,EAAKJ,IAAA,CAAAO,GAAA,CAAAF,IAAa,EAAAtC,KAAA;AAChC;AACA,SAAAM,mBAAYA,CAAAmC,KAAA;EACd,IAAAC,gBAAA;EACA;IAAAC,QAAc;IAAAC,WAAQ;IAAOC,MAAI;IAAAb,SAAK;IAAUc,aAAA;IAAAC,SAAA;IAAAC,YAAA;IAAAC;EAAA,IAAAR,KAAA;EAClD,IAAAS,SAAA,IAAAR,gBAAA,GAAAD,KAAA,CAAAS,SAAA,cAAAR,gBAAA,cAAAA,gBAAA,GAAAlC,oBAAA;EAQO,IAAAtB,MAAS,GAAAiD,KAAA,EAAaQ,QAAA,GAAAC,WAAA,QAAAZ,SAAA,MAAAe,SAAA,EAAAC,YAAA,GAAAhB,SAAA;EAC3B,IAAAc,aAAA,IAAAE,YAAA,GAAAD,SAAA;IACA,IAAAI,GAAA,GAAAhB,KAAA,CAAAjD,MAAA,GAAA2D,MAAA,EAAAE,SAAA,EAAAC,YAAA,GAAAF,aAAA;IACA;MACAK,GAAA;MACAC,MAAA,EAAAN,aAAA;MACAO,SAAA;IAKe;EACf;EACA,IAAAC,IAAM,GAAApE,MAAU,GAAA2D,MAAS;EACzB,IAAAQ,SAAM;EACN,IAAAC,IAAO,GAAEP,SAAK;IAChBM,SAAA,GAAAN,SAAA,GAAAO,IAAA;IAIOA,IAAA,GAASP,SAAA;EACd;EACA,IAAAQ,GAAA,YAAAC,KAAA;IACA,OAAAF,IAAA,GAAAD,SAAA,GAAAP,aAAA;EACA;EACA,IAAAW,MAAA,GAAY,SAAAC,QAAA;IACZ,OAAMzB,IAAA,CAAAO,GAAA,CAAAQ,YAAA,EAAAO,GAAA;EACR,CASG;EACD,IAAAI,UAAa,YAAAC,WAAcA,CAAA;IAC3B,OAAMN,IAAA,GAAAD,SAAA,GAAoBR,MAAQ;EAClC;EACA,IAAAU,GAAM,KAAAE,MAAA,KAAiBP,SAA6C,EAAI;IACxE,IAAMW,KAAA,GAAAF,UAAc,KAAO3B,SAAK,IAAAyB,MAAA,KAAAR,IAAA;IAChC,IAAMY,KAAA;MACN,IAAMC,IAAA,GAAAT,SAAA,GAAmB,KAAO,GAAApB,IAAK,CAAAO,GAAA,CAAAqB,KAAA,EAAAP,IAAA,GAAAP,SAAA;MACrCO,IAAM,IAAAQ,IAAA;MAENT,SAAM,IAAWQ,KAAA,GAAAC,IAAY;IAC3B;EACA;EACA,IAAAT,SAAA,GAAAH,SAAkB;IACpB,IAAKa,MAAA,GAAAT,IAAA,GAAAL,IAAA,GAAAU,UAAA;IAEL,IAAMI,MAAA,MAAYV,SAAA,GAAYpB,IAAA,CAAAM,GAAM,IAAAc,SAAA,GAAAU,MAAA;EAClC;EACA,IAAAV,SAAU,QAAAA,SAAU,IAAAH,SAAA;IACpBI,IAAA,IAAAD,SAAY;IACZA,SAAM,IAAO;EACX;EACA;IACEF,GAAA,EAAAG,IAAA;IACAF,MAAA,EAAAK,MAAA,KAAAH,IAAA;IAAAD;EAEF;AACA;AACA,SAAAhD,YAAYA,CAAAqB,KAAA,EAAU;EACtB;IAAAyB,GAAA;IAAMC,MAAK;IAAAC,SAAK;IAAAP,aAAA;IAAAC,SAAA;IAAAC;EAAA,IAAAtB,KAAA;EAAA,IAAAsC,MACd,GAAAb,GAAU,GAAAE,SAAA;EAAA,IAAAY,OACL,GAAAhC,IAAI,CAAAO,GAAO,CAAAW,GAAG,EAAAlB,IAAA,CAAAM,GAAA,CAAYQ,SAAG,EAAAiB,MAAA,CAAe;EAAiC,IACpFE,UAAA,GAAAjC,IAAA,CAAAM,GAAA,CAAAY,GAAA,GAAAC,MAAA,EAAAnB,IAAA,CAAAO,GAAA,CAAAQ,YAAA,EAAAgB,MAAA,GAAAlB,aAAA;EACA;IACEK,GAAA,EAAAc,OAAA;IACAb,MAAA,EAAAc,UAAA,GAAAD,OAAkB;IAClBZ,SAAG,EAAAY,OAAA,GAAaD;EAAa;AAE/B;AAAsD,SACxD9D,YAAAwB,KAAA;EACA;IAAAyC,SAAA;IAAAC,SAAkB;IAAAC,OAAU;IAAAC,iBAAsB;IAAIC,SAAA;IAAAtB,IAAA,EAAAuB;EAAA,IAAA9C,KAAA;EACxD,IAAI+C,IAAA,GAAMN,SAAU;EAEpB,IAAAO,iBAAM,IAAmB,GAAA5D,YAAQ,CAAA6D,MAAA;EACjC,IAAAC,WAAU,GAAM,IAAA9D,YAAA,CAAA6D,MAAA;EACd,IAAAE,cAAA,GAAiB,IAAA/D,YAAU,CAAA6D,MAAY,EAAI;EAC7C,IAAIG,WAAQ,OAAAhE,YAAA,CAAA6D,MAAA;EAEZ,IAAAI,SAAM,OAAAjE,YAAqB,CAAA6D,MAAY,OAAM;EAC3C,IAAAK,gBAAY,IAAU,GAAAlE,YAAA,CAAA6D,MAAA;EACtB,IAAAM,WAAM,GAAU;EAChB,IAAAC,QAAM,OAAApE,YAAgB,CAAAqE,WAAU;IAChCJ,SAAI,CAAAK,OAAA,GAAe;IACjBC,oBAAI,CAAeX,iBAAS,CAAAU,OAAa;IACzCV,iBAAe,CAAAU,OAAA,GAAU;EACvB;EACA,IAAAE,SAAI,OAAAxE,YAAqB,CAAAqE,WAAU;IAAA,IACrCJ,SAAM,CAAAK,OAAA,KAAAN,WAAA,CAAAM,OAAA;IACRL,SAAO,CAAAK,OAAA;IACLR,WAAA,CAAUQ,OAAA,GAAAG,WAAA,CAAAC,GAAA;IACZ,IAAAC,IAAA,YAAAC,MAAA;MACE,IAAAC,EAAA,GAASvB,SAAC,CAAAgB,OAAA;MAEd,IAAM,CAAAO,EAAA,KAAAb,WAAqB,CAAAM,OAAA,IAAY,CAAAL,SAAM,CAAAK,OAAA;QAC3CL,SAAY,CAAAK,OAAA,GAAU;QAClB;MACF;MACA,IAAAI,GAAA,GAAAD,WAAe,CAAAC,GAAU;MAC3B,IAAAI,OAAA,GAAAJ,GAAA,GAAAZ,WAAA,CAAAQ,OAAA;MACAR,WAAS,CAAAQ,OAAA,GAAAI,GAAA;MACP,IAAAK,EAAA,GAAS5D,IAAA,CAAAO,GAAA,CAAAoD,OAAA,MAAA3D,IAAA,CAAAM,GAAA,CAAAkC,IAAA,GAAAkB,EAAA,CAAAtC,SAAA,GAAAsC,EAAA,CAAAG,YAAA,GAAAH,EAAA,CAAAI,YAAA,GAAAJ,EAAA,CAAAtC,SAAA;MAEb,IAAAwC,EAAU,MAAM;QACdb,gBAAW,CAAUI,OAAA;QACjBd,iBAAiB,CAAAc,OAAA,GAAAX,IAAA;QACrBkB,EAAM,CAAAtC,SAAA,IAAWoB,IAAM,IAAAoB,EAAA,GAAAA,EAAA;MACrB;MACEnB,iBAAA,CAAAU,OAAiB,GAAAY,qBAAU,CAAAP,IAAA;IAC3B;IAAAf,iBACF,CAAAU,OAAA,GAAAY,qBAAA,CAAAP,IAAA;EACA,IACAhB,IAAA,EACAL,SAAI,CACJ;EACE,IAAA6B,gBAAA,GAAe,IAAAnF,YAAU,CAAA6D,MAAA;EACzB,IAAA7D,YAAI,CAAAiB,SAAY,cAAS;IAAUkE,gBACvB,CAAAb,OAAA,GAAAG,WAAA,CAAAC,GAAA;EAAA,GAChB,CACAnB,OAAG,CACH;EACF,IAAI6B,kBAAW,GAAS,IAAApF,YAAW,CAAAqE,WAAS;IAE5CL,WAAA,CAAAM,OAAA;IACE,IAAAQ,OAAM,GAAML,WAAA,CAAAC,GAAA,KAAAS,gBAAA,CAAAb,OAAA;IACV,IAAAe,aAAA,GAAAP,OAAmB;IACrB,IAAAO,aAAA;MACC,IAAAtB,cAAkB,CAAAO,OAAA,EAAAgB,YAAA,CAAAvB,cAAA,CAAAO,OAAA;MACrBP,cAAA,CAAAO,OAAA,GAAAiB,UAAA;QAEMxB,cAAY,CAAAO,OAAA,GAAY,IAAI;QAClC,IAAUN,WAAM,CAAAM,OAAA,EAAAE,SAAA;MACd,GAAK;IACL,OAAM;MACNA,SAAM,EAAO;IACb;EACF,GAAG,CAEHA,SAAM,CACN;EACA,IAAAgB,kBAAiB,KAAU,EAAAxF,YAAY,CAAAqE,WAAA;IACvCL,WAAa,CAAAM,OAAA,QAAY;IAEzB,IAAAP,cACE,CAAAO,OAAA;MAACgB,YAAA,CAAAvB,cAAA,CAAAO,OAAA;MAAAP,cAAA,CAAAO,OAAA;IAAA;IACUF,QACJ;EAAmB,IACGA,QAC3B,CAAQ;EACA,IAERpE,YAAA,CAAAiB,SAAA;IAAA,IAAC4D,EAAA,GAAAvB,SAAA,CAAAgB,OAAA;IAAA,KAAAO,EAAA,KAAAtB,OAAA;IAAA,IAAAkC,QACC,YAAAC,SAAsBA,CAAA;MAAA,IACtBxB,gBAAA,CAAAI,OAAgB;QAAAJ,gBAChB,CAAAI,OAAgB,GAAO;QAAQ;MACtB;MACH,IACN,CAAAN,WAAO,CAAAM,OAAA;MAAAF,QACP,CAAK;MAAW,IAChBL,cAAQ,CAAOO,OAAA,EAAYgB,YAAA,CAAAvB,cAAA,CAAAO,OAAA;MAAAP,cACrB,CAAAO,OAAA,GAAAiB,UAAA;QAAAxB,cACE,CAAAO,OAAA;QAAA,IACRN,WAAW,CAAAM,OAAO,EAAAE,SAAI;MAAA,GAAAL,WACtB;IAAW;IACIU,EAAA,CAAAc,gBACf,SAAe,EAAAF,QAAU,EAAS;MAAAG,OAClC;IAAuB;IACqB,OAI5C,YAAS;MAAsB,OAC/Bf,EAAA,CAAAgB,mBAAgB,CAAU,UAAAJ,QAAA;IAAqB;EAC/B,IAIhBnC,SAAA,EAAAC,OACF,EAAAiB,SAAA,EACFJ,QAAA,CAEJ","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","floatingList_exports","ScrollArrow","SyncFocusToOpen","clampDropdownRadius","growOnScroll","import_checkedOnField2","placeCheckedOnField","scrollArrowBand","scrollArrowThreshold","module","exports","import_jsx_runtime","require","import_theme","import_react","import_react2","import_theme2","import_tamagui","import_InputParts","import_checkedOnField","dropdownMaxRadiusTokenNum","fieldRadius","startsWith","num","Number","parseInt","slice","param","open","setFocused","FocusContext","useStyledContext","useEffect","direction","scrollRef","visible","arrowScrollDirRef","topOffset","band","bandProp","isUp","animationFrameRef","useRef","lastTimeRef","resumeTimerRef","hoveringRef","activeRef","selfScrollingRef","resumeDelay","stopLoop","useCallback","current","cancelAnimationFrame","startLoop","performance","now","tick","tick1","el","elapsed","px","Math","min","max","scrollTop","scrollHeight","clientHeight","requestAnimationFrame","openTimestampRef","handlePointerEnter","wasOverOnOpen","clearTimeout","setTimeout","handlePointerLeave","onScroll","onScroll2","addEventListener","passive","removeEventListener","panelFill","setPanelFill","useState","getComputedStyle","fill","backgroundColor"],"sources":["../../../src/shared/floatingList.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplatform.one/forms",
3
- "version": "7.81.0",
3
+ "version": "7.81.2",
4
4
  "description": "Cross-platform form components with URL state management",
5
5
  "keywords": [
6
6
  "cross-platform",
@@ -57,10 +57,10 @@
57
57
  },
58
58
  "dependencies": {
59
59
  "@floating-ui/react": "^0.27.20",
60
- "@multiplatform.one/platform": "^7.81.0",
61
- "@multiplatform.one/router": "^7.81.0",
62
- "@multiplatform.one/table-primitives": "^7.81.0",
63
- "@multiplatform.one/theme": "^7.81.0",
60
+ "@multiplatform.one/platform": "^7.81.2",
61
+ "@multiplatform.one/router": "^7.81.2",
62
+ "@multiplatform.one/table-primitives": "^7.81.2",
63
+ "@multiplatform.one/theme": "^7.81.2",
64
64
  "@phosphor-icons/react": "^2.1.10",
65
65
  "@tamagui/get-font-sized": "2.7.6",
66
66
  "@tamagui/get-token": "2.7.6",
@@ -80,9 +80,9 @@
80
80
  },
81
81
  "devDependencies": {
82
82
  "@expo/ui": "~55.0.17",
83
- "@multiplatform.one/config": "7.81.0",
84
- "@multiplatform.one/storybook": "7.81.0",
85
- "@multiplatform.one/test-utils": "7.81.0",
83
+ "@multiplatform.one/config": "7.81.2",
84
+ "@multiplatform.one/storybook": "7.81.2",
85
+ "@multiplatform.one/test-utils": "7.81.2",
86
86
  "@tamagui/build": "2.7.6",
87
87
  "@tamagui/config": "2.7.6",
88
88
  "@tamagui/vite-plugin": "2.7.6",
@@ -1,4 +1,4 @@
1
- import { transitionProps, overlayScrim } from "@multiplatform.one/theme";
1
+ import { sheetGrabber, transitionProps, overlayScrim } from "@multiplatform.one/theme";
2
2
  import { DialogContent, DialogOverlay } from "@multiplatform.one/theme";
3
3
  import {
4
4
  cloneElement,
@@ -404,7 +404,10 @@ export function AdaptivePopup({
404
404
  enterStyle={{ opacity: 0 }}
405
405
  exitStyle={{ opacity: 0 }}
406
406
  />
407
- <Sheet.Handle {...({ "aria-hidden": true } as Record<string, unknown>)} />
407
+ <Sheet.Handle
408
+ {...sheetGrabber}
409
+ {...({ "aria-hidden": true } as Record<string, unknown>)}
410
+ />
408
411
  <Sheet.Frame
409
412
  // Sheet.Frame forwards its ref at runtime; the styled prop type
410
413
  // just omits `ref`, hence the cast. tabIndex -1 makes the frame a
@@ -61,10 +61,25 @@
61
61
  * OVERLAY_BREAKPOINT the sheet is the wrong form. The panel opens over its
62
62
  * field the way the web float does (LC-105, LC-112), sized by `widthMode`;
63
63
  * compact windows (iPhone, Slide Over) keep the sheet. `sheet` forces it.
64
+ *
65
+ * Pop-up (`popUp`, FZ-8655): a Select's menu face opens the way a macOS pop-up
66
+ * does, as the web's covering Select does. The rows are measured here, the
67
+ * caller reports the row that goes on the field, and `placeCheckedOnField`
68
+ * (shared with the web) places the panel. It's a touch list, so a panel keeps
69
+ * its box as it scrolls, as a UIMenu does, where a pointer's grows
70
+ * (`growOnScroll`).
64
71
  */
65
72
 
66
- import { nativeAnimationConfig, type MotionStop, overlayScrim } from "@multiplatform.one/theme";
73
+ import { CaretDownIcon, CaretUpIcon } from "@phosphor-icons/react";
74
+ import {
75
+ nativeAnimationConfig,
76
+ type MotionStop,
77
+ overlayScrim,
78
+ sheetGrabber,
79
+ sheetGrabberZone,
80
+ } from "@multiplatform.one/theme";
67
81
  import {
82
+ type ComponentRef,
68
83
  isValidElement,
69
84
  type ReactNode,
70
85
  useCallback,
@@ -88,10 +103,22 @@ import {
88
103
  useWindowDimensions,
89
104
  View as RNView,
90
105
  type GestureResponderEvent,
106
+ type NativeScrollEvent,
107
+ type NativeSyntheticEvent,
91
108
  } from "react-native";
92
109
  import { SafeAreaInsetsContext, initialWindowMetrics } from "react-native-safe-area-context";
93
- import { Surface, useResolvedKnobs, motionDurationMs } from "@multiplatform.one/theme";
94
- import { View, YStack } from "tamagui";
110
+ import {
111
+ Surface,
112
+ useGlyphColor,
113
+ useResolvedKnobs,
114
+ motionDurationMs,
115
+ } from "@multiplatform.one/theme";
116
+ import { getTokenValue, View, YStack } from "tamagui";
117
+ import {
118
+ placeCheckedOnField,
119
+ scrollArrowBand,
120
+ scrollArrowThreshold,
121
+ } from "../shared/checkedOnField";
95
122
  import { useInsideOverlay, useOverlayZIndex } from "../shared/overlayStack";
96
123
  import { OverlayWindow } from "../shared/OverlayWindow";
97
124
  import { t } from "../shared/t";
@@ -174,6 +201,7 @@ export function FloatingPanel({
174
201
  triggerEcho = true,
175
202
  coverAlign = "start",
176
203
  iconCover = false,
204
+ popUp,
177
205
  anchorMode,
178
206
  panelWidth = "content",
179
207
  sheet,
@@ -242,7 +270,7 @@ export function FloatingPanel({
242
270
  const insideOverlay = useInsideOverlay();
243
271
  const asMenu = isContextMenu
244
272
  ? compactFace === "menu"
245
- : resolveCompactFace(compactFace, insideOverlay) === "menu";
273
+ : resolveCompactFace(compactFace, insideOverlay) === "menu" || (popUp != null && regular);
246
274
  const asRegular = regular && !asMenu && !isContextMenu && sheet !== true;
247
275
  const anchored = asMenu || asRegular;
248
276
  const triggerRef = useRef<RNView | null>(null);
@@ -657,8 +685,9 @@ export function FloatingPanel({
657
685
  Math.max(safeArea?.bottom ?? 0, keyboardInset) -
658
686
  panelViewportPadding,
659
687
  }}
660
- echo={triggerEcho && !iconCover ? (triggerRow ?? trigger) : null}
688
+ echo={triggerEcho && !iconCover && !popUp ? (triggerRow ?? trigger) : null}
661
689
  echoLabel={triggerA11y?.label}
690
+ popUp={popUp}
662
691
  iconCover={iconCover && anchorMode !== "attach"}
663
692
  group={iconCover && anchorMode !== "attach" ? (group ?? null) : null}
664
693
  coverAlign={anchorMode === "attach" ? "start" : coverAlign}
@@ -765,19 +794,23 @@ export function FloatingPanel({
765
794
  {...knobProps.elevatedSurface}
766
795
  borderBottomLeftRadius={0}
767
796
  borderBottomRightRadius={0}
797
+ // A sheet spans the screen: only its top edge meets the page,
798
+ // so no side border gutters a full-width row (FZ-8557).
799
+ borderLeftWidth={0}
800
+ borderRightWidth={0}
801
+ borderBottomWidth={0}
768
802
  maxHeight={maxHeight}
769
803
  flexShrink={1}
770
804
  minHeight={0}
771
805
  // sheetFill opens at full sheet height (flexShrink keeps the
772
806
  // keyboard from pushing the top of the sheet off-screen).
773
807
  {...(sheetFill ? { height: maxHeight } : undefined)}
774
- paddingTop="$2"
775
808
  paddingBottom={sheetBottomPadding}
776
809
  // VoiceOver escape gesture (two-finger Z) dismisses the sheet.
777
810
  onAccessibilityEscape={close}
778
811
  >
779
812
  {/*
780
- The grab ZONE, not just the 4pt pill: a 4pt tall target is
813
+ The grab ZONE, not just the 5pt pill: a 5pt tall target is
781
814
  unhittable. The gesture lives here rather than on the whole
782
815
  sheet so it never fights the ScrollView inside it, which is the
783
816
  same division iOS uses.
@@ -786,14 +819,10 @@ export function FloatingPanel({
786
819
  {...panResponder.panHandlers}
787
820
  accessibilityRole="adjustable"
788
821
  accessibilityLabel={t("Drag to resize")}
789
- style={{
790
- alignSelf: "stretch",
791
- alignItems: "center",
792
- paddingTop: 4,
793
- paddingBottom: 12,
794
- }}
822
+ testID="floating-panel-grabber"
823
+ style={sheetGrabberZone}
795
824
  >
796
- <View width={40} height={4} borderRadius={2} backgroundColor="$color8" />
825
+ <View {...sheetGrabber} />
797
826
  </RNView>
798
827
  <YStack
799
828
  padding={framePadding}
@@ -830,6 +859,7 @@ function TriggerMenuPanel({
830
859
  bounds,
831
860
  echo,
832
861
  echoLabel,
862
+ popUp,
833
863
  iconCover = false,
834
864
  group = null,
835
865
  coverAlign,
@@ -846,6 +876,8 @@ function TriggerMenuPanel({
846
876
  bounds: PanelBounds;
847
877
  echo: ReactNode;
848
878
  echoLabel?: string;
879
+ /** LC-112 (FZ-8655): the row that sits on the trigger, a macOS pop-up. */
880
+ popUp?: FloatingPanelProps["popUp"];
849
881
  /** LC-112 (FZ-8665): an icon trigger, covered at the surface it is seen on. */
850
882
  iconCover?: boolean;
851
883
  /** LC-112 (FZ-8550): the glass capsule a grouped trigger sits on. */
@@ -860,7 +892,12 @@ function TriggerMenuPanel({
860
892
  children: ReactNode;
861
893
  }) {
862
894
  const { knobProps } = useResolvedKnobs({ painted: false });
895
+ const glyphColor = useGlyphColor();
863
896
  const [size, setSize] = useState<{ width: number; height: number } | null>(null);
897
+ const [contentHeight, setContentHeight] = useState<number | null>(null);
898
+ const [scrolled, setScrolled] = useState<{ up: boolean; down: boolean } | null>(null);
899
+ const scrollRef = useRef<ComponentRef<typeof RNScrollView>>(null);
900
+ const offsetRef = useRef(0);
864
901
  // LC-112 (FZ-8480, FZ-8550): an icon trigger's panel covers the surface the
865
902
  // trigger is seen on, its capsule or its press target.
866
903
  const cover = anchor && iconCover ? iconCoverRect(anchor, group) : anchor;
@@ -885,8 +922,31 @@ function TriggerMenuPanel({
885
922
  echo: echo != null,
886
923
  floor: Math.max(MENU_MIN_WIDTH, cover?.width ?? 0),
887
924
  });
888
- const placement =
889
- anchor && cover && size
925
+ const borderWidth = Number(knobProps.elevatedSurface.borderWidth) || 0;
926
+ const framePaddingToken = getTokenValue(
927
+ framePadding as Parameters<typeof getTokenValue>[0],
928
+ "space",
929
+ );
930
+ const framePaddingPx = typeof framePaddingToken === "number" ? framePaddingToken : 0;
931
+ // LC-112 (FZ-8655): the web's macOS pop-up, from the rows measured here.
932
+ const band = scrollArrowBand(knobProps.menuRow.minHeight);
933
+ const fit =
934
+ anchor && popUp?.row && contentHeight != null
935
+ ? placeCheckedOnField({
936
+ fieldTop: anchor.y,
937
+ fieldBottom: anchor.y + anchor.height,
938
+ rowTop: popUp.row.top + framePaddingPx,
939
+ rowHeight: popUp.row.height,
940
+ contentHeight,
941
+ boundsTop: bounds.top + borderWidth,
942
+ boundsBottom: bounds.bottom - borderWidth,
943
+ band,
944
+ })
945
+ : null;
946
+ const scrollTop = fit?.scrollTop ?? 0;
947
+ const scrolls = fit != null && contentHeight != null && fit.height < contentHeight;
948
+ const placed =
949
+ anchor && cover && size && (!popUp || fit)
890
950
  ? (attach ? placeBesideTrigger : placeOverTrigger)({
891
951
  trigger: cover,
892
952
  width: size.width,
@@ -897,6 +957,39 @@ function TriggerMenuPanel({
897
957
  pinned: iconCover,
898
958
  })
899
959
  : null;
960
+ const placement =
961
+ placed && fit
962
+ ? { ...placed, top: fit.top - borderWidth, maxHeight: fit.height + 2 * borderWidth }
963
+ : placed;
964
+ useLayoutEffect(() => {
965
+ offsetRef.current = scrollTop;
966
+ if (scrollTop > 0) scrollRef.current?.scrollTo({ y: scrollTop, animated: false });
967
+ }, [scrollTop]);
968
+ const atRest = {
969
+ up: scrolls && scrollTop > scrollArrowThreshold,
970
+ down:
971
+ scrolls &&
972
+ fit != null &&
973
+ contentHeight != null &&
974
+ contentHeight - scrollTop - fit.height > scrollArrowThreshold,
975
+ };
976
+ const arrows = scrolled ?? atRest;
977
+ const handleScroll = (event: NativeSyntheticEvent<NativeScrollEvent>) => {
978
+ if (!scrolls) return;
979
+ const { contentOffset, contentSize, layoutMeasurement } = event.nativeEvent;
980
+ offsetRef.current = contentOffset.y;
981
+ const up = contentOffset.y > scrollArrowThreshold;
982
+ const down =
983
+ contentSize.height - contentOffset.y - layoutMeasurement.height > scrollArrowThreshold;
984
+ setScrolled((prev) => (prev?.up === up && prev?.down === down ? prev : { up, down }));
985
+ };
986
+ // A band's tap turns the page, less a row, so nothing goes unseen.
987
+ const scrollPage = (direction: "up" | "down") => {
988
+ if (!fit) return;
989
+ const page = Math.max(band, fit.height - 2 * band - (popUp?.row?.height ?? 0));
990
+ const next = offsetRef.current + (direction === "up" ? -page : page);
991
+ scrollRef.current?.scrollTo({ y: Math.max(0, next), animated: true });
992
+ };
900
993
  // LC-112 seamless cover: the menu is its trigger grown open, so it draws the
901
994
  // trigger's corner arc at all four corners. A field reports its radius; an
902
995
  // icon button with no echo is a circle or capsule, half its short side.
@@ -909,7 +1002,6 @@ function TriggerMenuPanel({
909
1002
  : coverAlign === "auto" && half
910
1003
  ? half
911
1004
  : undefined;
912
- const borderWidth = Number(knobProps.elevatedSurface.borderWidth) || 0;
913
1005
  // A panel slid along the screen (a `"screen"` or fixed width, or one pushed
914
1006
  // back inside the margins) keeps its echo on the trigger.
915
1007
  const echoShift =
@@ -998,13 +1090,47 @@ function TriggerMenuPanel({
998
1090
  </Pressable>
999
1091
  ) : null}
1000
1092
  <RNScrollView
1093
+ ref={scrollRef}
1001
1094
  style={{ flexGrow: 0, flexShrink: 1 }}
1002
1095
  keyboardShouldPersistTaps="handled"
1096
+ {...(popUp
1097
+ ? {
1098
+ contentOffset: { x: 0, y: scrollTop },
1099
+ scrollEnabled: scrolls,
1100
+ bounces: scrolls,
1101
+ onScroll: handleScroll,
1102
+ scrollEventThrottle: 16,
1103
+ }
1104
+ : null)}
1003
1105
  >
1004
- <YStack padding={framePadding} gap={frameGap}>
1005
- {children}
1006
- </YStack>
1106
+ <RNView
1107
+ testID="floating-panel-menu-content"
1108
+ collapsable={false}
1109
+ onLayout={popUp ? (e) => setContentHeight(e.nativeEvent.layout.height) : undefined}
1110
+ >
1111
+ <YStack padding={framePadding} gap={frameGap}>
1112
+ {children}
1113
+ </YStack>
1114
+ </RNView>
1007
1115
  </RNScrollView>
1116
+ {scrolls ? (
1117
+ <>
1118
+ <ScrollBand
1119
+ direction="up"
1120
+ band={band}
1121
+ visible={arrows.up}
1122
+ glyphColor={glyphColor}
1123
+ onPress={scrollPage}
1124
+ />
1125
+ <ScrollBand
1126
+ direction="down"
1127
+ band={band}
1128
+ visible={arrows.down}
1129
+ glyphColor={glyphColor}
1130
+ onPress={scrollPage}
1131
+ />
1132
+ </>
1133
+ ) : null}
1008
1134
  </YStack>
1009
1135
  </YStack>
1010
1136
  </RNView>
@@ -1012,6 +1138,54 @@ function TriggerMenuPanel({
1012
1138
  );
1013
1139
  }
1014
1140
 
1141
+ /**
1142
+ * A pop-up's scroll arrow on native (LC-112, FZ-8655): the web's opaque band in
1143
+ * the panel's own fill, half a menu row at a clipped edge, so a cut row hides
1144
+ * under it. A tap on it stays off the row beneath and turns the page.
1145
+ */
1146
+ function ScrollBand({
1147
+ direction,
1148
+ band,
1149
+ visible,
1150
+ glyphColor,
1151
+ onPress,
1152
+ }: {
1153
+ direction: "up" | "down";
1154
+ band: number;
1155
+ visible: boolean;
1156
+ glyphColor: string;
1157
+ onPress: (direction: "up" | "down") => void;
1158
+ }) {
1159
+ const { knobProps } = useResolvedKnobs({ painted: false });
1160
+ const Icon = direction === "up" ? CaretUpIcon : CaretDownIcon;
1161
+ if (!visible) return null;
1162
+ return (
1163
+ <Pressable
1164
+ testID={`floating-panel-scroll-${direction}`}
1165
+ onPress={() => onPress(direction)}
1166
+ accessibilityElementsHidden
1167
+ importantForAccessibility="no-hide-descendants"
1168
+ style={{
1169
+ position: "absolute",
1170
+ start: 0,
1171
+ end: 0,
1172
+ height: band,
1173
+ zIndex: 1,
1174
+ ...(direction === "up" ? { top: 0 } : { bottom: 0 }),
1175
+ }}
1176
+ >
1177
+ <View
1178
+ flex={1}
1179
+ alignItems="center"
1180
+ justifyContent="center"
1181
+ backgroundColor={knobProps.elevatedSurface.backgroundColor}
1182
+ >
1183
+ <Icon size={knobProps.controlIcon.width} color={glyphColor} />
1184
+ </View>
1185
+ </Pressable>
1186
+ );
1187
+ }
1188
+
1015
1189
  /**
1016
1190
  * The menu at the long-press point: measured once per open at its natural
1017
1191
  * size, then placed by the same rule as the web pointer menu. Later layouts
@@ -108,6 +108,16 @@ export interface FloatingPanelProps {
108
108
  * it opens down from the button's top edge, or up from its bottom edge.
109
109
  */
110
110
  iconCover?: boolean;
111
+ /**
112
+ * Native only: the panel opens the way a macOS pop-up does (LC-112, FZ-8655).
113
+ * `row` is the row that sits on the trigger, its offset and height in the
114
+ * panel's content, `null` until the caller has measured it. There's no
115
+ * trigger echo, a list that fits the safe edges shows whole, and a taller one
116
+ * scrolls under opaque arrow bands (`placeCheckedOnField`). At regular width
117
+ * this is the panel's face at every list length, so a Select never takes
118
+ * RegularPanel's echo or a sheet there.
119
+ */
120
+ popUp?: { row: { top: number; height: number } | null };
111
121
  /**
112
122
  * Optional control rendered beside the trigger but OUTSIDE the native press
113
123
  * capture (e.g. DatePicker/ColorPicker clear). On native the trigger subtree
@@ -0,0 +1,53 @@
1
+ /**
2
+ * FZ-8648: one grabber. A FloatingPanel's phone sheet draws the theme's
3
+ * `sheetGrabber` on the web and on native, with nothing local on top, so it
4
+ * can't drift from SheetModal's (whose spec holds it to the same recipe).
5
+ */
6
+ import { renderWithProviders } from "@multiplatform.one/test-utils";
7
+ import { sheetGrabber } from "@multiplatform.one/theme";
8
+ import { describe, expect, it, vi } from "vitest";
9
+ import { Text, View } from "tamagui";
10
+ import { FloatingPanel as NativePanel } from "./index.native";
11
+ import { FloatingPanel } from "./index";
12
+
13
+ vi.mock("react-native-web", async (importOriginal) => ({
14
+ ...(await importOriginal<typeof import("react-native")>()),
15
+ ActionSheetIOS: undefined,
16
+ Modal: ({ children }: { children: import("react").ReactNode }) => children,
17
+ useWindowDimensions: () => ({ width: 390, height: 844, scale: 3, fontScale: 1 }),
18
+ }));
19
+
20
+ const atoms = (node: Element) => String(node.className).split(/\s+/).filter(Boolean);
21
+
22
+ function recipeAtoms() {
23
+ const view = renderWithProviders(<View testID="recipe" {...sheetGrabber} />);
24
+ const list = atoms(view.getByTestId("recipe"));
25
+ view.unmount();
26
+ return list;
27
+ }
28
+
29
+ describe("FloatingPanel sheet grabber (FZ-8648)", () => {
30
+ it("draws the recipe in the native sheet", () => {
31
+ const recipe = recipeAtoms();
32
+ const result = renderWithProviders(
33
+ <NativePanel open onOpenChange={() => {}} trigger={<Text>Open</Text>}>
34
+ <Text>Row</Text>
35
+ </NativePanel>,
36
+ );
37
+ const capsule = result.getByTestId("floating-panel-grabber").firstElementChild as Element;
38
+ expect(atoms(capsule)).toEqual(expect.arrayContaining(recipe));
39
+ });
40
+
41
+ it("draws the recipe in the web sheet, with no transform", async () => {
42
+ const recipe = recipeAtoms();
43
+ const result = renderWithProviders(
44
+ <FloatingPanel open sheet onOpenChange={() => {}} trigger={<Text>Open</Text>}>
45
+ <Text>Row</Text>
46
+ </FloatingPanel>,
47
+ );
48
+ await result.findByTestId("floating-panel-sheet");
49
+ const handle = result.getByLabelText("Resize");
50
+ expect(atoms(handle)).toEqual(expect.arrayContaining(recipe));
51
+ expect(handle.getAttribute("style") ?? "").not.toMatch(/transform/);
52
+ });
53
+ });