@multiplatform.one/forms 7.71.0 → 7.72.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 (667) hide show
  1. package/dist/cjs/AdaptivePopup/index.native.js +2 -2
  2. package/dist/cjs/AdaptivePopup/index.native.js.map +1 -1
  3. package/dist/cjs/Button/IconButtonGroup.native.js.map +1 -1
  4. package/dist/cjs/Button/iconButtonGroupContext.native.js.map +1 -1
  5. package/dist/cjs/Button/index.cjs +16 -0
  6. package/dist/cjs/Button/index.native.js +18 -2
  7. package/dist/cjs/Button/index.native.js.map +1 -1
  8. package/dist/cjs/Button/mediaPlate.native.js.map +1 -1
  9. package/dist/cjs/Chip/index.native.js.map +1 -1
  10. package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js +1 -1
  11. package/dist/cjs/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
  12. package/dist/cjs/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
  13. package/dist/cjs/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
  14. package/dist/cjs/ContextualSaveBar/index.native.js +3 -3
  15. package/dist/cjs/ContextualSaveBar/index.native.js.map +1 -1
  16. package/dist/cjs/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
  17. package/dist/cjs/ControlGroup/index.native.js +1 -1
  18. package/dist/cjs/ControlGroup/index.native.js.map +1 -1
  19. package/dist/cjs/DescriptionList/index.native.js +2 -2
  20. package/dist/cjs/DescriptionList/index.native.js.map +1 -1
  21. package/dist/cjs/ErrorSummary.native.js.map +1 -1
  22. package/dist/cjs/FieldDisplay/editMode.native.js.map +1 -1
  23. package/dist/cjs/FieldDisplay/formatters.native.js.map +1 -1
  24. package/dist/cjs/FieldDisplay/index.native.js +1 -1
  25. package/dist/cjs/FieldDisplay/index.native.js.map +1 -1
  26. package/dist/cjs/FieldGroup.native.js.map +1 -1
  27. package/dist/cjs/FloatingPanel/RegularPanel.native.js.map +1 -1
  28. package/dist/cjs/FloatingPanel/compactFace.native.js.map +1 -1
  29. package/dist/cjs/FloatingPanel/containingBlock.native.js.map +1 -1
  30. package/dist/cjs/FloatingPanel/echoContext.cjs +39 -0
  31. package/dist/cjs/FloatingPanel/echoContext.native.js +42 -0
  32. package/dist/cjs/FloatingPanel/echoContext.native.js.map +1 -0
  33. package/dist/cjs/FloatingPanel/index.cjs +212 -80
  34. package/dist/cjs/FloatingPanel/index.native.js +92 -17
  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/panelWidth.cjs +92 -0
  38. package/dist/cjs/FloatingPanel/panelWidth.native.js +99 -0
  39. package/dist/cjs/FloatingPanel/panelWidth.native.js.map +1 -0
  40. package/dist/cjs/FloatingPanel/pointAnchor.cjs +15 -5
  41. package/dist/cjs/FloatingPanel/pointAnchor.native.js +15 -5
  42. package/dist/cjs/FloatingPanel/pointAnchor.native.js.map +1 -1
  43. package/dist/cjs/FloatingPanel/regularPlacement.native.js.map +1 -1
  44. package/dist/cjs/FloatingPanel/trailingAction.native.js +1 -1
  45. package/dist/cjs/FloatingPanel/trailingAction.native.js.map +1 -1
  46. package/dist/cjs/FloatingPanel/useFloatingPanel.cjs +58 -4
  47. package/dist/cjs/FloatingPanel/useFloatingPanel.native.js +69 -4
  48. package/dist/cjs/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  49. package/dist/cjs/Form/index.native.js +1 -1
  50. package/dist/cjs/Form/index.native.js.map +1 -1
  51. package/dist/cjs/Form/submissionController.native.js.map +1 -1
  52. package/dist/cjs/Form/validateOn.native.js.map +1 -1
  53. package/dist/cjs/FormGrid.native.js.map +1 -1
  54. package/dist/cjs/FormSection.native.js.map +1 -1
  55. package/dist/cjs/InputParts/PasswordReveal.native.js.map +1 -1
  56. package/dist/cjs/InputParts/index.cjs +18 -0
  57. package/dist/cjs/InputParts/index.native.js +19 -1
  58. package/dist/cjs/InputParts/index.native.js.map +1 -1
  59. package/dist/cjs/Label/index.native.js.map +1 -1
  60. package/dist/cjs/MediaPicker/base64.native.js.map +1 -1
  61. package/dist/cjs/MediaPicker/payload.native.js.map +1 -1
  62. package/dist/cjs/MediaPicker/types.native.js.map +1 -1
  63. package/dist/cjs/MediaPicker/useMediaPicker.native.js.map +1 -1
  64. package/dist/cjs/Skeleton/index.native.js.map +1 -1
  65. package/dist/cjs/Spinner/SpinnerGlyph.native.js.map +1 -1
  66. package/dist/cjs/Spinner/spinnerSize.native.js.map +1 -1
  67. package/dist/cjs/Table/index.native.js.map +1 -1
  68. package/dist/cjs/Wheel/NativeWheel.native.js +1 -1
  69. package/dist/cjs/Wheel/NativeWheel.native.js.map +1 -1
  70. package/dist/cjs/Wheel/haptic.native.js.map +1 -1
  71. package/dist/cjs/Wheel/index.cjs +2 -1
  72. package/dist/cjs/Wheel/index.native.js +4 -1
  73. package/dist/cjs/Wheel/index.native.js.map +1 -1
  74. package/dist/cjs/Wheel/wheelShared.cjs +6 -1
  75. package/dist/cjs/Wheel/wheelShared.native.js +7 -1
  76. package/dist/cjs/Wheel/wheelShared.native.js.map +1 -1
  77. package/dist/cjs/actionLabel.native.js.map +1 -1
  78. package/dist/cjs/fieldDefaults.native.js.map +1 -1
  79. package/dist/cjs/fieldLayout.native.js +1 -1
  80. package/dist/cjs/fieldLayout.native.js.map +1 -1
  81. package/dist/cjs/fields/Barcode/BarcodePreview.native.js.map +1 -1
  82. package/dist/cjs/fields/Barcode/BarcodeScanner.native.js +1 -1
  83. package/dist/cjs/fields/Barcode/code128.native.js.map +1 -1
  84. package/dist/cjs/fields/Barcode/index.native.js +2 -2
  85. package/dist/cjs/fields/Barcode/index.native.js.map +1 -1
  86. package/dist/cjs/fields/Barcode/qr.native.js.map +1 -1
  87. package/dist/cjs/fields/Barcode/scannerTypes.native.js.map +1 -1
  88. package/dist/cjs/fields/Checkbox/Checkbox.native.js +1 -1
  89. package/dist/cjs/fields/Checkbox/Checkbox.native.js.map +1 -1
  90. package/dist/cjs/fields/Checkbox/CheckboxBox.native.js.map +1 -1
  91. package/dist/cjs/fields/Checkbox/CheckboxCard.native.js.map +1 -1
  92. package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
  93. package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js +1 -1
  94. package/dist/cjs/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
  95. package/dist/cjs/fields/Checkbox/checkboxGroupContext.native.js.map +1 -1
  96. package/dist/cjs/fields/Checkbox/index.native.js.map +1 -1
  97. package/dist/cjs/fields/ColorPicker/SystemColorField.native.js.map +1 -1
  98. package/dist/cjs/fields/ColorPicker/index.native.js +2 -2
  99. package/dist/cjs/fields/ColorPicker/index.native.js.map +1 -1
  100. package/dist/cjs/fields/ColorPicker/parts.native.js +2 -2
  101. package/dist/cjs/fields/ColorPicker/parts.native.js.map +1 -1
  102. package/dist/cjs/fields/ColorPicker/systemColorWell.gnome.native.js.map +1 -1
  103. package/dist/cjs/fields/Combobox/authorOptions.native.js.map +1 -1
  104. package/dist/cjs/fields/Combobox/index.cjs +1 -0
  105. package/dist/cjs/fields/Combobox/index.native.js +6 -5
  106. package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
  107. package/dist/cjs/fields/DatePicker/Calendar.native.js.map +1 -1
  108. package/dist/cjs/fields/DatePicker/DateRangePicker.native.js +2 -2
  109. package/dist/cjs/fields/DatePicker/DateRangePicker.native.js.map +1 -1
  110. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.cjs +6 -30
  111. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js +14 -37
  112. package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
  113. package/dist/cjs/fields/DatePicker/DatetimePicker.native.js +2 -2
  114. package/dist/cjs/fields/DatePicker/DatetimePicker.native.js.map +1 -1
  115. package/dist/cjs/fields/DatePicker/MonthPicker.native.js +2 -2
  116. package/dist/cjs/fields/DatePicker/MonthPicker.native.js.map +1 -1
  117. package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js +2 -2
  118. package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
  119. package/dist/cjs/fields/DatePicker/catalog.cjs +2 -28
  120. package/dist/cjs/fields/DatePicker/catalog.native.js +4 -32
  121. package/dist/cjs/fields/DatePicker/catalog.native.js.map +1 -1
  122. package/dist/cjs/fields/DatePicker/fieldValueSync.native.js.map +1 -1
  123. package/dist/cjs/fields/DatePicker/index.native.js +2 -2
  124. package/dist/cjs/fields/DatePicker/index.native.js.map +1 -1
  125. package/dist/cjs/fields/DatePicker/parts.cjs +11 -20
  126. package/dist/cjs/fields/DatePicker/parts.native.js +15 -24
  127. package/dist/cjs/fields/DatePicker/parts.native.js.map +1 -1
  128. package/dist/cjs/fields/DatePicker/utils.native.js.map +1 -1
  129. package/dist/cjs/fields/Duration/durationMath.native.js.map +1 -1
  130. package/dist/cjs/fields/Duration/index.native.js +3 -3
  131. package/dist/cjs/fields/Duration/index.native.js.map +1 -1
  132. package/dist/cjs/fields/FileUpload/filePickerTypes.native.js.map +1 -1
  133. package/dist/cjs/fields/FileUpload/index.native.js +2 -2
  134. package/dist/cjs/fields/FileUpload/index.native.js.map +1 -1
  135. package/dist/cjs/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
  136. package/dist/cjs/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
  137. package/dist/cjs/fields/Geolocation/geoValue.native.js.map +1 -1
  138. package/dist/cjs/fields/Geolocation/geocoder.native.js.map +1 -1
  139. package/dist/cjs/fields/Geolocation/geocoderContext.native.js.map +1 -1
  140. package/dist/cjs/fields/Geolocation/index.native.js +5 -5
  141. package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
  142. package/dist/cjs/fields/Geolocation/mapMath.native.js.map +1 -1
  143. package/dist/cjs/fields/Geolocation/mapTypes.native.js.map +1 -1
  144. package/dist/cjs/fields/Geolocation/nativeSearchFocus.native.js.map +1 -1
  145. package/dist/cjs/fields/Geolocation/photonGeocoder.native.js.map +1 -1
  146. package/dist/cjs/fields/Icon/drawnSet.native.js.map +1 -1
  147. package/dist/cjs/fields/Icon/index.native.js +3 -3
  148. package/dist/cjs/fields/Icon/index.native.js.map +1 -1
  149. package/dist/cjs/fields/ImageField/index.native.js +2 -2
  150. package/dist/cjs/fields/ImageField/index.native.js.map +1 -1
  151. package/dist/cjs/fields/Input/index.native.js +3 -3
  152. package/dist/cjs/fields/Input/index.native.js.map +1 -1
  153. package/dist/cjs/fields/MentionInput/index.native.js +3 -3
  154. package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
  155. package/dist/cjs/fields/OTPInput/index.native.js +3 -3
  156. package/dist/cjs/fields/OTPInput/index.native.js.map +1 -1
  157. package/dist/cjs/fields/OTPInput/otpCellCss.native.js.map +1 -1
  158. package/dist/cjs/fields/PhoneInput/dialCodes.native.js.map +1 -1
  159. package/dist/cjs/fields/PhoneInput/index.native.js +3 -3
  160. package/dist/cjs/fields/PhoneInput/index.native.js.map +1 -1
  161. package/dist/cjs/fields/PhoneInput/phone.native.js.map +1 -1
  162. package/dist/cjs/fields/PhoneInput/regionNames.native.js.map +1 -1
  163. package/dist/cjs/fields/Progress/index.native.js +1 -1
  164. package/dist/cjs/fields/Progress/index.native.js.map +1 -1
  165. package/dist/cjs/fields/RadioGroup/index.native.js +1 -1
  166. package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
  167. package/dist/cjs/fields/Rating/index.native.js +1 -1
  168. package/dist/cjs/fields/Rating/index.native.js.map +1 -1
  169. package/dist/cjs/fields/Rating/ratingMath.native.js.map +1 -1
  170. package/dist/cjs/fields/Rating/types.native.js.map +1 -1
  171. package/dist/cjs/fields/SearchInput/index.native.js +2 -2
  172. package/dist/cjs/fields/SearchInput/index.native.js.map +1 -1
  173. package/dist/cjs/fields/Select/InlineChoices.native.js.map +1 -1
  174. package/dist/cjs/fields/Select/SheetPickerRow.native.js.map +1 -1
  175. package/dist/cjs/fields/Select/index.cjs +65 -44
  176. package/dist/cjs/fields/Select/index.native.js +73 -51
  177. package/dist/cjs/fields/Select/index.native.js.map +1 -1
  178. package/dist/cjs/fields/Select/shouldInlineChoices.cjs +3 -1
  179. package/dist/cjs/fields/Select/shouldInlineChoices.native.js +3 -1
  180. package/dist/cjs/fields/Select/shouldInlineChoices.native.js.map +1 -1
  181. package/dist/cjs/fields/Signature/index.native.js +2 -2
  182. package/dist/cjs/fields/Signature/index.native.js.map +1 -1
  183. package/dist/cjs/fields/Slider/index.native.js +1 -1
  184. package/dist/cjs/fields/Slider/index.native.js.map +1 -1
  185. package/dist/cjs/fields/Slider/jumpMotion.native.js.map +1 -1
  186. package/dist/cjs/fields/Stepper/index.native.js +2 -2
  187. package/dist/cjs/fields/Stepper/index.native.js.map +1 -1
  188. package/dist/cjs/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
  189. package/dist/cjs/fields/Switch/footprint.native.js.map +1 -1
  190. package/dist/cjs/fields/Switch/index.native.js +2 -2
  191. package/dist/cjs/fields/Switch/index.native.js.map +1 -1
  192. package/dist/cjs/fields/TextArea/index.native.js +2 -2
  193. package/dist/cjs/fields/TextArea/index.native.js.map +1 -1
  194. package/dist/cjs/fields/TimePicker/catalog.cjs +4 -25
  195. package/dist/cjs/fields/TimePicker/catalog.native.js +10 -32
  196. package/dist/cjs/fields/TimePicker/catalog.native.js.map +1 -1
  197. package/dist/cjs/fields/TimePicker/index.native.js +2 -2
  198. package/dist/cjs/fields/TimePicker/index.native.js.map +1 -1
  199. package/dist/cjs/fields/TimePicker/parts.cjs +8 -21
  200. package/dist/cjs/fields/TimePicker/parts.native.js +9 -22
  201. package/dist/cjs/fields/TimePicker/parts.native.js.map +1 -1
  202. package/dist/cjs/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
  203. package/dist/cjs/fields/TimeRangeScrubber/index.native.js +2 -2
  204. package/dist/cjs/fields/TimeRangeScrubber/index.native.js.map +1 -1
  205. package/dist/cjs/fields/ToggleGroup/index.native.js +1 -1
  206. package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
  207. package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js +1 -1
  208. package/dist/cjs/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
  209. package/dist/cjs/fields/nativeDateTime/dateTimePickerLoader.native.js.map +1 -1
  210. package/dist/cjs/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -1
  211. package/dist/cjs/fields/nativeDateTime/sheetKeyboard.native.js.map +1 -1
  212. package/dist/cjs/fields/nativeSelect.native.js.map +1 -1
  213. package/dist/cjs/fields/selectedOrder.native.js.map +1 -1
  214. package/dist/cjs/formSpacing.native.js.map +1 -1
  215. package/dist/cjs/hooks/useFocusManagement.native.js.map +1 -1
  216. package/dist/cjs/index.native.js +45 -45
  217. package/dist/cjs/index.native.js.map +1 -1
  218. package/dist/cjs/keyboard/KeyboardDoneBar.native.js +1 -1
  219. package/dist/cjs/keyboard/chain.native.js.map +1 -1
  220. package/dist/cjs/keyboard/index.native.js.map +1 -1
  221. package/dist/cjs/keyboard/types.native.js.map +1 -1
  222. package/dist/cjs/requiredMarking.native.js.map +1 -1
  223. package/dist/cjs/shared/TimeColumn.native.js +1 -1
  224. package/dist/cjs/shared/TimeColumn.native.js.map +1 -1
  225. package/dist/cjs/shared/capabilityPreflight.native.js.map +1 -1
  226. package/dist/cjs/shared/choiceRowPress.native.js.map +1 -1
  227. package/dist/cjs/shared/colorRamps.native.js.map +1 -1
  228. package/dist/cjs/shared/devWarn.native.js.map +1 -1
  229. package/dist/cjs/shared/floatingList.cjs +13 -4
  230. package/dist/cjs/shared/floatingList.native.js +16 -5
  231. package/dist/cjs/shared/floatingList.native.js.map +1 -1
  232. package/dist/cjs/shared/focusManagement.native.js.map +1 -1
  233. package/dist/cjs/shared/groupContext.native.js.map +1 -1
  234. package/dist/cjs/shared/i18n.native.js.map +1 -1
  235. package/dist/cjs/shared/instantMotion.native.js.map +1 -1
  236. package/dist/cjs/shared/nativeA11y.native.js.map +1 -1
  237. package/dist/cjs/shared/nativeAutoFocus.native.js.map +1 -1
  238. package/dist/cjs/shared/overlaySizeClass.native.js.map +1 -1
  239. package/dist/cjs/shared/overlayStack.native.js.map +1 -1
  240. package/dist/cjs/shared/panelPortal.native.js.map +1 -1
  241. package/dist/cjs/shared/pickerTriggerContract.native.js.map +1 -1
  242. package/dist/cjs/shared/pressSlopProps.native.js.map +1 -1
  243. package/dist/cjs/shared/restoreRetries.native.js.map +1 -1
  244. package/dist/cjs/shared/sheetNavigation.native.js.map +1 -1
  245. package/dist/cjs/shared/systemControlModules.gnome.native.js.map +1 -1
  246. package/dist/cjs/shared/systemControls.native.js.map +1 -1
  247. package/dist/cjs/shared/t.native.js.map +1 -1
  248. package/dist/cjs/shared/tableCellContext.native.js.map +1 -1
  249. package/dist/cjs/shared/useDragScroll.native.js.map +1 -1
  250. package/dist/cjs/shared/useKeyboardInset.native.js.map +1 -1
  251. package/dist/cjs/shared/useSheetEscapeDismiss.native.js.map +1 -1
  252. package/dist/cjs/shared/useWheelIncrement.native.js.map +1 -1
  253. package/dist/cjs/shared/utils.native.js +1 -1
  254. package/dist/cjs/shared/utils.native.js.map +1 -1
  255. package/dist/cjs/shared/zIndex.native.js.map +1 -1
  256. package/dist/cjs/standardActions.native.js.map +1 -1
  257. package/dist/cjs/themedPrimitives.native.js.map +1 -1
  258. package/dist/cjs/types.native.js.map +1 -1
  259. package/dist/cjs/utils/LinkCell.native.js.map +1 -1
  260. package/dist/esm/AdaptivePopup/index.native.js.map +1 -1
  261. package/dist/esm/Button/IconButtonGroup.native.js.map +1 -1
  262. package/dist/esm/Button/iconButtonGroupContext.native.js.map +1 -1
  263. package/dist/esm/Button/index.mjs +17 -1
  264. package/dist/esm/Button/index.mjs.map +1 -1
  265. package/dist/esm/Button/index.native.js +17 -1
  266. package/dist/esm/Button/index.native.js.map +1 -1
  267. package/dist/esm/Button/mediaPlate.native.js.map +1 -1
  268. package/dist/esm/Chip/index.native.js.map +1 -1
  269. package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
  270. package/dist/esm/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
  271. package/dist/esm/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
  272. package/dist/esm/ContextualSaveBar/index.native.js.map +1 -1
  273. package/dist/esm/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
  274. package/dist/esm/ControlGroup/index.native.js.map +1 -1
  275. package/dist/esm/DescriptionList/index.native.js.map +1 -1
  276. package/dist/esm/ErrorSummary.native.js.map +1 -1
  277. package/dist/esm/FieldDisplay/editMode.native.js.map +1 -1
  278. package/dist/esm/FieldDisplay/formatters.native.js.map +1 -1
  279. package/dist/esm/FieldDisplay/index.native.js.map +1 -1
  280. package/dist/esm/FieldGroup.native.js.map +1 -1
  281. package/dist/esm/FloatingPanel/RegularPanel.native.js.map +1 -1
  282. package/dist/esm/FloatingPanel/compactFace.native.js.map +1 -1
  283. package/dist/esm/FloatingPanel/containingBlock.native.js.map +1 -1
  284. package/dist/esm/FloatingPanel/echoContext.mjs +11 -0
  285. package/dist/esm/FloatingPanel/echoContext.mjs.map +1 -0
  286. package/dist/esm/FloatingPanel/echoContext.native.js +11 -0
  287. package/dist/esm/FloatingPanel/echoContext.native.js.map +1 -0
  288. package/dist/esm/FloatingPanel/index.mjs +213 -83
  289. package/dist/esm/FloatingPanel/index.mjs.map +1 -1
  290. package/dist/esm/FloatingPanel/index.native.js +92 -19
  291. package/dist/esm/FloatingPanel/index.native.js.map +1 -1
  292. package/dist/esm/FloatingPanel/nestedAction.native.js.map +1 -1
  293. package/dist/esm/FloatingPanel/panelWidth.mjs +63 -0
  294. package/dist/esm/FloatingPanel/panelWidth.mjs.map +1 -0
  295. package/dist/esm/FloatingPanel/panelWidth.native.js +67 -0
  296. package/dist/esm/FloatingPanel/panelWidth.native.js.map +1 -0
  297. package/dist/esm/FloatingPanel/pointAnchor.mjs +15 -5
  298. package/dist/esm/FloatingPanel/pointAnchor.mjs.map +1 -1
  299. package/dist/esm/FloatingPanel/pointAnchor.native.js +15 -5
  300. package/dist/esm/FloatingPanel/pointAnchor.native.js.map +1 -1
  301. package/dist/esm/FloatingPanel/regularPlacement.native.js.map +1 -1
  302. package/dist/esm/FloatingPanel/trailingAction.native.js.map +1 -1
  303. package/dist/esm/FloatingPanel/useFloatingPanel.mjs +58 -5
  304. package/dist/esm/FloatingPanel/useFloatingPanel.mjs.map +1 -1
  305. package/dist/esm/FloatingPanel/useFloatingPanel.native.js +69 -5
  306. package/dist/esm/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  307. package/dist/esm/Form/index.native.js.map +1 -1
  308. package/dist/esm/Form/submissionController.native.js.map +1 -1
  309. package/dist/esm/Form/validateOn.native.js.map +1 -1
  310. package/dist/esm/FormGrid.native.js.map +1 -1
  311. package/dist/esm/FormSection.native.js.map +1 -1
  312. package/dist/esm/InputParts/PasswordReveal.native.js.map +1 -1
  313. package/dist/esm/InputParts/index.mjs +19 -1
  314. package/dist/esm/InputParts/index.mjs.map +1 -1
  315. package/dist/esm/InputParts/index.native.js +20 -2
  316. package/dist/esm/InputParts/index.native.js.map +1 -1
  317. package/dist/esm/Label/index.native.js.map +1 -1
  318. package/dist/esm/MediaPicker/base64.native.js.map +1 -1
  319. package/dist/esm/MediaPicker/payload.native.js.map +1 -1
  320. package/dist/esm/MediaPicker/types.native.js.map +1 -1
  321. package/dist/esm/MediaPicker/useMediaPicker.native.js.map +1 -1
  322. package/dist/esm/Skeleton/index.native.js.map +1 -1
  323. package/dist/esm/Spinner/SpinnerGlyph.native.js.map +1 -1
  324. package/dist/esm/Spinner/spinnerSize.native.js.map +1 -1
  325. package/dist/esm/Table/index.native.js.map +1 -1
  326. package/dist/esm/Wheel/NativeWheel.native.js +1 -1
  327. package/dist/esm/Wheel/NativeWheel.native.js.map +1 -1
  328. package/dist/esm/Wheel/haptic.native.js.map +1 -1
  329. package/dist/esm/Wheel/index.mjs +2 -1
  330. package/dist/esm/Wheel/index.mjs.map +1 -1
  331. package/dist/esm/Wheel/index.native.js +4 -1
  332. package/dist/esm/Wheel/index.native.js.map +1 -1
  333. package/dist/esm/Wheel/wheelShared.mjs +6 -1
  334. package/dist/esm/Wheel/wheelShared.mjs.map +1 -1
  335. package/dist/esm/Wheel/wheelShared.native.js +7 -1
  336. package/dist/esm/Wheel/wheelShared.native.js.map +1 -1
  337. package/dist/esm/actionLabel.native.js.map +1 -1
  338. package/dist/esm/fieldDefaults.native.js.map +1 -1
  339. package/dist/esm/fieldLayout.native.js.map +1 -1
  340. package/dist/esm/fields/Barcode/BarcodePreview.native.js.map +1 -1
  341. package/dist/esm/fields/Barcode/code128.native.js.map +1 -1
  342. package/dist/esm/fields/Barcode/index.native.js.map +1 -1
  343. package/dist/esm/fields/Barcode/qr.native.js.map +1 -1
  344. package/dist/esm/fields/Barcode/scannerTypes.native.js.map +1 -1
  345. package/dist/esm/fields/Checkbox/Checkbox.native.js.map +1 -1
  346. package/dist/esm/fields/Checkbox/CheckboxBox.native.js.map +1 -1
  347. package/dist/esm/fields/Checkbox/CheckboxCard.native.js.map +1 -1
  348. package/dist/esm/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
  349. package/dist/esm/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
  350. package/dist/esm/fields/Checkbox/checkboxGroupContext.native.js.map +1 -1
  351. package/dist/esm/fields/Checkbox/index.native.js.map +1 -1
  352. package/dist/esm/fields/ColorPicker/SystemColorField.native.js.map +1 -1
  353. package/dist/esm/fields/ColorPicker/index.native.js.map +1 -1
  354. package/dist/esm/fields/ColorPicker/parts.native.js.map +1 -1
  355. package/dist/esm/fields/ColorPicker/systemColorWell.gnome.native.js.map +1 -1
  356. package/dist/esm/fields/Combobox/authorOptions.native.js.map +1 -1
  357. package/dist/esm/fields/Combobox/index.mjs +1 -0
  358. package/dist/esm/fields/Combobox/index.mjs.map +1 -1
  359. package/dist/esm/fields/Combobox/index.native.js +1 -0
  360. package/dist/esm/fields/Combobox/index.native.js.map +1 -1
  361. package/dist/esm/fields/DatePicker/Calendar.native.js.map +1 -1
  362. package/dist/esm/fields/DatePicker/DateRangePicker.native.js.map +1 -1
  363. package/dist/esm/fields/DatePicker/DatetimePicker.catalog.mjs +6 -30
  364. package/dist/esm/fields/DatePicker/DatetimePicker.catalog.mjs.map +1 -1
  365. package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js +11 -34
  366. package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
  367. package/dist/esm/fields/DatePicker/DatetimePicker.native.js.map +1 -1
  368. package/dist/esm/fields/DatePicker/MonthPicker.native.js.map +1 -1
  369. package/dist/esm/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
  370. package/dist/esm/fields/DatePicker/catalog.mjs +2 -28
  371. package/dist/esm/fields/DatePicker/catalog.mjs.map +1 -1
  372. package/dist/esm/fields/DatePicker/catalog.native.js +2 -30
  373. package/dist/esm/fields/DatePicker/catalog.native.js.map +1 -1
  374. package/dist/esm/fields/DatePicker/fieldValueSync.native.js.map +1 -1
  375. package/dist/esm/fields/DatePicker/index.native.js.map +1 -1
  376. package/dist/esm/fields/DatePicker/parts.mjs +11 -20
  377. package/dist/esm/fields/DatePicker/parts.mjs.map +1 -1
  378. package/dist/esm/fields/DatePicker/parts.native.js +13 -22
  379. package/dist/esm/fields/DatePicker/parts.native.js.map +1 -1
  380. package/dist/esm/fields/DatePicker/utils.native.js.map +1 -1
  381. package/dist/esm/fields/Duration/durationMath.native.js.map +1 -1
  382. package/dist/esm/fields/Duration/index.native.js.map +1 -1
  383. package/dist/esm/fields/FileUpload/filePickerTypes.native.js.map +1 -1
  384. package/dist/esm/fields/FileUpload/index.native.js.map +1 -1
  385. package/dist/esm/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
  386. package/dist/esm/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
  387. package/dist/esm/fields/Geolocation/geoValue.native.js.map +1 -1
  388. package/dist/esm/fields/Geolocation/geocoder.native.js.map +1 -1
  389. package/dist/esm/fields/Geolocation/geocoderContext.native.js.map +1 -1
  390. package/dist/esm/fields/Geolocation/index.native.js.map +1 -1
  391. package/dist/esm/fields/Geolocation/mapMath.native.js.map +1 -1
  392. package/dist/esm/fields/Geolocation/mapTypes.native.js.map +1 -1
  393. package/dist/esm/fields/Geolocation/nativeSearchFocus.native.js.map +1 -1
  394. package/dist/esm/fields/Geolocation/photonGeocoder.native.js.map +1 -1
  395. package/dist/esm/fields/Icon/drawnSet.native.js.map +1 -1
  396. package/dist/esm/fields/Icon/index.native.js.map +1 -1
  397. package/dist/esm/fields/ImageField/index.native.js.map +1 -1
  398. package/dist/esm/fields/Input/index.native.js.map +1 -1
  399. package/dist/esm/fields/MentionInput/index.native.js.map +1 -1
  400. package/dist/esm/fields/OTPInput/index.native.js.map +1 -1
  401. package/dist/esm/fields/OTPInput/otpCellCss.native.js.map +1 -1
  402. package/dist/esm/fields/PhoneInput/dialCodes.native.js.map +1 -1
  403. package/dist/esm/fields/PhoneInput/index.native.js.map +1 -1
  404. package/dist/esm/fields/PhoneInput/phone.native.js.map +1 -1
  405. package/dist/esm/fields/PhoneInput/regionNames.native.js.map +1 -1
  406. package/dist/esm/fields/Progress/index.native.js.map +1 -1
  407. package/dist/esm/fields/RadioGroup/index.native.js.map +1 -1
  408. package/dist/esm/fields/Rating/index.native.js.map +1 -1
  409. package/dist/esm/fields/Rating/ratingMath.native.js.map +1 -1
  410. package/dist/esm/fields/Rating/types.native.js.map +1 -1
  411. package/dist/esm/fields/SearchInput/index.native.js.map +1 -1
  412. package/dist/esm/fields/Select/InlineChoices.native.js.map +1 -1
  413. package/dist/esm/fields/Select/SheetPickerRow.native.js.map +1 -1
  414. package/dist/esm/fields/Select/index.mjs +66 -45
  415. package/dist/esm/fields/Select/index.mjs.map +1 -1
  416. package/dist/esm/fields/Select/index.native.js +70 -48
  417. package/dist/esm/fields/Select/index.native.js.map +1 -1
  418. package/dist/esm/fields/Select/shouldInlineChoices.mjs +3 -1
  419. package/dist/esm/fields/Select/shouldInlineChoices.mjs.map +1 -1
  420. package/dist/esm/fields/Select/shouldInlineChoices.native.js +3 -1
  421. package/dist/esm/fields/Select/shouldInlineChoices.native.js.map +1 -1
  422. package/dist/esm/fields/Signature/index.native.js.map +1 -1
  423. package/dist/esm/fields/Slider/index.native.js.map +1 -1
  424. package/dist/esm/fields/Slider/jumpMotion.native.js.map +1 -1
  425. package/dist/esm/fields/Stepper/index.native.js.map +1 -1
  426. package/dist/esm/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
  427. package/dist/esm/fields/Switch/footprint.native.js.map +1 -1
  428. package/dist/esm/fields/Switch/index.native.js.map +1 -1
  429. package/dist/esm/fields/TextArea/index.native.js.map +1 -1
  430. package/dist/esm/fields/TimePicker/catalog.mjs +4 -25
  431. package/dist/esm/fields/TimePicker/catalog.mjs.map +1 -1
  432. package/dist/esm/fields/TimePicker/catalog.native.js +7 -29
  433. package/dist/esm/fields/TimePicker/catalog.native.js.map +1 -1
  434. package/dist/esm/fields/TimePicker/index.native.js.map +1 -1
  435. package/dist/esm/fields/TimePicker/parts.mjs +8 -21
  436. package/dist/esm/fields/TimePicker/parts.mjs.map +1 -1
  437. package/dist/esm/fields/TimePicker/parts.native.js +8 -21
  438. package/dist/esm/fields/TimePicker/parts.native.js.map +1 -1
  439. package/dist/esm/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
  440. package/dist/esm/fields/TimeRangeScrubber/index.native.js.map +1 -1
  441. package/dist/esm/fields/ToggleGroup/index.native.js.map +1 -1
  442. package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
  443. package/dist/esm/fields/nativeDateTime/dateTimePickerLoader.native.js.map +1 -1
  444. package/dist/esm/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -1
  445. package/dist/esm/fields/nativeDateTime/sheetKeyboard.native.js.map +1 -1
  446. package/dist/esm/fields/nativeSelect.native.js.map +1 -1
  447. package/dist/esm/fields/selectedOrder.native.js.map +1 -1
  448. package/dist/esm/formSpacing.native.js.map +1 -1
  449. package/dist/esm/hooks/useFocusManagement.native.js.map +1 -1
  450. package/dist/esm/index.mjs.map +1 -1
  451. package/dist/esm/index.native.js.map +1 -1
  452. package/dist/esm/keyboard/chain.native.js.map +1 -1
  453. package/dist/esm/keyboard/index.native.js.map +1 -1
  454. package/dist/esm/keyboard/types.native.js.map +1 -1
  455. package/dist/esm/requiredMarking.native.js.map +1 -1
  456. package/dist/esm/shared/TimeColumn.native.js.map +1 -1
  457. package/dist/esm/shared/capabilityPreflight.native.js.map +1 -1
  458. package/dist/esm/shared/choiceRowPress.native.js.map +1 -1
  459. package/dist/esm/shared/colorRamps.native.js.map +1 -1
  460. package/dist/esm/shared/devWarn.native.js.map +1 -1
  461. package/dist/esm/shared/floatingList.mjs +14 -5
  462. package/dist/esm/shared/floatingList.mjs.map +1 -1
  463. package/dist/esm/shared/floatingList.native.js +16 -5
  464. package/dist/esm/shared/floatingList.native.js.map +1 -1
  465. package/dist/esm/shared/focusManagement.native.js.map +1 -1
  466. package/dist/esm/shared/groupContext.native.js.map +1 -1
  467. package/dist/esm/shared/i18n.native.js.map +1 -1
  468. package/dist/esm/shared/instantMotion.native.js.map +1 -1
  469. package/dist/esm/shared/nativeA11y.native.js.map +1 -1
  470. package/dist/esm/shared/nativeAutoFocus.native.js.map +1 -1
  471. package/dist/esm/shared/overlaySizeClass.native.js.map +1 -1
  472. package/dist/esm/shared/overlayStack.native.js.map +1 -1
  473. package/dist/esm/shared/panelPortal.native.js.map +1 -1
  474. package/dist/esm/shared/pickerTriggerContract.native.js.map +1 -1
  475. package/dist/esm/shared/pressSlopProps.native.js.map +1 -1
  476. package/dist/esm/shared/restoreRetries.native.js.map +1 -1
  477. package/dist/esm/shared/sheetNavigation.native.js.map +1 -1
  478. package/dist/esm/shared/systemControlModules.gnome.native.js.map +1 -1
  479. package/dist/esm/shared/systemControls.native.js.map +1 -1
  480. package/dist/esm/shared/t.native.js.map +1 -1
  481. package/dist/esm/shared/tableCellContext.native.js.map +1 -1
  482. package/dist/esm/shared/useDragScroll.native.js.map +1 -1
  483. package/dist/esm/shared/useKeyboardInset.native.js.map +1 -1
  484. package/dist/esm/shared/useSheetEscapeDismiss.native.js.map +1 -1
  485. package/dist/esm/shared/useWheelIncrement.native.js.map +1 -1
  486. package/dist/esm/shared/utils.native.js.map +1 -1
  487. package/dist/esm/shared/zIndex.native.js.map +1 -1
  488. package/dist/esm/standardActions.native.js.map +1 -1
  489. package/dist/esm/themedPrimitives.native.js.map +1 -1
  490. package/dist/esm/types.native.js.map +1 -1
  491. package/dist/esm/utils/LinkCell.native.js.map +1 -1
  492. package/dist/jsx/Button/index.mjs +17 -1
  493. package/dist/jsx/Button/index.mjs.map +1 -1
  494. package/dist/jsx/Button/index.native.js +16 -0
  495. package/dist/jsx/Button/index.native.js.map +1 -1
  496. package/dist/jsx/FloatingPanel/echoContext.mjs +11 -0
  497. package/dist/jsx/FloatingPanel/echoContext.mjs.map +1 -0
  498. package/dist/jsx/FloatingPanel/echoContext.native.js +42 -0
  499. package/dist/jsx/FloatingPanel/echoContext.native.js.map +1 -0
  500. package/dist/jsx/FloatingPanel/index.mjs +213 -83
  501. package/dist/jsx/FloatingPanel/index.mjs.map +1 -1
  502. package/dist/jsx/FloatingPanel/index.native.js +92 -17
  503. package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
  504. package/dist/jsx/FloatingPanel/panelWidth.mjs +63 -0
  505. package/dist/jsx/FloatingPanel/panelWidth.mjs.map +1 -0
  506. package/dist/jsx/FloatingPanel/panelWidth.native.js +99 -0
  507. package/dist/jsx/FloatingPanel/panelWidth.native.js.map +1 -0
  508. package/dist/jsx/FloatingPanel/pointAnchor.mjs +15 -5
  509. package/dist/jsx/FloatingPanel/pointAnchor.mjs.map +1 -1
  510. package/dist/jsx/FloatingPanel/pointAnchor.native.js +15 -5
  511. package/dist/jsx/FloatingPanel/pointAnchor.native.js.map +1 -1
  512. package/dist/jsx/FloatingPanel/useFloatingPanel.mjs +58 -5
  513. package/dist/jsx/FloatingPanel/useFloatingPanel.mjs.map +1 -1
  514. package/dist/jsx/FloatingPanel/useFloatingPanel.native.js +69 -4
  515. package/dist/jsx/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  516. package/dist/jsx/InputParts/index.mjs +19 -1
  517. package/dist/jsx/InputParts/index.mjs.map +1 -1
  518. package/dist/jsx/InputParts/index.native.js +19 -1
  519. package/dist/jsx/InputParts/index.native.js.map +1 -1
  520. package/dist/jsx/Wheel/NativeWheel.native.js +1 -1
  521. package/dist/jsx/Wheel/NativeWheel.native.js.map +1 -1
  522. package/dist/jsx/Wheel/index.mjs +2 -1
  523. package/dist/jsx/Wheel/index.mjs.map +1 -1
  524. package/dist/jsx/Wheel/index.native.js +4 -1
  525. package/dist/jsx/Wheel/index.native.js.map +1 -1
  526. package/dist/jsx/Wheel/wheelShared.mjs +6 -1
  527. package/dist/jsx/Wheel/wheelShared.mjs.map +1 -1
  528. package/dist/jsx/Wheel/wheelShared.native.js +7 -1
  529. package/dist/jsx/Wheel/wheelShared.native.js.map +1 -1
  530. package/dist/jsx/fields/Combobox/index.mjs +1 -0
  531. package/dist/jsx/fields/Combobox/index.mjs.map +1 -1
  532. package/dist/jsx/fields/Combobox/index.native.js +1 -0
  533. package/dist/jsx/fields/Combobox/index.native.js.map +1 -1
  534. package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.mjs +6 -30
  535. package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.mjs.map +1 -1
  536. package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.native.js +11 -34
  537. package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
  538. package/dist/jsx/fields/DatePicker/DatetimePicker.native.js.map +1 -1
  539. package/dist/jsx/fields/DatePicker/catalog.mjs +2 -28
  540. package/dist/jsx/fields/DatePicker/catalog.mjs.map +1 -1
  541. package/dist/jsx/fields/DatePicker/catalog.native.js +2 -30
  542. package/dist/jsx/fields/DatePicker/catalog.native.js.map +1 -1
  543. package/dist/jsx/fields/DatePicker/index.native.js.map +1 -1
  544. package/dist/jsx/fields/DatePicker/parts.mjs +11 -20
  545. package/dist/jsx/fields/DatePicker/parts.mjs.map +1 -1
  546. package/dist/jsx/fields/DatePicker/parts.native.js +13 -22
  547. package/dist/jsx/fields/DatePicker/parts.native.js.map +1 -1
  548. package/dist/jsx/fields/Select/index.mjs +66 -45
  549. package/dist/jsx/fields/Select/index.mjs.map +1 -1
  550. package/dist/jsx/fields/Select/index.native.js +69 -47
  551. package/dist/jsx/fields/Select/index.native.js.map +1 -1
  552. package/dist/jsx/fields/Select/shouldInlineChoices.mjs +3 -1
  553. package/dist/jsx/fields/Select/shouldInlineChoices.mjs.map +1 -1
  554. package/dist/jsx/fields/Select/shouldInlineChoices.native.js +3 -1
  555. package/dist/jsx/fields/Select/shouldInlineChoices.native.js.map +1 -1
  556. package/dist/jsx/fields/TimePicker/catalog.mjs +4 -25
  557. package/dist/jsx/fields/TimePicker/catalog.mjs.map +1 -1
  558. package/dist/jsx/fields/TimePicker/catalog.native.js +7 -29
  559. package/dist/jsx/fields/TimePicker/catalog.native.js.map +1 -1
  560. package/dist/jsx/fields/TimePicker/index.native.js.map +1 -1
  561. package/dist/jsx/fields/TimePicker/parts.mjs +8 -21
  562. package/dist/jsx/fields/TimePicker/parts.mjs.map +1 -1
  563. package/dist/jsx/fields/TimePicker/parts.native.js +8 -21
  564. package/dist/jsx/fields/TimePicker/parts.native.js.map +1 -1
  565. package/dist/jsx/index.js.map +1 -1
  566. package/dist/jsx/index.mjs.map +1 -1
  567. package/dist/jsx/index.native.js.map +1 -1
  568. package/dist/jsx/shared/floatingList.mjs +14 -5
  569. package/dist/jsx/shared/floatingList.mjs.map +1 -1
  570. package/dist/jsx/shared/floatingList.native.js +15 -4
  571. package/dist/jsx/shared/floatingList.native.js.map +1 -1
  572. package/package.json +8 -8
  573. package/src/Button/index.tsx +22 -0
  574. package/src/FloatingPanel/FloatingPanel.echoStretch.spec.tsx +67 -0
  575. package/src/FloatingPanel/FloatingPanel.menuFace.native.spec.tsx +193 -2
  576. package/src/FloatingPanel/FloatingPanel.seamlessCover.spec.tsx +237 -0
  577. package/src/FloatingPanel/echoContext.ts +22 -0
  578. package/src/FloatingPanel/index.native.tsx +106 -9
  579. package/src/FloatingPanel/index.tsx +310 -102
  580. package/src/FloatingPanel/panelWidth.spec.ts +158 -0
  581. package/src/FloatingPanel/panelWidth.ts +122 -0
  582. package/src/FloatingPanel/panelWidthContract.spec.ts +10 -10
  583. package/src/FloatingPanel/pointAnchor.spec.ts +64 -2
  584. package/src/FloatingPanel/pointAnchor.ts +28 -3
  585. package/src/FloatingPanel/useFloatingPanel.spec.tsx +124 -4
  586. package/src/FloatingPanel/useFloatingPanel.ts +106 -33
  587. package/src/InputParts/index.tsx +26 -0
  588. package/src/Wheel/NativeWheel.native.tsx +1 -1
  589. package/src/Wheel/Wheel.spec.tsx +9 -0
  590. package/src/Wheel/index.tsx +12 -3
  591. package/src/Wheel/wheelShared.ts +6 -2
  592. package/src/fields/Combobox/index.tsx +1 -0
  593. package/src/fields/DatePicker/DatePicker.stories.tsx +3 -3
  594. package/src/fields/DatePicker/DatetimePicker.catalog.tsx +17 -45
  595. package/src/fields/DatePicker/DatetimePicker.native.tsx +3 -0
  596. package/src/fields/DatePicker/catalog.tsx +8 -39
  597. package/src/fields/DatePicker/index.native.tsx +3 -0
  598. package/src/fields/DatePicker/parts.tsx +13 -23
  599. package/src/fields/DatePicker/seamlessCover.spec.tsx +180 -0
  600. package/src/fields/DatePicker/touchWeb.spec.tsx +109 -167
  601. package/src/fields/Select/Select.containingBlock.spec.tsx +191 -0
  602. package/src/fields/Select/Select.stories.tsx +43 -0
  603. package/src/fields/Select/index.tsx +109 -45
  604. package/src/fields/Select/shouldInlineChoices.spec.ts +13 -0
  605. package/src/fields/Select/shouldInlineChoices.ts +6 -0
  606. package/src/fields/TimePicker/catalog.tsx +12 -33
  607. package/src/fields/TimePicker/index.native.tsx +2 -0
  608. package/src/fields/TimePicker/parts.tsx +6 -20
  609. package/src/index.ts +1 -0
  610. package/src/shared/floatingList.tsx +21 -5
  611. package/types/Button/index.d.ts.map +1 -1
  612. package/types/FloatingPanel/echoContext.d.ts +14 -0
  613. package/types/FloatingPanel/echoContext.d.ts.map +1 -0
  614. package/types/FloatingPanel/index.d.ts +59 -0
  615. package/types/FloatingPanel/index.d.ts.map +1 -1
  616. package/types/FloatingPanel/index.native.d.ts +9 -1
  617. package/types/FloatingPanel/index.native.d.ts.map +1 -1
  618. package/types/FloatingPanel/panelWidth.d.ts +71 -0
  619. package/types/FloatingPanel/panelWidth.d.ts.map +1 -0
  620. package/types/FloatingPanel/pointAnchor.d.ts +8 -1
  621. package/types/FloatingPanel/pointAnchor.d.ts.map +1 -1
  622. package/types/FloatingPanel/useFloatingPanel.d.ts +33 -2
  623. package/types/FloatingPanel/useFloatingPanel.d.ts.map +1 -1
  624. package/types/InputParts/index.d.ts.map +1 -1
  625. package/types/Wheel/index.d.ts.map +1 -1
  626. package/types/Wheel/wheelShared.d.ts +2 -1
  627. package/types/Wheel/wheelShared.d.ts.map +1 -1
  628. package/types/fields/Combobox/index.d.ts.map +1 -1
  629. package/types/fields/DatePicker/DatetimePicker.catalog.d.ts +6 -0
  630. package/types/fields/DatePicker/DatetimePicker.catalog.d.ts.map +1 -1
  631. package/types/fields/DatePicker/DatetimePicker.native.d.ts +3 -0
  632. package/types/fields/DatePicker/DatetimePicker.native.d.ts.map +1 -1
  633. package/types/fields/DatePicker/catalog.d.ts +6 -0
  634. package/types/fields/DatePicker/catalog.d.ts.map +1 -1
  635. package/types/fields/DatePicker/index.native.d.ts +3 -0
  636. package/types/fields/DatePicker/index.native.d.ts.map +1 -1
  637. package/types/fields/DatePicker/parts.d.ts +5 -7
  638. package/types/fields/DatePicker/parts.d.ts.map +1 -1
  639. package/types/fields/Select/index.d.ts +8 -1
  640. package/types/fields/Select/index.d.ts.map +1 -1
  641. package/types/fields/Select/shouldInlineChoices.d.ts +5 -1
  642. package/types/fields/Select/shouldInlineChoices.d.ts.map +1 -1
  643. package/types/fields/TimePicker/catalog.d.ts +7 -1
  644. package/types/fields/TimePicker/catalog.d.ts.map +1 -1
  645. package/types/fields/TimePicker/index.native.d.ts +2 -0
  646. package/types/fields/TimePicker/index.native.d.ts.map +1 -1
  647. package/types/fields/TimePicker/parts.d.ts +1 -3
  648. package/types/fields/TimePicker/parts.d.ts.map +1 -1
  649. package/types/index.d.ts +1 -0
  650. package/types/index.d.ts.map +1 -1
  651. package/types/shared/floatingList.d.ts +5 -1
  652. package/types/shared/floatingList.d.ts.map +1 -1
  653. package/dist/cjs/shared/touchWebPicker.cjs +0 -136
  654. package/dist/cjs/shared/touchWebPicker.native.js +0 -154
  655. package/dist/cjs/shared/touchWebPicker.native.js.map +0 -1
  656. package/dist/esm/shared/touchWebPicker.mjs +0 -105
  657. package/dist/esm/shared/touchWebPicker.mjs.map +0 -1
  658. package/dist/esm/shared/touchWebPicker.native.js +0 -120
  659. package/dist/esm/shared/touchWebPicker.native.js.map +0 -1
  660. package/dist/jsx/shared/touchWebPicker.mjs +0 -105
  661. package/dist/jsx/shared/touchWebPicker.mjs.map +0 -1
  662. package/dist/jsx/shared/touchWebPicker.native.js +0 -154
  663. package/dist/jsx/shared/touchWebPicker.native.js.map +0 -1
  664. package/src/shared/touchWebPicker.spec.ts +0 -98
  665. package/src/shared/touchWebPicker.tsx +0 -158
  666. package/types/shared/touchWebPicker.d.ts +0 -40
  667. package/types/shared/touchWebPicker.d.ts.map +0 -1
@@ -23,6 +23,7 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
23
  var FloatingPanel_exports = {};
24
24
  __export(FloatingPanel_exports, {
25
25
  FloatingPanel: () => FloatingPanel,
26
+ TriggerEchoRow: () => TriggerEchoRow,
26
27
  floatingPanelActionProps: () => import_nestedAction2.floatingPanelActionProps,
27
28
  isNestedPanelAction: () => import_nestedAction2.isNestedPanelAction,
28
29
  panelAnchorOffset: () => import_useFloatingPanel2.panelAnchorOffset,
@@ -30,6 +31,7 @@ __export(FloatingPanel_exports, {
30
31
  panelGrowDuration: () => import_useFloatingPanel2.panelGrowDuration,
31
32
  panelTransition: () => import_useFloatingPanel2.panelTransition,
32
33
  panelViewportPadding: () => import_useFloatingPanel2.panelViewportPadding,
34
+ placeEchoOverTrigger: () => placeEchoOverTrigger,
33
35
  resolvePanelWidthMode: () => import_useFloatingPanel2.resolvePanelWidthMode,
34
36
  useFloatingPanel: () => import_useFloatingPanel2.useFloatingPanel,
35
37
  useViewportGtSm: () => useViewportGtSm
@@ -45,11 +47,12 @@ var import_trailingAction = require("./trailingAction.cjs");
45
47
  var import_focusManagement = require("../shared/focusManagement.cjs");
46
48
  var import_useSheetEscapeDismiss = require("../shared/useSheetEscapeDismiss.cjs");
47
49
  var import_useFloatingPanel = require("./useFloatingPanel.cjs");
50
+ var import_containingBlock = require("./containingBlock.cjs");
51
+ var import_panelWidth = require("./panelWidth.cjs");
48
52
  var import_overlayStack = require("../shared/overlayStack.cjs");
49
53
  var import_compactFace = require("./compactFace.cjs");
50
54
  var import_nestedAction = require("./nestedAction.cjs");
51
55
  var import_PanelPortal = require("./PanelPortal.cjs");
52
- var import_containingBlock = require("./containingBlock.cjs");
53
56
  var import_pointAnchor = require("./pointAnchor.cjs");
54
57
  var import_nestedAction2 = require("./nestedAction.cjs");
55
58
  var import_useFloatingPanel2 = require("./useFloatingPanel.cjs");
@@ -107,12 +110,40 @@ function panelTransformOrigin(placement) {
107
110
  return `${originY} ${originX}`;
108
111
  }
109
112
  const ECHO_STRIPPED_ATTRIBUTES = ["id", "for", "name", "data-testid", "aria-label", "aria-controls", "aria-labelledby", "aria-describedby", "aria-activedescendant"];
113
+ function childPath(root, node) {
114
+ const path = [];
115
+ for (let at = node; at && at !== root; at = at.parentElement) {
116
+ const parent = at.parentElement;
117
+ if (!parent) return null;
118
+ path.unshift(Array.prototype.indexOf.call(parent.children, at));
119
+ }
120
+ return path;
121
+ }
122
+ function followPath(root, path) {
123
+ let at = root;
124
+ for (const index of path) at = at?.children[index];
125
+ return at ?? null;
126
+ }
127
+ function dropEchoChrome(source, snapshot) {
128
+ const painted = (0, import_useFloatingPanel.paintedCornerBox)(source);
129
+ const path = painted ? childPath(source, painted) : null;
130
+ const frame = path ? followPath(snapshot, path) : null;
131
+ if (!frame) return;
132
+ frame.style.setProperty("border-color", "transparent", "important");
133
+ frame.style.setProperty("background-color", "transparent", "important");
134
+ frame.style.setProperty("background-image", "none", "important");
135
+ frame.style.setProperty("box-shadow", "none", "important");
136
+ frame.style.setProperty("outline", "none", "important");
137
+ frame.setAttribute("data-fp-echo-frame", "");
138
+ }
110
139
  function TriggerEchoRow({
111
140
  sourceRef,
112
141
  onPress,
113
142
  children,
114
143
  anchorRect,
115
- source
144
+ source,
145
+ presentational = false,
146
+ edge = "top"
116
147
  }) {
117
148
  const rowRef = (0, import_react.useRef)(null);
118
149
  const visualRef = (0, import_react.useRef)(null);
@@ -124,17 +155,31 @@ function TriggerEchoRow({
124
155
  const control = source2.matches(PANEL_FOCUSABLE) ? source2 : source2.querySelector(PANEL_FOCUSABLE);
125
156
  const labelledBy = control?.getAttribute("aria-labelledby");
126
157
  const label = control?.getAttribute("aria-label") || labelledBy?.split(/\s+/).map(id => document.getElementById(id)?.textContent || "").join(" ") || control?.textContent || source2.textContent || "";
127
- row.setAttribute("aria-label", label);
158
+ if (!presentational) row.setAttribute("aria-label", label);
128
159
  const rect = anchorRect ?? source2.getBoundingClientRect();
129
- row.style.width = `${rect.width}px`;
160
+ const grown = Number(row.getAttribute("data-fp-echo-stretched")) || 0;
161
+ const stretched = grown > rect.width;
162
+ row.style.width = `${stretched ? grown : rect.width}px`;
130
163
  row.style.height = `${rect.height}px`;
131
164
  const rtl = isRtl(source2);
132
165
  row.style.alignSelf = "flex-start";
133
166
  const frameStyle = row.parentElement ? getComputedStyle(row.parentElement) : null;
134
- row.style.marginTop = `${-(parseFloat(frameStyle?.borderTopWidth || "0") || 0)}px`;
135
167
  row.style.position = "sticky";
136
- row.style.top = row.style.marginTop;
168
+ if (edge === "bottom") {
169
+ row.style.order = "1";
170
+ row.style.marginTop = "";
171
+ row.style.top = "";
172
+ row.style.marginBottom = `${-(parseFloat(frameStyle?.borderBottomWidth || "0") || 0)}px`;
173
+ row.style.bottom = row.style.marginBottom;
174
+ } else {
175
+ row.style.order = "";
176
+ row.style.marginBottom = "";
177
+ row.style.bottom = "";
178
+ row.style.marginTop = `${-(parseFloat(frameStyle?.borderTopWidth || "0") || 0)}px`;
179
+ row.style.top = row.style.marginTop;
180
+ }
137
181
  row.style.zIndex = "1";
182
+ row.style.backgroundColor = frameStyle?.backgroundColor ?? "";
138
183
  row.style.marginLeft = rtl ? "" : `${-(parseFloat(frameStyle?.borderLeftWidth || "0") || 0)}px`;
139
184
  row.style.marginRight = rtl ? `${-(parseFloat(frameStyle?.borderRightWidth || "0") || 0)}px` : "";
140
185
  const snapshot = children == null ? source2.cloneNode(true) : visualRef.current;
@@ -151,8 +196,11 @@ function TriggerEchoRow({
151
196
  node.setAttribute("tabindex", "-1");
152
197
  }
153
198
  }
199
+ if (children == null) dropEchoChrome(source2, snapshot);
154
200
  snapshot.setAttribute("inert", "");
155
201
  snapshot.setAttribute("aria-hidden", "true");
202
+ snapshot.style.width = stretched ? "100%" : "";
203
+ snapshot.style.maxWidth = stretched ? "none" : "";
156
204
  if (children == null) visualRef.current?.replaceChildren(snapshot);
157
205
  };
158
206
  sync();
@@ -160,12 +208,16 @@ function TriggerEchoRow({
160
208
  const observer = new ResizeObserver(sync);
161
209
  observer.observe(source2);
162
210
  return () => observer.disconnect();
163
- }, [sourceRef, source, children, anchorRect]);
211
+ }, [sourceRef, source, children, anchorRect, presentational, edge]);
164
212
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
165
213
  ref: rowRef,
166
214
  "data-fp-trigger-row": "",
167
- role: "button",
168
- "aria-expanded": true,
215
+ ...(presentational ? {
216
+ "aria-hidden": true
217
+ } : {
218
+ role: "button",
219
+ "aria-expanded": true
220
+ }),
169
221
  tabIndex: -1,
170
222
  cursor: "pointer",
171
223
  onPress,
@@ -181,6 +233,38 @@ function TriggerEchoRow({
181
233
  })
182
234
  });
183
235
  }
236
+ const ECHO_FIELD = 'input, textarea, [role="combobox"], [aria-haspopup="listbox"]';
237
+ function placeEchoOverTrigger(panelElement, geometry, {
238
+ stretch = false
239
+ } = {}) {
240
+ const row = panelElement.querySelector("[data-fp-trigger-row]");
241
+ if (!row) return;
242
+ const offset = (0, import_panelWidth.echoOffset)(geometry);
243
+ const x = geometry.rtl ? -offset : offset;
244
+ row.style.translate = Math.abs(x) < 0.5 ? "" : `${x}px 0`;
245
+ const triggerWidth = geometry.triggerRight - geometry.triggerLeft;
246
+ const grown = geometry.panelWidth - offset;
247
+ const field = stretch && row.querySelector(ECHO_FIELD) != null;
248
+ const visual = row.firstElementChild;
249
+ const snapshot = visual?.firstElementChild;
250
+ if (field && grown > triggerWidth + 0.5) {
251
+ row.style.width = `${grown}px`;
252
+ row.setAttribute("data-fp-echo-stretched", String(grown));
253
+ for (const node of [visual, snapshot]) {
254
+ if (!node) continue;
255
+ node.style.width = "100%";
256
+ node.style.maxWidth = "none";
257
+ }
258
+ } else if (row.hasAttribute("data-fp-echo-stretched")) {
259
+ row.removeAttribute("data-fp-echo-stretched");
260
+ row.style.width = `${triggerWidth}px`;
261
+ for (const node of [visual, snapshot]) {
262
+ if (!node) continue;
263
+ node.style.width = "";
264
+ node.style.maxWidth = "";
265
+ }
266
+ }
267
+ }
184
268
  const overlayFloatBreakpoint = import_theme2.OVERLAY_BREAKPOINT;
185
269
  function subscribeViewport(listener) {
186
270
  if (!import_tamagui.isWeb || typeof window === "undefined") return () => {};
@@ -367,10 +451,12 @@ function FloatingPanelWeb({
367
451
  sizing = "grow",
368
452
  widthMode,
369
453
  fitContent,
454
+ panelWidth,
370
455
  contentPadding = "default",
371
456
  openOn = "press",
372
457
  cover = true,
373
458
  triggerEcho = true,
459
+ coverAlign = "start",
374
460
  triggerRow,
375
461
  anchorRect,
376
462
  clampCollisions = false,
@@ -391,6 +477,7 @@ function FloatingPanelWeb({
391
477
  const contentRef = (0, import_react.useRef)(null);
392
478
  const anchorPointRef = (0, import_react.useRef)(null);
393
479
  const pointPlacementRef = (0, import_react.useRef)(null);
480
+ const coverAlignEndRef = (0, import_react.useRef)(false);
394
481
  const repositionFnRef = (0, import_react.useRef)(null);
395
482
  const resetPosition = () => {
396
483
  overlayStyleRef.current = null;
@@ -412,6 +499,8 @@ function FloatingPanelWeb({
412
499
  fitContent,
413
500
  freeOverlay: isContextMenu,
414
501
  cover,
502
+ panelWidth,
503
+ echo: cover && triggerEcho && !isContextMenu,
415
504
  onBeforeOpen: resetPosition
416
505
  });
417
506
  (0, import_focusManagement.useReturnFocusOnClose)(open, skipReturnFocusRef, panel.refs.floating);
@@ -468,15 +557,42 @@ function FloatingPanelWeb({
468
557
  const scale = layoutStyle.transform && layoutStyle.transform !== "none" && typeof DOMMatrixReadOnly !== "undefined" ? Math.abs(new DOMMatrixReadOnly(layoutStyle.transform).a) : 1;
469
558
  const layoutWidth = dropdownElement.getBoundingClientRect().width / (scale || 1);
470
559
  const width = Math.max(layoutWidth || dropdownElement.offsetWidth, measured.width);
471
- const left = rtl ? measured.right - width : measured.left;
560
+ const startLeft = rtl ? measured.right - width : measured.left;
561
+ const endLeft = rtl ? measured.left : measured.right - width;
562
+ const iconCover = coverAlign === "auto";
563
+ const startFree = rtl ? startLeft >= viewportLeft + import_useFloatingPanel.panelViewportPadding : startLeft + width <= viewportRight - import_useFloatingPanel.panelViewportPadding;
564
+ const endFree = rtl ? endLeft + width <= viewportRight - import_useFloatingPanel.panelViewportPadding : endLeft >= viewportLeft + import_useFloatingPanel.panelViewportPadding;
565
+ let alignEnd = iconCover && !startFree && endFree;
566
+ const slides = (0, import_panelWidth.slidesAlongScreen)(panelWidth);
567
+ const margins = {
568
+ boundsLeft: viewportLeft + import_useFloatingPanel.panelViewportPadding,
569
+ boundsRight: viewportRight - import_useFloatingPanel.panelViewportPadding
570
+ };
571
+ const room = panelWidth === "screen" ? (0, import_panelWidth.screenBounds)({
572
+ triggerLeft: measured.left,
573
+ triggerRight: measured.right,
574
+ ...margins,
575
+ rtl
576
+ }) : {
577
+ left: margins.boundsLeft,
578
+ right: margins.boundsRight
579
+ };
580
+ const left = slides ? (0, import_panelWidth.panelLeftForWidth)({
581
+ triggerLeft: measured.left,
582
+ triggerRight: measured.right,
583
+ width,
584
+ boundsLeft: room.left,
585
+ boundsRight: room.right,
586
+ rtl
587
+ }) : alignEnd ? endLeft : startLeft;
472
588
  const firstActionHeight = contentRef.current?.querySelector(PANEL_FOCUSABLE)?.getBoundingClientRect().height || Number(panel.knobProps.menuRow.minHeight) || totalContentHeight;
473
589
  const bodyStyle = contentRef.current ? getComputedStyle(contentRef.current) : null;
474
590
  const bodyPadding = (parseFloat(bodyStyle?.paddingTop || "0") || 0) + (parseFloat(bodyStyle?.paddingBottom || "0") || 0);
475
591
  const neededHeight = sheetProps.scrollable ? Math.min(totalContentHeight, measured.height + firstActionHeight + bodyPadding + totalBorderWidth) : totalContentHeight;
476
592
  let placedTop = measured.top;
477
593
  let placedLeft = left;
478
- if (measured.width > 0 && measured.height > 0 && (left < viewportLeft || left + width > Math.max(measured.right, viewportRight - import_useFloatingPanel.panelViewportPadding) || measured.right > viewportRight || measured.top < viewportTop || measured.top + Math.max(neededHeight, measured.height) > viewportBottom - import_useFloatingPanel.panelViewportPadding)) {
479
- if (!clampCollisions) {
594
+ if (measured.width > 0 && measured.height > 0 && (!slides && (left < viewportLeft || left + width > Math.max(measured.right, viewportRight - import_useFloatingPanel.panelViewportPadding)) || measured.right > viewportRight || measured.top < viewportTop || measured.top + Math.max(neededHeight, measured.height) > viewportBottom - import_useFloatingPanel.panelViewportPadding)) {
595
+ if (!clampCollisions && !iconCover) {
480
596
  dropdownElement.style.visibility = "hidden";
481
597
  setCollisionSheet(true);
482
598
  return;
@@ -496,11 +612,23 @@ function FloatingPanelWeb({
496
612
  right: viewportRight - import_useFloatingPanel.panelViewportPadding,
497
613
  bottom: viewportBottom - import_useFloatingPanel.panelViewportPadding
498
614
  },
499
- rtl
615
+ rtl,
616
+ align: coverAlign
500
617
  });
501
618
  placedTop = placed.top;
502
- placedLeft = placed.left;
619
+ if (!slides) placedLeft = placed.left;
620
+ alignEnd = placed.end;
503
621
  }
622
+ coverAlignEndRef.current = alignEnd;
623
+ placeEchoOverTrigger(dropdownElement, {
624
+ triggerLeft: measured.left,
625
+ triggerRight: measured.right,
626
+ panelLeft: placedLeft,
627
+ panelWidth: width,
628
+ rtl
629
+ }, {
630
+ stretch: panelWidth !== void 0
631
+ });
504
632
  const top2 = placedTop - containingBlock.top;
505
633
  const cssLeft2 = placedLeft - containingBlock.left;
506
634
  const maxHeight = Math.max(0, viewportBottom - import_useFloatingPanel.panelViewportPadding - placedTop);
@@ -508,7 +636,7 @@ function FloatingPanelWeb({
508
636
  dropdownElement.style.left = `${cssLeft2}px`;
509
637
  dropdownElement.style.maxHeight = `${maxHeight}px`;
510
638
  dropdownElement.dir = rtl ? "rtl" : "ltr";
511
- dropdownElement.style.transformOrigin = rtl ? "top right" : "top left";
639
+ dropdownElement.style.transformOrigin = rtl !== alignEnd ? "top right" : "top left";
512
640
  dropdownElement.style.visibility = "visible";
513
641
  overlayStyleRef.current = {
514
642
  top: top2,
@@ -639,7 +767,7 @@ function FloatingPanelWeb({
639
767
  });
640
768
  }
641
769
  });
642
- }, [isFill, isContextMenu, cover, anchorRect, clampCollisions, sheetProps.scrollable, panel.placement, panel.refs, panel.triggerRef, panel.updateArrows, panel.panelTransition]);
770
+ }, [isFill, isContextMenu, cover, anchorRect, clampCollisions, sheetProps.scrollable, triggerEcho, coverAlign, panel.placement, panel.refs, panel.triggerRef, panel.updateArrows, panel.panelTransition]);
643
771
  repositionFnRef.current = repositionOverlay;
644
772
  const click = (0, import_react2.useClick)(panel.context, {
645
773
  event: "mousedown",
@@ -779,71 +907,75 @@ function FloatingPanelWeb({
779
907
  children
780
908
  }), panel.mounted && !collisionSheet && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_PanelPortal.PanelPortal, {
781
909
  anchor: panel.triggerRef.current,
782
- children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
783
- ...getFloatingProps({
784
- ref: panel.refs.setFloating,
785
- style: {
786
- ...elevatedSurfaceStyle,
787
- position: panel.strategy,
788
- top: overlayStyleRef.current?.top ?? panel.y ?? 0,
789
- left: overlayStyleRef.current?.left ?? panel.x ?? 0,
790
- scrollbarWidth: "none",
791
- zIndex: panelZIndex,
792
- overflow: "auto",
793
- ...(cover && !isContextMenu ? {
794
- overflowX: "hidden"
795
- } : {}),
796
- ...panel.floatingStyleRef.current,
797
- ...(overlayStyleRef.current ? {
798
- maxHeight: overlayStyleRef.current.maxHeight
799
- } : {}),
800
- opacity: panel.visible ? 1 : 0,
801
- // `none`, not scale(1): any transform makes this panel the
802
- // containing block of a nested panel's `position: fixed`, which
803
- // then positions against this box and is clipped by its scroll.
804
- transform: panel.visible ? "none" : "scale(0.96)",
805
- transition: webTransition,
806
- transformOrigin: cover && !isContextMenu ? isRtl(panel.triggerRef.current) ? "top right" : "top left" : panelTransformOrigin(pointPlacementRef.current ? `${pointPlacementRef.current.dropup ? "top" : "bottom"}-${pointPlacementRef.current.alignEnd ? "end" : "start"}` : panel.placement)
807
- },
808
- onScroll: handleScroll,
809
- onTransitionEnd: event => {
810
- if (event.target === event.currentTarget && (event.propertyName === "height" || event.propertyName === "max-height")) {
811
- panel.updateArrows(event.currentTarget);
910
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Theme, {
911
+ name: "alt1",
912
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
913
+ ...getFloatingProps({
914
+ ref: panel.refs.setFloating,
915
+ style: {
916
+ ...elevatedSurfaceStyle,
917
+ position: panel.strategy,
918
+ top: overlayStyleRef.current?.top ?? panel.y ?? 0,
919
+ left: overlayStyleRef.current?.left ?? panel.x ?? 0,
920
+ scrollbarWidth: "none",
921
+ zIndex: panelZIndex,
922
+ overflow: "auto",
923
+ ...(cover && !isContextMenu ? {
924
+ overflowX: "hidden"
925
+ } : {}),
926
+ ...panel.floatingStyleRef.current,
927
+ ...(overlayStyleRef.current ? {
928
+ maxHeight: overlayStyleRef.current.maxHeight
929
+ } : {}),
930
+ opacity: panel.visible ? 1 : 0,
931
+ // `none`, not scale(1): any transform makes this panel the
932
+ // containing block of a nested panel's `position: fixed`, which
933
+ // then positions against this box and is clipped by its scroll.
934
+ transform: panel.visible ? "none" : "scale(0.96)",
935
+ transition: webTransition,
936
+ transformOrigin: cover && !isContextMenu ? isRtl(panel.triggerRef.current) !== coverAlignEndRef.current ? "top right" : "top left" : panelTransformOrigin(pointPlacementRef.current ? `${pointPlacementRef.current.dropup ? "top" : "bottom"}-${pointPlacementRef.current.alignEnd ? "end" : "start"}` : panel.placement)
937
+ },
938
+ onScroll: handleScroll,
939
+ onTransitionEnd: event => {
940
+ if (event.target === event.currentTarget && (event.propertyName === "height" || event.propertyName === "max-height")) {
941
+ panel.updateArrows(event.currentTarget);
942
+ }
812
943
  }
813
- }
814
- }),
815
- "data-testid": "floating-panel-viewport",
816
- "data-fp-panel": "",
817
- ...panelChromeFocus,
818
- pointerEvents: panel.visible ? "auto" : "none",
819
- ...elevatedSurfaceProps,
820
- borderRadius: panel.dropdownRadius,
821
- paddingVertical: 0,
822
- children: [isContextMenu || !cover || !triggerEcho ? null : /* @__PURE__ */(0, import_jsx_runtime.jsx)(TriggerEchoRow, {
823
- sourceRef: panel.triggerRef,
824
- source: trigger,
825
- anchorRect,
826
- onPress: () => onOpenChange(false),
827
- children: triggerRow
828
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_floatingList.ScrollArrow, {
829
- direction: "up",
830
- scrollRef: panel.refs.floating,
831
- visible: panel.arrowUp,
832
- arrowScrollDirRef: panel.arrowScrollDirRef
833
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
834
- ref: contentRef,
835
- ...(contentPadding !== "none" ? panel.knobProps.panelPadding : void 0),
836
- ...(contentPadding !== "none" ? panel.knobProps.gapLg : void 0),
837
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_overlayStack.OverlayStackProvider, {
838
- zIndex: panelZIndex,
839
- children
840
- })
841
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_floatingList.ScrollArrow, {
842
- direction: "down",
843
- scrollRef: panel.refs.floating,
844
- visible: panel.arrowDown,
845
- arrowScrollDirRef: panel.arrowScrollDirRef
846
- })]
944
+ }),
945
+ "data-testid": "floating-panel-viewport",
946
+ "data-fp-panel": "",
947
+ ...panelChromeFocus,
948
+ pointerEvents: panel.visible ? "auto" : "none",
949
+ ...elevatedSurfaceProps,
950
+ borderRadius: panel.dropdownRadius,
951
+ paddingVertical: 0,
952
+ paddingBottom: panel.coverCornerInset || 0,
953
+ children: [isContextMenu || !cover || !triggerEcho ? null : /* @__PURE__ */(0, import_jsx_runtime.jsx)(TriggerEchoRow, {
954
+ sourceRef: panel.triggerRef,
955
+ source: trigger,
956
+ anchorRect,
957
+ onPress: () => onOpenChange(false),
958
+ children: triggerRow
959
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_floatingList.ScrollArrow, {
960
+ direction: "up",
961
+ scrollRef: panel.refs.floating,
962
+ visible: panel.arrowUp,
963
+ arrowScrollDirRef: panel.arrowScrollDirRef
964
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
965
+ ref: contentRef,
966
+ ...(contentPadding !== "none" ? panel.knobProps.panelPadding : void 0),
967
+ ...(contentPadding !== "none" ? panel.knobProps.gapLg : void 0),
968
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_overlayStack.OverlayStackProvider, {
969
+ zIndex: panelZIndex,
970
+ children
971
+ })
972
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_floatingList.ScrollArrow, {
973
+ direction: "down",
974
+ scrollRef: panel.refs.floating,
975
+ visible: panel.arrowDown,
976
+ arrowScrollDirRef: panel.arrowScrollDirRef
977
+ })]
978
+ })
847
979
  })
848
980
  })]
849
981
  });
@@ -25,12 +25,14 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
25
25
  var index_native_exports = {};
26
26
  __export(index_native_exports, {
27
27
  FloatingPanel: () => FloatingPanel,
28
+ TriggerEchoRow: () => TriggerEchoRow,
28
29
  floatingPanelActionProps: () => import_nestedAction.floatingPanelActionProps,
29
30
  isNestedPanelAction: () => import_nestedAction.isNestedPanelAction,
30
31
  panelAnimationDuration: () => import_useFloatingPanel2.panelAnimationDuration,
31
32
  panelGrowDuration: () => import_useFloatingPanel2.panelGrowDuration,
32
33
  panelTransition: () => import_useFloatingPanel2.panelTransition,
33
34
  panelViewportPadding: () => import_useFloatingPanel2.panelViewportPadding,
35
+ placeEchoOverTrigger: () => placeEchoOverTrigger,
34
36
  useFloatingPanel: () => import_useFloatingPanel2.useFloatingPanel,
35
37
  useViewportGtSm: () => useViewportGtSm
36
38
  });
@@ -48,6 +50,8 @@ var import_t = require("../shared/t.native.js");
48
50
  var import_overlaySizeClass = require("../shared/overlaySizeClass.native.js");
49
51
  var import_useKeyboardInset = require("../shared/useKeyboardInset.native.js");
50
52
  var import_compactFace = require("./compactFace.native.js");
53
+ var import_panelWidth = require("./panelWidth.native.js");
54
+ var import_echoContext = require("./echoContext.native.js");
51
55
  var import_pointAnchor = require("./pointAnchor.native.js");
52
56
  var import_RegularPanel = require("./RegularPanel.native.js");
53
57
  var import_useFloatingPanel = require("./useFloatingPanel.native.js");
@@ -83,7 +87,9 @@ function FloatingPanel(param) {
83
87
  compactFace,
84
88
  triggerRow,
85
89
  triggerEcho = true,
90
+ coverAlign = "start",
86
91
  anchorMode,
92
+ panelWidth = "content",
87
93
  sheet,
88
94
  widthMode,
89
95
  fitContent
@@ -152,6 +158,12 @@ function FloatingPanel(param) {
152
158
  var anchored = asMenu || asRegular;
153
159
  var triggerRef = (0, import_react.useRef)(null);
154
160
  var [anchor, setAnchor] = (0, import_react.useState)(null);
161
+ var [triggerRadius, setTriggerRadius] = (0, import_react.useState)(null);
162
+ var reportTriggerRadius = (0, import_react.useCallback)(function (radius) {
163
+ return setTriggerRadius(function (prev) {
164
+ return prev === radius ? prev : radius;
165
+ });
166
+ }, []);
155
167
  (0, import_react.useLayoutEffect)(function () {
156
168
  if (!anchored || !open) {
157
169
  setAnchor(null);
@@ -468,9 +480,12 @@ function FloatingPanel(param) {
468
480
  style: {
469
481
  width: triggerSizing === "content" ? void 0 : "100%"
470
482
  },
471
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_trailingAction.TriggerWithTrailingAction, {
472
- trigger,
473
- triggerEnd
483
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_echoContext.PanelTriggerRadiusContext.Provider, {
484
+ value: reportTriggerRadius,
485
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_trailingAction.TriggerWithTrailingAction, {
486
+ trigger,
487
+ triggerEnd
488
+ })
474
489
  })
475
490
  }))
476
491
  }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_trailingAction.TrailingActionOverlay, {
@@ -502,6 +517,9 @@ function FloatingPanel(param) {
502
517
  },
503
518
  echo: triggerEcho ? triggerRow !== null && triggerRow !== void 0 ? triggerRow : trigger : null,
504
519
  echoLabel: triggerA11y === null || triggerA11y === void 0 ? void 0 : triggerA11y.label,
520
+ coverAlign: anchorMode === "attach" ? "start" : coverAlign,
521
+ panelWidth,
522
+ triggerRadius: anchorMode === "attach" ? null : triggerRadius,
505
523
  framePadding,
506
524
  frameGap,
507
525
  onBackdropPress: handleBackdropPress,
@@ -656,26 +674,56 @@ function TriggerMenuPanel(param) {
656
674
  bounds,
657
675
  echo,
658
676
  echoLabel,
677
+ coverAlign,
678
+ panelWidth,
679
+ triggerRadius,
659
680
  framePadding,
660
681
  frameGap,
661
682
  onBackdropPress,
662
683
  onClose,
663
684
  children
664
685
  } = param;
665
- var _ref, _ref1, _ref2, _ref3;
686
+ var _ref, _ref1, _ref2, _ref3, _ref4;
666
687
  var {
667
688
  knobProps
668
689
  } = (0, import_theme2.useResolvedKnobs)({
669
690
  painted: false
670
691
  });
671
692
  var [size, setSize] = (0, import_react.useState)(null);
693
+ var room = panelWidth === "screen" && anchor ? {
694
+ ...bounds,
695
+ ...(0, import_panelWidth.screenBounds)({
696
+ triggerLeft: anchor.x,
697
+ triggerRight: anchor.x + anchor.width,
698
+ boundsLeft: bounds.left,
699
+ boundsRight: bounds.right,
700
+ rtl: import_react_native.I18nManager.isRTL
701
+ })
702
+ } : bounds;
703
+ var widthBox = (0, import_panelWidth.panelWidthBox)(panelWidth, {
704
+ trigger: (_ref = anchor === null || anchor === void 0 ? void 0 : anchor.width) !== null && _ref !== void 0 ? _ref : 0,
705
+ available: room.right - room.left,
706
+ echo: echo != null,
707
+ floor: Math.max(import_compactFace.MENU_MIN_WIDTH, (_ref1 = anchor === null || anchor === void 0 ? void 0 : anchor.width) !== null && _ref1 !== void 0 ? _ref1 : 0)
708
+ });
672
709
  var placement = anchor && size ? (attach ? import_pointAnchor.placeBesideTrigger : import_pointAnchor.placeOverTrigger)({
673
710
  trigger: anchor,
674
711
  width: size.width,
675
712
  height: size.height,
676
- bounds,
677
- rtl: import_react_native.I18nManager.isRTL
713
+ bounds: room,
714
+ rtl: import_react_native.I18nManager.isRTL,
715
+ align: coverAlign
678
716
  }) : null;
717
+ var half = anchor ? Math.min(anchor.width, anchor.height) / 2 : void 0;
718
+ var radius = triggerRadius != null && half != null ? Math.min(triggerRadius, half) : coverAlign === "auto" && half ? half : void 0;
719
+ var borderWidth = Number(knobProps.elevatedSurface.borderWidth) || 0;
720
+ var echoShift = anchor && placement ? (0, import_panelWidth.echoOffset)({
721
+ triggerLeft: anchor.x,
722
+ triggerRight: anchor.x + anchor.width,
723
+ panelLeft: placement.left,
724
+ panelWidth: placement.width,
725
+ rtl: import_react_native.I18nManager.isRTL
726
+ }) : 0;
679
727
  return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_react_native.View, {
680
728
  style: import_react_native.StyleSheet.absoluteFill,
681
729
  children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native.Pressable, {
@@ -698,25 +746,36 @@ function TriggerMenuPanel(param) {
698
746
  },
699
747
  style: {
700
748
  position: "absolute",
701
- left: (_ref = placement === null || placement === void 0 ? void 0 : placement.left) !== null && _ref !== void 0 ? _ref : bounds.left,
702
- top: (_ref1 = placement === null || placement === void 0 ? void 0 : placement.top) !== null && _ref1 !== void 0 ? _ref1 : bounds.top,
703
- minWidth: (0, import_compactFace.menuMinWidth)((_ref2 = anchor === null || anchor === void 0 ? void 0 : anchor.width) !== null && _ref2 !== void 0 ? _ref2 : 0, bounds.right - bounds.left),
704
- maxWidth: bounds.right - bounds.left,
705
- maxHeight: (_ref3 = placement === null || placement === void 0 ? void 0 : placement.maxHeight) !== null && _ref3 !== void 0 ? _ref3 : bounds.bottom - bounds.top,
749
+ left: (_ref2 = placement === null || placement === void 0 ? void 0 : placement.left) !== null && _ref2 !== void 0 ? _ref2 : bounds.left,
750
+ top: (_ref3 = placement === null || placement === void 0 ? void 0 : placement.top) !== null && _ref3 !== void 0 ? _ref3 : bounds.top,
751
+ ...widthBox,
752
+ maxHeight: (_ref4 = placement === null || placement === void 0 ? void 0 : placement.maxHeight) !== null && _ref4 !== void 0 ? _ref4 : bounds.bottom - bounds.top,
706
753
  opacity: placement ? 1 : 0
707
754
  },
708
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
755
+ children: (
756
+ /* FZ-8414: the shadow rides this unclipped frame; iOS drops the
757
+ shadow of a layer that also clips, and in dark the menu melted
758
+ into the page. The clip lives on the inner stack. */
759
+ /* @__PURE__ */
760
+ (0, import_jsx_runtime.jsx)(import_tamagui.YStack, {
709
761
  testID: "floating-panel-menu-surface",
710
762
  ...knobProps.elevatedSurface,
763
+ ...(radius != null ? {
764
+ borderRadius: radius
765
+ } : void 0),
711
766
  flexShrink: 1,
712
767
  minHeight: 0,
713
768
  onAccessibilityEscape: onClose,
714
769
  children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.YStack, {
715
770
  testID: "floating-panel-menu-clip",
716
- borderRadius: knobProps.elevatedSurface.borderRadius,
717
- overflow: "hidden",
718
771
  flexShrink: 1,
719
772
  minHeight: 0,
773
+ overflow: "hidden",
774
+ ...(radius != null ? {
775
+ borderRadius: Math.max(0, radius - borderWidth)
776
+ } : {
777
+ borderRadius: knobProps.elevatedSurface.borderRadius
778
+ }),
720
779
  children: [echo != null && anchor && anchor.height > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native.Pressable, {
721
780
  testID: "floating-panel-menu-echo",
722
781
  onPress: onClose,
@@ -725,14 +784,26 @@ function TriggerMenuPanel(param) {
725
784
  accessibilityLabel: echoLabel
726
785
  } : void 0),
727
786
  "aria-expanded": true,
787
+ // The frame's border is inside the anchor box: pull the echo
788
+ // back over it so its content lands where the trigger's did.
789
+ // Exactly the trigger's box at the start edge: a menu wider than
790
+ // its trigger (the 250pt pull-down floor) must not stretch the
791
+ // echo and re-centre a pill's label (FZ-8438).
728
792
  style: {
729
793
  height: anchor.height,
730
- minWidth: anchor.width,
794
+ width: anchor.width,
795
+ alignSelf: "flex-start",
796
+ margin: -borderWidth,
797
+ marginStart: echoShift - borderWidth,
798
+ marginBottom: 0,
731
799
  justifyContent: "center"
732
800
  },
733
801
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native.View, {
734
802
  pointerEvents: "none",
735
- children: echo
803
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_echoContext.PanelEchoContext.Provider, {
804
+ value: true,
805
+ children: echo
806
+ })
736
807
  })
737
808
  }) : null, /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native.ScrollView, {
738
809
  style: {
@@ -747,7 +818,7 @@ function TriggerMenuPanel(param) {
747
818
  })
748
819
  })]
749
820
  })
750
- })
821
+ }))
751
822
  })]
752
823
  });
753
824
  }
@@ -822,4 +893,8 @@ function PointPanel(param) {
822
893
  })]
823
894
  });
824
895
  }
896
+ function TriggerEchoRow(_props) {
897
+ return null;
898
+ }
899
+ function placeEchoOverTrigger(_panelElement, _geometry, _options) {}
825
900
  //# sourceMappingURL=index.native.js.map